@vindral/web-sdk 4.2.1 → 4.3.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/legacy.umd.js CHANGED
@@ -1,5 +1,5 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports):typeof define==`function`&&define.amd?define([`exports`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.Vindral={}))})(this,function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=Object.defineProperty,n=(e,t)=>()=>(e&&(t=e(e=0)),t),r=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},i=`_buffering_1ccif_1`,a=`_hidden_1ccif_25`,o=`_scaleout_1ccif_1`,s={buffering:i,"buffering-fullscreen":`_buffering-fullscreen_1ccif_16`,hidden:a,"buffering-indicator":`_buffering-indicator_1ccif_31`,scaleout:o};function c(e){"@babel/helpers - typeof";return c=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},c(e)}var l=n((()=>{}));function u(e,t){if(c(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(c(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var d=n((()=>{l()}));function f(e){var t=u(e,`string`);return c(t)==`symbol`?t:t+``}var p=n((()=>{l(),d()}));function m(e,t,n){return(t=f(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var h=n((()=>{p()}));h();var g=class{constructor(e){m(this,`attach`,e=>{this.detach(),e.appendChild(this.element)}),m(this,`attachBefore`,(e,t)=>{this.detach(),e.insertBefore(this.element,t)}),m(this,`detach`,()=>this.element.remove()),this.element=e}};h();var _,v,y,b,x=(_=s.hidden)==null?``:_,ee=(v=s.buffering)==null?``:v,te=(y=s[`buffering-fullscreen`])==null?``:y,ne=(b=s[`buffering-indicator`])==null?``:b,re=class extends g{constructor(){super(document.createElement(`div`)),m(this,`indicator`,document.createElement(`div`)),m(this,`isHidden`,()=>this.element.classList.contains(x)),m(this,`setHidden`,e=>e?this.hide():this.show()),m(this,`hide`,()=>this.element.classList.add(x)),m(this,`show`,()=>this.element.classList.remove(x)),m(this,`fullscreen`,e=>{e?this.element.classList.add(te):this.element.classList.remove(te)}),this.element.className=ee,this.indicator.className=ne,this.element.appendChild(this.indicator)}},ie,ae=n((()=>{h(),ie=class{constructor(e){m(this,`maxSize`,0),m(this,`size`,0),m(this,`buffers`,[]),m(this,`_borrowedBuffers`,0),m(this,`get`,e=>{let t=this.buffers.pop();return this._borrowedBuffers++,this.size<e||!t?(this.buffers=[],this.size=e,new ArrayBuffer(e)):t}),m(this,`reclaim`,e=>{this._borrowedBuffers=Math.max(0,this._borrowedBuffers-1),!(e.byteLength<this.size)&&(this.buffers.length>=this.maxSize||this.buffers.push(e))}),this.maxSize=e}get bufferSize(){return this.size}get poolSize(){return this.buffers.length}get borrowedBuffers(){return this._borrowedBuffers}}})),S,oe=n((()=>{S=()=>{}})),C,se=n((()=>{oe(),h(),C=class e{constructor(){m(this,`promise`,void 0),m(this,`resolved`,void 0),m(this,`resolve`,void 0),m(this,`reject`,void 0),m(this,`pending`,!0),this.promise=new Promise((e,t)=>{this.resolve=t=>{this.pending=!1,this.resolved=t,e(t)},this.reject=e=>{this.pending=!1,t(e)}}),this.promise.catch(S)}static resolved(t){let n=new e;return n.resolve(t),n}static fromPromise(t){let n=new e;return n.promise=t,t.then(e=>{n.pending=!1,n.resolved=e},e=>{n.pending=!1,n.reject(e)}),n}}})),w,ce=n((()=>{h(),w=class{constructor(e=50){m(this,`maxSize`,void 0),m(this,`values`,[]),m(this,`start`,0),m(this,`size`,()=>this.values.length-this.start),m(this,`compact`,()=>{if(this.start!==0){if(this.start>=this.values.length){this.values=[],this.start=0;return}this.start<32&&this.start*2<this.values.length||(this.values=this.values.slice(this.start),this.start=0)}}),m(this,`push`,e=>{this.isFull()&&(this.start++,this.compact()),this.values.push(e)}),m(this,`clear`,()=>{this.values=[],this.start=0}),m(this,`pop`,()=>{if(this.isEmpty())return;let e=this.values[this.start];return this.start++,this.compact(),e}),m(this,`popLast`,()=>{if(this.isEmpty())return;let e=this.values.pop();return this.start>=this.values.length&&this.clear(),e}),m(this,`peekFirst`,()=>this.isEmpty()?void 0:this.values[this.start]),m(this,`peekLast`,()=>this.isEmpty()?void 0:this.values[this.values.length-1]),m(this,`isFull`,()=>this.size()>=this.maxSize),m(this,`isEmpty`,()=>this.size()===0),m(this,`items`,()=>this.start===0?this.values:this.values.slice(this.start)),m(this,`filterPop`,e=>{for(;!this.isEmpty();){let t=this.peekFirst();if(t===void 0||e(t))return;this.pop()}}),this.maxSize=e}}}));function le(e,t){if(t.has(e))throw TypeError(`Cannot initialize the same private elements twice on an object`)}var ue=n((()=>{}));function T(e,t,n){le(e,t),t.set(e,n)}var E=n((()=>{ue()}));function D(e,t,n){if(typeof e==`function`?e===t:e.has(t))return arguments.length<3?t:n;throw TypeError(`Private element is not present on this object`)}var O=n((()=>{}));function k(e,t,n){return e.set(D(e,t),n),n}var A=n((()=>{O()}));function j(e,t){return e.get(D(e,t))}var M=n((()=>{O()}));function de(e,t,n,r,i,a,o){try{var s=e[a](o),c=s.value}catch(e){n(e);return}s.done?t(c):Promise.resolve(c).then(r,i)}function N(e){return function(){var t=this,n=arguments;return new Promise(function(r,i){var a=e.apply(t,n);function o(e){de(a,r,i,o,s,`next`,e)}function s(e){de(a,r,i,o,s,`throw`,e)}o(void 0)})}}var P=n((()=>{}));function fe(e){let t=new ve(e);return[t,t]}var pe,me,he,ge,_e,ve,ye=n((()=>{se(),ce(),oe(),E(),A(),M(),P(),me=new WeakMap,he=new WeakMap,ge=new WeakMap,_e=new WeakMap,pe=Symbol.asyncIterator,ve=class{constructor(e){T(this,me,void 0),T(this,he,new C),T(this,ge,void 0),T(this,_e,!1),k(me,this,new w(e))}isFull(){return j(me,this).isFull()}close(){var e;(e=j(ge,this))==null||e.resolve(),k(_e,this,!0)}abort(e){var t,n;(t=j(ge,this))==null||t.promise.catch(S),(n=j(ge,this))==null||n.reject(e)}push(e){var t=this;return N(function*(){var n;j(me,t).isFull()&&(yield j(he,t).promise),j(me,t).push(e),(n=j(ge,t))==null||n.resolve(),k(ge,t,new C)})()}pop(){var e=this;return N(function*(){for(;!(j(_e,e)&&j(me,e).isEmpty());){var t;let n=j(me,e).pop();if(n)return j(he,e).resolve(),k(he,e,new C),n;j(ge,e)||k(ge,e,new C),yield(t=j(ge,e))==null?void 0:t.promise}})()}start(e){}pull(e){var t=this;return N(function*(){let n=yield t.pop();n?e.enqueue(n):e.close()})()}cancel(e){this.abort(Error(e))}next(){var e=this;return N(function*(){let t=yield e.pop().catch(()=>void 0);return t?{done:!1,value:t}:{done:!0,value:void 0}})()}return(){return this.close(),Promise.resolve({done:!0,value:void 0})}[pe](){return this}}}));function be(e,t){if(!e)throw Error(t)}var xe=n((()=>{}));function F(e){return Se?BigInt(e):typeof BigInt==`function`&&typeof e==`bigint`?Number(e):e}var Se,Ce=n((()=>{Se=typeof DataView.prototype.getBigUint64==`function`})),we,Te,Ee,De,Oe=n((()=>{E(),h(),M(),A(),we=new WeakMap,Te=new WeakMap,Ee=new WeakMap,De=class{constructor(e,t=0){T(this,we,void 0),T(this,Te,void 0),T(this,Ee,void 0),m(this,`position`,()=>j(Ee,this)),m(this,`peekBit`,()=>this.getBit(j(Te,this),j(Ee,this))),m(this,`readBit`,()=>{var e;let t=this.peekBit();return k(Ee,this,(e=j(Ee,this),e++,e)),t}),m(this,`readBits`,e=>{let t=0;for(let i=0;i<e;i++){var n,r;t=t<<1|(this.getBit(j(Te,this),(k(Ee,this,(n=j(Ee,this),r=n++,n)),r))?1:0)}return t}),m(this,`remainingBits`,()=>j(Te,this).byteLength*8-j(Ee,this)),m(this,`readSignedExpGolomb`,()=>{let e=this.readUnsignedExpGolomb();return e&1?(e+1)/2:-(e/2)}),m(this,`readUnsignedExpGolomb`,()=>{var e,t;let n=0;for(;this.getBit(j(Te,this),(k(Ee,this,(e=j(Ee,this),t=e++,e)),t))===0;)n++;let r=1<<n;for(let e=n-1;e>=0;e--){var i,a;r|=this.getBit(j(Te,this),(k(Ee,this,(i=j(Ee,this),a=i++,i)),a))<<e}return r-1}),m(this,`getBit`,(e,t)=>{if(e.byteLength*8<=t)throw Error(`BitReader: Out of bounds`);return e[t>>3]>>7-(t&7)&1}),k(we,this,e),k(Te,this,new Uint8Array(j(we,this))),k(Ee,this,t)}bytes(){return j(Te,this)}}})),ke,Ae=n((()=>{ke=(e,t,n)=>{let r=0;for(let i=t;i<=n;i++)if(i===t){let t=e[i];r+=t&127,t&128&&(r-=128)}else r=r*256+e[i];return r}})),I,je,Me,Ne,Pe=n((()=>{Ae(),E(),A(),M(),I=new WeakMap,je=new WeakMap,Me=new WeakMap,Ne=class{constructor(e){T(this,I,void 0),T(this,je,void 0),T(this,Me,void 0),k(je,this,e),k(Me,this,new DataView(e.buffer,e.byteOffset,e.byteLength)),k(I,this,0)}position(){return j(I,this)}byteOffset(){return j(je,this).byteOffset+j(I,this)}buffer(){return j(je,this)}remaining(){return j(je,this).length-j(I,this)}readUint8(){let e=j(Me,this).getUint8(j(I,this));return k(I,this,j(I,this)+1),e}readUint24(){let e=j(Me,this).getUint32(j(I,this))>>8&16777215;return k(I,this,j(I,this)+3),e}readUint16(){let e=j(Me,this).getUint16(j(I,this));return k(I,this,j(I,this)+2),e}readUint32(){let e=j(Me,this).getUint32(j(I,this));return k(I,this,j(I,this)+4),e}readUint64(){let e=ke(j(je,this),j(I,this),j(I,this)+7);return k(I,this,j(I,this)+8),e}readBytes(e){let t=j(je,this).subarray(j(I,this),j(I,this)+e);return k(I,this,j(I,this)+e),t}readRemaining(){return this.readBytes(this.remaining())}readUtf8String(){let e=[],t;for(;(t=this.readUint8())!==0&&(e.push(t),this.remaining()!==0););return new TextDecoder().decode(new Uint8Array(e))}}})),Fe,Ie=n((()=>{h(),Fe=class{constructor(e=100){m(this,`internalBuffer`,void 0),m(this,`view`,void 0),m(this,`uint8`,void 0),m(this,`_position`,0),m(this,`_end`,0),this.internalBuffer=new ArrayBuffer(e),this.view=new DataView(this.internalBuffer),this.uint8=new Uint8Array(this.internalBuffer)}position(){return this._position}seek(e){this._position=Math.max(0,Math.min(this._end,e))}seekToEnd(){this._position=this._end}writeUint8(e){this.writeAndMove(e,1)}writeUint16(e){this.writeAndMove(e,2)}writeUint24(e){this.writeAndMove(e,3)}writeUint32(e){this.writeAndMove(e,4)}writeUint64(e){let t=Math.floor(e/4294967296),n=(e&4294967295)>>>0;this.writeUint32(t),this.writeUint32(n)}writeUint32At(e,t){this.view.setUint32(e,t)}writeBytes(e){this.resizeIfNeeded(this.position()+e.byteLength),this.uint8.set(e,this.position()),this._position+=e.byteLength,this._end=Math.max(this._end,this._position)}buffer(){return this.internalBuffer.slice(0,this._end)}bufferExact(){return this._end===this.internalBuffer.byteLength?this.internalBuffer:this.internalBuffer.slice(0,this._end)}write(e,t){switch(this.resizeIfNeeded(this.position()+t),t){case 1:this.view.setUint8(this.position(),e);break;case 2:this.view.setUint16(this.position(),e);break;case 3:this.view.setUint8(this.position(),e>>16&255),this.view.setUint8(this.position()+1,e>>8&255),this.view.setUint8(this.position()+2,e&255);break;case 4:this.view.setUint32(this.position(),e);break}}writeAndMove(e,t){this.write(e,t),this._position+=t,this._end=Math.max(this._end,this._position)}resizeIfNeeded(e){if(e>this.internalBuffer.byteLength){let t=Math.max(e,this.internalBuffer.byteLength*2),n=new ArrayBuffer(t),r=new Uint8Array(n);r.set(this.uint8),this.internalBuffer=n,this.view=new DataView(this.internalBuffer),this.uint8=r}}}}));function Le(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n.buffer}var Re=n((()=>{}));function ze(){let e=self.MediaSource,t=self.ManagedMediaSource;return e==null?t:e}var Be=n((()=>{}));function Ve(){if(/(iPhone|iPod|iPad)/i.test(We)){var e;return We==null||(e=We.match(/OS [\d_]+/i))==null||(e=e[0])==null?void 0:e.substring(3).split(`_`).map(e=>parseInt(e,10))[0]}}function He(){if(/^((?!chrome|android).)*safari/i.test(We)){var e;return(e=We.match(/version\/([\d.]+)/))==null||(e=e[1])==null?void 0:e.split(`.`).map(e=>parseInt(e,10))[0]}}var Ue,We,Ge,Ke,qe,Je,Ye,Xe,Ze,Qe,$e,et,tt,nt,rt=n((()=>{Be(),Ue=/(android|bbd+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up.(browser|link)|vodafone|wap|windows ce|xda|xiino\/i.test(a)||\/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-\//i,We=navigator.userAgent.toLowerCase(),Ge=Ue.test(We),Ke=()=>{let e=document.createElement(`video`);return e.canPlayType(`application/vnd.apple.mpegURL`)!==``||e.canPlayType(`audio/mpegurl`)!==``},qe=()=>{try{if(typeof WebAssembly==`object`&&typeof WebAssembly.instantiate==`function`){let e=new WebAssembly.Module(Uint8Array.of(0,97,115,109,1,0,0,0));if(e instanceof WebAssembly.Module)return new WebAssembly.Instance(e)instanceof WebAssembly.Instance}}catch(e){return!1}return!1},Je=()=>We.indexOf(`CrKey`)!==-1,Ye=()=>navigator.platform===`MacIntel`&&navigator.maxTouchPoints===0,Xe=()=>navigator.platform===`MacIntel`&&navigator.maxTouchPoints>1,Ze=()=>Qe()||Xe()?!0:/AppleWebKit/i.test(navigator.userAgent)&&!/Chrome|Chromium|Edg|OPR|Opera/i.test(navigator.userAgent),Qe=()=>We.indexOf(`iphone`)>=0&&We.indexOf(`like iphone`)<0||We.indexOf(`ipad`)>=0&&We.indexOf(`like ipad`)<0||We.indexOf(`ipod`)>=0&&We.indexOf(`like ipod`)<0||Xe(),$e=()=>{var e,t;return Xe()||(e=(t=ze())==null?void 0:t.isTypeSupported(`audio/mp4; codecs="opus"`))==null?!1:e},et=()=>/^(?!.*chrome).*safari/i.test(We),tt=()=>typeof HTMLCanvasElement<`u`&&typeof HTMLCanvasElement.prototype.captureStream==`function`,nt=()=>{var e,t;let n=!!ze(),r=!1;return n&&(r=$e()),{isMobile:Ge,supportsMp4Opus:r,supportsMediaSource:n,supportsHls:Ke(),supportsWebAssembly:qe(),supportsCanvasCaptureStream:tt(),platform:{iosVersion:(e=Ve())==null?2**53-1:e,safariVersion:(t=He())==null?2**53-1:t,isIpadOS:Xe(),isMacOS:Ye(),isIOS:Qe(),isWebKit:Ze()}}}})),it,at,ot,st,ct,lt,ut,dt,ft,pt,mt,ht,gt,_t,vt,yt,bt,xt,St,Ct,wt,Tt,Et,Dt=n((()=>{it=e=>e,at=e=>e,ot=e=>e,st=e=>e,ct=e=>`orientation`in e?e.orientation:void 0,lt=(e=document)=>{let t=it(e);return!!(e.fullscreenElement||e.fullscreen||t.mozFullScreen||t.webkitIsFullScreen)},ut=e=>{var t,n,r,i;let a=at(e);return((t=e.requestFullscreen)==null?void 0:t.bind(e))||((n=a.webkitRequestFullscreen)==null?void 0:n.bind(a))||((r=a.webkitEnterFullscreen)==null?void 0:r.bind(a))||((i=a.mozRequestFullScreen)==null?void 0:i.bind(a))},dt=(e,t=document)=>{var n,r;let i=it(t);return((n=t.exitFullscreen)==null?void 0:n.bind(t))||(i.webkitFullscreenElement&&i.webkitExitFullscreen?i.webkitExitFullscreen.bind(t):void 0)||(i.mozFullscreenElement&&i.mozCancelFullScreen?i.mozCancelFullScreen.bind(t):void 0)||(e?(r=at(e).webkitExitFullscreen)==null?void 0:r.bind(e):void 0)},ft=e=>!!ut(e),pt=e=>{var t;let n=st(e);return(t=n.requestPictureInPicture)==null?void 0:t.bind(n)},mt=(e=document)=>{var t;return(t=ot(e).exitPictureInPicture)==null?void 0:t.bind(e)},ht=(e=document)=>!!ot(e).pictureInPictureEnabled,gt=(e=document)=>!!ot(e).pictureInPictureElement,_t=(e,t=document)=>!!pt(e)&&ht(t),vt=e=>e.pictureInPictureWindow,yt=e=>st(e).webkitPresentationMode,bt=(e,t)=>{var n,r;(n=(r=st(e)).webkitSetPresentationMode)==null||n.call(r,t)},xt=e=>!!st(e).webkitSetPresentationMode,St=(e,t)=>{if(t){e.setAttribute(`autopictureinpicture`,``);return}e.removeAttribute(`autopictureinpicture`)},Ct=(e=screen)=>{var t;let n=ct(e);return n==null||(t=n.lock)==null?void 0:t.bind(n)},wt=(e,t=screen)=>{var n;return(n=Ct(t))==null?void 0:n(e)},Tt=(e=screen)=>{var t,n;(t=ct(e))==null||(n=t.unlock)==null||n.call(t)},Et=e=>{if(!e.supportsCanvasCaptureStream)return!1;if(!e.platform.isIOS)return!0;let{iosVersion:t,safariVersion:n,isIpadOS:r}=e.platform;return Number.isFinite(t)&&t!==2**53-1?t>=15:r&&Number.isFinite(n)&&n!==2**53-1?n>=15:typeof VideoDecoder<`u`}})),Ot,kt=n((()=>{h(),Ot=class{constructor(e,t,n){m(this,`onSuccess`,void 0),m(this,`onError`,void 0),m(this,`doExecute`,void 0),this.doExecute=e,this.onSuccess=t,this.onError=n}execute(e){try{this.doExecute(e),this.onSuccess()}catch(e){this.onError(e)}}}})),At,jt,Mt,Nt,Pt=n((()=>{At=e=>e.reduce((e,t)=>e+t,0)/e.length,jt=e=>{if(e.length<2)return;let t=0;for(let n=1;n<e.length;n++)t+=e[n]-e[n-1];return t/(e.length-1)},Mt=e=>({last:e[e.length-1]||0,average:e.length===0?0:At(e),max:e.length===0?0:Math.max(...e),min:e.length===0?0:Math.min(...e)}),Nt=e=>{let t=0,n=0,r=0,i=0,a=0;for(let o=0;o<e.length;o++){let{x:s,y:c}=e[o];t+=s,n+=c,r+=s*c,i+=s*s,a+=c*c}let o=(e.length*r-t*n)/(e.length*i-t*t),s=(n-o*t)/e.length;return{slope:o,intercept:s,r2:((e.length*r-t*n)/Math.sqrt((e.length*i-t*t)*(e.length*a-n*n)))**2,predict:t=>o*(e.length+t)+s}}})),Ft,It=n((()=>{ce(),Pt(),h(),Ft=class{constructor(e=10){m(this,`rates`,void 0),m(this,`_total`,0),m(this,`accumulatedValues`,0),m(this,`lastTickTime`,Date.now()),m(this,`add`,e=>{this.accumulatedValues+=e,this._total+=e}),m(this,`tick`,()=>{let e=this.accumulatedValues/((Date.now()-this.lastTickTime)/1e3);this.rates.push(e),this.accumulatedValues=0,this.lastTickTime=Date.now()}),this.rates=new w(e)}get total(){return this._total}get average(){return this.rates.isEmpty()?0:At(this.rates.items())}get minMaxAverage(){return Mt(this.rates.items())}}})),Lt=n((()=>{})),Rt,zt=n((()=>{Rt=(e,t)=>{if(e===t)return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;let n=0,r=0;for(let t in e)n+=1;for(let n in t)if(r+=1,!(n in e)||!Rt(e[n],t[n]))return!1;return n===r}})),Bt,Vt=n((()=>{h(),Bt=class{constructor(){m(this,`listeners`,{})}emit(e,t){let n=this.listeners[e];if(n){let r=!1;for(let e=0;e<n.length;e++)if(n[e].once){r=!0;break}r&&(this.listeners[e]=n.filter(e=>!e.once));let i,a=n.length;for(let e=0;e<a;e++){let r=n[e].fn(t);typeof r==`function`&&(i||(i=[]),i.push(r))}if(i)for(let e=0;e<i.length;e++)i[e]()}}off(e,t){let n=this.listeners[e];n&&(this.listeners[e]=n.filter(e=>e.fn!==t))}on(e,t){this.add(e,t,!1)}once(e,t){this.add(e,t,!0)}hasListeners(e){let t=this.listeners[e];return t!==void 0&&t.length>0}reset(){this.listeners={}}add(e,t,n){let r=this.listeners[e],i={fn:t,once:n};r?r.push(i):this.listeners[e]=[i]}}})),Ht=n((()=>{})),Ut,Wt,Gt,Kt,qt,Jt,Yt,Xt=n((()=>{Ut=1e3,Wt=Ut*1e3,Gt=Wt*1e3,Kt=(e,t,n)=>e%t===0?e/t:(e/t).toFixed(n),qt=(e,t=1)=>e>=Gt?`${Kt(e,Gt,t)} Gbit/s`:e>=Wt?`${Kt(e,Wt,t)} Mbit/s`:e>=Ut?`${Kt(e,Ut,t)} Kbit/s`:`${e} bit/s`,Jt=({width:e,height:t})=>`${e}x${t}`,Yt=e=>e%1e3==0?`${e/1e3} kHz`:e>1e3?`${(e/1e3).toFixed(1)} kHz`:`${e} Hz`})),Zt=n((()=>{})),Qt,$t,en,tn,nn,rn,an,on,sn=n((()=>{E(),h(),A(),M(),Qt=[`off`,`error`,`warn`,`info`,`debug`,`trace`],$t={ERROR:`error`,WARN:`warn`,INFO:`info`,DEBUG:`debug`,TRACE:`trace`,OFF:`off`},en=new WeakMap,tn=new WeakMap,nn=new WeakMap,rn=new WeakMap,an=class e{constructor({context:e,logLevel:t,debug:n}){T(this,en,new Map),T(this,tn,``),T(this,nn,!1),T(this,rn,`off`),m(this,`trace`,(...e)=>{}),m(this,`debug`,(...e)=>{}),m(this,`info`,(...e)=>{}),m(this,`warn`,(...e)=>{}),m(this,`error`,(...e)=>{}),m(this,`table`,(...e)=>{}),m(this,`count`,(...e)=>{}),k(tn,this,e),k(rn,this,t),k(nn,this,n||!1),this.setLevel(t),this.setDebug(j(nn,this))}setDebug(e){k(nn,this,e);for(let[t,n]of j(en,this))n.setDebug(e);e?(this.table=console.table.bind(console),this.count=console.count.bind(console)):(this.table=()=>{},this.count=()=>{})}setLevel(e){k(rn,this,e);for(let[t,n]of j(en,this))n.setLevel(e);let t=Qt.indexOf(e);for(let[e,n]of Qt.entries())n!==`off`&&(e<=t?this[n]=console[n].bind(console,`%c%s %c%s`,`font-weight:bold;`,n.toUpperCase(),`font-weight:normal;`,j(tn,this)):this[n]=()=>{})}createContext(t){let n=j(en,this).get(t);if(!n){let n=new e({context:`${t}`,logLevel:j(rn,this),debug:j(nn,this)});return j(en,this).set(t,n),n}return n}static get(){return on._||(on._=new e({context:`Vindral`,logLevel:`off`})),on._}},on={_:void 0}}));function cn(){return typeof Symbol.asyncDispose!=`symbol`&&Object.defineProperty(Symbol,`asyncDispose`,{value:Symbol.for(`asyncDispose`)}),Symbol.asyncDispose}function ln(){return typeof Symbol.dispose!=`symbol`&&Object.defineProperty(Symbol,`dispose`,{value:Symbol.for(`dispose`)}),Symbol.dispose}var un=n((()=>{}));function L(e,t){le(e,t),t.add(e)}var R=n((()=>{ue()}));function dn(){this.unlocker.resolve(this.value)}var fn,pn,mn,hn,gn,_n,vn,yn=n((()=>{se(),oe(),un(),R(),h(),O(),E(),M(),A(),P(),mn=new WeakSet,fn=ln(),pn=Symbol.dispose,hn=class{constructor(e,t){L(this,mn),m(this,`value`,void 0),m(this,`unlocker`,void 0),this.value=e,this.unlocker=t}unlocked(){var e;return(e=this.unlocker)==null?void 0:e.promise}[fn](){D(mn,this,dn).call(this)}[pn](){D(mn,this,dn).call(this)}},gn=new WeakMap,_n=new WeakMap,vn=class{unsafeValue(){return j(gn,this)}constructor(e){T(this,gn,void 0),T(this,_n,new C),k(gn,this,e),j(_n,this).resolve(e)}isLocked(){return j(_n,this).pending}lock(){var e=this;return N(function*(){let t=new C;t.promise.then(t=>{k(gn,e,t)}).catch(S);let n=j(_n,e).promise.then(()=>t);return k(_n,e,t),yield n,new hn(j(gn,e),t)})()}}}));function bn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function z(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?bn(Object(n),!0).forEach(function(t){m(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):bn(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var B=n((()=>{h()})),xn=n((()=>{})),Sn=n((()=>{})),Cn=n((()=>{}));function wn(e,t){this.v=e,this.k=t}var Tn=n((()=>{}));function V(e){return new wn(e,0)}var En=n((()=>{Tn()}));function Dn(e){return function(){return new On(e.apply(this,arguments))}}function On(e){var t,n;function r(t,n){try{var a=e[t](n),o=a.value,s=o instanceof wn;Promise.resolve(s?o.v:o).then(function(n){if(s){var c=t===`return`?`return`:`next`;if(!o.k||n.done)return r(c,n);n=e[c](n).value}i(a.done?`return`:`normal`,n)},function(e){r(`throw`,e)})}catch(e){i(`throw`,e)}}function i(e,i){switch(e){case`return`:t.resolve({value:i,done:!0});break;case`throw`:t.reject(i);break;default:t.resolve({value:i,done:!1})}(t=t.next)?r(t.key,t.arg):n=null}this._invoke=function(e,i){return new Promise(function(a,o){var s={key:e,arg:i,resolve:a,reject:o,next:null};n?n=n.next=s:(t=n=s,r(e,i))})},typeof e.return!=`function`&&(this.return=void 0)}var kn=n((()=>{Tn(),On.prototype[typeof Symbol==`function`&&Symbol.asyncIterator||`@@asyncIterator`]=function(){return this},On.prototype.next=function(e){return this._invoke(`next`,e)},On.prototype.throw=function(e){return this._invoke(`throw`,e)},On.prototype.return=function(e){return this._invoke(`return`,e)}})),An,jn,Mn,Nn,Pn=n((()=>{se(),E(),A(),M(),P(),En(),kn(),jn=new WeakMap,Mn=new WeakMap,An=Symbol.asyncIterator,Nn=class{constructor(e){T(this,jn,void 0),T(this,Mn,void 0),k(jn,this,e),k(Mn,this,new C)}isClosed(){var e;return!((e=j(Mn,this))!=null&&e.pending)}current(){return j(jn,this)}value(){var e;return[j(jn,this),(e=j(Mn,this))==null?void 0:e.promise]}update(e){var t;if(!((t=j(Mn,this))!=null&&t.pending))throw Error(`ObservableValue is closed`);k(jn,this,e instanceof Function?e(j(jn,this)):e),j(Mn,this).resolve(j(jn,this)),k(Mn,this,new C)}close(){var e;(e=j(Mn,this))==null||e.resolve(j(jn,this)),k(Mn,this,void 0)}waitFor(e){var t=this;return N(function*(){if(e(j(jn,t)))return j(jn,t);for(;;){let[n,r]=t.value();if(!r)throw Error(`ObservableValue was closed while waiting for condition`);let i=yield r;if(e(i))return i}})()}[An](){var e=this;return Dn(function*(){for(;;){let[t,n]=e.value();if(yield t,!n)return;yield V(n)}})()}}})),Fn,In=n((()=>{B(),Fn=(e,t)=>{let n=z({},e);return typeof n==`object`&&t.forEach(e=>{delete n[e]}),n}})),Ln=n((()=>{})),Rn,zn,Bn=n((()=>{h(),zn=class{constructor(){m(this,`pendingTimeouts`,new Set),m(this,`pendingIntervals`,new Set),m(this,`clearTimeout`,e=>{this.pendingTimeouts.delete(e)&&window.clearTimeout(e)}),m(this,`clearInterval`,e=>{this.pendingIntervals.delete(e)&&window.clearInterval(e)}),m(this,`setTimeout`,(e,t,...n)=>{let r=window.setTimeout(()=>{e(...n),this.clearTimeout(r)},t);return this.pendingTimeouts.add(r),r}),m(this,`setInterval`,(e,t,...n)=>{let r=window.setInterval(()=>{e(...n)},t);return this.pendingIntervals.add(r),r}),m(this,`unload`,()=>{this.pendingIntervals.forEach(this.clearInterval),this.pendingTimeouts.forEach(this.clearTimeout)})}},Rn=zn,m(zn,`create`,()=>new Rn)})),Vn,Hn,Un,Wn,Gn=n((()=>{Vn=(e,t=Date.now())=>{let n=e.length;if(n>0){let r=e[n-1];r.end||(r.end=t)}},Hn=(e,t=Date.now())=>{Vn(e),e.push({start:t})},Un=e=>e.reduce((e,t)=>{var n;return e+(((n=t.end)==null?Date.now():n)-t.start)},0),Wn=(e,t,n=Date.now())=>e.reduce((e,r)=>{var i;let a=Math.max(n-t,r.start),o=(i=r.end)==null?n:i;return Math.max(0,o-a)+e},0)}));function Kn(e){try{return e()}catch(e){return e}}var qn=n((()=>{})),Jn,Yn=n((()=>{Jn=e=>{try{return JSON.parse(e)}catch(e){return}}})),Xn=n((()=>{})),Zn,Qn=n((()=>{oe(),h(),B(),Zn=class{constructor(){var e;m(this,`highEntropyValues`,void 0),(e=self.navigator.userAgentData)==null||e.getHighEntropyValues([`architecture`,`model`,`platformVersion`,`fullVersionList`]).then(e=>{this.highEntropyValues=e}).catch(S)}getUserAgentInformation(){var e;let t=window.location.origin,n=!t||t===`null`?``:`${window.location.pathname}${window.location.search}`.substring(0,1e3),r={locationOrigin:window.location.origin,locationPath:n,ancestorOrigins:((e=window.location.ancestorOrigins)==null?void 0:e.length)>0?Array.from(window.location.ancestorOrigins):void 0,hardwareConcurrency:navigator.hardwareConcurrency,deviceMemory:navigator.deviceMemory};if(self.navigator.userAgentData&&this.highEntropyValues){var i,a,o,s,c;let e=[...(i=this.highEntropyValues.brands)==null?[]:i];e.sort((e,t)=>e.brand.localeCompare(t.brand));let t=[...(a=this.highEntropyValues.fullVersionList)==null?[]:a];t.sort((e,t)=>e.brand.localeCompare(t.brand));let n=t.map(e=>e.version),l=e.map(e=>e.brand),u=e.map(e=>e.version),d=parseInt((o=(s=this.highEntropyValues.platformVersion)==null?void 0:s.split(`.`)[0])==null?`1`:o,10);return z({userAgentLegacy:window.navigator.userAgent,ua:{browser:{brands:l,fullVersionBrands:n,majorVersions:u},device:this.highEntropyValues.model||`Other`,os:{family:this.highEntropyValues.platform||`Other`,version:(c=this.highEntropyValues.platformVersion)==null?`1`:c,major_version:Number.isFinite(d)?d:0}}},r)}else return z({userAgent:window.navigator.userAgent},r)}}})),$n,er=n((()=>{$n=()=>{let e=[...Array(256).keys()].map(e=>e.toString(16).padStart(2,`0`)),t=crypto.getRandomValues(new Uint8Array(16));return t[6]=t[6]&15|64,t[8]=t[8]&63|128,[...t.entries()].map(([t,n])=>[4,6,8,10].includes(t)?`-${e[n]}`:e[n]).join(``)}})),tr,nr,rr=n((()=>{P(),tr=function(){var e=N(function*(e){return new Promise(t=>setTimeout(t,e))});return function(t){return e.apply(this,arguments)}}(),nr=function(){var e=N(function*(e,t=Error(`Timeout`)){return new Promise((n,r)=>setTimeout(()=>r(t),e))});return function(t){return e.apply(this,arguments)}}(),function(){var e=N(function*(e,t){throw yield e,Error(t)});return function(t,n){return e.apply(this,arguments)}}()})),H=n((()=>{ae(),ye(),xe(),Ce(),Oe(),Pe(),Ie(),Re(),rt(),rt(),Dt(),Ae(),kt(),It(),se(),Lt(),zt(),Vt(),ce(),Ht(),Xt(),Zt(),Be(),sn(),yn(),xn(),Sn(),Cn(),oe(),Pn(),In(),Ln(),Pt(),un(),Bn(),Gn(),qn(),Yn(),Xn(),Qn(),er(),rr()}));H(),h(),P();var ir=class extends Bt{constructor(e){super(),m(this,`config`,void 0),m(this,`hlsUrl`,void 0),m(this,`element`,void 0),m(this,`connectingTimeout`,void 0),m(this,`castingAvailable`,!1),m(this,`updateAuthenticationToken`,e=>{this.config.authenticationToken=e,this.hlsUrl=this.getHlsUrl(),this.castingAvailable&&(this.element.src=this.hlsUrl)}),m(this,`unload`,()=>{this.element&&(this.element.removeEventListener(`webkitplaybacktargetavailabilitychanged`,this.onAirPlayAvailable),this.element.removeEventListener(`webkitcurrentplaybacktargetiswirelesschanged`,this.onAirPlayPlaybackChanged),this.element.remove())}),m(this,`onAirPlayAvailable`,e=>{switch(e.availability){case`available`:this.castingAvailable=!0,this.element.src!==this.hlsUrl&&this.checkHlsUrl(this.hlsUrl).then(e=>{e&&(this.element.src=this.hlsUrl,this.emit(`available`))});break;case`not-available`:this.castingAvailable=!1;break;default:break}}),m(this,`onAirPlayPlaybackChanged`,()=>{window.clearTimeout(this.connectingTimeout),this.element.webkitCurrentPlaybackTargetIsWireless?(this.emit(`connected`),this.element.style.display=`block`,this.element.paused&&this.element.play()):(this.emit(`disconnected`),this.element.pause(),this.element.src=``,this.element.src=this.hlsUrl,this.element.style.display=`none`)}),this.config=e,this.hlsUrl=this.getHlsUrl(),this.element=document.createElement(`video`),this.element.style.position=`absolute`,this.element.style.top=`0`,this.element.style.bottom=`0`,this.element.style.left=`0`,this.element.style.right=`0`,this.element.style.width=`100%`,this.element.style.height=`100%`,this.element.style.zIndex=`1001`,this.element.style.display=`none`,this.element.id=`vindral-airplay-element`,this.element.slot=`overlay`,this.element.playsInline=!0,this.element.controls=!0,this.element.preload=`metadata`,this.element.addEventListener(`webkitplaybacktargetavailabilitychanged`,this.onAirPlayAvailable),this.element.addEventListener(`webkitcurrentplaybacktargetiswirelesschanged`,this.onAirPlayPlaybackChanged),this.config.container.appendChild(this.element)}get casting(){return this.element.webkitCurrentPlaybackTargetIsWireless}set channelId(e){}showPlaybackTargetPicker(){`webkitShowPlaybackTargetPicker`in this.element&&this.castingAvailable&&(this.element.paused&&(this.element.play().catch(S),this.connectingTimeout=window.setTimeout(()=>{this.casting||(this.element.pause(),this.element.src=``,this.element.src=this.hlsUrl)},3e4)),this.element.webkitShowPlaybackTargetPicker())}static isAirPlaySupported(){return!!window.WebKitPlaybackTargetAvailabilityEvent}getHlsUrl(){let e=new URL(`/api/hls?channelId=${this.config.channelId}`,this.config.url);return this.config.authenticationToken&&e.searchParams.set(`authenticationToken`,this.config.authenticationToken),e.toString()}checkHlsUrl(e){return N(function*(){try{return(yield fetch(e,{method:`HEAD`})).ok}catch(e){return!1}})()}};H(),h(),P();var ar=class extends Bt{constructor(e){var t;super(),t=this,m(this,`state`,`not casting`),m(this,`config`,void 0),m(this,`unloaded`,!1),m(this,`updateAuthenticationToken`,e=>{this.config&&(this.config.options.authenticationToken=e,this.send({type:`updateAuthToken`,token:e}))}),m(this,`unload`,()=>{var e;this.unloaded=!0,(e=this.getSession())==null||e.removeMessageListener(`urn:x-cast:com.vindral.castdata`,this.onMessage)}),m(this,`init`,N(function*(){return new Promise((e,n)=>{let r=!1,i=setTimeout(()=>{r=!0,n()},1e4);window.__onGCastApiAvailable=a=>{if(r){r=!1;return}if(clearTimeout(i),!a)return n();setTimeout(()=>{try{t.onGCastApiAvailable(),e()}catch(e){n()}},1e3)},t.castLibrariesAdded()&&window.cast?window.__onGCastApiAvailable(!0):t.verifyCastLibraries()})})),m(this,`start`,N(function*(){var e;yield(e=t.getInstance())==null?void 0:e.requestSession()})),m(this,`stop`,()=>{var e;(e=this.getSession())==null||e.endSession(!0)}),m(this,`getReceiverName`,()=>{var e;return((e=this.getSession())==null||(e=e.getCastDevice())==null?void 0:e.friendlyName)||void 0}),m(this,`onGCastApiAvailable`,()=>{var e;let t=this.getInstance();if(!t)throw`cast context should exist`;let n=t.getSessionState(),r=((e=this.config)==null?void 0:e.receiverApplicationId)||void 0;t.setOptions({receiverApplicationId:r,autoJoinPolicy:chrome.cast.AutoJoinPolicy.TAB_AND_ORIGIN_SCOPED,resumeSavedSession:!0}),t.addEventListener(cast.framework.CastContextEventType.SESSION_STATE_CHANGED,this.onSessionStateChanged),n===cast.framework.SessionState.SESSION_STARTED&&setTimeout(()=>{this.state=`casting`,this.emit(`resumed`)})}),m(this,`send`,e=>{var t;(t=this.getSession())==null||t.sendMessage(`urn:x-cast:com.vindral.castdata`,e)}),m(this,`onMessage`,(e,t)=>{if(e===`urn:x-cast:com.vindral.castdata`)try{let e=JSON.parse(t);switch(e.type){case`metadata`:this.emit(`metadata`,e.metadata);break;case`serverWallclockTime`:this.emit(`server wallclock time`,e.serverWallclockTime);break;default:break}}catch(e){}}),m(this,`onSessionStarted`,()=>{var e;(e=this.getSession())==null||e.addMessageListener(`urn:x-cast:com.vindral.castdata`,this.onMessage),this.send({type:`start`,config:this.config})}),m(this,`onSessionStateChanged`,e=>{if(!this.unloaded)switch(e.sessionState){case cast.framework.SessionState.SESSION_START_FAILED:this.state=`not casting`,this.emit(`failed`);break;case cast.framework.SessionState.SESSION_ENDED:this.state=`not casting`,this.emit(`disconnected`);break;case cast.framework.SessionState.SESSION_ENDING:break;case cast.framework.SessionState.SESSION_RESUMED:this.onSessionStarted(),this.state=`casting`,this.emit(`resumed`);break;case cast.framework.SessionState.SESSION_STARTED:this.onSessionStarted(),this.state=`casting`,this.emit(`connected`);break;case cast.framework.SessionState.SESSION_STARTING:break;default:break}}),m(this,`getInstance`,()=>{var e;return(e=window.cast)==null?void 0:e.framework.CastContext.getInstance()}),m(this,`getSession`,()=>{var e;return(e=this.getInstance())==null?void 0:e.getCurrentSession()}),m(this,`castLibrariesAdded`,()=>!!(document.querySelector(`#vindralCastFrameworkLib`)&&document.querySelector(`#vindralCastSenderLib`))),m(this,`verifyCastLibraries`,()=>{if(this.castLibrariesAdded())return;let e=document.createElement(`script`);e.type=`text/javascript`,e.id=`vindralCastFrameworkLib`,e.src=`//www.gstatic.com/cast/sdk/libs/sender/1.0/cast_framework.js`,document.head.appendChild(e);let t=document.createElement(`script`);t.type=`text/javascript`,t.id=`vindralCastSenderLib`,t.src=`//www.gstatic.com/cv/js/sender/v1/cast_sender.js`,document.head.appendChild(t)}),this.config=e}get casting(){return this.state===`casting`}get volume(){var e,t;return(e=(t=this.getSession())==null?void 0:t.getVolume())==null?0:e}set volume(e){var t;(t=this.getSession())==null||t.setVolume(e)}get language(){var e;return(e=this.config)==null||(e=e.options)==null?void 0:e.language}set language(e){this.config&&(this.config.options.language=e,this.send({type:`setLanguage`,language:e}))}get channelId(){var e;return((e=this.config)==null?void 0:e.options.channelId)||``}set channelId(e){this.config&&(this.config.options.channelId=e,this.send({type:`setChannelId`,channelId:e}))}},or=e=>{switch(e){case`h264`:case`h265`:case`av1`:return`video`;case`aac`:case`opus`:case`mp3`:return`audio`;case`webvtt`:return`text`;default:throw Error(`Unknown codec`)}};function sr(e){if(e.startsWith(`opus`))return`opus`;if(e.startsWith(`mp4a`))return`aac`;if(e.startsWith(`avc1`))return`h264`;if(e.startsWith(`hvc1`)||e.startsWith(`hev1`))return`h265`;if(e.startsWith(`av01`))return`av1`;if(e.startsWith(`webvtt`))return`webvtt`}H();function cr(e){return!(typeof e.edges[0]==`string`||e.channels[0]&&!(`catalog`in e.channels[0]))}function lr(e){return e.tracks.filter(e=>!!e.codec).filter(e=>sr(e.codec||``)).map((e,t)=>{let n=e.codec,r=e.bitrate;be(n,`codec is required`),be(r!==void 0,`bitrate is required`);let i=sr(n);if(be(i,`codec is required`),or(i)===`audio`){let a=e.samplerate||0;return{track:e,id:t,codec:i,codecString:n,bitRate:r,channels:e.channelConfig===`stereo`?2:1,sampleRate:a,language:e.language}}return or(i)===`text`?{track:e,id:t,bitRate:0,codec:i,kind:`subtitles`,codecString:n,label:e.label,language:e.language}:(be(e.width,`width is required`),be(e.height,`width is required`),be(e.framerate,`framerate is required`),{track:e,id:t,codec:i,bitRate:r,codecString:n,width:e.width,height:e.height,frameRate:e.framerate})}).sort((e,t)=>e.bitRate-t.bitRate)}var ur=e=>`width`in e&&typeof e.width==`number`,dr=e=>`sampleRate`in e&&typeof e.sampleRate==`number`,fr=e=>{switch(e.codec){case`opus`:return`audio/mp4; codecs="opus"`;case`mp3`:return`audio/mpeg`;case`webvtt`:return`text/vtt`;case`aac`:return e.codecString?`audio/mp4; codecs="${e.codecString}"`:`audio/mp4`;case`h264`:case`h265`:return e.codecString?`video/mp4; codecs="${e.codecString}"`:`video/mp4`;case`av1`:return e.codecString?`video/mp4; codecs="${e.codecString}"`:`video/mp4`}},pr=()=>2**53-1,mr=()=>({width:2**53-1,height:2**53-1}),hr=e=>!(typeof e!=`object`||!e||!(`type`in e));H();var gr={sizeBasedResolutionCapEnabled:!0,pictureInPictureEnabled:!0,abrEnabled:!0,burstEnabled:!1,mseEnabled:!0,mseOpusEnabled:!0,muted:!1,volume:1,minBufferTime:1500,maxBufferTime:1500,logLevel:$t.OFF,maxSize:mr(),maxVideoBitRate:pr(),maxAudioBitRate:pr(),maxInitialBitRate:2.5*1e3*1e3,tags:[],media:`audio+video`,poster:!0,reconnectHandler:e=>e.reconnectRetries<30,iosWakeLockEnabled:!1,telemetryEnabled:!0,streamToMediaElementEnabled:!1,iosMediaElementEnabled:!1,pauseSupportEnabled:!0,webcodecsHardwareAcceleration:`no-preference`,offscreenCanvasEnabled:void 0,advanced:{},videoCodecs:[`av1`,`h264`,`h265`],webtransportEnabled:!0},_r=e=>{e.width=320,e.height=180,e.style.width=`100%`,e.style.position=`relative`,e.style.backgroundColor=`#000`};R(),E(),h(),B(),M(),A(),O();var vr={backgroundColor:`rgba(0,0,0,0.6)`,textPadding:8,fontSize:`28px`,lineGap:16},yr=new WeakMap,br=new WeakMap,xr=new WeakMap,Sr=new WeakMap,Cr=new WeakSet,wr=class{constructor(){L(this,Cr),T(this,yr,[]),T(this,br,document.createElement(`canvas`)),T(this,xr,void 0),T(this,Sr,window.devicePixelRatio||1),m(this,`config`,z({},vr));let e=j(br,this).getContext(`2d`,{alpha:!0});if(!e)throw Error(`Failed to create 2d context`);k(xr,this,e),D(Cr,this,Er).call(this)}get canvas(){return j(br,this)}setActiveCues(e){k(yr,this,e)}render(e,t=!1){let n=j(yr,this).flatMap(t=>t.text.split(`
2
- `).flatMap(t=>D(Cr,this,Dr).call(this,t,e.width)).map(e=>{D(Cr,this,Er).call(this);let t=j(xr,this).measureText(e);return{text:e,measurement:t,size:{height:t.fontBoundingBoxAscent+t.fontBoundingBoxDescent+this.config.textPadding*2,width:t.width+this.config.textPadding*2}}})),r=Math.max(...n.map(e=>e.size.width)),i=n.reduce((e,{size:t})=>e+t.height,0)+(n.length-1)*this.config.lineGap,a=0;D(Cr,this,Tr).call(this,r,i),j(xr,this).clearRect(0,0,j(br,this).width,j(br,this).height);for(let{size:e,text:t}of n)D(Cr,this,Er).call(this),j(xr,this).fillStyle=this.config.backgroundColor,j(xr,this).fillRect(0,a,e.width,e.height),D(Cr,this,Er).call(this),j(xr,this).fillText(t,this.config.textPadding,a+this.config.textPadding),a+=e.height+this.config.lineGap;t&&(j(xr,this).strokeStyle=`red`,j(xr,this).strokeRect(0,0,e.width,j(br,this).height))}};function Tr(e,t){j(br,this).width=e*j(Sr,this),j(br,this).height=t*j(Sr,this),j(xr,this).setTransform(j(Sr,this),0,0,j(Sr,this),0,0),this.canvas.style.width=`${e}px`,this.canvas.style.height=`${t}px`}function Er(){j(xr,this).fillStyle=`white`,j(xr,this).textAlign=`left`,j(xr,this).textBaseline=`top`,j(xr,this).font=`${this.config.fontSize} sans-serif`}function Dr(e,t){let n=[],r=e.split(` `),i=``;for(;r.length>0;){D(Cr,this,Er).call(this);let e=0;for(;j(xr,this).measureText(i+(i.length>0?` `:``)+r[0]).width+this.config.textPadding*2<=t&&r.length>0;)e++,i+=(i.length>0?` `:``)+r.shift();if(e===0){n.push(r.shift()||``),i=``;continue}n.push(i),i=``}return n}function Or(e,t){let n=t*.05,r=e*.035;return`${Math.max(Math.round(Math.min(n,r)),16)}px`}function kr(e){var t;let{subtitleWidth:n,subtitleHeight:r,canvasWidth:i,canvasHeight:a,containerWidth:o,bottomPadding:s}=e,c=(t=e.baseMargin)==null?20:t,l=i/o,u=n*l,d=r*l;return{drawWidth:u,drawHeight:d,x:(i-u)/2,y:a-d-(s+c)*l}}function Ar(e,t,n){return{scaleX:2*e.drawWidth/t,scaleY:2*e.drawHeight/n,translateX:2*e.x/t-1,translateY:1-2*e.y/n}}H(),h();var jr={width:256,height:144},Mr=class extends Bt{constructor(){super(),m(this,`canvas`,document.createElement(`canvas`)),m(this,`context`,null),m(this,`size`,jr),m(this,`hasWarnedNoVideoFrame`,!1),m(this,`subtitleRenderer`,null),m(this,`hasActiveSubtitles`,!1),m(this,`load`,()=>{if(this.hasWarnedNoVideoFrame=!1,this.context=this.canvas.getContext(`2d`,{alpha:!1,desynchronized:!0}),!this.context)throw Error(`Failed to get 2D rendering context`);this.setSize(jr)}),m(this,`unload`,()=>{this.context=null,this.subtitleRenderer=null,this.hasActiveSubtitles=!1,this.setSize(jr)}),m(this,`setActiveCues`,(e,t)=>{this.subtitleRenderer||(this.subtitleRenderer=new wr),this.subtitleRenderer.config.fontSize=Or(t.width,t.height),this.subtitleRenderer.setActiveCues(e),this.subtitleRenderer.render(t),this.hasActiveSubtitles=e.length>0}),m(this,`render`,(e,t=0)=>{if(!this.context)return;if(!e.videoFrame){this.hasWarnedNoVideoFrame||(console.warn(`[VideoFrameCanvas2DRenderer] No VideoFrame in sample, cannot render`),this.hasWarnedNoVideoFrame=!0);return}let n=e.videoFrame;this.setSize({width:e.width,height:e.height});try{this.context.drawImage(n,0,0,this.canvas.width,this.canvas.height),this.renderSubtitles(t)}catch(e){this.emit(`context lost`,e instanceof Error?e:Error(`Failed to render VideoFrame`))}}),m(this,`renderSubtitles`,e=>{if(!this.hasActiveSubtitles||!this.subtitleRenderer||!this.context)return;let t=this.subtitleRenderer.canvas;if(t.width===0||t.height===0)return;let n=window.devicePixelRatio||1,r=this.canvas.clientWidth||this.canvas.width,i=kr({subtitleWidth:t.width/n,subtitleHeight:t.height/n,canvasWidth:this.canvas.width,canvasHeight:this.canvas.height,containerWidth:r,bottomPadding:e});this.context.drawImage(t,i.x,i.y,i.drawWidth,i.drawHeight)}),m(this,`setSize`,e=>{e.width===this.size.width&&e.height===this.size.height||(this.size=e,this.canvas.width=e.width,this.canvas.height=e.height,this.context&&(this.context.fillStyle=`#000`,this.context.fillRect(0,0,e.width,e.height)))}),_r(this.canvas)}},Nr=`
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports):typeof define==`function`&&define.amd?define([`exports`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.Vindral={}))})(this,function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=Object.defineProperty,n=(e,t)=>()=>(e&&(t=e(e=0)),t),r=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},i=`_buffering_1ccif_1`,a=`_hidden_1ccif_25`,o=`_scaleout_1ccif_1`,s={buffering:i,"buffering-fullscreen":`_buffering-fullscreen_1ccif_16`,hidden:a,"buffering-indicator":`_buffering-indicator_1ccif_31`,scaleout:o};function c(e){"@babel/helpers - typeof";return c=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},c(e)}var l=n((()=>{}));function u(e,t){if(c(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(c(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var d=n((()=>{l()}));function f(e){var t=u(e,`string`);return c(t)==`symbol`?t:t+``}var p=n((()=>{l(),d()}));function m(e,t,n){return(t=f(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var h=n((()=>{p()}));h();var g=class{constructor(e){m(this,`attach`,e=>{this.detach(),e.appendChild(this.element)}),m(this,`attachBefore`,(e,t)=>{this.detach(),e.insertBefore(this.element,t)}),m(this,`detach`,()=>this.element.remove()),this.element=e}};h();var _,v,ee,y,b=(_=s.hidden)==null?``:_,te=(v=s.buffering)==null?``:v,ne=(ee=s[`buffering-fullscreen`])==null?``:ee,re=(y=s[`buffering-indicator`])==null?``:y,ie=class extends g{constructor(){super(document.createElement(`div`)),m(this,`indicator`,document.createElement(`div`)),m(this,`isHidden`,()=>this.element.classList.contains(b)),m(this,`setHidden`,e=>e?this.hide():this.show()),m(this,`hide`,()=>this.element.classList.add(b)),m(this,`show`,()=>this.element.classList.remove(b)),m(this,`fullscreen`,e=>{e?this.element.classList.add(ne):this.element.classList.remove(ne)}),this.element.className=te,this.indicator.className=re,this.element.appendChild(this.indicator)}},ae,oe=n((()=>{h(),ae=class{constructor(e){m(this,`maxSize`,0),m(this,`size`,0),m(this,`buffers`,[]),m(this,`_borrowedBuffers`,0),m(this,`get`,e=>{let t=this.buffers.pop();return this._borrowedBuffers++,this.size<e||!t?(this.buffers=[],this.size=e,new ArrayBuffer(e)):t}),m(this,`reclaim`,e=>{this._borrowedBuffers=Math.max(0,this._borrowedBuffers-1),!(e.byteLength<this.size)&&(this.buffers.length>=this.maxSize||this.buffers.push(e))}),this.maxSize=e}get bufferSize(){return this.size}get poolSize(){return this.buffers.length}get borrowedBuffers(){return this._borrowedBuffers}}})),x,se=n((()=>{x=()=>{}})),S,ce=n((()=>{se(),h(),S=class e{constructor(){m(this,`promise`,void 0),m(this,`resolved`,void 0),m(this,`resolve`,void 0),m(this,`reject`,void 0),m(this,`pending`,!0),this.promise=new Promise((e,t)=>{this.resolve=t=>{this.pending=!1,this.resolved=t,e(t)},this.reject=e=>{this.pending=!1,t(e)}}),this.promise.catch(x)}static resolved(t){let n=new e;return n.resolve(t),n}static fromPromise(t){let n=new e;return n.promise=t,t.then(e=>{n.pending=!1,n.resolved=e},e=>{n.pending=!1,n.reject(e)}),n}}})),C,le=n((()=>{h(),C=class{constructor(e=50){m(this,`maxSize`,void 0),m(this,`values`,[]),m(this,`start`,0),m(this,`size`,()=>this.values.length-this.start),m(this,`compact`,()=>{if(this.start!==0){if(this.start>=this.values.length){this.values=[],this.start=0;return}this.start<32&&this.start*2<this.values.length||(this.values=this.values.slice(this.start),this.start=0)}}),m(this,`push`,e=>{this.isFull()&&(this.start++,this.compact()),this.values.push(e)}),m(this,`clear`,()=>{this.values=[],this.start=0}),m(this,`pop`,()=>{if(this.isEmpty())return;let e=this.values[this.start];return this.start++,this.compact(),e}),m(this,`popLast`,()=>{if(this.isEmpty())return;let e=this.values.pop();return this.start>=this.values.length&&this.clear(),e}),m(this,`peekFirst`,()=>this.isEmpty()?void 0:this.values[this.start]),m(this,`peekLast`,()=>this.isEmpty()?void 0:this.values[this.values.length-1]),m(this,`isFull`,()=>this.size()>=this.maxSize),m(this,`isEmpty`,()=>this.size()===0),m(this,`items`,()=>this.start===0?this.values:this.values.slice(this.start)),m(this,`filterPop`,e=>{for(;!this.isEmpty();){let t=this.peekFirst();if(t===void 0||e(t))return;this.pop()}}),this.maxSize=e}}}));function ue(e,t){if(t.has(e))throw TypeError(`Cannot initialize the same private elements twice on an object`)}var de=n((()=>{}));function w(e,t,n){ue(e,t),t.set(e,n)}var T=n((()=>{de()}));function E(e,t,n){if(typeof e==`function`?e===t:e.has(t))return arguments.length<3?t:n;throw TypeError(`Private element is not present on this object`)}var D=n((()=>{}));function O(e,t,n){return e.set(E(e,t),n),n}var k=n((()=>{D()}));function A(e,t){return e.get(E(e,t))}var j=n((()=>{D()}));function fe(e,t,n,r,i,a,o){try{var s=e[a](o),c=s.value}catch(e){n(e);return}s.done?t(c):Promise.resolve(c).then(r,i)}function M(e){return function(){var t=this,n=arguments;return new Promise(function(r,i){var a=e.apply(t,n);function o(e){fe(a,r,i,o,s,`next`,e)}function s(e){fe(a,r,i,o,s,`throw`,e)}o(void 0)})}}var N=n((()=>{}));function pe(e){let t=new ye(e);return[t,t]}var me,he,ge,_e,ve,ye,be=n((()=>{ce(),le(),se(),T(),k(),j(),N(),he=new WeakMap,ge=new WeakMap,_e=new WeakMap,ve=new WeakMap,me=Symbol.asyncIterator,ye=class{constructor(e){w(this,he,void 0),w(this,ge,new S),w(this,_e,void 0),w(this,ve,!1),O(he,this,new C(e))}isFull(){return A(he,this).isFull()}close(){var e;(e=A(_e,this))==null||e.resolve(),O(ve,this,!0)}abort(e){var t,n;(t=A(_e,this))==null||t.promise.catch(x),(n=A(_e,this))==null||n.reject(e)}push(e){var t=this;return M(function*(){var n;A(he,t).isFull()&&(yield A(ge,t).promise),A(he,t).push(e),(n=A(_e,t))==null||n.resolve(),O(_e,t,new S)})()}pop(){var e=this;return M(function*(){for(;!(A(ve,e)&&A(he,e).isEmpty());){var t;let n=A(he,e).pop();if(n)return A(ge,e).resolve(),O(ge,e,new S),n;A(_e,e)||O(_e,e,new S),yield(t=A(_e,e))==null?void 0:t.promise}})()}start(e){}pull(e){var t=this;return M(function*(){let n=yield t.pop();n?e.enqueue(n):e.close()})()}cancel(e){this.abort(Error(e))}next(){var e=this;return M(function*(){let t=yield e.pop().catch(()=>void 0);return t?{done:!1,value:t}:{done:!0,value:void 0}})()}return(){return this.close(),Promise.resolve({done:!0,value:void 0})}[me](){return this}}}));function xe(e,t){if(!e)throw Error(t)}var Se=n((()=>{}));function P(e){return Ce?BigInt(e):typeof BigInt==`function`&&typeof e==`bigint`?Number(e):e}var Ce,we=n((()=>{Ce=typeof DataView.prototype.getBigUint64==`function`})),Te,Ee,De,Oe,ke=n((()=>{T(),h(),j(),k(),Te=new WeakMap,Ee=new WeakMap,De=new WeakMap,Oe=class{constructor(e,t=0){w(this,Te,void 0),w(this,Ee,void 0),w(this,De,void 0),m(this,`position`,()=>A(De,this)),m(this,`peekBit`,()=>this.getBit(A(Ee,this),A(De,this))),m(this,`readBit`,()=>{var e;let t=this.peekBit();return O(De,this,(e=A(De,this),e++,e)),t}),m(this,`readBits`,e=>{let t=0;for(let i=0;i<e;i++){var n,r;t=t<<1|(this.getBit(A(Ee,this),(O(De,this,(n=A(De,this),r=n++,n)),r))?1:0)}return t}),m(this,`remainingBits`,()=>A(Ee,this).byteLength*8-A(De,this)),m(this,`readSignedExpGolomb`,()=>{let e=this.readUnsignedExpGolomb();return e&1?(e+1)/2:-(e/2)}),m(this,`readUnsignedExpGolomb`,()=>{var e,t;let n=0;for(;this.getBit(A(Ee,this),(O(De,this,(e=A(De,this),t=e++,e)),t))===0;)n++;let r=1<<n;for(let e=n-1;e>=0;e--){var i,a;r|=this.getBit(A(Ee,this),(O(De,this,(i=A(De,this),a=i++,i)),a))<<e}return r-1}),m(this,`getBit`,(e,t)=>{if(e.byteLength*8<=t)throw Error(`BitReader: Out of bounds`);return e[t>>3]>>7-(t&7)&1}),O(Te,this,e),O(Ee,this,new Uint8Array(A(Te,this))),O(De,this,t)}bytes(){return A(Ee,this)}}})),Ae,je=n((()=>{Ae=(e,t,n)=>{let r=0;for(let i=t;i<=n;i++)if(i===t){let t=e[i];r+=t&127,t&128&&(r-=128)}else r=r*256+e[i];return r}})),F,Me,Ne,Pe,Fe=n((()=>{je(),T(),k(),j(),F=new WeakMap,Me=new WeakMap,Ne=new WeakMap,Pe=class{constructor(e){w(this,F,void 0),w(this,Me,void 0),w(this,Ne,void 0),O(Me,this,e),O(Ne,this,new DataView(e.buffer,e.byteOffset,e.byteLength)),O(F,this,0)}position(){return A(F,this)}byteOffset(){return A(Me,this).byteOffset+A(F,this)}buffer(){return A(Me,this)}remaining(){return A(Me,this).length-A(F,this)}readUint8(){let e=A(Ne,this).getUint8(A(F,this));return O(F,this,A(F,this)+1),e}readUint24(){let e=A(Ne,this).getUint32(A(F,this))>>8&16777215;return O(F,this,A(F,this)+3),e}readUint16(){let e=A(Ne,this).getUint16(A(F,this));return O(F,this,A(F,this)+2),e}readUint32(){let e=A(Ne,this).getUint32(A(F,this));return O(F,this,A(F,this)+4),e}readUint64(){let e=Ae(A(Me,this),A(F,this),A(F,this)+7);return O(F,this,A(F,this)+8),e}readBytes(e){let t=A(Me,this).subarray(A(F,this),A(F,this)+e);return O(F,this,A(F,this)+e),t}readRemaining(){return this.readBytes(this.remaining())}readUtf8String(){let e=[],t;for(;(t=this.readUint8())!==0&&(e.push(t),this.remaining()!==0););return new TextDecoder().decode(new Uint8Array(e))}}})),Ie,Le=n((()=>{h(),Ie=class{constructor(e=100){m(this,`internalBuffer`,void 0),m(this,`view`,void 0),m(this,`uint8`,void 0),m(this,`_position`,0),m(this,`_end`,0),this.internalBuffer=new ArrayBuffer(e),this.view=new DataView(this.internalBuffer),this.uint8=new Uint8Array(this.internalBuffer)}position(){return this._position}seek(e){this._position=Math.max(0,Math.min(this._end,e))}seekToEnd(){this._position=this._end}writeUint8(e){this.writeAndMove(e,1)}writeUint16(e){this.writeAndMove(e,2)}writeUint24(e){this.writeAndMove(e,3)}writeUint32(e){this.writeAndMove(e,4)}writeUint64(e){let t=Math.floor(e/4294967296),n=(e&4294967295)>>>0;this.writeUint32(t),this.writeUint32(n)}writeUint32At(e,t){this.view.setUint32(e,t)}writeBytes(e){this.resizeIfNeeded(this.position()+e.byteLength),this.uint8.set(e,this.position()),this._position+=e.byteLength,this._end=Math.max(this._end,this._position)}buffer(){return this.internalBuffer.slice(0,this._end)}bufferExact(){return this._end===this.internalBuffer.byteLength?this.internalBuffer:this.internalBuffer.slice(0,this._end)}write(e,t){switch(this.resizeIfNeeded(this.position()+t),t){case 1:this.view.setUint8(this.position(),e);break;case 2:this.view.setUint16(this.position(),e);break;case 3:this.view.setUint8(this.position(),e>>16&255),this.view.setUint8(this.position()+1,e>>8&255),this.view.setUint8(this.position()+2,e&255);break;case 4:this.view.setUint32(this.position(),e);break}}writeAndMove(e,t){this.write(e,t),this._position+=t,this._end=Math.max(this._end,this._position)}resizeIfNeeded(e){if(e>this.internalBuffer.byteLength){let t=Math.max(e,this.internalBuffer.byteLength*2),n=new ArrayBuffer(t),r=new Uint8Array(n);r.set(this.uint8),this.internalBuffer=n,this.view=new DataView(this.internalBuffer),this.uint8=r}}}}));function Re(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n.buffer}var ze=n((()=>{}));function Be(){let e=self.MediaSource,t=self.ManagedMediaSource;return e==null?t:e}var Ve=n((()=>{}));function He(){if(/(iPhone|iPod|iPad)/i.test(Ge)){var e;return Ge==null||(e=Ge.match(/OS [\d_]+/i))==null||(e=e[0])==null?void 0:e.substring(3).split(`_`).map(e=>parseInt(e,10))[0]}}function Ue(){if(/^((?!chrome|android).)*safari/i.test(Ge)){var e;return(e=Ge.match(/version\/([\d.]+)/))==null||(e=e[1])==null?void 0:e.split(`.`).map(e=>parseInt(e,10))[0]}}var We,Ge,Ke,qe,Je,Ye,Xe,Ze,Qe,$e,et,tt,nt,rt,it=n((()=>{Ve(),We=/(android|bbd+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up.(browser|link)|vodafone|wap|windows ce|xda|xiino\/i.test(a)||\/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-\//i,Ge=navigator.userAgent.toLowerCase(),Ke=We.test(Ge),qe=()=>{let e=document.createElement(`video`);return e.canPlayType(`application/vnd.apple.mpegURL`)!==``||e.canPlayType(`audio/mpegurl`)!==``},Je=()=>{try{if(typeof WebAssembly==`object`&&typeof WebAssembly.instantiate==`function`){let e=new WebAssembly.Module(Uint8Array.of(0,97,115,109,1,0,0,0));if(e instanceof WebAssembly.Module)return new WebAssembly.Instance(e)instanceof WebAssembly.Instance}}catch(e){return!1}return!1},Ye=()=>Ge.indexOf(`CrKey`)!==-1,Xe=()=>navigator.platform===`MacIntel`&&navigator.maxTouchPoints===0,Ze=()=>navigator.platform===`MacIntel`&&navigator.maxTouchPoints>1,Qe=()=>$e()||Ze()?!0:/AppleWebKit/i.test(navigator.userAgent)&&!/Chrome|Chromium|Edg|OPR|Opera/i.test(navigator.userAgent),$e=()=>Ge.indexOf(`iphone`)>=0&&Ge.indexOf(`like iphone`)<0||Ge.indexOf(`ipad`)>=0&&Ge.indexOf(`like ipad`)<0||Ge.indexOf(`ipod`)>=0&&Ge.indexOf(`like ipod`)<0||Ze(),et=()=>{var e,t;return Ze()||(e=(t=Be())==null?void 0:t.isTypeSupported(`audio/mp4; codecs="opus"`))==null?!1:e},tt=()=>/^(?!.*chrome).*safari/i.test(Ge),nt=()=>typeof HTMLCanvasElement<`u`&&typeof HTMLCanvasElement.prototype.captureStream==`function`,rt=()=>{var e,t;let n=!!Be(),r=!1;return n&&(r=et()),{isMobile:Ke,supportsMp4Opus:r,supportsMediaSource:n,supportsHls:qe(),supportsWebAssembly:Je(),supportsCanvasCaptureStream:nt(),platform:{iosVersion:(e=He())==null?2**53-1:e,safariVersion:(t=Ue())==null?2**53-1:t,isIpadOS:Ze(),isMacOS:Xe(),isIOS:$e(),isWebKit:Qe()}}}})),at,ot,st,ct,lt,ut,dt,ft,pt,mt,ht,gt,_t,vt,yt,bt,xt,St,Ct,wt,Tt,Et,Dt,Ot=n((()=>{at=e=>e,ot=e=>e,st=e=>e,ct=e=>e,lt=e=>`orientation`in e?e.orientation:void 0,ut=(e=document)=>{let t=at(e);return!!(e.fullscreenElement||e.fullscreen||t.mozFullScreen||t.webkitIsFullScreen)},dt=e=>{var t,n,r,i;let a=ot(e);return((t=e.requestFullscreen)==null?void 0:t.bind(e))||((n=a.webkitRequestFullscreen)==null?void 0:n.bind(a))||((r=a.webkitEnterFullscreen)==null?void 0:r.bind(a))||((i=a.mozRequestFullScreen)==null?void 0:i.bind(a))},ft=(e,t=document)=>{var n,r;let i=at(t);return((n=t.exitFullscreen)==null?void 0:n.bind(t))||(i.webkitFullscreenElement&&i.webkitExitFullscreen?i.webkitExitFullscreen.bind(t):void 0)||(i.mozFullscreenElement&&i.mozCancelFullScreen?i.mozCancelFullScreen.bind(t):void 0)||(e?(r=ot(e).webkitExitFullscreen)==null?void 0:r.bind(e):void 0)},pt=e=>!!dt(e),mt=e=>{var t;let n=ct(e);return(t=n.requestPictureInPicture)==null?void 0:t.bind(n)},ht=(e=document)=>{var t;return(t=st(e).exitPictureInPicture)==null?void 0:t.bind(e)},gt=(e=document)=>!!st(e).pictureInPictureEnabled,_t=(e=document)=>!!st(e).pictureInPictureElement,vt=(e,t=document)=>!!mt(e)&&gt(t),yt=e=>e.pictureInPictureWindow,bt=e=>ct(e).webkitPresentationMode,xt=(e,t)=>{var n,r;(n=(r=ct(e)).webkitSetPresentationMode)==null||n.call(r,t)},St=e=>!!ct(e).webkitSetPresentationMode,Ct=(e,t)=>{if(t){e.setAttribute(`autopictureinpicture`,``);return}e.removeAttribute(`autopictureinpicture`)},wt=(e=screen)=>{var t;let n=lt(e);return n==null||(t=n.lock)==null?void 0:t.bind(n)},Tt=(e,t=screen)=>{var n;return(n=wt(t))==null?void 0:n(e)},Et=(e=screen)=>{var t,n;(t=lt(e))==null||(n=t.unlock)==null||n.call(t)},Dt=e=>{if(!e.supportsCanvasCaptureStream)return!1;if(!e.platform.isIOS)return!0;let{iosVersion:t,safariVersion:n,isIpadOS:r}=e.platform;return Number.isFinite(t)&&t!==2**53-1?t>=15:r&&Number.isFinite(n)&&n!==2**53-1?n>=15:typeof VideoDecoder<`u`}})),kt,At=n((()=>{h(),kt=class{constructor(e,t,n){m(this,`onSuccess`,void 0),m(this,`onError`,void 0),m(this,`doExecute`,void 0),this.doExecute=e,this.onSuccess=t,this.onError=n}execute(e){try{this.doExecute(e),this.onSuccess()}catch(e){this.onError(e)}}}})),jt,Mt,Nt,Pt,Ft,It=n((()=>{jt=e=>e.reduce((e,t)=>e+t,0)/e.length,Mt=e=>{if(e.length<2)return;let t=0;for(let n=1;n<e.length;n++)t+=e[n]-e[n-1];return t/(e.length-1)},Nt=e=>{if(e.length===0)return NaN;let t=Math.floor(e.length/2),n=[...e].sort((e,t)=>e-t);return e.length%2==0?(n[t-1]+n[t])/2:n[t]},Pt=e=>({last:e[e.length-1]||0,average:e.length===0?0:jt(e),max:e.length===0?0:Math.max(...e),min:e.length===0?0:Math.min(...e)}),Ft=e=>{let t=0,n=0,r=0,i=0,a=0;for(let o=0;o<e.length;o++){let{x:s,y:c}=e[o];t+=s,n+=c,r+=s*c,i+=s*s,a+=c*c}let o=(e.length*r-t*n)/(e.length*i-t*t),s=(n-o*t)/e.length;return{slope:o,intercept:s,r2:((e.length*r-t*n)/Math.sqrt((e.length*i-t*t)*(e.length*a-n*n)))**2,predict:t=>o*(e.length+t)+s}}})),Lt,Rt=n((()=>{le(),It(),h(),Lt=class{constructor(e=10){m(this,`rates`,void 0),m(this,`_total`,0),m(this,`accumulatedValues`,0),m(this,`lastTickTime`,Date.now()),m(this,`add`,e=>{this.accumulatedValues+=e,this._total+=e}),m(this,`tick`,()=>{let e=this.accumulatedValues/((Date.now()-this.lastTickTime)/1e3);this.rates.push(e),this.accumulatedValues=0,this.lastTickTime=Date.now()}),this.rates=new C(e)}get total(){return this._total}get average(){return this.rates.isEmpty()?0:jt(this.rates.items())}get minMaxAverage(){return Pt(this.rates.items())}}})),zt=n((()=>{})),Bt,Vt=n((()=>{Bt=(e,t)=>{if(e===t)return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;let n=0,r=0;for(let t in e)n+=1;for(let n in t)if(r+=1,!(n in e)||!Bt(e[n],t[n]))return!1;return n===r}})),Ht,Ut=n((()=>{h(),Ht=class{constructor(){m(this,`listeners`,{})}emit(e,t){let n=this.listeners[e];if(n){let r=!1;for(let e=0;e<n.length;e++)if(n[e].once){r=!0;break}r&&(this.listeners[e]=n.filter(e=>!e.once));let i,a=n.length;for(let e=0;e<a;e++){let r=n[e].fn(t);typeof r==`function`&&(i||(i=[]),i.push(r))}if(i)for(let e=0;e<i.length;e++)i[e]()}}off(e,t){let n=this.listeners[e];n&&(this.listeners[e]=n.filter(e=>e.fn!==t))}on(e,t){this.add(e,t,!1)}once(e,t){this.add(e,t,!0)}hasListeners(e){let t=this.listeners[e];return t!==void 0&&t.length>0}reset(){this.listeners={}}add(e,t,n){let r=this.listeners[e],i={fn:t,once:n};r?r.push(i):this.listeners[e]=[i]}}})),Wt=n((()=>{})),Gt,Kt,qt,Jt,Yt,Xt,Zt,Qt=n((()=>{Gt=1e3,Kt=Gt*1e3,qt=Kt*1e3,Jt=(e,t,n)=>e%t===0?e/t:(e/t).toFixed(n),Yt=(e,t=1)=>e>=qt?`${Jt(e,qt,t)} Gbit/s`:e>=Kt?`${Jt(e,Kt,t)} Mbit/s`:e>=Gt?`${Jt(e,Gt,t)} Kbit/s`:`${e} bit/s`,Xt=({width:e,height:t})=>`${e}x${t}`,Zt=e=>e%1e3==0?`${e/1e3} kHz`:e>1e3?`${(e/1e3).toFixed(1)} kHz`:`${e} Hz`})),$t=n((()=>{})),en,tn,nn,rn,an,on,sn,cn,ln=n((()=>{T(),h(),k(),j(),en=[`off`,`error`,`warn`,`info`,`debug`,`trace`],tn={ERROR:`error`,WARN:`warn`,INFO:`info`,DEBUG:`debug`,TRACE:`trace`,OFF:`off`},nn=new WeakMap,rn=new WeakMap,an=new WeakMap,on=new WeakMap,sn=class e{constructor({context:e,logLevel:t,debug:n}){w(this,nn,new Map),w(this,rn,``),w(this,an,!1),w(this,on,`off`),m(this,`trace`,(...e)=>{}),m(this,`debug`,(...e)=>{}),m(this,`info`,(...e)=>{}),m(this,`warn`,(...e)=>{}),m(this,`error`,(...e)=>{}),m(this,`table`,(...e)=>{}),m(this,`count`,(...e)=>{}),O(rn,this,e),O(on,this,t),O(an,this,n||!1),this.setLevel(t),this.setDebug(A(an,this))}setDebug(e){O(an,this,e);for(let[t,n]of A(nn,this))n.setDebug(e);e?(this.table=console.table.bind(console),this.count=console.count.bind(console)):(this.table=()=>{},this.count=()=>{})}setLevel(e){O(on,this,e);for(let[t,n]of A(nn,this))n.setLevel(e);let t=en.indexOf(e);for(let[e,n]of en.entries())n!==`off`&&(e<=t?this[n]=console[n].bind(console,`%c%s %c%s`,`font-weight:bold;`,n.toUpperCase(),`font-weight:normal;`,A(rn,this)):this[n]=()=>{})}createContext(t){let n=A(nn,this).get(t);if(!n){let n=new e({context:`${t}`,logLevel:A(on,this),debug:A(an,this)});return A(nn,this).set(t,n),n}return n}static get(){return cn._||(cn._=new e({context:`Vindral`,logLevel:`off`})),cn._}},cn={_:void 0}}));function un(){return typeof Symbol.asyncDispose!=`symbol`&&Object.defineProperty(Symbol,`asyncDispose`,{value:Symbol.for(`asyncDispose`)}),Symbol.asyncDispose}function dn(){return typeof Symbol.dispose!=`symbol`&&Object.defineProperty(Symbol,`dispose`,{value:Symbol.for(`dispose`)}),Symbol.dispose}var fn=n((()=>{}));function I(e,t){ue(e,t),t.add(e)}var L=n((()=>{de()}));function pn(){this.unlocker.resolve(this.value)}var mn,hn,gn,_n,vn,yn,bn,xn=n((()=>{ce(),se(),fn(),L(),h(),D(),T(),j(),k(),N(),gn=new WeakSet,mn=dn(),hn=Symbol.dispose,_n=class{constructor(e,t){I(this,gn),m(this,`value`,void 0),m(this,`unlocker`,void 0),this.value=e,this.unlocker=t}unlocked(){var e;return(e=this.unlocker)==null?void 0:e.promise}[mn](){E(gn,this,pn).call(this)}[hn](){E(gn,this,pn).call(this)}},vn=new WeakMap,yn=new WeakMap,bn=class{unsafeValue(){return A(vn,this)}constructor(e){w(this,vn,void 0),w(this,yn,new S),O(vn,this,e),A(yn,this).resolve(e)}isLocked(){return A(yn,this).pending}lock(){var e=this;return M(function*(){let t=new S;t.promise.then(t=>{O(vn,e,t)}).catch(x);let n=A(yn,e).promise.then(()=>t);return O(yn,e,t),yield n,new _n(A(vn,e),t)})()}}}));function Sn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function R(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?Sn(Object(n),!0).forEach(function(t){m(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Sn(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var z=n((()=>{h()})),Cn=n((()=>{})),wn=n((()=>{})),Tn=n((()=>{}));function En(e,t){this.v=e,this.k=t}var Dn=n((()=>{}));function B(e){return new En(e,0)}var On=n((()=>{Dn()}));function kn(e){return function(){return new An(e.apply(this,arguments))}}function An(e){var t,n;function r(t,n){try{var a=e[t](n),o=a.value,s=o instanceof En;Promise.resolve(s?o.v:o).then(function(n){if(s){var c=t===`return`?`return`:`next`;if(!o.k||n.done)return r(c,n);n=e[c](n).value}i(a.done?`return`:`normal`,n)},function(e){r(`throw`,e)})}catch(e){i(`throw`,e)}}function i(e,i){switch(e){case`return`:t.resolve({value:i,done:!0});break;case`throw`:t.reject(i);break;default:t.resolve({value:i,done:!1})}(t=t.next)?r(t.key,t.arg):n=null}this._invoke=function(e,i){return new Promise(function(a,o){var s={key:e,arg:i,resolve:a,reject:o,next:null};n?n=n.next=s:(t=n=s,r(e,i))})},typeof e.return!=`function`&&(this.return=void 0)}var jn=n((()=>{Dn(),An.prototype[typeof Symbol==`function`&&Symbol.asyncIterator||`@@asyncIterator`]=function(){return this},An.prototype.next=function(e){return this._invoke(`next`,e)},An.prototype.throw=function(e){return this._invoke(`throw`,e)},An.prototype.return=function(e){return this._invoke(`return`,e)}})),Mn,Nn,Pn,Fn,In=n((()=>{ce(),T(),k(),j(),N(),On(),jn(),Nn=new WeakMap,Pn=new WeakMap,Mn=Symbol.asyncIterator,Fn=class{constructor(e){w(this,Nn,void 0),w(this,Pn,void 0),O(Nn,this,e),O(Pn,this,new S)}isClosed(){var e;return!((e=A(Pn,this))!=null&&e.pending)}current(){return A(Nn,this)}value(){var e;return[A(Nn,this),(e=A(Pn,this))==null?void 0:e.promise]}update(e){var t;if(!((t=A(Pn,this))!=null&&t.pending))throw Error(`ObservableValue is closed`);O(Nn,this,e instanceof Function?e(A(Nn,this)):e),A(Pn,this).resolve(A(Nn,this)),O(Pn,this,new S)}close(){var e;(e=A(Pn,this))==null||e.resolve(A(Nn,this)),O(Pn,this,void 0)}waitFor(e){var t=this;return M(function*(){if(e(A(Nn,t)))return A(Nn,t);for(;;){let[n,r]=t.value();if(!r)throw Error(`ObservableValue was closed while waiting for condition`);let i=yield r;if(e(i))return i}})()}[Mn](){var e=this;return kn(function*(){for(;;){let[t,n]=e.value();if(yield t,!n)return;yield B(n)}})()}}})),Ln,Rn=n((()=>{z(),Ln=(e,t)=>{let n=R({},e);return typeof n==`object`&&t.forEach(e=>{delete n[e]}),n}})),zn=n((()=>{})),Bn,Vn,Hn=n((()=>{h(),Vn=class{constructor(){m(this,`pendingTimeouts`,new Set),m(this,`pendingIntervals`,new Set),m(this,`clearTimeout`,e=>{this.pendingTimeouts.delete(e)&&window.clearTimeout(e)}),m(this,`clearInterval`,e=>{this.pendingIntervals.delete(e)&&window.clearInterval(e)}),m(this,`setTimeout`,(e,t,...n)=>{let r=window.setTimeout(()=>{e(...n),this.clearTimeout(r)},t);return this.pendingTimeouts.add(r),r}),m(this,`setInterval`,(e,t,...n)=>{let r=window.setInterval(()=>{e(...n)},t);return this.pendingIntervals.add(r),r}),m(this,`unload`,()=>{this.pendingIntervals.forEach(this.clearInterval),this.pendingTimeouts.forEach(this.clearTimeout)})}},Bn=Vn,m(Vn,`create`,()=>new Bn)})),Un,Wn,Gn,Kn,qn=n((()=>{Un=(e,t=Date.now())=>{let n=e.length;if(n>0){let r=e[n-1];r.end||(r.end=t)}},Wn=(e,t=Date.now())=>{Un(e),e.push({start:t})},Gn=e=>e.reduce((e,t)=>{var n;return e+(((n=t.end)==null?Date.now():n)-t.start)},0),Kn=(e,t,n=Date.now())=>e.reduce((e,r)=>{var i;let a=Math.max(n-t,r.start),o=(i=r.end)==null?n:i;return Math.max(0,o-a)+e},0)}));function Jn(e){try{return e()}catch(e){return e}}var Yn=n((()=>{})),Xn,Zn=n((()=>{Xn=e=>{try{return JSON.parse(e)}catch(e){return}}})),Qn=n((()=>{})),$n,er=n((()=>{se(),h(),z(),$n=class{constructor(){var e;m(this,`highEntropyValues`,void 0),(e=self.navigator.userAgentData)==null||e.getHighEntropyValues([`architecture`,`model`,`platformVersion`,`fullVersionList`]).then(e=>{this.highEntropyValues=e}).catch(x)}getUserAgentInformation(){var e;let t=window.location.origin,n=!t||t===`null`?``:`${window.location.pathname}${window.location.search}`.substring(0,1e3),r={locationOrigin:window.location.origin,locationPath:n,ancestorOrigins:((e=window.location.ancestorOrigins)==null?void 0:e.length)>0?Array.from(window.location.ancestorOrigins):void 0,hardwareConcurrency:navigator.hardwareConcurrency,deviceMemory:navigator.deviceMemory};if(self.navigator.userAgentData&&this.highEntropyValues){var i,a,o,s,c;let e=[...(i=this.highEntropyValues.brands)==null?[]:i];e.sort((e,t)=>e.brand.localeCompare(t.brand));let t=[...(a=this.highEntropyValues.fullVersionList)==null?[]:a];t.sort((e,t)=>e.brand.localeCompare(t.brand));let n=t.map(e=>e.version),l=e.map(e=>e.brand),u=e.map(e=>e.version),d=parseInt((o=(s=this.highEntropyValues.platformVersion)==null?void 0:s.split(`.`)[0])==null?`1`:o,10);return R({userAgentLegacy:window.navigator.userAgent,ua:{browser:{brands:l,fullVersionBrands:n,majorVersions:u},device:this.highEntropyValues.model||`Other`,os:{family:this.highEntropyValues.platform||`Other`,version:(c=this.highEntropyValues.platformVersion)==null?`1`:c,major_version:Number.isFinite(d)?d:0}}},r)}else return R({userAgent:window.navigator.userAgent},r)}}})),tr,nr=n((()=>{tr=()=>{let e=[...Array(256).keys()].map(e=>e.toString(16).padStart(2,`0`)),t=crypto.getRandomValues(new Uint8Array(16));return t[6]=t[6]&15|64,t[8]=t[8]&63|128,[...t.entries()].map(([t,n])=>[4,6,8,10].includes(t)?`-${e[n]}`:e[n]).join(``)}})),rr,ir,ar=n((()=>{N(),rr=function(){var e=M(function*(e){return new Promise(t=>setTimeout(t,e))});return function(t){return e.apply(this,arguments)}}(),ir=function(){var e=M(function*(e,t=Error(`Timeout`)){return new Promise((n,r)=>setTimeout(()=>r(t),e))});return function(t){return e.apply(this,arguments)}}(),function(){var e=M(function*(e,t){throw yield e,Error(t)});return function(t,n){return e.apply(this,arguments)}}()})),V=n((()=>{oe(),be(),Se(),we(),ke(),Fe(),Le(),ze(),it(),it(),Ot(),je(),At(),Rt(),ce(),zt(),Vt(),Ut(),le(),Wt(),Qt(),$t(),Ve(),ln(),xn(),Cn(),wn(),Tn(),se(),In(),Rn(),zn(),It(),fn(),Hn(),qn(),Yn(),Zn(),Qn(),er(),nr(),ar()}));V(),h(),N();var or=class extends Ht{constructor(e){super(),m(this,`config`,void 0),m(this,`hlsUrl`,void 0),m(this,`element`,void 0),m(this,`connectingTimeout`,void 0),m(this,`castingAvailable`,!1),m(this,`updateAuthenticationToken`,e=>{this.config.authenticationToken=e,this.hlsUrl=this.getHlsUrl(),this.castingAvailable&&(this.element.src=this.hlsUrl)}),m(this,`unload`,()=>{this.element&&(this.element.removeEventListener(`webkitplaybacktargetavailabilitychanged`,this.onAirPlayAvailable),this.element.removeEventListener(`webkitcurrentplaybacktargetiswirelesschanged`,this.onAirPlayPlaybackChanged),this.element.remove())}),m(this,`onAirPlayAvailable`,e=>{switch(e.availability){case`available`:this.castingAvailable=!0,this.element.src!==this.hlsUrl&&this.checkHlsUrl(this.hlsUrl).then(e=>{e&&(this.element.src=this.hlsUrl,this.emit(`available`))});break;case`not-available`:this.castingAvailable=!1;break;default:break}}),m(this,`onAirPlayPlaybackChanged`,()=>{window.clearTimeout(this.connectingTimeout),this.element.webkitCurrentPlaybackTargetIsWireless?(this.emit(`connected`),this.element.style.display=`block`,this.element.paused&&this.element.play().catch(x)):(this.emit(`disconnected`),this.element.pause(),this.element.src=``,this.element.src=this.hlsUrl,this.element.style.display=`none`)}),this.config=e,this.hlsUrl=this.getHlsUrl(),this.element=document.createElement(`video`),this.element.style.position=`absolute`,this.element.style.top=`0`,this.element.style.bottom=`0`,this.element.style.left=`0`,this.element.style.right=`0`,this.element.style.width=`100%`,this.element.style.height=`100%`,this.element.style.zIndex=`1001`,this.element.style.display=`none`,this.element.id=`vindral-airplay-element`,this.element.slot=`overlay`,this.element.playsInline=!0,this.element.controls=!0,this.element.preload=`metadata`,this.element.addEventListener(`webkitplaybacktargetavailabilitychanged`,this.onAirPlayAvailable),this.element.addEventListener(`webkitcurrentplaybacktargetiswirelesschanged`,this.onAirPlayPlaybackChanged),this.config.container.appendChild(this.element)}get casting(){return this.element.webkitCurrentPlaybackTargetIsWireless}set channelId(e){}showPlaybackTargetPicker(){`webkitShowPlaybackTargetPicker`in this.element&&this.castingAvailable&&(this.element.paused&&(this.element.play().catch(x),this.connectingTimeout=window.setTimeout(()=>{this.casting||(this.element.pause(),this.element.src=``,this.element.src=this.hlsUrl)},3e4)),this.element.webkitShowPlaybackTargetPicker())}static isAirPlaySupported(){return!!window.WebKitPlaybackTargetAvailabilityEvent}getHlsUrl(){let e=new URL(`/api/hls?channelId=${this.config.channelId}`,this.config.url);return this.config.authenticationToken&&e.searchParams.set(`authenticationToken`,this.config.authenticationToken),e.toString()}checkHlsUrl(e){return M(function*(){try{return(yield fetch(e,{method:`HEAD`})).ok}catch(e){return!1}})()}};V(),h(),N();var sr=class extends Ht{constructor(e){var t;super(),t=this,m(this,`state`,`not casting`),m(this,`config`,void 0),m(this,`unloaded`,!1),m(this,`updateAuthenticationToken`,e=>{this.config&&(this.config.options.authenticationToken=e,this.send({type:`updateAuthToken`,token:e}))}),m(this,`unload`,()=>{var e;this.unloaded=!0,(e=this.getSession())==null||e.removeMessageListener(`urn:x-cast:com.vindral.castdata`,this.onMessage)}),m(this,`init`,M(function*(){return new Promise((e,n)=>{let r=!1,i=setTimeout(()=>{r=!0,n()},1e4);window.__onGCastApiAvailable=a=>{if(r){r=!1;return}if(clearTimeout(i),!a)return n();setTimeout(()=>{try{t.onGCastApiAvailable(),e()}catch(e){n()}},1e3)},t.castLibrariesAdded()&&window.cast?window.__onGCastApiAvailable(!0):t.verifyCastLibraries()})})),m(this,`start`,M(function*(){var e;yield(e=t.getInstance())==null?void 0:e.requestSession()})),m(this,`stop`,()=>{var e;(e=this.getSession())==null||e.endSession(!0)}),m(this,`getReceiverName`,()=>{var e;return((e=this.getSession())==null||(e=e.getCastDevice())==null?void 0:e.friendlyName)||void 0}),m(this,`onGCastApiAvailable`,()=>{var e;let t=this.getInstance();if(!t)throw`cast context should exist`;let n=t.getSessionState(),r=((e=this.config)==null?void 0:e.receiverApplicationId)||void 0;t.setOptions({receiverApplicationId:r,autoJoinPolicy:chrome.cast.AutoJoinPolicy.TAB_AND_ORIGIN_SCOPED,resumeSavedSession:!0}),t.addEventListener(cast.framework.CastContextEventType.SESSION_STATE_CHANGED,this.onSessionStateChanged),n===cast.framework.SessionState.SESSION_STARTED&&setTimeout(()=>{this.state=`casting`,this.emit(`resumed`)})}),m(this,`send`,e=>{var t;(t=this.getSession())==null||t.sendMessage(`urn:x-cast:com.vindral.castdata`,e)}),m(this,`onMessage`,(e,t)=>{if(e===`urn:x-cast:com.vindral.castdata`)try{let e=JSON.parse(t);switch(e.type){case`metadata`:this.emit(`metadata`,e.metadata);break;case`serverWallclockTime`:this.emit(`server wallclock time`,e.serverWallclockTime);break;default:break}}catch(e){}}),m(this,`onSessionStarted`,()=>{var e;(e=this.getSession())==null||e.addMessageListener(`urn:x-cast:com.vindral.castdata`,this.onMessage),this.send({type:`start`,config:this.config})}),m(this,`onSessionStateChanged`,e=>{if(!this.unloaded)switch(e.sessionState){case cast.framework.SessionState.SESSION_START_FAILED:this.state=`not casting`,this.emit(`failed`);break;case cast.framework.SessionState.SESSION_ENDED:this.state=`not casting`,this.emit(`disconnected`);break;case cast.framework.SessionState.SESSION_ENDING:break;case cast.framework.SessionState.SESSION_RESUMED:this.onSessionStarted(),this.state=`casting`,this.emit(`resumed`);break;case cast.framework.SessionState.SESSION_STARTED:this.onSessionStarted(),this.state=`casting`,this.emit(`connected`);break;case cast.framework.SessionState.SESSION_STARTING:break;default:break}}),m(this,`getInstance`,()=>{var e;return(e=window.cast)==null?void 0:e.framework.CastContext.getInstance()}),m(this,`getSession`,()=>{var e;return(e=this.getInstance())==null?void 0:e.getCurrentSession()}),m(this,`castLibrariesAdded`,()=>!!(document.querySelector(`#vindralCastFrameworkLib`)&&document.querySelector(`#vindralCastSenderLib`))),m(this,`verifyCastLibraries`,()=>{if(this.castLibrariesAdded())return;let e=document.createElement(`script`);e.type=`text/javascript`,e.id=`vindralCastFrameworkLib`,e.src=`//www.gstatic.com/cast/sdk/libs/sender/1.0/cast_framework.js`,document.head.appendChild(e);let t=document.createElement(`script`);t.type=`text/javascript`,t.id=`vindralCastSenderLib`,t.src=`//www.gstatic.com/cv/js/sender/v1/cast_sender.js`,document.head.appendChild(t)}),this.config=e}get casting(){return this.state===`casting`}get volume(){var e,t;return(e=(t=this.getSession())==null?void 0:t.getVolume())==null?0:e}set volume(e){var t;(t=this.getSession())==null||t.setVolume(e)}get language(){var e;return(e=this.config)==null||(e=e.options)==null?void 0:e.language}set language(e){this.config&&(this.config.options.language=e,this.send({type:`setLanguage`,language:e}))}get channelId(){var e;return((e=this.config)==null?void 0:e.options.channelId)||``}set channelId(e){this.config&&(this.config.options.channelId=e,this.send({type:`setChannelId`,channelId:e}))}},cr=e=>{switch(e){case`h264`:case`h265`:case`av1`:return`video`;case`aac`:case`opus`:case`mp3`:return`audio`;case`webvtt`:return`text`;default:throw Error(`Unknown codec`)}};function lr(e){if(e.startsWith(`opus`))return`opus`;if(e.startsWith(`mp4a`))return`aac`;if(e.startsWith(`avc1`))return`h264`;if(e.startsWith(`hvc1`)||e.startsWith(`hev1`))return`h265`;if(e.startsWith(`av01`))return`av1`;if(e.startsWith(`webvtt`))return`webvtt`}V();function ur(e){return!(typeof e.edges[0]==`string`||e.channels[0]&&!(`catalog`in e.channels[0]))}function dr(e){return e.tracks.filter(e=>!!e.codec).filter(e=>lr(e.codec||``)).map((e,t)=>{let n=e.codec,r=e.bitrate;xe(n,`codec is required`),xe(r!==void 0,`bitrate is required`);let i=lr(n);if(xe(i,`codec is required`),cr(i)===`audio`){let a=e.samplerate||0;return{track:e,id:t,codec:i,codecString:n,bitRate:r,channels:e.channelConfig===`stereo`?2:1,sampleRate:a,language:e.language}}return cr(i)===`text`?{track:e,id:t,bitRate:0,codec:i,kind:`subtitles`,codecString:n,label:e.label,language:e.language}:(xe(e.width,`width is required`),xe(e.height,`width is required`),xe(e.framerate,`framerate is required`),{track:e,id:t,codec:i,bitRate:r,codecString:n,width:e.width,height:e.height,frameRate:e.framerate})}).sort((e,t)=>e.bitRate-t.bitRate)}var fr=e=>`width`in e&&typeof e.width==`number`,pr=e=>`sampleRate`in e&&typeof e.sampleRate==`number`,mr=e=>{switch(e.codec){case`opus`:return`audio/mp4; codecs="opus"`;case`mp3`:return`audio/mpeg`;case`webvtt`:return`text/vtt`;case`aac`:return e.codecString?`audio/mp4; codecs="${e.codecString}"`:`audio/mp4`;case`h264`:case`h265`:return e.codecString?`video/mp4; codecs="${e.codecString}"`:`video/mp4`;case`av1`:return e.codecString?`video/mp4; codecs="${e.codecString}"`:`video/mp4`}},hr=()=>2**53-1,gr=()=>({width:2**53-1,height:2**53-1}),_r=e=>!(typeof e!=`object`||!e||!(`type`in e));V();var vr={sizeBasedResolutionCapEnabled:!0,pictureInPictureEnabled:!0,abrEnabled:!0,burstEnabled:!1,mseEnabled:!0,mseOpusEnabled:!0,muted:!1,volume:1,minBufferTime:1500,maxBufferTime:1500,logLevel:tn.OFF,maxSize:gr(),maxVideoBitRate:hr(),maxAudioBitRate:hr(),maxInitialBitRate:2.5*1e3*1e3,tags:[],media:`audio+video`,poster:!0,reconnectHandler:e=>e.reconnectRetries<30,iosWakeLockEnabled:!1,telemetryEnabled:!0,streamToMediaElementEnabled:!1,iosMediaElementEnabled:!1,pauseSupportEnabled:!0,webcodecsHardwareAcceleration:`no-preference`,offscreenCanvasEnabled:void 0,advanced:{},videoCodecs:[`av1`,`h264`,`h265`],webtransportEnabled:!0};function yr(e){return typeof e==`function`?this.then(t=>Promise.resolve(e()).then(()=>t),t=>Promise.resolve(e()).then(()=>{throw t})):this.then()}function br(e=Promise){return typeof e.prototype.finally!=`function`&&Object.defineProperty(e.prototype,`finally`,{configurable:!0,enumerable:!1,value:yr,writable:!0}),e.prototype.finally}br();var xr=e=>{e.width=320,e.height=180,e.style.width=`100%`,e.style.position=`relative`,e.style.backgroundColor=`#000`};L(),T(),h(),z(),j(),k(),D();var Sr={backgroundColor:`rgba(0,0,0,0.6)`,textPadding:8,fontSize:`28px`,lineGap:16},Cr=new WeakMap,wr=new WeakMap,Tr=new WeakMap,Er=new WeakMap,Dr=new WeakSet,Or=class{constructor(){I(this,Dr),w(this,Cr,[]),w(this,wr,document.createElement(`canvas`)),w(this,Tr,void 0),w(this,Er,window.devicePixelRatio||1),m(this,`config`,R({},Sr));let e=A(wr,this).getContext(`2d`,{alpha:!0});if(!e)throw Error(`Failed to create 2d context`);O(Tr,this,e),E(Dr,this,Ar).call(this)}get canvas(){return A(wr,this)}setActiveCues(e){O(Cr,this,e)}render(e,t=!1){let n=A(Cr,this).flatMap(t=>t.text.split(`
2
+ `).flatMap(t=>E(Dr,this,jr).call(this,t,e.width)).map(e=>{E(Dr,this,Ar).call(this);let t=A(Tr,this).measureText(e);return{text:e,measurement:t,size:{height:t.fontBoundingBoxAscent+t.fontBoundingBoxDescent+this.config.textPadding*2,width:t.width+this.config.textPadding*2}}})),r=Math.max(...n.map(e=>e.size.width)),i=n.reduce((e,{size:t})=>e+t.height,0)+(n.length-1)*this.config.lineGap,a=0;E(Dr,this,kr).call(this,r,i),A(Tr,this).clearRect(0,0,A(wr,this).width,A(wr,this).height);for(let{size:e,text:t}of n)E(Dr,this,Ar).call(this),A(Tr,this).fillStyle=this.config.backgroundColor,A(Tr,this).fillRect(0,a,e.width,e.height),E(Dr,this,Ar).call(this),A(Tr,this).fillText(t,this.config.textPadding,a+this.config.textPadding),a+=e.height+this.config.lineGap;t&&(A(Tr,this).strokeStyle=`red`,A(Tr,this).strokeRect(0,0,e.width,A(wr,this).height))}};function kr(e,t){A(wr,this).width=e*A(Er,this),A(wr,this).height=t*A(Er,this),A(Tr,this).setTransform(A(Er,this),0,0,A(Er,this),0,0),this.canvas.style.width=`${e}px`,this.canvas.style.height=`${t}px`}function Ar(){A(Tr,this).fillStyle=`white`,A(Tr,this).textAlign=`left`,A(Tr,this).textBaseline=`top`,A(Tr,this).font=`${this.config.fontSize} sans-serif`}function jr(e,t){let n=[],r=e.split(` `),i=``;for(;r.length>0;){E(Dr,this,Ar).call(this);let e=0;for(;A(Tr,this).measureText(i+(i.length>0?` `:``)+r[0]).width+this.config.textPadding*2<=t&&r.length>0;)e++,i+=(i.length>0?` `:``)+r.shift();if(e===0){n.push(r.shift()||``),i=``;continue}n.push(i),i=``}return n}function Mr(e,t){let n=t*.05,r=e*.035;return`${Math.max(Math.round(Math.min(n,r)),16)}px`}function Nr(e){var t;let{subtitleWidth:n,subtitleHeight:r,canvasWidth:i,canvasHeight:a,containerWidth:o,bottomPadding:s}=e,c=(t=e.baseMargin)==null?20:t,l=i/o,u=n*l,d=r*l;return{drawWidth:u,drawHeight:d,x:(i-u)/2,y:a-d-(s+c)*l}}function Pr(e,t,n){return{scaleX:2*e.drawWidth/t,scaleY:2*e.drawHeight/n,translateX:2*e.x/t-1,translateY:1-2*e.y/n}}V(),h();var Fr={width:256,height:144},Ir=class extends Ht{constructor(){super(),m(this,`canvas`,document.createElement(`canvas`)),m(this,`context`,null),m(this,`size`,Fr),m(this,`hasWarnedNoVideoFrame`,!1),m(this,`subtitleRenderer`,null),m(this,`hasActiveSubtitles`,!1),m(this,`load`,()=>{if(this.hasWarnedNoVideoFrame=!1,this.context=this.canvas.getContext(`2d`,{alpha:!1,desynchronized:!0}),!this.context)throw Error(`Failed to get 2D rendering context`);this.setSize(Fr)}),m(this,`unload`,()=>{this.context=null,this.subtitleRenderer=null,this.hasActiveSubtitles=!1,this.setSize(Fr)}),m(this,`setActiveCues`,(e,t)=>{this.subtitleRenderer||(this.subtitleRenderer=new Or),this.subtitleRenderer.config.fontSize=Mr(t.width,t.height),this.subtitleRenderer.setActiveCues(e),this.subtitleRenderer.render(t),this.hasActiveSubtitles=e.length>0}),m(this,`render`,(e,t=0)=>{if(!this.context)return;if(!e.videoFrame){this.hasWarnedNoVideoFrame||(console.warn(`[VideoFrameCanvas2DRenderer] No VideoFrame in sample, cannot render`),this.hasWarnedNoVideoFrame=!0);return}let n=e.videoFrame;this.setSize({width:e.width,height:e.height});try{this.context.drawImage(n,0,0,this.canvas.width,this.canvas.height),this.renderSubtitles(t)}catch(e){this.emit(`context lost`,e instanceof Error?e:Error(`Failed to render VideoFrame`))}}),m(this,`renderSubtitles`,e=>{if(!this.hasActiveSubtitles||!this.subtitleRenderer||!this.context)return;let t=this.subtitleRenderer.canvas;if(t.width===0||t.height===0)return;let n=window.devicePixelRatio||1,r=this.canvas.clientWidth||this.canvas.width,i=Nr({subtitleWidth:t.width/n,subtitleHeight:t.height/n,canvasWidth:this.canvas.width,canvasHeight:this.canvas.height,containerWidth:r,bottomPadding:e});this.context.drawImage(t,i.x,i.y,i.drawWidth,i.drawHeight)}),m(this,`setSize`,e=>{e.width===this.size.width&&e.height===this.size.height||(this.size=e,this.canvas.width=e.width,this.canvas.height=e.height,this.context&&(this.context.fillStyle=`#000`,this.context.fillRect(0,0,e.width,e.height)))}),xr(this.canvas)}},Lr=`
3
3
  precision mediump float;
4
4
  uniform sampler2D texture;
5
5
 
@@ -11,7 +11,7 @@ void main() {
11
11
 
12
12
  gl_FragColor = vec4(y, y, y, a);
13
13
  }
14
- `,Pr=`
14
+ `,Rr=`
15
15
  attribute vec2 position;
16
16
  varying vec2 texture_coordinate;
17
17
  uniform mat4 model;
@@ -20,7 +20,7 @@ void main() {
20
20
  texture_coordinate = position;
21
21
  gl_Position = model * vec4(position, 0.0, 1.0);
22
22
  }
23
- `,Fr,Ir,Lr,Rr,zr,Br,Vr,Hr,Ur,Wr,Gr,Kr,qr,Jr,Yr,Xr,Zr,Qr,$r,U,ei,ti,ni,ri,ii,ai,oi,si,ci,li,ui,di,fi,pi,mi,hi,gi,_i,vi,yi,bi,xi=n((()=>{h(),B(),Fr=`connection_failed`,Ir=`connection_failed_will_not_attempt_again`,Lr=`authentication_error`,Rr=`authentication_expired`,zr=`channel_not_found`,Br=`no_incoming_data_error`,Vr=`connection_inactivity`,Hr=`missing_init_segment`,Ur=`no_track_context`,Wr=`invalid_track_context_state`,Gr=`disconnected_by_edge`,Kr=`decoder_error`,qr=`audio_player_error`,Jr=`unsupported_audio_codec`,Yr=`media_source_error`,Xr=`webgl_context_lost_error`,Zr=`access_forbidden`,Qr=`channel_switch_failed`,$r=`drm_error`,U=class extends Error{constructor(e,t,n={}){super(e),m(this,`props`,void 0),m(this,`extra`,{}),m(this,`code`,()=>this.props.code),m(this,`isFatal`,()=>this.props.isFatal),m(this,`source`,()=>this.props.source),m(this,`type`,()=>{var e;return(e=this.props.type)==null?`external`:e}),m(this,`toStringifiable`,()=>{var e;let t=this.source(),n=t instanceof Error?t.stack:this.stack;return z(z({},this.extra),{},{code:this.props.code,isFatal:this.props.isFatal,type:this.props.type,message:this.message,sourceMessage:(e=this.source())==null?void 0:e.message,stack:n})}),this.props=t,this.extra=n,Object.setPrototypeOf(this,new.target.prototype)}},ei=(e,t)=>new U(`MediaElement Error`,{isFatal:e,code:`media_element_error`,source:t},{mediaErrorCode:t.code}),ti=(e,t)=>new U(`Decoder Error`,{isFatal:e,code:Kr,source:t,type:`internal`}),ni=(e,t,n)=>new U(`No decoder available for audio codec "${e}" in non-MSE playback. ${t}`,{isFatal:!0,code:Jr,source:n,type:`external`},{codec:e,reason:t}),ri=(e,t)=>new U(`Audio Player Error`,{isFatal:e,code:qr,source:t,type:`internal`}),ii=(e,t)=>new U(`No init segment for rendition id ${e} for channel ${t}`,{isFatal:!1,code:Hr,type:`internal`}),ai=(e,t,n,r)=>new U(`MediaSource Error`,{isFatal:e,code:Yr,source:t,type:`internal`},{type:r,consecutiveErrorsCount:n}),oi=(e,t)=>new U(`No track context for ${e}${t?`, rendition id ${t}`:``}`,{isFatal:!1,code:Ur,type:`internal`}),si=(e,t)=>new U(`Track context is in an invalid state for ${e}${t?`, rendition id ${t}`:``}`,{isFatal:!1,code:Wr,type:`internal`}),ci=()=>new U(`Web Audio Context resume timeout`,{isFatal:!1,code:`web_audio_context_resume_timeout`}),li=e=>new U(`Disconnected From Edge Server`,{type:`external`,source:e,isFatal:!1,code:Gr}),ui=e=>new U(`Authentication Failed`,{isFatal:!0,code:Lr,source:e}),di=e=>new U(`Authentication Expired`,{isFatal:!0,code:Rr,source:e}),fi=(e,t)=>new U(`Connection closed due to inactivity`,{isFatal:!1,code:Vr,source:t,type:e}),pi=(e,t)=>new U(`Channel not found`,{isFatal:!1,code:zr,source:t,type:e}),mi=e=>new U(`No Incoming Data`,{isFatal:!1,code:Br,source:e}),hi=e=>new U(`Connection attempt failed`,{isFatal:!1,code:Fr,source:e}),gi=()=>new U(`Connection failed - no more reconnect attempts`,{isFatal:!0,code:Ir}),_i=e=>new U(`WebGL Context Lost`,{isFatal:!1,code:Xr,source:e,type:`internal`}),vi=e=>new U(e,{isFatal:!0,code:Zr}),yi=e=>new U(`Channel switch to '${e}' failed`,{isFatal:!1,code:Qr}),bi=(e,t=!1,n)=>new U(e,{isFatal:t,code:$r,source:n})}));xi();var Si=(e,t)=>{let n=e.getContext(`webgl`,t);if(n||(n=e.getContext(`experimental-webgl`,t)),!n)throw new U(`Failed to create webgl context`,{isFatal:!0,code:`failed_to_create_web_gl_context`});return n},Ci=(e,t,n)=>{let r=e.createShader(t);if(!r)throw new U(`Failed to create shader`,{isFatal:!0,code:`failed_to_create_shader`});if(e.shaderSource(r,n),e.compileShader(r),!e.getShaderParameter(r,e.COMPILE_STATUS)){let t=e.getShaderInfoLog(r);throw new U(`Failed to compile shader: ${t==null?``:t}`,{isFatal:!0,code:`failed_to_compile_shader`})}return r},wi=e=>{let t=e.createTexture();if(!t)throw new U(`Failed to create texture`,{isFatal:!0,code:`failed_to_create_texture`});return e.bindTexture(e.TEXTURE_2D,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),t},Ti=(e,t)=>{let n=e.createBuffer();if(!n)throw new U(`Failed to create buffer`,{isFatal:!0,code:`failed_to_create_buffer`});return e.bindBuffer(e.ARRAY_BUFFER,n),e.bufferData(e.ARRAY_BUFFER,t.buffer,e.STATIC_DRAW),n},Ei=(e,t,n)=>{let r=e.createProgram();if(!r)throw new U(`Failed to create program`,{isFatal:!0,code:`failed_to_create_program`});if(e.attachShader(r,n),e.attachShader(r,t),e.linkProgram(r),!e.getProgramParameter(r,e.LINK_STATUS)){let t=e.getShaderInfoLog(r);throw new U(`Failed to link program: ${t==null?``:t}`,{isFatal:!0,code:`failed_to_link_program`})}return r};R(),E(),h(),A(),M(),O();var W=new WeakMap,Di=new WeakMap,Oi=new WeakMap,ki=new WeakMap,Ai=new WeakMap,ji=new WeakSet,Mi=new WeakMap,Ni=class{constructor(e){L(this,ji),T(this,W,void 0),T(this,Di,void 0),T(this,Oi,void 0),T(this,ki,void 0),T(this,Ai,void 0),m(this,`subtitleRenderer`,new wr),T(this,Mi,(e,t,n,r)=>[e,0,0,0,0,-t,0,0,0,0,1,0,n,r,0,1]),k(W,this,e),k(Di,this,wi(e)),k(Oi,this,Ci(e,e.FRAGMENT_SHADER,Nr)),k(ki,this,Ci(e,e.VERTEX_SHADER,Pr)),k(Ai,this,Ei(e,j(ki,this),j(Oi,this)))}setActiveCues(e,t){this.subtitleRenderer.config.fontSize=Or(t.width,t.height),this.subtitleRenderer.setActiveCues(e),this.subtitleRenderer.render(t)}render(e){let t=this.subtitleRenderer.canvas;if(t.width===0)return;let n=window.devicePixelRatio||1,r=Ar(kr({subtitleWidth:t.width/n,subtitleHeight:t.height/n,canvasWidth:e.canvasWidth,canvasHeight:e.canvasHeight,containerWidth:e.containerWidth,bottomPadding:e.bottomPadding}),e.canvasWidth,e.canvasHeight);j(W,this).useProgram(j(Ai,this)),D(ji,this,Pi).call(this),D(ji,this,Fi).call(this,r.scaleX,r.scaleY,r.translateX,r.translateY),j(W,this).uniform1i(j(W,this).getUniformLocation(j(Ai,this),`texture`),4),j(W,this).activeTexture(j(W,this).TEXTURE4),j(W,this).bindTexture(j(W,this).TEXTURE_2D,j(Di,this)),j(W,this).enable(j(W,this).BLEND),j(W,this).blendFunc(j(W,this).SRC_ALPHA,j(W,this).ONE_MINUS_SRC_ALPHA),j(W,this).texImage2D(j(W,this).TEXTURE_2D,0,j(W,this).RGBA,j(W,this).RGBA,j(W,this).UNSIGNED_BYTE,t),j(W,this).texParameteri(j(W,this).TEXTURE_2D,j(W,this).TEXTURE_MAG_FILTER,j(W,this).LINEAR),j(W,this).drawArrays(j(W,this).TRIANGLE_STRIP,0,4)}};function Pi(){let e=j(W,this).getAttribLocation(j(Ai,this),`position`);j(W,this).enableVertexAttribArray(e),j(W,this).vertexAttribPointer(e,2,j(W,this).FLOAT,!1,0,0)}function Fi(e,t,n,r){let i=j(W,this).getUniformLocation(j(Ai,this),`model`);j(W,this).uniformMatrix4fv(i,!1,j(Mi,this).call(this,e,t,n,r))}var Ii=`
23
+ `,zr,Br,Vr,Hr,Ur,Wr,Gr,Kr,qr,Jr,Yr,Xr,Zr,Qr,$r,ei,ti,ni,ri,H,ii,ai,oi,si,ci,li,ui,di,fi,pi,mi,hi,gi,_i,vi,yi,bi,xi,Si,Ci,wi,Ti=n((()=>{h(),z(),zr=`connection_failed`,Br=`connection_failed_will_not_attempt_again`,Vr=`authentication_error`,Hr=`authentication_expired`,Ur=`channel_not_found`,Wr=`no_incoming_data_error`,Gr=`connection_inactivity`,Kr=`missing_init_segment`,qr=`no_track_context`,Jr=`invalid_track_context_state`,Yr=`disconnected_by_edge`,Xr=`decoder_error`,Zr=`audio_player_error`,Qr=`unsupported_audio_codec`,$r=`media_source_error`,ei=`webgl_context_lost_error`,ti=`access_forbidden`,ni=`channel_switch_failed`,ri=`drm_error`,H=class extends Error{constructor(e,t,n={}){super(e),m(this,`props`,void 0),m(this,`extra`,{}),m(this,`code`,()=>this.props.code),m(this,`isFatal`,()=>this.props.isFatal),m(this,`source`,()=>this.props.source),m(this,`type`,()=>{var e;return(e=this.props.type)==null?`external`:e}),m(this,`toStringifiable`,()=>{var e;let t=this.source(),n=t instanceof Error?t.stack:this.stack;return R(R({},this.extra),{},{code:this.props.code,isFatal:this.props.isFatal,type:this.props.type,message:this.message,sourceMessage:(e=this.source())==null?void 0:e.message,stack:n})}),this.props=t,this.extra=n,Object.setPrototypeOf(this,new.target.prototype)}},ii=(e,t)=>new H(`MediaElement Error`,{isFatal:e,code:`media_element_error`,source:t},{mediaErrorCode:t.code}),ai=(e,t)=>new H(`Decoder Error`,{isFatal:e,code:Xr,source:t,type:`internal`}),oi=(e,t,n)=>new H(`No decoder available for audio codec "${e}" in non-MSE playback. ${t}`,{isFatal:!0,code:Qr,source:n,type:`external`},{codec:e,reason:t}),si=(e,t)=>new H(`Audio Player Error`,{isFatal:e,code:Zr,source:t,type:`internal`}),ci=(e,t)=>new H(`No init segment for rendition id ${e} for channel ${t}`,{isFatal:!1,code:Kr,type:`internal`}),li=(e,t,n,r)=>new H(`MediaSource Error`,{isFatal:e,code:$r,source:t,type:`internal`},{type:r,consecutiveErrorsCount:n}),ui=(e,t)=>new H(`No track context for ${e}${t?`, rendition id ${t}`:``}`,{isFatal:!1,code:qr,type:`internal`}),di=(e,t)=>new H(`Track context is in an invalid state for ${e}${t?`, rendition id ${t}`:``}`,{isFatal:!1,code:Jr,type:`internal`}),fi=()=>new H(`Web Audio Context resume timeout`,{isFatal:!1,code:`web_audio_context_resume_timeout`}),pi=e=>new H(`Disconnected From Edge Server`,{type:`external`,source:e,isFatal:!1,code:Yr}),mi=e=>new H(`Authentication Failed`,{isFatal:!0,code:Vr,source:e}),hi=e=>new H(`Authentication Expired`,{isFatal:!0,code:Hr,source:e}),gi=(e,t)=>new H(`Connection closed due to inactivity`,{isFatal:!1,code:Gr,source:t,type:e}),_i=(e,t)=>new H(`Channel not found`,{isFatal:!1,code:Ur,source:t,type:e}),vi=e=>new H(`No Incoming Data`,{isFatal:!1,code:Wr,source:e}),yi=e=>new H(`Connection attempt failed`,{isFatal:!1,code:zr,source:e}),bi=()=>new H(`Connection failed - no more reconnect attempts`,{isFatal:!0,code:Br}),xi=e=>new H(`WebGL Context Lost`,{isFatal:!1,code:ei,source:e,type:`internal`}),Si=e=>new H(e,{isFatal:!0,code:ti}),Ci=e=>new H(`Channel switch to '${e}' failed`,{isFatal:!1,code:ni}),wi=(e,t=!1,n)=>new H(e,{isFatal:t,code:ri,source:n})}));Ti();var Ei=(e,t)=>{let n=e.getContext(`webgl`,t);if(n||(n=e.getContext(`experimental-webgl`,t)),!n)throw new H(`Failed to create webgl context`,{isFatal:!0,code:`failed_to_create_web_gl_context`});return n},Di=(e,t,n)=>{let r=e.createShader(t);if(!r)throw new H(`Failed to create shader`,{isFatal:!0,code:`failed_to_create_shader`});if(e.shaderSource(r,n),e.compileShader(r),!e.getShaderParameter(r,e.COMPILE_STATUS)){let t=e.getShaderInfoLog(r);throw new H(`Failed to compile shader: ${t==null?``:t}`,{isFatal:!0,code:`failed_to_compile_shader`})}return r},Oi=e=>{let t=e.createTexture();if(!t)throw new H(`Failed to create texture`,{isFatal:!0,code:`failed_to_create_texture`});return e.bindTexture(e.TEXTURE_2D,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),t},ki=(e,t)=>{let n=e.createBuffer();if(!n)throw new H(`Failed to create buffer`,{isFatal:!0,code:`failed_to_create_buffer`});return e.bindBuffer(e.ARRAY_BUFFER,n),e.bufferData(e.ARRAY_BUFFER,t.buffer,e.STATIC_DRAW),n},Ai=(e,t,n)=>{let r=e.createProgram();if(!r)throw new H(`Failed to create program`,{isFatal:!0,code:`failed_to_create_program`});if(e.attachShader(r,n),e.attachShader(r,t),e.linkProgram(r),!e.getProgramParameter(r,e.LINK_STATUS)){let t=e.getShaderInfoLog(r);throw new H(`Failed to link program: ${t==null?``:t}`,{isFatal:!0,code:`failed_to_link_program`})}return r};L(),T(),h(),k(),j(),D();var U=new WeakMap,ji=new WeakMap,Mi=new WeakMap,Ni=new WeakMap,Pi=new WeakMap,Fi=new WeakSet,Ii=new WeakMap,Li=class{constructor(e){I(this,Fi),w(this,U,void 0),w(this,ji,void 0),w(this,Mi,void 0),w(this,Ni,void 0),w(this,Pi,void 0),m(this,`subtitleRenderer`,new Or),w(this,Ii,(e,t,n,r)=>[e,0,0,0,0,-t,0,0,0,0,1,0,n,r,0,1]),O(U,this,e),O(ji,this,Oi(e)),O(Mi,this,Di(e,e.FRAGMENT_SHADER,Lr)),O(Ni,this,Di(e,e.VERTEX_SHADER,Rr)),O(Pi,this,Ai(e,A(Ni,this),A(Mi,this)))}setActiveCues(e,t){this.subtitleRenderer.config.fontSize=Mr(t.width,t.height),this.subtitleRenderer.setActiveCues(e),this.subtitleRenderer.render(t)}render(e){let t=this.subtitleRenderer.canvas;if(t.width===0)return;let n=window.devicePixelRatio||1,r=Pr(Nr({subtitleWidth:t.width/n,subtitleHeight:t.height/n,canvasWidth:e.canvasWidth,canvasHeight:e.canvasHeight,containerWidth:e.containerWidth,bottomPadding:e.bottomPadding}),e.canvasWidth,e.canvasHeight);A(U,this).useProgram(A(Pi,this)),E(Fi,this,Ri).call(this),E(Fi,this,zi).call(this,r.scaleX,r.scaleY,r.translateX,r.translateY),A(U,this).uniform1i(A(U,this).getUniformLocation(A(Pi,this),`texture`),4),A(U,this).activeTexture(A(U,this).TEXTURE4),A(U,this).bindTexture(A(U,this).TEXTURE_2D,A(ji,this)),A(U,this).enable(A(U,this).BLEND),A(U,this).blendFunc(A(U,this).SRC_ALPHA,A(U,this).ONE_MINUS_SRC_ALPHA),A(U,this).texImage2D(A(U,this).TEXTURE_2D,0,A(U,this).RGBA,A(U,this).RGBA,A(U,this).UNSIGNED_BYTE,t),A(U,this).texParameteri(A(U,this).TEXTURE_2D,A(U,this).TEXTURE_MAG_FILTER,A(U,this).LINEAR),A(U,this).drawArrays(A(U,this).TRIANGLE_STRIP,0,4)}};function Ri(){let e=A(U,this).getAttribLocation(A(Pi,this),`position`);A(U,this).enableVertexAttribArray(e),A(U,this).vertexAttribPointer(e,2,A(U,this).FLOAT,!1,0,0)}function zi(e,t,n,r){let i=A(U,this).getUniformLocation(A(Pi,this),`model`);A(U,this).uniformMatrix4fv(i,!1,A(Ii,this).call(this,e,t,n,r))}var Bi=`
24
24
  precision mediump float;
25
25
  uniform sampler2D y_texture;
26
26
  uniform sampler2D u_texture;
@@ -36,7 +36,7 @@ void main() {
36
36
 
37
37
  gl_FragColor = vec4(y, u, v, 1) * conversion;
38
38
  }
39
- `,Li=`
39
+ `,Vi=`
40
40
  attribute vec2 position;
41
41
  varying vec2 texture_coordinate;
42
42
  uniform mat4 model;
@@ -45,8 +45,8 @@ void main() {
45
45
  texture_coordinate = position;
46
46
  gl_Position = model * vec4(position, 0.0, 1.0);
47
47
  }
48
- `;xi(),H(),h();var Ri={width:256,codedWidth:256,height:144,codedHeight:144},zi={preserveDrawingBuffer:!1,alpha:!1,depth:!1,stencil:!1,antialias:!1,premultipliedAlpha:!1},Bi=class e extends Bt{constructor(){super(),m(this,`canvas`,document.createElement(`canvas`)),m(this,`context`,Si(this.canvas,zi)),m(this,`pixelShader`,Ci(this.context,this.context.FRAGMENT_SHADER,Ii)),m(this,`vertexShader`,Ci(this.context,this.context.VERTEX_SHADER,Li)),m(this,`buffer`,Ti(this.context,e.SQUARE_VERTICES)),m(this,`program`,Ei(this.context,this.vertexShader,this.pixelShader)),m(this,`textures`,{y:wi(this.context),u:wi(this.context),v:wi(this.context)}),m(this,`textRenderer`,void 0),m(this,`size`,Ri),m(this,`modelLocation`,null),m(this,`conversionLocation`,null),m(this,`cachedScaleX`,0),m(this,`cachedScaleY`,0),m(this,`cachedTransformMatrix`,null),m(this,`texturesNeedRealloc`,!0),m(this,`onContextLost`,e=>{this.textRenderer=void 0;let t=Error(e instanceof WebGLContextEvent?e.statusMessage:`webgl context lost`);this.emit(`context lost`,_i(t)),e.preventDefault()}),m(this,`onContextRestored`,()=>{this.emit(`context restored`),this.context=Si(this.canvas,zi),this.pixelShader=Ci(this.context,this.context.FRAGMENT_SHADER,Ii),this.vertexShader=Ci(this.context,this.context.VERTEX_SHADER,Li),this.buffer=Ti(this.context,e.SQUARE_VERTICES),this.program=Ei(this.context,this.vertexShader,this.pixelShader),this.textures={y:wi(this.context),u:wi(this.context),v:wi(this.context)},this.load()}),m(this,`load`,()=>{this.context.useProgram(this.program),this.setupPositionVertexAttributes(),this.texturesNeedRealloc=!0,this.setSize(Ri),this.modelLocation=this.context.getUniformLocation(this.program,`model`),this.conversionLocation=this.context.getUniformLocation(this.program,`conversion`),this.context.uniform1i(this.context.getUniformLocation(this.program,`y_texture`),0),this.context.uniform1i(this.context.getUniformLocation(this.program,`u_texture`),1),this.context.uniform1i(this.context.getUniformLocation(this.program,`v_texture`),2),this.setConversionMatrix(e.REC709)}),m(this,`unload`,()=>{var e;this.setSize({width:1,height:1,codedHeight:1,codedWidth:1}),[this.textures.y,this.textures.u,this.textures.v].forEach(e=>this.context.deleteTexture(e)),this.context.deleteShader(this.pixelShader),this.context.deleteShader(this.vertexShader),this.context.deleteProgram(this.program),this.context.deleteBuffer(this.buffer),this.canvas.removeEventListener(`webglcontextlost`,this.onContextLost),this.canvas.removeEventListener(`webglcontextrestored`,this.onContextRestored),(e=this.context.getExtension(`WEBGL_lose_context`))==null||e.loseContext()}),m(this,`resetSize`,()=>{this.setSize({width:this.size.width/2,height:this.size.height/2,codedHeight:this.size.codedHeight/2,codedWidth:this.size.codedWidth/2})}),m(this,`render`,(e,t)=>{if(this.context.useProgram(this.program),this.setSize({width:e.width,height:e.height,codedWidth:e.codedWidth,codedHeight:e.codedHeight}),this.setModelMatrix(this.size.width/this.size.codedWidth,this.size.height/this.size.codedHeight),this.context.activeTexture(this.context.TEXTURE0),this.updateTexture(this.textures.y,this.size.codedWidth,this.size.codedHeight,e.data[0]),this.context.activeTexture(this.context.TEXTURE1),this.updateTexture(this.textures.u,this.size.codedWidth/2,this.size.codedHeight/2,e.data[1]),this.context.activeTexture(this.context.TEXTURE2),this.updateTexture(this.textures.v,this.size.codedWidth/2,this.size.codedHeight/2,e.data[2]),this.texturesNeedRealloc=!1,this.context.drawArrays(this.context.TRIANGLE_STRIP,0,4),this.textRenderer){let e=t.style.getPropertyValue(`--vindral-subtitle-offset`)||t.style.getPropertyValue(`--vindral-control-bar-offset`),n=parseInt(e||`0`,10),r=Number.isNaN(n)?0:-n;this.textRenderer.render({canvasWidth:this.size.width,canvasHeight:this.size.height,containerWidth:t.clientWidth||this.canvas.clientWidth||this.size.width,bottomPadding:r})}}),m(this,`updateTexture`,(e,t,n,r)=>{let i=this.context.LUMINANCE,a=this.context.UNSIGNED_BYTE;this.context.bindTexture(this.context.TEXTURE_2D,e),this.texturesNeedRealloc?this.context.texImage2D(this.context.TEXTURE_2D,0,i,t,n,0,i,a,r):this.context.texSubImage2D(this.context.TEXTURE_2D,0,0,0,t,n,i,a,r)}),m(this,`setupPositionVertexAttributes`,()=>{let e=this.context.getAttribLocation(this.program,`position`);this.context.enableVertexAttribArray(e),this.context.vertexAttribPointer(e,2,this.context.FLOAT,!1,0,0)}),m(this,`setSize`,e=>{e.width===this.size.width&&e.height===this.size.height&&e.codedWidth===this.size.codedWidth&&e.codedHeight===this.size.codedHeight||(this.size=e,this.texturesNeedRealloc=!0,this.canvas.setAttribute(`width`,e.width.toString()),this.canvas.setAttribute(`height`,e.height.toString()),this.context.viewport(0,0,e.width,e.height),this.setModelMatrix(e.width/e.codedWidth,e.height/e.codedHeight))}),m(this,`setModelMatrix`,(e,t)=>{(this.cachedScaleX!==e||this.cachedScaleY!==t||!this.cachedTransformMatrix)&&(this.cachedScaleX=e,this.cachedScaleY=t,this.cachedTransformMatrix=this.transformMatrix(e,t)),this.context.uniformMatrix4fv(this.modelLocation,!1,this.cachedTransformMatrix)}),m(this,`setConversionMatrix`,e=>{this.context.uniformMatrix4fv(this.conversionLocation,!1,e)}),m(this,`transformMatrix`,(e,t)=>[2/e,0,0,0,0,-2/t,0,0,0,0,2/1,0,-1,1,0,1]),this.canvas.addEventListener(`webglcontextlost`,this.onContextLost),this.canvas.addEventListener(`webglcontextrestored`,this.onContextRestored,!1),_r(this.canvas)}getTextRenderer(){return this.textRenderer||(this.textRenderer=new Ni(this.context)),this.textRenderer}};m(Bi,`SQUARE_VERTICES`,new Float32Array([0,0,0,1,1,0,1,1])),m(Bi,`REC709`,[1.16438,0,1.79274,-.97295,1.16438,-.21325,-.53291,.30148,1.16438,2.1124,0,-1.1334,0,0,0,1]),m(Bi,`REC601`,[1.16438,0,1.59603,-.87079,1.16438,-.39176,-.81297,.52959,1.16438,2.01723,0,-1.08139,0,0,0,1]),h(),E(),A(),M(),P(),B();var Vi=new WeakMap,Hi=new WeakMap,Ui=class{constructor(e,t,n,r){m(this,`keySystem`,void 0),m(this,`licenseServerUrl`,void 0),m(this,`certificate`,void 0),m(this,`headers`,{}),m(this,`queryParams`,{}),T(this,Vi,void 0),T(this,Hi,void 0),k(Vi,this,t),this.keySystem=e,this.licenseServerUrl=n,this.certificate=r}get statistics(){return{keySystem:j(Vi,this).keySystem,licenseServerUrl:this.licenseServerUrl,mediaKeySystemConfiguration:j(Vi,this).getConfiguration()}}getMediaKeys(){var e=this;return N(function*(){return j(Hi,e)||k(Hi,e,yield j(Vi,e).createMediaKeys()),j(Hi,e)})()}requestLicense(e){var t=this;return N(function*(){let n=new URL(t.licenseServerUrl);for(let[e,r]of Object.entries(t.queryParams))n.searchParams.append(e,r);let r=yield fetch(n,{method:`POST`,body:e,headers:z({"Content-Type":`application/octet-stream`},t.headers)});if(!r.ok)throw Error(`Failed to fetch license: ${r.statusText}`);return yield r.arrayBuffer()})()}};function Wi(e){let t=window.atob(e.replace(/-/g,`+`).replace(/_/g,`/`)),n=``;for(let e=0;e<t.length;e++)n+=`0${t.charCodeAt(e).toString(16)}`.substr(-2);return n}function Gi(e){let t=``;for(let n=0;n<e.length;n+=2)t+=String.fromCharCode(parseInt(e.substr(n,2),16));return window.btoa(t).replace(/=/g,``).replace(/\+/g,`-`).replace(/\//g,`_`)}function Ki(e,t){if(e.byteLength!==t.byteLength)return!1;let n=new Uint8Array(e),r=new Uint8Array(t);for(let e=0;e<n.length;e++)if(n[e]!==r[e])return!1;return!0}E(),A(),M();var qi=new WeakMap,Ji=class extends Ui{constructor(e,t){super(`clearkey`,e,``),T(this,qi,void 0),k(qi,this,t)}handleLicenseRequest(e){let t=new Uint8Array(e),n=String.fromCharCode(...t),r=JSON.parse(n),i=[];for(let e=0;e<r.kids.length;e++){let t=r.kids[e];if(t){let e=Wi(t).toLowerCase(),n=j(qi,this)[e];n&&i.push({kty:`oct`,alg:`A128KW`,kid:t,k:Gi(n)})}}let a=JSON.stringify({keys:i,type:r.type});return new TextEncoder().encode(a)}};P(),B();var Yi={playready:[`150`,`2000`,`3000`],widevine:[`SW_SECURE_CRYPTO`,`SW_SECURE_DECODE`,`HW_SECURE_CRYPTO`,`HW_SECURE_DECODE`,`HW_SECURE_ALL`],fairplay:[``],clearkey:[``]},Xi={initDataTypes:[`cenc`],audioCapabilities:[{contentType:`audio/mp4; codecs="mp4a.40.2"`}],videoCapabilities:[{contentType:`video/mp4; codecs="avc1.42c01f"`}]},Zi={fairplay:{keySystem:`com.apple.fps`,supportedConfig:{initDataTypes:[`sinf`],videoCapabilities:[{contentType:`video/mp4; codecs="avc1.42c01f"`}]}},playready:{keySystem:`com.microsoft.playready`,supportedConfig:Xi},widevine:{keySystem:`com.widevine.alpha`,supportedConfig:Xi},clearkey:{keySystem:`org.w3.clearkey`,supportedConfig:Xi}},Qi=function(){var e=N(function*(e,t){return navigator.requestMediaKeySystemAccess(e,[t]).catch(()=>void 0)});return function(t,n){return e.apply(this,arguments)}}(),$i=function(){var e=N(function*(e,t,n,r,i,a){let o;for(let s of r){let r=n==null?void 0:n.map(e=>z(z({},e),{},{robustness:s,contentType:a?`${i===`audioCapabilities`?`audio/mp4`:`video/mp4`}; codecs="${a}"`:e.contentType}));if(!(yield Qi(e,{initDataTypes:t,[i]:r})))break;o=r}return o});return function(t,n,r,i,a,o){return e.apply(this,arguments)}}(),ea=function(){var e=N(function*(e,t,n,r){let{keySystem:i,supportedConfig:a}=Zi[e],{initDataTypes:o,videoCapabilities:s,audioCapabilities:c}=a,l=r==null?void 0:r[e],u=(l==null?void 0:l.videoRobustness)||Yi[e],d=(l==null?void 0:l.audioRobustness)||Yi[e],[f,p]=yield Promise.all([$i(i,o,s,u,`videoCapabilities`,t),$i(i,o,c,d,`audioCapabilities`,n)]);if(!(!f&&!p))return yield Qi(i,{initDataTypes:o,videoCapabilities:f,audioCapabilities:p})});return function(t,n,r,i){return e.apply(this,arguments)}}(),ta=function(){var e=N(function*(e,t,n,r){let i;for(let a of e)if(i=yield ea(a,t,n,r),i)return{keySystem:a,mediaKeySystemAccess:i}});return function(t,n,r,i){return e.apply(this,arguments)}}(),na=class extends Ui{constructor(e,t,n){super(`fairplay`,e,t,n)}};H(),B(),P();var ra=e=>{var t;let n=String.fromCharCode(...new Uint16Array(e)),r=new window.DOMParser().parseFromString(n,`application/xml`),i=r.getElementsByTagName(`HttpHeaders`)[0],a={};if(i){let e=i.getElementsByTagName(`name`),t=i.getElementsByTagName(`value`);for(let n=0;n<e.length;n++){var o,s;let r=(o=e[n])==null?void 0:o.childNodes[0],i=(s=t[n])==null?void 0:s.childNodes[0];r!=null&&r.nodeValue&&i&&i.nodeValue&&(a[r.nodeValue]=i.nodeValue)}}let c=r.getElementsByTagName(`Challenge`)[0],l;if(!(c==null||(t=c.childNodes[0])==null)&&t.nodeValue){var u;l=window.atob((u=c.childNodes[0])==null?void 0:u.nodeValue)}return r.querySelector(`parsererror`)&&(a={"Content-Type":`text/xml; charset=utf-8`,SOAPAction:`"http://schemas.microsoft.com/DRM/2007/03/protocols/AcquireLicense"`},l=e),{headers:a,message:l}},ia=class extends Ui{constructor(e,t){super(`playready`,e,t)}requestLicense(e){var t=this;return N(function*(){be(t.licenseServerUrl,`No license server URL set`);let n=new URL(t.licenseServerUrl);for(let[e,r]of Object.entries(t.queryParams))n.searchParams.append(e,r);let r=ra(e),i=yield fetch(n,{method:`POST`,headers:z(z({},r.headers),t.headers),body:r.message});if(!i.ok)throw Error(`Failed to fetch license: ${i.statusText}`);return yield i.arrayBuffer()})()}},aa=class extends Ui{constructor(e,t){super(`widevine`,e,t)}};xi(),H(),R(),E(),M(),O(),P(),A(),B();var oa=5e3,G=new WeakMap,sa=new WeakMap,ca=new WeakMap,la=new WeakMap,ua=new WeakMap,da=new WeakMap,fa=new WeakMap,pa=new WeakMap,ma=new WeakMap,ha=new WeakMap,ga=new WeakMap,_a=new WeakMap,va=new WeakSet,ya=new WeakMap,ba=new WeakMap,xa=new WeakMap,Sa=class{constructor(e,t,n={}){var r=this;L(this,va),T(this,G,void 0),T(this,sa,void 0),T(this,ca,void 0),T(this,la,new C),T(this,ua,void 0),T(this,da,void 0),T(this,fa,new Map),T(this,pa,void 0),T(this,ma,nt()),T(this,ha,void 0),T(this,ga,e=>{if(j(G,this).info(`Received DRM data`,{drmData:e}),window.clearTimeout(j(ha,this)),j(da,this)){let t=D(va,this,Aa).call(this,e)[j(da,this).keySystem];t&&(j(da,this).licenseServerUrl=t)}j(la,this).resolve(e)}),T(this,_a,e=>{j(G,this).info(`Encrypted event received`,{event:e}),D(va,this,Ca).call(this,e)}),T(this,ya,e=>{var t,n;j(G,this).debug(`Session message received`,{event:e});let r=e.target,i=e.message;if(!j(fa,this).get(r)){j(G,this).error(`No active session found for event`,{event:e});return}j(G,this).debug(`Requesting license for session`,{sessionId:r.sessionId,licenseServerUrl:(t=j(da,this))==null?void 0:t.licenseServerUrl}),(n=j(da,this))==null||n.requestLicense(i).then(e=>{j(G,this).debug(`License received for session`,{sessionId:r.sessionId}),r.update(e).catch(e=>{D(va,this,Oa).call(this,{message:`Failed to update session with license`,isFatal:!1,error:e})})}).catch(e=>{D(va,this,Oa).call(this,{message:`Failed to request license`,isFatal:!1,error:e})})}),T(this,ba,e=>{let t=e.target;j(G,this).debug(`Key status changed for session`,{sessionId:t.sessionId}),t.keyStatuses.forEach((e,t)=>{let n=Wi(window.btoa(String.fromCharCode(...new Uint8Array(t))));j(G,this).debug(`Key status`,{base64kid:n,status:e})})}),T(this,xa,function(){var e=N(function*(e){let t=D(va,r,ka).call(r,e);j(G,r).debug(`Prioritized key system list`,{keySystemList:t});let n=yield ta(t,e.videoCodec,e.audioCodec,{widevine:j(ua,r).widevine,playready:j(ua,r).playready});if(!n)return j(G,r).warn(`No supported key system found`),null;j(G,r).debug(`Supported key system found`,n.mediaKeySystemAccess.getConfiguration());let{keySystem:i,mediaKeySystemAccess:a}=n,o=null;return i===`clearkey`?(be(e.clearkeys,`No clearkeys found`),o=new Ji(a,e.clearkeys)):i===`playready`?(be(e.playreadyLicenseUrl,`No playreadyLicenseUrl found`),o=new ia(a,e.playreadyLicenseUrl)):i===`widevine`?(be(e.widevineLicenseUrl,`No widevineLicenseUrl found`),o=new aa(a,e.widevineLicenseUrl)):i===`fairplay`&&(be(e.fairplayLicenseUrl,`No fairplayLicenseUrl found`),be(e.fairplayCertificate,`No fairplayCertificate found`),o=new na(a,e.fairplayLicenseUrl,e.fairplayCertificate)),o&&(o.headers=j(ua,r).headers||{},o.queryParams=j(ua,r).queryParams||{}),o});return function(t){return e.apply(this,arguments)}}()),k(sa,this,e),k(G,this,t),k(ua,this,n),j(sa,this).on(`received drm data`,j(ga,this))}static isSupported(){return!!navigator.requestMediaKeySystemAccess}attach(e){k(ca,this,e),j(G,this).info(`Media element attached`),j(ca,this).addEventListener(`encrypted`,j(_a,this))}getStatistics(){var e,t;return!j(la,this).resolved&&!((e=j(da,this))!=null&&e.statistics)?null:z(z({},j(la,this).resolved),(t=j(da,this))==null?void 0:t.statistics)}unload(){var e;j(G,this).info(`Unloading EncryptedMediaExtensions`),j(sa,this).off(`received drm data`,j(ga,this)),(e=j(ca,this))==null||e.removeEventListener(`encrypted`,j(_a,this)),j(fa,this).forEach((e,t)=>{t.close()}),j(fa,this).clear(),k(pa,this,void 0),k(da,this,void 0)}set headers(e){j(ua,this).headers=e,j(da,this)&&(j(da,this).headers=e)}set queryParams(e){j(ua,this).queryParams=e,j(da,this)&&(j(da,this).queryParams=e)}onChannelSwitch(){if(!j(la,this).resolved){j(G,this).debug(`DRM is not used, skipping channel switch handling`);return}et()&&j(ma,this).platform.safariVersion<18&&D(va,this,Oa).call(this,{message:`DRM channel switch not supported on Safari < 18`,isFatal:!0}),window.clearTimeout(j(ha,this));let e=j(la,this).resolved;k(la,this,new C),k(ha,this,window.setTimeout(()=>{j(la,this).resolve(e)},oa))}};function Ca(e){var t=this;return N(function*(){try{yield D(va,t,wa).call(t),j(G,t).debug(`Media keys initialization completed`),yield D(va,t,Ta).call(t,e.initData,e.initDataType)}catch(e){D(va,t,Oa).call(t,{message:`Failed to handle encrypted event`,isFatal:!0,error:e})}})()}function wa(){var e=this;return N(function*(){var t;j(G,e).debug(`Initializing media keys`);let n=yield j(la,e).promise;if((t=j(ca,e))!=null&&t.mediaKeys){j(G,e).debug(`Media keys already set on media element`);return}if(j(pa,e)){j(G,e).debug(`Media keys initialization already in progress, waiting for completion`),yield j(pa,e);return}k(pa,e,N(function*(){let t=yield j(xa,e).call(e,n);j(G,e).debug(`CDM obtained`,{cdm:t}),be(j(ca,e),`No media element found`),be(t,`No CDM found`);let r=yield t.getMediaKeys();t.certificate&&(yield D(va,e,Da).call(e,r,t.certificate)),j(G,e).debug(`Setting media keys on media element`),yield j(ca,e).setMediaKeys(r),k(da,e,t)})()),yield j(pa,e)})()}function Ta(e,t){var n=this;return N(function*(){be(j(da,n),`No CDM manager found`);let r=yield j(da,n).getMediaKeys();if(!e||!D(va,n,Ea).call(n,e)){j(G,n).debug(`Duplicate initData, no need to create new session`,{initData:e});return}let i=r.createSession();j(G,n).debug(`Creating new session`,{session:i}),i.addEventListener(`keystatuseschange`,j(ba,n)),i.closed.then(e=>{j(G,n).info(`Session is closed`,{reason:e})}),i.addEventListener(`message`,j(ya,n)),j(fa,n).set(i,e),j(G,n).debug(`Generating request for session`,{session:i,initDataType:t,initData:e}),yield i.generateRequest(t,e)})()}function Ea(e){for(let[t,n]of j(fa,this))if(Ki(e,n))return!1;return!0}function Da(e,t){var n=this;return N(function*(){try{j(G,n).debug(`Setting server certificate`,{certificate:t}),(yield e.setServerCertificate(t))||j(G,n).warn(`Server certificates are not supported by the CDM.`)}catch(e){j(G,n).error(`Failed to set server certificate`,{error:e})}})()}function Oa(e){let{message:t,isFatal:n,error:r}=e;j(G,this).error(t,{error:r}),j(sa,this).emit(`error`,bi(t,n,r))}function ka(e){let t=[];return e.clearkeys&&t.push(`clearkey`),e.playreadyLicenseUrl&&t.push(`playready`),e.widevineLicenseUrl&&t.push(`widevine`),e.fairplayLicenseUrl&&e.fairplayCertificate&&t.push(`fairplay`),t}function Aa(e){return{fairplay:e.fairplayLicenseUrl,playready:e.playreadyLicenseUrl,widevine:e.widevineLicenseUrl,clearkey:void 0}}var ja,Ma,Na=n((()=>{ja=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],Ma=(e,t)=>{let n=ja.indexOf(t);if(n===-1||e<1||e>8||e===7)return;let r=new ArrayBuffer(2),i=new Uint8Array(r),a=e===8?7:e;return i[0]=16|n>>1,i[1]=(n&1)<<7|a<<3,r}}));H();var Pa=7,Fa=8,Ia=e=>{let t=e.getUint32(0,!1),n=e.getUint8(0)<<16|e.getUint16(1,!1),r=0;return n===1?r+=3:t===1&&(r+=4),r},La=e=>Ia(new DataView(e,0))!==0,Ra=(e,t=0)=>{for(let n=t;n<e.byteLength-4;n++){let t=e.getUint32(n)===1,r=(e.getUint8(n)<<16|e.getUint16(n+1))==1;if(t||r)return{position:n,nalPrefixSize:t?4:3}}},za=e=>e&31,Ba=(e,t)=>{let n=new DataView(e,0),r=Ra(n);for(;r;){let{position:i,nalPrefixSize:a}=r,o=Ra(n,i+4),s=o?o.position-i-a:void 0;if(!t(new DataView(e,i+a,s),a))return;r=o}},Va=e=>{let t=[],n=[];if(!La(e)){let r=new DataView(e,0),i=r.getUint8(5)&31,a=6;for(let n=0;n<i;n++){let n=r.getUint16(a);t.push(e.slice(a+2,a+2+n)),a+=n+2}let o=r.getUint8(a);a+=1;for(let t=0;t<o;t++){let t=r.getUint16(a);n.push(e.slice(a+2,a+2+t)),a+=t+2}return{sequenceParameterSets:t,pictureParameterSets:n}}return Ba(e,e=>{let r=e.byteOffset+e.byteLength;switch(za(e.getUint8(0))){case Fa:n.push(e.buffer.slice(e.byteOffset,r));break;case Pa:t.push(e.buffer.slice(e.byteOffset,r));break}return!0}),{sequenceParameterSets:t,pictureParameterSets:n}},Ha=e=>{let t=new DataView(e),n=t.getUint8(1),r=t.getUint8(2),i=t.getUint8(3),a=new De(e,32);a.readUnsignedExpGolomb();let o=1;switch(n){case 100:case 110:case 122:case 244:case 44:case 83:case 86:case 118:case 128:case 138:case 144:if(o=a.readUnsignedExpGolomb(),o===3&&a.readBits(1),a.readUnsignedExpGolomb()+8,a.readUnsignedExpGolomb()+8,a.readBit(),a.readBit()){for(let e=0;e<(o===3?12:8);e++)if(a.readBit()){let t=e<6?16:64,n=0,r=8,i=8;for(let e=0;e<t;e++)i!==0&&(n=a.readSignedExpGolomb(),i=(r+n+256)%256),r=i===0?r:i}}break;default:break}a.readUnsignedExpGolomb();let s=a.readUnsignedExpGolomb();if(s===0)a.readUnsignedExpGolomb();else if(s===1)throw Error(`Unhandled case`);a.readUnsignedExpGolomb(),a.readBit();let c=a.readUnsignedExpGolomb(),l=a.readUnsignedExpGolomb(),u=a.readBit();u===0&&a.readBit(),a.readBit();let d=c+1,f=l+1;if(f*=2-u,f*=16,d*=16,a.readBit()){let e=o===1?1:0,t=1<<(o===1||o===2?1:0),n=2-u<<e,r=a.readUnsignedExpGolomb()*t,i=a.readUnsignedExpGolomb()*t,s=a.readUnsignedExpGolomb()*n,c=a.readUnsignedExpGolomb()*n;d-=r+i,f-=s+c}let p={numerator:1,denumerator:1};if(a.readBit()&&a.readBit()){var m;p=(m=Ua[a.readBits(8)])==null?{numerator:0,denumerator:0}:m}return{width:d,height:f,pixelAspectRatio:p,profileIdc:n,constraintFlags:r,levelIdc:i}},Ua=[{numerator:0,denumerator:0},{numerator:1,denumerator:1},{numerator:12,denumerator:11},{numerator:10,denumerator:11},{numerator:16,denumerator:11},{numerator:40,denumerator:33},{numerator:24,denumerator:11},{numerator:20,denumerator:11},{numerator:32,denumerator:11},{numerator:80,denumerator:33},{numerator:18,denumerator:11},{numerator:15,denumerator:11},{numerator:64,denumerator:33},{numerator:160,denumerator:99},{numerator:4,denumerator:3},{numerator:3,denumerator:2},{numerator:2,denumerator:1}],Wa=e=>{if(e.length<=78)return;let t=78;for(;t+8<=e.length;){let n=new DataView(e.buffer,e.byteOffset+t,8),r=n.getUint32(0),i=String.fromCharCode(n.getUint8(4),n.getUint8(5),n.getUint8(6),n.getUint8(7));if(r<8||t+r>e.length)break;if(i===`hvcC`)return e.slice(t+8,t+r);t+=r}};H();var Ga=184549376;function Ka(e){let t=new Ne(e),n=qa(t);(n.flags&Ga)!==0&&Ja(t);let r=Ya(t);if(String.fromCharCode(...r.frameId)===`TXXX`)return{header:n,txx:Xa(new Ne(t.readBytes(r.size)))}}function qa(e){return{id:e.readBytes(3),majorVersion:e.readUint8(),minorVersion:e.readUint8(),flags:e.readUint8(),size:e.readUint32()}}function Ja(e){let t=e.readUint32();return e.readBytes(t-4),{}}function Ya(e){return{frameId:e.readBytes(4),size:e.readUint32(),flags:e.readUint16()}}function Xa(e){return{encoding:e.readUint8(),description:e.readUtf8String(),value:e.readUtf8String()}}H();function Za(e){let t=e.readUint32(),n=String.fromCharCode(e.readUint8(),e.readUint8(),e.readUint8(),e.readUint8());return t===1&&(t=e.readUint64()-8),{size:t-8,type:n}}function Qa(e,t){let n=Za(t),r=new Ne(t.readBytes(n.size));if(n.type!==e.type)throw Error(`invalid error type: ${n.type}, expected ${e.type}`);let i=e.decodeData(r);return r.readRemaining(),i}function $a(e){return{version:e.readUint8(),flags:e.readUint24()}}h();var eo=class e{constructor({timescale:t,presentationTime:n,presentationTimeDelta:r,schemeIdUri:i,value:a,eventDuration:o,id:s,data:c}){m(this,`type`,e.type),m(this,`timescale`,void 0),m(this,`presentationTime`,void 0),m(this,`presentationTimeDelta`,void 0),m(this,`schemeIdUri`,void 0),m(this,`value`,void 0),m(this,`eventDuration`,void 0),m(this,`id`,void 0),m(this,`data`,void 0),this.timescale=t,this.presentationTime=n,this.presentationTimeDelta=r,this.schemeIdUri=i,this.value=a,this.eventDuration=o,this.id=s,this.data=c}static decodeData(t){let{version:n}=$a(t);switch(n){case 1:{let n=t.readUint32(),r=t.readUint64(),i=t.readUint32(),a=t.readUint32(),o=t.readUtf8String(),s=t.readUtf8String(),c=t.remaining();return new e({timescale:n,presentationTime:r,eventDuration:i,id:a,schemeIdUri:o,value:s,data:t.readBytes(c)})}case 0:{let n=t.readUtf8String(),r=t.readUtf8String(),i=t.readUint32(),a=t.readUint32(),o=t.readUint32(),s=t.readUint32(),c=t.remaining();return new e({timescale:i,presentationTimeDelta:a,schemeIdUri:n,value:r,eventDuration:o,id:s,data:t.readBytes(c)})}default:throw Error(`unsupported version ${n}`)}}};m(eo,`type`,`emsg`),h();var to=class e{constructor(t){m(this,`type`,e.type),m(this,`data`,void 0),this.data=t}static decodeData(t){return new e(t.readRemaining())}};m(to,`type`,`mdat`),h();var no=class e{constructor(t,n,r){m(this,`type`,e.type),m(this,`extra`,void 0),m(this,`byteOffset`,void 0),m(this,`baseMediaDecodeTime`,void 0),this.extra=t,this.byteOffset=n,this.baseMediaDecodeTime=r}static decodeData(t){let n=$a(t),r=t.byteOffset(),i=0;return i=n.version===1?t.readUint64():t.readUint32(),new e(n,r,i)}};m(no,`type`,`tfdt`),h();var ro=1,io=2,ao=8,oo=16,so=32,co=class e{constructor(t,n,r,i){m(this,`type`,e.type),m(this,`extra`,void 0),m(this,`defaultSampleDuration`,void 0),m(this,`defaultSampleSize`,void 0),m(this,`defaultSampleFlags`,void 0),this.extra=t,this.defaultSampleDuration=n,this.defaultSampleSize=r,this.defaultSampleFlags=i}static decodeData(t){let n=$a(t),r,i,a;return t.readUint32(),(n.flags&ro)>0&&t.readUint64(),(n.flags&io)>0&&t.readUint32(),(n.flags&ao)>0&&(r=t.readUint32()),(n.flags&oo)>0&&(i=t.readUint32()),(n.flags&so)>0&&(a=t.readUint32()),new e(n,r,i,a)}};m(co,`type`,`tfhd`),h();var lo=class e{is_sync_sample(t){let n=e.FLAG_SAMPLE_FLAG_IS_NON_SYNC|e.FLAG_SAMPLE_DEPENDS_YES,r=this.sampleFlags[t];if(r!==void 0)return(r&n)===0;if(t===0&&this.firstSampleFlags)return(this.firstSampleFlags&n)===0}constructor(t,n,r){m(this,`type`,e.type),m(this,`dataOffset`,void 0),m(this,`firstSampleFlags`,void 0),m(this,`samplesCount`,void 0),m(this,`sampleDurations`,[]),m(this,`sampleSizes`,[]),m(this,`sampleFlags`,[]),m(this,`sampleCts`,[]),this.dataOffset=n,this.firstSampleFlags=r,this.samplesCount=t}static decodeData(t){let{flags:n}=$a(t),r=t.readUint32(),i,a;n&e.TRUN_DATA_OFFSET&&(i=t.readUint32()),n&e.TRUN_FIRST_SAMPLE_FLAGS&&(a=t.readUint32());let o=new e(r,i,a);for(let i=0;i<r;i++)n&e.SAMPLE_DURATION&&o.sampleDurations.push(t.readUint32()),n&e.SAMPLE_SIZE&&o.sampleSizes.push(t.readUint32()),n&e.SAMPLE_FLAGS&&o.sampleFlags.push(t.readUint32()),n&e.SAMPLE_CTS&&o.sampleCts.push(t.readUint32());return o}};m(lo,`TRUN_DATA_OFFSET`,1),m(lo,`TRUN_FIRST_SAMPLE_FLAGS`,4),m(lo,`SAMPLE_DURATION`,256),m(lo,`SAMPLE_SIZE`,512),m(lo,`SAMPLE_FLAGS`,1024),m(lo,`SAMPLE_CTS`,2048),m(lo,`FLAG_SAMPLE_FLAG_IS_NON_SYNC`,65536),m(lo,`FLAG_SAMPLE_DEPENDS_NO`,33554432),m(lo,`FLAG_SAMPLE_DEPENDS_YES`,16777216),m(lo,`type`,`trun`),h();var uo=class e{constructor(t,n,r){m(this,`type`,e.type),m(this,`tfhd`,void 0),m(this,`tfdt`,void 0),m(this,`trun`,void 0),this.tfhd=t,this.tfdt=n,this.trun=r}static decodeData(t){let n,r,i;for(;t.remaining()>0;){let e=Fo(t);e instanceof co&&(n=e),e instanceof no&&(r=e),e instanceof lo&&(i=e)}return new e(n,r,i)}};m(uo,`type`,`traf`),h();var fo=class e{constructor(t){m(this,`type`,e.type),m(this,`traf`,void 0),this.traf=t}static decodeData(t){let n;for(;t.remaining()>0;){let e=Fo(t);e instanceof uo&&(n=e)}if(!n)throw Error(`No traf found`);return new e(n)}};m(fo,`type`,`moof`),h();var po=class e{constructor(){m(this,`type`,e.type)}static decodeData(t){return new e}};m(po,`type`,`mvhd`),h();var mo=class e{constructor(t){m(this,`type`,e.type),m(this,`fourCC`,void 0),this.fourCC=t}mediaType(){switch(this.fourCC){case`vide`:return`video`;case`soun`:return`audio`;case`sbtl`:return`text`;default:throw Error(`Unknown media type`)}}static decodeData(t){return $a(t),t.readUint32(),new e(String.fromCharCode(...t.readBytes(4)))}};m(mo,`type`,`hdlr`),h();var ho=class e{constructor(t,n,r,i){m(this,`type`,e.type),m(this,`creationTime`,void 0),m(this,`modificationTime`,void 0),m(this,`timescale`,void 0),m(this,`duration`,void 0),this.creationTime=t,this.modificationTime=n,this.timescale=r,this.duration=i}static decodeData(t){let{version:n}=$a(t);return n===1?new e(t.readUint64(),t.readUint64(),t.readUint32(),t.readUint64()):new e(t.readUint32(),t.readUint32(),t.readUint32(),t.readUint32())}};m(ho,`type`,`mdhd`),h();var go=class e{mediaType(){return this.avc1||this.hvc1||this.hev1||this.av01?`video`:`audio`}width(){var e;return(e=this.avc1)==null?void 0:e.width}height(){var e;return(e=this.avc1)==null?void 0:e.height}constructor(t,n,r,i,a,o,s){m(this,`type`,e.type),m(this,`av01`,void 0),m(this,`avc1`,void 0),m(this,`hvc1`,void 0),m(this,`hev1`,void 0),m(this,`mp4a`,void 0),m(this,`opus`,void 0),m(this,`codec`,void 0),this.avc1=t,this.hvc1=n,this.hev1=r,this.av01=i,this.mp4a=a,this.opus=o,this.codec=s}static decodeData(t){$a(t);let n=t.readUint32(),r,i,a,o,s,c,l;for(let e=0;e<n;e++)for(;t.remaining()>0;){let e=Fo(t);switch(e.type){case`avc1`:r=`h264`,i=e;break;case`hvc1`:r=`h265`,a=e;break;case`hev1`:r=`h265`,o=e;break;case`av01`:r=`av1`,l=e;break;case`mp4a`:r=`aac`,s=e;break;case`Opus`:r=`opus`,c=e;break}}return new e(i,a,o,l,s,c,r)}};m(go,`type`,`stsd`),h();var _o=class e{constructor(t){m(this,`type`,e.type),m(this,`stsd`,void 0),this.stsd=t}static decodeData(t){let n;for(;t.remaining()>0;){let e=Fo(t);e instanceof go&&(n=e)}if(!n)throw Error(`No stsd found`);return new e(n)}};m(_o,`type`,`stbl`),h();var vo=class e{constructor(t){m(this,`type`,e.type),m(this,`stbl`,void 0),this.stbl=t}static decodeData(t){let n;for(;t.remaining()>0;){let e=Fo(t);e instanceof _o&&(n=e)}if(!n)throw Error(`No stbl found`);return new e(n)}};m(vo,`type`,`minf`),h();var yo=class e{constructor(t,n,r){m(this,`type`,e.type),m(this,`hdlr`,void 0),m(this,`minf`,void 0),m(this,`mdhd`,void 0),this.hdlr=t,this.minf=n,this.mdhd=r}static decodeData(t){let n,r,i;for(;t.remaining()>0;){let e=Fo(t);e instanceof mo&&(n=e),e instanceof vo&&(r=e),e instanceof ho&&(i=e)}if(!n)throw Error(`No hdlr found`);if(!r)throw Error(`No minf found`);if(!i)throw Error(`No mdhd found`);return new e(n,r,i)}};m(yo,`type`,`mdia`),h();var bo=class e{constructor(t,n,r,i,a,o,s,c){m(this,`type`,e.type),m(this,`modificationTime`,void 0),m(this,`creationTime`,void 0),m(this,`trackId`,void 0),m(this,`duration`,void 0),m(this,`alternateGroup`,void 0),m(this,`volume`,void 0),m(this,`width`,void 0),m(this,`height`,void 0),this.modificationTime=t,this.creationTime=n,this.trackId=r,this.duration=i,this.alternateGroup=a,this.volume=o,this.width=s,this.height=c}static decodeData(t){let n=$a(t),r=0,i=0;n.version===1?(r=t.readUint64(),i=t.readUint64()):(r=t.readUint32(),i=t.readUint32());let a=t.readUint32();t.readUint32();let o=t.readUint32();t.readUint32(),t.readUint32(),t.readUint16();let s=t.readUint16(),c=t.readUint16();t.readUint16(),Array(9).fill(0).map(()=>t.readUint32());let l=t.readUint16();t.readUint16();let u=t.readUint16();return t.readUint16(),new e(r,i,a,o,s,c,l,u)}};m(bo,`type`,`tkhd`),h();var xo=class e{constructor(t,n){m(this,`type`,e.type),m(this,`tkhd`,void 0),m(this,`mdia`,void 0),this.tkhd=t,this.mdia=n}static decodeData(t){let n,r;for(;t.remaining()>0;){let e=Fo(t);e instanceof bo&&(n=e),e instanceof yo&&(r=e)}if(!n)throw Error(`No tkhd found`);if(!r)throw Error(`No mdia found`);return new e(n,r)}};m(xo,`type`,`trak`),h();var So=class e{constructor(t,n){m(this,`type`,e.type),m(this,`mvhd`,void 0),m(this,`traks`,void 0),this.mvhd=t,this.traks=n}static decodeData(t){let n,r=[];for(;t.remaining()>0;){let e=Fo(t);e instanceof xo&&r.push(e),e instanceof po&&(n=e)}if(!n)throw Error(`No mvhd found`);return new e(n,r)}};m(So,`type`,`moov`),h();var Co=class e{constructor(t,n,r,i,a,o,s,c){m(this,`type`,e.type),m(this,`configurationVersion`,void 0),m(this,`avcProfileIndication`,void 0),m(this,`profileCompatibility`,void 0),m(this,`avcLevelIndication`,void 0),m(this,`lengthSizeMinusOne`,void 0),m(this,`sequenceParameterSets`,void 0),m(this,`pictureParameterSets`,void 0),m(this,`bytes`,void 0),this.configurationVersion=t,this.avcProfileIndication=n,this.profileCompatibility=r,this.avcLevelIndication=i,this.lengthSizeMinusOne=a,this.sequenceParameterSets=o,this.pictureParameterSets=s,this.bytes=c}static decodeData(t){let n=t.buffer(),r=t.readUint8(),i=t.readUint8(),a=t.readUint8(),o=t.readUint8(),s=t.readUint8()&3,c=t.readUint8()&31,l=[];for(let e=0;e<c;e++){let e=t.readBytes(t.readUint16());l.push(e)}let u=t.readUint8(),d=[];for(let e=0;e<u;e++){let e=t.readBytes(t.readUint16());d.push(e)}return new e(r,i,a,o,s,l,d,n)}};m(Co,`type`,`avcC`);var wo=class e{constructor(t,n,r,i,a){m(this,`type`,e.type),m(this,`avcC`,void 0),m(this,`width`,void 0),m(this,`height`,void 0),m(this,`horizontalResolution`,void 0),m(this,`verticalResolution`,void 0),this.avcC=t,this.width=n,this.height=r,this.horizontalResolution=i,this.verticalResolution=a}static decodeData(t){t.readUint32(),t.readUint16(),t.readUint16(),t.readUint32(),t.readUint64(),t.readUint32();let n=t.readUint16(),r=t.readUint16(),i=t.readUint32(),a=t.readUint32();t.readUint32(),t.readUint16(),t.readBytes(32),t.readUint16(),t.readUint16();let o;for(;t.remaining()>0;){let e=Fo(t);switch(e.type){case`avcC`:o=e;break}}if(!o)throw Error(`no avcC`);return new e(o,n,r,i,a)}};m(wo,`type`,`avc1`),h();var To=e=>{for(let t=0;t<e.length-1;t++){if(e[t]!==5)continue;let n=0,r=0,i=t+1;for(;i<e.length&&r<4;){let t=e[i];if(n=n<<7|t&127,r++,i++,!(t&128))break}if(n<=0||r===4&&e[i-1]&128)continue;let a=t+1+r,o=a+n;if(o<=e.length)return e.slice(a,o)}},Eo=class e{constructor(t){m(this,`type`,e.type),m(this,`decoderConfig`,void 0),this.decoderConfig=t}static decodeData(t){var n;return $a(t),new e((n=To(t.readRemaining()))==null?new Uint8Array:n)}};m(Eo,`type`,`esds`);var Do=class e{constructor(t,n,r){m(this,`type`,e.type),m(this,`channelCount`,void 0),m(this,`sampleRate`,void 0),m(this,`esds`,void 0),this.channelCount=t,this.sampleRate=n,this.esds=r}static decodeData(t){t.readUint32(),t.readUint16(),t.readUint16();let n=t.readUint16();t.readUint16(),t.readUint32();let r=t.readUint16();t.readUint16(),t.readUint32();let i=t.readUint16();t.readUint16(),n===1?t.readBytes(16):n===2&&t.readBytes(36);let a;for(;t.remaining()>0;){let e=Fo(t);e.type===`esds`&&(a=e)}return new e(r,i,a)}};m(Do,`type`,`mp4a`),h();var Oo=class e{constructor(t,n,r,i,a,o,s){m(this,`type`,e.type),m(this,`version`,void 0),m(this,`channelCount`,void 0),m(this,`preSkip`,void 0),m(this,`inputSampleRate`,void 0),m(this,`outputGain`,void 0),m(this,`channelMappingFamily`,void 0),m(this,`channelMappingTable`,void 0),this.version=t,this.channelCount=n,this.preSkip=r,this.inputSampleRate=i,this.outputGain=a,this.channelMappingFamily=o,this.channelMappingTable=s}static decodeData(t){let n=t.readUint8(),r=t.readUint8(),i=t.readUint16(),a=t.readUint32(),o=t.readUint16();return new e(n,r,i,a,o>32767?o-65536:o,t.readUint8(),t.readRemaining())}};m(Oo,`type`,`dOps`);var ko=class e{constructor(t,n,r){m(this,`type`,e.type),m(this,`dops`,void 0),m(this,`channelCount`,void 0),m(this,`sampleRate`,void 0),this.dops=t,this.channelCount=n,this.sampleRate=r}static decodeData(t){t.readUint32(),t.readUint16(),t.readUint16();let n=t.readUint16();t.readUint16(),t.readUint32();let r=t.readUint16();t.readUint16(),t.readUint32();let i=t.readUint16();return t.readUint16(),n===1&&(t.readUint64(),t.readUint64()),new e(Qa(Oo,t),r,i)}};m(ko,`type`,`Opus`),h();var Ao=class e{constructor(t,n){m(this,`type`,e.type),m(this,`ntpTimestamp`,void 0),m(this,`mediaTime`,void 0),this.ntpTimestamp=t,this.mediaTime=n}date(){let[e,t]=this.ntpTimestamp,n=e*1e3+t/2**32*1e3,r=new Date(Date.UTC(1900,0,1,0,0,0));return new Date(r.getTime()+n)}static decodeData(t){let{version:n}=$a(t);t.readUint32();let r=t.readUint32(),i=t.readUint32();if(n===1){let n=t.readUint64();return new e([r,i],n)}let a=t.readUint32();return new e([r,i],a)}};m(Ao,`type`,`prft`),E(),A(),M();var jo=new WeakMap,Mo=new WeakMap,No=class{constructor(e,t){T(this,jo,void 0),T(this,Mo,void 0),k(jo,this,e),k(Mo,this,t.readBytes(e.size))}data(){return j(Mo,this)}get type(){return j(jo,this).type}};H();var Po={moov:So,trak:xo,tkhd:bo,mvhd:po,moof:fo,traf:uo,tfhd:co,tfdt:no,trun:lo,mdat:to,mdia:yo,hdlr:mo,minf:vo,stbl:_o,mdhd:ho,stsd:go,prft:Ao,avc1:wo,avcC:Co,esds:Eo,mp4a:Do,Opus:ko,emsg:eo};function Fo(e){let t=Za(e),n=Po[t.type],r=new Ne(e.readBytes(t.size));if(!n){let e=new No(t,r);return r.readRemaining(),e}let i=n.decodeData(r);return r.readRemaining(),i}H();function Io(e){if(e.byteLength<8)throw Error(`Buffer too small`);let t=new Ne(e),n=new Map;for(;t.remaining()>0;){let e=Fo(t);n.set(e.type,e)}let r=n.get(`ftyp`),i=n.get(`moov`);if(!r)throw Error(`ftyp atom not found`);if(!i||!(i instanceof So))throw Error(`moov atom not found`);return{ftyp:r,moov:i}}function Lo(e){if(e.byteLength<8)throw Error(`Buffer too small`);let t=new Ne(e),n=new Map,r=[];for(;t.remaining()>0;){let e=Fo(t);e instanceof eo&&r.push(e),n.set(e.type,e)}let i=n.get(`moof`),a=n.get(`mdat`),o=n.get(`prft`);if(!i||!(i instanceof fo))throw Error(`moof atom not found`);if(!a||!(a instanceof to))throw Error(`mdat atom not found`);if(o&&!(o instanceof Ao))throw Error(`invalid prft found`);return{moof:i,mdat:a,prft:o,emsgs:r}}E(),A(),M();var Ro=e=>{if(!e||e.length<=1)return;let t=Array(e.length),n=0;for(let r=0;r<e.length;r++)t[r]=n,n+=e[r]||0;return t},zo=new WeakMap,Bo=new WeakMap,Vo=class{constructor(e){T(this,zo,void 0),T(this,Bo,void 0),k(zo,this,e),k(Bo,this,Io(e))}rawBytes(){return j(zo,this)}init(){return j(Bo,this)}},Ho=new WeakMap,Uo=new WeakMap,K=new WeakMap,Wo=new WeakMap,Go=new WeakMap,Ko=new WeakMap,qo=class e{clone(){return new e(j(Uo,this),new Uint8Array(j(Ho,this).buffer.slice(j(Ho,this).byteOffset,j(Ho,this).byteOffset+j(Ho,this).byteLength)))}constructor(e,t){T(this,Ho,void 0),T(this,Uo,void 0),T(this,K,void 0),T(this,Wo,void 0),T(this,Go,void 0),T(this,Ko,void 0),k(Ho,this,t),k(Uo,this,e),k(K,this,Lo(t)),k(Wo,this,j(Uo,this).init().moov.traks[0]);let n=j(K,this).moof.traf.trun;k(Go,this,Ro(n==null?void 0:n.sampleSizes)),k(Ko,this,Ro(n==null?void 0:n.sampleDurations))}updateBaseMediaDecodeTime(e){let t=new DataView(j(Ho,this).buffer,j(Ho,this).byteOffset,j(Ho,this).byteLength);if(j(K,this).moof.traf.tfdt)if(j(K,this).moof.traf.tfdt.baseMediaDecodeTime=e,j(K,this).moof.traf.tfdt.extra.version===1){let n=Math.floor(e/4294967296),r=(e&4294967295)>>>0;t.setUint32(j(K,this).moof.traf.tfdt.byteOffset-j(Ho,this).byteOffset,n),t.setUint32(j(K,this).moof.traf.tfdt.byteOffset-j(Ho,this).byteOffset+4,r)}else t.setUint32(j(K,this).moof.traf.tfdt.byteOffset-j(Ho,this).byteOffset,e)}producerReferenceTime(){if(j(K,this).prft)return j(K,this).prft.date()}duration(){let e=j(K,this).moof.traf.trun,t=j(K,this).moof.traf.tfhd;if((e==null?void 0:e.sampleDurations.length)===0){let n=(e==null?void 0:e.samplesCount)||1;if(t!=null&&t.defaultSampleDuration)return(t==null?void 0:t.defaultSampleDuration)*n}return(e==null?void 0:e.sampleDurations.reduce((e,t)=>e+t,0))||0}baseMediaDecodeTime(){var e;let t=(e=j(K,this).moof.traf.tfdt)==null?void 0:e.baseMediaDecodeTime;if(!t)throw Error(`no baseMediaDecodeTime`);return t}startsWithKeyframe(){var e;let t=j(K,this).moof.traf.trun,n=(t==null?void 0:t.firstSampleFlags)||(t==null?void 0:t.sampleFlags[0])||((e=j(K,this).moof.traf.tfhd)==null?void 0:e.defaultSampleFlags);return n?(n&lo.FLAG_SAMPLE_DEPENDS_NO)!==0:!1}compositionTimeOffset(e){var t;return(t=j(K,this).moof.traf.trun)==null?void 0:t.sampleCts[e]}timescale(){let e=j(Wo,this);if(!e)throw Error(`no tracks`);return e.mdia.mdhd.timescale}mediaType(){var e;let t=(e=j(Wo,this))==null?void 0:e.mdia.hdlr.mediaType();if(!t)throw Error(`no media type`);return t}header(){return j(Uo,this)}fragment(){return j(K,this)}samplesCount(){var e;return((e=j(K,this).moof.traf.trun)==null?void 0:e.samplesCount)||0}sample(e){var t,n,r,i,a,o,s;let c=j(K,this).moof.traf.trun,l=j(Wo,this),u=(c==null?void 0:c.samplesCount)||0,d=(t=j(K,this).moof.traf.tfdt)==null?void 0:t.baseMediaDecodeTime;if(e>=u||d===void 0||!l)return;let f=l.mdia.minf.stbl.stsd,p=f.codec;if(!p)return;let m=c==null?void 0:c.sampleCts[e],h=(c==null?void 0:c.sampleDurations[e])||0,g=d+(((n=j(Ko,this))==null?void 0:n[e])||0),_=l.mdia.mdhd.timescale||1e3,v=(c==null?void 0:c.sampleSizes[e])||j(K,this).mdat.data.byteLength,y=((r=j(Go,this))==null?void 0:r[e])||0,b=j(K,this).mdat.data.subarray(y,y+v),x=(c==null?void 0:c.is_sync_sample(e))||!1;return l.mdia.hdlr.mediaType()===`video`?{type:`video`,codec:p,width:l.tkhd.width||0,height:l.tkhd.height||0,duration:h,isSync:x,timescale:_,timestamp:g,compositionTimeOffset:m,data:b}:{type:`audio`,codec:p,channels:(f==null||(i=f.opus)==null?void 0:i.channelCount)||(f==null||(a=f.mp4a)==null?void 0:a.channelCount)||0,sampleRate:(f==null||(o=f.opus)==null?void 0:o.sampleRate)||(f==null||(s=f.mp4a)==null?void 0:s.sampleRate)||0,duration:h,isSync:x,timestamp:g,compositionTimeOffset:m,data:b,timescale:_}}rawBytes(){return j(Ho,this)}},Jo=new WeakMap,Yo=class{constructor(e){T(this,Jo,void 0),k(Jo,this,new Vo(e))}header(){return j(Jo,this)}createFragment(e){return new qo(j(Jo,this),e)}};function q(e){let t=new ArrayBuffer(e.length),n=new Uint8Array(t);for(let t=0,r=e.length;t<r;t++)n[t]=e.charCodeAt(t);return new Uint8Array(t)}var J={ftyp:q(`ftyp`),mvhd:q(`mvhd`),moov:q(`moov`),trak:q(`trak`),tkhd:q(`tkhd`),mdia:q(`mdia`),mdhd:q(`mdhd`),hdlr:q(`hdlr`),minf:q(`minf`),vmhd:q(`vmhd`),smhd:q(`smhd`),dinf:q(`dinf`),dref:q(`dref`),stbl:q(`stbl`),stsd:q(`stsd`),avc1:q(`avc1`),hvc1:q(`hvc1`),hev1:q(`hev1`),av01:q(`av01`),av1C:q(`av1C`),avcC:q(`avcC`),hvcC:q(`hvcC`),esds:q(`esds`),colr:q(`colr`),nclx:q(`nclx`),mvex:q(`mvex`),trex:q(`trex`),udta:q(`udta`),meta:q(`meta`),ilst:q(`ilst`),moof:q(`moof`),mfhd:q(`mfhd`),traf:q(`traf`),tfhd:q(`tfhd`),tfdt:q(`tfdt`),trun:q(`trun`),mdat:q(`mdat`),mp4a:q(`mp4a`),Opus:q(`Opus`),prft:q(`prft`),dOps:q(`dOps`),emsg:q(`emsg`)};H(),h();var Xo=1e3,Zo={vide:q(`vide`),soun:q(`soun`),videoHandler:q(`VideoHandler\0`),soundHandler:q(`SoundHandler\0`),url:q(`url `),pasp:q(`pasp`),btrt:q(`btrt`),stts:q(`stts`),stsc:q(`stsc`),stsz:q(`stsz`),stco:q(`stco`),data:q(`data`),mdir:q(`mdir`),appl:q(`appl`)},Qo=q(`iso6`),$o=new Uint8Array([0,0,2,0]),es=[Qo,new Uint8Array([105,115,111,109]),new Uint8Array([105,115,111,50]),new Uint8Array([97,118,99,49]),new Uint8Array([109,112,52,49])],ts=[Qo,new Uint8Array([105,115,111,109]),new Uint8Array([105,115,111,50]),new Uint8Array([104,118,99,49]),new Uint8Array([109,112,52,49])],ns=[Qo,new Uint8Array([105,115,111,109]),new Uint8Array([105,115,111,50]),new Uint8Array([97,118,48,49]),new Uint8Array([109,112,52,49])],rs=[Qo,new Uint8Array([105,115,111,109]),new Uint8Array([105,115,111,50]),new Uint8Array([109,112,52,49])],is=class{constructor(e){m(this,`writer`,void 0),m(this,`moofOffset`,0),this.writer=new Fe(e)}},Y=(e,t,n)=>{e.writer.writeUint32(n+8),e.writer.writeBytes(t)},X=(e,t,n,r,i)=>{Y(e,t,n+4),e.writer.writeUint8(r),e.writer.writeUint24(i)},as=(e,t)=>{Y(e,J.ftyp,Qo.byteLength+$o.byteLength+t.reduce((e,t)=>e+t.byteLength,0)),e.writer.writeBytes(Qo),e.writer.writeBytes($o),t.forEach(t=>e.writer.writeBytes(t))},os=2**32,ss=2208988800,cs=(e,t,n,r)=>{X(e,J.prft,20,1,0);let i=n/1e3,a=Math.floor(i),o=(i-a)*1e3*1e3*os/1e6;e.writer.writeUint32(t),e.writer.writeUint32(a+ss),e.writer.writeUint32(o),e.writer.writeUint64(r)},ls=(e,t,n)=>{X(e,J.mvhd,96,0,0),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeUint32(n),e.writer.writeUint32(t),e.writer.writeUint32(65536),e.writer.writeUint16(256),e.writer.writeBytes(new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])),e.writer.writeUint32(2)},us=e=>`sequenceParameterSets`in e,ds=e=>`sequenceHeader`in e,fs=e=>`hvcC`in e,ps=e=>e.type===`video`,ms=e=>e.type===`audio`,hs=(e,t,n)=>{let r=e.writer.position();X(e,J.tkhd,0,0,3),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeUint32(t.trackId),e.writer.writeUint32(0),e.writer.writeUint32(t.duration*n/t.timescale),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeUint16(0),e.writer.writeUint16(ms(t)?1:0),e.writer.writeUint16(ms(t)?256:0),e.writer.writeUint16(0),e.writer.writeBytes(new Uint8Array([0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0])),ps(t)?(e.writer.writeUint32(t.width*65536),e.writer.writeUint32(t.height*65536)):ms(t)&&(e.writer.writeUint32(0),e.writer.writeUint32(0)),e.writer.writeUint32At(r,e.writer.position()-r)},gs=(e,t)=>{X(e,J.mdhd,20,0,0),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeUint32(t.timescale),e.writer.writeUint32(t.duration);let n=t.lang||`und`,r=(n.charCodeAt(0)&31)<<10|(n.charCodeAt(1)&31)<<5|n.charCodeAt(2)&31;e.writer.writeUint16(r),e.writer.writeUint16(0)},_s=(e,t)=>{let n=e.writer.position();X(e,J.hdlr,0,0,0),e.writer.writeUint32(0),e.writer.writeBytes(ps(t)?Zo.vide:Zo.soun),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeBytes(ps(t)?Zo.videoHandler:Zo.soundHandler),e.writer.writeUint32At(n,e.writer.position()-n)},vs=e=>{let t=e.writer.position();Y(e,J.dinf,0),X(e,J.dref,16,0,0),e.writer.writeUint32(1),X(e,Zo.url,0,0,1),e.writer.writeUint32At(t,e.writer.position()-t)},ys=(e,t)=>{let n=e.writer.position();Y(e,J.avcC,0),e.writer.writeUint8(1),e.writer.writeUint8(t.sequenceParameterSets[0][1]),e.writer.writeUint8(t.sequenceParameterSets[0][2]),e.writer.writeUint8(t.sequenceParameterSets[0][3]),e.writer.writeUint8(255),e.writer.writeUint8(224|t.sequenceParameterSets.length),t.sequenceParameterSets.forEach(t=>{e.writer.writeUint16(t.byteLength),e.writer.writeBytes(t)}),e.writer.writeUint8(t.pictureParameterSets.length),t.pictureParameterSets.forEach(t=>{e.writer.writeUint16(t.byteLength),e.writer.writeBytes(t)}),e.writer.writeUint32At(n,e.writer.position()-n)},bs=(e,t)=>{var n,r;let i=e.writer.position();Y(e,J.av1C,0);let{seqProfile:a,operatingPoints:o,colorConfig:s}=t.parsedSequenceHeader,c=o[0];e.writer.writeUint8(129),e.writer.writeUint8(a<<5|((n=c==null?void 0:c.seqLevelIdx)==null?0:n)),e.writer.writeUint8(((r=c==null?void 0:c.tier)==null?0:r)|(s.highBitDepth?1:0)|(s.bitDepth===12?1:0)<<5|(s.monoChrome?1:0)<<4|s.subsamplingX<<3|s.subsamplingY<<2|s.chromaSamplePosition&65535),e.writer.writeUint8(0),e.writer.writeBytes(t.sequenceHeader),e.writer.writeUint32At(i,e.writer.position()-i)},xs=(e,t)=>{let n=e.writer.position();Y(e,J.hvcC,0),e.writer.writeBytes(t.hvcC),e.writer.writeUint32At(n,e.writer.position()-n)},Ss=(e,t)=>{let n=e.writer.position();Y(e,ds(t)?J.av01:fs(t)?J.hvc1:J.avc1,0),e.writer.writeUint32(0),e.writer.writeUint16(0),e.writer.writeUint16(1),e.writer.writeUint16(0),e.writer.writeUint16(0),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeUint16(t.width),e.writer.writeUint16(t.height),e.writer.writeUint32(4718592),e.writer.writeUint32(4718592),e.writer.writeUint32(0),e.writer.writeUint16(1),e.writer.writeUint8(0),e.writer.writeBytes(new Uint8Array(31)),e.writer.writeUint16(24),e.writer.writeUint16(-1),us(t)?ys(e,t):ds(t)?(bs(e,t),t.parsedSequenceHeader.colorConfig&&(Y(e,J.colr,11),e.writer.writeBytes(J.nclx),e.writer.writeUint16(t.parsedSequenceHeader.colorConfig.colorPrimaries),e.writer.writeUint16(t.parsedSequenceHeader.colorConfig.transferCharacteristics),e.writer.writeUint16(t.parsedSequenceHeader.colorConfig.matrixCoefficients),e.writer.writeUint8(t.parsedSequenceHeader.colorConfig.colorRange?1:0))):fs(t)&&xs(e,t),t.pixelAspectRatio&&(Y(e,Zo.pasp,8),e.writer.writeUint32(t.pixelAspectRatio.numerator),e.writer.writeUint32(t.pixelAspectRatio.denumerator)),t.bitrate&&(Y(e,Zo.btrt,12),e.writer.writeUint32(0),e.writer.writeUint32(t.bitrate),e.writer.writeUint32(t.bitrate)),e.writer.writeUint32At(n,e.writer.position()-n)},Cs=(e,t,n)=>{let r=3;for(e.writer.writeUint8(t);r>0;r--)e.writer.writeUint8(n>>7*r|128);e.writer.writeUint8(n&127)},ws=(e,t)=>{let n=t.decoderConfig.byteLength>0?t.decoderConfig.byteLength+5:0,r=e.writer.position();X(e,J.esds,0,0,0),Cs(e,3,21+n+5+1),e.writer.writeUint16(t.trackId),e.writer.writeUint8(0),Cs(e,4,13+n);let i=t.codec===`mp3`&&t.sampleRate>24e3?107:64;e.writer.writeUint8(i),e.writer.writeUint8(21),e.writer.writeUint24(0),e.writer.writeUint32(t.bitrate||0),e.writer.writeUint32(t.bitrate||0),t.decoderConfig.byteLength>0&&(Cs(e,5,t.decoderConfig.byteLength),e.writer.writeBytes(t.decoderConfig)),Cs(e,6,1),e.writer.writeUint8(2),e.writer.writeUint32At(r,e.writer.position()-r)},Ts=e=>{switch(e){case`aac`:case`mp3`:return J.mp4a;case`opus`:return J.Opus}},Es=(e,t)=>{let n=e.writer.position();Y(e,J.dOps,0),e.writer.writeUint8(0);let r=t.decoderConfig,i=new DataView(r.buffer,r.byteOffset,r.byteLength);e.writer.writeUint8(i.getUint8(9)),e.writer.writeUint16(i.getUint16(10,!0)),e.writer.writeUint32(i.getUint32(12,!0)),e.writer.writeUint16(i.getUint16(16,!0)),e.writer.writeBytes(t.decoderConfig.slice(18)),e.writer.writeUint32At(n,e.writer.position()-n)},Ds=(e,t)=>{let n=e.writer.position();switch(Y(e,Ts(t.codec),0),e.writer.writeUint32(0),e.writer.writeUint16(0),e.writer.writeUint16(1),e.writer.writeUint16(0),e.writer.writeUint16(0),e.writer.writeUint32(0),e.writer.writeUint16(t.channelCount),e.writer.writeUint16(16),e.writer.writeUint32(0),e.writer.writeUint16(t.sampleRate),e.writer.writeUint16(0),t.codec){case`aac`:case`mp3`:ws(e,t);break;case`opus`:Es(e,t);break}t.bitrate&&(Y(e,Zo.btrt,12),e.writer.writeUint32(0),e.writer.writeUint32(t.bitrate),e.writer.writeUint32(t.bitrate)),e.writer.writeUint32At(n,e.writer.position()-n)},Os=(e,t)=>{let n=e.writer.position();Y(e,J.stbl,0);let r=e.writer.position();X(e,J.stsd,0,0,0),e.writer.writeUint32(1),ps(t)?Ss(e,t):ms(t)&&Ds(e,t),e.writer.writeUint32At(r,e.writer.position()-r),X(e,Zo.stts,4,0,0),e.writer.writeUint32(0),X(e,Zo.stsc,4,0,0),e.writer.writeUint32(0),X(e,Zo.stsz,8,0,0),e.writer.writeUint32(0),e.writer.writeUint32(0),X(e,Zo.stco,4,0,0),e.writer.writeUint32(0),e.writer.writeUint32At(n,e.writer.position()-n)},ks=(e,t)=>{let n=e.writer.position();Y(e,J.minf,0),ps(t)?(X(e,J.vmhd,8,0,1),e.writer.writeUint32(0),e.writer.writeUint32(0)):ms(t)&&(X(e,J.smhd,4,0,0),e.writer.writeUint16(0),e.writer.writeUint16(0)),vs(e),Os(e,t),e.writer.writeUint32At(n,e.writer.position()-n)},As=(e,t)=>{let n=e.writer.position();Y(e,J.mdia,0),gs(e,t),_s(e,t),ks(e,t),e.writer.writeUint32At(n,e.writer.position()-n)},js=(e,t,n)=>{let r=e.writer.position();Y(e,J.trak,0),hs(e,t,n),As(e,t),e.writer.writeUint32At(r,e.writer.position()-r)},Ms=(e,t)=>{X(e,J.trex,20,0,0),e.writer.writeUint32(t.trackId),e.writer.writeUint32(1),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeUint32(0)},Ns=(e,t)=>{let n=e.writer.position();Y(e,J.mvex,0),t.forEach(t=>Ms(e,t)),e.writer.writeUint32At(n,e.writer.position()-n)},Ps=(e,t,n)=>{let r=e.writer.position();Y(e,q(t),0),Y(e,Zo.data,0),e.writer.writeUint32(1),e.writer.writeUint32(0),e.writer.writeBytes(q(n)),e.writer.writeUint32At(r,e.writer.position()-r),e.writer.writeUint32At(r+8,e.writer.position()-r-8)},Fs=(e,t)=>{let n=e.writer.position();X(e,J.meta,0,0,0);let r=e.writer.position();Y(e,J.hdlr,25),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeBytes(Zo.mdir),e.writer.writeBytes(Zo.appl),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeUint8(0),e.writer.writeUint32At(r,e.writer.position()-r);let i=e.writer.position();Y(e,J.ilst,0),t==null||t.forEach((t,n)=>Ps(e,n,t)),e.writer.writeUint32At(i,e.writer.position()-i),e.writer.writeUint32At(n,e.writer.position()-n)},Is=(e,t)=>{let n=e.writer.position();Y(e,J.udta,0),Fs(e,t),e.writer.writeUint32At(n,e.writer.position()-n)},Ls=(e,t,n,r)=>{let i=e.writer.position();Y(e,J.moov,0),ls(e,0,n),t.forEach(t=>js(e,t,n)),Ns(e,t),r&&Is(e,r),e.writer.writeUint32At(i,e.writer.position()-i)},Rs=(e,t)=>{let n=e.writer.position();X(e,J.tfhd,16,0,56),e.writer.writeUint32(t.trackId),e.writer.writeUint32(t.defaultDuration||0),e.writer.writeUint32(t.defaultSize||0),e.writer.writeUint32(t.defaultFlags||0),e.writer.writeUint32At(n,e.writer.position()-n)},zs=(e,t)=>{let n=e.writer.position();X(e,J.tfdt,8,1,0);let r=Math.floor(t.timestamp/4294967296),i=(t.timestamp&4294967295)>>>0;e.writer.writeUint32(r),e.writer.writeUint32(i),e.writer.writeUint32At(n,e.writer.position()-n)},Bs=(e,t)=>{if(!t.samples[0])throw Error(`At least one sample must be provided`);let n=t.samples.some(e=>!!e.compositionTimeOffset),r=Vs(t.samples[0])!==t.defaultFlags,i=t.samples.length>1,a=1;r&&(a|=4),n&&(a|=2048),i&&(a|=512,a|=256,a|=1024);let o=e.writer.position();X(e,J.trun,16,1,a),e.writer.writeUint32(t.samples.length);let s=e.writer.position();e.writer.writeUint32(0),r&&e.writer.writeUint32(Vs(t.samples[0]));for(let r of t.samples)i&&(e.writer.writeUint32(r.duration),e.writer.writeUint32(r.data.byteLength),e.writer.writeUint32(Vs(r))),n&&e.writer.writeUint32(r.compositionTimeOffset||0);e.writer.writeUint32At(s,e.writer.position()-e.moofOffset+8),e.writer.writeUint32At(o,e.writer.position()-o)},Vs=e=>e.isSync?33554432:16842752,Hs=(e,t)=>{let n=e.writer.position();Y(e,J.traf,0),Rs(e,t),zs(e,t),Bs(e,t),e.writer.writeUint32At(n,e.writer.position()-n)},Us=(e,t)=>{X(e,J.mfhd,4,0,0),e.writer.writeUint32(t)},Ws=(e,t)=>{let n=e.writer.position();Y(e,J.moof,0),Us(e,t.sequenceNumber),Hs(e,t),e.writer.writeUint32At(n,e.writer.position()-n)},Gs=(e,t,n)=>{Y(e,J.mdat,n);for(let n of t.samples){let t=n.data instanceof ArrayBuffer?new Uint8Array(n.data):n.data;e.writer.writeBytes(t)}},Ks=(e,t)=>{let n=new is,r=e.filter(e=>ps(e)&&us(e)).length>0,i=e.filter(e=>ps(e)&&fs(e)).length>0;return e.filter(e=>ps(e)&&ds(e)).length>0?as(n,ns):i?as(n,ts):r?as(n,es):as(n,rs),Ls(n,e,Xo,t),n.writer.buffer()},qs=e=>{var t;let n=0;for(let t of e.samples)n+=t.data.byteLength;let r=new is(n+256);return((t=e.samples[0])==null?void 0:t.producerReferenceTime)!==void 0&&cs(r,e.trackId,e.samples[0].producerReferenceTime,e.timestamp),r.moofOffset=r.writer.position(),Ws(r,e),Gs(r,e,n),r.writer.bufferExact()},Js=(e,t)=>{let n=e[0];if(!n)throw Error(`At least one sample must be provided`);return qs({trackId:1,timestamp:n.timestamp,sequenceNumber:t,defaultSize:n.data.byteLength,defaultFlags:33554432,defaultDuration:n.duration,samples:e})},Ys=(e,t,n,r)=>Ks([{type:`audio`,codec:`aac`,decoderConfig:e,channelCount:t,sampleRate:n,timescale:r,duration:0,trackId:1}]),Xs=e=>{let{sequenceParameterSets:t,pictureParameterSets:n}=Va(e),r=t[0],i=n[0];if(!r||!i)throw Error(`No sps or pps provided`);return Ha(r)},Zs=(e,t)=>{let n=e[0];if(!n)throw Error(`At least one sample must be provided`);return qs({trackId:1,timestamp:n.timestamp,sequenceNumber:t,defaultSize:n.data.byteLength,defaultFlags:n.isSync?33554432:16842752,defaultDuration:n.duration,samples:e})},Qs=(e,t)=>{let{sequenceParameterSets:n,pictureParameterSets:r}=Va(e),i=Xs(e);return Ks([{type:`video`,sequenceParameterSets:n.map(e=>new Uint8Array(e)),pictureParameterSets:r.map(e=>new Uint8Array(e)),width:i.width,height:i.height,timescale:t,duration:0,trackId:1}])},$s=(e,t)=>{let n=e[0];if(!n)throw Error(`At least one sample must be provided`);return qs({trackId:1,timestamp:n.timestamp,sequenceNumber:t,defaultSize:n.data.byteLength,defaultFlags:n.isSync?33554432:16842752,defaultDuration:n.duration,samples:e})},ec=(e,t,n,r)=>Ks([{type:`video`,hvcC:new Uint8Array(e),width:n,height:r,timescale:t,duration:0,trackId:1}]),tc=(e,t,n)=>Ks([{type:`audio`,trackId:1,channelCount:t,timescale:n,codec:`opus`,decoderConfig:e,duration:0,sampleRate:48e3}]),nc=(e,t)=>{let n=e[0];if(!n)throw Error(`At least one sample must be provided`);return qs({trackId:1,timestamp:n.timestamp,sequenceNumber:t,defaultSize:n.data.byteLength,defaultFlags:33554432,defaultDuration:n.duration,samples:e})};H(),E(),A(),M();var rc=e=>{if(e.length<=78)return;let t=78;for(;t+8<=e.length;){let n=new DataView(e.buffer,e.byteOffset+t,8),r=n.getUint32(0),i=String.fromCharCode(n.getUint8(4),n.getUint8(5),n.getUint8(6),n.getUint8(7));if(r<8||t+r>e.length)break;if(i===`av1C`)return e.slice(t+8,t+r);t+=r}};Symbol.iterator;var ic=e=>{let t=new De(e);return t.peekBit()===1&&t.readBits(32),sc(t),vc(t)},ac=e=>{let t=0,n=0;for(let r=0;r<8;r++){let i=e.readBits(8);if(t|=(i&127)<<r*7,n+=1,(i&128)!=128)break}return[n,t]},oc=e=>{let t=0;for(;t<100&&e.readBit()===0;)t++;return t>=32?0:e.readBits(t)+(1<<t)-1},sc=e=>{let t=e.remainingBits()/8,n=e.readBits(8);if(n>>7&1)return;let r=n>>3&15,i=n>>2&1,a=n>>1&1;i===1&&e.readBits(8);let[o,s]=a?ac(e):[0,t];return{headerLength:1+i+o,type:r,obuSize:s}},cc=e=>{let t=e.readBits(32),n=e.readBits(32),r=e.readBit()!==0,i=0;return r&&(i=oc(e)+1),{timescale:n,equalPictureInterval:r,numUnitsInDisplayTick:t,numTicksPerPicture:i}},lc=2,uc=2,dc=1,fc=2,pc=2,mc=13,hc=0,gc=2,_c=0,vc=e=>{var t;let n=e.readBits(3),r=e.readBit()!==0,i=e.readBit()!==0,a,o=!1,s=!1,c=!1,l=0,u=0,d=[];if(i)e.readBits(5);else{if(s=e.readBit()!==0,s&&(a=cc(e),o=e.readBit()!==0,o))throw Error(`Not implemented`);c=e.readBit()!==0;let t=e.readBits(5)+1;for(let n=0;n<t;n++){let t=e.readBits(12),n=e.readBits(5),r=0;if(n>7&&(r=e.readBit()),o)throw Error(`decoderModelInfoPresentFlag==1`);c&&e.readBit()!==0&&e.readBits(4),d.push({tier:r,operatingPointIdc:t,seqLevelIdx:n})}}let f=e.readBits(4)+1,p=e.readBits(4)+1,m=e.readBits(f)+1,h=e.readBits(p)+1,g=!1;g=i?!1:e.readBit()!==0,g&&(l=e.readBits(4)+2,u=e.readBits(3)+1);let _=e.readBit()!==0,v=e.readBit()!==0,y=e.readBit()!==0,b=!1,x=!1,ee=!1,te=!1,ne=!1,re=!1,ie=!1,ae=lc,S=uc,oe=0;i||(b=e.readBit()!==0,x=e.readBit()!==0,ee=e.readBit()!==0,te=e.readBit()!==0,ne=e.readBit()!==0,ne&&(re=e.readBit()!==0,ie=e.readBit()!==0),ae=e.readBit()===0?e.readBit():lc,S=ae>0?e.readBit()>0?uc:e.readBit():uc,oe=ne?e.readBits(3):0);let C=e.readBit()!==0,se=e.readBit()!==0,w=e.readBit()!==0;return{seqProfile:n,stillPicture:r,reducedStillPictureHeader:i,timingInfoPresentFlag:s,timingInfo:(t=a)==null?{equalPictureInterval:!1,numUnitsInDisplayTick:0,timescale:0,numTicksPerPicture:0}:t,decoderModelInfoPresentFlag:o,initialDisplayDelayPresentFlag:c,operatingPoints:d,frameWidthBits:f,frameHeightBits:p,maxFrameWidth:m,maxFrameHeight:h,frameIdNumbersPresentFlag:g,deltaFrameIdLength:l,additionalFrameIdLength:u,use_128x128Superblock:_,enableFilterIntra:v,enableIntraEdgeFilter:y,enableInterintraCompound:b,enableMaskedCompound:x,enableWarpedMotion:ee,enableDualFilter:te,enableOrderHint:ne,enableJntComp:re,enableRefFrameMvs:ie,seqForceScreenContentTools:ae,seqForceIntegerMv:S,orderHintBits:oe,enableSuperres:C,enableCdef:se,enableRestoration:w,colorConfig:yc(e,n),filmGrainParamsPresent:e.readBit()!==0}},yc=(e,t)=>{let n=e.readBit()!==0,r=8,i=!1;t===2&&n?r=e.readBit()===0?10:12:t<=2&&(r=n?10:8),i=t===1?!1:e.readBit()!==0;let a=i?1:3,o=e.readBit()!==0,s=fc,c=pc,l=gc,u=!1,d=0,f=0,p=_c,m=!1;return o&&(s=e.readBits(8),c=e.readBits(8),l=e.readBits(8)),i?(u=e.readBit()!==0,d=1,f=1,p=_c,m=!1,{highBitDepth:n,bitDepth:r,monoChrome:i,chromaSamplePosition:p,colorPrimaries:s,colorRange:u,matrixCoefficients:l,numPlanes:a,separateUvDeltaQ:m,subsamplingX:d,subsamplingY:f,transferCharacteristics:c}):s===dc&&c===mc&&l===hc?(u=!0,d=0,f=0,{highBitDepth:n,bitDepth:r,monoChrome:i,chromaSamplePosition:p,colorPrimaries:s,colorRange:u,matrixCoefficients:l,numPlanes:a,separateUvDeltaQ:m,subsamplingX:d,subsamplingY:f,transferCharacteristics:c}):(u=e.readBit()!==0,t===0?(d=1,f=1):t===1?(d=0,f=0):r===12?(d=e.readBit(),f=d===0?0:e.readBit()):(d=1,f=0),d!==0&&f!==0&&(p=e.readBits(2)),m=e.readBit()!==0,{highBitDepth:n,bitDepth:r,monoChrome:i,chromaSamplePosition:p,colorPrimaries:s,colorRange:u,matrixCoefficients:l,numPlanes:a,separateUvDeltaQ:m,subsamplingX:d,subsamplingY:f,transferCharacteristics:c})},bc=e=>{let t=ic(e);if(t)return{width:t.maxFrameWidth,height:t.maxFrameHeight}},xc=(e,t)=>{let n=e[0];if(!n)throw Error(`At least one sample must be provided`);return qs({trackId:1,timestamp:n.timestamp,sequenceNumber:t,defaultSize:n.data.byteLength,defaultFlags:n.isSync?33554432:16842752,defaultDuration:n.duration,samples:e})},Sc=(e,t)=>{let n=ic(e);if(!n)throw Error(`Failed to parse sequence header`);return Ks([{type:`video`,parsedSequenceHeader:n,sequenceHeader:new Uint8Array(e),width:n.maxFrameWidth,height:n.maxFrameHeight,timescale:t,duration:0,trackId:1}])},Cc=e=>{let{codec:t,initData:n,timescale:r}=e;switch(t){case`h264`:return Tc(n,r);case`h265`:return Dc(n,r,e.width,e.height);case`av1`:return Ec(n,r);case`opus`:return Oc(n,r,e.channelCount||2);case`aac`:return kc(n,r,e.channelCount||2);default:throw Error(`Failed to initialize ${t} segment`)}},wc=(e,t)=>{switch(e){case`h264`:return Xs(t);case`av1`:return bc(t)}},Tc=(e,t)=>Qs(e,t),Ec=(e,t)=>Sc(e,t),Dc=(e,t,n,r)=>{if(!n||!r)throw Error(`HEVC init segment requires width and height`);return ec(e,t,n,r)},Oc=(e,t,n)=>tc(new Uint8Array(e),n,t),kc=(e,t,n)=>Ys(new Uint8Array(e),n,t,t),Ac=(e,t)=>{if(!e[0])throw Error(`At least one sample must be provided`);switch(e[0].codec){case`h264`:return Zs(e,t);case`h265`:return $s(e,t);case`opus`:return nc(e,t);case`aac`:return Js(e,t);case`av1`:return xc(e,t);default:throw Error(`Unsupported codec ${e[0].codec}`)}},jc,Mc,Nc=n((()=>{jc=e=>{if(!e)return;let t=e.channelMappingTable,n=new Uint8Array(19+t.byteLength),r=new DataView(n.buffer,n.byteOffset,n.byteLength);return n.set([79,112,117,115,72,101,97,100],0),r.setUint8(8,1),r.setUint8(9,e.channelCount),r.setUint16(10,e.preSkip,!0),r.setUint32(12,e.inputSampleRate,!0),r.setInt16(16,e.outputGain,!0),r.setUint8(18,e.channelMappingFamily),t.byteLength>0&&n.set(t,19),n},Mc=(e,t)=>{if(e<1||e>2)return;let n=new Uint8Array(19),r=new DataView(n.buffer,n.byteOffset,n.byteLength);return n.set([79,112,117,115,72,101,97,100]),r.setUint8(8,1),r.setUint8(9,e),r.setUint16(10,3840,!0),r.setUint32(12,t,!0),r.setInt16(16,0,!0),r.setUint8(18,0),n}})),Pc=n((()=>{Nc()}));H();var Fc=function(e){return e[e.NONE=0]=`NONE`,e[e.SYNC=1]=`SYNC`,e[e.INIT=2]=`INIT`,e[e.RENDITIONS=4]=`RENDITIONS`,e[e.TIMED_METADATA=8]=`TIMED_METADATA`,e[e.HAS_COMPOSITION_TIME=16]=`HAS_COMPOSITION_TIME`,e}({}),Ic=e=>!!(e&Fc.SYNC),Lc=e=>!!(e&Fc.INIT),Rc=e=>!!(e&Fc.RENDITIONS),zc=e=>!!(e&Fc.TIMED_METADATA),Bc=e=>!!(e&Fc.HAS_COMPOSITION_TIME),Vc=e=>{let t=new DataView(e,0),n=t.getUint8(0),r=t.getUint16(1),i=t.getUint8(3),a=t.getUint8(4),o=ke(new Uint8Array(e),5,12),s=t.getUint32(13),c=Bc(i)?t.getInt16(17):void 0;return{version:n,renditionId:a,flags:i,timestamp:o,timescale:s,payload:e.slice(r),compositionTimeOffset:c}},Hc=`data:video/mp4;base64,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`;h(),P();var Uc=()=>`wakeLock`in navigator&&window.navigator.userAgent.indexOf(`Samsung`)===-1,Wc=class{constructor(){m(this,`enabled`,!1),m(this,`wakeLockVideo`,void 0),m(this,`_wakeLock`,null),m(this,`handleVisibilityChange`,()=>{this._wakeLock!==null&&document.visibilityState===`visible`&&this.enable()}),Uc()&&(this._wakeLock=null,document.addEventListener(`visibilitychange`,this.handleVisibilityChange),document.addEventListener(`fullscreenchange`,this.handleVisibilityChange))}_addSourceToVideo(e,t,n){let r=document.createElement(`source`);r.src=n,r.type=`video/${t}`,e.appendChild(r)}get isEnabled(){return this.enabled}attach(e){if(!Uc()){if(!this.wakeLockVideo){let e=document.createElement(`video`);this.wakeLockVideo=e,this.wakeLockVideo.setAttribute(`title`,`Live Stream`),this.wakeLockVideo.setAttribute(`playsinline`,``),this._addSourceToVideo(this.wakeLockVideo,`mp4`,Hc),Object.assign(this.wakeLockVideo.style,{position:`absolute`,left:`-100%`,top:`-100%`}),this.wakeLockVideo.addEventListener(`loadedmetadata`,()=>{e.addEventListener(`timeupdate`,()=>{e.currentTime>.5&&(e.currentTime=Math.random())})})}e&&e.appendChild(this.wakeLockVideo)}}enable(){var e=this;return N(function*(){if(Uc())return navigator.wakeLock.request(`screen`).then(t=>{e._wakeLock=t,e.enabled=!0,e._wakeLock.addEventListener(`release`,()=>{})}).catch(()=>{e.enabled=!1});var t,n;return((t=(n=e.wakeLockVideo)==null?void 0:n.play())==null?Promise.resolve():t).then(t=>(e.enabled=!0,t)).catch(()=>{e.enabled=!1})})()}disable(){if(Uc())this._wakeLock&&this._wakeLock.release(),this._wakeLock=null;else{var e,t;(e=this.wakeLockVideo)==null||e.pause(),(t=this.wakeLockVideo)==null||t.remove()}this.enabled=!1}unload(){document.removeEventListener(`visibilitychange`,this.handleVisibilityChange),document.removeEventListener(`fullscreenchange`,this.handleVisibilityChange),this.disable()}};E(),A(),M(),R(),O();var Gc=/\r\n|\r|\n/,Kc=new WeakMap,qc=new WeakMap,Jc=class{constructor(e){T(this,Kc,void 0),T(this,qc,void 0),k(Kc,this,e),k(qc,this,0)}skipEmptyLines(){let e=0;for(;j(Kc,this)[j(qc,this)]===``;){var t;k(qc,this,(t=j(qc,this),t++,t)),e++}return e}readLine(){var e,t;return j(Kc,this)[k(qc,this,(e=j(qc,this),t=e++,e)),t]}takeUntilEmptyLine(){let e=[];for(;j(Kc,this)[j(qc,this)]!==``;){let t=this.readLine();if(t===void 0)break;e.push(t)}return e}linesLeft(){return j(Kc,this).length-j(qc,this)}},Yc=new WeakSet,Xc=class{constructor(){L(this,Yc)}parse(e){let t=[],n=new Jc(e.split(Gc)),r=n.readLine();if(!r||!r.startsWith(`WEBVTT`))throw Error(`missing 'WEBVTT' signature`);for(;n.readLine()!==``;);for(;n.linesLeft()>0;){let e=D(Yc,this,Zc).call(this,n);e&&t.push(e),n.skipEmptyLines()}return t}};function Zc(e){e.skipEmptyLines();let t=new Jc(e.takeUntilEmptyLine()),n=t.readLine(),r;if(n!=null&&n.startsWith(`NOTE`))return;if(n!=null&&n.includes(`-->`)||(r=n,n=t.readLine()),n===void 0)throw Error(`expected cue line`);let[i,a]=n.split(`-->`).map(e=>e.trim());if(!i||!a)throw Error(`a cue needs both start and end time start: ${i} end: ${a}`);let[o,s]=a.split(` `,1).map(e=>e.trim());if(!o)throw Error(`missing end time: ${o}`);let c=t.readLine();if(!c)throw Error(`missing text`);let l=D(Yc,this,Qc).call(this,i),u=D(Yc,this,Qc).call(this,o);return{id:r,startTime:l,endTime:u,text:c}}function Qc(e){let t=e.split(`:`);if(t.length===2){let[e=0,n=0]=t.map(e=>parseFloat(e));return e*60+n}let[n=0,r=0,i=0]=t.map(e=>parseFloat(e));return n*60*60+r*60+i}var $c=e=>{let t=window;t.vindralInstances=t.vindralInstances||{},t.vindralInstances[e.getStatistics().clientId.substring(0,8)]=e};xi(),H(),h(),P();var el=class extends Bt{constructor({type:e,autoplay:t,muted:n,volume:r,logger:i,poster:a}){var o;super(),o=this,m(this,`element`,void 0),m(this,`logger`,void 0),m(this,`seekTimes`,new w(10)),m(this,`seekStartTime`,void 0),m(this,`_totalSeekTime`,0),m(this,`_userProvidedMuted`,void 0),m(this,`timers`,new zn),m(this,`_userHasProvidedInput`,!1),m(this,`_isPaused`,!0),m(this,`isActivated`,!1),m(this,`dummy`,void 0),m(this,`addEventListeners`,()=>{this.element.addEventListener(`stalled`,this.onEvent),this.element.addEventListener(`canplay`,this.onEvent),this.element.addEventListener(`loadeddata`,this.onEvent),this.element.addEventListener(`loadedmetadata`,this.onEvent),this.element.addEventListener(`canplaythrough`,this.onEvent),this.element.addEventListener(`waiting`,this.onWaiting),this.element.addEventListener(`playing`,this.onPlayPause),this.element.addEventListener(`pause`,this.onPlayPause),this.element.addEventListener(`seeked`,this.onSeekEnd),this.element.addEventListener(`seeking`,this.onSeekStart),this.element.addEventListener(`volumechange`,this.onVolumeChange),this.element.addEventListener(`timeupdate`,this.onBufferStateChange),this.element.addEventListener(`progress`,this.onBufferStateChange)}),m(this,`removeEventListeners`,()=>{this.element.removeEventListener(`stalled`,this.onEvent),this.element.removeEventListener(`canplay`,this.onEvent),this.element.removeEventListener(`loadeddata`,this.onEvent),this.element.removeEventListener(`loadedmetadata`,this.onEvent),this.element.removeEventListener(`canplaythrough`,this.onEvent),this.element.removeEventListener(`waiting`,this.onWaiting),this.element.removeEventListener(`playing`,this.onPlayPause),this.element.removeEventListener(`pause`,this.onPlayPause),this.element.removeEventListener(`seeked`,this.onSeekEnd),this.element.removeEventListener(`seeking`,this.onSeekStart),this.element.removeEventListener(`volumechange`,this.onVolumeChange),this.element.removeEventListener(`timeupdate`,this.onBufferStateChange),this.element.removeEventListener(`progress`,this.onBufferStateChange)}),m(this,`_iosHackEnterPiPMode`,()=>{let e=this.element.parentElement,t=this.element.clientWidth/this.element.clientHeight;this.element.style.position=`fixed`,this.element.style.opacity=`0`,this.element.style.pointerEvents=`none`,e&&(this.dummy=document.createElement(`video`),this.dummy.style.paddingBottom=`calc(100% / ${t})`,this.dummy.style.width=`100%`,this.dummy.style.height=`0px`,e.appendChild(this.dummy))}),m(this,`_iosHackExitPiPMode`,()=>{this.element.style.position=`relative`,this.element.style.opacity=`1`,this.element.style.pointerEvents=`auto`,this.dummy&&(this.dummy.remove(),this.dummy=void 0)}),m(this,`attach`,e=>{this.element.remove(),e.appendChild(this.element)}),m(this,`load`,()=>{this.timers.setInterval(this.onPlayPause,500),this.timers.setTimeout(()=>{this.timers.setInterval(this.onBufferStateChange,500)},1e4)}),m(this,`unload`,()=>{this.timers.unload(),this.removeEventListeners()}),m(this,`getPlaybackRate`,()=>this.element.playbackRate),m(this,`getPlaybackState`,()=>this.element.readyState>=this.element.HAVE_FUTURE_DATA?`playing`:`buffering`),m(this,`getMediaElementState`,()=>this.element.paused?`paused`:`playing`),m(this,`setPlaybackRate`,e=>void(this.element.playbackRate=e)),m(this,`getBuffer`,()=>{let e=[],t=this.element.buffered;if(!t)return[];for(let n=0;n<t.length;n++)e.push({start:t.start(n)*1e3,end:t.end(n)*1e3});return e}),m(this,`pause`,()=>{this._isPaused=!1,this.element.pause()}),m(this,`tryPlay`,()=>{this.element.muted=this._userProvidedMuted,this._play().catch(S)}),m(this,`play`,()=>{this.element.muted=this._userProvidedMuted,this._play().catch(e=>{if(e instanceof Error){let t=new U(`Media Play Error`,{source:e,isFatal:!1,code:`media_play_error`});this.emit(`error`,t)}})}),m(this,`_play`,N(function*(){try{yield o.element.play(),o._userHasProvidedInput=!o.muted||o._userProvidedMuted}catch(e){if(e instanceof Error&&e.name===`NotAllowedError`)if(o._userHasProvidedInput=!1,o.element.muted)o.emit(`needs user input`,{forAudio:!0,forVideo:!0});else return o.element.muted=!0,o.emit(`needs user input`,{forAudio:!0,forVideo:!1}),o._play();else throw e}})),m(this,`onEvent`,e=>{this.logger.trace(e.type,{state:this.element.readyState,event:e,playbackState:this.getPlaybackState()})}),m(this,`onWaiting`,e=>{this.onEvent(e),this.onBufferStateChange()}),m(this,`onVolumeChange`,()=>{this.logger.info(`volume state`,{isMuted:this.element.muted,volume:this.element.volume}),this.emit(`volume state`,{isMuted:this.element.muted,volume:this.element.volume})}),m(this,`onPlayPause`,()=>{this._isPaused!==this.element.paused&&(this._isPaused=this.element.paused,this.logger.info(`player pause change`,{paused:this.element.paused}),this.emit(`media element state`,this.getMediaElementState()))}),m(this,`getBufferState`,()=>({isPaused:this.element.paused,buffered:this.getBuffer(),currentTime:this.currentTime,playbackState:this.getPlaybackState()})),m(this,`onBufferStateChange`,()=>{this.emit(`buffer state`,this.getBufferState())}),m(this,`onSeekStart`,()=>{this.seekStartTime=Date.now()}),m(this,`onSeekEnd`,()=>{if(!this.seekStartTime)return;let e=Date.now()-this.seekStartTime;this.seekTimes.push(e),this._totalSeekTime+=e,this.seekStartTime=void 0}),this.logger=i,this._userProvidedMuted=n,this.element=document.createElement(e),this.element instanceof HTMLVideoElement&&(this.element.playsInline=!0),this.element.controls=!1,this.element.autoplay=t,this.element.muted=n,r!==void 0&&(this.element.volume=r),this.element.style.display=`block`,this.element.style.width=`100%`,this.element.disableRemotePlayback=!0,this.element.setAttribute(`poster`,`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAJCAQAAACRI2S5AAAAEElEQVR42mNkIAAYRxWAAQAG9gAKqv6+AwAAAABJRU5ErkJggg==`),this.onPlayPause(),setTimeout(()=>{!this.element||!a||this.element.setAttribute(`poster`,a)},0),this.addEventListeners()}get seekTime(){return this.seekTimes.isEmpty()?0:At(this.seekTimes.items())}get totalSeekTime(){return this._totalSeekTime}get isSeeking(){return this.element.seeking}get currentTime(){return Number.isNaN(this.element.currentTime)?0:this.element.currentTime*1e3}set currentTime(e){Number.isFinite(e)&&(this.element.currentTime=e/1e3)}get playbackRate(){return this.element.playbackRate}set playbackRate(e){this.element.playbackRate=e}get volume(){return this.element.volume}set volume(e){this.element.volume=e}get muted(){return this.element.muted}set muted(e){this._userProvidedMuted=e,this.element.muted=e}get userHasProvidedInput(){return this._userHasProvidedInput}get isPaused(){return this._isPaused}},tl=e=>{if(!navigator.mediaCapabilities)return Promise.resolve({smooth:!0,supported:!0,powerEfficient:!0,failedToQuery:!0});if(e.codec===`webvtt`)throw Error(`WebVTT is not supported`);let t;return t=dr(e)?{type:`media-source`,audio:{contentType:fr(e),bitrate:e.bitRate,channels:e.channels.toString(),samplerate:e.sampleRate}}:{type:`media-source`,video:{contentType:fr(e),bitrate:e.bitRate,width:e.width,height:e.height,framerate:e.frameRate[0]/e.frameRate[1]}},navigator.mediaCapabilities.decodingInfo(t)};h(),B();var nl,rl=.15,il=.2,al=.4,ol=.5,sl=.6,cl=15,ll={cooldownTime:3e3,maxBufferingEvents:{last10Seconds:0},maxBufferingRatio:{last10Seconds:0},maxRecentDowngradesCount:3,maxDowngradeLookbackMs:60*1e3,minTimeSpentPlaying:{factor:.5,ratio:.1},maxCooldownRatio:2},ul=e=>t=>t>e,dl=class{constructor(e,t,n,r){m(this,`qualityOfServiceSource`,void 0),m(this,`config`,void 0),m(this,`emitter`,void 0),m(this,`logger`,void 0),m(this,`isSuspended`,!1),m(this,`lastAdaptTime`,Date.now()),m(this,`isEnabled`,!0),m(this,`load`,()=>{this.emitter.on(`buffer state`,this.onBufferState),this.emitter.on(`adapted level`,this.onAdaptedLevel)}),m(this,`unload`,()=>{this.emitter.off(`buffer state`,this.onBufferState),this.emitter.off(`adapted level`,this.onAdaptedLevel)}),m(this,`suspend`,()=>{this.isSuspended=!0}),m(this,`unsuspend`,()=>{this.reset(),this.isSuspended=!1}),m(this,`reset`,(e=0)=>{this.lastAdaptTime=Date.now()+e}),m(this,`getStatistics`,()=>({isAbrEnabled:this.isEnabled})),m(this,`isQoSOk`,e=>{let t=this.qualityOfServiceSource.getLevelStats(e),{upgradesFromLevel:n,downgradesFromLevel:r}=t==null?{upgradesFromLevel:[],downgradesFromLevel:[]}:t,i=Date.now()-this.config.maxDowngradeLookbackMs,a=r.filter(ul(i)).length,o=n.filter(ul(i)).length;if(a-o>this.config.maxRecentDowngradesCount)return this.logger.debug(`Recent downgrades count is over maximum`,{downgrades:a-o,maxRecentDowngradesCount:this.config.maxRecentDowngradesCount}),!1;let s=this.qualityOfServiceSource.timeSpentPlayingInAtLeastLevelRatio(e),c=s*(this.qualityOfServiceSource.timeActive()-this.qualityOfServiceSource.timeSpentBuffering())/this.config.maxDowngradeLookbackMs;if(a>1&&c<this.config.minTimeSpentPlaying.factor)return this.logger.debug(`Time spent playing is too low`,{recentDowngrades:a,timeSpentPlayingInAtLeastLevelRatio:s}),!1;if(a>1&&s<this.config.minTimeSpentPlaying.ratio)return this.logger.debug(`Time spent playing in at least this level is too low`,{recentDowngrades:a,timeSpentPlayingInAtLeastLevelRatio:s}),!1;let l=Math.max(0,r.length-n.length-c),u=Date.now()-this.config.maxDowngradeLookbackMs*l,d=r.filter(ul(u)).length;return d&&l>this.config.maxCooldownRatio?(this.logger.debug(`Too many downgrades compared to time spent playing`,{downgradesWithinCooldownTime:d,cooldownRatio:l}),!1):!0}),m(this,`onBufferState`,e=>{if(!this.isEnabled||this.isSuspended||this.lastAdaptTime+this.config.cooldownTime>Date.now())return;let{bufferFullness:t,general:n}=this.qualityOfServiceSource.getMetrics(),r=this.qualityOfServiceSource.getBufferFullnessRegression();if(!r)return;let i=10*1e3,a=30*1e3,{slope:o}=r,s=r.predict(cl),c=o<0,l=r.predict(cl)<al&&r.slope<0,u=r.predict(cl)>sl,d=this.qualityOfServiceSource.timeSpentBufferingLast(a),f=this.qualityOfServiceSource.timeSpentActiveLast(a),p=this.qualityOfServiceSource.bufferingEventsLast(a),m=f>0?d/f:0,h=this.qualityOfServiceSource.getTargetBufferTime();if(t<.15&&m>.8){this.adaptLevel(`reconnect`);return}if(n.decodeRate<=.9){this.adaptLevel(`downgrade`);return}if(t>ol&&u&&!this.tooMuchTimeBuffering(i)&&!this.tooManyBufferingEvents(i)){this.adaptLevel(`upgrade`);return}if(h<1e3){e.playbackState===`buffering`&&(p>5||m>.3)&&this.adaptLevel(`downgrade`);return}(l||t<rl)&&c&&t<al&&s<il&&this.adaptLevel(e.playbackState===`buffering`?`double downgrade`:`downgrade`)}),m(this,`onAdaptedLevel`,()=>{this.reset()}),m(this,`adaptLevel`,e=>this.emitter.emit(`adapt level`,e)),this.qualityOfServiceSource=n,this.config=z(z({},ll),r),this.emitter=e,this.logger=t}tooMuchTimeBuffering(e){let t=this.qualityOfServiceSource.timeSpentActiveLast(e);return(t?this.qualityOfServiceSource.timeSpentBufferingLast(e)/t:0)>this.config.maxBufferingRatio.last10Seconds}tooManyBufferingEvents(e){return this.qualityOfServiceSource.timeSpentBufferingLast(e)>this.config.maxBufferingEvents.last10Seconds}};nl=dl,m(dl,`create`,(e,t,n,r={})=>new nl(e,t,n,r)),h(),B();var fl,pl={minBufferTime:1500,maxBufferTime:1500,cooldownTime:3e4,maxBufferingEvents:{last30Seconds:3},maxBufferingRatio:{last30Seconds:.15}},ml=class e{constructor(t,n,r,i,a){m(this,`qualityOfServiceSource`,void 0),m(this,`targetBufferTimeTarget`,void 0),m(this,`config`,void 0),m(this,`emitter`,void 0),m(this,`logger`,void 0),m(this,`isSuspended`,!1),m(this,`lastIncreaseTime`,Date.now()),m(this,`bufferTimeAdjustmentCount`,0),m(this,`load`,()=>{this.emitter.on(`buffer state`,this.onBufferState)}),m(this,`unload`,()=>{this.emitter.off(`buffer state`,this.onBufferState)}),m(this,`suspend`,()=>{this.isSuspended=!0}),m(this,`unsuspend`,()=>{this.reset(),this.isSuspended=!1}),m(this,`reset`,()=>{this.lastIncreaseTime=Date.now()}),m(this,`getStatistics`,()=>({bufferTimeAdjustmentCount:this.bufferTimeAdjustmentCount})),m(this,`onBufferState`,t=>{let{minBufferTime:n,maxBufferTime:r,cooldownTime:i}=this.config;if(this.isSuspended||this.lastIncreaseTime+i>Date.now()||this.targetBufferTimeTarget.targetBufferTime>=r)return;let a=this.qualityOfServiceSource.timeSpentBufferingLast(30*1e3),o=this.qualityOfServiceSource.bufferingEventsLast(30*1e3),s=a/this.qualityOfServiceSource.timeSpentActiveLast(30*1e3),c=Math.ceil(Math.max((r-n)/(e.BUFFER_TIME_MAX_STEPS-1),e.BUFFER_TIME_STEP_SIZE));(s>this.config.maxBufferingRatio.last30Seconds||o>this.config.maxBufferingEvents.last30Seconds)&&(this.targetBufferTimeTarget.targetBufferTime=Math.min(r,this.targetBufferTimeTarget.targetBufferTime+c),this.bufferTimeAdjustmentCount++,this.reset())}),this.qualityOfServiceSource=r,this.targetBufferTimeTarget=i,this.config=z(z({},pl),a),this.emitter=t,this.logger=n}updateConfig(e){this.config=z(z({},this.config),e)}};fl=ml,m(ml,`BUFFER_TIME_STEP_SIZE`,500),m(ml,`BUFFER_TIME_MAX_STEPS`,3),m(ml,`create`,(e,t,n,r,i={})=>new fl(e,t,n,r,i));var hl=e=>e?{Authorization:`Bearer ${e}`}:void 0,gl=(e,t)=>{try{let t=e.ancestorOrigins;if(t&&t.length>0)return Array.from(t).join(`,`)||void 0}catch(e){}try{if(t.referrer)return new URL(t.referrer).origin||void 0}catch(e){}};H(),h(),B(),P();var _l=e=>typeof e==`object`&&!!e&&`message`in e,vl=class extends Error{constructor({status:e,url:t,body:n}){let r=Jn(n),i=_l(r)?r.message:`Url ${t.toString()}, Status code: ${e}, Body: ${n}`;super(i),m(this,`status`,void 0),m(this,`body`,void 0),m(this,`url`,void 0),this.status=e,this.body=n,this.url=t,Object.setPrototypeOf(this,new.target.prototype)}},yl=e=>typeof e.status==`number`,bl=()=>{if(!(typeof window>`u`||typeof document>`u`))return gl(window.location,document)},xl=e=>{let t=bl();if(!t||e.searchParams.has(`parentOrigin`))return e;let n=new URL(e.toString());return n.searchParams.append(`parentOrigin`,t),n},Sl=function(){var e=N(function*(e,t){let n=xl(e),r=yield fetch(n.toString(),z({mode:`cors`},t));if(!r.ok)throw new vl({status:r.status,url:n,body:yield r.text()});return r});return function(t,n){return e.apply(this,arguments)}}(),Cl=function(){var e=N(function*(e,t){return yield(yield Sl(e,z({},t))).json()});return function(t,n){return e.apply(this,arguments)}}();(function(){var e=N(function*(e){return Sl(e)});return function(t){return e.apply(this,arguments)}})();var wl=function(){var e=N(function*(e,t){return Sl(e,z({method:`POST`},t))});return function(t,n){return e.apply(this,arguments)}}();function Tl(e){var t;return!(typeof e.edges[0]==`string`||e.channels[0]&&`catalog`in e.channels[0]&&((t=e.channels[0])==null?void 0:t.catalog)===void 0)}h(),B(),P();var El={lbConnect:e=>e.channelGroupId?`connect?channelId=${e.channelId}&channelGroupId=${e.channelGroupId}`:`connect?channelId=${e.channelId}`,thumbnails:(e,t)=>t?e.channelGroupId?`thumbnail/?channelGroupId=${e.channelGroupId}&auth.token=${t}&auth.type=jwt`:e.channelId?`thumbnail/?channelId=${e.channelId}&auth.token=${t}&auth.type=jwt`:`thumbnail`:`thumbnail`},Dl=class{constructor(e){m(this,`baseUrl`,void 0),m(this,`tokenFactory`,void 0),this.baseUrl=new URL(`/api/v4/`,e.publicEndpoint).toString(),this.tokenFactory=e.tokenFactory}connect(e){var t=this;return N(function*(){let{channelId:n,channelGroupId:r}=e,i={channelId:n,channelGroupId:r},a=new URL(El.lbConnect(e),t.baseUrl),o=t.getAuthToken(i),s=yield Cl(a,{headers:t.getHeaders(o)});if(Tl(s)){let e=s.channels.map(e=>{let n=t.toChannel(e,i),r=lr(e.catalog);return z(z(z({},e),n),{},{renditions:r})});return z(z({},s),{},{channels:e})}else{let e=s.channels.map(e=>{let n=t.toChannel(e,i);return z(z({},e),n)});return z(z({},s),{},{channels:e})}})()}getChannel(e){var t=this;return N(function*(){let n={channelId:e},r=new URL(`channel/${e}`,t.baseUrl),i=t.getAuthToken(n),a=yield Cl(r,{headers:t.getHeaders(i)});return t.toChannel(a,n,i)})()}getChannels(e){var t=this;return N(function*(){let n={channelGroupId:e},r=new URL(`channels/${e}`,t.baseUrl),i=t.getAuthToken(n),a=yield Cl(r,{headers:t.getHeaders(i)}),o=Array.isArray(a)?a:a.channels;return t.toChannels(o,n,i)})()}getHeaders(e){var t;return(t=hl(e))==null?{}:t}getAuthToken(e){return this.tokenFactory?this.tokenFactory(e):void 0}toChannels(e,t,n){return e.map(e=>this.toChannel(e,t,n))}toChannel(e,t,n){let{baseUrl:r,sizes:i}=e.thumbnail,a=r||new URL(El.thumbnails(t,n),this.baseUrl),o=i.map(r=>new URL(`?channelId=${e.channelId}&width=${r.width}&height=${r.height}${Ol(t,n)}`,a).toString());return{channelId:e.channelId,name:e.name,isLive:e.isLive,thumbnailUrls:o}}},Ol=(e,t)=>t?e.channelGroupId?`&channelGroupId=${e.channelGroupId}&auth.token=${t}&auth.type=jwt`:`&auth.token=${t}&auth.type=jwt`:``,kl=function(e){return e[e.StreamHeaderGroup=4]=`StreamHeaderGroup`,e[e.FetchHeader=5]=`FetchHeader`,e[e.StreamHeaderTrack=60]=`StreamHeaderTrack`,e}({});H(),E(),M(),A(),P(),R(),En(),kn(),O();var Al,jl,Ml,Nl,Pl,Fl,Il,Ll,Rl,zl={Normal:0,ObjectDoesNotExist:1,GroupDoesNotExist:2,EndOfGroup:3,EndOfTrackAndGroup:4};function Bl(e){switch(e){case zl.Normal:case zl.ObjectDoesNotExist:case zl.GroupDoesNotExist:case zl.EndOfGroup:case zl.EndOfTrackAndGroup:return}throw Error(`Unknown object status ${e}`)}var Vl=new WeakMap,Hl=new WeakMap,Ul=new WeakMap,Wl=new WeakMap,Gl=new WeakMap,Kl=new WeakMap,ql=new WeakMap,Jl=new WeakMap;Al=Symbol.asyncIterator,jl=cn(),Ml=Symbol.asyncDispose;var Yl=class{endStatus(){return j(Kl,this).promise}constructor(e,t,n,r,i,a){T(this,Vl,void 0),T(this,Hl,void 0),T(this,Ul,void 0),T(this,Wl,void 0),T(this,Gl,void 0),T(this,Kl,new C),T(this,ql,0),T(this,Jl,void 0),k(Vl,this,e),k(Hl,this,t),k(Ul,this,n),k(Wl,this,r),k(Gl,this,i),k(Jl,this,a)}groupId(){return j(Hl,this)}subscribeId(){return j(Ul,this)}next(){var e=this;return N(function*(){var t;if(!j(Kl,e).pending||(yield j(Vl,e).isDone()))return{done:!0,value:void 0};let n=j(ql,e)===0?j(Hl,e):yield j(Vl,e).readBigVarInt(),r=yield j(Vl,e).readBigVarInt(),i=yield j(Vl,e).readVarInt(),a=0,o=new Uint8Array;return i>0?o=yield j(Vl,e).read(i):a=yield j(Vl,e).readVarInt(),Bl(a),(a===zl.EndOfTrackAndGroup||a===zl.EndOfGroup)&&j(Kl,e).resolve(a),k(ql,e,(t=j(ql,e),t++,t)),{done:!1,value:{subscribeId:j(Ul,e),trackAlias:j(Wl,e),groupId:n,subGroupId:F(0),objectId:r,subscriberPriority:j(Gl,e),streamId:j(Jl,e),objectStatus:a,payload:o}}})()}return(){var e=this;return N(function*(){for(;!(yield e.next()).done;);return{done:!0,value:void 0}})()}[Al](){return this}[jl](){return Promise.resolve()}[Ml](){return Promise.resolve()}},Xl=new WeakMap,Zl=new WeakMap,Ql=new WeakMap,$l=new WeakMap,eu=new WeakMap,tu=new WeakSet;Nl=Symbol.asyncIterator,Pl=cn(),Fl=Symbol.asyncDispose;var nu=class{constructor(e,t,n,r,i){L(this,tu),T(this,Xl,void 0),T(this,Zl,void 0),T(this,Ql,void 0),T(this,$l,void 0),T(this,eu,void 0),k(Xl,this,e),k(Zl,this,t),k(Ql,this,n),k($l,this,r),k(eu,this,i)}streamId(){return j(eu,this)}groups(){return D(tu,this,ru).call(this)}subscribeId(){return j(Zl,this)}return(){var e=this;return N(function*(){return yield j(Xl,e).close(),{done:!0,value:void 0}})()}[Nl](){return this}[Pl](){return D(tu,this,iu).call(this)}[Fl](){return D(tu,this,iu).call(this)}};function ru(){var e=this;return Dn(function*(){for(;!(yield V(j(Xl,e).isDone()));){let t=yield V(j(Xl,e).readBigVarInt()),n=new Yl(j(Xl,e),t,j(Zl,e),j(Ql,e),j($l,e),j(eu,e));if(yield n,(yield V(Promise.race([n.endStatus(),j(Xl,e).closed()])))===zl.EndOfTrackAndGroup)return}})()}function iu(){return j(Xl,this).close().catch(()=>{})}var au=new WeakMap,ou=new WeakMap,su=new WeakMap,cu=new WeakMap,lu=new WeakMap,uu=new WeakMap,du=new WeakMap,fu=new WeakMap,pu=new WeakMap,mu=new WeakSet;Il=Symbol.asyncIterator,Ll=cn(),Rl=Symbol.asyncDispose;var hu=class{constructor(e,t,n,r,i,a,o){L(this,mu),T(this,au,void 0),T(this,ou,void 0),T(this,su,void 0),T(this,cu,void 0),T(this,lu,void 0),T(this,uu,void 0),T(this,du,!1),T(this,fu,void 0),T(this,pu,an.get().createContext(`GroupReader`)),k(au,this,e),k(ou,this,t),k(su,this,n),k(cu,this,r),k(lu,this,i),k(uu,this,a),k(fu,this,o)}streamId(){return j(fu,this)}groupId(){return j(cu,this)}subscribeId(){return j(ou,this)}next(){var e=this;return N(function*(){try{if((yield j(au,e).isDone())||j(du,e))return{done:!0,value:void 0};let t=yield j(au,e).readBigVarInt(),n=yield j(au,e).readVarInt(),r=0,i=new Uint8Array;return n>0?i=yield j(au,e).read(n):r=yield j(au,e).readVarInt(),Bl(r),r===zl.EndOfGroup&&k(du,e,!0),{done:!1,value:{subscribeId:j(ou,e),trackAlias:j(su,e),groupId:j(cu,e),subGroupId:j(lu,e),subscriberPriority:j(uu,e),streamId:j(fu,e),objectId:t,objectStatus:r,payload:i}}}catch(t){return j(pu,e).warn(`Error reading object`,{error:t}),{done:!0,value:void 0}}})()}return(){var e=this;return N(function*(){return yield j(au,e).close().catch(()=>{}),{done:!0,value:void 0}})()}groups(){return D(mu,this,gu).call(this)}[Il](){return this}[Ll](){return D(mu,this,_u).call(this)}[Rl](){return D(mu,this,_u).call(this)}};function gu(){var e=this;return Dn(function*(){yield e})()}function _u(){return j(au,this).close().catch(()=>{})}function vu(e,t){return yu.apply(this,arguments)}function yu(){return yu=N(function*(e,t){let n=yield e.readVarInt();switch(n){case kl.StreamHeaderGroup:return new hu(e,yield e.readBigVarInt(),yield e.readBigVarInt(),yield e.readBigVarInt(),yield e.readBigVarInt(),yield e.readUnsigned8(),t);case kl.StreamHeaderTrack:return new nu(e,yield e.readBigVarInt(),yield e.readBigVarInt(),yield e.readUnsigned8(),t);default:throw Error(`Unexpected message type ${n}`)}}),yu.apply(this,arguments)}function Z(e){var t,n,r,i=2;for(typeof Symbol<`u`&&(n=Symbol.asyncIterator,r=Symbol.iterator);i--;){if(n&&(t=e[n])!=null)return t.call(e);if(r&&(t=e[r])!=null)return new bu(t.call(e));n=`@@asyncIterator`,r=`@@iterator`}throw TypeError(`Object is not async iterable`)}function bu(e){function t(e){if(Object(e)!==e)return Promise.reject(TypeError(e+` is not an object.`));var t=e.done;return Promise.resolve(e.value).then(function(e){return{value:e,done:t}})}return bu=function(e){this.s=e,this.n=e.next},bu.prototype={s:null,n:null,next:function(){return t(this.n.apply(this.s,arguments))},return:function(e){var n=this.s.return;return n===void 0?Promise.resolve({value:e,done:!0}):t(n.apply(this.s,arguments))},throw:function(e){var n=this.s.return;return n===void 0?Promise.reject(e):t(n.apply(this.s,arguments))}},new bu(e)}H(),E(),A(),M();var xu=new WeakMap,Su=new WeakMap,Cu=class{constructor(e,t){T(this,xu,void 0),T(this,Su,void 0),k(xu,this,e),k(Su,this,t)}start(e){j(xu,this).addEventListener(`message`,t=>{if(typeof t.data==`object`&&t.data instanceof ArrayBuffer){let n=new Uint8Array(t.data);n[0]===j(Su,this)&&e.enqueue(n.subarray(1))}}),j(xu,this).addEventListener(`error`,()=>e.error(Error(`WebSocket error`))),j(xu,this).addEventListener(`close`,()=>Kn(()=>e.close()))}cancel(e){j(xu,this).close(void 0,e)}},wu=new WeakMap,Tu=new WeakMap,Eu=new WeakMap,Du=new WeakMap,Ou=class{constructor(e){T(this,wu,void 0),T(this,Tu,null),T(this,Eu,null),T(this,Du,null),k(wu,this,e)}start(e){k(Tu,this,t=>{if(typeof t.data==`object`&&t.data instanceof ArrayBuffer){let n=new Uint8Array(t.data),r=n[0]||0,i=r&127,a=(r>>7&1)>0;if(i&&i!==0){let t=n.subarray(1);e.enqueue([a,i,t])}}}),k(Eu,this,()=>Kn(()=>e.close())),k(Du,this,()=>e.error(Error(`WebSocket error`))),j(wu,this).addEventListener(`message`,j(Tu,this)),j(wu,this).addEventListener(`error`,j(Du,this)),j(wu,this).addEventListener(`close`,j(Eu,this))}cancel(e){j(Tu,this)&&j(wu,this).removeEventListener(`message`,j(Tu,this)),j(Du,this)&&j(wu,this).removeEventListener(`error`,j(Du,this)),j(Eu,this)&&j(wu,this).removeEventListener(`close`,j(Eu,this))}};H(),R(),E(),A(),M(),O(),P();function ku(e,t){return e[t]<<8|e[t+1]}function Au(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}var ju=new WeakMap,Mu=new WeakMap,Nu=new WeakMap,Q=new WeakMap,Pu=new WeakMap,Fu=new WeakSet,Iu=class{constructor(e,t){L(this,Fu),T(this,ju,void 0),T(this,Mu,void 0),T(this,Nu,void 0),T(this,Q,0),T(this,Pu,new TextDecoder),k(ju,this,e),k(Mu,this,t),k(Nu,this,t.getReader())}readUnsigned8(){var e=this;return N(function*(){var t,n;return yield D(Fu,e,zu).call(e,1),j(ju,e)[k(Q,e,(t=j(Q,e),n=t++,t)),n]})()}readString(){var e=this;return N(function*(){let t=yield e.readVarInt(),n=yield e.read(t);return j(Pu,e).decode(n)})()}readVarInt(){var e=this;return N(function*(){let t=yield e.readBigVarInt();if(t>2**53-1)throw Error(`VarInt is too large`);return Number(t)})()}readBigVarInt(){var e=this;return N(function*(){yield D(Fu,e,zu).call(e,1);let t=j(ju,e)[j(Q,e)],n=(t&192)>>6;switch(j(ju,e)[j(Q,e)]=t&63,n){case 0:var r,i;return F(j(ju,e)[k(Q,e,(r=j(Q,e),i=r++,r)),i]);case 1:{yield D(Fu,e,zu).call(e,2);let t=j(Q,e);return k(Q,e,j(Q,e)+2),F(ku(j(ju,e),t))}case 2:{yield D(Fu,e,zu).call(e,4);let t=j(Q,e);return k(Q,e,j(Q,e)+4),F(Au(j(ju,e),t))}case 3:{yield D(Fu,e,zu).call(e,8);let t=j(Q,e);k(Q,e,j(Q,e)+8);let n=new DataView(j(ju,e).buffer,j(ju,e).byteOffset+t,8);return F(Se?n.getBigUint64(0):n.getUint32(0)*4294967296+n.getUint32(4))}default:throw Error(`Invalid VarInt size`)}})()}read(e){var t=this;return N(function*(){return yield D(Fu,t,zu).call(t,e),D(Fu,t,Vu).call(t,e)})()}readAll(){var e=this;return N(function*(){for(;yield D(Fu,e,Ru).call(e););return D(Fu,e,Vu).call(e,D(Fu,e,Lu).call(e))})()}isDone(){var e=this;return N(function*(){return D(Fu,e,Lu).call(e)>0?!1:(yield D(Fu,e,Ru).call(e))===0})()}closed(){var e=this;return N(function*(){return j(Nu,e).closed})()}close(){var e=this;return N(function*(){return j(Nu,e).releaseLock(),j(Mu,e).cancel()})()}};function Lu(){return j(ju,this).length-j(Q,this)}function Ru(){var e=this;return N(function*(){let{value:t,done:n}=yield j(Nu,e).read();if(n)return Promise.resolve(0);if(D(Fu,e,Lu).call(e)===0)k(ju,e,t);else{let n=j(ju,e).subarray(j(Q,e)),r=new Uint8Array(n.length+t.length);r.set(n),r.set(t,n.byteLength),k(ju,e,r)}return k(Q,e,0),Promise.resolve(t.length)})()}function zu(e){var t=this;return N(function*(){for(;D(Fu,t,Lu).call(t)<e;)if((yield D(Fu,t,Ru).call(t))===0)throw Error(`Read failed`)})()}function Bu(e){return j(ju,this).subarray(j(Q,this),j(Q,this)+e)}function Vu(e){let t=D(Fu,this,Bu).call(this,e);return k(Q,this,j(Q,this)+t.length),t}R(),E(),M(),A(),P(),O(),h();var Hu=new WeakMap,Uu=new WeakMap,Wu=new WeakMap,Gu=new WeakMap,Ku=new WeakMap,qu=new WeakMap,Ju=new WeakMap,Yu=new WeakMap,Xu=new WeakSet,Zu=class{constructor(e){L(this,Xu),T(this,Hu,new Uint8Array(8)),T(this,Uu,j(Hu,this).subarray(0,1)),T(this,Wu,j(Hu,this).subarray(0,2)),T(this,Gu,j(Hu,this).subarray(0,4)),T(this,Ku,j(Hu,this).subarray(0,8)),T(this,qu,void 0),T(this,Ju,void 0),T(this,Yu,new TextEncoder),k(qu,this,e),k(Ju,this,j(qu,this).getWriter())}writeString(e){var t=this;return N(function*(){let n=j(Yu,t).encode(e);return yield t.writeVarInt(n.length),t.write(n)})()}write(e){return j(Ju,this).write(e)}writeUnsigned8(e){return j(Hu,this)[0]=e,j(Ju,this).write(j(Uu,this))}writeVarInt(e){if(e<0)throw Error(`VarInt can not be negative: ${e}`);return j(Ju,this).write(D(Xu,this,Qu).call(this,dd(e,j(Hu,this),0)))}writeBigVarInt(e){if(e<0)throw Error(`VarInt can not be negative: ${e}`);return j(Ju,this).write(D(Xu,this,Qu).call(this,fd(e,j(Hu,this),0)))}flush(){return N(function*(){})()}close(){var e=this;return N(function*(){j(Ju,e).releaseLock(),yield j(qu,e).close()})()}};function Qu(e){switch(e){case 1:return j(Uu,this);case 2:return j(Wu,this);case 4:return j(Gu,this);default:return j(Ku,this)}}var $u={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},ed=new WeakMap,td=new WeakMap,nd=new WeakMap,rd=new WeakMap,id=class e{constructor(t){T(this,ed,0),T(this,td,new Uint8Array(e.DEFAULT_BUFFER_SIZE)),T(this,nd,void 0),T(this,rd,new TextEncoder),k(nd,this,t)}writeString(e){var t=this;return N(function*(){let n=j(rd,t).encode(e);return yield t.writeVarInt(n.length),t.write(n)})()}ensureBufferSpace(e){if(j(td,this).length-j(ed,this)>=e)return;let t=new Uint8Array(j(td,this).length+e);t.set(j(td,this)),k(td,this,t)}write(e){return this.ensureBufferSpace(e.length),j(td,this).set(e,j(ed,this)),k(ed,this,j(ed,this)+e.byteLength),Promise.resolve()}writeUnsigned8(e){return this.ensureBufferSpace(1),j(td,this)[j(ed,this)]=e,k(ed,this,j(ed,this)+1),Promise.resolve()}writeVarInt(e){if(e<0)throw Error(`VarInt can not be negative: ${e}`);return this.ensureBufferSpace(8),k(ed,this,j(ed,this)+dd(e,j(td,this),j(ed,this))),Promise.resolve()}writeBigVarInt(e){if(e<0)throw Error(`VarInt can not be negative: ${e}`);return this.ensureBufferSpace(8),k(ed,this,j(ed,this)+fd(e,j(td,this),j(ed,this))),Promise.resolve()}flush(){if(j(nd,this).readyState!==$u.OPEN)throw Error(`Writer is not open`);return j(nd,this).send(j(td,this).subarray(0,j(ed,this))),k(ed,this,0),Promise.resolve()}close(){return j(nd,this).close(),Promise.resolve()}};m(id,`DEFAULT_BUFFER_SIZE`,1024);var ad=2**6-1,od=2**14-1,sd=2**30-1,cd=2**53-1;function ld(e,t,n){t[n]=e>>8&255,t[n+1]=e&255}function ud(e,t,n){t[n]=e>>>24&255,t[n+1]=e>>16&255,t[n+2]=e>>8&255,t[n+3]=e&255}function dd(e,t,n){if(e<=ad)return t[n]=e,1;if(e<=od)return ld(e|16384,t,n),2;if(e<=sd)return ud(e|2147483648,t,n),4;if(e<=cd)return pd(e,t,n),8;throw Error(`overflow, value larger than 53-bits: ${e}`)}function fd(e,t,n){if(e<=ad)return t[n]=Number(e),1;if(e<=od)return ld(Number(e)|16384,t,n),2;if(e<=sd)return ud(Number(e)|2147483648,t,n),4;if(e<=cd)return pd(Number(e),t,n),8;throw Error(`overflow, value larger than 53-bits: ${e}`)}function pd(e,t,n){let r=new DataView(t.buffer,t.byteOffset+n,8);r.setUint32(0,e/4294967296),r.setUint32(4,e&4294967295),t[n]=192}var $=function(e){return e[e.SubscribeUpdate=2]=`SubscribeUpdate`,e[e.Subscribe=3]=`Subscribe`,e[e.SubscribeOk=4]=`SubscribeOk`,e[e.SubscribeError=5]=`SubscribeError`,e[e.Announce=6]=`Announce`,e[e.AnnounceOk=7]=`AnnounceOk`,e[e.AnnounceError=8]=`AnnounceError`,e[e.Unannounce=9]=`Unannounce`,e[e.Unsubscribe=10]=`Unsubscribe`,e[e.SubscribeDone=11]=`SubscribeDone`,e[e.AnnounceCancel=12]=`AnnounceCancel`,e[e.TrackStatusRequest=13]=`TrackStatusRequest`,e[e.TrackStatus=14]=`TrackStatus`,e[e.Goaway=16]=`Goaway`,e[e.ClientSetup=64]=`ClientSetup`,e[e.ServerSetup=65]=`ServerSetup`,e[e.Unknown=255]=`Unknown`,e}({});P();function md(e){return hd.apply(this,arguments)}function hd(){return hd=N(function*(e){let t=yield e.readVarInt();if(t<1||t>32)throw Error(`namespace must be between 1 and 32, got ${t}`);let n=[];for(let r=0;r<t;r++)n.push(yield e.readString());return n}),hd.apply(this,arguments)}function gd(e,t){return _d.apply(this,arguments)}function _d(){return _d=N(function*(e,t){yield e.writeVarInt(t.length);for(let n of t)yield e.writeString(n)}),_d.apply(this,arguments)}H(),P();var vd=F(2);function yd(e){return bd.apply(this,arguments)}function bd(){return bd=N(function*(e){let t=yield e.readVarInt(),n=new Map;for(let r=0;r<t;r++){let t=yield e.readBigVarInt(),r=yield e.read(yield e.readVarInt());n.set(t,{type:t,payload:r})}return n}),bd.apply(this,arguments)}function xd(e,t){return Sd.apply(this,arguments)}function Sd(){return Sd=N(function*(e,t){yield e.writeVarInt(t.size);for(let[n,r]of t)yield e.writeBigVarInt(n),yield e.writeVarInt(r.payload.length),yield e.write(r.payload)}),Sd.apply(this,arguments)}P();function Cd(e){return wd.apply(this,arguments)}function wd(){return wd=N(function*(e){return{type:$.Announce,namespace:yield md(e),params:yield yd(e)}}),wd.apply(this,arguments)}function Td(e,t){return Ed.apply(this,arguments)}function Ed(){return Ed=N(function*(e,t){yield gd(e,t.namespace),yield xd(e,t.params)}),Ed.apply(this,arguments)}P();function Dd(e){return Od.apply(this,arguments)}function Od(){return Od=N(function*(e){return{type:$.AnnounceOk,namespace:yield md(e)}}),Od.apply(this,arguments)}function kd(e,t){return Ad.apply(this,arguments)}function Ad(){return Ad=N(function*(e,t){yield gd(e,t.namespace)}),Ad.apply(this,arguments)}P();var jd={"latest-group":1,"latest-object":2,"absolute-start":3,"absolute-range":4};function Md(e){return Nd.apply(this,arguments)}function Nd(){return Nd=N(function*(e){let t=yield e.readVarInt();switch(t){case 1:return{type:`latest-group`};case 2:return{type:`latest-object`};case 3:return{type:`absolute-start`,start:{group:yield e.readBigVarInt(),object:yield e.readBigVarInt()}};case 4:return{type:`absolute-range`,start:{group:yield e.readBigVarInt(),object:yield e.readBigVarInt()},end:{group:yield e.readBigVarInt(),object:yield e.readBigVarInt()}};default:throw Error(`Invalid location type ${t}`)}}),Nd.apply(this,arguments)}function Pd(e,t){return Fd.apply(this,arguments)}function Fd(){return Fd=N(function*(e,t){let n=jd[t.type];switch(yield e.writeVarInt(n),t.type){case`absolute-range`:yield e.writeBigVarInt(t.start.group),yield e.writeBigVarInt(t.start.object),yield e.writeBigVarInt(t.end.group),yield e.writeBigVarInt(t.end.object);break;case`absolute-start`:yield e.writeBigVarInt(t.start.group),yield e.writeBigVarInt(t.start.object);break;case`latest-object`:case`latest-group`:break;default:throw Error(`Invalid location type ${n}`)}}),Fd.apply(this,arguments)}function Id(e){return Ld.apply(this,arguments)}function Ld(){return Ld=N(function*(e){let t=yield e.readUnsigned8();switch(t){case 0:return`inherit-publisher`;case 1:return`ascending`;case 2:return`descending`;default:throw Error(`Invalid location type ${t}`)}}),Ld.apply(this,arguments)}function Rd(e,t){return zd.apply(this,arguments)}function zd(){return zd=N(function*(e,t){switch(t){case`inherit-publisher`:yield e.writeUnsigned8(0);break;case`ascending`:yield e.writeUnsigned8(1);break;case`descending`:yield e.writeUnsigned8(2);break}}),zd.apply(this,arguments)}function Bd(e){return Vd.apply(this,arguments)}function Vd(){return Vd=N(function*(e){let t=yield e.readBigVarInt(),n=yield e.readBigVarInt(),r=yield md(e),i=yield e.readString(),a=yield e.readUnsigned8(),o=yield Id(e),s=yield Md(e),c=yield yd(e);if(s.type===`absolute-range`){let e=s.start.group>s.end.group,t=s.start.group===s.end.group&&s.start.object>s.end.object;if(e||t)throw Error(`Invalid filter range`)}return{type:$.Subscribe,id:t,trackAlias:n,namespace:r,name:i,subscriberPriority:a,groupOrder:o,filterType:s,params:c}}),Vd.apply(this,arguments)}function Hd(e,t){return Ud.apply(this,arguments)}function Ud(){return Ud=N(function*(e,t){yield e.writeBigVarInt(t.id),yield e.writeBigVarInt(t.trackAlias),yield gd(e,t.namespace),yield e.writeString(t.name),yield e.writeUnsigned8(t.subscriberPriority),yield Rd(e,t.groupOrder),yield Pd(e,t.filterType),yield xd(e,t.params)}),Ud.apply(this,arguments)}P();var Wd={Unsubscribed:0,InternalError:1,Unauthorized:2,TrackEnded:3,SubscriptionEnded:4,GoingAway:5,Expired:6};function Gd(e){return Kd.apply(this,arguments)}function Kd(){return Kd=N(function*(e){let t=yield e.readBigVarInt(),n=yield e.readVarInt(),r=yield e.readString(),i=(yield e.readUnsigned8())===1,a;return i&&(a={group:yield e.readBigVarInt(),object:yield e.readBigVarInt()}),{type:$.SubscribeDone,id:t,errorCode:n,reason:r,finalInfo:a}}),Kd.apply(this,arguments)}function qd(e,t){return Jd.apply(this,arguments)}function Jd(){return Jd=N(function*(e,t){yield e.writeBigVarInt(t.id),yield e.writeVarInt(t.errorCode),yield e.writeString(t.reason),yield e.writeUnsigned8(t.finalInfo?1:0),t.finalInfo&&(yield e.writeBigVarInt(t.finalInfo.group),yield e.writeBigVarInt(t.finalInfo.object))}),Jd.apply(this,arguments)}P();function Yd(e){return Xd.apply(this,arguments)}function Xd(){return Xd=N(function*(e){return{type:$.SubscribeError,id:yield e.readBigVarInt(),errorCode:yield e.readBigVarInt(),reason:yield e.readString(),trackAlias:yield e.readBigVarInt()}}),Xd.apply(this,arguments)}function Zd(e,t){return Qd.apply(this,arguments)}function Qd(){return Qd=N(function*(e,t){yield e.writeBigVarInt(t.id),yield e.writeBigVarInt(t.errorCode),yield e.writeString(t.reason),yield e.writeBigVarInt(t.trackAlias)}),Qd.apply(this,arguments)}P();function $d(e){return ef.apply(this,arguments)}function ef(){return ef=N(function*(e){let t=yield e.readBigVarInt(),n=yield e.readBigVarInt(),r=yield Id(e),i=(yield e.readUnsigned8())===1,a;if(r===`inherit-publisher`)throw Error(`SubscribeOk cannot have inherit publisher group order`);i&&(a={group:yield e.readBigVarInt(),object:yield e.readBigVarInt()});let o=yield yd(e);return{type:$.SubscribeOk,id:t,groupOrder:r,expires:n,largestInfo:a,params:o}}),ef.apply(this,arguments)}function tf(e,t){return nf.apply(this,arguments)}function nf(){return nf=N(function*(e,t){yield e.writeBigVarInt(t.id),yield e.writeBigVarInt(t.expires),yield Rd(e,t.groupOrder),yield e.writeUnsigned8(t.largestInfo?1:0),t.largestInfo&&(yield e.writeBigVarInt(t.largestInfo.group),yield e.writeBigVarInt(t.largestInfo.object)),yield xd(e,t.params)}),nf.apply(this,arguments)}P();function rf(e){return af.apply(this,arguments)}function af(){return af=N(function*(e){let t=yield e.readBigVarInt(),n=yield e.readBigVarInt(),r=yield e.readBigVarInt(),i=yield e.readBigVarInt(),a=yield e.readBigVarInt(),o=yield e.readUnsigned8(),s=yield yd(e);if(n>i||n===i&&r>a)throw Error(`Invalid filter range`);return{type:$.SubscribeUpdate,id:t,start:{group:n,object:r},end:{group:i,object:a},subscriberPriority:o,params:s}}),af.apply(this,arguments)}function of(e,t){return sf.apply(this,arguments)}function sf(){return sf=N(function*(e,t){yield e.writeBigVarInt(t.id),yield e.writeBigVarInt(t.start.group),yield e.writeBigVarInt(t.start.object),yield e.writeBigVarInt(t.end.group),yield e.writeBigVarInt(t.end.object),yield e.writeUnsigned8(t.subscriberPriority),yield xd(e,t.params)}),sf.apply(this,arguments)}H();var cf={Publisher:1,Subscriber:2,Both:3},lf={Role:F(0)};P();var uf={Draft07:4278190087};function df(e){return ff.apply(this,arguments)}function ff(){return ff=N(function*(e){let t=yield e.readVarInt();switch(t){case uf.Draft07:return{type:`known`,value:t};default:return{type:`unknown`,value:t}}}),ff.apply(this,arguments)}P();function pf(e,t){return mf.apply(this,arguments)}function mf(){return mf=N(function*(e,t){yield e.writeVarInt(t.supportedVersions.length);for(let n of t.supportedVersions)yield e.writeVarInt(n.value);yield xd(e,t.parameters)}),mf.apply(this,arguments)}function hf(e){return gf.apply(this,arguments)}function gf(){return gf=N(function*(e){let t=[],n=yield e.readVarInt();for(let r=0;r<n;r++)t.push(yield df(e));let r=yield yd(e);if(!r.has(lf.Role))throw Error(`Role parameter is required`);return{type:$.ClientSetup,supportedVersions:t,parameters:r}}),gf.apply(this,arguments)}P();function _f(e,t){return vf.apply(this,arguments)}function vf(){return vf=N(function*(e,t){yield e.writeVarInt(t.selectedVersion.value),yield xd(e,t.parameters)}),vf.apply(this,arguments)}function yf(e){return bf.apply(this,arguments)}function bf(){return bf=N(function*(e){let t=yield df(e);if(t.type!==`known`)throw Error(`Expected known version`);let n=yield yd(e);if(!n.has(lf.Role))throw Error(`Role parameter is required`);return{type:$.ServerSetup,selectedVersion:t,parameters:n}}),bf.apply(this,arguments)}P();function xf(e){return Sf.apply(this,arguments)}function Sf(){return Sf=N(function*(e){return{type:$.Unsubscribe,id:yield e.readBigVarInt()}}),Sf.apply(this,arguments)}function Cf(e,t){return wf.apply(this,arguments)}function wf(){return wf=N(function*(e,t){yield e.writeBigVarInt(t.id)}),wf.apply(this,arguments)}R(),E(),A(),M(),O(),P();var Tf=new WeakMap,Ef=new WeakMap,Df=new WeakSet,Of=class{constructor(e){L(this,Df),T(this,Tf,void 0),T(this,Ef,new Uint8Array),k(Tf,this,e)}write(e){var t=this;return N(function*(){yield j(Tf,t).writeVarInt(e.type);let n=new id({close:()=>{},readyState:$u.OPEN,send:e=>{k(Ef,t,new Uint8Array(e))}});switch(e.type){case $.Subscribe:yield D(Df,t,jf).call(t,n,e);break;case $.Announce:yield D(Df,t,Lf).call(t,n,e);break;case $.SubscribeOk:yield D(Df,t,Mf).call(t,n,e);break;case $.SubscribeUpdate:yield D(Df,t,Pf).call(t,n,e);break;case $.SubscribeError:yield D(Df,t,Nf).call(t,n,e);break;case $.SubscribeDone:yield D(Df,t,Ff).call(t,n,e);break;case $.Unsubscribe:yield D(Df,t,If).call(t,n,e);break;case $.ClientSetup:yield D(Df,t,kf).call(t,n,e);break;case $.ServerSetup:yield D(Df,t,Af).call(t,n,e);break;case $.AnnounceOk:yield D(Df,t,Rf).call(t,n,e);break;default:throw Error(`Unknown message type: ${e.type}`)}yield n.flush(),yield j(Tf,t).writeVarInt(j(Ef,t).byteLength),yield j(Tf,t).write(j(Ef,t)),yield j(Tf,t).flush()})()}close(){var e=this;return N(function*(){return j(Tf,e).close()})()}};function kf(e,t){return N(function*(){yield pf(e,t)})()}function Af(e,t){return N(function*(){yield _f(e,t)})()}function jf(e,t){return N(function*(){yield Hd(e,t)})()}function Mf(e,t){return N(function*(){yield tf(e,t)})()}function Nf(e,t){return N(function*(){yield Zd(e,t)})()}function Pf(e,t){return N(function*(){yield of(e,t)})()}function Ff(e,t){return N(function*(){yield qd(e,t)})()}function If(e,t){return N(function*(){yield Cf(e,t)})()}function Lf(e,t){return N(function*(){yield Td(e,t)})()}function Rf(e,t){return N(function*(){yield kd(e,t)})()}E(),A(),M(),P();var zf=new WeakMap,Bf=new WeakMap,Vf=new WeakMap,Hf=class{constructor(e,t){T(this,zf,void 0),T(this,Bf,void 0),T(this,Vf,void 0),k(zf,this,e),k(Bf,this,new Of(e)),k(Vf,this,t)}write(e){var t=this;return N(function*(){yield j(zf,t).write(j(Vf,t)),yield j(Bf,t).write(e)})()}close(){return j(zf,this).close()}};H(),P(),F(1025),F(1027),F(1033),F(2048);var Uf=class extends Error{constructor(e,t){super(e),this.errorCode=t}};function Wf(e){return Gf.apply(this,arguments)}function Gf(){return Gf=N(function*(e){return{type:$.AnnounceError,namespace:yield md(e),errorCode:yield e.readBigVarInt(),reason:yield e.readString()}}),Gf.apply(this,arguments)}P();function Kf(e,t,n){return qf.apply(this,arguments)}function qf(){return qf=N(function*(e,t,n){return{type:$.Unknown,messageType:t,payload:yield e.read(n)}}),qf.apply(this,arguments)}H(),E(),A(),M(),P();var Jf=new WeakMap,Yf=class{constructor(e){T(this,Jf,void 0),k(Jf,this,e)}cancel(){return j(Jf,this).close()}read(){var e=this;return N(function*(){let t=yield j(Jf,e).readVarInt(),n=yield j(Jf,e).readVarInt();switch(t){case $.ServerSetup:return yf(j(Jf,e));case $.ClientSetup:return hf(j(Jf,e));case $.Subscribe:return Bd(j(Jf,e));case $.SubscribeOk:return $d(j(Jf,e));case $.SubscribeDone:return Gd(j(Jf,e));case $.SubscribeError:return Yd(j(Jf,e));case $.SubscribeUpdate:return rf(j(Jf,e));case $.Unsubscribe:return xf(j(Jf,e));case $.Announce:return Cd(j(Jf,e));case $.AnnounceOk:return Dd(j(Jf,e));case $.AnnounceError:return Wf(j(Jf,e))}return Kf(j(Jf,e),F(t),n)})()}};H(),R(),E(),A(),M(),O(),P();var Xf=new WeakMap,Zf=new WeakMap,Qf=new WeakMap,$f=new WeakMap,ep=new WeakSet,tp=class e{constructor(e,t){L(this,ep),T(this,Xf,void 0),T(this,Zf,void 0),T(this,Qf,new C),T(this,$f,new C),k(Xf,this,e),k(Zf,this,t),j(Qf,this).resolve()}write(e){var t=this;return N(function*(){let n=yield D(ep,t,np).call(t);try{yield j(Xf,t).write(e)}finally{n.resolve()}})()}markPostHandshake(){j($f,this).resolve()}postHandshake(){return j($f,this).promise}read(){var e=this;return N(function*(){return j(Zf,e).read()})()}cancel(){return j(Zf,this).cancel()}static wrapWebsocket(t){let n=new ReadableStream(new Cu(t,rp._)),r=new Yf(new Iu(new Uint8Array([]),n));return new e(new Hf(new id(t),new Uint8Array([0])),r)}static wrapWebTransport(t){let n=t.writable,r=t.readable;return new e(new Of(new Zu(n)),new Yf(new Iu(new Uint8Array,r)))}};function np(){let e=new C,t=j(Qf,this).promise.then(()=>e);return k(Qf,this,e),t}var rp={_:0};P();function ip(e,t){return ap.apply(this,arguments)}function ap(){return ap=N(function*(e,t){yield e.write({type:$.ClientSetup,supportedVersions:[{type:`known`,value:uf.Draft07}],parameters:new Map([[lf.Role,{type:lf.Role,payload:new Uint8Array([t])}]])});let n=yield e.read();if(e.markPostHandshake(),n.type!==$.ServerSetup)throw Error(`Expected server setup message`);if(n.selectedVersion.type!==`known`)throw Error(`Expected known version`)}),ap.apply(this,arguments)}H(),h(),E(),M();var op=new WeakMap,sp=class{constructor(e){m(this,`announce`,void 0),T(this,op,new C),this.announce=e}onOk(e){j(op,this).resolve(e)}onError(e){let t=new Uf(e.reason,e.errorCode);return j(op,this).reject(t),t}ok(){return j(op,this).promise}};h();function cp(e){return new lp(new sp(e))}var lp=class{constructor(e){m(this,`state`,void 0),this.state=e}};H(),h(),E(),A(),M();var up=new WeakMap,dp=new WeakMap,fp=new WeakMap,pp=new WeakMap,mp=new WeakMap,hp=new WeakMap,gp=class e{constructor(e){switch(m(this,`subscribe`,void 0),T(this,up,new C),T(this,dp,new C),T(this,fp,new C),T(this,pp,Date.now()),T(this,mp,new C),T(this,hp,void 0),this.subscribe=e,e.filterType.type){case`absolute-start`:k(hp,this,{startGroup:e.filterType.start.group});break;case`absolute-range`:k(hp,this,{startGroup:e.filterType.start.group,endGroup:e.filterType.end.group});break}}onUpdate(e){k(hp,this,{startGroup:e.start.group}),e.end.group>F(0)&&(j(hp,this).endGroup=e.end.group-F(1))}onError(e){let t=Error(e.reason);return j(up,this).reject(t),j(dp,this).reject(t),t}onDone(e){e.finalInfo&&(j(hp,this)||k(hp,this,{startGroup:F(0)}),j(hp,this).endGroup=e.finalInfo.group),j(dp,this).resolve(e)}onUnsubscribe(e){j(fp,this).resolve(e)}onOk(t){let n=Math.max(0,Date.now()-j(pp,this)),r=Number(t.expires);if(r>0){let t=Math.max(e.minGraceTime,Math.min(r/10,e.maxGraceTime));Promise.race([tr(r-t-n),this.done().catch(S)]).then(()=>j(mp,this).resolve(this.expiryState())).catch(S)}j(up,this).resolve(t)}done(){return j(dp,this).promise}ok(){return j(up,this).promise}range(){return j(hp,this)}close(){j(mp,this).promise.catch(S),j(mp,this).reject(Error(`Subscription closed`))}expiryState(){return j(dp,this).resolved&&j(dp,this).resolved.errorCode!==Wd.Expired?`done`:j(fp,this).pending?`active`:`unsubscribed`}unsubscribed(){return j(fp,this).promise}isUnsubscribed(){return j(fp,this).resolved}expiryNotification(){return j(mp,this).promise}};m(gp,`maxGraceTime`,15e3),m(gp,`minGraceTime`,3e3),E(),A(),M(),P();var _p=new WeakMap,vp=new WeakMap,yp=class{constructor(e){T(this,_p,void 0),T(this,vp,!1),k(_p,this,e)}write(e){var t=this;return N(function*(){j(vp,t)||(yield j(_p,t).writeVarInt(kl.StreamHeaderGroup),yield j(_p,t).writeBigVarInt(e.subscribeId),yield j(_p,t).writeBigVarInt(e.trackAlias),yield j(_p,t).writeBigVarInt(e.groupId),yield j(_p,t).writeBigVarInt(e.subGroupId),yield j(_p,t).writeUnsigned8(e.subscriberPriority),k(vp,t,!0)),yield j(_p,t).writeBigVarInt(e.objectId),yield j(_p,t).writeVarInt(e.payload.length),e.payload.length>0?yield j(_p,t).write(e.payload):yield j(_p,t).writeVarInt(e.objectStatus),yield j(_p,t).flush()})()}close(){var e=this;return N(function*(){yield j(_p,e).close()})()}};function bp(){var e=typeof SuppressedError==`function`?SuppressedError:function(e,t){var n=Error();return n.name=`SuppressedError`,n.error=e,n.suppressed=t,n},t={},n=[];function r(e,t){if(t!=null){if(Object(t)!==t)throw TypeError(`using declarations can only be used with objects, functions, null, or undefined.`);if(e)var r=t[Symbol.asyncDispose||Symbol.for(`Symbol.asyncDispose`)];if(r===void 0&&(r=t[Symbol.dispose||Symbol.for(`Symbol.dispose`)],e))var i=r;if(typeof r!=`function`)throw TypeError(`Object is not disposable.`);i&&(r=function(){try{i.call(t)}catch(e){return Promise.reject(e)}}),n.push({v:t,d:r,a:e})}else e&&n.push({d:t,a:e});return t}return{e:t,u:r.bind(null,!1),a:r.bind(null,!0),d:function(){var r,i=this.e,a=0;function o(){for(;r=n.pop();)try{if(!r.a&&a===1)return a=0,n.push(r),Promise.resolve().then(o);if(r.d){var e=r.d.call(r.v);if(r.a)return a|=2,Promise.resolve(e).then(o,s)}else a|=1}catch(e){return s(e)}if(a===1)return i===t?Promise.resolve():Promise.reject(i);if(i!==t)throw i}function s(n){return i=i===t?n:new e(n,i),o()}return o()}}}H(),R(),E(),A(),M(),O(),P();var xp,Sp,Cp,wp,Tp=new WeakMap,Ep=new WeakMap,Dp=new WeakMap,Op=new WeakMap,kp=new WeakMap,Ap=new WeakMap,jp=new WeakSet;xp=cn(),Sp=Symbol.asyncDispose;var Mp=class{constructor(e,t,n,r){L(this,jp),T(this,Tp,void 0),T(this,Ep,void 0),T(this,Dp,void 0),T(this,Op,void 0),T(this,kp,void 0),T(this,Ap,void 0),k(Tp,this,t),k(Ep,this,e),k(Dp,this,n),k(Op,this,r),k(Ap,this,an.get().createContext(`SubscriptionWriter:${e.subscribe.name}`))}finalInfo(){return j(kp,this)}run(){var e=this;return N(function*(){yield Promise.race([D(jp,e,Np).call(e).catch(t=>j(Ap,e).error(`error writing subscription`,t)),j(Ep,e).unsubscribed(),j(Ep,e).done(),j(Ep,e).expiryNotification().catch(S)])})()}done(e,t){var n=this;return N(function*(){if(j(Ep,n).isUnsubscribed())return;let r={type:$.SubscribeDone,id:j(Ep,n).subscribe.id,errorCode:e,reason:t,finalInfo:j(kp,n)};j(Ep,n).onDone(r),yield j(Op,n).push(r)})()}[xp](){return this.done(Wd.TrackEnded,`Track ended`)}[Sp](){return this.done(Wd.TrackEnded,`Track ended`)}};function Np(){var e=this;return N(function*(){var t=!1,n=!1,r;try{for(var i=Z(j(Tp,e)),a;t=!(a=yield i.next()).done;t=!1){let t=a.value;try{var o=bp();let n=j(Ep,e).range();if(n&&(n.startGroup>t.id||n.endGroup&&n.endGroup<t.id))break;let r=new yp(yield j(Dp,e).openSendStream()),i=o.a(new zp(r,t.consume(),j(Ep,e)));yield i.run(),k(kp,e,i.finalGroup())}catch(e){o.e=e}finally{yield o.d()}}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield i.return())}finally{if(n)throw r}}})()}var Pp=new WeakMap,Fp=new WeakMap,Ip=new WeakMap,Lp=new WeakMap,Rp=new WeakMap;Cp=cn(),wp=Symbol.asyncDispose;var zp=class{constructor(e,t,n){T(this,Pp,void 0),T(this,Fp,void 0),T(this,Ip,void 0),T(this,Lp,void 0),T(this,Rp,void 0),k(Pp,this,e),k(Fp,this,t),k(Ip,this,n),k(Rp,this,an.get().createContext(`GroupSubscriptionWriter:${n.subscribe.name}`))}finalGroup(){return j(Lp,this)}run(){var e=this;return N(function*(){j(Rp,e).debug(`write group`);var t=!1,n=!1,r;try{for(var i=Z(j(Fp,e)),a;t=!(a=yield i.next()).done;t=!1){let t=a.value;yield j(Pp,e).write({subscribeId:j(Ip,e).subscribe.id,trackAlias:j(Ip,e).subscribe.trackAlias,subGroupId:F(0),subscriberPriority:0,groupId:t.groupId,objectId:t.objectId,objectStatus:t.objectStatus,payload:t.payload}),k(Lp,e,{group:t.groupId,object:t.objectId})}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield i.return())}finally{if(n)throw r}}j(Rp,e).debug(`write group done`)})()}[Cp](){return j(Pp,this).close().catch(S)}[wp](){return j(Pp,this).close().catch(S)}};H(),R(),h(),E(),A(),M(),P(),O();var Bp,Vp,Hp=new WeakMap,Up=new WeakMap,Wp=new WeakSet;Bp=cn(),Vp=Symbol.asyncDispose;var Gp=class{constructor(e,t,n){L(this,Wp),m(this,`state`,void 0),T(this,Hp,void 0),T(this,Up,void 0),this.state=e,k(Hp,this,t),k(Up,this,n)}ok(e){var t=this;return N(function*(){var n,r,i;let a=(n=t.state.range())==null?void 0:n.startGroup,o=e.latest(),s=o==null?void 0:o.id,c=(r=o==null||(i=o.latest())==null?void 0:i.objectId)==null?F(0):r,l=e.consume(a==null?s:a),u={type:$.SubscribeOk,id:t.state.subscribe.id,expires:F(0),groupOrder:`ascending`,params:new Map,largestInfo:s?{group:s,object:c}:void 0};return yield j(Up,t).push(u),new Mp(t.state,l,j(Hp,t),j(Up,t))})()}invalidRange(){return D(Wp,this,Kp).call(this,F(1),`Invalid range`)}retryTrackAlias(){return D(Wp,this,Kp).call(this,F(2),`Retry track alias`)}trackDoesNotExist(){return D(Wp,this,Kp).call(this,F(3),`Track does not exist`)}unauthorized(){return D(Wp,this,Kp).call(this,F(4),`Unauthorized`)}timeout(){return D(Wp,this,Kp).call(this,F(5),`Timeout`)}[Bp](){return this.trackDoesNotExist()}[Vp](){return this.trackDoesNotExist()}};function Kp(e,t){let n={type:$.SubscribeError,id:this.state.subscribe.id,errorCode:e,reason:t,trackAlias:this.state.subscribe.trackAlias};return j(Up,this).push(n)}H(),E(),A(),M(),P();var qp=new WeakMap,Jp=new WeakMap,Yp=new WeakMap,Xp=new WeakMap,Zp=new WeakMap,Qp=new WeakMap,$p=new WeakMap,em=class{constructor(e,t,n){T(this,qp,void 0),T(this,Jp,void 0),T(this,Yp,void 0),T(this,Xp,an.get().createContext(`Publisher`)),T(this,Zp,new Nn(new Map)),T(this,Qp,new Nn(new Map)),T(this,$p,new ve(10)),k(qp,this,e),k(Jp,this,t),k(Yp,this,n)}announce(e){var t=this;return N(function*(){j(Xp,t).info(`Enter 'announce'`,{namespace:e});try{if(j(Zp,t).current().has(e.join(`/`)))throw Error(`Duplicate announcement`);let n=new Map,r=j(qp,t).authToken();r&&n.set(vd,{type:vd,payload:new TextEncoder().encode(r)});let i={type:$.Announce,namespace:e,params:n},a=cp(i);if(j(Zp,t).update(e=>e.set(i.namespace.join(`/`),a)),yield j(Yp,t).push(i),!(yield Promise.race([a.state.ok(),j(qp,t).closed()])))throw Error(`Session closed`)}catch(e){throw j(Xp,t).error(`Error 'announce'`,e),e}})()}close(){j(Qp,this).current().forEach(e=>e.close()),j(Qp,this).close(),j(Zp,this).close(),j($p,this).close()}incomingSubscriptions(){return j($p,this)}onMessage(e){var t=this;return N(function*(){switch(e.type){case $.Subscribe:{let n=new gp(e);if(j(Qp,t).update(t=>(t.set(e.id,n),t)),j($p,t).isFull()){let e=yield j($p,t).pop();yield e==null?void 0:e.timeout()}yield j($p,t).push(new Gp(n,j(Jp,t),j(Yp,t)))}break;case $.SubscribeUpdate:{let n=j(Qp,t).current().get(e.id);n||j(Xp,t).debug(`No subscription found`,e),n==null||n.onUpdate(e)}break;case $.Unsubscribe:{let n=j(Qp,t).current().get(e.id);n||j(Xp,t).debug(`No subscription found`,e),n==null||n.onUnsubscribe(e)}break;case $.AnnounceOk:{let n=j(Zp,t).current().get(e.namespace.join(`/`));n||j(Xp,t).warn(`No announcement found`,e),n==null||n.state.onOk(e)}break;case $.AnnounceError:{let n=j(Zp,t).current().get(e.namespace.join(`/`));n||j(Xp,t).warn(`No announcement found`,e),n==null||n.state.onError(e)}break;default:break}})()}};H(),h(),E(),A(),M(),R(),P(),En(),kn(),O();var tm,nm,rm;function im(e,t){let n=new gp(t),[r,i]=fe(100);return[new om(n,r),new pm(e,n,i)]}var am=new WeakMap,om=class{constructor(e,t){m(this,`state`,void 0),T(this,am,void 0),this.state=e,k(am,this,t)}onDone(e){this.state.onDone(e)}onData(e){return j(am,this).push(e)}onError(e){let t=this.state.onError(e);j(am,this).abort(t)}close(){this.state.close(),j(am,this).close()}},sm=new WeakMap,cm=new WeakMap,lm=new WeakMap,um=new WeakMap,dm=new WeakMap,fm=new WeakSet;tm=Symbol.asyncIterator,nm=cn(),rm=Symbol.asyncDispose;var pm=class{constructor(e,t,n){L(this,fm),T(this,sm,void 0),T(this,cm,void 0),T(this,lm,void 0),T(this,um,new C),T(this,dm,an.get().createContext(`SubscriptionConsumer`)),k(sm,this,e),k(cm,this,t),k(lm,this,n)}get id(){return j(cm,this).subscribe.id}get trackAlias(){return j(cm,this).subscribe.trackAlias}get name(){return j(cm,this).subscribe.name}range(){return j(cm,this).range()}expiryNotification(){return j(cm,this).expiryNotification()}update(e,t){var n=this;return N(function*(){let r={type:$.SubscribeUpdate,id:j(cm,n).subscribe.id,start:{group:e,object:F(0)},end:{group:t+F(1),object:F(0)},params:new Map,subscriberPriority:0};j(cm,n).onUpdate(r),yield j(sm,n).push(r)})()}unsubscribe(){var e=this;return N(function*(){let t={type:$.Unsubscribe,id:j(cm,e).subscribe.id};j(cm,e).onUnsubscribe(t),yield j(sm,e).push(t)})()}close(){var e,t;return j(um,this).resolve(),(e=(t=j(lm,this)).return)==null?void 0:e.call(t)}closed(){return j(um,this).promise}done(){return j(cm,this).done()}expiryState(){return j(cm,this).expiryState()}unsubscribed(){return j(cm,this).isUnsubscribed()}return(){var e=this;return N(function*(){return j(um,e).resolve(),yield e.unsubscribe(),{done:!0,value:void 0}})()}groups(){var e=this;return Dn(function*(){var t=!1,n=!1,r;try{for(var i=Z(j(lm,e)),a;t=!(a=yield V(i.next())).done;t=!1)try{var o=bp();let t=o.a(a.value);var s=!1,c=!1,l;try{for(var u=Z(t.groups()),d;s=!(d=yield V(u.next())).done;s=!1){let t=d.value;{var f,p;let n=(f=j(cm,e).range())==null?void 0:f.startGroup,r=(p=j(cm,e).range())==null?void 0:p.endGroup;if(n&&t.groupId()<n||r&&t.groupId()>r)return{done:!0,value:void 0};yield t}}}catch(e){c=!0,l=e}finally{try{s&&u.return!=null&&(yield V(u.return()))}finally{if(c)throw l}}}catch(e){o.e=e}finally{yield V(o.d())}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield V(i.return()))}finally{if(n)throw r}}})()}[tm](){return this.groups()}objects(){var e=this;return Dn(function*(){var t=!1,n=!1,r;try{for(var i=Z(e.groups()),a;t=!(a=yield V(i.next())).done;t=!1){let e=a.value;var o=!1,s=!1,c;try{for(var l=Z(e),u;o=!(u=yield V(l.next())).done;o=!1)yield u.value}catch(e){s=!0,c=e}finally{try{o&&l.return!=null&&(yield V(l.return()))}finally{if(s)throw c}}}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield V(i.return()))}finally{if(n)throw r}}})()}[nm](){return D(fm,this,mm).call(this)}[rm](){return D(fm,this,mm).call(this)}};function mm(){var e=this;return N(function*(){return j(dm,e).info(`Enter 'dispose'`),yield e.close(),e.unsubscribe()})()}H(),R(),E(),h(),A(),O(),M(),P();var hm=2e3,gm=new WeakMap,_m=new WeakMap,vm=new WeakMap,ym=new WeakMap,bm=new WeakSet,xm=class{constructor(e,t){L(this,bm),T(this,gm,void 0),m(this,`nextSubscribeId`,F(0)),T(this,_m,new Nn(new Map)),T(this,vm,void 0),T(this,ym,an.get().createContext(`Subscriber`)),k(gm,this,e),k(vm,this,t),D(bm,this,Sm).call(this).catch(S)}subscribe(e,t){var n=this;return N(function*(e,t,r=new Map){j(ym,n).info(`Enter 'subscribe'`,{namespace:e,track:t});try{let i=n.nextSubscribeId++,a=j(gm,n).authToken();a&&r.set(vd,{type:vd,payload:new TextEncoder().encode(a)});let o={type:$.Subscribe,namespace:e,name:t.name,id:i,trackAlias:i,groupOrder:t.groupOrder,subscriberPriority:t.priority,filterType:t.filterType,params:r},[s,c]=im(j(vm,n),o);if(j(_m,n).update(e=>e.set(i,s)),yield j(vm,n).push(o),!(yield Promise.race([s.state.ok(),j(gm,n).closed()])))throw Error(`Session closed`);return c.closed().then(()=>Promise.race([tr(hm),n.closed()])).then(()=>D(bm,n,Cm).call(n,c.id)).catch(()=>D(bm,n,Cm).call(n,c.id)),c}catch(e){throw j(ym,n).error(`Error 'subscribe'`,e),e}}).apply(this,arguments)}closed(){return j(gm,this).closed()}transportType(){return j(gm,this).transportType()}url(){return j(gm,this).url()}onMessage(e){var t=this;return N(function*(){switch(e.type){case $.Announce:yield j(vm,t).push({type:$.AnnounceOk,namespace:e.namespace});break;case $.SubscribeOk:{let n=j(_m,t).current().get(e.id);n&&n.state.onOk(e)}break;case $.SubscribeError:{let n=j(_m,t).current().get(e.id);n||j(ym,t).warn(`No subscription found`,e),n==null||n.onError(e),D(bm,t,Cm).call(t,e.id)}break;case $.SubscribeDone:{let n=j(_m,t).current().get(e.id);n||j(ym,t).debug(`No subscription found`,e),n==null||n.onDone(e)}break;default:break}})()}onObjectReader(e){var t=this;return N(function*(){let n=j(_m,t).current().get(e.subscribeId());if(!n){j(ym,t).warn(`No subscription found`,e.subscribeId());return}yield n.onData(e)})()}close(){j(ym,this).debug(`Enter 'close'`),j(_m,this).current().forEach(e=>e.close()),j(_m,this).close()}};function Sm(){var e=this;return N(function*(){var t=!1,n=!1,r;try{for(var i=Z(j(_m,e)),a;t=!(a=yield i.next()).done;t=!1){let t=a.value;{let n=[...t.values()].map(e=>e.state.subscribe);j(ym,e).debug(`current subscriptions`,n)}}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield i.return())}finally{if(n)throw r}}j(ym,e).debug(`Return 'observeChanges'`)})()}function Cm(e){j(ym,this).debug(`Enter 'deleteSubscription'`),!j(_m,this).isClosed()&&j(_m,this).update(t=>(t.delete(e),t))}H(),R(),E(),h(),A(),O(),M(),P();var wm,Tm,Em=new WeakMap,Dm=new WeakMap,Om=new WeakMap,km=new WeakMap,Am=new WeakMap,jm=new WeakMap,Mm=new WeakSet;wm=ln(),Tm=Symbol.dispose;var Nm=class{constructor(e,t){L(this,Mm),T(this,Em,void 0),T(this,Dm,void 0),T(this,Om,new C),T(this,km,void 0),T(this,Am,an.get().createContext(`Session`)),m(this,`subscriber`,void 0),m(this,`publisher`,void 0),T(this,jm,void 0);let[n,r]=fe(100);k(Em,this,e),k(km,this,r),this.subscriber=new xm(this,n),this.publisher=new em(this,e,n),k(Dm,this,D(Mm,this,Fm).call(this)),k(jm,this,new Nn(t)),this.closed().then(()=>this.close()).catch(S)}updateAuthToken(e){j(jm,this).update(e)}authToken(){return j(jm,this).current()}transportType(){return j(Em,this).transportType()}url(){return j(Em,this).url()}closed(){return Promise.race([j(Dm,this),j(Om,this).promise])}fail(e){j(Om,this).pending&&j(Om,this).resolve(e)}close(){try{this.subscriber.close(),this.publisher.close(),j(km,this).cancel(`closing`),j(Em,this).close()}catch(e){j(Am,this).warn(`Error closing session`,e)}}[wm](){D(Mm,this,zm).call(this)}[Tm](){D(Mm,this,zm).call(this)}};function Pm(e){var t=this;return N(function*(){var n,r;switch(j(Am,t).debug(`received message`,e),yield(n=t.subscriber)==null?void 0:n.onMessage(e),yield(r=t.publisher)==null?void 0:r.onMessage(e),e.type){case $.Goaway:j(Am,t).info(`received GoAway`,e);break;default:break}})()}function Fm(){var e=this;return N(function*(){return(yield Promise.all([D(Mm,e,Lm).call(e),D(Mm,e,Rm).call(e),D(Mm,e,Im).call(e)])).find(e=>e instanceof Error)})()}function Im(){var e=this;return N(function*(){try{var t=!1,n=!1,r;try{for(var i=Z(j(km,e)),a;t=!(a=yield i.next()).done;t=!1){let t=a.value;j(Am,e).debug(`sending message`,t),yield j(Em,e).writeMessage(t)}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield i.return())}finally{if(n)throw r}}}catch(t){return j(Am,e).error(`Error 'runOutgoingMessages'`,t),t}j(Am,e).info(`Return 'runOutgoingMessages'`)})()}function Lm(){var e=this;return N(function*(){try{for(yield j(Em,e).afterHandshake();;){let t=yield j(Em,e).readMessage().catch(()=>void 0);if(!t)break;yield D(Mm,e,Pm).call(e,t)}}catch(t){return j(Am,e).error(`Error 'runControl'`,t),t}finally{j(km,e).cancel(`closing`)}j(Am,e).info(`Return 'runControl'`)})()}function Rm(){var e=this;return N(function*(){try{for(;;){var t;let n=yield j(Em,e).objectStream();if(!n)break;yield(t=e.subscriber)==null?void 0:t.onObjectReader(n)}}catch(t){return j(Am,e).error(`Error 'runObjects'`,t),t}j(Am,e).info(`Return 'runObjects'`)})()}function zm(){j(Am,this).debug(`Enter 'dispose'`),this.close()}R(),E(),A(),M(),O(),P();var Bm=128,Vm=new WeakMap,Hm=new WeakMap,Um=new WeakMap,Wm=new WeakMap,Gm=new WeakMap,Km=new WeakSet,qm=class{constructor(e,t,n){L(this,Km),T(this,Vm,void 0),T(this,Hm,void 0),T(this,Um,!0),T(this,Wm,!1),T(this,Gm,void 0),k(Vm,this,e),k(Hm,this,t),k(Gm,this,n)}writeUnsigned8(e){var t=this;return N(function*(){return D(Km,t,Jm).call(t),yield D(Km,t,Ym).call(t),j(Vm,t).writeUnsigned8(e)})()}writeVarInt(e){var t=this;return N(function*(){return D(Km,t,Jm).call(t),yield D(Km,t,Ym).call(t),j(Vm,t).writeVarInt(e)})()}writeBigVarInt(e){var t=this;return N(function*(){return D(Km,t,Jm).call(t),yield D(Km,t,Ym).call(t),j(Vm,t).writeBigVarInt(e)})()}write(e){var t=this;return N(function*(){return D(Km,t,Jm).call(t),yield D(Km,t,Ym).call(t),j(Vm,t).write(e)})()}writeString(e){var t=this;return N(function*(){return D(Km,t,Jm).call(t),yield D(Km,t,Ym).call(t),j(Vm,t).writeString(e)})()}flush(){var e=this;return N(function*(){D(Km,e,Jm).call(e),k(Um,e,!0),yield j(Vm,e).flush()})()}close(){var e=this;return N(function*(){j(Wm,e)||(k(Um,e,!0),yield D(Km,e,Ym).call(e,!1),yield j(Vm,e).flush(),k(Wm,e,!0),j(Gm,e).call(e))})()}};function Jm(){if(j(Wm,this))throw Error(`Stream is closed`)}function Ym(e=!0){if(j(Um,this))return k(Um,this,!1),j(Vm,this).writeUnsigned8(j(Hm,this)|(e?Bm:0))}H(),R(),E(),A(),M(),O(),P();var Xm=new WeakMap,Zm=new WeakMap,Qm=new WeakMap,$m=new WeakMap,eh=new WeakMap,th=new WeakMap,nh=new WeakMap,rh=new WeakSet,ih=class{constructor(e,t){L(this,rh),T(this,Xm,void 0),T(this,Zm,void 0),T(this,Qm,void 0),T(this,$m,void 0),T(this,eh,new Map),T(this,th,an.get().createContext(`WebSocketConnection`)),T(this,nh,new Set(Array(128).fill(0).map((e,t)=>t+1))),k(Xm,this,e),k(Zm,this,t),k(Qm,this,new ReadableStream(new Ou(e))),j(Xm,this).addEventListener(`close`,e=>{j(th,this).info(`WebSocket closed`,{code:e.code,reason:e.reason,wasClean:e.wasClean}),j(Zm,this).markPostHandshake(),j(eh,this).forEach(e=>e.close())})}openSendStream(){let e=j(nh,this).values().next().value;if(!e)throw Error(`No stream IDs available`);return j(nh,this).delete(e),Promise.resolve(new qm(new id(j(Xm,this)),e,()=>D(rh,this,ah).call(this,e)))}transportType(){return`websocket`}url(){return j(Xm,this).url}afterHandshake(){return j(Zm,this).postHandshake()}objectStream(){var e=this;return N(function*(){for(;;){k($m,e,j(Qm,e).getReader());try{let{value:t,done:n}=yield j($m,e).read();if(n)return;let[r,i,a]=t;if(j(eh,e).has(F(i))){let t=j(eh,e).get(F(i));if(!t)throw Error(`Stream not found`);a.length>0&&(yield t.push(a)),r||(j(th,e).debug(`Closing stream`,{streamId:i}),t.close(),j(eh,e).delete(F(i)))}else{j(th,e).debug(`Creating new stream`,{streamId:i});let[t,n]=fe(1e3),o=new ReadableStream({pull(e){return N(function*(){let t=yield n.pop();t?e.enqueue(t):e.close()})()}});if(j(eh,e).set(F(i),t),r||(j(th,e).debug(`Closing new stream`,{streamId:i}),yield o.cancel(),j(eh,e).delete(F(i))),a.length>0)return yield vu(new Iu(a,o),i)}}finally{var t;(t=j($m,e))==null||t.releaseLock()}}})()}close(){var e;return j(Zm,this).cancel().catch(S),j(Qm,this).cancel(`closing`).catch(S),(e=j($m,this))==null||e.cancel(`closing`).catch(S),j(Xm,this).close()}closed(){return Promise.resolve()}writeMessage(e){var t=this;return N(function*(){yield j(Zm,t).write(e)})()}readMessage(){var e=this;return N(function*(){return j(Zm,e).read()})()}};function ah(e){j(nh,this).add(e)}H(),R(),E(),A(),O(),M(),P();var oh=new WeakMap,sh=new WeakMap,ch=new WeakMap,lh=new WeakMap,uh=new WeakMap,dh=new WeakMap,fh=new WeakSet,ph=class{constructor(e,t,n){L(this,fh),T(this,oh,void 0),T(this,sh,void 0),T(this,ch,new ve(100)),T(this,lh,void 0),T(this,uh,0),T(this,dh,an.get().createContext(`WebTransportConnection`)),k(lh,this,n),k(oh,this,e),k(sh,this,t),D(fh,this,mh).call(this).catch(e=>{j(dh,this).warn(`Incoming streams handling ended with error`,e),j(sh,this).markPostHandshake(),j(ch,this).close()}),j(oh,this).closed.then(()=>{j(sh,this).markPostHandshake(),j(ch,this).close()})}openSendStream(){var e=this;return N(function*(){return new Zu(yield j(oh,e).createUnidirectionalStream())})()}transportType(){return`webtransport`}url(){return j(lh,this)}afterHandshake(){return j(sh,this).postHandshake()}closed(){var e=this;return N(function*(){yield j(oh,e).closed})()}close(){j(oh,this).close()}writeMessage(e){var t=this;return N(function*(){yield j(sh,t).write(e)})()}readMessage(){var e=this;return N(function*(){return j(sh,e).read()})()}objectStream(){var e=this;return N(function*(){return j(ch,e).pop()})()}};function mh(){var e=this;return N(function*(){let t=j(oh,e).incomingUnidirectionalStreams.getReader();for(;;){var n;let{value:r,done:i}=yield t.read();if(i){j(ch,e).close();return}let a=new Iu(new Uint8Array,r);yield j(ch,e).push(vu(a,j(uh,e))),k(uh,e,(n=j(uh,e),n++,n))}})()}H(),P();var hh=an.get().createContext(`MoqClient`);function gh(e){return _h.apply(this,arguments)}function _h(){return _h=N(function*(e){let t=new WebSocket(e.wsUrl||e.url);t.binaryType=`arraybuffer`,yield new Promise((e,n)=>{t.addEventListener(`error`,()=>n(Error(`WebSocket error`)),{once:!0}),t.addEventListener(`open`,e,{once:!0})});let n=tp.wrapWebsocket(t),r=ip(n,e.role).catch(e=>{throw hh.warn(`MoQ handshake failed, closing WebSocket`,{error:e}),t.close(),e});e.handshakePipelining||(yield r);let i=new Nm(new ih(t,n),e.authToken);return hh.info(`connected`,{url:e.wsUrl||e.url,transport:`websocket`}),e.handshakePipelining&&r.catch(e=>{i.fail(e)}),i}),_h.apply(this,arguments)}function vh(e){return yh.apply(this,arguments)}function yh(){return yh=N(function*(e){let t=new Uint8Array(64/2);for(let e=0;e<t.length;e+=1)t[e]=parseInt(`60b82e8021689e163c1041b4475ef9c86e7565bc45d1a0aa43f5148769f461c7`.slice(2*e,2*e+2),16);let n=new WebTransport(e.url,{congestionControl:`low-latency`}),r=()=>{n.close()};typeof window<`u`&&typeof window.addEventListener==`function`&&(window.addEventListener(`beforeunload`,r),n.closed.finally(()=>{window.removeEventListener(`beforeunload`,r)}).catch(()=>{})),yield Promise.race([n.ready,n.closed.then(()=>Promise.reject(Error(`WebTransport closed`)))]);let i=yield n.createBidirectionalStream(),a=tp.wrapWebTransport(i),o=ip(a,e.role).catch(()=>{n.close()});e.handshakePipelining||(yield o);let s=new Nm(new ph(n,a,e.url.toString()),e.authToken);return hh.info(`connected`,{url:e.url,transport:`webtransport`}),s}),yh.apply(this,arguments)}function bh(e){return xh.apply(this,arguments)}function xh(){return xh=N(function*(e){if(self.WebTransport&&(e==null?void 0:e.preferredTransport)!==`websocket`&&e.url.protocol.startsWith(`https`)){if(!e.websocketFallbackTimeoutMs)return vh(e);let t=vh(e).catch(()=>gh(e));return(yield Promise.race([t,tr(e.websocketFallbackTimeoutMs)]))||gh(e)}return gh(e)}),xh.apply(this,arguments)}H(),E(),M();var Sh=new WeakMap,Ch=class{constructor(){T(this,Sh,{name:``,priority:0,groupOrder:`ascending`,filterType:{type:`latest-group`}})}name(e){return j(Sh,this).name=e,this}priority(e){return j(Sh,this).priority=e,this}groupOrder(e){return j(Sh,this).groupOrder=e,this}startGroup(e){return j(Sh,this).filterType={type:`absolute-start`,start:{group:e,object:F(0)}},this}range(e,t){return j(Sh,this).filterType={type:`absolute-range`,start:{group:e,object:F(0)},end:{group:t,object:F(0)}},this}build(){return j(Sh,this)}};E(),A(),M();var wh=new WeakMap,Th=new WeakMap,Eh=class{constructor(e,t){T(this,wh,void 0),T(this,Th,void 0),k(wh,this,e),k(Th,this,t)}subscribe(e,t=new Map){return j(wh,this).subscribe(this.namespace(),e,t)}closed(){return j(wh,this).closed()}namespace(){return j(Th,this).namespace}};function Dh(e,t){return t?[`com.vindral.moq`,e,t]:[`com.vindral.moq`,e]}function Oh(e){let t=e[1];if(!t)throw Error(`namespace must contain a channel ID`);return t}function kh(e){return`tracks`in e}function Ah(e){let t=new TextDecoder().decode(e);return JSON.parse(t)}H(),R(),E(),M(),A(),O(),P();var jh,Mh=new WeakMap,Nh=new WeakMap,Ph=new WeakMap,Fh=new WeakMap,Ih=new WeakMap,Lh=new WeakMap,Rh=new WeakSet;jh=Symbol.asyncIterator;var zh=class e{constructor(e,t){var n=this;L(this,Rh),T(this,Mh,void 0),T(this,Nh,void 0),T(this,Ph,new w(100)),T(this,Fh,void 0),T(this,Ih,void 0),T(this,Lh,function(){var e=N(function*(e){if(!e)return j(Mh,n).close();if(j(Fh,n))return;let t=j(Ph,n).items().reduce((e,t)=>e<t?e:t,e);k(Fh,n,D(Rh,n,Bh).call(n,t,e)),j(Fh,n).size===0&&(yield j(Mh,n).close())});return function(t){return e.apply(this,arguments)}}()),k(Mh,this,e),k(Nh,this,t),e.done().then(function(){var e=N(function*(e){var t;return j(Lh,n).call(n,(t=e.finalInfo)==null?void 0:t.group)});return function(t){return e.apply(this,arguments)}}()).catch(S),k(Ih,this,e.groups())}static subscribe(t,n){return N(function*(){return new e(yield t.subscribe(n),void 0)})()}subscribeId(){return j(Mh,this).id}name(){return j(Mh,this).name}largestGroupId(){return j(Nh,this)}needsRenewal(){return j(Mh,this).expiryState()===`active`&&j(Fh,this)===void 0}endOfTrack(e){let t=j(Ph,this).items().reduce((e,t)=>e<t?e:t,e);return this.update(t,e)}update(e,t){var n=this;return N(function*(){return k(Fh,n,D(Rh,n,Bh).call(n,e,t)),j(Fh,n).size===0&&(yield j(Mh,n).close()),j(Mh,n).update(e,t)})()}unsubscribe(){return j(Mh,this).unsubscribe()}next(){var e=this;return N(function*(){var t;if(j(Fh,e)&&j(Fh,e).size===0)return{done:!0,value:void 0};let n=yield j(Ih,e).next();if(n.done)return n;let r=n.value.groupId();return(t=j(Fh,e))==null||t.delete(r),j(Ph,e).push(r),j(Nh,e)||k(Nh,e,r),k(Nh,e,j(Nh,e)<r?r:j(Nh,e)),n})()}return(){return j(Mh,this).return()}[jh](){return this}};function Bh(e,t){let n=new Set;for(let r=e;r<=t;r++)n==null||n.add(r);return j(Ph,this).items().forEach(e=>{n==null||n.delete(e)}),n}Tn();function Vh(e){var t={},n=!1;function r(t,r){return n=!0,r=new Promise(function(n){n(e[t](r))}),{done:!1,value:new wn(r,1)}}return t[typeof Symbol<`u`&&Symbol.iterator||`@@iterator`]=function(){return this},t.next=function(e){return n?(n=!1,e):r(`next`,e)},typeof e.throw==`function`&&(t.throw=function(e){if(n)throw n=!1,e;return r(`throw`,e)}),typeof e.return==`function`&&(t.return=function(e){return n?(n=!1,e):r(`return`,e)}),t}H(),R(),E(),M(),O(),P(),A(),En(),kn();var Hh,Uh=new WeakMap,Wh=new WeakMap,Gh=new WeakMap,Kh=new WeakMap,qh=new WeakSet,Jh=new WeakMap;Hh=Symbol.asyncIterator;var Yh=class e{constructor(e){var t=this;L(this,qh),T(this,Uh,void 0),T(this,Wh,void 0),T(this,Gh,new ve(10)),T(this,Kh,void 0),T(this,Jh,function(){var e=N(function*(e,n){try{var r=bp();let i=r.u(yield j(Uh,t).lock()),a={subscribeId:i.value.subscribeId()};if(!i.value.needsRenewal()){j(Kh,t).debug(`Subscription does not need renewal`,a);return}let o=i.value.largestGroupId(),s=o!==void 0,c=new Ch().name(n.name).priority(n.priority).groupOrder(n.groupOrder);switch(a.largestGroupId=o,j(Kh,t).debug(`Renewing subscription`,a),n.filterType.type){case`absolute-range`:j(Kh,t).debug(`Absolute range is not renewed`,a);return;case`absolute-start`:case`latest-group`:case`latest-object`:s&&c.startGroup(o+F(1));break}let l=c.build();a.newTrack=l;let[u]=yield Promise.all([e.subscribe(l),s?i.value.update(o,o):i.value.unsubscribe()]);u.done().then(()=>D(qh,t,Xh).call(t,u)).catch(S),u.expiryNotification().then(()=>j(Jh,t).call(t,e,l)).catch(S);let d=new zh(u,o);i.value=d,yield j(Gh,t).push(d),j(Kh,t).info(`Subscription renewed`,a)}catch(e){r.e=e}finally{r.d()}});return function(t,n){return e.apply(this,arguments)}}()),k(Uh,this,new vn(e)),k(Wh,this,e),k(Kh,this,an.get().createContext(`Renewable '${e.name()}'`))}static subscribe(t,n,r){return N(function*(){let i=r==null?void 0:r.params,a=r==null?void 0:r.largestGroupId,o=yield t.subscribe(n,i),s=new e(new zh(o,a));return o.done().then(()=>D(qh,s,Xh).call(s,o)).catch(S),o.expiryNotification().then(()=>j(Jh,s).call(s,t,n)).catch(S),s})()}largestGroupId(){return j(Uh,this).unsafeValue().largestGroupId()}update(e,t){var n=this;return N(function*(){try{var r=bp();let i=r.u(yield j(Uh,n).lock());return j(Gh,n).close(),i.value.update(e,t)}catch(e){r.e=e}finally{r.d()}})()}endOfTrack(e){var t=this;return N(function*(){try{var n=bp();let r=n.u(yield j(Uh,t).lock());return j(Gh,t).close(),r.value.endOfTrack(e)}catch(e){n.e=e}finally{n.d()}})()}unsubscribe(){var e=this;return N(function*(){try{var t=bp();let n=t.u(yield j(Uh,e).lock());return j(Gh,e).close(),n.value.unsubscribe()}catch(e){t.e=e}finally{t.d()}})()}return(){var e=this;return N(function*(){try{var t=bp();let n=t.u(yield j(Uh,e).lock());return j(Gh,e).close(),n.value.return()}catch(e){t.e=e}finally{t.d()}})()}next(){var e=this;return N(function*(){let t=yield j(Wh,e).next();if(t.done){var n,r;yield(n=(r=j(Wh,e)).return)==null?void 0:n.call(r);let t=yield j(Gh,e).pop();if(t)return k(Wh,e,t),e.next()}return t})()}[Hh](){return this}objects(){var e=this;return Dn(function*(){var t=!1,n=!1,r;try{for(var i=Z(e),a;t=!(a=yield V(i.next())).done;t=!1)try{var o=bp();yield*Vh(Z(o.a(a.value)))}catch(e){o.e=e}finally{yield V(o.d())}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield V(i.return()))}finally{if(n)throw r}}})()}};function Xh(e){var t=this;return N(function*(){var n;if(e.unsubscribed()||(n=e.range())!=null&&n.endGroup){j(Kh,t).info(`Server initiated subscribe done but the subscription is already closing`);return}if(j(Uh,t).unsafeValue().subscribeId()!==e.id){j(Kh,t).info(`subscribeId mismatch - the subscription already has been renewed`);return}return t.return()})()}H(),R(),E(),A(),O(),M(),P();var Zh=`catalog`;function Qh(e){let t=Ah(e.payload);if(!kh(t))throw Error(`unexpected catalog type`);return t}var $h=new WeakMap,eg=new WeakMap,tg=new WeakMap,ng=new WeakMap,rg=new WeakSet,ig=class e{constructor(e,t,n){L(this,rg),T(this,$h,void 0),T(this,eg,void 0),T(this,tg,void 0),T(this,ng,void 0),k(eg,this,e),k($h,this,t),k(tg,this,n),k(ng,this,D(rg,this,ag).call(this)),this.closed().finally(()=>j($h,this).close()).catch(S)}catalog(){return j($h,this)}closed(){return j(ng,this)}close(){var e=this;return N(function*(){return j($h,e).close(),(yield j(eg,e).promise).unsubscribe()})()}static start(t,n){return N(function*(){let r=C.fromPromise(Yh.subscribe(t,new Ch().name(n.catalogName||Zh).groupOrder(`ascending`).build())),i=C.fromPromise(r.promise.then(e=>e.objects()));if(n.catalog)return new e(r,new Nn(n.catalog),i);let a=yield(yield i.promise).next();if(!a.value)throw Error(`No catalog found`);return new e(r,new Nn(Qh(a.value)),i)})()}};function ag(){var e=this;return N(function*(){let t=yield j(tg,e).promise;var n=!1,r=!1,i;try{for(var a=Z(t),o;n=!(o=yield a.next()).done;n=!1){let t=o.value;{if(t.objectStatus!==zl.Normal)continue;let n=Qh(t);j($h,e).update(n)}}}catch(e){r=!0,i=e}finally{try{n&&a.return!=null&&(yield a.return())}finally{if(r)throw i}}})()}H(),R(),E(),A(),M(),O(),h(),En(),B(),kn(),P();var og,sg,cg,lg,ug,dg,fg,pg,mg=new WeakMap,hg=new WeakMap,gg=new WeakMap,_g=new WeakMap,vg=new WeakMap,yg=new WeakMap,bg=new WeakMap,xg=new WeakMap,Sg=new WeakSet;og=ln(),sg=Symbol.dispose;var Cg=class{constructor(e,t){L(this,Sg),T(this,mg,void 0),T(this,hg,void 0),T(this,gg,void 0),T(this,_g,void 0),T(this,vg,void 0),T(this,yg,void 0),T(this,bg,void 0),T(this,xg,0),k(mg,this,e),k(hg,this,t)}onFragment(e,t,n,r,i){var a;j(gg,this)===void 0&&(k(gg,this,e),k(_g,this,t),k(vg,this,n),k(yg,this,r),j(mg,this).debug(`group start`,{name:j(hg,this).name,groupId:e,startTimeMs:r,endTimeMs:i,subscribeId:t,mediaType:n,namespace:j(hg,this).namespace})),k(xg,this,(a=j(xg,this),a++,a)),k(bg,this,i)}[og](){D(Sg,this,wg).call(this)}[sg](){D(Sg,this,wg).call(this)}};function wg(){j(gg,this)!==void 0&&j(yg,this)!==void 0&&j(bg,this)!==void 0&&j(mg,this).debug(`group end`,{name:j(hg,this).name,groupId:j(gg,this),startTimeMs:j(yg,this),endTimeMs:j(bg,this),durationMs:j(bg,this)-j(yg,this),fragmentCount:j(xg,this),subscribeId:j(_g,this),mediaType:j(vg,this),namespace:j(hg,this).namespace})}var Tg=new WeakMap,Eg=new WeakMap,Dg=new WeakMap,Og=new WeakMap,kg=new WeakSet;cg=Symbol.asyncIterator,lg=cn(),ug=Symbol.asyncDispose;var Ag=class{constructor(e,t,n,r){L(this,kg),T(this,Tg,void 0),T(this,Eg,void 0),T(this,Dg,void 0),m(this,`track`,void 0),T(this,Og,an.get().createContext(`CmafGroup`)),this.track=r,k(Tg,this,n),k(Eg,this,e),k(Dg,this,t)}[cg](){var e=this;return Dn(function*(){try{var t=bp();let s={name:e.track.trackObject.name,namespace:e.track.namespace},c=t.u(new Cg(j(Og,e),s));var n=!1,r=!1,i;try{for(var a=Z(j(Eg,e)),o;n=!(o=yield V(a.next())).done;n=!1){let t=o.value;{if(t.objectStatus===zl.EndOfTrackAndGroup&&(yield V(e.track.endOfTrack(t.groupId))),t.objectStatus!==zl.Normal)continue;let n=j(Dg,e).createFragment(t.payload),r=n.timescale(),i=n.baseMediaDecodeTime()/r*1e3,a=i+n.duration()/r*1e3,o=j(Tg,e)/1e3*r;n.updateBaseMediaDecodeTime(n.baseMediaDecodeTime()-o);let l=e.track.timestampRange();if(l&&i>=l[1])break;j(Og,e).trace(`fragment`,z(z({},s),{},{startTime:i,endTime:a,subscribeId:t.subscribeId,groupId:t.groupId,objectId:t.objectId,streamId:t.streamId})),c.onFragment(t.groupId,t.subscribeId,n.mediaType(),i,a),yield[t.groupId,n]}}}catch(e){r=!0,i=e}finally{try{n&&a.return!=null&&(yield V(a.return()))}finally{if(r)throw i}}}catch(e){t.e=e}finally{t.d()}})()}[lg](){return D(kg,this,jg).call(this)}[ug](){return D(kg,this,jg).call(this)}};function jg(){var e=this;return N(function*(){var t,n;return yield(t=(n=j(Eg,e)).return)==null?void 0:t.call(n),Promise.resolve()})()}var Mg=new WeakMap,Ng=new WeakMap,Pg=new WeakMap,Fg=new WeakMap;dg=Symbol.asyncIterator,fg=cn(),pg=Symbol.asyncDispose;var Ig=class e{constructor(e,t,n,r,i){T(this,Mg,void 0),T(this,Ng,void 0),T(this,Pg,void 0),T(this,Fg,void 0),m(this,`trackObject`,void 0),m(this,`namespace`,void 0),this.trackObject=e,this.namespace=t,k(Ng,this,n),k(Mg,this,r),k(Pg,this,i)}static subscribe(t,n,{timestampOffsetMs:r,startGroup:i,params:a}){return N(function*(){if(n.format!==`cmaf`)throw Error(`format must be cmaf`);let o=new Ch().name(n.name);i&&o.startGroup(i);let s=o.build();if(n.initTrack){let o=new Ch().name(n.initTrack).build(),[c,l]=yield Promise.all([Lg.call(e,t,o),Yh.subscribe(t,s,{params:a,largestGroupId:i?i-F(1):void 0})]),u=new Yo(c);return new e(n,t.namespace(),l,u,r)}be(n.initData,`no init data found on track`);let c=Le(n.initData),l=new Yo(new Uint8Array(c)),u=yield Yh.subscribe(t,s,{params:a,largestGroupId:i?i-F(1):void 0});return new e(n,t.namespace(),u,l,r)})()}largestGroupId(){return j(Ng,this).largestGroupId()}stopAfterTimestampReached(e){k(Fg,this,[0,e])}timestampRange(){return j(Fg,this)}endOfTrack(e){return j(Ng,this).endOfTrack(e)}update(e,t){return j(Ng,this).update(e,t)}unsubscribe(){var e=this;return N(function*(){return j(Ng,e).unsubscribe()})()}next(){var e=this;return N(function*(){let t=yield j(Ng,e).next();return t.done?t:{done:!1,value:new Ag(t.value,j(Mg,e),j(Pg,e),e)}})()}return(){var e=this;return N(function*(){return yield j(Ng,e).return(),{done:!0,value:void 0}})()}[dg](){return this}[fg](){return this.unsubscribe()}[pg](){var e=this;return N(function*(){return e.unsubscribe()})()}};function Lg(e,t){return N(function*(){try{var n=bp();let r=n.a(yield e.subscribe(t)),i=yield r.objects().next();if(i.done)throw Error(`No init object`);return yield r.close(),i.value.payload}catch(e){n.e=e}finally{yield n.d()}})()}H(),R(),E(),A(),O(),M(),P();var Rg=1e4,zg=3e4,Bg=new WeakMap,Vg=new WeakMap,Hg=new WeakMap,Ug=new WeakMap,Wg=new WeakMap,Gg=new WeakMap,Kg=new WeakSet,qg=class e{constructor(e,t,n){L(this,Kg),T(this,Bg,an.get().createContext(`Timeline`)),T(this,Vg,new Nn([])),T(this,Hg,void 0),T(this,Ug,void 0),T(this,Wg,void 0),T(this,Gg,void 0),k(Ug,this,e),k(Wg,this,n),k(Hg,this,t),k(Gg,this,D(Kg,this,Jg).call(this,j(Hg,this))),this.closed().finally(()=>j(Vg,this).close()).catch(S)}closed(){return j(Gg,this)}close(){var e=this;return N(function*(){return(yield j(Hg,e).promise).unsubscribe()})()}timeline(){let[e,t]=j(Vg,this).value();return e}timestampWallclockOffset(){return At(this.timeline().map(e=>e.mediaPts-e.wallclock))}static start(t,n){return new e(t,C.fromPromise(Yh.subscribe(t,new Ch().name(n).groupOrder(`ascending`).build())),n)}waitForWallclockTime(e){var t=this;return N(function*(){return yield j(Vg,t).waitFor(t=>!!t.find(t=>t.wallclock>=e)),t.timeline()})()}waitForTimelineToHaveMinDuration(){var e=this;return N(function*(){return yield j(Vg,e).waitFor(e=>{let t=e[0],n=e[e.length-1];return!t||!n?!1:n.wallclock-t.wallclock>Rg}),e.timeline()})()}};function Jg(e){var t=this;return N(function*(){let n=yield e.promise;var r=!1,i=!1,a;try{for(var o=Z(n),s;r=!(s=yield o.next()).done;r=!1)try{var c=bp();let e=c.a(s.value);var l=!1,u=!1,d;try{for(var f=Z(e),p;l=!(p=yield f.next()).done;l=!1){let e=p.value;{if(e.objectStatus!==zl.Normal)continue;let r=Xg(e.payload);j(Vg,t).update(e=>{var t,n;for(e.push(...r),e.sort((e,t)=>e.wallclock-t.wallclock);e[0]&&((t=(n=e[e.length-1])==null?void 0:n.wallclock)==null?0:t)-e[0].wallclock>zg;)e.shift();return e}),n===j(Hg,t).resolved&&e.groupId>F(0)&&e.objectId===F(0)&&D(Kg,t,Yg).call(t,e.groupId).catch(e=>{j(Bg,t).warn(`backfill failed`,e)})}}}catch(e){u=!0,d=e}finally{try{l&&f.return!=null&&(yield f.return())}finally{if(u)throw d}}}catch(e){c.e=e}finally{yield c.d()}}catch(e){i=!0,a=e}finally{try{r&&o.return!=null&&(yield o.return())}finally{if(i)throw a}}})()}function Yg(e){var t=this;return N(function*(){let n=e-F(1),r=t.timeline(),i=r[0],a=r[r.length-1];if(!i||!a||a.wallclock-i.wallclock>Rg)return;j(Bg,t).debug(`backfilling timeline`,{currentGroupId:e,backfillGroupId:n});let o=C.fromPromise(Yh.subscribe(j(Ug,t),new Ch().name(j(Wg,t)).groupOrder(`ascending`).range(n,n).build()));return D(Kg,t,Jg).call(t,o)})()}function Xg(e){var t;let n=new TextDecoder(`utf-8`).decode(e).split(`
49
- `);return(t=n[0])!=null&&t.startsWith(`MEDIA_PTS`)&&n.shift(),n.filter(e=>e.length>0).map(e=>{let[t,n,r,i,a]=e.split(`,`);if(!t||!i)throw Error(`invalid timeline row: ${e}`);return{mediaPts:parseInt(t,10),groupId:n?parseInt(n,10):void 0,objectId:r?parseInt(r,10):void 0,wallclock:parseInt(i,10),metadata:a}})}H(),E(),h(),A(),P(),M();var Zg,Qg,$g;function e_(e){return typeof e.language==`string`}var t_=new WeakMap,n_=new WeakMap,r_=new WeakMap,i_=new WeakMap;Zg=Symbol.asyncIterator,Qg=cn(),$g=Symbol.asyncDispose;var a_=class e{constructor(e,t,n,r,i){T(this,t_,new Xc),T(this,n_,void 0),T(this,r_,void 0),T(this,i_,0),m(this,`trackObject`,void 0),m(this,`namespace`,void 0),k(r_,this,e),k(n_,this,t),this.trackObject=n,this.namespace=r,k(i_,this,i)}static subscribe(t,n,r){return N(function*(){if(!e_(n))throw Error(`track object language is required`);let i=new Ch().name(n.name).build(),a=yield Yh.subscribe(t,i);return new e(a,a.objects(),n,t.namespace(),r)})()}largestGroupId(){return j(r_,this).largestGroupId()}update(e,t){return j(r_,this).update(e,t)}unsubscribe(){return j(r_,this).unsubscribe()}next(){var e=this;return N(function*(){for(;;){let t=yield j(n_,e).next();if(t.done)return t;if(t.value.objectStatus!==zl.Normal)continue;let n=new TextDecoder().decode(t.value.payload),r=j(t_,e).parse(n).map(t=>(t.startTime-=j(i_,e)/1e3,t.endTime-=j(i_,e)/1e3,t));return{done:!1,value:{language:e.trackObject.language,cues:r}}}})()}return(){var e=this;return N(function*(){return yield j(r_,e).return(),{done:!0,value:void 0}})()}[Zg](){return this}[Qg](){return this.unsubscribe()}[$g](){return this.unsubscribe()}};H(),R(),h(),E(),A(),P(),M(),O();var o_=new WeakMap,s_=new WeakMap,c_=new WeakMap,l_=new WeakMap,u_=new WeakSet,d_=class e{constructor(e,t,n,r,i){L(this,u_),m(this,`namespace`,void 0),T(this,o_,void 0),T(this,s_,void 0),T(this,c_,void 0),T(this,l_,void 0),this.namespace=r,k(o_,this,e),k(s_,this,t),k(c_,this,n),k(l_,this,i)}static start(t,n){return N(function*(){p_._.info(`Enter 'start'`,{config:n});let r=new Eh(t,{namespace:n.namespace}),[i,a]=yield Promise.all([qg.start(r,`timeline`),ig.start(r,{catalog:n.catalog,namespace:n.namespace})]);return new e(r,i,a,n.namespace,0)})()}closed(){return j(c_,this).closed()}catalog(){return j(c_,this).catalog()}timestampWallclockOffset(){return j(s_,this).timestampWallclockOffset()}timestampOffsetMs(){return j(l_,this)}setTimestampOffsetMs(e){k(l_,this,e)}waitForWallclockTime(e){return j(s_,this).waitForWallclockTime(e)}subscribeCmafTrack(e,t){let n=t==null?void 0:t.startGroup,r=t==null?void 0:t.params,i=this.catalog().current().tracks,a=e[`com.vindral.variant_uid`]===void 0?void 0:i.find(t=>t[`com.vindral.variant_uid`]===e[`com.vindral.variant_uid`]);return D(u_,this,f_).call(this,()=>Ig.subscribe(j(o_,this),a==null?e:a,{timestampOffsetMs:j(l_,this),startGroup:n,params:r}))}subscribeWebVttTrack(e){return D(u_,this,f_).call(this,()=>a_.subscribe(j(o_,this),e,j(l_,this)))}subscribeTrack(e){return D(u_,this,f_).call(this,()=>j(o_,this).subscribe(e))}close(){return Promise.all([j(c_,this).close(),j(s_,this).close()])}};function f_(e){var t=this;return N(function*(){let[n,r]=t.catalog().value();try{return yield e()}catch(i){if(n===t.catalog().current()&&r&&(yield Promise.race([r,tr(500)])),n!==t.catalog().current())return e();throw i}})()}var p_={_:an.get().createContext(`Channel`)};H();var m_=F(8);function h_(e){if(e<0||e>65535)throw RangeError(`burstMs must be between 0 and 65535 inclusive`);return{type:m_,payload:new Uint8Array([e>>8&255,e&255])}}R(),E(),A(),O(),M(),P();var g_=new WeakMap,__=new WeakMap,v_=new WeakSet,y_=class e{constructor(e){L(this,v_),T(this,g_,void 0),T(this,__,void 0);let[t,n]=e.value.value();k(g_,this,{createdAt:new Date,wallclock:new Date(t.ntpTimestamp),rtt:t.rtt}),k(__,this,D(v_,this,b_).call(this,e))}wallclock(){let e=Date.now()-j(g_,this).createdAt.getTime();return j(g_,this).wallclock.getTime()+e}closed(){return j(__,this)}static start(t){return new e(t)}};function b_(e){var t=this;return N(function*(){var n=!1,r=!1,i;try{for(var a=Z(e.value),o;n=!(o=yield a.next()).done;n=!1){let e=o.value;k(g_,t,{createdAt:new Date,wallclock:new Date(e.ntpTimestamp),rtt:e.rtt})}}catch(e){r=!0,i=e}finally{try{n&&a.return!=null&&(yield a.return())}finally{if(r)throw i}}})()}function x_(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}function S_(e,t){if(e==null)return{};var n,r,i=x_(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}H(),B(),h(),P();var C_=[`fairplayCertificate`];function w_(e){return typeof e==`string`||e==null}function T_(e){return`provider`in e&&typeof e.provider==`string`&&(!(`widevineLicenseUrl`in e)||w_(e.widevineLicenseUrl))&&(!(`playreadyLicenseUrl`in e)||w_(e.playreadyLicenseUrl))&&(!(`fairplayLicenseUrl`in e)||w_(e.fairplayLicenseUrl))&&(!(`fairplayCertificate`in e)||w_(e.fairplayCertificate))}function E_(e){try{return Le(e)}catch(e){throw Error(`Failed to convert fairplayCertificate`)}}function D_(e){let t=new TextDecoder().decode(e),n=JSON.parse(t);if(!T_(n))throw Error(`Invalid drm object`);let{fairplayCertificate:r}=n;return z(z({},S_(n,C_)),{},{fairplayCertificate:r?E_(r):void 0})}var O_=class e{constructor(e){m(this,`value`,void 0),this.value=e}static create(t,n,r){return N(function*(){try{var i=bp();let a=yield i.a(yield t.subscribeTrack(new Ch().name(`drm`).build())).objects().next();if(a.done)throw Error(`No drm object received`);return new e(z(z({},D_(a.value.payload)),{},{videoCodec:n,audioCodec:r}))}catch(e){i.e=e}finally{yield i.d()}})()}};H(),R(),h(),E(),A(),O(),M(),P();function k_(e){return`rtt`in e&&typeof e.rtt==`number`&&`ntpTimestamp`in e&&typeof e.ntpTimestamp==`number`&&`estimatedBandwidth`in e&&typeof e.estimatedBandwidth==`number`}function A_(e){let t=new TextDecoder().decode(e),n=JSON.parse(t);if(!k_(n))throw Error(`Invalid stats object`);return n}var j_=1e4,M_=new WeakMap,N_=new WeakSet,P_=class e{constructor(e,t,n){L(this,N_),m(this,`ip`,void 0),m(this,`value`,void 0),T(this,M_,void 0),this.ip=n,this.value=new Nn(t),k(M_,this,D(N_,this,F_).call(this,e))}closed(){return j(M_,this)}idleTimeout(){var e=this;return N(function*(){for(;;){let[t,n]=e.value.value();try{yield Promise.race([nr(j_,Error(`Idle timeout`)),n])}catch(e){return e}}})()}static start(t){return N(function*(){let n=(yield t.subscribe(new Ch().name(`stats`).groupOrder(`ascending`).build())).objects(),r=yield n.next();if(r.done)throw Error(`No stats object received`);let i=A_(r.value.payload);if(!i.ip)throw Error(`Expected IP in initial stats object`);return new e(n,i,i.ip)})()}};function F_(e){var t=this;return N(function*(){var n=!1,r=!1,i;try{for(var a=Z(e),o;n=!(o=yield a.next()).done;n=!1){let e=o.value;{if(e.objectStatus!==zl.Normal)continue;let n=A_(e.payload);t.value.update(n)}}}catch(e){r=!0,i=e}finally{try{n&&a.return!=null&&(yield a.return())}finally{if(r)throw i}}})()}H(),E(),A(),M(),P();var I_=new WeakMap,L_=new WeakMap,R_=class{constructor(e){T(this,I_,an.get().createContext(`UpstreamWatcher`)),T(this,L_,void 0),k(L_,this,new Nn(C.fromPromise(e.closed())))}update(e){j(L_,this).update(C.fromPromise(e.closed()))}closed(){var e=this;return N(function*(){try{for(;;){let[t,n]=j(L_,e).value(),r=!1;yield Promise.race([n==null?void 0:n.then(()=>r=!0),t.promise.then(()=>{if(!r)throw j(I_,e).warn(`Upstream closed`),Error(`Upstream closed`)})])}}catch(e){return e}})()}};H(),E(),A(),M(),En(),B(),kn(),R(),h(),O(),P();var z_,B_=new WeakMap,V_=new WeakMap,H_=new WeakMap;z_=Symbol.asyncIterator;var U_=class{constructor(e,t){T(this,B_,an.get().createContext(`TracksIterator`)),T(this,V_,void 0),T(this,H_,void 0),k(V_,this,e),k(H_,this,t)}[z_](){var e=this;return Dn(function*(){let t=j(H_,e);var n=!1,r=!1,i;try{for(var a=Z(j(V_,e)),o;n=!(o=yield V(a.next())).done;n=!1){let n=o.value;{if(!n)continue;let r={name:n.trackObject.name,namespace:n.namespace};j(B_,e).debug(`track start`,z({mediaType:t},r)),yield*Vh(Z(n)),j(B_,e).debug(`track end`,z({mediaType:t},r))}}}catch(e){r=!0,i=e}finally{try{n&&a.return!=null&&(yield V(a.return()))}finally{if(r)throw i}}j(B_,e).debug(`tracks ended`,{mediaType:t})})()}},W_=new WeakMap,G_=new WeakMap,K_=new WeakMap,q_=new WeakMap,J_=new WeakMap,Y_=new WeakMap,X_=new WeakMap,Z_=new WeakMap,Q_=new WeakMap,$_=new WeakMap,ev=new WeakSet,tv=class e{constructor(e,t,n){L(this,ev),T(this,W_,void 0),T(this,G_,void 0),T(this,K_,void 0),T(this,q_,an.get().createContext(`Player`)),T(this,J_,void 0),T(this,Y_,new Nn(void 0)),T(this,X_,new Nn(void 0)),T(this,Z_,new Nn(void 0)),T(this,Q_,void 0),T(this,$_,void 0),m(this,`subtitles`,new U_(j(Z_,this),`subtitles`)),m(this,`video`,new U_(j(X_,this),`video`)),m(this,`audio`,new U_(j(Y_,this),`audio`)),k(W_,this,e),k(G_,this,y_.start(n)),k(K_,this,n),k(J_,this,new Nn(t)),k(Q_,this,new R_(t)),k($_,this,Promise.race([n.idleTimeout(),D(ev,this,iv).call(this),j(Q_,this).closed()])),j(W_,this).closed().then(()=>this.close()).catch(S)}closed(){return j($_,this)}static start(t,n){return N(function*(){let r=new Map;if(n.burstMs!==void 0){let e=h_(n.burstMs);r.set(e.type,e)}let i=new Eh(t,{namespace:Dh(`auxiliary`)}),[[a,o,s],c]=yield Promise.all([d_.start(t,n).then(e=>Promise.all([Promise.resolve(e),n.videoTrack?e.subscribeCmafTrack(n.videoTrack,{params:r}):void 0,n.audioTrack?e.subscribeCmafTrack(n.audioTrack,{params:r}):void 0])),P_.start(i)]),l=new e(t,a,c);return s&&j(Y_,l).update(s),o&&j(X_,l).update(o),l})()}connectionInfo(){let e=j(K_,this).value.current();return{ip:j(K_,this).ip,rtt:e.rtt,estimatedBandwidth:e.estimatedBandwidth}}stats(){return j(K_,this).value}catalog(){return j(J_,this).current().catalog()}namespace(){return j(J_,this).current().namespace}videoTrack(){var e;return(e=j(X_,this).current())==null?void 0:e.trackObject}audioTrack(){var e;return(e=j(Y_,this).current())==null?void 0:e.trackObject}referenceClock(){return j(G_,this)}drm(){var e=this;return N(function*(){var t,n;if(e.catalog().current().tracks.find(({name:e})=>e===`drm`))return O_.create(j(J_,e).current(),(t=e.videoTrack())==null?void 0:t.codec,(n=e.audioTrack())==null?void 0:n.codec)})()}close(){return j(q_,this).info(`Enter 'close'`),Promise.all([j(J_,this).current().close(),j(J_,this).close(),D(ev,this,nv).call(this,j(Y_,this)),D(ev,this,nv).call(this,j(X_,this)),D(ev,this,nv).call(this,j(Z_,this))])}zap(e,t){var n=this;return N(function*(){j(q_,n).info(`Enter 'zap'`,{config:e,zapOffsetMs:t});let r=yield d_.start(j(W_,n),e),i=j(G_,n).wallclock()-t,a=j(J_,n).current(),o=a.timestampWallclockOffset(),s=yield r.waitForWallclockTime(i);j(Q_,n).update(r),yield j(J_,n).current().close();let c=s.toReversed().find(e=>e.wallclock<=i),l=c!=null&&c.mediaPts?c.mediaPts-a.timestampOffsetMs():void 0,u=r.timestampWallclockOffset()-o+a.timestampOffsetMs();r.setTimestampOffsetMs(u);let d=c!=null&&c.groupId?F(c.groupId):void 0;if(l){var f,p;(f=j(X_,n).current())==null||f.stopAfterTimestampReached(l),(p=j(Y_,n).current())==null||p.stopAfterTimestampReached(l)}j(J_,n).update(r),yield Promise.all([e.videoTrack?n.setVideoTrack(e.videoTrack,d):void 0,e.audioTrack?n.setAudioTrack(e.audioTrack,d):void 0]),j(q_,n).info(`Return 'zap'`)})()}setSubtitleTrack(e){var t=this;return N(function*(){var n;if(!e){var r;yield(r=j(Z_,t).current())==null?void 0:r.unsubscribe();return}let[i]=yield Promise.all([j(J_,t).current().subscribeWebVttTrack(e),(n=j(Z_,t).current())==null?void 0:n.unsubscribe()]);j(Z_,t).update(i)})()}setVideoTrack(e,t){var n=this;return N(function*(){let r=yield D(ev,n,rv).call(n,j(J_,n).current(),e,j(X_,n).current(),t);j(X_,n).update(r)})()}setAudioTrack(e,t){var n=this;return N(function*(){let r=yield D(ev,n,rv).call(n,j(J_,n).current(),e,j(Y_,n).current(),t);j(Y_,n).update(r)})()}};function nv(e){let t=e.current(),n=t==null?void 0:t.largestGroupId();return e.isClosed()||e.update(void 0),e.close(),n?t==null?void 0:t.update(n,n):t==null?void 0:t.unsubscribe()}function rv(e,t,n,r){var i=this;return N(function*(){j(q_,i).info(`Enter '#replaceTrack'`,{trackObject:t,startGroupId:r});let a=n==null?void 0:n.largestGroupId(),[o,s]=yield Promise.all([e.subscribeCmafTrack(t,{startGroup:r||(a?a+F(1):void 0)}),a?n==null?void 0:n.update(a,a):n==null?void 0:n.unsubscribe()]);return o})()}function iv(){var e=this;return N(function*(){var t=!1,n=!1,r;try{for(var i=Z(j(J_,e)),a;t=!(a=yield i.next()).done;t=!1){let t=a.value;var o=!1,s=!1,c;try{for(var l=Z(t.catalog()),u;o=!(u=yield l.next()).done;o=!1){let t=u.value;yield Promise.all([D(ev,e,av).call(e,t,j(X_,e)),D(ev,e,av).call(e,t,j(Y_,e))])}}catch(e){s=!0,c=e}finally{try{o&&l.return!=null&&(yield l.return())}finally{if(s)throw c}}}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield i.return())}finally{if(n)throw r}}})()}function av(e,t){var n=this;return N(function*(){let r=t.current();if(!r)return;let i=r.trackObject.name,a=r.trackObject[`com.vindral.variant_uid`],o=e.tracks.find(e=>e.name===i),s=e.tracks.find(e=>e[`com.vindral.variant_uid`]===a);if(!o){if(!s){t.update(void 0);return}t.update(yield j(J_,n).current().subscribeCmafTrack(s))}})()}H(),R(),E(),h(),M(),A(),O(),P();function ov(e,t,n){let r=new URL(`/voq/subscribe`,e);return r.searchParams.set(`sessionId`,t.sessionId),r.searchParams.set(`clientId`,t.clientId),r.searchParams.set(`channelId`,t.channelId),n&&r.searchParams.set(`authToken`,n),r}var sv=1e4,cv=new WeakMap,lv=new WeakMap,uv=new WeakMap,dv=new WeakMap,fv=new WeakMap,pv=new WeakMap,mv=new WeakMap,hv=new WeakMap,gv=new WeakMap,_v=new WeakMap,vv=new WeakSet,yv=new WeakMap,bv=new WeakMap,xv=new WeakMap,Sv=class e{get estimatedBandwidth(){return j(gv,this)}unload(){j(cv,this).off(`send signal`,j(bv,this)),j(cv,this).off(`disconnect`,this.disconnect),j(cv,this).off(`text track`,j(yv,this)),this.disconnect()}suspend(){}unsuspend(){}getStatistics(){let e=j(uv,this).transportType()===`webtransport`?`moq`:`moq_ws`;return{edgeUrl:j(uv,this).url(),connectionProtocol:e}}constructor(e,t,n,r,i,a,o){L(this,vv),T(this,cv,void 0),T(this,lv,void 0),T(this,uv,void 0),T(this,dv,`disconnected`),T(this,fv,void 0),T(this,pv,new Map),T(this,mv,void 0),T(this,hv,void 0),T(this,gv,void 0),T(this,_v,new Map),T(this,yv,e=>{if(!e){j(fv,this).setSubtitleTrack(void 0).catch(S);return}let t=j(pv,this).get(Oh(j(fv,this).namespace())),n=t==null?void 0:t.getTextTrack(e);n&&j(fv,this).setSubtitleTrack(n).catch(S)}),T(this,bv,e=>{switch(e.type){case`subscribe`:if(j(xv,this)){j(lv,this).info(`Ignoring - we are already switching`);return}k(xv,this,!0),D(vv,this,Tv).call(this,e.subscription).catch(t=>{j(lv,this).error(`error handling subscription`,t),j(cv,this).emit(`received signal`,{type:`subscription changed`,subscription:e.subscription,reset:!0})}).finally(()=>k(xv,this,!1));break;case`telemetry`:wl(new URL(`/api/telemetry`,j(uv,this).url().replace(`wss://`,`https://`)),{body:e.body,headers:{"Content-Type":`text/plain`}}).catch(S);break;case`refresh auth`:j(uv,this).updateAuthToken(e.token);break}}),T(this,xv,!1),m(this,`disconnect`,(e=`Disconnect Requested`)=>{j(lv,this).info(`Disconnecting`,e),j(uv,this).close(),j(fv,this).close().catch(S),k(_v,this,new Map),D(vv,this,Ev).call(this,`disconnected`)}),k(cv,this,e),k(lv,this,t),k(uv,this,n),k(fv,this,r),k(pv,this,i),k(mv,this,a),k(hv,this,o),j(cv,this).on(`send signal`,j(bv,this)),j(cv,this).on(`disconnect`,this.disconnect),j(cv,this).on(`text track`,j(yv,this)),D(vv,this,Cv).call(this).catch(S),D(vv,this,Dv).call(this).catch(S)}static start(t,n,r,i,a){return N(function*(){var o,s,c;let l=new Map(i.connectInfo.channels.map(e=>[Oh(e.catalog.namespace),new Pv(new Nn(e.catalog))])),u=yield i.onConnectInfo(i.connectInfo),d=i.options.get(`authenticationToken`),f,p;switch(typeof i.edgeUrl){case`string`:f=ov(i.edgeUrl,u,d);break;default:f=ov(i.edgeUrl.moqUrl||i.edgeUrl.moqWsUrl,u,d),p=ov(i.edgeUrl.moqWsUrl,u,d);break}let m=(o=i.connectInfo.channels.find(e=>e.channelId===u.channelId))==null?void 0:o.catalog;n.debug(`Resolved edge url`,{edgeUrl:f,edgeWsUrl:p}),be(m,`no catalog found`);let h=(s=l.get(Oh(m.namespace)))==null?void 0:s.getVideoTrack(u.video),g=(c=l.get(Oh(m.namespace)))==null?void 0:c.getAudioTrack(u.audio),_=yield bh({url:f,wsUrl:p,handshakePipelining:!0,authToken:i.options.get(`authenticationToken`),preferredTransport:i.options.get(`webtransportEnabled`)?`webtransport`:`websocket`,role:cf.Subscriber,websocketFallbackTimeoutMs:2e3}),v=_.closed().then(e=>{throw e instanceof Error?e:Error(e?`Session closed before player started: ${String(e)}`:`Session closed before player started`)}),y=yield Promise.race([tv.start(_.subscriber,{namespace:m.namespace,catalog:m,videoTrack:h==null?void 0:h.track,audioTrack:g==null?void 0:g.track,burstMs:u.burstMs||0}),nr(sv,Error(`Timeout waiting for player to start`)),v]),b=new Pv(y.catalog());l.set(Oh(m.namespace),b),t.emit(`received signal`,{type:`client ip`,ip:y.connectionInfo().ip}),y.drm().then(e=>{e&&t.emit(`received drm data`,e.value)}).catch(e=>{n.error(`Error getting DRM data`,e)});let x=new e(t,n,_,y,l,r,a);return u.textTrack&&j(yv,x).call(x,u.textTrack),x})()}getState(){return j(dv,this)}close(){j(uv,this).close()}closed(){return Promise.race([j(uv,this).closed(),j(fv,this).closed()])}};function Cv(){var e=this;return N(function*(){j(uv,e).transportType()===`websocket`&&(yield tr(5e3));var t=!1,n=!1,r;try{for(var i=Z(j(fv,e).stats()),a;t=!(a=yield i.next()).done;t=!1){let{rtt:t,estimatedBandwidth:n}=a.value;k(gv,e,n),j(hv,e).push(t),j(cv,e).emit(`rtt`,At(j(hv,e).items()))}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield i.return())}finally{if(n)throw r}}})()}function wv(e){var t=this;return N(function*(){var n;let r=yield j(mv,t).connect({channelId:e});if(!cr(r))throw Error(`no moq connect info found`);let i=(n=r.channels.find(t=>t.channelId===e))==null?void 0:n.catalog;if(!i)throw Error(`no catalog found`);return i})()}function Tv(e){var t=this;return N(function*(){var n,r;j(lv,t).info(`handle subscription`,e);let i=j(fv,t),a=j(pv,t).get(e.channelId);if(a||(a=new Pv(new Nn(yield D(vv,t,wv).call(t,e.channelId))),j(pv,t).set(e.channelId,a)),i.namespace().join(`/`)!==a.namespace().join(`/`)){var o;j(lv,t).info(`changing channel`,e.channelId);let n=a.getVideoTrack(e.video),r=a.getAudioTrack(e.audio);yield i.zap({namespace:a.namespace(),catalog:a.catalog(),videoTrack:n==null?void 0:n.track,audioTrack:r==null?void 0:r.track},500),i.drm().then(e=>{e&&j(cv,t).emit(`received drm data`,e.value)}).catch(e=>{j(lv,t).error(`Error getting DRM data`,e)}),j(lv,t).info(`switched channel`,e.channelId),(o=j(pv,t).get(Oh(i.namespace())))==null||o.updateCatalog(i.catalog()),j(cv,t).emit(`received signal`,{type:`subscription changed`,subscription:e});return}let s=a.getVideoTrack(e.video),c=a.getAudioTrack(e.audio);yield Promise.all([s&&s.track.name!==((n=j(fv,t).videoTrack())==null?void 0:n.name)?j(fv,t).setVideoTrack(s.track):void 0,c&&c.track.name!==((r=j(fv,t).audioTrack())==null?void 0:r.name)?j(fv,t).setAudioTrack(c.track):void 0]),j(cv,t).emit(`received signal`,{type:`subscription changed`,subscription:e})})()}function Ev(e){k(dv,this,e),j(cv,this).emit(`connection state`,e)}function Dv(){var e=this;return N(function*(){try{D(vv,e,Ev).call(e,`connecting`),j(lv,e).info(`Connecting...`),D(vv,e,Ev).call(e,`connected`),yield Promise.all([D(vv,e,kv).call(e,j(fv,e).referenceClock(),j(fv,e).audio),D(vv,e,kv).call(e,j(fv,e).referenceClock(),j(fv,e).video),D(vv,e,Ov).call(e,j(fv,e).subtitles)]),yield j(fv,e).closed(),j(uv,e).close(),j(lv,e).info(`Session closed`)}catch(t){j(lv,e).warn(`Session error`,t)}finally{D(vv,e,Ev).call(e,`disconnected`)}})()}function Ov(e){var t=this;return N(function*(){var n=!1,r=!1,i;try{for(var a=Z(e),o;n=!(o=yield a.next()).done;n=!1){let e=o.value;j(cv,t).emit(`text track data`,e)}}catch(e){r=!0,i=e}finally{try{n&&a.return!=null&&(yield a.return())}finally{if(r)throw i}}})()}function kv(e,t){var n=this;return N(function*(){let r=``,i=``,a,o=j(fv,n).videoTrack()===void 0;var s=!1,c=!1,l;try{for(var u=Z(t),d;s=!(d=yield u.next()).done;s=!1){let t=d.value;{var f;let s=Oh(t.track.namespace),c=t.track.trackObject.language,l=sr((f=t.track.trackObject.codec)==null?``:f),u=t.track.trackObject.codec,d=l?fr({codec:l,codecString:u}):void 0,v=!!t.track.trackObject[`com.vindral.drm`];var p=!1,m=!1,h;try{for(var g=Z(t),_;p=!(_=yield g.next()).done;p=!1){let[f,p]=_.value;{let m={channelId:r!==``&&(o||p.mediaType()===`video`)&&r!==s?s:void 0,language:p.mediaType()===`audio`&&i!==c?c:void 0,drmTransition:a!==void 0&&a!==v};r=s,i=c,a=v;let h=p.producerReferenceTime(),g=j(_v,n).get(t.track.namespace)||0;if(h&&Date.now()-g>1e3){j(_v,n).set(t.track.namespace,Date.now());let r=e.wallclock()-h.getTime();j(lv,n).debug(`timing-info`,{mediaType:p.mediaType(),referenceClock:e,delta:r,groupId:f,timestamp:p.baseMediaDecodeTime()/p.timescale()*1e3+r,wallclockTime:h.getTime()}),j(cv,n).emit(`received signal`,{type:`timing info`,timingInfo:{channelId:s,timestamp:p.baseMediaDecodeTime()/p.timescale()*1e3+r,wallclockTime:h.getTime()}})}j(cv,n).emit(`received moq data`,{payload:p,channelId:s,groupId:f,mimeType:d,codec:l,codecString:u,switchInfo:m,renditionId:Av(t.track.trackObject.name)})}}}catch(e){m=!0,h=e}finally{try{p&&g.return!=null&&(yield g.return())}finally{if(m)throw h}}}}}catch(e){c=!0,l=e}finally{try{s&&u.return!=null&&(yield u.return())}finally{if(c)throw l}}})()}function Av(e){return e.split(``).reduce((e,t)=>e=t.charCodeAt(0)+(e<<6)+(e<<16)-e,0)}var jv=new WeakMap,Mv=new WeakMap,Nv=new WeakSet,Pv=class{constructor(e){L(this,Nv),T(this,jv,void 0),T(this,Mv,void 0),k(jv,this,e),k(Mv,this,D(Nv,this,Fv).call(this))}catalog(){return j(jv,this).current()}namespace(){return j(jv,this).current().namespace}updateCatalog(e){k(jv,this,e)}getTextTrack(e){return j(jv,this).current().tracks.find(t=>t.label===e)}getAudioTrack(e){if(!e.codec)return;let t=j(Mv,this).filter(t=>!(!dr(t)||t.bitRate>e.bitRate||e.codec&&t.codec!==e.codec||e.language&&t.language!==e.language));return t[t.length-1]}getVideoTrack(e){if(!e.codec)return;let t=j(Mv,this).filter(t=>!(!ur(t)||t.bitRate>e.bitRate||e.codec&&t.codec!==e.codec));return t[t.length-1]}renditions(){return j(Mv,this)}};function Fv(){let[e,t]=j(jv,this).value();return lr(e)}var Iv=(e,t)=>{var n,r;let i=new URL(`/subscribe`,e);return i.searchParams.append(`channelId`,t.channelId),i.searchParams.append(`sessionId`,t.sessionId),i.searchParams.append(`clientId`,t.clientId),(n=t.audio)!=null&&n.codec&&(i.searchParams.append(`audio.bitRate`,Math.round(t.audio.bitRate).toString()),i.searchParams.append(`audio.codec`,t.audio.codec),t.audio.language&&i.searchParams.append(`audio.language`,t.audio.language)),(r=t.video)!=null&&r.codec&&(i.searchParams.append(`video.width`,t.video.width.toString()),i.searchParams.append(`video.height`,t.video.height.toString()),i.searchParams.append(`video.bitRate`,Math.round(t.video.bitRate).toString()),i.searchParams.append(`video.codec`,t.video.codec)),t.expectAdditionalConnection&&i.searchParams.append(`expectAdditionalConnection`,t.expectAdditionalConnection.toString()),t.burstMs&&i.searchParams.append(`burstMs`,t.burstMs.toString()),t.channelGroupId&&i.searchParams.append(`channelGroupId`,t.channelGroupId),t.authToken&&(i.searchParams.append(`auth.token`,t.authToken),i.searchParams.append(`auth.type`,`jwt`)),i.toString()};xi(),H(),h(),B(),P();var Lv=function(e){return e[e.AuthenticationFailed=4e3]=`AuthenticationFailed`,e[e.AuthenticationRefreshFailed=4001]=`AuthenticationRefreshFailed`,e[e.AuthenticationExpired=4002]=`AuthenticationExpired`,e[e.ChannelNotFound=4003]=`ChannelNotFound`,e[e.Inactivity=4010]=`Inactivity`,e}({}),Rv=class extends Bt{constructor(e,t){var n;super(),n=this,m(this,`options`,void 0),m(this,`websockets`,[]),m(this,`logger`,void 0),m(this,`reconnectState`,{reconnectRetries:0}),m(this,`isSuspended`,!1),m(this,`_connectionAttemptCount`,0),m(this,`connectStartTime`,0),m(this,`_connectTime`,void 0),m(this,`shouldContinueConnecting`,!1),m(this,`_isConnectInProgress`,!1),m(this,`readyState`,()=>{if(this.websockets.length===0)return WebSocket.CLOSED;let e=this.websockets.map(e=>e.readyState);for(let t of e)switch(t){case WebSocket.OPEN:continue;default:return t}return WebSocket.OPEN}),m(this,`url`,()=>{var e;return(e=this.websockets[0])==null?void 0:e.url}),m(this,`send`,e=>{if(this.websockets.length){var t;(t=this.websockets[0])==null||t.send(e)}}),m(this,`close`,e=>{var t;let n=!1;return(t=this.websockets)==null||t.forEach(t=>{t.onmessage=S,t.removeEventListener(`error`,this.onError),t.removeEventListener(`close`,this.onClose),t.removeEventListener(`open`,this.onOpen),t.close(1e3,e),n=!0}),this.websockets=[],this.shouldContinueConnecting=!1,this._isConnectInProgress=!1,this.logger.info(`Closed websocket`,{reason:e}),n}),m(this,`suspend`,()=>{this.isSuspended=!0}),m(this,`unsuspend`,()=>{this.isSuspended=!1,this.readyState()!==WebSocket.OPEN&&!this.isConnectInProgress&&this.connect()}),m(this,`onMessage`,(e,t)=>{this.websockets.length!==0&&this.options.onMessage(e,t.data)}),m(this,`onError`,()=>{this.logger.warn(`On error`,z({},this.options)),this.close(`one websocket had an error`),this.emit(`error`,new U(`WebSocket error`,{code:`websocket_error`,isFatal:!1}))}),m(this,`onClose`,e=>{switch(this.logger.info(`Closed`,z(z({},this.options),{},{reason:e.reason,code:e.code,isSuspended:this.isSuspended})),this.close(`one websocket was closed`),e.code){case Lv.AuthenticationFailed:this.emit(`error`,ui(li()));break;case Lv.AuthenticationRefreshFailed:this.emit(`error`,ui(li()));break;case Lv.AuthenticationExpired:this.emit(`error`,di(li()));break;case Lv.ChannelNotFound:this.emit(`error`,pi(`internal`,li()));break;case Lv.Inactivity:this.emit(`error`,fi(`internal`,li()));break;default:}this.emit(`close`,this)}),m(this,`onOpen`,()=>{this.logger.info(`Opened`,z({},this.options)),this.readyState()===WebSocket.OPEN&&(this._connectTime=Date.now()-this.connectStartTime,this.reconnectState.reconnectRetries=0,this._isConnectInProgress=!1,this.emit(`open`,this))}),m(this,`connect`,N(function*(e=!1){if(n.isConnectInProgress)return n.logger.info(`Connect already in progress`),!1;if(n.isSuspended)return!1;if(n.readyState()!==WebSocket.CLOSED&&n.close(`new connection in progress`),n.shouldContinueConnecting=!0,n._isConnectInProgress=!0,e&&n.options.reconnectDelay>0){n.logger.info(`Waiting for reconnect delay`,z({},n.options)),yield tr(n.options.reconnectDelay);let e=yield n.options.reconnectHandler(n.reconnectState);if(n.reconnectState.reconnectRetries++,!e)return n._isConnectInProgress=!1,n.emit(`error`,gi()),!1}n._connectionAttemptCount++;try{if(!n.shouldContinueConnecting)return n._isConnectInProgress=!1,n.logger.info(`Connection aborted`),!1;let{url:e,connectionCount:t}=yield n.options.connectHandler();if(n.connectStartTime=Date.now(),!n.shouldContinueConnecting)return n._isConnectInProgress=!1,n.logger.info(`Connection aborted`),!1;n.logger.info(`Connecting websockets`,z(z({},n.options),{},{url:e}));for(let r=0;r<t;r++){let t=new WebSocket(e);t.binaryType=`arraybuffer`,t.onmessage=e=>n.onMessage(r,e),t.addEventListener(`error`,n.onError),t.addEventListener(`close`,n.onClose),t.addEventListener(`open`,n.onOpen),n.websockets.push(t)}return!0}catch(e){return n._isConnectInProgress=!1,e instanceof U&&(n.logger.error(`Failed to connect`,e.toStringifiable()),e.isFatal())?!1:n.shouldContinueConnecting?(n.logger.info(`Connection aborted`,{error:e}),n.emit(`error`,new U(`Failed to connect`,{code:`failed_to_connect`,isFatal:!1,source:e,type:`internal`})),!1):!1}})),this.options=e,this.logger=t}get isConnectInProgress(){return this._isConnectInProgress}get connectionCount(){return this.websockets.length}get connectionAttemptCount(){return this._connectionAttemptCount}get connectTime(){return this._connectTime}};H(),h(),P();var zv,Bv=65536*8,Vv=.9,Hv=40,Uv=e=>{let t=e||Hv;return Bv*Vv*1e3/t},Wv=class e{constructor(t,n,r,i){var a=this;m(this,`emitter`,void 0),m(this,`transport`,void 0),m(this,`logger`,void 0),m(this,`config`,void 0),m(this,`rtts`,void 0),m(this,`lastPingSentTime`,Date.now()),m(this,`isPingInFlight`,!1),m(this,`connectCount`,0),m(this,`missedPings`,0),m(this,`contextSwitchesInProgress`,new Set),m(this,`contextSwitchesCompleted`,new Set),m(this,`buffer`,[]),m(this,`disconnected`,new C),m(this,`unload`,()=>{this.logger.debug(`Unloading module...`),this.close(`Unloading`),this.emitter.off(`send signal`,this.sendSignal),this.emitter.off(`disconnect`,this.close),this.emitter.off(`reconnect`,this.reconnect),this.logger.debug(`Unloaded module`)}),m(this,`suspend`,()=>{this.resetPingState(),this.transport.suspend()}),m(this,`unsuspend`,()=>{this.transport.unsuspend()}),m(this,`getState`,()=>{switch(this.transport.readyState()){case WebSocket.OPEN:return`connected`;case WebSocket.CONNECTING:return`connecting`;default:return`disconnected`}}),m(this,`sendSignal`,e=>{if(this.logger.debug(`sending signal`,{signal:e}),this.transport.readyState()!==WebSocket.OPEN){this.logger.debug(`transport is closed`);return}this.transport.send(JSON.stringify(e))}),m(this,`getStatistics`,()=>{var e;return{edgeUrl:(e=this.transport)==null?void 0:e.url(),connectionProtocol:`vindral_ws`}}),m(this,`onMessage`,(e,t)=>{var n;if(this.pingCooldownExpired()&&this.sendPing(),this.contextSwitchesCompleted.size===((n=this.transport)==null?void 0:n.connectionCount)){this.logger.info(`Completing context switch`),this.contextSwitchesInProgress.clear(),this.contextSwitchesCompleted.clear();let e=this.buffer.filter(([e,t])=>!(t instanceof ArrayBuffer)),t=this.buffer.filter(([e,t])=>t instanceof ArrayBuffer);e.map(e=>this.handleMessage(e[0],e[1])),t.map(e=>this.handleMessage(e[0],e[1])),this.buffer=[]}if(this.contextSwitchesInProgress.has(e)){if(!(t instanceof ArrayBuffer)){let n=JSON.parse(t);if(hr(n)&&n.type===`context switch complete`){this.logger.info(`context switch completed`,{socketId:e}),this.emitter.emit(`context switch complete`),this.contextSwitchesCompleted.add(e);return}}this.buffer.push([e,t]);return}this.handleMessage(e,t)}),m(this,`resolveEdgeUrl`,N(function*(){let e=a.config.connectInfo,t=yield a.config.onConnectInfo(e),n=a.config.options.getOverride(`separateVideoSocketEnabled`,t.channelId),r=a.config.options.get(`media`)===`audio+video`,i=1;r&&(i=n===!1?1:2);let o=Iv(a.config.edgeUrl,{video:t.video,audio:t.audio,burstMs:t.burstMs,sessionId:t.sessionId,clientId:t.clientId,channelId:t.channelId,channelGroupId:t.channelGroupId,expectAdditionalConnection:i>1,authToken:a.config.options.get(`authenticationToken`)});return a.logger.debug(`Resolved edge url`,{edgeUrl:o}),{url:o,connectionCount:i}})),m(this,`handleMessage`,(e,t)=>{if(t instanceof ArrayBuffer)this.emitter.emit(`received data`,t);else{let n=JSON.parse(t);if(!hr(n))return;switch(n.type){case`pong`:this.lastPingSentTime&&(this.rtts.push(Date.now()-this.lastPingSentTime),this.isPingInFlight=!1,this.emitter.emit(`rtt`,At(this.rtts.items())));break;case`context switch`:this.logger.info(`Starting context switch`,{socketId:e}),this.emitter.emit(`context switch started`),this.contextSwitchesInProgress.add(e);break;default:this.emitter.emit(`received signal`,n);break}}}),m(this,`connectWebSocketTransport`,()=>{let e=new Rv({reconnectDelay:1e3,onMessage:this.onMessage,reconnectHandler:this.config.reconnectHandler,connectHandler:this.resolveEdgeUrl},this.logger.createContext(`Transport`));return e.on(`open`,this.onTransportChange),e.on(`close`,this.onTransportChange),e.on(`error`,e=>this.disconnected.reject(e)),e.connect(),e}),m(this,`close`,(e=`Disconnect Requested`)=>{var t;this.contextSwitchesCompleted.clear(),this.contextSwitchesInProgress.clear(),this.buffer=[],this.resetPingState(),this.disconnected.resolve(),(t=this.transport)==null||t.close(e)}),m(this,`onTransportChange`,()=>{switch(this.getState()){case`connected`:var t;(t=this.transport)!=null&&t.connectTime&&(this.rtts.push(this.transport.connectTime/e.TLS_ROUNDTRIPS/(this.transport.connectionCount||1)),this.emitter.emit(`rtt`,At(this.rtts.items()))),this.connectCount++,this.resetPingState();break;default:this.contextSwitchesCompleted.clear(),this.contextSwitchesInProgress.clear(),this.buffer=[],this.resetPingState(),this.disconnected.resolve();break}this.emitter.emit(`connection state`,this.getState())}),m(this,`reconnect`,e=>{if(this.transport.isConnectInProgress){this.logger.debug(`Stopping reconnect, already mid-connection`);return}this.close(e)}),m(this,`resetPingState`,()=>{this.missedPings=0,this.isPingInFlight=!1}),m(this,`pingCooldownExpired`,()=>Date.now()-this.lastPingSentTime>e.PING_INTERVAL),m(this,`sendPing`,()=>{if(this.isPingInFlight){this.missedPings++,this.missedPings>e.MAX_MISSED_PINGS&&this.reconnect(`missed pings`);return}this.isPingInFlight=!0,this.lastPingSentTime=Date.now(),this.missedPings=0,this.sendSignal({type:`ping`})}),this.logger=n,this.emitter=t,this.config=r,this.rtts=i,this.emitter.on(`send signal`,this.sendSignal),this.emitter.on(`disconnect`,this.close),this.emitter.on(`reconnect`,this.reconnect),this.disconnected.promise.catch(S),this.transport=this.connectWebSocketTransport()}closed(){return this.disconnected.promise}};zv=Wv,m(Wv,`PING_INTERVAL`,5e3),m(Wv,`MAX_MISSED_PINGS`,4),m(Wv,`TLS_ROUNDTRIPS`,3),m(Wv,`start`,(e,t,n,r)=>new Promise((i,a)=>{let o=new zv(e,t,n,r);o.transport.once(`error`,e=>a(e)),o.transport.once(`open`,()=>i(o))})),E(),A(),M();var Gv=new WeakMap,Kv=new WeakMap,qv=new WeakMap,Jv=class{constructor(e){T(this,Gv,void 0),T(this,Kv,[]),T(this,qv,void 0),k(Gv,this,e)}select(e){if(j(Gv,this).edgeUrl)return j(Gv,this).edgeUrl;j(Kv,this).length===0&&k(Kv,this,j(Kv,this).concat(e));let t=j(Kv,this).shift();if(k(qv,this,t),t)return t}shiftedEdge(){return j(qv,this)}reset(){k(qv,this,void 0),k(Kv,this,[])}};xi(),H(),R(),h(),E(),A(),M(),B(),O(),P();var Yv,Xv=new WeakMap,Zv=new WeakMap,Qv=new WeakMap,$v=new WeakMap,ey=new WeakMap,ty=new WeakMap,ny=new WeakMap,ry=new WeakMap,iy=new WeakMap,ay=new WeakMap,oy=new WeakSet,sy=class e{constructor(t,n,r){var i=this;L(this,oy),m(this,`emitter`,void 0),m(this,`logger`,void 0),m(this,`config`,void 0),m(this,`apiClient`,void 0),m(this,`connectionImpl`,void 0),T(this,Xv,new w(10)),T(this,Zv,!0),T(this,Qv,void 0),T(this,$v,0),T(this,ey,0),T(this,ty,0),T(this,ny,void 0),T(this,ry,void 0),m(this,`unload`,()=>{var e;this.logger.debug(`Unloading module...`),this.disconnect(`Unloading`),(e=this.connectionImpl)==null||e.unload(),this.logger.debug(`Unloaded module`)}),m(this,`suspend`,()=>{var e;k(Zv,this,!1),(e=this.connectionImpl)==null||e.suspend()}),m(this,`unsuspend`,()=>{var e;k(Zv,this,!0),(e=this.connectionImpl)==null||e.unsuspend(),this.connect()}),m(this,`getState`,()=>this.connectionImpl?this.connectionImpl.getState():`disconnected`),m(this,`getStatistics`,()=>{let e=j(ey,this)>0?j(ty,this)/j(ey,this):0;return this.connectionImpl?z(z({},this.connectionImpl.getStatistics()),{},{rtt:Mt(j(Xv,this).items()),estimatedBandwidth:this.estimatedBandwidth,connectCount:j(ty,this),connectionAttemptCount:j(ey,this),connectionSuccessRatio:e}):{rtt:{min:0,max:0,average:0,last:0},estimatedBandwidth:0,connectCount:j(ty,this),connectionAttemptCount:j(ey,this),connectionSuccessRatio:e,connectionProtocol:void 0}}),m(this,`connect`,()=>{k(Zv,this,!0),!j(Qv,this)&&k(Qv,this,D(oy,this,cy).call(this))}),m(this,`disconnect`,(e=`Disconnect Requested`)=>{var t;k(Zv,this,!1),(t=this.connectionImpl)==null||t.close(e)}),m(this,`reconnect`,e=>{this.disconnect(e),this.connect()}),T(this,iy,N(function*(){try{return yield i.apiClient.connect(i.config.options.getOptions())}catch(e){if(yl(e))switch(e.status){case 401:throw i.emitter.emit(`error`,ui(e)),ui(e);case 403:throw i.emitter.emit(`error`,vi(e.message)),vi(e.message);default:break}throw i.emitter.emit(`error`,hi(e instanceof Error?e:void 0)),e}})),T(this,ay,N(function*(){let t=Date.now(),n=()=>Date.now()-t,r=globalThis.AbortController?new AbortController:void 0,a=fetch(new URL(`/api/v4/connect/ping`,i.config.options.get(`url`)).toString(),{method:`HEAD`,signal:r==null?void 0:r.signal}).then(()=>n(),()=>void 0);return Promise.race([tr(e.PING_TIMEOUT).then(()=>(r==null||r.abort(),n())),a])})),this.logger=n,this.emitter=t,this.config=r,this.apiClient=new Dl({publicEndpoint:this.config.options.get(`url`).toString(),tokenFactory:()=>this.config.options.get(`authenticationToken`)})}get rtt(){return j(Xv,this).items().length>0?At(j(Xv,this).items()):0}get estimatedBandwidth(){return this.connectionImpl&&`estimatedBandwidth`in this.connectionImpl&&this.connectionImpl.estimatedBandwidth?this.connectionImpl.estimatedBandwidth:Uv(this.rtt)}get firstConnectionTime(){return j(ny,this)}get lastConnectionTime(){return j(ry,this)}};Yv=sy;function cy(){var e=this;return N(function*(){let t=new Jv({edgeUrl:e.config.options.get(`edgeUrl`)});for(k($v,e,0);;){var n,r,i;k($v,e,(n=j($v,e),n++,n)),k(ey,e,(r=j(ey,e),r++,r));let o=!1;try{var a;let[n,r]=yield Promise.all([j(iy,e).call(e),j(ay,e).call(e)]);if(j(Xv,e).clear(),r!==void 0&&j(Xv,e).push(r/2),!j(Zv,e))break;let i=t.select(n.edges);if(!i)throw new U(`Failed to resolve edge url`,{isFatal:!0,code:`failed_to_resolve_edge_url`});cr(n)?e.connectionImpl=yield Sv.start(e.emitter,e.logger,e.apiClient,z(z({},e.config),{},{connectInfo:n,edgeUrl:i}),j(Xv,e)):(be(typeof i==`string`,`Edge URL is expected to be a string`),e.connectionImpl=yield Wv.start(e.emitter,e.logger,z(z({},e.config),{},{connectInfo:n,edgeUrl:i}),j(Xv,e))),t.reset(),k(ty,e,(a=j(ty,e),a++,a)),k($v,e,0),k(ry,e,Date.now()),j(ny,e)||k(ny,e,j(ry,e)),yield e.connectionImpl.closed(),e.logger.info(`Connection closed`)}catch(n){e.logger.warn(`Failed to connect`,n);let r=t.shiftedEdge();r&&e.emitter.emit(`telemetry event`,{code:`shifted_edge`,edgeUrl:typeof r==`string`?r:r.moqUrl||r.moqWsUrl}),n instanceof U?(e.emitter.emit(`error`,n),o=n.isFatal()):n instanceof Error&&e.emitter.emit(`error`,new U(n.message,{code:`start_failed`,isFatal:!1}))}if((i=e.connectionImpl)==null||i.unload(),e.connectionImpl=void 0,o){k(Zv,e,!1);break}if(!j(Zv,e))break;if(!(yield e.config.reconnectHandler({reconnectRetries:j($v,e)}))){e.emitter.emit(`error`,gi());break}if(yield tr(1e3),!j(Zv,e))break}k(Qv,e,void 0)})()}m(sy,`PING_TIMEOUT`,1e3),m(sy,`create`,(e,t,n)=>new Yv(e,t,n)),H(),B(),h();var ly,uy=()=>({video:z(z({},mr()),{},{bitRate:pr()}),audio:{bitRate:pr()}}),dy=()=>({width:window.innerWidth,height:window.innerHeight,bitRate:pr()}),fy=class e{constructor(t,n,r,i){m(this,`emitter`,void 0),m(this,`timers`,new zn),m(this,`pictureInPictureSource`,void 0),m(this,`element`,void 0),m(this,`currentCap`,void 0),m(this,`userSpecifiedCap`,void 0),m(this,`renditionLevelSource`,void 0),m(this,`resizeObserver`,void 0),m(this,`elementSize`,void 0),m(this,`_sizeBasedResolutionCapEnabled`,void 0),m(this,`unload`,()=>{var e;this.emitter.off(`enter picture in picture`,this.enterPictureInPicture),this.emitter.off(`exit picture in picture`,this.exitPictureInPicture),(e=this.resizeObserver)==null||e.disconnect(),this.suspend()}),m(this,`load`,()=>{window.ResizeObserver&&(this.resizeObserver=new ResizeObserver(this.onResize),this.resizeObserver.observe(this.element)),this.evaluateConstraintCap()}),m(this,`setElement`,e=>{var t;if(e===this.element)return;(t=this.resizeObserver)==null||t.disconnect(),this.element=e;let n=this.element.getBoundingClientRect();this.elementSize={width:n.width,height:n.height},this.resizeObserver&&this.resizeObserver.observe(this.element),this.evaluateConstraintCap()}),m(this,`unsuspend`,()=>{this.timers.setInterval(this.evaluateConstraintCap,e.CHECK_SIZE_INTERVAL),this.evaluateConstraintCap()}),m(this,`suspend`,()=>{this.timers.unload()}),m(this,`setUserSpecifiedCap`,e=>{var t;let n=(t=this.getUserSpecifiedCap())==null?uy():t;this.userSpecifiedCap=z(z({},n),{},{video:z(z({},n.video),e.video),audio:z(z({},n.audio),e.audio)}),this.evaluateConstraintCap()}),m(this,`getUserSpecifiedCap`,()=>this.userSpecifiedCap),m(this,`getCurrentConstraintCap`,()=>this.currentCap),m(this,`getStatistics`,()=>({constraintCap:this.getUserSpecifiedCap(),windowInnerWidth:window.innerWidth,windowInnerHeight:window.innerHeight,elementWidth:this.elementSize.width,elementHeight:this.elementSize.height,pixelRatio:window.devicePixelRatio})),m(this,`constrainSubscription`,e=>{let t=this.getCurrentConstraintCap();return t&&(e.video.codec&&(e.video.bitRate=Math.min(t.video.bitRate,e.video.bitRate),e.video.width=Math.min(t.video.width,e.video.width),e.video.height=Math.min(t.video.height,e.video.height)),e.audio.codec&&(e.audio.bitRate=Math.min(t.audio.bitRate,e.audio.bitRate))),e}),m(this,`onResize`,e=>{e.forEach(e=>{this.elementSize={width:e.contentRect.width,height:e.contentRect.height}})}),m(this,`evaluateConstraintCap`,()=>{var e,t,n,r;let i=this.sizeBasedResolutionCapEnabled?z(z({},uy()),{},{video:dy()}):uy();if(!this.resizeObserver){let e=this.element.getBoundingClientRect();this.elementSize={width:e.width,height:e.height}}if(this.sizeBasedResolutionCapEnabled){var a;let e=window.devicePixelRatio,t=(a=this.pictureInPictureSource)==null?void 0:a.getPictureInPictureSize();this.elementSize.width>0&&this.elementSize.height>0&&(i.video.width=this.elementSize.width,i.video.height=this.elementSize.height),t&&(i.video.width=t.width,i.video.height=t.height),i.video.width*=e,i.video.height*=e}let o=this.renditionLevelSource.getRenditionLevels().find(e=>{if(e.video)return e.video.width/e.video.height>i.video.width/i.video.height?e.video.width>i.video.width:e.video.height>i.video.height});o!=null&&o.video&&(i.video.width=o.video.width,i.video.height=o.video.height);let s=(e=this.userSpecifiedCap)==null?void 0:e.video,c=(t=this.userSpecifiedCap)==null?void 0:t.audio;s&&(i.video.width>s.width&&(i.video.width=s.width),i.video.height>s.height&&(i.video.height=s.height)),i.video.bitRate=(n=s==null?void 0:s.bitRate)==null?i.video.bitRate:n,i.audio.bitRate=(r=c==null?void 0:c.bitRate)==null?i.audio.bitRate:r,Rt(i,this.currentCap)?this.currentCap=z({},i):(this.currentCap=z({},i),this.emitter.emit(`constraint cap changed`,i))}),m(this,`enterPictureInPicture`,e=>{this.pictureInPictureSource=e,this.evaluateConstraintCap()}),m(this,`exitPictureInPicture`,()=>{this.pictureInPictureSource=void 0,this.evaluateConstraintCap()}),this.element=n;let a=this.element.getBoundingClientRect();this.elementSize={width:a.width,height:a.height},this.emitter=t,this.renditionLevelSource=r,this._sizeBasedResolutionCapEnabled=i,this.emitter.on(`enter picture in picture`,this.enterPictureInPicture),this.emitter.on(`exit picture in picture`,this.exitPictureInPicture)}get sizeBasedResolutionCapEnabled(){return this._sizeBasedResolutionCapEnabled}set sizeBasedResolutionCapEnabled(e){this._sizeBasedResolutionCapEnabled=e,this.evaluateConstraintCap()}};ly=fy,m(fy,`CHECK_SIZE_INTERVAL`,1e3),m(fy,`create`,(e,t,n,r)=>new ly(e,t,n,r));var py,my=n((()=>{py=e=>{switch(e){case`opus`:return`opus`;case`aac`:return`mp4a.40.2`;case`mp3`:return`mp3`;default:{let t=e;throw Error(`Unsupported audio codec: ${t}`)}}}})),hy,gy=n((()=>{H(),h(),hy=class{constructor(){m(this,`map`,new Map)}enqueue(e,t){let n=this.map.get(e);if(n)n.push(t);else{let n=new w(1/0);n.push(t),this.map.set(e,n)}}dequeue(e){let t=this.map.get(e);if(!t)return;let n=t.pop();return t.isEmpty()&&this.map.delete(e),n}dequeueWithFallback(e){let t=this.dequeue(e);if(t!==void 0)return t;for(let[e,t]of this.map){let n=t.pop();if(t.isEmpty()&&this.map.delete(e),n!==void 0)return n}}removeLast(e){let t=this.map.get(e);t&&(t.popLast(),t.isEmpty()&&this.map.delete(e))}clear(){this.map.clear()}}})),_y=r({WebCodecsAudioDecoderContext:()=>by}),vy,yy,by,xy=n((()=>{Na(),Pc(),H(),my(),gy(),h(),B(),P(),yy=globalThis,by=class{constructor(e){var t=this;m(this,`decodedSamples`,[]),m(this,`decoder`,null),m(this,`logger`,void 0),m(this,`initSegments`,new Map),m(this,`previousSample`,void 0),m(this,`previousCodec`,void 0),m(this,`pendingSamples`,new hy),m(this,`errors`,new w(10)),m(this,`resetDecoderState`,()=>{this.pendingSamples.clear(),this.previousSample=void 0,this.previousCodec=void 0}),m(this,`ensureDecoder`,()=>((!this.decoder||this.decoder.state===`closed`)&&(this.decoder=this.createDecoder()),this.decoder)),m(this,`createDecoder`,()=>new AudioDecoder({output:e=>{let t=this.pendingSamples.dequeueWithFallback(e.timestamp);if(!t){e.close();return}let{sample:n,decodeStartTime:r}=t;try{let t=e.numberOfFrames,i=e.numberOfChannels,a=e.sampleRate,o=e.timestamp,s=e.duration,c=new Float32Array(t*i);e.copyTo(c,{planeIndex:0,format:`f32`});let l=Math.round(o*n.timescale/1e6),u=typeof s==`number`&&Number.isFinite(s)?Math.max(0,Math.round(s*n.timescale/1e6)):n.duration,d=z(z({},n),{},{timestamp:l,duration:u,type:`audio`,format:`f32`,data:c,sampleRate:a,channels:i,statistics:{decodeTime:Math.max(performance.now()-r,0),transportTimeFromWorker:0,transportTimeToWorker:0,samplesInBatch:1}});this.decodedSamples.push(d)}finally{e.close()}},error:e=>{this.logger.error(`Decoder error:`,e.name,e.message),this.resetDecoderState(),this.errors.push(e)}})),m(this,`buildCodecString`,py),m(this,`getDescription`,(e,t)=>{let n=this.initSegments.get(t.renditionId);if(n&&n.data.byteLength>0&&n.codec===e)return n.data;if(e===`opus`)return Mc(t.channels,t.sampleRate);if(e===`aac`)return Ma(t.channels,t.sampleRate)}),m(this,`unload`,()=>{this.decodedSamples=[],this.resetDecoderState(),this.decoder&&this.decoder.state!==`closed`&&this.decoder.close(),this.decoder=null}),m(this,`initSegment`,e=>{this.initSegments.set(e.renditionId,e)}),m(this,`enqueue`,e=>{var t,n;let r=this.ensureDecoder(),i=e.codec,a=((t=this.previousSample)==null?void 0:t.channelId)!==e.channelId,o=((n=this.previousSample)==null?void 0:n.renditionId)!==e.renditionId,s=this.previousCodec!==i;if(!this.previousSample||a||o||s){this.previousSample&&r.state===`configured`&&r.flush().catch(e=>{this.logger.warn(`Failed to flush before reconfiguration:`,e)});let t=this.buildCodecString(i),n=this.getDescription(i,e),a={codec:t,sampleRate:e.sampleRate,numberOfChannels:e.channels,description:n};try{r.configure(a),this.previousCodec=i}catch(t){this.logger.error(`Failed to configure decoder for ${i} (rendition ${e.renditionId}), dropping sample`,t),this.errors.push(t instanceof Error?t:Error(`Failed to configure decoder for ${i}`)),this.resetDecoderState(),this.ensureDecoder();return}}if(e.timescale<=0){this.logger.error(`Invalid timescale ${e.timescale} in sample, dropping sample`);return}this.previousSample=e;let c=Math.floor(1e6*e.timestamp/e.timescale),l=Math.floor(1e6*e.duration/e.timescale);try{let t=new EncodedAudioChunk({type:`key`,timestamp:c,duration:l>0?l:void 0,data:e.data});this.pendingSamples.enqueue(c,{sample:e,decodeStartTime:performance.now()}),r.decode(t)}catch(e){this.logger.error(`Failed to decode chunk:`,e),this.pendingSamples.removeLast(c),r.state===`closed`&&(this.resetDecoderState(),this.ensureDecoder())}}),m(this,`flush`,N(function*(){if(t.decoder&&t.decoder.state===`configured`)try{yield t.decoder.flush()}catch(e){t.logger.error(`Failed to flush decoder:`,e),t.resetDecoderState()}})),m(this,`error`,()=>this.errors.pop()),m(this,`take`,()=>this.decodedSamples.shift()),this.logger=e,this.decoder=this.createDecoder()}},vy=by,m(by,`isSupported`,()=>yy.AudioDecoder!==void 0),m(by,`create`,function(){var e=N(function*(e){if(!vy.isSupported())throw Error(`WebCodecs AudioDecoder is not supported in this environment`);return new vy(e)});return function(t){return e.apply(this,arguments)}}())})),Sy,Cy=n((()=>{Sy=(function(){var e=typeof document<`u`&&document.currentScript?document.currentScript.src:void 0;return(function(t){t=t||{};var n;n||(n=t===void 0?{}:t);var r,i;n.ready=new Promise(function(e,t){r=e,i=t});var a={},o;for(o in n)n.hasOwnProperty(o)&&(a[o]=n[o]);var s=``;typeof document<`u`&&document.currentScript&&(s=document.currentScript.src),e&&(s=e),s=s.indexOf(`blob:`)===0?``:s.substr(0,s.lastIndexOf(`/`)+1);var c=n.print||console.log.bind(console),l=n.printErr||console.warn.bind(console);for(o in a)a.hasOwnProperty(o)&&(n[o]=a[o]);a=null;var u;n.wasmBinary&&(u=n.wasmBinary),n.noExitRuntime,typeof WebAssembly!=`object`&&ne(`no native wasm support detected`);var d,f=!1,p=typeof TextDecoder<`u`?new TextDecoder(`utf8`):void 0,m,h,g,_=[],v=[],y=[];function b(){var e=n.preRun.shift();_.unshift(e)}var x=0,ee=null,te=null;n.preloadedImages={},n.preloadedAudios={};function ne(e){throw n.onAbort&&n.onAbort(e),l(e),f=!0,e=new WebAssembly.RuntimeError(`abort(`+e+`). Build with -s ASSERTIONS=1 for more info.`),i(e),e}function re(e){return e.startsWith(`data:application/octet-stream;base64,`)}var ie=`data:application/octet-stream;base64,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cSELA0AgUCAJQQJ0IgJqIgEgWCABKgIAkiJVIAIgEWoqAgAiVCBUIFVeGzgCACBQIAJBBHIiAmoiASBYIAEqAgCSIlUgAiARaioCACJUIFQgVV4bOAIAIAlBAmohCSALQQJrIgsNAAsLIARFDQAgUCAJQQJ0IgJqIgEgWCABKgIAkiJVIAIgEWoqAgAiVCBUIFVeGzgCAAsCQCAAQQFIDQAgAEEDcSEEQQAhCSAAQQFrQQNPBEAgAEF8cSEHA0AgESAJQQJ0IgJqQQA2AgAgAiArakGAgICPfDYCACACICVqQYCAgI98NgIAIBEgAkEEciIBakEANgIAIAEgK2pBgICAj3w2AgAgASAlakGAgICPfDYCACARIAJBCHIiAWpBADYCACABICtqQYCAgI98NgIAIAEgJWpBgICAj3w2AgAgESACQQxyIgFqQQA2AgAgASArakGAgICPfDYCACABICVqQYCAgI98NgIAIAlBBGohCSAHQQRrIgcNAAsLIARFDQADQCARIAlBAnQiAWpBADYCACABICtqQYCAgI98NgIAIAEgJWpBgICAj3w2AgAgCUEBaiEJIARBAWsiBA0ACwsCQCAXIB1OIgENACAdIBciCWtBA3EiCwRAA0AgESAJQQJ0IgJqQQA2AgAgAiArakGAgICPfDYCACACICVqQYCAgI98NgIAIAlBAWohCSALQQFrIgsNAAsLIB0gF0F/c2pBA0kNAANAIBEgCUECdCIEakEANgIAIAQgK2pBgICAj3w2AgAgBCAlakGAgICPfDYCACARIARBBGoiAmpBADYCACACICtqQYCAgI98NgIAIAIgJWpBgICAj3w2AgAgESAEQQhqIgJqQQA2AgAgAiArakGAgICPfDYCACACICVqQYCAgI98NgIAIBEgBEEMaiICakEANgIAIAIgK2pBgICAj3w2AgAgAiAlakGAgICPfDYCACAJQQRqIgkgHUcNAAsLAkAgAEEBSA0AQQAhCSAAQQFHBEAgAEF+cSELA0AgESAJIB1qQQJ0IgJqQQA2AgAgAiArakGAgICPfDYCACACICVqQYCAgI98NgIAIBEgCUEBciAdakECdCICakEANgIAIAIgK2pBgICAj3w2AgAgAiAlakGAgICPfDYCACAJQQJqIQkgC0ECayILDQALCyAAQQFxRQ0AIBEgCSAdakECdCIA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7xAdLz1MWmp3hZOhsMHR4PAPFSMyPUlWYW53gY2vxtrtSQ5tC20LbQttC20LbQttC20LbQttC20LkwuTC20LHguQDA0MnAvwC/ALwgvCC8ILkwuTC8ILnAtICx4LHgumClAPrg+lC4cMhwx2C/ALHgsyDKwMbQseCzwK+QncCm0LvA19DMILHwzLC0gLbQttC20LbQtIC0gLSAtIC0gLwQq+E74Tdgv1DTkN8AsNDOkKWAxYDJwLHgvRCewJwQpIC0wRNRCMCsEKnAvCC20LHgulC8sLbQttC20LbQtIC6YKJA7LC5wL8AvwCzkL9grwC5AM5wulC9sM2wylC+4MrwtrFJYT7AkKDcYNOQ19DBYMMA2lC4wKVwp/CukKHgtxCtkTNhQHEkwRnAlRC+cLhwxhDH8KtApICx4L6QoeC4wKMgxIC5MLbQttC20LbQuTC5MLkwuTC20LbQuTC5MLkwtqEIcMpQsfDMILSAtIC20LnAs5C2QLywucC8ILfQw5C7AOsA6sDB8MpQtIC20LSAucC3YL6QrpCh4LSAtIC2QKDg+uD4cMMgysDHYL5wuTC5MLDQweC+kK6QrpCukKFAoFD/APHQ28DRYMtArCC3YLMgwNDB4LHgtXClcKHgv2ChsUHhOZDAUPcQ1hDFELVQ17DYwKFApxCrQKHgv2CsEKDRDNDtsMWAxtC0gLSAttC+kKtArpCrQK6QoeC0gL9grZE74T5wvZDawM8AsNDIALHwxRC7QKtAq0Ch4L6Qo8CtUQ1RAsC98JhwwwDTANAwwDDDAN8AseC1cKFAqmCsEK8AtkC/YKSAu0Cn8KUQsfDE4MTgyQDGEM8AvCC5MLHgsXESoPbQtICx4LSAseCx4LSAtIC0gLHgtIC20LSAseC6ULZAtkC6ULpQvwCzIMkAxODPALwgucC5wLnAttC7QKhRA1EO4MEw1tC5MLSAulC6ULHgvpCrQKHgseCx4L6QrwD64PHwzCC20LbQttC0gLbQttCx4LHgseC+kKSAvcCgcS3xFhDHENhwylC1EL3gsyDLQKfwp/Cn8KtArpCowKNRCtEM0OSQ6mCtwKSAtIC8ILnAttCx4Lfwp/CukKSAt3EOINwQoeCx4LSAtIC0gLbQttC0gLbQttC20LkwtICzYUORPVCGgNzQ6XDRMNHgvuDJcNTgxRC5wJtwnBCm0Lew1l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OiBxbiA8PSAyNTYAYXNzZXJ0aW9uIGZhaWxlZDogeCAhPSB5AGNlbHQvY2VsdF9scGMuYwBhc3NlcnRpb24gZmFpbGVkOiAob3JkJjMpPT0wAGFzc2VydGlvbiBmYWlsZWQ6IG4+MABhc3NlcnRpb24gZmFpbGVkOiBvdmVybGFwPj0wAGFzc2VydGlvbiBmYWlsZWQ6IGxlbj49MwAuL2NlbHQvcGl0Y2guaABhc3NlcnRpb24gZmFpbGVkOiBtYXhfcGl0Y2g+MABjZWx0L3BpdGNoLmMAYXNzZXJ0aW9uIGZhaWxlZDogbGVuPjAAYXNzZXJ0aW9uIGZhaWxlZDogbGVuPj0zAC4vY2VsdC9waXRjaC5oAGNlbHQva2lzc19mZnQuYwBhc3NlcnRpb24gZmFpbGVkOiBtPT00AGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5tb2RlID09IG9wdXNfY3VzdG9tX21vZGVfY3JlYXRlKDQ4MDAwLCA5NjAsIE5VTEwpAGNlbHQvY2VsdF9kZWNvZGVyLmMAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPm92ZXJsYXAgPT0gMTIwAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5lbmQgPD0gMjEAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPmNoYW5uZWxzID09IDEgfHwgc3QtPmNoYW5uZWxzID09IDIAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnN0cmVhbV9jaGFubmVscyA9PSAxIHx8IHN0LT5zdHJlYW1fY2hhbm5lbHMgPT0gMgBhc3NlcnRpb24gZmFpbGVkOiBzdC0+ZG93bnNhbXBsZSA+IDAAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnN0YXJ0ID09IDAgfHwgc3QtPnN0YXJ0ID09IDE3AGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5zdGFydCA8IHN0LT5lbmQAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPmFyY2ggPj0gMABhc3NlcnRpb24gZmFpbGVkOiBzdC0+YXJjaCA8PSBPUFVTX0FSQ0hNQVNLAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5sYXN0X3BpdGNoX2luZGV4IDw9IFBMQ19QSVRDSF9MQUdfTUFYAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5sYXN0X3BpdGNoX2luZGV4ID49IFBMQ19QSVRDSF9MQUdfTUlOIHx8IHN0LT5sYXN0X3BpdGNoX2luZGV4ID09IDAAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnBvc3RmaWx0ZXJfcGVyaW9kIDwgTUFYX1BFUklPRABhc3NlcnRpb24gZmFpbGVkOiBzdC0+cG9zdGZpbHRlcl9wZXJpb2QgPj0gQ09NQkZJTFRFUl9NSU5QRVJJT0QgfHwgc3QtPnBvc3RmaWx0ZXJfcGVyaW9kID09IDAAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnBvc3RmaWx0ZXJfcGVyaW9kX29sZCA8IE1BWF9QRVJJT0QAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnBvc3RmaWx0ZXJfcGVyaW9kX29sZCA+PSBDT01CRklMVEVSX01JTlBFUklPRCB8fCBzdC0+cG9zdGZpbHRlcl9wZXJpb2Rfb2xkID09IDAAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnBvc3RmaWx0ZXJfdGFwc2V0IDw9IDIAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnBvc3RmaWx0ZXJfdGFwc2V0ID49IDAAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnBvc3RmaWx0ZXJfdGFwc2V0X29sZCA8PSAyAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5wb3N0ZmlsdGVyX3RhcHNldF9vbGQgPj0gMAACAQAZFwIAfnx3bVcpEwkEAgBhc3NlcnRpb24gZmFpbGVkOiBhY2N1bT09MABhc3NlcnRpb24gZmFpbGVkOiBwY21fY291bnQgPT0gZnJhbWVfc2l6ZQBzcmMvb3B1c19kZWNvZGVyLmMAYXNzZXJ0aW9uIGZhaWxlZDogcmV0PT1mcmFtZV9zaXplLXBhY2tldF9mcmFtZV9zaXplAGFzc2VydGlvbiBmYWlsZWQ6IHJldD09cGFja2V0X2ZyYW1lX3NpemUAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPmNoYW5uZWxzID09IDEgfHwgc3QtPmNoYW5uZWxzID09IDIAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPkZzID09IDQ4MDAwIHx8IHN0LT5GcyA9PSAyNDAwMCB8fCBzdC0+RnMgPT0gMTYwMDAgfHwgc3QtPkZzID09IDEyMDAwIHx8IHN0LT5GcyA9PSA4MDAwAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5EZWNDb250cm9sLkFQSV9zYW1wbGVSYXRlID09IHN0LT5GcwBhc3NlcnRpb24gZmFpbGVkOiBzdC0+RGVjQ29udHJvbC5pbnRlcm5hbFNhbXBsZVJhdGUgPT0gMCB8fCBzdC0+RGVjQ29udHJvbC5pbnRlcm5hbFNhbXBsZVJhdGUgPT0gMTYwMDAgfHwgc3QtPkRlY0NvbnRyb2wuaW50ZXJuYWxTYW1wbGVSYXRlID09IDEyMDAwIHx8IHN0LT5EZWNDb250cm9sLmludGVybmFsU2FtcGxlUmF0ZSA9PSA4MDAwAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5EZWNDb250cm9sLm5DaGFubmVsc0FQSSA9PSBzdC0+Y2hhbm5lbHMAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPkRlY0NvbnRyb2wubkNoYW5uZWxzSW50ZXJuYWwgPT0gMCB8fCBzdC0+RGVjQ29udHJvbC5uQ2hhbm5lbHNJbnRlcm5hbCA9PSAxIHx8IHN0LT5EZWNDb250cm9sLm5DaGFubmVsc0ludGVybmFsID09IDIAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPkRlY0NvbnRyb2wucGF5bG9hZFNpemVfbXMgPT0gMCB8fCBzdC0+RGVjQ29udHJvbC5wYXlsb2FkU2l6ZV9tcyA9PSAxMCB8fCBzdC0+RGVjQ29udHJvbC5wYXlsb2FkU2l6ZV9tcyA9PSAyMCB8fCBzdC0+RGVjQ29udHJvbC5wYXlsb2FkU2l6ZV9tcyA9PSA0MCB8fCBzdC0+RGVjQ29udHJvbC5wYXlsb2FkU2l6ZV9tcyA9PSA2MABhc3NlcnRpb24gZmFpbGVkOiBzdC0+YXJjaCA+PSAwAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5hcmNoIDw9IE9QVVNfQVJDSE1BU0sAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnN0cmVhbV9jaGFubmVscyA9PSAxIHx8IHN0LT5zdHJlYW1fY2hhbm5lbHMgPT0gMgBhc3NlcnRpb24gZmFpbGVkOiAwAGFzc2VydGlvbiBmYWlsZWQ6IChvcHVzX2N1c3RvbV9kZWNvZGVyX2N0bChjZWx0X2RlYywgMTAwMTIsICgoKHZvaWQpKChlbmRiYW5kKSA9PSAob3B1c19pbnQzMikwKSksIChvcHVzX2ludDMyKShlbmRiYW5kKSkpKSA9PSBPUFVTX09LAGFzc2VydGlvbiBmYWlsZWQ6IChvcHVzX2N1c3RvbV9kZWNvZGVyX2N0bChjZWx0X2RlYywgMTAwMDgsICgoKHZvaWQpKChzdC0+c3RyZWFtX2NoYW5uZWxzKSA9PSAob3B1c19pbnQzMikwKSksIChvcHVzX2ludDMyKShzdC0+c3RyZWFtX2NoYW5uZWxzKSkpKSA9PSBPUFVTX09LAGFzc2VydGlvbiBmYWlsZWQ6IChvcHVzX2N1c3RvbV9kZWNvZGVyX2N0bChjZWx0X2RlYywgMTAwMTAsICgoKHZvaWQpKCgwKSA9PSAob3B1c19pbnQzMikwKSksIChvcHVzX2ludDMyKSgwKSkpKSA9PSBPUFVTX09LAGFzc2VydGlvbiBmYWlsZWQ6IChvcHVzX2N1c3RvbV9kZWNvZGVyX2N0bChjZWx0X2RlYywgNDAzMSwgKCgmcmVkdW5kYW50X3JuZykgKyAoKCZyZWR1bmRhbnRfcm5nKSAtIChvcHVzX3VpbnQzMiopKCZyZWR1bmRhbnRfcm5nKSkpKSkgPT0gT1BVU19PSwBhc3NlcnRpb24gZmFpbGVkOiAob3B1c19jdXN0b21fZGVjb2Rlcl9jdGwoY2VsdF9kZWMsIDEwMDEwLCAoKCh2b2lkKSgoc3RhcnRfYmFuZCkgPT0gKG9wdXNfaW50MzIpMCkpLCAob3B1c19pbnQzMikoc3RhcnRfYmFuZCkpKSkgPT0gT1BVU19PSwBhc3NlcnRpb24gZmFpbGVkOiAob3B1c19jdXN0b21fZGVjb2Rlcl9jdGwoY2VsdF9kZWMsIDQwMjgpKSA9PSBPUFVTX09LAGFzc2VydGlvbiBmYWlsZWQ6IChvcHVzX2N1c3RvbV9kZWNvZGVyX2N0bChjZWx0X2RlYywgMTAwMTUsICgoJmNlbHRfbW9kZSkgKyAoKCZjZWx0X21vZGUpIC0gKGNvbnN0IE9wdXNDdXN0b21Nb2RlKiopKCZjZWx0X21vZGUpKSkpKSA9PSBPUFVTX09LAEHwowILAQUAQfyjAgsBAQBBlKQCCwoCAAAAAwAAAHSTAEGspAILAQIAQbukAgsF//////8AQaymAgsCnJMAQeSmAgsDsJVQ`;if(!re(ie)){var ae=ie;ie=n.locateFile?n.locateFile(ae,s):s+ae}function S(){var e=ie;try{if(e==ie&&u)return new Uint8Array(u);if(re(e))try{var t=w(e.slice(37)),n=new Uint8Array(t.length);for(e=0;e<t.length;++e)n[e]=t.charCodeAt(e);var r=n}catch(e){throw Error(`Converting base64 string to bytes failed.`)}else r=void 0;var i=r;if(i)return i;throw`both async and sync fetching of the wasm failed`}catch(e){ne(e)}}function oe(){return u||typeof fetch!=`function`?Promise.resolve().then(function(){return S()}):fetch(ie,{credentials:`same-origin`}).then(function(e){if(!e.ok)throw`failed to load wasm binary file at '`+ie+`'`;return e.arrayBuffer()}).catch(function(){return S()})}function C(e){for(;0<e.length;){var t=e.shift();if(typeof t==`function`)t(n);else{var r=t.s;typeof r==`number`?t.o===void 0?g.get(r)():g.get(r)(t.o):r(t.o===void 0?null:t.o)}}}var se=[null,[],[]],w=typeof atob==`function`?atob:function(e){var t=``,n=0;e=e.replace(/[^A-Za-z0-9\+\/=]/g,``);do{var r=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(e.charAt(n++)),i=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(e.charAt(n++)),a=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(e.charAt(n++)),o=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(e.charAt(n++));r=r<<2|i>>4,i=(i&15)<<4|a>>2;var s=(a&3)<<6|o;t+=String.fromCharCode(r),a!==64&&(t+=String.fromCharCode(i)),o!==64&&(t+=String.fromCharCode(s))}while(n<e.length);return t},ce={d:function(){ne()},f:function(e,t,n){m.copyWithin(e,t,t+n)},c:function(){return!1},e:function(){return 0},b:function(){},a:function(e,t,n,r){for(var i=0,a=0;a<n;a++){for(var o=h[t+8*a>>2],s=h[t+(8*a+4)>>2],u=0;u<s;u++){var d=m[o+u],f=se[e];if(d===0||d===10){d=e===1?c:l;for(var g=f,_=0,v=_+NaN,y=_;g[y]&&!(y>=v);)++y;if(16<y-_&&g.subarray&&p)g=p.decode(g.subarray(_,y));else{for(v=``;_<y;){var b=g[_++];if(b&128){var x=g[_++]&63;if((b&224)==192)v+=String.fromCharCode((b&31)<<6|x);else{var ee=g[_++]&63;b=(b&240)==224?(b&15)<<12|x<<6|ee:(b&7)<<18|x<<12|ee<<6|g[_++]&63,65536>b?v+=String.fromCharCode(b):(b-=65536,v+=String.fromCharCode(55296|b>>10,56320|b&1023))}}else v+=String.fromCharCode(b)}g=v}d(g),f.length=0}else f.push(d)}i+=s}return h[r>>2]=i,0}};(function(){function e(e){n.asm=e.exports,d=n.asm.g,e=d.buffer,n.HEAP8=new Int8Array(e),n.HEAP16=new Int16Array(e),n.HEAP32=h=new Int32Array(e),n.HEAPU8=m=new Uint8Array(e),n.HEAPU16=new Uint16Array(e),n.HEAPU32=new Uint32Array(e),n.HEAPF32=new Float32Array(e),n.HEAPF64=new Float64Array(e),g=n.asm.n,v.unshift(n.asm.h),x--,n.monitorRunDependencies&&n.monitorRunDependencies(x),x==0&&(ee!==null&&(clearInterval(ee),ee=null),te&&(e=te,te=null,e()))}function t(t){e(t.instance)}function r(e){return oe().then(function(e){return WebAssembly.instantiate(e,a)}).then(e,function(e){l(`failed to asynchronously prepare wasm: `+e),ne(e)})}var a={a:ce};if(x++,n.monitorRunDependencies&&n.monitorRunDependencies(x),n.instantiateWasm)try{return n.instantiateWasm(a,e)}catch(e){return l(`Module.instantiateWasm callback failed with error: `+e),!1}return(function(){return u||typeof WebAssembly.instantiateStreaming!=`function`||re(ie)||typeof fetch!=`function`?r(t):fetch(ie,{credentials:`same-origin`}).then(function(e){return WebAssembly.instantiateStreaming(e,a).then(t,function(e){return l(`wasm streaming compile failed: `+e),l(`falling back to ArrayBuffer instantiation`),r(t)})})})().catch(i),{}})(),n.___wasm_call_ctors=function(){return(n.___wasm_call_ctors=n.asm.h).apply(null,arguments)},n._opus_decoder_create=function(){return(n._opus_decoder_create=n.asm.i).apply(null,arguments)},n._opus_decode_float=function(){return(n._opus_decode_float=n.asm.j).apply(null,arguments)},n._opus_decoder_destroy=function(){return(n._opus_decoder_destroy=n.asm.k).apply(null,arguments)},n._malloc=function(){return(n._malloc=n.asm.l).apply(null,arguments)},n._free=function(){return(n._free=n.asm.m).apply(null,arguments)};var le;te=function e(){le||ue(),le||(te=e)};function ue(){function e(){if(!le&&(le=!0,n.calledRun=!0,!f)){if(C(v),r(n),n.onRuntimeInitialized&&n.onRuntimeInitialized(),n.postRun)for(typeof n.postRun==`function`&&(n.postRun=[n.postRun]);n.postRun.length;){var e=n.postRun.shift();y.unshift(e)}C(y)}}if(!(0<x)){if(n.preRun)for(typeof n.preRun==`function`&&(n.preRun=[n.preRun]);n.preRun.length;)b();C(_),0<x||(n.setStatus?(n.setStatus(`Running...`),setTimeout(function(){setTimeout(function(){n.setStatus(``)},1),e()},1)):e())}}if(n.run=ue,n.preInit)for(typeof n.preInit==`function`&&(n.preInit=[n.preInit]);0<n.preInit.length;)n.preInit.pop()();return ue(),t.ready})})()})),wy,Ty,Ey,Dy=n((()=>{Cy(),h(),P(),Ty=function(e){return e[e.OK=0]=`OK`,e[e[`Bad argument`]=-1]=`Bad argument`,e[e[`Buffer too small`]=-2]=`Buffer too small`,e[e[`Internal error`]=-3]=`Internal error`,e[e[`Invalid packet`]=-4]=`Invalid packet`,e[e.Unimplemented=-5]=`Unimplemented`,e[e[`Invalid state`]=-6]=`Invalid state`,e[e[`Memory allocation fail`]=-7]=`Memory allocation fail`,e}(Ty||{}),Ey=class e{constructor(t,n,r){m(this,`opusModule`,void 0),m(this,`decoderInstance`,void 0),m(this,`opusBufferPointer`,void 0),m(this,`pcmBufferPointer`,void 0),m(this,`channels`,void 0),m(this,`pcmBufferByteSize`,()=>e.MAX_SAMPLES*this.channels*Float32Array.BYTES_PER_ELEMENT),m(this,`unload`,()=>{this.opusModule._free(this.opusBufferPointer),this.opusModule._free(this.pcmBufferPointer),this.opusModule._opus_decoder_destroy(this.decoderInstance)}),m(this,`decode`,t=>{if(t.byteLength>e.MAX_OPUS_BUFFER)throw Error(`Opus packet too large (${t.byteLength} bytes), max ${e.MAX_OPUS_BUFFER} bytes`);this.opusModule.HEAPU8.set(t,this.opusBufferPointer);let n=this.opusModule._opus_decode_float(this.decoderInstance,this.opusBufferPointer,t.byteLength,this.pcmBufferPointer,e.MAX_SAMPLES,0);if(n<0)throw Error(`${Ty[n]} (${n})`);let r=this.pcmBufferPointer/Float32Array.BYTES_PER_ELEMENT;return this.opusModule.HEAPF32.subarray(r,r+n*this.channels)}),this.opusModule=t,this.channels=r,this.decoderInstance=this.opusModule._opus_decoder_create(n,r,0),this.opusBufferPointer=this.opusModule._malloc(e.MAX_OPUS_BUFFER),this.pcmBufferPointer=this.opusModule._malloc(this.pcmBufferByteSize())}},wy=Ey,m(Ey,`MAX_OPUS_BUFFER`,16384),m(Ey,`MAX_SAMPLES`,6*960),m(Ey,`create`,function(){var e=N(function*(e,t){return new wy(yield Sy(),e,t)});return function(t,n){return e.apply(this,arguments)}}())})),Oy=n((()=>{Dy()})),ky=r({OpusDecoderContext:()=>jy}),Ay,jy,My=n((()=>{xi(),H(),Oy(),h(),B(),P(),jy=class{constructor(e){m(this,`decodedSamples`,[]),m(this,`decoder`,void 0),m(this,`errors`,new w(10)),m(this,`unload`,()=>{this.decoder.unload()}),m(this,`enqueue`,e=>{try{let t=Date.now(),n=this.decoder.decode(new Uint8Array(e.data));this.decodedSamples.push(z(z({},e),{},{type:`audio`,format:`f32`,data:n,statistics:{decodeTime:Date.now()-t,transportTimeFromWorker:0,transportTimeToWorker:0,samplesInBatch:1}}))}catch(e){e instanceof Error&&this.errors.push(ti(!1,e))}}),m(this,`initSegment`,S),m(this,`take`,()=>this.decodedSamples.shift()),this.decoder=e}error(){return this.errors.pop()}},Ay=jy,m(jy,`create`,function(){var e=N(function*(e,t){return new Ay(yield Ey.create(e,t))});return function(t,n){return e.apply(this,arguments)}}())}));function Ny(e){let t;try{if(t=Fy&&(self.URL||self.webkitURL).createObjectURL(Fy),!t)throw``;let n=new Worker(t,{name:e==null?void 0:e.name});return n.addEventListener(`error`,()=>{(self.URL||self.webkitURL).revokeObjectURL(t)}),n}catch(t){return new Worker(`data:text/javascript;charset=utf-8,`+encodeURIComponent(Py),{name:e==null?void 0:e.name})}}var Py,Fy,Iy=n((()=>{Py=`var __defProp = Object.defineProperty;
48
+ `;Ti(),V(),h();var Hi={width:256,codedWidth:256,height:144,codedHeight:144},Ui={preserveDrawingBuffer:!1,alpha:!1,depth:!1,stencil:!1,antialias:!1,premultipliedAlpha:!1},Wi=class e extends Ht{constructor(){super(),m(this,`canvas`,document.createElement(`canvas`)),m(this,`context`,Ei(this.canvas,Ui)),m(this,`pixelShader`,Di(this.context,this.context.FRAGMENT_SHADER,Bi)),m(this,`vertexShader`,Di(this.context,this.context.VERTEX_SHADER,Vi)),m(this,`buffer`,ki(this.context,e.SQUARE_VERTICES)),m(this,`program`,Ai(this.context,this.vertexShader,this.pixelShader)),m(this,`textures`,{y:Oi(this.context),u:Oi(this.context),v:Oi(this.context)}),m(this,`textRenderer`,void 0),m(this,`size`,Hi),m(this,`modelLocation`,null),m(this,`conversionLocation`,null),m(this,`cachedScaleX`,0),m(this,`cachedScaleY`,0),m(this,`cachedTransformMatrix`,null),m(this,`texturesNeedRealloc`,!0),m(this,`onContextLost`,e=>{this.textRenderer=void 0;let t=Error(e instanceof WebGLContextEvent?e.statusMessage:`webgl context lost`);this.emit(`context lost`,xi(t)),e.preventDefault()}),m(this,`onContextRestored`,()=>{this.emit(`context restored`),this.context=Ei(this.canvas,Ui),this.pixelShader=Di(this.context,this.context.FRAGMENT_SHADER,Bi),this.vertexShader=Di(this.context,this.context.VERTEX_SHADER,Vi),this.buffer=ki(this.context,e.SQUARE_VERTICES),this.program=Ai(this.context,this.vertexShader,this.pixelShader),this.textures={y:Oi(this.context),u:Oi(this.context),v:Oi(this.context)},this.load()}),m(this,`load`,()=>{this.context.useProgram(this.program),this.setupPositionVertexAttributes(),this.texturesNeedRealloc=!0,this.setSize(Hi),this.modelLocation=this.context.getUniformLocation(this.program,`model`),this.conversionLocation=this.context.getUniformLocation(this.program,`conversion`),this.context.uniform1i(this.context.getUniformLocation(this.program,`y_texture`),0),this.context.uniform1i(this.context.getUniformLocation(this.program,`u_texture`),1),this.context.uniform1i(this.context.getUniformLocation(this.program,`v_texture`),2),this.setConversionMatrix(e.REC709)}),m(this,`unload`,()=>{var e;this.setSize({width:1,height:1,codedHeight:1,codedWidth:1}),[this.textures.y,this.textures.u,this.textures.v].forEach(e=>this.context.deleteTexture(e)),this.context.deleteShader(this.pixelShader),this.context.deleteShader(this.vertexShader),this.context.deleteProgram(this.program),this.context.deleteBuffer(this.buffer),this.canvas.removeEventListener(`webglcontextlost`,this.onContextLost),this.canvas.removeEventListener(`webglcontextrestored`,this.onContextRestored),(e=this.context.getExtension(`WEBGL_lose_context`))==null||e.loseContext()}),m(this,`resetSize`,()=>{this.setSize({width:this.size.width/2,height:this.size.height/2,codedHeight:this.size.codedHeight/2,codedWidth:this.size.codedWidth/2})}),m(this,`render`,(e,t)=>{if(this.context.useProgram(this.program),this.setSize({width:e.width,height:e.height,codedWidth:e.codedWidth,codedHeight:e.codedHeight}),this.setModelMatrix(this.size.width/this.size.codedWidth,this.size.height/this.size.codedHeight),this.context.activeTexture(this.context.TEXTURE0),this.updateTexture(this.textures.y,this.size.codedWidth,this.size.codedHeight,e.data[0]),this.context.activeTexture(this.context.TEXTURE1),this.updateTexture(this.textures.u,this.size.codedWidth/2,this.size.codedHeight/2,e.data[1]),this.context.activeTexture(this.context.TEXTURE2),this.updateTexture(this.textures.v,this.size.codedWidth/2,this.size.codedHeight/2,e.data[2]),this.texturesNeedRealloc=!1,this.context.drawArrays(this.context.TRIANGLE_STRIP,0,4),this.textRenderer){let e=t.style.getPropertyValue(`--vindral-subtitle-offset`)||t.style.getPropertyValue(`--vindral-control-bar-offset`),n=parseInt(e||`0`,10),r=Number.isNaN(n)?0:-n;this.textRenderer.render({canvasWidth:this.size.width,canvasHeight:this.size.height,containerWidth:t.clientWidth||this.canvas.clientWidth||this.size.width,bottomPadding:r})}}),m(this,`updateTexture`,(e,t,n,r)=>{let i=this.context.LUMINANCE,a=this.context.UNSIGNED_BYTE;this.context.bindTexture(this.context.TEXTURE_2D,e),this.texturesNeedRealloc?this.context.texImage2D(this.context.TEXTURE_2D,0,i,t,n,0,i,a,r):this.context.texSubImage2D(this.context.TEXTURE_2D,0,0,0,t,n,i,a,r)}),m(this,`setupPositionVertexAttributes`,()=>{let e=this.context.getAttribLocation(this.program,`position`);this.context.enableVertexAttribArray(e),this.context.vertexAttribPointer(e,2,this.context.FLOAT,!1,0,0)}),m(this,`setSize`,e=>{e.width===this.size.width&&e.height===this.size.height&&e.codedWidth===this.size.codedWidth&&e.codedHeight===this.size.codedHeight||(this.size=e,this.texturesNeedRealloc=!0,this.canvas.setAttribute(`width`,e.width.toString()),this.canvas.setAttribute(`height`,e.height.toString()),this.context.viewport(0,0,e.width,e.height),this.setModelMatrix(e.width/e.codedWidth,e.height/e.codedHeight))}),m(this,`setModelMatrix`,(e,t)=>{(this.cachedScaleX!==e||this.cachedScaleY!==t||!this.cachedTransformMatrix)&&(this.cachedScaleX=e,this.cachedScaleY=t,this.cachedTransformMatrix=this.transformMatrix(e,t)),this.context.uniformMatrix4fv(this.modelLocation,!1,this.cachedTransformMatrix)}),m(this,`setConversionMatrix`,e=>{this.context.uniformMatrix4fv(this.conversionLocation,!1,e)}),m(this,`transformMatrix`,(e,t)=>[2/e,0,0,0,0,-2/t,0,0,0,0,2/1,0,-1,1,0,1]),this.canvas.addEventListener(`webglcontextlost`,this.onContextLost),this.canvas.addEventListener(`webglcontextrestored`,this.onContextRestored,!1),xr(this.canvas)}getTextRenderer(){return this.textRenderer||(this.textRenderer=new Li(this.context)),this.textRenderer}};m(Wi,`SQUARE_VERTICES`,new Float32Array([0,0,0,1,1,0,1,1])),m(Wi,`REC709`,[1.16438,0,1.79274,-.97295,1.16438,-.21325,-.53291,.30148,1.16438,2.1124,0,-1.1334,0,0,0,1]),m(Wi,`REC601`,[1.16438,0,1.59603,-.87079,1.16438,-.39176,-.81297,.52959,1.16438,2.01723,0,-1.08139,0,0,0,1]),h(),T(),k(),j(),N(),z();var Gi=new WeakMap,Ki=new WeakMap,qi=class{constructor(e,t,n,r){m(this,`keySystem`,void 0),m(this,`licenseServerUrl`,void 0),m(this,`certificate`,void 0),m(this,`headers`,{}),m(this,`queryParams`,{}),w(this,Gi,void 0),w(this,Ki,void 0),O(Gi,this,t),this.keySystem=e,this.licenseServerUrl=n,this.certificate=r}get statistics(){return{keySystem:A(Gi,this).keySystem,licenseServerUrl:this.licenseServerUrl,mediaKeySystemConfiguration:A(Gi,this).getConfiguration()}}getMediaKeys(){var e=this;return M(function*(){return A(Ki,e)||O(Ki,e,yield A(Gi,e).createMediaKeys()),A(Ki,e)})()}requestLicense(e){var t=this;return M(function*(){let n=new URL(t.licenseServerUrl);for(let[e,r]of Object.entries(t.queryParams))n.searchParams.append(e,r);let r=yield fetch(n,{method:`POST`,body:e,headers:R({"Content-Type":`application/octet-stream`},t.headers)});if(!r.ok)throw Error(`Failed to fetch license: ${r.statusText}`);return yield r.arrayBuffer()})()}};function Ji(e){let t=window.atob(e.replace(/-/g,`+`).replace(/_/g,`/`)),n=``;for(let e=0;e<t.length;e++)n+=`0${t.charCodeAt(e).toString(16)}`.substr(-2);return n}function Yi(e){let t=``;for(let n=0;n<e.length;n+=2)t+=String.fromCharCode(parseInt(e.substr(n,2),16));return window.btoa(t).replace(/=/g,``).replace(/\+/g,`-`).replace(/\//g,`_`)}function Xi(e,t){if(e.byteLength!==t.byteLength)return!1;let n=new Uint8Array(e),r=new Uint8Array(t);for(let e=0;e<n.length;e++)if(n[e]!==r[e])return!1;return!0}T(),k(),j();var Zi=new WeakMap,Qi=class extends qi{constructor(e,t){super(`clearkey`,e,``),w(this,Zi,void 0),O(Zi,this,t)}handleLicenseRequest(e){let t=new Uint8Array(e),n=String.fromCharCode(...t),r=JSON.parse(n),i=[];for(let e=0;e<r.kids.length;e++){let t=r.kids[e];if(t){let e=Ji(t).toLowerCase(),n=A(Zi,this)[e];n&&i.push({kty:`oct`,alg:`A128KW`,kid:t,k:Yi(n)})}}let a=JSON.stringify({keys:i,type:r.type});return new TextEncoder().encode(a)}};N(),z();var $i={playready:[`150`,`2000`,`3000`],widevine:[`SW_SECURE_CRYPTO`,`SW_SECURE_DECODE`,`HW_SECURE_CRYPTO`,`HW_SECURE_DECODE`,`HW_SECURE_ALL`],fairplay:[``],clearkey:[``]},ea={initDataTypes:[`cenc`],audioCapabilities:[{contentType:`audio/mp4; codecs="mp4a.40.2"`}],videoCapabilities:[{contentType:`video/mp4; codecs="avc1.42c01f"`}]},ta={fairplay:{keySystem:`com.apple.fps`,supportedConfig:{initDataTypes:[`sinf`],videoCapabilities:[{contentType:`video/mp4; codecs="avc1.42c01f"`}]}},playready:{keySystem:`com.microsoft.playready`,supportedConfig:ea},widevine:{keySystem:`com.widevine.alpha`,supportedConfig:ea},clearkey:{keySystem:`org.w3.clearkey`,supportedConfig:ea}},na=function(){var e=M(function*(e,t){return navigator.requestMediaKeySystemAccess(e,[t]).catch(()=>void 0)});return function(t,n){return e.apply(this,arguments)}}(),ra=function(){var e=M(function*(e,t,n,r,i,a){let o;for(let s of r){let r=n==null?void 0:n.map(e=>R(R({},e),{},{robustness:s,contentType:a?`${i===`audioCapabilities`?`audio/mp4`:`video/mp4`}; codecs="${a}"`:e.contentType}));if(!(yield na(e,{initDataTypes:t,[i]:r})))break;o=r}return o});return function(t,n,r,i,a,o){return e.apply(this,arguments)}}(),ia=function(){var e=M(function*(e,t,n,r){let{keySystem:i,supportedConfig:a}=ta[e],{initDataTypes:o,videoCapabilities:s,audioCapabilities:c}=a,l=r==null?void 0:r[e],u=(l==null?void 0:l.videoRobustness)||$i[e],d=(l==null?void 0:l.audioRobustness)||$i[e],[f,p]=yield Promise.all([ra(i,o,s,u,`videoCapabilities`,t),ra(i,o,c,d,`audioCapabilities`,n)]);if(!(!f&&!p))return yield na(i,{initDataTypes:o,videoCapabilities:f,audioCapabilities:p})});return function(t,n,r,i){return e.apply(this,arguments)}}(),aa=function(){var e=M(function*(e,t,n,r){let i;for(let a of e)if(i=yield ia(a,t,n,r),i)return{keySystem:a,mediaKeySystemAccess:i}});return function(t,n,r,i){return e.apply(this,arguments)}}(),oa=class extends qi{constructor(e,t,n){super(`fairplay`,e,t,n)}};V(),z(),N();var sa=e=>{var t;let n=String.fromCharCode(...new Uint16Array(e)),r=new window.DOMParser().parseFromString(n,`application/xml`),i=r.getElementsByTagName(`HttpHeaders`)[0],a={};if(i){let e=i.getElementsByTagName(`name`),t=i.getElementsByTagName(`value`);for(let n=0;n<e.length;n++){var o,s;let r=(o=e[n])==null?void 0:o.childNodes[0],i=(s=t[n])==null?void 0:s.childNodes[0];r!=null&&r.nodeValue&&i&&i.nodeValue&&(a[r.nodeValue]=i.nodeValue)}}let c=r.getElementsByTagName(`Challenge`)[0],l;if(!(c==null||(t=c.childNodes[0])==null)&&t.nodeValue){var u;l=window.atob((u=c.childNodes[0])==null?void 0:u.nodeValue)}return r.querySelector(`parsererror`)&&(a={"Content-Type":`text/xml; charset=utf-8`,SOAPAction:`"http://schemas.microsoft.com/DRM/2007/03/protocols/AcquireLicense"`},l=e),{headers:a,message:l}},ca=class extends qi{constructor(e,t){super(`playready`,e,t)}requestLicense(e){var t=this;return M(function*(){xe(t.licenseServerUrl,`No license server URL set`);let n=new URL(t.licenseServerUrl);for(let[e,r]of Object.entries(t.queryParams))n.searchParams.append(e,r);let r=sa(e),i=yield fetch(n,{method:`POST`,headers:R(R({},r.headers),t.headers),body:r.message});if(!i.ok)throw Error(`Failed to fetch license: ${i.statusText}`);return yield i.arrayBuffer()})()}},la=class extends qi{constructor(e,t){super(`widevine`,e,t)}};Ti(),V(),L(),T(),j(),D(),N(),k(),z();var ua=5e3,W=new WeakMap,da=new WeakMap,fa=new WeakMap,pa=new WeakMap,ma=new WeakMap,ha=new WeakMap,ga=new WeakMap,_a=new WeakMap,va=new WeakMap,ya=new WeakMap,ba=new WeakMap,xa=new WeakMap,Sa=new WeakSet,Ca=new WeakMap,wa=new WeakMap,Ta=new WeakMap,Ea=class{constructor(e,t,n={}){var r=this;I(this,Sa),w(this,W,void 0),w(this,da,void 0),w(this,fa,void 0),w(this,pa,new S),w(this,ma,void 0),w(this,ha,void 0),w(this,ga,new Map),w(this,_a,void 0),w(this,va,rt()),w(this,ya,void 0),w(this,ba,e=>{if(A(W,this).info(`Received DRM data`,{drmData:e}),window.clearTimeout(A(ya,this)),A(ha,this)){let t=E(Sa,this,Pa).call(this,e)[A(ha,this).keySystem];t&&(A(ha,this).licenseServerUrl=t)}A(pa,this).resolve(e)}),w(this,xa,e=>{A(W,this).info(`Encrypted event received`,{event:e}),E(Sa,this,Da).call(this,e)}),w(this,Ca,e=>{var t,n;A(W,this).debug(`Session message received`,{event:e});let r=e.target,i=e.message;if(!A(ga,this).get(r)){A(W,this).error(`No active session found for event`,{event:e});return}A(W,this).debug(`Requesting license for session`,{sessionId:r.sessionId,licenseServerUrl:(t=A(ha,this))==null?void 0:t.licenseServerUrl}),(n=A(ha,this))==null||n.requestLicense(i).then(e=>{A(W,this).debug(`License received for session`,{sessionId:r.sessionId}),r.update(e).catch(e=>{E(Sa,this,Ma).call(this,{message:`Failed to update session with license`,isFatal:!1,error:e})})}).catch(e=>{E(Sa,this,Ma).call(this,{message:`Failed to request license`,isFatal:!1,error:e})})}),w(this,wa,e=>{let t=e.target;A(W,this).debug(`Key status changed for session`,{sessionId:t.sessionId}),t.keyStatuses.forEach((e,t)=>{let n=Ji(window.btoa(String.fromCharCode(...new Uint8Array(t))));A(W,this).debug(`Key status`,{base64kid:n,status:e})})}),w(this,Ta,function(){var e=M(function*(e){let t=E(Sa,r,Na).call(r,e);A(W,r).debug(`Prioritized key system list`,{keySystemList:t});let n=yield aa(t,e.videoCodec,e.audioCodec,{widevine:A(ma,r).widevine,playready:A(ma,r).playready});if(!n)return A(W,r).warn(`No supported key system found`),null;A(W,r).debug(`Supported key system found`,n.mediaKeySystemAccess.getConfiguration());let{keySystem:i,mediaKeySystemAccess:a}=n,o=null;return i===`clearkey`?(xe(e.clearkeys,`No clearkeys found`),o=new Qi(a,e.clearkeys)):i===`playready`?(xe(e.playreadyLicenseUrl,`No playreadyLicenseUrl found`),o=new ca(a,e.playreadyLicenseUrl)):i===`widevine`?(xe(e.widevineLicenseUrl,`No widevineLicenseUrl found`),o=new la(a,e.widevineLicenseUrl)):i===`fairplay`&&(xe(e.fairplayLicenseUrl,`No fairplayLicenseUrl found`),xe(e.fairplayCertificate,`No fairplayCertificate found`),o=new oa(a,e.fairplayLicenseUrl,e.fairplayCertificate)),o&&(o.headers=A(ma,r).headers||{},o.queryParams=A(ma,r).queryParams||{}),o});return function(t){return e.apply(this,arguments)}}()),O(da,this,e),O(W,this,t),O(ma,this,n),A(da,this).on(`received drm data`,A(ba,this))}static isSupported(){return!!navigator.requestMediaKeySystemAccess}attach(e){O(fa,this,e),A(W,this).info(`Media element attached`),A(fa,this).addEventListener(`encrypted`,A(xa,this))}getStatistics(){var e,t;return!A(pa,this).resolved&&!((e=A(ha,this))!=null&&e.statistics)?null:R(R({},A(pa,this).resolved),(t=A(ha,this))==null?void 0:t.statistics)}unload(){var e;A(W,this).info(`Unloading EncryptedMediaExtensions`),A(da,this).off(`received drm data`,A(ba,this)),(e=A(fa,this))==null||e.removeEventListener(`encrypted`,A(xa,this)),A(ga,this).forEach((e,t)=>{t.close()}),A(ga,this).clear(),O(_a,this,void 0),O(ha,this,void 0)}set headers(e){A(ma,this).headers=e,A(ha,this)&&(A(ha,this).headers=e)}set queryParams(e){A(ma,this).queryParams=e,A(ha,this)&&(A(ha,this).queryParams=e)}onChannelSwitch(){if(!A(pa,this).resolved){A(W,this).debug(`DRM is not used, skipping channel switch handling`);return}tt()&&A(va,this).platform.safariVersion<18&&E(Sa,this,Ma).call(this,{message:`DRM channel switch not supported on Safari < 18`,isFatal:!0}),window.clearTimeout(A(ya,this));let e=A(pa,this).resolved;O(pa,this,new S),O(ya,this,window.setTimeout(()=>{A(pa,this).resolve(e)},ua))}};function Da(e){var t=this;return M(function*(){try{yield E(Sa,t,Oa).call(t),A(W,t).debug(`Media keys initialization completed`),yield E(Sa,t,ka).call(t,e.initData,e.initDataType)}catch(e){E(Sa,t,Ma).call(t,{message:`Failed to handle encrypted event`,isFatal:!0,error:e})}})()}function Oa(){var e=this;return M(function*(){var t;A(W,e).debug(`Initializing media keys`);let n=yield A(pa,e).promise;if((t=A(fa,e))!=null&&t.mediaKeys){A(W,e).debug(`Media keys already set on media element`);return}if(A(_a,e)){A(W,e).debug(`Media keys initialization already in progress, waiting for completion`),yield A(_a,e);return}O(_a,e,M(function*(){let t=yield A(Ta,e).call(e,n);A(W,e).debug(`CDM obtained`,{cdm:t}),xe(A(fa,e),`No media element found`),xe(t,`No CDM found`);let r=yield t.getMediaKeys();t.certificate&&(yield E(Sa,e,ja).call(e,r,t.certificate)),A(W,e).debug(`Setting media keys on media element`),yield A(fa,e).setMediaKeys(r),O(ha,e,t)})()),yield A(_a,e)})()}function ka(e,t){var n=this;return M(function*(){xe(A(ha,n),`No CDM manager found`);let r=yield A(ha,n).getMediaKeys();if(!e||!E(Sa,n,Aa).call(n,e)){A(W,n).debug(`Duplicate initData, no need to create new session`,{initData:e});return}let i=r.createSession();A(W,n).debug(`Creating new session`,{session:i}),i.addEventListener(`keystatuseschange`,A(wa,n)),i.closed.then(e=>{A(W,n).info(`Session is closed`,{reason:e})}),i.addEventListener(`message`,A(Ca,n)),A(ga,n).set(i,e),A(W,n).debug(`Generating request for session`,{session:i,initDataType:t,initData:e}),yield i.generateRequest(t,e)})()}function Aa(e){for(let[t,n]of A(ga,this))if(Xi(e,n))return!1;return!0}function ja(e,t){var n=this;return M(function*(){try{A(W,n).debug(`Setting server certificate`,{certificate:t}),(yield e.setServerCertificate(t))||A(W,n).warn(`Server certificates are not supported by the CDM.`)}catch(e){A(W,n).error(`Failed to set server certificate`,{error:e})}})()}function Ma(e){let{message:t,isFatal:n,error:r}=e;A(W,this).error(t,{error:r}),A(da,this).emit(`error`,wi(t,n,r))}function Na(e){let t=[];return e.clearkeys&&t.push(`clearkey`),e.playreadyLicenseUrl&&t.push(`playready`),e.widevineLicenseUrl&&t.push(`widevine`),e.fairplayLicenseUrl&&e.fairplayCertificate&&t.push(`fairplay`),t}function Pa(e){return{fairplay:e.fairplayLicenseUrl,playready:e.playreadyLicenseUrl,widevine:e.widevineLicenseUrl,clearkey:void 0}}var Fa,Ia,La=n((()=>{Fa=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],Ia=(e,t)=>{let n=Fa.indexOf(t);if(n===-1||e<1||e>8||e===7)return;let r=new ArrayBuffer(2),i=new Uint8Array(r),a=e===8?7:e;return i[0]=16|n>>1,i[1]=(n&1)<<7|a<<3,r}}));V();var Ra=7,za=8,Ba=e=>{let t=e.getUint32(0,!1),n=e.getUint8(0)<<16|e.getUint16(1,!1),r=0;return n===1?r+=3:t===1&&(r+=4),r},Va=e=>Ba(new DataView(e,0))!==0,Ha=(e,t=0)=>{for(let n=t;n<e.byteLength-4;n++){let t=e.getUint32(n)===1,r=(e.getUint8(n)<<16|e.getUint16(n+1))==1;if(t||r)return{position:n,nalPrefixSize:t?4:3}}},Ua=e=>e&31,Wa=(e,t)=>{let n=new DataView(e,0),r=Ha(n);for(;r;){let{position:i,nalPrefixSize:a}=r,o=Ha(n,i+4),s=o?o.position-i-a:void 0;if(!t(new DataView(e,i+a,s),a))return;r=o}},Ga=e=>{let t=[],n=[];if(!Va(e)){let r=new DataView(e,0),i=r.getUint8(5)&31,a=6;for(let n=0;n<i;n++){let n=r.getUint16(a);t.push(e.slice(a+2,a+2+n)),a+=n+2}let o=r.getUint8(a);a+=1;for(let t=0;t<o;t++){let t=r.getUint16(a);n.push(e.slice(a+2,a+2+t)),a+=t+2}return{sequenceParameterSets:t,pictureParameterSets:n}}return Wa(e,e=>{let r=e.byteOffset+e.byteLength;switch(Ua(e.getUint8(0))){case za:n.push(e.buffer.slice(e.byteOffset,r));break;case Ra:t.push(e.buffer.slice(e.byteOffset,r));break}return!0}),{sequenceParameterSets:t,pictureParameterSets:n}},Ka=e=>{let t=new DataView(e),n=t.getUint8(1),r=t.getUint8(2),i=t.getUint8(3),a=new Oe(e,32);a.readUnsignedExpGolomb();let o=1;switch(n){case 100:case 110:case 122:case 244:case 44:case 83:case 86:case 118:case 128:case 138:case 144:if(o=a.readUnsignedExpGolomb(),o===3&&a.readBits(1),a.readUnsignedExpGolomb()+8,a.readUnsignedExpGolomb()+8,a.readBit(),a.readBit()){for(let e=0;e<(o===3?12:8);e++)if(a.readBit()){let t=e<6?16:64,n=0,r=8,i=8;for(let e=0;e<t;e++)i!==0&&(n=a.readSignedExpGolomb(),i=(r+n+256)%256),r=i===0?r:i}}break;default:break}a.readUnsignedExpGolomb();let s=a.readUnsignedExpGolomb();if(s===0)a.readUnsignedExpGolomb();else if(s===1)throw Error(`Unhandled case`);a.readUnsignedExpGolomb(),a.readBit();let c=a.readUnsignedExpGolomb(),l=a.readUnsignedExpGolomb(),u=a.readBit();u===0&&a.readBit(),a.readBit();let d=c+1,f=l+1;if(f*=2-u,f*=16,d*=16,a.readBit()){let e=o===1?1:0,t=1<<(o===1||o===2?1:0),n=2-u<<e,r=a.readUnsignedExpGolomb()*t,i=a.readUnsignedExpGolomb()*t,s=a.readUnsignedExpGolomb()*n,c=a.readUnsignedExpGolomb()*n;d-=r+i,f-=s+c}let p={numerator:1,denumerator:1};if(a.readBit()&&a.readBit()){var m;p=(m=qa[a.readBits(8)])==null?{numerator:0,denumerator:0}:m}return{width:d,height:f,pixelAspectRatio:p,profileIdc:n,constraintFlags:r,levelIdc:i}},qa=[{numerator:0,denumerator:0},{numerator:1,denumerator:1},{numerator:12,denumerator:11},{numerator:10,denumerator:11},{numerator:16,denumerator:11},{numerator:40,denumerator:33},{numerator:24,denumerator:11},{numerator:20,denumerator:11},{numerator:32,denumerator:11},{numerator:80,denumerator:33},{numerator:18,denumerator:11},{numerator:15,denumerator:11},{numerator:64,denumerator:33},{numerator:160,denumerator:99},{numerator:4,denumerator:3},{numerator:3,denumerator:2},{numerator:2,denumerator:1}],Ja=e=>{if(e.length<=78)return;let t=78;for(;t+8<=e.length;){let n=new DataView(e.buffer,e.byteOffset+t,8),r=n.getUint32(0),i=String.fromCharCode(n.getUint8(4),n.getUint8(5),n.getUint8(6),n.getUint8(7));if(r<8||t+r>e.length)break;if(i===`hvcC`)return e.slice(t+8,t+r);t+=r}};V();var Ya=184549376;function Xa(e){let t=new Pe(e),n=Za(t);(n.flags&Ya)!==0&&Qa(t);let r=$a(t);if(String.fromCharCode(...r.frameId)===`TXXX`)return{header:n,txx:eo(new Pe(t.readBytes(r.size)))}}function Za(e){return{id:e.readBytes(3),majorVersion:e.readUint8(),minorVersion:e.readUint8(),flags:e.readUint8(),size:e.readUint32()}}function Qa(e){let t=e.readUint32();return e.readBytes(t-4),{}}function $a(e){return{frameId:e.readBytes(4),size:e.readUint32(),flags:e.readUint16()}}function eo(e){return{encoding:e.readUint8(),description:e.readUtf8String(),value:e.readUtf8String()}}V();function to(e){let t=e.readUint32(),n=String.fromCharCode(e.readUint8(),e.readUint8(),e.readUint8(),e.readUint8());return t===1&&(t=e.readUint64()-8),{size:t-8,type:n}}function no(e,t){let n=to(t),r=new Pe(t.readBytes(n.size));if(n.type!==e.type)throw Error(`invalid error type: ${n.type}, expected ${e.type}`);let i=e.decodeData(r);return r.readRemaining(),i}function ro(e){return{version:e.readUint8(),flags:e.readUint24()}}h();var io=class e{constructor({timescale:t,presentationTime:n,presentationTimeDelta:r,schemeIdUri:i,value:a,eventDuration:o,id:s,data:c}){m(this,`type`,e.type),m(this,`timescale`,void 0),m(this,`presentationTime`,void 0),m(this,`presentationTimeDelta`,void 0),m(this,`schemeIdUri`,void 0),m(this,`value`,void 0),m(this,`eventDuration`,void 0),m(this,`id`,void 0),m(this,`data`,void 0),this.timescale=t,this.presentationTime=n,this.presentationTimeDelta=r,this.schemeIdUri=i,this.value=a,this.eventDuration=o,this.id=s,this.data=c}static decodeData(t){let{version:n}=ro(t);switch(n){case 1:{let n=t.readUint32(),r=t.readUint64(),i=t.readUint32(),a=t.readUint32(),o=t.readUtf8String(),s=t.readUtf8String(),c=t.remaining();return new e({timescale:n,presentationTime:r,eventDuration:i,id:a,schemeIdUri:o,value:s,data:t.readBytes(c)})}case 0:{let n=t.readUtf8String(),r=t.readUtf8String(),i=t.readUint32(),a=t.readUint32(),o=t.readUint32(),s=t.readUint32(),c=t.remaining();return new e({timescale:i,presentationTimeDelta:a,schemeIdUri:n,value:r,eventDuration:o,id:s,data:t.readBytes(c)})}default:throw Error(`unsupported version ${n}`)}}};m(io,`type`,`emsg`),h();var ao=class e{constructor(t){m(this,`type`,e.type),m(this,`data`,void 0),this.data=t}static decodeData(t){return new e(t.readRemaining())}};m(ao,`type`,`mdat`),h();var oo=class e{constructor(t,n,r){m(this,`type`,e.type),m(this,`extra`,void 0),m(this,`byteOffset`,void 0),m(this,`baseMediaDecodeTime`,void 0),this.extra=t,this.byteOffset=n,this.baseMediaDecodeTime=r}static decodeData(t){let n=ro(t),r=t.byteOffset(),i=0;return i=n.version===1?t.readUint64():t.readUint32(),new e(n,r,i)}};m(oo,`type`,`tfdt`),h();var so=1,co=2,lo=8,uo=16,fo=32,po=class e{constructor(t,n,r,i){m(this,`type`,e.type),m(this,`extra`,void 0),m(this,`defaultSampleDuration`,void 0),m(this,`defaultSampleSize`,void 0),m(this,`defaultSampleFlags`,void 0),this.extra=t,this.defaultSampleDuration=n,this.defaultSampleSize=r,this.defaultSampleFlags=i}static decodeData(t){let n=ro(t),r,i,a;return t.readUint32(),(n.flags&so)>0&&t.readUint64(),(n.flags&co)>0&&t.readUint32(),(n.flags&lo)>0&&(r=t.readUint32()),(n.flags&uo)>0&&(i=t.readUint32()),(n.flags&fo)>0&&(a=t.readUint32()),new e(n,r,i,a)}};m(po,`type`,`tfhd`),h();var mo=class e{is_sync_sample(t){let n=e.FLAG_SAMPLE_FLAG_IS_NON_SYNC|e.FLAG_SAMPLE_DEPENDS_YES,r=this.sampleFlags[t];if(r!==void 0)return(r&n)===0;if(t===0&&this.firstSampleFlags)return(this.firstSampleFlags&n)===0}constructor(t,n,r){m(this,`type`,e.type),m(this,`dataOffset`,void 0),m(this,`firstSampleFlags`,void 0),m(this,`samplesCount`,void 0),m(this,`sampleDurations`,[]),m(this,`sampleSizes`,[]),m(this,`sampleFlags`,[]),m(this,`sampleCts`,[]),this.dataOffset=n,this.firstSampleFlags=r,this.samplesCount=t}static decodeData(t){let{flags:n}=ro(t),r=t.readUint32(),i,a;n&e.TRUN_DATA_OFFSET&&(i=t.readUint32()),n&e.TRUN_FIRST_SAMPLE_FLAGS&&(a=t.readUint32());let o=new e(r,i,a);for(let i=0;i<r;i++)n&e.SAMPLE_DURATION&&o.sampleDurations.push(t.readUint32()),n&e.SAMPLE_SIZE&&o.sampleSizes.push(t.readUint32()),n&e.SAMPLE_FLAGS&&o.sampleFlags.push(t.readUint32()),n&e.SAMPLE_CTS&&o.sampleCts.push(t.readUint32());return o}};m(mo,`TRUN_DATA_OFFSET`,1),m(mo,`TRUN_FIRST_SAMPLE_FLAGS`,4),m(mo,`SAMPLE_DURATION`,256),m(mo,`SAMPLE_SIZE`,512),m(mo,`SAMPLE_FLAGS`,1024),m(mo,`SAMPLE_CTS`,2048),m(mo,`FLAG_SAMPLE_FLAG_IS_NON_SYNC`,65536),m(mo,`FLAG_SAMPLE_DEPENDS_NO`,33554432),m(mo,`FLAG_SAMPLE_DEPENDS_YES`,16777216),m(mo,`type`,`trun`),h();var ho=class e{constructor(t,n,r){m(this,`type`,e.type),m(this,`tfhd`,void 0),m(this,`tfdt`,void 0),m(this,`trun`,void 0),this.tfhd=t,this.tfdt=n,this.trun=r}static decodeData(t){let n,r,i;for(;t.remaining()>0;){let e=zo(t);e instanceof po&&(n=e),e instanceof oo&&(r=e),e instanceof mo&&(i=e)}return new e(n,r,i)}};m(ho,`type`,`traf`),h();var go=class e{constructor(t){m(this,`type`,e.type),m(this,`traf`,void 0),this.traf=t}static decodeData(t){let n;for(;t.remaining()>0;){let e=zo(t);e instanceof ho&&(n=e)}if(!n)throw Error(`No traf found`);return new e(n)}};m(go,`type`,`moof`),h();var _o=class e{constructor(){m(this,`type`,e.type)}static decodeData(t){return new e}};m(_o,`type`,`mvhd`),h();var vo=class e{constructor(t){m(this,`type`,e.type),m(this,`fourCC`,void 0),this.fourCC=t}mediaType(){switch(this.fourCC){case`vide`:return`video`;case`soun`:return`audio`;case`sbtl`:return`text`;default:throw Error(`Unknown media type`)}}static decodeData(t){return ro(t),t.readUint32(),new e(String.fromCharCode(...t.readBytes(4)))}};m(vo,`type`,`hdlr`),h();var yo=class e{constructor(t,n,r,i){m(this,`type`,e.type),m(this,`creationTime`,void 0),m(this,`modificationTime`,void 0),m(this,`timescale`,void 0),m(this,`duration`,void 0),this.creationTime=t,this.modificationTime=n,this.timescale=r,this.duration=i}static decodeData(t){let{version:n}=ro(t);return n===1?new e(t.readUint64(),t.readUint64(),t.readUint32(),t.readUint64()):new e(t.readUint32(),t.readUint32(),t.readUint32(),t.readUint32())}};m(yo,`type`,`mdhd`),h();var bo=class e{mediaType(){return this.avc1||this.hvc1||this.hev1||this.av01?`video`:`audio`}width(){var e;return(e=this.avc1)==null?void 0:e.width}height(){var e;return(e=this.avc1)==null?void 0:e.height}constructor(t,n,r,i,a,o,s){m(this,`type`,e.type),m(this,`av01`,void 0),m(this,`avc1`,void 0),m(this,`hvc1`,void 0),m(this,`hev1`,void 0),m(this,`mp4a`,void 0),m(this,`opus`,void 0),m(this,`codec`,void 0),this.avc1=t,this.hvc1=n,this.hev1=r,this.av01=i,this.mp4a=a,this.opus=o,this.codec=s}static decodeData(t){ro(t);let n=t.readUint32(),r,i,a,o,s,c,l;for(let e=0;e<n;e++)for(;t.remaining()>0;){let e=zo(t);switch(e.type){case`avc1`:r=`h264`,i=e;break;case`hvc1`:r=`h265`,a=e;break;case`hev1`:r=`h265`,o=e;break;case`av01`:r=`av1`,l=e;break;case`mp4a`:r=`aac`,s=e;break;case`Opus`:r=`opus`,c=e;break}}return new e(i,a,o,l,s,c,r)}};m(bo,`type`,`stsd`),h();var xo=class e{constructor(t){m(this,`type`,e.type),m(this,`stsd`,void 0),this.stsd=t}static decodeData(t){let n;for(;t.remaining()>0;){let e=zo(t);e instanceof bo&&(n=e)}if(!n)throw Error(`No stsd found`);return new e(n)}};m(xo,`type`,`stbl`),h();var So=class e{constructor(t){m(this,`type`,e.type),m(this,`stbl`,void 0),this.stbl=t}static decodeData(t){let n;for(;t.remaining()>0;){let e=zo(t);e instanceof xo&&(n=e)}if(!n)throw Error(`No stbl found`);return new e(n)}};m(So,`type`,`minf`),h();var Co=class e{constructor(t,n,r){m(this,`type`,e.type),m(this,`hdlr`,void 0),m(this,`minf`,void 0),m(this,`mdhd`,void 0),this.hdlr=t,this.minf=n,this.mdhd=r}static decodeData(t){let n,r,i;for(;t.remaining()>0;){let e=zo(t);e instanceof vo&&(n=e),e instanceof So&&(r=e),e instanceof yo&&(i=e)}if(!n)throw Error(`No hdlr found`);if(!r)throw Error(`No minf found`);if(!i)throw Error(`No mdhd found`);return new e(n,r,i)}};m(Co,`type`,`mdia`),h();var wo=class e{constructor(t,n,r,i,a,o,s,c){m(this,`type`,e.type),m(this,`modificationTime`,void 0),m(this,`creationTime`,void 0),m(this,`trackId`,void 0),m(this,`duration`,void 0),m(this,`alternateGroup`,void 0),m(this,`volume`,void 0),m(this,`width`,void 0),m(this,`height`,void 0),this.modificationTime=t,this.creationTime=n,this.trackId=r,this.duration=i,this.alternateGroup=a,this.volume=o,this.width=s,this.height=c}static decodeData(t){let n=ro(t),r=0,i=0;n.version===1?(r=t.readUint64(),i=t.readUint64()):(r=t.readUint32(),i=t.readUint32());let a=t.readUint32();t.readUint32();let o=t.readUint32();t.readUint32(),t.readUint32(),t.readUint16();let s=t.readUint16(),c=t.readUint16();t.readUint16(),Array(9).fill(0).map(()=>t.readUint32());let l=t.readUint16();t.readUint16();let u=t.readUint16();return t.readUint16(),new e(r,i,a,o,s,c,l,u)}};m(wo,`type`,`tkhd`),h();var To=class e{constructor(t,n){m(this,`type`,e.type),m(this,`tkhd`,void 0),m(this,`mdia`,void 0),this.tkhd=t,this.mdia=n}static decodeData(t){let n,r;for(;t.remaining()>0;){let e=zo(t);e instanceof wo&&(n=e),e instanceof Co&&(r=e)}if(!n)throw Error(`No tkhd found`);if(!r)throw Error(`No mdia found`);return new e(n,r)}};m(To,`type`,`trak`),h();var Eo=class e{constructor(t,n){m(this,`type`,e.type),m(this,`mvhd`,void 0),m(this,`traks`,void 0),this.mvhd=t,this.traks=n}static decodeData(t){let n,r=[];for(;t.remaining()>0;){let e=zo(t);e instanceof To&&r.push(e),e instanceof _o&&(n=e)}if(!n)throw Error(`No mvhd found`);return new e(n,r)}};m(Eo,`type`,`moov`),h();var Do=class e{constructor(t,n,r,i,a,o,s,c){m(this,`type`,e.type),m(this,`configurationVersion`,void 0),m(this,`avcProfileIndication`,void 0),m(this,`profileCompatibility`,void 0),m(this,`avcLevelIndication`,void 0),m(this,`lengthSizeMinusOne`,void 0),m(this,`sequenceParameterSets`,void 0),m(this,`pictureParameterSets`,void 0),m(this,`bytes`,void 0),this.configurationVersion=t,this.avcProfileIndication=n,this.profileCompatibility=r,this.avcLevelIndication=i,this.lengthSizeMinusOne=a,this.sequenceParameterSets=o,this.pictureParameterSets=s,this.bytes=c}static decodeData(t){let n=t.buffer(),r=t.readUint8(),i=t.readUint8(),a=t.readUint8(),o=t.readUint8(),s=t.readUint8()&3,c=t.readUint8()&31,l=[];for(let e=0;e<c;e++){let e=t.readBytes(t.readUint16());l.push(e)}let u=t.readUint8(),d=[];for(let e=0;e<u;e++){let e=t.readBytes(t.readUint16());d.push(e)}return new e(r,i,a,o,s,l,d,n)}};m(Do,`type`,`avcC`);var Oo=class e{constructor(t,n,r,i,a){m(this,`type`,e.type),m(this,`avcC`,void 0),m(this,`width`,void 0),m(this,`height`,void 0),m(this,`horizontalResolution`,void 0),m(this,`verticalResolution`,void 0),this.avcC=t,this.width=n,this.height=r,this.horizontalResolution=i,this.verticalResolution=a}static decodeData(t){t.readUint32(),t.readUint16(),t.readUint16(),t.readUint32(),t.readUint64(),t.readUint32();let n=t.readUint16(),r=t.readUint16(),i=t.readUint32(),a=t.readUint32();t.readUint32(),t.readUint16(),t.readBytes(32),t.readUint16(),t.readUint16();let o;for(;t.remaining()>0;){let e=zo(t);switch(e.type){case`avcC`:o=e;break}}if(!o)throw Error(`no avcC`);return new e(o,n,r,i,a)}};m(Oo,`type`,`avc1`),h();var ko=e=>{for(let t=0;t<e.length-1;t++){if(e[t]!==5)continue;let n=0,r=0,i=t+1;for(;i<e.length&&r<4;){let t=e[i];if(n=n<<7|t&127,r++,i++,!(t&128))break}if(n<=0||r===4&&e[i-1]&128)continue;let a=t+1+r,o=a+n;if(o<=e.length)return e.slice(a,o)}},Ao=class e{constructor(t){m(this,`type`,e.type),m(this,`decoderConfig`,void 0),this.decoderConfig=t}static decodeData(t){var n;return ro(t),new e((n=ko(t.readRemaining()))==null?new Uint8Array:n)}};m(Ao,`type`,`esds`);var jo=class e{constructor(t,n,r){m(this,`type`,e.type),m(this,`channelCount`,void 0),m(this,`sampleRate`,void 0),m(this,`esds`,void 0),this.channelCount=t,this.sampleRate=n,this.esds=r}static decodeData(t){t.readUint32(),t.readUint16(),t.readUint16();let n=t.readUint16();t.readUint16(),t.readUint32();let r=t.readUint16();t.readUint16(),t.readUint32();let i=t.readUint16();t.readUint16(),n===1?t.readBytes(16):n===2&&t.readBytes(36);let a;for(;t.remaining()>0;){let e=zo(t);e.type===`esds`&&(a=e)}return new e(r,i,a)}};m(jo,`type`,`mp4a`),h();var Mo=class e{constructor(t,n,r,i,a,o,s){m(this,`type`,e.type),m(this,`version`,void 0),m(this,`channelCount`,void 0),m(this,`preSkip`,void 0),m(this,`inputSampleRate`,void 0),m(this,`outputGain`,void 0),m(this,`channelMappingFamily`,void 0),m(this,`channelMappingTable`,void 0),this.version=t,this.channelCount=n,this.preSkip=r,this.inputSampleRate=i,this.outputGain=a,this.channelMappingFamily=o,this.channelMappingTable=s}static decodeData(t){let n=t.readUint8(),r=t.readUint8(),i=t.readUint16(),a=t.readUint32(),o=t.readUint16();return new e(n,r,i,a,o>32767?o-65536:o,t.readUint8(),t.readRemaining())}};m(Mo,`type`,`dOps`);var No=class e{constructor(t,n,r){m(this,`type`,e.type),m(this,`dops`,void 0),m(this,`channelCount`,void 0),m(this,`sampleRate`,void 0),this.dops=t,this.channelCount=n,this.sampleRate=r}static decodeData(t){t.readUint32(),t.readUint16(),t.readUint16();let n=t.readUint16();t.readUint16(),t.readUint32();let r=t.readUint16();t.readUint16(),t.readUint32();let i=t.readUint16();return t.readUint16(),n===1&&(t.readUint64(),t.readUint64()),new e(no(Mo,t),r,i)}};m(No,`type`,`Opus`),h();var Po=class e{constructor(t,n){m(this,`type`,e.type),m(this,`ntpTimestamp`,void 0),m(this,`mediaTime`,void 0),this.ntpTimestamp=t,this.mediaTime=n}date(){let[e,t]=this.ntpTimestamp,n=e*1e3+t/2**32*1e3,r=new Date(Date.UTC(1900,0,1,0,0,0));return new Date(r.getTime()+n)}static decodeData(t){let{version:n}=ro(t);t.readUint32();let r=t.readUint32(),i=t.readUint32();if(n===1){let n=t.readUint64();return new e([r,i],n)}let a=t.readUint32();return new e([r,i],a)}};m(Po,`type`,`prft`),T(),k(),j();var Fo=new WeakMap,Io=new WeakMap,Lo=class{constructor(e,t){w(this,Fo,void 0),w(this,Io,void 0),O(Fo,this,e),O(Io,this,t.readBytes(e.size))}data(){return A(Io,this)}get type(){return A(Fo,this).type}};V();var Ro={moov:Eo,trak:To,tkhd:wo,mvhd:_o,moof:go,traf:ho,tfhd:po,tfdt:oo,trun:mo,mdat:ao,mdia:Co,hdlr:vo,minf:So,stbl:xo,mdhd:yo,stsd:bo,prft:Po,avc1:Oo,avcC:Do,esds:Ao,mp4a:jo,Opus:No,emsg:io};function zo(e){let t=to(e),n=Ro[t.type],r=new Pe(e.readBytes(t.size));if(!n){let e=new Lo(t,r);return r.readRemaining(),e}let i=n.decodeData(r);return r.readRemaining(),i}V();function Bo(e){if(e.byteLength<8)throw Error(`Buffer too small`);let t=new Pe(e),n=new Map;for(;t.remaining()>0;){let e=zo(t);n.set(e.type,e)}let r=n.get(`ftyp`),i=n.get(`moov`);if(!r)throw Error(`ftyp atom not found`);if(!i||!(i instanceof Eo))throw Error(`moov atom not found`);return{ftyp:r,moov:i}}function Vo(e){if(e.byteLength<8)throw Error(`Buffer too small`);let t=new Pe(e),n=new Map,r=[];for(;t.remaining()>0;){let e=zo(t);e instanceof io&&r.push(e),n.set(e.type,e)}let i=n.get(`moof`),a=n.get(`mdat`),o=n.get(`prft`);if(!i||!(i instanceof go))throw Error(`moof atom not found`);if(!a||!(a instanceof ao))throw Error(`mdat atom not found`);if(o&&!(o instanceof Po))throw Error(`invalid prft found`);return{moof:i,mdat:a,prft:o,emsgs:r}}T(),k(),j();var Ho=e=>{if(!e||e.length<=1)return;let t=Array(e.length),n=0;for(let r=0;r<e.length;r++)t[r]=n,n+=e[r]||0;return t},Uo=new WeakMap,Wo=new WeakMap,Go=class{constructor(e){w(this,Uo,void 0),w(this,Wo,void 0),O(Uo,this,e),O(Wo,this,Bo(e))}rawBytes(){return A(Uo,this)}init(){return A(Wo,this)}},Ko=new WeakMap,qo=new WeakMap,G=new WeakMap,Jo=new WeakMap,Yo=new WeakMap,Xo=new WeakMap,Zo=class e{clone(){return new e(A(qo,this),new Uint8Array(A(Ko,this).buffer.slice(A(Ko,this).byteOffset,A(Ko,this).byteOffset+A(Ko,this).byteLength)))}constructor(e,t){w(this,Ko,void 0),w(this,qo,void 0),w(this,G,void 0),w(this,Jo,void 0),w(this,Yo,void 0),w(this,Xo,void 0),O(Ko,this,t),O(qo,this,e),O(G,this,Vo(t)),O(Jo,this,A(qo,this).init().moov.traks[0]);let n=A(G,this).moof.traf.trun;O(Yo,this,Ho(n==null?void 0:n.sampleSizes)),O(Xo,this,Ho(n==null?void 0:n.sampleDurations))}updateBaseMediaDecodeTime(e){let t=new DataView(A(Ko,this).buffer,A(Ko,this).byteOffset,A(Ko,this).byteLength);if(A(G,this).moof.traf.tfdt)if(A(G,this).moof.traf.tfdt.baseMediaDecodeTime=e,A(G,this).moof.traf.tfdt.extra.version===1){let n=Math.floor(e/4294967296),r=(e&4294967295)>>>0;t.setUint32(A(G,this).moof.traf.tfdt.byteOffset-A(Ko,this).byteOffset,n),t.setUint32(A(G,this).moof.traf.tfdt.byteOffset-A(Ko,this).byteOffset+4,r)}else t.setUint32(A(G,this).moof.traf.tfdt.byteOffset-A(Ko,this).byteOffset,e)}producerReferenceTime(){if(A(G,this).prft)return A(G,this).prft.date()}duration(){let e=A(G,this).moof.traf.trun,t=A(G,this).moof.traf.tfhd;if((e==null?void 0:e.sampleDurations.length)===0){let n=(e==null?void 0:e.samplesCount)||1;if(t!=null&&t.defaultSampleDuration)return(t==null?void 0:t.defaultSampleDuration)*n}return(e==null?void 0:e.sampleDurations.reduce((e,t)=>e+t,0))||0}baseMediaDecodeTime(){var e;let t=(e=A(G,this).moof.traf.tfdt)==null?void 0:e.baseMediaDecodeTime;if(!t)throw Error(`no baseMediaDecodeTime`);return t}startsWithKeyframe(){var e;let t=A(G,this).moof.traf.trun,n=(t==null?void 0:t.firstSampleFlags)||(t==null?void 0:t.sampleFlags[0])||((e=A(G,this).moof.traf.tfhd)==null?void 0:e.defaultSampleFlags);return n?(n&mo.FLAG_SAMPLE_DEPENDS_NO)!==0:!1}compositionTimeOffset(e){var t;return(t=A(G,this).moof.traf.trun)==null?void 0:t.sampleCts[e]}timescale(){let e=A(Jo,this);if(!e)throw Error(`no tracks`);return e.mdia.mdhd.timescale}mediaType(){var e;let t=(e=A(Jo,this))==null?void 0:e.mdia.hdlr.mediaType();if(!t)throw Error(`no media type`);return t}header(){return A(qo,this)}fragment(){return A(G,this)}samplesCount(){var e;return((e=A(G,this).moof.traf.trun)==null?void 0:e.samplesCount)||0}sample(e){var t,n,r,i,a,o,s;let c=A(G,this).moof.traf.trun,l=A(Jo,this),u=(c==null?void 0:c.samplesCount)||0,d=(t=A(G,this).moof.traf.tfdt)==null?void 0:t.baseMediaDecodeTime;if(e>=u||d===void 0||!l)return;let f=l.mdia.minf.stbl.stsd,p=f.codec;if(!p)return;let m=c==null?void 0:c.sampleCts[e],h=(c==null?void 0:c.sampleDurations[e])||0,g=d+(((n=A(Xo,this))==null?void 0:n[e])||0),_=l.mdia.mdhd.timescale||1e3,v=(c==null?void 0:c.sampleSizes[e])||A(G,this).mdat.data.byteLength,ee=((r=A(Yo,this))==null?void 0:r[e])||0,y=A(G,this).mdat.data.subarray(ee,ee+v),b=(c==null?void 0:c.is_sync_sample(e))||!1;return l.mdia.hdlr.mediaType()===`video`?{type:`video`,codec:p,width:l.tkhd.width||0,height:l.tkhd.height||0,duration:h,isSync:b,timescale:_,timestamp:g,compositionTimeOffset:m,data:y}:{type:`audio`,codec:p,channels:(f==null||(i=f.opus)==null?void 0:i.channelCount)||(f==null||(a=f.mp4a)==null?void 0:a.channelCount)||0,sampleRate:(f==null||(o=f.opus)==null?void 0:o.sampleRate)||(f==null||(s=f.mp4a)==null?void 0:s.sampleRate)||0,duration:h,isSync:b,timestamp:g,compositionTimeOffset:m,data:y,timescale:_}}rawBytes(){return A(Ko,this)}},Qo=new WeakMap,$o=class{constructor(e){w(this,Qo,void 0),O(Qo,this,new Go(e))}header(){return A(Qo,this)}createFragment(e){return new Zo(A(Qo,this),e)}};function K(e){let t=new ArrayBuffer(e.length),n=new Uint8Array(t);for(let t=0,r=e.length;t<r;t++)n[t]=e.charCodeAt(t);return new Uint8Array(t)}var q={ftyp:K(`ftyp`),mvhd:K(`mvhd`),moov:K(`moov`),trak:K(`trak`),tkhd:K(`tkhd`),mdia:K(`mdia`),mdhd:K(`mdhd`),hdlr:K(`hdlr`),minf:K(`minf`),vmhd:K(`vmhd`),smhd:K(`smhd`),dinf:K(`dinf`),dref:K(`dref`),stbl:K(`stbl`),stsd:K(`stsd`),avc1:K(`avc1`),hvc1:K(`hvc1`),hev1:K(`hev1`),av01:K(`av01`),av1C:K(`av1C`),avcC:K(`avcC`),hvcC:K(`hvcC`),esds:K(`esds`),colr:K(`colr`),nclx:K(`nclx`),mvex:K(`mvex`),trex:K(`trex`),udta:K(`udta`),meta:K(`meta`),ilst:K(`ilst`),moof:K(`moof`),mfhd:K(`mfhd`),traf:K(`traf`),tfhd:K(`tfhd`),tfdt:K(`tfdt`),trun:K(`trun`),mdat:K(`mdat`),mp4a:K(`mp4a`),Opus:K(`Opus`),prft:K(`prft`),dOps:K(`dOps`),emsg:K(`emsg`)};V(),h();var es=1e3,ts={vide:K(`vide`),soun:K(`soun`),videoHandler:K(`VideoHandler\0`),soundHandler:K(`SoundHandler\0`),url:K(`url `),pasp:K(`pasp`),btrt:K(`btrt`),stts:K(`stts`),stsc:K(`stsc`),stsz:K(`stsz`),stco:K(`stco`),data:K(`data`),mdir:K(`mdir`),appl:K(`appl`)},ns=K(`iso6`),rs=new Uint8Array([0,0,2,0]),is=[ns,new Uint8Array([105,115,111,109]),new Uint8Array([105,115,111,50]),new Uint8Array([97,118,99,49]),new Uint8Array([109,112,52,49])],as=[ns,new Uint8Array([105,115,111,109]),new Uint8Array([105,115,111,50]),new Uint8Array([104,118,99,49]),new Uint8Array([109,112,52,49])],os=[ns,new Uint8Array([105,115,111,109]),new Uint8Array([105,115,111,50]),new Uint8Array([97,118,48,49]),new Uint8Array([109,112,52,49])],ss=[ns,new Uint8Array([105,115,111,109]),new Uint8Array([105,115,111,50]),new Uint8Array([109,112,52,49])],cs=class{constructor(e){m(this,`writer`,void 0),m(this,`moofOffset`,0),this.writer=new Ie(e)}},J=(e,t,n)=>{e.writer.writeUint32(n+8),e.writer.writeBytes(t)},Y=(e,t,n,r,i)=>{J(e,t,n+4),e.writer.writeUint8(r),e.writer.writeUint24(i)},ls=(e,t)=>{J(e,q.ftyp,ns.byteLength+rs.byteLength+t.reduce((e,t)=>e+t.byteLength,0)),e.writer.writeBytes(ns),e.writer.writeBytes(rs),t.forEach(t=>e.writer.writeBytes(t))},us=2**32,ds=2208988800,fs=(e,t,n,r)=>{Y(e,q.prft,20,1,0);let i=n/1e3,a=Math.floor(i),o=(i-a)*1e3*1e3*us/1e6;e.writer.writeUint32(t),e.writer.writeUint32(a+ds),e.writer.writeUint32(o),e.writer.writeUint64(r)},ps=(e,t,n)=>{Y(e,q.mvhd,96,0,0),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeUint32(n),e.writer.writeUint32(t),e.writer.writeUint32(65536),e.writer.writeUint16(256),e.writer.writeBytes(new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])),e.writer.writeUint32(2)},ms=e=>`sequenceParameterSets`in e,hs=e=>`sequenceHeader`in e,gs=e=>`hvcC`in e,_s=e=>e.type===`video`,vs=e=>e.type===`audio`,ys=(e,t,n)=>{let r=e.writer.position();Y(e,q.tkhd,0,0,3),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeUint32(t.trackId),e.writer.writeUint32(0),e.writer.writeUint32(t.duration*n/t.timescale),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeUint16(0),e.writer.writeUint16(vs(t)?1:0),e.writer.writeUint16(vs(t)?256:0),e.writer.writeUint16(0),e.writer.writeBytes(new Uint8Array([0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0])),_s(t)?(e.writer.writeUint32(t.width*65536),e.writer.writeUint32(t.height*65536)):vs(t)&&(e.writer.writeUint32(0),e.writer.writeUint32(0)),e.writer.writeUint32At(r,e.writer.position()-r)},bs=(e,t)=>{Y(e,q.mdhd,20,0,0),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeUint32(t.timescale),e.writer.writeUint32(t.duration);let n=t.lang||`und`,r=(n.charCodeAt(0)&31)<<10|(n.charCodeAt(1)&31)<<5|n.charCodeAt(2)&31;e.writer.writeUint16(r),e.writer.writeUint16(0)},xs=(e,t)=>{let n=e.writer.position();Y(e,q.hdlr,0,0,0),e.writer.writeUint32(0),e.writer.writeBytes(_s(t)?ts.vide:ts.soun),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeBytes(_s(t)?ts.videoHandler:ts.soundHandler),e.writer.writeUint32At(n,e.writer.position()-n)},Ss=e=>{let t=e.writer.position();J(e,q.dinf,0),Y(e,q.dref,16,0,0),e.writer.writeUint32(1),Y(e,ts.url,0,0,1),e.writer.writeUint32At(t,e.writer.position()-t)},Cs=(e,t)=>{let n=e.writer.position();J(e,q.avcC,0),e.writer.writeUint8(1),e.writer.writeUint8(t.sequenceParameterSets[0][1]),e.writer.writeUint8(t.sequenceParameterSets[0][2]),e.writer.writeUint8(t.sequenceParameterSets[0][3]),e.writer.writeUint8(255),e.writer.writeUint8(224|t.sequenceParameterSets.length),t.sequenceParameterSets.forEach(t=>{e.writer.writeUint16(t.byteLength),e.writer.writeBytes(t)}),e.writer.writeUint8(t.pictureParameterSets.length),t.pictureParameterSets.forEach(t=>{e.writer.writeUint16(t.byteLength),e.writer.writeBytes(t)}),e.writer.writeUint32At(n,e.writer.position()-n)},ws=(e,t)=>{var n,r;let i=e.writer.position();J(e,q.av1C,0);let{seqProfile:a,operatingPoints:o,colorConfig:s}=t.parsedSequenceHeader,c=o[0];e.writer.writeUint8(129),e.writer.writeUint8(a<<5|((n=c==null?void 0:c.seqLevelIdx)==null?0:n)),e.writer.writeUint8(((r=c==null?void 0:c.tier)==null?0:r)|(s.highBitDepth?1:0)|(s.bitDepth===12?1:0)<<5|(s.monoChrome?1:0)<<4|s.subsamplingX<<3|s.subsamplingY<<2|s.chromaSamplePosition&65535),e.writer.writeUint8(0),e.writer.writeBytes(t.sequenceHeader),e.writer.writeUint32At(i,e.writer.position()-i)},Ts=(e,t)=>{let n=e.writer.position();J(e,q.hvcC,0),e.writer.writeBytes(t.hvcC),e.writer.writeUint32At(n,e.writer.position()-n)},Es=(e,t)=>{let n=e.writer.position();J(e,hs(t)?q.av01:gs(t)?q.hvc1:q.avc1,0),e.writer.writeUint32(0),e.writer.writeUint16(0),e.writer.writeUint16(1),e.writer.writeUint16(0),e.writer.writeUint16(0),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeUint16(t.width),e.writer.writeUint16(t.height),e.writer.writeUint32(4718592),e.writer.writeUint32(4718592),e.writer.writeUint32(0),e.writer.writeUint16(1),e.writer.writeUint8(0),e.writer.writeBytes(new Uint8Array(31)),e.writer.writeUint16(24),e.writer.writeUint16(-1),ms(t)?Cs(e,t):hs(t)?(ws(e,t),t.parsedSequenceHeader.colorConfig&&(J(e,q.colr,11),e.writer.writeBytes(q.nclx),e.writer.writeUint16(t.parsedSequenceHeader.colorConfig.colorPrimaries),e.writer.writeUint16(t.parsedSequenceHeader.colorConfig.transferCharacteristics),e.writer.writeUint16(t.parsedSequenceHeader.colorConfig.matrixCoefficients),e.writer.writeUint8(t.parsedSequenceHeader.colorConfig.colorRange?1:0))):gs(t)&&Ts(e,t),t.pixelAspectRatio&&(J(e,ts.pasp,8),e.writer.writeUint32(t.pixelAspectRatio.numerator),e.writer.writeUint32(t.pixelAspectRatio.denumerator)),t.bitrate&&(J(e,ts.btrt,12),e.writer.writeUint32(0),e.writer.writeUint32(t.bitrate),e.writer.writeUint32(t.bitrate)),e.writer.writeUint32At(n,e.writer.position()-n)},Ds=(e,t,n)=>{let r=3;for(e.writer.writeUint8(t);r>0;r--)e.writer.writeUint8(n>>7*r|128);e.writer.writeUint8(n&127)},Os=(e,t)=>{let n=t.decoderConfig.byteLength>0?t.decoderConfig.byteLength+5:0,r=e.writer.position();Y(e,q.esds,0,0,0),Ds(e,3,21+n+5+1),e.writer.writeUint16(t.trackId),e.writer.writeUint8(0),Ds(e,4,13+n);let i=t.codec===`mp3`&&t.sampleRate>24e3?107:64;e.writer.writeUint8(i),e.writer.writeUint8(21),e.writer.writeUint24(0),e.writer.writeUint32(t.bitrate||0),e.writer.writeUint32(t.bitrate||0),t.decoderConfig.byteLength>0&&(Ds(e,5,t.decoderConfig.byteLength),e.writer.writeBytes(t.decoderConfig)),Ds(e,6,1),e.writer.writeUint8(2),e.writer.writeUint32At(r,e.writer.position()-r)},ks=e=>{switch(e){case`aac`:case`mp3`:return q.mp4a;case`opus`:return q.Opus}},As=(e,t)=>{let n=e.writer.position();J(e,q.dOps,0),e.writer.writeUint8(0);let r=t.decoderConfig,i=new DataView(r.buffer,r.byteOffset,r.byteLength);e.writer.writeUint8(i.getUint8(9)),e.writer.writeUint16(i.getUint16(10,!0)),e.writer.writeUint32(i.getUint32(12,!0)),e.writer.writeUint16(i.getUint16(16,!0)),e.writer.writeBytes(t.decoderConfig.slice(18)),e.writer.writeUint32At(n,e.writer.position()-n)},js=(e,t)=>{let n=e.writer.position();switch(J(e,ks(t.codec),0),e.writer.writeUint32(0),e.writer.writeUint16(0),e.writer.writeUint16(1),e.writer.writeUint16(0),e.writer.writeUint16(0),e.writer.writeUint32(0),e.writer.writeUint16(t.channelCount),e.writer.writeUint16(16),e.writer.writeUint32(0),e.writer.writeUint16(t.sampleRate),e.writer.writeUint16(0),t.codec){case`aac`:case`mp3`:Os(e,t);break;case`opus`:As(e,t);break}t.bitrate&&(J(e,ts.btrt,12),e.writer.writeUint32(0),e.writer.writeUint32(t.bitrate),e.writer.writeUint32(t.bitrate)),e.writer.writeUint32At(n,e.writer.position()-n)},Ms=(e,t)=>{let n=e.writer.position();J(e,q.stbl,0);let r=e.writer.position();Y(e,q.stsd,0,0,0),e.writer.writeUint32(1),_s(t)?Es(e,t):vs(t)&&js(e,t),e.writer.writeUint32At(r,e.writer.position()-r),Y(e,ts.stts,4,0,0),e.writer.writeUint32(0),Y(e,ts.stsc,4,0,0),e.writer.writeUint32(0),Y(e,ts.stsz,8,0,0),e.writer.writeUint32(0),e.writer.writeUint32(0),Y(e,ts.stco,4,0,0),e.writer.writeUint32(0),e.writer.writeUint32At(n,e.writer.position()-n)},Ns=(e,t)=>{let n=e.writer.position();J(e,q.minf,0),_s(t)?(Y(e,q.vmhd,8,0,1),e.writer.writeUint32(0),e.writer.writeUint32(0)):vs(t)&&(Y(e,q.smhd,4,0,0),e.writer.writeUint16(0),e.writer.writeUint16(0)),Ss(e),Ms(e,t),e.writer.writeUint32At(n,e.writer.position()-n)},Ps=(e,t)=>{let n=e.writer.position();J(e,q.mdia,0),bs(e,t),xs(e,t),Ns(e,t),e.writer.writeUint32At(n,e.writer.position()-n)},Fs=(e,t,n)=>{let r=e.writer.position();J(e,q.trak,0),ys(e,t,n),Ps(e,t),e.writer.writeUint32At(r,e.writer.position()-r)},Is=(e,t)=>{Y(e,q.trex,20,0,0),e.writer.writeUint32(t.trackId),e.writer.writeUint32(1),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeUint32(0)},Ls=(e,t)=>{let n=e.writer.position();J(e,q.mvex,0),t.forEach(t=>Is(e,t)),e.writer.writeUint32At(n,e.writer.position()-n)},Rs=(e,t,n)=>{let r=e.writer.position();J(e,K(t),0),J(e,ts.data,0),e.writer.writeUint32(1),e.writer.writeUint32(0),e.writer.writeBytes(K(n)),e.writer.writeUint32At(r,e.writer.position()-r),e.writer.writeUint32At(r+8,e.writer.position()-r-8)},zs=(e,t)=>{let n=e.writer.position();Y(e,q.meta,0,0,0);let r=e.writer.position();J(e,q.hdlr,25),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeBytes(ts.mdir),e.writer.writeBytes(ts.appl),e.writer.writeUint32(0),e.writer.writeUint32(0),e.writer.writeUint8(0),e.writer.writeUint32At(r,e.writer.position()-r);let i=e.writer.position();J(e,q.ilst,0),t==null||t.forEach((t,n)=>Rs(e,n,t)),e.writer.writeUint32At(i,e.writer.position()-i),e.writer.writeUint32At(n,e.writer.position()-n)},Bs=(e,t)=>{let n=e.writer.position();J(e,q.udta,0),zs(e,t),e.writer.writeUint32At(n,e.writer.position()-n)},Vs=(e,t,n,r)=>{let i=e.writer.position();J(e,q.moov,0),ps(e,0,n),t.forEach(t=>Fs(e,t,n)),Ls(e,t),r&&Bs(e,r),e.writer.writeUint32At(i,e.writer.position()-i)},Hs=(e,t)=>{let n=e.writer.position();Y(e,q.tfhd,16,0,56),e.writer.writeUint32(t.trackId),e.writer.writeUint32(t.defaultDuration||0),e.writer.writeUint32(t.defaultSize||0),e.writer.writeUint32(t.defaultFlags||0),e.writer.writeUint32At(n,e.writer.position()-n)},Us=(e,t)=>{let n=e.writer.position();Y(e,q.tfdt,8,1,0);let r=Math.floor(t.timestamp/4294967296),i=(t.timestamp&4294967295)>>>0;e.writer.writeUint32(r),e.writer.writeUint32(i),e.writer.writeUint32At(n,e.writer.position()-n)},Ws=(e,t)=>{if(!t.samples[0])throw Error(`At least one sample must be provided`);let n=t.samples.some(e=>!!e.compositionTimeOffset),r=Gs(t.samples[0])!==t.defaultFlags,i=t.samples.length>1,a=1;r&&(a|=4),n&&(a|=2048),i&&(a|=512,a|=256,a|=1024);let o=e.writer.position();Y(e,q.trun,16,1,a),e.writer.writeUint32(t.samples.length);let s=e.writer.position();e.writer.writeUint32(0),r&&e.writer.writeUint32(Gs(t.samples[0]));for(let r of t.samples)i&&(e.writer.writeUint32(r.duration),e.writer.writeUint32(r.data.byteLength),e.writer.writeUint32(Gs(r))),n&&e.writer.writeUint32(r.compositionTimeOffset||0);e.writer.writeUint32At(s,e.writer.position()-e.moofOffset+8),e.writer.writeUint32At(o,e.writer.position()-o)},Gs=e=>e.isSync?33554432:16842752,Ks=(e,t)=>{let n=e.writer.position();J(e,q.traf,0),Hs(e,t),Us(e,t),Ws(e,t),e.writer.writeUint32At(n,e.writer.position()-n)},qs=(e,t)=>{Y(e,q.mfhd,4,0,0),e.writer.writeUint32(t)},Js=(e,t)=>{let n=e.writer.position();J(e,q.moof,0),qs(e,t.sequenceNumber),Ks(e,t),e.writer.writeUint32At(n,e.writer.position()-n)},Ys=(e,t,n)=>{J(e,q.mdat,n);for(let n of t.samples){let t=n.data instanceof ArrayBuffer?new Uint8Array(n.data):n.data;e.writer.writeBytes(t)}},Xs=(e,t)=>{let n=new cs,r=e.filter(e=>_s(e)&&ms(e)).length>0,i=e.filter(e=>_s(e)&&gs(e)).length>0;return e.filter(e=>_s(e)&&hs(e)).length>0?ls(n,os):i?ls(n,as):r?ls(n,is):ls(n,ss),Vs(n,e,es,t),n.writer.buffer()},Zs=e=>{var t;let n=0;for(let t of e.samples)n+=t.data.byteLength;let r=new cs(n+256);return((t=e.samples[0])==null?void 0:t.producerReferenceTime)!==void 0&&fs(r,e.trackId,e.samples[0].producerReferenceTime,e.timestamp),r.moofOffset=r.writer.position(),Js(r,e),Ys(r,e,n),r.writer.bufferExact()},Qs=(e,t)=>{let n=e[0];if(!n)throw Error(`At least one sample must be provided`);return Zs({trackId:1,timestamp:n.timestamp,sequenceNumber:t,defaultSize:n.data.byteLength,defaultFlags:33554432,defaultDuration:n.duration,samples:e})},$s=(e,t,n,r)=>Xs([{type:`audio`,codec:`aac`,decoderConfig:e,channelCount:t,sampleRate:n,timescale:r,duration:0,trackId:1}]),ec=e=>{let{sequenceParameterSets:t,pictureParameterSets:n}=Ga(e),r=t[0],i=n[0];if(!r||!i)throw Error(`No sps or pps provided`);return Ka(r)},tc=(e,t)=>{let n=e[0];if(!n)throw Error(`At least one sample must be provided`);return Zs({trackId:1,timestamp:n.timestamp,sequenceNumber:t,defaultSize:n.data.byteLength,defaultFlags:n.isSync?33554432:16842752,defaultDuration:n.duration,samples:e})},nc=(e,t)=>{let{sequenceParameterSets:n,pictureParameterSets:r}=Ga(e),i=ec(e);return Xs([{type:`video`,sequenceParameterSets:n.map(e=>new Uint8Array(e)),pictureParameterSets:r.map(e=>new Uint8Array(e)),width:i.width,height:i.height,timescale:t,duration:0,trackId:1}])},rc=(e,t)=>{let n=e[0];if(!n)throw Error(`At least one sample must be provided`);return Zs({trackId:1,timestamp:n.timestamp,sequenceNumber:t,defaultSize:n.data.byteLength,defaultFlags:n.isSync?33554432:16842752,defaultDuration:n.duration,samples:e})},ic=(e,t,n,r)=>Xs([{type:`video`,hvcC:new Uint8Array(e),width:n,height:r,timescale:t,duration:0,trackId:1}]),ac=(e,t,n)=>Xs([{type:`audio`,trackId:1,channelCount:t,timescale:n,codec:`opus`,decoderConfig:e,duration:0,sampleRate:48e3}]),oc=(e,t)=>{let n=e[0];if(!n)throw Error(`At least one sample must be provided`);return Zs({trackId:1,timestamp:n.timestamp,sequenceNumber:t,defaultSize:n.data.byteLength,defaultFlags:33554432,defaultDuration:n.duration,samples:e})};V(),T(),k(),j();var sc=e=>{if(e.length<=78)return;let t=78;for(;t+8<=e.length;){let n=new DataView(e.buffer,e.byteOffset+t,8),r=n.getUint32(0),i=String.fromCharCode(n.getUint8(4),n.getUint8(5),n.getUint8(6),n.getUint8(7));if(r<8||t+r>e.length)break;if(i===`av1C`)return e.slice(t+8,t+r);t+=r}};Symbol.iterator;var cc=e=>{let t=new Oe(e);return t.peekBit()===1&&t.readBits(32),dc(t),Sc(t)},lc=e=>{let t=0,n=0;for(let r=0;r<8;r++){let i=e.readBits(8);if(t|=(i&127)<<r*7,n+=1,(i&128)!=128)break}return[n,t]},uc=e=>{let t=0;for(;t<100&&e.readBit()===0;)t++;return t>=32?0:e.readBits(t)+(1<<t)-1},dc=e=>{let t=e.remainingBits()/8,n=e.readBits(8);if(n>>7&1)return;let r=n>>3&15,i=n>>2&1,a=n>>1&1;i===1&&e.readBits(8);let[o,s]=a?lc(e):[0,t];return{headerLength:1+i+o,type:r,obuSize:s}},fc=e=>{let t=e.readBits(32),n=e.readBits(32),r=e.readBit()!==0,i=0;return r&&(i=uc(e)+1),{timescale:n,equalPictureInterval:r,numUnitsInDisplayTick:t,numTicksPerPicture:i}},pc=2,mc=2,hc=1,gc=2,_c=2,vc=13,yc=0,bc=2,xc=0,Sc=e=>{var t;let n=e.readBits(3),r=e.readBit()!==0,i=e.readBit()!==0,a,o=!1,s=!1,c=!1,l=0,u=0,d=[];if(i)e.readBits(5);else{if(s=e.readBit()!==0,s&&(a=fc(e),o=e.readBit()!==0,o))throw Error(`Not implemented`);c=e.readBit()!==0;let t=e.readBits(5)+1;for(let n=0;n<t;n++){let t=e.readBits(12),n=e.readBits(5),r=0;if(n>7&&(r=e.readBit()),o)throw Error(`decoderModelInfoPresentFlag==1`);c&&e.readBit()!==0&&e.readBits(4),d.push({tier:r,operatingPointIdc:t,seqLevelIdx:n})}}let f=e.readBits(4)+1,p=e.readBits(4)+1,m=e.readBits(f)+1,h=e.readBits(p)+1,g=!1;g=i?!1:e.readBit()!==0,g&&(l=e.readBits(4)+2,u=e.readBits(3)+1);let _=e.readBit()!==0,v=e.readBit()!==0,ee=e.readBit()!==0,y=!1,b=!1,te=!1,ne=!1,re=!1,ie=!1,ae=!1,oe=pc,x=mc,se=0;i||(y=e.readBit()!==0,b=e.readBit()!==0,te=e.readBit()!==0,ne=e.readBit()!==0,re=e.readBit()!==0,re&&(ie=e.readBit()!==0,ae=e.readBit()!==0),oe=e.readBit()===0?e.readBit():pc,x=oe>0?e.readBit()>0?mc:e.readBit():mc,se=re?e.readBits(3):0);let S=e.readBit()!==0,ce=e.readBit()!==0,C=e.readBit()!==0;return{seqProfile:n,stillPicture:r,reducedStillPictureHeader:i,timingInfoPresentFlag:s,timingInfo:(t=a)==null?{equalPictureInterval:!1,numUnitsInDisplayTick:0,timescale:0,numTicksPerPicture:0}:t,decoderModelInfoPresentFlag:o,initialDisplayDelayPresentFlag:c,operatingPoints:d,frameWidthBits:f,frameHeightBits:p,maxFrameWidth:m,maxFrameHeight:h,frameIdNumbersPresentFlag:g,deltaFrameIdLength:l,additionalFrameIdLength:u,use_128x128Superblock:_,enableFilterIntra:v,enableIntraEdgeFilter:ee,enableInterintraCompound:y,enableMaskedCompound:b,enableWarpedMotion:te,enableDualFilter:ne,enableOrderHint:re,enableJntComp:ie,enableRefFrameMvs:ae,seqForceScreenContentTools:oe,seqForceIntegerMv:x,orderHintBits:se,enableSuperres:S,enableCdef:ce,enableRestoration:C,colorConfig:Cc(e,n),filmGrainParamsPresent:e.readBit()!==0}},Cc=(e,t)=>{let n=e.readBit()!==0,r=8,i=!1;t===2&&n?r=e.readBit()===0?10:12:t<=2&&(r=n?10:8),i=t===1?!1:e.readBit()!==0;let a=i?1:3,o=e.readBit()!==0,s=gc,c=_c,l=bc,u=!1,d=0,f=0,p=xc,m=!1;return o&&(s=e.readBits(8),c=e.readBits(8),l=e.readBits(8)),i?(u=e.readBit()!==0,d=1,f=1,p=xc,m=!1,{highBitDepth:n,bitDepth:r,monoChrome:i,chromaSamplePosition:p,colorPrimaries:s,colorRange:u,matrixCoefficients:l,numPlanes:a,separateUvDeltaQ:m,subsamplingX:d,subsamplingY:f,transferCharacteristics:c}):s===hc&&c===vc&&l===yc?(u=!0,d=0,f=0,{highBitDepth:n,bitDepth:r,monoChrome:i,chromaSamplePosition:p,colorPrimaries:s,colorRange:u,matrixCoefficients:l,numPlanes:a,separateUvDeltaQ:m,subsamplingX:d,subsamplingY:f,transferCharacteristics:c}):(u=e.readBit()!==0,t===0?(d=1,f=1):t===1?(d=0,f=0):r===12?(d=e.readBit(),f=d===0?0:e.readBit()):(d=1,f=0),d!==0&&f!==0&&(p=e.readBits(2)),m=e.readBit()!==0,{highBitDepth:n,bitDepth:r,monoChrome:i,chromaSamplePosition:p,colorPrimaries:s,colorRange:u,matrixCoefficients:l,numPlanes:a,separateUvDeltaQ:m,subsamplingX:d,subsamplingY:f,transferCharacteristics:c})},wc=e=>{let t=cc(e);if(t)return{width:t.maxFrameWidth,height:t.maxFrameHeight}},Tc=(e,t)=>{let n=e[0];if(!n)throw Error(`At least one sample must be provided`);return Zs({trackId:1,timestamp:n.timestamp,sequenceNumber:t,defaultSize:n.data.byteLength,defaultFlags:n.isSync?33554432:16842752,defaultDuration:n.duration,samples:e})},Ec=(e,t)=>{let n=cc(e);if(!n)throw Error(`Failed to parse sequence header`);return Xs([{type:`video`,parsedSequenceHeader:n,sequenceHeader:new Uint8Array(e),width:n.maxFrameWidth,height:n.maxFrameHeight,timescale:t,duration:0,trackId:1}])},Dc=e=>{let{codec:t,initData:n,timescale:r}=e;switch(t){case`h264`:return kc(n,r);case`h265`:return jc(n,r,e.width,e.height);case`av1`:return Ac(n,r);case`opus`:return Mc(n,r,e.channelCount||2);case`aac`:return Nc(n,r,e.channelCount||2);default:throw Error(`Failed to initialize ${t} segment`)}},Oc=(e,t)=>{switch(e){case`h264`:return ec(t);case`av1`:return wc(t)}},kc=(e,t)=>nc(e,t),Ac=(e,t)=>Ec(e,t),jc=(e,t,n,r)=>{if(!n||!r)throw Error(`HEVC init segment requires width and height`);return ic(e,t,n,r)},Mc=(e,t,n)=>ac(new Uint8Array(e),n,t),Nc=(e,t,n)=>$s(new Uint8Array(e),n,t,t),Pc=(e,t)=>{if(!e[0])throw Error(`At least one sample must be provided`);switch(e[0].codec){case`h264`:return tc(e,t);case`h265`:return rc(e,t);case`opus`:return oc(e,t);case`aac`:return Qs(e,t);case`av1`:return Tc(e,t);default:throw Error(`Unsupported codec ${e[0].codec}`)}},Fc,Ic,Lc=n((()=>{Fc=e=>{if(!e)return;let t=e.channelMappingTable,n=new Uint8Array(19+t.byteLength),r=new DataView(n.buffer,n.byteOffset,n.byteLength);return n.set([79,112,117,115,72,101,97,100],0),r.setUint8(8,1),r.setUint8(9,e.channelCount),r.setUint16(10,e.preSkip,!0),r.setUint32(12,e.inputSampleRate,!0),r.setInt16(16,e.outputGain,!0),r.setUint8(18,e.channelMappingFamily),t.byteLength>0&&n.set(t,19),n},Ic=(e,t)=>{if(e<1||e>2)return;let n=new Uint8Array(19),r=new DataView(n.buffer,n.byteOffset,n.byteLength);return n.set([79,112,117,115,72,101,97,100]),r.setUint8(8,1),r.setUint8(9,e),r.setUint16(10,3840,!0),r.setUint32(12,t,!0),r.setInt16(16,0,!0),r.setUint8(18,0),n}})),Rc=n((()=>{Lc()}));V();var zc=function(e){return e[e.NONE=0]=`NONE`,e[e.SYNC=1]=`SYNC`,e[e.INIT=2]=`INIT`,e[e.RENDITIONS=4]=`RENDITIONS`,e[e.TIMED_METADATA=8]=`TIMED_METADATA`,e[e.HAS_COMPOSITION_TIME=16]=`HAS_COMPOSITION_TIME`,e}({}),Bc=e=>!!(e&zc.SYNC),Vc=e=>!!(e&zc.INIT),Hc=e=>!!(e&zc.RENDITIONS),Uc=e=>!!(e&zc.TIMED_METADATA),Wc=e=>!!(e&zc.HAS_COMPOSITION_TIME),Gc=e=>{let t=new DataView(e,0),n=t.getUint8(0),r=t.getUint16(1),i=t.getUint8(3),a=t.getUint8(4),o=Ae(new Uint8Array(e),5,12),s=t.getUint32(13),c=Wc(i)?t.getInt16(17):void 0;return{version:n,renditionId:a,flags:i,timestamp:o,timescale:s,payload:e.slice(r),compositionTimeOffset:c}},Kc=`data:video/mp4;base64,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`;h(),N();var qc=()=>`wakeLock`in navigator&&window.navigator.userAgent.indexOf(`Samsung`)===-1,Jc=class{constructor(){m(this,`enabled`,!1),m(this,`wakeLockVideo`,void 0),m(this,`_wakeLock`,null),m(this,`handleVisibilityChange`,()=>{this._wakeLock!==null&&document.visibilityState===`visible`&&this.enable()}),qc()&&(this._wakeLock=null,document.addEventListener(`visibilitychange`,this.handleVisibilityChange),document.addEventListener(`fullscreenchange`,this.handleVisibilityChange))}_addSourceToVideo(e,t,n){let r=document.createElement(`source`);r.src=n,r.type=`video/${t}`,e.appendChild(r)}get isEnabled(){return this.enabled}attach(e){if(!qc()){if(!this.wakeLockVideo){let e=document.createElement(`video`);this.wakeLockVideo=e,this.wakeLockVideo.setAttribute(`title`,`Live Stream`),this.wakeLockVideo.setAttribute(`playsinline`,``),this._addSourceToVideo(this.wakeLockVideo,`mp4`,Kc),Object.assign(this.wakeLockVideo.style,{position:`absolute`,left:`-100%`,top:`-100%`}),this.wakeLockVideo.addEventListener(`loadedmetadata`,()=>{e.addEventListener(`timeupdate`,()=>{e.currentTime>.5&&(e.currentTime=Math.random())})})}e&&e.appendChild(this.wakeLockVideo)}}enable(){var e=this;return M(function*(){if(qc())return navigator.wakeLock.request(`screen`).then(t=>{e._wakeLock=t,e.enabled=!0,e._wakeLock.addEventListener(`release`,()=>{})}).catch(()=>{e.enabled=!1});var t,n;return((t=(n=e.wakeLockVideo)==null?void 0:n.play())==null?Promise.resolve():t).then(t=>(e.enabled=!0,t)).catch(()=>{e.enabled=!1})})()}disable(){if(qc())this._wakeLock&&this._wakeLock.release(),this._wakeLock=null;else{var e,t;(e=this.wakeLockVideo)==null||e.pause(),(t=this.wakeLockVideo)==null||t.remove()}this.enabled=!1}unload(){document.removeEventListener(`visibilitychange`,this.handleVisibilityChange),document.removeEventListener(`fullscreenchange`,this.handleVisibilityChange),this.disable()}};T(),k(),j(),L(),D();var Yc=/\r\n|\r|\n/,Xc=new WeakMap,Zc=new WeakMap,Qc=class{constructor(e){w(this,Xc,void 0),w(this,Zc,void 0),O(Xc,this,e),O(Zc,this,0)}skipEmptyLines(){let e=0;for(;A(Xc,this)[A(Zc,this)]===``;){var t;O(Zc,this,(t=A(Zc,this),t++,t)),e++}return e}readLine(){var e,t;return A(Xc,this)[O(Zc,this,(e=A(Zc,this),t=e++,e)),t]}takeUntilEmptyLine(){let e=[];for(;A(Xc,this)[A(Zc,this)]!==``;){let t=this.readLine();if(t===void 0)break;e.push(t)}return e}linesLeft(){return A(Xc,this).length-A(Zc,this)}},$c=new WeakSet,el=class{constructor(){I(this,$c)}parse(e){let t=[],n=new Qc(e.split(Yc)),r=n.readLine();if(!r||!r.startsWith(`WEBVTT`))throw Error(`missing 'WEBVTT' signature`);for(;n.readLine()!==``;);for(;n.linesLeft()>0;){let e=E($c,this,tl).call(this,n);e&&t.push(e),n.skipEmptyLines()}return t}};function tl(e){e.skipEmptyLines();let t=new Qc(e.takeUntilEmptyLine()),n=t.readLine(),r;if(n!=null&&n.startsWith(`NOTE`))return;if(n!=null&&n.includes(`-->`)||(r=n,n=t.readLine()),n===void 0)throw Error(`expected cue line`);let[i,a]=n.split(`-->`).map(e=>e.trim());if(!i||!a)throw Error(`a cue needs both start and end time start: ${i} end: ${a}`);let[o,s]=a.split(` `,1).map(e=>e.trim());if(!o)throw Error(`missing end time: ${o}`);let c=t.readLine();if(!c)throw Error(`missing text`);let l=E($c,this,nl).call(this,i),u=E($c,this,nl).call(this,o);return{id:r,startTime:l,endTime:u,text:c}}function nl(e){let t=e.split(`:`);if(t.length===2){let[e=0,n=0]=t.map(e=>parseFloat(e));return e*60+n}let[n=0,r=0,i=0]=t.map(e=>parseFloat(e));return n*60*60+r*60+i}var rl=e=>{let t=window;t.vindralInstances=t.vindralInstances||{},t.vindralInstances[e.getStatistics().clientId.substring(0,8)]=e};Ti(),V(),h(),N();var il=class extends Ht{constructor({type:e,autoplay:t,muted:n,volume:r,logger:i,poster:a}){var o;super(),o=this,m(this,`element`,void 0),m(this,`logger`,void 0),m(this,`seekTimes`,new C(10)),m(this,`seekStartTime`,void 0),m(this,`_totalSeekTime`,0),m(this,`_userProvidedMuted`,void 0),m(this,`timers`,new Vn),m(this,`_userHasProvidedInput`,!1),m(this,`_isPaused`,!0),m(this,`isActivated`,!1),m(this,`dummy`,void 0),m(this,`addEventListeners`,()=>{this.element.addEventListener(`stalled`,this.onEvent),this.element.addEventListener(`canplay`,this.onEvent),this.element.addEventListener(`loadeddata`,this.onEvent),this.element.addEventListener(`loadedmetadata`,this.onEvent),this.element.addEventListener(`canplaythrough`,this.onEvent),this.element.addEventListener(`waiting`,this.onWaiting),this.element.addEventListener(`playing`,this.onPlayPause),this.element.addEventListener(`pause`,this.onPlayPause),this.element.addEventListener(`seeked`,this.onSeekEnd),this.element.addEventListener(`seeking`,this.onSeekStart),this.element.addEventListener(`volumechange`,this.onVolumeChange),this.element.addEventListener(`timeupdate`,this.onBufferStateChange),this.element.addEventListener(`progress`,this.onBufferStateChange)}),m(this,`removeEventListeners`,()=>{this.element.removeEventListener(`stalled`,this.onEvent),this.element.removeEventListener(`canplay`,this.onEvent),this.element.removeEventListener(`loadeddata`,this.onEvent),this.element.removeEventListener(`loadedmetadata`,this.onEvent),this.element.removeEventListener(`canplaythrough`,this.onEvent),this.element.removeEventListener(`waiting`,this.onWaiting),this.element.removeEventListener(`playing`,this.onPlayPause),this.element.removeEventListener(`pause`,this.onPlayPause),this.element.removeEventListener(`seeked`,this.onSeekEnd),this.element.removeEventListener(`seeking`,this.onSeekStart),this.element.removeEventListener(`volumechange`,this.onVolumeChange),this.element.removeEventListener(`timeupdate`,this.onBufferStateChange),this.element.removeEventListener(`progress`,this.onBufferStateChange)}),m(this,`_iosHackEnterPiPMode`,()=>{let e=this.element.parentElement,t=this.element.clientWidth/this.element.clientHeight;this.element.style.position=`fixed`,this.element.style.opacity=`0`,this.element.style.pointerEvents=`none`,e&&(this.dummy=document.createElement(`video`),this.dummy.style.paddingBottom=`calc(100% / ${t})`,this.dummy.style.width=`100%`,this.dummy.style.height=`0px`,e.appendChild(this.dummy))}),m(this,`_iosHackExitPiPMode`,()=>{this.element.style.position=`relative`,this.element.style.opacity=`1`,this.element.style.pointerEvents=`auto`,this.dummy&&(this.dummy.remove(),this.dummy=void 0)}),m(this,`attach`,e=>{this.element.remove(),e.appendChild(this.element)}),m(this,`load`,()=>{this.timers.setInterval(this.onPlayPause,500),this.timers.setTimeout(()=>{this.timers.setInterval(this.onBufferStateChange,500)},1e4)}),m(this,`unload`,()=>{this.timers.unload(),this.removeEventListeners()}),m(this,`getPlaybackRate`,()=>this.element.playbackRate),m(this,`getPlaybackState`,()=>this.element.readyState>=this.element.HAVE_FUTURE_DATA?`playing`:`buffering`),m(this,`getMediaElementState`,()=>this.element.paused?`paused`:`playing`),m(this,`setPlaybackRate`,e=>void(this.element.playbackRate=e)),m(this,`getBuffer`,()=>{let e=[],t=this.element.buffered;if(!t)return[];for(let n=0;n<t.length;n++)e.push({start:t.start(n)*1e3,end:t.end(n)*1e3});return e}),m(this,`pause`,()=>{this._isPaused=!1,this.element.pause()}),m(this,`tryPlay`,()=>{this.element.muted=this._userProvidedMuted,this._play().catch(x)}),m(this,`play`,()=>{this.element.muted=this._userProvidedMuted,this._play().catch(e=>{if(e instanceof Error){let t=new H(`Media Play Error`,{source:e,isFatal:!1,code:`media_play_error`});this.emit(`error`,t)}})}),m(this,`_play`,M(function*(){try{yield o.element.play(),o._userHasProvidedInput=!o.muted||o._userProvidedMuted}catch(e){if(e instanceof Error&&e.name===`NotAllowedError`)if(o._userHasProvidedInput=!1,o.element.muted)o.emit(`needs user input`,{forAudio:!0,forVideo:!0});else return o.element.muted=!0,o.emit(`needs user input`,{forAudio:!0,forVideo:!1}),o._play();else throw e}})),m(this,`onEvent`,e=>{this.logger.trace(e.type,{state:this.element.readyState,event:e,playbackState:this.getPlaybackState()})}),m(this,`onWaiting`,e=>{this.onEvent(e),this.onBufferStateChange()}),m(this,`onVolumeChange`,()=>{this.logger.info(`volume state`,{isMuted:this.element.muted,volume:this.element.volume}),this.emit(`volume state`,{isMuted:this.element.muted,volume:this.element.volume})}),m(this,`onPlayPause`,()=>{this._isPaused!==this.element.paused&&(this._isPaused=this.element.paused,this.logger.info(`player pause change`,{paused:this.element.paused}),this.emit(`media element state`,this.getMediaElementState()))}),m(this,`getBufferState`,()=>({isPaused:this.element.paused,buffered:this.getBuffer(),currentTime:this.currentTime,playbackState:this.getPlaybackState()})),m(this,`onBufferStateChange`,()=>{this.emit(`buffer state`,this.getBufferState())}),m(this,`onSeekStart`,()=>{this.seekStartTime=Date.now()}),m(this,`onSeekEnd`,()=>{if(!this.seekStartTime)return;let e=Date.now()-this.seekStartTime;this.seekTimes.push(e),this._totalSeekTime+=e,this.seekStartTime=void 0}),this.logger=i,this._userProvidedMuted=n,this.element=document.createElement(e),this.element instanceof HTMLVideoElement&&(this.element.playsInline=!0),this.element.controls=!1,this.element.autoplay=t,this.element.muted=n,r!==void 0&&(this.element.volume=r),this.element.style.display=`block`,this.element.style.width=`100%`,this.element.disableRemotePlayback=!0,this.element.setAttribute(`poster`,`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAJCAQAAACRI2S5AAAAEElEQVR42mNkIAAYRxWAAQAG9gAKqv6+AwAAAABJRU5ErkJggg==`),this.onPlayPause(),setTimeout(()=>{!this.element||!a||this.element.setAttribute(`poster`,a)},0),this.addEventListeners()}get seekTime(){return this.seekTimes.isEmpty()?0:jt(this.seekTimes.items())}get totalSeekTime(){return this._totalSeekTime}get isSeeking(){return this.element.seeking}get currentTime(){return Number.isNaN(this.element.currentTime)?0:this.element.currentTime*1e3}set currentTime(e){Number.isFinite(e)&&(this.element.currentTime=e/1e3)}get playbackRate(){return this.element.playbackRate}set playbackRate(e){this.element.playbackRate=e}get volume(){return this.element.volume}set volume(e){this.element.volume=e}get muted(){return this.element.muted}set muted(e){this._userProvidedMuted=e,this.element.muted=e}get userHasProvidedInput(){return this._userHasProvidedInput}get isPaused(){return this._isPaused}},al=e=>{if(!navigator.mediaCapabilities)return Promise.resolve({smooth:!0,supported:!0,powerEfficient:!0,failedToQuery:!0});if(e.codec===`webvtt`)throw Error(`WebVTT is not supported`);let t;return t=pr(e)?{type:`media-source`,audio:{contentType:mr(e),bitrate:e.bitRate,channels:e.channels.toString(),samplerate:e.sampleRate}}:{type:`media-source`,video:{contentType:mr(e),bitrate:e.bitRate,width:e.width,height:e.height,framerate:e.frameRate[0]/e.frameRate[1]}},navigator.mediaCapabilities.decodingInfo(t)};h(),z();var ol,sl=.15,cl=.2,ll=.4,ul=.5,dl=.6,fl=15,pl={cooldownTime:3e3,maxBufferingEvents:{last10Seconds:0},maxBufferingRatio:{last10Seconds:0},maxRecentDowngradesCount:3,maxDowngradeLookbackMs:60*1e3,minTimeSpentPlaying:{factor:.5,ratio:.1},maxCooldownRatio:2},ml=e=>t=>t>e,hl=class{constructor(e,t,n,r){m(this,`qualityOfServiceSource`,void 0),m(this,`config`,void 0),m(this,`emitter`,void 0),m(this,`logger`,void 0),m(this,`isSuspended`,!1),m(this,`lastAdaptTime`,Date.now()),m(this,`isEnabled`,!0),m(this,`load`,()=>{this.emitter.on(`buffer state`,this.onBufferState),this.emitter.on(`adapted level`,this.onAdaptedLevel)}),m(this,`unload`,()=>{this.emitter.off(`buffer state`,this.onBufferState),this.emitter.off(`adapted level`,this.onAdaptedLevel)}),m(this,`suspend`,()=>{this.isSuspended=!0}),m(this,`unsuspend`,()=>{this.reset(),this.isSuspended=!1}),m(this,`reset`,(e=0)=>{this.lastAdaptTime=Date.now()+e}),m(this,`getStatistics`,()=>({isAbrEnabled:this.isEnabled})),m(this,`isQoSOk`,e=>{let t=this.qualityOfServiceSource.getLevelStats(e),{upgradesFromLevel:n,downgradesFromLevel:r}=t==null?{upgradesFromLevel:[],downgradesFromLevel:[]}:t,i=Date.now()-this.config.maxDowngradeLookbackMs,a=r.filter(ml(i)).length,o=n.filter(ml(i)).length;if(a-o>this.config.maxRecentDowngradesCount)return this.logger.debug(`Recent downgrades count is over maximum`,{downgrades:a-o,maxRecentDowngradesCount:this.config.maxRecentDowngradesCount}),!1;let s=this.qualityOfServiceSource.timeSpentPlayingInAtLeastLevelRatio(e),c=s*(this.qualityOfServiceSource.timeActive()-this.qualityOfServiceSource.timeSpentBuffering())/this.config.maxDowngradeLookbackMs;if(a>1&&c<this.config.minTimeSpentPlaying.factor)return this.logger.debug(`Time spent playing is too low`,{recentDowngrades:a,timeSpentPlayingInAtLeastLevelRatio:s}),!1;if(a>1&&s<this.config.minTimeSpentPlaying.ratio)return this.logger.debug(`Time spent playing in at least this level is too low`,{recentDowngrades:a,timeSpentPlayingInAtLeastLevelRatio:s}),!1;let l=Math.max(0,r.length-n.length-c),u=Date.now()-this.config.maxDowngradeLookbackMs*l,d=r.filter(ml(u)).length;return d&&l>this.config.maxCooldownRatio?(this.logger.debug(`Too many downgrades compared to time spent playing`,{downgradesWithinCooldownTime:d,cooldownRatio:l}),!1):!0}),m(this,`onBufferState`,e=>{if(!this.isEnabled||this.isSuspended||this.lastAdaptTime+this.config.cooldownTime>Date.now())return;let{bufferFullness:t,general:n}=this.qualityOfServiceSource.getMetrics(),r=this.qualityOfServiceSource.getBufferFullnessRegression();if(!r)return;let i=10*1e3,a=30*1e3,{slope:o}=r,s=r.predict(fl),c=o<0,l=r.predict(fl)<ll&&r.slope<0,u=r.predict(fl)>dl,d=this.qualityOfServiceSource.timeSpentBufferingLast(a),f=this.qualityOfServiceSource.timeSpentActiveLast(a),p=this.qualityOfServiceSource.bufferingEventsLast(a),m=f>0?d/f:0,h=this.qualityOfServiceSource.getTargetBufferTime();if(t<.15&&m>.8){this.adaptLevel(`reconnect`);return}if(n.decodeRate<=.9){this.adaptLevel(`downgrade`);return}if(t>ul&&u&&!this.tooMuchTimeBuffering(i)&&!this.tooManyBufferingEvents(i)){this.adaptLevel(`upgrade`);return}if(h<1e3){e.playbackState===`buffering`&&(p>5||m>.3)&&this.adaptLevel(`downgrade`);return}(l||t<sl)&&c&&t<ll&&s<cl&&this.adaptLevel(e.playbackState===`buffering`?`double downgrade`:`downgrade`)}),m(this,`onAdaptedLevel`,()=>{this.reset()}),m(this,`adaptLevel`,e=>this.emitter.emit(`adapt level`,e)),this.qualityOfServiceSource=n,this.config=R(R({},pl),r),this.emitter=e,this.logger=t}tooMuchTimeBuffering(e){let t=this.qualityOfServiceSource.timeSpentActiveLast(e);return(t?this.qualityOfServiceSource.timeSpentBufferingLast(e)/t:0)>this.config.maxBufferingRatio.last10Seconds}tooManyBufferingEvents(e){return this.qualityOfServiceSource.timeSpentBufferingLast(e)>this.config.maxBufferingEvents.last10Seconds}};ol=hl,m(hl,`create`,(e,t,n,r={})=>new ol(e,t,n,r)),h(),z();var gl,_l={minBufferTime:1500,maxBufferTime:1500,cooldownTime:3e4,maxBufferingEvents:{last30Seconds:3},maxBufferingRatio:{last30Seconds:.15}},vl=class e{constructor(t,n,r,i,a){m(this,`qualityOfServiceSource`,void 0),m(this,`targetBufferTimeTarget`,void 0),m(this,`config`,void 0),m(this,`emitter`,void 0),m(this,`logger`,void 0),m(this,`isSuspended`,!1),m(this,`lastIncreaseTime`,Date.now()),m(this,`bufferTimeAdjustmentCount`,0),m(this,`load`,()=>{this.emitter.on(`buffer state`,this.onBufferState)}),m(this,`unload`,()=>{this.emitter.off(`buffer state`,this.onBufferState)}),m(this,`suspend`,()=>{this.isSuspended=!0}),m(this,`unsuspend`,()=>{this.reset(),this.isSuspended=!1}),m(this,`reset`,()=>{this.lastIncreaseTime=Date.now()}),m(this,`getStatistics`,()=>({bufferTimeAdjustmentCount:this.bufferTimeAdjustmentCount})),m(this,`onBufferState`,t=>{let{minBufferTime:n,maxBufferTime:r,cooldownTime:i}=this.config;if(this.isSuspended||this.lastIncreaseTime+i>Date.now()||this.targetBufferTimeTarget.targetBufferTime>=r)return;let a=this.qualityOfServiceSource.timeSpentBufferingLast(30*1e3),o=this.qualityOfServiceSource.bufferingEventsLast(30*1e3),s=a/this.qualityOfServiceSource.timeSpentActiveLast(30*1e3),c=Math.ceil(Math.max((r-n)/(e.BUFFER_TIME_MAX_STEPS-1),e.BUFFER_TIME_STEP_SIZE));(s>this.config.maxBufferingRatio.last30Seconds||o>this.config.maxBufferingEvents.last30Seconds)&&(this.targetBufferTimeTarget.targetBufferTime=Math.min(r,this.targetBufferTimeTarget.targetBufferTime+c),this.bufferTimeAdjustmentCount++,this.reset())}),this.qualityOfServiceSource=r,this.targetBufferTimeTarget=i,this.config=R(R({},_l),a),this.emitter=t,this.logger=n}updateConfig(e){this.config=R(R({},this.config),e)}};gl=vl,m(vl,`BUFFER_TIME_STEP_SIZE`,500),m(vl,`BUFFER_TIME_MAX_STEPS`,3),m(vl,`create`,(e,t,n,r,i={})=>new gl(e,t,n,r,i));var yl=e=>e?{Authorization:`Bearer ${e}`}:void 0,bl=(e,t)=>{try{let t=e.ancestorOrigins;if(t&&t.length>0)return Array.from(t).join(`,`)||void 0}catch(e){}try{if(t.referrer)return new URL(t.referrer).origin||void 0}catch(e){}};V(),h(),z(),N();var xl=e=>typeof e==`object`&&!!e&&`message`in e,Sl=class extends Error{constructor({status:e,url:t,body:n}){let r=Xn(n),i=xl(r)?r.message:`Url ${t.toString()}, Status code: ${e}, Body: ${n}`;super(i),m(this,`status`,void 0),m(this,`body`,void 0),m(this,`url`,void 0),this.status=e,this.body=n,this.url=t,Object.setPrototypeOf(this,new.target.prototype)}},Cl=e=>typeof e.status==`number`,wl=()=>{if(!(typeof window>`u`||typeof document>`u`))return bl(window.location,document)},Tl=e=>{let t=wl();if(!t||e.searchParams.has(`parentOrigin`))return e;let n=new URL(e.toString());return n.searchParams.append(`parentOrigin`,t),n},El=function(){var e=M(function*(e,t){let n=Tl(e),r=yield fetch(n.toString(),R({mode:`cors`},t));if(!r.ok)throw new Sl({status:r.status,url:n,body:yield r.text()});return r});return function(t,n){return e.apply(this,arguments)}}(),Dl=function(){var e=M(function*(e,t){return yield(yield El(e,R({},t))).json()});return function(t,n){return e.apply(this,arguments)}}();(function(){var e=M(function*(e){return El(e)});return function(t){return e.apply(this,arguments)}})();var Ol=function(){var e=M(function*(e,t){return El(e,R({method:`POST`},t))});return function(t,n){return e.apply(this,arguments)}}();function kl(e){var t;return!(typeof e.edges[0]==`string`||e.channels[0]&&`catalog`in e.channels[0]&&((t=e.channels[0])==null?void 0:t.catalog)===void 0)}h(),z(),N();var Al={lbConnect:e=>e.channelGroupId?`connect?channelId=${e.channelId}&channelGroupId=${e.channelGroupId}`:`connect?channelId=${e.channelId}`,thumbnails:(e,t)=>t?e.channelGroupId?`thumbnail/?channelGroupId=${e.channelGroupId}&auth.token=${t}&auth.type=jwt`:e.channelId?`thumbnail/?channelId=${e.channelId}&auth.token=${t}&auth.type=jwt`:`thumbnail`:`thumbnail`},jl=class{constructor(e){m(this,`baseUrl`,void 0),m(this,`tokenFactory`,void 0),this.baseUrl=new URL(`/api/v4/`,e.publicEndpoint).toString(),this.tokenFactory=e.tokenFactory}connect(e){var t=this;return M(function*(){let{channelId:n,channelGroupId:r}=e,i={channelId:n,channelGroupId:r},a=new URL(Al.lbConnect(e),t.baseUrl),o=t.getAuthToken(i),s=yield Dl(a,{headers:t.getHeaders(o)});if(kl(s)){let e=s.channels.map(e=>{let n=t.toChannel(e,i),r=dr(e.catalog);return R(R(R({},e),n),{},{renditions:r})});return R(R({},s),{},{channels:e})}else{let e=s.channels.map(e=>{let n=t.toChannel(e,i);return R(R({},e),n)});return R(R({},s),{},{channels:e})}})()}getChannel(e){var t=this;return M(function*(){let n={channelId:e},r=new URL(`channel/${e}`,t.baseUrl),i=t.getAuthToken(n),a=yield Dl(r,{headers:t.getHeaders(i)});return t.toChannel(a,n,i)})()}getChannels(e){var t=this;return M(function*(){let n={channelGroupId:e},r=new URL(`channels/${e}`,t.baseUrl),i=t.getAuthToken(n),a=yield Dl(r,{headers:t.getHeaders(i)}),o=Array.isArray(a)?a:a.channels;return t.toChannels(o,n,i)})()}getHeaders(e){var t;return(t=yl(e))==null?{}:t}getAuthToken(e){return this.tokenFactory?this.tokenFactory(e):void 0}toChannels(e,t,n){return e.map(e=>this.toChannel(e,t,n))}toChannel(e,t,n){let{baseUrl:r,sizes:i}=e.thumbnail,a=r||new URL(Al.thumbnails(t,n),this.baseUrl),o=i.map(r=>new URL(`?channelId=${e.channelId}&width=${r.width}&height=${r.height}${Ml(t,n)}`,a).toString());return{channelId:e.channelId,name:e.name,isLive:e.isLive,thumbnailUrls:o}}},Ml=(e,t)=>t?e.channelGroupId?`&channelGroupId=${e.channelGroupId}&auth.token=${t}&auth.type=jwt`:`&auth.token=${t}&auth.type=jwt`:``,Nl=function(e){return e[e.StreamHeaderGroup=4]=`StreamHeaderGroup`,e[e.FetchHeader=5]=`FetchHeader`,e[e.StreamHeaderTrack=60]=`StreamHeaderTrack`,e}({});V(),T(),j(),k(),N(),L(),On(),jn(),D();var Pl,Fl,Il,Ll,Rl,zl,Bl,Vl,Hl,Ul={Normal:0,ObjectDoesNotExist:1,GroupDoesNotExist:2,EndOfGroup:3,EndOfTrackAndGroup:4};function Wl(e){switch(e){case Ul.Normal:case Ul.ObjectDoesNotExist:case Ul.GroupDoesNotExist:case Ul.EndOfGroup:case Ul.EndOfTrackAndGroup:return}throw Error(`Unknown object status ${e}`)}var Gl=new WeakMap,Kl=new WeakMap,ql=new WeakMap,Jl=new WeakMap,Yl=new WeakMap,Xl=new WeakMap,Zl=new WeakMap,Ql=new WeakMap;Pl=Symbol.asyncIterator,Fl=un(),Il=Symbol.asyncDispose;var $l=class{endStatus(){return A(Xl,this).promise}constructor(e,t,n,r,i,a){w(this,Gl,void 0),w(this,Kl,void 0),w(this,ql,void 0),w(this,Jl,void 0),w(this,Yl,void 0),w(this,Xl,new S),w(this,Zl,0),w(this,Ql,void 0),O(Gl,this,e),O(Kl,this,t),O(ql,this,n),O(Jl,this,r),O(Yl,this,i),O(Ql,this,a)}groupId(){return A(Kl,this)}subscribeId(){return A(ql,this)}next(){var e=this;return M(function*(){var t;if(!A(Xl,e).pending||(yield A(Gl,e).isDone()))return{done:!0,value:void 0};let n=A(Zl,e)===0?A(Kl,e):yield A(Gl,e).readBigVarInt(),r=yield A(Gl,e).readBigVarInt(),i=yield A(Gl,e).readVarInt(),a=0,o=new Uint8Array;return i>0?o=yield A(Gl,e).read(i):a=yield A(Gl,e).readVarInt(),Wl(a),(a===Ul.EndOfTrackAndGroup||a===Ul.EndOfGroup)&&A(Xl,e).resolve(a),O(Zl,e,(t=A(Zl,e),t++,t)),{done:!1,value:{subscribeId:A(ql,e),trackAlias:A(Jl,e),groupId:n,subGroupId:P(0),objectId:r,subscriberPriority:A(Yl,e),streamId:A(Ql,e),objectStatus:a,payload:o}}})()}return(){var e=this;return M(function*(){for(;!(yield e.next()).done;);return{done:!0,value:void 0}})()}[Pl](){return this}[Fl](){return Promise.resolve()}[Il](){return Promise.resolve()}},eu=new WeakMap,tu=new WeakMap,nu=new WeakMap,ru=new WeakMap,iu=new WeakMap,au=new WeakSet;Ll=Symbol.asyncIterator,Rl=un(),zl=Symbol.asyncDispose;var ou=class{constructor(e,t,n,r,i){I(this,au),w(this,eu,void 0),w(this,tu,void 0),w(this,nu,void 0),w(this,ru,void 0),w(this,iu,void 0),O(eu,this,e),O(tu,this,t),O(nu,this,n),O(ru,this,r),O(iu,this,i)}streamId(){return A(iu,this)}groups(){return E(au,this,su).call(this)}subscribeId(){return A(tu,this)}return(){var e=this;return M(function*(){return yield A(eu,e).close(),{done:!0,value:void 0}})()}[Ll](){return this}[Rl](){return E(au,this,cu).call(this)}[zl](){return E(au,this,cu).call(this)}};function su(){var e=this;return kn(function*(){for(;!(yield B(A(eu,e).isDone()));){let t=yield B(A(eu,e).readBigVarInt()),n=new $l(A(eu,e),t,A(tu,e),A(nu,e),A(ru,e),A(iu,e));if(yield n,(yield B(Promise.race([n.endStatus(),A(eu,e).closed()])))===Ul.EndOfTrackAndGroup)return}})()}function cu(){return A(eu,this).close().catch(()=>{})}var lu=new WeakMap,uu=new WeakMap,du=new WeakMap,fu=new WeakMap,pu=new WeakMap,mu=new WeakMap,hu=new WeakMap,gu=new WeakMap,_u=new WeakMap,vu=new WeakSet;Bl=Symbol.asyncIterator,Vl=un(),Hl=Symbol.asyncDispose;var yu=class{constructor(e,t,n,r,i,a,o){I(this,vu),w(this,lu,void 0),w(this,uu,void 0),w(this,du,void 0),w(this,fu,void 0),w(this,pu,void 0),w(this,mu,void 0),w(this,hu,!1),w(this,gu,void 0),w(this,_u,sn.get().createContext(`GroupReader`)),O(lu,this,e),O(uu,this,t),O(du,this,n),O(fu,this,r),O(pu,this,i),O(mu,this,a),O(gu,this,o)}streamId(){return A(gu,this)}groupId(){return A(fu,this)}subscribeId(){return A(uu,this)}next(){var e=this;return M(function*(){try{if((yield A(lu,e).isDone())||A(hu,e))return{done:!0,value:void 0};let t=yield A(lu,e).readBigVarInt(),n=yield A(lu,e).readVarInt(),r=0,i=new Uint8Array;return n>0?i=yield A(lu,e).read(n):r=yield A(lu,e).readVarInt(),Wl(r),r===Ul.EndOfGroup&&O(hu,e,!0),{done:!1,value:{subscribeId:A(uu,e),trackAlias:A(du,e),groupId:A(fu,e),subGroupId:A(pu,e),subscriberPriority:A(mu,e),streamId:A(gu,e),objectId:t,objectStatus:r,payload:i}}}catch(t){return A(_u,e).warn(`Error reading object`,{error:t}),{done:!0,value:void 0}}})()}return(){var e=this;return M(function*(){return yield A(lu,e).close().catch(()=>{}),{done:!0,value:void 0}})()}groups(){return E(vu,this,bu).call(this)}[Bl](){return this}[Vl](){return E(vu,this,xu).call(this)}[Hl](){return E(vu,this,xu).call(this)}};function bu(){var e=this;return kn(function*(){yield e})()}function xu(){return A(lu,this).close().catch(()=>{})}function Su(e,t){return Cu.apply(this,arguments)}function Cu(){return Cu=M(function*(e,t){let n=yield e.readVarInt();switch(n){case Nl.StreamHeaderGroup:return new yu(e,yield e.readBigVarInt(),yield e.readBigVarInt(),yield e.readBigVarInt(),yield e.readBigVarInt(),yield e.readUnsigned8(),t);case Nl.StreamHeaderTrack:return new ou(e,yield e.readBigVarInt(),yield e.readBigVarInt(),yield e.readUnsigned8(),t);default:throw Error(`Unexpected message type ${n}`)}}),Cu.apply(this,arguments)}function X(e){var t,n,r,i=2;for(typeof Symbol<`u`&&(n=Symbol.asyncIterator,r=Symbol.iterator);i--;){if(n&&(t=e[n])!=null)return t.call(e);if(r&&(t=e[r])!=null)return new wu(t.call(e));n=`@@asyncIterator`,r=`@@iterator`}throw TypeError(`Object is not async iterable`)}function wu(e){function t(e){if(Object(e)!==e)return Promise.reject(TypeError(e+` is not an object.`));var t=e.done;return Promise.resolve(e.value).then(function(e){return{value:e,done:t}})}return wu=function(e){this.s=e,this.n=e.next},wu.prototype={s:null,n:null,next:function(){return t(this.n.apply(this.s,arguments))},return:function(e){var n=this.s.return;return n===void 0?Promise.resolve({value:e,done:!0}):t(n.apply(this.s,arguments))},throw:function(e){var n=this.s.return;return n===void 0?Promise.reject(e):t(n.apply(this.s,arguments))}},new wu(e)}V(),T(),k(),j();var Tu=new WeakMap,Eu=new WeakMap,Du=class{constructor(e,t){w(this,Tu,void 0),w(this,Eu,void 0),O(Tu,this,e),O(Eu,this,t)}start(e){A(Tu,this).addEventListener(`message`,t=>{if(typeof t.data==`object`&&t.data instanceof ArrayBuffer){let n=new Uint8Array(t.data);n[0]===A(Eu,this)&&e.enqueue(n.subarray(1))}}),A(Tu,this).addEventListener(`error`,()=>e.error(Error(`WebSocket error`))),A(Tu,this).addEventListener(`close`,()=>Jn(()=>e.close()))}cancel(e){A(Tu,this).close(void 0,e)}},Ou=new WeakMap,ku=new WeakMap,Au=new WeakMap,ju=new WeakMap,Mu=class{constructor(e){w(this,Ou,void 0),w(this,ku,null),w(this,Au,null),w(this,ju,null),O(Ou,this,e)}start(e){O(ku,this,t=>{if(typeof t.data==`object`&&t.data instanceof ArrayBuffer){let n=new Uint8Array(t.data),r=n[0]||0,i=r&127,a=(r>>7&1)>0;if(i&&i!==0){let t=n.subarray(1);e.enqueue([a,i,t])}}}),O(Au,this,()=>Jn(()=>e.close())),O(ju,this,()=>e.error(Error(`WebSocket error`))),A(Ou,this).addEventListener(`message`,A(ku,this)),A(Ou,this).addEventListener(`error`,A(ju,this)),A(Ou,this).addEventListener(`close`,A(Au,this))}cancel(e){A(ku,this)&&A(Ou,this).removeEventListener(`message`,A(ku,this)),A(ju,this)&&A(Ou,this).removeEventListener(`error`,A(ju,this)),A(Au,this)&&A(Ou,this).removeEventListener(`close`,A(Au,this))}};V(),L(),T(),k(),j(),D(),N();function Nu(e,t){return e[t]<<8|e[t+1]}function Pu(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}var Fu=new WeakMap,Iu=new WeakMap,Lu=new WeakMap,Z=new WeakMap,Ru=new WeakMap,zu=new WeakSet,Bu=class{constructor(e,t){I(this,zu),w(this,Fu,void 0),w(this,Iu,void 0),w(this,Lu,void 0),w(this,Z,0),w(this,Ru,new TextDecoder),O(Fu,this,e),O(Iu,this,t),O(Lu,this,t.getReader())}readUnsigned8(){var e=this;return M(function*(){var t,n;return yield E(zu,e,Uu).call(e,1),A(Fu,e)[O(Z,e,(t=A(Z,e),n=t++,t)),n]})()}readString(){var e=this;return M(function*(){let t=yield e.readVarInt(),n=yield e.read(t);return A(Ru,e).decode(n)})()}readVarInt(){var e=this;return M(function*(){let t=yield e.readBigVarInt();if(t>2**53-1)throw Error(`VarInt is too large`);return Number(t)})()}readBigVarInt(){var e=this;return M(function*(){yield E(zu,e,Uu).call(e,1);let t=A(Fu,e)[A(Z,e)],n=(t&192)>>6;switch(A(Fu,e)[A(Z,e)]=t&63,n){case 0:var r,i;return P(A(Fu,e)[O(Z,e,(r=A(Z,e),i=r++,r)),i]);case 1:{yield E(zu,e,Uu).call(e,2);let t=A(Z,e);return O(Z,e,A(Z,e)+2),P(Nu(A(Fu,e),t))}case 2:{yield E(zu,e,Uu).call(e,4);let t=A(Z,e);return O(Z,e,A(Z,e)+4),P(Pu(A(Fu,e),t))}case 3:{yield E(zu,e,Uu).call(e,8);let t=A(Z,e);O(Z,e,A(Z,e)+8);let n=new DataView(A(Fu,e).buffer,A(Fu,e).byteOffset+t,8);return P(Ce?n.getBigUint64(0):n.getUint32(0)*4294967296+n.getUint32(4))}default:throw Error(`Invalid VarInt size`)}})()}read(e){var t=this;return M(function*(){return yield E(zu,t,Uu).call(t,e),E(zu,t,Gu).call(t,e)})()}readAll(){var e=this;return M(function*(){for(;yield E(zu,e,Hu).call(e););return E(zu,e,Gu).call(e,E(zu,e,Vu).call(e))})()}isDone(){var e=this;return M(function*(){return E(zu,e,Vu).call(e)>0?!1:(yield E(zu,e,Hu).call(e))===0})()}closed(){var e=this;return M(function*(){return A(Lu,e).closed})()}close(){var e=this;return M(function*(){return A(Lu,e).releaseLock(),A(Iu,e).cancel()})()}};function Vu(){return A(Fu,this).length-A(Z,this)}function Hu(){var e=this;return M(function*(){let{value:t,done:n}=yield A(Lu,e).read();if(n)return Promise.resolve(0);if(E(zu,e,Vu).call(e)===0)O(Fu,e,t);else{let n=A(Fu,e).subarray(A(Z,e)),r=new Uint8Array(n.length+t.length);r.set(n),r.set(t,n.byteLength),O(Fu,e,r)}return O(Z,e,0),Promise.resolve(t.length)})()}function Uu(e){var t=this;return M(function*(){for(;E(zu,t,Vu).call(t)<e;)if((yield E(zu,t,Hu).call(t))===0)throw Error(`Read failed`)})()}function Wu(e){return A(Fu,this).subarray(A(Z,this),A(Z,this)+e)}function Gu(e){let t=E(zu,this,Wu).call(this,e);return O(Z,this,A(Z,this)+t.length),t}L(),T(),j(),k(),N(),D(),h();var Ku=new WeakMap,qu=new WeakMap,Ju=new WeakMap,Yu=new WeakMap,Xu=new WeakMap,Zu=new WeakMap,Qu=new WeakMap,$u=new WeakMap,ed=new WeakSet,td=class{constructor(e){I(this,ed),w(this,Ku,new Uint8Array(8)),w(this,qu,A(Ku,this).subarray(0,1)),w(this,Ju,A(Ku,this).subarray(0,2)),w(this,Yu,A(Ku,this).subarray(0,4)),w(this,Xu,A(Ku,this).subarray(0,8)),w(this,Zu,void 0),w(this,Qu,void 0),w(this,$u,new TextEncoder),O(Zu,this,e),O(Qu,this,A(Zu,this).getWriter())}writeString(e){var t=this;return M(function*(){let n=A($u,t).encode(e);return yield t.writeVarInt(n.length),t.write(n)})()}write(e){return A(Qu,this).write(e)}writeUnsigned8(e){return A(Ku,this)[0]=e,A(Qu,this).write(A(qu,this))}writeVarInt(e){if(e<0)throw Error(`VarInt can not be negative: ${e}`);return A(Qu,this).write(E(ed,this,nd).call(this,hd(e,A(Ku,this),0)))}writeBigVarInt(e){if(e<0)throw Error(`VarInt can not be negative: ${e}`);return A(Qu,this).write(E(ed,this,nd).call(this,gd(e,A(Ku,this),0)))}flush(){return M(function*(){})()}close(){var e=this;return M(function*(){A(Qu,e).releaseLock(),yield A(Zu,e).close()})()}};function nd(e){switch(e){case 1:return A(qu,this);case 2:return A(Ju,this);case 4:return A(Yu,this);default:return A(Xu,this)}}var rd={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},id=new WeakMap,ad=new WeakMap,od=new WeakMap,sd=new WeakMap,cd=class e{constructor(t){w(this,id,0),w(this,ad,new Uint8Array(e.DEFAULT_BUFFER_SIZE)),w(this,od,void 0),w(this,sd,new TextEncoder),O(od,this,t)}writeString(e){var t=this;return M(function*(){let n=A(sd,t).encode(e);return yield t.writeVarInt(n.length),t.write(n)})()}ensureBufferSpace(e){if(A(ad,this).length-A(id,this)>=e)return;let t=new Uint8Array(A(ad,this).length+e);t.set(A(ad,this)),O(ad,this,t)}write(e){return this.ensureBufferSpace(e.length),A(ad,this).set(e,A(id,this)),O(id,this,A(id,this)+e.byteLength),Promise.resolve()}writeUnsigned8(e){return this.ensureBufferSpace(1),A(ad,this)[A(id,this)]=e,O(id,this,A(id,this)+1),Promise.resolve()}writeVarInt(e){if(e<0)throw Error(`VarInt can not be negative: ${e}`);return this.ensureBufferSpace(8),O(id,this,A(id,this)+hd(e,A(ad,this),A(id,this))),Promise.resolve()}writeBigVarInt(e){if(e<0)throw Error(`VarInt can not be negative: ${e}`);return this.ensureBufferSpace(8),O(id,this,A(id,this)+gd(e,A(ad,this),A(id,this))),Promise.resolve()}flush(){if(A(od,this).readyState!==rd.OPEN)throw Error(`Writer is not open`);return A(od,this).send(A(ad,this).subarray(0,A(id,this))),O(id,this,0),Promise.resolve()}close(){return A(od,this).close(),Promise.resolve()}};m(cd,`DEFAULT_BUFFER_SIZE`,1024);var ld=2**6-1,ud=2**14-1,dd=2**30-1,fd=2**53-1;function pd(e,t,n){t[n]=e>>8&255,t[n+1]=e&255}function md(e,t,n){t[n]=e>>>24&255,t[n+1]=e>>16&255,t[n+2]=e>>8&255,t[n+3]=e&255}function hd(e,t,n){if(e<=ld)return t[n]=e,1;if(e<=ud)return pd(e|16384,t,n),2;if(e<=dd)return md(e|2147483648,t,n),4;if(e<=fd)return _d(e,t,n),8;throw Error(`overflow, value larger than 53-bits: ${e}`)}function gd(e,t,n){if(e<=ld)return t[n]=Number(e),1;if(e<=ud)return pd(Number(e)|16384,t,n),2;if(e<=dd)return md(Number(e)|2147483648,t,n),4;if(e<=fd)return _d(Number(e),t,n),8;throw Error(`overflow, value larger than 53-bits: ${e}`)}function _d(e,t,n){let r=new DataView(t.buffer,t.byteOffset+n,8);r.setUint32(0,e/4294967296),r.setUint32(4,e&4294967295),t[n]=192}var Q=function(e){return e[e.SubscribeUpdate=2]=`SubscribeUpdate`,e[e.Subscribe=3]=`Subscribe`,e[e.SubscribeOk=4]=`SubscribeOk`,e[e.SubscribeError=5]=`SubscribeError`,e[e.Announce=6]=`Announce`,e[e.AnnounceOk=7]=`AnnounceOk`,e[e.AnnounceError=8]=`AnnounceError`,e[e.Unannounce=9]=`Unannounce`,e[e.Unsubscribe=10]=`Unsubscribe`,e[e.SubscribeDone=11]=`SubscribeDone`,e[e.AnnounceCancel=12]=`AnnounceCancel`,e[e.TrackStatusRequest=13]=`TrackStatusRequest`,e[e.TrackStatus=14]=`TrackStatus`,e[e.Goaway=16]=`Goaway`,e[e.ClientSetup=64]=`ClientSetup`,e[e.ServerSetup=65]=`ServerSetup`,e[e.Unknown=255]=`Unknown`,e}({});N();function vd(e){return yd.apply(this,arguments)}function yd(){return yd=M(function*(e){let t=yield e.readVarInt();if(t<1||t>32)throw Error(`namespace must be between 1 and 32, got ${t}`);let n=[];for(let r=0;r<t;r++)n.push(yield e.readString());return n}),yd.apply(this,arguments)}function bd(e,t){return xd.apply(this,arguments)}function xd(){return xd=M(function*(e,t){yield e.writeVarInt(t.length);for(let n of t)yield e.writeString(n)}),xd.apply(this,arguments)}V(),N();var Sd=P(2);function Cd(e){return wd.apply(this,arguments)}function wd(){return wd=M(function*(e){let t=yield e.readVarInt(),n=new Map;for(let r=0;r<t;r++){let t=yield e.readBigVarInt(),r=yield e.read(yield e.readVarInt());n.set(t,{type:t,payload:r})}return n}),wd.apply(this,arguments)}function Td(e,t){return Ed.apply(this,arguments)}function Ed(){return Ed=M(function*(e,t){yield e.writeVarInt(t.size);for(let[n,r]of t)yield e.writeBigVarInt(n),yield e.writeVarInt(r.payload.length),yield e.write(r.payload)}),Ed.apply(this,arguments)}N();function Dd(e){return Od.apply(this,arguments)}function Od(){return Od=M(function*(e){return{type:Q.Announce,namespace:yield vd(e),params:yield Cd(e)}}),Od.apply(this,arguments)}function kd(e,t){return Ad.apply(this,arguments)}function Ad(){return Ad=M(function*(e,t){yield bd(e,t.namespace),yield Td(e,t.params)}),Ad.apply(this,arguments)}N();function jd(e){return Md.apply(this,arguments)}function Md(){return Md=M(function*(e){return{type:Q.AnnounceOk,namespace:yield vd(e)}}),Md.apply(this,arguments)}function Nd(e,t){return Pd.apply(this,arguments)}function Pd(){return Pd=M(function*(e,t){yield bd(e,t.namespace)}),Pd.apply(this,arguments)}N();var Fd={"latest-group":1,"latest-object":2,"absolute-start":3,"absolute-range":4};function Id(e){return Ld.apply(this,arguments)}function Ld(){return Ld=M(function*(e){let t=yield e.readVarInt();switch(t){case 1:return{type:`latest-group`};case 2:return{type:`latest-object`};case 3:return{type:`absolute-start`,start:{group:yield e.readBigVarInt(),object:yield e.readBigVarInt()}};case 4:return{type:`absolute-range`,start:{group:yield e.readBigVarInt(),object:yield e.readBigVarInt()},end:{group:yield e.readBigVarInt(),object:yield e.readBigVarInt()}};default:throw Error(`Invalid location type ${t}`)}}),Ld.apply(this,arguments)}function Rd(e,t){return zd.apply(this,arguments)}function zd(){return zd=M(function*(e,t){let n=Fd[t.type];switch(yield e.writeVarInt(n),t.type){case`absolute-range`:yield e.writeBigVarInt(t.start.group),yield e.writeBigVarInt(t.start.object),yield e.writeBigVarInt(t.end.group),yield e.writeBigVarInt(t.end.object);break;case`absolute-start`:yield e.writeBigVarInt(t.start.group),yield e.writeBigVarInt(t.start.object);break;case`latest-object`:case`latest-group`:break;default:throw Error(`Invalid location type ${n}`)}}),zd.apply(this,arguments)}function Bd(e){return Vd.apply(this,arguments)}function Vd(){return Vd=M(function*(e){let t=yield e.readUnsigned8();switch(t){case 0:return`inherit-publisher`;case 1:return`ascending`;case 2:return`descending`;default:throw Error(`Invalid location type ${t}`)}}),Vd.apply(this,arguments)}function Hd(e,t){return Ud.apply(this,arguments)}function Ud(){return Ud=M(function*(e,t){switch(t){case`inherit-publisher`:yield e.writeUnsigned8(0);break;case`ascending`:yield e.writeUnsigned8(1);break;case`descending`:yield e.writeUnsigned8(2);break}}),Ud.apply(this,arguments)}function Wd(e){return Gd.apply(this,arguments)}function Gd(){return Gd=M(function*(e){let t=yield e.readBigVarInt(),n=yield e.readBigVarInt(),r=yield vd(e),i=yield e.readString(),a=yield e.readUnsigned8(),o=yield Bd(e),s=yield Id(e),c=yield Cd(e);if(s.type===`absolute-range`){let e=s.start.group>s.end.group,t=s.start.group===s.end.group&&s.start.object>s.end.object;if(e||t)throw Error(`Invalid filter range`)}return{type:Q.Subscribe,id:t,trackAlias:n,namespace:r,name:i,subscriberPriority:a,groupOrder:o,filterType:s,params:c}}),Gd.apply(this,arguments)}function Kd(e,t){return qd.apply(this,arguments)}function qd(){return qd=M(function*(e,t){yield e.writeBigVarInt(t.id),yield e.writeBigVarInt(t.trackAlias),yield bd(e,t.namespace),yield e.writeString(t.name),yield e.writeUnsigned8(t.subscriberPriority),yield Hd(e,t.groupOrder),yield Rd(e,t.filterType),yield Td(e,t.params)}),qd.apply(this,arguments)}N();var Jd={Unsubscribed:0,InternalError:1,Unauthorized:2,TrackEnded:3,SubscriptionEnded:4,GoingAway:5,Expired:6};function Yd(e){return Xd.apply(this,arguments)}function Xd(){return Xd=M(function*(e){let t=yield e.readBigVarInt(),n=yield e.readVarInt(),r=yield e.readString(),i=(yield e.readUnsigned8())===1,a;return i&&(a={group:yield e.readBigVarInt(),object:yield e.readBigVarInt()}),{type:Q.SubscribeDone,id:t,errorCode:n,reason:r,finalInfo:a}}),Xd.apply(this,arguments)}function Zd(e,t){return Qd.apply(this,arguments)}function Qd(){return Qd=M(function*(e,t){yield e.writeBigVarInt(t.id),yield e.writeVarInt(t.errorCode),yield e.writeString(t.reason),yield e.writeUnsigned8(t.finalInfo?1:0),t.finalInfo&&(yield e.writeBigVarInt(t.finalInfo.group),yield e.writeBigVarInt(t.finalInfo.object))}),Qd.apply(this,arguments)}N();function $d(e){return ef.apply(this,arguments)}function ef(){return ef=M(function*(e){return{type:Q.SubscribeError,id:yield e.readBigVarInt(),errorCode:yield e.readBigVarInt(),reason:yield e.readString(),trackAlias:yield e.readBigVarInt()}}),ef.apply(this,arguments)}function tf(e,t){return nf.apply(this,arguments)}function nf(){return nf=M(function*(e,t){yield e.writeBigVarInt(t.id),yield e.writeBigVarInt(t.errorCode),yield e.writeString(t.reason),yield e.writeBigVarInt(t.trackAlias)}),nf.apply(this,arguments)}N();function rf(e){return af.apply(this,arguments)}function af(){return af=M(function*(e){let t=yield e.readBigVarInt(),n=yield e.readBigVarInt(),r=yield Bd(e),i=(yield e.readUnsigned8())===1,a;if(r===`inherit-publisher`)throw Error(`SubscribeOk cannot have inherit publisher group order`);i&&(a={group:yield e.readBigVarInt(),object:yield e.readBigVarInt()});let o=yield Cd(e);return{type:Q.SubscribeOk,id:t,groupOrder:r,expires:n,largestInfo:a,params:o}}),af.apply(this,arguments)}function of(e,t){return sf.apply(this,arguments)}function sf(){return sf=M(function*(e,t){yield e.writeBigVarInt(t.id),yield e.writeBigVarInt(t.expires),yield Hd(e,t.groupOrder),yield e.writeUnsigned8(t.largestInfo?1:0),t.largestInfo&&(yield e.writeBigVarInt(t.largestInfo.group),yield e.writeBigVarInt(t.largestInfo.object)),yield Td(e,t.params)}),sf.apply(this,arguments)}N();function cf(e){return lf.apply(this,arguments)}function lf(){return lf=M(function*(e){let t=yield e.readBigVarInt(),n=yield e.readBigVarInt(),r=yield e.readBigVarInt(),i=yield e.readBigVarInt(),a=yield e.readBigVarInt(),o=yield e.readUnsigned8(),s=yield Cd(e);if(n>i||n===i&&r>a)throw Error(`Invalid filter range`);return{type:Q.SubscribeUpdate,id:t,start:{group:n,object:r},end:{group:i,object:a},subscriberPriority:o,params:s}}),lf.apply(this,arguments)}function uf(e,t){return df.apply(this,arguments)}function df(){return df=M(function*(e,t){yield e.writeBigVarInt(t.id),yield e.writeBigVarInt(t.start.group),yield e.writeBigVarInt(t.start.object),yield e.writeBigVarInt(t.end.group),yield e.writeBigVarInt(t.end.object),yield e.writeUnsigned8(t.subscriberPriority),yield Td(e,t.params)}),df.apply(this,arguments)}V();var ff={Publisher:1,Subscriber:2,Both:3},pf={Role:P(0)};N();var mf={Draft07:4278190087};function hf(e){return gf.apply(this,arguments)}function gf(){return gf=M(function*(e){let t=yield e.readVarInt();switch(t){case mf.Draft07:return{type:`known`,value:t};default:return{type:`unknown`,value:t}}}),gf.apply(this,arguments)}N();function _f(e,t){return vf.apply(this,arguments)}function vf(){return vf=M(function*(e,t){yield e.writeVarInt(t.supportedVersions.length);for(let n of t.supportedVersions)yield e.writeVarInt(n.value);yield Td(e,t.parameters)}),vf.apply(this,arguments)}function yf(e){return bf.apply(this,arguments)}function bf(){return bf=M(function*(e){let t=[],n=yield e.readVarInt();for(let r=0;r<n;r++)t.push(yield hf(e));let r=yield Cd(e);if(!r.has(pf.Role))throw Error(`Role parameter is required`);return{type:Q.ClientSetup,supportedVersions:t,parameters:r}}),bf.apply(this,arguments)}N();function xf(e,t){return Sf.apply(this,arguments)}function Sf(){return Sf=M(function*(e,t){yield e.writeVarInt(t.selectedVersion.value),yield Td(e,t.parameters)}),Sf.apply(this,arguments)}function Cf(e){return wf.apply(this,arguments)}function wf(){return wf=M(function*(e){let t=yield hf(e);if(t.type!==`known`)throw Error(`Expected known version`);let n=yield Cd(e);if(!n.has(pf.Role))throw Error(`Role parameter is required`);return{type:Q.ServerSetup,selectedVersion:t,parameters:n}}),wf.apply(this,arguments)}N();function Tf(e){return Ef.apply(this,arguments)}function Ef(){return Ef=M(function*(e){return{type:Q.Unsubscribe,id:yield e.readBigVarInt()}}),Ef.apply(this,arguments)}function Df(e,t){return Of.apply(this,arguments)}function Of(){return Of=M(function*(e,t){yield e.writeBigVarInt(t.id)}),Of.apply(this,arguments)}L(),T(),k(),j(),D(),N();var kf=new WeakMap,Af=new WeakMap,jf=new WeakSet,Mf=class{constructor(e){I(this,jf),w(this,kf,void 0),w(this,Af,new Uint8Array),O(kf,this,e)}write(e){var t=this;return M(function*(){yield A(kf,t).writeVarInt(e.type);let n=new cd({close:()=>{},readyState:rd.OPEN,send:e=>{O(Af,t,new Uint8Array(e))}});switch(e.type){case Q.Subscribe:yield E(jf,t,Ff).call(t,n,e);break;case Q.Announce:yield E(jf,t,Vf).call(t,n,e);break;case Q.SubscribeOk:yield E(jf,t,If).call(t,n,e);break;case Q.SubscribeUpdate:yield E(jf,t,Rf).call(t,n,e);break;case Q.SubscribeError:yield E(jf,t,Lf).call(t,n,e);break;case Q.SubscribeDone:yield E(jf,t,zf).call(t,n,e);break;case Q.Unsubscribe:yield E(jf,t,Bf).call(t,n,e);break;case Q.ClientSetup:yield E(jf,t,Nf).call(t,n,e);break;case Q.ServerSetup:yield E(jf,t,Pf).call(t,n,e);break;case Q.AnnounceOk:yield E(jf,t,Hf).call(t,n,e);break;default:throw Error(`Unknown message type: ${e.type}`)}yield n.flush(),yield A(kf,t).writeVarInt(A(Af,t).byteLength),yield A(kf,t).write(A(Af,t)),yield A(kf,t).flush()})()}close(){var e=this;return M(function*(){return A(kf,e).close()})()}};function Nf(e,t){return M(function*(){yield _f(e,t)})()}function Pf(e,t){return M(function*(){yield xf(e,t)})()}function Ff(e,t){return M(function*(){yield Kd(e,t)})()}function If(e,t){return M(function*(){yield of(e,t)})()}function Lf(e,t){return M(function*(){yield tf(e,t)})()}function Rf(e,t){return M(function*(){yield uf(e,t)})()}function zf(e,t){return M(function*(){yield Zd(e,t)})()}function Bf(e,t){return M(function*(){yield Df(e,t)})()}function Vf(e,t){return M(function*(){yield kd(e,t)})()}function Hf(e,t){return M(function*(){yield Nd(e,t)})()}T(),k(),j(),N();var Uf=new WeakMap,Wf=new WeakMap,Gf=new WeakMap,Kf=class{constructor(e,t){w(this,Uf,void 0),w(this,Wf,void 0),w(this,Gf,void 0),O(Uf,this,e),O(Wf,this,new Mf(e)),O(Gf,this,t)}write(e){var t=this;return M(function*(){yield A(Uf,t).write(A(Gf,t)),yield A(Wf,t).write(e)})()}close(){return A(Uf,this).close()}};V(),N(),P(1025),P(1027),P(1033),P(2048);var qf=class extends Error{constructor(e,t){super(e),this.errorCode=t}};function Jf(e){return Yf.apply(this,arguments)}function Yf(){return Yf=M(function*(e){return{type:Q.AnnounceError,namespace:yield vd(e),errorCode:yield e.readBigVarInt(),reason:yield e.readString()}}),Yf.apply(this,arguments)}N();function Xf(e,t,n){return Zf.apply(this,arguments)}function Zf(){return Zf=M(function*(e,t,n){return{type:Q.Unknown,messageType:t,payload:yield e.read(n)}}),Zf.apply(this,arguments)}V(),T(),k(),j(),N();var Qf=new WeakMap,$f=class{constructor(e){w(this,Qf,void 0),O(Qf,this,e)}cancel(){return A(Qf,this).close()}read(){var e=this;return M(function*(){let t=yield A(Qf,e).readVarInt(),n=yield A(Qf,e).readVarInt();switch(t){case Q.ServerSetup:return Cf(A(Qf,e));case Q.ClientSetup:return yf(A(Qf,e));case Q.Subscribe:return Wd(A(Qf,e));case Q.SubscribeOk:return rf(A(Qf,e));case Q.SubscribeDone:return Yd(A(Qf,e));case Q.SubscribeError:return $d(A(Qf,e));case Q.SubscribeUpdate:return cf(A(Qf,e));case Q.Unsubscribe:return Tf(A(Qf,e));case Q.Announce:return Dd(A(Qf,e));case Q.AnnounceOk:return jd(A(Qf,e));case Q.AnnounceError:return Jf(A(Qf,e))}return Xf(A(Qf,e),P(t),n)})()}};V(),L(),T(),k(),j(),D(),N();var ep=new WeakMap,tp=new WeakMap,np=new WeakMap,rp=new WeakMap,ip=new WeakSet,ap=class e{constructor(e,t){I(this,ip),w(this,ep,void 0),w(this,tp,void 0),w(this,np,new S),w(this,rp,new S),O(ep,this,e),O(tp,this,t),A(np,this).resolve()}write(e){var t=this;return M(function*(){let n=yield E(ip,t,op).call(t);try{yield A(ep,t).write(e)}finally{n.resolve()}})()}markPostHandshake(){A(rp,this).resolve()}postHandshake(){return A(rp,this).promise}read(){var e=this;return M(function*(){return A(tp,e).read()})()}cancel(){return A(tp,this).cancel()}static wrapWebsocket(t){let n=new ReadableStream(new Du(t,sp._)),r=new $f(new Bu(new Uint8Array([]),n));return new e(new Kf(new cd(t),new Uint8Array([0])),r)}static wrapWebTransport(t){let n=t.writable,r=t.readable;return new e(new Mf(new td(n)),new $f(new Bu(new Uint8Array,r)))}};function op(){let e=new S,t=A(np,this).promise.then(()=>e);return O(np,this,e),t}var sp={_:0};N();function cp(e,t){return lp.apply(this,arguments)}function lp(){return lp=M(function*(e,t){yield e.write({type:Q.ClientSetup,supportedVersions:[{type:`known`,value:mf.Draft07}],parameters:new Map([[pf.Role,{type:pf.Role,payload:new Uint8Array([t])}]])});let n=yield e.read();if(e.markPostHandshake(),n.type!==Q.ServerSetup)throw Error(`Expected server setup message`);if(n.selectedVersion.type!==`known`)throw Error(`Expected known version`)}),lp.apply(this,arguments)}V(),h(),T(),j();var up=new WeakMap,dp=class{constructor(e){m(this,`announce`,void 0),w(this,up,new S),this.announce=e}onOk(e){A(up,this).resolve(e)}onError(e){let t=new qf(e.reason,e.errorCode);return A(up,this).reject(t),t}ok(){return A(up,this).promise}};h();function fp(e){return new pp(new dp(e))}var pp=class{constructor(e){m(this,`state`,void 0),this.state=e}};V(),h(),T(),k(),j();var mp=new WeakMap,hp=new WeakMap,gp=new WeakMap,_p=new WeakMap,vp=new WeakMap,yp=new WeakMap,bp=class e{constructor(e){switch(m(this,`subscribe`,void 0),w(this,mp,new S),w(this,hp,new S),w(this,gp,new S),w(this,_p,Date.now()),w(this,vp,new S),w(this,yp,void 0),this.subscribe=e,e.filterType.type){case`absolute-start`:O(yp,this,{startGroup:e.filterType.start.group});break;case`absolute-range`:O(yp,this,{startGroup:e.filterType.start.group,endGroup:e.filterType.end.group});break}}onUpdate(e){O(yp,this,{startGroup:e.start.group}),e.end.group>P(0)&&(A(yp,this).endGroup=e.end.group-P(1))}onError(e){let t=Error(e.reason);return A(mp,this).reject(t),A(hp,this).reject(t),t}onDone(e){e.finalInfo&&(A(yp,this)||O(yp,this,{startGroup:P(0)}),A(yp,this).endGroup=e.finalInfo.group),A(hp,this).resolve(e)}onUnsubscribe(e){A(gp,this).resolve(e)}onOk(t){let n=Math.max(0,Date.now()-A(_p,this)),r=Number(t.expires);if(r>0){let t=Math.max(e.minGraceTime,Math.min(r/10,e.maxGraceTime));Promise.race([rr(r-t-n),this.done().catch(x)]).then(()=>A(vp,this).resolve(this.expiryState())).catch(x)}A(mp,this).resolve(t)}done(){return A(hp,this).promise}ok(){return A(mp,this).promise}range(){return A(yp,this)}close(){A(vp,this).promise.catch(x),A(vp,this).reject(Error(`Subscription closed`))}expiryState(){return A(hp,this).resolved&&A(hp,this).resolved.errorCode!==Jd.Expired?`done`:A(gp,this).pending?`active`:`unsubscribed`}unsubscribed(){return A(gp,this).promise}isUnsubscribed(){return A(gp,this).resolved}expiryNotification(){return A(vp,this).promise}};m(bp,`maxGraceTime`,15e3),m(bp,`minGraceTime`,3e3),T(),k(),j(),N();var xp=new WeakMap,Sp=new WeakMap,Cp=class{constructor(e){w(this,xp,void 0),w(this,Sp,!1),O(xp,this,e)}write(e){var t=this;return M(function*(){A(Sp,t)||(yield A(xp,t).writeVarInt(Nl.StreamHeaderGroup),yield A(xp,t).writeBigVarInt(e.subscribeId),yield A(xp,t).writeBigVarInt(e.trackAlias),yield A(xp,t).writeBigVarInt(e.groupId),yield A(xp,t).writeBigVarInt(e.subGroupId),yield A(xp,t).writeUnsigned8(e.subscriberPriority),O(Sp,t,!0)),yield A(xp,t).writeBigVarInt(e.objectId),yield A(xp,t).writeVarInt(e.payload.length),e.payload.length>0?yield A(xp,t).write(e.payload):yield A(xp,t).writeVarInt(e.objectStatus),yield A(xp,t).flush()})()}close(){var e=this;return M(function*(){yield A(xp,e).close()})()}};function wp(){var e=typeof SuppressedError==`function`?SuppressedError:function(e,t){var n=Error();return n.name=`SuppressedError`,n.error=e,n.suppressed=t,n},t={},n=[];function r(e,t){if(t!=null){if(Object(t)!==t)throw TypeError(`using declarations can only be used with objects, functions, null, or undefined.`);if(e)var r=t[Symbol.asyncDispose||Symbol.for(`Symbol.asyncDispose`)];if(r===void 0&&(r=t[Symbol.dispose||Symbol.for(`Symbol.dispose`)],e))var i=r;if(typeof r!=`function`)throw TypeError(`Object is not disposable.`);i&&(r=function(){try{i.call(t)}catch(e){return Promise.reject(e)}}),n.push({v:t,d:r,a:e})}else e&&n.push({d:t,a:e});return t}return{e:t,u:r.bind(null,!1),a:r.bind(null,!0),d:function(){var r,i=this.e,a=0;function o(){for(;r=n.pop();)try{if(!r.a&&a===1)return a=0,n.push(r),Promise.resolve().then(o);if(r.d){var e=r.d.call(r.v);if(r.a)return a|=2,Promise.resolve(e).then(o,s)}else a|=1}catch(e){return s(e)}if(a===1)return i===t?Promise.resolve():Promise.reject(i);if(i!==t)throw i}function s(n){return i=i===t?n:new e(n,i),o()}return o()}}}V(),L(),T(),k(),j(),D(),N();var Tp,Ep,Dp,Op,kp=new WeakMap,Ap=new WeakMap,jp=new WeakMap,Mp=new WeakMap,Np=new WeakMap,Pp=new WeakMap,Fp=new WeakSet;Tp=un(),Ep=Symbol.asyncDispose;var Ip=class{constructor(e,t,n,r){I(this,Fp),w(this,kp,void 0),w(this,Ap,void 0),w(this,jp,void 0),w(this,Mp,void 0),w(this,Np,void 0),w(this,Pp,void 0),O(kp,this,t),O(Ap,this,e),O(jp,this,n),O(Mp,this,r),O(Pp,this,sn.get().createContext(`SubscriptionWriter:${e.subscribe.name}`))}finalInfo(){return A(Np,this)}run(){var e=this;return M(function*(){yield Promise.race([E(Fp,e,Lp).call(e).catch(t=>A(Pp,e).error(`error writing subscription`,t)),A(Ap,e).unsubscribed(),A(Ap,e).done(),A(Ap,e).expiryNotification().catch(x)])})()}done(e,t){var n=this;return M(function*(){if(A(Ap,n).isUnsubscribed())return;let r={type:Q.SubscribeDone,id:A(Ap,n).subscribe.id,errorCode:e,reason:t,finalInfo:A(Np,n)};A(Ap,n).onDone(r),yield A(Mp,n).push(r)})()}[Tp](){return this.done(Jd.TrackEnded,`Track ended`)}[Ep](){return this.done(Jd.TrackEnded,`Track ended`)}};function Lp(){var e=this;return M(function*(){var t=!1,n=!1,r;try{for(var i=X(A(kp,e)),a;t=!(a=yield i.next()).done;t=!1){let t=a.value;try{var o=wp();let n=A(Ap,e).range();if(n&&(n.startGroup>t.id||n.endGroup&&n.endGroup<t.id))break;let r=new Cp(yield A(jp,e).openSendStream()),i=o.a(new Up(r,t.consume(),A(Ap,e)));yield i.run(),O(Np,e,i.finalGroup())}catch(e){o.e=e}finally{yield o.d()}}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield i.return())}finally{if(n)throw r}}})()}var Rp=new WeakMap,zp=new WeakMap,Bp=new WeakMap,Vp=new WeakMap,Hp=new WeakMap;Dp=un(),Op=Symbol.asyncDispose;var Up=class{constructor(e,t,n){w(this,Rp,void 0),w(this,zp,void 0),w(this,Bp,void 0),w(this,Vp,void 0),w(this,Hp,void 0),O(Rp,this,e),O(zp,this,t),O(Bp,this,n),O(Hp,this,sn.get().createContext(`GroupSubscriptionWriter:${n.subscribe.name}`))}finalGroup(){return A(Vp,this)}run(){var e=this;return M(function*(){A(Hp,e).debug(`write group`);var t=!1,n=!1,r;try{for(var i=X(A(zp,e)),a;t=!(a=yield i.next()).done;t=!1){let t=a.value;yield A(Rp,e).write({subscribeId:A(Bp,e).subscribe.id,trackAlias:A(Bp,e).subscribe.trackAlias,subGroupId:P(0),subscriberPriority:0,groupId:t.groupId,objectId:t.objectId,objectStatus:t.objectStatus,payload:t.payload}),O(Vp,e,{group:t.groupId,object:t.objectId})}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield i.return())}finally{if(n)throw r}}A(Hp,e).debug(`write group done`)})()}[Dp](){return A(Rp,this).close().catch(x)}[Op](){return A(Rp,this).close().catch(x)}};V(),L(),h(),T(),k(),j(),N(),D();var Wp,Gp,Kp=new WeakMap,qp=new WeakMap,Jp=new WeakSet;Wp=un(),Gp=Symbol.asyncDispose;var Yp=class{constructor(e,t,n){I(this,Jp),m(this,`state`,void 0),w(this,Kp,void 0),w(this,qp,void 0),this.state=e,O(Kp,this,t),O(qp,this,n)}ok(e){var t=this;return M(function*(){var n,r,i;let a=(n=t.state.range())==null?void 0:n.startGroup,o=e.latest(),s=o==null?void 0:o.id,c=(r=o==null||(i=o.latest())==null?void 0:i.objectId)==null?P(0):r,l=e.consume(a==null?s:a),u={type:Q.SubscribeOk,id:t.state.subscribe.id,expires:P(0),groupOrder:`ascending`,params:new Map,largestInfo:s?{group:s,object:c}:void 0};return yield A(qp,t).push(u),new Ip(t.state,l,A(Kp,t),A(qp,t))})()}invalidRange(){return E(Jp,this,Xp).call(this,P(1),`Invalid range`)}retryTrackAlias(){return E(Jp,this,Xp).call(this,P(2),`Retry track alias`)}trackDoesNotExist(){return E(Jp,this,Xp).call(this,P(3),`Track does not exist`)}unauthorized(){return E(Jp,this,Xp).call(this,P(4),`Unauthorized`)}timeout(){return E(Jp,this,Xp).call(this,P(5),`Timeout`)}[Wp](){return this.trackDoesNotExist()}[Gp](){return this.trackDoesNotExist()}};function Xp(e,t){let n={type:Q.SubscribeError,id:this.state.subscribe.id,errorCode:e,reason:t,trackAlias:this.state.subscribe.trackAlias};return A(qp,this).push(n)}V(),T(),k(),j(),N();var Zp=new WeakMap,Qp=new WeakMap,$p=new WeakMap,em=new WeakMap,tm=new WeakMap,nm=new WeakMap,rm=new WeakMap,im=class{constructor(e,t,n){w(this,Zp,void 0),w(this,Qp,void 0),w(this,$p,void 0),w(this,em,sn.get().createContext(`Publisher`)),w(this,tm,new Fn(new Map)),w(this,nm,new Fn(new Map)),w(this,rm,new ye(10)),O(Zp,this,e),O(Qp,this,t),O($p,this,n)}announce(e){var t=this;return M(function*(){A(em,t).info(`Enter 'announce'`,{namespace:e});try{if(A(tm,t).current().has(e.join(`/`)))throw Error(`Duplicate announcement`);let n=new Map,r=A(Zp,t).authToken();r&&n.set(Sd,{type:Sd,payload:new TextEncoder().encode(r)});let i={type:Q.Announce,namespace:e,params:n},a=fp(i);if(A(tm,t).update(e=>e.set(i.namespace.join(`/`),a)),yield A($p,t).push(i),!(yield Promise.race([a.state.ok(),A(Zp,t).closed()])))throw Error(`Session closed`)}catch(e){throw A(em,t).error(`Error 'announce'`,e),e}})()}close(){A(nm,this).current().forEach(e=>e.close()),A(nm,this).close(),A(tm,this).close(),A(rm,this).close()}incomingSubscriptions(){return A(rm,this)}onMessage(e){var t=this;return M(function*(){switch(e.type){case Q.Subscribe:{let n=new bp(e);if(A(nm,t).update(t=>(t.set(e.id,n),t)),A(rm,t).isFull()){let e=yield A(rm,t).pop();yield e==null?void 0:e.timeout()}yield A(rm,t).push(new Yp(n,A(Qp,t),A($p,t)))}break;case Q.SubscribeUpdate:{let n=A(nm,t).current().get(e.id);n||A(em,t).debug(`No subscription found`,e),n==null||n.onUpdate(e)}break;case Q.Unsubscribe:{let n=A(nm,t).current().get(e.id);n||A(em,t).debug(`No subscription found`,e),n==null||n.onUnsubscribe(e)}break;case Q.AnnounceOk:{let n=A(tm,t).current().get(e.namespace.join(`/`));n||A(em,t).warn(`No announcement found`,e),n==null||n.state.onOk(e)}break;case Q.AnnounceError:{let n=A(tm,t).current().get(e.namespace.join(`/`));n||A(em,t).warn(`No announcement found`,e),n==null||n.state.onError(e)}break;default:break}})()}};V(),h(),T(),k(),j(),L(),N(),On(),jn(),D();var am,om,sm;function cm(e,t){let n=new bp(t),[r,i]=pe(100);return[new um(n,r),new _m(e,n,i)]}var lm=new WeakMap,um=class{constructor(e,t){m(this,`state`,void 0),w(this,lm,void 0),this.state=e,O(lm,this,t)}onDone(e){this.state.onDone(e)}onData(e){return A(lm,this).push(e)}onError(e){let t=this.state.onError(e);A(lm,this).abort(t)}close(){this.state.close(),A(lm,this).close()}},dm=new WeakMap,fm=new WeakMap,pm=new WeakMap,mm=new WeakMap,hm=new WeakMap,gm=new WeakSet;am=Symbol.asyncIterator,om=un(),sm=Symbol.asyncDispose;var _m=class{constructor(e,t,n){I(this,gm),w(this,dm,void 0),w(this,fm,void 0),w(this,pm,void 0),w(this,mm,new S),w(this,hm,sn.get().createContext(`SubscriptionConsumer`)),O(dm,this,e),O(fm,this,t),O(pm,this,n)}get id(){return A(fm,this).subscribe.id}get trackAlias(){return A(fm,this).subscribe.trackAlias}get name(){return A(fm,this).subscribe.name}range(){return A(fm,this).range()}expiryNotification(){return A(fm,this).expiryNotification()}update(e,t){var n=this;return M(function*(){let r={type:Q.SubscribeUpdate,id:A(fm,n).subscribe.id,start:{group:e,object:P(0)},end:{group:t+P(1),object:P(0)},params:new Map,subscriberPriority:0};A(fm,n).onUpdate(r),yield A(dm,n).push(r)})()}unsubscribe(){var e=this;return M(function*(){let t={type:Q.Unsubscribe,id:A(fm,e).subscribe.id};A(fm,e).onUnsubscribe(t),yield A(dm,e).push(t)})()}close(){var e,t;return A(mm,this).resolve(),(e=(t=A(pm,this)).return)==null?void 0:e.call(t)}closed(){return A(mm,this).promise}done(){return A(fm,this).done()}expiryState(){return A(fm,this).expiryState()}unsubscribed(){return A(fm,this).isUnsubscribed()}return(){var e=this;return M(function*(){return A(mm,e).resolve(),yield e.unsubscribe(),{done:!0,value:void 0}})()}groups(){var e=this;return kn(function*(){var t=!1,n=!1,r;try{for(var i=X(A(pm,e)),a;t=!(a=yield B(i.next())).done;t=!1)try{var o=wp();let t=o.a(a.value);var s=!1,c=!1,l;try{for(var u=X(t.groups()),d;s=!(d=yield B(u.next())).done;s=!1){let t=d.value;{var f,p;let n=(f=A(fm,e).range())==null?void 0:f.startGroup,r=(p=A(fm,e).range())==null?void 0:p.endGroup;if(n&&t.groupId()<n||r&&t.groupId()>r)return{done:!0,value:void 0};yield t}}}catch(e){c=!0,l=e}finally{try{s&&u.return!=null&&(yield B(u.return()))}finally{if(c)throw l}}}catch(e){o.e=e}finally{yield B(o.d())}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield B(i.return()))}finally{if(n)throw r}}})()}[am](){return this.groups()}objects(){var e=this;return kn(function*(){var t=!1,n=!1,r;try{for(var i=X(e.groups()),a;t=!(a=yield B(i.next())).done;t=!1){let e=a.value;var o=!1,s=!1,c;try{for(var l=X(e),u;o=!(u=yield B(l.next())).done;o=!1)yield u.value}catch(e){s=!0,c=e}finally{try{o&&l.return!=null&&(yield B(l.return()))}finally{if(s)throw c}}}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield B(i.return()))}finally{if(n)throw r}}})()}[om](){return E(gm,this,vm).call(this)}[sm](){return E(gm,this,vm).call(this)}};function vm(){var e=this;return M(function*(){return A(hm,e).info(`Enter 'dispose'`),yield e.close(),e.unsubscribe()})()}V(),L(),T(),h(),k(),D(),j(),N();var ym=2e3,bm=new WeakMap,xm=new WeakMap,Sm=new WeakMap,Cm=new WeakMap,wm=new WeakSet,Tm=class{constructor(e,t){I(this,wm),w(this,bm,void 0),m(this,`nextSubscribeId`,P(0)),w(this,xm,new Fn(new Map)),w(this,Sm,void 0),w(this,Cm,sn.get().createContext(`Subscriber`)),O(bm,this,e),O(Sm,this,t),E(wm,this,Em).call(this).catch(x)}subscribe(e,t){var n=this;return M(function*(e,t,r=new Map){A(Cm,n).info(`Enter 'subscribe'`,{namespace:e,track:t});try{let i=n.nextSubscribeId++,a=A(bm,n).authToken();a&&r.set(Sd,{type:Sd,payload:new TextEncoder().encode(a)});let o={type:Q.Subscribe,namespace:e,name:t.name,id:i,trackAlias:i,groupOrder:t.groupOrder,subscriberPriority:t.priority,filterType:t.filterType,params:r},[s,c]=cm(A(Sm,n),o);if(A(xm,n).update(e=>e.set(i,s)),yield A(Sm,n).push(o),!(yield Promise.race([s.state.ok(),A(bm,n).closed()])))throw Error(`Session closed`);return c.closed().then(()=>Promise.race([rr(ym),n.closed()])).then(()=>E(wm,n,Dm).call(n,c.id)).catch(()=>E(wm,n,Dm).call(n,c.id)),c}catch(e){throw A(Cm,n).error(`Error 'subscribe'`,e),e}}).apply(this,arguments)}closed(){return A(bm,this).closed()}transportType(){return A(bm,this).transportType()}url(){return A(bm,this).url()}onMessage(e){var t=this;return M(function*(){switch(e.type){case Q.Announce:yield A(Sm,t).push({type:Q.AnnounceOk,namespace:e.namespace});break;case Q.SubscribeOk:{let n=A(xm,t).current().get(e.id);n&&n.state.onOk(e)}break;case Q.SubscribeError:{let n=A(xm,t).current().get(e.id);n||A(Cm,t).warn(`No subscription found`,e),n==null||n.onError(e),E(wm,t,Dm).call(t,e.id)}break;case Q.SubscribeDone:{let n=A(xm,t).current().get(e.id);n||A(Cm,t).debug(`No subscription found`,e),n==null||n.onDone(e)}break;default:break}})()}onObjectReader(e){var t=this;return M(function*(){let n=A(xm,t).current().get(e.subscribeId());if(!n){A(Cm,t).warn(`No subscription found`,e.subscribeId());return}yield n.onData(e)})()}close(){A(Cm,this).debug(`Enter 'close'`),A(xm,this).current().forEach(e=>e.close()),A(xm,this).close()}};function Em(){var e=this;return M(function*(){var t=!1,n=!1,r;try{for(var i=X(A(xm,e)),a;t=!(a=yield i.next()).done;t=!1){let t=a.value;{let n=[...t.values()].map(e=>e.state.subscribe);A(Cm,e).debug(`current subscriptions`,n)}}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield i.return())}finally{if(n)throw r}}A(Cm,e).debug(`Return 'observeChanges'`)})()}function Dm(e){A(Cm,this).debug(`Enter 'deleteSubscription'`),!A(xm,this).isClosed()&&A(xm,this).update(t=>(t.delete(e),t))}V(),L(),T(),h(),k(),D(),j(),N();var Om,km,Am=new WeakMap,jm=new WeakMap,Mm=new WeakMap,Nm=new WeakMap,Pm=new WeakMap,Fm=new WeakMap,Im=new WeakSet;Om=dn(),km=Symbol.dispose;var Lm=class{constructor(e,t){I(this,Im),w(this,Am,void 0),w(this,jm,void 0),w(this,Mm,new S),w(this,Nm,void 0),w(this,Pm,sn.get().createContext(`Session`)),m(this,`subscriber`,void 0),m(this,`publisher`,void 0),w(this,Fm,void 0);let[n,r]=pe(100);O(Am,this,e),O(Nm,this,r),this.subscriber=new Tm(this,n),this.publisher=new im(this,e,n),O(jm,this,E(Im,this,zm).call(this)),O(Fm,this,new Fn(t)),this.closed().then(()=>this.close()).catch(x)}updateAuthToken(e){A(Fm,this).update(e)}authToken(){return A(Fm,this).current()}transportType(){return A(Am,this).transportType()}url(){return A(Am,this).url()}closed(){return Promise.race([A(jm,this),A(Mm,this).promise])}fail(e){A(Mm,this).pending&&A(Mm,this).resolve(e)}close(){try{this.subscriber.close(),this.publisher.close(),A(Nm,this).cancel(`closing`),A(Am,this).close()}catch(e){A(Pm,this).warn(`Error closing session`,e)}}[Om](){E(Im,this,Um).call(this)}[km](){E(Im,this,Um).call(this)}};function Rm(e){var t=this;return M(function*(){var n,r;switch(A(Pm,t).debug(`received message`,e),yield(n=t.subscriber)==null?void 0:n.onMessage(e),yield(r=t.publisher)==null?void 0:r.onMessage(e),e.type){case Q.Goaway:A(Pm,t).info(`received GoAway`,e);break;default:break}})()}function zm(){var e=this;return M(function*(){return(yield Promise.all([E(Im,e,Vm).call(e),E(Im,e,Hm).call(e),E(Im,e,Bm).call(e)])).find(e=>e instanceof Error)})()}function Bm(){var e=this;return M(function*(){try{var t=!1,n=!1,r;try{for(var i=X(A(Nm,e)),a;t=!(a=yield i.next()).done;t=!1){let t=a.value;A(Pm,e).debug(`sending message`,t),yield A(Am,e).writeMessage(t)}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield i.return())}finally{if(n)throw r}}}catch(t){return A(Pm,e).error(`Error 'runOutgoingMessages'`,t),t}A(Pm,e).info(`Return 'runOutgoingMessages'`)})()}function Vm(){var e=this;return M(function*(){try{for(yield A(Am,e).afterHandshake();;){let t=yield A(Am,e).readMessage().catch(()=>void 0);if(!t)break;yield E(Im,e,Rm).call(e,t)}}catch(t){return A(Pm,e).error(`Error 'runControl'`,t),t}finally{A(Nm,e).cancel(`closing`)}A(Pm,e).info(`Return 'runControl'`)})()}function Hm(){var e=this;return M(function*(){try{for(;;){var t;let n=yield A(Am,e).objectStream();if(!n)break;yield(t=e.subscriber)==null?void 0:t.onObjectReader(n)}}catch(t){return A(Pm,e).error(`Error 'runObjects'`,t),t}A(Pm,e).info(`Return 'runObjects'`)})()}function Um(){A(Pm,this).debug(`Enter 'dispose'`),this.close()}L(),T(),k(),j(),D(),N();var Wm=128,Gm=new WeakMap,Km=new WeakMap,qm=new WeakMap,Jm=new WeakMap,Ym=new WeakMap,Xm=new WeakSet,Zm=class{constructor(e,t,n){I(this,Xm),w(this,Gm,void 0),w(this,Km,void 0),w(this,qm,!0),w(this,Jm,!1),w(this,Ym,void 0),O(Gm,this,e),O(Km,this,t),O(Ym,this,n)}writeUnsigned8(e){var t=this;return M(function*(){return E(Xm,t,Qm).call(t),yield E(Xm,t,$m).call(t),A(Gm,t).writeUnsigned8(e)})()}writeVarInt(e){var t=this;return M(function*(){return E(Xm,t,Qm).call(t),yield E(Xm,t,$m).call(t),A(Gm,t).writeVarInt(e)})()}writeBigVarInt(e){var t=this;return M(function*(){return E(Xm,t,Qm).call(t),yield E(Xm,t,$m).call(t),A(Gm,t).writeBigVarInt(e)})()}write(e){var t=this;return M(function*(){return E(Xm,t,Qm).call(t),yield E(Xm,t,$m).call(t),A(Gm,t).write(e)})()}writeString(e){var t=this;return M(function*(){return E(Xm,t,Qm).call(t),yield E(Xm,t,$m).call(t),A(Gm,t).writeString(e)})()}flush(){var e=this;return M(function*(){E(Xm,e,Qm).call(e),O(qm,e,!0),yield A(Gm,e).flush()})()}close(){var e=this;return M(function*(){A(Jm,e)||(O(qm,e,!0),yield E(Xm,e,$m).call(e,!1),yield A(Gm,e).flush(),O(Jm,e,!0),A(Ym,e).call(e))})()}};function Qm(){if(A(Jm,this))throw Error(`Stream is closed`)}function $m(e=!0){if(A(qm,this))return O(qm,this,!1),A(Gm,this).writeUnsigned8(A(Km,this)|(e?Wm:0))}V(),L(),T(),k(),j(),D(),N();var eh=new WeakMap,th=new WeakMap,nh=new WeakMap,rh=new WeakMap,ih=new WeakMap,ah=new WeakMap,oh=new WeakMap,sh=new WeakSet,ch=class{constructor(e,t){I(this,sh),w(this,eh,void 0),w(this,th,void 0),w(this,nh,void 0),w(this,rh,void 0),w(this,ih,new Map),w(this,ah,sn.get().createContext(`WebSocketConnection`)),w(this,oh,new Set(Array(128).fill(0).map((e,t)=>t+1))),O(eh,this,e),O(th,this,t),O(nh,this,new ReadableStream(new Mu(e))),A(eh,this).addEventListener(`close`,e=>{A(ah,this).info(`WebSocket closed`,{code:e.code,reason:e.reason,wasClean:e.wasClean}),A(th,this).markPostHandshake(),A(ih,this).forEach(e=>e.close())})}openSendStream(){let e=A(oh,this).values().next().value;if(!e)throw Error(`No stream IDs available`);return A(oh,this).delete(e),Promise.resolve(new Zm(new cd(A(eh,this)),e,()=>E(sh,this,lh).call(this,e)))}transportType(){return`websocket`}url(){return A(eh,this).url}afterHandshake(){return A(th,this).postHandshake()}objectStream(){var e=this;return M(function*(){for(;;){O(rh,e,A(nh,e).getReader());try{let{value:t,done:n}=yield A(rh,e).read();if(n)return;let[r,i,a]=t;if(A(ih,e).has(P(i))){let t=A(ih,e).get(P(i));if(!t)throw Error(`Stream not found`);a.length>0&&(yield t.push(a)),r||(A(ah,e).debug(`Closing stream`,{streamId:i}),t.close(),A(ih,e).delete(P(i)))}else{A(ah,e).debug(`Creating new stream`,{streamId:i});let[t,n]=pe(1e3),o=new ReadableStream({pull(e){return M(function*(){let t=yield n.pop();t?e.enqueue(t):e.close()})()}});if(A(ih,e).set(P(i),t),r||(A(ah,e).debug(`Closing new stream`,{streamId:i}),yield o.cancel(),A(ih,e).delete(P(i))),a.length>0)return yield Su(new Bu(a,o),i)}}finally{var t;(t=A(rh,e))==null||t.releaseLock()}}})()}close(){var e;return A(th,this).cancel().catch(x),A(nh,this).cancel(`closing`).catch(x),(e=A(rh,this))==null||e.cancel(`closing`).catch(x),A(eh,this).close()}closed(){return Promise.resolve()}writeMessage(e){var t=this;return M(function*(){yield A(th,t).write(e)})()}readMessage(){var e=this;return M(function*(){return A(th,e).read()})()}};function lh(e){A(oh,this).add(e)}V(),L(),T(),k(),D(),j(),N();var uh=new WeakMap,dh=new WeakMap,fh=new WeakMap,ph=new WeakMap,mh=new WeakMap,hh=new WeakMap,gh=new WeakSet,_h=class{constructor(e,t,n){I(this,gh),w(this,uh,void 0),w(this,dh,void 0),w(this,fh,new ye(100)),w(this,ph,void 0),w(this,mh,0),w(this,hh,sn.get().createContext(`WebTransportConnection`)),O(ph,this,n),O(uh,this,e),O(dh,this,t),E(gh,this,vh).call(this).catch(e=>{A(hh,this).warn(`Incoming streams handling ended with error`,e),A(dh,this).markPostHandshake(),A(fh,this).close()}),A(uh,this).closed.then(()=>{A(dh,this).markPostHandshake(),A(fh,this).close()})}openSendStream(){var e=this;return M(function*(){return new td(yield A(uh,e).createUnidirectionalStream())})()}transportType(){return`webtransport`}url(){return A(ph,this)}afterHandshake(){return A(dh,this).postHandshake()}closed(){var e=this;return M(function*(){yield A(uh,e).closed})()}close(){A(uh,this).close()}writeMessage(e){var t=this;return M(function*(){yield A(dh,t).write(e)})()}readMessage(){var e=this;return M(function*(){return A(dh,e).read()})()}objectStream(){var e=this;return M(function*(){return A(fh,e).pop()})()}};function vh(){var e=this;return M(function*(){let t=A(uh,e).incomingUnidirectionalStreams.getReader();for(;;){var n;let{value:r,done:i}=yield t.read();if(i){A(fh,e).close();return}let a=new Bu(new Uint8Array,r);yield A(fh,e).push(Su(a,A(mh,e))),O(mh,e,(n=A(mh,e),n++,n))}})()}V(),N();var yh=sn.get().createContext(`MoqClient`);function bh(e){return xh.apply(this,arguments)}function xh(){return xh=M(function*(e){let t=new WebSocket(e.wsUrl||e.url);t.binaryType=`arraybuffer`,yield new Promise((e,n)=>{t.addEventListener(`error`,()=>n(Error(`WebSocket error`)),{once:!0}),t.addEventListener(`open`,e,{once:!0})});let n=ap.wrapWebsocket(t),r=cp(n,e.role).catch(e=>{throw yh.warn(`MoQ handshake failed, closing WebSocket`,{error:e}),t.close(),e});e.handshakePipelining||(yield r);let i=new Lm(new ch(t,n),e.authToken);return yh.info(`connected`,{url:e.wsUrl||e.url,transport:`websocket`}),e.handshakePipelining&&r.catch(e=>{i.fail(e)}),i}),xh.apply(this,arguments)}function Sh(e){return Ch.apply(this,arguments)}function Ch(){return Ch=M(function*(e){let t=new Uint8Array(64/2);for(let e=0;e<t.length;e+=1)t[e]=parseInt(`60b82e8021689e163c1041b4475ef9c86e7565bc45d1a0aa43f5148769f461c7`.slice(2*e,2*e+2),16);let n=new WebTransport(e.url,{congestionControl:`low-latency`}),r=()=>{n.close()};typeof window<`u`&&typeof window.addEventListener==`function`&&(window.addEventListener(`beforeunload`,r),n.closed.finally(()=>{window.removeEventListener(`beforeunload`,r)}).catch(()=>{})),yield Promise.race([n.ready,n.closed.then(()=>Promise.reject(Error(`WebTransport closed`)))]);let i=yield n.createBidirectionalStream(),a=ap.wrapWebTransport(i),o=cp(a,e.role).catch(()=>{n.close()});e.handshakePipelining||(yield o);let s=new Lm(new _h(n,a,e.url.toString()),e.authToken);return yh.info(`connected`,{url:e.url,transport:`webtransport`}),s}),Ch.apply(this,arguments)}function wh(e){return Th.apply(this,arguments)}function Th(){return Th=M(function*(e){if(self.WebTransport&&(e==null?void 0:e.preferredTransport)!==`websocket`&&e.url.protocol.startsWith(`https`)){if(!e.websocketFallbackTimeoutMs)return{session:yield Sh(e),transportSelectionReason:void 0};let t=Sh(e).catch(()=>bh(e)),n=yield Promise.race([t,rr(e.websocketFallbackTimeoutMs)]);return n?{session:n,transportSelectionReason:n.transportType()===`websocket`?`fallback`:void 0}:{session:yield bh(e),transportSelectionReason:`fallback`}}let t;return t=(e==null?void 0:e.preferredTransport)===`websocket`?`disabled`:self.WebTransport?`unavailable`:`unsupported`,{session:yield bh(e),transportSelectionReason:t}}),Th.apply(this,arguments)}V(),T(),j();var Eh=new WeakMap,Dh=class{constructor(){w(this,Eh,{name:``,priority:0,groupOrder:`ascending`,filterType:{type:`latest-group`}})}name(e){return A(Eh,this).name=e,this}priority(e){return A(Eh,this).priority=e,this}groupOrder(e){return A(Eh,this).groupOrder=e,this}startGroup(e){return A(Eh,this).filterType={type:`absolute-start`,start:{group:e,object:P(0)}},this}range(e,t){return A(Eh,this).filterType={type:`absolute-range`,start:{group:e,object:P(0)},end:{group:t,object:P(0)}},this}build(){return A(Eh,this)}};T(),k(),j();var Oh=new WeakMap,kh=new WeakMap,Ah=class{constructor(e,t){w(this,Oh,void 0),w(this,kh,void 0),O(Oh,this,e),O(kh,this,t)}subscribe(e,t=new Map){return A(Oh,this).subscribe(this.namespace(),e,t)}closed(){return A(Oh,this).closed()}namespace(){return A(kh,this).namespace}};function jh(e,t){return t?[`com.vindral.moq`,e,t]:[`com.vindral.moq`,e]}function Mh(e){let t=e[1];if(!t)throw Error(`namespace must contain a channel ID`);return t}function Nh(e){return`tracks`in e}function Ph(e){let t=new TextDecoder().decode(e);return JSON.parse(t)}V(),L(),T(),j(),k(),D(),N();var Fh,Ih=new WeakMap,Lh=new WeakMap,Rh=new WeakMap,zh=new WeakMap,Bh=new WeakMap,Vh=new WeakMap,Hh=new WeakSet;Fh=Symbol.asyncIterator;var Uh=class e{constructor(e,t){var n=this;I(this,Hh),w(this,Ih,void 0),w(this,Lh,void 0),w(this,Rh,new C(100)),w(this,zh,void 0),w(this,Bh,void 0),w(this,Vh,function(){var e=M(function*(e){if(!e)return A(Ih,n).close();if(A(zh,n))return;let t=A(Rh,n).items().reduce((e,t)=>e<t?e:t,e);O(zh,n,E(Hh,n,Wh).call(n,t,e)),A(zh,n).size===0&&(yield A(Ih,n).close())});return function(t){return e.apply(this,arguments)}}()),O(Ih,this,e),O(Lh,this,t),e.done().then(function(){var e=M(function*(e){var t;return A(Vh,n).call(n,(t=e.finalInfo)==null?void 0:t.group)});return function(t){return e.apply(this,arguments)}}()).catch(x),O(Bh,this,e.groups())}static subscribe(t,n){return M(function*(){return new e(yield t.subscribe(n),void 0)})()}subscribeId(){return A(Ih,this).id}name(){return A(Ih,this).name}largestGroupId(){return A(Lh,this)}needsRenewal(){return A(Ih,this).expiryState()===`active`&&A(zh,this)===void 0}endOfTrack(e){let t=A(Rh,this).items().reduce((e,t)=>e<t?e:t,e);return this.update(t,e)}update(e,t){var n=this;return M(function*(){return O(zh,n,E(Hh,n,Wh).call(n,e,t)),A(zh,n).size===0&&(yield A(Ih,n).close()),A(Ih,n).update(e,t)})()}unsubscribe(){return A(Ih,this).unsubscribe()}next(){var e=this;return M(function*(){var t;if(A(zh,e)&&A(zh,e).size===0)return{done:!0,value:void 0};let n=yield A(Bh,e).next();if(n.done)return n;let r=n.value.groupId();return(t=A(zh,e))==null||t.delete(r),A(Rh,e).push(r),A(Lh,e)||O(Lh,e,r),O(Lh,e,A(Lh,e)<r?r:A(Lh,e)),n})()}return(){return A(Ih,this).return()}[Fh](){return this}};function Wh(e,t){let n=new Set;for(let r=e;r<=t;r++)n==null||n.add(r);return A(Rh,this).items().forEach(e=>{n==null||n.delete(e)}),n}Dn();function Gh(e){var t={},n=!1;function r(t,r){return n=!0,r=new Promise(function(n){n(e[t](r))}),{done:!1,value:new En(r,1)}}return t[typeof Symbol<`u`&&Symbol.iterator||`@@iterator`]=function(){return this},t.next=function(e){return n?(n=!1,e):r(`next`,e)},typeof e.throw==`function`&&(t.throw=function(e){if(n)throw n=!1,e;return r(`throw`,e)}),typeof e.return==`function`&&(t.return=function(e){return n?(n=!1,e):r(`return`,e)}),t}V(),L(),T(),j(),D(),N(),k(),On(),jn();var Kh,qh=new WeakMap,Jh=new WeakMap,Yh=new WeakMap,Xh=new WeakMap,Zh=new WeakSet,Qh=new WeakMap;Kh=Symbol.asyncIterator;var $h=class e{constructor(e){var t=this;I(this,Zh),w(this,qh,void 0),w(this,Jh,void 0),w(this,Yh,new ye(10)),w(this,Xh,void 0),w(this,Qh,function(){var e=M(function*(e,n){try{var r=wp();let i=r.u(yield A(qh,t).lock()),a={subscribeId:i.value.subscribeId()};if(!i.value.needsRenewal()){A(Xh,t).debug(`Subscription does not need renewal`,a);return}let o=i.value.largestGroupId(),s=o!==void 0,c=new Dh().name(n.name).priority(n.priority).groupOrder(n.groupOrder);switch(a.largestGroupId=o,A(Xh,t).debug(`Renewing subscription`,a),n.filterType.type){case`absolute-range`:A(Xh,t).debug(`Absolute range is not renewed`,a);return;case`absolute-start`:case`latest-group`:case`latest-object`:s&&c.startGroup(o+P(1));break}let l=c.build();a.newTrack=l;let[u]=yield Promise.all([e.subscribe(l),s?i.value.update(o,o):i.value.unsubscribe()]);u.done().then(()=>E(Zh,t,eg).call(t,u)).catch(x),u.expiryNotification().then(()=>A(Qh,t).call(t,e,l)).catch(x);let d=new Uh(u,o);i.value=d,yield A(Yh,t).push(d),A(Xh,t).info(`Subscription renewed`,a)}catch(e){r.e=e}finally{r.d()}});return function(t,n){return e.apply(this,arguments)}}()),O(qh,this,new bn(e)),O(Jh,this,e),O(Xh,this,sn.get().createContext(`Renewable '${e.name()}'`))}static subscribe(t,n,r){return M(function*(){let i=r==null?void 0:r.params,a=r==null?void 0:r.largestGroupId,o=yield t.subscribe(n,i),s=new e(new Uh(o,a));return o.done().then(()=>E(Zh,s,eg).call(s,o)).catch(x),o.expiryNotification().then(()=>A(Qh,s).call(s,t,n)).catch(x),s})()}largestGroupId(){return A(qh,this).unsafeValue().largestGroupId()}update(e,t){var n=this;return M(function*(){try{var r=wp();let i=r.u(yield A(qh,n).lock());return A(Yh,n).close(),i.value.update(e,t)}catch(e){r.e=e}finally{r.d()}})()}endOfTrack(e){var t=this;return M(function*(){try{var n=wp();let r=n.u(yield A(qh,t).lock());return A(Yh,t).close(),r.value.endOfTrack(e)}catch(e){n.e=e}finally{n.d()}})()}unsubscribe(){var e=this;return M(function*(){try{var t=wp();let n=t.u(yield A(qh,e).lock());return A(Yh,e).close(),n.value.unsubscribe()}catch(e){t.e=e}finally{t.d()}})()}return(){var e=this;return M(function*(){try{var t=wp();let n=t.u(yield A(qh,e).lock());return A(Yh,e).close(),n.value.return()}catch(e){t.e=e}finally{t.d()}})()}next(){var e=this;return M(function*(){let t=yield A(Jh,e).next();if(t.done){var n,r;yield(n=(r=A(Jh,e)).return)==null?void 0:n.call(r);let t=yield A(Yh,e).pop();if(t)return O(Jh,e,t),e.next()}return t})()}[Kh](){return this}objects(){var e=this;return kn(function*(){var t=!1,n=!1,r;try{for(var i=X(e),a;t=!(a=yield B(i.next())).done;t=!1)try{var o=wp();yield*Gh(X(o.a(a.value)))}catch(e){o.e=e}finally{yield B(o.d())}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield B(i.return()))}finally{if(n)throw r}}})()}};function eg(e){var t=this;return M(function*(){var n;if(e.unsubscribed()||(n=e.range())!=null&&n.endGroup){A(Xh,t).info(`Server initiated subscribe done but the subscription is already closing`);return}if(A(qh,t).unsafeValue().subscribeId()!==e.id){A(Xh,t).info(`subscribeId mismatch - the subscription already has been renewed`);return}return t.return()})()}V(),L(),T(),k(),D(),j(),N();var tg=`catalog`;function ng(e){let t=Ph(e.payload);if(!Nh(t))throw Error(`unexpected catalog type`);return t}var rg=new WeakMap,ig=new WeakMap,ag=new WeakMap,og=new WeakMap,sg=new WeakSet,cg=class e{constructor(e,t,n){I(this,sg),w(this,rg,void 0),w(this,ig,void 0),w(this,ag,void 0),w(this,og,void 0),O(ig,this,e),O(rg,this,t),O(ag,this,n),O(og,this,E(sg,this,lg).call(this)),this.closed().finally(()=>A(rg,this).close()).catch(x)}catalog(){return A(rg,this)}closed(){return A(og,this)}close(){var e=this;return M(function*(){return A(rg,e).close(),(yield A(ig,e).promise).unsubscribe()})()}static start(t,n){return M(function*(){let r=S.fromPromise($h.subscribe(t,new Dh().name(n.catalogName||tg).groupOrder(`ascending`).build())),i=S.fromPromise(r.promise.then(e=>e.objects()));if(n.catalog)return new e(r,new Fn(n.catalog),i);let a=yield(yield i.promise).next();if(!a.value)throw Error(`No catalog found`);return new e(r,new Fn(ng(a.value)),i)})()}};function lg(){var e=this;return M(function*(){let t=yield A(ag,e).promise;var n=!1,r=!1,i;try{for(var a=X(t),o;n=!(o=yield a.next()).done;n=!1){let t=o.value;{if(t.objectStatus!==Ul.Normal)continue;let n=ng(t);A(rg,e).update(n)}}}catch(e){r=!0,i=e}finally{try{n&&a.return!=null&&(yield a.return())}finally{if(r)throw i}}})()}V(),L(),T(),k(),j(),D(),h(),On(),z(),jn(),N();var ug,dg,fg,pg,mg,hg,gg,_g,vg=new WeakMap,yg=new WeakMap,bg=new WeakMap,xg=new WeakMap,Sg=new WeakMap,Cg=new WeakMap,wg=new WeakMap,Tg=new WeakMap,Eg=new WeakSet;ug=dn(),dg=Symbol.dispose;var Dg=class{constructor(e,t){I(this,Eg),w(this,vg,void 0),w(this,yg,void 0),w(this,bg,void 0),w(this,xg,void 0),w(this,Sg,void 0),w(this,Cg,void 0),w(this,wg,void 0),w(this,Tg,0),O(vg,this,e),O(yg,this,t)}onFragment(e,t,n,r,i){var a;A(bg,this)===void 0&&(O(bg,this,e),O(xg,this,t),O(Sg,this,n),O(Cg,this,r),A(vg,this).debug(`group start`,{name:A(yg,this).name,groupId:e,startTimeMs:r,endTimeMs:i,subscribeId:t,mediaType:n,namespace:A(yg,this).namespace})),O(Tg,this,(a=A(Tg,this),a++,a)),O(wg,this,i)}[ug](){E(Eg,this,Og).call(this)}[dg](){E(Eg,this,Og).call(this)}};function Og(){A(bg,this)!==void 0&&A(Cg,this)!==void 0&&A(wg,this)!==void 0&&A(vg,this).debug(`group end`,{name:A(yg,this).name,groupId:A(bg,this),startTimeMs:A(Cg,this),endTimeMs:A(wg,this),durationMs:A(wg,this)-A(Cg,this),fragmentCount:A(Tg,this),subscribeId:A(xg,this),mediaType:A(Sg,this),namespace:A(yg,this).namespace})}var kg=new WeakMap,Ag=new WeakMap,jg=new WeakMap,Mg=new WeakMap,Ng=new WeakSet;fg=Symbol.asyncIterator,pg=un(),mg=Symbol.asyncDispose;var Pg=class{constructor(e,t,n,r){I(this,Ng),w(this,kg,void 0),w(this,Ag,void 0),w(this,jg,void 0),m(this,`track`,void 0),w(this,Mg,sn.get().createContext(`CmafGroup`)),this.track=r,O(kg,this,n),O(Ag,this,e),O(jg,this,t)}[fg](){var e=this;return kn(function*(){try{var t=wp();let s={name:e.track.trackObject.name,namespace:e.track.namespace},c=t.u(new Dg(A(Mg,e),s));var n=!1,r=!1,i;try{for(var a=X(A(Ag,e)),o;n=!(o=yield B(a.next())).done;n=!1){let t=o.value;{if(t.objectStatus===Ul.EndOfTrackAndGroup&&(yield B(e.track.endOfTrack(t.groupId))),t.objectStatus!==Ul.Normal)continue;let n=A(jg,e).createFragment(t.payload),r=n.timescale(),i=n.baseMediaDecodeTime()/r*1e3,a=i+n.duration()/r*1e3,o=A(kg,e)/1e3*r;n.updateBaseMediaDecodeTime(n.baseMediaDecodeTime()-o);let l=e.track.timestampRange();if(l&&i>=l[1])break;A(Mg,e).trace(`fragment`,R(R({},s),{},{startTime:i,endTime:a,subscribeId:t.subscribeId,groupId:t.groupId,objectId:t.objectId,streamId:t.streamId})),c.onFragment(t.groupId,t.subscribeId,n.mediaType(),i,a),yield[t.groupId,n]}}}catch(e){r=!0,i=e}finally{try{n&&a.return!=null&&(yield B(a.return()))}finally{if(r)throw i}}}catch(e){t.e=e}finally{t.d()}})()}[pg](){return E(Ng,this,Fg).call(this)}[mg](){return E(Ng,this,Fg).call(this)}};function Fg(){var e=this;return M(function*(){var t,n;return yield(t=(n=A(Ag,e)).return)==null?void 0:t.call(n),Promise.resolve()})()}var Ig=new WeakMap,Lg=new WeakMap,Rg=new WeakMap,zg=new WeakMap;hg=Symbol.asyncIterator,gg=un(),_g=Symbol.asyncDispose;var Bg=class e{constructor(e,t,n,r,i){w(this,Ig,void 0),w(this,Lg,void 0),w(this,Rg,void 0),w(this,zg,void 0),m(this,`trackObject`,void 0),m(this,`namespace`,void 0),this.trackObject=e,this.namespace=t,O(Lg,this,n),O(Ig,this,r),O(Rg,this,i)}static subscribe(t,n,{timestampOffsetMs:r,startGroup:i,params:a}){return M(function*(){if(n.format!==`cmaf`)throw Error(`format must be cmaf`);let o=new Dh().name(n.name);i&&o.startGroup(i);let s=o.build();if(n.initTrack){let o=new Dh().name(n.initTrack).build(),[c,l]=yield Promise.all([Vg.call(e,t,o),$h.subscribe(t,s,{params:a,largestGroupId:i?i-P(1):void 0})]),u=new $o(c);return new e(n,t.namespace(),l,u,r)}xe(n.initData,`no init data found on track`);let c=Re(n.initData),l=new $o(new Uint8Array(c)),u=yield $h.subscribe(t,s,{params:a,largestGroupId:i?i-P(1):void 0});return new e(n,t.namespace(),u,l,r)})()}largestGroupId(){return A(Lg,this).largestGroupId()}stopAfterTimestampReached(e){O(zg,this,[0,e])}timestampRange(){return A(zg,this)}endOfTrack(e){return A(Lg,this).endOfTrack(e)}update(e,t){return A(Lg,this).update(e,t)}unsubscribe(){var e=this;return M(function*(){return A(Lg,e).unsubscribe()})()}next(){var e=this;return M(function*(){let t=yield A(Lg,e).next();return t.done?t:{done:!1,value:new Pg(t.value,A(Ig,e),A(Rg,e),e)}})()}return(){var e=this;return M(function*(){return yield A(Lg,e).return(),{done:!0,value:void 0}})()}[hg](){return this}[gg](){return this.unsubscribe()}[_g](){var e=this;return M(function*(){return e.unsubscribe()})()}};function Vg(e,t){return M(function*(){try{var n=wp();let r=n.a(yield e.subscribe(t)),i=yield r.objects().next();if(i.done)throw Error(`No init object`);return yield r.close(),i.value.payload}catch(e){n.e=e}finally{yield n.d()}})()}V(),L(),T(),k(),D(),j(),N();var Hg=1e4,Ug=3e4,Wg=new WeakMap,Gg=new WeakMap,Kg=new WeakMap,qg=new WeakMap,Jg=new WeakMap,Yg=new WeakMap,Xg=new WeakSet,Zg=class e{constructor(e,t,n){I(this,Xg),w(this,Wg,sn.get().createContext(`Timeline`)),w(this,Gg,new Fn([])),w(this,Kg,void 0),w(this,qg,void 0),w(this,Jg,void 0),w(this,Yg,void 0),O(qg,this,e),O(Jg,this,n),O(Kg,this,t),O(Yg,this,E(Xg,this,Qg).call(this,A(Kg,this))),this.closed().finally(()=>A(Gg,this).close()).catch(x)}closed(){return A(Yg,this)}close(){var e=this;return M(function*(){return(yield A(Kg,e).promise).unsubscribe()})()}timeline(){let[e,t]=A(Gg,this).value();return e}timestampWallclockOffset(){return jt(this.timeline().map(e=>e.mediaPts-e.wallclock))}static start(t,n){return new e(t,S.fromPromise($h.subscribe(t,new Dh().name(n).groupOrder(`ascending`).build())),n)}waitForWallclockTime(e){var t=this;return M(function*(){return yield A(Gg,t).waitFor(t=>!!t.find(t=>t.wallclock>=e)),t.timeline()})()}waitForTimelineToHaveMinDuration(){var e=this;return M(function*(){return yield A(Gg,e).waitFor(e=>{let t=e[0],n=e[e.length-1];return!t||!n?!1:n.wallclock-t.wallclock>Hg}),e.timeline()})()}};function Qg(e){var t=this;return M(function*(){let n=yield e.promise;var r=!1,i=!1,a;try{for(var o=X(n),s;r=!(s=yield o.next()).done;r=!1)try{var c=wp();let e=c.a(s.value);var l=!1,u=!1,d;try{for(var f=X(e),p;l=!(p=yield f.next()).done;l=!1){let e=p.value;{if(e.objectStatus!==Ul.Normal)continue;let r=e_(e.payload);A(Gg,t).update(e=>{var t,n;for(e.push(...r),e.sort((e,t)=>e.wallclock-t.wallclock);e[0]&&((t=(n=e[e.length-1])==null?void 0:n.wallclock)==null?0:t)-e[0].wallclock>Ug;)e.shift();return e}),n===A(Kg,t).resolved&&e.groupId>P(0)&&e.objectId===P(0)&&E(Xg,t,$g).call(t,e.groupId).catch(e=>{A(Wg,t).warn(`backfill failed`,e)})}}}catch(e){u=!0,d=e}finally{try{l&&f.return!=null&&(yield f.return())}finally{if(u)throw d}}}catch(e){c.e=e}finally{yield c.d()}}catch(e){i=!0,a=e}finally{try{r&&o.return!=null&&(yield o.return())}finally{if(i)throw a}}})()}function $g(e){var t=this;return M(function*(){let n=e-P(1),r=t.timeline(),i=r[0],a=r[r.length-1];if(!i||!a||a.wallclock-i.wallclock>Hg)return;A(Wg,t).debug(`backfilling timeline`,{currentGroupId:e,backfillGroupId:n});let o=S.fromPromise($h.subscribe(A(qg,t),new Dh().name(A(Jg,t)).groupOrder(`ascending`).range(n,n).build()));return E(Xg,t,Qg).call(t,o)})()}function e_(e){var t;let n=new TextDecoder(`utf-8`).decode(e).split(`
49
+ `);return(t=n[0])!=null&&t.startsWith(`MEDIA_PTS`)&&n.shift(),n.filter(e=>e.length>0).map(e=>{let[t,n,r,i,a]=e.split(`,`);if(!t||!i)throw Error(`invalid timeline row: ${e}`);return{mediaPts:parseInt(t,10),groupId:n?parseInt(n,10):void 0,objectId:r?parseInt(r,10):void 0,wallclock:parseInt(i,10),metadata:a}})}V(),T(),h(),k(),N(),j();var t_,n_,r_;function i_(e){return typeof e.language==`string`}var a_=new WeakMap,o_=new WeakMap,s_=new WeakMap,c_=new WeakMap;t_=Symbol.asyncIterator,n_=un(),r_=Symbol.asyncDispose;var l_=class e{constructor(e,t,n,r,i){w(this,a_,new el),w(this,o_,void 0),w(this,s_,void 0),w(this,c_,0),m(this,`trackObject`,void 0),m(this,`namespace`,void 0),O(s_,this,e),O(o_,this,t),this.trackObject=n,this.namespace=r,O(c_,this,i)}static subscribe(t,n,r){return M(function*(){if(!i_(n))throw Error(`track object language is required`);let i=new Dh().name(n.name).build(),a=yield $h.subscribe(t,i);return new e(a,a.objects(),n,t.namespace(),r)})()}largestGroupId(){return A(s_,this).largestGroupId()}update(e,t){return A(s_,this).update(e,t)}unsubscribe(){return A(s_,this).unsubscribe()}next(){var e=this;return M(function*(){for(;;){let t=yield A(o_,e).next();if(t.done)return t;if(t.value.objectStatus!==Ul.Normal)continue;let n=new TextDecoder().decode(t.value.payload),r=A(a_,e).parse(n).map(t=>(t.startTime-=A(c_,e)/1e3,t.endTime-=A(c_,e)/1e3,t));return{done:!1,value:{language:e.trackObject.language,cues:r}}}})()}return(){var e=this;return M(function*(){return yield A(s_,e).return(),{done:!0,value:void 0}})()}[t_](){return this}[n_](){return this.unsubscribe()}[r_](){return this.unsubscribe()}};V(),L(),h(),T(),k(),N(),j(),D();var u_=new WeakMap,d_=new WeakMap,f_=new WeakMap,p_=new WeakMap,m_=new WeakSet,h_=class e{constructor(e,t,n,r,i){I(this,m_),m(this,`namespace`,void 0),w(this,u_,void 0),w(this,d_,void 0),w(this,f_,void 0),w(this,p_,void 0),this.namespace=r,O(u_,this,e),O(d_,this,t),O(f_,this,n),O(p_,this,i)}static start(t,n){return M(function*(){__._.info(`Enter 'start'`,{config:n});let r=new Ah(t,{namespace:n.namespace}),[i,a]=yield Promise.all([Zg.start(r,`timeline`),cg.start(r,{catalog:n.catalog,namespace:n.namespace})]);return new e(r,i,a,n.namespace,0)})()}closed(){return A(f_,this).closed()}catalog(){return A(f_,this).catalog()}timestampWallclockOffset(){return A(d_,this).timestampWallclockOffset()}timestampOffsetMs(){return A(p_,this)}setTimestampOffsetMs(e){O(p_,this,e)}waitForWallclockTime(e){return A(d_,this).waitForWallclockTime(e)}subscribeCmafTrack(e,t){let n=t==null?void 0:t.startGroup,r=t==null?void 0:t.params,i=this.catalog().current().tracks,a=e[`com.vindral.variant_uid`]===void 0?void 0:i.find(t=>t[`com.vindral.variant_uid`]===e[`com.vindral.variant_uid`]);return E(m_,this,g_).call(this,()=>Bg.subscribe(A(u_,this),a==null?e:a,{timestampOffsetMs:A(p_,this),startGroup:n,params:r}))}subscribeWebVttTrack(e){return E(m_,this,g_).call(this,()=>l_.subscribe(A(u_,this),e,A(p_,this)))}subscribeTrack(e){return E(m_,this,g_).call(this,()=>A(u_,this).subscribe(e))}close(){return Promise.all([A(f_,this).close(),A(d_,this).close()])}};function g_(e){var t=this;return M(function*(){let[n,r]=t.catalog().value();try{return yield e()}catch(i){if(n===t.catalog().current()&&r&&(yield Promise.race([r,rr(500)])),n!==t.catalog().current())return e();throw i}})()}var __={_:sn.get().createContext(`Channel`)};V();var v_=P(8);function y_(e){if(e<0||e>65535)throw RangeError(`burstMs must be between 0 and 65535 inclusive`);return{type:v_,payload:new Uint8Array([e>>8&255,e&255])}}L(),T(),k(),D(),j(),N();var b_=new WeakMap,x_=new WeakMap,S_=new WeakSet,C_=class e{constructor(e){I(this,S_),w(this,b_,void 0),w(this,x_,void 0);let[t,n]=e.value.value();O(b_,this,{createdAt:new Date,wallclock:new Date(t.ntpTimestamp),rtt:t.rtt}),O(x_,this,E(S_,this,w_).call(this,e))}wallclock(){let e=Date.now()-A(b_,this).createdAt.getTime();return A(b_,this).wallclock.getTime()+e}closed(){return A(x_,this)}static start(t){return new e(t)}};function w_(e){var t=this;return M(function*(){var n=!1,r=!1,i;try{for(var a=X(e.value),o;n=!(o=yield a.next()).done;n=!1){let e=o.value;O(b_,t,{createdAt:new Date,wallclock:new Date(e.ntpTimestamp),rtt:e.rtt})}}catch(e){r=!0,i=e}finally{try{n&&a.return!=null&&(yield a.return())}finally{if(r)throw i}}})()}function T_(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}function E_(e,t){if(e==null)return{};var n,r,i=T_(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}V(),z(),h(),N();var D_=[`fairplayCertificate`];function O_(e){return typeof e==`string`||e==null}function k_(e){return`provider`in e&&typeof e.provider==`string`&&(!(`widevineLicenseUrl`in e)||O_(e.widevineLicenseUrl))&&(!(`playreadyLicenseUrl`in e)||O_(e.playreadyLicenseUrl))&&(!(`fairplayLicenseUrl`in e)||O_(e.fairplayLicenseUrl))&&(!(`fairplayCertificate`in e)||O_(e.fairplayCertificate))}function A_(e){try{return Re(e)}catch(e){throw Error(`Failed to convert fairplayCertificate`)}}function j_(e){let t=new TextDecoder().decode(e),n=JSON.parse(t);if(!k_(n))throw Error(`Invalid drm object`);let{fairplayCertificate:r}=n;return R(R({},E_(n,D_)),{},{fairplayCertificate:r?A_(r):void 0})}var M_=class e{constructor(e){m(this,`value`,void 0),this.value=e}static create(t,n,r){return M(function*(){try{var i=wp();let a=yield i.a(yield t.subscribeTrack(new Dh().name(`drm`).build())).objects().next();if(a.done)throw Error(`No drm object received`);return new e(R(R({},j_(a.value.payload)),{},{videoCodec:n,audioCodec:r}))}catch(e){i.e=e}finally{yield i.d()}})()}};V(),L(),h(),T(),k(),D(),j(),N();function N_(e){return`rtt`in e&&typeof e.rtt==`number`&&`ntpTimestamp`in e&&typeof e.ntpTimestamp==`number`&&`estimatedBandwidth`in e&&typeof e.estimatedBandwidth==`number`}function P_(e){let t=new TextDecoder().decode(e),n=JSON.parse(t);if(!N_(n))throw Error(`Invalid stats object`);return n}var F_=1e4,I_=new WeakMap,L_=new WeakSet,R_=class e{constructor(e,t,n){I(this,L_),m(this,`ip`,void 0),m(this,`value`,void 0),w(this,I_,void 0),this.ip=n,this.value=new Fn(t),O(I_,this,E(L_,this,z_).call(this,e))}closed(){return A(I_,this)}idleTimeout(){var e=this;return M(function*(){for(;;){let[t,n]=e.value.value();try{yield Promise.race([ir(F_,Error(`Idle timeout`)),n])}catch(e){return e}}})()}static start(t){return M(function*(){let n=(yield t.subscribe(new Dh().name(`stats`).groupOrder(`ascending`).build())).objects(),r=yield n.next();if(r.done)throw Error(`No stats object received`);let i=P_(r.value.payload);if(!i.ip)throw Error(`Expected IP in initial stats object`);return new e(n,i,i.ip)})()}};function z_(e){var t=this;return M(function*(){var n=!1,r=!1,i;try{for(var a=X(e),o;n=!(o=yield a.next()).done;n=!1){let e=o.value;{if(e.objectStatus!==Ul.Normal)continue;let n=P_(e.payload);t.value.update(n)}}}catch(e){r=!0,i=e}finally{try{n&&a.return!=null&&(yield a.return())}finally{if(r)throw i}}})()}V(),T(),k(),j(),N();var B_=new WeakMap,V_=new WeakMap,H_=class{constructor(e){w(this,B_,sn.get().createContext(`UpstreamWatcher`)),w(this,V_,void 0),O(V_,this,new Fn(S.fromPromise(e.closed())))}update(e){A(V_,this).update(S.fromPromise(e.closed()))}closed(){var e=this;return M(function*(){try{for(;;){let[t,n]=A(V_,e).value(),r=!1;yield Promise.race([n==null?void 0:n.then(()=>r=!0),t.promise.then(()=>{if(!r)throw A(B_,e).warn(`Upstream closed`),Error(`Upstream closed`)})])}}catch(e){return e}})()}};V(),T(),k(),j(),On(),z(),jn(),L(),h(),D(),N();var U_,W_=new WeakMap,G_=new WeakMap,K_=new WeakMap;U_=Symbol.asyncIterator;var q_=class{constructor(e,t){w(this,W_,sn.get().createContext(`TracksIterator`)),w(this,G_,void 0),w(this,K_,void 0),O(G_,this,e),O(K_,this,t)}[U_](){var e=this;return kn(function*(){let t=A(K_,e);var n=!1,r=!1,i;try{for(var a=X(A(G_,e)),o;n=!(o=yield B(a.next())).done;n=!1){let n=o.value;{if(!n)continue;let r={name:n.trackObject.name,namespace:n.namespace};A(W_,e).debug(`track start`,R({mediaType:t},r)),yield*Gh(X(n)),A(W_,e).debug(`track end`,R({mediaType:t},r))}}}catch(e){r=!0,i=e}finally{try{n&&a.return!=null&&(yield B(a.return()))}finally{if(r)throw i}}A(W_,e).debug(`tracks ended`,{mediaType:t})})()}},J_=new WeakMap,Y_=new WeakMap,X_=new WeakMap,Z_=new WeakMap,Q_=new WeakMap,$_=new WeakMap,ev=new WeakMap,tv=new WeakMap,nv=new WeakMap,rv=new WeakMap,iv=new WeakSet,av=class e{constructor(e,t,n){I(this,iv),w(this,J_,void 0),w(this,Y_,void 0),w(this,X_,void 0),w(this,Z_,sn.get().createContext(`Player`)),w(this,Q_,void 0),w(this,$_,new Fn(void 0)),w(this,ev,new Fn(void 0)),w(this,tv,new Fn(void 0)),w(this,nv,void 0),w(this,rv,void 0),m(this,`subtitles`,new q_(A(tv,this),`subtitles`)),m(this,`video`,new q_(A(ev,this),`video`)),m(this,`audio`,new q_(A($_,this),`audio`)),O(J_,this,e),O(Y_,this,C_.start(n)),O(X_,this,n),O(Q_,this,new Fn(t)),O(nv,this,new H_(t)),O(rv,this,Promise.race([n.idleTimeout(),E(iv,this,cv).call(this),A(nv,this).closed()])),A(J_,this).closed().then(()=>this.close()).catch(x)}closed(){return A(rv,this)}static start(t,n){return M(function*(){let r=new Map;if(n.burstMs!==void 0){let e=y_(n.burstMs);r.set(e.type,e)}let i=new Ah(t,{namespace:jh(`auxiliary`)}),[[a,o,s],c]=yield Promise.all([h_.start(t,n).then(e=>Promise.all([Promise.resolve(e),n.videoTrack?e.subscribeCmafTrack(n.videoTrack,{params:r}):void 0,n.audioTrack?e.subscribeCmafTrack(n.audioTrack,{params:r}):void 0])),R_.start(i)]),l=new e(t,a,c);return s&&A($_,l).update(s),o&&A(ev,l).update(o),l})()}connectionInfo(){let e=A(X_,this).value.current();return{ip:A(X_,this).ip,rtt:e.rtt,estimatedBandwidth:e.estimatedBandwidth}}stats(){return A(X_,this).value}catalog(){return A(Q_,this).current().catalog()}namespace(){return A(Q_,this).current().namespace}videoTrack(){var e;return(e=A(ev,this).current())==null?void 0:e.trackObject}audioTrack(){var e;return(e=A($_,this).current())==null?void 0:e.trackObject}referenceClock(){return A(Y_,this)}drm(){var e=this;return M(function*(){var t,n;if(e.catalog().current().tracks.find(({name:e})=>e===`drm`))return M_.create(A(Q_,e).current(),(t=e.videoTrack())==null?void 0:t.codec,(n=e.audioTrack())==null?void 0:n.codec)})()}close(){return A(Z_,this).info(`Enter 'close'`),Promise.all([A(Q_,this).current().close(),A(Q_,this).close(),E(iv,this,ov).call(this,A($_,this)),E(iv,this,ov).call(this,A(ev,this)),E(iv,this,ov).call(this,A(tv,this))])}zap(e,t){var n=this;return M(function*(){A(Z_,n).info(`Enter 'zap'`,{config:e,zapOffsetMs:t});let r=yield h_.start(A(J_,n),e),i=A(Y_,n).wallclock()-t,a=A(Q_,n).current(),o=a.timestampWallclockOffset(),s=yield r.waitForWallclockTime(i);A(nv,n).update(r),yield A(Q_,n).current().close();let c=s.toReversed().find(e=>e.wallclock<=i),l=c!=null&&c.mediaPts?c.mediaPts-a.timestampOffsetMs():void 0,u=r.timestampWallclockOffset()-o+a.timestampOffsetMs();r.setTimestampOffsetMs(u);let d=c!=null&&c.groupId?P(c.groupId):void 0;if(l){var f,p;(f=A(ev,n).current())==null||f.stopAfterTimestampReached(l),(p=A($_,n).current())==null||p.stopAfterTimestampReached(l)}A(Q_,n).update(r),yield Promise.all([e.videoTrack?n.setVideoTrack(e.videoTrack,d):void 0,e.audioTrack?n.setAudioTrack(e.audioTrack,d):void 0]),A(Z_,n).info(`Return 'zap'`)})()}setSubtitleTrack(e){var t=this;return M(function*(){var n;if(!e){var r;yield(r=A(tv,t).current())==null?void 0:r.unsubscribe();return}let[i]=yield Promise.all([A(Q_,t).current().subscribeWebVttTrack(e),(n=A(tv,t).current())==null?void 0:n.unsubscribe()]);A(tv,t).update(i)})()}setVideoTrack(e,t){var n=this;return M(function*(){let r=yield E(iv,n,sv).call(n,A(Q_,n).current(),e,A(ev,n).current(),t);A(ev,n).update(r)})()}setAudioTrack(e,t){var n=this;return M(function*(){let r=yield E(iv,n,sv).call(n,A(Q_,n).current(),e,A($_,n).current(),t);A($_,n).update(r)})()}};function ov(e){let t=e.current(),n=t==null?void 0:t.largestGroupId();return e.isClosed()||e.update(void 0),e.close(),n?t==null?void 0:t.update(n,n):t==null?void 0:t.unsubscribe()}function sv(e,t,n,r){var i=this;return M(function*(){A(Z_,i).info(`Enter '#replaceTrack'`,{trackObject:t,startGroupId:r});let a=n==null?void 0:n.largestGroupId(),[o,s]=yield Promise.all([e.subscribeCmafTrack(t,{startGroup:r||(a?a+P(1):void 0)}),a?n==null?void 0:n.update(a,a):n==null?void 0:n.unsubscribe()]);return o})()}function cv(){var e=this;return M(function*(){var t=!1,n=!1,r;try{for(var i=X(A(Q_,e)),a;t=!(a=yield i.next()).done;t=!1){let t=a.value;var o=!1,s=!1,c;try{for(var l=X(t.catalog()),u;o=!(u=yield l.next()).done;o=!1){let t=u.value;yield Promise.all([E(iv,e,lv).call(e,t,A(ev,e)),E(iv,e,lv).call(e,t,A($_,e))])}}catch(e){s=!0,c=e}finally{try{o&&l.return!=null&&(yield l.return())}finally{if(s)throw c}}}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield i.return())}finally{if(n)throw r}}})()}function lv(e,t){var n=this;return M(function*(){let r=t.current();if(!r)return;let i=r.trackObject.name,a=r.trackObject[`com.vindral.variant_uid`],o=e.tracks.find(e=>e.name===i),s=e.tracks.find(e=>e[`com.vindral.variant_uid`]===a);if(!o){if(!s){t.update(void 0);return}t.update(yield A(Q_,n).current().subscribeCmafTrack(s))}})()}V(),L(),T(),h(),j(),k(),D(),N();function uv(e,t,n){let r=new URL(`/voq/subscribe`,e);return r.searchParams.set(`sessionId`,t.sessionId),r.searchParams.set(`clientId`,t.clientId),r.searchParams.set(`channelId`,t.channelId),n&&r.searchParams.set(`authToken`,n),r}var dv=1e4,fv=new WeakMap,pv=new WeakMap,mv=new WeakMap,hv=new WeakMap,$=new WeakMap,gv=new WeakMap,_v=new WeakMap,vv=new WeakMap,yv=new WeakMap,bv=new WeakMap,xv=new WeakMap,Sv=new WeakSet,Cv=new WeakMap,wv=new WeakMap,Tv=new WeakMap,Ev=class e{get estimatedBandwidth(){return A(yv,this)}unload(){A(fv,this).off(`send signal`,A(wv,this)),A(fv,this).off(`disconnect`,this.disconnect),A(fv,this).off(`text track`,A(Cv,this)),this.disconnect()}suspend(){}unsuspend(){}getStatistics(){let e=A(mv,this).transportType()===`webtransport`?`moq`:`moq_ws`;return{edgeUrl:A(mv,this).url(),connectionProtocol:e,transportSelectionReason:A(bv,this)}}constructor(e,t,n,r,i,a,o,s){I(this,Sv),w(this,fv,void 0),w(this,pv,void 0),w(this,mv,void 0),w(this,hv,`disconnected`),w(this,$,void 0),w(this,gv,new Map),w(this,_v,void 0),w(this,vv,void 0),w(this,yv,void 0),w(this,bv,void 0),w(this,xv,new Map),w(this,Cv,e=>{if(!e){A($,this).setSubtitleTrack(void 0).catch(x);return}let t=A(gv,this).get(Mh(A($,this).namespace())),n=t==null?void 0:t.getTextTrack(e);n&&A($,this).setSubtitleTrack(n).catch(x)}),w(this,wv,e=>{switch(e.type){case`subscribe`:if(A(Tv,this)){A(pv,this).info(`Ignoring - we are already switching`);return}O(Tv,this,!0),E(Sv,this,kv).call(this,e.subscription).catch(t=>{A(pv,this).error(`error handling subscription`,t),A(fv,this).emit(`received signal`,{type:`subscription changed`,subscription:e.subscription,reset:!0})}).finally(()=>O(Tv,this,!1));break;case`telemetry`:Ol(new URL(`/api/telemetry`,A(mv,this).url().replace(`wss://`,`https://`)),{body:e.body,headers:{"Content-Type":`text/plain`}}).catch(x);break;case`refresh auth`:A(mv,this).updateAuthToken(e.token);break}}),w(this,Tv,!1),m(this,`disconnect`,(e=`Disconnect Requested`)=>{A(pv,this).info(`Disconnecting`,e),A(mv,this).close(),A($,this).close().catch(x),O(xv,this,new Map),E(Sv,this,Av).call(this,`disconnected`)}),O(fv,this,e),O(pv,this,t),O(mv,this,n),O($,this,r),O(gv,this,i),O(_v,this,a),O(vv,this,o),O(bv,this,s),A(fv,this).on(`send signal`,A(wv,this)),A(fv,this).on(`disconnect`,this.disconnect),A(fv,this).on(`text track`,A(Cv,this)),E(Sv,this,Dv).call(this).catch(x),E(Sv,this,jv).call(this).catch(x)}static start(t,n,r,i,a){return M(function*(){var o,s,c;let l=new Map(i.connectInfo.channels.map(e=>[Mh(e.catalog.namespace),new Rv(new Fn(e.catalog))])),u=yield i.onConnectInfo(i.connectInfo),d=i.options.get(`authenticationToken`),f,p;switch(typeof i.edgeUrl){case`string`:f=uv(i.edgeUrl,u,d);break;default:f=uv(i.edgeUrl.moqUrl||i.edgeUrl.moqWsUrl,u,d),p=uv(i.edgeUrl.moqWsUrl,u,d);break}let m=(o=i.connectInfo.channels.find(e=>e.channelId===u.channelId))==null?void 0:o.catalog;n.debug(`Resolved edge url`,{edgeUrl:f,edgeWsUrl:p}),xe(m,`no catalog found`);let h=(s=l.get(Mh(m.namespace)))==null?void 0:s.getVideoTrack(u.video),g=(c=l.get(Mh(m.namespace)))==null?void 0:c.getAudioTrack(u.audio),{session:_,transportSelectionReason:v}=yield wh({url:f,wsUrl:p,handshakePipelining:!0,authToken:i.options.get(`authenticationToken`),preferredTransport:i.options.get(`webtransportEnabled`)?`webtransport`:`websocket`,role:ff.Subscriber,websocketFallbackTimeoutMs:2e3}),ee=_.closed().then(e=>{throw e instanceof Error?e:Error(e?`Session closed before player started: ${String(e)}`:`Session closed before player started`)}),y=yield Promise.race([av.start(_.subscriber,{namespace:m.namespace,catalog:m,videoTrack:h==null?void 0:h.track,audioTrack:g==null?void 0:g.track,burstMs:u.burstMs||0}),ir(dv,Error(`Timeout waiting for player to start`)),ee]),b=new Rv(y.catalog());l.set(Mh(m.namespace),b),t.emit(`received signal`,{type:`client ip`,ip:y.connectionInfo().ip}),y.drm().then(e=>{e&&t.emit(`received drm data`,e.value)}).catch(e=>{n.error(`Error getting DRM data`,e)});let te=new e(t,n,_,y,l,r,a,v);return u.textTrack&&A(Cv,te).call(te,u.textTrack),te})()}getState(){return A(hv,this)}close(){A(mv,this).close()}closed(){return Promise.race([A(mv,this).closed(),A($,this).closed()])}};function Dv(){var e=this;return M(function*(){A(mv,e).transportType()===`websocket`&&(yield rr(5e3));var t=!1,n=!1,r;try{for(var i=X(A($,e).stats()),a;t=!(a=yield i.next()).done;t=!1){let{rtt:t,estimatedBandwidth:n}=a.value;O(yv,e,n),A(vv,e).push(t),A(fv,e).emit(`rtt`,jt(A(vv,e).items()))}}catch(e){n=!0,r=e}finally{try{t&&i.return!=null&&(yield i.return())}finally{if(n)throw r}}})()}function Ov(e){var t=this;return M(function*(){var n;let r=yield A(_v,t).connect({channelId:e});if(!ur(r))throw Error(`no moq connect info found`);let i=(n=r.channels.find(t=>t.channelId===e))==null?void 0:n.catalog;if(!i)throw Error(`no catalog found`);return i})()}function kv(e){var t=this;return M(function*(){var n,r;A(pv,t).info(`handle subscription`,e);let i=A($,t),a=A(gv,t).get(e.channelId);if(a||(a=new Rv(new Fn(yield E(Sv,t,Ov).call(t,e.channelId))),A(gv,t).set(e.channelId,a)),i.namespace().join(`/`)!==a.namespace().join(`/`)){var o;A(pv,t).info(`changing channel`,e.channelId);let n=a.getVideoTrack(e.video),r=a.getAudioTrack(e.audio);yield i.zap({namespace:a.namespace(),catalog:a.catalog(),videoTrack:n==null?void 0:n.track,audioTrack:r==null?void 0:r.track},500),i.drm().then(e=>{e&&A(fv,t).emit(`received drm data`,e.value)}).catch(e=>{A(pv,t).error(`Error getting DRM data`,e)}),A(pv,t).info(`switched channel`,e.channelId),(o=A(gv,t).get(Mh(i.namespace())))==null||o.updateCatalog(i.catalog()),A(fv,t).emit(`received signal`,{type:`subscription changed`,subscription:e});return}let s=a.getVideoTrack(e.video),c=a.getAudioTrack(e.audio);yield Promise.all([s&&s.track.name!==((n=A($,t).videoTrack())==null?void 0:n.name)?A($,t).setVideoTrack(s.track):void 0,c&&c.track.name!==((r=A($,t).audioTrack())==null?void 0:r.name)?A($,t).setAudioTrack(c.track):void 0]),A(fv,t).emit(`received signal`,{type:`subscription changed`,subscription:e})})()}function Av(e){O(hv,this,e),A(fv,this).emit(`connection state`,e)}function jv(){var e=this;return M(function*(){try{E(Sv,e,Av).call(e,`connecting`),A(pv,e).info(`Connecting...`),E(Sv,e,Av).call(e,`connected`),yield Promise.all([E(Sv,e,Nv).call(e,A($,e).referenceClock(),A($,e).audio),E(Sv,e,Nv).call(e,A($,e).referenceClock(),A($,e).video),E(Sv,e,Mv).call(e,A($,e).subtitles)]),yield A($,e).closed(),A(mv,e).close(),A(pv,e).info(`Session closed`)}catch(t){A(pv,e).warn(`Session error`,t)}finally{E(Sv,e,Av).call(e,`disconnected`)}})()}function Mv(e){var t=this;return M(function*(){var n=!1,r=!1,i;try{for(var a=X(e),o;n=!(o=yield a.next()).done;n=!1){let e=o.value;A(fv,t).emit(`text track data`,e)}}catch(e){r=!0,i=e}finally{try{n&&a.return!=null&&(yield a.return())}finally{if(r)throw i}}})()}function Nv(e,t){var n=this;return M(function*(){let r=``,i=``,a,o=A($,n).videoTrack()===void 0;var s=!1,c=!1,l;try{for(var u=X(t),d;s=!(d=yield u.next()).done;s=!1){let t=d.value;{var f;let s=Mh(t.track.namespace),c=t.track.trackObject.language,l=lr((f=t.track.trackObject.codec)==null?``:f),u=t.track.trackObject.codec,d=l?mr({codec:l,codecString:u}):void 0,v=!!t.track.trackObject[`com.vindral.drm`];var p=!1,m=!1,h;try{for(var g=X(t),_;p=!(_=yield g.next()).done;p=!1){let[f,p]=_.value;{let m={channelId:r!==``&&(o||p.mediaType()===`video`)&&r!==s?s:void 0,language:p.mediaType()===`audio`&&i!==c?c:void 0,drmTransition:a!==void 0&&a!==v};r=s,i=c,a=v;let h=p.producerReferenceTime(),g=A(xv,n).get(t.track.namespace)||0;if(h&&Date.now()-g>1e3){A(xv,n).set(t.track.namespace,Date.now());let r=e.wallclock()-h.getTime();A(pv,n).debug(`timing-info`,{mediaType:p.mediaType(),referenceClock:e,delta:r,groupId:f,timestamp:p.baseMediaDecodeTime()/p.timescale()*1e3+r,wallclockTime:h.getTime()}),A(fv,n).emit(`received signal`,{type:`timing info`,timingInfo:{channelId:s,timestamp:p.baseMediaDecodeTime()/p.timescale()*1e3+r,wallclockTime:h.getTime()}})}A(fv,n).emit(`received moq data`,{payload:p,channelId:s,groupId:f,mimeType:d,codec:l,codecString:u,switchInfo:m,renditionId:Pv(t.track.trackObject.name)})}}}catch(e){m=!0,h=e}finally{try{p&&g.return!=null&&(yield g.return())}finally{if(m)throw h}}}}}catch(e){c=!0,l=e}finally{try{s&&u.return!=null&&(yield u.return())}finally{if(c)throw l}}})()}function Pv(e){return e.split(``).reduce((e,t)=>e=t.charCodeAt(0)+(e<<6)+(e<<16)-e,0)}var Fv=new WeakMap,Iv=new WeakMap,Lv=new WeakSet,Rv=class{constructor(e){I(this,Lv),w(this,Fv,void 0),w(this,Iv,void 0),O(Fv,this,e),O(Iv,this,E(Lv,this,zv).call(this))}catalog(){return A(Fv,this).current()}namespace(){return A(Fv,this).current().namespace}updateCatalog(e){O(Fv,this,e)}getTextTrack(e){return A(Fv,this).current().tracks.find(t=>t.label===e)}getAudioTrack(e){if(!e.codec)return;let t=A(Iv,this).filter(t=>!(!pr(t)||t.bitRate>e.bitRate||e.codec&&t.codec!==e.codec||e.language&&t.language!==e.language));return t[t.length-1]}getVideoTrack(e){if(!e.codec)return;let t=A(Iv,this).filter(t=>!(!fr(t)||t.bitRate>e.bitRate||e.codec&&t.codec!==e.codec));return t[t.length-1]}renditions(){return A(Iv,this)}};function zv(){let[e,t]=A(Fv,this).value();return dr(e)}var Bv=(e,t)=>{var n,r;let i=new URL(`/subscribe`,e);return i.searchParams.append(`channelId`,t.channelId),i.searchParams.append(`sessionId`,t.sessionId),i.searchParams.append(`clientId`,t.clientId),(n=t.audio)!=null&&n.codec&&(i.searchParams.append(`audio.bitRate`,Math.round(t.audio.bitRate).toString()),i.searchParams.append(`audio.codec`,t.audio.codec),t.audio.language&&i.searchParams.append(`audio.language`,t.audio.language)),(r=t.video)!=null&&r.codec&&(i.searchParams.append(`video.width`,t.video.width.toString()),i.searchParams.append(`video.height`,t.video.height.toString()),i.searchParams.append(`video.bitRate`,Math.round(t.video.bitRate).toString()),i.searchParams.append(`video.codec`,t.video.codec)),t.expectAdditionalConnection&&i.searchParams.append(`expectAdditionalConnection`,t.expectAdditionalConnection.toString()),t.burstMs&&i.searchParams.append(`burstMs`,t.burstMs.toString()),t.channelGroupId&&i.searchParams.append(`channelGroupId`,t.channelGroupId),t.authToken&&(i.searchParams.append(`auth.token`,t.authToken),i.searchParams.append(`auth.type`,`jwt`)),i.toString()};Ti(),V(),h(),z(),N();var Vv=function(e){return e[e.AuthenticationFailed=4e3]=`AuthenticationFailed`,e[e.AuthenticationRefreshFailed=4001]=`AuthenticationRefreshFailed`,e[e.AuthenticationExpired=4002]=`AuthenticationExpired`,e[e.ChannelNotFound=4003]=`ChannelNotFound`,e[e.Inactivity=4010]=`Inactivity`,e}({}),Hv=class extends Ht{constructor(e,t){var n;super(),n=this,m(this,`options`,void 0),m(this,`websockets`,[]),m(this,`logger`,void 0),m(this,`reconnectState`,{reconnectRetries:0}),m(this,`isSuspended`,!1),m(this,`_connectionAttemptCount`,0),m(this,`connectStartTime`,0),m(this,`_connectTime`,void 0),m(this,`shouldContinueConnecting`,!1),m(this,`_isConnectInProgress`,!1),m(this,`readyState`,()=>{if(this.websockets.length===0)return WebSocket.CLOSED;let e=this.websockets.map(e=>e.readyState);for(let t of e)switch(t){case WebSocket.OPEN:continue;default:return t}return WebSocket.OPEN}),m(this,`url`,()=>{var e;return(e=this.websockets[0])==null?void 0:e.url}),m(this,`send`,e=>{if(this.websockets.length){var t;(t=this.websockets[0])==null||t.send(e)}}),m(this,`close`,e=>{var t;let n=!1;return(t=this.websockets)==null||t.forEach(t=>{t.onmessage=x,t.removeEventListener(`error`,this.onError),t.removeEventListener(`close`,this.onClose),t.removeEventListener(`open`,this.onOpen),t.close(1e3,e),n=!0}),this.websockets=[],this.shouldContinueConnecting=!1,this._isConnectInProgress=!1,this.logger.info(`Closed websocket`,{reason:e}),n}),m(this,`suspend`,()=>{this.isSuspended=!0}),m(this,`unsuspend`,()=>{this.isSuspended=!1,this.readyState()!==WebSocket.OPEN&&!this.isConnectInProgress&&this.connect()}),m(this,`onMessage`,(e,t)=>{this.websockets.length!==0&&this.options.onMessage(e,t.data)}),m(this,`onError`,()=>{this.logger.warn(`On error`,R({},this.options)),this.close(`one websocket had an error`),this.emit(`error`,new H(`WebSocket error`,{code:`websocket_error`,isFatal:!1}))}),m(this,`onClose`,e=>{switch(this.logger.info(`Closed`,R(R({},this.options),{},{reason:e.reason,code:e.code,isSuspended:this.isSuspended})),this.close(`one websocket was closed`),e.code){case Vv.AuthenticationFailed:this.emit(`error`,mi(pi()));break;case Vv.AuthenticationRefreshFailed:this.emit(`error`,mi(pi()));break;case Vv.AuthenticationExpired:this.emit(`error`,hi(pi()));break;case Vv.ChannelNotFound:this.emit(`error`,_i(`internal`,pi()));break;case Vv.Inactivity:this.emit(`error`,gi(`internal`,pi()));break;default:}this.emit(`close`,this)}),m(this,`onOpen`,()=>{this.logger.info(`Opened`,R({},this.options)),this.readyState()===WebSocket.OPEN&&(this._connectTime=Date.now()-this.connectStartTime,this.reconnectState.reconnectRetries=0,this._isConnectInProgress=!1,this.emit(`open`,this))}),m(this,`connect`,M(function*(e=!1){if(n.isConnectInProgress)return n.logger.info(`Connect already in progress`),!1;if(n.isSuspended)return!1;if(n.readyState()!==WebSocket.CLOSED&&n.close(`new connection in progress`),n.shouldContinueConnecting=!0,n._isConnectInProgress=!0,e&&n.options.reconnectDelay>0){n.logger.info(`Waiting for reconnect delay`,R({},n.options)),yield rr(n.options.reconnectDelay);let e=yield n.options.reconnectHandler(n.reconnectState);if(n.reconnectState.reconnectRetries++,!e)return n._isConnectInProgress=!1,n.emit(`error`,bi()),!1}n._connectionAttemptCount++;try{if(!n.shouldContinueConnecting)return n._isConnectInProgress=!1,n.logger.info(`Connection aborted`),!1;let{url:e,connectionCount:t}=yield n.options.connectHandler();if(n.connectStartTime=Date.now(),!n.shouldContinueConnecting)return n._isConnectInProgress=!1,n.logger.info(`Connection aborted`),!1;n.logger.info(`Connecting websockets`,R(R({},n.options),{},{url:e}));for(let r=0;r<t;r++){let t=new WebSocket(e);t.binaryType=`arraybuffer`,t.onmessage=e=>n.onMessage(r,e),t.addEventListener(`error`,n.onError),t.addEventListener(`close`,n.onClose),t.addEventListener(`open`,n.onOpen),n.websockets.push(t)}return!0}catch(e){return n._isConnectInProgress=!1,e instanceof H&&(n.logger.error(`Failed to connect`,e.toStringifiable()),e.isFatal())?!1:n.shouldContinueConnecting?(n.logger.info(`Connection aborted`,{error:e}),n.emit(`error`,new H(`Failed to connect`,{code:`failed_to_connect`,isFatal:!1,source:e,type:`internal`})),!1):!1}})),this.options=e,this.logger=t}get isConnectInProgress(){return this._isConnectInProgress}get connectionCount(){return this.websockets.length}get connectionAttemptCount(){return this._connectionAttemptCount}get connectTime(){return this._connectTime}};V(),h(),N();var Uv,Wv=65536*8,Gv=.9,Kv=40,qv=e=>{let t=e||Kv;return Wv*Gv*1e3/t},Jv=class e{constructor(t,n,r,i){var a=this;m(this,`emitter`,void 0),m(this,`transport`,void 0),m(this,`logger`,void 0),m(this,`config`,void 0),m(this,`rtts`,void 0),m(this,`lastPingSentTime`,Date.now()),m(this,`isPingInFlight`,!1),m(this,`connectCount`,0),m(this,`missedPings`,0),m(this,`contextSwitchesInProgress`,new Set),m(this,`contextSwitchesCompleted`,new Set),m(this,`buffer`,[]),m(this,`disconnected`,new S),m(this,`unload`,()=>{this.logger.debug(`Unloading module...`),this.close(`Unloading`),this.emitter.off(`send signal`,this.sendSignal),this.emitter.off(`disconnect`,this.close),this.emitter.off(`reconnect`,this.reconnect),this.logger.debug(`Unloaded module`)}),m(this,`suspend`,()=>{this.resetPingState(),this.transport.suspend()}),m(this,`unsuspend`,()=>{this.transport.unsuspend()}),m(this,`getState`,()=>{switch(this.transport.readyState()){case WebSocket.OPEN:return`connected`;case WebSocket.CONNECTING:return`connecting`;default:return`disconnected`}}),m(this,`sendSignal`,e=>{if(this.logger.debug(`sending signal`,{signal:e}),this.transport.readyState()!==WebSocket.OPEN){this.logger.debug(`transport is closed`);return}this.transport.send(JSON.stringify(e))}),m(this,`getStatistics`,()=>{var e;return{edgeUrl:(e=this.transport)==null?void 0:e.url(),connectionProtocol:`vindral_ws`,transportSelectionReason:void 0}}),m(this,`onMessage`,(e,t)=>{var n;if(this.pingCooldownExpired()&&this.sendPing(),this.contextSwitchesCompleted.size===((n=this.transport)==null?void 0:n.connectionCount)){this.logger.info(`Completing context switch`),this.contextSwitchesInProgress.clear(),this.contextSwitchesCompleted.clear();let e=this.buffer.filter(([e,t])=>!(t instanceof ArrayBuffer)),t=this.buffer.filter(([e,t])=>t instanceof ArrayBuffer);e.map(e=>this.handleMessage(e[0],e[1])),t.map(e=>this.handleMessage(e[0],e[1])),this.buffer=[]}if(this.contextSwitchesInProgress.has(e)){if(!(t instanceof ArrayBuffer)){let n=JSON.parse(t);if(_r(n)&&n.type===`context switch complete`){this.logger.info(`context switch completed`,{socketId:e}),this.emitter.emit(`context switch complete`),this.contextSwitchesCompleted.add(e);return}}this.buffer.push([e,t]);return}this.handleMessage(e,t)}),m(this,`resolveEdgeUrl`,M(function*(){let e=a.config.connectInfo,t=yield a.config.onConnectInfo(e),n=a.config.options.getOverride(`separateVideoSocketEnabled`,t.channelId),r=a.config.options.get(`media`)===`audio+video`,i=1;r&&(i=n===!1?1:2);let o=Bv(a.config.edgeUrl,{video:t.video,audio:t.audio,burstMs:t.burstMs,sessionId:t.sessionId,clientId:t.clientId,channelId:t.channelId,channelGroupId:t.channelGroupId,expectAdditionalConnection:i>1,authToken:a.config.options.get(`authenticationToken`)});return a.logger.debug(`Resolved edge url`,{edgeUrl:o}),{url:o,connectionCount:i}})),m(this,`handleMessage`,(e,t)=>{if(t instanceof ArrayBuffer)this.emitter.emit(`received data`,t);else{let n=JSON.parse(t);if(!_r(n))return;switch(n.type){case`pong`:this.lastPingSentTime&&(this.rtts.push(Date.now()-this.lastPingSentTime),this.isPingInFlight=!1,this.emitter.emit(`rtt`,jt(this.rtts.items())));break;case`context switch`:this.logger.info(`Starting context switch`,{socketId:e}),this.emitter.emit(`context switch started`),this.contextSwitchesInProgress.add(e);break;default:this.emitter.emit(`received signal`,n);break}}}),m(this,`connectWebSocketTransport`,()=>{let e=new Hv({reconnectDelay:1e3,onMessage:this.onMessage,reconnectHandler:this.config.reconnectHandler,connectHandler:this.resolveEdgeUrl},this.logger.createContext(`Transport`));return e.on(`open`,this.onTransportChange),e.on(`close`,this.onTransportChange),e.on(`error`,e=>this.disconnected.reject(e)),e.connect(),e}),m(this,`close`,(e=`Disconnect Requested`)=>{var t;this.contextSwitchesCompleted.clear(),this.contextSwitchesInProgress.clear(),this.buffer=[],this.resetPingState(),this.disconnected.resolve(),(t=this.transport)==null||t.close(e)}),m(this,`onTransportChange`,()=>{switch(this.getState()){case`connected`:var t;(t=this.transport)!=null&&t.connectTime&&(this.rtts.push(this.transport.connectTime/e.TLS_ROUNDTRIPS/(this.transport.connectionCount||1)),this.emitter.emit(`rtt`,jt(this.rtts.items()))),this.connectCount++,this.resetPingState();break;default:this.contextSwitchesCompleted.clear(),this.contextSwitchesInProgress.clear(),this.buffer=[],this.resetPingState(),this.disconnected.resolve();break}this.emitter.emit(`connection state`,this.getState())}),m(this,`reconnect`,e=>{if(this.transport.isConnectInProgress){this.logger.debug(`Stopping reconnect, already mid-connection`);return}this.close(e)}),m(this,`resetPingState`,()=>{this.missedPings=0,this.isPingInFlight=!1}),m(this,`pingCooldownExpired`,()=>Date.now()-this.lastPingSentTime>e.PING_INTERVAL),m(this,`sendPing`,()=>{if(this.isPingInFlight){this.missedPings++,this.missedPings>e.MAX_MISSED_PINGS&&this.reconnect(`missed pings`);return}this.isPingInFlight=!0,this.lastPingSentTime=Date.now(),this.missedPings=0,this.sendSignal({type:`ping`})}),this.logger=n,this.emitter=t,this.config=r,this.rtts=i,this.emitter.on(`send signal`,this.sendSignal),this.emitter.on(`disconnect`,this.close),this.emitter.on(`reconnect`,this.reconnect),this.disconnected.promise.catch(x),this.transport=this.connectWebSocketTransport()}closed(){return this.disconnected.promise}};Uv=Jv,m(Jv,`PING_INTERVAL`,5e3),m(Jv,`MAX_MISSED_PINGS`,4),m(Jv,`TLS_ROUNDTRIPS`,3),m(Jv,`start`,(e,t,n,r)=>new Promise((i,a)=>{let o=new Uv(e,t,n,r);o.transport.once(`error`,e=>a(e)),o.transport.once(`open`,()=>i(o))})),T(),k(),j();var Yv=new WeakMap,Xv=new WeakMap,Zv=new WeakMap,Qv=class{constructor(e){w(this,Yv,void 0),w(this,Xv,[]),w(this,Zv,void 0),O(Yv,this,e)}select(e){if(A(Yv,this).edgeUrl)return A(Yv,this).edgeUrl;A(Xv,this).length===0&&O(Xv,this,A(Xv,this).concat(e));let t=A(Xv,this).shift();if(O(Zv,this,t),t)return t}shiftedEdge(){return A(Zv,this)}reset(){O(Zv,this,void 0),O(Xv,this,[])}};Ti(),V(),L(),h(),T(),k(),j(),z(),D(),N();var $v,ey=new WeakMap,ty=new WeakMap,ny=new WeakMap,ry=new WeakMap,iy=new WeakMap,ay=new WeakMap,oy=new WeakMap,sy=new WeakMap,cy=new WeakMap,ly=new WeakMap,uy=new WeakSet,dy=class e{constructor(t,n,r){var i=this;I(this,uy),m(this,`emitter`,void 0),m(this,`logger`,void 0),m(this,`config`,void 0),m(this,`apiClient`,void 0),m(this,`connectionImpl`,void 0),w(this,ey,new C(10)),w(this,ty,!0),w(this,ny,void 0),w(this,ry,0),w(this,iy,0),w(this,ay,0),w(this,oy,void 0),w(this,sy,void 0),m(this,`unload`,()=>{var e;this.logger.debug(`Unloading module...`),this.disconnect(`Unloading`),(e=this.connectionImpl)==null||e.unload(),this.logger.debug(`Unloaded module`)}),m(this,`suspend`,()=>{var e;O(ty,this,!1),(e=this.connectionImpl)==null||e.suspend()}),m(this,`unsuspend`,()=>{var e;O(ty,this,!0),(e=this.connectionImpl)==null||e.unsuspend(),this.connect()}),m(this,`getState`,()=>this.connectionImpl?this.connectionImpl.getState():`disconnected`),m(this,`getStatistics`,()=>{let e=A(iy,this)>0?A(ay,this)/A(iy,this):0;return this.connectionImpl?R(R({},this.connectionImpl.getStatistics()),{},{rtt:Pt(A(ey,this).items()),estimatedBandwidth:this.estimatedBandwidth,connectCount:A(ay,this),connectionAttemptCount:A(iy,this),connectionSuccessRatio:e}):{rtt:{min:0,max:0,average:0,last:0},estimatedBandwidth:0,connectCount:A(ay,this),connectionAttemptCount:A(iy,this),connectionSuccessRatio:e,connectionProtocol:void 0,transportSelectionReason:void 0}}),m(this,`connect`,()=>{O(ty,this,!0),!A(ny,this)&&O(ny,this,E(uy,this,fy).call(this))}),m(this,`disconnect`,(e=`Disconnect Requested`)=>{var t;O(ty,this,!1),(t=this.connectionImpl)==null||t.close(e)}),m(this,`reconnect`,e=>{this.disconnect(e),this.connect()}),w(this,cy,M(function*(){try{return yield i.apiClient.connect(i.config.options.getOptions())}catch(e){if(Cl(e))switch(e.status){case 401:throw i.emitter.emit(`error`,mi(e)),mi(e);case 403:throw i.emitter.emit(`error`,Si(e.message)),Si(e.message);default:break}throw i.emitter.emit(`error`,yi(e instanceof Error?e:void 0)),e}})),w(this,ly,M(function*(){let t=Date.now(),n=()=>Date.now()-t,r=globalThis.AbortController?new AbortController:void 0,a=setTimeout(()=>r==null?void 0:r.abort(),e.PING_TIMEOUT);try{return yield fetch(new URL(`/api/v4/connect/ping`,i.config.options.get(`url`)).toString(),{method:`HEAD`,signal:r==null?void 0:r.signal}),n()}catch(e){return r!=null&&r.signal.aborted?n():void 0}finally{clearTimeout(a)}})),this.logger=n,this.emitter=t,this.config=r,this.apiClient=new jl({publicEndpoint:this.config.options.get(`url`).toString(),tokenFactory:()=>this.config.options.get(`authenticationToken`)})}get rtt(){return A(ey,this).items().length>0?jt(A(ey,this).items()):0}get estimatedBandwidth(){return this.connectionImpl&&`estimatedBandwidth`in this.connectionImpl&&this.connectionImpl.estimatedBandwidth?this.connectionImpl.estimatedBandwidth:qv(this.rtt)}get firstConnectionTime(){return A(oy,this)}get lastConnectionTime(){return A(sy,this)}};$v=dy;function fy(){var e=this;return M(function*(){let t=new Qv({edgeUrl:e.config.options.get(`edgeUrl`)});for(O(ry,e,0);;){var n,r,i;O(ry,e,(n=A(ry,e),n++,n)),O(iy,e,(r=A(iy,e),r++,r));let o=!1;try{var a;let[n,r]=yield Promise.all([A(cy,e).call(e),A(ly,e).call(e)]);if(A(ey,e).clear(),r!==void 0&&A(ey,e).push(r/2),!A(ty,e))break;let i=t.select(n.edges);if(!i)throw new H(`Failed to resolve edge url`,{isFatal:!0,code:`failed_to_resolve_edge_url`});ur(n)?e.connectionImpl=yield Ev.start(e.emitter,e.logger,e.apiClient,R(R({},e.config),{},{connectInfo:n,edgeUrl:i}),A(ey,e)):(xe(typeof i==`string`,`Edge URL is expected to be a string`),e.connectionImpl=yield Jv.start(e.emitter,e.logger,R(R({},e.config),{},{connectInfo:n,edgeUrl:i}),A(ey,e))),t.reset(),O(ay,e,(a=A(ay,e),a++,a)),O(ry,e,0),O(sy,e,Date.now()),A(oy,e)||O(oy,e,A(sy,e)),yield e.connectionImpl.closed(),e.logger.info(`Connection closed`)}catch(n){e.logger.warn(`Failed to connect`,n);let r=t.shiftedEdge();r&&e.emitter.emit(`telemetry event`,{code:`shifted_edge`,edgeUrl:typeof r==`string`?r:r.moqUrl||r.moqWsUrl}),n instanceof H?(e.emitter.emit(`error`,n),o=n.isFatal()):n instanceof Error&&e.emitter.emit(`error`,new H(n.message,{code:`start_failed`,isFatal:!1}))}if((i=e.connectionImpl)==null||i.unload(),e.connectionImpl=void 0,o){O(ty,e,!1);break}if(!A(ty,e))break;if(!(yield e.config.reconnectHandler({reconnectRetries:A(ry,e)}))){e.emitter.emit(`error`,bi());break}if(yield rr(1e3),!A(ty,e))break}O(ny,e,void 0)})()}m(dy,`PING_TIMEOUT`,1e3),m(dy,`create`,(e,t,n)=>new $v(e,t,n)),V(),z(),h();var py,my=()=>({video:R(R({},gr()),{},{bitRate:hr()}),audio:{bitRate:hr()}}),hy=()=>({width:window.innerWidth,height:window.innerHeight,bitRate:hr()}),gy=class e{constructor(t,n,r,i){m(this,`emitter`,void 0),m(this,`timers`,new Vn),m(this,`pictureInPictureSource`,void 0),m(this,`element`,void 0),m(this,`currentCap`,void 0),m(this,`userSpecifiedCap`,void 0),m(this,`renditionLevelSource`,void 0),m(this,`resizeObserver`,void 0),m(this,`elementSize`,void 0),m(this,`_sizeBasedResolutionCapEnabled`,void 0),m(this,`unload`,()=>{var e;this.emitter.off(`enter picture in picture`,this.enterPictureInPicture),this.emitter.off(`exit picture in picture`,this.exitPictureInPicture),(e=this.resizeObserver)==null||e.disconnect(),this.suspend()}),m(this,`load`,()=>{window.ResizeObserver&&(this.resizeObserver=new ResizeObserver(this.onResize),this.resizeObserver.observe(this.element)),this.evaluateConstraintCap()}),m(this,`setElement`,e=>{var t;if(e===this.element)return;(t=this.resizeObserver)==null||t.disconnect(),this.element=e;let n=this.element.getBoundingClientRect();this.elementSize={width:n.width,height:n.height},this.resizeObserver&&this.resizeObserver.observe(this.element),this.evaluateConstraintCap()}),m(this,`unsuspend`,()=>{this.timers.setInterval(this.evaluateConstraintCap,e.CHECK_SIZE_INTERVAL),this.evaluateConstraintCap()}),m(this,`suspend`,()=>{this.timers.unload()}),m(this,`setUserSpecifiedCap`,e=>{var t;let n=(t=this.getUserSpecifiedCap())==null?my():t;this.userSpecifiedCap=R(R({},n),{},{video:R(R({},n.video),e.video),audio:R(R({},n.audio),e.audio)}),this.evaluateConstraintCap()}),m(this,`getUserSpecifiedCap`,()=>this.userSpecifiedCap),m(this,`getCurrentConstraintCap`,()=>this.currentCap),m(this,`getStatistics`,()=>({constraintCap:this.getUserSpecifiedCap(),windowInnerWidth:window.innerWidth,windowInnerHeight:window.innerHeight,elementWidth:this.elementSize.width,elementHeight:this.elementSize.height,pixelRatio:window.devicePixelRatio})),m(this,`constrainSubscription`,e=>{let t=this.getCurrentConstraintCap();return t&&(e.video.codec&&(e.video.bitRate=Math.min(t.video.bitRate,e.video.bitRate),e.video.width=Math.min(t.video.width,e.video.width),e.video.height=Math.min(t.video.height,e.video.height)),e.audio.codec&&(e.audio.bitRate=Math.min(t.audio.bitRate,e.audio.bitRate))),e}),m(this,`onResize`,e=>{e.forEach(e=>{this.elementSize={width:e.contentRect.width,height:e.contentRect.height}})}),m(this,`evaluateConstraintCap`,()=>{var e,t,n,r;let i=this.sizeBasedResolutionCapEnabled?R(R({},my()),{},{video:hy()}):my();if(!this.resizeObserver){let e=this.element.getBoundingClientRect();this.elementSize={width:e.width,height:e.height}}if(this.sizeBasedResolutionCapEnabled){var a;let e=window.devicePixelRatio,t=(a=this.pictureInPictureSource)==null?void 0:a.getPictureInPictureSize();this.elementSize.width>0&&this.elementSize.height>0&&(i.video.width=this.elementSize.width,i.video.height=this.elementSize.height),t&&(i.video.width=t.width,i.video.height=t.height),i.video.width*=e,i.video.height*=e}let o=this.renditionLevelSource.getRenditionLevels().find(e=>{if(e.video)return e.video.width/e.video.height>i.video.width/i.video.height?e.video.width>i.video.width:e.video.height>i.video.height});o!=null&&o.video&&(i.video.width=o.video.width,i.video.height=o.video.height);let s=(e=this.userSpecifiedCap)==null?void 0:e.video,c=(t=this.userSpecifiedCap)==null?void 0:t.audio;s&&(i.video.width>s.width&&(i.video.width=s.width),i.video.height>s.height&&(i.video.height=s.height)),i.video.bitRate=(n=s==null?void 0:s.bitRate)==null?i.video.bitRate:n,i.audio.bitRate=(r=c==null?void 0:c.bitRate)==null?i.audio.bitRate:r,Bt(i,this.currentCap)?this.currentCap=R({},i):(this.currentCap=R({},i),this.emitter.emit(`constraint cap changed`,i))}),m(this,`enterPictureInPicture`,e=>{this.pictureInPictureSource=e,this.evaluateConstraintCap()}),m(this,`exitPictureInPicture`,()=>{this.pictureInPictureSource=void 0,this.evaluateConstraintCap()}),this.element=n;let a=this.element.getBoundingClientRect();this.elementSize={width:a.width,height:a.height},this.emitter=t,this.renditionLevelSource=r,this._sizeBasedResolutionCapEnabled=i,this.emitter.on(`enter picture in picture`,this.enterPictureInPicture),this.emitter.on(`exit picture in picture`,this.exitPictureInPicture)}get sizeBasedResolutionCapEnabled(){return this._sizeBasedResolutionCapEnabled}set sizeBasedResolutionCapEnabled(e){this._sizeBasedResolutionCapEnabled=e,this.evaluateConstraintCap()}};py=gy,m(gy,`CHECK_SIZE_INTERVAL`,1e3),m(gy,`create`,(e,t,n,r)=>new py(e,t,n,r));var _y,vy=n((()=>{_y=e=>{switch(e){case`opus`:return`opus`;case`aac`:return`mp4a.40.2`;case`mp3`:return`mp3`;default:{let t=e;throw Error(`Unsupported audio codec: ${t}`)}}}})),yy,by=n((()=>{V(),h(),yy=class{constructor(){m(this,`map`,new Map)}enqueue(e,t){let n=this.map.get(e);if(n)n.push(t);else{let n=new C(1/0);n.push(t),this.map.set(e,n)}}dequeue(e){let t=this.map.get(e);if(!t)return;let n=t.pop();return t.isEmpty()&&this.map.delete(e),n}dequeueWithFallback(e){let t=this.dequeue(e);if(t!==void 0)return t;for(let[e,t]of this.map){let n=t.pop();if(t.isEmpty()&&this.map.delete(e),n!==void 0)return n}}removeLast(e){let t=this.map.get(e);t&&(t.popLast(),t.isEmpty()&&this.map.delete(e))}clear(){this.map.clear()}}})),xy=r({WebCodecsAudioDecoderContext:()=>wy}),Sy,Cy,wy,Ty=n((()=>{La(),Rc(),V(),vy(),by(),h(),z(),N(),Cy=globalThis,wy=class{constructor(e){var t=this;m(this,`decodedSamples`,[]),m(this,`decoder`,null),m(this,`logger`,void 0),m(this,`initSegments`,new Map),m(this,`previousSample`,void 0),m(this,`previousCodec`,void 0),m(this,`pendingSamples`,new yy),m(this,`errors`,new C(10)),m(this,`resetDecoderState`,()=>{this.pendingSamples.clear(),this.previousSample=void 0,this.previousCodec=void 0}),m(this,`ensureDecoder`,()=>((!this.decoder||this.decoder.state===`closed`)&&(this.decoder=this.createDecoder()),this.decoder)),m(this,`createDecoder`,()=>new AudioDecoder({output:e=>{let t=this.pendingSamples.dequeueWithFallback(e.timestamp);if(!t){e.close();return}let{sample:n,decodeStartTime:r}=t;try{let t=e.numberOfFrames,i=e.numberOfChannels,a=e.sampleRate,o=e.timestamp,s=e.duration,c=new Float32Array(t*i);e.copyTo(c,{planeIndex:0,format:`f32`});let l=Math.round(o*n.timescale/1e6),u=typeof s==`number`&&Number.isFinite(s)?Math.max(0,Math.round(s*n.timescale/1e6)):n.duration,d=R(R({},n),{},{timestamp:l,duration:u,type:`audio`,format:`f32`,data:c,sampleRate:a,channels:i,statistics:{decodeTime:Math.max(performance.now()-r,0),transportTimeFromWorker:0,transportTimeToWorker:0,samplesInBatch:1}});this.decodedSamples.push(d)}finally{e.close()}},error:e=>{this.logger.error(`Decoder error:`,e.name,e.message),this.resetDecoderState(),this.errors.push(e)}})),m(this,`buildCodecString`,_y),m(this,`getDescription`,(e,t)=>{let n=this.initSegments.get(t.renditionId);if(n&&n.data.byteLength>0&&n.codec===e)return n.data;if(e===`opus`)return Ic(t.channels,t.sampleRate);if(e===`aac`)return Ia(t.channels,t.sampleRate)}),m(this,`unload`,()=>{this.decodedSamples=[],this.resetDecoderState(),this.decoder&&this.decoder.state!==`closed`&&this.decoder.close(),this.decoder=null}),m(this,`initSegment`,e=>{this.initSegments.set(e.renditionId,e)}),m(this,`enqueue`,e=>{var t,n;let r=this.ensureDecoder(),i=e.codec,a=((t=this.previousSample)==null?void 0:t.channelId)!==e.channelId,o=((n=this.previousSample)==null?void 0:n.renditionId)!==e.renditionId,s=this.previousCodec!==i;if(!this.previousSample||a||o||s){this.previousSample&&r.state===`configured`&&r.flush().catch(e=>{this.logger.warn(`Failed to flush before reconfiguration:`,e)});let t=this.buildCodecString(i),n=this.getDescription(i,e),a={codec:t,sampleRate:e.sampleRate,numberOfChannels:e.channels,description:n};try{r.configure(a),this.previousCodec=i}catch(t){this.logger.error(`Failed to configure decoder for ${i} (rendition ${e.renditionId}), dropping sample`,t),this.errors.push(t instanceof Error?t:Error(`Failed to configure decoder for ${i}`)),this.resetDecoderState(),this.ensureDecoder();return}}if(e.timescale<=0){this.logger.error(`Invalid timescale ${e.timescale} in sample, dropping sample`);return}this.previousSample=e;let c=Math.floor(1e6*e.timestamp/e.timescale),l=Math.floor(1e6*e.duration/e.timescale);try{let t=new EncodedAudioChunk({type:`key`,timestamp:c,duration:l>0?l:void 0,data:e.data});this.pendingSamples.enqueue(c,{sample:e,decodeStartTime:performance.now()}),r.decode(t)}catch(e){this.logger.error(`Failed to decode chunk:`,e),this.pendingSamples.removeLast(c),r.state===`closed`&&(this.resetDecoderState(),this.ensureDecoder())}}),m(this,`flush`,M(function*(){if(t.decoder&&t.decoder.state===`configured`)try{yield t.decoder.flush()}catch(e){t.logger.error(`Failed to flush decoder:`,e),t.resetDecoderState()}})),m(this,`error`,()=>this.errors.pop()),m(this,`take`,()=>this.decodedSamples.shift()),this.logger=e,this.decoder=this.createDecoder()}},Sy=wy,m(wy,`isSupported`,()=>Cy.AudioDecoder!==void 0),m(wy,`create`,function(){var e=M(function*(e){if(!Sy.isSupported())throw Error(`WebCodecs AudioDecoder is not supported in this environment`);return new Sy(e)});return function(t){return e.apply(this,arguments)}}())})),Ey,Dy=n((()=>{Ey=(function(){var e=typeof document<`u`&&document.currentScript?document.currentScript.src:void 0;return(function(t){t=t||{};var n;n||(n=t===void 0?{}:t);var r,i;n.ready=new Promise(function(e,t){r=e,i=t});var a={},o;for(o in n)n.hasOwnProperty(o)&&(a[o]=n[o]);var s=``;typeof document<`u`&&document.currentScript&&(s=document.currentScript.src),e&&(s=e),s=s.indexOf(`blob:`)===0?``:s.substr(0,s.lastIndexOf(`/`)+1);var c=n.print||console.log.bind(console),l=n.printErr||console.warn.bind(console);for(o in a)a.hasOwnProperty(o)&&(n[o]=a[o]);a=null;var u;n.wasmBinary&&(u=n.wasmBinary),n.noExitRuntime,typeof WebAssembly!=`object`&&re(`no native wasm support detected`);var d,f=!1,p=typeof TextDecoder<`u`?new TextDecoder(`utf8`):void 0,m,h,g,_=[],v=[],ee=[];function y(){var e=n.preRun.shift();_.unshift(e)}var b=0,te=null,ne=null;n.preloadedImages={},n.preloadedAudios={};function re(e){throw n.onAbort&&n.onAbort(e),l(e),f=!0,e=new WebAssembly.RuntimeError(`abort(`+e+`). Build with -s ASSERTIONS=1 for more info.`),i(e),e}function ie(e){return e.startsWith(`data:application/octet-stream;base64,`)}var ae=`data:application/octet-stream;base64,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cSELA0AgUCAJQQJ0IgJqIgEgWCABKgIAkiJVIAIgEWoqAgAiVCBUIFVeGzgCACBQIAJBBHIiAmoiASBYIAEqAgCSIlUgAiARaioCACJUIFQgVV4bOAIAIAlBAmohCSALQQJrIgsNAAsLIARFDQAgUCAJQQJ0IgJqIgEgWCABKgIAkiJVIAIgEWoqAgAiVCBUIFVeGzgCAAsCQCAAQQFIDQAgAEEDcSEEQQAhCSAAQQFrQQNPBEAgAEF8cSEHA0AgESAJQQJ0IgJqQQA2AgAgAiArakGAgICPfDYCACACICVqQYCAgI98NgIAIBEgAkEEciIBakEANgIAIAEgK2pBgICAj3w2AgAgASAlakGAgICPfDYCACARIAJBCHIiAWpBADYCACABICtqQYCAgI98NgIAIAEgJWpBgICAj3w2AgAgESACQQxyIgFqQQA2AgAgASArakGAgICPfDYCACABICVqQYCAgI98NgIAIAlBBGohCSAHQQRrIgcNAAsLIARFDQADQCARIAlBAnQiAWpBADYCACABICtqQYCAgI98NgIAIAEgJWpBgICAj3w2AgAgCUEBaiEJIARBAWsiBA0ACwsCQCAXIB1OIgENACAdIBciCWtBA3EiCwRAA0AgESAJQQJ0IgJqQQA2AgAgAiArakGAgICPfDYCACACICVqQYCAgI98NgIAIAlBAWohCSALQQFrIgsNAAsLIB0gF0F/c2pBA0kNAANAIBEgCUECdCIEakEANgIAIAQgK2pBgICAj3w2AgAgBCAlakGAgICPfDYCACARIARBBGoiAmpBADYCACACICtqQYCAgI98NgIAIAIgJWpBgICAj3w2AgAgESAEQQhqIgJqQQA2AgAgAiArakGAgICPfDYCACACICVqQYCAgI98NgIAIBEgBEEMaiICakEANgIAIAIgK2pBgICAj3w2AgAgAiAlakGAgICPfDYCACAJQQRqIgkgHUcNAAsLAkAgAEEBSA0AQQAhCSAAQQFHBEAgAEF+cSELA0AgESAJIB1qQQJ0IgJqQQA2AgAgAiArakGAgICPfDYCACACICVqQYCAgI98NgIAIBEgCUEBciAdakECdCICakEANgIAIAIgK2pBgICAj3w2AgAgAiAlakGAgICPfDYCACAJQQJqIQkgC0ECayILDQALCyAAQQFxRQ0AIBEgCSAdakECdCIA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7xAdLz1MWmp3hZOhsMHR4PAPFSMyPUlWYW53gY2vxtrtSQ5tC20LbQttC20LbQttC20LbQttC20LkwuTC20LHguQDA0MnAvwC/ALwgvCC8ILkwuTC8ILnAtICx4LHgumClAPrg+lC4cMhwx2C/ALHgsyDKwMbQseCzwK+QncCm0LvA19DMILHwzLC0gLbQttC20LbQtIC0gLSAtIC0gLwQq+E74Tdgv1DTkN8AsNDOkKWAxYDJwLHgvRCewJwQpIC0wRNRCMCsEKnAvCC20LHgulC8sLbQttC20LbQtIC6YKJA7LC5wL8AvwCzkL9grwC5AM5wulC9sM2wylC+4MrwtrFJYT7AkKDcYNOQ19DBYMMA2lC4wKVwp/CukKHgtxCtkTNhQHEkwRnAlRC+cLhwxhDH8KtApICx4L6QoeC4wKMgxIC5MLbQttC20LbQuTC5MLkwuTC20LbQuTC5MLkwtqEIcMpQsfDMILSAtIC20LnAs5C2QLywucC8ILfQw5C7AOsA6sDB8MpQtIC20LSAucC3YL6QrpCh4LSAtIC2QKDg+uD4cMMgysDHYL5wuTC5MLDQweC+kK6QrpCukKFAoFD/APHQ28DRYMtArCC3YLMgwNDB4LHgtXClcKHgv2ChsUHhOZDAUPcQ1hDFELVQ17DYwKFApxCrQKHgv2CsEKDRDNDtsMWAxtC0gLSAttC+kKtArpCrQK6QoeC0gL9grZE74T5wvZDawM8AsNDIALHwxRC7QKtAq0Ch4L6Qo8CtUQ1RAsC98JhwwwDTANAwwDDDAN8AseC1cKFAqmCsEK8AtkC/YKSAu0Cn8KUQsfDE4MTgyQDGEM8AvCC5MLHgsXESoPbQtICx4LSAseCx4LSAtIC0gLHgtIC20LSAseC6ULZAtkC6ULpQvwCzIMkAxODPALwgucC5wLnAttC7QKhRA1EO4MEw1tC5MLSAulC6ULHgvpCrQKHgseCx4L6QrwD64PHwzCC20LbQttC0gLbQttCx4LHgseC+kKSAvcCgcS3xFhDHENhwylC1EL3gsyDLQKfwp/Cn8KtArpCowKNRCtEM0OSQ6mCtwKSAtIC8ILnAttCx4Lfwp/CukKSAt3EOINwQoeCx4LSAtIC0gLbQttC0gLbQttC20LkwtICzYUORPVCGgNzQ6XDRMNHgvuDJcNTgxRC5wJtwnBCm0Lew1l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OiBxbiA8PSAyNTYAYXNzZXJ0aW9uIGZhaWxlZDogeCAhPSB5AGNlbHQvY2VsdF9scGMuYwBhc3NlcnRpb24gZmFpbGVkOiAob3JkJjMpPT0wAGFzc2VydGlvbiBmYWlsZWQ6IG4+MABhc3NlcnRpb24gZmFpbGVkOiBvdmVybGFwPj0wAGFzc2VydGlvbiBmYWlsZWQ6IGxlbj49MwAuL2NlbHQvcGl0Y2guaABhc3NlcnRpb24gZmFpbGVkOiBtYXhfcGl0Y2g+MABjZWx0L3BpdGNoLmMAYXNzZXJ0aW9uIGZhaWxlZDogbGVuPjAAYXNzZXJ0aW9uIGZhaWxlZDogbGVuPj0zAC4vY2VsdC9waXRjaC5oAGNlbHQva2lzc19mZnQuYwBhc3NlcnRpb24gZmFpbGVkOiBtPT00AGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5tb2RlID09IG9wdXNfY3VzdG9tX21vZGVfY3JlYXRlKDQ4MDAwLCA5NjAsIE5VTEwpAGNlbHQvY2VsdF9kZWNvZGVyLmMAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPm92ZXJsYXAgPT0gMTIwAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5lbmQgPD0gMjEAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPmNoYW5uZWxzID09IDEgfHwgc3QtPmNoYW5uZWxzID09IDIAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnN0cmVhbV9jaGFubmVscyA9PSAxIHx8IHN0LT5zdHJlYW1fY2hhbm5lbHMgPT0gMgBhc3NlcnRpb24gZmFpbGVkOiBzdC0+ZG93bnNhbXBsZSA+IDAAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnN0YXJ0ID09IDAgfHwgc3QtPnN0YXJ0ID09IDE3AGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5zdGFydCA8IHN0LT5lbmQAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPmFyY2ggPj0gMABhc3NlcnRpb24gZmFpbGVkOiBzdC0+YXJjaCA8PSBPUFVTX0FSQ0hNQVNLAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5sYXN0X3BpdGNoX2luZGV4IDw9IFBMQ19QSVRDSF9MQUdfTUFYAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5sYXN0X3BpdGNoX2luZGV4ID49IFBMQ19QSVRDSF9MQUdfTUlOIHx8IHN0LT5sYXN0X3BpdGNoX2luZGV4ID09IDAAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnBvc3RmaWx0ZXJfcGVyaW9kIDwgTUFYX1BFUklPRABhc3NlcnRpb24gZmFpbGVkOiBzdC0+cG9zdGZpbHRlcl9wZXJpb2QgPj0gQ09NQkZJTFRFUl9NSU5QRVJJT0QgfHwgc3QtPnBvc3RmaWx0ZXJfcGVyaW9kID09IDAAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnBvc3RmaWx0ZXJfcGVyaW9kX29sZCA8IE1BWF9QRVJJT0QAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnBvc3RmaWx0ZXJfcGVyaW9kX29sZCA+PSBDT01CRklMVEVSX01JTlBFUklPRCB8fCBzdC0+cG9zdGZpbHRlcl9wZXJpb2Rfb2xkID09IDAAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnBvc3RmaWx0ZXJfdGFwc2V0IDw9IDIAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnBvc3RmaWx0ZXJfdGFwc2V0ID49IDAAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnBvc3RmaWx0ZXJfdGFwc2V0X29sZCA8PSAyAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5wb3N0ZmlsdGVyX3RhcHNldF9vbGQgPj0gMAACAQAZFwIAfnx3bVcpEwkEAgBhc3NlcnRpb24gZmFpbGVkOiBhY2N1bT09MABhc3NlcnRpb24gZmFpbGVkOiBwY21fY291bnQgPT0gZnJhbWVfc2l6ZQBzcmMvb3B1c19kZWNvZGVyLmMAYXNzZXJ0aW9uIGZhaWxlZDogcmV0PT1mcmFtZV9zaXplLXBhY2tldF9mcmFtZV9zaXplAGFzc2VydGlvbiBmYWlsZWQ6IHJldD09cGFja2V0X2ZyYW1lX3NpemUAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPmNoYW5uZWxzID09IDEgfHwgc3QtPmNoYW5uZWxzID09IDIAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPkZzID09IDQ4MDAwIHx8IHN0LT5GcyA9PSAyNDAwMCB8fCBzdC0+RnMgPT0gMTYwMDAgfHwgc3QtPkZzID09IDEyMDAwIHx8IHN0LT5GcyA9PSA4MDAwAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5EZWNDb250cm9sLkFQSV9zYW1wbGVSYXRlID09IHN0LT5GcwBhc3NlcnRpb24gZmFpbGVkOiBzdC0+RGVjQ29udHJvbC5pbnRlcm5hbFNhbXBsZVJhdGUgPT0gMCB8fCBzdC0+RGVjQ29udHJvbC5pbnRlcm5hbFNhbXBsZVJhdGUgPT0gMTYwMDAgfHwgc3QtPkRlY0NvbnRyb2wuaW50ZXJuYWxTYW1wbGVSYXRlID09IDEyMDAwIHx8IHN0LT5EZWNDb250cm9sLmludGVybmFsU2FtcGxlUmF0ZSA9PSA4MDAwAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5EZWNDb250cm9sLm5DaGFubmVsc0FQSSA9PSBzdC0+Y2hhbm5lbHMAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPkRlY0NvbnRyb2wubkNoYW5uZWxzSW50ZXJuYWwgPT0gMCB8fCBzdC0+RGVjQ29udHJvbC5uQ2hhbm5lbHNJbnRlcm5hbCA9PSAxIHx8IHN0LT5EZWNDb250cm9sLm5DaGFubmVsc0ludGVybmFsID09IDIAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPkRlY0NvbnRyb2wucGF5bG9hZFNpemVfbXMgPT0gMCB8fCBzdC0+RGVjQ29udHJvbC5wYXlsb2FkU2l6ZV9tcyA9PSAxMCB8fCBzdC0+RGVjQ29udHJvbC5wYXlsb2FkU2l6ZV9tcyA9PSAyMCB8fCBzdC0+RGVjQ29udHJvbC5wYXlsb2FkU2l6ZV9tcyA9PSA0MCB8fCBzdC0+RGVjQ29udHJvbC5wYXlsb2FkU2l6ZV9tcyA9PSA2MABhc3NlcnRpb24gZmFpbGVkOiBzdC0+YXJjaCA+PSAwAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5hcmNoIDw9IE9QVVNfQVJDSE1BU0sAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnN0cmVhbV9jaGFubmVscyA9PSAxIHx8IHN0LT5zdHJlYW1fY2hhbm5lbHMgPT0gMgBhc3NlcnRpb24gZmFpbGVkOiAwAGFzc2VydGlvbiBmYWlsZWQ6IChvcHVzX2N1c3RvbV9kZWNvZGVyX2N0bChjZWx0X2RlYywgMTAwMTIsICgoKHZvaWQpKChlbmRiYW5kKSA9PSAob3B1c19pbnQzMikwKSksIChvcHVzX2ludDMyKShlbmRiYW5kKSkpKSA9PSBPUFVTX09LAGFzc2VydGlvbiBmYWlsZWQ6IChvcHVzX2N1c3RvbV9kZWNvZGVyX2N0bChjZWx0X2RlYywgMTAwMDgsICgoKHZvaWQpKChzdC0+c3RyZWFtX2NoYW5uZWxzKSA9PSAob3B1c19pbnQzMikwKSksIChvcHVzX2ludDMyKShzdC0+c3RyZWFtX2NoYW5uZWxzKSkpKSA9PSBPUFVTX09LAGFzc2VydGlvbiBmYWlsZWQ6IChvcHVzX2N1c3RvbV9kZWNvZGVyX2N0bChjZWx0X2RlYywgMTAwMTAsICgoKHZvaWQpKCgwKSA9PSAob3B1c19pbnQzMikwKSksIChvcHVzX2ludDMyKSgwKSkpKSA9PSBPUFVTX09LAGFzc2VydGlvbiBmYWlsZWQ6IChvcHVzX2N1c3RvbV9kZWNvZGVyX2N0bChjZWx0X2RlYywgNDAzMSwgKCgmcmVkdW5kYW50X3JuZykgKyAoKCZyZWR1bmRhbnRfcm5nKSAtIChvcHVzX3VpbnQzMiopKCZyZWR1bmRhbnRfcm5nKSkpKSkgPT0gT1BVU19PSwBhc3NlcnRpb24gZmFpbGVkOiAob3B1c19jdXN0b21fZGVjb2Rlcl9jdGwoY2VsdF9kZWMsIDEwMDEwLCAoKCh2b2lkKSgoc3RhcnRfYmFuZCkgPT0gKG9wdXNfaW50MzIpMCkpLCAob3B1c19pbnQzMikoc3RhcnRfYmFuZCkpKSkgPT0gT1BVU19PSwBhc3NlcnRpb24gZmFpbGVkOiAob3B1c19jdXN0b21fZGVjb2Rlcl9jdGwoY2VsdF9kZWMsIDQwMjgpKSA9PSBPUFVTX09LAGFzc2VydGlvbiBmYWlsZWQ6IChvcHVzX2N1c3RvbV9kZWNvZGVyX2N0bChjZWx0X2RlYywgMTAwMTUsICgoJmNlbHRfbW9kZSkgKyAoKCZjZWx0X21vZGUpIC0gKGNvbnN0IE9wdXNDdXN0b21Nb2RlKiopKCZjZWx0X21vZGUpKSkpKSA9PSBPUFVTX09LAEHwowILAQUAQfyjAgsBAQBBlKQCCwoCAAAAAwAAAHSTAEGspAILAQIAQbukAgsF//////8AQaymAgsCnJMAQeSmAgsDsJVQ`;if(!ie(ae)){var oe=ae;ae=n.locateFile?n.locateFile(oe,s):s+oe}function x(){var e=ae;try{if(e==ae&&u)return new Uint8Array(u);if(ie(e))try{var t=C(e.slice(37)),n=new Uint8Array(t.length);for(e=0;e<t.length;++e)n[e]=t.charCodeAt(e);var r=n}catch(e){throw Error(`Converting base64 string to bytes failed.`)}else r=void 0;var i=r;if(i)return i;throw`both async and sync fetching of the wasm failed`}catch(e){re(e)}}function se(){return u||typeof fetch!=`function`?Promise.resolve().then(function(){return x()}):fetch(ae,{credentials:`same-origin`}).then(function(e){if(!e.ok)throw`failed to load wasm binary file at '`+ae+`'`;return e.arrayBuffer()}).catch(function(){return x()})}function S(e){for(;0<e.length;){var t=e.shift();if(typeof t==`function`)t(n);else{var r=t.s;typeof r==`number`?t.o===void 0?g.get(r)():g.get(r)(t.o):r(t.o===void 0?null:t.o)}}}var ce=[null,[],[]],C=typeof atob==`function`?atob:function(e){var t=``,n=0;e=e.replace(/[^A-Za-z0-9\+\/=]/g,``);do{var r=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(e.charAt(n++)),i=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(e.charAt(n++)),a=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(e.charAt(n++)),o=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(e.charAt(n++));r=r<<2|i>>4,i=(i&15)<<4|a>>2;var s=(a&3)<<6|o;t+=String.fromCharCode(r),a!==64&&(t+=String.fromCharCode(i)),o!==64&&(t+=String.fromCharCode(s))}while(n<e.length);return t},le={d:function(){re()},f:function(e,t,n){m.copyWithin(e,t,t+n)},c:function(){return!1},e:function(){return 0},b:function(){},a:function(e,t,n,r){for(var i=0,a=0;a<n;a++){for(var o=h[t+8*a>>2],s=h[t+(8*a+4)>>2],u=0;u<s;u++){var d=m[o+u],f=ce[e];if(d===0||d===10){d=e===1?c:l;for(var g=f,_=0,v=_+NaN,ee=_;g[ee]&&!(ee>=v);)++ee;if(16<ee-_&&g.subarray&&p)g=p.decode(g.subarray(_,ee));else{for(v=``;_<ee;){var y=g[_++];if(y&128){var b=g[_++]&63;if((y&224)==192)v+=String.fromCharCode((y&31)<<6|b);else{var te=g[_++]&63;y=(y&240)==224?(y&15)<<12|b<<6|te:(y&7)<<18|b<<12|te<<6|g[_++]&63,65536>y?v+=String.fromCharCode(y):(y-=65536,v+=String.fromCharCode(55296|y>>10,56320|y&1023))}}else v+=String.fromCharCode(y)}g=v}d(g),f.length=0}else f.push(d)}i+=s}return h[r>>2]=i,0}};(function(){function e(e){n.asm=e.exports,d=n.asm.g,e=d.buffer,n.HEAP8=new Int8Array(e),n.HEAP16=new Int16Array(e),n.HEAP32=h=new Int32Array(e),n.HEAPU8=m=new Uint8Array(e),n.HEAPU16=new Uint16Array(e),n.HEAPU32=new Uint32Array(e),n.HEAPF32=new Float32Array(e),n.HEAPF64=new Float64Array(e),g=n.asm.n,v.unshift(n.asm.h),b--,n.monitorRunDependencies&&n.monitorRunDependencies(b),b==0&&(te!==null&&(clearInterval(te),te=null),ne&&(e=ne,ne=null,e()))}function t(t){e(t.instance)}function r(e){return se().then(function(e){return WebAssembly.instantiate(e,a)}).then(e,function(e){l(`failed to asynchronously prepare wasm: `+e),re(e)})}var a={a:le};if(b++,n.monitorRunDependencies&&n.monitorRunDependencies(b),n.instantiateWasm)try{return n.instantiateWasm(a,e)}catch(e){return l(`Module.instantiateWasm callback failed with error: `+e),!1}return(function(){return u||typeof WebAssembly.instantiateStreaming!=`function`||ie(ae)||typeof fetch!=`function`?r(t):fetch(ae,{credentials:`same-origin`}).then(function(e){return WebAssembly.instantiateStreaming(e,a).then(t,function(e){return l(`wasm streaming compile failed: `+e),l(`falling back to ArrayBuffer instantiation`),r(t)})})})().catch(i),{}})(),n.___wasm_call_ctors=function(){return(n.___wasm_call_ctors=n.asm.h).apply(null,arguments)},n._opus_decoder_create=function(){return(n._opus_decoder_create=n.asm.i).apply(null,arguments)},n._opus_decode_float=function(){return(n._opus_decode_float=n.asm.j).apply(null,arguments)},n._opus_decoder_destroy=function(){return(n._opus_decoder_destroy=n.asm.k).apply(null,arguments)},n._malloc=function(){return(n._malloc=n.asm.l).apply(null,arguments)},n._free=function(){return(n._free=n.asm.m).apply(null,arguments)};var ue;ne=function e(){ue||de(),ue||(ne=e)};function de(){function e(){if(!ue&&(ue=!0,n.calledRun=!0,!f)){if(S(v),r(n),n.onRuntimeInitialized&&n.onRuntimeInitialized(),n.postRun)for(typeof n.postRun==`function`&&(n.postRun=[n.postRun]);n.postRun.length;){var e=n.postRun.shift();ee.unshift(e)}S(ee)}}if(!(0<b)){if(n.preRun)for(typeof n.preRun==`function`&&(n.preRun=[n.preRun]);n.preRun.length;)y();S(_),0<b||(n.setStatus?(n.setStatus(`Running...`),setTimeout(function(){setTimeout(function(){n.setStatus(``)},1),e()},1)):e())}}if(n.run=de,n.preInit)for(typeof n.preInit==`function`&&(n.preInit=[n.preInit]);0<n.preInit.length;)n.preInit.pop()();return de(),t.ready})})()})),Oy,ky,Ay,jy=n((()=>{Dy(),h(),N(),ky=function(e){return e[e.OK=0]=`OK`,e[e[`Bad argument`]=-1]=`Bad argument`,e[e[`Buffer too small`]=-2]=`Buffer too small`,e[e[`Internal error`]=-3]=`Internal error`,e[e[`Invalid packet`]=-4]=`Invalid packet`,e[e.Unimplemented=-5]=`Unimplemented`,e[e[`Invalid state`]=-6]=`Invalid state`,e[e[`Memory allocation fail`]=-7]=`Memory allocation fail`,e}(ky||{}),Ay=class e{constructor(t,n,r){m(this,`opusModule`,void 0),m(this,`decoderInstance`,void 0),m(this,`opusBufferPointer`,void 0),m(this,`pcmBufferPointer`,void 0),m(this,`channels`,void 0),m(this,`pcmBufferByteSize`,()=>e.MAX_SAMPLES*this.channels*Float32Array.BYTES_PER_ELEMENT),m(this,`unload`,()=>{this.opusModule._free(this.opusBufferPointer),this.opusModule._free(this.pcmBufferPointer),this.opusModule._opus_decoder_destroy(this.decoderInstance)}),m(this,`decode`,t=>{if(t.byteLength>e.MAX_OPUS_BUFFER)throw Error(`Opus packet too large (${t.byteLength} bytes), max ${e.MAX_OPUS_BUFFER} bytes`);this.opusModule.HEAPU8.set(t,this.opusBufferPointer);let n=this.opusModule._opus_decode_float(this.decoderInstance,this.opusBufferPointer,t.byteLength,this.pcmBufferPointer,e.MAX_SAMPLES,0);if(n<0)throw Error(`${ky[n]} (${n})`);let r=this.pcmBufferPointer/Float32Array.BYTES_PER_ELEMENT;return this.opusModule.HEAPF32.subarray(r,r+n*this.channels)}),this.opusModule=t,this.channels=r,this.decoderInstance=this.opusModule._opus_decoder_create(n,r,0),this.opusBufferPointer=this.opusModule._malloc(e.MAX_OPUS_BUFFER),this.pcmBufferPointer=this.opusModule._malloc(this.pcmBufferByteSize())}},Oy=Ay,m(Ay,`MAX_OPUS_BUFFER`,16384),m(Ay,`MAX_SAMPLES`,6*960),m(Ay,`create`,function(){var e=M(function*(e,t){return new Oy(yield Ey(),e,t)});return function(t,n){return e.apply(this,arguments)}}())})),My=n((()=>{jy()})),Ny=r({OpusDecoderContext:()=>Fy}),Py,Fy,Iy=n((()=>{Ti(),V(),My(),h(),z(),N(),Fy=class{constructor(e){m(this,`decodedSamples`,[]),m(this,`decoder`,void 0),m(this,`errors`,new C(10)),m(this,`unload`,()=>{this.decoder.unload()}),m(this,`enqueue`,e=>{try{let t=Date.now(),n=this.decoder.decode(new Uint8Array(e.data));this.decodedSamples.push(R(R({},e),{},{type:`audio`,format:`f32`,data:n,statistics:{decodeTime:Date.now()-t,transportTimeFromWorker:0,transportTimeToWorker:0,samplesInBatch:1}}))}catch(e){e instanceof Error&&this.errors.push(ai(!1,e))}}),m(this,`initSegment`,x),m(this,`take`,()=>this.decodedSamples.shift()),this.decoder=e}error(){return this.errors.pop()}},Py=Fy,m(Fy,`create`,function(){var e=M(function*(e,t){return new Py(yield Ay.create(e,t))});return function(t,n){return e.apply(this,arguments)}}())}));function Ly(e){let t;try{if(t=zy&&(self.URL||self.webkitURL).createObjectURL(zy),!t)throw``;let n=new Worker(t,{name:e==null?void 0:e.name});return n.addEventListener(`error`,()=>{(self.URL||self.webkitURL).revokeObjectURL(t)}),n}catch(t){return new Worker(`data:text/javascript;charset=utf-8,`+encodeURIComponent(Ry),{name:e==null?void 0:e.name})}}var Ry,zy,By=n((()=>{Ry=`var __defProp = Object.defineProperty;
50
50
  var __defProps = Object.defineProperties;
51
51
  var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
52
52
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
@@ -1219,15 +1219,15 @@ var __async = (__this, __arguments, generator) => {
1219
1219
  }
1220
1220
  });
1221
1221
  })();
1222
- `,Fy=typeof self<`u`&&self.Blob&&new Blob([`(self.URL || self.webkitURL).revokeObjectURL(self.location.href);`,Py],{type:`text/javascript;charset=utf-8`})})),Ly=r({VideoDecoderWorkerContext:()=>zy}),Ry,zy,By=n((()=>{H(),Iy(),h(),B(),P(),zy=class{get isWebCodecs(){return this._isWebCodecs}get usingOffscreenCanvas(){return this._usingOffscreenCanvas}constructor(e,t,n,r,i=!1,a=!1){m(this,`decodedSamples`,[]),m(this,`codedSamples`,[]),m(this,`decoder`,void 0),m(this,`logger`,void 0),m(this,`errors`,new w(10)),m(this,`pool`,void 0),m(this,`getCurrentTime`,void 0),m(this,`_usingOffscreenCanvas`,void 0),m(this,`_isWebCodecs`,void 0),m(this,`_renderedFrameCount`,0),m(this,`_rendererDroppedFrameCount`,0),m(this,`statisticsQueue`,new w(1e3)),m(this,`samplesInTransitToWorker`,0),m(this,`workerPendingDecodeCount`,0),m(this,`targetSamplesInBatch`,4),m(this,`maxSamplesInFlight`,20),m(this,`unload`,()=>{this.decoder.postMessage({type:`unload`}),this.decoder.removeEventListener(`message`,this.onDecoderEvent),this.decoder.terminate(),this.statisticsQueue.clear(),this.codedSamples=[],this.decodedSamples.forEach(e=>{var t;return(t=e.videoFrame)==null?void 0:t.close()}),this.decodedSamples=[],this.samplesInTransitToWorker=0,this.workerPendingDecodeCount=0}),m(this,`enqueue`,e=>{this.codedSamples.push(z({},e)),this.flushQueuedSamples()}),m(this,`setSubtitleCues`,(e,t,n,r,i)=>{this.decoder.postMessage({type:`subtitle cues`,cues:e,containerWidth:t,containerHeight:n,devicePixelRatio:r,bottomPadding:i})}),m(this,`prepareOutputBuffers`,e=>{this._isWebCodecs||e.forEach(e=>{let t=Math.ceil(e.width/16)*16*(Math.ceil(e.height/16)*16)*3/2;e.buffer=this.pool.get(t)})}),m(this,`flushQueuedSamples`,()=>{for(;this.codedSamples.length>0&&this.samplesInFlight()<this.maxSamplesInFlight;){let e=Math.max(this.maxSamplesInFlight-this.samplesInFlight(),0),t=Math.min(this.targetSamplesInBatch,this.codedSamples.length,e);if(t<=0)return;let n=this.codedSamples.slice(0,t);this.codedSamples=this.codedSamples.slice(t),this.prepareOutputBuffers(n),this.sendSamples(n),this.samplesInTransitToWorker+=n.length}}),m(this,`initSegment`,e=>{let t={type:`init segment`,initSegment:e};this.decoder.postMessage(t)}),m(this,`take`,()=>this.decodedSamples.shift()),m(this,`samplesInFlight`,()=>this.samplesInTransitToWorker+this.workerPendingDecodeCount),m(this,`getRenderStatistics`,()=>({renderedFrameCount:this._renderedFrameCount,rendererDroppedFrameCount:this._rendererDroppedFrameCount})),m(this,`takeEstimatedStatistics`,()=>this.statisticsQueue.pop()),m(this,`sendSamples`,e=>{var t;let n={type:`decode samples`,samples:e,timestamp:Date.now(),currentTime:(t=this.getCurrentTime)==null?void 0:t.call(this)},r=this._isWebCodecs?e.map(e=>e.data):e.flatMap(e=>[e.data,e.buffer]).filter(e=>e!==void 0);this.decoder.postMessage(n,r)}),m(this,`onDecoderEvent`,e=>{switch(e.data.type){case`ready`:break;case`error`:this.errors.push(Error(e.data.message)),this.samplesInTransitToWorker=0,this.workerPendingDecodeCount=0;break;case`decoded samples`:{typeof e.data.samplesAcceptedCount==`number`&&e.data.samplesAcceptedCount>0&&(this.samplesInTransitToWorker=Math.max(0,this.samplesInTransitToWorker-e.data.samplesAcceptedCount)),typeof e.data.decoderPendingCount==`number`&&e.data.decoderPendingCount>=0&&(this.workerPendingDecodeCount=e.data.decoderPendingCount);let t=e.data.timestamp,n=Date.now()-t;if(typeof e.data.estimatedSampleCount==`number`&&e.data.estimatedSampleCount>0&&typeof e.data.estimatedDecodeTimeSum==`number`&&typeof e.data.estimatedTransportTimeToWorkerSum==`number`){let t=e.data.estimatedSampleCount,r=e.data.estimatedDecodeTimeSum/t,i=e.data.estimatedTransportTimeToWorkerSum/t+n;for(let e=0;e<t;e++)this.statisticsQueue.push({decodeTime:r,transportTime:i})}e.data.samples.forEach(e=>{e.statistics&&(e.statistics.transportTimeFromWorker=n)}),typeof e.data.renderedFrameCount==`number`&&(this._renderedFrameCount=e.data.renderedFrameCount),typeof e.data.rendererDroppedFrameCount==`number`&&(this._rendererDroppedFrameCount=e.data.rendererDroppedFrameCount),this.decodedSamples.push(...e.data.samples),this.flushQueuedSamples()}break}}),this.decoder=e,this.logger=t,this.pool=n,this.getCurrentTime=r,this._isWebCodecs=i,this._usingOffscreenCanvas=a,this.decoder.addEventListener(`message`,this.onDecoderEvent)}error(){return this.errors.pop()}},Ry=zy,m(zy,`create`,function(){var e=N(function*(e,t,n,r=!1,i=`no-preference`,a,o){let s=new Ny,{isWebCodecs:c,usingOffscreenCanvas:l}=yield new Promise((n,o)=>{let c=!1,l=setTimeout(()=>{c||(c=!0,u(Error(`Decoder worker initialization timed out`)))},1e4),u=e=>{if(c=!0,clearTimeout(l),s.removeEventListener(`message`,d),s.terminate(),e instanceof Error){o(e);return}o(Error(`Failed to initialize decoder worker`))},d=e=>{if(!c)switch(c=!0,clearTimeout(l),s.removeEventListener(`message`,d),e.data.type){case`ready`:n({isWebCodecs:e.data.isWebCodecs,usingOffscreenCanvas:e.data.usingOffscreenCanvas});break;case`error`:var t;u(Error((t=e.data.message)==null?`Failed to initialize decoder worker`:t));break;default:u(Error(`Failed to initialize decoder worker`));break}};s.addEventListener(`message`,d);let f={type:`init`,logLevel:t,useWebCodecs:r,webcodecsHardwareAcceleration:i,offscreenCanvas:a};try{a?s.postMessage(f,[a]):s.postMessage(f)}catch(n){let o=n instanceof DOMException&&n.name===`DataCloneError`;if(a&&o){e.warn(`Failed to transfer OffscreenCanvas to worker, falling back to main-thread rendering`,n);try{s.postMessage({type:`init`,logLevel:t,useWebCodecs:r,webcodecsHardwareAcceleration:i,offscreenCanvas:void 0})}catch(e){u(e)}}else u(n)}});return new Ry(s,e,n,o,c,l)});return function(t,n,r){return e.apply(this,arguments)}}())}));xi(),H(),h(),B(),P();var Vy=5,Hy=100,Uy=1e3,Wy=class e{constructor(e,t,n,r,i=!1,a=!1,o=!1){m(this,`timers`,zn.create()),m(this,`logger`,void 0),m(this,`emitter`,void 0),m(this,`trackContexts`,void 0),m(this,`playbackSource`,void 0),m(this,`isSuspended`,!1),m(this,`_webCodecsInUse`,void 0),m(this,`_audioWebCodecsInUse`,void 0),m(this,`_offscreenCanvasInUse`,void 0),m(this,`currentVideoDecodeRate`,2),m(this,`decodeRateGraceIntervals`,3),m(this,`isAudioEmitRetryScheduled`,!1),m(this,`videoKeyframeTimestamps`,[]),m(this,`load`,()=>{let e=this._audioWebCodecsInUse?20:Hy;this.timers.setInterval(this.emitDecodedFrames,e),this.timers.setInterval(this.emitDecodeRate,Uy),this.emitter.on(`init segment`,this.onInitSegment),this.emitter.on(`coded sample`,this.decode)}),m(this,`unload`,()=>{this.trackContexts.forEach(({decoderContext:e})=>e.unload()),this.timers.unload(),this.isAudioEmitRetryScheduled=!1,this.videoKeyframeTimestamps=[],this.emitter.off(`init segment`,this.onInitSegment),this.emitter.off(`coded sample`,this.decode)}),m(this,`suspend`,()=>{this.isSuspended=!0}),m(this,`unsuspend`,()=>{this.isSuspended=!1}),m(this,`getBuffer`,e=>{var t;return(t=this.trackContexts.get(e))==null?void 0:t.buffer}),m(this,`getVideoKeyframeTimestamps`,()=>this.videoKeyframeTimestamps),m(this,`videoDecodeRate`,()=>this.currentVideoDecodeRate),m(this,`calculateVideoDecodeRate`,()=>{var e;if(this._webCodecsInUse)return 2;let t=this.trackContexts.get(`video`);if(!t)return 2**53-1;let n=(e=t.sampleDuration)==null?40:e,r=Mt(t.decodeTime.items()),i=Mt(t.transportTime.items()),a=r.average+i.average;return a<=0?2:Math.min(n/a,100)}),m(this,`getStatistics`,()=>{var e,t,n,r,i;let a=this.trackContexts.get(`video`),o=Mt((e=a==null?void 0:a.decodeTime.items())==null?[]:e),s=Mt((t=a==null?void 0:a.transportTime.items())==null?[]:t),c=Mt((n=(r=this.trackContexts.get(`audio`))==null?void 0:r.decodeTime.items())==null?[]:n),l=this._offscreenCanvasInUse?a==null||(i=a.getRenderStatistics)==null?void 0:i.call(a):void 0;return z(z({videoDecodeRate:this.videoDecodeRate(),videoDecodeTime:o,audioDecodeTime:c,videoTransportTime:s,videoKeyframeIntervalMs:jt(this.videoKeyframeTimestamps)},l?{renderedFrameCount:l.renderedFrameCount,rendererDroppedFrameCount:l.rendererDroppedFrameCount}:{}),{},{videoRenderer:this._offscreenCanvasInUse?`OffscreenCanvas`:`Canvas`,videoDecoder:this._webCodecsInUse?`WebCodecs`:`WASM`,audioRenderer:`AudioContext`,audioDecoder:this._audioWebCodecsInUse?`WebCodecs`:`WASM`})}),m(this,`setSubtitleCues`,(e,t,n,r,i)=>{var a;if(!this._offscreenCanvasInUse)return;let o=(a=this.trackContexts.get(`video`))==null?void 0:a.decoderContext;o&&`setSubtitleCues`in o&&o.setSubtitleCues(e,t,n,r,i)}),m(this,`onInitSegment`,({initSegment:e})=>{var t;let n=(t=this.trackContexts.get(e.type))==null?void 0:t.decoderContext;if(!n)throw new U(`No known decoder context`,{code:`no_known_decoder_context`,isFatal:!1});n.initSegment(e)}),m(this,`decode`,e=>{let t=this.trackContexts.get(e.type);if(!t)throw new U(`No known decoder context`,{code:`no_known_decoder_context`,isFatal:!1});if(this.isSuspended)return;t.sampleDuration=e.duration/e.timescale*1e3;let n=e.compositionTimeOffset||0,{decoderContext:r,buffer:i}=t,a=(e.timestamp+n)/e.timescale*1e3,o=e.duration/e.timescale*1e3,s=i[i.length-1];if(!s||a-Vy>s.end?i.push({start:a,end:a+o}):a+o*5<s.end?(t.buffer=[{start:a,end:a+o}],e.type===`video`&&(this.videoKeyframeTimestamps=[])):s.end=a+o,e.type===`video`&&e.isSync){let e=this.videoKeyframeTimestamps[this.videoKeyframeTimestamps.length-1];e!==void 0&&a<e&&(this.videoKeyframeTimestamps=[]),this.videoKeyframeTimestamps.push(a),this.videoKeyframeTimestamps.length>20&&(this.videoKeyframeTimestamps=this.videoKeyframeTimestamps.slice(-20))}r.enqueue(e),this.emitDecodedFrames(),this._audioWebCodecsInUse&&e.type===`audio`&&this.scheduleAudioEmitRetry()}),m(this,`scheduleAudioEmitRetry`,()=>{this.isAudioEmitRetryScheduled||(this.isAudioEmitRetryScheduled=!0,this.timers.setTimeout(()=>{this.isAudioEmitRetryScheduled=!1,this.emitDecodedFrames()},0))}),m(this,`emitDecodedFrames`,()=>{let e;this.updateBufferState(),this.trackContexts.forEach((t,n)=>{var r,i,a,o;let s;for(;(s=(r=(i=t.decoderContext).error)==null?void 0:r.call(i))!==void 0;)this.emitter.emit(`error`,ti(!1,s));for(;(e=t.decoderContext.take())!==void 0;){let{statistics:n}=e;n&&(t.decodeTime.push(n.decodeTime),t.transportTime.push((n.transportTimeToWorker+n.transportTimeFromWorker)/n.samplesInBatch)),this.emitter.emit(`decoded frame`,e)}let c=(a=(o=t.decoderContext).takeEstimatedStatistics)==null?void 0:a.call(o);for(;c!==void 0;){var l,u;t.decodeTime.push(c.decodeTime),t.transportTime.push(c.transportTime),c=(l=(u=t.decoderContext).takeEstimatedStatistics)==null?void 0:l.call(u)}})}),m(this,`emitDecodeRate`,()=>{if(this.decodeRateGraceIntervals>0){this.decodeRateGraceIntervals--;return}this.currentVideoDecodeRate=this.calculateVideoDecodeRate(),this.emitter.emit(`video decode rate`,this.currentVideoDecodeRate)}),m(this,`updateBufferState`,()=>{let e;if(this.trackContexts.forEach(t=>{if(!e)e=t.buffer;else{var n,r,i,a;let o=(n=(r=t.buffer[t.buffer.length-1])==null?void 0:r.end)==null?0:n;((i=(a=e[e.length-1])==null?void 0:a.end)==null?0:i)>o&&(e=t.buffer)}}),!e)return;let t=this.playbackSource.currentTime,n=!0;this.trackContexts.forEach(e=>{e.buffer.some(e=>e.start<=t&&t<e.end)||(n=!1)});let r=n?`playing`:`buffering`;this.emitter.emit(`buffer state`,{buffered:e,currentTime:this.playbackSource.currentTime,isPaused:this.playbackSource.isPaused,playbackState:r})}),this.logger=t,this.emitter=e,this.trackContexts=n,this.playbackSource=r,this._webCodecsInUse=i,this._audioWebCodecsInUse=a,this._offscreenCanvasInUse=o}static create(t,n,r,i,a,o,s=!1,c=`no-preference`,l){return N(function*(){let u=new Map,d=new Set,f=!1,p=!1,m=!1;for(let e of i){if(d.has(e.type)){n.warn(`Received duplicate track type for decoder initialization. Ignoring subsequent track.`,{trackType:e.type,codec:e.codec,mimeType:e.mimeType});continue}switch(d.add(e.type),e.type){case`audio`:{let t,r,i=!1;if(s){let{WebCodecsAudioDecoderContext:a}=yield Promise.resolve().then(()=>(xy(),_y));if(i=a.isSupported(),i)try{t=yield a.create(n.createContext(`WebCodecsAudio`)),p=!0}catch(t){r=t instanceof Error?t:Error(`Failed to initialize WebCodecs audio decoder`),e.codec===`opus`&&n.warn(`Failed to initialize WebCodecs audio decoder, falling back to WASM Opus decoder`,{codec:e.codec,error:r})}}if(!t)if(e.codec===`opus`){let{OpusDecoderContext:n}=yield Promise.resolve().then(()=>(My(),ky));t=yield n.create(e.sampleRate||48e3,e.channels||2)}else{let t=s?r?`WebCodecs audio decoder initialization failed: ${r.message}`:i?`WebCodecs audio decoder could not be initialized.`:`WebCodecs AudioDecoder API is not supported in this environment.`:`WebCodecs audio decoding is disabled.`;throw ni(e.codec,t,r)}u.set(e.type,{buffer:[],decoderContext:t,decodeTime:new w(100),transportTime:new w(100),sampleDuration:40});break}case`video`:{let{VideoDecoderWorkerContext:t}=yield Promise.resolve().then(()=>(By(),Ly)),i=yield t.create(n.createContext(`VideoDecoderWorker`),r,o,s,c,l,()=>a.currentTime);f=i.isWebCodecs,m=i.usingOffscreenCanvas,u.set(e.type,{buffer:[],decoderContext:i,decodeTime:new w(100),transportTime:new w(100),sampleDuration:40,getRenderStatistics:i.getRenderStatistics});break}default:break}}return new e(t,n,u,a,f,p,m)})()}};h();var Gy,Ky=class{constructor(e){m(this,`emitter`,void 0),m(this,`isVisibleCount`,0),m(this,`isHiddenCount`,0),m(this,`isOnlineCount`,0),m(this,`isOfflineCount`,0),m(this,`isActive`,document.visibilityState===`visible`),m(this,`unload`,()=>{document.removeEventListener(`visibilitychange`,this.onVisibilityChanged),window.removeEventListener(`pagehide`,this.onPageHide),window.removeEventListener(`online`,this.onOnline),window.removeEventListener(`offline`,this.onOffline)}),m(this,`load`,()=>{document.addEventListener(`visibilitychange`,this.onVisibilityChanged),window.addEventListener(`pagehide`,this.onPageHide),window.addEventListener(`online`,this.onOnline),window.addEventListener(`offline`,this.onOffline)}),m(this,`unsuspend`,()=>{}),m(this,`getStatistics`,()=>{var e,t,n,r,i;return{isVisible:this.isVisible,isOnline:this.isOnline,isVisibleCount:this.isVisibleCount,isHiddenCount:this.isHiddenCount,isOnlineCount:this.isOnlineCount,isOfflineCount:this.isOfflineCount,navigatorRtt:(e=navigator.connection)==null?void 0:e.rtt,navigatorEffectiveType:(t=navigator.connection)==null?void 0:t.effectiveType,navigatorConnectionType:(n=navigator.connection)==null?void 0:n.type,navigatorSaveData:(r=navigator.connection)==null?void 0:r.saveData,navigatorDownlink:(i=navigator.connection)==null?void 0:i.downlink}}),m(this,`onOnline`,()=>this.isOnlineCount++),m(this,`onOffline`,()=>this.isOfflineCount++),m(this,`onPageHide`,e=>this.emitter.emit(`pagehide`,e)),m(this,`onVisibilityChanged`,()=>{this.setIsActive(document.visibilityState===`visible`)}),m(this,`setIsActive`,e=>{e!==this.isActive&&(this.emitter.emit(`page active`,e),e?this.isVisibleCount++:this.isHiddenCount++),this.isActive=e}),this.emitter=e}get isOnline(){return navigator.onLine}get isVisible(){return document.visibilityState===`visible`}};Gy=Ky,m(Ky,`create`,e=>new Gy(e)),H(),h(),B();var qy,Jy=e=>(t,n,r)=>t.timestamp<=n||t.timestampAdded<=r-e,Yy=class e{constructor(t,n,r){m(this,`logger`,void 0),m(this,`emitter`,void 0),m(this,`waitingEvents`,[]),m(this,`isTriggered`,Jy(e.EVENT_TIMEOUT)),m(this,`timeSource`,void 0),m(this,`timers`,new zn),m(this,`load`,()=>{this.timers.setInterval(this.onBufferedStateChanged,e.EVENT_CHECK_INTERVAL),this.emitter.on(`add event`,this.addEvent)}),m(this,`unload`,()=>{this.timers.unload(),this.emitter.off(`add event`,this.addEvent)}),m(this,`addEvent`,e=>{this.logger.debug(`Adding event`,{event:e}),!this.waitingEvents.some(t=>t.id!==void 0&&t.id===e.id)&&this.waitingEvents.push(z(z({},e),{},{timestampAdded:Date.now()}))}),m(this,`extractEvent`,(e,t)=>{t.type===`video`&&e.channelId!==t.channelId&&this.addEvent({type:`channel switch`,channelId:t.channelId,timestamp:t.timestamp/t.timescale*1e3}),t.type===`audio`&&e.type===`audio`&&t.language!==void 0&&t.language!==e.language&&this.addEvent({type:`language switch`,language:t.language,timestamp:t.timestamp/t.timescale*1e3})}),m(this,`onBufferedStateChanged`,()=>{var e;let t=Date.now(),n=(e=this.timeSource.drift)==null?0:e,r=this.timeSource.serverCurrentTime-n;if(this.waitingEvents.length===0)return;let i=this.waitingEvents.filter(e=>this.isTriggered(e,r,t));this.waitingEvents=this.waitingEvents.filter(e=>!this.isTriggered(e,r,t)),i.forEach(e=>{this.logger.debug(`Emitting event`,{event:e}),this.emitter.emit(`event`,e)})}),this.logger=n,this.emitter=t,this.timeSource=r}};qy=Yy,m(Yy,`EVENT_TIMEOUT`,5e3),m(Yy,`EVENT_CHECK_INTERVAL`,20),m(Yy,`create`,(e,t,n)=>new qy(e,t,n)),xi(),H(),h();var Xy,Zy=class e{constructor(t){m(this,`emitter`,void 0),m(this,`timers`,zn.create()),m(this,`bytesReceived`,new Map),m(this,`timeoutInterval`,void 0),m(this,`lastBytesUpdated`,Date.now()),m(this,`load`,()=>{this.emitter.on(`connection state`,this.onConnectionState),this.timers.setInterval(()=>this.bytesReceived.forEach(e=>e.tick()),100)}),m(this,`unload`,()=>{this.emitter.off(`connection state`,this.onConnectionState),this.timers.unload()}),m(this,`averageBitRate`,e=>{var t,n;return((t=(n=this.bytesReceived.get(e))==null?void 0:n.average)==null?0:t)*8}),m(this,`totalBytesReceived`,()=>{let e=0;return this.bytesReceived.forEach(t=>{e+=t.total}),e}),m(this,`add`,(t,n)=>{let r=this.bytesReceived.get(t);r||(r=new Ft(20),this.bytesReceived.set(t,r)),n>0&&(this.lastBytesUpdated=Date.now(),this.timeoutInterval||(this.timeoutInterval=this.timers.setInterval(this.checkTimeout,e.UPDATE_RECEIVED_BYTES_INTERVAL))),r.add(n)}),m(this,`getStatistics`,()=>({bytesReceived:this.totalBytesReceived(),videoBitRate:this.averageBitRate(`video`),audioBitRate:this.averageBitRate(`audio`)})),m(this,`onConnectionState`,t=>{this.clearTimeoutInterval(),t===`connected`&&(this.lastBytesUpdated=Date.now(),this.timeoutInterval=this.timers.setInterval(this.checkTimeout,e.UPDATE_RECEIVED_BYTES_INTERVAL))}),m(this,`checkTimeout`,()=>{let t=Date.now()-this.lastBytesUpdated;if(this.totalBytesReceived()===0&&t>e.NO_DATA_ERROR_TIMEOUT){this.emitter.emit(`error`,mi()),this.emitter.emit(`reconnect`,`no incoming data`),this.clearTimeoutInterval();return}t>e.NO_DATA_TIMEOUT&&this.totalBytesReceived()>0&&(this.emitter.emit(`no data timeout`,this.totalBytesReceived()),this.clearTimeoutInterval())}),m(this,`clearTimeoutInterval`,()=>{this.timeoutInterval&&(this.timers.clearInterval(this.timeoutInterval),this.timeoutInterval=void 0)}),this.emitter=t}};Xy=Zy,m(Zy,`NO_DATA_ERROR_TIMEOUT`,20*1e3),m(Zy,`NO_DATA_TIMEOUT`,5*1e3),m(Zy,`UPDATE_RECEIVED_BYTES_INTERVAL`,1e3),m(Zy,`create`,e=>new Xy(e)),H(),h();var Qy=1e3,$y=50,eb=class e{constructor(e){m(this,`logger`,void 0),m(this,`trackingState`,new Map),m(this,`runningJitter`,new Map),m(this,`recentJitterSamples`,new Map),m(this,`load`,()=>{this.logger.debug(`JitterModule loaded`)}),m(this,`unload`,()=>{this.trackingState.clear(),this.runningJitter.clear(),this.recentJitterSamples.clear(),this.logger.debug(`JitterModule unloaded`)}),this.logger=e}static create(t){return new e(t)}getTrackingKey(e,t){return`${e}-${t}`}recordSample(e){var t,n,r,i;let a=this.getTrackingKey(e.type,e.renditionId),o=(t=(n=globalThis.performance)==null||(r=n.now)==null?void 0:r.call(n))==null?Date.now():t,s=e.timestamp/e.timescale*1e3,c=this.trackingState.get(a);if(!c){this.trackingState.set(a,{lastArrivalTime:o,lastTimestampMs:s,jitterSamples:new w(Qy),interArrivalTimes:new w(Qy)}),this.runningJitter.set(a,0),this.recentJitterSamples.set(a,new w($y));return}let l=s-c.lastTimestampMs;if(l<=0){c.lastArrivalTime=o,c.lastTimestampMs=s;return}let u=o-c.lastArrivalTime,d=Math.abs(u-l);c.jitterSamples.push(d),c.interArrivalTimes.push(u);let f=(i=this.runningJitter.get(a))==null?0:i,p=f+(d-f)/16;this.runningJitter.set(a,p);let m=this.recentJitterSamples.get(a);m||(m=new w($y),this.recentJitterSamples.set(a,m)),m.push(d),c.lastArrivalTime=o,c.lastTimestampMs=s}getJitterForType(e){for(let[i,a]of this.trackingState)if(i.startsWith(e)){var t,n,r;if(a.jitterSamples.items().length<1)return;let e=(t=this.runningJitter.get(i))==null?0:t,{min:o,max:s,average:c}=Mt((n=(r=this.recentJitterSamples.get(i))==null?void 0:r.items())==null?[]:n);return{min:Math.round(o),max:Math.round(s),last:Math.round(c),average:Math.round(e)}}}getRunningJitter(e){for(let[t,n]of this.runningJitter)if(t.startsWith(e))return n}reset(e,t){if(e!==void 0&&t!==void 0){let n=this.getTrackingKey(e,t);this.trackingState.delete(n),this.runningJitter.delete(n),this.recentJitterSamples.delete(n)}else if(e!==void 0)for(let t of this.trackingState.keys())t.startsWith(e)&&(this.trackingState.delete(t),this.runningJitter.delete(t),this.recentJitterSamples.delete(t));else this.trackingState.clear(),this.runningJitter.clear(),this.recentJitterSamples.clear()}getStatistics(){return{audioJitter:this.getJitterForType(`audio`),videoJitter:this.getJitterForType(`video`)}}};xi(),H(),h(),P();var tb=()=>window.AudioContext||window.webkitAudioContext,nb=class e extends Bt{constructor(){var t;super(),t=this,m(this,`context`,new(tb())),m(this,`timers`,zn.create()),m(this,`previousCurrentTime`,0),m(this,`_isStuck`,!1),m(this,`mediaStreamDestination`,void 0),m(this,`unload`,()=>(this.timers.unload(),this.context.removeEventListener(`statechange`,this.onStateChange),this.context.state===`closed`?Promise.resolve():this.context.close())),m(this,`createGain`,()=>this.context.createGain()),m(this,`createBuffer`,(e,t,n)=>this.context.createBuffer(e,t,n)),m(this,`createBufferSource`,()=>this.context.createBufferSource()),m(this,`getMediaStreamDestination`,()=>(this.mediaStreamDestination||(this.mediaStreamDestination=this.context.createMediaStreamDestination()),this.mediaStreamDestination)),m(this,`getDefaultDestination`,()=>this.context.destination),m(this,`createSplitter`,()=>this.context.createChannelSplitter(2)),m(this,`resume`,N(function*(){try{return yield Promise.race([t.context.resume(),nr(1e3,ci())])}catch(e){throw t.suspend().catch(S),e}})),m(this,`suspend`,N(function*(){var e;yield(e=t.context.suspend())==null?Promise.resolve():e})),m(this,`onStateChange`,()=>this.emit(`state`,this.state)),this.context.addEventListener(`statechange`,this.onStateChange),this.timers.setInterval(()=>{this._isStuck=this.isRunning&&this.context.currentTime===this.previousCurrentTime,this._isStuck&&this.emit(`stuck`),this.previousCurrentTime=this.context.currentTime},e.CHECK_INTERVAL)}get isStuck(){return this._isStuck}get isRunning(){return this.state===`running`}get currentTime(){return this.context.currentTime}get sampleRate(){return this.context.sampleRate}get state(){return this.context.state}};m(nb,`CHECK_INTERVAL`,1e3),xi(),H(),h(),P(),B();var rb,ib=150,ab=400,ob=e=>e===void 0?5:e<=ib?1:e<=ab?2:5,sb=class extends Bt{get isContextRunning(){var e;return((e=this.audio)==null?void 0:e.state)===`running`}get volume(){return this._volume}set volume(e){this._volume=e,this.muted||this.setGain(e)}get seekTime(){return 0}get totalSeekTime(){return 0}get isSeeking(){return!1}get muted(){var e;return this._muted||!((e=this.audio)!=null&&e.isRunning)}set muted(e){this._userProvidedMuted=e,this._muted=e,this.setGain(this._volume)}get isPaused(){return!1}get currentTime(){var e;return!this.audio||!this.audio.isRunning||this.audio.isStuck?this.clockSource.currentTime:this.audio.currentTime*1e3+((e=this.clockDelta)==null?0:e)}set currentTime(e){this.logger.debug(`setting current time to`,{currentTime:e}),this.startTimeIsInvalidated=!0}get bufferTime(){return this._bufferTime}set bufferTime(e){this._bufferTime=e,this.audioBufferMultiplier=ob(e)}get audioNode(){return this.splitter}constructor(e,t,{muted:n,reInitWhenStuck:r,bufferTime:i}){var a;super(),a=this,m(this,`logger`,void 0),m(this,`audio`,void 0),m(this,`gainNode`,void 0),m(this,`splitter`,void 0),m(this,`_volume`,1),m(this,`_userProvidedMuted`,!1),m(this,`_muted`,!1),m(this,`startTime`,0),m(this,`samples`,new Float32Array),m(this,`preInitSampleQueue`,new w(500)),m(this,`unplayedBufferSources`,new w(100)),m(this,`sampleRate`,48e3),m(this,`channels`,2),m(this,`index`,0),m(this,`clockSource`,void 0),m(this,`clockDelta`,void 0),m(this,`startTimeIsInvalidated`,!0),m(this,`lastSampleTimestamp`,0),m(this,`reInitWhenStuck`,void 0),m(this,`ignoreSuspendCalls`,!1),m(this,`_bufferTime`,void 0),m(this,`audioBufferMultiplier`,void 0),m(this,`isActivated`,!1),m(this,`unload`,N(function*(){var e,t;(e=a.gainNode)==null||e.disconnect(),yield(t=a.audio)==null?void 0:t.unload(),a.reset(),a.audio=void 0,a.gainNode=void 0})),m(this,`suspend`,()=>{this.setGain(0)}),m(this,`unsuspend`,()=>{var e;this.setGain(this._volume),this.ignoreSuspendCalls=!!this.audio,(e=this.audio)==null||e.suspend().then(N(function*(){yield a.resume(),a.ignoreSuspendCalls=!1})).catch(()=>{this.ignoreSuspendCalls=!1,this.emit(`state change`,`suspended`)})}),m(this,`flush`,(e=this.samples.length)=>{if(!this.audio||!this.gainNode)throw new U(`AudioContext must be initialized to flush`,{isFatal:!1,code:`audiocontext_must_be_initialized`});let t=Math.floor(e/this.channels);if(t<=0)return;let n=this.audio.createBufferSource(),r=this.audio.createBuffer(this.channels,t,this.sampleRate);if(this.channels===2){let e=r.getChannelData(0),n=r.getChannelData(1);for(let r=0;r<t;r++){let t=r*2;e[r]=this.samples[t],n[r]=this.samples[t+1]}}else if(this.channels===1)r.getChannelData(0).set(this.samples.subarray(0,t));else{let e=0;for(let n=0;n<this.channels;n++){e=n;let i=r.getChannelData(n);for(let n=0;n<t;n++)i[n]=this.samples[e],e+=this.channels}}let i=Math.max(this.startTime,0);n.buffer=r,n.connect(this.gainNode),this.splitter&&n.connect(this.splitter),n.start(i),this.unplayedBufferSources.push([i,n]),this.startTime+=r.duration}),m(this,`onDecodedFrame`,e=>{var t;if(!(this.gainNode&&(t=this.audio)!=null&&t.isRunning)){if(e.type===`audio`){this.preInitSampleQueue.push(z(z({},e),{},{data:e.data.slice(0,e.data.length)}));let t=this.clockSource.currentTime;this.preInitSampleQueue.filterPop(({timestamp:e,timescale:n})=>e/n*1e3>t)}return}for(;!this.preInitSampleQueue.isEmpty();){let e=this.preInitSampleQueue.items();this.preInitSampleQueue.clear(),e.forEach(this.onDecodedFrame)}if(this.unplayedBufferSources.filterPop(([e,t])=>{var n,r;return((n=(r=this.audio)==null?void 0:r.currentTime)==null?0:n)<e}),e.type===`audio`){let t=e.timestamp/e.timescale*1e3;if(t<this.lastSampleTimestamp&&(this.logger.info(`Unordered timestamp - invalidating start time`),this.startTimeIsInvalidated=!0),this.lastSampleTimestamp=t,this.startTimeIsInvalidated){let e=this.audio.currentTime*1e3,n=this.clockSource.currentTime,r=(e+t-n)/1e3;this.clockDelta=n-e,this.startTime=r,this.startTimeIsInvalidated=!1,this.unplayedBufferSources.items().forEach(([e,t])=>{r<=e&&t.stop()})}let n=e.data.length*this.audioBufferMultiplier;this.samples.length!==n&&(this.index>0&&this.flush(this.index),this.samples=new Float32Array(n),this.index=0),this.channels=e.channels,this.sampleRate=e.sampleRate,this.samples.set(e.data,this.index),this.index+=e.data.length,this.samples.length<=this.index&&(this.flush(this.samples.length),this.index=0)}}),m(this,`play`,N(function*(){a.audio=a.getAudioContext(),yield a.resume()})),m(this,`pause`,()=>{}),m(this,`flushBuffer`,()=>{var e,t;this.unplayedBufferSources.items().forEach(([e,t])=>{try{t.stop()}catch(e){}}),this.unplayedBufferSources.clear(),this.preInitSampleQueue.clear(),this.samples=new Float32Array,this.index=0,this.lastSampleTimestamp=0,this.startTime=(e=(t=this.audio)==null?void 0:t.currentTime)==null?0:e,this.startTimeIsInvalidated=!0}),m(this,`resume`,N(function*(){if(!a._userProvidedMuted)try{var e;yield(e=a.audio)==null?void 0:e.resume(),a._muted=a._userProvidedMuted,a.startTimeIsInvalidated=!0}catch(e){throw a._muted=!0,e}})),m(this,`getAudioContext`,()=>this.audio?this.audio:this.setupContext()),m(this,`setupContext`,()=>{var e,t,n;return(e=this.audio)==null||e.unload(),this.audio=new nb,this.audio.on(`state`,e=>{this.logger.info(`AudioContext state change`,{state:e}),e===`running`&&(this._muted=this._userProvidedMuted,this.setGain(this._volume)),!this.ignoreSuspendCalls&&this.emit(`state change`,e)}),this.audio.on(`stuck`,()=>{this.reInitWhenStuck&&(this.logger.info(`Re-init audio context`),this.setupContext(),this.resume().catch(S),this.emit(`stuck`))}),(t=this.gainNode)==null||t.disconnect(),this.gainNode=this.audio.createGain(),this.setGain(this._volume),this.startTime=this.audio.currentTime,(n=this.splitter)==null||n.disconnect(),this.splitter=this.audio.createSplitter(),this.audio}),m(this,`setGain`,e=>{this.gainNode&&(this.gainNode.gain.value=this._muted?0:e)}),this._muted=n,this._userProvidedMuted=n,this.logger=e,this.clockSource=t,this.reInitWhenStuck=r,this._bufferTime=i,this.audioBufferMultiplier=ob(i)}useMediaStreamDestination(){var e;let t=this.getAudioContext(),n=t.getMediaStreamDestination();return(e=this.gainNode)==null||e.connect(n),t.isRunning||t.resume().catch(()=>{}),n}useDefaultDestination(){var e;let t=this.getAudioContext().getDefaultDestination();return(e=this.gainNode)==null||e.connect(t),t}};rb=sb,m(sb,`create`,(e,t,n)=>new rb(e,t,n)),h();var cb,lb=class{constructor(e,t,n,r,i,a){m(this,`staleFrameThresholdMs`,400),m(this,`pool`,void 0),m(this,`logger`,void 0),m(this,`videoRenderer`,new Bi),m(this,`videoFrameCanvas2DRenderer`,null),m(this,`renderQueue`,[]),m(this,`clockSource`,void 0),m(this,`isFirstFrame`,!0),m(this,`usingWebCodecs`,!1),m(this,`onCanvasChangeCallback`,void 0),m(this,`onRendererErrorCallback`,void 0),m(this,`animationFrameRequest`,void 0),m(this,`firstFrameAnimationFrameRequest`,void 0),m(this,`pendingFirstFrameSample`,void 0),m(this,`renderedFrameCount`,0),m(this,`rendererDroppedFrameCount`,0),m(this,`renderTargetSize`,void 0),m(this,`load`,()=>{this.videoRenderer.load(),this.subscribeToContextLost(this.videoRenderer)}),m(this,`unload`,()=>(this.stopRender(),this.clearRenderQueue(),this.unsubscribeFromContextLost(this.videoRenderer),this.videoRenderer.unload(),this.videoFrameCanvas2DRenderer&&(this.unsubscribeFromContextLost(this.videoFrameCanvas2DRenderer),this.videoFrameCanvas2DRenderer.unload()),Promise.resolve())),m(this,`suspend`,()=>{this.clearRenderQueue(),this.stopRender()}),m(this,`unsuspend`,()=>{this.animationFrameRequest===void 0&&(this.animationFrameRequest=requestAnimationFrame(this.render))}),m(this,`element`,()=>this.usingWebCodecs&&this.videoFrameCanvas2DRenderer?this.videoFrameCanvas2DRenderer.canvas:this.videoRenderer.canvas),m(this,`getStatistics`,()=>({renderedFrameCount:this.renderedFrameCount,rendererDroppedFrameCount:this.rendererDroppedFrameCount})),m(this,`resetSize`,()=>{this.videoRenderer.resetSize()}),m(this,`setActiveCues`,(e,t)=>{this.usingWebCodecs&&this.videoFrameCanvas2DRenderer?this.videoFrameCanvas2DRenderer.setActiveCues(e,t):this.usingWebCodecs||this.videoRenderer.getTextRenderer().setActiveCues(e,t)}),m(this,`onDecodedFrame`,e=>{if(e.type===`video`)if(this.isFirstFrame)this.isFirstFrame=!1,this.pendingFirstFrameSample=e,this.firstFrameAnimationFrameRequest=requestAnimationFrame(()=>{this.firstFrameAnimationFrameRequest=void 0;let e=this.pendingFirstFrameSample;this.pendingFirstFrameSample=void 0,e&&this.renderSample(e)});else{let t=(this.clockSource.currentTime-this.staleFrameThresholdMs)/1e3;this.renderQueue=this.renderQueue.filter(n=>{let r=this.samplePresentationTime(n),i=this.samplePresentationTime(e),a=r>t&&r<=i;return a||this.releaseSampleResources(n),a}),this.renderQueue.push(e)}}),m(this,`render`,()=>{let e=this.clockSource.currentTime,t=this.renderQueue[0],n,r=0;for(;t&&this.samplePresentationTime(t)*1e3<=e;)t=this.renderQueue.shift(),t&&(r++,n&&this.releaseSampleResources(n),n=t),t=this.renderQueue[0];n&&this.renderSample(n),this.rendererDroppedFrameCount+=Math.max(r-1,0),this.animationFrameRequest=requestAnimationFrame(this.render)}),m(this,`renderSample`,e=>{if(this.renderedFrameCount++,e.videoFrame){let n=this.videoFrameCanvas2DRenderer;if(!this.usingWebCodecs){var t;this.logger.info(`Switching to Canvas2D renderer for WebCodecs`),n||(n=new Mr,n.load(),this.subscribeToContextLost(n),this.videoFrameCanvas2DRenderer=n);let e=this.videoRenderer.canvas,r=n.canvas;if(e.parentElement)try{e.parentElement.replaceChild(r,e)}catch(e){}this.usingWebCodecs=!0,(t=this.onCanvasChangeCallback)==null||t.call(this)}n?n.render(e,this.getSubtitlePadding()):this.videoRenderer.render(e,this.renderTargetSize),e.videoFrame.close()}else{if(this.usingWebCodecs){var n;this.logger.info(`Switching back to WebGL renderer for WASM`);let t=this.videoFrameCanvas2DRenderer;if(!t){this.usingWebCodecs=!1,this.videoRenderer.render(e,this.renderTargetSize),e.buffer.byteLength>0&&this.pool.reclaim(e.buffer);return}let r=t.canvas,i=this.videoRenderer.canvas;if(r.parentElement)try{r.parentElement.replaceChild(i,r)}catch(e){}this.usingWebCodecs=!1,(n=this.onCanvasChangeCallback)==null||n.call(this)}this.videoRenderer.render(e,this.renderTargetSize)}e.buffer.byteLength>0&&this.pool.reclaim(e.buffer)}),m(this,`stopRender`,()=>{this.animationFrameRequest!==void 0&&(cancelAnimationFrame(this.animationFrameRequest),this.animationFrameRequest=void 0),this.firstFrameAnimationFrameRequest!==void 0&&(cancelAnimationFrame(this.firstFrameAnimationFrameRequest),this.firstFrameAnimationFrameRequest=void 0),this.pendingFirstFrameSample&&(this.releaseSampleResources(this.pendingFirstFrameSample),this.pendingFirstFrameSample=void 0)}),m(this,`clearRenderQueue`,()=>{this.renderQueue.forEach(e=>{this.releaseSampleResources(e)}),this.renderQueue=[]}),m(this,`onRendererContextLost`,e=>{var t;(t=this.onRendererErrorCallback)==null||t.call(this,e)}),m(this,`subscribeToContextLost`,e=>{let t=e;typeof t.on==`function`&&t.on(`context lost`,this.onRendererContextLost)}),m(this,`unsubscribeFromContextLost`,e=>{let t=e;typeof t.off==`function`&&t.off(`context lost`,this.onRendererContextLost)}),m(this,`getSubtitlePadding`,()=>{let e=this.renderTargetSize.style.getPropertyValue(`--vindral-subtitle-offset`)||this.renderTargetSize.style.getPropertyValue(`--vindral-control-bar-offset`),t=parseInt(e||`0`,10);return Number.isNaN(t)?0:-t}),m(this,`samplePresentationTime`,e=>(e.timestamp+(e.compositionTimeOffset||0))/e.timescale),m(this,`releaseSampleResources`,e=>{try{var t;(t=e.videoFrame)==null||t.close()}catch(e){}e.buffer.byteLength>0&&this.pool.reclaim(e.buffer)}),this.logger=e,this.clockSource=t,this.pool=n,this.renderTargetSize=r||this.videoRenderer.canvas,this.onCanvasChangeCallback=i,this.onRendererErrorCallback=a}};cb=lb,m(lb,`create`,(e,t,n,r,i,a)=>new cb(e,t,n,r,i,a)),E(),A(),M();var ub=new WeakMap,db=class{constructor(){T(this,ub,[]),k(ub,this,[])}addTextTrack(e,t,n){let r=[],i={kind:e,label:t,language:n,mode:`disabled`,cues:r,addCue:e=>{r.push(e)},removeCue:e=>{let t=r.findIndex(t=>t===e);t!==-1&&r.splice(t,1)}};return j(ub,this).push(i),i}set language(e){j(ub,this).forEach(t=>{t.language===e?t.mode=`showing`:t.mode=`hidden`})}get language(){var e;return(e=j(ub,this).find(e=>e.mode===`showing`))==null?void 0:e.language}getActiveCues(e){let t=j(ub,this).find(e=>e.mode===`showing`);return t?t.cues.filter(({startTime:t,endTime:n})=>e>=t&&e<=n):[]}};H(),h();var fb=(e,t)=>{let n;for(n=t;e>1;e--)n+=t;return n},pb=class{constructor(){m(this,`audio`,void 0),m(this,`unmute`,()=>this.audio.play().catch(S));let e=document.createElement(`div`);e.innerHTML=`<audio x-webkit-airplay='deny'></audio>`;let t=e.children.item(0);if(t instanceof HTMLAudioElement)this.audio=t,this.audio.controls=!1,this.audio.disableRemotePlayback=!0,this.audio.preload=`auto`,this.audio.src=`data:audio/mpeg;base64,//uQx`+fb(23,`A`)+`WGluZwAAAA8AAAACAAACcQCA`+fb(16,`gICA`)+fb(66,`/`)+`8AAABhTEFNRTMuMTAwA8MAAAAAAAAAABQgJAUHQQAB9AAAAnGMHkkI`+fb(320,`A`)+`//sQxAADgnABGiAAQBCqgCRMAAgEAH`+fb(15,`/`)+`7+n/9FTuQsQH//////2NG0jWUGlio5gLQTOtIoeR2WX////X4s9Atb/JRVCbBUpeRUq`+fb(18,`/`)+`9RUi0f2jn/+xDECgPCjAEQAABN4AAANIAAAAQVTEFNRTMuMTAw`+fb(97,`V`)+`Q==`,this.audio.loop=!1,this.audio.load();else throw Error(`Failed to create audio tag`)}};xi(),H(),h();var mb,hb=class{constructor(e,t,n,r,i,a,o,s){m(this,`logger`,void 0),m(this,`emitter`,void 0),m(this,`audioPlayer`,void 0),m(this,`videoPlayer`,void 0),m(this,`pool`,void 0),m(this,`unmuter`,new pb),m(this,`_isPaused`,!1),m(this,`isDisconnected`,!1),m(this,`timers`,new zn),m(this,`isVideoRenderingEnabled`,!0),m(this,`isLoaded`,!1),m(this,`isSuspended`,!0),m(this,`isVideoPlayerLoaded`,!1),m(this,`textTracks`,new db),m(this,`playbackRate`,void 0),m(this,`reset`,()=>{}),m(this,`load`,()=>{this.audioPlayer.useDefaultDestination(),this.emitter.on(`decoded frame`,this.onDecodedFrame),this.emitter.on(`flush buffers`,this.flushBuffers),this.isLoaded=!0,this.isVideoRenderingEnabled&&(this.videoPlayer.load(),this.isVideoPlayerLoaded=!0,this.startTextTrackInterval())}),m(this,`unload`,()=>{this.emitter.off(`target buffer time`,this.onTargetBufferTime),this.emitter.off(`decoded frame`,this.onDecodedFrame),this.emitter.off(`flush buffers`,this.flushBuffers),this.audioPlayer.unload(),this.isVideoPlayerLoaded&&(this.videoPlayer.unload(),this.isVideoPlayerLoaded=!1),this.timers.unload(),this.isLoaded=!1}),m(this,`suspend`,()=>{this.isSuspended=!0,this.isVideoRenderingEnabled&&this.videoPlayer.suspend(),this.audioPlayer.suspend()}),m(this,`unsuspend`,()=>{this.isSuspended=!1,this.isVideoRenderingEnabled&&this.videoPlayer.unsuspend(),this.audioPlayer.unsuspend()}),m(this,`setVideoRenderingEnabled`,e=>{if(e!==this.isVideoRenderingEnabled&&(this.isVideoRenderingEnabled=e,this.isLoaded)){if(!e){this.timers.unload(),this.videoPlayer.suspend();return}this.isVideoPlayerLoaded||(this.videoPlayer.load(),this.isVideoPlayerLoaded=!0),this.startTextTrackInterval(),this.isSuspended||this.videoPlayer.unsuspend()}}),m(this,`element`,()=>this.videoPlayer.element()),m(this,`getStatistics`,()=>this.videoPlayer.getStatistics()),m(this,`startTextTrackInterval`,()=>{this.timers.setInterval(()=>{if(!this.textTracks.language)return;let e=this.textTracks.getActiveCues(this.currentTime/1e3);this.videoPlayer.setActiveCues(e,{width:this.videoPlayer.element().clientWidth,height:this.videoPlayer.element().clientHeight})},100)}),m(this,`flushBuffers`,()=>{this.audioPlayer.flushBuffer()}),m(this,`onTargetBufferTime`,e=>{this.audioPlayer.bufferTime=e}),m(this,`activateAudioPlayer`,()=>(this.isDisconnected&&(this.isDisconnected=!1,this.audioPlayer.useDefaultDestination()),this._isPaused=!1,this.unmuter.unmute(),this.audioPlayer.play())),m(this,`onDecodedFrame`,e=>{try{this.audioPlayer.onDecodedFrame(e)}catch(e){e instanceof Error&&this.emitter.emit(`error`,ri(!1,e))}this.isVideoRenderingEnabled&&this.videoPlayer.onDecodedFrame(e)}),this.logger=t,this.emitter=e,this.pool=n,this.emitter.on(`target buffer time`,this.onTargetBufferTime),this.audioPlayer=sb.create(this.logger.createContext(`AudioPlayerModule`),r,{muted:i,reInitWhenStuck:!0,bufferTime:s}),a!==void 0&&(this.audioPlayer.volume=a),this.audioPlayer.on(`stuck`,()=>{this.isDisconnected=!0}),this.audioPlayer.on(`state change`,()=>{this.emitter.emit(`volume state`,{volume:this.volume,isMuted:this.muted})}),this.videoPlayer=lb.create(this.logger.createContext(`VideoPlayerModule`),this.audioPlayer,this.pool,void 0,o)}get volume(){return this.audioPlayer.volume}set volume(e){this.audioPlayer.volume=e}get muted(){return this.audioPlayer.muted}set muted(e){let t=this.muted;this.audioPlayer.muted=e,!e&&t&&this.activateAudioPlayer().catch(S)}get currentTime(){return this.audioPlayer.currentTime}set currentTime(e){this.audioPlayer.currentTime=e}get isActivated(){return this.audioPlayer.isActivated}set isActivated(e){this.audioPlayer.isActivated=e}get seekTime(){return this.audioPlayer.seekTime}get totalSeekTime(){return this.audioPlayer.totalSeekTime}get isPaused(){return this._isPaused}get isSeeking(){return this.audioPlayer.isSeeking}get audioNode(){return this.audioPlayer.audioNode}play(){this.activateAudioPlayer().then(()=>{this.emitter.emit(`media element state`,`playing`)}).catch(()=>{this.emitter.emit(`needs user input`,{forAudio:!0,forVideo:!1})})}pause(){this._isPaused=!0,this.audioPlayer.pause(),this.emitter.emit(`media element state`,`paused`)}};mb=hb,m(hb,`create`,(e,t,n,r,i,a,o,s)=>new mb(e,t,n,r,i,a,o,s)),xi(),H(),h();var gb,_b=class{constructor(e,t,n,r,{muted:i,volume:a,type:o,poster:s,offscreenCanvas:c,bufferTime:l}){m(this,`logger`,void 0),m(this,`emitter`,void 0),m(this,`mediaElement`,void 0),m(this,`audioPlayer`,void 0),m(this,`videoPlayer`,void 0),m(this,`pool`,void 0),m(this,`isDisconnected`,!0),m(this,`_userProvidedMuted`,!1),m(this,`timers`,new zn),m(this,`offscreenCanvas`,void 0),m(this,`nativeTextTrack`,void 0),m(this,`nativeTrackCues`,[]),m(this,`volumeState`,void 0),m(this,`textTracks`,new db),m(this,`reset`,()=>{}),m(this,`load`,()=>{this.mediaElement.load(),this.emitter.on(`decoded frame`,this.onDecodedFrame),this.emitter.on(`flush buffers`,this.flushBuffers),this.emitter.on(`ios-hack: reset size`,this.resetCanvasSize),this.emitter.on(`enter picture in picture`,this.onEnterIOSHack),this.emitter.on(`exit picture in picture`,this.onExitIOSHack),this.element().element.addEventListener(`webkitendfullscreen`,this.onExitIOSHack),this.element().element.addEventListener(`webkitbeginfullscreen`,this.onEnterIOSHack),this.videoPlayer.load(),this.nativeTextTrack=this.mediaElement.element.addTextTrack(`subtitles`,``,``),this.nativeTextTrack.mode=`showing`,this.timers.setInterval(()=>{if(!this.textTracks.language){this.clearNativeTrackCues();return}let e=this.textTracks.getActiveCues(this.currentTime/1e3);this.updateNativeTrackCues(e)},100)}),m(this,`unload`,()=>{this.emitter.off(`target buffer time`,this.onTargetBufferTime),this.emitter.off(`decoded frame`,this.onDecodedFrame),this.emitter.off(`flush buffers`,this.flushBuffers),this.emitter.off(`ios-hack: reset size`,this.resetCanvasSize),this.emitter.off(`enter picture in picture`,this.onEnterIOSHack),this.emitter.off(`exit picture in picture`,this.onExitIOSHack),this.element().element.removeEventListener(`webkitendfullscreen`,this.onExitIOSHack),this.element().element.removeEventListener(`webkitbeginfullscreen`,this.onEnterIOSHack),this.clearNativeTrackCues(),this.nativeTextTrack=void 0,this.mediaElement.unload(),this.timers.unload(),this.audioPlayer.unload(),this.videoPlayer.unload()}),m(this,`suspend`,()=>{this.videoPlayer.suspend(),this.audioPlayer.suspend()}),m(this,`unsuspend`,()=>{this.videoPlayer.unsuspend(),this.audioPlayer.unsuspend()}),m(this,`element`,()=>this.mediaElement),m(this,`getStatistics`,()=>this.videoPlayer.getStatistics()),m(this,`activateAudioPlayer`,()=>(this.isDisconnected&&this.connectStreams(),this.audioPlayer.play())),m(this,`flushBuffers`,()=>{this.audioPlayer.flushBuffer()}),m(this,`onTargetBufferTime`,e=>{this.audioPlayer.bufferTime=e}),m(this,`resetCanvasSize`,()=>{this.videoPlayer.resetSize()}),m(this,`onEnterIOSHack`,()=>{this.mediaElement._iosHackEnterPiPMode()}),m(this,`onExitIOSHack`,()=>{this.mediaElement._iosHackExitPiPMode()}),m(this,`onDecodedFrame`,e=>{try{this.audioPlayer.onDecodedFrame(e)}catch(e){e instanceof Error&&this.emitter.emit(`error`,ri(!1,e))}this.offscreenCanvas||this.videoPlayer.onDecodedFrame(e)}),m(this,`onVideoPlayerError`,e=>{if(e instanceof U){this.emitter.emit(`error`,e);return}this.emitter.emit(`error`,ti(!1,e))}),m(this,`connectStreams`,()=>{let e=this.offscreenCanvas||this.videoPlayer.element();this.logger.info(`Connecting streams using ${this.offscreenCanvas?`OffscreenCanvas`:`VideoPlayer`} canvas (${e.width}x${e.height})`);let t=e.captureStream(),n=this.audioPlayer.useMediaStreamDestination().stream,r=[...t.getTracks(),...n.getTracks()];this.logger.info(`Video tracks: ${t.getTracks().length}, Audio tracks: ${n.getTracks().length}`);let i=this.mediaElement.element.srcObject;i instanceof MediaStream&&i.getVideoTracks().forEach(e=>e.stop()),this.mediaElement.element.srcObject=new MediaStream(r),this.isDisconnected=!1}),m(this,`setOffscreenCanvas`,e=>{this.offscreenCanvas!==e&&(this.offscreenCanvas=e,this.reconnectCanvasStream())}),m(this,`reconnectCanvasStream`,()=>{if(!this.isDisconnected){let e=!this.mediaElement.element.paused;this.logger.info(`Reconnecting canvas stream after renderer change`,{wasPlaying:e}),this.connectStreams(),e&&this.mediaElement.tryPlay()}}),m(this,`clearNativeTrackCues`,()=>{if(this.nativeTextTrack){for(let e of this.nativeTrackCues)try{this.nativeTextTrack.removeCue(e)}catch(e){}this.nativeTrackCues=[]}}),m(this,`updateNativeTrackCues`,e=>{let t=this.nativeTextTrack;if(!t)return;let n=e.map(e=>e.text),r=this.nativeTrackCues.map(e=>e.text);if(!(n.length===r.length&&n.every((e,t)=>e===r[t]))){this.clearNativeTrackCues();for(let n of e){let e=new VTTCue(0,999999999,n.text);t.addCue(e),this.nativeTrackCues.push(e)}}}),m(this,`updateVolumeState`,()=>{let e={isMuted:this.muted,volume:this.volume};Rt(e,this.volumeState)||(this.volumeState=e,this.emitter.emit(`volume state`,this.volumeState))}),this.logger=t,this.emitter=e,this.pool=n,this._userProvidedMuted=i,this.offscreenCanvas=c,this.emitter.on(`target buffer time`,this.onTargetBufferTime),this.mediaElement=new el({poster:s,type:o,muted:i,volume:a,autoplay:!1,logger:this.logger.createContext(`MediaElement`)}),this.mediaElement.on(`volume state`,e=>{this.updateVolumeState(),!e.isMuted&&!this.audioPlayer.isContextRunning&&this.activateAudioPlayer().catch(S),e.isMuted||(this._userProvidedMuted=!1)}),this.mediaElement.on(`media element state`,e=>{e===`paused`&&this.audioPlayer.flushBuffer(),this.emitter.emit(`media element state`,e)}),this.audioPlayer=sb.create(this.logger.createContext(`AudioPlayerModule`),r,{muted:!1,reInitWhenStuck:!1,bufferTime:l}),this.audioPlayer.on(`stuck`,()=>{this.isDisconnected=!0}),this.audioPlayer.on(`state change`,e=>{e===`suspended`||e===`interrupted`?this.mediaElement.muted=!0:e===`running`&&(this.mediaElement.muted=this._userProvidedMuted||document.visibilityState===`hidden`),this.updateVolumeState()}),this.videoPlayer=lb.create(this.logger.createContext(`VideoPlayerModule`),this.audioPlayer,this.pool,this.mediaElement.element,()=>this.reconnectCanvasStream(),this.onVideoPlayerError),this.volumeState={volume:this.volume,isMuted:this.muted}}get volume(){return this.mediaElement.volume}set volume(e){this.mediaElement.volume=e}get muted(){return this.mediaElement.muted||this.audioPlayer.muted}set muted(e){let t=this.muted;this._userProvidedMuted=e,this.mediaElement.muted=e,!e&&t&&this.activateAudioPlayer().catch(S)}get currentTime(){return this.audioPlayer.currentTime}set currentTime(e){this.audioPlayer.currentTime=e}get isActivated(){return this.mediaElement.isActivated}set isActivated(e){this.mediaElement.isActivated=e}get seekTime(){return this.mediaElement.seekTime}get totalSeekTime(){return this.mediaElement.totalSeekTime}get isPaused(){return this.mediaElement.isPaused}get isSeeking(){return this.mediaElement.isSeeking}get audioNode(){return this.audioPlayer.audioNode}play(){let e=this._userProvidedMuted;return this.activateAudioPlayer().catch(()=>{e||this.emitter.emit(`needs user input`,{forAudio:!0,forVideo:!1})}),this.mediaElement.play()}pause(){this.mediaElement.pause()}};gb=_b,m(_b,`create`,(e,t,n,r,i)=>new gb(e,t,n,r,i)),H(),h();var vb=()=>e=>yb(e.buffered.start(0),e.buffered.end(e.buffered.length-1)),yb=(e,t)=>n=>n.remove(Math.max(0,e),Math.min(1/0,t)),bb=e=>t=>t.appendBuffer(e),xb=e=>t=>t.changeType(e),Sb=e=>t=>e(t),Cb=class{constructor(e){m(this,`commandQueue`,[]),m(this,`sourceBuffer`,void 0),m(this,`errorCallback`,void 0),m(this,`currentInit`,void 0),m(this,`setErrorCallback`,e=>{this.errorCallback=e}),m(this,`onError`,e=>{var t;(t=this.errorCallback)==null||t.call(this,e)}),m(this,`handleQueue`,()=>{if(!this.sourceBuffer.updating){var e;(e=this.commandQueue.shift())==null||e.execute(this.sourceBuffer)}}),m(this,`appendBuffer`,(e,t)=>new Promise((n,r)=>{if(t&&this.currentInit!==t){let e=new Ot(bb(t),n,r);this.commandQueue.push(e),this.currentInit=t}let i=new Ot(bb(e),n,r);this.commandQueue.push(i),this.handleQueue()})),m(this,`execute`,e=>new Promise((t,n)=>{let r=new Ot(Sb(e),t,n);this.commandQueue.push(r),this.handleQueue()})),m(this,`buffered`,()=>this.sourceBuffer.buffered),m(this,`removeFromMediaSource`,e=>{this.dispose(),e.removeSourceBuffer(this.sourceBuffer)}),m(this,`dispose`,()=>{this.sourceBuffer.removeEventListener(`updateend`,this.handleQueue),this.sourceBuffer.removeEventListener(`error`,this.onError),this.commandQueue=[],this.errorCallback=void 0}),m(this,`changeType`,e=>new Promise((t,n)=>{let r=new Ot(xb(e),t,n);this.commandQueue.push(r),this.handleQueue()})),m(this,`removeBuffer`,(e,t)=>new Promise((n,r)=>{let i=new Ot(yb(e,t),n,r);this.commandQueue.push(i),this.handleQueue()})),m(this,`flush`,()=>new Promise((e,t)=>{let n=new Ot(vb,e,t);this.commandQueue.push(n),this.handleQueue()})),this.sourceBuffer=e,this.sourceBuffer.addEventListener(`updateend`,this.handleQueue),this.sourceBuffer.addEventListener(`error`,this.onError)}};H(),h();var wb=class extends Bt{constructor(){super(),m(this,`MediaSource`,ze()),m(this,`mediaSource`,new this.MediaSource),m(this,`isOpen`,()=>this.mediaSource.readyState===`open`),m(this,`isClosed`,()=>this.mediaSource.readyState===`closed`),m(this,`isEnded`,()=>this.mediaSource.readyState===`ended`),m(this,`createObjectURL`,()=>URL.createObjectURL(this.mediaSource)),m(this,`attach`,e=>{let t=e;if(`srcObject`in t)try{t.srcObject=this.mediaSource}catch(e){if(e instanceof Error&&e.name!==`TypeError`)throw e;t.src=this.createObjectURL()}else e.src=this.createObjectURL()}),m(this,`detach`,e=>{if(this.mediaSource&&this.mediaSource.readyState===`open`)try{this.mediaSource.endOfStream()}catch(e){}e.srcObject&&(e.srcObject=null),e.src!==``&&(URL.revokeObjectURL(e.src),e.removeAttribute(`src`)),e.load()}),m(this,`addSourceBuffer`,e=>new Cb(this.mediaSource.addSourceBuffer(e))),m(this,`removeSourceBuffer`,e=>{e.removeFromMediaSource(this.mediaSource)}),m(this,`endOfStream`,e=>{this.mediaSource.endOfStream(e)}),m(this,`onSourceOpen`,()=>{this.setDurationIfNeeded(),this.emit(`source open`)}),m(this,`onSourceEnded`,()=>this.emit(`source ended`)),m(this,`onSourceClosed`,()=>this.emit(`source close`)),m(this,`setDurationIfNeeded`,()=>{if(Number.isNaN(this.mediaSource.duration)&&this.mediaSource.readyState===`open`){for(let e=0;e<this.mediaSource.sourceBuffers.length;e++){let t=this.mediaSource.sourceBuffers[e];if(t!=null&&t.updating)return}this.mediaSource.duration=1/0}}),this.mediaSource.addEventListener(`sourceopen`,this.onSourceOpen),this.mediaSource.addEventListener(`sourceclose`,this.onSourceClosed),this.mediaSource.addEventListener(`sourceended`,this.onSourceEnded)}};m(wb,`isTypeSupported`,e=>{var t,n;return(t=(n=ze())==null?void 0:n.isTypeSupported(e))==null?!1:t}),xi(),H(),h(),B(),P();var Tb,Eb=class{constructor(){m(this,`initSegments`,new Map),m(this,`set`,(e,t,n)=>{var r;let i=(r=this.initSegments.get(e))==null?new Map:r;i.set(t,n),this.initSegments.set(e,i)}),m(this,`get`,(e,t)=>{var n;return(n=this.initSegments.get(e))==null?void 0:n.get(t)})}};function Db(e,{mediaSource:t,mimeType:n,codec:r}){return z(z({},e),{},{state:`initialized`,mimeType:n,sourceBufferMimeType:n,codec:r,sourceBuffer:t.addSourceBuffer(n),isWorkingOnPendingSamples:!1,sequenceNumber:0,lastBufferCleanupTime:Date.now()})}function Ob({initSegments:e,pendingSamples:t}){return{state:`uninitialized`,initSegments:e==null?new Eb:e,sequenceNumber:0,isWorkingOnPendingSamples:!1,hasFirstSync:t.some(e=>e.isSync),pendingSamples:t==null?[]:t,pendingSamplesOffset:0,consecutiveQuotaExceededErrorCount:0,successfulAppendCalls:0}}var kb=class{constructor(e,t,n){var r=this;m(this,`maxChunkSize`,20),m(this,`minConsecutiveErrorsBeforeEmit`,5),m(this,`maxSecondsInBuffer`,60),m(this,`logger`,void 0),m(this,`timers`,zn.create()),m(this,`emitter`,void 0),m(this,`mediaElement`,void 0),m(this,`mediaSource`,new wb),m(this,`trackContexts`,new Map),m(this,`autoRecoverFromMediaErrors`,!0),m(this,`quotaErrorCount`,0),m(this,`recoveredFromErrorCount`,0),m(this,`sourceOpenStartTime`,Date.now()),m(this,`sourceOpenEndTime`,Date.now()),m(this,`pendingTracksToAddSourceBuffers`,void 0),m(this,`hasAddedInitialPosterFrame`,!0),m(this,`videoKeyframeTimestamps`,[]),m(this,`isReopening`,!1),m(this,`playbackStallCount`,0),m(this,`hasStartedPlayback`,!1),m(this,`isPlaybackStalled`,!1),m(this,`load`,()=>{this.emitter.on(`init segment`,this.init),this.emitter.on(`coded sample`,this.onCodedSample),this.emitter.on(`flush buffers`,this.flushBuffers),this.emitter.on(`fragment`,this.onFragment)}),m(this,`unload`,()=>{this.logger.debug(`Unloading module...`),this.emitter.off(`init segment`,this.init),this.emitter.off(`coded sample`,this.onCodedSample),this.emitter.off(`flush buffers`,this.flushBuffers),this.emitter.off(`fragment`,this.onFragment),this.mediaSource.off(`source ended`,this.onSourceEnded),this.mediaSource.off(`source open`,this.onSourceOpen),this.mediaElement.removeEventListener(`error`,this.onMediaElementError),this.mediaElement.removeEventListener(`waiting`,this.onPlaybackStall),this.mediaElement.removeEventListener(`stalled`,this.onPlaybackStall),this.mediaElement.removeEventListener(`playing`,this.onPlaybackProgress),this.mediaElement.removeEventListener(`pause`,this.onPlaybackPauseOrSeek),this.mediaElement.removeEventListener(`seeking`,this.onPlaybackPauseOrSeek),this.mediaSource.detach(this.mediaElement),this.trackContexts.forEach(e=>{e.state===`initialized`&&e.sourceBuffer.dispose(),e.pendingSamples=[],e.pendingSamplesOffset=0}),this.videoKeyframeTimestamps=[],this.timers.unload(),this.logger.debug(`Unloaded module`)}),m(this,`getStatistics`,()=>{var e,t;let n={quotaErrorCount:this.quotaErrorCount,mediaSourceOpenTime:this.sourceOpenEndTime-this.sourceOpenStartTime,playbackStallCount:this.playbackStallCount,successfulAudioAppendsCalls:(e=this.trackContexts.get(`audio`))==null?void 0:e.successfulAppendCalls,successfulVideoAppendCalls:(t=this.trackContexts.get(`video`))==null?void 0:t.successfulAppendCalls,videoKeyframeIntervalMs:jt(this.videoKeyframeTimestamps),videoRenderer:`MSE`,videoDecoder:`MSE`,audioRenderer:`MSE`,audioDecoder:`MSE`};if(this.mediaElement instanceof HTMLVideoElement){var r,i;let e=(r=(i=this.mediaElement).getVideoPlaybackQuality)==null?void 0:r.call(i);n.totalVideoFrames=e==null?void 0:e.totalVideoFrames,n.droppedVideoFrames=e==null?void 0:e.droppedVideoFrames}return n}),m(this,`flushBuffers`,()=>{this.videoKeyframeTimestamps=[],this.trackContexts.forEach(e=>{e.pendingSamples=[],e.pendingSamplesOffset=0,e.hasFirstSync=!1,e.state!==`uninitialized`&&this.mediaSource.isOpen()&&e.sourceBuffer.removeBuffer(0,1/0).catch(e=>{this.logger.error(`Failed to remove buffer`,e)})})}),m(this,`setTrackContexts`,(e=new Map)=>{this.logger.debug(`setTrackContexts`),[`audio`,`video`].forEach(t=>{var n,r,i;let a=e.get(t),o=(n=a==null?void 0:a.pendingSamples)==null?[]:n,s=a==null?void 0:a.initSegments,c=(r=a==null?void 0:a.pendingSamplesOffset)==null?0:r;for(;c<o.length&&!((i=o[c])!=null&&i.isSync);)c++;let l=Ob({pendingSamples:o,initSegments:s});l.pendingSamplesOffset=c,this.trackContexts.set(t,l)})}),m(this,`resetRemovedTrackContexts`,e=>{let t=new Set(e.map(e=>e.type));this.trackContexts.forEach((e,n)=>{if(t.has(n))return;e.state===`initialized`&&this.mediaSource.isOpen()&&this.mediaSource.removeSourceBuffer(e.sourceBuffer);let r=Ob({pendingSamples:[],initSegments:e.initSegments});this.trackContexts.set(n,r)})}),m(this,`isCurrentTrackContext`,(e,t)=>this.trackContexts.get(e)===t),m(this,`setSourceBuffers`,function(){var e=N(function*(e){if(r.mediaSource.isClosed()){r.pendingTracksToAddSourceBuffers=e;return}r.resetRemovedTrackContexts(e);let t=!0;for(let n of e){let e=r.trackContexts.get(n.type);if(!e||e.state===`uninitialized`||e.sourceBufferMimeType!==n.mimeType){t=!1;break}}if(t){r.logger.debug(`Already setup with the correct mime types`);return}for(let t of e){let e=r.trackContexts.get(t.type);if(e||(e=Ob({pendingSamples:[],initSegments:new Eb}),r.trackContexts.set(t.type,e)),e.state===`initialized`)t.mimeType!==e.sourceBufferMimeType&&(yield e.sourceBuffer.changeType(t.mimeType),e.sourceBufferMimeType=t.mimeType);else{let n=Db(e,{mimeType:t.mimeType,mediaSource:r.mediaSource,codec:t.codec});n.sourceBuffer.setErrorCallback(r.onSourceBufferError(t.type)),r.trackContexts.set(t.type,n)}}});return function(t){return e.apply(this,arguments)}}()),m(this,`getBuffer`,e=>{if(this.mediaSource.isClosed())return[];let t=this.trackContexts.get(e);return!t||t.state===`uninitialized`?[]:this.getBufferedRanges(t.sourceBuffer)}),m(this,`getBufferState`,e=>{let t=this.getCommonBufferedRangesForCurrentTracks();if(t)return{buffered:t,playbackState:this.getPlaybackStateForBufferedRanges(e,t)}}),m(this,`getNextBufferedRangeStart`,e=>{let t=this.getCommonBufferedRangesForCurrentTracks();if(t)return jb(e,t)}),m(this,`getVideoKeyframeTimestamps`,()=>this.videoKeyframeTimestamps),m(this,`init`,({initSegment:e,mimeType:t})=>{this.logger.debug(`Added init segment`,{channel:e.channelId,renditionId:e.renditionId});let n=this.trackContexts.get(e.type);if(!n)throw oi(e.type,e.renditionId);n.state===`initialized`&&(n.mimeType=t);let r=Cc({codec:e.codec,timescale:e.timescale,initData:e.data});r&&n.initSegments.set(e.channelId,e.renditionId,new Uint8Array(r))}),m(this,`append`,function(){var e=N(function*(e,t){let n=e[0];if(!n)return;let i=r.trackContexts.get(n.type),a=i==null?void 0:i.initSegments.get(n.channelId,n.renditionId);if(r.mediaSource.isClosed())return;if(!a)throw ii(n.renditionId,n.channelId);if(!i)throw oi(n.type,n.renditionId);if(i.state===`uninitialized`)throw si(n.type,n.renditionId);if(t){var o;let e=(n.timestamp+((o=n.compositionTimeOffset)==null?0:o))/n.timescale;if(yield i.sourceBuffer.removeBuffer(e,1/0),i.mimeType!==i.sourceBufferMimeType&&i.sourceBuffer.changeType)try{yield i.sourceBuffer.changeType(i.mimeType),i.sourceBufferMimeType=i.mimeType}catch(e){r.logger.warn(`changeType failed`,{from:i.sourceBufferMimeType,to:i.mimeType,error:e})}`fragmented`in n||(yield i.sourceBuffer.appendBuffer(a))}let s=Math.max(0,n.timestamp/n.timescale-r.maxSecondsInBuffer);s>0&&Date.now()-i.lastBufferCleanupTime>1e4&&(i.lastBufferCleanupTime=Date.now(),yield i.sourceBuffer.removeBuffer(0,s+10));try{let t=i.sequenceNumber;if(`fragmented`in n)for(let t of e)`initData`in t&&(yield i.sourceBuffer.appendBuffer(t.data,t.initData));else{let n=Ac(e,t++);yield i.sourceBuffer.appendBuffer(n)}i.sequenceNumber=t,i.consecutiveQuotaExceededErrorCount=0,i.successfulAppendCalls++}catch(e){throw e instanceof DOMException&&e.code===DOMException.QUOTA_EXCEEDED_ERR&&(r.quotaErrorCount++,i.consecutiveQuotaExceededErrorCount++,r.logger.error(`quota exceeded error`,{error:e})),e}});return function(t,n){return e.apply(this,arguments)}}()),m(this,`onFragment`,({fragment:e,mimeType:t,codec:n,channelId:r,renditionId:i})=>{let a=e.mediaType(),o=e.rawBytes(),s=e.header().rawBytes(),c=e.baseMediaDecodeTime(),l=e.timescale(),u=e.duration(),d=a===`video`?e.startsWithKeyframe():!0,f=e.compositionTimeOffset(0);if(a===`text`){this.logger.warn(`Skipping unexpected text fragment`);return}if(!n){this.logger.warn(`Skipping fragment with no codec`);return}let p=this.trackContexts.get(a);if(!p)throw oi(a);p.state===`initialized`&&t&&(p.mimeType=t,p.initSegments.set(r,i,s));let m={fragmented:!0,type:a,data:o,initData:s,timestamp:c,duration:u,timescale:l,channelId:r,renditionId:i,isSync:d,codec:n,fragment:e,compositionTimeOffset:f};this.onCodedSample(m)}),m(this,`onCodedSample`,e=>{if(e.duration===0)return;let t=this.trackContexts.get(e.type);if(!t)throw oi(e.type,e.renditionId);if(!(!t.hasFirstSync&&!e.isSync)){if(this.hasAddedInitialPosterFrame&&e.isSync&&e.type===`video`){this.hasAddedInitialPosterFrame=!1;let n=z({},e);`fragment`in n?(n.fragment=n.fragment.clone(),n.fragment.updateBaseMediaDecodeTime(0),n.data=n.fragment.rawBytes()):n.timestamp=0,t.pendingSamples.push(n)}if(t.hasFirstSync=!0,t.pendingSamples.push(e),e.type===`video`&&e.isSync){var n;let t=(e.timestamp+((n=e.compositionTimeOffset)==null?0:n))/e.timescale*1e3,r=this.videoKeyframeTimestamps[this.videoKeyframeTimestamps.length-1];r!==void 0&&t<r&&(this.videoKeyframeTimestamps=[]),this.videoKeyframeTimestamps.push(t),this.videoKeyframeTimestamps.length>20&&(this.videoKeyframeTimestamps=this.videoKeyframeTimestamps.slice(-20))}t.state!==`uninitialized`&&(t.isWorkingOnPendingSamples||Ib(t,this.append,this.maxChunkSize).catch(n=>{if(t.isWorkingOnPendingSamples=!1,!this.isReopening){if(!this.isCurrentTrackContext(e.type,t)){this.logger.debug(`Suppressing append error from stale track context`,{type:e.type});return}if(n instanceof Error){if(this.logger.error(`append failed`,{message:n.message,name:n.name}),n instanceof DOMException&&n.code===DOMException.QUOTA_EXCEEDED_ERR){if(t.consecutiveQuotaExceededErrorCount>=this.minConsecutiveErrorsBeforeEmit){let r=ai(!1,n,t.consecutiveQuotaExceededErrorCount,e.type);this.emitter.emit(`error`,r)}}else{let r=ai(!1,n,t.consecutiveQuotaExceededErrorCount,e.type);this.emitter.emit(`error`,r)}this.mediaElement.error&&this.onSourceEnded()}}}))}}),m(this,`onSourceBufferError`,e=>()=>{var t;this.logger.warn(`SourceBuffer error`,{trackType:e,mediaElementError:(t=this.mediaElement.error)==null?void 0:t.message})}),m(this,`onSourceOpen`,()=>{this.logger.debug(`source opened`),this.sourceOpenEndTime=Date.now(),this.isReopening=!1,this.pendingTracksToAddSourceBuffers&&(this.setSourceBuffers(this.pendingTracksToAddSourceBuffers),this.pendingTracksToAddSourceBuffers=void 0)}),m(this,`reopenMediaSource`,e=>{this.logger.info(`Re-opening MediaSource`,{reason:e}),this.isReopening=!0,this.recoveredFromErrorCount++;let t=!this.mediaElement.paused,n=[];this.trackContexts.forEach((e,t)=>{e.state===`initialized`&&n.push({type:t,mimeType:e.mimeType,codec:e.codec})}),this.sourceOpenStartTime=Date.now(),this.pendingTracksToAddSourceBuffers=n,this.mediaSource.detach(this.mediaElement),this.setTrackContexts(this.trackContexts),this.mediaSource.attach(this.mediaElement),t&&this.mediaElement.play().catch(S)}),m(this,`onMediaElementError`,()=>{let{error:e}=this.mediaElement;if(!e||this.isReopening)return;let t=ei(/AUDIO_RENDERER/.test(e.message)||!this.autoRecoverFromMediaErrors,e);this.logger.error(`MediaElement error`,{error:t}),this.emitter.emit(`error`,t),t.isFatal()||(this.emitter.emit(`recovered from media error`,{error:t,count:this.recoveredFromErrorCount}),this.reopenMediaSource(`media element error recovery`))}),m(this,`onSourceEnded`,()=>{this.mediaElement.error&&this.onMediaElementError(),this.logger.debug(`source ended`)}),m(this,`onPlaybackProgress`,()=>{this.hasStartedPlayback=!0,this.isPlaybackStalled=!1}),m(this,`onPlaybackPauseOrSeek`,()=>{this.isPlaybackStalled=!1}),m(this,`onPlaybackStall`,e=>{!this.hasStartedPlayback||this.mediaElement.paused||this.mediaElement.seeking||this.isPlaybackStalled||(this.playbackStallCount++,this.isPlaybackStalled=!0,this.logger.info(`Detected playback stall`,{event:e.type,currentTime:this.mediaElement.currentTime*1e3,playbackStallCount:this.playbackStallCount}))}),m(this,`getBufferedRanges`,e=>{let t=[];try{let n=e.buffered();if(!n)return[];for(let e=0;e<n.length;e++)t.push({start:n.start(e)*1e3,end:n.end(e)*1e3});return t}catch(e){return[]}}),m(this,`getInitializedTrackBuffers`,()=>{let e=[];return this.trackContexts.forEach(t=>{t.state!==`uninitialized`&&e.push(this.getBufferedRanges(t.sourceBuffer))}),e}),m(this,`getCommonBufferedRangesForCurrentTracks`,()=>{if(this.mediaSource.isClosed())return;let e=this.getInitializedTrackBuffers();if(e.length!==0)return this.getCommonBufferedRanges(e)}),m(this,`getCommonBufferedRanges`,e=>e.slice(1).reduce((e,t)=>Mb(e,t),e[0]?Array.from(e[0]):[])),m(this,`getPlaybackStateForBufferedRanges`,(e,t)=>Ab(e,t)?`playing`:`buffering`),this.logger=e,this.mediaElement=n,this.emitter=t}};Tb=kb,m(kb,`create`,(e,t,n)=>{let r=new Tb(e,t,n);return r.setTrackContexts(),r.mediaSource.on(`source ended`,r.onSourceEnded),r.mediaSource.on(`source open`,r.onSourceOpen),n.addEventListener(`error`,r.onMediaElementError),n.addEventListener(`waiting`,r.onPlaybackStall),n.addEventListener(`stalled`,r.onPlaybackStall),n.addEventListener(`playing`,r.onPlaybackProgress),n.addEventListener(`pause`,r.onPlaybackPauseOrSeek),n.addEventListener(`seeking`,r.onPlaybackPauseOrSeek),r.mediaSource.attach(n),r});var Ab=(e,t)=>t.some(t=>t.start<=e&&e<t.end),jb=(e,t)=>{for(let r=0;r<t.length;r++){let i=t[r];if(i){if(e<i.start)return i.start;if(i.start<=e&&e<i.end){var n;return(n=t[r+1])==null?void 0:n.start}}}},Mb=(e,t)=>{let n=[],r=0,i=0;for(;r<e.length&&i<t.length;){let a=e[r],o=t[i];if(!a||!o)break;let s=Math.max(a.start,o.start),c=Math.min(a.end,o.end);s<c&&n.push({start:s,end:c}),a.end<=o.end?r++:i++}return n},Nb=(e,t)=>{var n;let r=e.renditionId!==t.renditionId,i=e.channelId!==t.channelId,a=((n=e.timestamp)==null?0:n)>t.timestamp,o=e.type===`video`&&t.type===`video`&&`levelIdc`in e&&`levelIdc`in t&&e.levelIdc!==t.levelIdc,s=!1;return e.type===`video`&&t.type===`video`&&`width`in e&&`width`in t&&(s=t.width!==e.width||t.height!==e.height),i||r||a||s||o},Pb=32,Fb=e=>{let t=e.pendingSamplesOffset;if(t!==0){if(t>=e.pendingSamples.length){e.pendingSamples=[],e.pendingSamplesOffset=0;return}t<Pb||t*2<e.pendingSamples.length||(e.pendingSamples=e.pendingSamples.slice(t),e.pendingSamplesOffset=0)}},Ib=function(){var e=N(function*(e,t,n){for(e.isWorkingOnPendingSamples=!0;e.pendingSamplesOffset<e.pendingSamples.length;){let r=[],i=e.pendingSamplesOffset;for(let t=e.pendingSamplesOffset;t<e.pendingSamples.length;t++){i=t;let a=e.pendingSamples[t],o=e.pendingSamples[t+1];if(a&&(r.push(a),o)){if(Nb(a,o))break;let e=(a.timestamp+a.duration)/a.timescale;if(o.timestamp/o.timescale-e>.1)break}if(t-e.pendingSamplesOffset>=n-1)break}let a=r[0];if(!a)break;yield t(r,e.previousSample?Nb(e.previousSample,a):!0),e.pendingSamplesOffset=i+1,e.previousSample=r[r.length-1],Fb(e)}e.isWorkingOnPendingSamples=!1});return function(t,n,r){return e.apply(this,arguments)}}();H(),h(),P();var Lb,Rb=class{constructor(e,t){var n=this;m(this,`logger`,void 0),m(this,`emitter`,void 0),m(this,`element`,void 0),m(this,`pictureInPictureWindow`,void 0),m(this,`unload`,()=>{this.emitter.off(`add picture in picture listener`,this.onEnablePictureInPicture),this.detachElementListeners()}),m(this,`onEnablePictureInPicture`,e=>{this.detachElementListeners(),this.element=e.element,e.element.addEventListener(`leavepictureinpicture`,this.onLeavePictureInPicture),e.element.addEventListener(`enterpictureinpicture`,this.onEnterPictureInPicture),St(e.element,!0)}),m(this,`getPictureInPictureSize`,()=>this.pictureInPictureWindow),m(this,`isPictureInPictureActive`,()=>this.isWebkitPresentationModeActive()||this.isStandardPictureInPictureActive()),m(this,`isPictureInPictureSupported`,()=>this.isWebkitPresentationModeSupported()||this.isStandardPictureInPictureSupported()),m(this,`requestPictureInPicture`,()=>(this.emitter.emit(`ios-hack: reset size`),this.isStandardPictureInPictureSupported()?this.requestStandardPictureInPicture():this.isWebkitPresentationModeSupported()?this.requestWebkitPresentationMode(`picture-in-picture`):Promise.reject(Error(`Picture in picture is not supported`)))),m(this,`exitPictureInPicture`,()=>this.isStandardPictureInPictureSupported()?this.exitStandardPictureInPicture():this.isWebkitPresentationModeSupported()?this.requestWebkitPresentationMode(`inline`):Promise.reject(Error(`Picture in picture is not supported`))),m(this,`getStatistics`,()=>({isPictureInPictureActive:this.isPictureInPictureActive()})),m(this,`detachElementListeners`,()=>{this.element&&(this.element.removeEventListener(`leavepictureinpicture`,this.onLeavePictureInPicture),this.element.removeEventListener(`enterpictureinpicture`,this.onEnterPictureInPicture),St(this.element,!1))}),m(this,`onLeavePictureInPicture`,()=>{this.pictureInPictureWindow=void 0,this.logger.debug(`Leave picture in picture`),this.emitter.emit(`exit picture in picture`)}),m(this,`onEnterPictureInPicture`,e=>{this.pictureInPictureWindow=vt(e),this.logger.debug(`Enter picture in picture`),this.emitter.emit(`enter picture in picture`,this)}),m(this,`requestStandardPictureInPicture`,N(function*(){if(!n.element)throw Error(`Picture in picture is not supported`);let e=pt(n.element);if(!e)throw Error(`Picture in picture is not supported`);yield e()})),m(this,`exitStandardPictureInPicture`,N(function*(){let e=mt();if(!e)throw Error(`Picture in picture is not supported`);yield e()})),m(this,`isStandardPictureInPictureSupported`,()=>!!this.element&&_t(this.element)),m(this,`isStandardPictureInPictureActive`,()=>!!this.element&&gt()),m(this,`isWebkitPresentationModeActive`,()=>!!this.element&&yt(this.element)===`picture-in-picture`),m(this,`requestWebkitPresentationMode`,function(){var e=N(function*(e){return n.element&&bt(n.element,e),Promise.resolve()});return function(t){return e.apply(this,arguments)}}()),m(this,`isWebkitPresentationModeSupported`,()=>!!this.element&&xt(this.element)),this.emitter=e,this.logger=t,this.emitter.on(`add picture in picture listener`,this.onEnablePictureInPicture)}};Lb=Rb,m(Rb,`create`,(e,t)=>new Lb(e,t)),h();var zb,Bb=class{constructor(e,t,n,r){m(this,`emitter`,void 0),m(this,`logger`,void 0),m(this,`clockSource`,void 0),m(this,`state`,`buffering`),m(this,`bufferFullness`,0),m(this,`targetBufferTime`,void 0),m(this,`lastBufferStateEvent`,`drained`),m(this,`firstFrameTime`,void 0),m(this,`currentTimeIsInRange`,!1),m(this,`needsInputForAudioCount`,0),m(this,`needsInputForVideoCount`,0),m(this,`unload`,()=>{this.emitter.off(`buffer state`,this.onBufferedStateChanged),this.emitter.off(`needs user input`,this.onNeedsUserInput)}),m(this,`setTargetBufferTime`,e=>{this.targetBufferTime=e,this.emitter.emit(`target buffer time`,e)}),m(this,`getTargetBufferTime`,()=>this.targetBufferTime),m(this,`getBufferFullness`,()=>this.bufferFullness),m(this,`getLastBufferStateEvent`,()=>this.lastBufferStateEvent),m(this,`getState`,()=>this.state),m(this,`getFirstFrameTime`,()=>this.firstFrameTime),m(this,`getStatistics`,()=>({bufferTime:this.targetBufferTime,needsInputForAudioCount:this.needsInputForAudioCount,needsInputForVideoCount:this.needsInputForVideoCount})),m(this,`onBufferedStateChanged`,({buffered:e,isPaused:t,playbackState:n})=>{let r=this.clockSource.currentTime,i=e.some(e=>e.start<=r&&r<e.end),a=e[e.length-1],o=a?a.end-a.start>=this.targetBufferTime:!1,s=a?Math.max(0,a.end-r)/this.targetBufferTime:0,c=t?`paused`:n,l=this.state;this.currentTimeIsInRange!==i&&!i?(this.lastBufferStateEvent=`drained`,this.emitter.emit(`buffer state event`,this.lastBufferStateEvent)):i&&o&&this.lastBufferStateEvent===`drained`&&(this.lastBufferStateEvent=`filled`,this.emitter.emit(`buffer state event`,this.lastBufferStateEvent)),c===`playing`&&!this.firstFrameTime&&(this.firstFrameTime=Date.now()),this.currentTimeIsInRange=i,this.state=c,this.bufferFullness=i?s:0,l!==c&&this.emitter.emit(`playback state`,c),this.emitter.emit(`buffer fullness`,this.bufferFullness)}),m(this,`onNeedsUserInput`,({forAudio:e,forVideo:t})=>{e&&this.needsInputForAudioCount++,t&&this.needsInputForVideoCount++}),this.emitter=e,this.logger=t,this.clockSource=n,this.targetBufferTime=r,this.emitter.on(`buffer state`,this.onBufferedStateChanged),this.emitter.on(`needs user input`,this.onNeedsUserInput),this.emitter.emit(`target buffer time`,r)}};zb=Bb,m(Bb,`create`,(e,t,n,r)=>new zb(e,t,n,r)),H(),h();var Vb,Hb=()=>({upgradesFromLevel:[],downgradesFromLevel:[],bufferingRanges:[],activeRanges:[],decodeRate:2**53-1}),Ub=()=>({levels:{},levelDowngrades:[],levelUpgrades:[],bufferFullness:0,general:Hb()}),Wb=class{constructor(e,t,n){m(this,`minBufferFullnessLengthForRegression`,6),m(this,`logger`,void 0),m(this,`emitter`,void 0),m(this,`timers`,zn.create()),m(this,`metrics`,Ub()),m(this,`bufferFullness`,new w(30)),m(this,`bufferFullnessRegression`,void 0),m(this,`currentLevel`,void 0),m(this,`isSuspended`,!1),m(this,`_fatalQosCount`,0),m(this,`targetBufferTime`,0),m(this,`renditionLevelSource`,void 0),m(this,`qualityIndexOrder`,[]),m(this,`hasAsserted`,!1),m(this,`load`,()=>{this.emitter.on(`playback state`,this.onPlaybackState),this.emitter.on(`buffer fullness`,this.onBufferFullness),this.emitter.on(`rendition level changed`,this.onRenditionLevelChanged),this.emitter.on(`video decode rate`,this.onVideoDecodeRate),this.emitter.on(`target buffer time`,this.onTargetBufferTime)}),m(this,`unload`,()=>{this.emitter.off(`playback state`,this.onPlaybackState),this.emitter.off(`buffer fullness`,this.onBufferFullness),this.emitter.off(`rendition level changed`,this.onRenditionLevelChanged),this.emitter.off(`video decode rate`,this.onVideoDecodeRate),this.emitter.off(`target buffer time`,this.onTargetBufferTime),this.suspend()}),m(this,`suspend`,()=>{this.isSuspended=!0,this.timers.unload(),this.stopBuffering(),this.unsetActive()}),m(this,`unsuspend`,()=>{this.isSuspended=!1,this.currentLevel&&this.setActive()}),m(this,`fatalQosGraceTime`,()=>1e4*(this.fatalQosCount+1)),m(this,`incrementFatalQosCount`,()=>{this._fatalQosCount++}),m(this,`getMetrics`,()=>this.metrics),m(this,`getLevelStats`,e=>{var t,n,r,i;let a=((t=(n=e.video)==null?void 0:n.bitRate)==null?0:t)+((r=(i=e.audio)==null?void 0:i.bitRate)==null?0:r);return this.metrics.levels[a]}),m(this,`getBufferFullnessRegression`,()=>this.bufferFullnessRegression),m(this,`getTargetBufferTime`,()=>this.targetBufferTime),m(this,`activeRatios`,()=>{let e=new Map,t=Un(this.metrics.general.activeRanges);if(Object.entries(this.metrics.levels).forEach(([n,r])=>{var i;let a=parseInt(n,10),o=t?Un(r.activeRanges)/t:0,s=this.getQualityIndex(a).toString();e.set(s,((i=e.get(s))==null?0:i)+o)}),!this.hasAsserted){let t=e.size?Math.abs(Array.from(e.values()).reduce((e,t)=>e+t,0)-1)<=.02:!0;t||(this.hasAsserted=!0,console.assert(t,`Active ratios should be close to 1 - actual: ${Array.from(e.values()).reduce((e,t)=>e+t,0)}`))}return e}),m(this,`bufferingRatios`,()=>{let e=new Map,t=Un(this.metrics.general.bufferingRanges);if(Object.entries(this.metrics.levels).forEach(([n,r])=>{var i;let a=parseInt(n,10),o=t?Un(r.bufferingRanges)/t:0,s=this.getQualityIndex(a).toString();e.set(s,((i=e.get(s))==null?0:i)+o)}),!this.hasAsserted){let t=Array.from(e.values()).reduce((e,t)=>e+t,0)<=1;t||(this.hasAsserted=!0,console.assert(t,`Buffering ratios should be less than 1 - actual: ${Array.from(e.values()).reduce((e,t)=>e+t,0)}`))}return e}),m(this,`bufferingEventsLast`,e=>this.metrics.general.bufferingRanges.filter(t=>t.start>=Date.now()-e).length),m(this,`timeSpentBufferingLast`,e=>Wn(this.metrics.general.bufferingRanges,e)),m(this,`timeSpentActiveLast`,e=>Wn(this.metrics.general.activeRanges,e)),m(this,`timeSpentPlayingInAtLeastLevelRatio`,e=>{var t,n,r,i;let a=this.timeSpentBuffering(),o=this.timeActive(),s=this.bufferingRatios(),c=this.activeRatios(),l=((t=(n=e.video)==null?void 0:n.bitRate)==null?0:t)+((r=(i=e.audio)==null?void 0:i.bitRate)==null?0:r),u=a/o;return Object.keys(this.metrics.levels).map(e=>parseInt(e,10)).filter(e=>e>=l).reduce((e,t)=>{var n,r;let i=this.getQualityIndex(t).toString();return((n=c.get(i))==null?0:n)-((r=s.get(i))==null?0:r)*u+e},0)}),m(this,`timeSpentBuffering`,()=>Un(this.metrics.general.bufferingRanges)),m(this,`timeActive`,()=>Un(this.metrics.general.activeRanges)),m(this,`getStatistics`,()=>{let e=this.timeSpentBuffering(),t=this.timeActive(),n=this.metrics.general.bufferingRanges.length,r=this.activeRatios(),i=t/6e4,a=t>0?e/t:0,o=Math.max(i,1),s=i>0?n/o:0,c=[...r].reduce((e,[t,n])=>e+parseInt(t,10)*n,0),l=6e4,u=this.timeSpentActiveLast(l),d=this.timeSpentBufferingLast(l),f=u>0?d/u:0,p=this.metrics.general.upgradesFromLevel.length+this.metrics.general.downgradesFromLevel.length,m=i>0?p/o:0,h=n>0?e/n:0;return{timeSpentBuffering:e,bufferingEventsCount:n,timeSpentRatio:[...r].reduce((e,[t,n])=>(e[t]=n,e),{}),fatalQosCount:this.fatalQosCount,bufferingRatio:a,bufferingEventsPerMinute:s,averageRenditionIndex:c,bufferingRatioPerMinute:f,renditionChangesPerMinute:m,timePerBufferingEvent:h}}),m(this,`onRenditionLevelChanged`,e=>{var t,n,r,i,a,o,s,c;let l=((t=(n=e.from)==null||(n=n.video)==null?void 0:n.bitRate)==null?0:t)+((r=(i=e.from)==null||(i=i.audio)==null?void 0:i.bitRate)==null?0:r),u=((a=(o=e.to)==null||(o=o.video)==null?void 0:o.bitRate)==null?0:a)+((s=(c=e.to)==null||(c=c.audio)==null?void 0:c.bitRate)==null?0:s);this.logger.info(`rendition level changed`,{fromLevel:l,toLevel:u}),this.metrics.general.activeRanges.length===0&&this.setActive(),e.from&&e.to&&(l<u?this.metrics.general.upgradesFromLevel.push(Date.now()):this.metrics.general.downgradesFromLevel.push(Date.now()));let d=!1;if(e.from){var f;let e=(f=this.metrics.levels[l])==null?Hb():f;l<u?e.upgradesFromLevel.push(Date.now()):e.downgradesFromLevel.push(Date.now()),Vn(e.activeRanges);let t=e.bufferingRanges[e.bufferingRanges.length-1];d=!!t&&!t.end,Vn(e.bufferingRanges),this.metrics.levels[l]=e}if(e.to){var p;let e=(p=this.metrics.levels[u])==null?Hb():p;Hn(e.activeRanges),d&&Hn(e.bufferingRanges),this.metrics.levels[u]=e,this.currentLevel=u}}),m(this,`onBufferFullness`,e=>{this.bufferFullness.push(e),this.metrics.bufferFullness=e,this.bufferFullness.items().length>=this.minBufferFullnessLengthForRegression&&(this.bufferFullnessRegression=this.calculateLinearRegression())}),m(this,`onPlaybackState`,e=>{switch(this.logger.info(`Playback state`,{state:e,currentLevel:this.currentLevel}),e){case`playing`:this.stopBuffering();break;case`buffering`:this.isSuspended||this.startBuffering();break}}),m(this,`onVideoDecodeRate`,e=>{var t;if(this.metrics.general.decodeRate=e,!this.currentLevel)return;let n=this.metrics.levels[(t=this.currentLevel)==null?0:t];n&&(n.decodeRate=e)}),m(this,`onTargetBufferTime`,e=>{this.targetBufferTime=e}),m(this,`calculateLinearRegression`,()=>Nt(this.bufferFullness.items().map((e,t)=>({x:t,y:e})))),m(this,`stopBuffering`,()=>{if(this.currentLevel){let e=this.metrics.levels[this.currentLevel];e&&Vn(e.bufferingRanges)}Vn(this.metrics.general.bufferingRanges)}),m(this,`startBuffering`,()=>{if(this.currentLevel){let e=this.metrics.levels[this.currentLevel];e&&Hn(e.bufferingRanges)}Hn(this.metrics.general.bufferingRanges)}),m(this,`unsetActive`,()=>{if(this.currentLevel){let e=this.metrics.levels[this.currentLevel];e&&Vn(e.activeRanges)}Vn(this.metrics.general.activeRanges)}),m(this,`getQualityIndex`,e=>{if(!this.qualityIndexOrder.length){var t,n;let e=((t=(n=this.renditionLevelSource)==null?void 0:n.getRenditionLevels())==null?[]:t).map(e=>{var t,n,r,i;return((t=(n=e.video)==null?void 0:n.bitRate)==null?0:t)+((r=(i=e.audio)==null?void 0:i.bitRate)==null?0:r)}).filter(e=>e>0);this.qualityIndexOrder=[...new Set(e)].sort((e,t)=>t-e)}let r=this.qualityIndexOrder.indexOf(e);return r===-1&&(this.qualityIndexOrder.push(e),this.qualityIndexOrder.sort((e,t)=>t-e),r=this.qualityIndexOrder.indexOf(e)),r}),this.logger=t,this.emitter=e,this.renditionLevelSource=n}get fatalQosCount(){return this._fatalQosCount}setActive(){if(this.currentLevel){let e=this.metrics.levels[this.currentLevel];e&&Hn(e.activeRanges)}Hn(this.metrics.general.activeRanges)}};Vb=Wb,m(Wb,`create`,(e,t,n)=>new Vb(e,t,n)),H(),h();var Gb,Kb=class{constructor(e,t){m(this,`renditions`,new Map),m(this,`renditionLevels`,[]),m(this,`languages`,[]),m(this,`emitter`,void 0),m(this,`subscriptionSource`,void 0),m(this,`renditionLevelChangeCount`,0),m(this,`unload`,()=>{this.emitter.off(`renditions`,this.onRenditions),this.emitter.off(`subscription changed`,this.onSubscriptionChanged)}),m(this,`getRenditionLevels`,e=>e?this.createRenditionLevels(e):this.renditionLevels),m(this,`getRenditionLevel`,e=>{var t;let n=e==null?this.getCurrentSubscription():e,r=e?this.createRenditionLevels(e):this.renditionLevels;if(!n.video)return r.length?r[0]:void 0;let i=n.video.bitRate||2**53-1,a=n.video.width||2**53-1,o=n.video.height||2**53-1;return(t=r.filter(e=>e.video&&n.video?e.video.bitRate<=i&&e.video.width<=a&&e.video.height<=o:!0).pop())==null?r[0]:t}),m(this,`setRenditions`,(e,t)=>{this.renditions.set(e,t)}),m(this,`getLanguages`,()=>this.languages),m(this,`getVideoRendition`,(e,t=this.getCurrentSubscription().channelId)=>{let n=this.getRendition(e,t);if(n&&ur(n))return n}),m(this,`getAudioRenditions`,e=>{let t=this.renditions.get(e);return t==null?void 0:t.filter(e=>dr(e))}),m(this,`getVideoRenditions`,e=>{let t=this.renditions.get(e);return t==null?void 0:t.filter(e=>ur(e))}),m(this,`getAudioRendition`,(e,t=this.getCurrentSubscription().channelId)=>{let n=this.getRendition(e,t);if(n&&dr(n))return n}),m(this,`getRendition`,(e,t=this.getCurrentSubscription().channelId)=>{var n;return(n=this.renditions.get(t))==null?void 0:n.find(t=>t.id===e)}),m(this,`getStatistics`,()=>{var e,t,n,r,i,a,o,s,c,l;let u=this.getRenditionLevel();return{videoCodec:u==null||(e=u.video)==null?void 0:e.codec,audioCodec:u==null||(t=u.audio)==null?void 0:t.codec,videoRenditionId:u==null||(n=u.video)==null?void 0:n.id,audioRenditionId:u==null||(r=u.audio)==null?void 0:r.id,videoWidth:u==null||(i=u.video)==null?void 0:i.width,videoHeight:u==null||(a=u.video)==null?void 0:a.height,expectedVideoBitRate:u==null||(o=u.video)==null?void 0:o.bitRate,expectedAudioBitRate:u==null||(s=u.audio)==null?void 0:s.bitRate,frameRate:u==null||(c=u.video)==null?void 0:c.frameRate,language:u==null||(l=u.audio)==null?void 0:l.language,renditionLevelChangeCount:this.renditionLevelChangeCount}}),m(this,`onRenditions`,e=>{let t=this.subscriptionSource.getCurrentSubscription();this.renditions.set(e.channelId,e.renditions),this.updateRenditionLevels({to:t,from:t})}),m(this,`onSubscriptionChanged`,e=>{this.updateRenditionLevels(e)}),m(this,`updateRenditionLevels`,({to:e,from:t})=>{var n;let{channelId:r,initiator:i}=e,a=this.getRenditionLevel(t),o=new Set;((n=this.renditions.get(r))==null?[]:n).filter(e=>e.codec!==`webvtt`).forEach(e=>e.language?o.add(e.language):void 0),this.languages=Array.from(o),this.renditionLevels=this.createRenditionLevels(e);let s=this.getRenditionLevel(e);Rt(a,s)||(this.renditionLevelChangeCount++,this.emitter.emit(`rendition level changed`,{to:s,from:a,reason:i?`manual`:`abr`}))}),m(this,`createRenditionLevels`,e=>{var t;let{video:n,audio:r,channelId:i}=e,a=(t=this.renditions.get(i))==null?[]:t,o=a.filter(ur).filter(e=>n&&e.codec===n.codec),s=a.filter(dr).filter(e=>r&&e.codec===r.codec&&e.language===r.language),c=Math.max(o.length,s.length),l=[];for(let e=0;e<c;e++){let t=o[Math.min(o.length-1,e)],n=s[Math.min(s.length-1,e)];l.push({audio:n,video:t})}return l}),m(this,`getCurrentSubscription`,()=>this.subscriptionSource.getCurrentSubscription()),this.subscriptionSource=t,this.emitter=e,this.emitter.on(`renditions`,this.onRenditions),this.emitter.on(`subscription changed`,this.onSubscriptionChanged)}};Gb=Kb,m(Kb,`create`,(e,t)=>new Gb(e,t)),H(),h();var qb,Jb=e=>JSON.parse(JSON.stringify(e)),Yb=1e4,Xb=class{constructor(e,t,n){m(this,`logger`,void 0),m(this,`timers`,new zn),m(this,`emitter`,void 0),m(this,`targetSubscription`,void 0),m(this,`currentSubscription`,void 0),m(this,`_isSwitchingSubscription`,!1),m(this,`pendingSubscriptionTimeoutId`,void 0),m(this,`burstMs`,0),m(this,`unload`,()=>{this.logger.debug(`Unloading module...`),this.timers.unload(),this.emitter.off(`subscription changed`,this.onSubscriptionChanged),this.logger.debug(`Unloaded module`)}),m(this,`isSwitchingSubscription`,()=>this._isSwitchingSubscription),m(this,`getTargetSubscription`,()=>this.targetSubscription),m(this,`getCurrentSubscription`,()=>this.currentSubscription),m(this,`enableBurst`,e=>{this.burstMs=e}),m(this,`setSize`,e=>{this.targetSubscription.video.width=e.width,this.targetSubscription.video.height=e.height,this.scheduleSubscriptionChange()}),m(this,`setVideoConstraint`,e=>{this.targetSubscription.video=e,this.scheduleSubscriptionChange()}),m(this,`setAudioConstraint`,e=>{this.targetSubscription.audio=e,this.scheduleSubscriptionChange()}),m(this,`setVideoBitRate`,e=>{this.targetSubscription.video.bitRate=e,this.scheduleSubscriptionChange()}),m(this,`setAudioBitRate`,e=>{this.targetSubscription.audio.bitRate=e,this.scheduleSubscriptionChange()}),m(this,`setChannelId`,e=>{this.targetSubscription.channelId=e,this.scheduleSubscriptionChange()}),m(this,`setLanguage`,e=>{this.targetSubscription.audio.language=e,this.scheduleSubscriptionChange()}),m(this,`setVideoCodec`,e=>{this.targetSubscription.video.codec=e,this.scheduleSubscriptionChange()}),m(this,`setAudioCodec`,e=>{this.targetSubscription.audio.codec=e,this.scheduleSubscriptionChange()}),m(this,`setBurst`,e=>{e?this.targetSubscription.burstMs=e:delete this.targetSubscription.burstMs}),m(this,`isNewSubscription`,()=>{let e=[`burstMs`,`meta`,`initiator`,`channelGroupId`];return!Rt(Fn(this.currentSubscription,e),Fn(this.targetSubscription,e))}),m(this,`onSubscriptionChanged`,({to:e,reset:t})=>{this.logger.debug(`onSubscriptionChanged`,{to:e,reset:t}),t?this.targetSubscription=Jb(this.currentSubscription):this.currentSubscription=Jb(e),this._isSwitchingSubscription=this.isNewSubscription()}),m(this,`scheduleSubscriptionChange`,()=>{this.targetSubscription=Jb(this.targetSubscription),this._isSwitchingSubscription=this.isNewSubscription();let e=this.currentSubscription.channelId,t=this.targetSubscription.channelId,n=e!==t;this._isSwitchingSubscription&&(n&&this.burstMs?this.setBurst(this.burstMs):this.setBurst(0),this.pendingSubscriptionTimeoutId&&(this.timers.clearTimeout(this.pendingSubscriptionTimeoutId),this.pendingSubscriptionTimeoutId=void 0),n&&this.timers.setTimeout(()=>{this.currentSubscription.channelId===e&&this.targetSubscription.channelId===t&&(this.logger.warn(`Channel switch timeout`,t),this.targetSubscription=Jb(this.currentSubscription),this.emitter.emit(`channel switch timeout`,t))},Yb),this.pendingSubscriptionTimeoutId=this.timers.setTimeout(()=>this.emitter.emit(`send signal`,{type:`subscribe`,subscription:this.getTargetSubscription()}),0))}),this.logger=e,this.targetSubscription=t,this.currentSubscription=Jb(t),this.emitter=n,this.emitter.on(`subscription changed`,this.onSubscriptionChanged)}};qb=Xb,m(Xb,`create`,(e,t,n)=>new qb(e,n,t)),H(),h(),B();var Zb,Qb=5e3,$b=()=>Ze()||Je(),ex=e=>e&&$b()?100:0,tx=e=>t=>t>e,nx={seek:{toleranceMs:200,toleranceMaxMs:2500,toleranceMultiplierStep:1,backoffEveryN:2,cooldownMs:1e3,timeoutMs:5e3,aheadToleranceMs:150,keyframeSearchBeforeMs:50,keyframeSearchAfterMs:100},timeshift:{enabled:!1,toleranceMs:50,toleranceMaxMs:600,backoffEveryN:3},playbackRate:{enabled:!1,startDiff:60,stopDiff:40,maxDiff:300,speed:.02,cooldownMs:2e3},backoff:{enabled:!0,decayEnabled:!0,decayCooldownMultiplier:3,decayCheckInterval:15e3}},rx=class{get driftSamplesToAverage(){return this._driftSamplesToAverage}set driftSamplesToAverage(e){this._driftSamplesToAverage=e,this.driftSamples=new w(e)}constructor(e,t,n,r,i,a=!0){m(this,`emitter`,void 0),m(this,`logger`,void 0),m(this,`playbackSource`,void 0),m(this,`bufferSource`,void 0),m(this,`keyframeTimestamps`,new w(10)),m(this,`lastSeekTime`,Date.now()),m(this,`lastAdjustmentTime`,Date.now()),m(this,`lastDecayCheckTime`,Date.now()),m(this,`config`,void 0),m(this,`state`,void 0),m(this,`allowTimeshiftOnAudio`,!1),m(this,`syncInfoToleranceMaxMs`,150),m(this,`syncInfoToleranceStep`,20),m(this,`seekOvershoot`,void 0),m(this,`timers`,zn.create()),m(this,`rtt`,0),m(this,`channelSyncInfo`,new Map),m(this,`seekAdjustmentCount`,0),m(this,`timeshiftAdjustmentCount`,0),m(this,`syncInfoCorrectionCount`,0),m(this,`playbackRateAdjustmentCount`,0),m(this,`lastPlaybackRateChangeTime`,0),m(this,`seekAdjustmentTimestamps`,[]),m(this,`timeshiftAdjustmentTimestamps`,[]),m(this,`_driftSamplesToAverage`,5),m(this,`driftSamples`,new w(this._driftSamplesToAverage)),m(this,`timestampOffset`,void 0),m(this,`currentChannelId`,void 0),m(this,`highestSeenTimestamps`,new Map),m(this,`isSuspended`,!1),m(this,`isSyncAdjustmentActivated`,!1),m(this,`queuedTimeshift`,!1),m(this,`playbackState`,void 0),m(this,`hasPerformedRecoverySeekInCurrentRecoveryState`,!1),m(this,`shouldSeekAfterBuffering`,!1),m(this,`usesMse`,void 0),m(this,`load`,()=>{this.timers.setInterval(this.onSync,100)}),m(this,`unload`,()=>{this.logger.debug(`Unloading module...`),this.emitter.off(`rtt`,this.updateRtt),this.emitter.off(`playback state`,this.onPlaybackState),this.timers.unload(),this.logger.debug(`Unloaded module`)}),m(this,`suspend`,()=>{this.isSuspended=!0}),m(this,`unsuspend`,()=>{this.resetSyncState(),this.isSuspended=!1}),m(this,`deactivateSyncAdjustments`,()=>{this.isSyncAdjustmentActivated=!1}),m(this,`activateSyncAdjustments`,()=>{this.tryApplySyncInfo(0),this.lastSeekTime=Date.now(),this.isSyncAdjustmentActivated=!0}),m(this,`reset`,()=>{this.logger.info(`Reset sync state`),this.currentChannelId=void 0,this.timestampOffset=void 0,this.resetSyncState(),this.highestSeenTimestamps.clear()}),m(this,`getTimeshiftOffset`,()=>{var e;return(e=this.timestampOffset)==null?0:e}),m(this,`getCurrentChannelId`,()=>this.currentChannelId),m(this,`resetSyncState`,()=>{this.state.seekToleranceMultiplier=1,this.state.timeshiftToleranceMultiplier=1,this.seekAdjustmentTimestamps=[],this.timeshiftAdjustmentTimestamps=[],this.driftSamples.clear(),this.playbackState=void 0,this.hasPerformedRecoverySeekInCurrentRecoveryState=!1,this.clearRecoverySeekFlags()}),m(this,`getEffectiveSeekToleranceMs`,()=>this.config.timeshift.enabled?this.config.seek.toleranceMs*2:this.config.seek.toleranceMs),m(this,`getLiveEdgeTime`,e=>{let t=this.channelSyncInfo.get(e);if(!t)return;let n=Date.now()-t.localTimestamp;return t.timestamp+n}),m(this,`getLiveEdgeTimeLatencyAdjusted`,e=>{let t=this.getLiveEdgeTime(e);if(t)return t+this.rtt/2}),m(this,`getWallclockTime`,e=>{let t=this.channelSyncInfo.get(e);if(!t)return;let n=Date.now()-t.localTimestamp;return t.wallclockTime+n}),m(this,`getWallclockTimeLatencyAdjusted`,e=>{let t=this.getWallclockTime(e);if(t)return t+this.rtt/2}),m(this,`processSample`,e=>{var t;if(!e.channelId)throw Error(`Sample must be assigned to a channel`);this.currentChannelId||(this.currentChannelId=e.channelId),this.timestampOffset||(this.timestampOffset=e.timestamp/e.timescale*1e3-Qb);let n=e.type===`video`&&e.isSync;if(this.currentChannelId!==e.channelId){let t=2**53-1;console.assert(this.highestSeenTimestamps.size!==0,`no known timestamps`),this.highestSeenTimestamps.forEach(e=>{t=Math.min(t,e)});let n=e.timestamp/e.timescale*1e3;this.currentChannelId=e.channelId,this.timestampOffset=n-t}else (n||this.allowTimeshiftOnAudio)&&this.tryTimeshiftSync();let r=this.timestampOffset*e.timescale/1e3;return e.timestamp-=r,n&&this.keyframeTimestamps.push(e.timestamp/e.timescale*1e3),this.highestSeenTimestamps.set(e.type,Math.max((t=this.highestSeenTimestamps.get(e.type))==null?0:t,e.timestamp/e.timescale*1e3)),e}),m(this,`processFragment`,(e,t)=>{var n;this.currentChannelId||(this.currentChannelId=e);let r=t.mediaType();if(!r)throw Error(`Fragment must have a media type`);this.timestampOffset||(this.timestampOffset=t.baseMediaDecodeTime()/t.timescale()*1e3-Qb);let i=t.mediaType()===`video`&&t.startsWithKeyframe();if(this.currentChannelId!==e){let t=2**53-1;console.assert(this.highestSeenTimestamps.size!==0,`no known timestamps`),this.highestSeenTimestamps.forEach(e=>{t=Math.min(t,e)}),this.currentChannelId=e}else (i||this.allowTimeshiftOnAudio)&&this.tryTimeshiftSync();let a=this.timestampOffset*t.timescale()/1e3;return t.updateBaseMediaDecodeTime(t.baseMediaDecodeTime()-a),i&&this.keyframeTimestamps.push(t.baseMediaDecodeTime()/t.timescale()*1e3),this.highestSeenTimestamps.set(r,Math.max((n=this.highestSeenTimestamps.get(r))==null?0:n,t.baseMediaDecodeTime()/t.timescale()*1e3)),t}),m(this,`forceSeek`,()=>{this.logger.debug(`Forcing seek`,{amount:this.serverCurrentTime-this.playbackSource.currentTime}),this.clearRecoverySeekFlags(),this.playbackSource.currentTime=this.serverCurrentTime}),m(this,`forceTimeshift`,()=>{this.queuedTimeshift=!0}),m(this,`setPlaybackRateAdjustmentEnabled`,e=>{this.config.playbackRate.enabled=e}),m(this,`getStatistics`,()=>{let e=this.driftSamples.items(),t=e.length>0?At(e.map(Math.abs)):0;return{drift:this.drift,seekAdjustmentCount:this.seekAdjustmentCount,timeshiftAdjustmentCount:this.timeshiftAdjustmentCount,seekTime:this.playbackSource.seekTime,totalSeekTime:this.playbackSource.totalSeekTime,seekToleranceMultiplier:this.state.seekToleranceMultiplier,currentSeekToleranceMs:this.currentSeekToleranceMs(),currentAheadToleranceMs:this.currentAheadToleranceMs(),isPlaybackRateAdjustmentEnabled:this.config.playbackRate.enabled,playbackRate:this.playbackSource.playbackRate||1,playbackRateAdjustmentCount:this.playbackRateAdjustmentCount,averageDrift:t}}),m(this,`updateRtt`,e=>{this.rtt=e}),m(this,`isPlaybackSourceReadyToSeek`,()=>!this.isSeeking()&&this.isSeekCooldownExpired()&&this.isSyncAdjustmentActivated),m(this,`isPlaybackSourceReady`,()=>!this.isSeeking()&&this.isSyncAdjustmentActivated),m(this,`isSeeking`,()=>this.playbackSource.isSeeking?!this.isSeekTimeoutExpired():!1),m(this,`isAllowedToSync`,()=>this.isPlaybackSourceReadyToSeek()&&!!this.currentChannelId&&!this.isSuspended&&!this.playbackSource.isPaused),m(this,`isAllowedToSyncIgnoringCooldown`,()=>this.isPlaybackSourceReady()&&!!this.currentChannelId&&!this.isSuspended&&!this.playbackSource.isPaused),m(this,`isSeekCooldownExpired`,()=>Date.now()-this.lastSeekTime>this.config.seek.cooldownMs),m(this,`isSeekTimeoutExpired`,()=>Date.now()-this.lastSeekTime>this.config.seek.timeoutMs),m(this,`currentTimeshiftToleranceMs`,()=>Math.min(this.config.timeshift.toleranceMs*this.state.timeshiftToleranceMultiplier,this.config.timeshift.toleranceMaxMs)),m(this,`currentSeekToleranceMs`,()=>Math.min(this.state.seekToleranceMultiplier*this.getEffectiveSeekToleranceMs(),this.config.seek.toleranceMaxMs)),m(this,`currentEmergencySeekToleranceMs`,()=>Math.max(this.currentSeekToleranceMs()+this.getEffectiveSeekToleranceMs(),this.bufferSource.getTargetBufferTime())),m(this,`currentAheadToleranceMs`,()=>{let e=Math.max(this.config.seek.aheadToleranceMs*this.state.seekToleranceMultiplier,400),t=this.playbackSource.seekTime>500?e:this.config.seek.aheadToleranceMs;return Math.min(t,this.bufferSource.getTargetBufferTime()/2)}),m(this,`tryDecayMultipliers`,()=>{if(!this.config.backoff.decayEnabled)return;let e=Date.now();if(e-this.lastDecayCheckTime<this.config.backoff.decayCheckInterval)return;this.lastDecayCheckTime=e;let t=this.seekAdjustmentTimestamps.length>0?Math.max(...this.seekAdjustmentTimestamps):0,n=this.timeshiftAdjustmentTimestamps.length>0?Math.max(...this.timeshiftAdjustmentTimestamps):0,r=e-Math.max(t,n,this.lastAdjustmentTime),i=Math.max(this.state.seekToleranceMultiplier,this.state.timeshiftToleranceMultiplier),a=this.config.seek.timeoutMs*this.config.backoff.decayCooldownMultiplier*i;if(r<a)return;let o=!1;if(this.state.seekToleranceMultiplier>1){let e=Math.max(1,this.state.seekToleranceMultiplier-.5);e!==this.state.seekToleranceMultiplier&&(this.logger.info(`Decaying seek tolerance multiplier`,{from:this.state.seekToleranceMultiplier,to:e,timeSinceLastAdjustment:r,requiredStabilityMs:a}),this.state.seekToleranceMultiplier=e,o=!0)}if(this.state.timeshiftToleranceMultiplier>1){let e=Math.max(1,this.state.timeshiftToleranceMultiplier-.5);e!==this.state.timeshiftToleranceMultiplier&&(this.logger.info(`Decaying timeshift tolerance multiplier`,{from:this.state.timeshiftToleranceMultiplier,to:e,timeSinceLastAdjustment:r,requiredStabilityMs:a}),this.state.timeshiftToleranceMultiplier=e,o=!0)}if(o){let t=e-a*2;this.seekAdjustmentTimestamps=this.seekAdjustmentTimestamps.filter(e=>e>t),this.timeshiftAdjustmentTimestamps=this.timeshiftAdjustmentTimestamps.filter(e=>e>t)}}),m(this,`applyBackoff`,()=>{if(this.config.backoff.enabled&&(this.lastAdjustmentTime=Date.now(),this.seekAdjustmentCount>0&&this.seekAdjustmentCount%this.config.seek.backoffEveryN===0)){let e=this.state.seekToleranceMultiplier,t=this.config.seek.toleranceMaxMs/this.getEffectiveSeekToleranceMs();this.state.seekToleranceMultiplier=Math.min(this.state.seekToleranceMultiplier+this.config.seek.toleranceMultiplierStep,t),e!==this.state.seekToleranceMultiplier&&this.logger.info(`Backoff: Increasing seek tolerance multiplier`,{from:e,to:this.state.seekToleranceMultiplier,currentSeekToleranceMs:this.currentSeekToleranceMs()})}}),m(this,`tryPlaybackRateSync`,e=>{if(!this.config.playbackRate.enabled)return!1;let t=this.playbackSource.playbackRate!==1,n=Math.abs(e),r=t&&n<this.config.playbackRate.stopDiff,i=!t&&n>=this.config.playbackRate.startDiff;if(n>this.config.playbackRate.maxDiff)return t&&(this.playbackSource.playbackRate=1,this.lastPlaybackRateChangeTime=Date.now()),!1;let a=Date.now(),o=a-this.lastPlaybackRateChangeTime>=this.config.playbackRate.cooldownMs;if(r&&o)return this.playbackSource.playbackRate=1,this.lastPlaybackRateChangeTime=a,this.logger.info(`Resetting playback rate to 1`,{drift:e}),!0;if(i&&o){let t=e>0?1+this.config.playbackRate.speed:1-this.config.playbackRate.speed;return this.playbackSource.playbackRate=t,this.lastPlaybackRateChangeTime=a,this.playbackRateAdjustmentCount++,this.logger.info(`Adjusting playback rate`,{drift:e,targetRate:t}),!0}if(t&&n>=this.config.playbackRate.stopDiff&&n<=this.config.playbackRate.maxDiff){let t=e>0?1+this.config.playbackRate.speed:1-this.config.playbackRate.speed;return this.playbackSource.playbackRate!==t&&o&&(this.playbackSource.playbackRate=t,this.lastPlaybackRateChangeTime=a,this.logger.info(`Changing playback rate direction`,{drift:e,targetRate:t})),!0}return!t&&n<this.config.playbackRate.startDiff?!0:t}),m(this,`tryTimeshiftSync`,()=>{var e;if(!this.config.timeshift.enabled||this.hasPendingRecoverySeek()||!this.isAllowedToSync()||this.playbackSource.playbackRate!==1)return;let t=(e=this.drift)==null?0:e;this.driftSamples.push(t);let n=At(this.driftSamples.items());if(this.queuedTimeshift&&n>0){this.queuedTimeshift=!1,this.applyTimeshift(n);return}if(n>=this.getEffectiveSeekToleranceMs()||n<this.currentTimeshiftToleranceMs())return;let r=Date.now()-this.config.seek.timeoutMs*this.state.timeshiftToleranceMultiplier,i=this.timeshiftAdjustmentTimestamps.filter(tx(r)).length;if(i&&this.state.timeshiftToleranceMultiplier>2){this.logger.debug(`Too many timeshifts within sliding window`,{timeshiftCooldownThreshold:r,recentTimeshiftCount:i});return}this.applyTimeshift(n)}),m(this,`clearRecoverySeekFlags`,()=>{this.shouldSeekAfterBuffering=!1}),m(this,`hasActiveRecoveryTrigger`,()=>this.playbackState===`buffering`),m(this,`hasPendingRecoverySeek`,()=>(this.refreshRecoverySeekState(),this.getRecoverySeekReason()!==void 0)),m(this,`refreshRecoverySeekState`,()=>{var e,t;if(!this.hasActiveRecoveryTrigger()||!this.usesMse||this.hasPerformedRecoverySeekInCurrentRecoveryState){this.clearRecoverySeekFlags();return}let n=(e=(t=this.bufferSource).getNextBufferedRangeStart)==null?void 0:e.call(t,this.playbackSource.currentTime);return this.shouldSeekAfterBuffering=n!==void 0,n}),m(this,`getRecoverySeekReason`,()=>{if(this.shouldSeekAfterBuffering)return`buffering`}),m(this,`shouldSkipNormalSeek`,e=>e<0&&-e<this.currentAheadToleranceMs()||e>0&&e<this.currentSeekToleranceMs()||Math.abs(e)<1?!0:!this.isAllowedToSync()),m(this,`shouldDeferRecoverySeek`,(e,t)=>t!==void 0&&t>e),m(this,`buildSeekPlan`,(e,t)=>{var n,r;let i=this.playbackSource.currentTime+e,a=t?(n=(r=this.bufferSource).getNextBufferedRangeStart)==null?void 0:n.call(r,this.playbackSource.currentTime):void 0,o=i+this.seekOvershoot,s=this.playbackSource.currentTime+this.seekOvershoot,c=t?Math.max(o,s):o;if(t&&this.shouldDeferRecoverySeek(c,a)){this.logger.debug(`Deferring recovery seek until expected playhead reaches next buffered range start`,{currentTime:this.playbackSource.currentTime,desiredCurrentTime:c,nextBufferedRangeStart:a,recoverySeekReason:t});return}let l=t&&a?a:i,u=this.findKeyframeCloseToTimestamp(l);if(!(!t&&!u&&!this.keyframeTimestamps.isEmpty()))return{closestKeyFrame:u,keyframeSearchTime:l,nextBufferedRangeStart:a,targetCurrentTime:u&&u>c?a?Math.max(a,u):u:c}}),m(this,`applySeek`,(e,t)=>{let n=this.playbackSource.seekTime,r=this.buildSeekPlan(e,t);r&&(this.logger.info(`Adjusting for drift using seek`,{drift:e,currentTime:this.playbackSource.currentTime,recoverySeekReason:t,keyframeSearchTime:r.keyframeSearchTime,closestKeyFrame:r.closestKeyFrame,nextBufferedRangeStart:r.nextBufferedRangeStart,targetCurrentTime:r.targetCurrentTime,seekTime:n,rtt:this.rtt,seekToleranceMultiplier:this.state.seekToleranceMultiplier}),this.lastSeekTime=Date.now(),t&&(this.hasPerformedRecoverySeekInCurrentRecoveryState=!0),this.clearRecoverySeekFlags(),this.driftSamples.clear(),this.seekAdjustmentTimestamps.push(this.lastSeekTime),this.seekAdjustmentCount++,this.playbackSource.currentTime=r.targetCurrentTime+Math.min(n,this.bufferSource.getTargetBufferTime()),this.applyBackoff())}),m(this,`applyTimeshift`,e=>{var t;let n=(t=e==null?this.drift:e)==null?0:t;if(!this.timestampOffset)return;let r=n;if(this.logger.info(`Adjusting for drift using timeshift`,{drift:n,syncAmount:r,currentTime:this.playbackSource.currentTime,rtt:this.rtt,timeshiftToleranceMultiplier:this.state.timeshiftToleranceMultiplier}),this.timestampOffset+=r,this.lastSeekTime=Date.now(),this.lastAdjustmentTime=Date.now(),!this.playbackSource.isPaused&&(this.driftSamples.clear(),this.timeshiftAdjustmentTimestamps.push(this.lastSeekTime),this.timeshiftAdjustmentCount++,this.config.backoff.enabled&&this.timeshiftAdjustmentCount>0&&this.timeshiftAdjustmentCount%this.config.timeshift.backoffEveryN===0)){let e=this.state.timeshiftToleranceMultiplier,t=this.config.timeshift.toleranceMaxMs/this.config.timeshift.toleranceMs;this.state.timeshiftToleranceMultiplier=Math.min(this.state.timeshiftToleranceMultiplier+1,t),e!==this.state.timeshiftToleranceMultiplier&&this.logger.info(`Backoff: Increasing timeshift tolerance multiplier`,{from:e,to:this.state.timeshiftToleranceMultiplier,currentTimeshiftToleranceMs:this.currentTimeshiftToleranceMs()})}}),m(this,`onSync`,()=>{var e;this.tryDecayMultipliers(),this.refreshRecoverySeekState();let t=(e=this.drift)==null?0:e,n=this.getRecoverySeekReason(),r=n!==void 0;if(!r&&!this.isAllowedToSyncIgnoringCooldown()||r&&(this.isSeeking()||!this.currentChannelId||this.isSuspended||this.playbackSource.isPaused)||(this.driftSamples.push(t),!this.isSeekCooldownExpired())||!r&&this.driftSamples.items().length<this.driftSamplesToAverage&&Math.abs(t)<2e3)return;let i=r?t:At(this.driftSamples.items());if(!r&&this.tryPlaybackRateSync(i)||!r&&this.shouldSkipNormalSeek(i))return;let a=Date.now()-this.config.seek.timeoutMs*this.state.seekToleranceMultiplier,o=this.seekAdjustmentTimestamps.filter(tx(a)).length,s=this.currentEmergencySeekToleranceMs(),c=i>0&&i>=s;if(o&&this.state.seekToleranceMultiplier>2&&!r&&!c){this.logger.debug(`Too many seek adjustments within sliding window`,{seekCooldownThreshold:a,recentSeekCount:o});return}o&&(r||c)&&this.logger.debug(`Bypassing recent seek limit`,{drift:i,recoverySeekReason:n,emergencySeekToleranceMs:s,recentSeekCount:o,seekToleranceMultiplier:this.state.seekToleranceMultiplier}),this.applySeek(i,n)}),m(this,`onPlaybackState`,e=>{let t=this.playbackState===`buffering`;if(this.playbackState=e,e!==`buffering`){this.hasPerformedRecoverySeekInCurrentRecoveryState=!1,this.clearRecoverySeekFlags();return}if(t||(this.hasPerformedRecoverySeekInCurrentRecoveryState=!1),this.refreshRecoverySeekState()!==void 0){this.onSync();return}}),m(this,`findKeyframeCloseToTimestamp`,e=>{let t=this.keyframeTimestamps.items();for(let n of t){let t=n>=e-this.config.seek.keyframeSearchBeforeMs,r=n<=e+this.config.seek.keyframeSearchAfterMs;if(t&&r)return n}}),this.logger=t,this.emitter=e,this.playbackSource=n,this.bufferSource=r,this.usesMse=a,this.seekOvershoot=ex(a),this.config={seek:z({},nx.seek),timeshift:z({},nx.timeshift),playbackRate:z({},nx.playbackRate),backoff:z({},nx.backoff)},this.config.timeshift.enabled=i,a||(this.config.seek.toleranceMs=50,this.config.timeshift.toleranceMs=20,this.config.seek.aheadToleranceMs=40),this.state={seekToleranceMultiplier:1,timeshiftToleranceMultiplier:1},typeof window<`u`&&window.location.search.includes(`playbackRateAdjustmentEnabled`)&&(this.config.playbackRate.enabled=!0),this.emitter.on(`rtt`,this.updateRtt),this.emitter.on(`playback state`,this.onPlaybackState),this.logger.info(`SyncModule initialized`,{config:this.config})}updateChannelSyncInfo(e,t){let n=Date.now(),r=this.channelSyncInfo.get(e),i=this.getLiveEdgeTime(e);if(this.isSuspended)return;if(!r||!i){this.logger.info(`Initial timing info`,{syncInfo:t}),this.channelSyncInfo.set(e,z(z({},t),{},{localTimestamp:n,timeDifferences:new w(12)}));return}let a=t.wallclockTime-r.wallclockTime,o=t.timestamp-r.timestamp,s=n-r.localTimestamp,c=o-s;if(r.timeDifferences.push(c),this.logger.debug(`Timing info`,{rtt:this.rtt,channelId:e,syncInfo:t,localTimestamp:n,diffFromEstimated:c,timestampDelta:o,wallclockDelta:a,localWallclockDelta:s}),Math.abs(c)>=Math.max(this.bufferSource.getTargetBufferTime()*2,3e3)){this.logger.info(`Resetting sync info`,{diffFromEstimated:c}),this.channelSyncInfo.set(e,z(z({},t),{},{localTimestamp:n,timeDifferences:new w(r.timeDifferences.maxSize+1)})),this.currentChannelId&&this.currentChannelId===e&&(this.reset(),this.emitter.emit(`channel reset`));return}r.timeDifferences.items().length<3||this.tryApplySyncInfo(Math.min(this.syncInfoToleranceMaxMs,this.syncInfoCorrectionCount*this.syncInfoToleranceStep))}tryApplySyncInfo(e){let t=this.getCurrentChannelId();if(!t)return;let n=this.channelSyncInfo.get(t);if(!n)return;let r=Mt(n.timeDifferences.items());Math.abs(r.average)>e&&(this.logger.info(`Adjusting sync info`,z(z({},r),{},{tolerance:e})),n.timestamp+=r.average,this.syncInfoCorrectionCount++,n.timeDifferences.clear())}get serverCurrentTime(){return this.channelCurrentTime-this.getTimeshiftOffset()}get channelCurrentTime(){let e=this.getCurrentChannelId();if(!e)return 0;let t=this.getLiveEdgeTime(e);return t?t-this.bufferSource.getTargetBufferTime():0}get drift(){return this.serverCurrentTime-this.playbackSource.currentTime}};Zb=rx,m(rx,`create`,(e,t,n,r,i,a=!0)=>new Zb(e,t,n,r,i,a)),xi(),H(),B(),h(),P();var ix,ax={enabled:!0,interval:3e4,includeErrors:!0,includeEvents:!0,includeStats:!0,maxRetries:10,maxErrorReports:50,maxEvents:50},ox=(e,t)=>z(z({},t),{},{type:e,timestamp:new Date().toISOString(),discriminator:`web`}),sx=class{constructor(e,t,n,r){var i=this;m(this,`logger`,void 0),m(this,`timers`,new zn),m(this,`emitter`,void 0),m(this,`options`,void 0),m(this,`parentContext`,void 0),m(this,`unsentLines`,new w(100)),m(this,`retries`,0),m(this,`errorCount`,0),m(this,`eventCount`,0),m(this,`statsCount`,0),m(this,`unload`,()=>{this.logger.debug(`Unloading module...`),window.removeEventListener(`error`,this.onError),window.removeEventListener(`unhandledrejection`,this.onRejection),this.timers.unload(),this.emitter.off(`error`,this.addError),this.emitter.off(`visibilitystate`,this.onVisibilityChange),this.emitter.off(`pagehide`,this.onPageHide),this.emitter.off(`telemetry event`,this.addEvent),this.addStats({isFinal:!0,initiator:`unload`}),this.send(`beacon`),this.logger.debug(`Unloaded module`)}),m(this,`load`,()=>{window.addEventListener(`error`,this.onError),window.addEventListener(`unhandledrejection`,this.onRejection),this.emitter.on(`error`,this.addError),this.emitter.on(`visibilitystate`,this.onVisibilityChange),this.emitter.on(`pagehide`,this.onPageHide),this.emitter.on(`telemetry event`,this.addEvent),this.timers.setInterval(()=>{this.addStats(),this.send(`fetch`)},this.options.interval)}),m(this,`addStats`,({isFinal:e,initiator:t}={isFinal:!1,initiator:`interval`},n={})=>{if(!this.options.includeStats)return;let r=this.parentContext.getStatistics(),i=ox(`stats`,z(z(z({},n),r),{},{isFinal:e,initiator:t,count:this.statsCount++}));this.unsentLines.push(i)}),m(this,`addEvent`,e=>{if(!this.options.includeEvents||this.eventCount>this.options.maxEvents)return;let t=ox(`event`,z(z({},this.parentContext.getStatistics()),e));this.eventCount++,this.unsentLines.push(t)}),m(this,`getStatistics`,()=>({errorCount:this.errorCount})),m(this,`send`,function(){var e=N(function*(e){if(i.options.enabled&&!(i.retries>=i.options.maxRetries)&&!i.unsentLines.isEmpty()){i.logger.debug(`Sending telemetry`,{lines:i.unsentLines.items()});try{let t=i.unsentLines.items().map(e=>JSON.stringify(e)).reverse().join(`
1223
- `);switch(e){case`beacon`:navigator.sendBeacon(i.options.url,t);break;default:i.parentContext.connectionState===`connected`?i.emitter.emit(`send signal`,{type:`telemetry`,body:t}):yield wl(new URL(i.options.url),{body:t,headers:{"Content-Type":`text/plain`}});break}i.retries=0,i.unsentLines.clear()}catch(e){i.retries++}}});return function(t){return e.apply(this,arguments)}}()),m(this,`onVisibilityChange`,e=>{e===`hidden`&&(this.addStats({isFinal:!0,initiator:`visibilitychange`}),this.send(`beacon`))}),m(this,`onPageHide`,e=>{this.addStats({isFinal:!0,initiator:`pagehide`},{persisted:e.persisted}),this.send(`beacon`)}),m(this,`onRejection`,e=>this.addError(e.reason)),m(this,`onError`,e=>this.addError(e.error)),m(this,`addError`,e=>{let{includeErrors:t,maxErrorReports:n}=this.options;if(t&&e instanceof U){if(this.errorCount++,this.errorCount>n)return;let t=this.parentContext.getStatistics();this.unsentLines.push(ox(`error`,z(z({},t),e.toStringifiable())))}}),this.logger=e,this.emitter=t,this.options=z(z({},ax),n),this.parentContext=r}};ix=sx,m(sx,`create`,(e,t,n,r)=>new ix(e,t,n,r)),H(),h();var cx,lx=class{constructor(e,t,n){m(this,`logger`,void 0),m(this,`element`,void 0),m(this,`documentState`,void 0),m(this,`timers`,new zn),m(this,`unload`,()=>{this.timers.unload()}),m(this,`unpause`,()=>{this.element.userHasProvidedInput&&this.element.isPaused&&this.documentState.isVisible&&this.documentState.isOnline&&(this.logger.debug(`Unpause video`),this.element.tryPlay())}),this.logger=e,this.element=t,this.documentState=n,this.timers.setInterval(this.unpause,100)}};cx=lx,m(lx,`create`,(e,t,n)=>new cx(e,t,n)),h();var ux=[`minBufferTime`,`maxBufferTime`,`burstEnabled`,`sizeBasedResolutionCapEnabled`,`separateVideoSocketEnabled`,`webcodecsHardwareAcceleration`,`offscreenCanvasEnabled`,`videoCodecs`];function dx(e){return ux.includes(e)}var fx=class{constructor(e){m(this,`options`,void 0),m(this,`overrides`,new Map),this.options=e}getOptions(){return this.options}addOverrides(e,t){this.overrides.set(e,t)}set(e,t){this.options[e]=t}get(e,t){if(t&&dx(e)){var n;let r=(n=this.overrides.get(t))==null?void 0:n[e];if(r!==void 0)return r}return this.options[e]}getOverride(e,t){var n;return(n=this.overrides.get(t))==null?void 0:n[e]}};B();var px=6,mx=e=>{let t=[e],n=0,r=0,i=!1,a=(e,t)=>{var i,a;if(e.flags&&Ic(e.flags)){var o;n=(o=e.compositionTimeOffset)==null?0:o}e.timestamp+=n,e.compositionTimeOffset=((i=e.compositionTimeOffset)==null?0:i)-n;let s=e.timestamp/e.timescale,c=t.flags&&Ic(t.flags)?(a=t.compositionTimeOffset)==null?0:a:n,l=(t.timestamp+c)/t.timescale,u=Math.max(0,Math.round((l-s)*e.timescale));return u>0&&(r=u),z(z({},e),{},{duration:u>0?u:r})};return(e,n=!1)=>{if(e.flags&&Ic(e.flags)&&n&&(i=!i),!(n&&t.length<px&&i)&&t.length>0){i=!1;let n=e;for(let e=t.length-1;e>0;e--){let r=t[e];if(!r||!n)break;r.timestamp>=n.timestamp?t.splice(e,1):n=r}let r=t.map((n,r)=>a(n,t[r+1]||e));return t=[e],r}return t.push(e),[]}},hx=[`mse`,`wasm`],gx=e=>e==null?hx:e,_x=e=>{if(!e)return!1;let t=e.headers&&Object.keys(e.headers).length>0,n=e.queryParams&&Object.keys(e.queryParams).length>0;return!!(t||n)},vx=(e,t,n)=>{if(_x(n))return`mse`;let r=gx(e);for(let e of r)switch(e){case`mse`:if(t)return`mse`;break;case`webcodecs`:if(typeof VideoDecoder<`u`)return`webcodecs`;break;case`wasm`:return`wasm`}return`wasm`};B();var yx=(e,t,n)=>{if(ur(t))return z(z({},e),{},{type:`video`,codec:t.codec,isSync:Ic(e.flags),data:e.payload,duration:0,width:t.width,height:t.height},n);if(t.codec===`webvtt`)throw Error(`WebVTT is not supported`);return z(z({},e),{},{type:`audio`,channels:t.channels,sampleRate:t.sampleRate,codec:t.codec,language:t.language,isSync:Ic(e.flags),data:e.payload,duration:0})};xi(),B();var bx=(e,t)=>e&&typeof e==`object`&&t in e,xx=e=>!(typeof e!=`object`||!bx(e,`channelId`)||typeof e.channelId!=`string`||!bx(e,`url`)||typeof e.url!=`string`||e.channelId.length===0||e.url.length===0),Sx=e=>{if(!xx(e))throw new U(`Invalid options`,{isFatal:!0,code:`invalid_options`});let t=z({},e);return Object.keys(t).forEach(e=>{let n=t;n[e]===void 0&&delete n[e]}),t},Cx=e=>{if(typeof e!=`object`||!e)throw Error(`not an object`);if(!(`video`in e))throw Error(`missing video in subscription`);if(!(`audio`in e))throw Error(`missing audio in subscription`);if(!(`channelId`in e))throw Error(`missing channelId`);return!0};Na(),Pc(),my(),h(),P();var wx=class{constructor(e){var t=this;m(this,`cache`,new Map),m(this,`inFlight`,new Map),m(this,`checkVideoSupport`,function(){var e=N(function*(e){var n;if(typeof VideoDecoder>`u`)return!1;let r=VideoDecoder.isConfigSupported;if(typeof r!=`function`)return!0;if(e.codec===`h265`&&!e.codecString)return t.logger.warn(`Missing HEVC codec string for WebCodecs support check. Falling back to optimistic support.`,{renditionId:e.id}),!0;let i=(n=e.codecString)==null?e.codec===`av1`?`av01.0.08M.08`:`avc1.42E01E`:n,a=`video|${i}|${e.width}x${e.height}`;return t.check(a,()=>r({codec:i,optimizeForLatency:!0,codedWidth:e.width,codedHeight:e.height}),!0,{message:`Failed to check WebCodecs rendition support. Falling back to optimistic support check.`,codec:i,renditionId:e.id})});return function(t){return e.apply(this,arguments)}}()),m(this,`checkAudioSupport`,function(){var e=N(function*(e){var n;if(typeof AudioDecoder>`u`)return!1;let r=AudioDecoder.isConfigSupported;if(typeof r!=`function`)return!0;let i=(n=e.codecString)==null?py(e.codec):n,a=`audio|${i}|${e.sampleRate}|${e.channels}`,o=e.codec===`aac`?Ma(e.channels,e.sampleRate):e.codec===`opus`?Mc(e.channels,e.sampleRate):void 0;return t.check(a,()=>r({codec:i,sampleRate:e.sampleRate,numberOfChannels:e.channels,description:o}),!1,{message:`Failed to check WebCodecs audio rendition support. Treating rendition as unsupported.`,codec:i,renditionId:e.id})});return function(t){return e.apply(this,arguments)}}()),m(this,`check`,(e,t,n,r)=>{let i=this.cache.get(e);if(i!==void 0)return Promise.resolve(i);let a=this.inFlight.get(e);if(a)return a;let o=Promise.resolve().then(t).then(({supported:t})=>(this.cache.set(e,t),t)).catch(t=>(this.logger.warn(r.message,{codec:r.codec,renditionId:r.renditionId,error:t}),this.cache.set(e,n),n)).finally(()=>{this.inFlight.delete(e)});return this.inFlight.set(e,o),o}),this.logger=e}};xi(),H(),h(),E(),B(),P(),M(),A();var Tx=new WeakMap,Ex=new WeakMap,Dx=new WeakMap,Ox=class e extends Bt{constructor(t){var n,r;super(),n=this,m(this,`pictureInPicture`,void 0),m(this,`drm`,void 0),m(this,`browser`,nt()),m(this,`options`,void 0),m(this,`element`,void 0),m(this,`playbackSource`,void 0),m(this,`emitter`,new Bt),m(this,`logger`,void 0),m(this,`modules`,void 0),m(this,`clientIp`,void 0),m(this,`sessionId`,void 0),m(this,`clientId`,$n()),m(this,`_channels`,[]),m(this,`createdAt`,Date.now()),m(this,`offscreenCanvasElement`,void 0),m(this,`webCodecsRenditionSupport`,void 0),m(this,`hasCalledConnect`,!1),m(this,`latestEmittedLanguages`,[]),m(this,`wakeLock`,void 0),m(this,`pool`,new ie(e.MAX_POOL_SIZE)),m(this,`userAgentInformation`,new Zn),m(this,`encryptedMediaExtensions`,void 0),T(this,Tx,0),T(this,Ex,[]),m(this,`sampleProcessingSesssions`,new Map),m(this,`sizes`,new Map),m(this,`isSuspended`,!0),m(this,`disconnectTimeout`,void 0),m(this,`offscreenSubtitleInterval`,void 0),T(this,Dx,void 0),m(this,`attach`,e=>{var t;(t=this.wakeLock)==null||t.attach(e),e.appendChild(this.element)}),m(this,`setElement`,e=>{this.element!==e&&(this.element=e,this.modules.constraintCap.setElement(e))}),m(this,`getOptions`,()=>this.options.getOptions()),m(this,`getThumbnailUrl`,()=>{let e=this.options.get(`edgeUrl`)||this.options.get(`url`);e=e.replace(`wss://`,`https://`),e=e.replace(`ws://`,`http://`),e=e.endsWith(`/`)?e.slice(0,-1):e;let t=window.devicePixelRatio||1,n=Math.round(window.innerWidth*t),r=Math.round(window.innerHeight*t),i=this.options.get(`authenticationToken`),a=i?`&auth.token=${i}`:``;return`${e}/api/thumbnail?channelId=${this.channelId}${a}&width=${n}&height=${r}`}),m(this,`updateAuthenticationToken`,e=>{this.logger.debug(`Got new auth token`,{token:e}),this.options.set(`authenticationToken`,e),this.emitter.emit(`send signal`,{type:`refresh auth`,token:e})}),m(this,`connect`,()=>{this.hasCalledConnect||(this.play(),this._connect())}),m(this,`_connect`,()=>{if(!this.hasCalledConnect){if(this.hasCalledConnect=!0,Object.values(this.modules).forEach(e=>{e&&`load`in e&&e.load()}),this.unsuspend(),this.playbackSource instanceof el){var e,t;(e=(t=this.playbackSource).load)==null||e.call(t)}this.modules.connection.connect()}}),m(this,`getCastOptions`,()=>({url:this.options.get(`url`),channelId:this.options.get(`channelId`),channelGroupId:this.options.get(`channelGroupId`),authenticationToken:this.options.get(`authenticationToken`),language:this.options.get(`language`),logLevel:this.options.get(`logLevel`),minBufferTime:this.options.get(`minBufferTime`),tags:this.options.get(`tags`),ownerSessionId:this.sessionId,edgeUrl:this.options.get(`edgeUrl`),media:this.options.get(`media`),drm:this.options.get(`drm`)})),m(this,`onConnectInfo`,function(){var e=N(function*(e){var t;n.sessionId=$n();let r=n.modules.subscription.getTargetSubscription(),i=e.channels.find(e=>e.channelId===r.channelId);if(n.emitter.emit(`connect info`,e),`timeshift`in e&&e.timeshift?(e.timeshift,n._channels=e.channels.map(t=>z(z({},t),{},{timeshift:e.timeshift})),n.emit(`timeshift info`,e.timeshift)):n._channels=e.channels,n.updateTextTracks((t=i==null?void 0:i.renditions)==null?[]:t),!n.textTrack&&n.options.get(`textTrack`)&&(n.textTrack=n.options.get(`textTrack`)),yield Promise.all(e.channels.map(function(){var e=N(function*(e){e.overrides&&n.options.addOverrides(e.channelId,e.overrides),e.renditions=yield n.filterRenditions(e.renditions),n.modules.renditions.setRenditions(e.channelId,e.renditions)});return function(t){return e.apply(this,arguments)}}())),!i)throw pi(`external`);let a=n.options.getOverride(`sizeBasedResolutionCapEnabled`,n.channelId);a!==void 0&&(n.modules.constraintCap.sizeBasedResolutionCapEnabled=a);let o=n.options.getOverride(`minBufferTime`,n.channelId),s=n.options.getOverride(`maxBufferTime`,n.channelId);if((o||s)&&(n.modules.bufferTime.updateConfig({minBufferTime:n.options.get(`minBufferTime`,n.channelId),maxBufferTime:n.options.get(`maxBufferTime`,n.channelId)}),n.targetBufferTime=n.options.get(`minBufferTime`,n.channelId)),n.options.get(`burstEnabled`,n.channelId)&&n.modules.subscription.enableBurst(n.targetBufferTime),n.emit(`is live`,i.isLive),!i.isLive)throw Error(`Waiting for channel to go live`);n.patchSubscription(i,n.modules.connection.estimatedBandwidth),yield n.initializeDecodingModule(),n.resetModules(),n.emit(`rendition levels`,n.modules.renditions.getRenditionLevels()),n.emit(`channels`,n.channels),n.emitLanguagesIfChanged(),n.sampleProcessingSesssions.clear();let c=n.options.get(`burstEnabled`,n.channelId);return{video:n.targetSubscription.video,audio:n.targetSubscription.audio,burstMs:c?n.targetBufferTime:void 0,sessionId:n.sessionId,clientId:n.clientId,channelId:n.channelId,channelGroupId:n.options.get(`channelGroupId`),authToken:n.options.get(`authenticationToken`),textTrack:n.textTrack}});return function(t){return e.apply(this,arguments)}}()),m(this,`emitLanguagesIfChanged`,()=>{let e=this.modules.renditions.getLanguages(),t=this.latestEmittedLanguages;e.length===t.length&&e.every(e=>t.includes(e))||(this.logger.debug(`Emitting new languages`,{currentLanguages:e}),this.latestEmittedLanguages=e,this.emit(`languages`,this.latestEmittedLanguages))}),m(this,`updateTextTracks`,e=>{let t=e.filter(e=>e.codec===`webvtt`);t.forEach(e=>{if(!j(Ex,this).find(t=>t.language===e.language)){if(this.modules.canvasModule){let t=this.modules.canvasModule.textTracks.addTextTrack(e.kind,e.label||e.language||``,e.language||``);j(Ex,this).push(t)}else if(this.mediaElement instanceof HTMLVideoElement){let t=this.mediaElement.addTextTrack(e.kind,e.label||e.language,e.language);j(Ex,this).push(t)}}});for(let e of j(Ex,this))t.find(t=>t.language===e.language)?e.mode===`disabled`&&(e.mode=`hidden`):e.mode=`disabled`;this.emit(`text tracks`,this.textTracks)}),m(this,`cleanupTextTracks`,(e=this.currentTime-2e4)=>{j(Ex,this).forEach(t=>{if(t.cues)for(let n of t.cues)n.endTime*1e3<e-2e3&&t.removeCue(n)})}),m(this,`filterRenditions`,function(){var e=N(function*(e){let t=yield Promise.all(e.map(function(){var e=N(function*(e){if(dr(e)){var t;return n.willUseMediaSource()&&!((t=ze())!=null&&t.isTypeSupported(fr(e)))?!1:n.willUseMediaSource()||e.codec===`opus`?!0:n.isWebCodecsAudioAvailable(n.channelId)?n.webCodecsRenditionSupport.checkAudioSupport(e):!1}if(!ur(e)||!n.isSupportedVideoCodecProfile(e.codec,e.codecString))return!1;if(!n.willUseMediaSource())return n.isWebCodecsVideoAvailable(n.channelId)?n.webCodecsRenditionSupport.checkVideoSupport(e):!0;let r=yield tl(e);if(!r.supported)return!1;if(e.codec===`av1`&&!r.smooth&&!r.powerEfficient)return n.logger.debug(`discarding av1 rendition, neither smooth nor power efficient`,{codecString:e.codecString,width:e.width,height:e.height,bitRate:e.bitRate,capabilities:r}),!1;let i=n.options.getOverride(`maxVideoBitRate`,n.channelId);return i?i>=e.bitRate:!0});return function(t){return e.apply(this,arguments)}}())),r=e.filter((e,n)=>t[n]),i=e.filter((e,n)=>!t[n]);i.length>0&&n.logger.debug(`unsupported renditions filtered out`,{renditions:i.map(e=>z(z({codec:e.codec,codecString:e.codecString},ur(e)?{width:e.width,height:e.height}:{}),{},{bitRate:e.bitRate}))});let a=r.filter(e=>e.codec===`h264`).reverse()[0],o=r.filter(e=>e.codec===`av1`).reverse()[0];return a&&o&&a.width>o.width&&a.height>o.height&&(n.logger.debug(`discarding av1 renditions, h264 ladder has higher resolution`,{bestH264:{width:a.width,height:a.height,bitRate:a.bitRate},bestAV1:{width:o.width,height:o.height,bitRate:o.bitRate}}),r=r.filter(e=>e.codec!==`av1`)),n.logger.debug(`supported renditions`,{renditions:r.map(e=>z(z({codec:e.codec,codecString:e.codecString},ur(e)?{width:e.width,height:e.height}:{}),{},{bitRate:e.bitRate}))}),r});return function(t){return e.apply(this,arguments)}}()),m(this,`patchSubscription`,(e,t)=>{let n=this.options.get(`maxInitialBitRate`),r=Math.min(this.options.get(`maxVideoBitRate`),n,t,this.targetSubscription.video.bitRate),i=Math.min(this.options.get(`maxAudioBitRate`),n,t,this.targetSubscription.audio.bitRate),a=this.options.get(`media`)===`audio`?[]:this.options.get(`videoCodecs`,this.channelId),o=this.supportedAudioCodecs(),s=e.renditions.filter(dr),c=e.renditions.filter(ur),l=o.find(e=>s.find(t=>t.codec===e)!==void 0),u=a.find(e=>c.find(t=>t.codec===e)!==void 0),d=s.map(e=>e.language);if(this.logger.debug(`supported and selected codecs`,{audioCodecs:o,videoCodecs:a,audioCodec:l,videoCodec:u}),u){let e=this.options.get(`maxSize`);this.modules.subscription.setVideoConstraint(z({codec:u,bitRate:this.abrEnabled?r:this.options.get(`maxVideoBitRate`)},e))}l&&(this.modules.subscription.setAudioConstraint({codec:l,bitRate:this.abrEnabled?i:this.options.get(`maxAudioBitRate`),language:this.options.get(`language`)}),(!d.includes(this.options.get(`language`))||this.language===void 0)&&this.modules.subscription.setLanguage(d[0])),this.alignSizeAndBitRate(this.targetSubscription);let f=this.modules.subscription.getTargetSubscription();this.emitter.emit(`subscription changed`,{to:f,from:this.modules.subscription.getCurrentSubscription()})}),m(this,`isSupportedVideoCodecProfile`,(e,t)=>{if(this.willUseMediaSource()){let n=ze();return n?n.isTypeSupported(fr({codec:e,codecString:t})):!0}if(this.isWebCodecsVideoAvailable(this.channelId)&&(e===`h264`||e===`h265`||e===`av1`))return!0;if(e===`h264`){let e=!!(t!=null&&t.startsWith(`avc1.42`)),n=!!(t!=null&&t.startsWith(`avc1.66.`));return e||n}return!(e===`h265`||e===`av1`)}),m(this,`supportedAudioCodecs`,()=>{if(this.options.get(`media`)===`video`)return[];let e=[];return(this.willUseMediaSource()||this.isWebCodecsAudioAvailable(this.channelId))&&e.push(`aac`),(this.browser.supportsMp4Opus&&this.options.get(`mseOpusEnabled`)||!this.willUseMediaSource())&&e.push(`opus`),this.isWebCodecsAudioAvailable(this.channelId)&&e.push(`mp3`),e}),m(this,`initializeDecodingModule`,N(function*(){var e;let t=n.currentRenditionLevel,r=[];if(!t)throw new U(`No currentRenditionLevel`,{code:`no_current_rendition_level`,isFatal:!1});if(t!=null&&t.video&&r.push({type:`video`,mimeType:fr(t.video),codec:t.video.codec}),t!=null&&t.audio&&r.push({type:`audio`,codec:t.audio.codec,mimeType:fr(t.audio),channels:t.audio.channels,sampleRate:t.audio.sampleRate}),r.length===0)throw new U(`Can't initialize decoding module without tracks`,{code:`no_tracks`,isFatal:!1});if(n.willUseMediaSource()&&n.element instanceof HTMLMediaElement){var i;n.emitter.emit(`flush buffers`),yield(i=n.modules.mseModule)==null?void 0:i.setSourceBuffers(r);return}let a=n.shouldUseWebCodecs(n.channelId),o=n.options.get(`webcodecsHardwareAcceleration`,n.channelId),s=n.shouldUseOffscreenCanvas(n.channelId)&&a,c=typeof OffscreenCanvas<`u`&&typeof HTMLCanvasElement<`u`&&typeof HTMLCanvasElement.prototype.transferControlToOffscreen==`function`,l=s&&c&&typeof VideoDecoder<`u`,u,d;if(l)try{d=document.createElement(`canvas`),_r(d),u=d.transferControlToOffscreen()}catch(e){u=void 0,d=void 0,n.logger.warn(`Failed to enable OffscreenCanvas; falling back to main thread rendering`,{error:e})}else s&&n.logger.warn(`OffscreenCanvas requested but not supported; falling back to main thread rendering`);let f=yield Wy.create(n.emitter,n.logger.createContext(`DecoderModule`),n.options.get(`logLevel`),r,n.playbackSource,n.pool,a,o,u),{videoRenderer:p}=f.getStatistics(),m=n.modules.canvasModule;if(m instanceof hb)if(p===`OffscreenCanvas`&&d){m.setVideoRenderingEnabled(!1);let e=n.element;e.parentElement?e.parentElement.replaceChild(d,e):n.logger.warn(`OffscreenCanvas rendering is active but the current element is not attached to the DOM. Updating internal element reference only.`),n.offscreenCanvasElement=d,n.setElement(d)}else{m.setVideoRenderingEnabled(!0),n.offscreenCanvasElement=void 0;let e=m.element();if(e!==n.element){let t=n.element;t.parentElement&&t.parentElement.replaceChild(e,t),n.setElement(e)}}else m instanceof _b&&(p===`OffscreenCanvas`&&d?(m.setOffscreenCanvas(d),n.offscreenCanvasElement=d):(m.setOffscreenCanvas(void 0),n.offscreenCanvasElement=void 0));(e=n.modules.decoder)==null||e.unload(),n.modules.decoder=f,n.modules.decoder.load(),n.setupOffscreenSubtitleRouting()})),m(this,`setupOffscreenSubtitleRouting`,()=>{if(this.offscreenSubtitleInterval!==void 0&&(clearInterval(this.offscreenSubtitleInterval),this.offscreenSubtitleInterval=void 0),!this.offscreenCanvasElement||!this.modules.decoder||this.modules.canvasModule instanceof _b)return;let e=this.modules.decoder,t=this.modules.canvasModule;if(!t)return;let n=!1;this.offscreenSubtitleInterval=setInterval(()=>{var r,i,a,o;if(!t.textTracks.language){n&&(e.setSubtitleCues([],0,0,1,0),n=!1);return}n=!0;let s=t.textTracks.getActiveCues(this.currentTime/1e3).map(e=>({text:e.text})),c=((r=this.element)==null?void 0:r.clientWidth)||0,l=((i=this.element)==null?void 0:i.clientHeight)||0,u=((a=this.element)==null?void 0:a.style.getPropertyValue(`--vindral-subtitle-offset`))||((o=this.element)==null?void 0:o.style.getPropertyValue(`--vindral-control-bar-offset`)),d=parseInt(u||`0`,10)||0;e.setSubtitleCues(s,c,l,globalThis.devicePixelRatio||1,-d)},100)}),m(this,`unload`,N(function*(){var t,r,i;n.logger.debug(`Unloading modules...`),n.offscreenSubtitleInterval!==void 0&&(clearInterval(n.offscreenSubtitleInterval),n.offscreenSubtitleInterval=void 0),yield Promise.all(Object.values(n.modules).map(e=>e==null?void 0:e.unload())),(t=n.wakeLock)==null||t.unload(),n.pool=new ie(e.MAX_POOL_SIZE),(r=(i=n.playbackSource).unload)==null||r.call(i),n.element.remove(),n.emitter.reset(),n.encryptedMediaExtensions.unload(),n.reset(),n.logger.debug(`Unloaded modules`)})),m(this,`userInput`,()=>{this.play()}),m(this,`pause`,()=>{this.options.get(`pauseSupportEnabled`)&&this.playbackState!==`paused`&&(this.playbackSource.pause(),this.hasCalledConnect&&this.suspend())}),m(this,`registerDebugInstance`,()=>{$c(this)}),m(this,`play`,()=>{var t;this.hasCalledConnect?this.unsuspend():this.playbackState!==`playing`&&(this._connect(),self.addEventListener(`__vindral_register_debug__`,this.registerDebugInstance),this.modules.timer.setInterval(()=>this.cleanupTextTracks(),e.REMOVE_CUE_THRESHOLD)),(t=this.wakeLock)==null||t.enable(),this.playbackState===`paused`&&(this.resetModules(),this.emitter.emit(`flush buffers`),this.cleanupTextTracks(2**53-1)),this.playbackSource.play()}),m(this,`getStatistics`,()=>{let e=Object.values(this.modules).reduce((e,t)=>t&&`getStatistics`in t?z(z({},e),t.getStatistics()):e,this.getRuntimeInfo()),t=Math.round(this.timeActive>0?(e.bytesReceived||0)*8/(this.timeActive/1e3):0),n=this.uptime/36e5,r=Math.max(0,(e.connectCount||0)-1),i=n>0?r/n:0,a=this.timeActive/6e4,o=Math.max(a,1),s=a>0?(e.seekAdjustmentCount||0)/o:0,c=a>0?(e.timeshiftAdjustmentCount||0)/o:0;return z(z({},e),{},{averageBitRate:t,reconnectsPerHour:i,seekAdjustmentsPerMinute:s,timeshiftAdjustmentsPerMinute:c})}),m(this,`resetModules`,()=>{Object.values(this.modules).forEach(e=>{e&&`reset`in e&&e.reset()}),this.sampleProcessingSesssions.clear(),this.playbackSource.currentTime=0,this.playbackSource.isActivated=!1}),m(this,`getRuntimeInfo`,()=>{let e=this.modules.canvasModule instanceof _b?!0:void 0;return z({uptime:Date.now()-this.createdAt,version:void 0,clientId:this.clientId,sessionId:this.sessionId,channelId:this.channelId,channelGroupId:this.options.get(`channelGroupId`),ip:this.clientIp,url:this.options.get(`url`),timeToFirstFrame:this.timeToFirstFrame(),streamToMediaElementEnabled:e,iosMediaElementEnabled:e},this.userAgentInformation.getUserAgentInformation())}),m(this,`getPlaybackBufferState`,(e,t)=>{let n=t==null?void 0:t.getBufferState(e.currentTime);if(!n)return e;let r=e.playbackState===`buffering`||n.playbackState===`buffering`?`buffering`:e.playbackState===`paused`?`paused`:`playing`;return z(z({},e),{},{buffered:n.buffered,playbackState:r})}),m(this,`onMediaElementBufferState`,(e,t)=>{this.emitter.emit(`buffer state`,this.getPlaybackBufferState(e,t))}),m(this,`onMediaElementState`,e=>{this.logger.info(`media element state`,{state:e}),this.options.get(`pauseSupportEnabled`)&&(e===`paused`?this.modules.documentState.isVisible&&(this.suspend(),this.modules.connection.disconnect()):(this.unsuspend(),this.modules.connection.getState()===`disconnected`&&this.modules.connection.unsuspend()))}),m(this,`onBufferEvent`,e=>{this.emit(`buffer state event`,e);let t=!this.playbackSource.isActivated||this.playbackSource.isPaused;if(e===`filled`&&t){var n,r,i,a;let e=Math.max(this.currentTime,(n=(r=this.videoBufferedRanges[0])==null?void 0:r.start)==null?0:n,(i=(a=this.audioBufferedRanges[0])==null?void 0:a.start)==null?0:i);this.logger.info(`Buffer filled - starting playback`,{currentTime:e}),this.playbackSource.currentTime=e,this.modules.sync.activateSyncAdjustments(),this.playbackSource.isActivated=!0}else e===`drained`&&this.playbackSource.isPaused&&(this.playbackSource.isActivated=!1,this.modules.sync.deactivateSyncAdjustments())}),m(this,`timeToFirstFrame`,()=>{let e=this.modules.playback.getFirstFrameTime(),t=this.modules.connection.firstConnectionTime;if(t&&e)return e-t}),this.options=new fx(z(z({},gr),Sx(t))),t.telemetryEnabled===void 0&&[`localhost`,`127.0.0.1`].includes(location.hostname)&&this.options.set(`telemetryEnabled`,!1);let i={channelId:this.options.get(`channelId`),audio:{language:this.options.get(`language`),bitRate:this.options.get(`maxAudioBitRate`)},video:{bitRate:this.options.get(`maxVideoBitRate`),width:this.options.get(`maxSize`).width,height:this.options.get(`maxSize`).height}},a=an.get();a.setLevel(this.options.get(`logLevel`)),a.setDebug(!1),this.logger=a,this.webCodecsRenditionSupport=new wx(a),t.iosMediaElementEnabled!==void 0&&this.logger.warn(`Option iosMediaElementEnabled is deprecated and will be removed in a future release. Use streamToMediaElementEnabled instead.`);let o=(r=t.streamToMediaElementEnabled)==null?t.iosMediaElementEnabled:r;o!==void 0&&(this.options.set(`streamToMediaElementEnabled`,o),this.options.set(`iosMediaElementEnabled`,o));let s=t.mseEnabled!==void 0,c=t.decoders!==void 0;s&&this.logger.warn(`Option mseEnabled is deprecated and will be removed in a future release. Use decoders instead (e.g. decoders: ["wasm"]).`),s&&!c&&t.mseEnabled===!1&&this.options.set(`decoders`,[`wasm`]);let l=Rb.create(this.emitter,this.logger.createContext(`PictureInPictureModule`)),u=zn.create(),d=sy.create(this.emitter,this.logger.createContext(`ConnectionModule`),{reconnectHandler:this.options.get(`reconnectHandler`),options:this.options,onConnectInfo:this.onConnectInfo}),f=Xb.create(this.logger.createContext(`SubscriptionModule`),this.emitter,i),p=Kb.create(this.emitter,f),h=Wb.create(this.emitter,this.logger.createContext(`QualityOfServiceModule`),p),g=Bb.create(this.emitter,this.logger.createContext(`PlaybackModule`),this,this.options.get(`minBufferTime`));this.encryptedMediaExtensions=new Sa(this.emitter,this.logger.createContext(`EncryptedMediaExtensions`),t.drm),this.drm={setHeaders:e=>{this.encryptedMediaExtensions.headers=e},setQueryParams:e=>{this.encryptedMediaExtensions.queryParams=e}};let _=Ky.create(this.emitter),v=this.options.get(`poster`),y=v===!0?this.getThumbnailUrl():v||void 0,b,x,ee;if(this.willUseMediaSource()){let e=new el({type:this.options.get(`media`)===`audio`?`audio`:`video`,autoplay:!1,muted:this.options.get(`muted`)||this.options.get(`media`)===`video`,volume:this.options.get(`volume`),logger:this.logger.createContext(`MediaElement`),poster:y});e.on(`buffer state`,e=>this.onMediaElementBufferState(e,b)),e.on(`needs user input`,e=>this.emitter.emit(`needs user input`,e)),e.on(`volume state`,e=>this.emit(`volume state`,e)),e.on(`media element state`,e=>this.onMediaElementState(e)),this.element=e.element,this.playbackSource=e,Sa.isSupported()&&this.encryptedMediaExtensions.attach(e.element),b=kb.create(this.logger.createContext(`MseModule`),this.emitter,this.element),this.options.get(`pauseSupportEnabled`)||(x=lx.create(this.logger.createContext(`UnpauseModule`),e,_)),this.options.get(`pictureInPictureEnabled`)&&this.emitter.emit(`add picture in picture listener`,{element:e.element})}else if(this.options.get(`streamToMediaElementEnabled`)&&Et(this.browser)){let e=_b.create(this.emitter,this.logger.createContext(`ModernCanvasModule`),this.pool,this,{type:this.options.get(`media`)===`audio`?`audio`:`video`,muted:this.options.get(`muted`)||this.options.get(`media`)===`video`,volume:this.options.get(`volume`),poster:y,offscreenCanvas:this.offscreenCanvasElement,bufferTime:this.options.get(`minBufferTime`)}),t=e.element();this.element=t.element,this.playbackSource=e,ee=e;let n=this.browser.platform.isIOS&&this.browser.platform.iosVersion<=15;this.options.get(`pictureInPictureEnabled`)&&!n&&this.emitter.emit(`add picture in picture listener`,{element:this.element}),this.options.get(`pauseSupportEnabled`)||(x=lx.create(this.logger.createContext(`UnpauseModule`),t,_))}else{let e;e=hb.create(this.emitter,this.logger.createContext(`LegacyCanvasModule`),this.pool,this,this.options.get(`muted`)||this.options.get(`media`)===`video`,this.options.get(`volume`),()=>{this.setElement(e.element())},this.options.get(`minBufferTime`)),this.element=e.element(),this.playbackSource=e,ee=e,this.options.get(`iosWakeLockEnabled`)&&(this.wakeLock=new Wc)}this.emitter.on(`channel reset`,this.resetModules),this.emitter.on(`no data timeout`,this.resetModules),this.emitter.on(`media element state`,e=>this.onMediaElementState(e)),this.emitter.on(`volume state`,e=>this.emit(`volume state`,e)),this.options.get(`pauseSupportEnabled`)||this.emitter.on(`exit picture in picture`,()=>u.setTimeout(()=>this.play(),0)),this.emitter.on(`constraint cap changed`,e=>{this.logger.info(`new cap set`,{cap:e}),this.alignSizeAndBitRate(this.targetSubscription)}),this.pictureInPicture={enter:()=>l.requestPictureInPicture(),exit:()=>l.exitPictureInPicture(),isActive:()=>l.isPictureInPictureActive(),isSupported:()=>l.isPictureInPictureSupported()},this.emitter.on(`error`,e=>{if(e.type()===`external`&&this.emit(`error`,e),e.isFatal())return()=>void this.unload()});let te=this.willUseMediaSource(),ne=te?!this.browser.platform.isWebKit:!0,re={getTargetBufferTime:()=>g.getTargetBufferTime(),getNextBufferedRangeStart:b?e=>b.getNextBufferedRangeStart(e):void 0},ae=rx.create(this.emitter,this.logger.createContext(`SyncModule`),this.playbackSource,re,ne,te),S=eb.create(this.logger.createContext(`JitterModule`)),oe=(this.options.get(`edgeUrl`)||this.options.get(`url`)).replace(`wss://`,`https://`).replace(`ws://`,`http://`).replace(`//lb.`,`//errors.`),C=new URL(`/telemetry`,oe).toString();this.modules={telemetry:sx.create(this.logger.createContext(`TelemetryModule`),this.emitter,{url:C,enabled:this.options.get(`telemetryEnabled`),includeStats:!1,interval:5e3},this),bufferTime:ml.create(this.emitter,this.logger.createContext(`BufferTimeModule`),h,this,{maxBufferTime:this.options.get(`maxBufferTime`),minBufferTime:this.options.get(`minBufferTime`)}),incomingData:Zy.create(this.emitter),adaptivity:dl.create(this.emitter,this.logger.createContext(`AdaptivityModule`),h,{cooldownTime:Math.max(this.options.get(`minBufferTime`),2e3)}),constraintCap:fy.create(this.emitter,this.element,p,this.options.get(`abrEnabled`)?this.options.get(`sizeBasedResolutionCapEnabled`):!1),event:Yy.create(this.emitter,this.logger.createContext(`EventModule`),ae),sync:ae,jitter:S,documentState:_,connection:d,playback:g,pictureInPicture:l,timer:u,subscription:f,renditions:p,qualityOfService:h,mseModule:b,unpause:x,canvasModule:ee},this.modules.adaptivity.isEnabled=this.options.get(`abrEnabled`),this.emitter.on(`page active`,t=>{if(t&&typeof this.disconnectTimeout==`number`&&(this.modules.timer.clearInterval(this.disconnectTimeout),this.disconnectTimeout=void 0),t)this.playbackSource.isPaused||(this.logger.debug(`Unsuspending`),this.unsuspend());else if(this.logger.debug(`Suspending`),this.suspend(),this.modules.decoder)if(this.options.get(`iosBackgroundPlayEnabled`)){var n;this.modules.decoder.unsuspend(),(n=this.modules.canvasModule)==null||n.unsuspend()}else this.modules.connection.disconnect();else this.disconnectTimeout&&this.modules.timer.clearInterval(this.disconnectTimeout),this.disconnectTimeout=this.modules.timer.setInterval(()=>{let e=this.playbackState===`paused`||this.muted;this.connectionState===`connected`&&e&&(this.emitter.emit(`flush buffers`),this.modules.connection.disconnect(`Page inactive timeout`))},e.DISCONNECT_TIMEOUT)});let se;this.emitter.on(`context switch complete`,()=>{se||(se=window.setTimeout(()=>{window.clearTimeout(se),se=void 0,this.emit(`context switch`,`completed`),this.emitLanguagesIfChanged()},this.targetBufferTime))}),this.emitter.on(`context switch started`,()=>this.emit(`context switch`,`started`)),this.emitter.on(`needs user input`,e=>this.emit(`needs user input`,e)),this.emitter.on(`event`,e=>{switch(e.type){case`metadata`:this.emit(`metadata`,e);break;case`channel switch`:this.emit(`channel switch`,{channelId:e.channelId});break;case`language switch`:this.emit(`language switch`,{language:e.language});break}}),this.emitter.on(`buffer state event`,this.onBufferEvent),this.emitter.on(`playback state`,e=>this.emit(`playback state`,e)),this.emitter.on(`rendition level changed`,({to:e})=>{e&&this.emit(`rendition level`,e)}),this.emitter.on(`connection state`,e=>{this.emit(`connection state`,e)}),this.emitter.on(`recovered from media error`,()=>{this.modules.adaptivity.reset(this.targetBufferTime*2)}),this.emitter.once(`connect info`,e=>{var t,n;let r=((t=(n=e.telemetry)==null?void 0:n.probability)==null?1:t)>=Math.random();if(e.telemetry){var i;(i=this.modules.telemetry)==null||i.unload(),this.modules.telemetry=sx.create(this.logger.createContext(`TelemetryModule`),this.emitter,z(z({},e.telemetry),{},{enabled:this.options.get(`telemetryEnabled`)&&r}),this),this.modules.telemetry.load()}}),this.emitter.on(`adapt level`,e=>{this.logger.debug(`adapt level`,{direction:e});let t=this.modules.renditions.getRenditionLevels(),n=this.modules.renditions.getRenditionLevel(),r=t.findIndex(e=>e===n),i=t.length-1,a=r;switch(e){case`upgrade`:{var o,s,c,l,u;let e=Math.min(r+1,i),n=t[e],d=(o=this.modules.connection.estimatedBandwidth)==null?pr():o,f=((s=n==null||(c=n.audio)==null?void 0:c.bitRate)==null?0:s)+((l=n==null||(u=n.video)==null?void 0:u.bitRate)==null?0:l),p=d*2>f;n&&p&&this.modules.adaptivity.isQoSOk(n)&&(a=e)}break;case`downgrade`:a=Math.max(r-1,0);break;case`double downgrade`:a=Math.max(r-2,0);break;case`reconnect`:if(r===0||this.modules.qualityOfService.timeSpentBufferingLast(6e3)>5e3){if(!this.modules.connection.lastConnectionTime||Date.now()-this.modules.connection.lastConnectionTime<this.modules.qualityOfService.fatalQosGraceTime()||this.modules.connection.getState()!==`connected`)return;this.modules.qualityOfService.incrementFatalQosCount(),this.logger.info(`Reconnecting due to poor qos`),this.modules.connection.reconnect(`Fatal QOS`),this.emitter.emit(`adapted level`);return}else a=0}if(a===r)return;let d=t[a];this.alignSizeAndBitRate(z(z({},this.targetSubscription),{},{video:z(z({},this.targetSubscription.video),d==null?void 0:d.video),audio:z(z({},this.targetSubscription.audio),d==null?void 0:d.audio)})),this.emitter.emit(`adapted level`)}),this.emitter.on(`text track data`,e=>{let t=j(Ex,this).find(t=>t.language===e.language),n=this.modules.sync.getTimeshiftOffset()/1e3,r=n-j(Tx,this);if(k(Tx,this,n),t){if(t.cues)for(let e of t.cues)e.startTime-=r,e.endTime-=r;for(let r of e.cues){let e=new VTTCue(r.startTime-n,r.endTime-n,r.text);t.addCue(e)}}}),this.emitter.on(`received signal`,e=>{let t=e,n=this.modules.subscription.getCurrentSubscription();switch(this.logger.debug(`received`,z({},t)),t.type){case`client ip`:this.clientIp=t.ip;break;case`renditions`:this.updateTextTracks(t.renditions),k(Dx,this,this.filterRenditions(t.renditions).then(e=>{this.emitter.emit(`renditions`,{renditions:e,channelId:this.currentSubscription.channelId}),this.emit(`rendition levels`,this.modules.renditions.getRenditionLevels()),this.emitLanguagesIfChanged()}).finally(()=>{k(Dx,this,void 0)}));break;case`subscription changed`:var r;try{Cx(t.subscription)}catch(e){this.emitter.emit(`error`,new U(`Subscription failed validation`,{source:e instanceof Error?e:void 0,isFatal:!1,code:`subscription_failed_validation`}))}this.emitter.emit(`subscription changed`,{reset:t.reset,to:t.subscription,from:this.modules.subscription.getCurrentSubscription()}),t.reset&&n.channelId!==t.subscription.channelId&&(this.emit(`error`,yi(t.subscription.channelId)),this.emit(`channel switch failed`,{channelId:n.channelId})),this.modules.sync.allowTimeshiftOnAudio=!((r=t.subscription.video)!=null&&r.codec),this.modules.adaptivity.reset();break;case`timing info`:this.modules.sync.updateChannelSyncInfo(t.timingInfo.channelId,t.timingInfo),this.emit(`server wallclock time`,t.timingInfo.wallclockTime);break}}),this.emitter.on(`channel switch timeout`,e=>{this.emit(`error`,yi(e)),this.emit(`channel switch failed`,{channelId:this.currentSubscription.channelId})}),this.emitter.on(`received data`,e=>{let t=this.modules.subscription.getCurrentSubscription(),n=Vc(e);if(!t){this.logger.warn(`Received unwanted message`,z({},n));return}ce(z(z({},n),{},{channelId:t.channelId}))}),this.emitter.on(`received moq data`,e=>{let t=e.payload.mediaType(),n=e.channelId,r=e.renditionId,i=this.modules.sync.processFragment(n,e.payload);if(t!==`text`&&this.modules.jitter.recordSample({type:t,renditionId:r,timestamp:i.baseMediaDecodeTime(),timescale:i.timescale()}),e.switchInfo.channelId&&(e.switchInfo.drmTransition&&this.emitter.emit(`error`,bi(`Switching between DRM and non-DRM channels is not supported`,!0)),this.encryptedMediaExtensions.onChannelSwitch(),this.emit(`rendition levels`,this.modules.renditions.getRenditionLevels()),this.modules.event.addEvent({type:`channel switch`,channelId:e.switchInfo.channelId,timestamp:i.baseMediaDecodeTime()/i.timescale()*1e3})),e.switchInfo.language&&this.modules.event.addEvent({type:`language switch`,language:e.switchInfo.language,timestamp:i.baseMediaDecodeTime()/i.timescale()*1e3}),this.modules.incomingData.add(t,e.payload.rawBytes().byteLength),(t===`video`||t===`audio`)&&this.hasListeners(`cmaf fragment`)&&this.emit(`cmaf fragment`,{mediaType:t,initSegment:i.header().rawBytes().slice(),fragment:i.rawBytes().slice(),isKeyframe:i.startsWithKeyframe()}),i.fragment().emsgs.forEach(e=>{if(!e.presentationTime)return;let t=Ka(e.data);t&&this.modules.event.addEvent({id:e.id,timestamp:e.presentationTime/e.timescale*1e3-this.modules.sync.getTimeshiftOffset(),content:t.txx.value,type:`metadata`})}),this.modules.decoder){var a,o;let p=(a=i.header().init().moov.traks[0])==null?void 0:a.mdia.minf.stbl.stsd,m=(o=p==null?void 0:p.codec)==null?`h264`:o,h;if(m===`h264`){var s;h=p==null||(s=p.avc1)==null?void 0:s.avcC.bytes}else if(m===`h265`){var c,l,u;let e=(c=p==null||(l=p.hvc1)==null?void 0:l.data())==null?p==null||(u=p.hev1)==null?void 0:u.data():c;e&&(h=Wa(e))}else if(m===`av1`&&p!=null&&p.av01)h=rc(p.av01.data());else if(m===`aac`){var d;h=p==null||(d=p.mp4a)==null||(d=d.esds)==null?void 0:d.decoderConfig}else if(m===`opus`){var f;h=jc(p==null||(f=p.opus)==null?void 0:f.dops)}if(h){let i=h.buffer.slice(h.byteOffset,h.byteOffset+h.byteLength);if(t===`text`)throw Error(`Subtitles are not supported`);this.emitter.emit(`init segment`,{initSegment:{channelId:n,renditionId:r,data:i,timescale:1e3,type:t,codec:m,codecString:e.codecString},mimeType:t})}else m&&this.logger.warn(`Failed to extract init data for codec`,{codec:m,channelId:n,renditionId:r});for(let e=0;e<i.samplesCount();e++){let t=i.sample(e);t&&this.emitter.emit(`coded sample`,z(z({},t),{},{renditionId:r,channelId:n,data:t.data.buffer.slice(t.data.byteOffset,t.data.byteOffset+t.data.byteLength)}))}}else this.emitter.emit(`fragment`,{mimeType:e.mimeType,codec:e.codec,fragment:i,channelId:n,renditionId:r})});let w=this.options.get(`container`);w&&this.attach(w),this.logger.info(`Created Vindral instance`,{options:this.options});let ce=function(){var e=N(function*(e){let t=e.channelId;j(Dx,n)&&(yield j(Dx,n));let r=n.modules.renditions.getRendition(e.renditionId,t);if(!Rc(e.flags)){if(zc(e.flags)){let t=new TextDecoder().decode(e.payload),r=n.modules.sync.getTimeshiftOffset();if(e.renditionId!==0){let e=Jn(t);if(e&&e.language!==void 0){let t=new Xc().parse(e.content||``),i=r/1e3,a=j(Ex,n).find(t=>t.language===e.language),o=i-j(Tx,n);if(k(Tx,n,i),a){if(a.cues)for(let e of a.cues)e.startTime-=o,e.endTime-=o;for(let e of t){let t=new VTTCue(e.startTime-i,e.endTime-i,e.text);a.addCue(t)}}}}else n.modules.event.addEvent({timestamp:e.timestamp/e.timescale*1e3-n.modules.sync.getTimeshiftOffset(),content:t,type:`metadata`})}else if(r!=null&&r.codec){let i=or(r.codec);if(i===`text`)throw Error(`Subtitles are not supported`);if(n.modules.incomingData.add(i,e.payload.byteLength),Lc(e.flags)){let a=z(z({type:i,data:e.payload,codec:r.codec},e),{},{channelId:t}),o=wc(a.codec,a.payload);o&&n.sizes.set(a.renditionId,o);let s=fr({codec:r.codec,codecString:r.codecString});n.emitter.emit(`init segment`,{initSegment:a,mimeType:s}),n.emit(`initialized media`)}else{let t=yx(e,r,n.sizes.get(e.renditionId));n.modules.jitter.recordSample(t);let a=n.sampleProcessingSesssions.get(i);if(!a)a=mx(n.modules.sync.processSample(t)),n.sampleProcessingSesssions.set(i,a);else{let e=n.willUseMediaSource()&&n.isSwitchingRenditionLevel&&t.type===`video`,r=a(n.modules.sync.processSample(t),e),i=t;r.forEach(e=>{n.modules.event.extractEvent(e,i),n.emitter.emit(`coded sample`,e),i=e})}}}}});return function(t){return e.apply(this,arguments)}}();this.options.get(`maxVideoBitRate`)!==2**53-1&&(this.maxVideoBitRate=this.options.get(`maxVideoBitRate`)),this.options.get(`maxAudioBitRate`)!==2**53-1&&(this.maxAudioBitRate=this.options.get(`maxAudioBitRate`)),Rt(this.options.get(`maxSize`),mr())||(this.maxSize=this.options.get(`maxSize`)),this.options.get(`burstEnabled`)&&f.enableBurst(this.targetBufferTime)}set volume(e){this.playbackSource.volume=e}get volume(){return this.playbackSource.volume}set muted(e){if(e===this.muted)return;let t=this.playbackSource.muted;this.playbackSource.muted=e,!e&&t&&!this.playbackSource.isPaused&&this.playbackSource.play()}get muted(){return this.playbackSource.muted}get media(){return this.options.get(`media`)}get videoBitRate(){return this.modules.incomingData.averageBitRate(`video`)}get audioBitRate(){return this.modules.incomingData.averageBitRate(`audio`)}get connectionState(){return this.modules.connection.getState()}get playbackState(){return this.modules.playback.getState()}get bufferFullness(){return this.modules.playback.getBufferFullness()}get sizeBasedResolutionCapEnabled(){return this.modules.constraintCap.sizeBasedResolutionCapEnabled}set sizeBasedResolutionCapEnabled(e){this.modules.constraintCap.sizeBasedResolutionCapEnabled=e}get abrEnabled(){return this.modules.adaptivity.isEnabled}set abrEnabled(e){this.modules.constraintCap.sizeBasedResolutionCapEnabled=e?this.options.get(`sizeBasedResolutionCapEnabled`):!1,this.modules.adaptivity.isEnabled=e,this.alignSizeAndBitRate(this.targetSubscription)}get serverEdgeTime(){return this.modules.sync.getLiveEdgeTimeLatencyAdjusted(this.currentSubscription.channelId)}get serverWallclockTime(){return this.modules.sync.getWallclockTimeLatencyAdjusted(this.currentSubscription.channelId)}get currentTime(){return this.modules.sync.serverCurrentTime}get channelCurrentTime(){return this.modules.sync.channelCurrentTime}get targetBufferTime(){return this.modules.playback.getTargetBufferTime()}set targetBufferTime(e){this.modules.playback.getTargetBufferTime()!==e&&(this.modules.playback.setTargetBufferTime(e),this.playbackSource.currentTime=this.modules.sync.serverCurrentTime,this.options.get(`burstEnabled`,this.channelId)?this.modules.subscription.enableBurst(this.targetBufferTime):this.modules.subscription.enableBurst(0))}updateBufferTimeConfig(e){this.modules.bufferTime.updateConfig(e)}get playbackLatency(){var e;if(this.playbackSource.currentTime!==0)return this.targetBufferTime+((e=this.modules.sync.drift)==null?0:e)+this.modules.connection.rtt/2}get playbackWallclockTime(){if(!(!this.serverWallclockTime||!this.playbackLatency))return this.serverWallclockTime-this.playbackLatency}get channels(){return this._channels}get languages(){return this.modules.renditions.getLanguages()}get language(){return this.modules.subscription.getTargetSubscription().audio.language}set language(e){if(e===this.language)return;let t=this.languages;if(e!==void 0&&t.length>0&&!t.includes(e)){this.logger.warn(`Language "${e}" is not available. Available languages: ${t.join(`, `)}`);return}this.modules.subscription.setLanguage(e),this.alignSizeAndBitRate(this.targetSubscription)}set textTrack(e){e!==this.textTrack&&(j(Ex,this).forEach(t=>{if(t.label===e)t.mode=`showing`;else{if(t.mode===`showing`&&t.cues)for(let e of[...t.cues])t.removeCue(e);t.mode=`hidden`}}),this.emitter.emit(`text track`,e))}get textTracks(){return j(Ex,this).filter(e=>e.mode!==`disabled`).map(e=>e.label)}get textTrack(){var e;return(e=j(Ex,this).find(e=>e.mode===`showing`))==null?void 0:e.label}get channelId(){var e,t;return(e=(t=this.modules)==null?void 0:t.subscription.getTargetSubscription().channelId)==null?this.options.get(`channelId`):e}set channelId(e){if(e===this.channelId)return;this.modules.subscription.setChannelId(e);let t=this.options.get(`media`)===`audio`?[]:this.options.get(`videoCodecs`),n=this.modules.renditions.getAudioRenditions(e),r=this.modules.renditions.getVideoRenditions(e),i=this.targetSubscription.audio.language,a=n==null?void 0:n.some(e=>e.language===i),o=t.find(e=>(r==null?void 0:r.find(t=>t.codec===e))!==void 0);o&&this.modules.subscription.setVideoCodec(o),this.logger.debug(`Channel switch - started`,{audioRenditions:n,targetSubscriptionLanguage:i,targetHasCurrentLanguage:a}),this.alignSizeAndBitRate(this.targetSubscription)}get maxSize(){var e,t;let{width:n,height:r}=(e=(t=this.modules.constraintCap.getCurrentConstraintCap())==null?void 0:t.video)==null?mr():e;return{width:n,height:r}}set maxSize(e){this.modules.constraintCap.setUserSpecifiedCap({video:{width:e.width,height:e.height}}),this.alignSizeAndBitRate(this.targetSubscription)}get maxVideoBitRate(){var e,t;return(e=(t=this.modules.constraintCap.getCurrentConstraintCap())==null?void 0:t.video.bitRate)==null?pr():e}set maxVideoBitRate(e){this.modules.constraintCap.setUserSpecifiedCap({video:{bitRate:e}}),this.alignSizeAndBitRate(this.targetSubscription)}get maxAudioBitRate(){var e,t;return(e=(t=this.modules.constraintCap.getCurrentConstraintCap())==null?void 0:t.audio.bitRate)==null?pr():e}set maxAudioBitRate(e){this.modules.constraintCap.setUserSpecifiedCap({audio:{bitRate:e}}),this.alignSizeAndBitRate(this.targetSubscription)}get renditionLevels(){return this.modules.renditions.getRenditionLevels()}get currentRenditionLevel(){return this.modules.renditions.getRenditionLevel()}get targetRenditionLevel(){return this.modules.renditions.getRenditionLevel(this.modules.subscription.getTargetSubscription())}get isSwitchingRenditionLevel(){return this.modules.subscription.isSwitchingSubscription()}get videoBufferedRanges(){var e,t,n,r;return(e=(t=(n=this.modules.mseModule)==null?void 0:n.getBuffer(`video`))==null?(r=this.modules.decoder)==null?void 0:r.getBuffer(`video`):t)==null?[]:e}get audioBufferedRanges(){var e,t,n,r;return(e=(t=(n=this.modules.mseModule)==null?void 0:n.getBuffer(`audio`))==null?(r=this.modules.decoder)==null?void 0:r.getBuffer(`audio`):t)==null?[]:e}get videoKeyframeTimestamps(){var e,t,n,r;return(e=(t=(n=this.modules.mseModule)==null?void 0:n.getVideoKeyframeTimestamps())==null?(r=this.modules.decoder)==null?void 0:r.getVideoKeyframeTimestamps():t)==null?[]:e}getApiClient(){return this.modules.connection.apiClient}get lastBufferEvent(){return this.modules.playback.getLastBufferStateEvent()}get activeRatios(){return this.modules.qualityOfService.activeRatios()}get bufferingRatios(){return this.modules.qualityOfService.bufferingRatios()}get timeSpentBuffering(){return this.modules.qualityOfService.timeSpentBuffering()}get timeActive(){return this.modules.qualityOfService.timeActive()}get mediaElement(){return this.element}get audioNode(){var e;return(e=this.modules)!=null&&e.canvasModule?this.modules.canvasModule.audioNode:void 0}get drmStatistics(){var e;return(e=this.encryptedMediaExtensions)==null?void 0:e.getStatistics()}get uptime(){return Date.now()-this.createdAt}suspend(){this.isSuspended||(Object.values(this.modules).forEach(e=>{e&&`suspend`in e&&e.suspend()}),this.isSuspended=!0)}unsuspend(){this.isSuspended&&(Object.values(this.modules).forEach(e=>{e&&`unsuspend`in e&&e.unsuspend()}),this.isSuspended=!1)}alignSizeAndBitRate(e){let t=this.modules.constraintCap.constrainSubscription(z(z({},e),{},{video:z({},e.video),audio:z({},e.audio)})),n=this.modules.constraintCap.getUserSpecifiedCap();!this.abrEnabled&&n&&(t.audio.bitRate=n.audio.bitRate,t.video.bitRate=n.video.bitRate,t.video.width=n.video.width,t.video.height=n.video.height);let r=this.modules.renditions.getRenditionLevel(t);if(r){if(r.video&&(this.modules.subscription.setVideoBitRate(r.video.bitRate),this.modules.subscription.setSize(r.video)),r.audio)this.modules.subscription.setAudioBitRate(r.audio.bitRate),this.modules.subscription.setLanguage(r.audio.language);else if(t.audio.language){let e=this.modules.renditions.getAudioRenditions(t.channelId);!this.abrEnabled&&n&&(e=e==null?void 0:e.filter(e=>e.bitRate<n.audio.bitRate));let r=t.audio.language,i=e==null?void 0:e.some(e=>e.language===r),a=e==null?void 0:e.find(e=>e.language),o=(e==null?void 0:e.length)&&e[0]||void 0;i||(a?(this.logger.debug(`Randomizing language since target did not have current language`),this.modules.subscription.setAudioBitRate(a.bitRate),this.modules.subscription.setLanguage(a.language)):(this.logger.debug(`Randomizing audio rendition since target did not have current language`),o!=null&&o.bitRate&&this.modules.subscription.setAudioBitRate(o.bitRate),this.modules.subscription.setLanguage(o==null?void 0:o.language)))}}}get currentSubscription(){return this.modules.subscription.getCurrentSubscription()}get targetSubscription(){return this.modules.subscription.getTargetSubscription()}resolvedDecoder(e){return vx(this.options.get(`decoders`,e),this.browser.supportsMediaSource,this.options.get(`drm`))}willUseMediaSource(){return this.resolvedDecoder()===`mse`}shouldUseWebCodecs(e){return this.resolvedDecoder(e)===`webcodecs`}isWebCodecsVideoAvailable(e){return this.shouldUseWebCodecs(e)&&typeof VideoDecoder<`u`}isWebCodecsAudioAvailable(e){return this.shouldUseWebCodecs(e)&&typeof AudioDecoder<`u`}shouldUseOffscreenCanvas(e){let t=this.options.get(`offscreenCanvasEnabled`,e);return t===void 0?this.shouldUseWebCodecs(e):t}};m(Ox,`MAX_POOL_SIZE`,10),m(Ox,`DISCONNECT_TIMEOUT`,15*1e3),m(Ox,`REMOVE_CUE_THRESHOLD`,1e3*10);var kx={bar:`_bar_qm7bl_1`,hidden:`_hidden_qm7bl_47`},Ax=`_withThumbnails_suenn_19`,jx={"channel-selection-item":`_channel-selection-item_suenn_1`,"channel-selection-item-selected":`_channel-selection-item-selected_suenn_8`,"channel-selection-item-image":`_channel-selection-item-image_suenn_13`,withThumbnails:Ax,"hide-on-small":`_hide-on-small_suenn_27`},Mx={"icon-button":`_icon-button_5fg7v_1`},Nx={viewBox:`-10 -10 44 44`,content:`<g fill="none" stroke="white">
1222
+ `,zy=typeof self<`u`&&self.Blob&&new Blob([`(self.URL || self.webkitURL).revokeObjectURL(self.location.href);`,Ry],{type:`text/javascript;charset=utf-8`})})),Vy=r({VideoDecoderWorkerContext:()=>Uy}),Hy,Uy,Wy=n((()=>{V(),By(),h(),z(),N(),Uy=class{get isWebCodecs(){return this._isWebCodecs}get usingOffscreenCanvas(){return this._usingOffscreenCanvas}constructor(e,t,n,r,i=!1,a=!1){m(this,`decodedSamples`,[]),m(this,`codedSamples`,[]),m(this,`decoder`,void 0),m(this,`logger`,void 0),m(this,`errors`,new C(10)),m(this,`pool`,void 0),m(this,`getCurrentTime`,void 0),m(this,`_usingOffscreenCanvas`,void 0),m(this,`_isWebCodecs`,void 0),m(this,`_renderedFrameCount`,0),m(this,`_rendererDroppedFrameCount`,0),m(this,`statisticsQueue`,new C(1e3)),m(this,`samplesInTransitToWorker`,0),m(this,`workerPendingDecodeCount`,0),m(this,`targetSamplesInBatch`,4),m(this,`maxSamplesInFlight`,20),m(this,`unload`,()=>{this.decoder.postMessage({type:`unload`}),this.decoder.removeEventListener(`message`,this.onDecoderEvent),this.decoder.terminate(),this.statisticsQueue.clear(),this.codedSamples=[],this.decodedSamples.forEach(e=>{var t;return(t=e.videoFrame)==null?void 0:t.close()}),this.decodedSamples=[],this.samplesInTransitToWorker=0,this.workerPendingDecodeCount=0}),m(this,`enqueue`,e=>{this.codedSamples.push(R({},e)),this.flushQueuedSamples()}),m(this,`setSubtitleCues`,(e,t,n,r,i)=>{this.decoder.postMessage({type:`subtitle cues`,cues:e,containerWidth:t,containerHeight:n,devicePixelRatio:r,bottomPadding:i})}),m(this,`prepareOutputBuffers`,e=>{this._isWebCodecs||e.forEach(e=>{let t=Math.ceil(e.width/16)*16*(Math.ceil(e.height/16)*16)*3/2;e.buffer=this.pool.get(t)})}),m(this,`flushQueuedSamples`,()=>{for(;this.codedSamples.length>0&&this.samplesInFlight()<this.maxSamplesInFlight;){let e=Math.max(this.maxSamplesInFlight-this.samplesInFlight(),0),t=Math.min(this.targetSamplesInBatch,this.codedSamples.length,e);if(t<=0)return;let n=this.codedSamples.slice(0,t);this.codedSamples=this.codedSamples.slice(t),this.prepareOutputBuffers(n),this.sendSamples(n),this.samplesInTransitToWorker+=n.length}}),m(this,`initSegment`,e=>{let t={type:`init segment`,initSegment:e};this.decoder.postMessage(t)}),m(this,`take`,()=>this.decodedSamples.shift()),m(this,`samplesInFlight`,()=>this.samplesInTransitToWorker+this.workerPendingDecodeCount),m(this,`getRenderStatistics`,()=>({renderedFrameCount:this._renderedFrameCount,rendererDroppedFrameCount:this._rendererDroppedFrameCount})),m(this,`takeEstimatedStatistics`,()=>this.statisticsQueue.pop()),m(this,`sendSamples`,e=>{var t;let n={type:`decode samples`,samples:e,timestamp:Date.now(),currentTime:(t=this.getCurrentTime)==null?void 0:t.call(this)},r=this._isWebCodecs?e.map(e=>e.data):e.flatMap(e=>[e.data,e.buffer]).filter(e=>e!==void 0);this.decoder.postMessage(n,r)}),m(this,`onDecoderEvent`,e=>{switch(e.data.type){case`ready`:break;case`error`:this.errors.push(Error(e.data.message)),this.samplesInTransitToWorker=0,this.workerPendingDecodeCount=0;break;case`decoded samples`:{typeof e.data.samplesAcceptedCount==`number`&&e.data.samplesAcceptedCount>0&&(this.samplesInTransitToWorker=Math.max(0,this.samplesInTransitToWorker-e.data.samplesAcceptedCount)),typeof e.data.decoderPendingCount==`number`&&e.data.decoderPendingCount>=0&&(this.workerPendingDecodeCount=e.data.decoderPendingCount);let t=e.data.timestamp,n=Date.now()-t;if(typeof e.data.estimatedSampleCount==`number`&&e.data.estimatedSampleCount>0&&typeof e.data.estimatedDecodeTimeSum==`number`&&typeof e.data.estimatedTransportTimeToWorkerSum==`number`){let t=e.data.estimatedSampleCount,r=e.data.estimatedDecodeTimeSum/t,i=e.data.estimatedTransportTimeToWorkerSum/t+n;for(let e=0;e<t;e++)this.statisticsQueue.push({decodeTime:r,transportTime:i})}e.data.samples.forEach(e=>{e.statistics&&(e.statistics.transportTimeFromWorker=n)}),typeof e.data.renderedFrameCount==`number`&&(this._renderedFrameCount=e.data.renderedFrameCount),typeof e.data.rendererDroppedFrameCount==`number`&&(this._rendererDroppedFrameCount=e.data.rendererDroppedFrameCount),this.decodedSamples.push(...e.data.samples),this.flushQueuedSamples()}break}}),this.decoder=e,this.logger=t,this.pool=n,this.getCurrentTime=r,this._isWebCodecs=i,this._usingOffscreenCanvas=a,this.decoder.addEventListener(`message`,this.onDecoderEvent)}error(){return this.errors.pop()}},Hy=Uy,m(Uy,`create`,function(){var e=M(function*(e,t,n,r=!1,i=`no-preference`,a,o){let s=new Ly,{isWebCodecs:c,usingOffscreenCanvas:l}=yield new Promise((n,o)=>{let c=!1,l=setTimeout(()=>{c||(c=!0,u(Error(`Decoder worker initialization timed out`)))},1e4),u=e=>{if(c=!0,clearTimeout(l),s.removeEventListener(`message`,d),s.terminate(),e instanceof Error){o(e);return}o(Error(`Failed to initialize decoder worker`))},d=e=>{if(!c)switch(c=!0,clearTimeout(l),s.removeEventListener(`message`,d),e.data.type){case`ready`:n({isWebCodecs:e.data.isWebCodecs,usingOffscreenCanvas:e.data.usingOffscreenCanvas});break;case`error`:var t;u(Error((t=e.data.message)==null?`Failed to initialize decoder worker`:t));break;default:u(Error(`Failed to initialize decoder worker`));break}};s.addEventListener(`message`,d);let f={type:`init`,logLevel:t,useWebCodecs:r,webcodecsHardwareAcceleration:i,offscreenCanvas:a};try{a?s.postMessage(f,[a]):s.postMessage(f)}catch(n){let o=n instanceof DOMException&&n.name===`DataCloneError`;if(a&&o){e.warn(`Failed to transfer OffscreenCanvas to worker, falling back to main-thread rendering`,n);try{s.postMessage({type:`init`,logLevel:t,useWebCodecs:r,webcodecsHardwareAcceleration:i,offscreenCanvas:void 0})}catch(e){u(e)}}else u(n)}});return new Hy(s,e,n,o,c,l)});return function(t,n,r){return e.apply(this,arguments)}}())}));Ti(),V(),h(),z(),N();var Gy=5,Ky=100,qy=1e3,Jy=class e{constructor(e,t,n,r,i=!1,a=!1,o=!1){m(this,`timers`,Vn.create()),m(this,`logger`,void 0),m(this,`emitter`,void 0),m(this,`trackContexts`,void 0),m(this,`playbackSource`,void 0),m(this,`isSuspended`,!1),m(this,`_webCodecsInUse`,void 0),m(this,`_audioWebCodecsInUse`,void 0),m(this,`_offscreenCanvasInUse`,void 0),m(this,`currentVideoDecodeRate`,2),m(this,`decodeRateGraceIntervals`,3),m(this,`isAudioEmitRetryScheduled`,!1),m(this,`videoKeyframeTimestamps`,[]),m(this,`load`,()=>{let e=this._audioWebCodecsInUse?20:Ky;this.timers.setInterval(this.emitDecodedFrames,e),this.timers.setInterval(this.emitDecodeRate,qy),this.emitter.on(`init segment`,this.onInitSegment),this.emitter.on(`coded sample`,this.decode)}),m(this,`unload`,()=>{this.trackContexts.forEach(({decoderContext:e})=>e.unload()),this.timers.unload(),this.isAudioEmitRetryScheduled=!1,this.videoKeyframeTimestamps=[],this.emitter.off(`init segment`,this.onInitSegment),this.emitter.off(`coded sample`,this.decode)}),m(this,`suspend`,()=>{this.isSuspended=!0}),m(this,`unsuspend`,()=>{this.isSuspended=!1}),m(this,`getBuffer`,e=>{var t;return(t=this.trackContexts.get(e))==null?void 0:t.buffer}),m(this,`getVideoKeyframeTimestamps`,()=>this.videoKeyframeTimestamps),m(this,`videoDecodeRate`,()=>this.currentVideoDecodeRate),m(this,`calculateVideoDecodeRate`,()=>{var e;if(this._webCodecsInUse)return 2;let t=this.trackContexts.get(`video`);if(!t)return 2**53-1;let n=(e=t.sampleDuration)==null?40:e,r=Pt(t.decodeTime.items()),i=Pt(t.transportTime.items()),a=r.average+i.average;return a<=0?2:Math.min(n/a,100)}),m(this,`getStatistics`,()=>{var e,t,n,r,i;let a=this.trackContexts.get(`video`),o=Pt((e=a==null?void 0:a.decodeTime.items())==null?[]:e),s=Pt((t=a==null?void 0:a.transportTime.items())==null?[]:t),c=Pt((n=(r=this.trackContexts.get(`audio`))==null?void 0:r.decodeTime.items())==null?[]:n),l=this._offscreenCanvasInUse?a==null||(i=a.getRenderStatistics)==null?void 0:i.call(a):void 0;return R(R({videoDecodeRate:this.videoDecodeRate(),videoDecodeTime:o,audioDecodeTime:c,videoTransportTime:s,videoKeyframeIntervalMs:Mt(this.videoKeyframeTimestamps)},l?{renderedFrameCount:l.renderedFrameCount,rendererDroppedFrameCount:l.rendererDroppedFrameCount}:{}),{},{videoRenderer:this._offscreenCanvasInUse?`OffscreenCanvas`:`Canvas`,videoDecoder:this._webCodecsInUse?`WebCodecs`:`WASM`,audioRenderer:`AudioContext`,audioDecoder:this._audioWebCodecsInUse?`WebCodecs`:`WASM`})}),m(this,`setSubtitleCues`,(e,t,n,r,i)=>{var a;if(!this._offscreenCanvasInUse)return;let o=(a=this.trackContexts.get(`video`))==null?void 0:a.decoderContext;o&&`setSubtitleCues`in o&&o.setSubtitleCues(e,t,n,r,i)}),m(this,`onInitSegment`,({initSegment:e})=>{var t;let n=(t=this.trackContexts.get(e.type))==null?void 0:t.decoderContext;if(!n)throw new H(`No known decoder context`,{code:`no_known_decoder_context`,isFatal:!1});n.initSegment(e)}),m(this,`decode`,e=>{let t=this.trackContexts.get(e.type);if(!t)throw new H(`No known decoder context`,{code:`no_known_decoder_context`,isFatal:!1});if(this.isSuspended)return;t.sampleDuration=e.duration/e.timescale*1e3;let n=e.compositionTimeOffset||0,{decoderContext:r,buffer:i}=t,a=(e.timestamp+n)/e.timescale*1e3,o=e.duration/e.timescale*1e3,s=i[i.length-1];if(!s||a-Gy>s.end?i.push({start:a,end:a+o}):a+o*5<s.end?(t.buffer=[{start:a,end:a+o}],e.type===`video`&&(this.videoKeyframeTimestamps=[])):s.end=a+o,e.type===`video`&&e.isSync){let e=this.videoKeyframeTimestamps[this.videoKeyframeTimestamps.length-1];e!==void 0&&a<e&&(this.videoKeyframeTimestamps=[]),this.videoKeyframeTimestamps.push(a),this.videoKeyframeTimestamps.length>20&&(this.videoKeyframeTimestamps=this.videoKeyframeTimestamps.slice(-20))}r.enqueue(e),this.emitDecodedFrames(),this._audioWebCodecsInUse&&e.type===`audio`&&this.scheduleAudioEmitRetry()}),m(this,`scheduleAudioEmitRetry`,()=>{this.isAudioEmitRetryScheduled||(this.isAudioEmitRetryScheduled=!0,this.timers.setTimeout(()=>{this.isAudioEmitRetryScheduled=!1,this.emitDecodedFrames()},0))}),m(this,`emitDecodedFrames`,()=>{let e;this.updateBufferState(),this.trackContexts.forEach((t,n)=>{var r,i,a,o;let s;for(;(s=(r=(i=t.decoderContext).error)==null?void 0:r.call(i))!==void 0;)this.emitter.emit(`error`,ai(!1,s));for(;(e=t.decoderContext.take())!==void 0;){let{statistics:n}=e;n&&(t.decodeTime.push(n.decodeTime),t.transportTime.push((n.transportTimeToWorker+n.transportTimeFromWorker)/n.samplesInBatch)),this.emitter.emit(`decoded frame`,e)}let c=(a=(o=t.decoderContext).takeEstimatedStatistics)==null?void 0:a.call(o);for(;c!==void 0;){var l,u;t.decodeTime.push(c.decodeTime),t.transportTime.push(c.transportTime),c=(l=(u=t.decoderContext).takeEstimatedStatistics)==null?void 0:l.call(u)}})}),m(this,`emitDecodeRate`,()=>{if(this.decodeRateGraceIntervals>0){this.decodeRateGraceIntervals--;return}this.currentVideoDecodeRate=this.calculateVideoDecodeRate(),this.emitter.emit(`video decode rate`,this.currentVideoDecodeRate)}),m(this,`updateBufferState`,()=>{let e;if(this.trackContexts.forEach(t=>{if(!e)e=t.buffer;else{var n,r,i,a;let o=(n=(r=t.buffer[t.buffer.length-1])==null?void 0:r.end)==null?0:n;((i=(a=e[e.length-1])==null?void 0:a.end)==null?0:i)>o&&(e=t.buffer)}}),!e)return;let t=this.playbackSource.currentTime,n=!0;this.trackContexts.forEach(e=>{e.buffer.some(e=>e.start<=t&&t<e.end)||(n=!1)});let r=n?`playing`:`buffering`;this.emitter.emit(`buffer state`,{buffered:e,currentTime:this.playbackSource.currentTime,isPaused:this.playbackSource.isPaused,playbackState:r})}),this.logger=t,this.emitter=e,this.trackContexts=n,this.playbackSource=r,this._webCodecsInUse=i,this._audioWebCodecsInUse=a,this._offscreenCanvasInUse=o}static create(t,n,r,i,a,o,s=!1,c=`no-preference`,l){return M(function*(){let u=new Map,d=new Set,f=!1,p=!1,m=!1;for(let e of i){if(d.has(e.type)){n.warn(`Received duplicate track type for decoder initialization. Ignoring subsequent track.`,{trackType:e.type,codec:e.codec,mimeType:e.mimeType});continue}switch(d.add(e.type),e.type){case`audio`:{let t,r,i=!1;if(s){let{WebCodecsAudioDecoderContext:a}=yield Promise.resolve().then(()=>(Ty(),xy));if(i=a.isSupported(),i)try{t=yield a.create(n.createContext(`WebCodecsAudio`)),p=!0}catch(t){r=t instanceof Error?t:Error(`Failed to initialize WebCodecs audio decoder`),e.codec===`opus`&&n.warn(`Failed to initialize WebCodecs audio decoder, falling back to WASM Opus decoder`,{codec:e.codec,error:r})}}if(!t)if(e.codec===`opus`){let{OpusDecoderContext:n}=yield Promise.resolve().then(()=>(Iy(),Ny));t=yield n.create(e.sampleRate||48e3,e.channels||2)}else{let t=s?r?`WebCodecs audio decoder initialization failed: ${r.message}`:i?`WebCodecs audio decoder could not be initialized.`:`WebCodecs AudioDecoder API is not supported in this environment.`:`WebCodecs audio decoding is disabled.`;throw oi(e.codec,t,r)}u.set(e.type,{buffer:[],decoderContext:t,decodeTime:new C(100),transportTime:new C(100),sampleDuration:40});break}case`video`:{let{VideoDecoderWorkerContext:t}=yield Promise.resolve().then(()=>(Wy(),Vy)),i=yield t.create(n.createContext(`VideoDecoderWorker`),r,o,s,c,l,()=>a.currentTime);f=i.isWebCodecs,m=i.usingOffscreenCanvas,u.set(e.type,{buffer:[],decoderContext:i,decodeTime:new C(100),transportTime:new C(100),sampleDuration:40,getRenderStatistics:i.getRenderStatistics});break}default:break}}return new e(t,n,u,a,f,p,m)})()}};h();var Yy,Xy=class{constructor(e){m(this,`emitter`,void 0),m(this,`isVisibleCount`,0),m(this,`isHiddenCount`,0),m(this,`isOnlineCount`,0),m(this,`isOfflineCount`,0),m(this,`isActive`,document.visibilityState===`visible`),m(this,`unload`,()=>{document.removeEventListener(`visibilitychange`,this.onVisibilityChanged),window.removeEventListener(`pagehide`,this.onPageHide),window.removeEventListener(`online`,this.onOnline),window.removeEventListener(`offline`,this.onOffline)}),m(this,`load`,()=>{document.addEventListener(`visibilitychange`,this.onVisibilityChanged),window.addEventListener(`pagehide`,this.onPageHide),window.addEventListener(`online`,this.onOnline),window.addEventListener(`offline`,this.onOffline)}),m(this,`unsuspend`,()=>{}),m(this,`getStatistics`,()=>{var e,t,n,r,i;return{isVisible:this.isVisible,isOnline:this.isOnline,isVisibleCount:this.isVisibleCount,isHiddenCount:this.isHiddenCount,isOnlineCount:this.isOnlineCount,isOfflineCount:this.isOfflineCount,navigatorRtt:(e=navigator.connection)==null?void 0:e.rtt,navigatorEffectiveType:(t=navigator.connection)==null?void 0:t.effectiveType,navigatorConnectionType:(n=navigator.connection)==null?void 0:n.type,navigatorSaveData:(r=navigator.connection)==null?void 0:r.saveData,navigatorDownlink:(i=navigator.connection)==null?void 0:i.downlink}}),m(this,`onOnline`,()=>this.isOnlineCount++),m(this,`onOffline`,()=>this.isOfflineCount++),m(this,`onPageHide`,e=>this.emitter.emit(`pagehide`,e)),m(this,`onVisibilityChanged`,()=>{this.setIsActive(document.visibilityState===`visible`)}),m(this,`setIsActive`,e=>{e!==this.isActive&&(this.emitter.emit(`page active`,e),e?this.isVisibleCount++:this.isHiddenCount++),this.isActive=e}),this.emitter=e}get isOnline(){return navigator.onLine}get isVisible(){return document.visibilityState===`visible`}};Yy=Xy,m(Xy,`create`,e=>new Yy(e)),V(),h(),z();var Zy,Qy=e=>(t,n,r)=>t.timestamp<=n||t.timestampAdded<=r-e,$y=class e{constructor(t,n,r){m(this,`logger`,void 0),m(this,`emitter`,void 0),m(this,`waitingEvents`,[]),m(this,`isTriggered`,Qy(e.EVENT_TIMEOUT)),m(this,`timeSource`,void 0),m(this,`timers`,new Vn),m(this,`load`,()=>{this.timers.setInterval(this.onBufferedStateChanged,e.EVENT_CHECK_INTERVAL),this.emitter.on(`add event`,this.addEvent)}),m(this,`unload`,()=>{this.timers.unload(),this.emitter.off(`add event`,this.addEvent)}),m(this,`addEvent`,e=>{this.logger.debug(`Adding event`,{event:e}),!this.waitingEvents.some(t=>t.id!==void 0&&t.id===e.id)&&this.waitingEvents.push(R(R({},e),{},{timestampAdded:Date.now()}))}),m(this,`extractEvent`,(e,t)=>{t.type===`video`&&e.channelId!==t.channelId&&this.addEvent({type:`channel switch`,channelId:t.channelId,timestamp:t.timestamp/t.timescale*1e3}),t.type===`audio`&&e.type===`audio`&&t.language!==void 0&&t.language!==e.language&&this.addEvent({type:`language switch`,language:t.language,timestamp:t.timestamp/t.timescale*1e3})}),m(this,`onBufferedStateChanged`,()=>{var e;let t=Date.now(),n=(e=this.timeSource.drift)==null?0:e,r=this.timeSource.serverCurrentTime-n;if(this.waitingEvents.length===0)return;let i=this.waitingEvents.filter(e=>this.isTriggered(e,r,t));this.waitingEvents=this.waitingEvents.filter(e=>!this.isTriggered(e,r,t)),i.forEach(e=>{this.logger.debug(`Emitting event`,{event:e}),this.emitter.emit(`event`,e)})}),this.logger=n,this.emitter=t,this.timeSource=r}};Zy=$y,m($y,`EVENT_TIMEOUT`,5e3),m($y,`EVENT_CHECK_INTERVAL`,20),m($y,`create`,(e,t,n)=>new Zy(e,t,n)),Ti(),V(),h();var eb,tb=class e{constructor(t){m(this,`emitter`,void 0),m(this,`timers`,Vn.create()),m(this,`bytesReceived`,new Map),m(this,`timeoutInterval`,void 0),m(this,`lastBytesUpdated`,Date.now()),m(this,`load`,()=>{this.emitter.on(`connection state`,this.onConnectionState),this.timers.setInterval(()=>this.bytesReceived.forEach(e=>e.tick()),100)}),m(this,`unload`,()=>{this.emitter.off(`connection state`,this.onConnectionState),this.timers.unload()}),m(this,`averageBitRate`,e=>{var t,n;return((t=(n=this.bytesReceived.get(e))==null?void 0:n.average)==null?0:t)*8}),m(this,`totalBytesReceived`,()=>{let e=0;return this.bytesReceived.forEach(t=>{e+=t.total}),e}),m(this,`add`,(t,n)=>{let r=this.bytesReceived.get(t);r||(r=new Lt(20),this.bytesReceived.set(t,r)),n>0&&(this.lastBytesUpdated=Date.now(),this.timeoutInterval||(this.timeoutInterval=this.timers.setInterval(this.checkTimeout,e.UPDATE_RECEIVED_BYTES_INTERVAL))),r.add(n)}),m(this,`getStatistics`,()=>({bytesReceived:this.totalBytesReceived(),videoBitRate:this.averageBitRate(`video`),audioBitRate:this.averageBitRate(`audio`)})),m(this,`onConnectionState`,t=>{this.clearTimeoutInterval(),t===`connected`&&(this.lastBytesUpdated=Date.now(),this.timeoutInterval=this.timers.setInterval(this.checkTimeout,e.UPDATE_RECEIVED_BYTES_INTERVAL))}),m(this,`checkTimeout`,()=>{let t=Date.now()-this.lastBytesUpdated;if(this.totalBytesReceived()===0&&t>e.NO_DATA_ERROR_TIMEOUT){this.emitter.emit(`error`,vi()),this.emitter.emit(`reconnect`,`no incoming data`),this.clearTimeoutInterval();return}t>e.NO_DATA_TIMEOUT&&this.totalBytesReceived()>0&&(this.emitter.emit(`no data timeout`,this.totalBytesReceived()),this.clearTimeoutInterval())}),m(this,`clearTimeoutInterval`,()=>{this.timeoutInterval&&(this.timers.clearInterval(this.timeoutInterval),this.timeoutInterval=void 0)}),this.emitter=t}};eb=tb,m(tb,`NO_DATA_ERROR_TIMEOUT`,20*1e3),m(tb,`NO_DATA_TIMEOUT`,5*1e3),m(tb,`UPDATE_RECEIVED_BYTES_INTERVAL`,1e3),m(tb,`create`,e=>new eb(e)),V(),h();var nb=1e3,rb=50,ib=class e{constructor(e){m(this,`logger`,void 0),m(this,`trackingState`,new Map),m(this,`runningJitter`,new Map),m(this,`recentJitterSamples`,new Map),m(this,`load`,()=>{this.logger.debug(`JitterModule loaded`)}),m(this,`unload`,()=>{this.trackingState.clear(),this.runningJitter.clear(),this.recentJitterSamples.clear(),this.logger.debug(`JitterModule unloaded`)}),this.logger=e}static create(t){return new e(t)}getTrackingKey(e,t){return`${e}-${t}`}recordSample(e){var t,n,r,i;let a=this.getTrackingKey(e.type,e.renditionId),o=(t=(n=globalThis.performance)==null||(r=n.now)==null?void 0:r.call(n))==null?Date.now():t,s=e.timestamp/e.timescale*1e3,c=this.trackingState.get(a);if(!c){this.trackingState.set(a,{lastArrivalTime:o,lastTimestampMs:s,jitterSamples:new C(nb),interArrivalTimes:new C(nb)}),this.runningJitter.set(a,0),this.recentJitterSamples.set(a,new C(rb));return}let l=s-c.lastTimestampMs;if(l<=0){c.lastArrivalTime=o,c.lastTimestampMs=s;return}let u=o-c.lastArrivalTime,d=Math.abs(u-l);c.jitterSamples.push(d),c.interArrivalTimes.push(u);let f=(i=this.runningJitter.get(a))==null?0:i,p=f+(d-f)/16;this.runningJitter.set(a,p);let m=this.recentJitterSamples.get(a);m||(m=new C(rb),this.recentJitterSamples.set(a,m)),m.push(d),c.lastArrivalTime=o,c.lastTimestampMs=s}getJitterForType(e){for(let[i,a]of this.trackingState)if(i.startsWith(e)){var t,n,r;if(a.jitterSamples.items().length<1)return;let e=(t=this.runningJitter.get(i))==null?0:t,{min:o,max:s,average:c}=Pt((n=(r=this.recentJitterSamples.get(i))==null?void 0:r.items())==null?[]:n);return{min:Math.round(o),max:Math.round(s),last:Math.round(c),average:Math.round(e)}}}getRunningJitter(e){for(let[t,n]of this.runningJitter)if(t.startsWith(e))return n}reset(e,t){if(e!==void 0&&t!==void 0){let n=this.getTrackingKey(e,t);this.trackingState.delete(n),this.runningJitter.delete(n),this.recentJitterSamples.delete(n)}else if(e!==void 0)for(let t of this.trackingState.keys())t.startsWith(e)&&(this.trackingState.delete(t),this.runningJitter.delete(t),this.recentJitterSamples.delete(t));else this.trackingState.clear(),this.runningJitter.clear(),this.recentJitterSamples.clear()}getStatistics(){return{audioJitter:this.getJitterForType(`audio`),videoJitter:this.getJitterForType(`video`)}}};Ti(),V(),h(),N();var ab=()=>window.AudioContext||window.webkitAudioContext,ob=class e extends Ht{constructor(){var t;super(),t=this,m(this,`context`,new(ab())),m(this,`timers`,Vn.create()),m(this,`previousCurrentTime`,0),m(this,`_isStuck`,!1),m(this,`mediaStreamDestination`,void 0),m(this,`unload`,()=>(this.timers.unload(),this.context.removeEventListener(`statechange`,this.onStateChange),this.context.state===`closed`?Promise.resolve():this.context.close())),m(this,`createGain`,()=>this.context.createGain()),m(this,`createBuffer`,(e,t,n)=>this.context.createBuffer(e,t,n)),m(this,`createBufferSource`,()=>this.context.createBufferSource()),m(this,`getMediaStreamDestination`,()=>(this.mediaStreamDestination||(this.mediaStreamDestination=this.context.createMediaStreamDestination()),this.mediaStreamDestination)),m(this,`getDefaultDestination`,()=>this.context.destination),m(this,`createSplitter`,()=>this.context.createChannelSplitter(2)),m(this,`resume`,M(function*(){try{return yield Promise.race([t.context.resume(),ir(1e3,fi())])}catch(e){throw t.suspend().catch(x),e}})),m(this,`suspend`,M(function*(){var e;yield(e=t.context.suspend())==null?Promise.resolve():e})),m(this,`onStateChange`,()=>this.emit(`state`,this.state)),this.context.addEventListener(`statechange`,this.onStateChange),this.timers.setInterval(()=>{this._isStuck=this.isRunning&&this.context.currentTime===this.previousCurrentTime,this._isStuck&&this.emit(`stuck`),this.previousCurrentTime=this.context.currentTime},e.CHECK_INTERVAL)}get isStuck(){return this._isStuck}get isRunning(){return this.state===`running`}get currentTime(){return this.context.currentTime}get sampleRate(){return this.context.sampleRate}get state(){return this.context.state}};m(ob,`CHECK_INTERVAL`,1e3),Ti(),V(),h(),N(),z();var sb,cb=150,lb=400,ub=e=>e===void 0?5:e<=cb?1:e<=lb?2:5,db=class extends Ht{get isContextRunning(){var e;return((e=this.audio)==null?void 0:e.state)===`running`}get volume(){return this._volume}set volume(e){this._volume=e,this.muted||this.setGain(e)}get seekTime(){return 0}get totalSeekTime(){return 0}get isSeeking(){return!1}get muted(){var e;return this._muted||!((e=this.audio)!=null&&e.isRunning)}set muted(e){this._userProvidedMuted=e,this._muted=e,this.setGain(this._volume)}get isPaused(){return!1}get currentTime(){var e;return!this.audio||!this.audio.isRunning||this.audio.isStuck?this.clockSource.currentTime:this.audio.currentTime*1e3+((e=this.clockDelta)==null?0:e)}set currentTime(e){this.logger.debug(`setting current time to`,{currentTime:e}),this.startTimeIsInvalidated=!0}get bufferTime(){return this._bufferTime}set bufferTime(e){this._bufferTime=e,this.audioBufferMultiplier=ub(e)}get audioNode(){return this.splitter}constructor(e,t,{muted:n,reInitWhenStuck:r,bufferTime:i}){var a;super(),a=this,m(this,`logger`,void 0),m(this,`audio`,void 0),m(this,`gainNode`,void 0),m(this,`splitter`,void 0),m(this,`_volume`,1),m(this,`_userProvidedMuted`,!1),m(this,`_muted`,!1),m(this,`startTime`,0),m(this,`samples`,new Float32Array),m(this,`preInitSampleQueue`,new C(500)),m(this,`unplayedBufferSources`,new C(100)),m(this,`sampleRate`,48e3),m(this,`channels`,2),m(this,`index`,0),m(this,`clockSource`,void 0),m(this,`clockDelta`,void 0),m(this,`startTimeIsInvalidated`,!0),m(this,`lastSampleTimestamp`,0),m(this,`reInitWhenStuck`,void 0),m(this,`ignoreSuspendCalls`,!1),m(this,`_bufferTime`,void 0),m(this,`audioBufferMultiplier`,void 0),m(this,`isActivated`,!1),m(this,`unload`,M(function*(){var e,t;(e=a.gainNode)==null||e.disconnect(),yield(t=a.audio)==null?void 0:t.unload(),a.reset(),a.audio=void 0,a.gainNode=void 0})),m(this,`suspend`,()=>{this.setGain(0)}),m(this,`unsuspend`,()=>{var e;this.setGain(this._volume),this.ignoreSuspendCalls=!!this.audio,(e=this.audio)==null||e.suspend().then(M(function*(){yield a.resume(),a.ignoreSuspendCalls=!1})).catch(()=>{this.ignoreSuspendCalls=!1,this.emit(`state change`,`suspended`)})}),m(this,`flush`,(e=this.samples.length)=>{if(!this.audio||!this.gainNode)throw new H(`AudioContext must be initialized to flush`,{isFatal:!1,code:`audiocontext_must_be_initialized`});let t=Math.floor(e/this.channels);if(t<=0)return;let n=this.audio.createBufferSource(),r=this.audio.createBuffer(this.channels,t,this.sampleRate);if(this.channels===2){let e=r.getChannelData(0),n=r.getChannelData(1);for(let r=0;r<t;r++){let t=r*2;e[r]=this.samples[t],n[r]=this.samples[t+1]}}else if(this.channels===1)r.getChannelData(0).set(this.samples.subarray(0,t));else{let e=0;for(let n=0;n<this.channels;n++){e=n;let i=r.getChannelData(n);for(let n=0;n<t;n++)i[n]=this.samples[e],e+=this.channels}}let i=Math.max(this.startTime,0);n.buffer=r,n.connect(this.gainNode),this.splitter&&n.connect(this.splitter),n.start(i),this.unplayedBufferSources.push([i,n]),this.startTime+=r.duration}),m(this,`onDecodedFrame`,e=>{var t;if(!(this.gainNode&&(t=this.audio)!=null&&t.isRunning)){if(e.type===`audio`){this.preInitSampleQueue.push(R(R({},e),{},{data:e.data.slice(0,e.data.length)}));let t=this.clockSource.currentTime;this.preInitSampleQueue.filterPop(({timestamp:e,timescale:n})=>e/n*1e3>t)}return}for(;!this.preInitSampleQueue.isEmpty();){let e=this.preInitSampleQueue.items();this.preInitSampleQueue.clear(),e.forEach(this.onDecodedFrame)}if(this.unplayedBufferSources.filterPop(([e,t])=>{var n,r;return((n=(r=this.audio)==null?void 0:r.currentTime)==null?0:n)<e}),e.type===`audio`){let t=e.timestamp/e.timescale*1e3;if(t<this.lastSampleTimestamp&&(this.logger.info(`Unordered timestamp - invalidating start time`),this.startTimeIsInvalidated=!0),this.lastSampleTimestamp=t,this.startTimeIsInvalidated){let e=this.audio.currentTime*1e3,n=this.clockSource.currentTime,r=(e+t-n)/1e3;this.clockDelta=n-e,this.startTime=r,this.startTimeIsInvalidated=!1,this.unplayedBufferSources.items().forEach(([e,t])=>{r<=e&&t.stop()})}let n=e.data.length*this.audioBufferMultiplier;this.samples.length!==n&&(this.index>0&&this.flush(this.index),this.samples=new Float32Array(n),this.index=0),this.channels=e.channels,this.sampleRate=e.sampleRate,this.samples.set(e.data,this.index),this.index+=e.data.length,this.samples.length<=this.index&&(this.flush(this.samples.length),this.index=0)}}),m(this,`play`,M(function*(){a.audio=a.getAudioContext(),yield a.resume()})),m(this,`pause`,()=>{}),m(this,`flushBuffer`,()=>{var e,t;this.unplayedBufferSources.items().forEach(([e,t])=>{try{t.stop()}catch(e){}}),this.unplayedBufferSources.clear(),this.preInitSampleQueue.clear(),this.samples=new Float32Array,this.index=0,this.lastSampleTimestamp=0,this.startTime=(e=(t=this.audio)==null?void 0:t.currentTime)==null?0:e,this.startTimeIsInvalidated=!0}),m(this,`resume`,M(function*(){if(!a._userProvidedMuted)try{var e;yield(e=a.audio)==null?void 0:e.resume(),a._muted=a._userProvidedMuted,a.startTimeIsInvalidated=!0}catch(e){throw a._muted=!0,e}})),m(this,`getAudioContext`,()=>this.audio?this.audio:this.setupContext()),m(this,`setupContext`,()=>{var e,t,n;return(e=this.audio)==null||e.unload(),this.audio=new ob,this.audio.on(`state`,e=>{this.logger.info(`AudioContext state change`,{state:e}),e===`running`&&(this._muted=this._userProvidedMuted,this.setGain(this._volume)),!this.ignoreSuspendCalls&&this.emit(`state change`,e)}),this.audio.on(`stuck`,()=>{this.reInitWhenStuck&&(this.logger.info(`Re-init audio context`),this.setupContext(),this.resume().catch(x),this.emit(`stuck`))}),(t=this.gainNode)==null||t.disconnect(),this.gainNode=this.audio.createGain(),this.setGain(this._volume),this.startTime=this.audio.currentTime,(n=this.splitter)==null||n.disconnect(),this.splitter=this.audio.createSplitter(),this.audio}),m(this,`setGain`,e=>{this.gainNode&&(this.gainNode.gain.value=this._muted?0:e)}),this._muted=n,this._userProvidedMuted=n,this.logger=e,this.clockSource=t,this.reInitWhenStuck=r,this._bufferTime=i,this.audioBufferMultiplier=ub(i)}useMediaStreamDestination(){var e;let t=this.getAudioContext(),n=t.getMediaStreamDestination();return(e=this.gainNode)==null||e.connect(n),t.isRunning||t.resume().catch(()=>{}),n}useDefaultDestination(){var e;let t=this.getAudioContext().getDefaultDestination();return(e=this.gainNode)==null||e.connect(t),t}};sb=db,m(db,`create`,(e,t,n)=>new sb(e,t,n)),h();var fb,pb=class{constructor(e,t,n,r,i,a){m(this,`staleFrameThresholdMs`,400),m(this,`pool`,void 0),m(this,`logger`,void 0),m(this,`videoRenderer`,new Wi),m(this,`videoFrameCanvas2DRenderer`,null),m(this,`renderQueue`,[]),m(this,`clockSource`,void 0),m(this,`isFirstFrame`,!0),m(this,`usingWebCodecs`,!1),m(this,`onCanvasChangeCallback`,void 0),m(this,`onRendererErrorCallback`,void 0),m(this,`animationFrameRequest`,void 0),m(this,`firstFrameAnimationFrameRequest`,void 0),m(this,`pendingFirstFrameSample`,void 0),m(this,`renderedFrameCount`,0),m(this,`rendererDroppedFrameCount`,0),m(this,`renderTargetSize`,void 0),m(this,`load`,()=>{this.videoRenderer.load(),this.subscribeToContextLost(this.videoRenderer)}),m(this,`unload`,()=>(this.stopRender(),this.clearRenderQueue(),this.unsubscribeFromContextLost(this.videoRenderer),this.videoRenderer.unload(),this.videoFrameCanvas2DRenderer&&(this.unsubscribeFromContextLost(this.videoFrameCanvas2DRenderer),this.videoFrameCanvas2DRenderer.unload()),Promise.resolve())),m(this,`suspend`,()=>{this.clearRenderQueue(),this.stopRender()}),m(this,`unsuspend`,()=>{this.animationFrameRequest===void 0&&(this.animationFrameRequest=requestAnimationFrame(this.render))}),m(this,`element`,()=>this.usingWebCodecs&&this.videoFrameCanvas2DRenderer?this.videoFrameCanvas2DRenderer.canvas:this.videoRenderer.canvas),m(this,`getStatistics`,()=>({renderedFrameCount:this.renderedFrameCount,rendererDroppedFrameCount:this.rendererDroppedFrameCount})),m(this,`resetSize`,()=>{this.videoRenderer.resetSize()}),m(this,`setActiveCues`,(e,t)=>{this.usingWebCodecs&&this.videoFrameCanvas2DRenderer?this.videoFrameCanvas2DRenderer.setActiveCues(e,t):this.usingWebCodecs||this.videoRenderer.getTextRenderer().setActiveCues(e,t)}),m(this,`onDecodedFrame`,e=>{if(e.type===`video`)if(this.isFirstFrame)this.isFirstFrame=!1,this.pendingFirstFrameSample=e,this.firstFrameAnimationFrameRequest=requestAnimationFrame(()=>{this.firstFrameAnimationFrameRequest=void 0;let e=this.pendingFirstFrameSample;this.pendingFirstFrameSample=void 0,e&&this.renderSample(e)});else{let t=(this.clockSource.currentTime-this.staleFrameThresholdMs)/1e3;this.renderQueue=this.renderQueue.filter(n=>{let r=this.samplePresentationTime(n),i=this.samplePresentationTime(e),a=r>t&&r<=i;return a||this.releaseSampleResources(n),a}),this.renderQueue.push(e)}}),m(this,`render`,()=>{let e=this.clockSource.currentTime,t=this.renderQueue[0],n,r=0;for(;t&&this.samplePresentationTime(t)*1e3<=e;)t=this.renderQueue.shift(),t&&(r++,n&&this.releaseSampleResources(n),n=t),t=this.renderQueue[0];n&&this.renderSample(n),this.rendererDroppedFrameCount+=Math.max(r-1,0),this.animationFrameRequest=requestAnimationFrame(this.render)}),m(this,`renderSample`,e=>{if(this.renderedFrameCount++,e.videoFrame){let n=this.videoFrameCanvas2DRenderer;if(!this.usingWebCodecs){var t;this.logger.info(`Switching to Canvas2D renderer for WebCodecs`),n||(n=new Ir,n.load(),this.subscribeToContextLost(n),this.videoFrameCanvas2DRenderer=n);let e=this.videoRenderer.canvas,r=n.canvas;if(e.parentElement)try{e.parentElement.replaceChild(r,e)}catch(e){}this.usingWebCodecs=!0,(t=this.onCanvasChangeCallback)==null||t.call(this)}n?n.render(e,this.getSubtitlePadding()):this.videoRenderer.render(e,this.renderTargetSize),e.videoFrame.close()}else{if(this.usingWebCodecs){var n;this.logger.info(`Switching back to WebGL renderer for WASM`);let t=this.videoFrameCanvas2DRenderer;if(!t){this.usingWebCodecs=!1,this.videoRenderer.render(e,this.renderTargetSize),e.buffer.byteLength>0&&this.pool.reclaim(e.buffer);return}let r=t.canvas,i=this.videoRenderer.canvas;if(r.parentElement)try{r.parentElement.replaceChild(i,r)}catch(e){}this.usingWebCodecs=!1,(n=this.onCanvasChangeCallback)==null||n.call(this)}this.videoRenderer.render(e,this.renderTargetSize)}e.buffer.byteLength>0&&this.pool.reclaim(e.buffer)}),m(this,`stopRender`,()=>{this.animationFrameRequest!==void 0&&(cancelAnimationFrame(this.animationFrameRequest),this.animationFrameRequest=void 0),this.firstFrameAnimationFrameRequest!==void 0&&(cancelAnimationFrame(this.firstFrameAnimationFrameRequest),this.firstFrameAnimationFrameRequest=void 0),this.pendingFirstFrameSample&&(this.releaseSampleResources(this.pendingFirstFrameSample),this.pendingFirstFrameSample=void 0)}),m(this,`clearRenderQueue`,()=>{this.renderQueue.forEach(e=>{this.releaseSampleResources(e)}),this.renderQueue=[]}),m(this,`onRendererContextLost`,e=>{var t;(t=this.onRendererErrorCallback)==null||t.call(this,e)}),m(this,`subscribeToContextLost`,e=>{let t=e;typeof t.on==`function`&&t.on(`context lost`,this.onRendererContextLost)}),m(this,`unsubscribeFromContextLost`,e=>{let t=e;typeof t.off==`function`&&t.off(`context lost`,this.onRendererContextLost)}),m(this,`getSubtitlePadding`,()=>{let e=this.renderTargetSize.style.getPropertyValue(`--vindral-subtitle-offset`)||this.renderTargetSize.style.getPropertyValue(`--vindral-control-bar-offset`),t=parseInt(e||`0`,10);return Number.isNaN(t)?0:-t}),m(this,`samplePresentationTime`,e=>(e.timestamp+(e.compositionTimeOffset||0))/e.timescale),m(this,`releaseSampleResources`,e=>{try{var t;(t=e.videoFrame)==null||t.close()}catch(e){}e.buffer.byteLength>0&&this.pool.reclaim(e.buffer)}),this.logger=e,this.clockSource=t,this.pool=n,this.renderTargetSize=r||this.videoRenderer.canvas,this.onCanvasChangeCallback=i,this.onRendererErrorCallback=a}};fb=pb,m(pb,`create`,(e,t,n,r,i,a)=>new fb(e,t,n,r,i,a)),T(),k(),j();var mb=new WeakMap,hb=class{constructor(){w(this,mb,[]),O(mb,this,[])}addTextTrack(e,t,n){let r=[],i={kind:e,label:t,language:n,mode:`disabled`,cues:r,addCue:e=>{r.push(e)},removeCue:e=>{let t=r.findIndex(t=>t===e);t!==-1&&r.splice(t,1)}};return A(mb,this).push(i),i}set language(e){A(mb,this).forEach(t=>{t.language===e?t.mode=`showing`:t.mode=`hidden`})}get language(){var e;return(e=A(mb,this).find(e=>e.mode===`showing`))==null?void 0:e.language}getActiveCues(e){let t=A(mb,this).find(e=>e.mode===`showing`);return t?t.cues.filter(({startTime:t,endTime:n})=>e>=t&&e<=n):[]}};V(),h();var gb=(e,t)=>{let n;for(n=t;e>1;e--)n+=t;return n},_b=class{constructor(){m(this,`audio`,void 0),m(this,`unmute`,()=>this.audio.play().catch(x));let e=document.createElement(`div`);e.innerHTML=`<audio x-webkit-airplay='deny'></audio>`;let t=e.children.item(0);if(t instanceof HTMLAudioElement)this.audio=t,this.audio.controls=!1,this.audio.disableRemotePlayback=!0,this.audio.preload=`auto`,this.audio.src=`data:audio/mpeg;base64,//uQx`+gb(23,`A`)+`WGluZwAAAA8AAAACAAACcQCA`+gb(16,`gICA`)+gb(66,`/`)+`8AAABhTEFNRTMuMTAwA8MAAAAAAAAAABQgJAUHQQAB9AAAAnGMHkkI`+gb(320,`A`)+`//sQxAADgnABGiAAQBCqgCRMAAgEAH`+gb(15,`/`)+`7+n/9FTuQsQH//////2NG0jWUGlio5gLQTOtIoeR2WX////X4s9Atb/JRVCbBUpeRUq`+gb(18,`/`)+`9RUi0f2jn/+xDECgPCjAEQAABN4AAANIAAAAQVTEFNRTMuMTAw`+gb(97,`V`)+`Q==`,this.audio.loop=!1,this.audio.load();else throw Error(`Failed to create audio tag`)}};Ti(),V(),h();var vb,yb=class{constructor(e,t,n,r,i,a,o,s){m(this,`logger`,void 0),m(this,`emitter`,void 0),m(this,`audioPlayer`,void 0),m(this,`videoPlayer`,void 0),m(this,`pool`,void 0),m(this,`unmuter`,new _b),m(this,`_isPaused`,!1),m(this,`isDisconnected`,!1),m(this,`timers`,new Vn),m(this,`isVideoRenderingEnabled`,!0),m(this,`isLoaded`,!1),m(this,`isSuspended`,!0),m(this,`isVideoPlayerLoaded`,!1),m(this,`textTracks`,new hb),m(this,`playbackRate`,void 0),m(this,`reset`,()=>{}),m(this,`load`,()=>{this.audioPlayer.useDefaultDestination(),this.emitter.on(`decoded frame`,this.onDecodedFrame),this.emitter.on(`flush buffers`,this.flushBuffers),this.isLoaded=!0,this.isVideoRenderingEnabled&&(this.videoPlayer.load(),this.isVideoPlayerLoaded=!0,this.startTextTrackInterval())}),m(this,`unload`,()=>{this.emitter.off(`target buffer time`,this.onTargetBufferTime),this.emitter.off(`decoded frame`,this.onDecodedFrame),this.emitter.off(`flush buffers`,this.flushBuffers),this.audioPlayer.unload(),this.isVideoPlayerLoaded&&(this.videoPlayer.unload(),this.isVideoPlayerLoaded=!1),this.timers.unload(),this.isLoaded=!1}),m(this,`suspend`,()=>{this.isSuspended=!0,this.isVideoRenderingEnabled&&this.videoPlayer.suspend(),this.audioPlayer.suspend()}),m(this,`unsuspend`,()=>{this.isSuspended=!1,this.isVideoRenderingEnabled&&this.videoPlayer.unsuspend(),this.audioPlayer.unsuspend()}),m(this,`setVideoRenderingEnabled`,e=>{if(e!==this.isVideoRenderingEnabled&&(this.isVideoRenderingEnabled=e,this.isLoaded)){if(!e){this.timers.unload(),this.videoPlayer.suspend();return}this.isVideoPlayerLoaded||(this.videoPlayer.load(),this.isVideoPlayerLoaded=!0),this.startTextTrackInterval(),this.isSuspended||this.videoPlayer.unsuspend()}}),m(this,`element`,()=>this.videoPlayer.element()),m(this,`getStatistics`,()=>this.videoPlayer.getStatistics()),m(this,`startTextTrackInterval`,()=>{this.timers.setInterval(()=>{if(!this.textTracks.language)return;let e=this.textTracks.getActiveCues(this.currentTime/1e3);this.videoPlayer.setActiveCues(e,{width:this.videoPlayer.element().clientWidth,height:this.videoPlayer.element().clientHeight})},100)}),m(this,`flushBuffers`,()=>{this.audioPlayer.flushBuffer()}),m(this,`onTargetBufferTime`,e=>{this.audioPlayer.bufferTime=e}),m(this,`activateAudioPlayer`,()=>(this.isDisconnected&&(this.isDisconnected=!1,this.audioPlayer.useDefaultDestination()),this._isPaused=!1,this.unmuter.unmute(),this.audioPlayer.play())),m(this,`onDecodedFrame`,e=>{try{this.audioPlayer.onDecodedFrame(e)}catch(e){e instanceof Error&&this.emitter.emit(`error`,si(!1,e))}this.isVideoRenderingEnabled&&this.videoPlayer.onDecodedFrame(e)}),this.logger=t,this.emitter=e,this.pool=n,this.emitter.on(`target buffer time`,this.onTargetBufferTime),this.audioPlayer=db.create(this.logger.createContext(`AudioPlayerModule`),r,{muted:i,reInitWhenStuck:!0,bufferTime:s}),a!==void 0&&(this.audioPlayer.volume=a),this.audioPlayer.on(`stuck`,()=>{this.isDisconnected=!0}),this.audioPlayer.on(`state change`,()=>{this.emitter.emit(`volume state`,{volume:this.volume,isMuted:this.muted})}),this.videoPlayer=pb.create(this.logger.createContext(`VideoPlayerModule`),this.audioPlayer,this.pool,void 0,o)}get volume(){return this.audioPlayer.volume}set volume(e){this.audioPlayer.volume=e}get muted(){return this.audioPlayer.muted}set muted(e){let t=this.muted;this.audioPlayer.muted=e,!e&&t&&this.activateAudioPlayer().catch(x)}get currentTime(){return this.audioPlayer.currentTime}set currentTime(e){this.audioPlayer.currentTime=e}get isActivated(){return this.audioPlayer.isActivated}set isActivated(e){this.audioPlayer.isActivated=e}get seekTime(){return this.audioPlayer.seekTime}get totalSeekTime(){return this.audioPlayer.totalSeekTime}get isPaused(){return this._isPaused}get isSeeking(){return this.audioPlayer.isSeeking}get audioNode(){return this.audioPlayer.audioNode}play(){this.activateAudioPlayer().then(()=>{this.emitter.emit(`media element state`,`playing`)}).catch(()=>{this.emitter.emit(`needs user input`,{forAudio:!0,forVideo:!1})})}pause(){this._isPaused=!0,this.audioPlayer.pause(),this.emitter.emit(`media element state`,`paused`)}};vb=yb,m(yb,`create`,(e,t,n,r,i,a,o,s)=>new vb(e,t,n,r,i,a,o,s)),Ti(),V(),h();var bb,xb=class{constructor(e,t,n,r,{muted:i,volume:a,type:o,poster:s,offscreenCanvas:c,bufferTime:l}){m(this,`logger`,void 0),m(this,`emitter`,void 0),m(this,`mediaElement`,void 0),m(this,`audioPlayer`,void 0),m(this,`videoPlayer`,void 0),m(this,`pool`,void 0),m(this,`isDisconnected`,!0),m(this,`_userProvidedMuted`,!1),m(this,`timers`,new Vn),m(this,`offscreenCanvas`,void 0),m(this,`nativeTextTrack`,void 0),m(this,`nativeTrackCues`,[]),m(this,`volumeState`,void 0),m(this,`textTracks`,new hb),m(this,`reset`,()=>{}),m(this,`load`,()=>{this.mediaElement.load(),this.emitter.on(`decoded frame`,this.onDecodedFrame),this.emitter.on(`flush buffers`,this.flushBuffers),this.emitter.on(`ios-hack: reset size`,this.resetCanvasSize),this.emitter.on(`enter picture in picture`,this.onEnterIOSHack),this.emitter.on(`exit picture in picture`,this.onExitIOSHack),this.element().element.addEventListener(`webkitendfullscreen`,this.onExitIOSHack),this.element().element.addEventListener(`webkitbeginfullscreen`,this.onEnterIOSHack),this.videoPlayer.load(),this.nativeTextTrack=this.mediaElement.element.addTextTrack(`subtitles`,``,``),this.nativeTextTrack.mode=`showing`,this.timers.setInterval(()=>{if(!this.textTracks.language){this.clearNativeTrackCues();return}let e=this.textTracks.getActiveCues(this.currentTime/1e3);this.updateNativeTrackCues(e)},100)}),m(this,`unload`,()=>{this.emitter.off(`target buffer time`,this.onTargetBufferTime),this.emitter.off(`decoded frame`,this.onDecodedFrame),this.emitter.off(`flush buffers`,this.flushBuffers),this.emitter.off(`ios-hack: reset size`,this.resetCanvasSize),this.emitter.off(`enter picture in picture`,this.onEnterIOSHack),this.emitter.off(`exit picture in picture`,this.onExitIOSHack),this.element().element.removeEventListener(`webkitendfullscreen`,this.onExitIOSHack),this.element().element.removeEventListener(`webkitbeginfullscreen`,this.onEnterIOSHack),this.clearNativeTrackCues(),this.nativeTextTrack=void 0,this.mediaElement.unload(),this.timers.unload(),this.audioPlayer.unload(),this.videoPlayer.unload()}),m(this,`suspend`,()=>{this.videoPlayer.suspend(),this.audioPlayer.suspend()}),m(this,`unsuspend`,()=>{this.videoPlayer.unsuspend(),this.audioPlayer.unsuspend()}),m(this,`element`,()=>this.mediaElement),m(this,`getStatistics`,()=>this.videoPlayer.getStatistics()),m(this,`activateAudioPlayer`,()=>(this.isDisconnected&&this.connectStreams(),this.audioPlayer.play())),m(this,`flushBuffers`,()=>{this.audioPlayer.flushBuffer()}),m(this,`onTargetBufferTime`,e=>{this.audioPlayer.bufferTime=e}),m(this,`resetCanvasSize`,()=>{this.videoPlayer.resetSize()}),m(this,`onEnterIOSHack`,()=>{this.mediaElement._iosHackEnterPiPMode()}),m(this,`onExitIOSHack`,()=>{this.mediaElement._iosHackExitPiPMode()}),m(this,`onDecodedFrame`,e=>{try{this.audioPlayer.onDecodedFrame(e)}catch(e){e instanceof Error&&this.emitter.emit(`error`,si(!1,e))}this.offscreenCanvas||this.videoPlayer.onDecodedFrame(e)}),m(this,`onVideoPlayerError`,e=>{if(e instanceof H){this.emitter.emit(`error`,e);return}this.emitter.emit(`error`,ai(!1,e))}),m(this,`connectStreams`,()=>{let e=this.offscreenCanvas||this.videoPlayer.element();this.logger.info(`Connecting streams using ${this.offscreenCanvas?`OffscreenCanvas`:`VideoPlayer`} canvas (${e.width}x${e.height})`);let t=e.captureStream(),n=this.audioPlayer.useMediaStreamDestination().stream,r=[...t.getTracks(),...n.getTracks()];this.logger.info(`Video tracks: ${t.getTracks().length}, Audio tracks: ${n.getTracks().length}`);let i=this.mediaElement.element.srcObject;i instanceof MediaStream&&i.getVideoTracks().forEach(e=>e.stop()),this.mediaElement.element.srcObject=new MediaStream(r),this.isDisconnected=!1}),m(this,`setOffscreenCanvas`,e=>{this.offscreenCanvas!==e&&(this.offscreenCanvas=e,this.reconnectCanvasStream())}),m(this,`reconnectCanvasStream`,()=>{if(!this.isDisconnected){let e=!this.mediaElement.element.paused;this.logger.info(`Reconnecting canvas stream after renderer change`,{wasPlaying:e}),this.connectStreams(),e&&this.mediaElement.tryPlay()}}),m(this,`clearNativeTrackCues`,()=>{if(this.nativeTextTrack){for(let e of this.nativeTrackCues)try{this.nativeTextTrack.removeCue(e)}catch(e){}this.nativeTrackCues=[]}}),m(this,`updateNativeTrackCues`,e=>{let t=this.nativeTextTrack;if(!t)return;let n=e.map(e=>e.text),r=this.nativeTrackCues.map(e=>e.text);if(!(n.length===r.length&&n.every((e,t)=>e===r[t]))){this.clearNativeTrackCues();for(let n of e){let e=new VTTCue(0,999999999,n.text);t.addCue(e),this.nativeTrackCues.push(e)}}}),m(this,`updateVolumeState`,()=>{let e={isMuted:this.muted,volume:this.volume};Bt(e,this.volumeState)||(this.volumeState=e,this.emitter.emit(`volume state`,this.volumeState))}),this.logger=t,this.emitter=e,this.pool=n,this._userProvidedMuted=i,this.offscreenCanvas=c,this.emitter.on(`target buffer time`,this.onTargetBufferTime),this.mediaElement=new il({poster:s,type:o,muted:i,volume:a,autoplay:!1,logger:this.logger.createContext(`MediaElement`)}),this.mediaElement.on(`volume state`,e=>{this.updateVolumeState(),!e.isMuted&&!this.audioPlayer.isContextRunning&&this.activateAudioPlayer().catch(x),e.isMuted||(this._userProvidedMuted=!1)}),this.mediaElement.on(`media element state`,e=>{e===`paused`&&this.audioPlayer.flushBuffer(),this.emitter.emit(`media element state`,e)}),this.audioPlayer=db.create(this.logger.createContext(`AudioPlayerModule`),r,{muted:!1,reInitWhenStuck:!1,bufferTime:l}),this.audioPlayer.on(`stuck`,()=>{this.isDisconnected=!0}),this.audioPlayer.on(`state change`,e=>{e===`suspended`||e===`interrupted`?this.mediaElement.muted=!0:e===`running`&&(this.mediaElement.muted=this._userProvidedMuted||document.visibilityState===`hidden`),this.updateVolumeState()}),this.videoPlayer=pb.create(this.logger.createContext(`VideoPlayerModule`),this.audioPlayer,this.pool,this.mediaElement.element,()=>this.reconnectCanvasStream(),this.onVideoPlayerError),this.volumeState={volume:this.volume,isMuted:this.muted}}get volume(){return this.mediaElement.volume}set volume(e){this.mediaElement.volume=e}get muted(){return this.mediaElement.muted||this.audioPlayer.muted}set muted(e){let t=this.muted;this._userProvidedMuted=e,this.mediaElement.muted=e,!e&&t&&this.activateAudioPlayer().catch(x)}get currentTime(){return this.audioPlayer.currentTime}set currentTime(e){this.audioPlayer.currentTime=e}get isActivated(){return this.mediaElement.isActivated}set isActivated(e){this.mediaElement.isActivated=e}get seekTime(){return this.mediaElement.seekTime}get totalSeekTime(){return this.mediaElement.totalSeekTime}get isPaused(){return this.mediaElement.isPaused}get isSeeking(){return this.mediaElement.isSeeking}get audioNode(){return this.audioPlayer.audioNode}play(){let e=this._userProvidedMuted;return this.activateAudioPlayer().catch(()=>{e||this.emitter.emit(`needs user input`,{forAudio:!0,forVideo:!1})}),this.mediaElement.play()}pause(){this.mediaElement.pause()}};bb=xb,m(xb,`create`,(e,t,n,r,i)=>new bb(e,t,n,r,i)),V(),h();var Sb=()=>e=>Cb(e.buffered.start(0),e.buffered.end(e.buffered.length-1)),Cb=(e,t)=>n=>n.remove(Math.max(0,e),Math.min(1/0,t)),wb=e=>t=>t.appendBuffer(e),Tb=e=>t=>t.changeType(e),Eb=e=>t=>e(t),Db=class{constructor(e){m(this,`commandQueue`,[]),m(this,`sourceBuffer`,void 0),m(this,`errorCallback`,void 0),m(this,`currentInit`,void 0),m(this,`setErrorCallback`,e=>{this.errorCallback=e}),m(this,`onError`,e=>{var t;(t=this.errorCallback)==null||t.call(this,e)}),m(this,`handleQueue`,()=>{if(!this.sourceBuffer.updating){var e;(e=this.commandQueue.shift())==null||e.execute(this.sourceBuffer)}}),m(this,`appendBuffer`,(e,t)=>new Promise((n,r)=>{if(t&&this.currentInit!==t){let e=new kt(wb(t),n,r);this.commandQueue.push(e),this.currentInit=t}let i=new kt(wb(e),n,r);this.commandQueue.push(i),this.handleQueue()})),m(this,`execute`,e=>new Promise((t,n)=>{let r=new kt(Eb(e),t,n);this.commandQueue.push(r),this.handleQueue()})),m(this,`buffered`,()=>this.sourceBuffer.buffered),m(this,`removeFromMediaSource`,e=>{this.dispose(),e.removeSourceBuffer(this.sourceBuffer)}),m(this,`dispose`,()=>{this.sourceBuffer.removeEventListener(`updateend`,this.handleQueue),this.sourceBuffer.removeEventListener(`error`,this.onError),this.commandQueue=[],this.errorCallback=void 0}),m(this,`changeType`,e=>new Promise((t,n)=>{let r=new kt(Tb(e),t,n);this.commandQueue.push(r),this.handleQueue()})),m(this,`removeBuffer`,(e,t)=>new Promise((n,r)=>{let i=new kt(Cb(e,t),n,r);this.commandQueue.push(i),this.handleQueue()})),m(this,`flush`,()=>new Promise((e,t)=>{let n=new kt(Sb,e,t);this.commandQueue.push(n),this.handleQueue()})),this.sourceBuffer=e,this.sourceBuffer.addEventListener(`updateend`,this.handleQueue),this.sourceBuffer.addEventListener(`error`,this.onError)}};V(),h();var Ob=class extends Ht{constructor(){super(),m(this,`MediaSource`,Be()),m(this,`mediaSource`,new this.MediaSource),m(this,`isOpen`,()=>this.mediaSource.readyState===`open`),m(this,`isClosed`,()=>this.mediaSource.readyState===`closed`),m(this,`isEnded`,()=>this.mediaSource.readyState===`ended`),m(this,`createObjectURL`,()=>URL.createObjectURL(this.mediaSource)),m(this,`attach`,e=>{let t=e;if(`srcObject`in t)try{t.srcObject=this.mediaSource}catch(e){if(e instanceof Error&&e.name!==`TypeError`)throw e;t.src=this.createObjectURL()}else e.src=this.createObjectURL()}),m(this,`detach`,e=>{if(this.mediaSource&&this.mediaSource.readyState===`open`)try{this.mediaSource.endOfStream()}catch(e){}e.srcObject&&(e.srcObject=null),e.src!==``&&(URL.revokeObjectURL(e.src),e.removeAttribute(`src`)),e.load()}),m(this,`addSourceBuffer`,e=>new Db(this.mediaSource.addSourceBuffer(e))),m(this,`removeSourceBuffer`,e=>{e.removeFromMediaSource(this.mediaSource)}),m(this,`endOfStream`,e=>{this.mediaSource.endOfStream(e)}),m(this,`onSourceOpen`,()=>{this.setDurationIfNeeded(),this.emit(`source open`)}),m(this,`onSourceEnded`,()=>this.emit(`source ended`)),m(this,`onSourceClosed`,()=>this.emit(`source close`)),m(this,`setDurationIfNeeded`,()=>{if(Number.isNaN(this.mediaSource.duration)&&this.mediaSource.readyState===`open`){for(let e=0;e<this.mediaSource.sourceBuffers.length;e++){let t=this.mediaSource.sourceBuffers[e];if(t!=null&&t.updating)return}this.mediaSource.duration=1/0}}),this.mediaSource.addEventListener(`sourceopen`,this.onSourceOpen),this.mediaSource.addEventListener(`sourceclose`,this.onSourceClosed),this.mediaSource.addEventListener(`sourceended`,this.onSourceEnded)}};m(Ob,`isTypeSupported`,e=>{var t,n;return(t=(n=Be())==null?void 0:n.isTypeSupported(e))==null?!1:t}),Ti(),V(),h(),z(),N();var kb,Ab=class{constructor(){m(this,`initSegments`,new Map),m(this,`set`,(e,t,n)=>{var r;let i=(r=this.initSegments.get(e))==null?new Map:r;i.set(t,n),this.initSegments.set(e,i)}),m(this,`get`,(e,t)=>{var n;return(n=this.initSegments.get(e))==null?void 0:n.get(t)})}};function jb(e,{mediaSource:t,mimeType:n,codec:r}){return R(R({},e),{},{state:`initialized`,mimeType:n,sourceBufferMimeType:n,codec:r,sourceBuffer:t.addSourceBuffer(n),isWorkingOnPendingSamples:!1,sequenceNumber:0,lastBufferCleanupTime:Date.now()})}function Mb({initSegments:e,pendingSamples:t}){return{state:`uninitialized`,initSegments:e==null?new Ab:e,sequenceNumber:0,isWorkingOnPendingSamples:!1,hasFirstSync:t.some(e=>e.isSync),pendingSamples:t==null?[]:t,pendingSamplesOffset:0,consecutiveQuotaExceededErrorCount:0,successfulAppendCalls:0}}var Nb=class{constructor(e,t,n){var r=this;m(this,`maxChunkSize`,20),m(this,`minConsecutiveErrorsBeforeEmit`,5),m(this,`maxSecondsInBuffer`,60),m(this,`logger`,void 0),m(this,`timers`,Vn.create()),m(this,`emitter`,void 0),m(this,`mediaElement`,void 0),m(this,`mediaSource`,new Ob),m(this,`trackContexts`,new Map),m(this,`autoRecoverFromMediaErrors`,!0),m(this,`quotaErrorCount`,0),m(this,`recoveredFromErrorCount`,0),m(this,`sourceOpenStartTime`,Date.now()),m(this,`sourceOpenEndTime`,Date.now()),m(this,`pendingTracksToAddSourceBuffers`,void 0),m(this,`hasAddedInitialPosterFrame`,!0),m(this,`videoKeyframeTimestamps`,[]),m(this,`isReopening`,!1),m(this,`playbackStallCount`,0),m(this,`hasStartedPlayback`,!1),m(this,`isPlaybackStalled`,!1),m(this,`load`,()=>{this.emitter.on(`init segment`,this.init),this.emitter.on(`coded sample`,this.onCodedSample),this.emitter.on(`flush buffers`,this.flushBuffers),this.emitter.on(`fragment`,this.onFragment)}),m(this,`unload`,()=>{this.logger.debug(`Unloading module...`),this.emitter.off(`init segment`,this.init),this.emitter.off(`coded sample`,this.onCodedSample),this.emitter.off(`flush buffers`,this.flushBuffers),this.emitter.off(`fragment`,this.onFragment),this.mediaSource.off(`source ended`,this.onSourceEnded),this.mediaSource.off(`source open`,this.onSourceOpen),this.mediaElement.removeEventListener(`error`,this.onMediaElementError),this.mediaElement.removeEventListener(`waiting`,this.onPlaybackStall),this.mediaElement.removeEventListener(`stalled`,this.onPlaybackStall),this.mediaElement.removeEventListener(`playing`,this.onPlaybackProgress),this.mediaElement.removeEventListener(`pause`,this.onPlaybackPauseOrSeek),this.mediaElement.removeEventListener(`seeking`,this.onPlaybackPauseOrSeek),this.mediaSource.detach(this.mediaElement),this.trackContexts.forEach(e=>{e.state===`initialized`&&e.sourceBuffer.dispose(),e.pendingSamples=[],e.pendingSamplesOffset=0}),this.videoKeyframeTimestamps=[],this.timers.unload(),this.logger.debug(`Unloaded module`)}),m(this,`getStatistics`,()=>{var e,t;let n={quotaErrorCount:this.quotaErrorCount,mediaSourceOpenTime:this.sourceOpenEndTime-this.sourceOpenStartTime,playbackStallCount:this.playbackStallCount,successfulAudioAppendsCalls:(e=this.trackContexts.get(`audio`))==null?void 0:e.successfulAppendCalls,successfulVideoAppendCalls:(t=this.trackContexts.get(`video`))==null?void 0:t.successfulAppendCalls,videoKeyframeIntervalMs:Mt(this.videoKeyframeTimestamps),videoRenderer:`MSE`,videoDecoder:`MSE`,audioRenderer:`MSE`,audioDecoder:`MSE`};if(this.mediaElement instanceof HTMLVideoElement){var r,i;let e=(r=(i=this.mediaElement).getVideoPlaybackQuality)==null?void 0:r.call(i);n.totalVideoFrames=e==null?void 0:e.totalVideoFrames,n.droppedVideoFrames=e==null?void 0:e.droppedVideoFrames}return n}),m(this,`flushBuffers`,()=>{this.videoKeyframeTimestamps=[],this.trackContexts.forEach(e=>{e.pendingSamples=[],e.pendingSamplesOffset=0,e.hasFirstSync=!1,e.state!==`uninitialized`&&this.mediaSource.isOpen()&&e.sourceBuffer.removeBuffer(0,1/0).catch(e=>{this.logger.error(`Failed to remove buffer`,e)})})}),m(this,`setTrackContexts`,(e=new Map)=>{this.logger.debug(`setTrackContexts`),[`audio`,`video`].forEach(t=>{var n,r,i;let a=e.get(t),o=(n=a==null?void 0:a.pendingSamples)==null?[]:n,s=a==null?void 0:a.initSegments,c=(r=a==null?void 0:a.pendingSamplesOffset)==null?0:r;for(;c<o.length&&!((i=o[c])!=null&&i.isSync);)c++;let l=Mb({pendingSamples:o,initSegments:s});l.pendingSamplesOffset=c,this.trackContexts.set(t,l)})}),m(this,`resetRemovedTrackContexts`,e=>{let t=new Set(e.map(e=>e.type));this.trackContexts.forEach((e,n)=>{if(t.has(n))return;e.state===`initialized`&&this.mediaSource.isOpen()&&this.mediaSource.removeSourceBuffer(e.sourceBuffer);let r=Mb({pendingSamples:[],initSegments:e.initSegments});this.trackContexts.set(n,r)})}),m(this,`isCurrentTrackContext`,(e,t)=>this.trackContexts.get(e)===t),m(this,`initializeSourceBuffer`,(e,t)=>{let n=jb(e,{mimeType:t.mimeType,mediaSource:this.mediaSource,codec:t.codec});n.sourceBuffer.setErrorCallback(this.onSourceBufferError(t.type)),this.trackContexts.set(t.type,n)}),m(this,`setSourceBuffers`,function(){var e=M(function*(e){if(!r.mediaSource.isOpen()){r.pendingTracksToAddSourceBuffers=e;return}r.resetRemovedTrackContexts(e);let t=!0;for(let n of e){let e=r.trackContexts.get(n.type);if(!e||e.state===`uninitialized`||e.sourceBufferMimeType!==n.mimeType){t=!1;break}}if(t){r.logger.debug(`Already setup with the correct mime types`);return}for(let t of e){let n=r.trackContexts.get(t.type);if(n||(n=Mb({pendingSamples:[],initSegments:new Ab}),r.trackContexts.set(t.type,n)),n.state===`initialized`){if(t.mimeType!==n.sourceBufferMimeType)try{yield n.sourceBuffer.changeType(t.mimeType),n.sourceBufferMimeType=t.mimeType}catch(i){r.logger.warn(`changeType failed, recreating source buffer`,{from:n.sourceBufferMimeType,to:t.mimeType,error:i});try{r.mediaSource.removeSourceBuffer(n.sourceBuffer)}catch(t){r.logger.warn(`removeSourceBuffer failed`,{removeError:t}),r.reopenMediaSource(`changeType recovery failed`),r.pendingTracksToAddSourceBuffers=e;return}let a=Mb({pendingSamples:n.pendingSamples,initSegments:n.initSegments});a.pendingSamplesOffset=n.pendingSamplesOffset,r.initializeSourceBuffer(a,t)}}else r.initializeSourceBuffer(n,t)}});return function(t){return e.apply(this,arguments)}}()),m(this,`getBuffer`,e=>{if(this.mediaSource.isClosed())return[];let t=this.trackContexts.get(e);return!t||t.state===`uninitialized`?[]:this.getBufferedRanges(t.sourceBuffer)}),m(this,`getBufferState`,e=>{let t=this.getCommonBufferedRangesForCurrentTracks();if(t)return{buffered:t,playbackState:this.getPlaybackStateForBufferedRanges(e,t)}}),m(this,`getNextBufferedRangeStart`,e=>{let t=this.getCommonBufferedRangesForCurrentTracks();if(t)return Fb(e,t)}),m(this,`getVideoKeyframeTimestamps`,()=>this.videoKeyframeTimestamps),m(this,`init`,({initSegment:e,mimeType:t})=>{this.logger.debug(`Added init segment`,{channel:e.channelId,renditionId:e.renditionId});let n=this.trackContexts.get(e.type);if(!n)throw ui(e.type,e.renditionId);n.state===`initialized`&&(n.mimeType=t);let r=Dc({codec:e.codec,timescale:e.timescale,initData:e.data});r&&n.initSegments.set(e.channelId,e.renditionId,new Uint8Array(r))}),m(this,`append`,function(){var e=M(function*(e,t){let n=e[0];if(!n)return;let i=r.trackContexts.get(n.type),a=i==null?void 0:i.initSegments.get(n.channelId,n.renditionId);if(r.mediaSource.isClosed())return;if(!a)throw ci(n.renditionId,n.channelId);if(!i)throw ui(n.type,n.renditionId);if(i.state===`uninitialized`)throw di(n.type,n.renditionId);if(t){var o;let e=(n.timestamp+((o=n.compositionTimeOffset)==null?0:o))/n.timescale;if(yield i.sourceBuffer.removeBuffer(e,1/0),i.mimeType!==i.sourceBufferMimeType&&i.sourceBuffer.changeType)try{yield i.sourceBuffer.changeType(i.mimeType),i.sourceBufferMimeType=i.mimeType}catch(e){r.logger.warn(`changeType failed`,{from:i.sourceBufferMimeType,to:i.mimeType,error:e})}`fragmented`in n||(yield i.sourceBuffer.appendBuffer(a))}let s=Math.max(0,n.timestamp/n.timescale-r.maxSecondsInBuffer);s>0&&Date.now()-i.lastBufferCleanupTime>1e4&&(i.lastBufferCleanupTime=Date.now(),yield i.sourceBuffer.removeBuffer(0,s+10));try{let t=i.sequenceNumber;if(`fragmented`in n)for(let t of e)`initData`in t&&(yield i.sourceBuffer.appendBuffer(t.data,t.initData));else{let n=Pc(e,t++);yield i.sourceBuffer.appendBuffer(n)}i.sequenceNumber=t,i.consecutiveQuotaExceededErrorCount=0,i.successfulAppendCalls++}catch(e){throw e instanceof DOMException&&e.code===DOMException.QUOTA_EXCEEDED_ERR&&(r.quotaErrorCount++,i.consecutiveQuotaExceededErrorCount++,r.logger.error(`quota exceeded error`,{error:e})),e}});return function(t,n){return e.apply(this,arguments)}}()),m(this,`onFragment`,({fragment:e,mimeType:t,codec:n,channelId:r,renditionId:i})=>{let a=e.mediaType(),o=e.rawBytes(),s=e.header().rawBytes(),c=e.baseMediaDecodeTime(),l=e.timescale(),u=e.duration(),d=a===`video`?e.startsWithKeyframe():!0,f=e.compositionTimeOffset(0);if(a===`text`){this.logger.warn(`Skipping unexpected text fragment`);return}if(!n){this.logger.warn(`Skipping fragment with no codec`);return}let p=this.trackContexts.get(a);if(!p)throw ui(a);p.state===`initialized`&&t&&(p.mimeType=t,p.initSegments.set(r,i,s));let m={fragmented:!0,type:a,data:o,initData:s,timestamp:c,duration:u,timescale:l,channelId:r,renditionId:i,isSync:d,codec:n,fragment:e,compositionTimeOffset:f};this.onCodedSample(m)}),m(this,`onCodedSample`,e=>{if(e.duration===0)return;let t=this.trackContexts.get(e.type);if(!t)throw ui(e.type,e.renditionId);if(!(!t.hasFirstSync&&!e.isSync)){if(this.hasAddedInitialPosterFrame&&e.isSync&&e.type===`video`){this.hasAddedInitialPosterFrame=!1;let n=R({},e);`fragment`in n?(n.fragment=n.fragment.clone(),n.fragment.updateBaseMediaDecodeTime(0),n.data=n.fragment.rawBytes()):n.timestamp=0,t.pendingSamples.push(n)}if(t.hasFirstSync=!0,t.pendingSamples.push(e),e.type===`video`&&e.isSync){var n;let t=(e.timestamp+((n=e.compositionTimeOffset)==null?0:n))/e.timescale*1e3,r=this.videoKeyframeTimestamps[this.videoKeyframeTimestamps.length-1];r!==void 0&&t<r&&(this.videoKeyframeTimestamps=[]),this.videoKeyframeTimestamps.push(t),this.videoKeyframeTimestamps.length>20&&(this.videoKeyframeTimestamps=this.videoKeyframeTimestamps.slice(-20))}t.state!==`uninitialized`&&(t.isWorkingOnPendingSamples||Bb(t,this.append,this.maxChunkSize).catch(n=>{if(t.isWorkingOnPendingSamples=!1,!this.isReopening){if(!this.isCurrentTrackContext(e.type,t)){this.logger.debug(`Suppressing append error from stale track context`,{type:e.type});return}if(n instanceof Error){if(this.logger.error(`append failed`,{message:n.message,name:n.name}),n instanceof DOMException&&n.code===DOMException.QUOTA_EXCEEDED_ERR){if(t.consecutiveQuotaExceededErrorCount>=this.minConsecutiveErrorsBeforeEmit){let r=li(!1,n,t.consecutiveQuotaExceededErrorCount,e.type);this.emitter.emit(`error`,r)}}else{let r=li(!1,n,t.consecutiveQuotaExceededErrorCount,e.type);this.emitter.emit(`error`,r)}this.mediaElement.error&&this.onSourceEnded()}}}))}}),m(this,`onSourceBufferError`,e=>()=>{var t;this.logger.warn(`SourceBuffer error`,{trackType:e,mediaElementError:(t=this.mediaElement.error)==null?void 0:t.message})}),m(this,`onSourceOpen`,()=>{this.logger.debug(`source opened`),this.sourceOpenEndTime=Date.now(),this.isReopening=!1,this.pendingTracksToAddSourceBuffers&&(this.setSourceBuffers(this.pendingTracksToAddSourceBuffers),this.pendingTracksToAddSourceBuffers=void 0)}),m(this,`reopenMediaSource`,e=>{this.logger.info(`Re-opening MediaSource`,{reason:e}),this.isReopening=!0,this.recoveredFromErrorCount++;let t=!this.mediaElement.paused,n=[];this.trackContexts.forEach((e,t)=>{e.state===`initialized`&&n.push({type:t,mimeType:e.mimeType,codec:e.codec})}),this.sourceOpenStartTime=Date.now(),this.pendingTracksToAddSourceBuffers=n,this.mediaSource.detach(this.mediaElement),this.setTrackContexts(this.trackContexts),this.mediaSource.attach(this.mediaElement),t&&this.mediaElement.play().catch(x)}),m(this,`onMediaElementError`,()=>{let{error:e}=this.mediaElement;if(!e||this.isReopening)return;let t=ii(/AUDIO_RENDERER/.test(e.message)||!this.autoRecoverFromMediaErrors,e);this.logger.error(`MediaElement error`,{error:t}),this.emitter.emit(`error`,t),t.isFatal()||(this.emitter.emit(`recovered from media error`,{error:t,count:this.recoveredFromErrorCount}),this.reopenMediaSource(`media element error recovery`))}),m(this,`onSourceEnded`,()=>{this.mediaElement.error&&this.onMediaElementError(),this.logger.debug(`source ended`)}),m(this,`onPlaybackProgress`,()=>{this.hasStartedPlayback=!0,this.isPlaybackStalled=!1}),m(this,`onPlaybackPauseOrSeek`,()=>{this.isPlaybackStalled=!1}),m(this,`onPlaybackStall`,e=>{!this.hasStartedPlayback||this.mediaElement.paused||this.mediaElement.seeking||this.isPlaybackStalled||(this.playbackStallCount++,this.isPlaybackStalled=!0,this.logger.info(`Detected playback stall`,{event:e.type,currentTime:this.mediaElement.currentTime*1e3,playbackStallCount:this.playbackStallCount}))}),m(this,`getBufferedRanges`,e=>{let t=[];try{let n=e.buffered();if(!n)return[];for(let e=0;e<n.length;e++)t.push({start:n.start(e)*1e3,end:n.end(e)*1e3});return t}catch(e){return[]}}),m(this,`getInitializedTrackBuffers`,()=>{let e=[];return this.trackContexts.forEach(t=>{t.state!==`uninitialized`&&e.push(this.getBufferedRanges(t.sourceBuffer))}),e}),m(this,`getCommonBufferedRangesForCurrentTracks`,()=>{if(this.mediaSource.isClosed())return;let e=this.getInitializedTrackBuffers();if(e.length!==0)return this.getCommonBufferedRanges(e)}),m(this,`getCommonBufferedRanges`,e=>e.slice(1).reduce((e,t)=>Ib(e,t),e[0]?Array.from(e[0]):[])),m(this,`getPlaybackStateForBufferedRanges`,(e,t)=>Pb(e,t)?`playing`:`buffering`),this.logger=e,this.mediaElement=n,this.emitter=t}};kb=Nb,m(Nb,`create`,(e,t,n)=>{let r=new kb(e,t,n);return r.setTrackContexts(),r.mediaSource.on(`source ended`,r.onSourceEnded),r.mediaSource.on(`source open`,r.onSourceOpen),n.addEventListener(`error`,r.onMediaElementError),n.addEventListener(`waiting`,r.onPlaybackStall),n.addEventListener(`stalled`,r.onPlaybackStall),n.addEventListener(`playing`,r.onPlaybackProgress),n.addEventListener(`pause`,r.onPlaybackPauseOrSeek),n.addEventListener(`seeking`,r.onPlaybackPauseOrSeek),r.mediaSource.attach(n),r});var Pb=(e,t)=>t.some(t=>t.start<=e&&e<t.end),Fb=(e,t)=>{for(let r=0;r<t.length;r++){let i=t[r];if(i){if(e<i.start)return i.start;if(i.start<=e&&e<i.end){var n;return(n=t[r+1])==null?void 0:n.start}}}},Ib=(e,t)=>{let n=[],r=0,i=0;for(;r<e.length&&i<t.length;){let a=e[r],o=t[i];if(!a||!o)break;let s=Math.max(a.start,o.start),c=Math.min(a.end,o.end);s<c&&n.push({start:s,end:c}),a.end<=o.end?r++:i++}return n},Lb=(e,t)=>{var n;let r=e.renditionId!==t.renditionId,i=e.channelId!==t.channelId,a=((n=e.timestamp)==null?0:n)>t.timestamp,o=e.type===`video`&&t.type===`video`&&`levelIdc`in e&&`levelIdc`in t&&e.levelIdc!==t.levelIdc,s=!1;return e.type===`video`&&t.type===`video`&&`width`in e&&`width`in t&&(s=t.width!==e.width||t.height!==e.height),i||r||a||s||o},Rb=32,zb=e=>{let t=e.pendingSamplesOffset;if(t!==0){if(t>=e.pendingSamples.length){e.pendingSamples=[],e.pendingSamplesOffset=0;return}t<Rb||t*2<e.pendingSamples.length||(e.pendingSamples=e.pendingSamples.slice(t),e.pendingSamplesOffset=0)}},Bb=function(){var e=M(function*(e,t,n){for(e.isWorkingOnPendingSamples=!0;e.pendingSamplesOffset<e.pendingSamples.length;){let r=[],i=e.pendingSamplesOffset;for(let t=e.pendingSamplesOffset;t<e.pendingSamples.length;t++){i=t;let a=e.pendingSamples[t],o=e.pendingSamples[t+1];if(a&&(r.push(a),o)){if(Lb(a,o))break;let e=(a.timestamp+a.duration)/a.timescale;if(o.timestamp/o.timescale-e>.1)break}if(t-e.pendingSamplesOffset>=n-1)break}let a=r[0];if(!a)break;yield t(r,e.previousSample?Lb(e.previousSample,a):!0),e.pendingSamplesOffset=i+1,e.previousSample=r[r.length-1],zb(e)}e.isWorkingOnPendingSamples=!1});return function(t,n,r){return e.apply(this,arguments)}}();V(),h(),N();var Vb,Hb=class{constructor(e,t){var n=this;m(this,`logger`,void 0),m(this,`emitter`,void 0),m(this,`element`,void 0),m(this,`pictureInPictureWindow`,void 0),m(this,`unload`,()=>{this.emitter.off(`add picture in picture listener`,this.onEnablePictureInPicture),this.detachElementListeners()}),m(this,`onEnablePictureInPicture`,e=>{this.detachElementListeners(),this.element=e.element,e.element.addEventListener(`leavepictureinpicture`,this.onLeavePictureInPicture),e.element.addEventListener(`enterpictureinpicture`,this.onEnterPictureInPicture),Ct(e.element,!0)}),m(this,`getPictureInPictureSize`,()=>this.pictureInPictureWindow),m(this,`isPictureInPictureActive`,()=>this.isWebkitPresentationModeActive()||this.isStandardPictureInPictureActive()),m(this,`isPictureInPictureSupported`,()=>this.isWebkitPresentationModeSupported()||this.isStandardPictureInPictureSupported()),m(this,`requestPictureInPicture`,()=>(this.emitter.emit(`ios-hack: reset size`),this.isStandardPictureInPictureSupported()?this.requestStandardPictureInPicture():this.isWebkitPresentationModeSupported()?this.requestWebkitPresentationMode(`picture-in-picture`):Promise.reject(Error(`Picture in picture is not supported`)))),m(this,`exitPictureInPicture`,()=>this.isStandardPictureInPictureSupported()?this.exitStandardPictureInPicture():this.isWebkitPresentationModeSupported()?this.requestWebkitPresentationMode(`inline`):Promise.reject(Error(`Picture in picture is not supported`))),m(this,`getStatistics`,()=>({isPictureInPictureActive:this.isPictureInPictureActive()})),m(this,`detachElementListeners`,()=>{this.element&&(this.element.removeEventListener(`leavepictureinpicture`,this.onLeavePictureInPicture),this.element.removeEventListener(`enterpictureinpicture`,this.onEnterPictureInPicture),Ct(this.element,!1))}),m(this,`onLeavePictureInPicture`,()=>{this.pictureInPictureWindow=void 0,this.logger.debug(`Leave picture in picture`),this.emitter.emit(`exit picture in picture`)}),m(this,`onEnterPictureInPicture`,e=>{this.pictureInPictureWindow=yt(e),this.logger.debug(`Enter picture in picture`),this.emitter.emit(`enter picture in picture`,this)}),m(this,`requestStandardPictureInPicture`,M(function*(){if(!n.element)throw Error(`Picture in picture is not supported`);let e=mt(n.element);if(!e)throw Error(`Picture in picture is not supported`);yield e()})),m(this,`exitStandardPictureInPicture`,M(function*(){let e=ht();if(!e)throw Error(`Picture in picture is not supported`);yield e()})),m(this,`isStandardPictureInPictureSupported`,()=>!!this.element&&vt(this.element)),m(this,`isStandardPictureInPictureActive`,()=>!!this.element&&_t()),m(this,`isWebkitPresentationModeActive`,()=>!!this.element&&bt(this.element)===`picture-in-picture`),m(this,`requestWebkitPresentationMode`,function(){var e=M(function*(e){return n.element&&xt(n.element,e),Promise.resolve()});return function(t){return e.apply(this,arguments)}}()),m(this,`isWebkitPresentationModeSupported`,()=>!!this.element&&St(this.element)),this.emitter=e,this.logger=t,this.emitter.on(`add picture in picture listener`,this.onEnablePictureInPicture)}};Vb=Hb,m(Hb,`create`,(e,t)=>new Vb(e,t)),h();var Ub,Wb=class{constructor(e,t,n,r){m(this,`emitter`,void 0),m(this,`logger`,void 0),m(this,`clockSource`,void 0),m(this,`state`,`buffering`),m(this,`bufferFullness`,0),m(this,`targetBufferTime`,void 0),m(this,`lastBufferStateEvent`,`drained`),m(this,`firstFrameTime`,void 0),m(this,`currentTimeIsInRange`,!1),m(this,`needsInputForAudioCount`,0),m(this,`needsInputForVideoCount`,0),m(this,`unload`,()=>{this.emitter.off(`buffer state`,this.onBufferedStateChanged),this.emitter.off(`needs user input`,this.onNeedsUserInput)}),m(this,`setTargetBufferTime`,e=>{this.targetBufferTime=e,this.emitter.emit(`target buffer time`,e)}),m(this,`getTargetBufferTime`,()=>this.targetBufferTime),m(this,`getBufferFullness`,()=>this.bufferFullness),m(this,`getLastBufferStateEvent`,()=>this.lastBufferStateEvent),m(this,`getState`,()=>this.state),m(this,`getFirstFrameTime`,()=>this.firstFrameTime),m(this,`getStatistics`,()=>({bufferTime:this.targetBufferTime,needsInputForAudioCount:this.needsInputForAudioCount,needsInputForVideoCount:this.needsInputForVideoCount})),m(this,`onBufferedStateChanged`,({buffered:e,isPaused:t,playbackState:n})=>{let r=this.clockSource.currentTime,i=e.some(e=>e.start<=r&&r<e.end),a=e[e.length-1],o=a?a.end-a.start>=this.targetBufferTime:!1,s=a?Math.max(0,a.end-r)/this.targetBufferTime:0,c=t?`paused`:n,l=this.state;this.currentTimeIsInRange!==i&&!i?(this.lastBufferStateEvent=`drained`,this.emitter.emit(`buffer state event`,this.lastBufferStateEvent)):i&&o&&this.lastBufferStateEvent===`drained`&&(this.lastBufferStateEvent=`filled`,this.emitter.emit(`buffer state event`,this.lastBufferStateEvent)),c===`playing`&&!this.firstFrameTime&&(this.firstFrameTime=Date.now()),this.currentTimeIsInRange=i,this.state=c,this.bufferFullness=i?s:0,l!==c&&this.emitter.emit(`playback state`,c),this.emitter.emit(`buffer fullness`,this.bufferFullness)}),m(this,`onNeedsUserInput`,({forAudio:e,forVideo:t})=>{e&&this.needsInputForAudioCount++,t&&this.needsInputForVideoCount++}),this.emitter=e,this.logger=t,this.clockSource=n,this.targetBufferTime=r,this.emitter.on(`buffer state`,this.onBufferedStateChanged),this.emitter.on(`needs user input`,this.onNeedsUserInput),this.emitter.emit(`target buffer time`,r)}};Ub=Wb,m(Wb,`create`,(e,t,n,r)=>new Ub(e,t,n,r)),V(),h();var Gb,Kb=()=>({upgradesFromLevel:[],downgradesFromLevel:[],bufferingRanges:[],activeRanges:[],decodeRate:2**53-1}),qb=()=>({levels:{},levelDowngrades:[],levelUpgrades:[],bufferFullness:0,general:Kb()}),Jb=class{constructor(e,t,n){m(this,`minBufferFullnessLengthForRegression`,6),m(this,`logger`,void 0),m(this,`emitter`,void 0),m(this,`timers`,Vn.create()),m(this,`metrics`,qb()),m(this,`bufferFullness`,new C(30)),m(this,`bufferFullnessRegression`,void 0),m(this,`currentLevel`,void 0),m(this,`isSuspended`,!1),m(this,`_fatalQosCount`,0),m(this,`targetBufferTime`,0),m(this,`renditionLevelSource`,void 0),m(this,`qualityIndexOrder`,[]),m(this,`hasAsserted`,!1),m(this,`load`,()=>{this.emitter.on(`playback state`,this.onPlaybackState),this.emitter.on(`buffer fullness`,this.onBufferFullness),this.emitter.on(`rendition level changed`,this.onRenditionLevelChanged),this.emitter.on(`video decode rate`,this.onVideoDecodeRate),this.emitter.on(`target buffer time`,this.onTargetBufferTime)}),m(this,`unload`,()=>{this.emitter.off(`playback state`,this.onPlaybackState),this.emitter.off(`buffer fullness`,this.onBufferFullness),this.emitter.off(`rendition level changed`,this.onRenditionLevelChanged),this.emitter.off(`video decode rate`,this.onVideoDecodeRate),this.emitter.off(`target buffer time`,this.onTargetBufferTime),this.suspend()}),m(this,`suspend`,()=>{this.isSuspended=!0,this.timers.unload(),this.stopBuffering(),this.unsetActive()}),m(this,`unsuspend`,()=>{this.isSuspended=!1,this.currentLevel&&this.setActive()}),m(this,`fatalQosGraceTime`,()=>1e4*(this.fatalQosCount+1)),m(this,`incrementFatalQosCount`,()=>{this._fatalQosCount++}),m(this,`getMetrics`,()=>this.metrics),m(this,`getLevelStats`,e=>{var t,n,r,i;let a=((t=(n=e.video)==null?void 0:n.bitRate)==null?0:t)+((r=(i=e.audio)==null?void 0:i.bitRate)==null?0:r);return this.metrics.levels[a]}),m(this,`getBufferFullnessRegression`,()=>this.bufferFullnessRegression),m(this,`getTargetBufferTime`,()=>this.targetBufferTime),m(this,`activeRatios`,()=>{let e=new Map,t=Gn(this.metrics.general.activeRanges);if(Object.entries(this.metrics.levels).forEach(([n,r])=>{var i;let a=parseInt(n,10),o=t?Gn(r.activeRanges)/t:0,s=this.getQualityIndex(a).toString();e.set(s,((i=e.get(s))==null?0:i)+o)}),!this.hasAsserted){let t=e.size?Math.abs(Array.from(e.values()).reduce((e,t)=>e+t,0)-1)<=.02:!0;t||(this.hasAsserted=!0,console.assert(t,`Active ratios should be close to 1 - actual: ${Array.from(e.values()).reduce((e,t)=>e+t,0)}`))}return e}),m(this,`bufferingRatios`,()=>{let e=new Map,t=Gn(this.metrics.general.bufferingRanges);if(Object.entries(this.metrics.levels).forEach(([n,r])=>{var i;let a=parseInt(n,10),o=t?Gn(r.bufferingRanges)/t:0,s=this.getQualityIndex(a).toString();e.set(s,((i=e.get(s))==null?0:i)+o)}),!this.hasAsserted){let t=Array.from(e.values()).reduce((e,t)=>e+t,0)<=1;t||(this.hasAsserted=!0,console.assert(t,`Buffering ratios should be less than 1 - actual: ${Array.from(e.values()).reduce((e,t)=>e+t,0)}`))}return e}),m(this,`bufferingEventsLast`,e=>this.metrics.general.bufferingRanges.filter(t=>t.start>=Date.now()-e).length),m(this,`timeSpentBufferingLast`,e=>Kn(this.metrics.general.bufferingRanges,e)),m(this,`timeSpentActiveLast`,e=>Kn(this.metrics.general.activeRanges,e)),m(this,`timeSpentPlayingInAtLeastLevelRatio`,e=>{var t,n,r,i;let a=this.timeSpentBuffering(),o=this.timeActive(),s=this.bufferingRatios(),c=this.activeRatios(),l=((t=(n=e.video)==null?void 0:n.bitRate)==null?0:t)+((r=(i=e.audio)==null?void 0:i.bitRate)==null?0:r),u=a/o;return Object.keys(this.metrics.levels).map(e=>parseInt(e,10)).filter(e=>e>=l).reduce((e,t)=>{var n,r;let i=this.getQualityIndex(t).toString();return((n=c.get(i))==null?0:n)-((r=s.get(i))==null?0:r)*u+e},0)}),m(this,`timeSpentBuffering`,()=>Gn(this.metrics.general.bufferingRanges)),m(this,`timeActive`,()=>Gn(this.metrics.general.activeRanges)),m(this,`getStatistics`,()=>{let e=this.timeSpentBuffering(),t=this.timeActive(),n=this.metrics.general.bufferingRanges.length,r=this.activeRatios(),i=t/6e4,a=t>0?e/t:0,o=Math.max(i,1),s=i>0?n/o:0,c=[...r].reduce((e,[t,n])=>e+parseInt(t,10)*n,0),l=6e4,u=this.timeSpentActiveLast(l),d=this.timeSpentBufferingLast(l),f=u>0?d/u:0,p=this.metrics.general.upgradesFromLevel.length+this.metrics.general.downgradesFromLevel.length,m=i>0?p/o:0,h=n>0?e/n:0;return{timeSpentBuffering:e,bufferingEventsCount:n,timeSpentRatio:[...r].reduce((e,[t,n])=>(e[t]=n,e),{}),fatalQosCount:this.fatalQosCount,bufferingRatio:a,bufferingEventsPerMinute:s,averageRenditionIndex:c,bufferingRatioPerMinute:f,renditionChangesPerMinute:m,timePerBufferingEvent:h}}),m(this,`onRenditionLevelChanged`,e=>{var t,n,r,i,a,o,s,c;let l=((t=(n=e.from)==null||(n=n.video)==null?void 0:n.bitRate)==null?0:t)+((r=(i=e.from)==null||(i=i.audio)==null?void 0:i.bitRate)==null?0:r),u=((a=(o=e.to)==null||(o=o.video)==null?void 0:o.bitRate)==null?0:a)+((s=(c=e.to)==null||(c=c.audio)==null?void 0:c.bitRate)==null?0:s);this.logger.info(`rendition level changed`,{fromLevel:l,toLevel:u}),this.metrics.general.activeRanges.length===0&&this.setActive(),e.from&&e.to&&(l<u?this.metrics.general.upgradesFromLevel.push(Date.now()):this.metrics.general.downgradesFromLevel.push(Date.now()));let d=!1;if(e.from){var f;let e=(f=this.metrics.levels[l])==null?Kb():f;l<u?e.upgradesFromLevel.push(Date.now()):e.downgradesFromLevel.push(Date.now()),Un(e.activeRanges);let t=e.bufferingRanges[e.bufferingRanges.length-1];d=!!t&&!t.end,Un(e.bufferingRanges),this.metrics.levels[l]=e}if(e.to){var p;let e=(p=this.metrics.levels[u])==null?Kb():p;Wn(e.activeRanges),d&&Wn(e.bufferingRanges),this.metrics.levels[u]=e,this.currentLevel=u}}),m(this,`onBufferFullness`,e=>{this.bufferFullness.push(e),this.metrics.bufferFullness=e,this.bufferFullness.items().length>=this.minBufferFullnessLengthForRegression&&(this.bufferFullnessRegression=this.calculateLinearRegression())}),m(this,`onPlaybackState`,e=>{switch(this.logger.info(`Playback state`,{state:e,currentLevel:this.currentLevel}),e){case`playing`:this.stopBuffering();break;case`buffering`:this.isSuspended||this.startBuffering();break}}),m(this,`onVideoDecodeRate`,e=>{var t;if(this.metrics.general.decodeRate=e,!this.currentLevel)return;let n=this.metrics.levels[(t=this.currentLevel)==null?0:t];n&&(n.decodeRate=e)}),m(this,`onTargetBufferTime`,e=>{this.targetBufferTime=e}),m(this,`calculateLinearRegression`,()=>Ft(this.bufferFullness.items().map((e,t)=>({x:t,y:e})))),m(this,`stopBuffering`,()=>{if(this.currentLevel){let e=this.metrics.levels[this.currentLevel];e&&Un(e.bufferingRanges)}Un(this.metrics.general.bufferingRanges)}),m(this,`startBuffering`,()=>{if(this.currentLevel){let e=this.metrics.levels[this.currentLevel];e&&Wn(e.bufferingRanges)}Wn(this.metrics.general.bufferingRanges)}),m(this,`unsetActive`,()=>{if(this.currentLevel){let e=this.metrics.levels[this.currentLevel];e&&Un(e.activeRanges)}Un(this.metrics.general.activeRanges)}),m(this,`getQualityIndex`,e=>{if(!this.qualityIndexOrder.length){var t,n;let e=((t=(n=this.renditionLevelSource)==null?void 0:n.getRenditionLevels())==null?[]:t).map(e=>{var t,n,r,i;return((t=(n=e.video)==null?void 0:n.bitRate)==null?0:t)+((r=(i=e.audio)==null?void 0:i.bitRate)==null?0:r)}).filter(e=>e>0);this.qualityIndexOrder=[...new Set(e)].sort((e,t)=>t-e)}let r=this.qualityIndexOrder.indexOf(e);return r===-1&&(this.qualityIndexOrder.push(e),this.qualityIndexOrder.sort((e,t)=>t-e),r=this.qualityIndexOrder.indexOf(e)),r}),this.logger=t,this.emitter=e,this.renditionLevelSource=n}get fatalQosCount(){return this._fatalQosCount}setActive(){if(this.currentLevel){let e=this.metrics.levels[this.currentLevel];e&&Wn(e.activeRanges)}Wn(this.metrics.general.activeRanges)}};Gb=Jb,m(Jb,`create`,(e,t,n)=>new Gb(e,t,n)),V(),h();var Yb,Xb=class{constructor(e,t){m(this,`renditions`,new Map),m(this,`renditionLevels`,[]),m(this,`languages`,[]),m(this,`emitter`,void 0),m(this,`subscriptionSource`,void 0),m(this,`renditionLevelChangeCount`,0),m(this,`unload`,()=>{this.emitter.off(`renditions`,this.onRenditions),this.emitter.off(`subscription changed`,this.onSubscriptionChanged)}),m(this,`getRenditionLevels`,e=>e?this.createRenditionLevels(e):this.renditionLevels),m(this,`getRenditionLevel`,e=>{var t;let n=e==null?this.getCurrentSubscription():e,r=e?this.createRenditionLevels(e):this.renditionLevels;if(!n.video)return r.length?r[0]:void 0;let i=n.video.bitRate||2**53-1,a=n.video.width||2**53-1,o=n.video.height||2**53-1;return(t=r.filter(e=>e.video&&n.video?e.video.bitRate<=i&&e.video.width<=a&&e.video.height<=o:!0).pop())==null?r[0]:t}),m(this,`setRenditions`,(e,t)=>{this.renditions.set(e,t)}),m(this,`getLanguages`,()=>this.languages),m(this,`getVideoRendition`,(e,t=this.getCurrentSubscription().channelId)=>{let n=this.getRendition(e,t);if(n&&fr(n))return n}),m(this,`getAudioRenditions`,e=>{let t=this.renditions.get(e);return t==null?void 0:t.filter(e=>pr(e))}),m(this,`getVideoRenditions`,e=>{let t=this.renditions.get(e);return t==null?void 0:t.filter(e=>fr(e))}),m(this,`getAudioRendition`,(e,t=this.getCurrentSubscription().channelId)=>{let n=this.getRendition(e,t);if(n&&pr(n))return n}),m(this,`getRendition`,(e,t=this.getCurrentSubscription().channelId)=>{var n;return(n=this.renditions.get(t))==null?void 0:n.find(t=>t.id===e)}),m(this,`getStatistics`,()=>{var e,t,n,r,i,a,o,s,c,l;let u=this.getRenditionLevel();return{videoCodec:u==null||(e=u.video)==null?void 0:e.codec,audioCodec:u==null||(t=u.audio)==null?void 0:t.codec,videoRenditionId:u==null||(n=u.video)==null?void 0:n.id,audioRenditionId:u==null||(r=u.audio)==null?void 0:r.id,videoWidth:u==null||(i=u.video)==null?void 0:i.width,videoHeight:u==null||(a=u.video)==null?void 0:a.height,expectedVideoBitRate:u==null||(o=u.video)==null?void 0:o.bitRate,expectedAudioBitRate:u==null||(s=u.audio)==null?void 0:s.bitRate,frameRate:u==null||(c=u.video)==null?void 0:c.frameRate,language:u==null||(l=u.audio)==null?void 0:l.language,renditionLevelChangeCount:this.renditionLevelChangeCount}}),m(this,`onRenditions`,e=>{let t=this.subscriptionSource.getCurrentSubscription();this.renditions.set(e.channelId,e.renditions),this.updateRenditionLevels({to:t,from:t})}),m(this,`onSubscriptionChanged`,e=>{this.updateRenditionLevels(e)}),m(this,`updateRenditionLevels`,({to:e,from:t})=>{var n;let{channelId:r,initiator:i}=e,a=this.getRenditionLevel(t),o=new Set;((n=this.renditions.get(r))==null?[]:n).filter(e=>e.codec!==`webvtt`).forEach(e=>e.language?o.add(e.language):void 0),this.languages=Array.from(o),this.renditionLevels=this.createRenditionLevels(e);let s=this.getRenditionLevel(e);Bt(a,s)||(this.renditionLevelChangeCount++,this.emitter.emit(`rendition level changed`,{to:s,from:a,reason:i?`manual`:`abr`}))}),m(this,`createRenditionLevels`,e=>{var t;let{video:n,audio:r,channelId:i}=e,a=(t=this.renditions.get(i))==null?[]:t,o=a.filter(fr).filter(e=>n&&e.codec===n.codec),s=a.filter(pr).filter(e=>r&&e.codec===r.codec&&e.language===r.language),c=Math.max(o.length,s.length),l=[];for(let e=0;e<c;e++){let t=o[Math.min(o.length-1,e)],n=s[Math.min(s.length-1,e)];l.push({audio:n,video:t})}return l}),m(this,`getCurrentSubscription`,()=>this.subscriptionSource.getCurrentSubscription()),this.subscriptionSource=t,this.emitter=e,this.emitter.on(`renditions`,this.onRenditions),this.emitter.on(`subscription changed`,this.onSubscriptionChanged)}};Yb=Xb,m(Xb,`create`,(e,t)=>new Yb(e,t)),V(),h();var Zb,Qb=e=>JSON.parse(JSON.stringify(e)),$b=1e4,ex=class{constructor(e,t,n){m(this,`logger`,void 0),m(this,`timers`,new Vn),m(this,`emitter`,void 0),m(this,`targetSubscription`,void 0),m(this,`currentSubscription`,void 0),m(this,`_isSwitchingSubscription`,!1),m(this,`pendingSubscriptionTimeoutId`,void 0),m(this,`burstMs`,0),m(this,`unload`,()=>{this.logger.debug(`Unloading module...`),this.timers.unload(),this.emitter.off(`subscription changed`,this.onSubscriptionChanged),this.logger.debug(`Unloaded module`)}),m(this,`isSwitchingSubscription`,()=>this._isSwitchingSubscription),m(this,`getTargetSubscription`,()=>this.targetSubscription),m(this,`getCurrentSubscription`,()=>this.currentSubscription),m(this,`enableBurst`,e=>{this.burstMs=e}),m(this,`setSize`,e=>{this.targetSubscription.video.width=e.width,this.targetSubscription.video.height=e.height,this.scheduleSubscriptionChange()}),m(this,`setVideoConstraint`,e=>{this.targetSubscription.video=e,this.scheduleSubscriptionChange()}),m(this,`setAudioConstraint`,e=>{this.targetSubscription.audio=e,this.scheduleSubscriptionChange()}),m(this,`setVideoBitRate`,e=>{this.targetSubscription.video.bitRate=e,this.scheduleSubscriptionChange()}),m(this,`setAudioBitRate`,e=>{this.targetSubscription.audio.bitRate=e,this.scheduleSubscriptionChange()}),m(this,`setChannelId`,e=>{this.targetSubscription.channelId=e,this.scheduleSubscriptionChange()}),m(this,`setLanguage`,e=>{this.targetSubscription.audio.language=e,this.scheduleSubscriptionChange()}),m(this,`setVideoCodec`,e=>{this.targetSubscription.video.codec=e,this.scheduleSubscriptionChange()}),m(this,`setAudioCodec`,e=>{this.targetSubscription.audio.codec=e,this.scheduleSubscriptionChange()}),m(this,`setBurst`,e=>{e?this.targetSubscription.burstMs=e:delete this.targetSubscription.burstMs}),m(this,`isNewSubscription`,()=>{let e=[`burstMs`,`meta`,`initiator`,`channelGroupId`];return!Bt(Ln(this.currentSubscription,e),Ln(this.targetSubscription,e))}),m(this,`onSubscriptionChanged`,({to:e,reset:t})=>{this.logger.debug(`onSubscriptionChanged`,{to:e,reset:t}),t?this.targetSubscription=Qb(this.currentSubscription):this.currentSubscription=Qb(e),this._isSwitchingSubscription=this.isNewSubscription()}),m(this,`scheduleSubscriptionChange`,()=>{this.targetSubscription=Qb(this.targetSubscription),this._isSwitchingSubscription=this.isNewSubscription();let e=this.currentSubscription.channelId,t=this.targetSubscription.channelId,n=e!==t;this._isSwitchingSubscription&&(n&&this.burstMs?this.setBurst(this.burstMs):this.setBurst(0),this.pendingSubscriptionTimeoutId&&(this.timers.clearTimeout(this.pendingSubscriptionTimeoutId),this.pendingSubscriptionTimeoutId=void 0),n&&this.timers.setTimeout(()=>{this.currentSubscription.channelId===e&&this.targetSubscription.channelId===t&&(this.logger.warn(`Channel switch timeout`,t),this.targetSubscription=Qb(this.currentSubscription),this.emitter.emit(`channel switch timeout`,t))},$b),this.pendingSubscriptionTimeoutId=this.timers.setTimeout(()=>this.emitter.emit(`send signal`,{type:`subscribe`,subscription:this.getTargetSubscription()}),0))}),this.logger=e,this.targetSubscription=t,this.currentSubscription=Qb(t),this.emitter=n,this.emitter.on(`subscription changed`,this.onSubscriptionChanged)}};Zb=ex,m(ex,`create`,(e,t,n)=>new Zb(e,n,t)),V(),h(),z();var tx,nx=5e3,rx=()=>Qe()||Ye(),ix=e=>e&&rx()?100:0,ax=e=>t=>t>e,ox={seek:{toleranceMs:200,toleranceMaxMs:2500,toleranceMultiplierStep:1,backoffEveryN:2,cooldownMs:1e3,timeoutMs:5e3,aheadToleranceMs:150,keyframeSearchBeforeMs:50,keyframeSearchAfterMs:100},timeshift:{enabled:!1,toleranceMs:50,toleranceMaxMs:600,backoffEveryN:3},playbackRate:{enabled:!1,startDiff:60,stopDiff:40,maxDiff:300,speed:.02,cooldownMs:2e3},backoff:{enabled:!0,decayEnabled:!0,decayCooldownMultiplier:3,decayCheckInterval:15e3}},sx=class{get driftSamplesToCollect(){return this._driftSamplesToCollect}set driftSamplesToCollect(e){this._driftSamplesToCollect=e,this.driftSamples=new C(e)}constructor(e,t,n,r,i,a=!0){m(this,`emitter`,void 0),m(this,`logger`,void 0),m(this,`playbackSource`,void 0),m(this,`bufferSource`,void 0),m(this,`keyframeTimestamps`,new C(10)),m(this,`lastSeekTime`,Date.now()),m(this,`lastAdjustmentTime`,Date.now()),m(this,`lastDecayCheckTime`,Date.now()),m(this,`config`,void 0),m(this,`state`,void 0),m(this,`allowTimeshiftOnAudio`,!1),m(this,`syncInfoToleranceMaxMs`,150),m(this,`syncInfoToleranceStep`,20),m(this,`seekOvershoot`,void 0),m(this,`timers`,Vn.create()),m(this,`rtt`,0),m(this,`channelSyncInfo`,new Map),m(this,`seekAdjustmentCount`,0),m(this,`timeshiftAdjustmentCount`,0),m(this,`syncInfoCorrectionCount`,0),m(this,`playbackRateAdjustmentCount`,0),m(this,`lastPlaybackRateChangeTime`,0),m(this,`seekAdjustmentTimestamps`,[]),m(this,`timeshiftAdjustmentTimestamps`,[]),m(this,`_driftSamplesToCollect`,5),m(this,`driftSamples`,new C(this._driftSamplesToCollect)),m(this,`timestampOffset`,void 0),m(this,`currentChannelId`,void 0),m(this,`highestSeenTimestamps`,new Map),m(this,`isSuspended`,!1),m(this,`isSyncAdjustmentActivated`,!1),m(this,`queuedTimeshift`,!1),m(this,`playbackState`,void 0),m(this,`hasPerformedRecoverySeekInCurrentRecoveryState`,!1),m(this,`shouldSeekAfterBuffering`,!1),m(this,`usesMse`,void 0),m(this,`load`,()=>{this.timers.setInterval(this.onSync,100)}),m(this,`unload`,()=>{this.logger.debug(`Unloading module...`),this.emitter.off(`rtt`,this.updateRtt),this.emitter.off(`playback state`,this.onPlaybackState),this.timers.unload(),this.logger.debug(`Unloaded module`)}),m(this,`suspend`,()=>{this.isSuspended=!0}),m(this,`unsuspend`,()=>{this.resetSyncState(),this.isSuspended=!1}),m(this,`deactivateSyncAdjustments`,()=>{this.isSyncAdjustmentActivated=!1}),m(this,`activateSyncAdjustments`,()=>{this.tryApplySyncInfo(0),this.lastSeekTime=Date.now(),this.isSyncAdjustmentActivated=!0}),m(this,`reset`,()=>{this.logger.info(`Reset sync state`),this.currentChannelId=void 0,this.timestampOffset=void 0,this.resetSyncState(),this.highestSeenTimestamps.clear()}),m(this,`getTimeshiftOffset`,()=>{var e;return(e=this.timestampOffset)==null?0:e}),m(this,`getCurrentChannelId`,()=>this.currentChannelId),m(this,`resetSyncState`,()=>{this.state.seekToleranceMultiplier=1,this.state.timeshiftToleranceMultiplier=1,this.seekAdjustmentTimestamps=[],this.timeshiftAdjustmentTimestamps=[],this.driftSamples.clear(),this.playbackState=void 0,this.hasPerformedRecoverySeekInCurrentRecoveryState=!1,this.clearRecoverySeekFlags()}),m(this,`getEffectiveSeekToleranceMs`,()=>this.config.timeshift.enabled?this.config.seek.toleranceMs*2:this.config.seek.toleranceMs),m(this,`getLiveEdgeTime`,e=>{let t=this.channelSyncInfo.get(e);if(!t)return;let n=Date.now()-t.localTimestamp;return t.timestamp+n}),m(this,`getLiveEdgeTimeLatencyAdjusted`,e=>{let t=this.getLiveEdgeTime(e);if(t)return t+this.rtt/2}),m(this,`getWallclockTime`,e=>{let t=this.channelSyncInfo.get(e);if(!t)return;let n=Date.now()-t.localTimestamp;return t.wallclockTime+n}),m(this,`getWallclockTimeLatencyAdjusted`,e=>{let t=this.getWallclockTime(e);if(t)return t+this.rtt/2}),m(this,`processSample`,e=>{var t;if(!e.channelId)throw Error(`Sample must be assigned to a channel`);this.currentChannelId||(this.currentChannelId=e.channelId),this.timestampOffset||(this.timestampOffset=e.timestamp/e.timescale*1e3-nx);let n=e.type===`video`&&e.isSync;if(this.currentChannelId!==e.channelId){let t=2**53-1;console.assert(this.highestSeenTimestamps.size!==0,`no known timestamps`),this.highestSeenTimestamps.forEach(e=>{t=Math.min(t,e)});let n=e.timestamp/e.timescale*1e3;this.currentChannelId=e.channelId,this.timestampOffset=n-t}else (n||this.allowTimeshiftOnAudio)&&this.tryTimeshiftSync();let r=this.timestampOffset*e.timescale/1e3;return e.timestamp-=r,n&&this.keyframeTimestamps.push(e.timestamp/e.timescale*1e3),this.highestSeenTimestamps.set(e.type,Math.max((t=this.highestSeenTimestamps.get(e.type))==null?0:t,e.timestamp/e.timescale*1e3)),e}),m(this,`processFragment`,(e,t)=>{var n;this.currentChannelId||(this.currentChannelId=e);let r=t.mediaType();if(!r)throw Error(`Fragment must have a media type`);this.timestampOffset||(this.timestampOffset=t.baseMediaDecodeTime()/t.timescale()*1e3-nx);let i=t.mediaType()===`video`&&t.startsWithKeyframe();if(this.currentChannelId!==e){let t=2**53-1;console.assert(this.highestSeenTimestamps.size!==0,`no known timestamps`),this.highestSeenTimestamps.forEach(e=>{t=Math.min(t,e)}),this.currentChannelId=e}else (i||this.allowTimeshiftOnAudio)&&this.tryTimeshiftSync();let a=this.timestampOffset*t.timescale()/1e3;return t.updateBaseMediaDecodeTime(t.baseMediaDecodeTime()-a),i&&this.keyframeTimestamps.push(t.baseMediaDecodeTime()/t.timescale()*1e3),this.highestSeenTimestamps.set(r,Math.max((n=this.highestSeenTimestamps.get(r))==null?0:n,t.baseMediaDecodeTime()/t.timescale()*1e3)),t}),m(this,`forceSeek`,()=>{this.logger.debug(`Forcing seek`,{amount:this.serverCurrentTime-this.playbackSource.currentTime}),this.clearRecoverySeekFlags(),this.playbackSource.currentTime=this.serverCurrentTime}),m(this,`forceTimeshift`,()=>{this.queuedTimeshift=!0}),m(this,`setPlaybackRateAdjustmentEnabled`,e=>{this.config.playbackRate.enabled=e}),m(this,`getStatistics`,()=>{let e=this.driftSamples.items(),t=e.length>0?jt(e.map(Math.abs)):0;return{drift:this.drift,seekAdjustmentCount:this.seekAdjustmentCount,timeshiftAdjustmentCount:this.timeshiftAdjustmentCount,seekTime:this.playbackSource.seekTime,totalSeekTime:this.playbackSource.totalSeekTime,seekToleranceMultiplier:this.state.seekToleranceMultiplier,currentSeekToleranceMs:this.currentSeekToleranceMs(),currentAheadToleranceMs:this.currentAheadToleranceMs(),isPlaybackRateAdjustmentEnabled:this.config.playbackRate.enabled,playbackRate:this.playbackSource.playbackRate||1,playbackRateAdjustmentCount:this.playbackRateAdjustmentCount,averageDrift:t}}),m(this,`updateRtt`,e=>{this.rtt=e}),m(this,`isPlaybackSourceReadyToSeek`,()=>!this.isSeeking()&&this.isSeekCooldownExpired()&&this.isSyncAdjustmentActivated),m(this,`isPlaybackSourceReady`,()=>!this.isSeeking()&&this.isSyncAdjustmentActivated),m(this,`isSeeking`,()=>this.playbackSource.isSeeking?!this.isSeekTimeoutExpired():!1),m(this,`isAllowedToSync`,()=>this.isPlaybackSourceReadyToSeek()&&!!this.currentChannelId&&!this.isSuspended&&!this.playbackSource.isPaused),m(this,`isAllowedToSyncIgnoringCooldown`,()=>this.isPlaybackSourceReady()&&!!this.currentChannelId&&!this.isSuspended&&!this.playbackSource.isPaused),m(this,`isSeekCooldownExpired`,()=>Date.now()-this.lastSeekTime>this.config.seek.cooldownMs),m(this,`isSeekTimeoutExpired`,()=>Date.now()-this.lastSeekTime>this.config.seek.timeoutMs),m(this,`currentTimeshiftToleranceMs`,()=>Math.min(this.config.timeshift.toleranceMs*this.state.timeshiftToleranceMultiplier,this.config.timeshift.toleranceMaxMs)),m(this,`currentSeekToleranceMs`,()=>Math.min(this.state.seekToleranceMultiplier*this.getEffectiveSeekToleranceMs(),this.config.seek.toleranceMaxMs)),m(this,`currentEmergencySeekToleranceMs`,()=>Math.max(this.currentSeekToleranceMs()+this.getEffectiveSeekToleranceMs(),this.bufferSource.getTargetBufferTime())),m(this,`currentAheadToleranceMs`,()=>{let e=Math.max(this.config.seek.aheadToleranceMs*this.state.seekToleranceMultiplier,400),t=this.playbackSource.seekTime>500?e:this.config.seek.aheadToleranceMs;return Math.min(t,this.bufferSource.getTargetBufferTime()/2)}),m(this,`tryDecayMultipliers`,()=>{if(!this.config.backoff.decayEnabled)return;let e=Date.now();if(e-this.lastDecayCheckTime<this.config.backoff.decayCheckInterval)return;this.lastDecayCheckTime=e;let t=this.seekAdjustmentTimestamps.length>0?Math.max(...this.seekAdjustmentTimestamps):0,n=this.timeshiftAdjustmentTimestamps.length>0?Math.max(...this.timeshiftAdjustmentTimestamps):0,r=e-Math.max(t,n,this.lastAdjustmentTime),i=Math.max(this.state.seekToleranceMultiplier,this.state.timeshiftToleranceMultiplier),a=this.config.seek.timeoutMs*this.config.backoff.decayCooldownMultiplier*i;if(r<a)return;let o=!1;if(this.state.seekToleranceMultiplier>1){let e=Math.max(1,this.state.seekToleranceMultiplier-.5);e!==this.state.seekToleranceMultiplier&&(this.logger.info(`Decaying seek tolerance multiplier`,{from:this.state.seekToleranceMultiplier,to:e,timeSinceLastAdjustment:r,requiredStabilityMs:a}),this.state.seekToleranceMultiplier=e,o=!0)}if(this.state.timeshiftToleranceMultiplier>1){let e=Math.max(1,this.state.timeshiftToleranceMultiplier-.5);e!==this.state.timeshiftToleranceMultiplier&&(this.logger.info(`Decaying timeshift tolerance multiplier`,{from:this.state.timeshiftToleranceMultiplier,to:e,timeSinceLastAdjustment:r,requiredStabilityMs:a}),this.state.timeshiftToleranceMultiplier=e,o=!0)}if(o){let t=e-a*2;this.seekAdjustmentTimestamps=this.seekAdjustmentTimestamps.filter(e=>e>t),this.timeshiftAdjustmentTimestamps=this.timeshiftAdjustmentTimestamps.filter(e=>e>t)}}),m(this,`applyBackoff`,()=>{if(this.config.backoff.enabled&&(this.lastAdjustmentTime=Date.now(),this.seekAdjustmentCount>0&&this.seekAdjustmentCount%this.config.seek.backoffEveryN===0)){let e=this.state.seekToleranceMultiplier,t=this.config.seek.toleranceMaxMs/this.getEffectiveSeekToleranceMs();this.state.seekToleranceMultiplier=Math.min(this.state.seekToleranceMultiplier+this.config.seek.toleranceMultiplierStep,t),e!==this.state.seekToleranceMultiplier&&this.logger.info(`Backoff: Increasing seek tolerance multiplier`,{from:e,to:this.state.seekToleranceMultiplier,currentSeekToleranceMs:this.currentSeekToleranceMs()})}}),m(this,`tryPlaybackRateSync`,e=>{if(!this.config.playbackRate.enabled)return!1;let t=this.playbackSource.playbackRate!==1,n=Math.abs(e),r=t&&n<this.config.playbackRate.stopDiff,i=!t&&n>=this.config.playbackRate.startDiff;if(n>this.config.playbackRate.maxDiff)return t&&(this.playbackSource.playbackRate=1,this.lastPlaybackRateChangeTime=Date.now()),!1;let a=Date.now(),o=a-this.lastPlaybackRateChangeTime>=this.config.playbackRate.cooldownMs;if(r&&o)return this.playbackSource.playbackRate=1,this.lastPlaybackRateChangeTime=a,this.logger.info(`Resetting playback rate to 1`,{drift:e}),!0;if(i&&o){let t=e>0?1+this.config.playbackRate.speed:1-this.config.playbackRate.speed;return this.playbackSource.playbackRate=t,this.lastPlaybackRateChangeTime=a,this.playbackRateAdjustmentCount++,this.logger.info(`Adjusting playback rate`,{drift:e,targetRate:t}),!0}if(t&&n>=this.config.playbackRate.stopDiff&&n<=this.config.playbackRate.maxDiff){let t=e>0?1+this.config.playbackRate.speed:1-this.config.playbackRate.speed;return this.playbackSource.playbackRate!==t&&o&&(this.playbackSource.playbackRate=t,this.lastPlaybackRateChangeTime=a,this.logger.info(`Changing playback rate direction`,{drift:e,targetRate:t})),!0}return!t&&n<this.config.playbackRate.startDiff?!0:t}),m(this,`tryTimeshiftSync`,()=>{var e;if(!this.config.timeshift.enabled||this.hasPendingRecoverySeek()||!this.isAllowedToSync()||this.playbackSource.playbackRate!==1)return;let t=(e=this.drift)==null?0:e;this.driftSamples.push(t);let n=Nt(this.driftSamples.items());if(this.queuedTimeshift&&n>0){this.queuedTimeshift=!1,this.applyTimeshift(n);return}if(n>=this.getEffectiveSeekToleranceMs()||n<this.currentTimeshiftToleranceMs())return;let r=Date.now()-this.config.seek.timeoutMs*this.state.timeshiftToleranceMultiplier,i=this.timeshiftAdjustmentTimestamps.filter(ax(r)).length;if(i&&this.state.timeshiftToleranceMultiplier>2){this.logger.debug(`Too many timeshifts within sliding window`,{timeshiftCooldownThreshold:r,recentTimeshiftCount:i});return}this.applyTimeshift(n)}),m(this,`clearRecoverySeekFlags`,()=>{this.shouldSeekAfterBuffering=!1}),m(this,`hasActiveRecoveryTrigger`,()=>this.playbackState===`buffering`),m(this,`hasPendingRecoverySeek`,()=>(this.refreshRecoverySeekState(),this.getRecoverySeekReason()!==void 0)),m(this,`refreshRecoverySeekState`,()=>{var e,t;if(!this.hasActiveRecoveryTrigger()||!this.usesMse||this.hasPerformedRecoverySeekInCurrentRecoveryState){this.clearRecoverySeekFlags();return}let n=(e=(t=this.bufferSource).getNextBufferedRangeStart)==null?void 0:e.call(t,this.playbackSource.currentTime);return this.shouldSeekAfterBuffering=n!==void 0,n}),m(this,`getRecoverySeekReason`,()=>{if(this.shouldSeekAfterBuffering)return`buffering`}),m(this,`shouldSkipNormalSeek`,e=>e<0&&-e<this.currentAheadToleranceMs()||e>0&&e<this.currentSeekToleranceMs()||Math.abs(e)<1?!0:!this.isAllowedToSync()),m(this,`shouldDeferRecoverySeek`,(e,t)=>t!==void 0&&t>e),m(this,`buildSeekPlan`,(e,t)=>{var n,r;let i=this.playbackSource.currentTime+e,a=t?(n=(r=this.bufferSource).getNextBufferedRangeStart)==null?void 0:n.call(r,this.playbackSource.currentTime):void 0,o=i+this.seekOvershoot,s=this.playbackSource.currentTime+this.seekOvershoot,c=t?Math.max(o,s):o;if(t&&this.shouldDeferRecoverySeek(c,a)){this.logger.debug(`Deferring recovery seek until expected playhead reaches next buffered range start`,{currentTime:this.playbackSource.currentTime,desiredCurrentTime:c,nextBufferedRangeStart:a,recoverySeekReason:t});return}let l=t&&a?a:i,u=this.findKeyframeCloseToTimestamp(l);if(!(!t&&!u&&!this.keyframeTimestamps.isEmpty()))return{closestKeyFrame:u,keyframeSearchTime:l,nextBufferedRangeStart:a,targetCurrentTime:u&&u>c?a?Math.max(a,u):u:c}}),m(this,`applySeek`,(e,t)=>{let n=this.playbackSource.seekTime,r=this.buildSeekPlan(e,t);r&&(this.logger.info(`Adjusting for drift using seek`,{drift:e,currentTime:this.playbackSource.currentTime,recoverySeekReason:t,keyframeSearchTime:r.keyframeSearchTime,closestKeyFrame:r.closestKeyFrame,nextBufferedRangeStart:r.nextBufferedRangeStart,targetCurrentTime:r.targetCurrentTime,seekTime:n,rtt:this.rtt,seekToleranceMultiplier:this.state.seekToleranceMultiplier}),this.lastSeekTime=Date.now(),t&&(this.hasPerformedRecoverySeekInCurrentRecoveryState=!0),this.clearRecoverySeekFlags(),this.driftSamples.clear(),this.seekAdjustmentTimestamps.push(this.lastSeekTime),this.seekAdjustmentCount++,this.playbackSource.currentTime=r.targetCurrentTime+Math.min(n,this.bufferSource.getTargetBufferTime()),this.applyBackoff())}),m(this,`applyTimeshift`,e=>{var t;let n=(t=e==null?this.drift:e)==null?0:t;if(!this.timestampOffset)return;let r=n;if(this.logger.info(`Adjusting for drift using timeshift`,{drift:n,syncAmount:r,currentTime:this.playbackSource.currentTime,rtt:this.rtt,timeshiftToleranceMultiplier:this.state.timeshiftToleranceMultiplier}),this.timestampOffset+=r,this.lastSeekTime=Date.now(),this.lastAdjustmentTime=Date.now(),!this.playbackSource.isPaused&&(this.driftSamples.clear(),this.timeshiftAdjustmentTimestamps.push(this.lastSeekTime),this.timeshiftAdjustmentCount++,this.config.backoff.enabled&&this.timeshiftAdjustmentCount>0&&this.timeshiftAdjustmentCount%this.config.timeshift.backoffEveryN===0)){let e=this.state.timeshiftToleranceMultiplier,t=this.config.timeshift.toleranceMaxMs/this.config.timeshift.toleranceMs;this.state.timeshiftToleranceMultiplier=Math.min(this.state.timeshiftToleranceMultiplier+1,t),e!==this.state.timeshiftToleranceMultiplier&&this.logger.info(`Backoff: Increasing timeshift tolerance multiplier`,{from:e,to:this.state.timeshiftToleranceMultiplier,currentTimeshiftToleranceMs:this.currentTimeshiftToleranceMs()})}}),m(this,`onSync`,()=>{var e;this.tryDecayMultipliers(),this.refreshRecoverySeekState();let t=(e=this.drift)==null?0:e,n=this.getRecoverySeekReason(),r=n!==void 0;if(!r&&!this.isAllowedToSyncIgnoringCooldown()||r&&(this.isSeeking()||!this.currentChannelId||this.isSuspended||this.playbackSource.isPaused)||(this.driftSamples.push(t),!this.isSeekCooldownExpired())||!r&&this.driftSamples.items().length<this.driftSamplesToCollect&&Math.abs(t)<2e3)return;let i=r?t:Nt(this.driftSamples.items());if(!r&&this.tryPlaybackRateSync(i)||!r&&this.shouldSkipNormalSeek(i))return;let a=Date.now()-this.config.seek.timeoutMs*this.state.seekToleranceMultiplier,o=this.seekAdjustmentTimestamps.filter(ax(a)).length,s=this.currentEmergencySeekToleranceMs(),c=i>0&&i>=s;if(o&&this.state.seekToleranceMultiplier>2&&!r&&!c){this.logger.debug(`Too many seek adjustments within sliding window`,{seekCooldownThreshold:a,recentSeekCount:o});return}o&&(r||c)&&this.logger.debug(`Bypassing recent seek limit`,{drift:i,recoverySeekReason:n,emergencySeekToleranceMs:s,recentSeekCount:o,seekToleranceMultiplier:this.state.seekToleranceMultiplier}),this.applySeek(i,n)}),m(this,`onPlaybackState`,e=>{let t=this.playbackState===`buffering`;if(this.playbackState=e,e!==`buffering`){this.hasPerformedRecoverySeekInCurrentRecoveryState=!1,this.clearRecoverySeekFlags();return}if(t||(this.hasPerformedRecoverySeekInCurrentRecoveryState=!1),this.refreshRecoverySeekState()!==void 0){this.onSync();return}}),m(this,`findKeyframeCloseToTimestamp`,e=>{let t=this.keyframeTimestamps.items();for(let n of t){let t=n>=e-this.config.seek.keyframeSearchBeforeMs,r=n<=e+this.config.seek.keyframeSearchAfterMs;if(t&&r)return n}}),this.logger=t,this.emitter=e,this.playbackSource=n,this.bufferSource=r,this.usesMse=a,this.seekOvershoot=ix(a),this.config={seek:R({},ox.seek),timeshift:R({},ox.timeshift),playbackRate:R({},ox.playbackRate),backoff:R({},ox.backoff)},this.config.timeshift.enabled=i,a||(this.config.seek.toleranceMs=50,this.config.timeshift.toleranceMs=20,this.config.seek.aheadToleranceMs=40),this.state={seekToleranceMultiplier:1,timeshiftToleranceMultiplier:1},typeof window<`u`&&window.location.search.includes(`playbackRateAdjustmentEnabled`)&&(this.config.playbackRate.enabled=!0),this.emitter.on(`rtt`,this.updateRtt),this.emitter.on(`playback state`,this.onPlaybackState),this.logger.info(`SyncModule initialized`,{config:this.config})}updateChannelSyncInfo(e,t){let n=Date.now(),r=this.channelSyncInfo.get(e),i=this.getLiveEdgeTime(e);if(this.isSuspended)return;if(!r||!i){this.logger.info(`Initial timing info`,{syncInfo:t}),this.channelSyncInfo.set(e,R(R({},t),{},{localTimestamp:n,timeDifferences:new C(12)}));return}let a=t.wallclockTime-r.wallclockTime,o=t.timestamp-r.timestamp,s=n-r.localTimestamp,c=o-s;if(r.timeDifferences.push(c),this.logger.debug(`Timing info`,{rtt:this.rtt,channelId:e,syncInfo:t,localTimestamp:n,diffFromEstimated:c,timestampDelta:o,wallclockDelta:a,localWallclockDelta:s}),Math.abs(c)>=Math.max(this.bufferSource.getTargetBufferTime()*2,3e3)){this.logger.info(`Resetting sync info`,{diffFromEstimated:c}),this.channelSyncInfo.set(e,R(R({},t),{},{localTimestamp:n,timeDifferences:new C(r.timeDifferences.maxSize+1)})),this.currentChannelId&&this.currentChannelId===e&&(this.reset(),this.emitter.emit(`channel reset`));return}r.timeDifferences.items().length<3||this.tryApplySyncInfo(Math.min(this.syncInfoToleranceMaxMs,this.syncInfoCorrectionCount*this.syncInfoToleranceStep))}tryApplySyncInfo(e){let t=this.getCurrentChannelId();if(!t)return;let n=this.channelSyncInfo.get(t);if(!n)return;let r=n.timeDifferences.items();if(r.length===0)return;let i=Nt(r);Math.abs(i)>e&&(this.logger.info(`Adjusting sync info`,{medianDifference:i,tolerance:e,count:r.length}),n.timestamp+=i,this.syncInfoCorrectionCount++,n.timeDifferences.clear())}get serverCurrentTime(){return this.channelCurrentTime-this.getTimeshiftOffset()}get channelCurrentTime(){let e=this.getCurrentChannelId();if(!e)return 0;let t=this.getLiveEdgeTime(e);return t?t-this.bufferSource.getTargetBufferTime():0}get drift(){return this.serverCurrentTime-this.playbackSource.currentTime}};tx=sx,m(sx,`create`,(e,t,n,r,i,a=!0)=>new tx(e,t,n,r,i,a)),Ti(),V(),z(),h(),N();var cx,lx={enabled:!0,interval:3e4,includeErrors:!0,includeEvents:!0,includeStats:!0,maxRetries:10,maxErrorReports:50,maxEvents:50},ux=(e,t)=>R(R({},t),{},{type:e,timestamp:new Date().toISOString(),discriminator:`web`}),dx=class{constructor(e,t,n,r){var i=this;m(this,`logger`,void 0),m(this,`timers`,new Vn),m(this,`emitter`,void 0),m(this,`options`,void 0),m(this,`parentContext`,void 0),m(this,`unsentLines`,new C(100)),m(this,`retries`,0),m(this,`errorCount`,0),m(this,`eventCount`,0),m(this,`statsCount`,0),m(this,`unload`,()=>{this.logger.debug(`Unloading module...`),window.removeEventListener(`error`,this.onError),window.removeEventListener(`unhandledrejection`,this.onRejection),this.timers.unload(),this.emitter.off(`error`,this.addError),this.emitter.off(`visibilitystate`,this.onVisibilityChange),this.emitter.off(`pagehide`,this.onPageHide),this.emitter.off(`telemetry event`,this.addEvent),this.addStats({isFinal:!0,initiator:`unload`}),this.send(`beacon`),this.logger.debug(`Unloaded module`)}),m(this,`load`,()=>{window.addEventListener(`error`,this.onError),window.addEventListener(`unhandledrejection`,this.onRejection),this.emitter.on(`error`,this.addError),this.emitter.on(`visibilitystate`,this.onVisibilityChange),this.emitter.on(`pagehide`,this.onPageHide),this.emitter.on(`telemetry event`,this.addEvent),this.timers.setInterval(()=>{this.addStats(),this.send(`fetch`)},this.options.interval)}),m(this,`addStats`,({isFinal:e,initiator:t}={isFinal:!1,initiator:`interval`},n={})=>{if(!this.options.includeStats)return;let r=this.parentContext.getStatistics(),i=ux(`stats`,R(R(R({},n),r),{},{isFinal:e,initiator:t,count:this.statsCount++}));this.unsentLines.push(i)}),m(this,`addEvent`,e=>{if(!this.options.includeEvents||this.eventCount>this.options.maxEvents)return;let t=ux(`event`,R(R({},this.parentContext.getStatistics()),e));this.eventCount++,this.unsentLines.push(t)}),m(this,`getStatistics`,()=>({errorCount:this.errorCount})),m(this,`send`,function(){var e=M(function*(e){if(i.options.enabled&&!(i.retries>=i.options.maxRetries)&&!i.unsentLines.isEmpty()){i.logger.debug(`Sending telemetry`,{lines:i.unsentLines.items()});try{let t=i.unsentLines.items().map(e=>JSON.stringify(e)).reverse().join(`
1223
+ `);switch(e){case`beacon`:navigator.sendBeacon(i.options.url,t);break;default:i.parentContext.connectionState===`connected`?i.emitter.emit(`send signal`,{type:`telemetry`,body:t}):yield Ol(new URL(i.options.url),{body:t,headers:{"Content-Type":`text/plain`}});break}i.retries=0,i.unsentLines.clear()}catch(e){i.retries++}}});return function(t){return e.apply(this,arguments)}}()),m(this,`onVisibilityChange`,e=>{e===`hidden`&&(this.addStats({isFinal:!0,initiator:`visibilitychange`}),this.send(`beacon`))}),m(this,`onPageHide`,e=>{this.addStats({isFinal:!0,initiator:`pagehide`},{persisted:e.persisted}),this.send(`beacon`)}),m(this,`onRejection`,e=>this.addError(e.reason)),m(this,`onError`,e=>this.addError(e.error)),m(this,`addError`,e=>{let{includeErrors:t,maxErrorReports:n}=this.options;if(t&&e instanceof H){if(this.errorCount++,this.errorCount>n)return;let t=this.parentContext.getStatistics();this.unsentLines.push(ux(`error`,R(R({},t),e.toStringifiable())))}}),this.logger=e,this.emitter=t,this.options=R(R({},lx),n),this.parentContext=r}};cx=dx,m(dx,`create`,(e,t,n,r)=>new cx(e,t,n,r)),V(),h();var fx,px=class{constructor(e,t,n){m(this,`logger`,void 0),m(this,`element`,void 0),m(this,`documentState`,void 0),m(this,`timers`,new Vn),m(this,`unload`,()=>{this.timers.unload()}),m(this,`unpause`,()=>{this.element.userHasProvidedInput&&this.element.isPaused&&this.documentState.isVisible&&this.documentState.isOnline&&(this.logger.debug(`Unpause video`),this.element.tryPlay())}),this.logger=e,this.element=t,this.documentState=n,this.timers.setInterval(this.unpause,100)}};fx=px,m(px,`create`,(e,t,n)=>new fx(e,t,n)),h();var mx=[`minBufferTime`,`maxBufferTime`,`burstEnabled`,`sizeBasedResolutionCapEnabled`,`separateVideoSocketEnabled`,`webcodecsHardwareAcceleration`,`offscreenCanvasEnabled`,`videoCodecs`];function hx(e){return mx.includes(e)}var gx=class{constructor(e){m(this,`options`,void 0),m(this,`overrides`,new Map),this.options=e}getOptions(){return this.options}addOverrides(e,t){this.overrides.set(e,t)}set(e,t){this.options[e]=t}get(e,t){if(t&&hx(e)){var n;let r=(n=this.overrides.get(t))==null?void 0:n[e];if(r!==void 0)return r}return this.options[e]}getOverride(e,t){var n;return(n=this.overrides.get(t))==null?void 0:n[e]}};z();var _x=6,vx=e=>{let t=[e],n=0,r=0,i=!1,a=(e,t)=>{var i,a;if(e.flags&&Bc(e.flags)){var o;n=(o=e.compositionTimeOffset)==null?0:o}e.timestamp+=n,e.compositionTimeOffset=((i=e.compositionTimeOffset)==null?0:i)-n;let s=e.timestamp/e.timescale,c=t.flags&&Bc(t.flags)?(a=t.compositionTimeOffset)==null?0:a:n,l=(t.timestamp+c)/t.timescale,u=Math.max(0,Math.round((l-s)*e.timescale));return u>0&&(r=u),R(R({},e),{},{duration:u>0?u:r})};return(e,n=!1)=>{if(e.flags&&Bc(e.flags)&&n&&(i=!i),!(n&&t.length<_x&&i)&&t.length>0){i=!1;let n=e;for(let e=t.length-1;e>0;e--){let r=t[e];if(!r||!n)break;r.timestamp>=n.timestamp?t.splice(e,1):n=r}let r=t.map((n,r)=>a(n,t[r+1]||e));return t=[e],r}return t.push(e),[]}},yx=[`mse`,`wasm`],bx=e=>e==null?yx:e,xx=e=>{if(!e)return!1;let t=e.headers&&Object.keys(e.headers).length>0,n=e.queryParams&&Object.keys(e.queryParams).length>0;return!!(t||n)},Sx=(e,t,n)=>{if(xx(n))return`mse`;let r=bx(e);for(let e of r)switch(e){case`mse`:if(t)return`mse`;break;case`webcodecs`:if(typeof VideoDecoder<`u`)return`webcodecs`;break;case`wasm`:return`wasm`}return`wasm`};z();var Cx=(e,t,n)=>{if(fr(t))return R(R({},e),{},{type:`video`,codec:t.codec,isSync:Bc(e.flags),data:e.payload,duration:0,width:t.width,height:t.height},n);if(t.codec===`webvtt`)throw Error(`WebVTT is not supported`);return R(R({},e),{},{type:`audio`,channels:t.channels,sampleRate:t.sampleRate,codec:t.codec,language:t.language,isSync:Bc(e.flags),data:e.payload,duration:0})};Ti(),z();var wx=(e,t)=>e&&typeof e==`object`&&t in e,Tx=e=>!(typeof e!=`object`||!wx(e,`channelId`)||typeof e.channelId!=`string`||!wx(e,`url`)||typeof e.url!=`string`||e.channelId.length===0||e.url.length===0),Ex=e=>{if(!Tx(e))throw new H(`Invalid options`,{isFatal:!0,code:`invalid_options`});let t=R({},e);return Object.keys(t).forEach(e=>{let n=t;n[e]===void 0&&delete n[e]}),t},Dx=e=>{if(typeof e!=`object`||!e)throw Error(`not an object`);if(!(`video`in e))throw Error(`missing video in subscription`);if(!(`audio`in e))throw Error(`missing audio in subscription`);if(!(`channelId`in e))throw Error(`missing channelId`);return!0};La(),Rc(),vy(),h(),N();var Ox=class{constructor(e){var t=this;m(this,`cache`,new Map),m(this,`inFlight`,new Map),m(this,`checkVideoSupport`,function(){var e=M(function*(e){var n;if(typeof VideoDecoder>`u`)return!1;let r=VideoDecoder.isConfigSupported;if(typeof r!=`function`)return!0;if(e.codec===`h265`&&!e.codecString)return t.logger.warn(`Missing HEVC codec string for WebCodecs support check. Falling back to optimistic support.`,{renditionId:e.id}),!0;let i=(n=e.codecString)==null?e.codec===`av1`?`av01.0.08M.08`:`avc1.42E01E`:n,a=`video|${i}|${e.width}x${e.height}`;return t.check(a,()=>r({codec:i,optimizeForLatency:!0,codedWidth:e.width,codedHeight:e.height}),!0,{message:`Failed to check WebCodecs rendition support. Falling back to optimistic support check.`,codec:i,renditionId:e.id})});return function(t){return e.apply(this,arguments)}}()),m(this,`checkAudioSupport`,function(){var e=M(function*(e){var n;if(typeof AudioDecoder>`u`)return!1;let r=AudioDecoder.isConfigSupported;if(typeof r!=`function`)return!0;let i=(n=e.codecString)==null?_y(e.codec):n,a=`audio|${i}|${e.sampleRate}|${e.channels}`,o=e.codec===`aac`?Ia(e.channels,e.sampleRate):e.codec===`opus`?Ic(e.channels,e.sampleRate):void 0;return t.check(a,()=>r({codec:i,sampleRate:e.sampleRate,numberOfChannels:e.channels,description:o}),!1,{message:`Failed to check WebCodecs audio rendition support. Treating rendition as unsupported.`,codec:i,renditionId:e.id})});return function(t){return e.apply(this,arguments)}}()),m(this,`check`,(e,t,n,r)=>{let i=this.cache.get(e);if(i!==void 0)return Promise.resolve(i);let a=this.inFlight.get(e);if(a)return a;let o=Promise.resolve().then(t).then(({supported:t})=>(this.cache.set(e,t),t)).catch(t=>(this.logger.warn(r.message,{codec:r.codec,renditionId:r.renditionId,error:t}),this.cache.set(e,n),n)).finally(()=>{this.inFlight.delete(e)});return this.inFlight.set(e,o),o}),this.logger=e}};Ti(),V(),h(),T(),z(),N(),j(),k();var kx=new WeakMap,Ax=new WeakMap,jx=new WeakMap,Mx=class e extends Ht{constructor(t){var n,r;super(),n=this,m(this,`pictureInPicture`,void 0),m(this,`drm`,void 0),m(this,`browser`,rt()),m(this,`options`,void 0),m(this,`element`,void 0),m(this,`playbackSource`,void 0),m(this,`emitter`,new Ht),m(this,`logger`,void 0),m(this,`modules`,void 0),m(this,`clientIp`,void 0),m(this,`sessionId`,void 0),m(this,`clientId`,tr()),m(this,`_channels`,[]),m(this,`createdAt`,Date.now()),m(this,`offscreenCanvasElement`,void 0),m(this,`webCodecsRenditionSupport`,void 0),m(this,`hasCalledConnect`,!1),m(this,`latestEmittedLanguages`,[]),m(this,`wakeLock`,void 0),m(this,`pool`,new ae(e.MAX_POOL_SIZE)),m(this,`userAgentInformation`,new $n),m(this,`encryptedMediaExtensions`,void 0),w(this,kx,0),w(this,Ax,[]),m(this,`sampleProcessingSesssions`,new Map),m(this,`sizes`,new Map),m(this,`isSuspended`,!0),m(this,`disconnectTimeout`,void 0),m(this,`offscreenSubtitleInterval`,void 0),w(this,jx,void 0),m(this,`attach`,e=>{var t;(t=this.wakeLock)==null||t.attach(e),e.appendChild(this.element)}),m(this,`setElement`,e=>{this.element!==e&&(this.element=e,this.modules.constraintCap.setElement(e))}),m(this,`getOptions`,()=>this.options.getOptions()),m(this,`getThumbnailUrl`,()=>{let e=this.options.get(`edgeUrl`)||this.options.get(`url`);e=e.replace(`wss://`,`https://`),e=e.replace(`ws://`,`http://`),e=e.endsWith(`/`)?e.slice(0,-1):e;let t=window.devicePixelRatio||1,n=Math.round(window.innerWidth*t),r=Math.round(window.innerHeight*t),i=this.options.get(`authenticationToken`),a=i?`&auth.token=${i}`:``;return`${e}/api/thumbnail?channelId=${this.channelId}${a}&width=${n}&height=${r}`}),m(this,`updateAuthenticationToken`,e=>{this.logger.debug(`Got new auth token`,{token:e}),this.options.set(`authenticationToken`,e),this.emitter.emit(`send signal`,{type:`refresh auth`,token:e})}),m(this,`connect`,()=>{this.hasCalledConnect||(this.play(),this._connect())}),m(this,`_connect`,()=>{if(!this.hasCalledConnect){if(this.hasCalledConnect=!0,Object.values(this.modules).forEach(e=>{e&&`load`in e&&e.load()}),this.unsuspend(),this.playbackSource instanceof il){var e,t;(e=(t=this.playbackSource).load)==null||e.call(t)}this.modules.connection.connect()}}),m(this,`getCastOptions`,()=>({url:this.options.get(`url`),channelId:this.options.get(`channelId`),channelGroupId:this.options.get(`channelGroupId`),authenticationToken:this.options.get(`authenticationToken`),language:this.options.get(`language`),logLevel:this.options.get(`logLevel`),minBufferTime:this.options.get(`minBufferTime`),tags:this.options.get(`tags`),ownerSessionId:this.sessionId,edgeUrl:this.options.get(`edgeUrl`),media:this.options.get(`media`),drm:this.options.get(`drm`)})),m(this,`onConnectInfo`,function(){var e=M(function*(e){var t;n.sessionId=tr();let r=n.modules.subscription.getTargetSubscription(),i=e.channels.find(e=>e.channelId===r.channelId);if(n.emitter.emit(`connect info`,e),`timeshift`in e&&e.timeshift?(e.timeshift,n._channels=e.channels.map(t=>R(R({},t),{},{timeshift:e.timeshift})),n.emit(`timeshift info`,e.timeshift)):n._channels=e.channels,n.updateTextTracks((t=i==null?void 0:i.renditions)==null?[]:t),!n.textTrack&&n.options.get(`textTrack`)&&(n.textTrack=n.options.get(`textTrack`)),yield Promise.all(e.channels.map(function(){var e=M(function*(e){e.overrides&&n.options.addOverrides(e.channelId,e.overrides),e.renditions=yield n.filterRenditions(e.renditions),n.modules.renditions.setRenditions(e.channelId,e.renditions)});return function(t){return e.apply(this,arguments)}}())),!i)throw _i(`external`);let a=n.options.getOverride(`sizeBasedResolutionCapEnabled`,n.channelId);a!==void 0&&(n.modules.constraintCap.sizeBasedResolutionCapEnabled=a);let o=n.options.getOverride(`minBufferTime`,n.channelId),s=n.options.getOverride(`maxBufferTime`,n.channelId);if((o||s)&&(n.modules.bufferTime.updateConfig({minBufferTime:n.options.get(`minBufferTime`,n.channelId),maxBufferTime:n.options.get(`maxBufferTime`,n.channelId)}),n.targetBufferTime=n.options.get(`minBufferTime`,n.channelId)),n.options.get(`burstEnabled`,n.channelId)&&n.modules.subscription.enableBurst(n.targetBufferTime),n.emit(`is live`,i.isLive),!i.isLive)throw Error(`Waiting for channel to go live`);n.patchSubscription(i,n.modules.connection.estimatedBandwidth),yield n.initializeDecodingModule(),n.resetModules(),n.emit(`rendition levels`,n.modules.renditions.getRenditionLevels()),n.emit(`channels`,n.channels),n.emitLanguagesIfChanged(),n.sampleProcessingSesssions.clear();let c=n.options.get(`burstEnabled`,n.channelId);return{video:n.targetSubscription.video,audio:n.targetSubscription.audio,burstMs:c?n.targetBufferTime:void 0,sessionId:n.sessionId,clientId:n.clientId,channelId:n.channelId,channelGroupId:n.options.get(`channelGroupId`),authToken:n.options.get(`authenticationToken`),textTrack:n.textTrack}});return function(t){return e.apply(this,arguments)}}()),m(this,`emitLanguagesIfChanged`,()=>{let e=this.modules.renditions.getLanguages(),t=this.latestEmittedLanguages;e.length===t.length&&e.every(e=>t.includes(e))||(this.logger.debug(`Emitting new languages`,{currentLanguages:e}),this.latestEmittedLanguages=e,this.emit(`languages`,this.latestEmittedLanguages))}),m(this,`updateTextTracks`,e=>{let t=e.filter(e=>e.codec===`webvtt`);t.forEach(e=>{if(!A(Ax,this).find(t=>t.language===e.language)){if(this.modules.canvasModule){let t=this.modules.canvasModule.textTracks.addTextTrack(e.kind,e.label||e.language||``,e.language||``);A(Ax,this).push(t)}else if(this.mediaElement instanceof HTMLVideoElement){let t=this.mediaElement.addTextTrack(e.kind,e.label||e.language,e.language);A(Ax,this).push(t)}}});for(let e of A(Ax,this))t.find(t=>t.language===e.language)?e.mode===`disabled`&&(e.mode=`hidden`):e.mode=`disabled`;this.emit(`text tracks`,this.textTracks)}),m(this,`cleanupTextTracks`,(e=this.currentTime-2e4)=>{A(Ax,this).forEach(t=>{if(t.cues)for(let n of t.cues)n.endTime*1e3<e-2e3&&t.removeCue(n)})}),m(this,`filterRenditions`,function(){var e=M(function*(e){let t=yield Promise.all(e.map(function(){var e=M(function*(e){if(pr(e)){var t;return n.willUseMediaSource()&&!((t=Be())!=null&&t.isTypeSupported(mr(e)))?!1:n.willUseMediaSource()||e.codec===`opus`?!0:n.isWebCodecsAudioAvailable(n.channelId)?n.webCodecsRenditionSupport.checkAudioSupport(e):!1}if(!fr(e)||!n.isSupportedVideoCodecProfile(e.codec,e.codecString))return!1;if(!n.willUseMediaSource())return n.isWebCodecsVideoAvailable(n.channelId)?n.webCodecsRenditionSupport.checkVideoSupport(e):!0;let r=yield al(e);if(!r.supported)return!1;if(e.codec===`av1`&&!r.smooth&&!r.powerEfficient)return n.logger.debug(`discarding av1 rendition, neither smooth nor power efficient`,{codecString:e.codecString,width:e.width,height:e.height,bitRate:e.bitRate,capabilities:r}),!1;let i=n.options.getOverride(`maxVideoBitRate`,n.channelId);return i?i>=e.bitRate:!0});return function(t){return e.apply(this,arguments)}}())),r=e.filter((e,n)=>t[n]),i=e.filter((e,n)=>!t[n]);i.length>0&&n.logger.debug(`unsupported renditions filtered out`,{renditions:i.map(e=>R(R({codec:e.codec,codecString:e.codecString},fr(e)?{width:e.width,height:e.height}:{}),{},{bitRate:e.bitRate}))});let a=r.filter(e=>e.codec===`h264`).reverse()[0],o=r.filter(e=>e.codec===`av1`).reverse()[0];return a&&o&&a.width>o.width&&a.height>o.height&&(n.logger.debug(`discarding av1 renditions, h264 ladder has higher resolution`,{bestH264:{width:a.width,height:a.height,bitRate:a.bitRate},bestAV1:{width:o.width,height:o.height,bitRate:o.bitRate}}),r=r.filter(e=>e.codec!==`av1`)),n.logger.debug(`supported renditions`,{renditions:r.map(e=>R(R({codec:e.codec,codecString:e.codecString},fr(e)?{width:e.width,height:e.height}:{}),{},{bitRate:e.bitRate}))}),r});return function(t){return e.apply(this,arguments)}}()),m(this,`patchSubscription`,(e,t)=>{let n=this.options.get(`maxInitialBitRate`),r=Math.min(this.options.get(`maxVideoBitRate`),n,t,this.targetSubscription.video.bitRate),i=Math.min(this.options.get(`maxAudioBitRate`),n,t,this.targetSubscription.audio.bitRate),a=this.options.get(`media`)===`audio`?[]:this.options.get(`videoCodecs`,this.channelId),o=this.supportedAudioCodecs(),s=e.renditions.filter(pr),c=e.renditions.filter(fr),l=o.find(e=>s.find(t=>t.codec===e)!==void 0),u=a.find(e=>c.find(t=>t.codec===e)!==void 0),d=s.map(e=>e.language);if(this.logger.debug(`supported and selected codecs`,{audioCodecs:o,videoCodecs:a,audioCodec:l,videoCodec:u}),u){let e=this.options.get(`maxSize`);this.modules.subscription.setVideoConstraint(R({codec:u,bitRate:this.abrEnabled?r:this.options.get(`maxVideoBitRate`)},e))}l&&(this.modules.subscription.setAudioConstraint({codec:l,bitRate:this.abrEnabled?i:this.options.get(`maxAudioBitRate`),language:this.options.get(`language`)}),(!d.includes(this.options.get(`language`))||this.language===void 0)&&this.modules.subscription.setLanguage(d[0])),this.alignSizeAndBitRate(this.targetSubscription);let f=this.modules.subscription.getTargetSubscription();this.emitter.emit(`subscription changed`,{to:f,from:this.modules.subscription.getCurrentSubscription()})}),m(this,`isSupportedVideoCodecProfile`,(e,t)=>{if(this.willUseMediaSource()){let n=Be();return n?n.isTypeSupported(mr({codec:e,codecString:t})):!0}if(this.isWebCodecsVideoAvailable(this.channelId)&&(e===`h264`||e===`h265`||e===`av1`))return!0;if(e===`h264`){let e=!!(t!=null&&t.startsWith(`avc1.42`)),n=!!(t!=null&&t.startsWith(`avc1.66.`));return e||n}return!(e===`h265`||e===`av1`)}),m(this,`supportedAudioCodecs`,()=>{if(this.options.get(`media`)===`video`)return[];let e=[];return(this.willUseMediaSource()||this.isWebCodecsAudioAvailable(this.channelId))&&e.push(`aac`),(this.browser.supportsMp4Opus&&this.options.get(`mseOpusEnabled`)||!this.willUseMediaSource())&&e.push(`opus`),this.isWebCodecsAudioAvailable(this.channelId)&&e.push(`mp3`),e}),m(this,`initializeDecodingModule`,M(function*(){var e;let t=n.currentRenditionLevel,r=[];if(!t)throw new H(`No currentRenditionLevel`,{code:`no_current_rendition_level`,isFatal:!1});if(t!=null&&t.video&&r.push({type:`video`,mimeType:mr(t.video),codec:t.video.codec}),t!=null&&t.audio&&r.push({type:`audio`,codec:t.audio.codec,mimeType:mr(t.audio),channels:t.audio.channels,sampleRate:t.audio.sampleRate}),r.length===0)throw new H(`Can't initialize decoding module without tracks`,{code:`no_tracks`,isFatal:!1});if(n.willUseMediaSource()&&n.element instanceof HTMLMediaElement){var i;n.emitter.emit(`flush buffers`),yield(i=n.modules.mseModule)==null?void 0:i.setSourceBuffers(r);return}let a=n.shouldUseWebCodecs(n.channelId),o=n.options.get(`webcodecsHardwareAcceleration`,n.channelId),s=n.shouldUseOffscreenCanvas(n.channelId)&&a,c=typeof OffscreenCanvas<`u`&&typeof HTMLCanvasElement<`u`&&typeof HTMLCanvasElement.prototype.transferControlToOffscreen==`function`,l=s&&c&&typeof VideoDecoder<`u`,u,d;if(l)try{d=document.createElement(`canvas`),xr(d),u=d.transferControlToOffscreen()}catch(e){u=void 0,d=void 0,n.logger.warn(`Failed to enable OffscreenCanvas; falling back to main thread rendering`,{error:e})}else s&&n.logger.warn(`OffscreenCanvas requested but not supported; falling back to main thread rendering`);let f=yield Jy.create(n.emitter,n.logger.createContext(`DecoderModule`),n.options.get(`logLevel`),r,n.playbackSource,n.pool,a,o,u),{videoRenderer:p}=f.getStatistics(),m=n.modules.canvasModule;if(m instanceof yb)if(p===`OffscreenCanvas`&&d){m.setVideoRenderingEnabled(!1);let e=n.element;e.parentElement?e.parentElement.replaceChild(d,e):n.logger.warn(`OffscreenCanvas rendering is active but the current element is not attached to the DOM. Updating internal element reference only.`),n.offscreenCanvasElement=d,n.setElement(d)}else{m.setVideoRenderingEnabled(!0),n.offscreenCanvasElement=void 0;let e=m.element();if(e!==n.element){let t=n.element;t.parentElement&&t.parentElement.replaceChild(e,t),n.setElement(e)}}else m instanceof xb&&(p===`OffscreenCanvas`&&d?(m.setOffscreenCanvas(d),n.offscreenCanvasElement=d):(m.setOffscreenCanvas(void 0),n.offscreenCanvasElement=void 0));(e=n.modules.decoder)==null||e.unload(),n.modules.decoder=f,n.modules.decoder.load(),n.setupOffscreenSubtitleRouting()})),m(this,`setupOffscreenSubtitleRouting`,()=>{if(this.offscreenSubtitleInterval!==void 0&&(clearInterval(this.offscreenSubtitleInterval),this.offscreenSubtitleInterval=void 0),!this.offscreenCanvasElement||!this.modules.decoder||this.modules.canvasModule instanceof xb)return;let e=this.modules.decoder,t=this.modules.canvasModule;if(!t)return;let n=!1;this.offscreenSubtitleInterval=setInterval(()=>{var r,i,a,o;if(!t.textTracks.language){n&&(e.setSubtitleCues([],0,0,1,0),n=!1);return}n=!0;let s=t.textTracks.getActiveCues(this.currentTime/1e3).map(e=>({text:e.text})),c=((r=this.element)==null?void 0:r.clientWidth)||0,l=((i=this.element)==null?void 0:i.clientHeight)||0,u=((a=this.element)==null?void 0:a.style.getPropertyValue(`--vindral-subtitle-offset`))||((o=this.element)==null?void 0:o.style.getPropertyValue(`--vindral-control-bar-offset`)),d=parseInt(u||`0`,10)||0;e.setSubtitleCues(s,c,l,globalThis.devicePixelRatio||1,-d)},100)}),m(this,`unload`,M(function*(){var t,r,i;n.logger.debug(`Unloading modules...`),n.offscreenSubtitleInterval!==void 0&&(clearInterval(n.offscreenSubtitleInterval),n.offscreenSubtitleInterval=void 0),yield Promise.all(Object.values(n.modules).map(e=>e==null?void 0:e.unload())),(t=n.wakeLock)==null||t.unload(),n.pool=new ae(e.MAX_POOL_SIZE),(r=(i=n.playbackSource).unload)==null||r.call(i),n.element.remove(),n.emitter.reset(),n.encryptedMediaExtensions.unload(),n.reset(),n.logger.debug(`Unloaded modules`)})),m(this,`userInput`,()=>{this.play()}),m(this,`pause`,()=>{this.options.get(`pauseSupportEnabled`)&&this.playbackState!==`paused`&&(this.playbackSource.pause(),this.hasCalledConnect&&this.suspend())}),m(this,`registerDebugInstance`,()=>{rl(this)}),m(this,`play`,()=>{var t;this.hasCalledConnect?this.unsuspend():this.playbackState!==`playing`&&(this._connect(),self.addEventListener(`__vindral_register_debug__`,this.registerDebugInstance),this.modules.timer.setInterval(()=>this.cleanupTextTracks(),e.REMOVE_CUE_THRESHOLD)),(t=this.wakeLock)==null||t.enable(),this.playbackState===`paused`&&(this.resetModules(),this.emitter.emit(`flush buffers`),this.cleanupTextTracks(2**53-1)),this.playbackSource.play()}),m(this,`getStatistics`,()=>{let e=Object.values(this.modules).reduce((e,t)=>t&&`getStatistics`in t?R(R({},e),t.getStatistics()):e,this.getRuntimeInfo()),t=Math.round(this.timeActive>0?(e.bytesReceived||0)*8/(this.timeActive/1e3):0),n=this.uptime/36e5,r=Math.max(0,(e.connectCount||0)-1),i=n>0?r/n:0,a=this.timeActive/6e4,o=Math.max(a,1),s=a>0?(e.seekAdjustmentCount||0)/o:0,c=a>0?(e.timeshiftAdjustmentCount||0)/o:0;return R(R({},e),{},{averageBitRate:t,reconnectsPerHour:i,seekAdjustmentsPerMinute:s,timeshiftAdjustmentsPerMinute:c})}),m(this,`resetModules`,()=>{Object.values(this.modules).forEach(e=>{e&&`reset`in e&&e.reset()}),this.sampleProcessingSesssions.clear(),this.playbackSource.currentTime=0,this.playbackSource.isActivated=!1}),m(this,`getRuntimeInfo`,()=>{let e=this.modules.canvasModule instanceof xb?!0:void 0;return R({uptime:Date.now()-this.createdAt,version:void 0,clientId:this.clientId,sessionId:this.sessionId,channelId:this.channelId,channelGroupId:this.options.get(`channelGroupId`),ip:this.clientIp,url:this.options.get(`url`),timeToFirstFrame:this.timeToFirstFrame(),streamToMediaElementEnabled:e,iosMediaElementEnabled:e},this.userAgentInformation.getUserAgentInformation())}),m(this,`getPlaybackBufferState`,(e,t)=>{let n=t==null?void 0:t.getBufferState(e.currentTime);if(!n)return e;let r=e.playbackState===`buffering`||n.playbackState===`buffering`?`buffering`:e.playbackState===`paused`?`paused`:`playing`;return R(R({},e),{},{buffered:n.buffered,playbackState:r})}),m(this,`onMediaElementBufferState`,(e,t)=>{this.emitter.emit(`buffer state`,this.getPlaybackBufferState(e,t))}),m(this,`onMediaElementState`,e=>{this.logger.info(`media element state`,{state:e}),this.options.get(`pauseSupportEnabled`)&&(e===`paused`?this.modules.documentState.isVisible&&(this.suspend(),this.modules.connection.disconnect()):(this.unsuspend(),this.modules.connection.getState()===`disconnected`&&this.modules.connection.unsuspend()))}),m(this,`onBufferEvent`,e=>{this.emit(`buffer state event`,e);let t=!this.playbackSource.isActivated||this.playbackSource.isPaused;if(e===`filled`&&t){var n,r,i,a;let e=Math.max(this.currentTime,(n=(r=this.videoBufferedRanges[0])==null?void 0:r.start)==null?0:n,(i=(a=this.audioBufferedRanges[0])==null?void 0:a.start)==null?0:i);this.logger.info(`Buffer filled - starting playback`,{currentTime:e}),this.playbackSource.currentTime=e,this.modules.sync.activateSyncAdjustments(),this.playbackSource.isActivated=!0}else e===`drained`&&this.playbackSource.isPaused&&(this.playbackSource.isActivated=!1,this.modules.sync.deactivateSyncAdjustments())}),m(this,`timeToFirstFrame`,()=>{let e=this.modules.playback.getFirstFrameTime(),t=this.modules.connection.firstConnectionTime;if(t&&e)return e-t}),this.options=new gx(R(R({},vr),Ex(t))),t.telemetryEnabled===void 0&&[`localhost`,`127.0.0.1`].includes(location.hostname)&&this.options.set(`telemetryEnabled`,!1);let i={channelId:this.options.get(`channelId`),audio:{language:this.options.get(`language`),bitRate:this.options.get(`maxAudioBitRate`)},video:{bitRate:this.options.get(`maxVideoBitRate`),width:this.options.get(`maxSize`).width,height:this.options.get(`maxSize`).height}},a=sn.get();a.setLevel(this.options.get(`logLevel`)),a.setDebug(!1),this.logger=a,this.webCodecsRenditionSupport=new Ox(a),t.iosMediaElementEnabled!==void 0&&this.logger.warn(`Option iosMediaElementEnabled is deprecated and will be removed in a future release. Use streamToMediaElementEnabled instead.`);let o=(r=t.streamToMediaElementEnabled)==null?t.iosMediaElementEnabled:r;o!==void 0&&(this.options.set(`streamToMediaElementEnabled`,o),this.options.set(`iosMediaElementEnabled`,o));let s=t.mseEnabled!==void 0,c=t.decoders!==void 0;s&&this.logger.warn(`Option mseEnabled is deprecated and will be removed in a future release. Use decoders instead (e.g. decoders: ["wasm"]).`),s&&!c&&t.mseEnabled===!1&&this.options.set(`decoders`,[`wasm`]);let l=Hb.create(this.emitter,this.logger.createContext(`PictureInPictureModule`)),u=Vn.create(),d=dy.create(this.emitter,this.logger.createContext(`ConnectionModule`),{reconnectHandler:this.options.get(`reconnectHandler`),options:this.options,onConnectInfo:this.onConnectInfo}),f=ex.create(this.logger.createContext(`SubscriptionModule`),this.emitter,i),p=Xb.create(this.emitter,f),h=Jb.create(this.emitter,this.logger.createContext(`QualityOfServiceModule`),p),g=Wb.create(this.emitter,this.logger.createContext(`PlaybackModule`),this,this.options.get(`minBufferTime`));this.encryptedMediaExtensions=new Ea(this.emitter,this.logger.createContext(`EncryptedMediaExtensions`),t.drm),this.drm={setHeaders:e=>{this.encryptedMediaExtensions.headers=e},setQueryParams:e=>{this.encryptedMediaExtensions.queryParams=e}};let _=Xy.create(this.emitter),v=this.options.get(`poster`),ee=v===!0?this.getThumbnailUrl():v||void 0,y,b,te;if(this.willUseMediaSource()){let e=new il({type:this.options.get(`media`)===`audio`?`audio`:`video`,autoplay:!1,muted:this.options.get(`muted`)||this.options.get(`media`)===`video`,volume:this.options.get(`volume`),logger:this.logger.createContext(`MediaElement`),poster:ee});e.on(`buffer state`,e=>this.onMediaElementBufferState(e,y)),e.on(`needs user input`,e=>this.emitter.emit(`needs user input`,e)),e.on(`volume state`,e=>this.emit(`volume state`,e)),e.on(`media element state`,e=>this.onMediaElementState(e)),this.element=e.element,this.playbackSource=e,Ea.isSupported()&&this.encryptedMediaExtensions.attach(e.element),y=Nb.create(this.logger.createContext(`MseModule`),this.emitter,this.element),this.options.get(`pauseSupportEnabled`)||(b=px.create(this.logger.createContext(`UnpauseModule`),e,_)),this.options.get(`pictureInPictureEnabled`)&&this.emitter.emit(`add picture in picture listener`,{element:e.element})}else if(this.options.get(`streamToMediaElementEnabled`)&&Dt(this.browser)){let e=xb.create(this.emitter,this.logger.createContext(`ModernCanvasModule`),this.pool,this,{type:this.options.get(`media`)===`audio`?`audio`:`video`,muted:this.options.get(`muted`)||this.options.get(`media`)===`video`,volume:this.options.get(`volume`),poster:ee,offscreenCanvas:this.offscreenCanvasElement,bufferTime:this.options.get(`minBufferTime`)}),t=e.element();this.element=t.element,this.playbackSource=e,te=e;let n=this.browser.platform.isIOS&&this.browser.platform.iosVersion<=15;this.options.get(`pictureInPictureEnabled`)&&!n&&this.emitter.emit(`add picture in picture listener`,{element:this.element}),this.options.get(`pauseSupportEnabled`)||(b=px.create(this.logger.createContext(`UnpauseModule`),t,_))}else{let e;e=yb.create(this.emitter,this.logger.createContext(`LegacyCanvasModule`),this.pool,this,this.options.get(`muted`)||this.options.get(`media`)===`video`,this.options.get(`volume`),()=>{this.setElement(e.element())},this.options.get(`minBufferTime`)),this.element=e.element(),this.playbackSource=e,te=e,this.options.get(`iosWakeLockEnabled`)&&(this.wakeLock=new Jc)}this.emitter.on(`channel reset`,this.resetModules),this.emitter.on(`no data timeout`,this.resetModules),this.emitter.on(`media element state`,e=>this.onMediaElementState(e)),this.emitter.on(`volume state`,e=>this.emit(`volume state`,e)),this.options.get(`pauseSupportEnabled`)||this.emitter.on(`exit picture in picture`,()=>u.setTimeout(()=>this.play(),0)),this.emitter.on(`constraint cap changed`,e=>{this.logger.info(`new cap set`,{cap:e}),this.alignSizeAndBitRate(this.targetSubscription)}),this.pictureInPicture={enter:()=>l.requestPictureInPicture(),exit:()=>l.exitPictureInPicture(),isActive:()=>l.isPictureInPictureActive(),isSupported:()=>l.isPictureInPictureSupported()},this.emitter.on(`error`,e=>{if(e.type()===`external`&&this.emit(`error`,e),e.isFatal())return()=>void this.unload()});let ne=this.willUseMediaSource(),re=ne?!this.browser.platform.isWebKit:!0,ie={getTargetBufferTime:()=>g.getTargetBufferTime(),getNextBufferedRangeStart:y?e=>y.getNextBufferedRangeStart(e):void 0},oe=sx.create(this.emitter,this.logger.createContext(`SyncModule`),this.playbackSource,ie,re,ne),x=ib.create(this.logger.createContext(`JitterModule`)),se=(this.options.get(`edgeUrl`)||this.options.get(`url`)).replace(`wss://`,`https://`).replace(`ws://`,`http://`).replace(`//lb.`,`//errors.`),S=new URL(`/telemetry`,se).toString();this.modules={telemetry:dx.create(this.logger.createContext(`TelemetryModule`),this.emitter,{url:S,enabled:this.options.get(`telemetryEnabled`),includeStats:!1,interval:5e3},this),bufferTime:vl.create(this.emitter,this.logger.createContext(`BufferTimeModule`),h,this,{maxBufferTime:this.options.get(`maxBufferTime`),minBufferTime:this.options.get(`minBufferTime`)}),incomingData:tb.create(this.emitter),adaptivity:hl.create(this.emitter,this.logger.createContext(`AdaptivityModule`),h,{cooldownTime:Math.max(this.options.get(`minBufferTime`),2e3)}),constraintCap:gy.create(this.emitter,this.element,p,this.options.get(`abrEnabled`)?this.options.get(`sizeBasedResolutionCapEnabled`):!1),event:$y.create(this.emitter,this.logger.createContext(`EventModule`),oe),sync:oe,jitter:x,documentState:_,connection:d,playback:g,pictureInPicture:l,timer:u,subscription:f,renditions:p,qualityOfService:h,mseModule:y,unpause:b,canvasModule:te},this.modules.adaptivity.isEnabled=this.options.get(`abrEnabled`),this.emitter.on(`page active`,t=>{if(t&&typeof this.disconnectTimeout==`number`&&(this.modules.timer.clearInterval(this.disconnectTimeout),this.disconnectTimeout=void 0),t)this.playbackSource.isPaused||(this.logger.debug(`Unsuspending`),this.unsuspend());else if(this.logger.debug(`Suspending`),this.suspend(),this.modules.decoder)if(this.options.get(`iosBackgroundPlayEnabled`)){var n;this.modules.decoder.unsuspend(),(n=this.modules.canvasModule)==null||n.unsuspend()}else this.modules.connection.disconnect();else this.disconnectTimeout&&this.modules.timer.clearInterval(this.disconnectTimeout),this.disconnectTimeout=this.modules.timer.setInterval(()=>{let e=this.playbackState===`paused`||this.muted;this.connectionState===`connected`&&e&&(this.emitter.emit(`flush buffers`),this.modules.connection.disconnect(`Page inactive timeout`))},e.DISCONNECT_TIMEOUT)});let ce;this.emitter.on(`context switch complete`,()=>{ce||(ce=window.setTimeout(()=>{window.clearTimeout(ce),ce=void 0,this.emit(`context switch`,`completed`),this.emitLanguagesIfChanged()},this.targetBufferTime))}),this.emitter.on(`context switch started`,()=>this.emit(`context switch`,`started`)),this.emitter.on(`needs user input`,e=>this.emit(`needs user input`,e)),this.emitter.on(`event`,e=>{switch(e.type){case`metadata`:this.emit(`metadata`,e);break;case`channel switch`:this.emit(`channel switch`,{channelId:e.channelId});break;case`language switch`:this.emit(`language switch`,{language:e.language});break}}),this.emitter.on(`buffer state event`,this.onBufferEvent),this.emitter.on(`playback state`,e=>this.emit(`playback state`,e)),this.emitter.on(`rendition level changed`,({to:e})=>{e&&this.emit(`rendition level`,e)}),this.emitter.on(`connection state`,e=>{this.emit(`connection state`,e)}),this.emitter.on(`recovered from media error`,()=>{this.modules.adaptivity.reset(this.targetBufferTime*2)}),this.emitter.once(`connect info`,e=>{var t,n;let r=((t=(n=e.telemetry)==null?void 0:n.probability)==null?1:t)>=Math.random();if(e.telemetry){var i;(i=this.modules.telemetry)==null||i.unload(),this.modules.telemetry=dx.create(this.logger.createContext(`TelemetryModule`),this.emitter,R(R({},e.telemetry),{},{enabled:this.options.get(`telemetryEnabled`)&&r}),this),this.modules.telemetry.load()}}),this.emitter.on(`adapt level`,e=>{this.logger.debug(`adapt level`,{direction:e});let t=this.modules.renditions.getRenditionLevels(),n=this.modules.renditions.getRenditionLevel(),r=t.findIndex(e=>e===n),i=t.length-1,a=r;switch(e){case`upgrade`:{var o,s,c,l,u;let e=Math.min(r+1,i),n=t[e],d=(o=this.modules.connection.estimatedBandwidth)==null?hr():o,f=((s=n==null||(c=n.audio)==null?void 0:c.bitRate)==null?0:s)+((l=n==null||(u=n.video)==null?void 0:u.bitRate)==null?0:l),p=d*2>f;n&&p&&this.modules.adaptivity.isQoSOk(n)&&(a=e)}break;case`downgrade`:a=Math.max(r-1,0);break;case`double downgrade`:a=Math.max(r-2,0);break;case`reconnect`:if(r===0||this.modules.qualityOfService.timeSpentBufferingLast(6e3)>5e3){if(!this.modules.connection.lastConnectionTime||Date.now()-this.modules.connection.lastConnectionTime<this.modules.qualityOfService.fatalQosGraceTime()||this.modules.connection.getState()!==`connected`)return;this.modules.qualityOfService.incrementFatalQosCount(),this.logger.info(`Reconnecting due to poor qos`),this.modules.connection.reconnect(`Fatal QOS`),this.emitter.emit(`adapted level`);return}else a=0}if(a===r)return;let d=t[a];this.alignSizeAndBitRate(R(R({},this.targetSubscription),{},{video:R(R({},this.targetSubscription.video),d==null?void 0:d.video),audio:R(R({},this.targetSubscription.audio),d==null?void 0:d.audio)})),this.emitter.emit(`adapted level`)}),this.emitter.on(`text track data`,e=>{let t=A(Ax,this).find(t=>t.language===e.language),n=this.modules.sync.getTimeshiftOffset()/1e3,r=n-A(kx,this);if(O(kx,this,n),t){if(t.cues)for(let e of t.cues)e.startTime-=r,e.endTime-=r;for(let r of e.cues){let e=new VTTCue(r.startTime-n,r.endTime-n,r.text);t.addCue(e)}}}),this.emitter.on(`received signal`,e=>{let t=e,n=this.modules.subscription.getCurrentSubscription();switch(this.logger.debug(`received`,R({},t)),t.type){case`client ip`:this.clientIp=t.ip;break;case`renditions`:this.updateTextTracks(t.renditions),O(jx,this,this.filterRenditions(t.renditions).then(e=>{this.emitter.emit(`renditions`,{renditions:e,channelId:this.currentSubscription.channelId}),this.emit(`rendition levels`,this.modules.renditions.getRenditionLevels()),this.emitLanguagesIfChanged()}).finally(()=>{O(jx,this,void 0)}));break;case`subscription changed`:var r;try{Dx(t.subscription)}catch(e){this.emitter.emit(`error`,new H(`Subscription failed validation`,{source:e instanceof Error?e:void 0,isFatal:!1,code:`subscription_failed_validation`}))}this.emitter.emit(`subscription changed`,{reset:t.reset,to:t.subscription,from:this.modules.subscription.getCurrentSubscription()}),t.reset&&n.channelId!==t.subscription.channelId&&(this.emit(`error`,Ci(t.subscription.channelId)),this.emit(`channel switch failed`,{channelId:n.channelId})),this.modules.sync.allowTimeshiftOnAudio=!((r=t.subscription.video)!=null&&r.codec),this.modules.adaptivity.reset();break;case`timing info`:this.modules.sync.updateChannelSyncInfo(t.timingInfo.channelId,t.timingInfo),this.emit(`server wallclock time`,t.timingInfo.wallclockTime);break}}),this.emitter.on(`channel switch timeout`,e=>{this.emit(`error`,Ci(e)),this.emit(`channel switch failed`,{channelId:this.currentSubscription.channelId})}),this.emitter.on(`received data`,e=>{let t=this.modules.subscription.getCurrentSubscription(),n=Gc(e);if(!t){this.logger.warn(`Received unwanted message`,R({},n));return}le(R(R({},n),{},{channelId:t.channelId}))}),this.emitter.on(`received moq data`,e=>{let t=e.payload.mediaType(),n=e.channelId,r=e.renditionId,i=this.modules.sync.processFragment(n,e.payload);if(t!==`text`&&this.modules.jitter.recordSample({type:t,renditionId:r,timestamp:i.baseMediaDecodeTime(),timescale:i.timescale()}),e.switchInfo.channelId&&(e.switchInfo.drmTransition&&this.emitter.emit(`error`,wi(`Switching between DRM and non-DRM channels is not supported`,!0)),this.encryptedMediaExtensions.onChannelSwitch(),this.emit(`rendition levels`,this.modules.renditions.getRenditionLevels()),this.modules.event.addEvent({type:`channel switch`,channelId:e.switchInfo.channelId,timestamp:i.baseMediaDecodeTime()/i.timescale()*1e3})),e.switchInfo.language&&this.modules.event.addEvent({type:`language switch`,language:e.switchInfo.language,timestamp:i.baseMediaDecodeTime()/i.timescale()*1e3}),this.modules.incomingData.add(t,e.payload.rawBytes().byteLength),(t===`video`||t===`audio`)&&this.hasListeners(`cmaf fragment`)&&this.emit(`cmaf fragment`,{mediaType:t,initSegment:i.header().rawBytes().slice(),fragment:i.rawBytes().slice(),isKeyframe:i.startsWithKeyframe()}),i.fragment().emsgs.forEach(e=>{if(!e.presentationTime)return;let t=Xa(e.data);t&&this.modules.event.addEvent({id:e.id,timestamp:e.presentationTime/e.timescale*1e3-this.modules.sync.getTimeshiftOffset(),content:t.txx.value,type:`metadata`})}),this.modules.decoder){var a,o;let p=(a=i.header().init().moov.traks[0])==null?void 0:a.mdia.minf.stbl.stsd,m=(o=p==null?void 0:p.codec)==null?`h264`:o,h;if(m===`h264`){var s;h=p==null||(s=p.avc1)==null?void 0:s.avcC.bytes}else if(m===`h265`){var c,l,u;let e=(c=p==null||(l=p.hvc1)==null?void 0:l.data())==null?p==null||(u=p.hev1)==null?void 0:u.data():c;e&&(h=Ja(e))}else if(m===`av1`&&p!=null&&p.av01)h=sc(p.av01.data());else if(m===`aac`){var d;h=p==null||(d=p.mp4a)==null||(d=d.esds)==null?void 0:d.decoderConfig}else if(m===`opus`){var f;h=Fc(p==null||(f=p.opus)==null?void 0:f.dops)}if(h){let i=h.buffer.slice(h.byteOffset,h.byteOffset+h.byteLength);if(t===`text`)throw Error(`Subtitles are not supported`);this.emitter.emit(`init segment`,{initSegment:{channelId:n,renditionId:r,data:i,timescale:1e3,type:t,codec:m,codecString:e.codecString},mimeType:t})}else m&&this.logger.warn(`Failed to extract init data for codec`,{codec:m,channelId:n,renditionId:r});for(let e=0;e<i.samplesCount();e++){let t=i.sample(e);t&&this.emitter.emit(`coded sample`,R(R({},t),{},{renditionId:r,channelId:n,data:t.data.buffer.slice(t.data.byteOffset,t.data.byteOffset+t.data.byteLength)}))}}else this.emitter.emit(`fragment`,{mimeType:e.mimeType,codec:e.codec,fragment:i,channelId:n,renditionId:r})});let C=this.options.get(`container`);C&&this.attach(C),this.logger.info(`Created Vindral instance`,{options:this.options});let le=function(){var e=M(function*(e){let t=e.channelId;A(jx,n)&&(yield A(jx,n));let r=n.modules.renditions.getRendition(e.renditionId,t);if(!Hc(e.flags)){if(Uc(e.flags)){let t=new TextDecoder().decode(e.payload),r=n.modules.sync.getTimeshiftOffset();if(e.renditionId!==0){let e=Xn(t);if(e&&e.language!==void 0){let t=new el().parse(e.content||``),i=r/1e3,a=A(Ax,n).find(t=>t.language===e.language),o=i-A(kx,n);if(O(kx,n,i),a){if(a.cues)for(let e of a.cues)e.startTime-=o,e.endTime-=o;for(let e of t){let t=new VTTCue(e.startTime-i,e.endTime-i,e.text);a.addCue(t)}}}}else n.modules.event.addEvent({timestamp:e.timestamp/e.timescale*1e3-n.modules.sync.getTimeshiftOffset(),content:t,type:`metadata`})}else if(r!=null&&r.codec){let i=cr(r.codec);if(i===`text`)throw Error(`Subtitles are not supported`);if(n.modules.incomingData.add(i,e.payload.byteLength),Vc(e.flags)){let a=R(R({type:i,data:e.payload,codec:r.codec},e),{},{channelId:t}),o=Oc(a.codec,a.payload);o&&n.sizes.set(a.renditionId,o);let s=mr({codec:r.codec,codecString:r.codecString});n.emitter.emit(`init segment`,{initSegment:a,mimeType:s}),n.emit(`initialized media`)}else{let t=Cx(e,r,n.sizes.get(e.renditionId));n.modules.jitter.recordSample(t);let a=n.sampleProcessingSesssions.get(i);if(!a)a=vx(n.modules.sync.processSample(t)),n.sampleProcessingSesssions.set(i,a);else{let e=n.willUseMediaSource()&&n.isSwitchingRenditionLevel&&t.type===`video`,r=a(n.modules.sync.processSample(t),e),i=t;r.forEach(e=>{n.modules.event.extractEvent(e,i),n.emitter.emit(`coded sample`,e),i=e})}}}}});return function(t){return e.apply(this,arguments)}}();this.options.get(`maxVideoBitRate`)!==2**53-1&&(this.maxVideoBitRate=this.options.get(`maxVideoBitRate`)),this.options.get(`maxAudioBitRate`)!==2**53-1&&(this.maxAudioBitRate=this.options.get(`maxAudioBitRate`)),Bt(this.options.get(`maxSize`),gr())||(this.maxSize=this.options.get(`maxSize`)),this.options.get(`burstEnabled`)&&f.enableBurst(this.targetBufferTime)}set volume(e){this.playbackSource.volume=e}get volume(){return this.playbackSource.volume}set muted(e){if(e===this.muted)return;let t=this.playbackSource.muted;this.playbackSource.muted=e,!e&&t&&!this.playbackSource.isPaused&&this.playbackSource.play()}get muted(){return this.playbackSource.muted}get media(){return this.options.get(`media`)}get videoBitRate(){return this.modules.incomingData.averageBitRate(`video`)}get audioBitRate(){return this.modules.incomingData.averageBitRate(`audio`)}get connectionState(){return this.modules.connection.getState()}get playbackState(){return this.modules.playback.getState()}get bufferFullness(){return this.modules.playback.getBufferFullness()}get sizeBasedResolutionCapEnabled(){return this.modules.constraintCap.sizeBasedResolutionCapEnabled}set sizeBasedResolutionCapEnabled(e){this.modules.constraintCap.sizeBasedResolutionCapEnabled=e}get abrEnabled(){return this.modules.adaptivity.isEnabled}set abrEnabled(e){this.modules.constraintCap.sizeBasedResolutionCapEnabled=e?this.options.get(`sizeBasedResolutionCapEnabled`):!1,this.modules.adaptivity.isEnabled=e,this.alignSizeAndBitRate(this.targetSubscription)}get serverEdgeTime(){return this.modules.sync.getLiveEdgeTimeLatencyAdjusted(this.currentSubscription.channelId)}get serverWallclockTime(){return this.modules.sync.getWallclockTimeLatencyAdjusted(this.currentSubscription.channelId)}get currentTime(){return this.modules.sync.serverCurrentTime}get channelCurrentTime(){return this.modules.sync.channelCurrentTime}get targetBufferTime(){return this.modules.playback.getTargetBufferTime()}set targetBufferTime(e){this.modules.playback.getTargetBufferTime()!==e&&(this.modules.playback.setTargetBufferTime(e),this.playbackSource.currentTime=this.modules.sync.serverCurrentTime,this.options.get(`burstEnabled`,this.channelId)?this.modules.subscription.enableBurst(this.targetBufferTime):this.modules.subscription.enableBurst(0))}updateBufferTimeConfig(e){this.modules.bufferTime.updateConfig(e)}get playbackLatency(){var e;if(this.playbackSource.currentTime!==0)return this.targetBufferTime+((e=this.modules.sync.drift)==null?0:e)+this.modules.connection.rtt/2}get playbackWallclockTime(){if(!(!this.serverWallclockTime||!this.playbackLatency))return this.serverWallclockTime-this.playbackLatency}get channels(){return this._channels}get languages(){return this.modules.renditions.getLanguages()}get language(){return this.modules.subscription.getTargetSubscription().audio.language}set language(e){if(e===this.language)return;let t=this.languages;if(e!==void 0&&t.length>0&&!t.includes(e)){this.logger.warn(`Language "${e}" is not available. Available languages: ${t.join(`, `)}`);return}this.modules.subscription.setLanguage(e),this.alignSizeAndBitRate(this.targetSubscription)}set textTrack(e){e!==this.textTrack&&(A(Ax,this).forEach(t=>{if(t.label===e)t.mode=`showing`;else{if(t.mode===`showing`&&t.cues)for(let e of[...t.cues])t.removeCue(e);t.mode=`hidden`}}),this.emitter.emit(`text track`,e))}get textTracks(){return A(Ax,this).filter(e=>e.mode!==`disabled`).map(e=>e.label)}get textTrack(){var e;return(e=A(Ax,this).find(e=>e.mode===`showing`))==null?void 0:e.label}get channelId(){var e,t;return(e=(t=this.modules)==null?void 0:t.subscription.getTargetSubscription().channelId)==null?this.options.get(`channelId`):e}set channelId(e){if(e===this.channelId)return;this.modules.subscription.setChannelId(e);let t=this.options.get(`media`)===`audio`?[]:this.options.get(`videoCodecs`),n=this.modules.renditions.getAudioRenditions(e),r=this.modules.renditions.getVideoRenditions(e),i=this.targetSubscription.audio.language,a=n==null?void 0:n.some(e=>e.language===i),o=t.find(e=>(r==null?void 0:r.find(t=>t.codec===e))!==void 0);o&&this.modules.subscription.setVideoCodec(o),this.logger.debug(`Channel switch - started`,{audioRenditions:n,targetSubscriptionLanguage:i,targetHasCurrentLanguage:a}),this.alignSizeAndBitRate(this.targetSubscription)}get maxSize(){var e,t;let{width:n,height:r}=(e=(t=this.modules.constraintCap.getCurrentConstraintCap())==null?void 0:t.video)==null?gr():e;return{width:n,height:r}}set maxSize(e){this.modules.constraintCap.setUserSpecifiedCap({video:{width:e.width,height:e.height}}),this.alignSizeAndBitRate(this.targetSubscription)}get maxVideoBitRate(){var e,t;return(e=(t=this.modules.constraintCap.getCurrentConstraintCap())==null?void 0:t.video.bitRate)==null?hr():e}set maxVideoBitRate(e){this.modules.constraintCap.setUserSpecifiedCap({video:{bitRate:e}}),this.alignSizeAndBitRate(this.targetSubscription)}get maxAudioBitRate(){var e,t;return(e=(t=this.modules.constraintCap.getCurrentConstraintCap())==null?void 0:t.audio.bitRate)==null?hr():e}set maxAudioBitRate(e){this.modules.constraintCap.setUserSpecifiedCap({audio:{bitRate:e}}),this.alignSizeAndBitRate(this.targetSubscription)}get renditionLevels(){return this.modules.renditions.getRenditionLevels()}get currentRenditionLevel(){return this.modules.renditions.getRenditionLevel()}get targetRenditionLevel(){return this.modules.renditions.getRenditionLevel(this.modules.subscription.getTargetSubscription())}get isSwitchingRenditionLevel(){return this.modules.subscription.isSwitchingSubscription()}get videoBufferedRanges(){var e,t,n,r;return(e=(t=(n=this.modules.mseModule)==null?void 0:n.getBuffer(`video`))==null?(r=this.modules.decoder)==null?void 0:r.getBuffer(`video`):t)==null?[]:e}get audioBufferedRanges(){var e,t,n,r;return(e=(t=(n=this.modules.mseModule)==null?void 0:n.getBuffer(`audio`))==null?(r=this.modules.decoder)==null?void 0:r.getBuffer(`audio`):t)==null?[]:e}get videoKeyframeTimestamps(){var e,t,n,r;return(e=(t=(n=this.modules.mseModule)==null?void 0:n.getVideoKeyframeTimestamps())==null?(r=this.modules.decoder)==null?void 0:r.getVideoKeyframeTimestamps():t)==null?[]:e}getApiClient(){return this.modules.connection.apiClient}get lastBufferEvent(){return this.modules.playback.getLastBufferStateEvent()}get activeRatios(){return this.modules.qualityOfService.activeRatios()}get bufferingRatios(){return this.modules.qualityOfService.bufferingRatios()}get timeSpentBuffering(){return this.modules.qualityOfService.timeSpentBuffering()}get timeActive(){return this.modules.qualityOfService.timeActive()}get mediaElement(){return this.element}get audioNode(){var e;return(e=this.modules)!=null&&e.canvasModule?this.modules.canvasModule.audioNode:void 0}get drmStatistics(){var e;return(e=this.encryptedMediaExtensions)==null?void 0:e.getStatistics()}get uptime(){return Date.now()-this.createdAt}suspend(){this.isSuspended||(Object.values(this.modules).forEach(e=>{e&&`suspend`in e&&e.suspend()}),this.isSuspended=!0)}unsuspend(){this.isSuspended&&(Object.values(this.modules).forEach(e=>{e&&`unsuspend`in e&&e.unsuspend()}),this.isSuspended=!1)}alignSizeAndBitRate(e){let t=this.modules.constraintCap.constrainSubscription(R(R({},e),{},{video:R({},e.video),audio:R({},e.audio)})),n=this.modules.constraintCap.getUserSpecifiedCap();!this.abrEnabled&&n&&(t.audio.bitRate=n.audio.bitRate,t.video.bitRate=n.video.bitRate,t.video.width=n.video.width,t.video.height=n.video.height);let r=this.modules.renditions.getRenditionLevel(t);if(r){if(r.video&&(this.modules.subscription.setVideoBitRate(r.video.bitRate),this.modules.subscription.setSize(r.video)),r.audio)this.modules.subscription.setAudioBitRate(r.audio.bitRate),this.modules.subscription.setLanguage(r.audio.language);else if(t.audio.language){let e=this.modules.renditions.getAudioRenditions(t.channelId);!this.abrEnabled&&n&&(e=e==null?void 0:e.filter(e=>e.bitRate<n.audio.bitRate));let r=t.audio.language,i=e==null?void 0:e.some(e=>e.language===r),a=e==null?void 0:e.find(e=>e.language),o=(e==null?void 0:e.length)&&e[0]||void 0;i||(a?(this.logger.debug(`Randomizing language since target did not have current language`),this.modules.subscription.setAudioBitRate(a.bitRate),this.modules.subscription.setLanguage(a.language)):(this.logger.debug(`Randomizing audio rendition since target did not have current language`),o!=null&&o.bitRate&&this.modules.subscription.setAudioBitRate(o.bitRate),this.modules.subscription.setLanguage(o==null?void 0:o.language)))}}}get currentSubscription(){return this.modules.subscription.getCurrentSubscription()}get targetSubscription(){return this.modules.subscription.getTargetSubscription()}resolvedDecoder(e){return Sx(this.options.get(`decoders`,e),this.browser.supportsMediaSource,this.options.get(`drm`))}willUseMediaSource(){return this.resolvedDecoder()===`mse`}shouldUseWebCodecs(e){return this.resolvedDecoder(e)===`webcodecs`}isWebCodecsVideoAvailable(e){return this.shouldUseWebCodecs(e)&&typeof VideoDecoder<`u`}isWebCodecsAudioAvailable(e){return this.shouldUseWebCodecs(e)&&typeof AudioDecoder<`u`}shouldUseOffscreenCanvas(e){let t=this.options.get(`offscreenCanvasEnabled`,e);return t===void 0?this.shouldUseWebCodecs(e):t}};m(Mx,`MAX_POOL_SIZE`,10),m(Mx,`DISCONNECT_TIMEOUT`,15*1e3),m(Mx,`REMOVE_CUE_THRESHOLD`,1e3*10);var Nx={bar:`_bar_qm7bl_1`,hidden:`_hidden_qm7bl_47`},Px=`_withThumbnails_suenn_19`,Fx={"channel-selection-item":`_channel-selection-item_suenn_1`,"channel-selection-item-selected":`_channel-selection-item-selected_suenn_8`,"channel-selection-item-image":`_channel-selection-item-image_suenn_13`,withThumbnails:Px,"hide-on-small":`_hide-on-small_suenn_27`},Ix={"icon-button":`_icon-button_5fg7v_1`},Lx={viewBox:`-10 -10 44 44`,content:`<g fill="none" stroke="white">
1224
1224
  <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5.586 15H4a1 1 0 01-1-1v-4a1 1 0 011-1h1.586l4.707-4.707C10.923 3.663 12 4.109 12 5v14c0 .891-1.077 1.337-1.707.707L5.586 15z" clip-rule="evenodd" />
1225
1225
  <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2" />
1226
- </g>`},Px={viewBox:`-160 -160 832 832`,content:`<path fill="white" d="M208,432H160a16,16,0,0,1-16-16V96a16,16,0,0,1,16-16h48a16,16,0,0,1,16,16V416A16,16,0,0,1,208,432Z"/><path fill="white" d="M352,432H304a16,16,0,0,1-16-16V96a16,16,0,0,1,16-16h48a16,16,0,0,1,16,16V416A16,16,0,0,1,352,432Z"/>`},Fx={viewBox:`-6 -6 36 36`,content:`<path d="M7 17.259V6.74104C7 5.96925 7.83721 5.48837 8.50387 5.87726L18.2596 11.5681C18.5904 11.761 18.5904 12.2389 18.2596 12.4319L8.50387 18.1227C7.83721 18.5116 7 18.0308 7 17.259Z" fill="none" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>`},Ix={viewBox:`-10 -10 44 44`,content:`<g fill="none" stroke="white">
1226
+ </g>`},Rx={viewBox:`-160 -160 832 832`,content:`<path fill="white" d="M208,432H160a16,16,0,0,1-16-16V96a16,16,0,0,1,16-16h48a16,16,0,0,1,16,16V416A16,16,0,0,1,208,432Z"/><path fill="white" d="M352,432H304a16,16,0,0,1-16-16V96a16,16,0,0,1,16-16h48a16,16,0,0,1,16,16V416A16,16,0,0,1,352,432Z"/>`},zx={viewBox:`-6 -6 36 36`,content:`<path d="M7 17.259V6.74104C7 5.96925 7.83721 5.48837 8.50387 5.87726L18.2596 11.5681C18.5904 11.761 18.5904 12.2389 18.2596 12.4319L8.50387 18.1227C7.83721 18.5116 7 18.0308 7 17.259Z" fill="none" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>`},Bx={viewBox:`-10 -10 44 44`,content:`<g fill="none" stroke="white">
1227
1227
  <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15.536 8.464a5 5 0 010 7.072m2.828-9.9a9 9 0 010 12.728M5.586 15H4a1 1 0 01-1-1v-4a1 1 0 011-1h1.586l4.707-4.707C10.923 3.663 12 4.109 12 5v14c0 .891-1.077 1.337-1.707.707L5.586 15z" />
1228
- </svg>`},Lx={viewBox:`-10 -10 44 44`,content:`
1229
- <path stroke="white" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z" />`},Rx={viewBox:`-12 -12 38 38`,content:`<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" transform="translate(-5.000000, -5.000000)">
1228
+ </svg>`},Vx={viewBox:`-10 -10 44 44`,content:`
1229
+ <path stroke="white" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z" />`},Hx={viewBox:`-12 -12 38 38`,content:`<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" transform="translate(-5.000000, -5.000000)">
1230
1230
  <path d="M6,14 C5.45,14 5,14.45 5,15 L5,18 C5,18.55 5.45,19 6,19 L9,19 C9.55,19 10,18.55 10,18 C10,17.45 9.55,17 9,17 L7,17 L7,15 C7,14.45 6.55,14 6,14 Z M6,10 C6.55,10 7,9.55 7,9 L7,7 L9,7 C9.55,7 10,6.55 10,6 C10,5.45 9.55,5 9,5 L6,5 C5.45,5 5,5.45 5,6 L5,9 C5,9.55 5.45,10 6,10 Z M17,17 L15,17 C14.45,17 14,17.45 14,18 C14,18.55 14.45,19 15,19 L18,19 C18.55,19 19,18.55 19,18 L19,15 C19,14.45 18.55,14 18,14 C17.45,14 17,14.45 17,15 L17,17 Z M14,6 C14,6.55 14.45,7 15,7 L17,7 L17,9 C17,9.55 17.45,10 18,10 C18.55,10 19,9.55 19,9 L19,6 C19,5.45 18.55,5 18,5 L15,5 C14.45,5 14,5.45 14,6 Z" fill="white"></path>
1231
- </g>`},zx={viewBox:`-12 -12 38 38`,content:`<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" transform="translate(-5.000000, -5.000000)">
1231
+ </g>`},Ux={viewBox:`-12 -12 38 38`,content:`<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" transform="translate(-5.000000, -5.000000)">
1232
1232
  <path d="M6,16 L8,16 L8,18 C8,18.55 8.45,19 9,19 C9.55,19 10,18.55 10,18 L10,15 C10,14.45 9.55,14 9,14 L6,14 C5.45,14 5,14.45 5,15 C5,15.55 5.45,16 6,16 Z M8,8 L6,8 C5.45,8 5,8.45 5,9 C5,9.55 5.45,10 6,10 L9,10 C9.55,10 10,9.55 10,9 L10,6 C10,5.45 9.55,5 9,5 C8.45,5 8,5.45 8,6 L8,8 Z M15,19 C15.55,19 16,18.55 16,18 L16,16 L18,16 C18.55,16 19,15.55 19,15 C19,14.45 18.55,14 18,14 L15,14 C14.45,14 14,14.45 14,15 L14,18 C14,18.55 14.45,19 15,19 Z M16,8 L16,6 C16,5.45 15.55,5 15,5 C14.45,5 14,5.45 14,6 L14,9 C14,9.55 14.45,10 15,10 L18,10 C18.55,10 19,9.55 19,9 C19,8.45 18.55,8 18,8 L16,8 Z" fill="white"></path>
1233
- </g>`},Bx={viewBox:`-10 -10 44 44`,content:`<path fill="white" d="M19 7h-8v6h8V7zm2-4H3c-1.1 0-2 .9-2 2v14c0 1.1.9 1.98 2 1.98h18c1.1 0 2-.88 2-1.98V5c0-1.1-.9-2-2-2zm0 16.01H3V4.98h18v14.03z"/>`},Vx={viewBox:`-10 -10 45 45`,content:`<path fill="white" d="M20 8H4V6h16v2zm-2-6H6v2h12V2zm4 10v8c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2v-8c0-1.1.9-2 2-2h16c1.1 0 2 .9 2 2zm-6 4l-6-3.27v6.53L16 16z"/>`},Hx={viewBox:`-8 -8 40 40`,content:`<path fill="white" d="M19 4H5c-1.11 0-2 .9-2 2v12c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-8 11H9.5v-2h-2v2H6V9h1.5v2.5h2V9H11v6zm7-1c0 .55-.45 1-1 1h-.75v1.5h-1.5V15H14c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v4zm-3.5-.5h2v-3h-2v3z"/>`},Ux={viewBox:`-8 -8 40 40`,content:`<path fill="white" d="M14.4 6L14 4H5v17h2v-7h5.6l.4 2h7V6z"/>`},Wx={viewBox:`-8 -8 40 40`,content:`<path fill="white" d="M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM4 12h4v2H4v-2zm10 6H4v-2h10v2zm6 0h-4v-2h4v2zm0-4H10v-2h10v2z"></path>`},Gx={viewBox:`-8 -8 40 40`,content:`<path fill="white" d="M12.8 13.4c-.1-.1-.1-.2-.2-.2c-.5-.3-1.1-.2-1.5.2l-4 6c0 .2-.1.4-.1.6c0 .6.4 1 1 1h8c.2 0 .4-.1.6-.2c.5-.3.6-.9.3-1.4zM19 3H5C3.3 3 2 4.3 2 6v9c0 1.7 1.3 3 3 3h.8c.6 0 1-.4 1-1s-.4-1-1-1H5c-.6 0-1-.4-1-1V6c0-.6.4-1 1-1h14c.6 0 1 .4 1 1v9c0 .6-.4 1-1 1h-.8c-.6 0-1 .4-1 1s.4 1 1 1h.8c1.7 0 3-1.3 3-3V6c0-1.7-1.3-3-3-3"/>`};h();var Kx,qx={enter:Rx,exit:zx,pip:Bx,channels:Vx,languages:Ux,textTracks:Wx,levels:Hx,oneToOne:Lx,mute:Nx,unmute:Ix,pause:Px,play:Fx,airPlay:Gx},Jx=(Kx=Mx[`icon-button`])==null?``:Kx,Yx=class extends g{constructor(e,t,n){super(document.createElement(`div`)),m(this,`iconElement`,void 0),m(this,`setIcon`,e=>{this.iconElement.setAttribute(`viewBox`,qx[e].viewBox),this.iconElement.innerHTML=qx[e].content}),m(this,`isHidden`,()=>this.element.style.display===`none`),m(this,`setHidden`,e=>e?this.hide():this.show()),m(this,`show`,()=>void(this.element.style.display=`block`)),m(this,`hide`,()=>void(this.element.style.display=`none`)),this.element.style.cursor=`pointer`,this.element.setAttribute(`role`,`button`),this.element.setAttribute(`aria-label`,e),this.iconElement=document.createElementNS(`http://www.w3.org/2000/svg`,`svg`),this.iconElement.setAttribute(`width`,`40px`),this.iconElement.setAttribute(`height`,`40px`),this.iconElement.setAttribute(`class`,Jx),this.setIcon(t),this.element.addEventListener(`click`,n),this.element.appendChild(this.iconElement)}},Xx=`_list_1vkum_1`,Zx=`_hidden_1vkum_20`,Qx={list:Xx,"list-item":`_list-item_1vkum_12`,"list-item-disabled":`_list-item-disabled_1vkum_16`,hidden:Zx};h();var $x,eS,tS,nS,rS=($x=Qx.hidden)==null?``:$x,iS=(eS=Qx.list)==null?``:eS,aS=(tS=Qx[`list-item`])==null?``:tS,oS=(nS=Qx[`list-item-disabled`])==null?``:nS,sS=class extends g{constructor({items:e,onItemClick:t,classNames:n=[],maxHeight:r}){super(document.createElement(`div`)),m(this,`onItemClick`,void 0),m(this,`updateItems`,e=>{for(;this.element.firstChild;){var t;(t=this.element.lastChild)==null||t.remove()}e.forEach(e=>{let t=document.createElement(`div`);e.disabled||t.addEventListener(`click`,()=>this.onItemClick(e)),t.className=[aS,e.disabled?oS:``].join(` `),t.appendChild(e.element()),this.element.appendChild(t)})}),m(this,`hide`,()=>this.element.classList.add(rS)),m(this,`show`,()=>this.element.classList.remove(rS)),this.element.className=[iS,...n].join(` `),this.onItemClick=t,this.updateItems(e),r&&(this.element.style.maxHeight=r)}},cS={container:`_container_13xnz_1`,hidden:`_hidden_13xnz_6`,list:`_list_13xnz_10`};h();var lS,uS,dS,fS=(lS=cS.list)==null?``:lS,pS=(uS=cS.hidden)==null?``:uS,mS=(dS=cS.container)==null?``:dS,hS=class extends g{constructor({label:e,items:t,onItemClick:n,iconButtonType:r,onToggle:i}){super(document.createElement(`div`)),m(this,`iconButton`,void 0),m(this,`onItemClick`,void 0),m(this,`onToggle`,void 0),m(this,`maxHeight`,void 0),m(this,`items`,void 0),m(this,`list`,void 0),m(this,`onButtonClick`,()=>{this.toggleShowChannels(),this.onToggle(this)}),m(this,`toggleShowChannels`,()=>{this.list?this.hideList():this.showList()}),m(this,`handleItemClick`,e=>{this.toggleShowChannels(),this.onItemClick(e)}),m(this,`showList`,()=>{this.list=new sS({items:this.items,onItemClick:this.handleItemClick,classNames:[fS],maxHeight:this.maxHeight}),this.list.attach(this.element)}),m(this,`hideList`,()=>{var e;(e=this.list)==null||e.detach(),this.list=void 0}),m(this,`updateItems`,e=>{var t;this.items=e,(t=this.list)==null||t.updateItems(e)}),m(this,`isListVisible`,()=>this.list!==void 0),m(this,`hide`,()=>{pS&&this.element.classList.add(pS)}),m(this,`show`,()=>{pS&&this.element.classList.remove(pS)}),this.element.className=mS,this.onItemClick=n,this.onToggle=i,this.items=t,this.iconButton=new Yx(e,r,this.onButtonClick),this.iconButton.attach(this.element)}};H();var gS,_S,vS,yS,bS,xS=(gS=jx[`hide-on-small`])==null?``:gS,SS=(_S=jx[`channel-selection-item`])==null?``:_S,CS=(vS=jx[`channel-selection-item-selected`])==null?``:vS,wS=(yS=jx[`channel-selection-item-image`])==null?``:yS,TS=(bS=jx.withThumbnails)==null?``:bS,ES=class extends hS{constructor({vindral:e,enabled:t,thumbnailsEnabled:n,thumbnailModule:r}){e.on(`channels`,()=>{let i=e.channels.map(t=>({channel:t,disabled:!t.isLive,element:()=>{let i=document.createElement(`div`);if(i.className=[SS,t.channelId===e.channelId?CS:``].join(` `),r&&n){i.classList.add(TS);let e=document.createElement(`p`);e.innerHTML=t.name,i.appendChild(e);let n=r.getImageUrl(t),a=document.createElement(`img`);n&&(a.className=wS,a.src=n,i.style.backgroundImage=`url(${n})`)}else i.innerHTML=t.name;return i}}));this.maxHeight=`calc(${Math.max(110,e.mediaElement.clientHeight)}px - 46px)`,this.updateItems(i),i.length>1&&t!==!1?this.show():this.hide()}),super({label:`Channel List`,items:[],onItemClick:t=>e.channelId=t.channel.channelId,onToggle:S,iconButtonType:`channels`}),this.element.classList.add(xS),this.hide()}},DS={"language-button-item":`_language-button-item_1dov5_1`,"language-button-item-selected":`_language-button-item-selected_1dov5_6`};H();var OS,kS,AS=(OS=DS[`language-button-item`])==null?``:OS,jS=(kS=DS[`language-button-item-selected`])==null?``:kS,MS=class extends hS{constructor({vindral:e}){e.on(`languages`,()=>{let t=e.languages.map(t=>({language:t,disabled:!1,element:()=>{let n=document.createElement(`div`);return n.className=[AS,t===e.language?jS:``].join(` `),n.innerHTML=t,n}}));this.maxHeight=`calc(${Math.max(110,e.mediaElement.clientHeight)}px - 46px)`,this.updateItems(t),t.length>0?this.show():this.hide()}),super({label:`Language`,items:[],onItemClick:t=>e.language=t.language,onToggle:S,iconButtonType:`languages`}),this.hide()}};h();var NS=class extends g{constructor({vindral:e}){super(document.createElement(`div`)),m(this,`vindral`,void 0),m(this,`playButton`,void 0),m(this,`updateState`,()=>{this.playButton.setIcon(this.playIcon())}),m(this,`onPlayClick`,()=>{this.vindral.playbackState===`paused`?this.vindral.play():this.vindral.pause(),this.playButton.setIcon(this.playIcon())}),m(this,`playIcon`,()=>this.vindral.playbackState===`paused`?`play`:`pause`),this.element.style.cursor=`pointer`,this.vindral=e,this.playButton=new Yx(`Play`,this.playIcon(),this.onPlayClick),this.playButton.attach(this.element)}},PS=`_item_5vhyo_1`,FS=`_title_5vhyo_10`,IS={item:PS,"item-selected":`_item-selected_5vhyo_6`,title:FS,"sub-title":`_sub-title_5vhyo_14`,"hide-on-small":`_hide-on-small_5vhyo_21`};H();var LS,RS,zS,BS,VS,HS=(LS=IS[`hide-on-small`])==null?``:LS,US=(RS=IS.item)==null?``:RS,WS=(zS=IS[`item-selected`])==null?``:zS,GS=(BS=IS.title)==null?``:BS,KS=(VS=IS[`sub-title`])==null?``:VS,qS=class extends hS{constructor({vindral:e}){let t=()=>{let t=e.renditionLevels.map(t=>({rendition:t,disabled:!1,element:()=>{var n,r,i;let a=document.createElement(`div`);a.className=[US,t===e.currentRenditionLevel?WS:``].join(` `);let o=document.createElement(`span`),s=document.createElement(`span`),{audio:c,video:l}=t,u=l?Jt(l):void 0,d=c?Yt(c.sampleRate):void 0,f=qt(((n=l==null?void 0:l.bitRate)==null?0:n)+((r=c==null?void 0:c.bitRate)==null?0:r));if(l){let e=l.frameRate[0]/l.frameRate[1],t=l.frameRate[0]%l.frameRate[1]===0?`${e}p`:`${e.toFixed(2)}p`;f+=`, ${t}`}return o.innerHTML=(i=u==null?d:u)==null?``:i,o.className=GS,s.innerHTML=f,s.className=KS,a.appendChild(o),a.appendChild(s),a}}));this.maxHeight=`calc(${Math.max(110,e.mediaElement.clientHeight)}px - 46px)`,this.updateItems(t)};e.on(`rendition level`,t),e.on(`rendition levels`,t),super({label:`Rendition Levels`,items:[],onItemClick:({rendition:t})=>{t.audio&&(e.maxAudioBitRate=t.audio.bitRate),t.video&&(e.maxVideoBitRate=t.video.bitRate,e.maxSize=t.video)},onToggle:S,iconButtonType:`levels`}),this.element.classList.add(HS)}},JS=class extends g{constructor(){super(document.createElement(`div`)),this.element.style.flexGrow=`1`}},YS={"text-track-button-item":`_text-track-button-item_1ry10_1`,"text-track-button-item-selected":`_text-track-button-item-selected_1ry10_6`};H();var XS,ZS,QS=(XS=YS[`text-track-button-item`])==null?``:XS,$S=(ZS=YS[`text-track-button-item-selected`])==null?``:ZS,eC=class extends hS{constructor({vindral:e}){e.on(`text tracks`,()=>{let t=e.textTracks.map(t=>({textTrack:t,disabled:!1,element:()=>{let n=document.createElement(`div`);return n.className=[QS,t===e.textTrack?$S:``].join(` `),n.innerHTML=t,n}}));t.length>0?(t.push({textTrack:void 0,disabled:!1,element:()=>{let t=document.createElement(`div`);return t.className=[QS,e.textTrack===void 0?$S:``].join(` `),t.innerHTML=`Off`,t}}),this.show()):this.hide(),this.maxHeight=`calc(${Math.max(110,e.mediaElement.clientHeight)}px - 46px)`,this.updateItems(t)}),super({label:`Text Tracks`,items:[],onItemClick:t=>e.textTrack=t.textTrack,onToggle:S,iconButtonType:`textTracks`}),this.hide()}};h();var tC=class extends g{constructor({vindral:e}){super(document.createElement(`div`)),m(this,`vindral`,void 0),m(this,`muteButton`,void 0),m(this,`updateState`,()=>{this.muteButton.setIcon(this.muteIcon())}),m(this,`onMuteClick`,()=>{this.vindral.muted=!this.vindral.muted,this.muteButton.setIcon(this.muteIcon())}),m(this,`muteIcon`,()=>this.vindral.muted?`mute`:`unmute`),this.element.style.cursor=`pointer`,this.vindral=e,this.muteButton=new Yx(`Mute`,this.muteIcon(),this.onMuteClick),this.muteButton.attach(this.element)}};h();var nC,rC,iC=(nC=kx.hidden)==null?``:nC,aC=(rC=kx.bar)==null?``:rC,oC=class extends g{constructor({vindral:e,onFullscreenClicked:t,onOneToOneClicked:n,onPipClicked:r,onAirPlayClicked:i,pauseButtonEnabled:a,fullscreenButtonEnabled:o,pipButtonEnabled:s,channelSelectionEnabled:c,channelSelectionThumbnails:l,renditionLevelsEnabled:u,languagesButtonEnabled:d,textTracksButtonEnabled:f,oneToOneButtonEnabled:p,thumbnailModule:h}){super(document.createElement(`div`)),m(this,`items`,[]),m(this,`isMouseInElement`,!1),m(this,`volumeControls`,void 0),m(this,`playControls`,void 0),m(this,`oneToOneButton`,void 0),m(this,`fullscreenButton`,void 0),m(this,`airPlayButton`,void 0),m(this,`containerElement`,void 0),m(this,`hideLists`,()=>{this.items.forEach(e=>`hideList`in e&&e.hideList())}),m(this,`listButtons`,()=>this.items),m(this,`isAnyListOpen`,()=>this.items.filter(e=>`isListVisible`in e&&e.isListVisible()).length>0),m(this,`hasFocus`,()=>this.isMouseInElement||this.isAnyListOpen()),m(this,`isHidden`,()=>this.element.classList.contains(iC)),m(this,`hide`,()=>{this.containerElement.style.setProperty(`--vindral-control-bar-offset`,`0px`),this.element.classList.add(iC)}),m(this,`show`,()=>{this.containerElement.style.setProperty(`--vindral-control-bar-offset`,`-96px`),this.element.classList.remove(iC)}),m(this,`addCastButton`,()=>{let e=document.createElement(`google-cast-launcher`);this.element.insertBefore(e,this.element.lastChild)}),m(this,`addAirPlayButton`,()=>{this.airPlayButton.attachBefore(this.element,this.element.lastChild)}),m(this,`updateState`,()=>{this.playControls.updateState(),this.volumeControls.updateState()}),m(this,`onToggle`,e=>{this.listButtons().filter(t=>e!==t).forEach(e=>`hideList`in e&&e.hideList())}),this.element.className=[aC,iC].join(` `);let g=new JS;this.oneToOneButton=new Yx(`One to One`,`oneToOne`,n),this.fullscreenButton=new Yx(`Fullscreen`,`enter`,t),this.airPlayButton=new Yx(`AirPlay`,`airPlay`,i);let _=new Yx(`Picture in Picture`,`pip`,r),v=new ES({vindral:e,enabled:c,thumbnailsEnabled:l,thumbnailModule:l?h:void 0}),y=new qS({vindral:e});this.volumeControls=new tC({vindral:e}),this.playControls=new NS({vindral:e}),this.containerElement=e.mediaElement,a&&e.getOptions().pauseSupportEnabled&&this.playControls.attach(this.element),e.getOptions().media!==`video`&&this.volumeControls.attach(this.element),g.attach(this.element);let b=[];if(d){let t=new MS({vindral:e});t.attach(this.element),b.push(t)}if(f){let t=new eC({vindral:e});t.attach(this.element),b.push(t)}y.attach(this.element),v.attach(this.element),_.attach(this.element),this.oneToOneButton.attach(this.element),this.fullscreenButton.attach(this.element),this.items.push(g,...b,y,v,_,this.fullscreenButton),this.items.forEach(e=>`onToggle`in e&&(e.onToggle=this.onToggle)),p||this.oneToOneButton.hide(),o||this.fullscreenButton.hide(),s||_.hide(),c||v.hide(),u||y.hide(),navigator.maxTouchPoints<1&&(this.element.addEventListener(`mouseenter`,()=>this.isMouseInElement=!0),this.element.addEventListener(`mouseleave`,()=>this.isMouseInElement=!1))}},sC={castoverlay:`_castoverlay_1n91l_1`,hidden:`_hidden_1n91l_20`};h();var cC,lC,uC=(cC=sC.hidden)==null?``:cC,dC=(lC=sC.castoverlay)==null?``:lC,fC=class extends g{constructor(){super(document.createElement(`div`)),m(this,`onClick`,void 0),m(this,`setText`,e=>{this.element.innerText=e}),m(this,`hide`,()=>this.element.classList.add(uC)),m(this,`show`,()=>this.element.classList.remove(uC)),this.element.classList.add(dC),this.element.classList.add(uC),this.element.innerText=`device`}},pC=`_button_4ybkq_21`,mC=`_image_4ybkq_98`,hC=`_overlay_4ybkq_118`,gC=`_selected_4ybkq_136`,_C=`_hidden_4ybkq_141`,vC=`_disabled_4ybkq_145`,yC={button:pC,"show-and-scaleup":`_show-and-scaleup_4ybkq_1`,image:mC,overlay:hC,selected:gC,hidden:_C,disabled:vC};h();var bC,xC,SC,CC,wC,TC=(bC=yC.button)==null?``:bC,EC=(xC=yC.hidden)==null?``:xC,DC=(SC=yC.overlay)==null?``:SC,OC=(CC=yC.image)==null?``:CC,kC=(wC=yC.selected)==null?``:wC,AC=class extends g{constructor({title:e,onClick:t,imageUrl:n,selected:r}){super(document.createElement(`button`)),m(this,`overlay`,void 0),m(this,`imageHolder1`,void 0),m(this,`imageHolder2`,void 0),m(this,`isImageHolder1Active`,!1),m(this,`loadingOverlay`,void 0),m(this,`transition`,(e,t,n)=>{t.style.backgroundImage=`url(${n})`,t.style.opacity=`1`,e.style.opacity=`0`}),m(this,`setSelected`,e=>{e?this.element.classList.add(kC):this.element.classList.remove(kC)}),m(this,`setAnimationDelay`,e=>{this.element.style.animationDelay=e}),m(this,`hideLoading`,()=>{this.loadingOverlay.hide()}),m(this,`isHidden`,()=>this.element.classList.contains(EC)),m(this,`setHidden`,e=>e?this.hide():this.show()),m(this,`hide`,()=>this.element.classList.add(EC)),m(this,`show`,()=>this.element.classList.remove(EC)),this.element.className=TC,r&&this.setSelected(r),this.element.onclick=()=>{this.loadingOverlay.show(),t()},this.imageHolder1=document.createElement(`div`),this.imageHolder1.className=OC,this.imageHolder1.style.animationFillMode=`forwards`,this.imageHolder2=document.createElement(`div`),this.imageHolder2.className=OC,this.imageHolder2.style.animationFillMode=`forwards`,n&&(this.imageHolder1.style.backgroundImage=`url(${n})`,this.isImageHolder1Active=!0),this.loadingOverlay=new re,this.loadingOverlay.attach(this.element),this.loadingOverlay.hide(),this.element.appendChild(this.imageHolder1),this.element.appendChild(this.imageHolder2),this.overlay=document.createElement(`div`),this.overlay.className=DC,this.element.appendChild(this.overlay);let i=document.createElement(`span`);i.innerHTML=e,this.element.appendChild(i),this.show()}setImageUrl(e){if(e){if(!this.imageHolder1.style.backgroundImage){this.imageHolder1.style.backgroundImage=`url(${e})`,this.isImageHolder1Active=!0;return}this.isImageHolder1Active?this.transition(this.imageHolder1,this.imageHolder2,e):this.transition(this.imageHolder2,this.imageHolder1,e),this.isImageHolder1Active=!this.isImageHolder1Active}}},jC=`_container_btpgd_13`,MC=`_hidden_btpgd_37`,NC=`_disabled_btpgd_41`,PC={"channel-selection-overlay":`_channel-selection-overlay_btpgd_1`,container:jC,hidden:MC,disabled:NC};h();var FC,IC,LC=(FC=PC.hidden)==null?``:FC,RC=(IC=PC.container)==null?``:IC,zC=class extends g{constructor({vindral:e,thumbnailModule:t}){var n;super(document.createElement(`div`)),m(this,`thumbnailModule`,void 0),m(this,`list`,void 0),m(this,`vindral`,void 0),m(this,`setSelected`,e=>{this.list.forEach((t,n)=>{t.setSelected(n.channelId===e.channelId)}),e.channelId!==this.vindral.channelId&&(this.vindral.channelId=e.channelId)}),m(this,`isHidden`,()=>this.element.classList.contains(LC)),m(this,`setHidden`,e=>e?this.hide():this.show()),m(this,`hide`,()=>this.element.classList.add(LC)),m(this,`show`,()=>this.element.classList.remove(LC)),this.thumbnailModule=t,this.list=new Map,this.vindral=e,this.vindral.on(`context switch`,e=>{if(e===`completed`){this.list.forEach(e=>e.hideLoading());let e=this.vindral.channelId;this.vindral.channels.forEach(t=>{var n;(n=this.list.get(t))==null||n.setSelected(t.channelId===e)})}}),this.vindral.on(`channels`,()=>{this.list.forEach(e=>e.detach()),this.list.clear();let e=this.vindral.channelId;this.vindral.channels.forEach((t,n)=>{var r;if(!t.isLive)return;let i=new AC({title:t.name,onClick:()=>{this.setSelected(t)},imageUrl:(r=this.thumbnailModule)==null?void 0:r.getImageUrl(t),selected:t.channelId===e});i.setAnimationDelay(`${n*.05}s`),this.list.set(t,i)}),this.list.forEach(e=>e.attach(this.element))}),(n=this.thumbnailModule)==null||n.on(`updatedImages`,()=>{this.list.forEach((e,t)=>{var n;e.setImageUrl((n=this.thumbnailModule)==null?void 0:n.getImageUrl(t))})}),this.element.className=RC,this.show()}},BC={fullscreen:`_fullscreen_1v9d8_1`};H(),R(),h(),O();var VC,HC=(VC=BC.fullscreen)==null?``:VC,UC=new WeakSet,WC=class e extends Bt{constructor(t){super(),L(this,UC),m(this,`container`,void 0),m(this,`unload`,()=>{document.removeEventListener(`webkitfullscreenchange`,this.onChange),document.removeEventListener(`mozfullscreenchange`,this.onChange),document.removeEventListener(`fullscreenchange`,this.onChange),this.container.removeEventListener(`webkitendfullscreen`,this.onChange)}),m(this,`request`,()=>D(UC,this,GC).call(this).catch(e=>{throw this.onChange(),e})),m(this,`exit`,()=>D(UC,this,KC).call(this).catch(e=>{throw this.onChange(),e})),m(this,`onChange`,()=>this.emit(`on fullscreen change`,this.isFullscreen())),m(this,`isFullscreen`,()=>!!(lt()||this.container.classList.contains(HC))),m(this,`isSupported`,()=>e.isFullscreenApiSupported(this.container)||!this.isInIframe()),m(this,`isInIframe`,()=>window.location!==window.parent.location),this.container=t,document.addEventListener(`webkitfullscreenchange`,this.onChange),document.addEventListener(`mozfullscreenchange`,this.onChange),document.addEventListener(`fullscreenchange`,this.onChange),this.container.addEventListener(`webkitendfullscreen`,this.onChange)}};function GC(){let e=ut(this.container);return e?e():(this.container.classList.add(HC),Promise.resolve())}function KC(){let e=dt(this.container);return e?e():(this.container.classList.remove(HC),Promise.resolve())}m(WC,`isFullscreenApiSupported`,e=>ft(e));var qC={player:`_player_h0il1_1`,"one-to-one":`_one-to-one_h0il1_19`,"audio-only":`_audio-only_h0il1_28`},JC={playoverlay:`_playoverlay_1niji_1`,hidden:`_hidden_1niji_17`,"playoverlay-indicator":`_playoverlay-indicator_1niji_23`};h();var YC,XC,ZC,QC=(YC=JC.hidden)==null?``:YC,$C=(XC=JC.playoverlay)==null?``:XC,ew=(ZC=JC[`playoverlay-indicator`])==null?``:ZC,tw=class extends g{constructor(){super(document.createElement(`div`)),m(this,`onClick`,void 0),m(this,`indicator`,document.createElement(`div`)),m(this,`isHidden`,()=>this.element.classList.contains(QC)),m(this,`setHidden`,e=>e?this.hide():this.show()),m(this,`hide`,()=>this.element.classList.add(QC)),m(this,`show`,()=>this.element.classList.remove(QC)),this.element.classList.add($C),this.element.classList.add(QC),this.indicator.className=ew,this.element.appendChild(this.indicator),this.element.onclick=()=>{this.onClick&&this.onClick()}}};H(),h(),P();var nw=class extends Bt{constructor({vindral:e,refreshEveryMs:t}){super(),m(this,`thumbnails`,new Map),m(this,`interval`,void 0),m(this,`channels`,void 0),m(this,`refreshEveryMs`,void 0),m(this,`isFetching`,!1),m(this,`hasFetched`,!1),this.channels=[...e.channels],this.refreshEveryMs=t||6e4,e.on(`channels`,()=>{this.channels=[...e.channels],this.hasFetched||this.refreshThumbnails()})}start(){this.interval||(this.interval=window.setInterval(()=>{this.refreshThumbnails()},this.refreshEveryMs))}stop(){window.clearInterval(this.interval)}getImageUrl(e){return this.thumbnails.get(e.channelId)}refreshThumbnails(){var e=this;return N(function*(){if(!e.isFetching){e.isFetching=!0;try{let t=e.channels.map(function(){var t=N(function*(t){let n=t.thumbnailUrls.length<2?0:Math.ceil(t.thumbnailUrls.length/2),r=t.thumbnailUrls[n];if(r){let n=yield fetch(r);if(n.ok){let r=yield n.blob(),i=URL.createObjectURL(r),a=e.thumbnails.get(t.channelId);a!=null&&a.startsWith(`blob:`)&&URL.revokeObjectURL(a),e.thumbnails.set(t.channelId,i)}}});return function(e){return t.apply(this,arguments)}}());yield Promise.all(t),e.emit(`updatedImages`)}catch(e){console.warn(`Error fetching thumbnails`,e)}e.isFetching=!1,e.hasFetched=!0}})()}};H(),h(),P(),B();var rw,iw,aw,ow=(rw=qC.player)==null?``:rw,sw=(iw=qC[`one-to-one`])==null?``:iw,cw=(aw=qC[`audio-only`])==null?``:aw,lw={controlsEnabled:!0,castEnabled:!0,channelSelectionEnabled:!0,renditionLevelsEnabled:!1,languagesButtonEnabled:!0,textTracksButtonEnabled:!0,oneToOneButtonEnabled:!1,iosWakeLockEnabled:!0,hideTimeout:2e3,pauseButtonEnabled:!0,airPlayButtonEnabled:!1,playOverlayEnabled:!0,bufferingOverlayEnabled:!0},uw=e=>!xx(e),dw=class{constructor(e,t){var n=this,r,i,a,o;m(this,`core`,void 0),m(this,`castSender`,void 0),m(this,`airPlaySender`,void 0),m(this,`options`,void 0),m(this,`state`,void 0),m(this,`playerElement`,document.createElement(`div`)),m(this,`bufferingOverlay`,void 0),m(this,`playOverlay`,void 0),m(this,`castOverlay`,new fC),m(this,`channelSelectionList`,void 0),m(this,`bar`,void 0),m(this,`stateInterval`,void 0),m(this,`thumbnailModule`,void 0),m(this,`browser`,nt()),m(this,`unload`,()=>{var e,t;this.stateInterval&&window.clearInterval(this.stateInterval),this.core.unload(),this.playerElement.remove(),(e=this.thumbnailModule)==null||e.stop(),(t=this.airPlaySender)==null||t.unload()}),m(this,`attach`,e=>{this.stateInterval&&window.clearInterval(this.stateInterval),this.stateInterval=window.setInterval(this.checkState,100),this.playerElement.remove(),e.appendChild(this.playerElement)}),m(this,`setupCastSender`,N(function*(){if(n.options.castEnabled){try{yield n.castSender.init()}catch(e){return}n.castSender.on(`connected`,()=>{n.state.fullscreen.isFullscreen()&&n.exitFullscreen(),n.core.pause(),n.castOverlay.setText(`Casting to ${n.castSender.getReceiverName()||`device`}`),n.castOverlay.show()}),n.castSender.on(`disconnected`,()=>{document.hidden||n.core.play(),n.castOverlay.hide()}),n.bar.addCastButton()}})),m(this,`setupAirPlaySender`,e=>{e.once(`available`,()=>{this.bar.addAirPlayButton()}),e.on(`connected`,()=>{this.core.mediaElement.style.display=`hidden`,this.core.pause()}),e.on(`disconnected`,()=>{this.core.mediaElement.style.display=`block`,document.hidden||this.core.play()})}),m(this,`onMouseMove`,()=>{this.options.controlsEnabled&&(this.bumpInteractTime(),this.bar.isHidden()&&this.bar.show())}),m(this,`onClick`,e=>{let t=e.detail===2&&(e.target instanceof HTMLVideoElement||e.target instanceof HTMLCanvasElement),n=this.options.fullscreenButtonEnabled!==!1&&this.options.controlsEnabled!==!1;t&&n&&this.toggleFullscreen().catch(e=>{console.error(`error`,e)})}),m(this,`togglePip`,()=>this.core.pictureInPicture.isActive()?this.core.pictureInPicture.exit():(this.triggerUserInput(),this.core.pictureInPicture.enter())),m(this,`toggleFullscreen`,N(function*(){return n.isInFullscreen()?n.exitFullscreen():n.enterFullscreen()})),m(this,`triggerUserInput`,()=>{if(this.browser.platform.isIOS){let e=this.core.muted;this.core.muted=!e,this.core.muted=e}}),m(this,`toggleOneToOne`,()=>{this.playerElement.classList.contains(sw)?this.playerElement.classList.remove(sw):this.playerElement.classList.add(sw)}),m(this,`isInFullscreen`,()=>this.state.fullscreen.isFullscreen()),m(this,`enterFullscreen`,N(function*(){n.triggerUserInput(),n.iosHackResetSize(),n.bar.fullscreenButton.setIcon(`exit`),yield n.state.fullscreen.request(),n.lockOrientation()})),m(this,`exitFullscreen`,()=>(this.bar.fullscreenButton.setIcon(`enter`),this.unlockOrientation(),this.state.fullscreen.exit())),m(this,`showAirPlayPicker`,()=>{var e;(e=this.airPlaySender)==null||e.showPlaybackTargetPicker()}),m(this,`lockOrientation`,()=>{let e=this.core.currentRenditionLevel;if(!(e!=null&&e.video))return;let t=wt(e.video.width>e.video.height?`landscape-primary`:`portrait-primary`);t&&t.catch(()=>{})}),m(this,`unlockOrientation`,()=>{Tt()}),m(this,`checkState`,()=>{this.bar.hasFocus()||this.state.lastInteractionTime&&this.state.lastInteractionTime<=Date.now()-this.options.hideTimeout&&this.core.media!==`audio`&&this.core.playbackState!==`paused`&&this.bar.hide()}),m(this,`needsThumbnails`,()=>{var e,t,n;return!((e=this.options.channelSelectionOptions)==null||(e=e.barButton)==null)&&e.enabled&&!((t=this.options.channelSelectionOptions)==null||(t=t.barButton)==null)&&t.thumbnails?!0:!!(!((n=this.options.channelSelectionOptions)==null||(n=n.list)==null)&&n.enabled)}),m(this,`bumpInteractTime`,()=>void(this.state.lastInteractionTime=Date.now()));let s=z(z({},lw),t);this.options=s,this.playerElement.className=ow,uw(e)?this.core=e:this.core=new Ox(e),this.state={isBuffering:!1,fullscreen:new WC(!WC.isFullscreenApiSupported(this.playerElement)&&WC.isFullscreenApiSupported(this.core.mediaElement)?this.core.mediaElement:this.playerElement),lastInteractionTime:0},this.needsThumbnails()&&(this.thumbnailModule=new nw({vindral:this.core,refreshEveryMs:t==null?void 0:t.thumbnailUpdateInterval}),this.thumbnailModule.start()),!((r=this.options.channelSelectionOptions)==null||(r=r.list)==null)&&r.enabled&&(this.channelSelectionList=new zC({vindral:this.core,thumbnailModule:this.thumbnailModule}));let c=(t==null?void 0:t.channelSelectionEnabled)||(t==null||(i=t.channelSelectionOptions)==null||(i=i.barButton)==null?void 0:i.enabled),l=t==null||(a=t.channelSelectionOptions)==null||(a=a.barButton)==null?void 0:a.thumbnails;this.bar=new oC(z(z({vindral:this.core,thumbnailModule:this.thumbnailModule},s),{},{channelSelectionEnabled:c,channelSelectionThumbnails:l,fullscreenButtonEnabled:this.core.media!==`audio`&&(t==null?void 0:t.fullscreenButtonEnabled)&&this.state.fullscreen.isSupported(),oneToOneButtonEnabled:this.core.media!==`audio`&&(t==null?void 0:t.oneToOneButtonEnabled),pipButtonEnabled:(t==null?void 0:t.pipButtonEnabled)&&this.core.pictureInPicture.isSupported(),onFullscreenClicked:()=>void this.toggleFullscreen().catch(e=>console.error(`error`,e)),onOneToOneClicked:()=>this.toggleOneToOne(),onPipClicked:()=>void this.togglePip().catch(e=>console.error(`error`,e)),onAirPlayClicked:()=>this.showAirPlayPicker()})),this.core.media===`audio`&&(this.playerElement.classList.add(cw),this.options.controlsEnabled&&this.bar.show());let u=this.core.getCastOptions();this.castSender=new ar({background:this.options.castBackground,receiverApplicationId:this.options.castReceiverApplicationId,options:u}),this.setupCastSender(),this.options.airPlayButtonEnabled&&ir.isAirPlaySupported()&&(this.airPlaySender=new ir({url:u.url,channelId:u.channelId,authenticationToken:u.authenticationToken,container:this.playerElement}),this.setupAirPlaySender(this.airPlaySender)),this.core.on(`needs user input`,e=>{if(this.bar.updateState(),e.forVideo&&this.core.media!==`audio`||!this.options.controlsEnabled){var t;(t=this.playOverlay)==null||t.show();return}e.forAudio&&this.options.controlsEnabled&&(this.state.lastInteractionTime=0,this.bar.show())}),this.core.on(`volume state`,()=>{this.bar.updateState()}),this.core.on(`playback state`,e=>{switch(this.bar.updateState(),e){case`paused`:var t;if(this.bumpInteractTime(),(t=this.bufferingOverlay)==null||t.hide(),this.options.controlsEnabled&&this.bar.show(),this.core.media!==`audio`||!this.options.controlsEnabled){var n;(n=this.playOverlay)==null||n.show()}break;case`playing`:var r;if(this.options.controlsEnabled){var i;(i=this.playOverlay)==null||i.hide()}(r=this.bufferingOverlay)==null||r.hide(),this.castOverlay.hide();break;case`buffering`:{var a,o;(a=this.bufferingOverlay)==null||a.show();let e=this.core.videoBufferedRanges[this.core.videoBufferedRanges.length-1],t=!e||e.start>this.core.currentTime;(o=this.bufferingOverlay)==null||o.fullscreen(t);break}}}),this.core.attach(this.playerElement),this.castOverlay.attach(this.playerElement),this.options.bufferingOverlayEnabled&&(this.bufferingOverlay=new re,this.bufferingOverlay.attach(this.playerElement)),this.options.playOverlayEnabled&&(this.playOverlay=new tw,this.playOverlay.attach(this.playerElement),this.playOverlay.onClick=()=>{var e;this.core.userInput(),(e=this.playOverlay)==null||e.hide()}),this.channelSelectionList&&this.channelSelectionList.attach(this.playerElement),this.bar.attach(this.playerElement),this.playerElement.addEventListener(`click`,this.onClick),this.playerElement.addEventListener(`mousemove`,this.onMouseMove),this.state.fullscreen.on(`on fullscreen change`,e=>{e?this.bar.fullscreenButton.setIcon(`exit`):this.bar.fullscreenButton.setIcon(`enter`)}),(o=this.bufferingOverlay)==null||o.fullscreen(!0)}iosHackResetSize(){this.core.emitter.emit(`ios-hack: reset size`)}};e.AUTHENTICATION_EXPIRED_CODE=Rr,e.AUTHENTICATION_FAILED_CODE=Lr,e.ApiClient=Dl,e.CHANNEL_NOT_FOUND_CODE=zr,e.CONNECTION_FAILED_AFTER_RETRIES_CODE=Ir,e.CONNECTION_FAILED_CODE=Fr,e.CastSender=ar,e.DISCONNECTED_BY_EDGE=Gr,e.INACTIVITY_CODE=Vr,e.NO_INCOMING_DATA=Br,e.Player=dw,e.Vindral=Ox,e.VindralError=U});
1233
+ </g>`},Wx={viewBox:`-10 -10 44 44`,content:`<path fill="white" d="M19 7h-8v6h8V7zm2-4H3c-1.1 0-2 .9-2 2v14c0 1.1.9 1.98 2 1.98h18c1.1 0 2-.88 2-1.98V5c0-1.1-.9-2-2-2zm0 16.01H3V4.98h18v14.03z"/>`},Gx={viewBox:`-10 -10 45 45`,content:`<path fill="white" d="M20 8H4V6h16v2zm-2-6H6v2h12V2zm4 10v8c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2v-8c0-1.1.9-2 2-2h16c1.1 0 2 .9 2 2zm-6 4l-6-3.27v6.53L16 16z"/>`},Kx={viewBox:`-8 -8 40 40`,content:`<path fill="white" d="M19 4H5c-1.11 0-2 .9-2 2v12c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-8 11H9.5v-2h-2v2H6V9h1.5v2.5h2V9H11v6zm7-1c0 .55-.45 1-1 1h-.75v1.5h-1.5V15H14c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v4zm-3.5-.5h2v-3h-2v3z"/>`},qx={viewBox:`-8 -8 40 40`,content:`<path fill="white" d="M14.4 6L14 4H5v17h2v-7h5.6l.4 2h7V6z"/>`},Jx={viewBox:`-8 -8 40 40`,content:`<path fill="white" d="M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM4 12h4v2H4v-2zm10 6H4v-2h10v2zm6 0h-4v-2h4v2zm0-4H10v-2h10v2z"></path>`},Yx={viewBox:`-8 -8 40 40`,content:`<path fill="white" d="M12.8 13.4c-.1-.1-.1-.2-.2-.2c-.5-.3-1.1-.2-1.5.2l-4 6c0 .2-.1.4-.1.6c0 .6.4 1 1 1h8c.2 0 .4-.1.6-.2c.5-.3.6-.9.3-1.4zM19 3H5C3.3 3 2 4.3 2 6v9c0 1.7 1.3 3 3 3h.8c.6 0 1-.4 1-1s-.4-1-1-1H5c-.6 0-1-.4-1-1V6c0-.6.4-1 1-1h14c.6 0 1 .4 1 1v9c0 .6-.4 1-1 1h-.8c-.6 0-1 .4-1 1s.4 1 1 1h.8c1.7 0 3-1.3 3-3V6c0-1.7-1.3-3-3-3"/>`};h();var Xx,Zx={enter:Hx,exit:Ux,pip:Wx,channels:Gx,languages:qx,textTracks:Jx,levels:Kx,oneToOne:Vx,mute:Lx,unmute:Bx,pause:Rx,play:zx,airPlay:Yx},Qx=(Xx=Ix[`icon-button`])==null?``:Xx,$x=class extends g{constructor(e,t,n){super(document.createElement(`div`)),m(this,`iconElement`,void 0),m(this,`setIcon`,e=>{this.iconElement.setAttribute(`viewBox`,Zx[e].viewBox),this.iconElement.innerHTML=Zx[e].content}),m(this,`isHidden`,()=>this.element.style.display===`none`),m(this,`setHidden`,e=>e?this.hide():this.show()),m(this,`show`,()=>void(this.element.style.display=`block`)),m(this,`hide`,()=>void(this.element.style.display=`none`)),this.element.style.cursor=`pointer`,this.element.setAttribute(`role`,`button`),this.element.setAttribute(`aria-label`,e),this.iconElement=document.createElementNS(`http://www.w3.org/2000/svg`,`svg`),this.iconElement.setAttribute(`width`,`40px`),this.iconElement.setAttribute(`height`,`40px`),this.iconElement.setAttribute(`class`,Qx),this.setIcon(t),this.element.addEventListener(`click`,n),this.element.appendChild(this.iconElement)}},eS=`_list_1vkum_1`,tS=`_hidden_1vkum_20`,nS={list:eS,"list-item":`_list-item_1vkum_12`,"list-item-disabled":`_list-item-disabled_1vkum_16`,hidden:tS};h();var rS,iS,aS,oS,sS=(rS=nS.hidden)==null?``:rS,cS=(iS=nS.list)==null?``:iS,lS=(aS=nS[`list-item`])==null?``:aS,uS=(oS=nS[`list-item-disabled`])==null?``:oS,dS=class extends g{constructor({items:e,onItemClick:t,classNames:n=[],maxHeight:r}){super(document.createElement(`div`)),m(this,`onItemClick`,void 0),m(this,`updateItems`,e=>{for(;this.element.firstChild;){var t;(t=this.element.lastChild)==null||t.remove()}e.forEach(e=>{let t=document.createElement(`div`);e.disabled||t.addEventListener(`click`,()=>this.onItemClick(e)),t.className=[lS,e.disabled?uS:``].join(` `),t.appendChild(e.element()),this.element.appendChild(t)})}),m(this,`hide`,()=>this.element.classList.add(sS)),m(this,`show`,()=>this.element.classList.remove(sS)),this.element.className=[cS,...n].join(` `),this.onItemClick=t,this.updateItems(e),r&&(this.element.style.maxHeight=r)}},fS={container:`_container_13xnz_1`,hidden:`_hidden_13xnz_6`,list:`_list_13xnz_10`};h();var pS,mS,hS,gS=(pS=fS.list)==null?``:pS,_S=(mS=fS.hidden)==null?``:mS,vS=(hS=fS.container)==null?``:hS,yS=class extends g{constructor({label:e,items:t,onItemClick:n,iconButtonType:r,onToggle:i}){super(document.createElement(`div`)),m(this,`iconButton`,void 0),m(this,`onItemClick`,void 0),m(this,`onToggle`,void 0),m(this,`maxHeight`,void 0),m(this,`items`,void 0),m(this,`list`,void 0),m(this,`onButtonClick`,()=>{this.toggleShowChannels(),this.onToggle(this)}),m(this,`toggleShowChannels`,()=>{this.list?this.hideList():this.showList()}),m(this,`handleItemClick`,e=>{this.toggleShowChannels(),this.onItemClick(e)}),m(this,`showList`,()=>{this.list=new dS({items:this.items,onItemClick:this.handleItemClick,classNames:[gS],maxHeight:this.maxHeight}),this.list.attach(this.element)}),m(this,`hideList`,()=>{var e;(e=this.list)==null||e.detach(),this.list=void 0}),m(this,`updateItems`,e=>{var t;this.items=e,(t=this.list)==null||t.updateItems(e)}),m(this,`isListVisible`,()=>this.list!==void 0),m(this,`hide`,()=>{_S&&this.element.classList.add(_S)}),m(this,`show`,()=>{_S&&this.element.classList.remove(_S)}),this.element.className=vS,this.onItemClick=n,this.onToggle=i,this.items=t,this.iconButton=new $x(e,r,this.onButtonClick),this.iconButton.attach(this.element)}};V();var bS,xS,SS,CS,wS,TS=(bS=Fx[`hide-on-small`])==null?``:bS,ES=(xS=Fx[`channel-selection-item`])==null?``:xS,DS=(SS=Fx[`channel-selection-item-selected`])==null?``:SS,OS=(CS=Fx[`channel-selection-item-image`])==null?``:CS,kS=(wS=Fx.withThumbnails)==null?``:wS,AS=class extends yS{constructor({vindral:e,enabled:t,thumbnailsEnabled:n,thumbnailModule:r}){e.on(`channels`,()=>{let i=e.channels.map(t=>({channel:t,disabled:!t.isLive,element:()=>{let i=document.createElement(`div`);if(i.className=[ES,t.channelId===e.channelId?DS:``].join(` `),r&&n){i.classList.add(kS);let e=document.createElement(`p`);e.innerHTML=t.name,i.appendChild(e);let n=r.getImageUrl(t),a=document.createElement(`img`);n&&(a.className=OS,a.src=n,i.style.backgroundImage=`url(${n})`)}else i.innerHTML=t.name;return i}}));this.maxHeight=`calc(${Math.max(110,e.mediaElement.clientHeight)}px - 46px)`,this.updateItems(i),i.length>1&&t!==!1?this.show():this.hide()}),super({label:`Channel List`,items:[],onItemClick:t=>e.channelId=t.channel.channelId,onToggle:x,iconButtonType:`channels`}),this.element.classList.add(TS),this.hide()}},jS={"language-button-item":`_language-button-item_1dov5_1`,"language-button-item-selected":`_language-button-item-selected_1dov5_6`};V();var MS,NS,PS=(MS=jS[`language-button-item`])==null?``:MS,FS=(NS=jS[`language-button-item-selected`])==null?``:NS,IS=class extends yS{constructor({vindral:e}){e.on(`languages`,()=>{let t=e.languages.map(t=>({language:t,disabled:!1,element:()=>{let n=document.createElement(`div`);return n.className=[PS,t===e.language?FS:``].join(` `),n.innerHTML=t,n}}));this.maxHeight=`calc(${Math.max(110,e.mediaElement.clientHeight)}px - 46px)`,this.updateItems(t),t.length>0?this.show():this.hide()}),super({label:`Language`,items:[],onItemClick:t=>e.language=t.language,onToggle:x,iconButtonType:`languages`}),this.hide()}};h();var LS=class extends g{constructor({vindral:e}){super(document.createElement(`div`)),m(this,`vindral`,void 0),m(this,`playButton`,void 0),m(this,`updateState`,()=>{this.playButton.setIcon(this.playIcon())}),m(this,`onPlayClick`,()=>{this.vindral.playbackState===`paused`?this.vindral.play():this.vindral.pause(),this.playButton.setIcon(this.playIcon())}),m(this,`playIcon`,()=>this.vindral.playbackState===`paused`?`play`:`pause`),this.element.style.cursor=`pointer`,this.vindral=e,this.playButton=new $x(`Play`,this.playIcon(),this.onPlayClick),this.playButton.attach(this.element)}},RS=`_item_5vhyo_1`,zS=`_title_5vhyo_10`,BS={item:RS,"item-selected":`_item-selected_5vhyo_6`,title:zS,"sub-title":`_sub-title_5vhyo_14`,"hide-on-small":`_hide-on-small_5vhyo_21`};V();var VS,HS,US,WS,GS,KS=(VS=BS[`hide-on-small`])==null?``:VS,qS=(HS=BS.item)==null?``:HS,JS=(US=BS[`item-selected`])==null?``:US,YS=(WS=BS.title)==null?``:WS,XS=(GS=BS[`sub-title`])==null?``:GS,ZS=class extends yS{constructor({vindral:e}){let t=()=>{let t=e.renditionLevels.map(t=>({rendition:t,disabled:!1,element:()=>{var n,r,i;let a=document.createElement(`div`);a.className=[qS,t===e.currentRenditionLevel?JS:``].join(` `);let o=document.createElement(`span`),s=document.createElement(`span`),{audio:c,video:l}=t,u=l?Xt(l):void 0,d=c?Zt(c.sampleRate):void 0,f=Yt(((n=l==null?void 0:l.bitRate)==null?0:n)+((r=c==null?void 0:c.bitRate)==null?0:r));if(l){let e=l.frameRate[0]/l.frameRate[1],t=l.frameRate[0]%l.frameRate[1]===0?`${e}p`:`${e.toFixed(2)}p`;f+=`, ${t}`}return o.innerHTML=(i=u==null?d:u)==null?``:i,o.className=YS,s.innerHTML=f,s.className=XS,a.appendChild(o),a.appendChild(s),a}}));this.maxHeight=`calc(${Math.max(110,e.mediaElement.clientHeight)}px - 46px)`,this.updateItems(t)};e.on(`rendition level`,t),e.on(`rendition levels`,t),super({label:`Rendition Levels`,items:[],onItemClick:({rendition:t})=>{t.audio&&(e.maxAudioBitRate=t.audio.bitRate),t.video&&(e.maxVideoBitRate=t.video.bitRate,e.maxSize=t.video)},onToggle:x,iconButtonType:`levels`}),this.element.classList.add(KS)}},QS=class extends g{constructor(){super(document.createElement(`div`)),this.element.style.flexGrow=`1`}},$S={"text-track-button-item":`_text-track-button-item_1ry10_1`,"text-track-button-item-selected":`_text-track-button-item-selected_1ry10_6`};V();var eC,tC,nC=(eC=$S[`text-track-button-item`])==null?``:eC,rC=(tC=$S[`text-track-button-item-selected`])==null?``:tC,iC=class extends yS{constructor({vindral:e}){e.on(`text tracks`,()=>{let t=e.textTracks.map(t=>({textTrack:t,disabled:!1,element:()=>{let n=document.createElement(`div`);return n.className=[nC,t===e.textTrack?rC:``].join(` `),n.innerHTML=t,n}}));t.length>0?(t.push({textTrack:void 0,disabled:!1,element:()=>{let t=document.createElement(`div`);return t.className=[nC,e.textTrack===void 0?rC:``].join(` `),t.innerHTML=`Off`,t}}),this.show()):this.hide(),this.maxHeight=`calc(${Math.max(110,e.mediaElement.clientHeight)}px - 46px)`,this.updateItems(t)}),super({label:`Text Tracks`,items:[],onItemClick:t=>e.textTrack=t.textTrack,onToggle:x,iconButtonType:`textTracks`}),this.hide()}};h();var aC=class extends g{constructor({vindral:e}){super(document.createElement(`div`)),m(this,`vindral`,void 0),m(this,`muteButton`,void 0),m(this,`updateState`,()=>{this.muteButton.setIcon(this.muteIcon())}),m(this,`onMuteClick`,()=>{this.vindral.muted=!this.vindral.muted,this.muteButton.setIcon(this.muteIcon())}),m(this,`muteIcon`,()=>this.vindral.muted?`mute`:`unmute`),this.element.style.cursor=`pointer`,this.vindral=e,this.muteButton=new $x(`Mute`,this.muteIcon(),this.onMuteClick),this.muteButton.attach(this.element)}};h();var oC,sC,cC=(oC=Nx.hidden)==null?``:oC,lC=(sC=Nx.bar)==null?``:sC,uC=class extends g{constructor({vindral:e,onFullscreenClicked:t,onOneToOneClicked:n,onPipClicked:r,onAirPlayClicked:i,pauseButtonEnabled:a,fullscreenButtonEnabled:o,pipButtonEnabled:s,channelSelectionEnabled:c,channelSelectionThumbnails:l,renditionLevelsEnabled:u,languagesButtonEnabled:d,textTracksButtonEnabled:f,oneToOneButtonEnabled:p,thumbnailModule:h}){super(document.createElement(`div`)),m(this,`items`,[]),m(this,`isMouseInElement`,!1),m(this,`volumeControls`,void 0),m(this,`playControls`,void 0),m(this,`oneToOneButton`,void 0),m(this,`fullscreenButton`,void 0),m(this,`airPlayButton`,void 0),m(this,`containerElement`,void 0),m(this,`hideLists`,()=>{this.items.forEach(e=>`hideList`in e&&e.hideList())}),m(this,`listButtons`,()=>this.items),m(this,`isAnyListOpen`,()=>this.items.filter(e=>`isListVisible`in e&&e.isListVisible()).length>0),m(this,`hasFocus`,()=>this.isMouseInElement||this.isAnyListOpen()),m(this,`isHidden`,()=>this.element.classList.contains(cC)),m(this,`hide`,()=>{this.containerElement.style.setProperty(`--vindral-control-bar-offset`,`0px`),this.element.classList.add(cC)}),m(this,`show`,()=>{this.containerElement.style.setProperty(`--vindral-control-bar-offset`,`-96px`),this.element.classList.remove(cC)}),m(this,`addCastButton`,()=>{let e=document.createElement(`google-cast-launcher`);this.element.insertBefore(e,this.element.lastChild)}),m(this,`addAirPlayButton`,()=>{this.airPlayButton.attachBefore(this.element,this.element.lastChild)}),m(this,`updateState`,()=>{this.playControls.updateState(),this.volumeControls.updateState()}),m(this,`onToggle`,e=>{this.listButtons().filter(t=>e!==t).forEach(e=>`hideList`in e&&e.hideList())}),this.element.className=[lC,cC].join(` `);let g=new QS;this.oneToOneButton=new $x(`One to One`,`oneToOne`,n),this.fullscreenButton=new $x(`Fullscreen`,`enter`,t),this.airPlayButton=new $x(`AirPlay`,`airPlay`,i);let _=new $x(`Picture in Picture`,`pip`,r),v=new AS({vindral:e,enabled:c,thumbnailsEnabled:l,thumbnailModule:l?h:void 0}),ee=new ZS({vindral:e});this.volumeControls=new aC({vindral:e}),this.playControls=new LS({vindral:e}),this.containerElement=e.mediaElement,a&&e.getOptions().pauseSupportEnabled&&this.playControls.attach(this.element),e.getOptions().media!==`video`&&this.volumeControls.attach(this.element),g.attach(this.element);let y=[];if(d){let t=new IS({vindral:e});t.attach(this.element),y.push(t)}if(f){let t=new iC({vindral:e});t.attach(this.element),y.push(t)}ee.attach(this.element),v.attach(this.element),_.attach(this.element),this.oneToOneButton.attach(this.element),this.fullscreenButton.attach(this.element),this.items.push(g,...y,ee,v,_,this.fullscreenButton),this.items.forEach(e=>`onToggle`in e&&(e.onToggle=this.onToggle)),p||this.oneToOneButton.hide(),o||this.fullscreenButton.hide(),s||_.hide(),c||v.hide(),u||ee.hide(),navigator.maxTouchPoints<1&&(this.element.addEventListener(`mouseenter`,()=>this.isMouseInElement=!0),this.element.addEventListener(`mouseleave`,()=>this.isMouseInElement=!1))}},dC={castoverlay:`_castoverlay_1n91l_1`,hidden:`_hidden_1n91l_20`};h();var fC,pC,mC=(fC=dC.hidden)==null?``:fC,hC=(pC=dC.castoverlay)==null?``:pC,gC=class extends g{constructor(){super(document.createElement(`div`)),m(this,`onClick`,void 0),m(this,`setText`,e=>{this.element.innerText=e}),m(this,`hide`,()=>this.element.classList.add(mC)),m(this,`show`,()=>this.element.classList.remove(mC)),this.element.classList.add(hC),this.element.classList.add(mC),this.element.innerText=`device`}},_C=`_button_4ybkq_21`,vC=`_image_4ybkq_98`,yC=`_overlay_4ybkq_118`,bC=`_selected_4ybkq_136`,xC=`_hidden_4ybkq_141`,SC=`_disabled_4ybkq_145`,CC={button:_C,"show-and-scaleup":`_show-and-scaleup_4ybkq_1`,image:vC,overlay:yC,selected:bC,hidden:xC,disabled:SC};h();var wC,TC,EC,DC,OC,kC=(wC=CC.button)==null?``:wC,AC=(TC=CC.hidden)==null?``:TC,jC=(EC=CC.overlay)==null?``:EC,MC=(DC=CC.image)==null?``:DC,NC=(OC=CC.selected)==null?``:OC,PC=class extends g{constructor({title:e,onClick:t,imageUrl:n,selected:r}){super(document.createElement(`button`)),m(this,`overlay`,void 0),m(this,`imageHolder1`,void 0),m(this,`imageHolder2`,void 0),m(this,`isImageHolder1Active`,!1),m(this,`loadingOverlay`,void 0),m(this,`transition`,(e,t,n)=>{t.style.backgroundImage=`url(${n})`,t.style.opacity=`1`,e.style.opacity=`0`}),m(this,`setSelected`,e=>{e?this.element.classList.add(NC):this.element.classList.remove(NC)}),m(this,`setAnimationDelay`,e=>{this.element.style.animationDelay=e}),m(this,`hideLoading`,()=>{this.loadingOverlay.hide()}),m(this,`isHidden`,()=>this.element.classList.contains(AC)),m(this,`setHidden`,e=>e?this.hide():this.show()),m(this,`hide`,()=>this.element.classList.add(AC)),m(this,`show`,()=>this.element.classList.remove(AC)),this.element.className=kC,r&&this.setSelected(r),this.element.onclick=()=>{this.loadingOverlay.show(),t()},this.imageHolder1=document.createElement(`div`),this.imageHolder1.className=MC,this.imageHolder1.style.animationFillMode=`forwards`,this.imageHolder2=document.createElement(`div`),this.imageHolder2.className=MC,this.imageHolder2.style.animationFillMode=`forwards`,n&&(this.imageHolder1.style.backgroundImage=`url(${n})`,this.isImageHolder1Active=!0),this.loadingOverlay=new ie,this.loadingOverlay.attach(this.element),this.loadingOverlay.hide(),this.element.appendChild(this.imageHolder1),this.element.appendChild(this.imageHolder2),this.overlay=document.createElement(`div`),this.overlay.className=jC,this.element.appendChild(this.overlay);let i=document.createElement(`span`);i.innerHTML=e,this.element.appendChild(i),this.show()}setImageUrl(e){if(e){if(!this.imageHolder1.style.backgroundImage){this.imageHolder1.style.backgroundImage=`url(${e})`,this.isImageHolder1Active=!0;return}this.isImageHolder1Active?this.transition(this.imageHolder1,this.imageHolder2,e):this.transition(this.imageHolder2,this.imageHolder1,e),this.isImageHolder1Active=!this.isImageHolder1Active}}},FC=`_container_btpgd_13`,IC=`_hidden_btpgd_37`,LC=`_disabled_btpgd_41`,RC={"channel-selection-overlay":`_channel-selection-overlay_btpgd_1`,container:FC,hidden:IC,disabled:LC};h();var zC,BC,VC=(zC=RC.hidden)==null?``:zC,HC=(BC=RC.container)==null?``:BC,UC=class extends g{constructor({vindral:e,thumbnailModule:t}){var n;super(document.createElement(`div`)),m(this,`thumbnailModule`,void 0),m(this,`list`,void 0),m(this,`vindral`,void 0),m(this,`setSelected`,e=>{this.list.forEach((t,n)=>{t.setSelected(n.channelId===e.channelId)}),e.channelId!==this.vindral.channelId&&(this.vindral.channelId=e.channelId)}),m(this,`isHidden`,()=>this.element.classList.contains(VC)),m(this,`setHidden`,e=>e?this.hide():this.show()),m(this,`hide`,()=>this.element.classList.add(VC)),m(this,`show`,()=>this.element.classList.remove(VC)),this.thumbnailModule=t,this.list=new Map,this.vindral=e,this.vindral.on(`context switch`,e=>{if(e===`completed`){this.list.forEach(e=>e.hideLoading());let e=this.vindral.channelId;this.vindral.channels.forEach(t=>{var n;(n=this.list.get(t))==null||n.setSelected(t.channelId===e)})}}),this.vindral.on(`channels`,()=>{this.list.forEach(e=>e.detach()),this.list.clear();let e=this.vindral.channelId;this.vindral.channels.forEach((t,n)=>{var r;if(!t.isLive)return;let i=new PC({title:t.name,onClick:()=>{this.setSelected(t)},imageUrl:(r=this.thumbnailModule)==null?void 0:r.getImageUrl(t),selected:t.channelId===e});i.setAnimationDelay(`${n*.05}s`),this.list.set(t,i)}),this.list.forEach(e=>e.attach(this.element))}),(n=this.thumbnailModule)==null||n.on(`updatedImages`,()=>{this.list.forEach((e,t)=>{var n;e.setImageUrl((n=this.thumbnailModule)==null?void 0:n.getImageUrl(t))})}),this.element.className=HC,this.show()}},WC={fullscreen:`_fullscreen_1v9d8_1`};V(),L(),h(),D();var GC,KC=(GC=WC.fullscreen)==null?``:GC,qC=new WeakSet,JC=class e extends Ht{constructor(t){super(),I(this,qC),m(this,`container`,void 0),m(this,`unload`,()=>{document.removeEventListener(`webkitfullscreenchange`,this.onChange),document.removeEventListener(`mozfullscreenchange`,this.onChange),document.removeEventListener(`fullscreenchange`,this.onChange),this.container.removeEventListener(`webkitendfullscreen`,this.onChange)}),m(this,`request`,()=>E(qC,this,YC).call(this).catch(e=>{throw this.onChange(),e})),m(this,`exit`,()=>E(qC,this,XC).call(this).catch(e=>{throw this.onChange(),e})),m(this,`onChange`,()=>this.emit(`on fullscreen change`,this.isFullscreen())),m(this,`isFullscreen`,()=>!!(ut()||this.container.classList.contains(KC))),m(this,`isSupported`,()=>e.isFullscreenApiSupported(this.container)||!this.isInIframe()),m(this,`isInIframe`,()=>window.location!==window.parent.location),this.container=t,document.addEventListener(`webkitfullscreenchange`,this.onChange),document.addEventListener(`mozfullscreenchange`,this.onChange),document.addEventListener(`fullscreenchange`,this.onChange),this.container.addEventListener(`webkitendfullscreen`,this.onChange)}};function YC(){let e=dt(this.container);return e?e():(this.container.classList.add(KC),Promise.resolve())}function XC(){let e=ft(this.container);return e?e():(this.container.classList.remove(KC),Promise.resolve())}m(JC,`isFullscreenApiSupported`,e=>pt(e));var ZC={player:`_player_h0il1_1`,"one-to-one":`_one-to-one_h0il1_19`,"audio-only":`_audio-only_h0il1_28`},QC={playoverlay:`_playoverlay_1niji_1`,hidden:`_hidden_1niji_17`,"playoverlay-indicator":`_playoverlay-indicator_1niji_23`};h();var $C,ew,tw,nw=($C=QC.hidden)==null?``:$C,rw=(ew=QC.playoverlay)==null?``:ew,iw=(tw=QC[`playoverlay-indicator`])==null?``:tw,aw=class extends g{constructor(){super(document.createElement(`div`)),m(this,`onClick`,void 0),m(this,`indicator`,document.createElement(`div`)),m(this,`isHidden`,()=>this.element.classList.contains(nw)),m(this,`setHidden`,e=>e?this.hide():this.show()),m(this,`hide`,()=>this.element.classList.add(nw)),m(this,`show`,()=>this.element.classList.remove(nw)),this.element.classList.add(rw),this.element.classList.add(nw),this.indicator.className=iw,this.element.appendChild(this.indicator),this.element.onclick=()=>{this.onClick&&this.onClick()}}};V(),h(),N();var ow=class extends Ht{constructor({vindral:e,refreshEveryMs:t}){super(),m(this,`thumbnails`,new Map),m(this,`interval`,void 0),m(this,`channels`,void 0),m(this,`refreshEveryMs`,void 0),m(this,`isFetching`,!1),m(this,`hasFetched`,!1),this.channels=[...e.channels],this.refreshEveryMs=t||6e4,e.on(`channels`,()=>{this.channels=[...e.channels],this.hasFetched||this.refreshThumbnails()})}start(){this.interval||(this.interval=window.setInterval(()=>{this.refreshThumbnails()},this.refreshEveryMs))}stop(){window.clearInterval(this.interval)}getImageUrl(e){return this.thumbnails.get(e.channelId)}refreshThumbnails(){var e=this;return M(function*(){if(!e.isFetching){e.isFetching=!0;try{let t=e.channels.map(function(){var t=M(function*(t){let n=t.thumbnailUrls.length<2?0:Math.ceil(t.thumbnailUrls.length/2),r=t.thumbnailUrls[n];if(r){let n=yield fetch(r);if(n.ok){let r=yield n.blob(),i=URL.createObjectURL(r),a=e.thumbnails.get(t.channelId);a!=null&&a.startsWith(`blob:`)&&URL.revokeObjectURL(a),e.thumbnails.set(t.channelId,i)}}});return function(e){return t.apply(this,arguments)}}());yield Promise.all(t),e.emit(`updatedImages`)}catch(e){console.warn(`Error fetching thumbnails`,e)}e.isFetching=!1,e.hasFetched=!0}})()}};V(),h(),N(),z();var sw,cw,lw,uw=(sw=ZC.player)==null?``:sw,dw=(cw=ZC[`one-to-one`])==null?``:cw,fw=(lw=ZC[`audio-only`])==null?``:lw,pw={controlsEnabled:!0,castEnabled:!0,channelSelectionEnabled:!0,renditionLevelsEnabled:!1,languagesButtonEnabled:!0,textTracksButtonEnabled:!0,oneToOneButtonEnabled:!1,iosWakeLockEnabled:!0,hideTimeout:2e3,pauseButtonEnabled:!0,airPlayButtonEnabled:!1,playOverlayEnabled:!0,bufferingOverlayEnabled:!0},mw=e=>!Tx(e),hw=class{constructor(e,t){var n=this,r,i,a,o;m(this,`core`,void 0),m(this,`castSender`,void 0),m(this,`airPlaySender`,void 0),m(this,`options`,void 0),m(this,`state`,void 0),m(this,`playerElement`,document.createElement(`div`)),m(this,`bufferingOverlay`,void 0),m(this,`playOverlay`,void 0),m(this,`castOverlay`,new gC),m(this,`channelSelectionList`,void 0),m(this,`bar`,void 0),m(this,`stateInterval`,void 0),m(this,`thumbnailModule`,void 0),m(this,`browser`,rt()),m(this,`unload`,()=>{var e,t;this.stateInterval&&window.clearInterval(this.stateInterval),this.core.unload(),this.playerElement.remove(),(e=this.thumbnailModule)==null||e.stop(),(t=this.airPlaySender)==null||t.unload()}),m(this,`attach`,e=>{this.stateInterval&&window.clearInterval(this.stateInterval),this.stateInterval=window.setInterval(this.checkState,100),this.playerElement.remove(),e.appendChild(this.playerElement)}),m(this,`setupCastSender`,M(function*(){if(n.options.castEnabled){try{yield n.castSender.init()}catch(e){return}n.castSender.on(`connected`,()=>{n.state.fullscreen.isFullscreen()&&n.exitFullscreen(),n.core.pause(),n.castOverlay.setText(`Casting to ${n.castSender.getReceiverName()||`device`}`),n.castOverlay.show()}),n.castSender.on(`disconnected`,()=>{document.hidden||n.core.play(),n.castOverlay.hide()}),n.bar.addCastButton()}})),m(this,`setupAirPlaySender`,e=>{e.once(`available`,()=>{this.bar.addAirPlayButton()}),e.on(`connected`,()=>{this.core.mediaElement.style.display=`hidden`,this.core.pause()}),e.on(`disconnected`,()=>{this.core.mediaElement.style.display=`block`,document.hidden||this.core.play()})}),m(this,`onMouseMove`,()=>{this.options.controlsEnabled&&(this.bumpInteractTime(),this.bar.isHidden()&&this.bar.show())}),m(this,`onClick`,e=>{let t=e.detail===2&&(e.target instanceof HTMLVideoElement||e.target instanceof HTMLCanvasElement),n=this.options.fullscreenButtonEnabled!==!1&&this.options.controlsEnabled!==!1;t&&n&&this.toggleFullscreen().catch(e=>{console.error(`error`,e)})}),m(this,`togglePip`,()=>this.core.pictureInPicture.isActive()?this.core.pictureInPicture.exit():(this.triggerUserInput(),this.core.pictureInPicture.enter())),m(this,`toggleFullscreen`,M(function*(){return n.isInFullscreen()?n.exitFullscreen():n.enterFullscreen()})),m(this,`triggerUserInput`,()=>{if(this.browser.platform.isIOS){let e=this.core.muted;this.core.muted=!e,this.core.muted=e}}),m(this,`toggleOneToOne`,()=>{this.playerElement.classList.contains(dw)?this.playerElement.classList.remove(dw):this.playerElement.classList.add(dw)}),m(this,`isInFullscreen`,()=>this.state.fullscreen.isFullscreen()),m(this,`enterFullscreen`,M(function*(){n.triggerUserInput(),n.iosHackResetSize(),n.bar.fullscreenButton.setIcon(`exit`),yield n.state.fullscreen.request(),n.lockOrientation()})),m(this,`exitFullscreen`,()=>(this.bar.fullscreenButton.setIcon(`enter`),this.unlockOrientation(),this.state.fullscreen.exit())),m(this,`showAirPlayPicker`,()=>{var e;(e=this.airPlaySender)==null||e.showPlaybackTargetPicker()}),m(this,`lockOrientation`,()=>{let e=this.core.currentRenditionLevel;if(!(e!=null&&e.video))return;let t=Tt(e.video.width>e.video.height?`landscape-primary`:`portrait-primary`);t&&t.catch(()=>{})}),m(this,`unlockOrientation`,()=>{Et()}),m(this,`checkState`,()=>{this.bar.hasFocus()||this.state.lastInteractionTime&&this.state.lastInteractionTime<=Date.now()-this.options.hideTimeout&&this.core.media!==`audio`&&this.core.playbackState!==`paused`&&this.bar.hide()}),m(this,`needsThumbnails`,()=>{var e,t,n;return!((e=this.options.channelSelectionOptions)==null||(e=e.barButton)==null)&&e.enabled&&!((t=this.options.channelSelectionOptions)==null||(t=t.barButton)==null)&&t.thumbnails?!0:!!(!((n=this.options.channelSelectionOptions)==null||(n=n.list)==null)&&n.enabled)}),m(this,`bumpInteractTime`,()=>void(this.state.lastInteractionTime=Date.now()));let s=R(R({},pw),t);this.options=s,this.playerElement.className=uw,mw(e)?this.core=e:this.core=new Mx(e),this.state={isBuffering:!1,fullscreen:new JC(!JC.isFullscreenApiSupported(this.playerElement)&&JC.isFullscreenApiSupported(this.core.mediaElement)?this.core.mediaElement:this.playerElement),lastInteractionTime:0},this.needsThumbnails()&&(this.thumbnailModule=new ow({vindral:this.core,refreshEveryMs:t==null?void 0:t.thumbnailUpdateInterval}),this.thumbnailModule.start()),!((r=this.options.channelSelectionOptions)==null||(r=r.list)==null)&&r.enabled&&(this.channelSelectionList=new UC({vindral:this.core,thumbnailModule:this.thumbnailModule}));let c=(t==null?void 0:t.channelSelectionEnabled)||(t==null||(i=t.channelSelectionOptions)==null||(i=i.barButton)==null?void 0:i.enabled),l=t==null||(a=t.channelSelectionOptions)==null||(a=a.barButton)==null?void 0:a.thumbnails;this.bar=new uC(R(R({vindral:this.core,thumbnailModule:this.thumbnailModule},s),{},{channelSelectionEnabled:c,channelSelectionThumbnails:l,fullscreenButtonEnabled:this.core.media!==`audio`&&(t==null?void 0:t.fullscreenButtonEnabled)&&this.state.fullscreen.isSupported(),oneToOneButtonEnabled:this.core.media!==`audio`&&(t==null?void 0:t.oneToOneButtonEnabled),pipButtonEnabled:(t==null?void 0:t.pipButtonEnabled)&&this.core.pictureInPicture.isSupported(),onFullscreenClicked:()=>void this.toggleFullscreen().catch(e=>console.error(`error`,e)),onOneToOneClicked:()=>this.toggleOneToOne(),onPipClicked:()=>void this.togglePip().catch(e=>console.error(`error`,e)),onAirPlayClicked:()=>this.showAirPlayPicker()})),this.core.media===`audio`&&(this.playerElement.classList.add(fw),this.options.controlsEnabled&&this.bar.show());let u=this.core.getCastOptions();this.castSender=new sr({background:this.options.castBackground,receiverApplicationId:this.options.castReceiverApplicationId,options:u}),this.setupCastSender(),this.options.airPlayButtonEnabled&&or.isAirPlaySupported()&&(this.airPlaySender=new or({url:u.url,channelId:u.channelId,authenticationToken:u.authenticationToken,container:this.playerElement}),this.setupAirPlaySender(this.airPlaySender)),this.core.on(`needs user input`,e=>{if(this.bar.updateState(),e.forVideo&&this.core.media!==`audio`||!this.options.controlsEnabled){var t;(t=this.playOverlay)==null||t.show();return}e.forAudio&&this.options.controlsEnabled&&(this.state.lastInteractionTime=0,this.bar.show())}),this.core.on(`volume state`,()=>{this.bar.updateState()}),this.core.on(`playback state`,e=>{switch(this.bar.updateState(),e){case`paused`:var t;if(this.bumpInteractTime(),(t=this.bufferingOverlay)==null||t.hide(),this.options.controlsEnabled&&this.bar.show(),this.core.media!==`audio`||!this.options.controlsEnabled){var n;(n=this.playOverlay)==null||n.show()}break;case`playing`:var r;if(this.options.controlsEnabled){var i;(i=this.playOverlay)==null||i.hide()}(r=this.bufferingOverlay)==null||r.hide(),this.castOverlay.hide();break;case`buffering`:{var a,o;(a=this.bufferingOverlay)==null||a.show();let e=this.core.videoBufferedRanges[this.core.videoBufferedRanges.length-1],t=!e||e.start>this.core.currentTime;(o=this.bufferingOverlay)==null||o.fullscreen(t);break}}}),this.core.attach(this.playerElement),this.castOverlay.attach(this.playerElement),this.options.bufferingOverlayEnabled&&(this.bufferingOverlay=new ie,this.bufferingOverlay.attach(this.playerElement)),this.options.playOverlayEnabled&&(this.playOverlay=new aw,this.playOverlay.attach(this.playerElement),this.playOverlay.onClick=()=>{var e;this.core.userInput(),(e=this.playOverlay)==null||e.hide()}),this.channelSelectionList&&this.channelSelectionList.attach(this.playerElement),this.bar.attach(this.playerElement),this.playerElement.addEventListener(`click`,this.onClick),this.playerElement.addEventListener(`mousemove`,this.onMouseMove),this.state.fullscreen.on(`on fullscreen change`,e=>{e?this.bar.fullscreenButton.setIcon(`exit`):this.bar.fullscreenButton.setIcon(`enter`)}),(o=this.bufferingOverlay)==null||o.fullscreen(!0)}iosHackResetSize(){this.core.emitter.emit(`ios-hack: reset size`)}};e.AUTHENTICATION_EXPIRED_CODE=Hr,e.AUTHENTICATION_FAILED_CODE=Vr,e.ApiClient=jl,e.CHANNEL_NOT_FOUND_CODE=Ur,e.CONNECTION_FAILED_AFTER_RETRIES_CODE=Br,e.CONNECTION_FAILED_CODE=zr,e.CastSender=sr,e.DISCONNECTED_BY_EDGE=Yr,e.INACTIVITY_CODE=Gr,e.NO_INCOMING_DATA=Wr,e.Player=hw,e.Vindral=Mx,e.VindralError=H});