JiangShan-app/pages_player/static/js/jessibuca-pro.js
2025-05-22 16:23:08 +08:00

319 lines
919 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self)["jessibuca-pro"]=t()}(this,function(){"use strict";const _="fetch",M="websocket",U="worker",n="player",y="playbackTF",p="mp4",j="webm",N="flv",V="webTransport",H="nakedFlow",W={flv:"FLV",m7s:"m7s",hls:"HLS",webrtc:"Webrtc",webTransport:"WebTransport",nakedFlow:"裸流"},G="canvas",z="debug",K="warn",q="click",J={url:"",playbackConfig:{},fullscreenWatermarkConfig:{},playType:n,playbackForwardMaxRateDecodeIFrame:8,playOptions:{},isLive:!0,isMulti:!1,isCrypto:!1},Q={playType:n,container:"",videoBuffer:1e3,videoBufferDelay:1e3,networkDelay:1e4,isResize:!0,isFullResize:!1,isFlv:!1,isHls:!1,isWebrtc:!1,isWebrtcForZLM:!1,isNakedFlow:!1,debug:!1,debugLevel:K,debugUuid:"",isMulti:!1,hotKey:!1,loadingTimeout:10,heartTimeout:10,timeout:10,pageVisibilityHiddenTimeout:300,loadingTimeoutReplay:!0,heartTimeoutReplay:!0,loadingTimeoutReplayTimes:3,heartTimeoutReplayTimes:3,heartTimeoutReplayUseLastFrameShow:!1,supportDblclickFullscreen:!1,showBandwidth:!1,showPerformance:!1,keepScreenOn:!0,isNotMute:!1,hasAudio:!0,hasVideo:!0,operateBtns:{fullscreen:!1,screenshot:!1,play:!1,audio:!1,record:!1,ptz:!1,quality:!1,zoom:!1,close:!1,scale:!1,performance:!1,aiFace:!1,aiObject:!1,fullscreenFn:null,fullscreenExitFn:null,screenshotFn:null,playFn:null,pauseFn:null,recordFn:null,recordStopFn:null},extendOperateBtns:[],contextmenuBtns:[],watermarkConfig:{},controlAutoHide:!1,hasControl:!1,loadingIcon:!0,loadingText:"",background:"",loadingBackground:"",decoder:"decoder-pro.js",decoderWASM:"",url:"",rotate:0,mirrorRotate:"none",playbackConfig:{playList:[],fps:"",showControl:!0,showRateBtn:!1,rateConfig:[],isCacheBeforeDecodeForFpsRender:!1,uiUsePlaybackPause:!1,isPlaybackPauseClearCache:!0,isUseFpsRender:!1,isUseLocalCalculateTime:!1,localOneFrameTimestamp:40,supportWheel:!1},qualityConfig:[],defaultStreamQuality:"",scaleConfig:["拉伸","缩放","正常"],forceNoOffscreen:!0,hiddenAutoPause:!1,protocol:2,demuxType:N,useWasm:!1,useWCS:!1,useSIMD:!0,wcsUseVideoRender:!0,wasmUseVideoRender:!0,mseUseCanvasRender:!1,hlsUseCanvasRender:!1,useMSE:!1,useOffscreen:!1,autoWasm:!0,wasmDecodeErrorReplay:!0,openWebglAlignment:!1,syncAudioAndVideo:!1,playbackDelayTime:1e3,playbackFps:25,playbackForwardMaxRateDecodeIFrame:8,playbackCurrentTimeMove:!0,useVideoRender:!0,useCanvasRender:!1,networkDelayTimeoutReplay:!1,recordType:p,checkFirstIFrame:!0,nakedFlowFps:25,audioEngine:null,isShowRecordingUI:!0,isShowZoomingUI:!0,useFaceDetector:!1,useObjectDetector:!1,ptzClickType:q,weiXinInAndroidAudioBufferSize:4800,isCrypto:!1,cryptoKey:"",cryptoIV:"",cryptoKeyUrl:"",autoResize:!1,useWebFullScreen:!1,ptsMaxDiff:3600,aiFaceDetectWidth:192,aiObjectDetectWidth:192},X="init",Y="initVideo",Z="initAudio",$="audioCode",ee="videoCode",te="videoCodec",v={fullscreen:"fullscreen$2",webFullscreen:"webFullscreen",decoderWorkerInit:"decoderWorkerInit",play:"play",playing:"playing",pause:"pause",mute:"mute",load:"load",loading:"loading",zooming:"zooming",videoInfo:"videoInfo",timeUpdate:"timeUpdate",audioInfo:"audioInfo",log:"log",error:"error",kBps:"kBps",timeout:"timeout",delayTimeout:"delayTimeout",delayTimeoutRetryEnd:"delayTimeoutRetryEnd",loadingTimeout:"loadingTimeout",loadingTimeoutRetryEnd:"loadingTimeoutRetryEnd",stats:"stats",performance:"performance",faceDetectActive:"faceDetectActive",objectDetectActive:"objectDetectActive",record:"record",recording:"recording",recordingTimestamp:"recordingTimestamp",recordStart:"recordStart",recordEnd:"recordEnd",recordCreateError:"recordCreateError",recordBlob:"recordBlob",buffer:"buffer",videoFrame:"videoFrame",start:"start",metadata:"metadata",resize:"resize",volumechange:"volumechange",destroy:"destroy",beforeDestroy:"beforeDestroy",streamEnd:"streamEnd",streamRate:"streamRate",streamAbps:"streamAbps",streamVbps:"streamVbps",streamDts:"streamDts",streamSuccess:"streamSuccess",streamMessage:"streamMessage",streamError:"streamError",streamStats:"streamStats",mseSourceOpen:"mseSourceOpen",mseSourceClose:"mseSourceClose",mseSourceended:"mseSourceended",mseSourceBufferError:"mseSourceBufferError",mseSourceBufferBusy:"mseSourceBufferBusy",mseSourceBufferFull:"mseSourceBufferFull",videoWaiting:"videoWaiting",videoTimeUpdate:"videoTimeUpdate",videoSyncAudio:"videoSyncAudio",playToRenderTimes:"playToRenderTimes",playbackTime:"playbackTime",playbackTimestamp:"playbackTimestamp",playbackPrecision:"playbackPrecision",playbackJustTime:"playbackJustTime",playbackStats:"playbackStats",playbackSeek:"playbackSeek",playbackPause:"playbackPause",playbackPauseOrResume:"playbackPauseOrResume",playbackRateChange:"playbackRateChange",playbackPreRateChange:"playbackPreRateChange",ptz:"ptz",streamQualityChange:"streamQualityChange",visibilityChange:"visibilityChange",netBuf:"netBuf",close:"close",networkDelayTimeout:"networkDelayTimeout",togglePerformancePanel:"togglePerformancePanel",viewResizeChange:"viewResizeChange",flvDemuxBufferSizeTooLarge:"flvDemuxBufferSizeTooLarge",talkGetUserMediaSuccess:"talkGetUserMediaSuccess",talkGetUserMediaFail:"talkGetUserMediaFail",talkGetUserMediaTimeout:"talkGetUserMediaTimeout",talkStreamStart:"talkStreamStart",talkStreamOpen:"talkStreamOpen",talkStreamClose:"talkStreamClose",talkStreamError:"talkStreamError",talkStreamInactive:"talkStreamInactive",webrtcDisconnect:"webrtcDisconnect",webrtcFailed:"webrtcFailed",webrtcClosed:"webrtcClosed",crashLog:"crashLog",focus:"focus",blur:"blur",visibilityHiddenTimeout:"visibilityHiddenTimeout",websocketOpen:"websocketOpen",websocketClose:"websocketClose",websocketError:"websocketError",websocketMessage:"websocketMessage",aiObjectDetectorInfo:"aiObjectDetectorInfo",aiFaceDetector:"aiFaceDetector"},ie={load:v.load,timeUpdate:v.timeUpdate,videoInfo:v.videoInfo,audioInfo:v.audioInfo,error:v.error,kBps:v.kBps,start:v.start,timeout:v.timeout,loadingTimeout:v.loadingTimeout,loadingTimeoutRetryEnd:v.loadingTimeoutRetryEnd,delayTimeout:v.delayTimeout,delayTimeoutRetryEnd:v.delayTimeoutRetryEnd,fullscreen:"fullscreen",webFullscreen:v.webFullscreen,play:v.play,pause:v.pause,mute:v.mute,stats:v.stats,performance:v.performance,recordingTimestamp:v.recordingTimestamp,recordStart:v.recordStart,recordEnd:v.recordEnd,recordBlob:v.recordBlob,playToRenderTimes:v.playToRenderTimes,playbackSeek:v.playbackSeek,playbackStats:v.playbackStats,playbackTimestamp:v.playbackTimestamp,playbackPauseOrResume:v.playbackPauseOrResume,playbackPreRateChange:v.playbackPreRateChange,playbackRateChange:v.playbackRateChange,ptz:v.ptz,streamQualityChange:v.streamQualityChange,zooming:v.zooming,crashLog:v.crashLog,focus:v.focus,blur:v.blur,visibilityHiddenTimeout:v.visibilityHiddenTimeout,visibilityChange:v.visibilityChange,websocketOpen:v.websocketOpen,networkDelayTimeout:v.networkDelayTimeout,aiObjectDetectorInfo:v.aiObjectDetectorInfo},re={talkStreamClose:v.talkStreamClose,talkStreamError:v.talkStreamError,talkStreamInactive:v.talkStreamInactive,talkGetUserMediaTimeout:v.talkGetUserMediaTimeout},A={playError:"playIsNotPauseOrUrlIsNull",fetchError:"fetchError",websocketError:"websocketError",webcodecsH265NotSupport:"webcodecsH265NotSupport",webcodecsDecodeError:"webcodecsDecodeError",mediaSourceH265NotSupport:"mediaSourceH265NotSupport",mediaSourceDecoderConfigurationError:"mediaSourceDecoderConfigurationError",mediaSourceFull:v.mseSourceBufferFull,mseSourceBufferError:v.mseSourceBufferError,mediaSourceAppendBufferError:"mediaSourceAppendBufferError",mediaSourceBufferListLarge:"mediaSourceBufferListLarge",mediaSourceAppendBufferEndTimeout:"mediaSourceAppendBufferEndTimeout",wasmDecodeError:"wasmDecodeError",hlsError:"hlsError",webrtcError:"webrtcError",webglAlignmentError:"webglAlignmentError",webcodecsWidthOrHeightChange:"webcodecsWidthOrHeightChange",tallWebsocketClosedByError:"tallWebsocketClosedByError",flvDemuxBufferSizeTooLarge:v.flvDemuxBufferSizeTooLarge,wasmDecodeVideoNoResponseError:"wasmDecodeVideoNoResponseError",audioChannelError:"audioChannelError",simdH264DecodeVideoWidthIsTooLarge:"simdH264DecodeVideoWidthIsTooLarge"},se="notConnect",ae="open",o={download:"download",base64:"base64",blob:"blob"},ne="download",oe={7:"H264(AVC)",12:"H265(HEVC)"},le="H264(AVC)",ce="H265(HEVC)",ue={AAC:"AAC",ALAW:"ALAW(g711a)",MULAW:"MULAW(g711u)"},de={10:"AAC",7:"ALAW",8:"MULAW"},he=6,pe="webcodecs",fe="webgl",Ae="offscreen",me="mse",ge='video/mp4; codecs="avc1.64002A"',ye='video/mp4; codecs="hev1.1.6.L123.b0"',ve="oneHour",be="halfHour",Ee="fiveMin",Se={oneHour:"one-hour",halfHour:"half-hour",tenMin:"ten-min",fiveMin:"five-min"},Te=["oneHour","halfHour","tenMin","fiveMin"],we=["up","right","down","left"],ke="g711a",Ce="g711u",l={png:"image/png",jpeg:"image/jpeg",webp:"image/webp"},Re="waiting",De="timeupdate",Le="ratechange",Ie="The user aborted a request",Be="AbortError",xe="AbortError",Pe="worklet",Fe={encType:ke,packetType:"rtp",rtpSsrc:"0000000000",numberChannels:1,sampleRate:8e3,sampleBitsWidth:16,debug:!1,debugLevel:K,testMicrophone:!1,audioBufferLength:160,engine:Pe,checkGetUserMediaTimeout:!1,getUserMediaTimeout:1e4},Oe="worklet",_e="script",Me="active",Ue={name:"",index:0,icon:"",iconHover:"",iconTitle:"",activeIcon:"",activeIconHover:"",activeIconTitle:"",click:null,activeClick:null},je={content:"",click:null,index:0};class Ne{constructor(a){this.log=function(e){if(a._opt.debug&&a._opt.debugLevel==z){for(var t=a._opt.debugUuid?`[${a._opt.debugUuid}]`:"",i=arguments.length,r=new Array(1<i?i-1:0),s=1;s<i;s++)r[s-1]=arguments[s];console.log(`JessibucaPro${t}:[✅✅✅][${e}]`,...r)}},this.warn=function(e){if(a._opt.debug&&(a._opt.debugLevel==z||a._opt.debugLevel==K)){for(var t=a._opt.debugUuid?`[${a._opt.debugUuid}]`:"",i=arguments.length,r=new Array(1<i?i-1:0),s=1;s<i;s++)r[s-1]=arguments[s];console.log(`JessibucaPro${t}:[❗❗❗][${e}]`,...r)}},this.error=function(e){for(var t=a._opt.debugUuid?`[${a._opt.debugUuid}]`:"",i=arguments.length,r=new Array(1<i?i-1:0),s=1;s<i;s++)r[s-1]=arguments[s];console.error(`JessibucaPro${t}:[❌❌❌][${e}]`,...r)}}}class Ve{constructor(e){this.destroys=[],this.proxy=this.proxy.bind(this),this.master=e}proxy(t,e,i){let r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:{};if(t){if(Array.isArray(e))return e.map(e=>this.proxy(t,e,i,r));t.addEventListener(e,i,r);var s=()=>t.removeEventListener(e,i,r);return this.destroys.push(s),s}}destroy(){this.master.debug&&this.master.debug.log("Events","destroy"),this.destroys.forEach(e=>e())}}var F="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function He(e,t){return e(t={exports:{}},t.exports),t.exports}var f=He(function(e){var n,t,o,i,r;n="undefined"!=typeof window&&void 0!==window.document?window.document:{},t=e.exports,o=function(){for(var e,t=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],i=0,r=t.length,s={};i<r;i++)if((e=t[i])&&e[1]in n){for(i=0;i<e.length;i++)s[t[0][i]]=e[i];return s}return!1}(),i={change:o.fullscreenchange,error:o.fullscreenerror},r={request:function(s,a){return new Promise(function(e,t){var i=function(){this.off("change",i),e()}.bind(this),r=(this.on("change",i),(s=s||n.documentElement)[o.requestFullscreen](a));r instanceof Promise&&r.then(i).catch(t)}.bind(this))},exit:function(){return new Promise(function(e,t){var i,r;this.isFullscreen?(i=function(){this.off("change",i),e()}.bind(this),this.on("change",i),(r=n[o.exitFullscreen]())instanceof Promise&&r.then(i).catch(t)):e()}.bind(this))},toggle:function(e,t){return this.isFullscreen?this.exit():this.request(e,t)},onchange:function(e){this.on("change",e)},onerror:function(e){this.on("error",e)},on:function(e,t){e=i[e];e&&n.addEventListener(e,t,!1)},off:function(e,t){e=i[e];e&&n.removeEventListener(e,t,!1)},raw:o},o?(Object.defineProperties(r,{isFullscreen:{get:function(){return Boolean(n[o.fullscreenElement])}},element:{enumerable:!0,get:function(){return n[o.fullscreenElement]}},isEnabled:{enumerable:!0,get:function(){return Boolean(n[o.fullscreenEnabled])}}}),t?e.exports=r:window.screenfull=r):t?e.exports={isEnabled:!1}:window.screenfull={isEnabled:!1}});function We(e){return e[0]>>4==10&&0===e[1]}function Ge(){}function ze(e){var e=(0<arguments.length&&void 0!==e?e:"").split(","),t=atob(e[1]),e=e[0].replace("data:","").replace(";base64","");let i=t.length,r=new Uint8Array(i);for(;i--;)r[i]=t.charCodeAt(i);return new File([r],"file",{type:e})}function m(){return(new Date).getTime()}function b(e,t,i){return Math.max(Math.min(e,Math.max(t,i)),Math.min(t,i))}function E(t,i,e){t&&("object"==typeof i&&Object.keys(i).forEach(e=>{E(t,e,i[e])}),t.style[i]=e)}function Ke(e,t,i){i=!(2<arguments.length&&void 0!==i)||i;return e?(e=getComputedStyle(e,null).getPropertyValue(t),i?parseFloat(e):e):0}function qe(){return(performance&&"function"==typeof performance.now?performance:Date).now()}function Je(i){let r=0,s=qe();return e=>{var t;u(e)&&(r+=e,1e3<=(t=(e=qe())-s))&&(i(r/t*1e3),s=e,r=0)}}f.isEnabled;try{if("object"==typeof WebAssembly&&"function"==typeof WebAssembly.instantiate){var e=new WebAssembly.Module(Uint8Array.of(0,97,115,109,1,0,0,0));if(e instanceof WebAssembly.Module)new WebAssembly.Instance(e)instanceof WebAssembly.Instance}}catch(e){}function S(){return/iphone|ipod|android.*mobile|windows.*phone|blackberry.*mobile/i.test(window.navigator.userAgent.toLowerCase())}function Qe(){const t=window.navigator.userAgent.toLowerCase()||"",i={type:"",version:""},e={IE:window.ActiveXObject||"ActiveXObject"in window,Chrome:-1<t.indexOf("chrome")&&-1<t.indexOf("safari"),Firefox:-1<t.indexOf("firefox"),Opera:-1<t.indexOf("opera"),Safari:-1<t.indexOf("safari")&&-1==t.indexOf("chrome"),Edge:-1<t.indexOf("edge"),QQBrowser:/qqbrowser/.test(t),WeixinBrowser:/MicroMessenger/i.test(t)};for(var r in e)if(e[r]){let e="";if("IE"===r){const i=t.match(/(msie\s|trident.*rv:)([\w.]+)/);i&&2<i.length&&(e=t.match(/(msie\s|trident.*rv:)([\w.]+)/)[2])}else if("Chrome"===r){for(var s in navigator.mimeTypes)"application/360softmgrplugin"===navigator.mimeTypes[s].type&&(r="360");const i=t.match(/chrome\/([\d.]+)/);i&&1<i.length&&(e=i[1])}else if("Firefox"===r){const i=t.match(/firefox\/([\d.]+)/);i&&1<i.length&&(e=i[1])}else if("Opera"===r){const i=t.match(/opera\/([\d.]+)/);i&&1<i.length&&(e=i[1])}else if("Safari"===r){const i=t.match(/version\/([\d.]+)/);i&&1<i.length&&(e=i[1])}else if("Edge"===r){const i=t.match(/edge\/([\d.]+)/);i&&1<i.length&&(e=i[1])}else if("QQBrowser"===r){const i=t.match(/qqbrowser\/([\d.]+)/);i&&1<i.length&&(e=i[1])}i.type=r,i.version=parseInt(e)}return i}function Xe(){var e=window.navigator.userAgent;return!e.match(/Chrome/gi)&&e.match(/Safari/gi)}function Ye(e,t){var r;return 0===arguments.length?null:(t=t||"{y}-{m}-{d} {h}:{i}:{s}",e="object"==typeof e?e:(e=+(e=10===(""+e).length?1e3*parseInt(e):e),new Date(e)),r={y:e.getFullYear(),m:e.getMonth()+1,d:e.getDate(),h:e.getHours(),i:e.getMinutes(),s:e.getSeconds(),a:e.getDay()},t.replace(/{(y|m|d|h|i|s|a)+}/g,(e,t)=>{var i=r[t];return"a"===t?["一","二","三","四","五","六","日"][i-1]:(i=0<e.length&&i<10?"0"+i:i)||0}))}function Ze(){return"VideoFrame"in window}function T(e){var t;return"string"!=typeof e||(t=Number(e),isNaN(t))?e:t}function $e(){return"xxxxxxxxxxxx4xxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)})}function et(s,a){let n,o,l=!1;return function e(){for(var t=arguments.length,i=new Array(t),r=0;r<t;r++)i[r]=arguments[r];l?(n=i,o=this):(l=!0,s.apply(this,i),setTimeout(()=>{l=!1,n&&(e.apply(o,n),n=null,o=null)},a))}}function u(e){return"[object Number]"===Object.prototype.toString.call(e)}function tt(){return window.MediaStreamTrackGenerator&&"function"==typeof window.MediaStreamTrackGenerator}function it(e){return null==e}function rt(e){return!0===e||!1===e}function c(e){return!it(e)}function st(e){var t={container:"",left:"",right:"",top:"",bottom:"",opacity:1,image:{src:"",width:"100",height:"60"},text:{content:"",fontSize:"14",color:"#000"}},i=Object.assign(t.image,e.image||{}),r=Object.assign(t.text,e.text||{});return Object.assign(t,e,{image:i,text:r})}function at(e,t){e={container:e||"",text:"",opacity:"",angle:"",color:"",fontSize:"",fontFamily:""};return{watermark_parent_node:(e=Object.assign(e,t)).container,watermark_alpha:e.opacity,watermark_angle:e.angle,watermark_fontsize:e.fontSize,watermark_color:e.color,watermark_font:e.fontFamily,watermark_txt:e.text}}function nt(e,c){return new Promise((t,i)=>{let r=st(c);if(!r.image.src&&!r.text.content)return t(e);let s=document.createElement("canvas"),a=(s.width=c.width,s.height=c.height,s.getContext("2d")),n=0,o=0;u(r.left)?n=r.left:u(r.right)&&(n=s.width-r.right),u(r.top)?o=r.top:u(r.bottom)&&(o=s.height-r.bottom);const l=new Image;l.src=e,l.onload=()=>{if(a.drawImage(l,0,0),r.image&&r.image.src){const e=new Image;e.src=r.image.src,e.setAttribute("crossOrigin","Anonymous"),e.onload=()=>{n-=r.image.width,a.drawImage(e,n,o,r.image.width,r.image.height),t(s.toDataURL(c.format,c.quality))},e.onerror=e=>{i()}}else r.text&&r.text.content&&(a.font=r.text.fontSize+"px 宋体",a.fillStyle=r.text.color,a.textAlign="right",a.fillText(r.text.content,n,o),t(s.toDataURL(c.format,c.quality)))},l.onerror=e=>{i(e)}})}function ot(e){var t,i;return-1<e&&(t=e%60,i=(i=Math.floor(e/3600))<10?"0"+i+":":i+":",(e=Math.floor(e/60)%60)<10&&(i+="0"),i+=e+":",(t=Math.round(t))<10&&(i+="0"),i+=t.toFixed(0)),i}function lt(e){let t="";var i,r;return-1<e&&(i=Math.floor(e/60/60)%60,r=Math.floor(e/60)%60,e=e%60,r=Math.round(r),t=i<10?"0"+i+":":i+":",r<10&&(t+="0"),t+=r+":",e<10&&(t+="0"),t+=e),t}function ct(e,t){var i=Math.floor(t/60/60)%60,r=Math.floor(t/60)%60,t=t%60;return new Date(e).setHours(i,r,t,0)}function ut(e){return(""+e).length}function dt(e){return!e||0!==Object.keys(e).length}function ht(e){return"string"==typeof e}const pt=()=>{return e=window.navigator.userAgent,/MicroMessenger/i.test(e)&&(e=window.navigator.userAgent.toLowerCase(),/android/i.test(e));var e};function w(e){e=e||window.event;return e.target||e.srcElement}function k(e){return"function"==typeof e}function ft(e){let t=0,i=0;var r=e||window.event;return r.pageX||r.pageY?(t=r.pageX,i=r.pageY):(r.clientX||r.clientY)&&(t=e.clientX+document.documentElement.scrollLeft+document.body.scrollLeft,i=e.clientY+document.documentElement.scrollTop+document.body.scrollTop),{posX:t,posY:i}}function At(e){return!1===e.hasAudio&&(e.useMSE||e.useWCS&&!e.useOffscreen)}function mt(e){e=e.toString().trim().match(/^function\s*\w*\s*\([\w\s,]*\)\s*{([\w\W]*?)}$/)[1],e=new Blob([e],{type:"application/javascript"});return URL.createObjectURL(e)}function gt(e){e.close?e.close():e.destroy&&e.destroy()}function yt(){return"https:"===window.location.protocol||"localhost"===window.location.hostname}function vt(e){for(var e=(e+"=".repeat((4-e.length%4)%4)).replace(/\-/g,"+").replace(/_/g,"/"),t=window.atob(e),i=new Uint8Array(t.length),r=0;r<t.length;++r)i[r]=t.charCodeAt(r);return i}function bt(t){let i="";if("object"==typeof t)try{i=JSON.stringify(t),i=JSON.parse(i)}catch(e){i=t}else i=t;return i}function Et(){return bt(J)}function St(){return bt(Q)}class t{on(e,t,i){var r=this.e||(this.e={});return(r[e]||(r[e]=[])).push({fn:t,ctx:i}),this}once(r,s,a){const n=this;function o(){n.off(r,o);for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];s.apply(a,t)}return o._=s,this.on(r,o,a)}emit(e){for(var t=((this.e||(this.e={}))[e]||[]).slice(),i=arguments.length,r=new Array(1<i?i-1:0),s=1;s<i;s++)r[s-1]=arguments[s];for(let e=0;e<t.length;e+=1)t[e].fn.apply(t[e].ctx,r);return this}off(e,i){const t=this.e||(this.e={});if(e){var r=t[e],s=[];if(r&&i)for(let e=0,t=r.length;e<t;e+=1)r[e].fn!==i&&r[e].fn._!==i&&s.push(r[e]);return s.length?t[e]=s:delete t[e],this}Object.keys(t).forEach(e=>{delete t[e]}),delete this.e}}var Tt="undefined"!=typeof Float32Array?Float32Array:Array;function wt(){var e=new Tt(16);return Tt!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e}function kt(e){e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1}Math.hypot||(Math.hypot=function(){for(var e=0,t=arguments.length;t--;)e+=arguments[t]*arguments[t];return Math.sqrt(e)});function Ct(e,t,i){var r=new Tt(3);return r[0]=e,r[1]=t,r[2]=i,r}e=new Tt(3),Tt!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0);var Rt=(g,e)=>{e&&g.pixelStorei(g.UNPACK_ALIGNMENT,1);e=n(g.VERTEX_SHADER,"\n attribute vec4 aVertexPosition;\n attribute vec2 aTexturePosition;\n uniform mat4 uModelMatrix;\n uniform mat4 uViewMatrix;\n uniform mat4 uProjectionMatrix;\n varying lowp vec2 vTexturePosition;\n void main(void) {\n gl_Position = uProjectionMatrix * uViewMatrix * uModelMatrix * aVertexPosition;\n vTexturePosition = aTexturePosition;\n }\n "),r=n(g.FRAGMENT_SHADER,"\n precision highp float;\n varying highp vec2 vTexturePosition;\n uniform int isyuv;\n uniform sampler2D rgbaTexture;\n uniform sampler2D yTexture;\n uniform sampler2D uTexture;\n uniform sampler2D vTexture;\n\n const mat4 YUV2RGB = mat4( 1.1643828125, 0, 1.59602734375, -.87078515625,\n 1.1643828125, -.39176171875, -.81296875, .52959375,\n 1.1643828125, 2.017234375, 0, -1.081390625,\n 0, 0, 0, 1);\n\n\n void main(void) {\n\n if (isyuv>0) {\n\n highp float y = texture2D(yTexture, vTexturePosition).r;\n highp float u = texture2D(uTexture, vTexturePosition).r;\n highp float v = texture2D(vTexture, vTexturePosition).r;\n gl_FragColor = vec4(y, u, v, 1) * YUV2RGB;\n\n } else {\n gl_FragColor = texture2D(rgbaTexture, vTexturePosition);\n }\n }\n "),s=g.createProgram(),g.attachShader(s,e),g.attachShader(s,r),g.linkProgram(s);const t=g.getProgramParameter(s,g.LINK_STATUS)?s:(console.log("Unable to initialize the shader program: "+g.getProgramInfoLog(s)),null),y={program:t,attribLocations:{vertexPosition:g.getAttribLocation(t,"aVertexPosition"),texturePosition:g.getAttribLocation(t,"aTexturePosition")},uniformLocations:{projectionMatrix:g.getUniformLocation(t,"uProjectionMatrix"),modelMatrix:g.getUniformLocation(t,"uModelMatrix"),viewMatrix:g.getUniformLocation(t,"uViewMatrix"),rgbatexture:g.getUniformLocation(t,"rgbaTexture"),ytexture:g.getUniformLocation(t,"yTexture"),utexture:g.getUniformLocation(t,"uTexture"),vtexture:g.getUniformLocation(t,"vTexture"),isyuv:g.getUniformLocation(t,"isyuv")}},v=(e=g.createBuffer(),g.bindBuffer(g.ARRAY_BUFFER,e),g.bufferData(g.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,-1,-1,1,1,-1,-1,1,-1]),g.STATIC_DRAW),r=(r=[]).concat([0,1],[1,1],[1,0],[0,0]),s=g.createBuffer(),g.bindBuffer(g.ARRAY_BUFFER,s),g.bufferData(g.ARRAY_BUFFER,new Float32Array(r),g.STATIC_DRAW),r=g.createBuffer(),g.bindBuffer(g.ELEMENT_ARRAY_BUFFER,r),g.bufferData(g.ELEMENT_ARRAY_BUFFER,new Uint16Array([0,1,2,0,2,3]),g.STATIC_DRAW),{position:e,texPosition:s,indices:r}),i=a(),b=a(),E=a(),S=a();var r,s;function a(){var e=g.createTexture();return g.bindTexture(g.TEXTURE_2D,e),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_MAG_FILTER,g.LINEAR),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_MIN_FILTER,g.LINEAR),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_WRAP_S,g.CLAMP_TO_EDGE),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_WRAP_T,g.CLAMP_TO_EDGE),e}function n(e,t){e=g.createShader(e);return g.shaderSource(e,t),g.compileShader(e),g.getShaderParameter(e,g.COMPILE_STATUS)?e:(console.log("An error occurred compiling the shaders: "+g.getShaderInfoLog(e)),g.deleteShader(e),null)}function o(e,t){g.viewport(0,0,e,t),g.clearColor(0,0,0,0),g.clearDepth(1),g.enable(g.DEPTH_TEST),g.depthFunc(g.LEQUAL),g.clear(g.COLOR_BUFFER_BIT|g.DEPTH_BUFFER_BIT);const i=wt();e=i,r=(s=t=1)/((m=-1)-t),n=1/((a=-1)-s),p=1/((h=.1)-(d=100)),e[0]=-2*r,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*n,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*p,e[11]=0,e[12]=(m+t)*r,e[13]=(s+a)*n,e[14]=(d+h)*p,e[15]=1;var r,s,a,n,o,l,c,u,d,h,p,f,A,m=wt(),t=(kt(m),wt());r=t,s=Ct(0,0,0),a=Ct(0,0,-1),n=Ct(0,1,0),d=s[0],h=s[1],s=s[2],p=n[0],e=n[1],n=n[2],f=a[0],A=a[1],a=a[2],Math.abs(d-f)<1e-6&&Math.abs(h-A)<1e-6&&Math.abs(s-a)<1e-6?kt(r):(f=d-f,A=h-A,a=s-a,o=e*(a*=u=1/Math.hypot(f,A,a))-n*(A*=u),n=n*(f*=u)-p*a,p=p*A-e*f,(u=Math.hypot(o,n,p))?(o*=u=1/u,n*=u,p*=u):p=n=o=0,e=A*p-a*n,l=a*o-f*p,c=f*n-A*o,(u=Math.hypot(e,l,c))?(e*=u=1/u,l*=u,c*=u):c=l=e=0,r[0]=o,r[1]=e,r[2]=f,r[3]=0,r[4]=n,r[5]=l,r[6]=A,r[7]=0,r[8]=p,r[9]=c,r[10]=a,r[11]=0,r[12]=-(o*d+n*h+p*s),r[13]=-(e*d+l*h+c*s),r[14]=-(f*d+A*h+a*s),r[15]=1);{const e=3,t=g.FLOAT,i=!1,b=0,E=0;g.bindBuffer(g.ARRAY_BUFFER,v.position),g.vertexAttribPointer(y.attribLocations.vertexPosition,3,t,!1,0,0),g.enableVertexAttribArray(y.attribLocations.vertexPosition)}{const e=2,t=g.FLOAT,i=!1,b=0,E=0;g.bindBuffer(g.ARRAY_BUFFER,v.texPosition),g.vertexAttribPointer(y.attribLocations.texturePosition,2,t,!1,0,0),g.enableVertexAttribArray(y.attribLocations.texturePosition)}g.activeTexture(g.TEXTURE0+3),g.bindTexture(g.TEXTURE_2D,b),g.activeTexture(g.TEXTURE0+4),g.bindTexture(g.TEXTURE_2D,E),g.activeTexture(g.TEXTURE0+5),g.bindTexture(g.TEXTURE_2D,S),g.bindBuffer(g.ELEMENT_ARRAY_BUFFER,v.indices),g.useProgram(y.program),g.uniformMatrix4fv(y.uniformLocations.projectionMatrix,!1,i),g.uniformMatrix4fv(y.uniformLocations.modelMatrix,!1,m),g.uniformMatrix4fv(y.uniformLocations.viewMatrix,!1,t),g.uniform1i(y.uniformLocations.rgbatexture,2),g.uniform1i(y.uniformLocations.ytexture,3),g.uniform1i(y.uniformLocations.utexture,4),g.uniform1i(y.uniformLocations.vtexture,5),g.uniform1i(y.uniformLocations.isyuv,1);{const e=6,t=g.UNSIGNED_SHORT,y=0;g.drawElements(g.TRIANGLES,6,t,0)}}return{render:function(e,t,i,r,s){g.activeTexture(g.TEXTURE0),g.bindTexture(g.TEXTURE_2D,b),g.texImage2D(g.TEXTURE_2D,0,g.LUMINANCE,e,t,0,g.LUMINANCE,g.UNSIGNED_BYTE,i),g.activeTexture(g.TEXTURE1),g.bindTexture(g.TEXTURE_2D,E),g.texImage2D(g.TEXTURE_2D,0,g.LUMINANCE,e/2,t/2,0,g.LUMINANCE,g.UNSIGNED_BYTE,r),g.activeTexture(g.TEXTURE2),g.bindTexture(g.TEXTURE_2D,S),g.texImage2D(g.TEXTURE_2D,0,g.LUMINANCE,e/2,t/2,0,g.LUMINANCE,g.UNSIGNED_BYTE,s),o(e,t)},renderYUV:function(e,t,i){var r=i.slice(0,e*t),s=i.slice(e*t,e*t*5/4),i=i.slice(e*t*5/4,e*t*3/2);g.activeTexture(g.TEXTURE0),g.bindTexture(g.TEXTURE_2D,b),g.texImage2D(g.TEXTURE_2D,0,g.LUMINANCE,e,t,0,g.LUMINANCE,g.UNSIGNED_BYTE,r),g.activeTexture(g.TEXTURE1),g.bindTexture(g.TEXTURE_2D,E),g.texImage2D(g.TEXTURE_2D,0,g.LUMINANCE,e/2,t/2,0,g.LUMINANCE,g.UNSIGNED_BYTE,s),g.activeTexture(g.TEXTURE2),g.bindTexture(g.TEXTURE_2D,S),g.texImage2D(g.TEXTURE_2D,0,g.LUMINANCE,e/2,t/2,0,g.LUMINANCE,g.UNSIGNED_BYTE,i),o(e,t)},destroy:function(){g.deleteProgram(y.program),g.deleteBuffer(v.position),g.deleteBuffer(v.texPosition),g.deleteBuffer(v.indices),g.deleteTexture(i),g.deleteTexture(b),g.deleteTexture(E),g.deleteTexture(S)}}};class Dt extends t{constructor(){super(),this.videoInfo={width:null,height:null,encType:null},this.init=!1}resetInit(){this.videoInfo={width:null,height:null,encType:null},this.init=!1}destroy(){this.resetInit()}updateVideoInfo(e){c(e.encTypeCode)&&(this.videoInfo.encType=oe[e.encTypeCode]),c(e.encType)&&(this.videoInfo.encType=e.encType),c(e.width)&&(this.videoInfo.width=e.width),c(e.height)&&(this.videoInfo.height=e.height),c(this.videoInfo.encType)&&c(this.videoInfo.height)&&c(this.videoInfo.width)&&!this.init&&(this.player.emit(v.videoInfo,this.videoInfo),this.init=!0)}clearView(){}play(){}pause(){}getType(){return""}isPlaying(){return!0}addContentToCanvas(){}}var d="object"==typeof window&&window.window===window?window:"object"==typeof self&&self.self===self?self:"object"==typeof global&&global.global===global?global:void 0;function Lt(e,t,i){var r=new XMLHttpRequest;r.open("GET",e),r.responseType="blob",r.onload=function(){Pt(r.response,t,i)},r.onerror=function(){console.error("could not download file")},r.send()}function It(e){var t=new XMLHttpRequest;t.open("HEAD",e,!1);try{t.send()}catch(e){}return 200<=t.status&&t.status<=299}function Bt(t){try{t.dispatchEvent(new MouseEvent("click"))}catch(e){var i=document.createEvent("MouseEvents");i.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),t.dispatchEvent(i)}}var xt=d.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),Pt="object"!=typeof window||window!==d?function(){}:"download"in HTMLAnchorElement.prototype&&!xt?function(e,t,i){var r=d.URL||d.webkitURL,s=document.createElementNS("http://www.w3.org/1999/xhtml","a");t=t||e.name||"download",s.download=t,s.rel="noopener","string"==typeof e?(s.href=e,s.origin!==location.origin?It(s.href)?Lt(e,t,i):Bt(s,s.target="_blank"):Bt(s)):(s.href=r.createObjectURL(e),setTimeout(function(){r.revokeObjectURL(s.href)},4e4),setTimeout(function(){Bt(s)},0))}:"msSaveOrOpenBlob"in navigator?function(e,t,i){var r;t=t||e.name||"download","string"==typeof e?It(e)?Lt(e,t,i):((r=document.createElement("a")).href=e,r.target="_blank",setTimeout(function(){Bt(r)})):navigator.msSaveOrOpenBlob((e=e,void 0===(i=i)?i={autoBom:!1}:"object"!=typeof i&&(console.warn("Deprecated: Expected third argument to be a object"),i={autoBom:!i}),i.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([String.fromCharCode(65279),e],{type:e.type}):e),t)}:function(e,t,i,r){if((r=r||open("","_blank"))&&(r.document.title=r.document.body.innerText="downloading..."),"string"==typeof e)return Lt(e,t,i);var s,a,n,t="application/octet-stream"===e.type,i=/constructor/i.test(d.HTMLElement)||d.safari,o=/CriOS\/[\d]+/.test(navigator.userAgent);(o||t&&i||xt)&&"undefined"!=typeof FileReader?((s=new FileReader).onloadend=function(){var e=s.result,e=o?e:e.replace(/^data:[^;]*;/,"data:attachment/file;");r?r.location.href=e:location=e,r=null},s.readAsDataURL(e)):(a=d.URL||d.webkitURL,n=a.createObjectURL(e),r?r.location=n:location.href=n,r=null,setTimeout(function(){a.revokeObjectURL(n)},4e4))};class Ft extends Dt{constructor(e){super(),this.player=e;var t=document.createElement("canvas");t.style.position="absolute",t.style.top=0,t.style.left=0,this.$videoElement=t,e.$container.appendChild(this.$videoElement),this.context2D=null,this.contextGl=null,this.contextGlRender=null,this.contextGlDestroy=null,this.bitmaprenderer=null,this.renderType=null,this.controlHeight=0,this._initCanvasRender()}destroy(){super.destroy(),this.contextGl&&(this.contextGl=null),this.context2D&&(this.context2D=null),this.contextGlRender&&(this.contextGlDestroy&&this.contextGlDestroy(),this.contextGlDestroy=null,this.contextGlRender=null),this.bitmaprenderer&&(this.bitmaprenderer=null),this.renderType=null,this.videoInfo={width:"",height:"",encType:"",encTypeCode:""},this.player.$container.removeChild(this.$videoElement),this.init=!1,this.off()}_initContextGl(){var e;this.contextGl=function(e){let t=null;var i=["webgl","experimental-webgl","moz-webgl","webkit-3d"];let r=0;for(;!t&&r<i.length;){var s=i[r];try{var a={preserveDrawingBuffer:!0};t=e.getContext(s,a)}catch(e){console.error(e),t=null}t&&"function"==typeof t.getParameter||(t=null),++r}return t}(this.$videoElement),this.contextGl?(e=Rt(this.contextGl,this.player._opt.openWebglAlignment),this.contextGlRender=e.renderYUV,this.contextGlDestroy=e.destroy):this.player.debug.error("canvasVideo","_initContextGl() createContextGL error")}initCanvasViewSize(){this.$videoElement.width=this.videoInfo.width,this.$videoElement.height=this.videoInfo.height,this.resize()}screenshot(e,t,i,r){e=e||m(),r=r||o.download;let s=.92;!l[t]&&o[t]&&(r=t,t="png",i=void 0),"string"==typeof i&&(r=i,i=void 0),void 0!==i&&(s=Number(i));var a=l[t]||l.png,i=this.$videoElement.toDataURL(a,s);if(r===o.base64)return i;{const t=ze(i);if(r===o.blob)return t;if(r===o.download){const i=a.split("/")[1];Pt(t,e+"."+i)}}}screenshotWatermark(s){return new Promise((t,i)=>{(s=(s=ht(s)?{filename:s}:s)||{}).width=this.videoInfo.width,s.height=this.videoInfo.height,s.filename=s.filename||m(),s.format=s.format?l[s.format]:l.png,s.quality=Number(s.quality)||.92,s.type=s.type||o.download;const r=this.$videoElement.toDataURL(s.format,s.quality);nt(r,s).then(e=>{if(s.type===o.base64)t(r);else{const r=ze(e);if(s.type===o.blob)t(r);else if(s.type===o.download){t();const e=s.format.split("/")[1];Pt(r,s.filename+"."+e)}}}).catch(e=>{i(e)})})}render(){}clearView(){}play(){}pause(){}resize(){this.player.debug.log("canvasVideo","resize");var e=this.player._opt;let t=this.player.width,i=this.player.height;if(e.hasControl&&!e.controlAutoHide){const r=this.controlHeight;S()&&this.player.fullscreen&&e.useWebFullScreen?t-=r:i-=r}let r=this.$videoElement.width,s=this.$videoElement.height;var a=e.rotate,n=(t-r)/2,o=(i-s)/2,l=(270!==a&&90!==a||(r=this.$videoElement.height,s=this.$videoElement.width),t/r),c=i/s;let u=c<l?c:l,d=(e.isResize||l!=c&&(u=l+","+c),"scale("+(u=e.isFullResize?c<l?l:c:u)+")");"none"===e.mirrorRotate&&a&&(d+=" rotate("+a+"deg)"),"level"===e.mirrorRotate?d+=" rotateY(180deg)":"vertical"===e.mirrorRotate&&(d+=" rotateX(180deg)"),this.$videoElement.style.transform=d,this.$videoElement.style.left=n+"px",this.$videoElement.style.top=o+"px"}initFps(){}setStreamFps(){}getStreamFps(){return 25}getType(){return G}addContentToCanvas(i){if(this.context2D){let{ctx:t,list:e}={ctx:this.context2D,list:i};t.save(),(e||[]).forEach(e=>{"text"===e.type?(t.font=`${e.fontSize||12}px Arial`,t.fillStyle=e.color||"green",t.fillText(e.text,e.x,e.y)):"rect"===e.type&&(t.strokeStyle=e.color||"green",t.lineWidth=e.lineWidth||2,t.strokeRect(e.x,e.y,e.width,e.height))}),t.restore()}}}class Ot extends Ft{constructor(e){super(e),this.yuvList=[],this.controlHeight=38,this.player.debug.log("CanvasVideo","init")}destroy(){super.destroy(),this.yuvList=[],this.player.debug.log("CanvasVideoLoader","destroy")}_initContext2D(){this.context2D=this.$videoElement.getContext("2d",0<arguments.length&&void 0!==arguments[0]?arguments[0]:{})}_initCanvasRender(){this.player._opt.useWCS&&!this._supportOffscreen()?(this.renderType=pe,this._initContext2D()):this.player._opt.useMSE&&this.player._opt.mseUseCanvasRender?(this.renderType=me,this._initContext2D()):this.player._opt.isHls&&this.player._opt.useCanvasRender?(this.renderType="hls",this._initContext2D()):this._supportOffscreen()?(this.renderType=Ae,this._bindOffscreen()):(this.renderType=fe,this._initContextGl())}_supportOffscreen(){return"function"==typeof this.$videoElement.transferControlToOffscreen&&this.player._opt.useOffscreen}_bindOffscreen(){this.bitmaprenderer=this.$videoElement.getContext("bitmaprenderer")}render(e){this.yuvList.push(e),this.startRender()}startRender(){for(;!(this.yuvList.length<=0);){var e=this.yuvList.shift();this.doRender(e)}}doRender(t){this.player.videoTimestamp=t.ts||0;t.ts;switch(this.renderType!==me&&(e.fps=!0),this.player.updateStats(e),this.renderType){case Ae:this.bitmaprenderer.transferFromImageBitmap(t.buffer);break;case fe:let e=t.output;this.player.faceDetectActive&&this.player.ai&&this.player.ai.faceDetector&&(e=this.player.ai.faceDetector.detect({width:this.$videoElement.width,height:this.$videoElement.height,data:t.output})),this.player.objectDetectActive&&this.player.ai&&this.player.ai.objectDetector&&(e=this.player.ai.objectDetector.detect({width:this.$videoElement.width,height:this.$videoElement.height,data:t.output})),this.contextGlRender(this.$videoElement.width,this.$videoElement.height,e);break;case pe:if(k(t.videoFrame.createImageBitmap))try{t.videoFrame.createImageBitmap().then(e=>{this.context2D.drawImage(e,0,0,this.$videoElement.width,this.$videoElement.height),gt(t.videoFrame)})}catch(t){}else this.context2D.drawImage(t.videoFrame,0,0,this.$videoElement.width,this.$videoElement.height),gt(t.videoFrame);break;case me:case"hls":this.context2D.drawImage(t.$video,0,0,this.$videoElement.width,this.$videoElement.height)}}clearView(){switch(this.renderType){case Ae:e=this.$videoElement.width,t=this.$videoElement.height,(i=document.createElement("canvas")).width=e,i.height=t,window.createImageBitmap(i,0,0,e,t).then(e=>{this.bitmaprenderer.transferFromImageBitmap(e)});break;case fe:this.contextGl.clear(this.contextGl.COLOR_BUFFER_BIT);break;case pe:case me:case"hls":this.context2D.clearRect(0,0,this.$videoElement.width,this.$videoElement.height)}var e,t,i}}class _t extends Dt{constructor(t){super(),this.player=t;var e=document.createElement("video"),i=document.createElement("canvas"),i=(e.muted=!0,e.style.position="absolute",e.style.top=0,e.style.left=0,this._delayPlay=!1,t.$container.appendChild(e),this.$videoElement=e,this.$canvasElement=i,this.canvasContext=i.getContext("2d"),this.mediaStream=null,t.canVideoTrackWritter()&&tt()&&(this.trackGenerator=new MediaStreamTrackGenerator({kind:"video"}),this.mediaStream=new MediaStream([this.trackGenerator]),e.srcObject=this.mediaStream,this.vwriter=this.trackGenerator.writable.getWriter()),this.fixChromeVideoFlashBug(),this.resize(),this.eventListenList=[],this.player.events)["proxy"],e=i(this.$videoElement,"canplay",()=>{this.player.debug.log("Video","canplay"),this._delayPlay&&this._play()}),r=i(this.$videoElement,"waiting",()=>{this.player.debug.log("Video","waiting")}),s=i(this.$videoElement,"loadedmetadata",()=>{this.player.debug.log("Video","loadedmetadata")}),a=i(this.$videoElement,"timeupdate",e=>{e=parseInt(e.timeStamp,10);(this.player._opt.isWebrtc||this.player._opt.isHls)&&this.player.emit(v.timeUpdate,e),t._opt.isWebrtc&&t.handleRender()}),i=i(this.$videoElement,"error",()=>{this.player.debug.error("Video","Error "+this.$videoElement.error.code+"; details: "+this.$videoElement.error.message)});this.eventListenList.push(e,r,a,i,s),this.player.debug.log("Video","init")}destroy(){super.destroy(),this.eventListenList&&(this.eventListenList.forEach(e=>{e()}),this.eventListenList=[]),this.$canvasElement=null,this.canvasContext=null,this.$videoElement&&(this.$videoElement.pause(),this.$videoElement.currentTime=0,this.$videoElement.srcObject&&(this.$videoElement.srcObject=null,this.$videoElement.removeAttribute("srcObject")),this.$videoElement.src&&(this.$videoElement.src="",this.$videoElement.removeAttribute("src")),this.player.$container.removeChild(this.$videoElement),this.$videoElement=null),this.trackGenerator&&(this.trackGenerator.stop(),this.trackGenerator=null),this.vwriter&&(this.vwriter.close(),this.vwriter=null),this._delayPlay=!1,this.mediaStream&&(this.mediaStream.getTracks().forEach(e=>e.stop()),this.mediaStream=null),this.off(),this.player.debug.log("Video","destroy")}fixChromeVideoFlashBug(){const e=Qe().type.toLowerCase();if("chrome"===e||"edge"===e){const e=this.player.$container;e.style.backdropFilter="blur(0px)",e.style.translateZ="0"}}isPause(){let e=!0;return e=this.$videoElement?this.$videoElement.paused:e}_getVideoReadyState(){let e=0;return e=this.$videoElement?this.$videoElement.readyState:e}_getVideoCurrentTime(){let e=0;return e=this.$videoElement?this.$videoElement.currentTime:e}play(){var e;this.$videoElement&&(e=this._getVideoReadyState(),this.player.debug.log("Video","play and readyState: "+e),0===e?(this.player.debug.warn("Video","readyState is 0 and set _delayPlay to true"),this._delayPlay=!0):this._play())}_play(){this.$videoElement&&this.$videoElement.play().then(()=>{this._delayPlay=!1,this.player.debug.log("Video","_play success"),setTimeout(()=>{this.isPlaying()||(this.player.debug.warn("Video","play failed and retry play"),this._play())},100)}).catch(e=>{this.player.debug.error("Video","_play error",e)})}pause(e){this.isPlaying()&&(e?this.$videoElement&&this.$videoElement.pause():setTimeout(()=>{this.$videoElement&&this.$videoElement.pause()},100))}clearView(){this.$videoElement&&(this.$videoElement.pause(),this.$videoElement.currentTime=0,this.$videoElement.src&&(this.$videoElement.src="",this.$videoElement.removeAttribute("src")),this.$videoElement.srcObject)&&(this.$videoElement.srcObject=null,this.$videoElement.removeAttribute("srcObject"))}screenshot(e,t,i,r){e=e||m(),r=r||o.download;let s=.92;!l[t]&&o[t]&&(r=t,t="png",i=void 0),"string"==typeof i&&(r=i,i=void 0),void 0!==i&&(s=Number(i));var i=this.$videoElement,a=this.$canvasElement,n=(a.width=i.videoWidth,a.height=i.videoHeight,this.canvasContext.drawImage(i,0,0,a.width,a.height),l[t]||l.png),i=a.toDataURL(n,s);if(this.canvasContext.clearRect(0,0,a.width,a.height),a.width=0,a.height=0,r===o.base64)return i;{const t=ze(i);if(r===o.blob)return t;if(r===o.download){const i=n.split("/")[1];Pt(t,e+"."+i)}}}screenshotWatermark(a){return new Promise((i,t)=>{ht(a)&&(a={filename:a});var e=this.$videoElement,r=((a=a||{}).width=e.videoWidth,a.height=e.videoHeight,a.filename=a.filename||m(),a.format=a.format?l[a.format]:l.png,a.quality=Number(a.quality)||.92,a.type=a.type||o.download,this.$canvasElement);r.width=e.videoWidth,r.height=e.videoHeight,this.canvasContext.drawImage(e,0,0,r.width,r.height);const s=r.toDataURL(a.format,a.quality);this.canvasContext.clearRect(0,0,r.width,r.height),r.width=0,r.height=0,nt(s,a).then(e=>{if(a.type===o.base64)i(s);else{var t=ze(e);if(a.type===o.blob)i(t);else if(a.type===o.download){i();const e=a.format.split("/")[1];Pt(t,a.filename+"."+e)}}}).catch(e=>{t(e)})})}initCanvasViewSize(){this.resize()}clear(){var e=this.$videoElement,t=e.buffered,t=t.length?t.end(t.length-1):0;e.currentTime=t}render(t){if(this.vwriter){if(this.$videoElement.srcObject||(this.$videoElement.srcObject=this.mediaStream),this.$videoElement.paused&&this.player.debug.warn("Video","render error, video is paused"),this.player.videoTimestamp=t.ts||0,this.player.updateStats({fps:!0,ts:t.ts||0}),t.videoFrame)this.vwriter.write(t.videoFrame),gt(t.videoFrame);else if(t.output){let e=t.output;i=e=this.player.faceDetectActive&&this.player.ai&&this.player.ai.faceDetector?this.player.ai.faceDetector.detect({width:this.videoInfo.width,height:this.videoInfo.height,data:t.output}):e,t={format:"I420",codedWidth:this.videoInfo.width,codedHeight:this.videoInfo.height,timestamp:t.ts};i=new VideoFrame(i,t);this.vwriter.write(i),gt(i)}}else this.player.debug.warn("Video","render and this.vwriter is null");var i}resize(){let e=this.player.width,t=this.player.height;const i=this.player._opt,r=i.rotate;if(i.hasControl&&!i.controlAutoHide){const r=i.playType===y?48:38;S()&&this.player.fullscreen&&i.useWebFullScreen?e-=r:t-=r}this.$videoElement.width=e,this.$videoElement.height=t,270!==r&&90!==r||(this.$videoElement.width=t,this.$videoElement.height=e);let s=(e-this.$videoElement.width)/2,a=(t-this.$videoElement.height)/2,n="contain",o=(i.isResize||(n="fill"),i.isFullResize&&(n="none"),"");"none"===i.mirrorRotate&&r&&(o+=" rotate("+r+"deg)"),"level"===i.mirrorRotate?o+=" rotateY(180deg)":"vertical"===i.mirrorRotate&&(o+=" rotateX(180deg)"),this.$videoElement.style.objectFit=n,this.$videoElement.style.transform=o,this.$videoElement.style.left=s+"px",this.$videoElement.style.top=a+"px"}getType(){return"video"}isPlaying(){return this.$videoElement&&!this.$videoElement.paused}}class Mt extends Ft{constructor(e){super(e),this.controlHeight=48,this.bufferList=[],this.playing=!1,this.playInterval=null,this.fps=1,this.preFps=1,this.streamFps=0,this.playbackRate=1,this._firstTimestamp=null,this._renderFps=0,this._startfpsTime=null,this._startFpsTimestamp=null,this._hasCalcFps=!1,this.player.on(v.playbackPause,e=>{e?(this.pause(),this.player.playback.isPlaybackPauseClearCache&&this.clear()):this.resume()}),this.player.debug.log("CanvasPlaybackLoader","init")}destroy(){this._stopSync(),this._firstTimestamp=null,this.playing=!1,this.playbackRate=1,this.fps=1,this.preFps=1,this.bufferList=[],this._renderFps=0,this._startfpsTime=null,this._startFpsTimestamp=null,this._hasCalcFps=!1,super.destroy(),this.player.debug.log("CanvasPlaybackLoader","destroy")}_initCanvasRender(){this.renderType=fe,this._initContextGl()}_sync(){this._stopSync(),this._doPlay(),this.playInterval=setInterval(()=>{this._doPlay()},this.fragDuration)}_doPlay(){var e;0<this.bufferList.length&&!this.player.seeking&&(e=this.bufferList.shift())&&e.buffer&&(this._doRender(e.buffer),this.player.handleRender(),this.player.playback.updateStats({ts:e.ts,tfTs:e.tfTs}))}_stopSync(){this.playInterval&&(clearInterval(this.playInterval),this.playInterval=null)}_doRender(e){this.contextGlRender(this.$videoElement.width,this.$videoElement.height,e)}_updateStats(e){this.player.updateStats({fps:!0,ts:e}),this._startfpsTime||(this._startfpsTime=e,this._startFpsTimestamp=m());var t=e,i=m(),r=i-this._startFpsTimestamp;r<=1e3?this._renderFps+=1:(this.player.emit(v.playbackStats,{fps:this._renderFps,start:this._startfpsTime,end:t,timestamp:r,dataTimestamp:t-this._startfpsTime,audioBufferSize:this.player.audio?this.player.audio.bufferSize:0,videoBufferSize:this.player.video?this.player.video.bufferSize:0,ts:e}),this._renderFps=0,this._startfpsTime=t,this._startFpsTimestamp=i)}get rate(){return this.playbackRate}get fragDuration(){return Math.ceil(1e3/(this.fps*this.playbackRate))}get bufferSize(){return this.bufferList.length}getStreamFps(){return this.streamFps}initFps(){this._hasCalcFps?this.player.debug.log("CanvasPlaybackLoader","initFps, has calc fps"):(this.preFps=b(this.player.playback.fps,1,100),this.fps=this.preFps)}setFps(e){e!==this.fps?(100<e&&this.player.debug.warn("CanvasPlaybackLoader","setFps max",e),e<0&&this.player.debug.warn("CanvasPlaybackLoader","setFps min",e),this.fps=b(e,1,100),this.player.debug.log("CanvasPlaybackLoader",`setFps ${this.preFps} -> `+this.fps),this.player.playback.isUseFpsRender&&this._sync()):this.player.debug.log("CanvasPlaybackLoader","setFps, same fps "+e)}setStreamFps(e){this.player.debug.log("CanvasPlaybackLoader","setStreamFps",e),this._hasCalcFps=!0,this.streamFps=e,this.preFps=e,this.setFps(e)}setRate(e){e!==this.playbackRate&&(this.playbackRate=e,this.player.playback.isUseFpsRender)&&this._sync()}render$2(e){null===this._firstTimestamp&&(this._firstTimestamp=e.ts);var t={tfTs:e.ts-this._firstTimestamp,ts:e.ts,buffer:e.output};this.bufferList.push(t),this.startRender(),this.player.handleRender(),this.player.playback.updateStats({ts:e.ts,tfTs:t.tfTs})}startRender(){for(;!(this.bufferList.length<=0);){var e=this.bufferList.shift();this._doRender(e.buffer)}}pushData(e){null===this._firstTimestamp&&(this._firstTimestamp=e.ts);const t={tfTs:e.ts-this._firstTimestamp,ts:e.ts,buffer:e.output},i=this.player._opt.playbackConfig.isCacheBeforeDecodeForFpsRender;if(i||this.bufferSize>this.fps*this.playbackRate*2&&(this.player.debug.warn("CanvasPlaybackLoader","buffer size is "+this.bufferSize),this._doPlay()),this.bufferList.push(t),!this._hasCalcFps){const e=function(i){let r=i[0],s=null,e=1;var t;if(0<i.length&&(t=i[1])&&1e5<t.ts-r.ts&&(r=t,e=2),r)for(let t=e;t<i.length;t++){let e=i[t];e&&1e3<=e.ts-r.ts&&i[t-1].ts-r.ts<1e3&&(s=t+1)}return s}(this.bufferList);null!==e&&e!==this.preFps&&(this.player.debug.log("CanvasPlaybackLoader",`calc fps is ${e} pre fps is ${this.preFps} and updatePreFps`),this.setStreamFps(e))}if(!i){const e=this.bufferList.length,t=e/(this.fps*this.playbackRate);this.player.debug.log("CanvasPlaybackLoader","rate is",t),t<=1?this.setFps(this.preFps):(this.setFps(this.fps+Math.floor(t*this.playbackRate)),this.player.debug.warn("CanvasPlaybackLoader","rate is",t,"fps is",this.fps,"bufferListLength is",e))}}initVideo(){this.player.playback&&this.player.playback.isUseFpsRender&&this._sync(),this.playing=!0}initVideoDelay(){var e=this.player._opt.playbackDelayTime;0<e?this.delayTimeout=setTimeout(()=>{this.initVideo()},e):this.initVideo()}clearView(){this.contextGl.clear(this.contextGl.COLOR_BUFFER_BIT)}clear(){this.bufferList=[]}resume(){this.player.playback.isUseFpsRender&&this._sync(),this.playing=!0}pause(){this.player.playback.isUseFpsRender&&this._stopSync(),this.playing=!1}}class Ut{constructor(e){return new(Ut.getLoaderFactory(e._opt))(e)}static getLoaderFactory(e){return e.useMSE?e.mseUseCanvasRender?Ot:_t:e.isHls?e.useCanvasRender?Ot:_t:e.isWebrtc?_t:e.useWCS?!e.useOffscreen&&e.wcsUseVideoRender?_t:Ot:e.playType===y?Mt:e.wasmUseVideoRender&&!e.useOffscreen?_t:Ot}}class jt extends t{constructor(e){super(),this.bufferList=[],this.player=e,this.scriptNode=null,this.workletProcessorNode=null,this.hasInitScriptNode=!1,this.audioContext=new(window.AudioContext||window.webkitAudioContext)({sampleRate:48e3}),this.gainNode=this.audioContext.createGain();e=this.audioContext.createBufferSource();e.buffer=this.audioContext.createBuffer(1,1,22050),e.connect(this.audioContext.destination),e.noteOn?e.noteOn(0):e.start(0),this.audioBufferSourceNode=e,this.mediaStreamAudioDestinationNode=this.audioContext.createMediaStreamDestination(),this.audioEnabled(!0),this.gainNode.gain.value=0,this.playing=!1,this.audioSyncVideoOption={diff:null},this.audioInfo={encType:"",channels:"",sampleRate:""},this.init=!1,this.hasAudio=!1,this.on(v.videoSyncAudio,e=>{this.audioSyncVideoOption=e})}resetInit(){this.audioInfo={encType:"",channels:"",sampleRate:""},this.init=!1}destroy(){this.closeAudio(),this.resetInit(),this.audioContext.close(),this.audioContext=null,this.gainNode=null,this.hasAudio=!1,this.playing=!1,this.scriptNode&&(this.scriptNode.onaudioprocess=Ge,this.scriptNode=null),this.workletProcessorNode&&(this.workletProcessorNode.port.onmessage=Ge,this.workletProcessorNode=null),this.audioBufferSourceNode=null,this.mediaStreamAudioDestinationNode=null,this.hasInitScriptNode=!1,this.audioSyncVideoOption={diff:null},this.off()}updateAudioInfo(e){e.encTypeCode&&(this.audioInfo.encType=de[e.encTypeCode]),e.channels&&(this.audioInfo.channels=e.channels),e.sampleRate&&(this.audioInfo.sampleRate=e.sampleRate),this.audioInfo.sampleRate&&this.audioInfo.channels&&this.audioInfo.encType&&!this.init&&(this.player.emit(v.audioInfo,this.audioInfo),this.init=!0)}get isPlaying(){return this.playing}get isMute(){return 0===this.gainNode.gain.value}get volume(){return this.gainNode.gain.value}get bufferSize(){return this.bufferList.length}initScriptNode(){}initMobileScriptNode(){}initWorkletScriptNode(){}getEngineType(){return""}mute(e){e?(this.isMute||this.player.emit(v.mute,e),this.setVolume(0),this.clear()):(this.isMute&&this.player.emit(v.mute,e),this.audioEnabled(!0),this.setVolume(.5))}setVolume(e){e=parseFloat(e).toFixed(2),isNaN(e)||(this.audioEnabled(!0),e=b(e,0,1),this.gainNode.gain.value=e,this.player.emit(v.volumechange,this.player.volume))}closeAudio(){this.hasInitScriptNode&&(this.scriptNode&&this.scriptNode.disconnect(this.gainNode),this.workletProcessorNode&&this.workletProcessorNode.disconnect(this.gainNode),this.gainNode&&this.gainNode.disconnect(this.audioContext.destination),this.gainNode)&&this.gainNode.disconnect(this.mediaStreamAudioDestinationNode),this.clear()}audioEnabled(e){e?this.isStateSuspended()&&this.audioContext.resume():this.isStateRunning()&&this.audioContext.suspend()}isStateRunning(){return"running"===this.audioContext.state}isStateSuspended(){return"suspended"===this.audioContext.state}clear(){this.bufferList=[]}play(e,t){}pause(){this.audioSyncVideoOption={diff:null},this.playing=!1}resume(){this.playing=!0}setRate(e){}getAudioBufferSize(){return 0}}class Nt{constructor(e,t,i,r){this.player=e,this.audio=t,this.channel=i,this.bufferSize=r}extract(t,e){var i=this.provide(e);for(let e=0;e<i.size;e++)t[2*e]=i.left[e],t[2*e+1]=i.right[e];return this.audio.tempAudioTimestamp=i.ts,i.size}provide(t){let i=new Float32Array(t),r=new Float32Array(t),e=0,s=0,a=0,n=t/this.bufferSize;var o=this.audio.bufferList;if(o.length>n){for(let e=0;e<n;e++){const t=o.shift();2===this.channel?(i.set(t.buffer[0],a),r.set(t.buffer[1],a)):(i.set(t.buffer[0],a),r.set(t.buffer[0],a)),a+=this.bufferSize,s=t.ts}e=i.length}return{size:e,ts:s,left:i,right:r}}destroy(){this.buffer=null,this.channel=null}}class Vt{constructor(){this._vector=new Float32Array,this._position=0,this._frameCount=0}get vector(){return this._vector}get position(){return this._position}get startIndex(){return 2*this._position}get frameCount(){return this._frameCount}get endIndex(){return 2*(this._position+this._frameCount)}clear(){this.receive(this._frameCount),this.rewind()}put(e){this._frameCount+=e}putSamples(e,t){let i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:0;var t=2*(t=t||0),r=2*(i=0<=i?i:(e.length-t)/2),s=(this.ensureCapacity(i+this._frameCount),this.endIndex);this.vector.set(e.subarray(t,t+r),s),this._frameCount+=i}putBuffer(e,t){let i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:0;t=t||0,0<=i||(i=e.frameCount-t),this.putSamples(e.vector,e.position+t,i)}receive(e){0<=e&&!(e>this._frameCount)||(e=this.frameCount),this._frameCount-=e,this._position+=e}receiveSamples(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:0,i=this.startIndex;e.set(this._vector.subarray(i,i+2*t)),this.receive(t)}extract(e){var t=this.startIndex+2*(1<arguments.length&&void 0!==arguments[1]?arguments[1]:0);e.set(this._vector.subarray(t,t+2*(2<arguments.length&&void 0!==arguments[2]?arguments[2]:0)))}ensureCapacity(){var e=parseInt(2*(0<arguments.length&&void 0!==arguments[0]?arguments[0]:0));this._vector.length<e?((e=new Float32Array(e)).set(this._vector.subarray(this.startIndex,this.endIndex)),this._vector=e,this._position=0):this.rewind()}ensureAdditionalCapacity(){this.ensureCapacity(this._frameCount+(0<arguments.length&&void 0!==arguments[0]?arguments[0]:0))}rewind(){0<this._position&&(this._vector.set(this._vector.subarray(this.startIndex,this.endIndex)),this._position=0)}}class Ht{constructor(e){e?(this._inputBuffer=new Vt,this._outputBuffer=new Vt):this._inputBuffer=this._outputBuffer=null}get inputBuffer(){return this._inputBuffer}set inputBuffer(e){this._inputBuffer=e}get outputBuffer(){return this._outputBuffer}set outputBuffer(e){this._outputBuffer=e}clear(){this._inputBuffer.clear(),this._outputBuffer.clear()}}class Wt extends Ht{constructor(e){super(e),this.reset(),this._rate=1}set rate(e){this._rate=e}reset(){this.slopeCount=0,this.prevSampleL=0,this.prevSampleR=0}clone(){var e=new Wt;return e.rate=this._rate,e}process(){var e=this._inputBuffer.frameCount,e=(this._outputBuffer.ensureAdditionalCapacity(e/this._rate+1),this.transpose(e));this._inputBuffer.receive(),this._outputBuffer.put(e)}transpose(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:0;if(0===e)return 0;var t=this._inputBuffer.vector,i=this._inputBuffer.startIndex,r=this._outputBuffer.vector,s=this._outputBuffer.endIndex;let a=0,n=0;for(;this.slopeCount<1;)r[s+2*n]=(1-this.slopeCount)*this.prevSampleL+this.slopeCount*t[i],r[s+2*n+1]=(1-this.slopeCount)*this.prevSampleR+this.slopeCount*t[i+1],n+=1,this.slopeCount+=this._rate;if(--this.slopeCount,1!==e)e:for(;;){for(;1<this.slopeCount;)if(--this.slopeCount,(a+=1)>=e-1)break e;var o=i+2*a;r[s+2*n]=(1-this.slopeCount)*t[o]+this.slopeCount*t[o+2],r[s+2*n+1]=(1-this.slopeCount)*t[o+1]+this.slopeCount*t[o+3],n+=1,this.slopeCount+=this._rate}return this.prevSampleL=t[i+2*e-2],this.prevSampleR=t[i+2*e-1],n}}function Gt(){}class zt extends class{constructor(e){this._pipe=e}get pipe(){return this._pipe}get inputBuffer(){return this._pipe.inputBuffer}get outputBuffer(){return this._pipe.outputBuffer}fillInputBuffer(){throw new Error("fillInputBuffer() not overridden")}fillOutputBuffer(){let e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:0;for(;this.outputBuffer.frameCount<e;){const e=16384-this.inputBuffer.frameCount;if(this.fillInputBuffer(e),this.inputBuffer.frameCount<16384)break;this._pipe.process()}}clear(){this._pipe.clear()}}{constructor(e,t){var i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:Gt;super(t),this.callback=i,this.sourceSound=e,this.historyBufferSize=22050,this._sourcePosition=0,this.outputBufferPosition=0,this._position=0}get position(){return this._position}set position(e){if(e>this._position)throw new RangeError("New position may not be greater than current position");var t=this.outputBufferPosition-(this._position-e);if(t<0)throw new RangeError("New position falls outside of history buffer");this.outputBufferPosition=t,this._position=e}get sourcePosition(){return this._sourcePosition}set sourcePosition(e){this.clear(),this._sourcePosition=e}onEnd(){this.callback()}fillInputBuffer(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:0,t=new Float32Array(2*e),e=this.sourceSound.extract(t,e,this._sourcePosition);this._sourcePosition+=e,this.inputBuffer.putSamples(t,0,e)}extract(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:0,t=(this.fillOutputBuffer(this.outputBufferPosition+t),Math.min(t,this.outputBuffer.frameCount-this.outputBufferPosition)),e=(this.outputBuffer.extract(e,this.outputBufferPosition,t),this.outputBufferPosition+t);return this.outputBufferPosition=Math.min(this.historyBufferSize,e),this.outputBuffer.receive(Math.max(e-this.historyBufferSize,0)),this._position+=t,t}handleSampleData(e){this.extract(e.data,4096)}clear(){super.clear(),this.outputBufferPosition=0}}const Kt=[[124,186,248,310,372,434,496,558,620,682,744,806,868,930,992,1054,1116,1178,1240,1302,1364,1426,1488,0],[-100,-75,-50,-25,25,50,75,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[-20,-15,-10,-5,5,10,15,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[-4,-3,-2,-1,1,2,3,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];class qt extends Ht{constructor(e){super(e),this._quickSeek=!0,this.midBufferDirty=!1,this.midBuffer=null,this.overlapLength=0,this.autoSeqSetting=!0,this.autoSeekSetting=!0,this._tempo=1,this.setParameters(44100,0,0,8)}clear(){super.clear(),this.clearMidBuffer()}clearMidBuffer(){this.midBufferDirty&&(this.midBufferDirty=!1,this.midBuffer=null)}setParameters(e,t,i,r){0<e&&(this.sampleRate=e),0<r&&(this.overlapMs=r),0<t?(this.sequenceMs=t,this.autoSeqSetting=!1):this.autoSeqSetting=!0,0<i?(this.seekWindowMs=i,this.autoSeekSetting=!1):this.autoSeekSetting=!0,this.calculateSequenceParameters(),this.calculateOverlapLength(this.overlapMs),this.tempo=this._tempo}set tempo(e){this._tempo=e,this.calculateSequenceParameters(),this.nominalSkip=this._tempo*(this.seekWindowLength-this.overlapLength),this.skipFract=0,e=Math.floor(this.nominalSkip+.5),this.sampleReq=Math.max(e+this.overlapLength,this.seekWindowLength)+this.seekLength}get tempo(){return this._tempo}get inputChunkSize(){return this.sampleReq}get outputChunkSize(){return this.overlapLength+Math.max(0,this.seekWindowLength-2*this.overlapLength)}calculateOverlapLength(){var e=this.sampleRate*(0<arguments.length&&void 0!==arguments[0]?arguments[0]:0)/1e3;e=e<16?16:e,this.overlapLength=e-=e%8,this.refMidBuffer=new Float32Array(2*this.overlapLength),this.midBuffer=new Float32Array(2*this.overlapLength)}checkLimits(e,t,i){return e<t?t:i<e?i:e}calculateSequenceParameters(){var e;this.autoSeqSetting&&(e=150+-50*this._tempo,e=this.checkLimits(e,50,125),this.sequenceMs=Math.floor(e+.5)),this.autoSeekSetting&&(e=28.333333333333332+-10/1.5*this._tempo,e=this.checkLimits(e,15,25),this.seekWindowMs=Math.floor(e+.5)),this.seekWindowLength=Math.floor(this.sampleRate*this.sequenceMs/1e3),this.seekLength=Math.floor(this.sampleRate*this.seekWindowMs/1e3)}set quickSeek(e){this._quickSeek=e}clone(){var e=new qt;return e.tempo=this._tempo,e.setParameters(this.sampleRate,this.sequenceMs,this.seekWindowMs,this.overlapMs),e}seekBestOverlapPosition(){return this._quickSeek?this.seekBestOverlapPositionStereoQuick():this.seekBestOverlapPositionStereo()}seekBestOverlapPositionStereo(){let e,t,i,r=0;for(this.preCalculateCorrelationReferenceStereo(),e=0,t=Number.MIN_VALUE;r<this.seekLength;r+=1)(i=this.calculateCrossCorrelationStereo(2*r,this.refMidBuffer))>t&&(t=i,e=r);return e}seekBestOverlapPositionStereoQuick(){let t,i,r,s,a,n=0;for(this.preCalculateCorrelationReferenceStereo(),i=Number.MIN_VALUE,t=0,s=0,a=0;n<4;n+=1){let e=0;for(;Kt[n][e]&&!((a=s+Kt[n][e])>=this.seekLength);)(r=this.calculateCrossCorrelationStereo(2*a,this.refMidBuffer))>i&&(i=r,t=a),e+=1;s=t}return t}preCalculateCorrelationReferenceStereo(){let e,t,i=0;for(;i<this.overlapLength;i+=1)t=i*(this.overlapLength-i),e=2*i,this.refMidBuffer[e]=this.midBuffer[e]*t,this.refMidBuffer[1+e]=this.midBuffer[1+e]*t}calculateCrossCorrelationStereo(e,t){var i=this._inputBuffer.vector;e+=this._inputBuffer.startIndex;let r=0,s=2;for(var a,n=2*this.overlapLength;s<n;s+=2)a=s+e,r+=i[a]*t[s]+i[a+1]*t[s+1];return r}overlap(e){this.overlapStereo(2*e)}overlapStereo(e){var t=this._inputBuffer.vector,i=(e+=this._inputBuffer.startIndex,this._outputBuffer.vector),r=this._outputBuffer.endIndex;let s,a,n=0;for(var o,l,c,u=1/this.overlapLength;n<this.overlapLength;n+=1)a=(this.overlapLength-n)*u,o=n*u,i[(c=(s=2*n)+r)+0]=t[(l=s+e)+0]*o+this.midBuffer[0+s]*a,i[c+1]=t[l+1]*o+this.midBuffer[1+s]*a}process(){var e;if(null===this.midBuffer){if(this._inputBuffer.frameCount<this.overlapLength)return;this.midBuffer=new Float32Array(2*this.overlapLength),this._inputBuffer.receiveSamples(this.midBuffer,this.overlapLength)}for(;this._inputBuffer.frameCount>=this.sampleReq;){e=this.seekBestOverlapPosition(),this._outputBuffer.ensureAdditionalCapacity(this.overlapLength),this.overlap(Math.floor(e)),this._outputBuffer.put(this.overlapLength),0<(t=this.seekWindowLength-2*this.overlapLength)&&this._outputBuffer.putBuffer(this._inputBuffer,e+this.overlapLength,t);var t=this._inputBuffer.startIndex+2*(e+this.seekWindowLength-this.overlapLength);this.midBuffer.set(this._inputBuffer.vector.subarray(t,t+2*this.overlapLength)),this.skipFract+=this.nominalSkip,e=Math.floor(this.skipFract),this.skipFract-=e,this._inputBuffer.receive(e)}}}function Jt(e,t){return 1e-10<(t<e?e-t:t-e)}class Qt{constructor(){this.transposer=new Wt(!1),this.stretch=new qt(!1),this._inputBuffer=new Vt,this._intermediateBuffer=new Vt,this._outputBuffer=new Vt,this._rate=0,this._tempo=0,this.virtualPitch=1,this.virtualRate=1,this.virtualTempo=1,this.calculateEffectiveRateAndTempo()}clear(){this.transposer.clear(),this.stretch.clear()}clone(){var e=new Qt;return e.rate=this.rate,e.tempo=this.tempo,e}get rate(){return this._rate}set rate(e){this.virtualRate=e,this.calculateEffectiveRateAndTempo()}set rateChange(e){this._rate=1+.01*e}get tempo(){return this._tempo}set tempo(e){this.virtualTempo=e,this.calculateEffectiveRateAndTempo()}set tempoChange(e){this.tempo=1+.01*e}set pitch(e){this.virtualPitch=e,this.calculateEffectiveRateAndTempo()}set pitchOctaves(e){this.pitch=Math.exp(.69314718056*e),this.calculateEffectiveRateAndTempo()}set pitchSemitones(e){this.pitchOctaves=e/12}get inputBuffer(){return this._inputBuffer}get outputBuffer(){return this._outputBuffer}calculateEffectiveRateAndTempo(){var e=this._tempo,t=this._rate;this._tempo=this.virtualTempo/this.virtualPitch,this._rate=this.virtualRate*this.virtualPitch,Jt(this._tempo,e)&&(this.stretch.tempo=this._tempo),Jt(this._rate,t)&&(this.transposer.rate=this._rate),1<this._rate?this._outputBuffer!=this.transposer.outputBuffer&&(this.stretch.inputBuffer=this._inputBuffer,this.stretch.outputBuffer=this._intermediateBuffer,this.transposer.inputBuffer=this._intermediateBuffer,this.transposer.outputBuffer=this._outputBuffer):this._outputBuffer!=this.stretch.outputBuffer&&(this.transposer.inputBuffer=this._inputBuffer,this.transposer.outputBuffer=this._intermediateBuffer,this.stretch.inputBuffer=this._intermediateBuffer,this.stretch.outputBuffer=this._outputBuffer)}process(){(1<this._rate?(this.stretch.process(),this.transposer):(this.transposer.process(),this.stretch)).process()}}class Xt{constructor(e,t,i){this.player=e,this.audio=t,this.soundTouch=new Qt,this.soundTouch.tempo=1,this.soundTouch.rate=1,this.filter=new zt(i,this.soundTouch)}setRate(e){this.soundTouch.tempo=e}provide(e){var t=new Float32Array(2*e),i=this.filter.extract(t,e),r=new Float32Array(i),s=new Float32Array(i);for(let e=0;e<i;e++)r[e]=t[2*e],s[e]=t[2*e+1];return{size:i,left:r,right:s,ts:this.audio.tempAudioTimestamp||0}}destroy(){this.soundTouch&&(this.soundTouch.clear(),this.soundTouch=null),this.filter&&(this.filter=null)}}class Yt extends jt{constructor(e){super(e),this.defaultPlaybackRate=1,this.playbackRate=1,this.rateProcessor=null,this.processor=null,this.scriptNodeInterval=null,this.audioBufferSize=1024,this.engineType=e._opt.audioEngine||_e,(pt()&&null===e._opt.audioEngine||this.engineType===Me)&&(this.audioBufferSize=e._opt.weiXinInAndroidAudioBufferSize||4800),this.scriptStartTime=0,this.player.debug.log("AudioContext","init",{audioBufferSize:this.audioBufferSize})}destroy(){super.destroy(),this.processor&&(this.processor.destroy(),this.processor=null),this.rateProcessor&&(this.rateProcessor.destroy(),this.rateProcessor=null),this.scriptNodeInterval&&(clearInterval(this.scriptNodeInterval),this.scriptNodeInterval=null),this.defaultPlaybackRate=1,this.playbackRate=1,this.scriptStartTime=0,this.audioBufferSize=1024,this.engineType=_e,this.player.debug.log("AudioContext","destroy")}getAudioBufferSize(){return this.audioBufferSize}get oneBufferDuration(){return this.audioBufferSize/this.audioContext.sampleRate*1e3}get isActiveEngineType(){return this.engineType===Me}initProcessor(){this.processor=new Nt(this.player,this,this.audioInfo.channels,this.audioBufferSize),this.rateProcessor=new Xt(this.player,this,this.processor)}initScriptNode(){this.playing=!0,this.hasInitScriptNode||(this.initProcessor(),this.player._opt.audioEngine?this.player._opt.audioEngine===Oe&&yt()?this.initWorkletScriptNode():this.player._opt.audioEngine===Me?this.initIntervalScriptNode():this.player._opt.audioEngine===_e?this.initProcessScriptNode():this.autoInitScriptNode():this.autoInitScriptNode())}autoInitScriptNode(){pt()?this.initIntervalScriptNode():yt()?this.initWorkletScriptNode():this.initProcessScriptNode()}getEngineType(){return this.engineType}isPlaybackRateSpeed(){return this.playbackRate>this.defaultPlaybackRate}initProcessScriptNode(){this.engineType=_e;var e=this.audioContext.createScriptProcessor(this.audioBufferSize,0,this.audioInfo.channels);e.onaudioprocess=e=>{e=e.outputBuffer;this.handleScriptNodeCallback(e)},e.connect(this.gainNode),this.scriptNode=e,this.gainNode.connect(this.audioContext.destination),this.gainNode.connect(this.mediaStreamAudioDestinationNode),this.hasInitScriptNode=!0}initIntervalScriptNode(){this.scriptStartTime=0,this.engineType=Me;var e=1e3*this.audioBufferSize/this.audioContext.sampleRate;this.scriptNodeInterval=setInterval(()=>{const e=this.audioContext.createBufferSource(),t=this.audioContext.createBuffer(this.audioInfo.channels,this.audioBufferSize,this.audioContext.sampleRate);this.handleScriptNodeCallback(t,()=>{this.scriptStartTime<this.audioContext.currentTime&&(this.player.debug.log("AudioContext",`script start time ${this.scriptStartTime} is less than current time `+this.audioContext.currentTime),this.scriptStartTime=this.audioContext.currentTime),e.buffer=t,e.connect(this.gainNode),e.start(this.scriptStartTime),this.scriptStartTime+=t.duration})},e),this.gainNode.connect(this.audioContext.destination),this.gainNode.connect(this.mediaStreamAudioDestinationNode),this.hasInitScriptNode=!0}initWorkletScriptNode(){this.engineType=Oe,this.audioContext&&this.audioContext.audioWorklet.addModule(mt(function(){class e extends AudioWorkletProcessor{constructor(){super(),this.audioBufferSize=1024,this.start=!1,this.channels=1,this.samplesArray=[],this.offset=0,this.state=0,this.port.onmessage=e=>{"init"===e.data.message?(this.audioBufferSize=e.data.audioBufferSize,this.start=e.data.start,this.channels=e.data.channels,this.state=0,this.offset=0,this.samplesArray=[]):"stop"===e.data.message?(this.state=0,this.start=!1,this.offset=0,this.samplesArray=[]):"data"===e.data.message?this.samplesArray.push(e.data.buffer):"zero"===e.data.message&&this.samplesArray.push({left:new Float32Array(this.audioBufferSize).fill(0),right:new Float32Array(this.audioBufferSize).fill(0)})}}process(t,e,i){var r=e[0][0],s=e[0][1];if(0===this.offset&&this.port.postMessage({message:"beep"}),0===this.state)this.state=1;else if(1===this.state&&4<=this.samplesArray.length)this.state=2;else if(2===this.state){const t=this.samplesArray[0];for(let e=0;e<r.length;e++)1===this.channels?r[e]=t.left[e+this.offset]:2===this.channels&&(r[e]=t.left[e+this.offset],s)&&(s[e]=t.right[e+this.offset])}else 1===this.channels?r.fill(0):2===this.channels&&(r.fill(0),s)&&s.fill(0);return this.offset+=128,this.offset===this.audioBufferSize&&(this.offset=0,2===this.state&&this.samplesArray.shift(),0===this.samplesArray.length)&&(this.state=0),this.start}}registerProcessor("worklet-processor",e)})).then(()=>{if(this.audioContext){let e=[1];2===this.audioInfo.channels&&(e=[1,1]),this.workletProcessorNode=new AudioWorkletNode(this.audioContext,"worklet-processor",{numberOfOutputs:this.audioInfo.channels,outputChannelCount:e}),this.workletProcessorNode.connect(this.gainNode),this.gainNode.connect(this.audioContext.destination),this.gainNode.connect(this.mediaStreamAudioDestinationNode),this.hasInitScriptNode=!0,this.workletProcessorNode.port.postMessage({message:"init",audioBufferSize:this.audioBufferSize,start:!0,channels:this.audioInfo.channels}),this.workletProcessorNode.port.onmessage=e=>{this.workletProcessorNode?this.audioContext?this.handleScriptNodeCallback(this.workletProcessorNode,null,!0):this.workletProcessorNode.port.postMessage({message:"zero"}):this.player.debug.error("AudioContext","workletProcessorNode is null")}}else this.player.debug.error("AudioContext","initWorkletScriptNode audioContext is null")})}handleScriptNodeCallback(e,t){let i,r=2<arguments.length&&void 0!==arguments[2]&&arguments[2],s=(t=t||Ge,e.length);r&&(i=e,s=this.audioBufferSize);var a,n=this.audioInfo.channels;this.bufferList.length&&this.playing?(a=this.player._opt).syncAudioAndVideo&&a.hasVideo&&(this.calcPlaybackRateBySync(),1e3<this.audioSyncVideoOption.diff)?(this.player.debug.warn("AudioContext",`audioSyncVideoOption more than diff :${this.audioSyncVideoOption.diff}, waiting`),r?i.port.postMessage({message:"zero"}):this.fillScriptNodeOutputBuffer(e,n)):0===(a=this._provide(s)).size?r?i.port.postMessage({message:"zero"}):this.fillScriptNodeOutputBuffer(e,n):(a&&a.ts&&(this.player.audioTimestamp=a.ts),r?i.port.postMessage({message:"data",buffer:a}):this.fillScriptNodeOutputBuffer(e,n,a)):r?i.port.postMessage({message:"zero"}):this.fillScriptNodeOutputBuffer(e,n),t()}fillScriptNodeOutputBuffer(e,t,i){if(1===t){const t=e.getChannelData(0);!i||0===i.size?t.fill(0):t.set(i.left)}else if(2===t){const t=e.getChannelData(0),r=e.getChannelData(1);!i||0===i.size?(t.fill(0),r.fill(0)):(t.set(i.left),r.set(i.right))}}play(e,t){this.isMute||(this.hasAudio=!0,this.bufferList.push({buffer:e,ts:t}),this.player._opt.syncAudioAndVideo)||this.calcPlaybackRateByBuffer()}calcPlaybackRateBySync(){if(!this.isMute&&this.playing){let e=this.playbackRate;this.audioSyncVideoOption.diff<-1e3?(this.player.debug.warn("AudioContext",`audioSyncVideoOption -1000 less than diff :${this.audioSyncVideoOption.diff}, speed up`),e=this.defaultPlaybackRate+.1):-500<this.audioSyncVideoOption.diff&&(e=this.defaultPlaybackRate),this.updatePlaybackRate(e)}}calcPlaybackRateByBuffer(){if(!this.isMute&&this.playing){let e=this.playbackRate;var t=Math.floor(1e3/this.oneBufferDuration);this.bufferList.length>t?(this.player.debug.warn("AudioContext",`bufferList length ${this.bufferList.length} more than ${t}, speed up`),e=this.defaultPlaybackRate+.1):this.bufferList.length<t/2&&(e=this.defaultPlaybackRate),this.updatePlaybackRate(e)}}updatePlaybackRate(e){this.rateProcessor&&(this.playbackRate=e,this.rateProcessor.setRate(this.playbackRate))}_provide(e){return(1===this.playbackRate?this.processor:this.rateProcessor).provide(e)}}class Zt extends t{constructor(e){super(),this.player=e,this.$video=e.video.$videoElement,this.init=!1,this.player._opt.hlsUseCanvasRender&&(this.$video=this.player.hlsDecoder.$videoElement),this.audioInfo={encType:"",channels:"",sampleRate:""},this.player.debug.log("Audio","init")}destroy(){this.init=!1,this.audioInfo={encType:"",channels:"",sampleRate:""},this.off(),this.player.debug.log("Audio","destroy")}resetInit(){}updateAudioInfo(e){c(e.encTypeCode)&&(this.audioInfo.encType=de[e.encTypeCode]),c(e.encType)&&(this.audioInfo.encType=e.encType),c(e.channels)&&(this.audioInfo.channels=e.channels),c(e.sampleRate)&&(this.audioInfo.sampleRate=e.sampleRate),c(this.audioInfo.sampleRate)&&c(this.audioInfo.channels)&&c(this.audioInfo.encType)&&!this.init&&(this.player.emit(v.audioInfo,this.audioInfo),this.init=!0)}get isPlaying(){return!0}get volume(){return!0===this.$video.muted?0:this.$video.volume}get isMute(){return 0===this.$video.volume||!0===this.$video.muted}mute(e){this.setVolume(e?0:this.player.lastVolume||.5)}setVolume(e){e=parseFloat(e),isNaN(e)||(e=b(e,0,1),this.$video.muted&&(this.$video.muted=!1),this.$video.volume=e,this.player.emit(v.volumechange,this.player.volume))}clear(){}play(){}pause(){}resume(){}getEngineType(){return"audio"}isPlaybackRateSpeed(){return!1}}class $t extends Yt{constructor(e){super(e),this.player.on(v.playbackPause,e=>{this.listenPlaybackPause(e)}),this.player.debug.log("AudioPlaybackContext","init")}destroy(){super.destroy(),this.player.debug.log("AudioPlaybackLoader","destroy")}listenPlaybackPause(e){e?(this.pause(),this.player.playback.isPlaybackPauseClearCache&&this.clear()):this.resume()}initScriptNodeDelay(){var e=this.player._opt.playbackDelayTime;0<e?setTimeout(()=>{this.initScriptNode()},e):this.initScriptNode()}setRate(e){e!==this.defaultPlaybackRate&&this.rateProcessor&&(this.player.debug.log("AudioPlaybackContext","setRate",e),this.defaultPlaybackRate=e,this.updatePlaybackRate(e))}play(e,t){this.isMute||(this.hasAudio=!0,this.bufferList.push({buffer:e,ts:t}),this.player._opt.syncAudioAndVideo)||this.calcPlaybackRateByBuffer()}}class ei{constructor(e){return new(ei.getLoaderFactory(e._opt))(e)}static getLoaderFactory(e){return e.playType===y?$t:e.isHls||e.isWebrtc?Zt:Yt}}class ti extends t{constructor(t){super(),this.player=t,this.playing=!1,this.abortController=new AbortController,this.streamRate=Je(e=>{t.emit(v.kBps,(e/1024).toFixed(2))}),this.streamRateInterval=null,t.debug.log("FetchStream","init")}destroy(){this.abort(),this.off(),this.streamRate=null,this.stopStreamRateInterval(),this.player.debug.log("FetchStream","destroy")}startStreamRateInterval(){this.stopStreamRateInterval(),this.streamRateInterval=setInterval(()=>{this.streamRate&&this.streamRate(0)},1e3)}stopStreamRateInterval(){this.streamRateInterval&&(clearInterval(this.streamRateInterval),this.streamRateInterval=null)}fetchStream(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};const r=this.player["demux"];this.player._times.streamStart=m();t=Object.assign({signal:this.abortController.signal},{headers:t.headers||{}});fetch(e,t).then(e=>{if(e.ok&&200<=e.status&&e.status<=299)if(this.emit(v.streamSuccess),this.startStreamRateInterval(),"undefined"!=typeof WritableStream)e.body.pipeTo(new WritableStream({write:e=>(this.streamRate&&this.streamRate(e.byteLength),r.dispatch(e)),close:()=>{r.close()},abort:e=>{r.close();var t=e.toString();-1===t.indexOf(Ie)&&-1===t.indexOf(Be)&&e.name!==xe&&(this.abort(),this.emit(A.fetchError,e),this.player.emit(v.error,A.fetchError))}}));else{this.player.debug.log("FetchStream","not support WritableStream and use getReader() to read stream");const t=e.body.getReader(),i=()=>{t.read().then(e=>{var{done:e,value:t}=e;e?r.close():(this.streamRate&&this.streamRate(t.byteLength),r.dispatch(t),i())}).catch(e=>{r.close();var t=e.toString();-1===t.indexOf(Ie)&&-1===t.indexOf(Be)&&e.name!==xe&&(this.abort(),this.emit(A.fetchError,e),this.player.emit(v.error,A.fetchError))})};i()}else this.player.debug.error("FetchStream",`fetch response status is ${e.status} and ok is ${e.ok} and emit error and next abort()`),this.abort(),this.emit(A.fetchError,`fetch response status is ${e.status} and ok is `+e.ok),this.player.emit(v.error,A.fetchError)}).catch(e=>{"AbortError"!==e.name&&(r.close(),this.abort(),this.emit(A.fetchError,e),this.player.emit(v.error,A.fetchError))})}abort(){this.abortController&&(this.abortController.abort(),this.abortController=null)}getStreamType(){return _}}class ii extends t{constructor(t){super(),this.player=t,this.socket=null,this.socketStatus=se,this.wsUrl=null,this.socketDestroyFnList=[],this.streamRate=Je(e=>{t.emit(v.kBps,(e/1024).toFixed(2))}),this.streamRateInterval=null,t.debug.log("WebsocketStream","init")}destroy(){this._closeWebSocket(),this.stopStreamRateInterval(),this.wsUrl=null,this.off(),this.player.debug.log("WebsocketStream","destroy")}startStreamRateInterval(){this.stopStreamRateInterval(),this.streamRateInterval=setInterval(()=>{this.streamRate&&this.streamRate(0)},1e3)}stopStreamRateInterval(){this.streamRateInterval&&(clearInterval(this.streamRateInterval),this.streamRateInterval=null)}_createWebSocket(){const e=this.player,{debug:t,events:{proxy:i},demux:r}=e;this.socket=new WebSocket(this.wsUrl),this.socket.binaryType="arraybuffer";var s=i(this.socket,"open",()=>{t.log("WebsocketStream","socket open"),this.socketStatus=ae,this.emit(v.streamSuccess),this.player.emit(v.websocketOpen),this.startStreamRateInterval()}),a=i(this.socket,"message",e=>{this.streamRate&&this.streamRate(e.data.byteLength),this._handleMessage(e.data)}),n=i(this.socket,"close",()=>{t.log("WebsocketStream","socket close"),this.socketStatus="close",this.emit(v.streamEnd)}),o=i(this.socket,"error",e=>{t.log("WebsocketStream","socket error"),this.socketStatus="error",this.emit(A.websocketError,e),this.player.emit(v.error,A.websocketError),r.close(),t.log("WebsocketStream","socket error:",e)});this.socketDestroyFnList.push(s,a,n,o)}_closeWebSocket(){this.socketDestroyFnList.forEach(e=>e()),this.socket&&(this.socket.close(),this.socket=null),this.socketStatus=se,this.streamRate=null}_handleMessage(e){var t=this.player["demux"];t?t.dispatch(e):this.player.debug.warn("WebsocketStream","websocket handle message demux is null")}fetchStream(e,t){this.player._times.streamStart=m(),this.wsUrl=e,this._createWebSocket()}sendMessage(e){this.socket?this.socketStatus===ae?this.socket.send(e):this.player.debug.error("WebsocketStream","websocket send message error and socket status is "+this.socketStatus):this.player.debug.error("WebsocketStream","websocket send message socket is null")}resetFetchStream(){this._closeWebSocket(),this._createWebSocket()}getStreamType(){return M}}class ri extends t{constructor(e){super(),(this.player=e).debug.log("HlsStream","init")}destroy(){this.off(),this.player.debug.log("HlsStream","destroy")}fetchStream(e){var t=this.player["hlsDecoder"];this.player._times.streamStart=m(),t.loadSource(e).then(()=>{this.player.debug.log("HlsStream","loadSource success"),this.emit(v.streamSuccess)}).catch(e=>{this.emit(A.hlsError,e),this.emit(v.error,A.hlsError)})}getStreamType(){return"hls"}}class si extends t{constructor(e){super(),this.player=e,this.webrctUrl=null,e.debug.log("WebrtcStream","init")}destroy(){this.webrctUrl=null,this.off(),this.player.debug.log("WebrtcStream","destroy")}fetchStream(e){var t=this.player["webrtc"];this.player._times.streamStart=m(),this.webrctUrl=e.replace("webrtc:",window.location.protocol),t.loadSource(this.webrctUrl).then(()=>{this.player.debug.log("WebrtcStream","loadSource success"),this.emit(v.streamSuccess)}).catch(e=>{this.emit(A.webrtcError,e),this.emit(v.error,A.webrtcError)})}getStreamType(){return"webrtc"}}class ai extends t{constructor(t){super(),this.player=t,this.transport=null,this.wtUrl=null,this.streamRate=Je(e=>{t.emit(v.kBps,(e/1024).toFixed(2))}),this.streamRateInterval=null,t.debug.log("WebTransportLoader","init")}destroy(){this.abort(),this.off(),this.player.debug.log("WebTransportLoader","destroy")}startStreamRateInterval(){this.stopStreamRateInterval(),this.streamRateInterval=setInterval(()=>{this.streamRate&&this.streamRate(0)},1e3)}stopStreamRateInterval(){this.streamRateInterval&&(clearInterval(this.streamRateInterval),this.streamRateInterval=null)}_createWebTransport(){const e=this.player,{events:{},demux:t}=e;try{this.transport=new WebTransport(this.wtUrl),this.transport.ready.then(()=>{this.emit(v.streamSuccess),this.startStreamRateInterval(),this.transport.createBidirectionalStream().then(e=>{e.readable.pipeTo(new WritableStream(t.input))})}).catch(e=>{this.player.debug.warn("WebTransportLoader","_createWebTransport-ready",e)})}catch(e){this.player.debug.warn("WebTransportLoader","_createWebTransport",e)}}fetchStream(e){this.player._times.streamStart=m(),this.wtUrl=e.replace(/^wt/,"https"),this._createWebTransport()}abort(){if(this.transport)try{this.transport.close(),this.transport=null}catch(e){this.transport=null}}getStreamType(){return"webTransport"}}class ni extends t{constructor(e){super(),this.player=e,this.workUrl=null,e.debug.log("WorkerStream","init")}destroy(){this.workUrl=null,this.player.debug.log("WorkerStream","destroy")}sendMessage(e){this.player.decoderWorker.workerSendMessage(e)}fetchStream(e){this.workUrl=e,this.player._times.streamStart=m(),this.player.decoderWorker.workerFetchStream(e)}getStreamType(){var e=this.player._opt.protocol;return U+" "+(2===e?_:M)}}class oi{constructor(e){return new(oi.getLoaderFactory(e._opt))(e)}static getLoaderFactory(e){var{protocol:t,useWasm:i,playType:r}=e;return 2===t?r!==n||i&&!At(e)?ni:ti:1===t?r!==n||i&&!At(e)?ni:ii:3===t?ri:4===t?si:5===t?ai:void 0}}var li=He(function(e){function T(i,s){if(!i)throw"First parameter is required.";s=new f(i,s=s||{type:"video"});var a=this;function t(e){e&&(s.initCallback=function(){e(),e=s.initCallback=null});var t=new A(i,s);(u=new t(i,s)).record(),c("recording"),s.disableLogs||console.log("Initialized recorderType:",u.constructor.name,"for output-type:",s.type)}function n(r){function e(e){if(u){Object.keys(u).forEach(function(e){"function"!=typeof u[e]&&(a[e]=u[e])});var t,i=u.blob;if(!i){if(!e)throw"Recording failed.";u.blob=i=e}if(i&&!s.disableLogs&&console.log(i.type,"->",y(i.size)),r){try{t=w.createObjectURL(i)}catch(e){}"function"==typeof r.call?r.call(a,t):r(t)}s.autoWriteToDisk&&l(function(e){var t={};t[s.type+"Blob"]=e,L.Store(t)})}else"function"==typeof r.call?r.call(a,""):r("")}r=r||function(){},u?"paused"===a.state?(a.resumeRecording(),setTimeout(function(){n(r)},1)):("recording"===a.state||s.disableLogs||console.warn('Recording state should be: "recording", however current state is: ',a.state),s.disableLogs||console.log("Stopped recording "+s.type+" stream."),"gif"!==s.type?u.stop(e):(u.stop(),e()),c("stopped")):d()}function o(e){postMessage((new FileReaderSync).readAsDataURL(e))}function l(t,e){if(!t)throw"Pass a callback function over getDataURL.";var i,r=(e||u||{}).blob;r?"undefined"==typeof Worker||navigator.mozGetUserMedia?((i=new FileReader).readAsDataURL(r),i.onload=function(e){t(e.target.result)}):((i=function(e){try{var t=w.createObjectURL(new Blob([e.toString(),"this.onmessage = function (eee) {"+e.name+"(eee.data);}"],{type:"application/javascript"})),i=new Worker(t);return w.revokeObjectURL(t),i}catch(e){}}(o)).onmessage=function(e){t(e.data)},i.postMessage(r)):(s.disableLogs||console.warn("Blob encoder did not finish its job yet."),setTimeout(function(){l(t,e)},1e3))}function r(e){e=e||0,"paused"!==a.state?"stopped"!==a.state&&(e>=a.recordingDuration?n(a.onRecordingStopped):(e+=1e3,setTimeout(function(){r(e)},1e3))):setTimeout(function(){r(e)},1e3)}function c(e){a&&(a.state=e,"function"==typeof a.onStateChanged.call?a.onStateChanged.call(a,e):a.onStateChanged(e))}var u,e='It seems that recorder is destroyed or "startRecording" is not invoked for '+s.type+" recorder.";function d(){!0!==s.disableLogs&&console.warn(e)}var h={startRecording:function(e){return s.disableLogs||console.log("RecordRTC version: ",a.version),(s=e?new f(i,e):s).disableLogs||console.log("started recording "+s.type+" stream."),u?(u.clearRecordedData(),u.record(),c("recording"),a.recordingDuration&&r()):t(function(){a.recordingDuration&&r()}),a},stopRecording:n,pauseRecording:function(){u?"recording"===a.state?(c("paused"),u.pause(),s.disableLogs||console.log("Paused recording.")):s.disableLogs||console.warn("Unable to pause the recording. Recording state: ",a.state):d()},resumeRecording:function(){u?"paused"===a.state?(c("recording"),u.resume(),s.disableLogs||console.log("Resumed recording.")):s.disableLogs||console.warn("Unable to resume the recording. Recording state: ",a.state):d()},initRecorder:t,setRecordingDuration:function(e,t){if(void 0===e)throw"recordingDuration is required.";if("number"!=typeof e)throw"recordingDuration must be a number.";return a.recordingDuration=e,a.onRecordingStopped=t||function(){},{onRecordingStopped:function(e){a.onRecordingStopped=e}}},clearRecordedData:function(){u?(u.clearRecordedData(),s.disableLogs||console.log("Cleared old recorded data.")):d()},getBlob:function(){if(u)return u.blob;d()},getDataURL:l,toURL:function(){if(u)return w.createObjectURL(u.blob);d()},getInternalRecorder:function(){return u},save:function(e){u?v(u.blob,e):d()},getFromDisk:function(e){u?T.getFromDisk(s.type,e):d()},setAdvertisementArray:function(e){s.advertisement=[];for(var t=e.length,i=0;i<t;i++)s.advertisement.push({duration:i,image:e[i]})},blob:null,bufferSize:0,sampleRate:0,buffer:null,reset:function(){"recording"!==a.state||s.disableLogs||console.warn("Stop an active recorder."),u&&"function"==typeof u.clearRecordedData&&u.clearRecordedData(),u=null,c("inactive"),a.blob=null},onStateChanged:function(e){s.disableLogs||console.log("Recorder state changed:",e)},state:"inactive",getState:function(){return a.state},destroy:function(){var e=s.disableLogs;s={disableLogs:!0},a.reset(),c("destroyed"),h=a=null,b.AudioContextConstructor&&(b.AudioContextConstructor.close(),b.AudioContextConstructor=null),s.disableLogs=e,s.disableLogs||console.log("RecordRTC is destroyed.")},version:"5.6.2"};if(this){for(var p in h)this[p]=h[p];a=this}else a=h;return h}function f(e,t){return t.recorderType||t.type||(t.audio&&t.video?t.type="video":t.audio&&!t.video&&(t.type="audio")),t.recorderType&&!t.type&&(t.recorderType===h||t.recorderType===r||t.recorderType===P?t.type="video":t.recorderType===I?t.type="gif":t.recorderType===c?t.type="audio":t.recorderType===E&&(k(e,"audio").length&&k(e,"video").length||!k(e,"audio").length&&k(e,"video").length?t.type="video":k(e,"audio").length&&!k(e,"video").length&&(t.type="audio"))),"undefined"!=typeof MediaRecorder&&"requestData"in MediaRecorder.prototype&&(t.mimeType||(t.mimeType="video/webm"),t.type||(t.type=t.mimeType.split("/")[0]),t.bitsPerSecond),t.type||(t.mimeType&&(t.type=t.mimeType.split("/")[0]),t.type)||(t.type="audio"),t}function A(e,t){var i;return(u||s||n)&&(i=c),"undefined"!=typeof MediaRecorder&&"requestData"in MediaRecorder.prototype&&!u&&(i=E),"video"===t.type&&(u||n)&&(i=h,"undefined"!=typeof ReadableStream)&&(i=P),"gif"===t.type&&(i=I),"canvas"===t.type&&(i=r),d()&&i!==r&&i!==I&&"undefined"!=typeof MediaRecorder&&"requestData"in MediaRecorder.prototype&&(k(e,"video").length||k(e,"audio").length)&&("audio"===t.type?"function"==typeof MediaRecorder.isTypeSupported&&MediaRecorder.isTypeSupported("audio/webm")&&(i=E):"function"==typeof MediaRecorder.isTypeSupported&&MediaRecorder.isTypeSupported("video/webm")&&(i=E)),e instanceof Array&&e.length&&(i=x),t.recorderType&&(i=t.recorderType),!t.disableLogs&&i&&i.name&&console.log("Using recorderType:",i.name||i.constructor.name),i=!i&&l?E:i}function t(n){this.addStream=function(e){e&&(n=e)},this.mediaType={audio:!0,video:!0},this.startRecording=function(){var e,t,i,r,s=this.mediaType,a=this.mimeType||{audio:null,video:null,gif:null};if("function"!=typeof s.audio&&d()&&!k(n,"audio").length&&(s.audio=!1),"function"!=typeof s.video&&d()&&!k(n,"video").length&&(s.video=!1),"function"!=typeof s.gif&&d()&&!k(n,"video").length&&(s.gif=!1),!s.audio&&!s.video&&!s.gif)throw"MediaStream must have either audio or video tracks.";s.audio&&(e=null,"function"==typeof s.audio&&(e=s.audio),this.audioRecorder=new T(n,{type:"audio",bufferSize:this.bufferSize,sampleRate:this.sampleRate,numberOfAudioChannels:this.numberOfAudioChannels||2,disableLogs:this.disableLogs,recorderType:e,mimeType:a.audio,timeSlice:this.timeSlice,onTimeStamp:this.onTimeStamp}),s.video||this.audioRecorder.startRecording()),s.video&&(e=null,"function"==typeof s.video&&(e=s.video),t=n,d()&&s.audio&&"function"==typeof s.audio&&(r=k(n,"video")[0],o?((t=new g).addTrack(r),e&&e===h&&(e=E)):(t=new g).addTrack(r)),this.videoRecorder=new T(t,{type:"video",video:this.video,canvas:this.canvas,frameInterval:this.frameInterval||10,disableLogs:this.disableLogs,recorderType:e,mimeType:a.video,timeSlice:this.timeSlice,onTimeStamp:this.onTimeStamp,workerPath:this.workerPath,webAssemblyPath:this.webAssemblyPath,frameRate:this.frameRate,bitrate:this.bitrate}),s.audio||this.videoRecorder.startRecording()),s.audio&&s.video&&(i=this,r=!0===d(),!0===(r=s.audio instanceof c&&s.video||!0!==s.audio&&!0!==s.video&&s.audio!==s.video?!1:r)?(i.audioRecorder=null,i.videoRecorder.startRecording()):i.videoRecorder.initRecorder(function(){i.audioRecorder.initRecorder(function(){i.videoRecorder.startRecording(),i.audioRecorder.startRecording()})})),s.gif&&(e=null,"function"==typeof s.gif&&(e=s.gif),this.gifRecorder=new T(n,{type:"gif",frameRate:this.frameRate||200,quality:this.quality||10,disableLogs:this.disableLogs,recorderType:e,mimeType:a.gif}),this.gifRecorder.startRecording())},this.stopRecording=function(t){t=t||function(){},this.audioRecorder&&this.audioRecorder.stopRecording(function(e){t(e,"audio")}),this.videoRecorder&&this.videoRecorder.stopRecording(function(e){t(e,"video")}),this.gifRecorder&&this.gifRecorder.stopRecording(function(e){t(e,"gif")})},this.pauseRecording=function(){this.audioRecorder&&this.audioRecorder.pauseRecording(),this.videoRecorder&&this.videoRecorder.pauseRecording(),this.gifRecorder&&this.gifRecorder.pauseRecording()},this.resumeRecording=function(){this.audioRecorder&&this.audioRecorder.resumeRecording(),this.videoRecorder&&this.videoRecorder.resumeRecording(),this.gifRecorder&&this.gifRecorder.resumeRecording()},this.getBlob=function(e){var t={};return this.audioRecorder&&(t.audio=this.audioRecorder.getBlob()),this.videoRecorder&&(t.video=this.videoRecorder.getBlob()),this.gifRecorder&&(t.gif=this.gifRecorder.getBlob()),e&&e(t),t},this.destroy=function(){this.audioRecorder&&(this.audioRecorder.destroy(),this.audioRecorder=null),this.videoRecorder&&(this.videoRecorder.destroy(),this.videoRecorder=null),this.gifRecorder&&(this.gifRecorder.destroy(),this.gifRecorder=null)},this.getDataURL=function(i){function r(e,t){var i;"undefined"!=typeof Worker?((i=function(e){var t,e=w.createObjectURL(new Blob([e.toString(),"this.onmessage = function (eee) {"+e.name+"(eee.data);}"],{type:"application/javascript"})),i=new Worker(e);if(void 0!==w)t=w;else{if("undefined"==typeof webkitURL)throw"Neither URL nor webkitURL detected.";t=webkitURL}return t.revokeObjectURL(e),i}(function(e){postMessage((new FileReaderSync).readAsDataURL(e))})).onmessage=function(e){t(e.data)},i.postMessage(e)):((i=new FileReader).readAsDataURL(e),i.onload=function(e){t(e.target.result)})}this.getBlob(function(e){e.audio&&e.video?r(e.audio,function(t){r(e.video,function(e){i({audio:t,video:e})})}):e.audio?r(e.audio,function(e){i({audio:e})}):e.video&&r(e.video,function(e){i({video:e})})})},this.writeToDisk=function(){T.writeToDisk({audio:this.audioRecorder,video:this.videoRecorder,gif:this.gifRecorder})},this.save=function(e){(e=e||{audio:!0,video:!0,gif:!0}).audio&&this.audioRecorder&&this.audioRecorder.save("string"==typeof e.audio?e.audio:""),e.video&&this.videoRecorder&&this.videoRecorder.save("string"==typeof e.video?e.video:""),e.gif&&this.gifRecorder&&this.gifRecorder.save("string"==typeof e.gif?e.gif:"")}}T.version="5.6.2",(e.exports=T).getFromDisk=function(i,r){if(!r)throw"callback is mandatory.";console.log("Getting recorded "+("all"===i?"blobs":i+" blob ")+" from disk!"),L.Fetch(function(e,t){"all"!==i&&t===i+"Blob"&&r&&r(e),"all"===i&&r&&r(e,t.replace("Blob",""))})},T.writeToDisk=function(e){console.log("Writing recorded blob(s) to disk!"),(e=e||{}).audio&&e.video&&e.gif?e.audio.getDataURL(function(i){e.video.getDataURL(function(t){e.gif.getDataURL(function(e){L.Store({audioBlob:i,videoBlob:t,gifBlob:e})})})}):e.audio&&e.video?e.audio.getDataURL(function(t){e.video.getDataURL(function(e){L.Store({audioBlob:t,videoBlob:e})})}):e.audio&&e.gif?e.audio.getDataURL(function(t){e.gif.getDataURL(function(e){L.Store({audioBlob:t,gifBlob:e})})}):e.video&&e.gif?e.video.getDataURL(function(t){e.gif.getDataURL(function(e){L.Store({videoBlob:t,gifBlob:e})})}):e.audio?e.audio.getDataURL(function(e){L.Store({audioBlob:e})}):e.video?e.video.getDataURL(function(e){L.Store({videoBlob:e})}):e.gif&&e.gif.getDataURL(function(e){L.Store({gifBlob:e})})},t.getFromDisk=T.getFromDisk,t.writeToDisk=T.writeToDisk,T.MRecordRTC=t,(e=void 0!==F?F:null)&&"undefined"==typeof window&&void 0!==F&&(F.navigator={userAgent:"Fake/5.0 (FakeOS) AppleWebKit/123 (KHTML, like Gecko) Fake/12.3.4567.89 Fake/123.45",getUserMedia:function(){}},F.console||(F.console={}),void 0!==F.console.log&&void 0!==F.console.error||(F.console.error=F.console.log=F.console.log||function(){console.log(arguments)}),"undefined"==typeof document&&(e.document={documentElement:{appendChild:function(){return""}}},document.createElement=document.captureStream=document.mozCaptureStream=function(){var e={getContext:function(){return e},play:function(){},pause:function(){},drawImage:function(){},toDataURL:function(){return""},style:{}};return e},e.HTMLVideoElement=function(){}),"undefined"==typeof location&&(e.location={protocol:"file:",href:"",hash:""}),"undefined"==typeof screen&&(e.screen={width:0,height:0}),void 0===w&&(e.URL={createObjectURL:function(){return""},revokeObjectURL:function(){return""}}),e.window=F);var a,p=window.requestAnimationFrame,m=(void 0===p&&("undefined"!=typeof webkitRequestAnimationFrame?p=webkitRequestAnimationFrame:"undefined"!=typeof mozRequestAnimationFrame?p=mozRequestAnimationFrame:"undefined"!=typeof msRequestAnimationFrame?p=msRequestAnimationFrame:void 0===p&&(a=0,p=function(e,t){var i=(new Date).getTime(),r=Math.max(0,16-(i-a)),s=setTimeout(function(){e(i+r)},r);return a=i+r,s})),window.cancelAnimationFrame),e=(void 0===m&&("undefined"!=typeof webkitCancelAnimationFrame?m=webkitCancelAnimationFrame:"undefined"!=typeof mozCancelAnimationFrame?m=mozCancelAnimationFrame:"undefined"!=typeof msCancelAnimationFrame?m=msCancelAnimationFrame:void 0===m&&(m=function(e){clearTimeout(e)})),window.AudioContext),w=(void 0===e&&("undefined"!=typeof webkitAudioContext&&(e=webkitAudioContext),"undefined"!=typeof mozAudioContext)&&(e=mozAudioContext),window.URL),s=(void 0===w&&"undefined"!=typeof webkitURL&&(w=webkitURL),"undefined"!=typeof navigator&&void 0===navigator.getUserMedia&&(void 0!==navigator.webkitGetUserMedia&&(navigator.getUserMedia=navigator.webkitGetUserMedia),void 0!==navigator.mozGetUserMedia)&&(navigator.getUserMedia=navigator.mozGetUserMedia),!(-1===navigator.userAgent.indexOf("Edge")||!navigator.msSaveBlob&&!navigator.msSaveOrOpenBlob)),n=!!window.opera||-1!==navigator.userAgent.indexOf("OPR/"),o=-1<navigator.userAgent.toLowerCase().indexOf("firefox")&&"netscape"in window&&/ rv:/.test(navigator.userAgent),u=!n&&!s&&!!navigator.webkitGetUserMedia||i()||-1!==navigator.userAgent.toLowerCase().indexOf("chrome/"),l=/^((?!chrome|android).)*safari/i.test(navigator.userAgent),g=(l&&!u&&-1!==navigator.userAgent.indexOf("CriOS")&&(u=!(l=!1)),window.MediaStream);function y(e){var t;return 0===e?"0 Bytes":(t=parseInt(Math.floor(Math.log(e)/Math.log(1e3)),10),(e/Math.pow(1e3,t)).toPrecision(3)+" "+["Bytes","KB","MB","GB","TB"][t])}function v(e,t){if(!e)throw"Blob object is required.";if(!e.type)try{e.type="video/webm"}catch(e){}var i=(e.type||"video/webm").split("/")[1],r=(-1!==i.indexOf(";")&&(i=i.split(";")[0]),t&&-1!==t.indexOf(".")&&(t=(r=t.split("."))[0],i=r[1]),(t||Math.round(9999999999*Math.random())+888888888)+"."+i);return void 0!==navigator.msSaveOrOpenBlob?navigator.msSaveOrOpenBlob(e,r):void 0!==navigator.msSaveBlob?navigator.msSaveBlob(e,r):((t=document.createElement("a")).href=w.createObjectURL(e),t.download=r,t.style="display:none;opacity:0;color:transparent;",(document.body||document.documentElement).appendChild(t),"function"==typeof t.click?t.click():(t.target="_blank",t.dispatchEvent(new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0}))),void w.revokeObjectURL(t.href))}function i(){return"undefined"!=typeof window&&"object"==typeof window.process&&"renderer"===window.process.type||!("undefined"==typeof process||"object"!=typeof process.versions||!process.versions.electron)||"object"==typeof navigator&&"string"==typeof navigator.userAgent&&0<=navigator.userAgent.indexOf("Electron")}function k(e,t){return e&&e.getTracks?e.getTracks().filter(function(e){return e.kind===(t||"audio")}):[]}function S(e,t){!("srcObject"in t)&&"mozSrcObject"in t?t.mozSrcObject=e:t.srcObject=e}void 0!==(g=void 0===g&&"undefined"!=typeof webkitMediaStream?webkitMediaStream:g)&&void 0===g.prototype.stop&&(g.prototype.stop=function(){this.getTracks().forEach(function(e){e.stop()})}),T.invokeSaveAsDialog=v,T.getTracks=k,T.getSeekableBlob=function(e,r){if("undefined"==typeof EBML)throw new Error("Please link: https://www.webrtc-experiment.com/EBML.js");var s=new EBML.Reader,a=new EBML.Decoder,n=EBML.tools,t=new FileReader;t.onload=function(e){a.decode(this.result).forEach(function(e){s.read(e)}),s.stop();var t=n.makeMetadataSeekable(s.metadatas,s.duration,s.cues),i=this.result.slice(s.metadataSize),t=new Blob([t,i],{type:"video/webm"});r(t)},t.readAsArrayBuffer(e)},T.bytesToSize=y,T.isElectron=i;var b={};function d(){var e,t,i,r;return!!(o||l||s)||(t=navigator.userAgent,i=""+parseFloat(navigator.appVersion),r=parseInt(navigator.appVersion,10),(u||n)&&(e=t.indexOf("Chrome"),i=t.substring(e+7)),-1!==(t=(i=-1!==(t=i.indexOf(";"))?i.substring(0,t):i).indexOf(" "))&&(i=i.substring(0,t)),r=parseInt(""+i,10),isNaN(r)&&(i=""+parseFloat(navigator.appVersion),r=parseInt(navigator.appVersion,10)),49<=r)}function E(i,r){var e,s=this;if(void 0===i)throw'First argument "MediaStream" is required.';if("undefined"==typeof MediaRecorder)throw"Your browser does not support the Media Recorder API. Please try other modules e.g. WhammyRecorder or StereoAudioRecorder.";"audio"===(r=r||{mimeType:"video/webm"}).type&&(k(i,"video").length&&k(i,"audio").length&&(navigator.mozGetUserMedia?(e=new g).addTrack(k(i,"audio")[0]):e=new g(k(i,"audio")),i=e),r.mimeType&&-1!==r.mimeType.toString().toLowerCase().indexOf("audio")||(r.mimeType=u?"audio/webm":"audio/ogg"),r.mimeType)&&"audio/ogg"!==r.mimeType.toString().toLowerCase()&&navigator.mozGetUserMedia&&(r.mimeType="audio/ogg");var a,n=[];function o(){s.timestamps.push((new Date).getTime()),"function"==typeof r.onTimeStamp&&r.onTimeStamp(s.timestamps[s.timestamps.length-1],s.timestamps)}function l(e){return a&&a.mimeType?a.mimeType:e.mimeType||"video/webm"}function t(){n=[],a=null,s.timestamps=[]}this.getArrayOfBlobs=function(){return n},this.record=function(){s.blob=null,s.clearRecordedData(),s.timestamps=[],c=[],n=[];var t=r;r.disableLogs||console.log("Passing following config over MediaRecorder API.",t),a=a&&null,u&&!d()&&(t="video/vp8"),"function"==typeof MediaRecorder.isTypeSupported&&t.mimeType&&!MediaRecorder.isTypeSupported(t.mimeType)&&(r.disableLogs||console.warn("MediaRecorder API seems unable to record mimeType:",t.mimeType),t.mimeType="audio"===r.type?"audio/webm":"video/webm");try{a=new MediaRecorder(i,t),r.mimeType=t.mimeType}catch(e){a=new MediaRecorder(i)}t.mimeType&&!MediaRecorder.isTypeSupported&&"canRecordMimeType"in a&&!1===a.canRecordMimeType(t.mimeType)&&(r.disableLogs||console.warn("MediaRecorder API seems unable to record mimeType:",t.mimeType)),a.ondataavailable=function(e){e.data&&c.push("ondataavailable: "+y(e.data.size)),"number"!=typeof r.timeSlice?!e.data||!e.data.size||e.data.size<100||s.blob?s.recordingCallback&&(s.recordingCallback(new Blob([],{type:l(t)})),s.recordingCallback=null):(s.blob=r.getNativeBlob?e.data:new Blob([e.data],{type:l(t)}),s.recordingCallback&&(s.recordingCallback(s.blob),s.recordingCallback=null)):e.data&&e.data.size&&(n.push(e.data),o(),"function"==typeof r.ondataavailable)&&(e=r.getNativeBlob?e.data:new Blob([e.data],{type:l(t)}),r.ondataavailable(e))},a.onstart=function(){c.push("started")},a.onpause=function(){c.push("paused")},a.onresume=function(){c.push("resumed")},a.onstop=function(){c.push("stopped")},a.onerror=function(e){e&&(e.name||(e.name="UnknownError"),c.push("error: "+e),r.disableLogs||(-1!==e.name.toString().toLowerCase().indexOf("invalidstate")?console.error("The MediaRecorder is not in a state in which the proposed operation is allowed to be executed.",e):-1!==e.name.toString().toLowerCase().indexOf("notsupported")?console.error("MIME type (",t.mimeType,") is not supported.",e):-1!==e.name.toString().toLowerCase().indexOf("security")?console.error("MediaRecorder security error",e):"OutOfMemory"===e.name?console.error("The UA has exhaused the available memory. User agents SHOULD provide as much additional information as possible in the message attribute.",e):"IllegalStreamModification"===e.name?console.error("A modification to the stream has occurred that makes it impossible to continue recording. An example would be the addition of a Track while recording is occurring. User agents SHOULD provide as much additional information as possible in the message attribute.",e):"OtherRecordingError"===e.name?console.error("Used for an fatal error other than those listed above. User agents SHOULD provide as much additional information as possible in the message attribute.",e):"GenericError"===e.name?console.error("The UA cannot provide the codec or recording option that has been requested.",e):console.error("MediaRecorder Error",e)),!s.manuallyStopped&&a&&"inactive"===a.state?(delete r.timeslice,a.start(6e5)):setTimeout(void 0,1e3),"inactive"!==a.state)&&"stopped"!==a.state&&a.stop()},"number"==typeof r.timeSlice?(o(),a.start(r.timeSlice)):a.start(36e5),r.initCallback&&r.initCallback()},this.timestamps=[],this.stop=function(e){e=e||function(){},s.manuallyStopped=!0,a&&(this.recordingCallback=e,"recording"===a.state&&a.stop(),"number"==typeof r.timeSlice)&&setTimeout(function(){s.blob=new Blob(n,{type:l(r)}),s.recordingCallback(s.blob)},100)},this.pause=function(){a&&"recording"===a.state&&a.pause()},this.resume=function(){a&&"paused"===a.state&&a.resume()},this.clearRecordedData=function(){a&&"recording"===a.state&&s.stop(t),t()},this.getInternalRecorder=function(){return a},this.blob=null,this.getState=function(){return a&&a.state||"inactive"};var c=[];this.getAllStates=function(){return c},void 0===r.checkForInactiveTracks&&(r.checkForInactiveTracks=!1),s=this,function e(){if(a&&!1!==r.checkForInactiveTracks)return!1===function(){if("active"in i){if(!i.active)return!1}else if("ended"in i&&i.ended)return!1;return!0}()?(r.disableLogs||console.log("MediaStream seems stopped."),void s.stop()):void setTimeout(e,1e3)}(),this.name="MediaStreamRecorder",this.toString=function(){return this.name}}function c(e,r){if(!k(e,"audio").length)throw"Your stream has no audio tracks.";var s,a=this,n=[],o=[],l=!1,c=0,u=2,d=(r=r||{}).desiredSampRate;function h(){if(!1!==r.checkForInactiveTracks)if("active"in e){if(!e.active)return!1}else if("ended"in e&&e.ended)return!1;return!0}function t(e,t){function i(e,t){var i,r=e.numberOfAudioChannels,s=e.leftBuffers.slice(0),a=e.rightBuffers.slice(0),n=e.sampleRate,o=e.internalInterleavedLength,e=e.desiredSampRate;function l(e,t,i){var r=Math.round(e.length*(t/i)),s=[],a=Number((e.length-1)/(r-1));s[0]=e[0];for(var n,o=1;o<r-1;o++){var l=o*a,c=Number(Math.floor(l)).toFixed(),u=Number(Math.ceil(l)).toFixed();s[o]=(n=e[c],u=e[u],n+(u-n)*(l-c))}return s[r-1]=e[e.length-1],s}function c(e,t){for(var i=new Float64Array(t),r=0,s=e.length,a=0;a<s;a++){var n=e[a];i.set(n,r),r+=n.length}return i}function u(e,t,i){for(var r=i.length,s=0;s<r;s++)e.setUint8(t+s,i.charCodeAt(s))}2===r&&(s=c(s,o),a=c(a,o),e)&&(s=l(s,e,n),a=l(a,e,n)),1===r&&(s=c(s,o),e)&&(s=l(s,e,n)),e&&(n=e),2===r&&(i=function(e,t){for(var i=e.length+t.length,r=new Float64Array(i),s=0,a=0;a<i;)r[a++]=e[s],r[a++]=t[s],s++;return r}(s,a));var o=(i=1===r?s:i).length,e=new ArrayBuffer(44+2*o),d=new DataView(e);u(d,0,"RIFF"),d.setUint32(4,36+2*o,!0),u(d,8,"WAVE"),u(d,12,"fmt "),d.setUint32(16,16,!0),d.setUint16(20,1,!0),d.setUint16(22,r,!0),d.setUint32(24,n,!0),d.setUint32(28,n*r*2,!0),d.setUint16(32,2*r,!0),d.setUint16(34,16,!0),u(d,36,"data"),d.setUint32(40,2*o,!0);for(var h=o,p=44,f=0;f<h;f++)d.setInt16(p,32767*i[f],!0),p+=2;if(t)return t({buffer:e,view:d});postMessage({buffer:e,view:d})}var r,s,a;e.noWorker?i(e,function(e){t(e.buffer,e.view)}):(r=i,r=w.createObjectURL(new Blob([r.toString(),";this.onmessage = function (eee) {"+r.name+"(eee.data);}"],{type:"application/javascript"})),(s=new Worker(r)).workerURL=r,(a=s).onmessage=function(e){t(e.data.buffer,e.data.view),w.revokeObjectURL(a.workerURL),a.terminate()},a.postMessage(e))}!0===r.leftChannel&&(u=1),(!(u=1===r.numberOfAudioChannels?1:u)||u<1)&&(u=2),r.disableLogs||console.log("StereoAudioRecorder is set to record number of channels: "+u),void 0===r.checkForInactiveTracks&&(r.checkForInactiveTracks=!0),this.record=function(){if(!1===h())throw"Please make sure MediaStream is active.";y(),b=g=!1,l=!0,void 0!==r.timeSlice&&S()},this.stop=function(i){i=i||function(){},l=!1,t({desiredSampRate:d,sampleRate:m,numberOfAudioChannels:u,internalInterleavedLength:c,leftBuffers:n,rightBuffers:1===u?[]:o,noWorker:r.noWorker},function(e,t){a.blob=new Blob([t],{type:"audio/wav"}),a.buffer=new ArrayBuffer(t.buffer.byteLength),a.view=t,a.sampleRate=d||m,a.bufferSize=A,a.length=c,b=!1,i&&i(a.blob)})},(T.Storage=void 0===T.Storage?{AudioContextConstructor:null,AudioContext:window.AudioContext||window.webkitAudioContext}:T.Storage).AudioContextConstructor&&"closed"!==T.Storage.AudioContextConstructor.state||(T.Storage.AudioContextConstructor=new T.Storage.AudioContext);var i=T.Storage.AudioContextConstructor,p=i.createMediaStreamSource(e),f=[0,256,512,1024,2048,4096,8192,16384],A=void 0===r.bufferSize?4096:r.bufferSize;if(-1!==f.indexOf(A)||r.disableLogs||console.log("Legal values for buffer-size are "+JSON.stringify(f,null,"\t")),i.createJavaScriptNode)s=i.createJavaScriptNode(A,u,u);else{if(!i.createScriptProcessor)throw"WebAudio API has no support on this browser.";s=i.createScriptProcessor(A,u,u)}p.connect(s),r.bufferSize||(A=s.bufferSize);var m=void 0!==r.sampleRate?r.sampleRate:i.sampleRate||44100,g=((m<22050||96e3<m)&&!r.disableLogs&&console.log("sample-rate must be under range 22050 and 96000."),r.disableLogs||r.desiredSampRate&&console.log("Desired sample-rate: "+r.desiredSampRate),!1);function y(){n=[],c=0,g=l=b=!(o=[]),i=null,a.leftchannel=n,a.rightchannel=o,a.numberOfAudioChannels=u,a.desiredSampRate=d,a.sampleRate=m,a.recordingLength=c,E={left:[],right:[],recordingLength:0}}function v(){s&&(s.onaudioprocess=null,s.disconnect(),s=null),p&&(p.disconnect(),p=null),y()}this.pause=function(){g=!0},this.resume=function(){if(!1===h())throw"Please make sure MediaStream is active.";l?g=!1:(r.disableLogs||console.log("Seems recording has been restarted."),this.record())},this.clearRecordedData=function(){r.checkForInactiveTracks=!1,l&&this.stop(v),v()},this.name="StereoAudioRecorder";var b=!(this.toString=function(){return this.name}),E=(s.onaudioprocess=function(e){var t,i;g||(!1===h()&&(r.disableLogs||console.log("MediaStream seems stopped."),s.disconnect(),l=!1),l?(b||(b=!0,r.onAudioProcessStarted&&r.onAudioProcessStarted(),r.initCallback&&r.initCallback()),t=e.inputBuffer.getChannelData(0),t=new Float32Array(t),n.push(t),2===u&&(e=e.inputBuffer.getChannelData(1),i=new Float32Array(e),o.push(i)),c+=A,a.recordingLength=c,void 0!==r.timeSlice&&(E.recordingLength+=A,E.left.push(t),2===u)&&E.right.push(i)):p&&(p.disconnect(),p=null))},i.createMediaStreamDestination?s.connect(i.createMediaStreamDestination()):s.connect(i.destination),this.leftchannel=n,this.rightchannel=o,this.numberOfAudioChannels=u,this.desiredSampRate=d,this.sampleRate=m,a.recordingLength=c,{left:[],right:[],recordingLength:0});function S(){l&&"function"==typeof r.ondataavailable&&void 0!==r.timeSlice&&(E.left.length?(t({desiredSampRate:d,sampleRate:m,numberOfAudioChannels:u,internalInterleavedLength:E.recordingLength,leftBuffers:E.left,rightBuffers:1===u?[]:E.right},function(e,t){t=new Blob([t],{type:"audio/wav"});r.ondataavailable(t),setTimeout(S,r.timeSlice)}),E={left:[],right:[],recordingLength:0}):setTimeout(S,r.timeSlice))}}function r(s,a){if("undefined"==typeof html2canvas)throw"Please link: https://www.webrtc-experiment.com/screenshot.js";(a=a||{}).frameInterval||(a.frameInterval=10);var r=!1;["captureStream","mozCaptureStream","webkitCaptureStream"].forEach(function(e){e in document.createElement("canvas")&&(r=!0)});var i,n,o,e=!(!window.webkitRTCPeerConnection&&!window.webkitGetUserMedia||!window.chrome),t=50,l=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);if(e&&l&&l[2]&&(t=parseInt(l[2],10)),e&&t<52&&(r=!1),r=a.useWhammyRecorder?!1:r)if(a.disableLogs||console.log("Your browser supports both MediRecorder API and canvas.captureStream!"),s instanceof HTMLCanvasElement)i=s;else{if(!(s instanceof CanvasRenderingContext2D))throw"Please pass either HTMLCanvasElement or CanvasRenderingContext2D.";i=s.canvas}else!navigator.mozGetUserMedia||a.disableLogs||console.error("Canvas recording is NOT supported in Firefox.");this.record=function(){if(o=!0,r&&!a.useWhammyRecorder){var e;"captureStream"in i?e=i.captureStream(25):"mozCaptureStream"in i?e=i.mozCaptureStream(25):"webkitCaptureStream"in i&&(e=i.webkitCaptureStream(25));try{var t=new g;t.addTrack(k(e,"video")[0]),e=t}catch(e){}if(!e)throw"captureStream API are NOT available.";(n=new E(e,{mimeType:a.mimeType||"video/webm"})).record()}else p.frames=[],h=(new Date).getTime(),d();a.initCallback&&a.initCallback()},this.getWebPImages=function(e){var r;"canvas"===s.nodeName.toLowerCase()&&(r=p.frames.length,p.frames.forEach(function(e,t){var i=r-t,i=(a.disableLogs||console.log(i+"/"+r+" frames remaining"),a.onEncodingCallback&&a.onEncodingCallback(i,r),e.image.toDataURL("image/webp",1));p.frames[t].image=i}),a.disableLogs||console.log("Generating WebM")),e()};var c=!(this.stop=function(t){o=!1;var i=this;r&&n?n.stop(t):this.getWebPImages(function(){p.compile(function(e){a.disableLogs||console.log("Recording finished!"),i.blob=e,i.blob.forEach&&(i.blob=new Blob([],{type:"video/webm"})),t&&t(i.blob),p.frames=[]})})});function u(){p.frames=[],c=o=!1}function d(){if(c)return h=(new Date).getTime(),setTimeout(d,500);var e,t,i;"canvas"===s.nodeName.toLowerCase()?(e=(new Date).getTime()-h,h=(new Date).getTime(),p.frames.push({image:(i=(t=document.createElement("canvas")).getContext("2d"),t.width=s.width,t.height=s.height,i.drawImage(s,0,0),t),duration:e}),o&&setTimeout(d,a.frameInterval)):html2canvas(s,{grabMouse:void 0===a.showMousePointer||a.showMousePointer,onrendered:function(e){var t=(new Date).getTime()-h;if(!t)return setTimeout(d,a.frameInterval);h=(new Date).getTime(),p.frames.push({image:e.toDataURL("image/webp",1),duration:t}),o&&setTimeout(d,a.frameInterval)}})}this.pause=function(){c=!0,n instanceof E&&n.pause()},this.resume=function(){c=!1,n instanceof E?n.resume():o||this.record()},this.clearRecordedData=function(){o&&this.stop(u),u()},this.name="CanvasRecorder",this.toString=function(){return this.name};var h=(new Date).getTime(),p=new C.Video(100)}function h(e,v){function i(e){e=void 0!==e?e:10;var t=(new Date).getTime()-n;return t?s?(n=(new Date).getTime(),setTimeout(i,100)):(n=(new Date).getTime(),a.paused&&a.play(),o.drawImage(a,0,0,E.width,E.height),b.frames.push({duration:t,image:E.toDataURL("image/webp")}),void(r||setTimeout(i,e,e))):setTimeout(i,e,e)}(v=v||{}).frameInterval||(v.frameInterval=10),v.disableLogs||console.log("Using frames-interval:",v.frameInterval);var r=!(this.record=function(){v.width||(v.width=320),v.height||(v.height=240),v.video||(v.video={width:v.width,height:v.height}),v.canvas||(v.canvas={width:v.width,height:v.height}),E.width=v.canvas.width||320,E.height=v.canvas.height||240,o=E.getContext("2d"),v.video&&v.video instanceof HTMLVideoElement?(a=v.video.cloneNode(),v.initCallback&&v.initCallback()):(a=document.createElement("video"),S(e,a),a.onloadedmetadata=function(){v.initCallback&&v.initCallback()},a.width=v.video.width,a.height=v.video.height),a.muted=!0,a.play(),n=(new Date).getTime(),b=new C.Video,v.disableLogs||(console.log("canvas resolutions",E.width,"*",E.height),console.log("video width/height",a.width||E.width,"*",a.height||E.height)),i(v.frameInterval)}),s=!(this.stop=function(g){g=g||function(){},r=!0;var y=this;setTimeout(function(){var i,e,t,r,s,a,n,u,d,h,o,p,f,A,m,l,c;i=b.frames,e=-1,r=t=null,s=function(e){b.frames=e,v.advertisement&&v.advertisement.length&&(b.frames=v.advertisement.concat(b.frames)),b.compile(function(e){y.blob=e,y.blob.forEach&&(y.blob=new Blob([],{type:"video/webm"})),g&&g(y.blob)})},(a=document.createElement("canvas")).width=E.width,a.height=E.height,u=a.getContext("2d"),d=[],h=-1===e,o=e&&0<e&&e<=i.length?e:i.length,p=Math.sqrt(Math.pow(255,2)+Math.pow(255,2)+Math.pow(255,2)),f=t&&0<=t&&t<=1?t:0,A=r&&0<=r&&r<=1?r:0,m=!1,l=-1,c=(n={length:o,functionToLoop:function(e,t){function a(){!m&&l-n<=l*A||(h&&(m=!0),d.push(i[t])),e()}var n,o,l,c;m?a():((c=new Image).onload=function(){u.drawImage(c,0,0,E.width,E.height);var e=u.getImageData(0,0,E.width,E.height);n=0,o=e.data.length,l=e.data.length/4;for(var t=0;t<o;t+=4){var i=e.data[t],r=e.data[t+1],s=e.data[t+2];Math.sqrt(Math.pow(+i,2)+Math.pow(+r,2)+Math.pow(+s,2))<=p*f&&n++}a()},c.src=i[t].image)},callback:function(){(d=d.concat(i.slice(o))).length<=0&&d.push(i[i.length-1]),s(d)}}).length,function e(){++l!==c?setTimeout(function(){n.functionToLoop(e,l)},1):n.callback()}()},10)});function t(){b.frames=[],s=!(r=!0)}this.pause=function(){s=!0},this.resume=function(){s=!1,r&&this.record()},this.clearRecordedData=function(){r||this.stop(t),t()},this.name="WhammyRecorder",this.toString=function(){return this.name};var a,n,b,E=document.createElement("canvas"),o=E.getContext("2d")}void 0!==e?b.AudioContext=e:"undefined"!=typeof webkitAudioContext&&(b.AudioContext=webkitAudioContext),T.Storage=b,T.MediaStreamRecorder=E,T.StereoAudioRecorder=c,T.CanvasRecorder=r,T.WhammyRecorder=h;R.prototype.add=function(e,t){if("toDataURL"in(e="canvas"in e?e.canvas:e)&&(e=e.toDataURL("image/webp",this.quality)),!/^data:image\/webp;base64,/gi.test(e))throw"Input must be formatted properly as a base64 encoded DataURI of type image/webp";this.frames.push({image:e,duration:t||this.duration})},R.prototype.compile=function(t){i=D,i=w.createObjectURL(new Blob([i.toString(),"this.onmessage = function (eee) {"+i.name+"(eee.data);}"],{type:"application/javascript"})),e=new Worker(i),w.revokeObjectURL(i);var e,i=e;i.onmessage=function(e){e.data.error?console.error(e.data.error):t(e.data)},i.postMessage(this.frames)};var C={Video:R};function R(e){this.frames=[],this.duration=e||1,this.quality=.8}function D(e){function n(e){var t=[];e=(e.length%8?new Array(9-e.length%8).join("0"):"")+e;for(var i=0;i<e.length;i+=8)t.push(parseInt(e.substr(i,8),2));return new Uint8Array(t)}function c(e){for(var t=[],i=0;i<e.length;i++){var r=e[i].data,s=(r="string"==typeof(r="number"==typeof(r="object"==typeof r?c(r):r)?n(r.toString(2)):r)?new Uint8Array(r.split("").map(function(e){return e.charCodeAt(0)})):r).size||r.byteLength||r.length,a=Math.ceil(Math.ceil(Math.log(s)/Math.log(2))/8),s=s.toString(2),s=new Array(7*a+7+1-s.length).join("0")+s,a=new Array(a).join("0")+"1"+s;t.push(function(e){for(var t=[];0<e;)t.push(255&e),e>>=8;return new Uint8Array(t.reverse())}(e[i].id)),t.push(n(a)),t.push(r)}return new Blob(t,{type:"video/webm"})}function o(e){for(var t=0,i={};t<e.length;){var r=e.substr(t,4),s=(s=t,parseInt(e.substr(s+4,4).split("").map(function(e){e=e.charCodeAt(0).toString(2);return new Array(8-e.length+1).join("0")+e}).join(""),2)),a=e.substr(t+4+4,s);t+=8+s,i[r]=i[r]||[],"RIFF"===r||"LIST"===r?i[r].push(o(a)):i[r].push(a)}return i}e=new function(e){var t=function(e){if(e[0]){for(var t=e[0].width,i=e[0].height,r=e[0].duration,s=1;s<e.length;s++)r+=e[s].duration;return{duration:r,width:t,height:i}}postMessage({error:"Something went wrong. Maybe WebP format is not supported in the current browser."})}(e);if(!t)return[];for(var i,r=[{id:440786851,data:[{data:1,id:17030},{data:1,id:17143},{data:4,id:17138},{data:8,id:17139},{data:"webm",id:17026},{data:2,id:17031},{data:2,id:17029}]},{id:408125543,data:[{id:357149030,data:[{data:1e6,id:2807729},{data:"whammy",id:19840},{data:"whammy",id:22337},{data:(i=t.duration,[].slice.call(new Uint8Array(new Float64Array([i]).buffer),0).map(function(e){return String.fromCharCode(e)}).reverse().join("")),id:17545}]},{id:374648427,data:[{id:174,data:[{data:1,id:215},{data:1,id:29637},{data:0,id:156},{data:"und",id:2274716},{data:"V_VP8",id:134},{data:"VP8",id:2459272},{data:1,id:131},{id:224,data:[{data:t.width,id:176},{data:t.height,id:186}]}]}]}]}],s=0,a=0;s<e.length;){for(var n=[],o=0;n.push(e[s]),o+=e[s].duration,++s<e.length&&o<3e4;);var l={id:524531317,data:function(e,i,t){return[{data:e,id:231}].concat(t.map(function(e){var t=function(e){var t=0;if(e.keyframe&&(t|=128),e.invisible&&(t|=8),e.lacing&&(t|=e.lacing<<1),e.discardable&&(t|=1),127<e.trackNum)throw"TrackNumber > 127 not supported";return[128|e.trackNum,e.timecode>>8,255&e.timecode,t].map(function(e){return String.fromCharCode(e)}).join("")+e.frame}({discardable:0,frame:e.data.slice(4),invisible:0,keyframe:1,lacing:0,trackNum:1,timecode:Math.round(i)});return i+=e.duration,{data:t,id:163}}))}(a,0,n)};r[1].data.push(l),a+=o}return c(r)}(e.map(function(e){var t=function(e){for(var t=e.RIFF[0].WEBP[0],i=t.indexOf("*"),r=0,s=[];r<4;r++)s[r]=t.charCodeAt(i+3+r);return{width:16383&(s[1]<<8|s[0]),height:16383&(s[3]<<8|s[2]),data:t,riff:e}}(o(atob(e.image.slice(23))));return t.duration=e.duration,t}));postMessage(e)}T.Whammy=C;var L={init:function(){var i,e,t,r=this;function s(e){e.createObjectStore(r.dataStoreName)}function a(){var e=i.transaction([r.dataStoreName],"readwrite");function t(t){e.objectStore(r.dataStoreName).get(t).onsuccess=function(e){r.callback&&r.callback(e.target.result,t)}}r.videoBlob&&e.objectStore(r.dataStoreName).put(r.videoBlob,"videoBlob"),r.gifBlob&&e.objectStore(r.dataStoreName).put(r.gifBlob,"gifBlob"),r.audioBlob&&e.objectStore(r.dataStoreName).put(r.audioBlob,"audioBlob"),t("audioBlob"),t("videoBlob"),t("gifBlob")}"undefined"!=typeof indexedDB&&void 0!==indexedDB.open?(e=this.dbName||location.href.replace(/\/|:|#|%|\.|\[|\]/g,""),(t=indexedDB.open(e,1)).onerror=r.onError,t.onsuccess=function(){(i=t.result).onerror=r.onError,i.setVersion&&1!==i.version?i.setVersion(1).onsuccess=function(){s(i),a()}:a()},t.onupgradeneeded=function(e){s(e.target.result)}):console.error("IndexedDB API are not available in this browser.")},Fetch:function(e){return this.callback=e,this.init(),this},Store:function(e){return this.audioBlob=e.audioBlob,this.videoBlob=e.videoBlob,this.gifBlob=e.gifBlob,this.init(),this},onError:function(e){console.error(JSON.stringify(e,null,"\t"))},dataStoreName:"recordRTC",dbName:null};function I(e,i){"undefined"==typeof GIFEncoder&&((t=document.createElement("script")).src="https://www.webrtc-experiment.com/gif-recorder.js",(document.body||document.documentElement).appendChild(t)),i=i||{};var t,r,s=e instanceof CanvasRenderingContext2D||e instanceof HTMLCanvasElement,a=(this.record=function(){"undefined"!=typeof GIFEncoder&&l?(s||(i.width||(i.width=r.offsetWidth||320),i.height||(i.height=r.offsetHeight||240),i.video||(i.video={width:i.width,height:i.height}),i.canvas||(i.canvas={width:i.width,height:i.height}),n.width=i.canvas.width||320,n.height=i.canvas.height||240,r.width=i.video.width||320,r.height=i.video.height||240),(u=new GIFEncoder).setRepeat(0),u.setDelay(i.frameRate||200),u.setQuality(i.quality||10),u.start(),"function"==typeof i.onGifRecordingStarted&&i.onGifRecordingStarted(),d=p(function e(t){if(!0!==h.clearedRecordedData){if(a)return setTimeout(function(){e(t)},100);d=p(e),t-c<90||(!s&&r.paused&&r.play(),s||o.drawImage(r,0,0,n.width,n.height),i.onGifPreview&&i.onGifPreview(n.toDataURL("image/png")),u.addFrame(o),c=t)}}),i.initCallback&&i.initCallback()):setTimeout(h.record,1e3)},!(this.stop=function(e){e=e||function(){},d&&m(d),this.blob=new Blob([new Uint8Array(u.stream().bin)],{type:"image/gif"}),e(this.blob),u.stream().bin=[]})),n=(this.pause=function(){a=!0},this.resume=function(){a=!1},this.clearRecordedData=function(){h.clearedRecordedData=!0,u&&(u.stream().bin=[])},this.name="GifRecorder",this.toString=function(){return this.name},document.createElement("canvas")),o=n.getContext("2d"),l=(s&&(e instanceof CanvasRenderingContext2D?n=(o=e).canvas:e instanceof HTMLCanvasElement&&(o=e.getContext("2d"),n=e)),!0);s||((r=document.createElement("video")).muted=!0,r.autoplay=!0,r.playsInline=!0,l=!1,r.onloadedmetadata=function(){l=!0},S(e,r),r.play());var c,u,d=null,h=this}function B(r,s){s=s||"multi-streams-mixer";var a=[],n=!1,o=document.createElement("canvas"),l=o.getContext("2d"),c=(o.style.opacity=0,o.style.position="absolute",o.style.zIndex=-1,o.style.top="-1000em",o.style.left="-1000em",o.className=s,(document.body||document.documentElement).appendChild(o),this.disableLogs=!1,this.frameInterval=10,this.width=360,this.height=240,this.useGainNode=!0,this),e=window.AudioContext;void 0===e&&("undefined"!=typeof webkitAudioContext&&(e=webkitAudioContext),"undefined"!=typeof mozAudioContext)&&(e=mozAudioContext);window.URL,"undefined"!=typeof navigator&&void 0===navigator.getUserMedia&&(void 0!==navigator.webkitGetUserMedia&&(navigator.getUserMedia=navigator.webkitGetUserMedia),void 0!==navigator.mozGetUserMedia)&&(navigator.getUserMedia=navigator.mozGetUserMedia);var u=window.MediaStream,d=(void 0!==(u=void 0===u&&"undefined"!=typeof webkitMediaStream?webkitMediaStream:u)&&void 0===u.prototype.stop&&(u.prototype.stop=function(){this.getTracks().forEach(function(e){e.stop()})}),{});function h(){var e,t,i;n||(e=a.length,t=!1,i=[],a.forEach(function(e){e.stream||(e.stream={}),e.stream.fullcanvas?t=e:i.push(e)}),t?(o.width=t.stream.width,o.height=t.stream.height):i.length?(o.width=1<e?2*i[0].width:i[0].width,o.height=i[0].height*(9!==e&&10!==e?7!==e&&8!==e?5!==e&&6!==e?3!==e&&4!==e?1:2:3:4:5)):(o.width=c.width||360,o.height=c.height||240),t&&t instanceof HTMLVideoElement&&p(t),i.forEach(function(e,t){p(e,t)}),setTimeout(h,c.frameInterval))}function p(e,t){var i,r,s,a;n||(r=i=0,s=e.width,a=e.height,1===t&&(i=e.width),2===t&&(r=e.height),3===t&&(i=e.width,r=e.height),4===t&&(r=2*e.height),5===t&&(i=e.width,r=2*e.height),6===t&&(r=3*e.height),7===t&&(i=e.width,r=3*e.height),void 0!==e.stream.left&&(i=e.stream.left),void 0!==e.stream.top&&(r=e.stream.top),void 0!==e.stream.width&&(s=e.stream.width),void 0!==e.stream.height&&(a=e.stream.height),l.drawImage(e,i,r,s,a),"function"==typeof e.stream.onRender&&e.stream.onRender(l,i,r,s,a,t))}function f(e){var t,i,r=document.createElement("video");return t=e,!("srcObject"in(i=r))&&"mozSrcObject"in i?i.mozSrcObject=t:i.srcObject=t,r.className=s,r.muted=!0,r.volume=0,r.width=e.width||c.width||360,r.height=e.height||c.height||240,r.play(),r}function A(e){a=[],(e=e||r).forEach(function(e){var t;e.getTracks().filter(function(e){return"video"===e.kind}).length&&((t=f(e)).stream=e,a.push(t))})}void 0!==e?d.AudioContext=e:"undefined"!=typeof webkitAudioContext&&(d.AudioContext=webkitAudioContext),this.startDrawingFrames=function(){h()},this.appendStreams=function(e){if(!e)throw"First parameter is required.";(e=e instanceof Array?e:[e]).forEach(function(e){var t,i=new u;e.getTracks().filter(function(e){return"video"===e.kind}).length&&((t=f(e)).stream=e,a.push(t),i.addTrack(e.getTracks().filter(function(e){return"video"===e.kind})[0])),e.getTracks().filter(function(e){return"audio"===e.kind}).length&&(t=c.audioContext.createMediaStreamSource(e),c.audioDestination=c.audioContext.createMediaStreamDestination(),t.connect(c.audioDestination),i.addTrack(c.audioDestination.stream.getTracks().filter(function(e){return"audio"===e.kind})[0])),r.push(i)})},this.releaseStreams=function(){a=[],n=!0,c.gainNode&&(c.gainNode.disconnect(),c.gainNode=null),c.audioSources.length&&(c.audioSources.forEach(function(e){e.disconnect()}),c.audioSources=[]),c.audioDestination&&(c.audioDestination.disconnect(),c.audioDestination=null),c.audioContext&&c.audioContext.close(),c.audioContext=null,l.clearRect(0,0,o.width,o.height),o.stream&&(o.stream.stop(),o.stream=null)},this.resetVideoStreams=function(e){A(e=!e||e instanceof Array?e:[e])},this.name="MultiStreamsMixer",this.toString=function(){return this.name},this.getMixedStream=function(){n=!1;A(),"captureStream"in o?e=o.captureStream():"mozCaptureStream"in o?e=o.mozCaptureStream():c.disableLogs||console.error("Upgrade to latest Chrome or otherwise enable this flag: chrome://flags/#enable-experimental-web-platform-features"),t=new u,e.getTracks().filter(function(e){return"video"===e.kind}).forEach(function(e){t.addTrack(e)});var t,i=o.stream=t,e=function(){d.AudioContextConstructor||(d.AudioContextConstructor=new d.AudioContext),c.audioContext=d.AudioContextConstructor,c.audioSources=[],!0===c.useGainNode&&(c.gainNode=c.audioContext.createGain(),c.gainNode.connect(c.audioContext.destination),c.gainNode.gain.value=0);var t=0;if(r.forEach(function(e){e.getTracks().filter(function(e){return"audio"===e.kind}).length&&(t++,e=c.audioContext.createMediaStreamSource(e),!0===c.useGainNode&&e.connect(c.gainNode),c.audioSources.push(e))}),t)return c.audioDestination=c.audioContext.createMediaStreamDestination(),c.audioSources.forEach(function(e){e.connect(c.audioDestination)}),c.audioDestination.stream}();return e&&e.getTracks().filter(function(e){return"audio"===e.kind}).forEach(function(e){i.addTrack(e)}),r.forEach(function(e){e.fullcanvas}),i}}function x(i,r){i=i||[];var s,a,n=this;(r=r||{elementClass:"multi-streams-mixer",mimeType:"video/webm",video:{width:360,height:240}}).frameInterval||(r.frameInterval=10),r.video||(r.video={}),r.video.width||(r.video.width=360),r.video.height||(r.video.height=240),this.record=function(){var t;s=new B(i,r.elementClass||"multi-streams-mixer"),t=[],i.forEach(function(e){k(e,"video").forEach(function(e){t.push(e)})}),t.length&&(s.frameInterval=r.frameInterval||10,s.width=r.video.width||360,s.height=r.video.height||240,s.startDrawingFrames()),r.previewStream&&"function"==typeof r.previewStream&&r.previewStream(s.getMixedStream()),(a=new E(s.getMixedStream(),r)).record()},this.stop=function(t){a&&a.stop(function(e){n.blob=e,t(e),n.clearRecordedData()})},this.pause=function(){a&&a.pause()},this.resume=function(){a&&a.resume()},this.clearRecordedData=function(){a&&(a.clearRecordedData(),a=null),s&&(s.releaseStreams(),s=null)},this.addStreams=function(e){if(!e)throw"First parameter is required.";e instanceof Array||(e=[e]),i.concat(e),a&&s&&(s.appendStreams(e),r.previewStream)&&"function"==typeof r.previewStream&&r.previewStream(s.getMixedStream())},this.resetVideoStreams=function(e){s&&(!e||e instanceof Array||(e=[e]),s.resetVideoStreams(e))},this.getMixer=function(){return s},this.name="MultiStreamRecorder",this.toString=function(){return this.name}}function P(i,o){var l,r,s;function a(t,e){if(!o.workerPath&&!e)return l=!1,fetch("https://unpkg.com/webm-wasm@latest/dist/webm-worker.js").then(function(e){e.arrayBuffer().then(function(e){a(t,e)})});!o.workerPath&&e instanceof ArrayBuffer&&(e=new Blob([e],{type:"text/javascript"}),o.workerPath=w.createObjectURL(e)),o.workerPath||console.error("workerPath parameter is missing."),(r=new Worker(o.workerPath)).postMessage(o.webAssemblyPath||"https://unpkg.com/webm-wasm@latest/dist/webm-wasm.wasm"),r.addEventListener("message",function(e){"READY"===e.data?(r.postMessage({width:o.width,height:o.height,bitrate:o.bitrate||1200,timebaseDen:o.frameRate||30,realtime:o.realtime}),new ReadableStream({start:function(r){var s=document.createElement("canvas"),a=document.createElement("video"),n=!0;a.srcObject=i,a.muted=!0,a.height=o.height,a.width=o.width,a.volume=0,a.onplaying=function(){s.width=o.width,s.height=o.height;var e=s.getContext("2d"),t=1e3/o.frameRate,i=setInterval(function(){if(l&&(clearInterval(i),r.close()),n&&(n=!1,o.onVideoProcessStarted)&&o.onVideoProcessStarted(),e.drawImage(a,0,0),"closed"!==r._controlledReadableStream.state)try{r.enqueue(e.getImageData(0,0,o.width,o.height))}catch(e){}},t)},a.play()}}).pipeTo(new WritableStream({write:function(e){l?console.error("Got image, but recorder is finished!"):r.postMessage(e.data.buffer,[e.data.buffer])}}))):!e.data||s||n.push(e.data)})}"undefined"!=typeof ReadableStream&&"undefined"!=typeof WritableStream||console.error("Following polyfill is strongly recommended: https://unpkg.com/@mattiasbuelens/web-streams-polyfill/dist/polyfill.min.js"),(o=o||{}).width=o.width||640,o.height=o.height||480,o.frameRate=o.frameRate||30,o.bitrate=o.bitrate||1200,o.realtime=o.realtime||!0,this.record=function(){s=!(n=[]),this.blob=null,a(i),"function"==typeof o.initCallback&&o.initCallback()},this.pause=function(){s=!0},this.resume=function(){s=!1};var n=[];this.stop=function(e){l=!0;var t,i=this;t=function(){i.blob=new Blob(n,{type:"video/webm"}),e(i.blob)},r?(r.addEventListener("message",function(e){null===e.data&&(r.terminate(),r=null,t())}),r.postMessage(null)):t()},this.name="WebAssemblyRecorder",this.toString=function(){return this.name},this.clearRecordedData=function(){s=!(n=[]),this.blob=null},this.blob=null}T.DiskStorage=L,T.GifRecorder=I,T.MultiStreamRecorder=x,T.RecordRTCPromisesHandler=function(e,t){if(!this)throw'Use "new RecordRTCPromisesHandler()"';if(void 0===e)throw'First argument "MediaStream" is required.';var r=this;r.recordRTC=new T(e,t),this.startRecording=function(){return new Promise(function(e,t){try{r.recordRTC.startRecording(),e()}catch(e){t(e)}})},this.stopRecording=function(){return new Promise(function(t,i){try{r.recordRTC.stopRecording(function(e){r.blob=r.recordRTC.getBlob(),r.blob&&r.blob.size?t(e):i("Empty blob.",r.blob)})}catch(t){i(t)}})},this.pauseRecording=function(){return new Promise(function(e,t){try{r.recordRTC.pauseRecording(),e()}catch(e){t(e)}})},this.resumeRecording=function(){return new Promise(function(e,t){try{r.recordRTC.resumeRecording(),e()}catch(e){t(e)}})},this.getDataURL=function(e){return new Promise(function(t,e){try{r.recordRTC.getDataURL(function(e){t(e)})}catch(t){e(t)}})},this.getBlob=function(){return new Promise(function(e,t){try{e(r.recordRTC.getBlob())}catch(e){t(e)}})},this.getInternalRecorder=function(){return new Promise(function(e,t){try{e(r.recordRTC.getInternalRecorder())}catch(e){t(e)}})},this.reset=function(){return new Promise(function(e,t){try{e(r.recordRTC.reset())}catch(e){t(e)}})},this.destroy=function(){return new Promise(function(e,t){try{e(r.recordRTC.destroy())}catch(e){t(e)}})},this.getState=function(){return new Promise(function(e,t){try{e(r.recordRTC.getState())}catch(e){t(e)}})},this.blob=null,this.version="5.6.2"},T.WebAssemblyRecorder=P});class ci{constructor(e){this._buffer=e,this._buffer_index=0,this._total_bytes=e.byteLength,this._total_bits=8*e.byteLength,this._current_word=0,this._current_word_bits_left=0}destroy(){this._buffer=null}_fillCurrentWord(){var e,t=this._total_bytes-this._buffer_index;t<=0?console.error("ExpGolomb: _fillCurrentWord() but no bytes available",this._total_bytes,this._buffer_index):(t=Math.min(4,t),(e=new Uint8Array(4)).set(this._buffer.subarray(this._buffer_index,this._buffer_index+t)),this._current_word=new DataView(e.buffer).getUint32(0,!1),this._buffer_index+=t,this._current_word_bits_left=8*t)}readBits(e){var t,i;return 32<e&&console.error("ExpGolomb: readBits() bits exceeded max 32bits!"),e<=this._current_word_bits_left?(t=this._current_word>>>32-e,this._current_word<<=e,this._current_word_bits_left-=e,t):(t=this._current_word_bits_left?this._current_word:0,t>>>=32-this._current_word_bits_left,e=e-this._current_word_bits_left,this._fillCurrentWord(),e=Math.min(e,this._current_word_bits_left),i=this._current_word>>>32-e,this._current_word<<=e,this._current_word_bits_left-=e,t<<e|i)}readBool(){return 1===this.readBits(1)}readByte(){return this.readBits(8)}_skipLeadingZero(){let e;for(e=0;e<this._current_word_bits_left;e++)if(0!=(this._current_word&2147483648>>>e))return this._current_word<<=e,this._current_word_bits_left-=e,e;return this._fillCurrentWord(),e+this._skipLeadingZero()}readUEG(){var e=this._skipLeadingZero();return this.readBits(e+1)-1}readSEG(){var e=this.readUEG();return 1&e?e+1>>>1:-1*(e>>>1)}}class P{static _ebsp2rbsp(e){let t=e,i=t.byteLength,r=new Uint8Array(i),s=0;for(let e=0;e<i;e++)2<=e&&3===t[e]&&0===t[e-1]&&0===t[e-2]||(r[s]=t[e],s++);return new Uint8Array(r.buffer,0,s)}static parseSPS(e){let t=P._ebsp2rbsp(e),i=new ci(t);i.readByte();var e=i.readByte(),r=(i.readByte(),i.readByte());i.readUEG();let s=P.getProfileString(e),a=P.getLevelString(r),n=1,o=420,l=8;if((100===e||110===e||122===e||244===e||44===e||83===e||86===e||118===e||128===e||138===e||144===e)&&(3===(n=i.readUEG())&&i.readBits(1),n<=3&&(o=[0,420,422,444][n]),l=i.readUEG()+8,i.readUEG(),i.readBits(1),i.readBool())){var c=3!==n?8:12;for(let e=0;e<c;e++)i.readBool()&&(e<6?P._skipScalingList(i,16):P._skipScalingList(i,64))}i.readUEG();r=i.readUEG();if(0===r)i.readUEG();else if(1===r){i.readBits(1),i.readSEG(),i.readSEG();var u=i.readUEG();for(let e=0;e<u;e++)i.readSEG()}var e=i.readUEG(),r=(i.readBits(1),i.readUEG()),d=i.readUEG(),h=i.readBits(1);0===h&&i.readBits(1),i.readBits(1);let p=0,f=0,A=0,m=0,g=(i.readBool()&&(p=i.readUEG(),f=i.readUEG(),A=i.readUEG(),m=i.readUEG()),1),y=1,v=0,b=!0,E=0,S=0,T=(i.readBool()&&(i.readBool()&&(0<(R=i.readByte())&&R<16?(g=[1,12,10,16,40,24,20,32,80,18,15,64,160,4,3,2][R-1],y=[1,11,11,11,33,11,11,11,33,11,11,33,99,3,2,1][R-1]):255===R&&(g=i.readByte()<<8|i.readByte(),y=i.readByte()<<8|i.readByte())),i.readBool()&&i.readBool(),i.readBool()&&(i.readBits(4),i.readBool())&&i.readBits(24),i.readBool()&&(i.readUEG(),i.readUEG()),i.readBool())&&(R=i.readBits(32),C=i.readBits(32),b=i.readBool(),E=C,S=2*R,v=E/S),1),w=(1===g&&1===y||(T=g/y),0),k=0;k=0===n?(w=1,2-h):(w=3===n?1:2,(1===n?2:1)*(2-h));var C=16*(r+1),R=16*(d+1)*(2-h),r=(C-=(p+f)*w,R-=(A+m)*k,Math.ceil(C*T));return i.destroy(),i=null,{profile_string:s,level_string:a,bit_depth:l,ref_frames:e,chroma_format:o,chroma_format_string:P.getChromaFormatString(o),frame_rate:{fixed:b,fps:v,fps_den:S,fps_num:E},sar_ratio:{width:g,height:y},codec_size:{width:C,height:R},present_size:{width:r,height:R}}}static parseSPS$2(e){let i=e.subarray(1,4),r="avc1.";for(let t=0;t<3;t++){let e=i[t].toString(16);e.length<2&&(e="0"+e),r+=e}let t=P._ebsp2rbsp(e),s=new ci(t);s.readByte();var e=s.readByte(),a=(s.readByte(),s.readByte());s.readUEG();let n=P.getProfileString(e),o=P.getLevelString(a),l=1,c=420,u=8,d=8;if((100===e||110===e||122===e||244===e||44===e||83===e||86===e||118===e||128===e||138===e||144===e)&&(3===(l=s.readUEG())&&s.readBits(1),l<=3&&(c=[0,420,422,444][l]),u=s.readUEG()+8,d=s.readUEG()+8,s.readBits(1),s.readBool())){var h=3!==l?8:12;for(let e=0;e<h;e++)s.readBool()&&(e<6?P._skipScalingList(s,16):P._skipScalingList(s,64))}s.readUEG();var p=s.readUEG();if(0===p)s.readUEG();else if(1===p){s.readBits(1),s.readSEG(),s.readSEG();var f=s.readUEG();for(let e=0;e<f;e++)s.readSEG()}var p=s.readUEG(),A=(s.readBits(1),s.readUEG()),m=s.readUEG(),g=s.readBits(1);0===g&&s.readBits(1),s.readBits(1);let y=0,v=0,b=0,E=0,S=(s.readBool()&&(y=s.readUEG(),v=s.readUEG(),b=s.readUEG(),E=s.readUEG()),1),T=1,w=0,k=!0,C=0,R=0,D=(s.readBool()&&(s.readBool()&&(0<(x=s.readByte())&&x<16?(S=[1,12,10,16,40,24,20,32,80,18,15,64,160,4,3,2][x-1],T=[1,11,11,11,33,11,11,11,33,11,11,33,99,3,2,1][x-1]):255===x&&(S=s.readByte()<<8|s.readByte(),T=s.readByte()<<8|s.readByte())),s.readBool()&&s.readBool(),s.readBool()&&(s.readBits(4),s.readBool())&&s.readBits(24),s.readBool()&&(s.readUEG(),s.readUEG()),s.readBool())&&(x=s.readBits(32),B=s.readBits(32),k=s.readBool(),C=B,R=2*x,w=C/R),1),L=(1===S&&1===T||(D=S/T),0),I=0;I=0===l?(L=1,2-g):(L=3===l?1:2,(1===l?2:1)*(2-g));var B=16*(A+1),x=16*(m+1)*(2-g),A=(B-=(y+v)*L,x-=(b+E)*I,Math.ceil(B*D));return s.destroy(),s=null,{codec_mimetype:r,profile_idc:e,level_idc:a,profile_string:n,level_string:o,chroma_format_idc:l,bit_depth:u,bit_depth_luma:u,bit_depth_chroma:d,ref_frames:p,chroma_format:c,chroma_format_string:P.getChromaFormatString(c),frame_rate:{fixed:k,fps:w,fps_den:R,fps_num:C},sar_ratio:{width:S,height:T},codec_size:{width:B,height:x},present_size:{width:A,height:x}}}static _skipScalingList(t,i){let r=8,s=8,a;for(let e=0;e<i;e++)0!==s&&(a=t.readSEG(),s=(r+a+256)%256),r=0===s?r:s}static getProfileString(e){switch(e){case 66:return"Baseline";case 77:return"Main";case 88:return"Extended";case 100:return"High";case 110:return"High10";case 122:return"High422";case 244:return"High444";default:return"Unknown"}}static getLevelString(e){return(e/10).toFixed(1)}static getChromaFormatString(e){switch(e){case 420:return"4:2:0";case 422:return"4:2:2";case 444:return"4:4:4";default:return"Unknown"}}}class ui{constructor(e){this.buffer=e,this.buflen=e.length,this.bufpos=0,this.bufoff=0,this.iserro=!1}read(e){let t=0,i;for(;e;){if(e<0||this.bufpos>=this.buflen)return this.iserro=!0,0;this.iserro=!1,i=8<this.bufoff+e?8-this.bufoff:e,t=(t<<=i)+(this.buffer[this.bufpos]>>8-this.bufoff-i&255>>8-i),this.bufoff+=i,e-=i,8==this.bufoff&&(this.bufpos++,this.bufoff=0)}return t}look(e){var t=this.bufpos,i=this.bufoff,e=this.read(e);return this.bufpos=t,this.bufoff=i,e}read_golomb(){let e;for(e=0;0===this.read(1)&&!this.iserro;e++);return(1<<e)+this.read(e)-1}}function di(t){const s={},i=new DataView(t.buffer);let e=i.getUint8(0),r=i.getUint8(1);if(i.getUint8(2),i.getUint8(3),1!==e||0===r)return{};var a=1+(3&i.getUint8(4));if(3!=a&&4!=a)return{};var n=31&i.getUint8(5);if(0==n)return{};let o=6;for(let e=0;e<n;e++){var l=i.getUint16(o,!1);if(o+=2,0!==l){var c=new Uint8Array(t.buffer,o,l),l=(o+=l,P.parseSPS(c));if(0===e){s.sps=c,s.timescale=1e3,s.codecWidth=l.codec_size.width,s.codecHeight=l.codec_size.height,s.presentWidth=l.present_size.width,s.presentHeight=l.present_size.height,s.profile=l.profile_string,s.level=l.level_string,s.bitDepth=l.bit_depth,s.chromaFormat=l.chroma_format,s.sarRatio=l.sar_ratio,s.frameRate=l.frame_rate,!1!==l.frame_rate.fixed&&0!==l.frame_rate.fps_num&&0!==l.frame_rate.fps_den||(s.frameRate={fixed:!0,fps:23.976,fps_num:23976,fps_den:1e3});var l=s.frameRate.fps_den,u=s.frameRate.fps_num;s.refSampleDuration=s.timescale*(l/u);let i=c.subarray(1,4),r="avc1.";for(let t=0;t<3;t++){let e=i[t].toString(16);e.length<2&&(e="0"+e),r+=e}s.codec=r}}}var d=i.getUint8(o);if(0===d)return{};o++;for(let e=0;e<d;e++){var h,p=i.getUint16(o,!1);o+=2,0!==p&&(h=new Uint8Array(t.buffer,o,p),o+=p,s.pps=h)}if(s.videoType="avc",s.sps){const t=s.sps.byteLength,i=new Uint8Array([t>>>24&255,t>>>16&255,t>>>8&255,255&t]),e=new Uint8Array(t+4);e.set(i,0),e.set(s.sps,4),s.sps=e}if(s.pps){const t=s.pps.byteLength,i=new Uint8Array([t>>>24&255,t>>>16&255,t>>>8&255,255&t]),e=new Uint8Array(t+4);e.set(i,0),e.set(s.pps,4),s.pps=e}return s}function hi(e){var t=e.byteLength,i=new Uint8Array(4),t=(i[0]=t>>>24&255,i[1]=t>>>16&255,i[2]=t>>>8&255,i[3]=255&t,new Uint8Array(t+4));return t.set(i,0),t.set(e,4),t}function h(e){return 31&e[0]}function pi(e){return e===he}function fi(e){return 7!==e&&8!==e&&!pi(e)}const Ai=e=>{let t=e,i=t.byteLength,r=new Uint8Array(i),s=0;for(let e=0;e<i;e++)2<=e&&3===t[e]&&0===t[e-1]&&0===t[e-2]||(r[s]=t[e],s++);return new Uint8Array(r.buffer,0,s)};function mi(e){var r={width:0,height:0,profile:0,level:0};e=e.slice(5);do{var s={};if(e.length<23)break;if(s.configurationVersion=e[0],1!=s.configurationVersion)break;s.general_profile_space=e[1]>>6&3,s.general_tier_flag=e[1]>>5&1,s.general_profile_idc=31&e[1],s.general_profile_compatibility_flags=e[2]<<24|e[3]<<16|e[4]<<8|e[5],s.general_constraint_indicator_flags=e[6]<<24|e[7]<<16|e[8]<<8|e[9],s.general_constraint_indicator_flags=s.general_constraint_indicator_flags<<16|e[10]<<8|e[11],s.general_level_idc=e[12],s.min_spatial_segmentation_idc=(15&e[13])<<8|e[14],s.parallelismType=3&e[15],s.chromaFormat=3&e[16],s.bitDepthLumaMinus8=7&e[17],s.bitDepthChromaMinus8=7&e[18],s.avgFrameRate=e[19]<<8|e[20],s.constantFrameRate=e[21]>>6&3,s.numTemporalLayers=e[21]>>3&7,s.temporalIdNested=e[21]>>2&1,s.lengthSizeMinusOne=3&e[21];let t=e[22],i=e.slice(23);for(let e=0;e<t&&!(i.length<3);e++){var a=63&i[0],n=i[1]<<8|i[2];i=i.slice(3);for(let e=0;e<n&&!(i.length<2);e++){var o,l=i[0]<<8|i[1];if(i.length<2+l)break;i=i.slice(2),33==a&&((o=new Uint8Array(l)).set(i.slice(0,l),0),s.psps=function(e){var t={},i=e.length,r=[],s=new ui(e);s.read(1),s.read(6),s.read(6),s.read(3);for(let e=2;e<i;e++)e+2<i&&3==s.look(24)?(r.push(s.read(8)),r.push(s.read(8)),e+=2,s.read(8)):r.push(s.read(8));e=new Uint8Array(r),e=new ui(e);{var a,n;t.sps_video_parameter_set_id=e.read(4),t.sps_max_sub_layers_minus1=e.read(3),t.sps_temporal_id_nesting_flag=e.read(1),t.profile_tier_level=function(t,i){var r={};r.profile_space=t.read(2),r.tier_flag=t.read(1),r.profile_idc=t.read(5),r.profile_compatibility_flags=t.read(32),r.general_progressive_source_flag=t.read(1),r.general_interlaced_source_flag=t.read(1),r.general_non_packed_constraint_flag=t.read(1),r.general_frame_only_constraint_flag=t.read(1),t.read(32),t.read(12),r.level_idc=t.read(8),r.sub_layer_profile_present_flag=[],r.sub_layer_level_present_flag=[];for(let e=0;e<i;e++)r.sub_layer_profile_present_flag[e]=t.read(1),r.sub_layer_level_present_flag[e]=t.read(1);if(0<i)for(let e=i;e<8;e++)t.read(2);r.sub_layer_profile_space=[],r.sub_layer_tier_flag=[],r.sub_layer_profile_idc=[],r.sub_layer_profile_compatibility_flag=[],r.sub_layer_progressive_source_flag=[],r.sub_layer_interlaced_source_flag=[],r.sub_layer_non_packed_constraint_flag=[],r.sub_layer_frame_only_constraint_flag=[],r.sub_layer_level_idc=[];for(let e=0;e<i;e++)r.sub_layer_profile_present_flag[e]&&(r.sub_layer_profile_space[e]=t.read(2),r.sub_layer_tier_flag[e]=t.read(1),r.sub_layer_profile_idc[e]=t.read(5),r.sub_layer_profile_compatibility_flag[e]=t.read(32),r.sub_layer_progressive_source_flag[e]=t.read(1),r.sub_layer_interlaced_source_flag[e]=t.read(1),r.sub_layer_non_packed_constraint_flag[e]=t.read(1),r.sub_layer_frame_only_constraint_flag[e]=t.read(1),t.read(32),t.read(12)),r.sub_layer_level_present_flag[e]?r.sub_layer_level_idc[e]=t.read(8):r.sub_layer_level_idc[e]=1;return r}(e,t.sps_max_sub_layers_minus1),t.sps_seq_parameter_set_id=e.read_golomb(),t.chroma_format_idc=e.read_golomb(),t.separate_colour_plane_flag=3==t.chroma_format_idc?e.read(1):0,t.pic_width_in_luma_samples=e.read_golomb(),t.pic_height_in_luma_samples=e.read_golomb(),t.conformance_window_flag=e.read(1),t.conformance_window_flag?(a=1+(t.chroma_format_idc<2),n=1+(t.chroma_format_idc<3),t.conf_win_left_offset=e.read_golomb()*n,t.conf_win_right_offset=e.read_golomb()*n,t.conf_win_top_offset=e.read_golomb()*a,t.conf_win_bottom_offset=e.read_golomb()*a):(t.conf_win_left_offset=0,t.conf_win_right_offset=0,t.conf_win_top_offset=0,t.conf_win_bottom_offset=0)}return t}(o),r.profile=s.general_profile_idc,r.level=s.general_level_idc/30,r.width=s.psps.pic_width_in_luma_samples-(s.psps.conf_win_left_offset+s.psps.conf_win_right_offset),r.height=s.psps.pic_height_in_luma_samples-(s.psps.conf_win_top_offset+s.psps.conf_win_bottom_offset)),i=i.slice(l)}}}while(0);return r.codecWidth=r.width||1920,r.codecHeight=r.height||1080,r.presentHeight=r.codecHeight,r.presentWidth=r.codecWidth,r.timescale=1e3,r.refSampleDuration=1e3/23976*1e3,r.videoType="hevc",r}function gi(e){return(126&e[0])>>1}class yi extends t{constructor(e){super(),this.player=e,this.fileName="",this._isRecording=!1,this._recordingTimestamp=0,this.recordingInterval=null,this.sps=null,this.pps=null,this.vps=null,this.codecId=null,this.mdatBytesLength=0,this.metaInfo={codecWidth:0,codecHeight:0,presentWidth:0,presentHeight:0,refSampleDuration:0,timescale:1e3,avcc:null,videoType:""}}destroy(){this._reset()}get isH264(){return 7===this.codecId}get isH265(){return 12===this.codecId}setFileName(e){this.fileName=e}get isRecording(){return this._isRecording}get recording(){return this._isRecording}get recordTime(){return this._recordingTimestamp}startRecord(){}handleAddNaluTrack(e,t,i,r){}handleAddTrack(e){}stopRecordAndSave(){}startRecordingInterval(){}stopRecordingInterval(){this.recordingInterval&&clearInterval(this.recordingInterval),this.recordingInterval=null}getToTalByteLength(){}_reset(){this.fileName="",this._isRecording=!1,this._recordingTimestamp=0,this.stopRecordingInterval(),this.sps=null,this.pps=null,this.vps=null,this.codecId=null,this.mdatBytesLength=0}initMetaData(e,t){let i;var r=e.slice(5);if(this.codecId=t,this.metaInfo.avcc=r,7===t)i=di(r);else if(12===t){i=function(e){var t=23,i=e[23];if(32!=(63&i))return console.warn("parseHEVCDecoderVPSAndSPSAndPPS and vpsTag is "+i),{};t+=2,++t;var i=e[27]|e[26]<<8,r=(t+=2,e.slice(28,28+i)),s=e[t+=i];if(33!=(63&s))return console.warn("parseHEVCDecoderVPSAndSPSAndPPS and sps tag is "+s),{};t+=2;var s=e[1+ ++t]|e[t]<<8,a=e.slice(t+=2,t+s),n=e[t+=s];if(34!=(63&n))return console.warn("parseHEVCDecoderVPSAndSPSAndPPS and pps tag is "+n),{};t+=2;var n=e[1+ ++t]|e[t]<<8,e=e.slice(t+=2,t+n),t=new Uint8Array([s>>>24&255,s>>>16&255,s>>>8&255,255&s]),o=new Uint8Array([n>>>24&255,n>>>16&255,n>>>8&255,255&n]),l=new Uint8Array([i>>>24&255,i>>>16&255,i>>>8&255,255&i]),s=new Uint8Array(4+s),t=(s.set(t,0),s.set(a,4),new Uint8Array(4+n)),a=(t.set(o,0),t.set(e,4),new Uint8Array(4+i));return a.set(l,0),a.set(r,4),{sps:s,pps:t,vps:a}}(r);const t=mi(e);i=Object.assign(i,t)}i&&(i.vps&&(this.vps=i.vps),i.pps&&(this.pps=i.pps),i.sps&&(this.sps=i.sps),i.presentWidth&&(this.metaInfo.presentWidth=i.presentWidth),i.presentHeight&&(this.metaInfo.presentHeight=i.presentHeight),i.codecWidth&&(this.metaInfo.codecWidth=i.codecWidth),i.codecHeight&&(this.metaInfo.codecHeight=i.codecHeight),i.timescale&&(this.metaInfo.timescale=i.timescale),i.refSampleDuration&&(this.metaInfo.refSampleDuration=i.refSampleDuration),i.videoType)&&(this.metaInfo.videoType=i.videoType)}}class vi extends yi{constructor(e){super(e),this.totalByteLength=0,this._startRecordingTimestamp=null,e.debug.log("RecorderRTC","init")}_reset(){super._reset(),this.totalByteLength=0,this._startRecordingTimestamp=null,this.recorder&&(this.recorder.destroy(),this.recorder=null)}destroy(){super.destroy(),this._reset(),this.player.debug.log("RecorderRTC","destroy")}getSeekableBlob(t){const s=new EBML.Reader,a=new EBML.Decoder,n=EBML.tools,i=new FileReader;return new Promise((r,e)=>{i.onload=function(e){a.decode(this.result).forEach(function(e){s.read(e)}),s.stop();var t=n.makeMetadataSeekable(s.metadatas,s.duration,s.cues),i=this.result.slice(s.metadataSize),t=new Blob([t,i],{type:"video/webm"});r(t)},i.readAsArrayBuffer(t)})}startRecord(){const t=this.player.debug,i={type:"video",mimeType:"video/webm;codecs=h264",timeSlice:1e3,onTimeStamp:e=>{t.log("RecorderRTC","record timestamp :"+e),null===this._startRecordingTimestamp&&(this._startRecordingTimestamp=e),this._recordingTimestamp=(e-this._startRecordingTimestamp)/1e3},ondataavailable:e=>{this.totalByteLength+=e.size,t.log("RecorderRTC","ondataavailable",e.size)},disableLogs:!this.player._opt.debug};try{let e=null;if(this.player.getRenderType()===G?e=this.player.video.$videoElement.captureStream(25):this.player.video.mediaStream?e=this.player.video.mediaStream:this.player._opt.isHls||this.player._opt.useMSE||this.player._opt.useWCS?e=this.player.video.$videoElement.captureStream(25):this.player._opt.isWebrtc&&(e=this.player.webrtc.videoStream),e){if(this.player.audio&&this.player.audio.mediaStreamAudioDestinationNode&&this.player.audio.mediaStreamAudioDestinationNode.stream&&!this.player.audio.isStateSuspended()&&this.player.audio.hasAudio&&this.player._opt.hasAudio){const t=this.player.audio.mediaStreamAudioDestinationNode.stream;if(0<t.getAudioTracks().length){const i=t.getAudioTracks()[0];i&&i.enabled&&e.addTrack(i)}}this.recorder=li(e,i)}else t.error("RecorderRTC","startRecord error and can not create stream"),this.emit(v.recordCreateError)}catch(i){t.error("RecorderRTC","startRecord error",i),this.emit(v.recordCreateError)}this.recorder&&(this._isRecording=!0,this.player.emit(v.recording,!0),this.recorder.startRecording(),t.log("RecorderRTC","start recording"),this.player.emit(v.recordStart),this.startRecordingInterval())}startRecordingInterval(){this.stopRecordingInterval(),this.recordingInterval=window.setInterval(()=>{this.player.emit(v.recordingTimestamp,this._recordingTimestamp)},1e3)}stopRecordAndSave(){let i=0<arguments.length&&void 0!==arguments[0]?arguments[0]:ne,r=1<arguments.length?arguments[1]:void 0;return new Promise((t,e)=>{this.recorder&&this._isRecording||e("recorder is not ready"),r&&this.setFileName(r),this.recorder.stopRecording(()=>{this.player.debug.log("RecorderRTC","stop recording");var e=(this.fileName||m())+"."+j;if(this.recorder.getBlob(),"blob"===i){const i=this.recorder.getBlob();t(i),this.player.emit(v.recordBlob,i)}else t(),this.recorder.save(e);this.player.emit(v.recordEnd),this._reset(),this.player.emit(v.recording,!1)})})}getToTalByteLength(){return this.totalByteLength}getTotalDuration(){return this.recordTime}getType(){return j}initMetaData(){}}class g{static init(){for(var e in g.types={avc1:[],avcC:[],hvc1:[],hvcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],mvex:[],mvhd:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[],".mp3":[],free:[],edts:[],elst:[],stss:[]},g.types)g.types.hasOwnProperty(e)&&(g.types[e]=[e.charCodeAt(0),e.charCodeAt(1),e.charCodeAt(2),e.charCodeAt(3)]);var t=g.constants={};t.FTYP=new Uint8Array([105,115,111,109,0,0,2,0,105,115,111,109,105,115,111,50,97,118,99,49,109,112,52,49,0,0,0,0]),t.STSD_PREFIX=new Uint8Array([0,0,0,0,0,0,0,1]),t.STTS=new Uint8Array([0,0,0,0,0,0,0,0]),t.STSC=t.STCO=t.STTS,t.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),t.HDLR_VIDEO=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),t.HDLR_AUDIO=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]),t.DREF=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),t.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),t.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0])}static box(e){let t=8,i=null,r=Array.prototype.slice.call(arguments,1),s=r.length;for(let e=0;e<s;e++)t+=r[e].byteLength;(i=new Uint8Array(t))[0]=t>>>24&255,i[1]=t>>>16&255,i[2]=t>>>8&255,i[3]=255&t,i.set(e,4);let a=8;for(let e=0;e<s;e++)i.set(r[e],a),a+=r[e].byteLength;return i}static generateInitSegment(e,t,i){let r=g.box(g.types.ftyp,g.constants.FTYP),s=g.box(g.types.free),a=8,n=new Uint8Array;i+a>=Math.pow(2,32)-1?(a=16,(n=new Uint8Array(i+a)).set(new Uint8Array([0,0,0,1]),0),n.set(g.types.mdat,4),n.set(new Uint8Array([i+8>>>56&255,i+8>>>48&255,i+8>>>40&255,i+8>>>32&255,i+8>>>24&255,i+8>>>16&255,i+8>>>8&255,i+8&255]),8)):((n=new Uint8Array(i+a))[0]=i+8>>>24&255,n[1]=i+8>>>16&255,n[2]=i+8>>>8&255,n[3]=i+8&255,n.set(g.types.mdat,4));for(let e=0;e<t.length;e++){var o=t[e];o.duration=o.refSampleDuration*o.sequenceNumber;for(let e=0;e<o.sequenceNumber;e++){var l=o.samples[e],l=(l.chunkOffset=r.byteLength+s.byteLength+a,l.data);n.set(l,a),a+=l.byteLength}}i=g.moov(e,t),e=new Uint8Array(r.byteLength+i.byteLength+n.byteLength+s.byteLength);return e.set(r,0),e.set(s,r.byteLength),e.set(n,r.byteLength+s.byteLength),e.set(i,r.byteLength+n.byteLength+s.byteLength),e}static moov(e,t){let i=e.timescale,r=e.duration,s=t.length,a=g.mvhd(i,r),n=new Uint8Array;for(let e=0;e<s;e++){var o=g.trak(t[e]),l=new Uint8Array(o.byteLength+n.byteLength);l.set(n,0),l.set(o,n.byteLength),(n=new Uint8Array(l.byteLength)).set(l,0)}return g.box(g.types.moov,a,n)}static mvhd(e,t){return g.box(g.types.mvhd,new Uint8Array([0,0,0,0,206,186,253,168,206,186,253,168,e>>>24&255,e>>>16&255,e>>>8&255,255&e,t>>>24&255,t>>>16&255,t>>>8&255,255&t,0,1,0,0,1,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,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,0,0,0,3]))}static trak(e){return g.box(g.types.trak,g.tkhd(e),g.mdia(e))}static tkhd(e){var t=e.id,i=e.duration,r=e.presentWidth,e=e.presentHeight;return g.box(g.types.tkhd,new Uint8Array([0,0,0,15,206,186,253,168,206,186,253,168,t>>>24&255,t>>>16&255,t>>>8&255,255&t,0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i,0,0,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,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,r>>>8&255,255&r,0,0,e>>>8&255,255&e,0,0]))}static edts(e,t){return g.box(g.types.edts,g.elst(e,t))}static elst(t,i){let r=0;for(let e=0;e<i;e++)"video"===t[e].type&&(r+=t[e].duration);var e=t[i].duration;return 0===r&&(r=t[i].refSampleDuration),g.box(g.types.elst,new Uint8Array([0,0,0,0,0,0,0,2,r>>>24&255,r>>>16&255,r>>>8&255,255&r,255,255,255,255,0,1,0,0,e>>>24&255,e>>>16&255,e>>>8&255,255&e,0,0,0,0,0,1,0,0]))}static mdia(e){return g.box(g.types.mdia,g.mdhd(e),g.hdlr(e),g.minf(e))}static mdhd(e){var t=e.timescale/e.refSampleDuration,e=t*e.duration/e.timescale;return g.box(g.types.mdhd,new Uint8Array([0,0,0,0,206,186,253,168,206,186,253,168,t>>>24&255,t>>>16&255,t>>>8&255,255&t,e>>>24&255,e>>>16&255,e>>>8&255,255&e,85,196,0,0]))}static hdlr(e){var t=g.constants.HDLR_VIDEO;return g.box(g.types.hdlr,t)}static minf(e){var t=g.box(g.types.vmhd,g.constants.VMHD);return g.box(g.types.minf,t,g.dinf(),g.stbl(e))}static dinf(){return g.box(g.types.dinf,g.box(g.types.dref,g.constants.DREF))}static stbl(e){var i=e.samples,r=[{No:1,num:0,sampleDelte:1,chunkNo:1,duration:i[0].duration}],s=[i[0].duration],a=i.length;for(let t=0;t<a;t++)for(let e=0;e<r.length;e++)i[t].duration===r[e].duration?r[e].num++:s.indexOf(i[t].duration)<0&&(s.push(i[t].duration),r.push({No:2,num:0,sampleDelte:1,chunkNo:t+1,duration:i[t].duration}));return g.box(g.types.stbl,g.stsd(e),g.stts(r),g.stss(i),g.stsc(r),g.stsz(i),g.stco(r,i))}static stts(t){let i=t.length,e=new Uint8Array([0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i]),r=e.byteLength,s=new Uint8Array(r+8*i);s.set(e,0);for(let e=0;e<i;e++)s.set(new Uint8Array([t[e].num>>>24&255,t[e].num>>>16&255,t[e].num>>>8&255,255&t[e].num,t[e].sampleDelte>>>24&255,t[e].sampleDelte>>>16&255,t[e].sampleDelte>>>8&255,255&t[e].sampleDelte]),r),r+=8;return g.box(g.types.stts,s)}static stss(t){var i=[],r=t.length;for(let e=0;e<r;e++)!0===t[e].isKeyframe&&i.push(e+1);let s=i.length,e=new Uint8Array([0,0,0,0,s>>>24&255,s>>>16&255,s>>>8&255,255&s]),a=e.byteLength,n=new Uint8Array(a+4*s);n.set(e,0);for(let e=0;e<s;e++)n.set(new Uint8Array([i[e]>>>24&255,i[e]>>>16&255,i[e]>>>8&255,255&i[e]]),a),a+=4;return g.box(g.types.stss,n)}static stsc(t){let i=t.length,e=new Uint8Array([0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i]),r=e.byteLength,s=new Uint8Array(r+12*i);s.set(e,0);for(let e=0;e<i;e++){var a=t[e].chunkNo,n=t[e].num,o=t[e].sampleDelte;s.set(new Uint8Array([a>>>24&255,a>>>16&255,a>>>8&255,255&a,n>>>24&255,n>>>16&255,n>>>8&255,255&n,o>>>24&255,o>>>16&255,o>>>8&255,255&o]),r),r+=12}return g.box(g.types.stsc,s)}static stsz(t){let i=t.length,e=new Uint8Array([0,0,0,0,0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i]),r=e.byteLength,s=new Uint8Array(r+4*i);s.set(e,0);for(let e=0;e<i;e++){var a=t[e].data.byteLength;s.set(new Uint8Array([a>>>24&255,a>>>16&255,a>>>8&255,255&a]),r),r+=4}return g.box(g.types.stsz,s)}static stco(e,t){t=t[0].chunkOffset;return g.box(g.types.stco,new Uint8Array([0,0,0,0,0,0,0,1,t>>>24&255,t>>>16&255,t>>>8&255,255&t]))}static stsd(e){return"audio"===e.type?"mp3"===e.codec?g.box(g.types.stsd,g.constants.STSD_PREFIX,g.mp3(e)):g.box(g.types.stsd,g.constants.STSD_PREFIX,g.mp4a(e)):"avc"===e.videoType?g.box(g.types.stsd,g.constants.STSD_PREFIX,g.avc1(e)):g.box(g.types.stsd,g.constants.STSD_PREFIX,g.hvc1(e))}static mp3(e){var t=e.channelCount,e=e.audioSampleRate,t=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,t,0,16,0,0,0,0,e>>>8&255,255&e,0,0]);return g.box(g.types[".mp3"],t)}static mp4a(e){var t=e.channelCount,i=e.audioSampleRate,t=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,t,0,16,0,0,0,0,i>>>8&255,255&i,0,0]);return g.box(g.types.mp4a,t,g.esds(e))}static esds(e){var e=e.config||[],t=e.length,t=new Uint8Array([0,0,0,0,3,23+t,0,1,0,4,15+t,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([t]).concat(e).concat([6,1,2]));return g.box(g.types.esds,t)}static avc1(e){var t=e.avcc,i=e.codecWidth,e=e.codecHeight,i=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,i>>>8&255,255&i,e>>>8&255,255&e,0,72,0,0,0,72,0,0,0,0,0,0,0,1,13,106,101,115,115,105,98,117,99,97,45,112,114,111,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,255,255]);return g.box(g.types.avc1,i,g.box(g.types.avcC,t))}static hvc1(e){var t=e.avcc,i=e.codecWidth,e=e.codecHeight,i=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,i>>>8&255,255&i,e>>>8&255,255&e,0,72,0,0,0,72,0,0,0,0,0,0,0,1,13,106,101,115,115,105,98,117,99,97,45,112,114,111,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,255,255]);return g.box(g.types.hvc1,i,g.box(g.types.hvcC,t))}static mvex(e){return g.box(g.types.mvex,g.trex(e))}static trex(e){e=e.id,e=new Uint8Array([0,0,0,0,e>>>24&255,e>>>16&255,e>>>8&255,255&e,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]);return g.box(g.types.trex,e)}static moof(e,t){return g.box(g.types.moof,g.mfhd(e.sequenceNumber),g.traf(e,t))}static mfhd(e){e=new Uint8Array([0,0,0,0,e>>>24&255,e>>>16&255,e>>>8&255,255&e]);return g.box(g.types.mfhd,e)}static traf(e,t){var i=e.id,i=g.box(g.types.tfhd,new Uint8Array([0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i])),t=g.box(g.types.tfdt,new Uint8Array([0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t])),r=g.sdtp(e),e=g.trun(e,r.byteLength+16+16+8+16+8+8);return g.box(g.types.traf,i,t,e,r)}static sdtp(e){var t=e.samples||[],i=t.length,r=new Uint8Array(4+i);for(let e=0;e<i;e++){var s=t[e].flags;r[e+4]=s.isLeading<<6|s.dependsOn<<4|s.isDependedOn<<2|s.hasRedundancy}return g.box(g.types.sdtp,r)}static trun(e,t){var i=e.samples||[],r=i.length,e=12+16*r,s=new Uint8Array(e);s.set([0,0,15,1,r>>>24&255,r>>>16&255,r>>>8&255,255&r,(t+=8+e)>>>24&255,t>>>16&255,t>>>8&255,255&t],0);for(let e=0;e<r;e++){var a=i[e].duration,n=i[e].size,o=i[e].flags,l=i[e].cts;s.set([a>>>24&255,a>>>16&255,a>>>8&255,255&a,n>>>24&255,n>>>16&255,n>>>8&255,255&n,o.isLeading<<2|o.dependsOn,o.isDependedOn<<6|o.hasRedundancy<<4|o.isNonSync,0,0,l>>>24&255,l>>>16&255,l>>>8&255,255&l],12+16*e)}return g.box(g.types.trun,s)}static mdat(e){return g.box(g.types.mdat,e)}}g.init();class bi extends yi{constructor(e){super(e),this.tagName="recorderMP4",this.totalDuration=0,this.totalByteLength=0,this.bufferList=[],this.cacheTrack={},this.sequenceNumber=0,e.debug.log(this.tagName,"init")}destroy(){super.destroy(),this._reset(),this.player.debug.log(this.tagName,"destroy")}_reset(){super._reset(),this.totalDuration=0,this.totalByteLength=0,this.sequenceNumber=0,this.cacheTrack={},this.bufferList=[]}startRecord(){var e=this.player.debug;this._isRecording=!0,this.player.emit(v.recording,!0),e.log(this.tagName,"start recording"),this.player.emit(v.recordStart),this.startRecordingInterval()}startRecordingInterval(){this.stopRecordingInterval(),this.recordingInterval=window.setInterval(()=>{this.player.emit(v.recordingTimestamp,this.getTotalDuration())},1e3)}formatFmp4Track(e,t,i,r){return{id:1,sequenceNumber:++this.sequenceNumber,size:e.byteLength,dts:i,cts:r,isKeyframe:t,data:e,duration:0,flags:{isLeading:0,dependsOn:t?2:1,isDependedOn:t?1:0,hasRedundancy:0,isNonSync:t?0:1}}}handleAddNaluTrack(e,t,i,r){this.cacheTrack.id&&i>=this.cacheTrack.dts?(this.cacheTrack.duration=i-this.cacheTrack.dts,this.handleAddFmp4Track(this.cacheTrack)):this.cacheTrack={},this.cacheTrack=this.formatFmp4Track(e,t,i,r)}handleAddFmp4Track(e){if(this.isRecording)if(null!==this.sps&&null!==this.pps||!this.isH264)if(null!==this.sps&&null!==this.pps&&null!==this.vps||!this.isH265){var t=Object.assign({},e),i=(t.pts=t.dts+t.cts,t.data);if(t.isKeyframe)if(this.isH264){const e=new Uint8Array(this.sps.byteLength+this.pps.byteLength);e.set(this.sps,0),e.set(this.pps,this.sps.byteLength);var r=new Uint8Array(e.byteLength+i.byteLength);r.set(e,0),r.set(i,e.byteLength),t.data=r}else if(this.isH265){const e=new Uint8Array(this.sps.byteLength+this.pps.byteLength+this.vps.byteLength);e.set(this.vps,0),e.set(this.sps,this.vps.byteLength),e.set(this.pps,this.vps.byteLength+this.sps.byteLength);r=new Uint8Array(e.byteLength+i.byteLength);r.set(e,0),r.set(i,e.byteLength),t.data=r}t.size=t.data.byteLength,this.totalDuration+=t.duration,this.totalByteLength+=t.data.byteLength,t.duration=0,t.originalDts=t.dts,delete t.id,delete t.sequenceNumber,this.bufferList.push(t)}else this.player.debug.error(this.tagName,"handleAddFmp4Track, is h265 and this.sps or this.pps or this.vps is null ");else this.player.debug.error(this.tagName,"handleAddFmp4Track, is h264 and this.sps or this.pps is null ");else this.player.debug.error(this.tagName,"handleAddFmp4Track, isRecording is false ")}getTotalDuration(){return this.totalDuration/1e3}getType(){return p}getToTalByteLength(){return this.totalByteLength}stopRecordAndSave(){let e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:ne,t=1<arguments.length?arguments[1]:void 0;return new Promise((i,r)=>{if(!this.isRecording)return this.player.debug.error(this.tagName,"stop recording fail, isRecording is false "),r("stop recording fail, isRecording is false ");if(0===this.bufferList.length)return this.player.debug.error(this.tagName,"stop recording fail, this.bufferList.length is 0 "),r("stop recording fail, this.bufferList.length is 0 ");t&&this.setFileName(t);r={id:1,type:"video",sps:this.sps,pps:this.pps,samples:this.bufferList,sequenceNumber:this.bufferList.length,length:0,addSampleNum:1,duration:0,...this.metaInfo},r=g.generateInitSegment({timescale:1e3,duration:this.totalDuration},[r],this.totalByteLength),this.player.debug.log(this.tagName,"stop recording"),r=new Blob([r],{type:"application/octet-stream"});if("blob"===e)i(r),this.player.emit(v.recordBlob,r);else{i();{i=(this.fileName||m())+"."+p;let e=window.URL.createObjectURL(r),t=window.document.createElement("a");t.download=i,t.href=e,(r=window.document.createEvent("MouseEvents")).initEvent("click",!0,!0),t.dispatchEvent(r),setTimeout(()=>{window.URL.revokeObjectURL(e)},(i=window.navigator.userAgent.toLowerCase())&&/iphone|ipad|ipod|ios/.test(i)?1e3:0)}}this._reset(),this.player.emit(v.recording,!1)})}}class Ei{constructor(e){return new(Ei.getLoaderFactory(e._opt))(e)}static getLoaderFactory(e){return e.recordType===p&&(e.useWasm||e.useMSE||e.useWCS)?bi:vi}}class Si{constructor(e){this.player=e,this.decoderWorker=new Worker(e._opt.decoder),this._initDecoderWorker(),e.debug.log("decoderWorker","init"),e.on(v.visibilityChange,()=>{this.updateWorkConfig({key:"visibility",value:e.visibility})})}destroy(){this.decoderWorker.postMessage({cmd:"close"}),this.decoderWorker.terminate(),this.decoderWorker=null,this.player.debug.log("decoderWorker","destroy")}_initDecoderWorker(){const{debug:i,events:{}}=this.player;this.decoderWorker.onmessage=e=>{var t=e.data;switch(t.cmd){case X:i.log("decoderWorker","onmessage:",X),this.decoderWorker&&this._initWork(),this.player.loaded||this.player.emit(v.load),this.player.emit(v.decoderWorkerInit);break;case ee:i.log("decoderWorker","onmessage:",ee,t.code),this.player._times.decodeStart||(this.player._times.decodeStart=m()),this.player.video.updateVideoInfo({encTypeCode:t.code});break;case te:i.log("decoderWorker","onmessage:",te,t.codecId),this.player.recorder&&this.player.recorder.initMetaData(t.buffer,t.codecId);break;case $:i.log("decoderWorker","onmessage:",$,t.code),this.player.audio&&this.player.audio.updateAudioInfo({encTypeCode:t.code});break;case Y:(i.log("decoderWorker","onmessage:",Y,`width:${t.w},height:`+t.h),this.player.video.updateVideoInfo({width:t.w,height:t.h}),this.player._opt.openWebglAlignment||t.w/2%4==0||this.player.getRenderType()!==G)?(this.player.video.initCanvasViewSize(),this.player._opt.playType===y&&(this.player.video.initFps(),this.player.video.initVideoDelay())):this.player.emit(A.webglAlignmentError);break;case Z:(i.log("decoderWorker","onmessage:",Z,`channels:${t.channels},sampleRate:`+t.sampleRate),2<t.channels)?(this.player.emit(v.error,A.audioChannelError),this.player.emit(A.audioChannelError,`audio channel is ${t.channels}, max is 2`)):this.player.audio&&(this.player.audio.updateAudioInfo(t),this.player._opt.playType===n?this.player.audio.initScriptNode():this.player._opt.playType===y&&this.player.audio.initScriptNodeDelay());break;case"render":this.player._opt.playType===n?(this.player.video.render(t),this.player.handleRender(),this.player.emit(v.timeUpdate,t.ts),this.player.updateStats({dfps:!0,buf:t.delay}),this.player._times.videoStart||(this.player._times.videoStart=m(),this.player.handlePlayToRenderTimes())):this.player._opt.playType===y&&(!1===this.player.playbackPause?(this.player.playback.isUseLocalCalculateTime&&this.player.playback.increaseLocalTimestamp(),this.player.playback.isUseFpsRender?this.player.video.pushData(t):this.player.video.render$2(t)):!this.player.playback.isPlaybackPauseClearCache&&this.player.playback.isCacheBeforeDecodeForFpsRender&&this.player.playback.isUseFpsRender&&this.player.video.pushData(t));break;case"videoNalu":this.player.recorder&&this.player.recorder.isRecording&&this.player._opt.recordType===p&&this.player.recorder.handleAddNaluTrack(t.buffer,t.isIFrame,t.ts,t.cts);break;case"playAudio":(this.player.playing&&this.player.audio||!this.player.video)&&(this.player._opt.hasVideo||this.player.handleRender(),this.player._opt.playType===n||this.player._opt.playType===y&&(!1===this.player.playbackPause||!this.player.playback.isPlaybackPauseClearCache&&this.player.playback.isCacheBeforeDecodeForFpsRender&&this.player.playback.isUseFpsRender))&&this.player.audio.play(t.buffer,t.ts);break;case"workerFetch":if(t.type===v.streamSuccess)this.player.stream.emit(v.streamSuccess);else if(t.type===v.streamRate)this.player.emit(v.kBps,(t.value/1024).toFixed(2));else if(t.type===v.streamEnd)this.player.stream.emit(v.streamEnd);else if(t.type===A.websocketError)this.player.stream.emit(A.websocketError,t.value),this.player.emit(v.error,A.websocketError);else if(t.type===A.fetchError)this.player.stream.emit(A.fetchError,t.value),this.player.emit(v.error,A.fetchError);else if(t.type===v.streamAbps)this.player.updateStats({abps:t.value});else if(t.type===v.streamVbps)this.player._times.demuxStart||(this.player._times.demuxStart=m()),this.player.updateStats({vbps:t.value});else if(t.type===v.streamDts)this.player.updateStats({dts:t.value});else if(t.type===v.netBuf)this.player.updateStats({netBuf:t.value});else if(t.type===v.networkDelayTimeout)this.player.emit(v.networkDelayTimeout,t.value);else if(t.type===v.streamStats){const i=JSON.parse(t.value);this.player.updateStats({workerStats:i})}else t.type===v.websocketOpen&&this.player.emit(v.websocketOpen);break;case"iframeIntervalTs":this.player&&(this.player.videoIframeIntervalTs=t.value);break;case"playbackStreamVideoFps":this.player&&this.player.video&&this.player.video.setStreamFps(t.value);break;case"wasmError":t.message&&-1!==t.message.indexOf("Invalid NAL unit size")&&(this.player.emit(v.error,A.wasmDecodeError),this.player.emit(A.wasmDecodeError));break;case"wasmDecodeVideoNoResponseError":this.player.emit(v.error,A.wasmDecodeVideoNoResponseError),this.player.emit(A.wasmDecodeVideoNoResponseError);break;case"simdH264DecodeVideoWidthIsTooLarge":this.player.emit(v.error,A.simdH264DecodeVideoWidthIsTooLarge),this.player.emit(A.simdH264DecodeVideoWidthIsTooLarge);break;default:this.player[t.cmd]&&this.player[t.cmd](t)}}}_initWork(){var e={debug:this.player._opt.debug,debugLevel:this.player._opt.debugLevel,debugUuid:this.player._opt.debugUuid,useOffscreen:this.player._opt.useOffscreen,useWCS:this.player._opt.useWCS,videoBuffer:this.player._opt.videoBuffer,videoBufferDelay:this.player._opt.videoBufferDelay,openWebglAlignment:this.player._opt.openWebglAlignment,playType:this.player._opt.playType,hasAudio:this.player._opt.hasAudio,hasVideo:this.player._opt.hasVideo,playbackRate:1,playbackForwardMaxRateDecodeIFrame:this.player._opt.playbackForwardMaxRateDecodeIFrame,playbackIsCacheBeforeDecodeForFpsRender:this.player._opt.playbackConfig.isCacheBeforeDecodeForFpsRender,sampleRate:this.player.audio&&this.player.audio.audioContext.sampleRate||0,audioBufferSize:this.player.audio&&this.player.audio.getAudioBufferSize()||1024,networkDelay:this.player._opt.networkDelay,visibility:this.player.visibility,useSIMD:this.player._opt.useSIMD,recordType:this.player._opt.recordType,isNakedFlow:this.player._opt.isNakedFlow,checkFirstIFrame:this.player._opt.checkFirstIFrame,isCrypto:this.player._opt.isCrypto};this.decoderWorker.postMessage({cmd:"init",opt:JSON.stringify(e)}),this.player._opt.isCrypto&&(this.updateWorkConfig({key:"cryptoKey",value:this.player._opt.cryptoKey}),this.updateWorkConfig({key:"cryptoIV",value:this.player._opt.cryptoIV}))}decodeVideo(e,t,i){this.player._opt.playType===n?this._decodeVideo(e,t,i):this.player._opt.playType===y&&(this.player.video.rate>=this.player._opt.playbackForwardMaxRateDecodeIFrame?i&&(this.player.debug.log("decoderWorker",`current rate is ${this.player.video.rate},only decode i frame`),this._decodeVideoNoDelay(e,t,i)):1===this.player.video.rate?this._decodeVideo(e,t,i):this._decodeVideoNoDelay(e,t,i))}_decodeVideo(e,t,i){t={type:2,ts:Math.max(t,0),isIFrame:i};this.decoderWorker.postMessage({cmd:"decode",buffer:e,options:t},[e.buffer])}_decodeVideoNoDelay(e,t,i){this.decoderWorker.postMessage({cmd:"videoDecode",buffer:e,ts:Math.max(t,0),isIFrame:i},[e.buffer])}decodeAudio(e,t){this.player._opt.playType===n?this.player._opt.useWCS||this.player._opt.useMSE?this._decodeAudioNoDelay(e,t):this._decodeAudio(e,t):this.player._opt.playType===y&&(1===this.player.video.rate?this._decodeAudio(e,t):this._decodeAudioNoDelay(e,t))}_decodeAudio(e,t){t={type:1,ts:Math.max(t,0)};this.decoderWorker.postMessage({cmd:"decode",buffer:e,options:t},[e.buffer])}_decodeAudioNoDelay(e,t){this.decoderWorker.postMessage({cmd:"audioDecode",buffer:e,ts:Math.max(t,0)},[e.buffer])}updateWorkConfig(e){this.decoderWorker&&this.decoderWorker.postMessage({cmd:"updateConfig",key:e.key,value:e.value})}workerFetchStream(e){var t=this.player["_opt"],t={protocol:t.protocol,isFlv:t.isFlv};this.decoderWorker.postMessage({cmd:"fetchStream",url:e,opt:JSON.stringify(t)})}clearWorkBuffer(){this.decoderWorker.postMessage({cmd:"clearBuffer",needClear:0<arguments.length&&void 0!==arguments[0]&&arguments[0]})}workerSendMessage(e){this.decoderWorker.postMessage({cmd:"sendWsMessage",message:e})}}class Ti extends t{constructor(e){super(),this.player=e,this.stopId=null,this.firstTimestamp=null,this.startTimestamp=null,this.preDelayTimestamp=null,this.preLoopTimestamp=null,this.bufferStartDts=null,this.bufferStartLocalTs=null,this.preIframeTs=null,this.preTimestamp=null,this.isStreamTsMoreThanLocal=!1,this.delay=-1,this.pushLatestDelay=-1,this.bufferList=[],this.dropping=!1,this.isPushDropping=!1,this.initInterval(),this.player.debug.log("CommonDemux","init")}destroy(){this.bufferList=[],this.stopId&&(clearInterval(this.stopId),this.stopId=null),this.firstTimestamp=null,this.startTimestamp=null,this.bufferStartDts=null,this.bufferStartLocalTs=null,this.preDelayTimestamp=null,this.preLoopTimestamp=null,this.preIframeTs=null,this.preTimestamp=null,this.isStreamTsMoreThanLocal=!1,this.delay=-1,this.pushLatestDelay=-1,this.dropping=!1,this.isPushDropping=!1,this.off(),this.player.debug.log("CommonDemux","destroy")}isDropping(){return this.dropping||this.isPushDropping}getDelay(e){var t,i;return e&&this.player.isDemuxDecodeFirstIIframeInit()?(this.preDelayTimestamp&&this.preDelayTimestamp>e?1e3<this.preDelayTimestamp-e&&this.player.debug.warn("CommonDemux",`getDelay and preDelayTimestamp is ${this.preDelayTimestamp} > timestamp is ${e} more than ${this.preDelayTimestamp-e}ms`):this.firstTimestamp?e&&(t=Date.now()-this.startTimestamp,(i=e-this.firstTimestamp)<=t?(this.isStreamTsMoreThanLocal=!1,this.delay=t-i):(this.isStreamTsMoreThanLocal=!0,this.delay=i-t)):(this.firstTimestamp=e,this.startTimestamp=Date.now(),this.delay=-1),this.preDelayTimestamp=e,this.delay):-1}getDelayNotUpdateDelay(t){if(t&&this.player.isDemuxDecodeFirstIIframeInit())if(this.preDelayTimestamp&&1e3<this.preDelayTimestamp-t)this.player.debug.warn("CommonDemux",`getDelayNotUpdateDelay and preDelayTimestamp is ${this.preDelayTimestamp} > timestamp is ${t} more than ${this.preDelayTimestamp-t}ms`);else if(this.firstTimestamp){let e=-1;var i;return t&&(i=Date.now()-this.startTimestamp,t=t-this.firstTimestamp,e=t<=i?i-t:t-i),e}return-1}resetDelay(){this.firstTimestamp=null,this.startTimestamp=null,this.delay=-1,this.dropping=!1}resetAllDelay(){this.resetDelay(),this.preDelayTimestamp=null}initInterval(){this.player.debug.log("CommonDemux","init Interval"),this._loop(),this.stopId=setInterval(()=>{var e=(new Date).getTime(),e=(this.preLoopTimestamp||(this.preLoopTimestamp=e),e-this.preLoopTimestamp);100<e&&this.player.debug.warn("CommonDemux","loop demux diff time is "+e),this._loop(),this.preLoopTimestamp=(new Date).getTime()},10)}_loop(){let e;const t=this.player._opt.videoBuffer,i=this.player._opt.videoBufferDelay,r=this.player._opt.playType===n;if(this.bufferList.length)if(this.dropping){e=this.bufferList.shift();const t=this.getDelayNotUpdateDelay(e.ts);for(this.player.debug.warn("CommonDemux",`_loop is dropping and data.ts is ${e.ts}, data.isIFrame is ${e.isIFrame} tempDelay is ${t}, delay is `+this.delay);!e.isIFrame&&this.bufferList.length;)e=this.bufferList.shift();e.isIFrame&&t<=this.getNotDroppingDelayTs()&&(this.player.debug.log("CommonDemux","_loop data isIFrame is true and delay is "+this.delay),this.dropping=!1,this._doDecoderDecode(e))}else e=this.bufferList[0],-1===this.getDelay(e.ts)?(this.bufferList.shift(),this._doDecoderDecode(e)):this.delay>i+t&&r?this.hasIframeInBufferList()?(this.player.debug.warn("CommonDemux",`_loop delay is ${this.delay}, set dropping is true`),this.resetAllDelay(),this.dropping=!0):(this.bufferList.shift(),this._doDecoderDecode(e)):this.delay>t?(this.bufferList.shift(),this._doDecoderDecode(e)):this.delay<0&&this.player.debug.error("CommonDemux",`_loop delay is ${this.delay} bufferList is `+this.bufferList);else-1!==this.delay&&this.player.debug.log("CommonDemux","loop() bufferList is empty and reset delay"),this.resetAllDelay()}_doDecode(e,t,i,r){var s=this.player,a={ts:i,cts:4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,type:t,isIFrame:!1};2===t&&s._opt.playType===n&&this.calcNetworkDelay(i),s._opt.useWCS&&!s._opt.useOffscreen||s._opt.useMSE?(2===t&&(a.isIFrame=r),this.pushBuffer(e,a)):2===t?s.decoderWorker&&s.decoderWorker.decodeVideo(e,i,r):1===t&&s._opt.hasAudio&&s.decoderWorker&&s.decoderWorker.decodeAudio(e,i)}_doDecoderDecode(e){var t=this.player,{webcodecsDecoder:i,mseDecoder:r}=t;1===e.type?t._opt.hasAudio&&t.decoderWorker&&t.decoderWorker.decodeAudio(e.payload,e.ts):2===e.type&&(t._opt.useWCS&&!t._opt.useOffscreen?i.decodeVideo(e.payload,e.ts,e.isIFrame,e.cts):t._opt.useMSE&&r.decodeVideo(e.payload,e.ts,e.isIFrame,e.cts))}pushBuffer(e,t){const i=this.player._opt.videoBuffer,r=this.player._opt.videoBufferDelay,s=this.player._opt.playType===n;if(1===t.type&&We(e))this.player.debug.log("CommonDemux",`pushBuffer audio ts is ${t.ts}, isAacCodecPacket is `+We(e)),this._doDecoderDecode({ts:t.ts,payload:e,type:1});else{if(0<this.preTimestamp&&t.ts<this.preTimestamp&&2===t.type&&36e5<this.preTimestamp-t.ts&&(this.player.debug.warn("CommonDemux",`pushBuffer video ts is ${t.ts}, preTimestamp is ${this.preTimestamp}, diff is ${this.preTimestamp-t.ts} more than 3600000 and resetAllDelay()`),this.resetAllDelay()),t.ts<=this.preTimestamp&&0<this.preTimestamp&&2===t.type&&this.player.debug.warn("CommonDemux",`pushBuffer video ts is ${t.ts} less than (or equal) preTimestamp is ${this.preTimestamp} and type is `+t.type),s&&this.player.isDemuxDecodeFirstIIframeInit()){var a=this.getDelayNotUpdateDelay(t.ts);this.pushLatestDelay=a;const s=r+i;this.player._opt.useMSE?a>s&&this.delay<s&&0<this.delay&&this.hasIframeInBufferList()&&(this.player.debug.warn("CommonDemux",`useMSE, pushLatestDelay is ${a} > ${r+i}, bufferList is ${this.bufferList.length}, delay is ${this.delay} and dropBuffer$2()`),this.dropBuffer$2()):a>s&&this.delay<s&&0<this.delay&&this.hasIframeInBufferList()&&(this.player.debug.warn("CommonDemux",`useWCS, pushLatestDelay is ${a} > ${r+i},bufferList is ${this.bufferList.length}, delay is ${this.delay} and dropBuffer$2()`),this.dropBuffer$2())}2===t.type&&(this.preTimestamp=t.ts),1===t.type?this.bufferList.push({ts:t.ts,payload:e,type:1}):2===t.type&&this.bufferList.push({ts:t.ts,cts:t.cts,payload:e,type:2,isIFrame:t.isIFrame})}}dropBuffer$2(){var e,t,i;0<this.bufferList.length&&(this.isPushDropping=!0,0<=(e=this.bufferList.findIndex(e=>!0===e.isIFrame&&2===e.type))?(this.isPushDropping=!1,this.bufferList=this.bufferList.slice(e),t=this.bufferList.shift(),i=this.getDelayNotUpdateDelay(t.ts),this._doDecoderDecode(t),this.player.debug.log("CommonDemux",`dropBuffer$2() iFrameIndex is ${e},and bufferList length is ${this.bufferList.length} and tempDelay is ${i} ,delay is ${this.delay} `)):this.isPushDropping=!1),0===this.bufferList.length&&(this.isPushDropping=!1)}dropBuffer(){for(var e=this.getMaxDelayTs();0<this.bufferList.length;){var t=this.bufferList[0],i=this.getDelayNotUpdateDelay(t.ts);if(2===t.type&&t.isIFrame&&i>=this.getNotDroppingDelayTs()&&i<e){this.isPushDropping=!1,this.bufferList.shift(),this._doDecoderDecode(t),this.player.debug.log("CommonDemux",`dropBuffer() dropBuffer end isIFrame ${t.isIFrame} and tempDelay is ${i} >= ${this.getNotDroppingDelayTs()} and delay is ${this.delay} and bufferlist is `+this.bufferList.length);break}this.player.debug.warn("CommonDemux",`dropBuffer() dropBuffer is dropping and data.type is ${t.type}, isIFrame ${t.isIFrame} and tempDelay is ${i} and getNotDroppingDelayTs is ${this.getNotDroppingDelayTs()}, delay is ${this.delay} and bufferlist is `+this.bufferList.length),this.bufferList.shift(),2===t.type&&t.isIFrame&&this._doDecoderDecode(t),this.isPushDropping=!0}0===this.bufferList.length&&(this.isPushDropping=!1)}clearBuffer(){var e=0<arguments.length&&void 0!==arguments[0]&&arguments[0];this.player.debug.log("CommonDemux",`clearBuffer,buffer length is ${this.bufferList.length}, need clear is `+e),e&&(this.bufferList=[]),this.resetAllDelay(),this.dropping=!0}calcNetworkDelay(e){var t,i,r;this.player.isDemuxDecodeFirstIIframeInit()&&0<e&&(null===this.bufferStartDts?(this.bufferStartDts=e,this.bufferStartLocalTs=m()):e<this.bufferStartDts&&(this.player.debug.warn("CommonDemux",`calcNetworkDelay dts is ${e} and bufferStartDts is `+this.bufferStartDts),this.bufferStartDts=e,this.bufferStartLocalTs=m()),(r=(t=e-this.bufferStartDts)<(i=m()-this.bufferStartLocalTs)?i-t:0)>this.player._opt.networkDelay&&this.player._opt.playType===n&&(this.player.debug.warn("CommonDemux",`now dts:${e},start dts is ${this.bufferStartDts}, vs start is ${t},local diff is ${i} ,delay is `+r),this.player.emit(v.networkDelayTimeout,r)),this.player.updateStats({netBuf:r}))}calcIframeIntervalTimestamp(e){var t;null===this.preIframeTs?this.preIframeTs=e:this.preIframeTs<e&&(t=e-this.preIframeTs,this.player&&(this.player.videoIframeIntervalTs=t),this.preIframeTs=e)}getNotDroppingDelayTs(){return this.player._opt.videoBuffer+this.player._opt.videoBufferDelay/2}getMaxDelayTs(){return this.player._opt.videoBuffer+this.player._opt.videoBufferDelay}getPushLatestDelay(){return this.pushLatestDelay}hasIframeInBufferList(){return this.bufferList.some(e=>2===e.type&&e.isIFrame)}getInputByteLength(){return 0}getIsStreamTsMoreThanLocal(){return this.isStreamTsMoreThanLocal}close(){}reset(){}}const wi=[[Uint8Array,Int8Array],[Uint16Array,Int16Array],[Uint32Array,Int32Array,Float32Array],[Float64Array]],ki=Symbol(32),Ci=Symbol(16),Ri=Symbol(8),Di=new Map;wi.forEach((e,t)=>e.forEach(e=>Di.set(e,t)));class Li{constructor(e){this.g=e,this.consumed=0,e&&(this.need=e.next().value)}fillFromReader(i){return e=this,l=function*(){var{done:e,value:t}=yield i.read();return e?void this.close():(this.write(t),this.fillFromReader(i))},new(o=(o=n=void 0)||Promise)(function(i,t){function r(e){try{a(l.next(e))}catch(e){t(e)}}function s(e){try{a(l.throw(e))}catch(e){t(e)}}function a(e){var t;e.done?i(e.value):((t=e.value)instanceof o?t:new o(function(e){e(t)})).then(r,s)}a((l=l.apply(e,n||[])).next())});var e,n,o,l}consume(){this.buffer&&this.consumed&&(this.buffer.copyWithin(0,this.consumed),this.buffer=this.buffer.subarray(0,this.buffer.length-this.consumed),this.consumed=0)}demand(e,t){return t&&this.consume(),this.need=e,this.flush()}read(i){return new Promise((t,e)=>{if(this.resolve)return e("last read not complete yet");this.resolve=e=>{delete this.resolve,delete this.need,t(e)},this.demand(i,!0)})}readU32(){return this.read(ki)}readU16(){return this.read(Ci)}readU8(){return this.read(Ri)}close(){this.g&&this.g.return()}flush(){if(this.buffer&&this.need){let e=null;const r=this.buffer.subarray(this.consumed);let t=0;var i=e=>r.length<(t=e);if("number"==typeof this.need){if(i(this.need))return;e=r.subarray(0,t)}else if(this.need instanceof ArrayBuffer){if(i(this.need.byteLength))return;new Uint8Array(this.need).set(r.subarray(0,t)),e=this.need}else if(this.need===ki){if(i(4))return;e=r[0]<<24|r[1]<<16|r[2]<<8|r[3]}else if(this.need===Ci){if(i(2))return;e=r[0]<<8|r[1]}else if(this.need===Ri){if(i(1))return;e=r[0]}else if(Di.has(this.need.constructor)){if(i(this.need.length<<Di.get(this.need.constructor)))return;new Uint8Array(this.need.buffer,this.need.byteOffset).set(r.subarray(0,t)),e=this.need}else if(this.g)return void this.g.throw(new Error("Unsupported type"));return this.consumed+=t,this.g?this.demand(this.g.next(e).value,!0):this.resolve&&this.resolve(e),e}}write(e){e instanceof ArrayBuffer?this.malloc(e.byteLength).set(new Uint8Array(e)):this.malloc(e.byteLength).set(new Uint8Array(e.buffer,e.byteOffset,e.byteLength)),(this.g||this.resolve)&&this.flush()}writeU32(e){this.malloc(4).set([e>>24&255,e>>16&255,e>>8&255,255&e]),this.flush()}writeU16(e){this.malloc(2).set([e>>8&255,255&e]),this.flush()}writeU8(e){this.malloc(1)[0]=e,this.flush()}malloc(e){if(this.buffer){var t=this.buffer.length,i=t+e;if(i<=this.buffer.buffer.byteLength-this.buffer.byteOffset)this.buffer=new Uint8Array(this.buffer.buffer,this.buffer.byteOffset,i);else{const e=new Uint8Array(i);e.set(this.buffer),this.buffer=e}return this.buffer.subarray(t,i)}return this.buffer=new Uint8Array(e),this.buffer}}Li.U32=ki,Li.U16=Ci,Li.U8=Ri;var Ii,Bi="application/json, text/javascript",xi="text/html",Pi=/^(?:text|application)\/xml/i,Fi=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Oi=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,_i=/^\s*$/,Mi={},Ui={},ji="",Ni={type:"GET",beforeSend:C,success:C,error:C,complete:C,context:null,xhr:function(){return new window.XMLHttpRequest},accepts:{json:Bi,xml:"application/xml, text/xml",html:xi,text:"text/plain","*":"*/".concat("*")},crossDomain:!1,timeout:0,username:null,password:null,processData:!0,promise:C,contentType:"application/x-www-form-urlencoded; charset=UTF-8"};function C(){}function R(e,t){"object"==typeof e&&(t=e,e=void 0);var i,r=qi({},t=t||{});for(i in Ni)void 0===r[i]&&(r[i]=Ni[i]);try{var s={},a=new Promise(function(e,t){s.resolve=e,s.reject=t});a.resolve=s.resolve,a.reject=s.reject,r.promise=a}catch(e){r.promise={resolve:C,reject:C}}var n,o,l,c,u,a=Oi.exec(window.location.href.toLowerCase())||[],d=(r.url=((e||r.url||window.location.href)+"").replace(/#.*$/,"").replace(/^\/\//,a[1]+"//"),r.url),h=(r.crossDomain||(r.crossDomain=/^([\w-]+:)?\/\/([^\/]+)/.test(r.url)&&RegExp.$2!==window.location.href),r.dataType);if("jsonp"===h)return/=\?/.test(r.url)||(a=(r.jsonp||"callback")+"=?",r.url=zi(r.url,a)),l=(n=r).jsonpCallback||"jsonp"+Xi(),c=window.document.createElement("script"),u={abort:function(){l in window&&(window[l]=C)}},a=window.document.getElementsByTagName("head")[0]||window.document.documentElement,c.onerror=function(e){e=e,window.clearTimeout(o),u.abort(),Wi(e.type,u,e.type,n),p()},window[l]=function(e){window.clearTimeout(o),Vi(e,u,n),p()},Ki(n),c.src=n.url.replace(/=\?/,"="+l),c.src=zi(c.src,"_="+(new Date).getTime()),c.async=!0,n.scriptCharset&&(c.charset=n.scriptCharset),a.insertBefore(c,a.firstChild),0<n.timeout&&(o=window.setTimeout(function(){u.abort(),Wi("timeout",u,"timeout",n),p()},n.timeout)),n.promise.abort=function(){u.abort()},n.promise.xhr=u,n.promise;function p(){c.clearAttributes?c.clearAttributes():c.onload=c.onreadystatechange=c.onerror=null,c.parentNode&&c.parentNode.removeChild(c),c=null,delete window[l]}Ki(r);var f=r.accepts[h]||r.accepts["*"],A={};/^([\w-]+:)\/\//.test(r.url)?RegExp.$1:window.location.protocol;var m,g=Ni.xhr(),f=(r.crossDomain||A["X-Requested-With"]||(A["X-Requested-With"]="XMLHttpRequest"),r.ifModified&&(Mi[d]&&(A["If-Modified-Since"]=Mi[d]),Ui[d])&&(A["If-None-Match"]=Ui[d]),f&&(-1<(A.Accept=f).indexOf(",")&&(f=f.split(",",2)[0]),g.overrideMimeType)&&g.overrideMimeType(f),!/^(?:GET|HEAD)$/.test(r.type.toUpperCase())),f=((r.data&&f&&!1!==r.contentType||t.contentType)&&(A["Content-Type"]=r.contentType),!1!==r.cache||f||(r.url=(t=/([?&])_=[^&]*/).test(d)?d.replace(t,"$1_="+Xi()):d+(/\?/.test(d)?"&":"?")+"_="+Xi()),r.headers=qi(A,r.headers||{}),g.onreadystatechange=function(){if(4===g.readyState){clearTimeout(m);var e,t=!1;if(200<=g.status&&g.status<300||304===g.status){ji=g.getAllResponseHeaders(),r.ifModified&&((i=Gi("Last-Modified"))&&(Mi[d]=i),i=Gi("etag"))&&(Ui[d]=i),h=h||(i=g.getResponseHeader("content-type"))&&(i===xi?"html":i===Bi?"json":Pi.test(i)&&"xml")||"text",e=g.responseText;try{"xml"===h?e=g.responseXML:"json"===h&&(e=_i.test(e)?null:JSON.parse(e))}catch(e){t=e}t?Wi(t,"parseerror",g,r):Vi(e,g,r)}else Wi(null,"error",g,r)}var i},!("async"in r)||r.async);if(g.open(r.type,r.url,f,r.username,r.password),r.xhrFields)for(var y in r.xhrFields)g[y]=r.xhrFields[y];for(y in r.mimeType&&g.overrideMimeType&&g.overrideMimeType(r.mimeType),r.headers)void 0!==r.headers[y]&&g.setRequestHeader(y,r.headers[y]+"");return!1===function(e){var t=e.context;if(!1===e.beforeSend.call(t,g,e))return!1}(r)?(g.abort(),!1):(0<r.timeout&&(m=window.setTimeout(function(){g.onreadystatechange=C,g.abort(),Wi(null,"timeout",g,r)},r.timeout)),g.send(r.data||null),r.promise.abort=function(){g.abort()},r.promise)}function Vi(e,t,i){var r=i.context,s="success";i.success.call(r,e,s,t),i.promise.resolve(e,s,t),Hi(s,t,i)}function Hi(e,t,i){var r=i.context;i.complete.call(r,t,e)}function Wi(e,t,i,r){var s=r.context;r.error.call(s,i,t,e),r.promise.reject(i,t,e),Hi(t,i,r)}function Gi(e){var t;if(!Ii){for(Ii={};t=Fi.exec(ji);)Ii[t[1].toLowerCase()]=t[2];t=Ii[e.toLowerCase()]}return null===t?null:t}function zi(e,t){return(e+"&"+t).replace(/[&?]{1,2}/,"?")}function Ki(e){var t,i;!Ji(e)||e.data instanceof FormData||!e.processData||(e.data=(t=e.data,(i=[]).add=function(e,t){this.push(encodeURIComponent(e)+"="+encodeURIComponent(t))},function e(t,i,r,s){var a=function(e){return"[object Array]"===Object.prototype.toString.call(e)}(i);for(var n in i){var o=i[n];s&&(n=r?s:s+"["+(a?"":n)+"]"),!s&&a?t.add(o.name,o.value):(r?a:Ji)(o)?e(t,o,r,n):t.add(n,o)}}(i,t,void 0),i.join("&").replace("%20","+"))),!e.data||e.type&&"GET"!==e.type.toUpperCase()||(e.url=zi(e.url,e.data))}function qi(e){for(var t=Array.prototype.slice.call(arguments,1),i=0,r=t.length;i<r;i++){var s,a=t[i]||{};for(s in a)a.hasOwnProperty(s)&&void 0!==a[s]&&(e[s]=a[s])}return e}function Ji(e){var t=typeof e;return"function"==t||"object"==t&&!!e}function Qi(e){return"function"==typeof e}function Xi(){return(new Date).getTime()}function Yi(e){return parseInt(e)===e}function Zi(e){if(Yi(e.length)){for(var t=0;t<e.length;t++)if(!Yi(e[t])||e[t]<0||255<e[t])return;return 1}}function a(e,t){if(e.buffer&&"Uint8Array"===e.name)return e=t?e.slice?e.slice():Array.prototype.slice.call(e):e;if(Array.isArray(e)){if(Zi(e))return new Uint8Array(e);throw new Error("Array contains invalid value: "+e)}if(Yi(e.length)&&Zi(e))return new Uint8Array(e);throw new Error("unsupported array-like object")}function D(e){return new Uint8Array(e)}function L(e,t,i,r,s){null==r&&null==s||(e=e.slice?e.slice(r,s):Array.prototype.slice.call(e,r,s)),t.set(e,i)}R.get=function(e,t,i,r){return Qi(t)&&(r=r||i,i=t,t=void 0),R({url:e,data:t,success:i,dataType:r})},R.post=function(e,t,i,r){return Qi(t)&&(r=r||i,i=t,t=void 0),R({type:"POST",url:e,data:t,success:i,dataType:r})},R.getJSON=function(e,t,i){return Qi(t)&&(i=t,t=void 0),R({url:e,data:t,success:i,dataType:"json"})},R.ajaxSetup=function(e,t){return t?qi(qi(e,Ni),t):qi(Ni,e)};var $i,er={toBytes:function(e){var t=[],i=0;for(e=encodeURI(e);i<e.length;){var r=e.charCodeAt(i++);37===r?(t.push(parseInt(e.substr(i,2),16)),i+=2):t.push(r)}return a(t)},fromBytes:function(e){for(var t=[],i=0;i<e.length;){var r=e[i];r<128?(t.push(String.fromCharCode(r)),i++):191<r&&r<224?(t.push(String.fromCharCode((31&r)<<6|63&e[i+1])),i+=2):(t.push(String.fromCharCode((15&r)<<12|(63&e[i+1])<<6|63&e[i+2])),i+=3)}return t.join("")}},tr=($i="0123456789abcdef",{toBytes:function(e){for(var t=[],i=0;i<e.length;i+=2)t.push(parseInt(e.substr(i,2),16));return t},fromBytes:function(e){for(var t=[],i=0;i<e.length;i++){var r=e[i];t.push($i[(240&r)>>4]+$i[15&r])}return t.join("")}}),ir={16:10,24:12,32:14},rr=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],I=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],sr=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],ar=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],nr=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],or=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],lr=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],cr=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],ur=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],dr=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239e3,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],hr=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998e3,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],pr=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],fr=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],Ar=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239e3,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],mr=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998e3,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function gr(e){for(var t=[],i=0;i<e.length;i+=4)t.push(e[i]<<24|e[i+1]<<16|e[i+2]<<8|e[i+3]);return t}function r(e){if(!(this instanceof r))throw Error("AES must be instanitated with `new`");Object.defineProperty(this,"key",{value:a(e,!0)}),this._prepare()}function yr(e){if(!(this instanceof yr))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new r(e)}function vr(e,t){if(!(this instanceof vr))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Block Chaining",this.name="cbc",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else t=D(16);this._lastCipherblock=a(t,!0),this._aes=new r(e)}function br(e,t,i){if(!(this instanceof br))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Feedback",this.name="cfb",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 size)")}else t=D(16);this.segmentSize=i=i||1,this._shiftRegister=a(t,!0),this._aes=new r(e)}function Er(e,t){if(!(this instanceof Er))throw Error("AES must be instanitated with `new`");if(this.description="Output Feedback",this.name="ofb",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else t=D(16);this._lastPrecipher=a(t,!0),this._lastPrecipherIndex=16,this._aes=new r(e)}function i(e){if(!(this instanceof i))throw Error("Counter must be instanitated with `new`");"number"==typeof(e=0!==e?e||1:e)?(this._counter=D(16),this.setValue(e)):this.setBytes(e)}function Sr(e,t){if(!(this instanceof Sr))throw Error("AES must be instanitated with `new`");this.description="Counter",this.name="ctr",t instanceof i||(t=new i(t)),this._counter=t,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new r(e)}r.prototype._prepare=function(){var e=ir[this.key.length];if(null==e)throw new Error("invalid key size (must be 16, 24 or 32 bytes)");this._Ke=[],this._Kd=[];for(var t=0;t<=e;t++)this._Ke.push([0,0,0,0]),this._Kd.push([0,0,0,0]);for(var i,r=4*(e+1),s=this.key.length/4,a=gr(this.key),t=0;t<s;t++)this._Ke[i=t>>2][t%4]=a[t],this._Kd[e-i][t%4]=a[t];for(var n,o=0,l=s;l<r;){if(n=a[s-1],a[0]^=I[n>>16&255]<<24^I[n>>8&255]<<16^I[255&n]<<8^I[n>>24&255]^rr[o]<<24,o+=1,8!=s)for(t=1;t<s;t++)a[t]^=a[t-1];else{for(t=1;t<s/2;t++)a[t]^=a[t-1];for(n=a[s/2-1],a[s/2]^=I[255&n]^I[n>>8&255]<<8^I[n>>16&255]<<16^I[n>>24&255]<<24,t=s/2+1;t<s;t++)a[t]^=a[t-1]}for(t=0;t<s&&l<r;)this._Ke[c=l>>2][u=l%4]=a[t],this._Kd[e-c][u]=a[t++],l++}for(var c=1;c<e;c++)for(var u=0;u<4;u++)n=this._Kd[c][u],this._Kd[c][u]=pr[n>>24&255]^fr[n>>16&255]^Ar[n>>8&255]^mr[255&n]},r.prototype.encrypt=function(e){if(16!=e.length)throw new Error("invalid plaintext size (must be 16 bytes)");for(var t=this._Ke.length-1,i=[0,0,0,0],r=gr(e),s=0;s<4;s++)r[s]^=this._Ke[0][s];for(var a=1;a<t;a++){for(s=0;s<4;s++)i[s]=ar[r[s]>>24&255]^nr[r[(s+1)%4]>>16&255]^or[r[(s+2)%4]>>8&255]^lr[255&r[(s+3)%4]]^this._Ke[a][s];r=i.slice()}for(var n,o=D(16),s=0;s<4;s++)n=this._Ke[t][s],o[4*s]=255&(I[r[s]>>24&255]^n>>24),o[4*s+1]=255&(I[r[(s+1)%4]>>16&255]^n>>16),o[4*s+2]=255&(I[r[(s+2)%4]>>8&255]^n>>8),o[4*s+3]=255&(I[255&r[(s+3)%4]]^n);return o},r.prototype.decrypt=function(e){if(16!=e.length)throw new Error("invalid ciphertext size (must be 16 bytes)");for(var t=this._Kd.length-1,i=[0,0,0,0],r=gr(e),s=0;s<4;s++)r[s]^=this._Kd[0][s];for(var a=1;a<t;a++){for(s=0;s<4;s++)i[s]=cr[r[s]>>24&255]^ur[r[(s+3)%4]>>16&255]^dr[r[(s+2)%4]>>8&255]^hr[255&r[(s+1)%4]]^this._Kd[a][s];r=i.slice()}for(var n,o=D(16),s=0;s<4;s++)n=this._Kd[t][s],o[4*s]=255&(sr[r[s]>>24&255]^n>>24),o[4*s+1]=255&(sr[r[(s+3)%4]>>16&255]^n>>16),o[4*s+2]=255&(sr[r[(s+2)%4]>>8&255]^n>>8),o[4*s+3]=255&(sr[255&r[(s+1)%4]]^n);return o},yr.prototype.encrypt=function(e){if((e=a(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=D(e.length),i=D(16),r=0;r<e.length;r+=16)L(e,i,0,r,r+16),L(i=this._aes.encrypt(i),t,r);return t},yr.prototype.decrypt=function(e){if((e=a(e)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var t=D(e.length),i=D(16),r=0;r<e.length;r+=16)L(e,i,0,r,r+16),L(i=this._aes.decrypt(i),t,r);return t},vr.prototype.encrypt=function(e){if((e=a(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=D(e.length),i=D(16),r=0;r<e.length;r+=16){L(e,i,0,r,r+16);for(var s=0;s<16;s++)i[s]^=this._lastCipherblock[s];this._lastCipherblock=this._aes.encrypt(i),L(this._lastCipherblock,t,r)}return t},vr.prototype.decrypt=function(e){if((e=a(e)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var t=D(e.length),i=D(16),r=0;r<e.length;r+=16){L(e,i,0,r,r+16);for(var i=this._aes.decrypt(i),s=0;s<16;s++)t[r+s]=i[s]^this._lastCipherblock[s];L(e,this._lastCipherblock,0,r,r+16)}return t},br.prototype.encrypt=function(e){if(e.length%this.segmentSize!=0)throw new Error("invalid plaintext size (must be segmentSize bytes)");for(var t=a(e,!0),i=0;i<t.length;i+=this.segmentSize){for(var r=this._aes.encrypt(this._shiftRegister),s=0;s<this.segmentSize;s++)t[i+s]^=r[s];L(this._shiftRegister,this._shiftRegister,0,this.segmentSize),L(t,this._shiftRegister,16-this.segmentSize,i,i+this.segmentSize)}return t},br.prototype.decrypt=function(e){if(e.length%this.segmentSize!=0)throw new Error("invalid ciphertext size (must be segmentSize bytes)");for(var t=a(e,!0),i=0;i<t.length;i+=this.segmentSize){for(var r=this._aes.encrypt(this._shiftRegister),s=0;s<this.segmentSize;s++)t[i+s]^=r[s];L(this._shiftRegister,this._shiftRegister,0,this.segmentSize),L(e,this._shiftRegister,16-this.segmentSize,i,i+this.segmentSize)}return t},Er.prototype.decrypt=Er.prototype.encrypt=function(e){for(var t=a(e,!0),i=0;i<t.length;i++)16===this._lastPrecipherIndex&&(this._lastPrecipher=this._aes.encrypt(this._lastPrecipher),this._lastPrecipherIndex=0),t[i]^=this._lastPrecipher[this._lastPrecipherIndex++];return t},i.prototype.setValue=function(e){if("number"!=typeof e||parseInt(e)!=e)throw new Error("invalid counter value (must be an integer)");if(e>Number.MAX_SAFE_INTEGER)throw new Error("integer value out of safe range");for(var t=15;0<=t;--t)this._counter[t]=e%256,e=parseInt(e/256)},i.prototype.setBytes=function(e){if(16!=(e=a(e,!0)).length)throw new Error("invalid counter bytes size (must be 16 bytes)");this._counter=e},i.prototype.increment=function(){for(var e=15;0<=e;e--){if(255!==this._counter[e]){this._counter[e]++;break}this._counter[e]=0}};Sr.prototype.decrypt=Sr.prototype.encrypt=function(e){for(var t=a(e,!0),i=0;i<t.length;i++)16===this._remainingCounterIndex&&(this._remainingCounter=this._aes.encrypt(this._counter._counter),this._remainingCounterIndex=0,this._counter.increment()),t[i]^=this._remainingCounter[this._remainingCounterIndex++];return t};const Tr={AES:r,Counter:i,ModeOfOperation:{ecb:yr,cbc:vr,cfb:br,ofb:Er,ctr:Sr},utils:{hex:tr,utf8:er},padding:{pkcs7:{pad:function(e){var t=16-(e=a(e,!0)).length%16,i=D(e.length+t);L(e,i);for(var r=e.length;r<i.length;r++)i[r]=t;return i},strip:function(e){if((e=a(e,!0)).length<16)throw new Error("PKCS#7 invalid length");var t=e[e.length-1];if(16<t)throw new Error("PKCS#7 padding byte out of range");for(var i=e.length-t,r=0;r<t;r++)if(e[i+r]!==t)throw new Error("PKCS#7 invalid padding byte");var s=D(i);return L(e,s,0,0,i),s}}},_arrayTest:{coerceArray:a,createArray:D,copyArray:L}};class wr extends Ti{constructor(e){super(e),this.input=new Li(this.demux()),e.debug.log("FlvDemux","init")}destroy(){super.destroy(),this.input=null,this.player.debug.log("FlvDemux","destroy")}dispatch(e){this.input?this.input.write(e):this.player&&this.player.debug.warn("FlvDemux","dispatch() this.input is null")}*demux(){yield 9;const e=new ArrayBuffer(4),i=new Uint8Array(e),r=new Uint32Array(e),s=this.player;for(;;){if(!this.input)return;i[3]=0;const e=yield 15,l=e[4];i[0]=e[7],i[1]=e[6],i[2]=e[5];var a=r[0];i[0]=e[10],i[1]=e[9],i[2]=e[8];let t=r[0];16777215===t&&(i[3]=e[11],t=r[0]);var n=(yield a).slice();if(!s)return;switch(l){case 8:s._opt.hasAudio&&(s.updateStats({abps:n.byteLength}),0<n.byteLength)&&this._doDecode(n,1,t);break;case 9:if(s._opt.hasVideo){var o=t;s.updateStats({vbps:n.byteLength,dts:o});const i=n[0]>>4==1;if(i&&this.calcIframeIntervalTimestamp(t),0<n.byteLength){r[0]=n[4],r[1]=n[3],r[2]=n[2],r[3]=0;o=r[0];s._times.demuxStart||(s._times.demuxStart=m());let e=n;s._opt.isCrypto&&(s._opt.cryptoKey&&0<s._opt.cryptoKey.byteLength&&s._opt.cryptoIV&&0<s._opt.cryptoIV.byteLength?e=function(t,i,r){i=new Uint8Array(i),r=new Uint8Array(r);const s=t.byteLength;let a=5;for(;a<s;){o=(o=t.slice(a,a+4))[3]|o[2]<<8|o[1]<<16|o[0]<<24;if(o>s)break;var n=t[a+4];if(1==(n&=31)||5==n){const s=t.slice(a+4+2,a+4+o);let e=new Tr.ModeOfOperation.ctr(i,new Tr.Counter(r));n=e.decrypt(s);e=null,t.set(n,a+4+2)}a=a+4+o}var o;return t}(n,s._opt.cryptoKey,s._opt.cryptoIV):s.debug.error("FlvDemux",`cryptoKey.length is ${s._opt.cryptoKey&&s._opt.cryptoKey.byteLength} or cryptoIV.length is ${s._opt.cryptoIV&&s._opt.cryptoIV.byteLength} null`)),this._doDecode(e,2,t,i,o)}}break;default:s.debug.log("FlvDemux","demux() type is "+l)}}}close(){this.input=null}getInputByteLength(){let e=0;return e=this.input&&this.input.buffer?this.input.buffer.byteLength:e}}class kr extends Ti{constructor(e){super(e),e.debug.log("M7sDemux","init")}destroy(){super.destroy(),this.player.debug.log("M7sDemux","destroy")}dispatch(t){const i=this.player,r=new DataView(t),s=r.getUint8(0),a=r.getUint32(1,!1);switch(s){case 1:if(i._opt.hasAudio){const r=new Uint8Array(t,5);i.updateStats({abps:r.byteLength}),0<r.byteLength&&this._doDecode(r,s,a)}break;case 2:if(i._opt.hasVideo)if(i._times.demuxStart||(i._times.demuxStart=m()),5<r.byteLength){var n=new Uint8Array(t,5),o=r.getUint8(5)>>4==1;let e=a;this.player._opt.useMSE&&c(this.player.mseDecoder.firstRenderTime)&&(e=a-this.player.mseDecoder.firstRenderTime),i.updateStats({vbps:n.byteLength,dts:e}),0<n.byteLength&&(o&&this.calcIframeIntervalTimestamp(a),this._doDecode(n,s,a,o))}else this.player.debug.warn("M7sDemux","dispatch","dv byteLength is",r.byteLength)}}}class Cr extends wr{constructor(e){super(e),e.debug.log("WebTransportDemux","init")}destroy(){this.player.debug.log("WebTransportDemux","destroy"),super.destroy()}}class Rr extends Ti{constructor(e){super(e),this.name="NakedFlowDemux",this.lastBuf=null,this.vps=null,this.sps=null,this.pps=null,this.streamVideoType=null,this.streamAudioType=null,this.tempNaluBufferList=new Uint8Array(0),this.localDts=0,this.isSendSeqHeader=!1,this.isSendAACSeqHeader=!1,e.debug.log(this.name,"init")}destroy(){super.destroy(),this.lastBuf=null,this.vps=null,this.sps=null,this.pps=null,this.streamVideoType=null,this.streamAudioType=null,this.tempNaluBufferList=new Uint8Array(0),this.localDts=0,this.localAudioDts=0,this.isSendSeqHeader=!1,this.isSendAACSeqHeader=!1,this.player.debug.log(this.name,"destroy")}dispatch(e){this.player;e=new Uint8Array(e);this.extractNALu$2(e)}addNaluToBuffer(e){var t=e.byteLength+this.tempNaluBufferList.byteLength,t=new Uint8Array(t);t.set(this.tempNaluBufferList,0),t.set(e,this.tempNaluBufferList.byteLength),this.tempNaluBufferList=t}downloadNakedFlowFile(){var e=new Blob([this.tempNaluBufferList]);try{var t=document.createElement("a");t.href=window.URL.createObjectURL(e),t.download=Date.now()+".h264",t.click()}catch(e){console.error("downloadTempNalu",e)}}getNaluDts(){var e=this.player._opt.nakedFlowFps;return this.localDts=this.localDts+parseInt(1e3/e),this.localDts}getNaluAudioDts(){var e=this.player.audio.audioContext.sampleRate,t=this.player.audio.audioBufferSize;return this.localDts+parseInt(t/e*1e3)}extractNALu(e){let t,i,r=0,s=e.byteLength,a=0,n=[];for(;r<s;)switch(t=e[r++],a){case 0:0===t&&(a=1);break;case 1:a=0===t?2:0;break;case 2:case 3:a=0===t?3:(1===t&&r<s&&(e[r],i&&n.push(e.subarray(i,r-a-1)),i=r),0)}return i&&n.push(e.subarray(i,s)),n}extractNALu$2(t){let a=null;if(t&&!(t.byteLength<1)){this.lastBuf?((a=new Uint8Array(t.byteLength+this.lastBuf.length)).set(this.lastBuf),a.set(new Uint8Array(t),this.lastBuf.length)):a=new Uint8Array(t);let i=0,r=-1,s=-2;var n=new Array;for(let t=0;t<a.length;t+=2){const e=a[t],o=a[t+1];0==r&&0==e&&0==o?n.push(t-1):1==o&&0==e&&0==r&&0==s&&n.push(t-2),s=e,r=o}if(1<n.length)for(let t=0;t<n.length-1;++t){const e=a.subarray(n[t],n[t+1]+1);this.handleNALu(e),i=n[t+1]}else i=n[0];if(0!=i&&i<a.length)this.lastBuf=a.subarray(i);else{this.lastBuf||(this.lastBuf=a);const e=new Uint8Array(this.lastBuf.length+t.byteLength);e.set(this.lastBuf),e.set(new Uint8Array(t),this.lastBuf.length),this.lastBuf=e}}}handleNALu(e){e.byteLength<4?this.player.debug.error(this.name,`handleNALu nalu byteLength is ${e.byteLength} <= 4`):(e=e.slice(4),this.handleVideoNalu(e))}handleVideoNalu(e){const t=new Uint8Array(e);if(this.streamVideoType||(this.streamVideoType=function(e){let t=null,i=31&e[0];return t=(t=7!=i&&8!=i?t:le)||32!=(i=(126&e[0])>>1)&&33!=i&&34!=i?t:ce}(t)),this.streamVideoType===le){const e=this.handleAddNaluStartCode(t),i=this.extractNALu(e);if(0===i.length)this.player.debug.warn(this.name,"handleVideoNalu","naluList.length === 0");else{const r=[];if(i.forEach(e=>{var t=h(e);8===t||7===t?this.handleVideoH264Nalu(e):fi(t)&&r.push(e)}),1===r.length)this.handleVideoH264Nalu(r[0]);else{const e=function(t){if(0===t.length)return!1;var i=h(t[0]);for(let e=1;e<t.length;e++)if(i!==h(t[e]))return!1;return!0}(r);if(e){const e=h(r[0]),t=5===e;this.handleVideoH264NaluList(r,t,e)}else r.forEach(e=>{this.handleVideoH264Nalu(e)})}}}else this.streamVideoType===ce?34===gi(t)?this.extractH265PPS(t):this.handleVideoH265Nalu(t):this.player.debug.error(this.name," this.streamVideoType is null")}extractH264PPS(e){e=this.handleAddNaluStartCode(e);this.extractNALu(e).forEach(e=>{pi(h(e))?this.extractH264SEI(e):this.handleVideoH264Nalu(e)})}extractH265PPS(e){e=this.handleAddNaluStartCode(e);this.extractNALu(e).forEach(e=>{39===gi(e)?this.extractH265SEI(e):this.handleVideoH265Nalu(e)})}extractH264SEI(e){e=this.handleAddNaluStartCode(e);this.extractNALu(e).forEach(e=>{this.handleVideoH264Nalu(e)})}extractH265SEI(e){e=this.handleAddNaluStartCode(e);this.extractNALu(e).forEach(e=>{this.handleVideoH265Nalu(e)})}handleAddNaluStartCode(e){var t=[0,0,0,1],i=new Uint8Array(e.length+t.length);return i.set(t),i.set(e,t.length),i}handleAudioAACNalu(t){if(t&&!(t.byteLength<1)){this.streamAudioType||(this.streamAudioType=ue.AAC);let e=new Uint8Array(t);var i=e.slice(0,7);if(e=e.slice(7),!this.isSendAACSeqHeader){const t=(192&i[2])>>6,e=(60&i[2])>>2,r=(1&i[2])<<2|(192&i[3])>>6,s=new Uint8Array([175,0,t<<3|(14&e)>>1,(1&e)<<7|r<<3]);this.isSendAACSeqHeader=!0,this._doDecode(s,1,0,!1,0)}const r=this.getNaluAudioDts(),s=new Uint8Array(e.length+2);s.set([175,1],0),s.set(e,2),this._doDecode(s,1,r,!1,0)}}handleAudioG711ANalu(e){var t,i;!e||e.byteLength<1||(this.streamAudioType||(this.streamAudioType=ue.ALAW),e=new Uint8Array(e),t=this.getNaluAudioDts(),(i=new Uint8Array(e.length+1)).set([114],0),i.set(e,1),this._doDecode(i,1,t,!1,0))}handleAudioG711UNalu(e){var t,i;!e||e.byteLength<1||(this.streamAudioType||(this.streamAudioType=ue.MULAW),e=new Uint8Array(e),t=this.getNaluAudioDts(),(i=new Uint8Array(e.length+1)).set([130],0),i.set(e,1),this._doDecode(i,1,t,!1,0))}handleVideoH264Nalu(e){var t,i,r,s=h(e);switch(s){case 7:this.sps=e;break;case 8:this.pps=e}if(this.isSendSeqHeader)if(fi(s)){this.player._times.demuxStart||(this.player._times.demuxStart=m());const a=5===s,n=this.getNaluDts(),o=(t=e,(i=[])[0]=a?23:39,i[1]=1,i[2]=0,i[3]=0,i[4]=0,i[5]=t.byteLength>>24&255,i[6]=t.byteLength>>16&255,i[7]=t.byteLength>>8&255,i[8]=255&t.byteLength,(r=new Uint8Array(i.length+t.byteLength)).set(i,0),r.set(t,i.length),r);this.player.updateStats({vbps:o.byteLength,dts:n}),a&&this.calcIframeIntervalTimestamp(n),this._doDecode(o,2,n,a,0)}else this.player.debug.warn(this.name,"handleVideoH264Nalu is avc seq head nalType is "+s);else if(this.sps&&this.pps){this.isSendSeqHeader=!0;const e=function(e){let{sps:t,pps:i}=e,r=8+t.byteLength+1+2+i.byteLength,s=!1;var e=P.parseSPS$2(t),a=(66!==t[3]&&77!==t[3]&&88!==t[3]&&(s=!0,r+=4),new Uint8Array(r)),n=(a[0]=1,a[1]=t[1],a[2]=t[2],a[3]=t[3],a[4]=255,a[5]=225,t.byteLength),o=(a[6]=n>>>8,a[7]=255&n,8),n=(a.set(t,8),a[o+=n]=1,i.byteLength),n=(a[o+1]=n>>>8,a[o+2]=255&n,a.set(i,o+3),o+=3+n,s&&(a[o]=252|e.chroma_format_idc,a[o+1]=248|e.bit_depth_luma-8,a[o+2]=248|e.bit_depth_chroma-8,a[o+3]=0,o+=4),[23,0,0,0,0]),e=new Uint8Array(n.length+a.byteLength);return e.set(n,0),e.set(a,n.length),e}({sps:this.sps,pps:this.pps});this._doDecode(e,2,0,!0,0)}}handleVideoH264NaluList(e,t,i){if(this.isSendSeqHeader){this.player._times.demuxStart||(this.player._times.demuxStart=m());const i=this.getNaluDts(),a=(e=e.reduce((e,t)=>{var e=hi(e),t=hi(t),i=new Uint8Array(e.byteLength+t.byteLength);return i.set(e,0),i.set(t,e.byteLength),i}),(r=[])[0]=t?23:39,r[1]=1,r[2]=0,r[3]=0,r[4]=0,(s=new Uint8Array(r.length+e.byteLength)).set(r,0),s.set(e,r.length),s);this.player.updateStats({vbps:a.byteLength,dts:i}),t&&this.calcIframeIntervalTimestamp(i),this._doDecode(a,2,i,t,0)}else this.player.debug.warn(this.name,"handleVideoH264NaluList isSendSeqHeader is false");var r,s}handleVideoH265Nalu(e){var t,i,r=gi(e);switch(r){case 32:this.vps=e;break;case 33:this.sps=e;break;case 34:this.pps=e}if(this.isSendSeqHeader){if(!(32<=r&&r<=40)){this.player._times.demuxStart||(this.player._times.demuxStart=m());const s=16<=r&&r<=21,a=this.getNaluDts(),n=(r=e,(t=[])[0]=s?28:44,t[1]=1,t[2]=0,t[3]=0,t[4]=0,t[5]=r.byteLength>>24&255,t[6]=r.byteLength>>16&255,t[7]=r.byteLength>>8&255,t[8]=255&r.byteLength,(i=new Uint8Array(t.length+r.byteLength)).set(t,0),i.set(r,t.length),i);this.player.updateStats({vbps:n.byteLength,dts:a}),s&&this.calcIframeIntervalTimestamp(a),this._doDecode(n,2,a,s,0)}}else if(this.vps&&this.sps&&this.pps){this.isSendSeqHeader=!0;const e=function(e){var{vps:e,pps:t,sps:i}=e,r={configurationVersion:1},s=(e=>{e=Ai(e),e=new ci(e);return e.readByte(),e.readByte(),e.readBits(4),e.readBits(2),e.readBits(6),{num_temporal_layers:e.readBits(3)+1,temporal_id_nested:e.readBool()}})(e),a=(e=>{let t=Ai(e),a=new ci(t),i=(a.readByte(),a.readByte(),0),r=0,s=0,n=0;a.readBits(4);var o=a.readBits(3),e=(a.readBool(),a.readBits(2)),l=a.readBool(),c=a.readBits(5),u=a.readByte(),d=a.readByte(),h=a.readByte(),p=a.readByte(),f=a.readByte(),A=a.readByte(),m=a.readByte(),_=a.readByte(),M=a.readByte(),U=a.readByte(),g=a.readByte(),y=[],j=[];for(let e=0;e<o;e++)y.push(a.readBool()),j.push(a.readBool());if(0<o)for(let e=o;e<8;e++)a.readBits(2);for(let e=0;e<o;e++)y[e]&&(a.readByte(),a.readByte(),a.readByte(),a.readByte(),a.readByte(),a.readByte(),a.readByte(),a.readByte(),a.readByte(),a.readByte(),a.readByte()),y[e]&&a.readByte();a.readUEG();var v,b=a.readUEG(),N=(3==b&&a.readBits(1),a.readUEG()),V=a.readUEG(),E=(a.readBool()&&(i+=a.readUEG(),r+=a.readUEG(),s+=a.readUEG(),n+=a.readUEG()),a.readUEG()),H=a.readUEG(),W=a.readUEG();for(let e=a.readBool()?0:o;e<=o;e++)a.readUEG(),a.readUEG(),a.readUEG();if(a.readUEG(),a.readUEG(),a.readUEG(),a.readUEG(),a.readUEG(),a.readUEG(),a.readBool()&&a.readBool())for(let t=0;t<4;t++)for(let e=0;e<(3===t?2:6);e++)if(a.readBool()){var G=Math.min(64,1<<4+(t<<1));1<t&&a.readSEG();for(let e=0;e<G;e++)a.readSEG()}else a.readUEG();a.readBool(),a.readBool(),a.readBool()&&(a.readByte(),a.readUEG(),a.readUEG(),a.readBool());let S=a.readUEG(),T=0;for(let t=0;t<S;t++){let e=!1;if(e=0!==t?a.readBool():e){t===S&&a.readUEG(),a.readBool(),a.readUEG();let i=0;for(let e=0;e<=T;e++){let e=a.readBool(),t=!1;e||(t=a.readBool()),(e||t)&&i++}T=i}else{var w=a.readUEG(),k=a.readUEG();T=w+k;for(let e=0;e<w;e++)a.readUEG(),a.readBool();for(let e=0;e<k;e++)a.readUEG(),a.readBool()}}if(a.readBool()){var z=a.readUEG();for(let e=0;e<z;e++){for(let e=0;e<W+4;e++)a.readBits(1);a.readBits(1)}}let C=0,R=1,D=1,L=!1,I=1,B=1;if(a.readBool(),a.readBool(),a.readBool()){if(a.readBool()&&(0<(v=a.readByte())&&v<16?(R=[1,12,10,16,40,24,20,32,80,18,15,64,160,4,3,2][v-1],D=[1,11,11,11,33,11,11,11,33,11,11,33,99,3,2,1][v-1]):255===v&&(R=a.readBits(16),D=a.readBits(16))),a.readBool()&&a.readBool(),a.readBool()&&(a.readBits(3),a.readBool(),a.readBool())&&(a.readByte(),a.readByte(),a.readByte()),a.readBool()&&(a.readUEG(),a.readUEG()),a.readBool(),a.readBool(),a.readBool(),a.readBool()&&(i+=a.readUEG(),r+=a.readUEG(),s+=a.readUEG(),n+=a.readUEG()),a.readBool()&&(I=a.readBits(32),B=a.readBits(32),a.readBool())&&(a.readUEG(),a.readBool())){let i,r,s=!1;i=a.readBool(),r=a.readBool(),(i||r)&&((s=a.readBool())&&(a.readByte(),a.readBits(5),a.readBool(),a.readBits(5)),a.readBits(4),a.readBits(4),s&&a.readBits(4),a.readBits(5),a.readBits(5),a.readBits(5));for(let e=0;e<=o;e++){var x=a.readBool();L=x;let e=!1,t=!1;if((e=x?e:a.readBool())?a.readSEG():t=a.readBool(),t||(cpbcnt=a.readUEG()+1),i)for(let e=0;e<1;e++)a.readUEG(),a.readUEG(),s&&(a.readUEG(),a.readUEG());if(r)for(let e=0;e<1;e++)a.readUEG(),a.readUEG(),s&&(a.readUEG(),a.readUEG())}}a.readBool()&&(a.readBool(),a.readBool(),a.readBool(),C=a.readUEG(),a.readUEG(),a.readUEG(),a.readUEG(),a.readUEG())}a.readBool();let K=`hvc1.${c}.1.L${g}.B0`,P=N,F=V,O=1;return 1!==R&&1!==D&&(O=R/D),a.destroy(),a=null,{codec_mimetype:K,level_string:(g/30).toFixed(1),profile_idc:c,bit_depth:E+8,ref_frames:1,chroma_format:b,chroma_format_string:(e=>{switch(e){case 0:return"4:0:0";case 1:return"4:2:0";case 2:return"4:2:2";case 3:return"4:4:4";default:return"Unknown"}})(b),general_level_idc:g,general_profile_space:e,general_tier_flag:l,general_profile_idc:c,general_profile_compatibility_flags_1:u,general_profile_compatibility_flags_2:d,general_profile_compatibility_flags_3:h,general_profile_compatibility_flags_4:p,general_constraint_indicator_flags_1:f,general_constraint_indicator_flags_2:A,general_constraint_indicator_flags_3:m,general_constraint_indicator_flags_4:_,general_constraint_indicator_flags_5:M,general_constraint_indicator_flags_6:U,min_spatial_segmentation_idc:C,constant_frame_rate:0,chroma_format_idc:b,bit_depth_luma_minus8:E,bit_depth_chroma_minus8:H,frame_rate:{fixed:L,fps:B/I,fps_den:I,fps_num:B},sar_ratio:{width:R,height:D},codec_size:{width:P,height:F},present_size:{width:P*O,height:F}}})(i),n=(e=>{e=Ai(e),e=new ci(e);e.readByte(),e.readByte(),e.readUEG(),e.readUEG(),e.readBool(),e.readBool(),e.readBits(3),e.readBool(),e.readBool(),e.readUEG(),e.readUEG(),e.readSEG(),e.readBool(),e.readBool(),e.readBool()&&e.readUEG(),e.readSEG(),e.readSEG(),e.readBool(),e.readBool(),e.readBool(),e.readBool();let t=e.readBool(),i=e.readBool(),r=1;return i&&t?r=0:i?r=3:t&&(r=2),{parallelismType:r}})(t),r=Object.assign(r,s,a,n),s=23+(5+e.byteLength)+(5+i.byteLength)+(5+t.byteLength),n=((a=new Uint8Array(s))[0]=1,a[1]=(3&r.general_profile_space)<<6|(r.general_tier_flag?1:0)<<5|31&r.general_profile_idc,a[2]=r.general_profile_compatibility_flags_1||0,a[3]=r.general_profile_compatibility_flags_2||0,a[4]=r.general_profile_compatibility_flags_3||0,a[5]=r.general_profile_compatibility_flags_4||0,a[6]=r.general_constraint_indicator_flags_1||0,a[7]=r.general_constraint_indicator_flags_2||0,a[8]=r.general_constraint_indicator_flags_3||0,a[9]=r.general_constraint_indicator_flags_4||0,a[10]=r.general_constraint_indicator_flags_5||0,a[11]=r.general_constraint_indicator_flags_6||0,a[12]=60,a[13]=240|(3840&r.min_spatial_segmentation_idc)>>8,a[14]=255&r.min_spatial_segmentation_idc,a[15]=252|3&r.parallelismType,a[16]=252|3&r.chroma_format_idc,a[17]=248|7&r.bit_depth_luma_minus8,a[18]=248|7&r.bit_depth_chroma_minus8,a[19]=0,a[20]=0,a[21]=(3&r.constant_frame_rate)<<6|(7&r.num_temporal_layers)<<3|(r.temporal_id_nested?1:0)<<2|3,a[22]=3,a[23]=160,a[24]=0,a[25]=1,a[26]=(65280&e.byteLength)>>8,a[27]=(255&e.byteLength)>>0,a.set(e,28),a[23+(5+e.byteLength)+0]=161,a[23+(5+e.byteLength)+1]=0,a[23+(5+e.byteLength)+2]=1,a[23+(5+e.byteLength)+3]=(65280&i.byteLength)>>8,a[23+(5+e.byteLength)+4]=(255&i.byteLength)>>0,a.set(i,23+(5+e.byteLength)+5),a[23+(5+e.byteLength+5+i.byteLength)+0]=162,a[23+(5+e.byteLength+5+i.byteLength)+1]=0,a[23+(5+e.byteLength+5+i.byteLength)+2]=1,a[23+(5+e.byteLength+5+i.byteLength)+3]=(65280&t.byteLength)>>8,a[23+(5+e.byteLength+5+i.byteLength)+4]=(255&t.byteLength)>>0,a.set(t,23+(5+e.byteLength+5+i.byteLength)+5),[28,0,0,0,0]);return(s=new Uint8Array(n.length+a.byteLength)).set(n,0),s.set(a,n.length),s}({vps:this.vps,sps:this.sps,pps:this.pps});this._doDecode(e,2,0,!0,0)}}getInputByteLength(){let e=0;return e=this.lastBuf?this.lastBuf.byteLength:e}}class Dr{constructor(e){return new(Dr.getLoaderFactory(e._opt.demuxType))(e)}static getLoaderFactory(e){return"m7s"===e?kr:e===N?wr:e===V?Cr:e===H?Rr:void 0}}class Lr extends t{constructor(e){super(),this.player=e,this.hasInit=!1,this.isDecodeFirstIIframe=!1,this.isInitInfo=!1,this.prevTimestamp=null,this.decodeDiffTimestamp=null,this.prevDts=null,this.decoder=null,this.initDecoder(),e.debug.log("Webcodecs","init")}destroy(){this.decoder&&("closed"!==this.decoder.state&&this.decoder.close(),this.decoder=null),this.prevTimestamp=null,this.decodeDiffTimestamp=null,this.prevDts=null,this.hasInit=!1,this.isInitInfo=!1,this.isDecodeFirstIIframe=!1,this.off(),this.player.debug.log("Webcodecs","destroy")}initDecoder(){const t=this;this.decoder=new VideoDecoder({output(e){t.handleDecode(e)},error(e){t.handleError(e)}})}handleDecode(e){this.isInitInfo||(this.player.video.updateVideoInfo({width:e.codedWidth,height:e.codedHeight}),this.player.video.initCanvasViewSize(),this.isInitInfo=!0),this.player._times.videoStart||(this.player._times.videoStart=m(),this.player.handlePlayToRenderTimes()),this.player.video.render({videoFrame:e,ts:e.timestamp}),this.player.handleRender(),this.player.updateStats({dfps:!0,buf:this.player.demux&&this.player.demux.delay||0})}handleError(e){this.player.debug.error("Webcodecs","VideoDecoder handleError",e)}decodeVideo(i,r,s,a){if(this.hasInit)if(this.isDecodeFirstIIframe||s||this.player.debug.warn("Webcodecs","VideoDecoder isDecodeFirstIIframe false and isIframe is false"),!this.isDecodeFirstIIframe&&s&&(this.isDecodeFirstIIframe=!0),this.isDecodeFirstIIframe){let e=!1,t=(new Date).getTime();this.prevTimestamp||(this.prevTimestamp=t,e=!0);var n=t-this.prevTimestamp,n=(((this.decodeDiffTimestamp=n)<5||500<n)&&!e&&this.player.debug.warn("Webcodecs","decodeVideo diff time is ",n),i.slice(5)),o=new EncodedVideoChunk({data:n,timestamp:r,type:s?"key":"delta"});this.player.emit(v.timeUpdate,r),this.player.recorder&&this.player.recorder.isRecording&&this.player._opt.recordType===p&&this.player.recorder.handleAddNaluTrack(n,s,r,a);try{this.decoder.decode(o)}catch(i){this.player.debug.error("Webcodecs","VideoDecoder",i);const r=i.toString();-1===r.indexOf("A key frame is required after configure() or flush()")&&-1===r.indexOf("Cannot call 'decode' on a closed codec")||this.player.emit(A.webcodecsDecodeError)}this.prevTimestamp=(new Date).getTime()}else this.player.debug.warn("Webcodecs","VideoDecoder isDecodeFirstIIframe false");else if(s&&0===i[1]){const r=15&i[0];if(this.player.video.updateVideoInfo({encTypeCode:r}),12!=r||"chrome"===(n=Qe()).type.toLowerCase()&&107<=n.version){this.player._times.decodeStart||(this.player._times.decodeStart=m());let e=null;const a=i.slice(5);7==r?e=function(e){let i=e.subarray(1,4),r="avc1.";for(let t=0;t<3;t++){let e=i[t].toString(16);e.length<2&&(e="0"+e),r+=e}return{codec:r,description:e}}(a):12==r&&((o=a).subarray(1,4),e={codec:"hev1.1.6.L120.90",description:o}),this.player.recorder&&this.player._opt.recordType===p&&this.player.recorder.initMetaData(i,r),this.player.debug.log("Webcodecs","decodeVideo and webcodecs configure"),this.decoder.configure(e),this.hasInit=!0}else{const i=Qe();this.player.debug.warn("Webcodecs","WebcodecsDecoder not support hevc decode",i.type,i.version),void this.emit(A.webcodecsH265NotSupport)}}}getDecodeDiffTimes(){return this.decodeDiffTimestamp}}const Ir={play:"播放",pause:"暂停",audio:"",mute:"",screenshot:"截图",loading:"加载",fullscreen:"全屏",fullscreenExit:"退出全屏",record:"录制",recordStop:"停止录制",narrow:"缩小",expand:"放大",ptz:"操作盘",ptzActive:"操作盘激活",zoom:"电子放大",zoomStop:"关闭电子放大",close:"关闭",performance:"性能面板",performanceActive:"性能面板激活",face:"人脸识别",faceActive:"人脸识别激活"};var B=Object.keys(Ir).reduce((e,t)=>(e[t]=`
<i class="jessibuca-icon jessibuca-icon-${t}"></i>
${Ir[t]?`<span class="icon-title-tips"><span class="icon-title">${Ir[t]}</span></span>`:""}
`,e),{});function Br(e,t){let i=!1;return e.forEach(e=>{i||e.startTimestamp<=t&&e.endTimestamp>t&&(i=!0)}),i}function xr(e,t,i){let r=0<arguments.length&&void 0!==e?e:[],s=1<arguments.length&&void 0!==t?t:[],a=2<arguments.length?i:void 0;const n=r.length,o=s.length,l=Math.max(n,o),c=2e3,u=Math.ceil(l/c);let d=0,h=0;!function e(){let t="",i="";for(let e=0;e<c;e++){const a=r[h],c=(a&&(t+=`
<div class="jessibuca-playback-time-minute-one${a.hasRecord?" active":""}${a.isStart?" start":""}" data-has-record="${a.hasRecord}"
data-time="${a.timestamp}" data-type="${a.dataType}">
<span class="jessibuca-playback-time-title-tips ${h>n-60?"jessibuca-playback-time-title-tips-left":""}"><span class="jessibuca-playback-time-title">${a.title}</span></span>
</div>
`),s[h]);c&&(i+=`
<div class="jessibuca-playback-time-hour" data-hour="${c.hour}" data-min="${c.min}" data-second="${c.second}"><span class="jessibuca-playback-time-hour-text">${c.title}</span></div>
`),h+=1}t&&a.$playbackTimeListOne.insertAdjacentHTML("beforeend",t),i&&a.$playbackTimeListSecond.insertAdjacentHTML("beforeend",i),(d+=1)<u&&(a.rafId=window.requestAnimationFrame(e))}()}function Pr(e,t){xr(function(e){var i,r,s,a=0<arguments.length&&void 0!==e?e:[],n=[],o=(a[0]||{}).startTimestamp;for(let t=0;t<1440;t++){var l=t%60==0;let e=!1;o&&(e=Br(a,(i=o,r=t,s=void 0,s=Math.floor(r/60)%60,r=Math.floor(r%60),new Date(i).setHours(s,r,0,0)))),n.push({title:function(e,t){let i="";var r;return-1<e&&(r=Math.floor(e/60)%60,e=e%60,e=Math.round(e),i=r<10?"0"+r+":":r+":",e<10&&(i+="0"),i+=e,it(t)||(t<10&&(t="0"+t),i+=":"+t)),i}(t),timestamp:t,dataType:"min",hasRecord:e,isStart:l})}return n}(e),function(){var i=[];for(let t=0;t<24;t++){let e=t+":00";t<10&&(e="0"+e),i.push({title:e,hour:t,min:0,second:0})}return i}(),t)}var Fr=(m,g)=>{const s=m["events"]["proxy"],a=document.createElement("object");a.setAttribute("aria-hidden","true"),a.setAttribute("tabindex",-1),a.type="text/html",a.data="about:blank",E(a,{display:"block",position:"absolute",top:"0",left:"0",height:"100%",width:"100%",overflow:"hidden",pointerEvents:"none",zIndex:"-1"});let n=m.width,e=m.height;const t=et(()=>{m.width===n&&m.height===e||(n=m.width,e=m.height,m.emit(v.resize),l())},500),i=(s(a,"load",()=>{s(a.contentDocument.defaultView,"resize",()=>{t()})}),m.$container.appendChild(a),m.on(v.destroy,()=>{m.$container.removeChild(a)}),m.on(v.volumechange,()=>{var e,t,i;0===(e=m.volume)?(E(g.$volumeOn,"display","none"),E(g.$volumeOff,"display","flex"),E(g.$volumeHandle,"top","48px")):g.$volumeHandle&&g.$volumePanel&&(t=Ke(g.$volumePanel,"height")||60,i=Ke(g.$volumeHandle,"height"),E(g.$volumeHandle,"top",t-(t-i)*e-i+"px"),E(g.$volumeOn,"display","flex"),E(g.$volumeOff,"display","none")),g.$volumePanelText&&(g.$volumePanelText.innerHTML=parseInt(100*e))}),m.on(v.loading,e=>{E(g.$loading,"display",e?"flex":"none"),E(g.$poster,"display","none"),e&&E(g.$playBig,"display","none"),S()||e||(g.$loadingBgImage.width=0,g.$loadingBgImage.height=0,g.$loadingBgImage.src="",E(g.$loadingBg,"display","none"))}),e=>{m.fullscreen&&w(e)!==m.$container||r()}),r=e=>{e=rt(e)?e:m.fullscreen;E(g.$fullscreenExit,"display",e?"flex":"none"),E(g.$fullscreen,"display",e?"none":"flex")},o=()=>m._opt.playType===y&&m._opt.playbackConfig.showControl,l=i=>{S()&&g.$controls&&m._opt.useWebFullScreen&&setTimeout(()=>{if(m.fullscreen){const i=o()?48:38;var e=m.height/2-m.width+i/2,t=m.height/2-i/2;g.$controls.style.transform=`translateX(${-e}px) translateY(-${t}px) rotate(-90deg)`}else g.$controls.style.transform="translateX(0) translateY(0) rotate(0)";i&&i()},10)};try{f.on("change",i),m.events.destroys.push(()=>{f.off("change",i)})}catch(m){}m.on(v.webFullscreen,e=>{S()&&(r(e),l(()=>{u()}))}),m.on(v.recording,()=>{m.playing&&(E(g.$record,"display",m.recording?"none":"flex"),E(g.$recordStop,"display",m.recording?"flex":"none"),m._opt.hasControl||m._opt.isShowRecordingUI)&&E(g.$recording,"display",m.recording?"flex":"none")}),m.on(v.recordingTimestamp,e=>{g.$recordingTime&&(g.$recordingTime.innerHTML=ot(e))}),m.on(v.zooming,()=>{m.playing&&(E(g.$zoom,"display",m.zooming?"none":"flex"),E(g.$zoomStop,"display",m.zooming?"flex":"none"),m._opt.hasControl||m._opt.isShowZoomingUI)&&E(g.$zoomControls,"display",m.zooming?"flex":"none")}),m.on(v.playing,e=>{c(e)});const c=t=>{E(g.$play,"display",t?"none":"flex"),E(g.$playBig,"display",t?"none":"block"),E(g.$pause,"display",t?"flex":"none"),E(g.$screenshot,"display",t?"flex":"none"),E(g.$record,"display",t?"flex":"none"),E(g.$qualityMenu,"display",t?"flex":"none"),E(g.$volume,"display",t?"flex":"none"),E(g.$ptz,"display",t?"flex":"none"),E(g.$zoom,"display",t?"flex":"none"),E(g.$scaleMenu,"display",t?"flex":"none"),E(g.$faceDetect,"display",t?"flex":"none"),m.isPlayback()&&E(g.$speedMenu,"display",t?"flex":"none"),r(),g.extendBtnList.forEach(e=>{e.$iconWrap&&E(e.$iconWrap,"display",t?"flex":"none"),e.$activeIconWrap&&E(e.$activeIconWrap,"display","none")}),m._opt.showPerformance?E(g.$performanceActive,"display",t?"flex":"none"):E(g.$performance,"display",t?"flex":"none"),E(g.$ptzActive,"display","none"),E(g.$recordStop,"display","none"),E(g.$zoomStop,"display","none"),E(g.$faceDetectActive,"display","none"),t||(g.$speed&&(g.$speed.innerHTML="0 KB/s"),E(g.$zoomControls,"display","none"),E(g.$recording,"display","none"),g.$ptzControl&&g.$ptzControl.classList.remove("jessibuca-ptz-controls-show")),u()},u=(m.on(v.playbackPause,e=>{c(!e)}),m.on(v.kBps,e=>{if(m._opt.showBandwidth){const m=function(e){if(null==e||""===e||0===parseFloat(e)||"NaN"===e)return"0 KB/s";var t=["KB/s","MB/s","GB/s","TB/s","PB/s","EB/s","ZB/s","YB/s"],e=parseFloat(e),i=Math.floor(Math.log(e)/Math.log(1024));let r=e/Math.pow(1024,i);return(r=r.toFixed(2))+(t[i]||t[0])}(e);g.$speed&&(g.$speed.innerHTML=m),u()}}),()=>{if(o()){let e=g.controlsInnerRect.width-g.controlsLeftRect.width-g.controlsRightRect.width-g.controlsPlaybackBtnsRect.width;S()&&m.webFullscreen&&(e=g.controlsInnerRect.height-g.controlsLeftRect.height-g.controlsRightRect.height-g.controlsPlaybackBtnsRect.height),g.$playbackTimeInner.style.width=e+"px"}});if(o()){const s=()=>{if(o()){let e=0;var t,i,r=m.playback&&m.playback.playingTimestamp;r&&(t=(r=new Date(r)).getHours(),i=r.getMinutes(),r=r.getSeconds(),m.playback.is60Min?e=60*t+i:m.playback.is30Min?e=2*(60*t+i)+parseInt(r/30,10):m.playback.is10Min?e=6*(60*t+i)+parseInt(r/10,10):m.playback.is5Min?e=12*(60*t+i)+parseInt(r/5,10):m.playback.is1Min&&(e=60*(60*t+i)+parseInt(r,10)),g.$playbackCurrentTime.style.left=e+"px")}},a=e=>{g.$playbackNarrow.classList.remove("disabled"),g.$playbackExpand.classList.remove("disabled"),e===ve&&g.$playbackNarrow.classList.add("disabled"),e===Ee&&g.$playbackExpand.classList.add("disabled")},n=()=>{var e=g.$playbackCurrentTime.style.left,e=parseInt(e,10),t=g.controlsPlaybackTimeInner.width,e=0<e-t/2?parseInt(e-t/2,10):0;g.$playbackTimeInner.scrollLeft=e};m._opt.showBandwidth&&(g.$controlsLeft.style.width="90px"),m.on(v.playbackTime,e=>{g.$playbackCurrentTimeText&&(g.$playbackCurrentTimeText.innerText=Ye(e,"{h}:{i}:{s}")),s()}),m.on(v.playbackPrecision,(i,r)=>{g.$playbackTimeScroll.classList.remove(Se.oneHour,Se.halfHour,Se.fiveMin,Se.tenMin),g.$playbackTimeScroll.classList.add(Se[i]),g.rafId&&(window.cancelAnimationFrame(g.rafId),g.rafId=null),g.changePercisitionInterval&&(clearTimeout(g.changePercisitionInterval),g.changePercisitionInterval=null),g.$playbackTimeListOne.innerHTML="",g.$playbackTimeListSecond.innerHTML="",g.changePercisitionInterval=setTimeout(()=>{switch(g.$playbackTimeListOne.innerHTML="",g.$playbackTimeListSecond.innerHTML="",i){case ve:Pr(r,g);break;case be:t=g,xr(function(e){var s=0<arguments.length&&void 0!==e?e:[],a=[],n=(s[0]||{}).startTimestamp;for(let r=0;r<1440;r++){let e=60*r,t=e%1800==0,i=!1;n&&(i=Br(s,ct(n,e))),a.push({title:lt(e),timestamp:e,dataType:"second",hasRecord:i,isStart:t});var o=60*r+30;t=o%1800==0,n&&(i=Br(s,ct(n,o))),a.push({title:lt(o),timestamp:o,dataType:"second",hasRecord:i,isStart:t})}return a}(r),function(){var r=[];for(let i=0;i<24;i++){let e=i+":00",t=i+":30";i<10&&(e="0"+e,t="0"+t),r.push({title:e,hour:i,min:0,second:0}),r.push({title:t,hour:i,min:30,second:0})}return r}(),t);break;case"tenMin":t=g,xr(function(e){var a=0<arguments.length&&void 0!==e?e:[],n=[],o=(a[0]||{}).startTimestamp;for(let s=0;s<144;s++)for(let r=0;r<60;r++){let e=10*r+600*s,t=e%600==0,i=!1;o&&(i=Br(a,ct(o,e))),n.push({title:lt(e),timestamp:e,dataType:"second",isStart:t,hasRecord:i})}return n}(r),function(){var r=[];for(let i=0;i<24;i++){let t=i+":00";i<10&&(t="0"+t),r.push({title:t,hour:i,min:0,second:0});for(let e=1;e<6;e++){var s=e+"0";r.push({title:t.replace(":00",":"+s),hour:i,min:10*e,second:0})}}return r}(),t);break;case Ee:e=g,xr(function(e){var a=0<arguments.length&&void 0!==e?e:[],n=[],o=(a[0]||{}).startTimestamp;for(let s=0;s<288;s++)for(let r=0;r<60;r++){let e=5*r+300*s,t=e%300==0,i=!1;o&&(i=Br(a,ct(o,e))),n.push({title:lt(e),timestamp:e,dataType:"second",isStart:t,hasRecord:i})}return n}(r),function(){var r=[];for(let i=0;i<24;i++){let t=i+":00";i<10&&(t="0"+t),r.push({title:t,hour:i,min:0,second:0}),r.push({title:t.replace(":00",":05"),hour:i,min:5,second:0});for(let e=1;e<6;e++){var s=e+"0",a=e+"5";r.push({title:t.replace(":00",":"+s),hour:i,min:10*e,second:0}),r.push({title:t.replace(":00",":"+a),hour:i,min:10*e+5,second:0})}}return r}(),e)}var e,t;s(),a(i),n()},16)}),m.on(v.resize,()=>{u()}),u()}if(m._opt.operateBtns.quality&&0<m._opt.qualityConfig.length){m.on(v.streamQualityChange,e=>{s(e)});const s=i=>{g.$qualityText.innerText=i,g.$qualityMenuItems.forEach(e=>{var t=e.dataset.quality;e.classList.remove("jessibuca-quality-menu-item-active"),t===i&&e.classList.add("jessibuca-quality-menu-item-active")})};{const h=m._opt.qualityConfig||[];let t="";h.forEach(e=>{t+=`
<div class="jessibuca-quality-menu-item" data-quality="${e}">${e}</div>
`}),t&&(g.$qualityMenuList.insertAdjacentHTML("beforeend",t),Object.defineProperty(g,"$qualityMenuItems",{value:m.$container.querySelectorAll(".jessibuca-quality-menu-item")}),setTimeout(()=>{var e=h[0];m.streamQuality=e},0))}m.streamQuality&&s(m.streamQuality)}if(m._opt.operateBtns.scale&&0<m._opt.scaleConfig.length){m.on(v.viewResizeChange,e=>{s(e)});const s=i=>{var e=m._opt.scaleConfig[i];g.$scaleText.innerText=e,g.$scaleMenuItems.forEach(e=>{var t=e.dataset.scale;e.classList.remove("jessibuca-scale-menu-item-active"),T(t)===T(i)&&e.classList.add("jessibuca-scale-menu-item-active")})};{var d=m._opt.scaleConfig||[];let i="";d.forEach((e,t)=>{i+=`
<div class="jessibuca-scale-menu-item" data-scale="${t}">${e}</div>
`}),i&&(g.$scaleMenuList.insertAdjacentHTML("beforeend",i),Object.defineProperty(g,"$scaleMenuItems",{value:m.$container.querySelectorAll(".jessibuca-scale-menu-item")}))}s(m.scaleType)}if(m.isPlayback()&&m._opt.playbackConfig.showRateBtn&&0<m._opt.playbackConfig.rateConfig.length){m.on(v.playbackRateChange,e=>{s(e)});const s=i=>{var e=m._opt.playbackConfig.rateConfig.find(e=>T(e.value)===T(i));e&&(g.$speedText.innerText=e.label,g.$speedMenuItems.forEach(e=>{var t=e.dataset.speed;e.classList.remove("jessibuca-speed-menu-item-active"),T(t)===T(i)&&e.classList.add("jessibuca-speed-menu-item-active")}))};{d=m._opt.playbackConfig.rateConfig;let i="";d.forEach((e,t)=>{i+=`
<div class="jessibuca-speed-menu-item" data-speed="${e.value}">${e.label}</div>
`}),i&&(g.$speedMenuList.insertAdjacentHTML("beforeend",i),Object.defineProperty(g,"$speedMenuItems",{value:m.$container.querySelectorAll(".jessibuca-speed-menu-item")}))}const a=m.playback?m.playback.playbackRate:1;s(a)}m.on(v.stats,function(){var e,t,i,r,s,a,n,o,l,c,u,d,h,p,f,A=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};m._opt.showPerformance?(E(g.$performancePanel,"display","block"),g.$performancePanel.innerHTML="",e=m.video&&m.video.videoInfo||{},t=m.audio&&m.audio.audioInfo||{},i=m._times||{},r=m.getRenderType(),s=m.getDecodeType(),a=m.getDemuxType(),n=m.getStreamType(),o=m.getAudioEngineType(),u=m.getRecordingDuration(),d=m.getRecordingByteLength(),l=m.isAudioPlaybackRateSpeed(),c=m.videoIframeIntervalTs,u=ot(u),d=null==(h=d)||""==h?"0 Bytes":(p=new Array("Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"),f=0,h=parseFloat(h),f=Math.floor(Math.log(h)/Math.log(1024)),(h/Math.pow(1024,f)).toFixed(2)+p[f]),h=m.isPlayback()?"录播":"直播",p=A.isDropping,f=`
<div class="jessibuca-performance-item">
<span>版本 "2023-4-9"</span>
</div>
<div class="jessibuca-performance-item">
<span>播放模式 ${h}</span>
</div>
${m.isPlayback()?`
<div class="jessibuca-performance-item">
<span>播放倍率 ${m.playback.rate}倍</span>
</div>
<div class="jessibuca-performance-item">
<span>播放模式 ${m.playback.isUseFpsRender?"固定FPS":"动态FPS"}</span>
</div>
${m.playback.isUseFpsRender?`
<div class="jessibuca-performance-item">
<span>固定FPS ${m.video.getStreamFps()}</span>
</div>
`:""}
`:""}
<div class="jessibuca-performance-item">
<span>解封装模式 ${W[a]}</span>
</div>
<div class="jessibuca-performance-item">
<span>解码模式 ${s}</span>
</div>
<div class="jessibuca-performance-item">
<span>渲染组件 ${r}</span>
</div>
<div class="jessibuca-performance-item">
<span>网络请求组件 ${n}</span>
</div>
<div class="jessibuca-performance-item">
<span>视频格式 ${e.encType||"-"}</span>
</div>
<div class="jessibuca-performance-item">
<span>视频(宽x高) ${e.width||"-"}x${e.height||"-"}</span>
</div>
<div class="jessibuca-performance-item">
<span>视频GOP(ms) ${c||"-"}</span>
</div>
<div class="jessibuca-performance-item">
<span>音频格式 ${ue[t.encType]||"-"}</span>
</div>
<div class="jessibuca-performance-item">
<span>音频引擎 ${o||"-"}</span>
</div>
<div class="jessibuca-performance-item">
<span>音频通道 ${t.channels||"-"}</span>
</div>
<div class="jessibuca-performance-item">
<span>音频采样率 ${t.sampleRate||"-"}</span>
</div>
${m.isPlayer()?`
<div class="jessibuca-performance-item">
<span>播放器初始化(ms) ${i.playTimestamp}</span>
</div>
<div class="jessibuca-performance-item">
<span>开始请求地址(ms) ${i.streamTimestamp}</span>
</div>
<div class="jessibuca-performance-item">
<span>请求响应(ms) ${i.streamResponseTimestamp}</span>
</div>
<div class="jessibuca-performance-item">
<span>解封装(ms) ${i.demuxTimestamp}</span>
</div>
<div class="jessibuca-performance-item">
<span>解码(ms) ${i.decodeTimestamp}</span>
</div>
<div class="jessibuca-performance-item">
<span>页面开始渲染(ms) ${i.videoTimestamp}</span>
</div>
<div class="jessibuca-performance-item">
<span>初始化到页面渲染(ms) ${i.allTimestamp}</span>
</div>
${m.recording?`
<div class="jessibuca-performance-item">
<span>视频录制时间 ${u}</span>
</div>
<div class="jessibuca-performance-item">
<span>视频录制大小 ${d}</span>
</div>
`:""}
`:""}
<div class="jessibuca-performance-item">
<span>音频码率(bit) ${A.abps}</span>
</div>
<div class="jessibuca-performance-item">
<span>视频码率(bit) ${A.vbps}</span>
</div>
<div class="jessibuca-performance-item">
<span>视频帧率(fps) ${A.fps}</span>
</div>
<div class="jessibuca-performance-item">
<span>视频峰值帧率(fps) ${A.maxFps}</span>
</div>
<div class="jessibuca-performance-item">
<span>解码帧率(fps) ${A.dfps}</span>
</div>
<div class="jessibuca-performance-item">
<span>音频缓冲帧 ${A.audioBuffer}</span>
</div>
${m.isPlayer()?`
<div class="jessibuca-performance-item">
<span>视频待解码帧 ${A.demuxBuffer}</span>
</div>
`:`
<div class="jessibuca-performance-item">
<span>缓存时长(ms) ${A.playbackCacheDataDuration}</span>
</div>
<div class="jessibuca-performance-item">
<span>视频待渲染帧 ${A.playbackVideoBuffer}</span>
</div>
<div class="jessibuca-performance-item">
<span>视频待解码帧 ${A.demuxBuffer}</span>
</div>
<div class="jessibuca-performance-item">
<span>音频待解码帧 ${A.audioDemuxBuffer}</span>
</div>
`}
<div class="jessibuca-performance-item">
<span>待解封装数据(byte) ${A.flvBuffer}</span>
</div>
${m._opt.useMSE?`
<div class="jessibuca-performance-item">
<span>MSE缓冲时长(ms) ${A.mseDelay}</span>
</div>
<div class="jessibuca-performance-item">
<span>MSE解码间隔(ms) ${A.mseDecodeDiffTimes}</span>
</div>
<div class="jessibuca-performance-item">
<span>MSE解码时间(ms) ${A.mseTs}</span>
</div>
<div class="jessibuca-performance-item">
<span>MSE播放模式 ${1<A.mseDecodePlaybackRate?"加速":"正常"}</span>
</div>
`:""}
${m._opt.useWCS?`
<div class="jessibuca-performance-item">
<span>WCS解码间隔(ms) ${A.wcsDecodeDiffTimes}</span>
</div>
`:""}
${m._opt.isHls?`<div class="jessibuca-performance-item">
<span>HLS缓冲时长(ms) ${A.hlsDelay}</span>
</div>
<div class="jessibuca-performance-item">
<span>HLS播放模式 ${1<A.hlsDecodePlaybackRate?"加速":"正常"}</span>
</div>
`:""}
<div class="jessibuca-performance-item">
<span>网络延迟(ms) ${A.netBuf}</span>
</div>
<div class="jessibuca-performance-item">
<span>缓冲时长(ms) ${A.buf}</span>
</div>
<div class="jessibuca-performance-item">
<span>最新缓冲时长(ms) ${A.pushLatestDelay}</span>
</div>
<div class="jessibuca-performance-item">
<span>视频显示时间(ms) ${A.ts}</span>
</div>
${m._opt.hasAudio&&m.isAudioNotMute()?`
<div class="jessibuca-performance-item">
<span>音频显示时间(ms) ${A.audioTs}</span>
</div>
${m._opt.hasVideo?`
<div class="jessibuca-performance-item">
<span>音视频同步时间戳(ms) ${A.ts-A.audioTs}</span>
</div>
`:""}
<div class="jessibuca-performance-item">
<span>音频播放模式 ${l?"加速":"正常"}</span>
</div>
`:""}
<div class="jessibuca-performance-item">
<span>视频解码时间(ms) ${A.dts}</span>
</div>
<div class="jessibuca-performance-item">
<span>解码前-解码后延迟(ms) ${A.delayTs}</span>
</div>
<div class="jessibuca-performance-item">
<span>总延迟(网络+解码)(ms) ${A.totalDelayTs}</span>
</div>
${A.isStreamTsMoreThanLocal?'<div class="jessibuca-performance-item">\n <span>是否超过一倍率推流 是</span>\n </div>\n ':""}
<div class="jessibuca-performance-item">
<span>是否在丢帧 ${p}</span>
</div>
<div class="jessibuca-performance-item">
<span>播放时长(s) ${ot(A.pTs)}</span>
</div>
<div class="jessibuca-performance-item-block"></div>
`,g.$performancePanel.insertAdjacentHTML("beforeend",f)):(g.$performancePanel.innerHTML="",E(g.$performancePanel,"display","none"))}),m.on(v.togglePerformancePanel,e=>{E(g.$performance,"display",e?"none":"flex"),E(g.$performanceActive,"display",e?"flex":"none")}),m.on(v.faceDetectActive,e=>{E(g.$faceDetect,"display",e?"none":"flex"),E(g.$faceDetectActive,"display",e?"flex":"none")})};function Or(e,t){var i,r,t=(t=void 0===t?{}:t).insertAt;e&&"undefined"!=typeof document&&(i=document.head||document.getElementsByTagName("head")[0],(r=document.createElement("style")).type="text/css","top"===t&&i.firstChild?i.insertBefore(r,i.firstChild):i.appendChild(r),r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e)))}function _r(e,t){t instanceof Element?e.appendChild(t):e.insertAdjacentHTML("beforeend",String(t)),e.lastElementChild||e.lastChild}function x(e,t,i){e.style[t]=i}function Mr(e,t){return e.composedPath&&-1<e.composedPath().indexOf(t)}Or('@keyframes rotation{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(1turn)}}@keyframes magentaPulse{0%{background-color:#630030;-webkit-box-shadow:0 0 9px #333}50%{background-color:#a9014b;-webkit-box-shadow:0 0 18px #a9014b}to{background-color:#630030;-webkit-box-shadow:0 0 9px #333}}.jessibuca-container .jessibuca-icon{cursor:pointer;width:16px;height:16px;display:inline-block}.jessibuca-container .jessibuca-ptz-controls{position:absolute;width:140px;height:140px;visibility:hidden;opacity:0;border-radius:78px;background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%;transition:visibility .3s,opacity .3s;right:43px;bottom:50px}.jessibuca-container .jessibuca-ptz-controls.jessibuca-ptz-controls-show{visibility:visible;opacity:1}.jessibuca-container .jessibuca-ptz-bg-active{visibility:hidden;opacity:0;width:140px;height:140px;background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-ptz-bg-active.jessibuca-ptz-bg-active-up{transform:rotate(-90deg)}.jessibuca-container .jessibuca-ptz-bg-active.jessibuca-ptz-bg-active-left{transform:rotate(180deg)}.jessibuca-container .jessibuca-ptz-bg-active.jessibuca-ptz-bg-active-down{transform:rotate(90deg)}.jessibuca-container .jessibuca-ptz-bg-active.jessibuca-ptz-bg-active-show{visibility:visible;opacity:1}.jessibuca-container .jessibuca-ptz-control{position:absolute;left:50px;top:50px;width:40px;height:40px;background:#fff;border-radius:50%;transition:left .3s,top .3s}.jessibuca-container .jessibuca-ptz-control.jessibuca-ptz-control-left{left:33px}.jessibuca-container .jessibuca-ptz-control.jessibuca-ptz-control-up{top:33px}.jessibuca-container .jessibuca-ptz-control.jessibuca-ptz-control-right{left:73px}.jessibuca-container .jessibuca-ptz-control.jessibuca-ptz-control-down{top:73px}.jessibuca-container .jessibuca-ptz-arrow{cursor:pointer;position:absolute;width:0;height:0}.jessibuca-container .jessibuca-ptz-arrow-up{left:63px;top:11px;border:7px solid transparent;border-bottom:10px solid #fff}.jessibuca-container .jessibuca-ptz-arrow-right{top:63px;right:11px;border:7px solid transparent;border-left:10px solid #fff}.jessibuca-container .jessibuca-ptz-arrow-down{left:63px;bottom:11px;border:7px solid transparent;border-top:10px solid #fff}.jessibuca-container .jessibuca-ptz-arrow-left{left:11px;top:63px;border:7px solid transparent;border-right:10px solid #fff}.jessibuca-container .jessibuca-loading-bg{display:none;position:absolute;z-index:10;left:0;top:0;right:0;bottom:0;height:100%;width:100%;background-position:50%;background-repeat:no-repeat;background-size:contain;pointer-events:none}.jessibuca-container .jessibuca-loading-bg img{width:100%;height:100%}.jessibuca-container .jessibuca-poster{position:absolute;z-index:10;left:0;top:0;right:0;bottom:0;height:100%;width:100%;background-position:50%;background-repeat:no-repeat;background-size:contain;pointer-events:none}.jessibuca-container .jessibuca-play-big{position:absolute;display:none;height:100%;width:100%;background:rgba(0,0,0,.4)}.jessibuca-container .jessibuca-play-big:after{cursor:pointer;content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:block;width:48px;height:48px;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAACgklEQVRoQ+3ZPYsTQRjA8eeZZCFlWttAwCIkZOaZJt8hlvkeHrlccuAFT6wEG0FQOeQQLCIWih6chQgKgkkKIyqKCVYip54IWmiQkTmyYhFvd3Zn3yDb7szu/7cv7GaDkPEFM94PK0DSZ9DzDAyHw7uI2HRDlVJX5/N5r9FoHCYdr/fvCRiNRmpJ6AEidoUQ15NG+AH8BgD2n9AHANAmohdJQfwAfgGA4xF4bjabnW21Whob62ILoKNfAsAGEd2PU2ATcNSNiDf0/cE5/xAHxDpgEf0NADaJ6HLUiKgAbvcjpdSGlPJZVJCoAUfdSqkLxWLxTLlc/mkbEgtgET1TSnWklLdtIuIEuN23crlcp16vv7cBSQKgu38AwBYRXQyLSArg3hsjRDxNRE+CQhIF/BN9qVAobFYqle+mkLQAdLd+8K0T0U0TRJoAbvc9fVkJId75gaQRoLv1C2STiPTb7rFLWgE6+g0RncwyYEJEtawCvjDGmpzzp5kD6NfxfD7frtVqB17xen2a7oG3ALBm+oMoFQBEPD+dTvtBfpImDXjIGFvjnD/3c7ksG5MU4HDxWeZa0HB3XhKAXcdxOn5vUi9gnIDXSqm2lHLPK8pkfVyAbSLqm4T5HRs1YB8RO0KIid8g03FRAT4rpbpSyh3TINPxUQB2GGM9zvkn05gg420CJovLZT9ISNA5tgB9ItoOGhFmnh/AcZ/X9xhj65zzV2Eiwsz1A1j2B8dHAOgS0W6YnduY6wkYj8d3lFKn/j66Ea84jtOrVqtfbQSE3YYnYDAY5Eql0hYAnNDv6kKIx2F3anO+J8DmzqLY1goQxVE12ebqDJgcrSjGrs5AFEfVZJt/AF0m+jHzUTtnAAAAAElFTkSuQmCC");background-repeat:no-repeat;background-position:50%}.jessibuca-container .jessibuca-play-big:hover:after{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAACEElEQVRoQ+2ZXStEQRjH/3/yIXwDdz7J+i7kvdisXCk3SiFJW27kglBcSFFKbqwQSa4krykuKB09Naf2Yndn5jgzc06d53Znd36/mWfeniVyHsw5PwqB0DOonYEoijYBlOpAFwCMkHwLDS/9mwhEDUCfAAyTXA4tYSLwC6CtCegegH6S56FETAR+AHRoACcBTJAUWa+RloBAXwAYIrnt0yBNgZi7qtbHgw8RFwLC/QFglOScawlXAjH3gUqrE1cirgVi7mkAYyS/0xbxJSDcdwAGSa6nKeFTIOZeUyL3aYiEEBDuLwDjJGf+KxFKIOY+BdBL8iipSGiBmHtWbbuftiJZERBuOfgGSK7aSGRJIObeUml1ayKSRQHhlgtkiaTcdltGVgUE+ppkV54FaiS78yrwqlLoOI8Cch2XV548W7WRpTVwA6DP9kGUFYEpAOUkT9LQAvtq1M+0udKkQSgBqSlJWWYxKXj8vRACK+o6bbRIdYI+Ba7U7rKjg7L53JdAhWTZBsy0rWuBXZUuNVMg23auBF7UIl2yBbJt70JAoKV6/WwLk6R9mgKSJlJ1kLTxFmkJyCla8UZd15GJQKvyumyJ8gy8DAEvfZoINPqD41EtUjmUgoaJwAaAnjrKebVI34OSq85NBNqlCAWgE0CV5GEWwI3vQlmCbcSinYFCwPEIFDPgeIC1P1/MgHaIHDf4Aydx2TF7wnKeAAAAAElFTkSuQmCC")}.jessibuca-container .jessibuca-recording{display:none;position:absolute;left:50%;top:0;padding:0 3px;transform:translateX(-50%);justify-content:space-around;align-items:center;width:95px;height:20px;background:#000;opacity:1;border-radius:0 0 8px 8px;z-index:1}.jessibuca-container .jessibuca-recording .jessibuca-recording-red-point{width:8px;height:8px;background:#ff1f1f;border-radius:50%;animation:magentaPulse 1s linear infinite}.jessibuca-container .jessibuca-recording .jessibuca-recording-time{font-size:14px;font-weight:500;color:#ddd}.jessibuca-container .jessibuca-recording .jessibuca-icon-recordStop{width:16px;height:16px;cursor:pointer}.jessibuca-container .jessibuca-zoom-controls{display:none;position:absolute;left:50%;top:0;padding:0 3px;transform:translateX(-50%);justify-content:space-around;align-items:center;width:150px;height:30px;background:#000;opacity:1;border-radius:0 0 8px 8px;z-index:1}.jessibuca-container .jessibuca-zoom-controls .jessibuca-zoom-narrow{width:16px;height:16px;cursor:pointer}.jessibuca-container .jessibuca-zoom-controls .jessibuca-zoom-tips{font-size:14px;font-weight:500;color:#ddd}.jessibuca-container .jessibuca-zoom-controls .jessibuca-zoom-expand,.jessibuca-container .jessibuca-zoom-controls .jessibuca-zoom-stop2{width:16px;height:16px;cursor:pointer}.jessibuca-container .jessibuca-loading{display:none;flex-direction:column;justify-content:center;align-items:center;position:absolute;z-index:20;left:0;top:0;right:0;bottom:0;width:100%;height:100%;pointer-events:none}.jessibuca-container .jessibuca-loading-text{line-height:20px;font-size:13px;color:#fff;margin-top:10px}.jessibuca-container .jessibuca-controls{background-color:#161616;box-sizing:border-box;display:flex;flex-direction:column;justify-content:flex-end;position:absolute;z-index:40;left:0;right:0;bottom:0;height:38px;width:100%;padding-left:13px;padding-right:13px;font-size:14px;color:#fff;opacity:0;visibility:hidden;transition:all .2s ease-in-out;-webkit-user-select:none;user-select:none;transition:width .5s ease-in}.jessibuca-container .jessibuca-controls .jessibuca-controls-item{position:relative;display:flex;justify-content:center;padding:0 8px}.jessibuca-container .jessibuca-controls .jessibuca-controls-item:hover .icon-title-tips{visibility:visible;opacity:1}.jessibuca-container .jessibuca-controls .jessibuca-controls-item.jessibuca-face,.jessibuca-container .jessibuca-controls .jessibuca-controls-item.jessibuca-face-active,.jessibuca-container .jessibuca-controls .jessibuca-controls-item.jessibuca-fullscreen,.jessibuca-container .jessibuca-controls .jessibuca-controls-item.jessibuca-fullscreen-exit,.jessibuca-container .jessibuca-controls .jessibuca-controls-item.jessibuca-icon-audio,.jessibuca-container .jessibuca-controls .jessibuca-controls-item.jessibuca-microphone-close,.jessibuca-container .jessibuca-controls .jessibuca-controls-item.jessibuca-pause,.jessibuca-container .jessibuca-controls .jessibuca-controls-item.jessibuca-performance,.jessibuca-container .jessibuca-controls .jessibuca-controls-item.jessibuca-performance-active,.jessibuca-container .jessibuca-controls .jessibuca-controls-item.jessibuca-play,.jessibuca-container .jessibuca-controls .jessibuca-controls-item.jessibuca-ptz,.jessibuca-container .jessibuca-controls .jessibuca-controls-item.jessibuca-ptz-active,.jessibuca-container .jessibuca-controls .jessibuca-controls-item.jessibuca-quality-menu,.jessibuca-container .jessibuca-controls .jessibuca-controls-item.jessibuca-record,.jessibuca-container .jessibuca-controls .jessibuca-controls-item.jessibuca-record-stop,.jessibuca-container .jessibuca-controls .jessibuca-controls-item.jessibuca-scale-menu,.jessibuca-container .jessibuca-controls .jessibuca-controls-item.jessibuca-screenshot,.jessibuca-container .jessibuca-controls .jessibuca-controls-item.jessibuca-speed-menu,.jessibuca-container .jessibuca-controls .jessibuca-controls-item.jessibuca-template-menu,.jessibuca-container .jessibuca-controls .jessibuca-controls-item.jessibuca-volume,.jessibuca-container .jessibuca-controls .jessibuca-controls-item.jessibuca-zoom,.jessibuca-container .jessibuca-controls .jessibuca-controls-item.jessibuca-zoom-stop{display:none}.jessibuca-container .jessibuca-controls .jessibuca-icon-audio,.jessibuca-container .jessibuca-controls .jessibuca-icon-mute{z-index:1}.jessibuca-container .jessibuca-controls .jessibuca-controls-bottom{display:flex;justify-content:space-between;height:100%}.jessibuca-container .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-left,.jessibuca-container .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-right{display:flex;align-items:center}.jessibuca-container.jessibuca-controls-show .jessibuca-controls{opacity:1;visibility:visible}.jessibuca-container.jessibuca-controls-show-auto-hide .jessibuca-controls{opacity:.8;visibility:visible;display:none}.jessibuca-container.jessibuca-hide-cursor *{cursor:none!important}.jessibuca-container .jessibuca-icon-loading{width:50px;height:50px;background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%;animation:rotation 1s linear infinite}.jessibuca-container .jessibuca-icon-screenshot{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAE5UlEQVRoQ+1YW2sdVRT+1s7JxbsoVkEUrIIX0ouz15zYNA+N1RdtQfCltlUfvLbqL/BCwZ8grbHtizQqPojgBSr0JkiMmT2nxgapqBURtPVCq7HxJCeZJVPmxDlzZubMmXOSEsnAvOy917fXt9e39tp7E5b4R0vcfywTuNgRbBgBx3HuJqLVzPzmYjprjHkcwAlmLqXNm4XAISLaSESPaq2HF4OE67rbRGRYRA7btn1fbgLGmKsA/Azg0gBkGzO/vZAkHMd5hIiqc5wHcCMz/5k0Z2oExsfHV1QqldPAf8lORNu11m8tBAljzFYAYWxRSl1vWdZvuQj4RsYYF4AVBlgIOVVlE55HRIxt23ZuCfmGjuOsJ6LPoiAistW27XfaEYmIbOYhPc9bXywWR1oiEJDYQkR1zrYjEjGyqfqbKd8a7kJVtLgQ+30i8pht2wfyRKIdmJkJBPkQTbILfudJ7CTZNBvVpggEcgpvc/ML38zESbLJsxBNE/A9biX0rdjGyTQXgbxyapdsarb0PMlXtWnGoXbKpm0Essqp3bJpK4E0OXmed3+hUBDP8w5FI91M0rdcyLLILElOCbaZilSWeXMncRx4klTCY1spfG3dhZJWx3GcDUR0EEB3ZMw0ET2gtT6SZWWzjmlrBIJCl0hAKfWgZVmHszqXZVxbCSxpCS2JJA6umIhe8ZKKVLPbaBJ+S9toqVRa53nedgAbAKwIwH4FcAzAa0R0l4i8F7PPz189k6RFRA+LyNcAXojDV0oNW5b1eW4Cxpg9AHZkSaaa6hhzb065uDSCH2LmRB8Sk9gY4293g43Qo/1pV80m8yQMfZSZ781cB1zXHRKRZ2IMpgD8A+DamL4ZItqitX4/jbQx5iEA7wLoihn3V/ACckWMJN/QWj9b1x5tGBsbW6uUOh5pPy0iL3Z2dn6ilJqanp5ep5TaJSLhF4NppdRNaU8gPmapVLrO87yfIoXuWyJ6uVKp+HmFjo6OQSJ6FcBtYT+UUmstyxqvkWuUgDFmP4AnQu2/e563qlgs+u9DNZ8xZhRAX7VRRPbath0XuXk7Y8xeAE+FgL6fnJzsHRwcLIfBR0ZGLunq6poAsDLUvp+Zw7b1r9PGmJMAbg8Z7WDmoThZuK67WkS+DD18fcPMdzSQUBR/EzN/nIC/SUQ+DPXV4dclsTHmHAD/SfHCNzc3t7Kvr++HJKeMMacA3BL0nyuXyzcPDAxMxo0fHR29slAo/Ajg6qD/fE9Pzw29vb1/x42fmJi4vFwu+5G/LOg/y8zXNJLQ2dAES5JANMQ7mfn1jBI6ycx3NiMhItqstf4oAX+ziHwQ6qvDj5NQNIn/ALCKmX+JSeIvABRD7fuY+ekGBPYBeDI05tTMzExvf3+/vz2Hk91/ET8RSeI6/DoCpVJpjed5fmKGvzMAXpqdnT3oed5Ud3d3v4jsAqBr9Ei0Rmv9VRqBBPzvROQVETnq2xJRdRu9tRF+bCVOKWT+Kvl/TSIFk6SW/LAjKfjV5K8rZABi8dOOEv7FI7Z8x6zwEWbemLbyMfJr5qiSiJ96oclymBOR3bZtP9+M89WxxpjdAHY2sN3DzM8ljWl4I3Nd9x7/OE1ENcdpETnmH3e11n41zv0l4J8RkU+J6AAz+xtF4teQQG7PFslwmcAiLfSyhC72Qv9/I/Avns2OT7QJskoAAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-screenshot:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAED0lEQVRoQ+2ZycsdRRTFf2ejqHFAMQqiYBTUoElUHLNx3GgCgpuYRF2o0UT9CxwQ/BMkMSbZSKLiQgQHUDCJgjiAxiEiESdEcJbEedgcKaj3UV+/6q7u/jovPPkK3qbr1ql76p5bt6qemPKmKfefeQKHOoLFCNg+H1gi6fFJOmv7VmCvpD1N87Yh8ApwNXCzpB2TIGF7DRDm2inpmt4EbB8LfAMcGUHWSHryYJKwfRMwmuMP4BRJv9TN2RgB2wuB72BWsq+V9MTBIGF7NZBiGzhJ0o+9CIRBtt8FLqgADC6nRDbpVO9Iuqi3hCKB5cDrGZDVkp4aIhIV2aSQyyW9MScCkcQqIOfsnCORkc3I31b5VtyFRmg1IQ7dt0ja3icSQ2C2JhAjUU2ykd+dE7tBNp2i2olAJJFuc+nCt564QTadF6IzgUhiVGiqyinKaQjZpJP2ItBXTkPJZhACXeU0pGwGI9BWTkPLZlACBTldG4o5EA6E1dY66edcyNrs8Q36zg1vVaTazNs7iXPgDVJJzYs7VRvHRzaDEohyugJ4CTi84sg/wHWSdnVxsGQ7aQLXS9pZcqpL/6AEplpCU5HE8YpJ9YrXUKQ6baN1+HPaRm1fBqwFQnKGK2ZoPwCvAo8Ai4FnMpPMHMwapHUj8DFwbw3+Dklv9iZgexOwvktSRduxU2VDlErwmyXV+lCbxLbDdndlCT3TX3vV7JgnKfRuSVflfMkSsL0ZuDMz4E/gL+CETN+/wCpJzzaRtn0D8DRwWMbu1/gCcnSm7zFJd1W/jxGwvQx4r2IYnlbuA14GAomQFw8B6YtBKFSnNj2BxEJ3IvB1pdB9CjwQ8yqYhcg/DJxZ8WOZpA/SbzkC24DbEqOfgPMkBRKzmu23gEuSj1sk5SI3Y2J7C3BHMuZz4FxJf6fgto8APgIWJd+3SUrHjr9O294HnJUMWi8pSGqs2V4CvJ88fH0i6eyChKr4KyS9WIO/Ang+6RvDz0XgABCeFEdtkaQv65yy/QVweuwPY0+T9FuNQ8cAXwHHxf7wdHiypN9r7BfEl8GjYv9+SceXJLQ/mSDYTh2Baog3SHq0pYT2STqno4RWSnqhBn8l8FzSN4bfJol/jkn8bXUS228DFyfft0paVyCwFbg9sQkSDEkctueZZju8iO+tJPEYfo7A0piYKd73wP3xnB+20cvjNnphxdmlkj4sEMjhfwY8COyOY0fb6Bkl/K6FLKxS+M1KpDhJY8mvrG5doRwlf66QZfGbjhLh4pEt35kV3iUp/IvTunU8qtTil/7gaHOY2yjpntaez9b5RmBDYewmSXfX2RRvZLYvbThOh+NuqMa9Ww1+yLnXgO2SwkZR24oEens2oYHzBCa00PMSOtQL/f+NwH+Hg8hAnbrYgQAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-play{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAACgklEQVRoQ+3ZPYsTQRjA8eeZZCFlWttAwCIkZOaZJt8hlvkeHrlccuAFT6wEG0FQOeQQLCIWih6chQgKgkkKIyqKCVYip54IWmiQkTmyYhFvd3Zn3yDb7szu/7cv7GaDkPEFM94PK0DSZ9DzDAyHw7uI2HRDlVJX5/N5r9FoHCYdr/fvCRiNRmpJ6AEidoUQ15NG+AH8BgD2n9AHANAmohdJQfwAfgGA4xF4bjabnW21Whob62ILoKNfAsAGEd2PU2ATcNSNiDf0/cE5/xAHxDpgEf0NADaJ6HLUiKgAbvcjpdSGlPJZVJCoAUfdSqkLxWLxTLlc/mkbEgtgET1TSnWklLdtIuIEuN23crlcp16vv7cBSQKgu38AwBYRXQyLSArg3hsjRDxNRE+CQhIF/BN9qVAobFYqle+mkLQAdLd+8K0T0U0TRJoAbvc9fVkJId75gaQRoLv1C2STiPTb7rFLWgE6+g0RncwyYEJEtawCvjDGmpzzp5kD6NfxfD7frtVqB17xen2a7oG3ALBm+oMoFQBEPD+dTvtBfpImDXjIGFvjnD/3c7ksG5MU4HDxWeZa0HB3XhKAXcdxOn5vUi9gnIDXSqm2lHLPK8pkfVyAbSLqm4T5HRs1YB8RO0KIid8g03FRAT4rpbpSyh3TINPxUQB2GGM9zvkn05gg420CJovLZT9ISNA5tgB9ItoOGhFmnh/AcZ/X9xhj65zzV2Eiwsz1A1j2B8dHAOgS0W6YnduY6wkYj8d3lFKn/j66Ea84jtOrVqtfbQSE3YYnYDAY5Eql0hYAnNDv6kKIx2F3anO+J8DmzqLY1goQxVE12ebqDJgcrSjGrs5AFEfVZJt/AF0m+jHzUTtnAAAAAElFTkSuQmCC") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-play:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAACEElEQVRoQ+2ZXStEQRjH/3/yIXwDdz7J+i7kvdisXCk3SiFJW27kglBcSFFKbqwQSa4krykuKB09Naf2Yndn5jgzc06d53Znd36/mWfeniVyHsw5PwqB0DOonYEoijYBlOpAFwCMkHwLDS/9mwhEDUCfAAyTXA4tYSLwC6CtCegegH6S56FETAR+AHRoACcBTJAUWa+RloBAXwAYIrnt0yBNgZi7qtbHgw8RFwLC/QFglOScawlXAjH3gUqrE1cirgVi7mkAYyS/0xbxJSDcdwAGSa6nKeFTIOZeUyL3aYiEEBDuLwDjJGf+KxFKIOY+BdBL8iipSGiBmHtWbbuftiJZERBuOfgGSK7aSGRJIObeUml1ayKSRQHhlgtkiaTcdltGVgUE+ppkV54FaiS78yrwqlLoOI8Cch2XV548W7WRpTVwA6DP9kGUFYEpAOUkT9LQAvtq1M+0udKkQSgBqSlJWWYxKXj8vRACK+o6bbRIdYI+Ba7U7rKjg7L53JdAhWTZBsy0rWuBXZUuNVMg23auBF7UIl2yBbJt70JAoKV6/WwLk6R9mgKSJlJ1kLTxFmkJyCla8UZd15GJQKvyumyJ8gy8DAEvfZoINPqD41EtUjmUgoaJwAaAnjrKebVI34OSq85NBNqlCAWgE0CV5GEWwI3vQlmCbcSinYFCwPEIFDPgeIC1P1/MgHaIHDf4Aydx2TF7wnKeAAAAAElFTkSuQmCC") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-pause{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAABA0lEQVRoQ+1YwQqCUBAcfWXXsLr2AXWTPXno8yVB8AP6Aa3oHI+kCDqYaawJljSe133uzO44bx0M/HEG/v1gAd9mkAyQgY4I/F8LJUlyrQFtD2AtIkcNoFEU+Z7n7QD4DfFHEVlocrVmgAUAIAOl3mILPcDgEFcUhyrUKMGUUcroc3NQRimj9XJBGaWMvvPydKN0o6/9QTdKN6rZANxj6EbpRulGuZnjYqs8BbyR8Ub2Izeys+u6yyAIDpo/ehzHM2NMDsA0xFsRmWhyfTIDWSXxCEBmrd2EYXjSHJqm6bQoii2AOYBL5Z0xgFxEVppcrQvQJO0zhgX0iXbdWWSADHRE4AZQ731AhEUeNwAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-pause:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAA7klEQVRoQ+2YSwrCQBBEX6HiVvxsPYDewfN7By/gD9ciQkvERQwJdBSiYs0mEDo96aruombEjy/9+P/jAj7NoBkwA28i8H8tFBFRA9oeWEo6ZgCNiDGwAYpn3TpKmmVytWbABQBmoNRbbqEHGB7iiuJYhRol2DJqGX1uDsuoZdRmLuNZSzGWUcuoZdRHSp/IylNgK2ErYSthK3FHwLcSvpXIjoLt9Jfa6TMwl3TIMBkRE2AH9BriL5KGmVyvWIltJXEfKN6tJJ0ym0bECFgDU+Ba+WZQFCdpkcnVuoBM0i5jXECXaNftZQbMwJsI3AAPN3dAQflHegAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-record{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAC+UlEQVRoQ+1ZS2sTURT+zlDJYE3XSq219QHVuEjnJDT+Bff9Abqw2voAEfGxqygUqWhVFHGl/yMLu9BwByxk5SNI66ML6U7axjhHbmhgWiftncxoOiV3FcI53z3f/e65594zhIQPSnj86BBot4IdBToKRFyBnbeFlFIScVEiuYvIWC6Xe2YK8pcC7SYA4CMzH4mDQBXAqilQBDsLQLfPf9FxnF4i8kwwmypARI+Wl5dvmIBEsUmlUkNE9NaHsVCpVAZGR0d/m+A2JSAid3K53E0TkCg2pVKpz7KseR/GfKVSGYxMAMA0M1+JEpyJb6lUOm5ZVnkrAsVisaunp+esiByr1Wp3R0ZGvmifzZK4XQQWHMc52MgBpdQuAOcAXABwuB400ZTjONdaIjA7O5u2bVsnWU1EujzP+5nP5xdMVjvIJkCBD8x8VCm1G8AYgAkAAxt8Z5j5YmgCSqlTAJ4D2OcD/AXgATNfbYVEAIFPIvKKiE4D6GuCea8xX6gtpJT6DmBvECgRFRzHeROWRAABE4iWCbwHEFhkPM/L5vP5dyaz+23+KwHXdR3P854S0YG1ILSCuthNMfNM2OC1/RYENLY+ygcBnPfht6ZAA6BYLNr6dyqVokKhsGpaNQ2TWJstreXaE2aed133sojcj41AKyvdzCdAgSXLsk4MDw9/a/i4rntbRPxFNZoC/5jAV2be759DKTUJ4FZSFFi0bbs/k8noy2R9dAjEuWU2YgXkQOK3kD6BMsysi2Z9JC2Jdcw/ALzwPO+xvmcl7Rj177JVEbkO4BARjSflFDJJuW1dBxJPoCIiL4noDIB1BS0pW6j+oJmbm+uuVqvjRKQfLr0bZHnIzJf0f6HeAybahrUJqAPruhLlcnnPysqKfpXp11n/Gv62zoHAroS+AafT6QkiGrIsazKbzX7eVIHEt1US39gCkOzWYthkjNE+tuZujDGZQ8XRXn8N4KT5lLFZ6uaYPt+nwyDuvC80YdhvB9uOAu1WoaNAR4GIK/AHvdr+QAexB7EAAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-record:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAACfUlEQVRoQ+2ZSYsUQRCFvycK4nJXXEbHBdwO4kn/gv9CD467ICIutxEFkREdFUU86T/xojcPntyQcT2INw+uISFVkD1Wd2dWlU7nUHlqisiX+fJFZGREi8yHMt8/HYG5VrBToFOg4QnMPxcyM2t4KE2nT0i6EwvylwIjQOCFpE1tEPgGfI0FamC3AFgazP8IrJL0KwZzkAI3gLMxIA1ttgCPA4w3wHpJP2NwBxG4KOlcDEgTGzNbA8wEGP57vA0CU5JONtlczFwz2wY8HUbAzBYCB4CtwCVJb33OIAXmioC70LoyBsxsEXAQOApsLIhelnS6FgEzW+5BBvwA/FS+SPJFa40KBZ5L2mxmS4AJ4IjHxCzwaUnHkgmY2V7gLrAyAPwOXJN0qg6DCgIvgQfAPsDjo2pcKddLciEz+wCs6AO6W9KjVBIVBGIgahN4BvRLMjslPYlZPbT53wR2AbeBtcUmXEFPdh5U06mbd/shBBzbr/Jx4FCAX0+BEsDMFocEYrNmFcE+BD4XsXZL0oyZnQCutkagzkn3m1NBwDe/Q9L74MAuFEqUn5op8I8JvJO0elacTALnc1HAH3Njkvwx+WeYWUegTa/pwaqIgexdyIN4uyRPmqULZRXEvulPwD3gpr+zcrtGQxfzRHYG2AAczuUWiom3kc4D2RN4BdwH9gM9CS0XFyoLGu9UuN974eIFVDiuSzruH5LqgRhtU20q8kBPV8LMlhVVmVdnYwX+SMdAZVeieAF7eeltmElJr4cpkH1bJfvGVvatxdR4bMu+teZuWxtKxWncXn8I7EldtQV7vz79fp9KwZp//9CksB8F206BuVahU6BToOEJ/Ab7+KdABdTt8AAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-recordStop{background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-recordStop:hover{background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-fullscreen{background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-fullscreen:hover{background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-fullscreenExit{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAADd0lEQVRoQ+2Zz2sdVRTHv+fJBDW6anDVXen6wZszYxYBiYgtFGst3VSDunKjpS0GpUlqfjVpsVVs6aaL0or4YxMVFCJZ2ZLdPUP+gq5bQnTxtNAkfTnlhnnlkmQy9yV9780rudt77tzv5/y4v4bQ4Y06XD/2ANodwec/AiJygJnvtdvTWfPnRkBEJAiCN8rl8kMfiPn5+Ve7u7v3rays0Orq6lJfX99/PuN2auMDoAD+BvA2M6/mTWSMOUtE48D6AjHGzN/kjdlNvy+AnWOOmQ/lTSYiEwDOWzsimgrDcCRvzG76GwGw8/zJzO9sN6GInAMwbW1UdSSKoqndCMwb6wNwGsB39Q+p6h/M/C4R2dTa1AoHYBWKyCkA1+pqiWi2Wq0e7e/vf7yRoJAAKcQggMtuJKIoOtoxACnE0/xOi/SXMAxPuhCFjUBdpIjYVWXSEf0TM3/g9BeriDMKdSPEz8z8vrU1xgwT0YXCrEJZy1iSJKOqOub0/8jMA0mSfKKqNwoPkHp7ioiGHIhRIvpHVa93BEBa2JcAfOlALAHo6RgAKzRJkk9V1S6xL7kpV4idOM31taxaIKJHqmpPnMMA9hcOQES2PDJkAT1XAAC+ZebPfWB3auNzmLObVsNRUNUXVHUujuM7OxXnMy4XwOcj29mIyOuq+lapVGrYCelKpkEQ3CyXy4tbzdN0AGPMxr2iYZ+sra3FcRybtgCIiK2BKw2rdgaUSqWoUqlIkQAepFDdAF7cBq5ERI9rtdr1OI7tmE2t6SmUEYFHAEaexYW/1QC2EF+ru5GIvg7D0D2GNJxprQY4o6qv1I/b6SpzOYqiLxpWng5oOQAzXxWRWwA+dkRfYOb1p5hGW6sBJpn5KytSRG4D+KguWFXHoyhy7xdeLC0F2ChSRL4H8OFuINoKYIUbY34gogHH3eeZef1K6tPaDpCm068A3nMEDzHzxY4BUNWSiPxORO6z5aDPPlGICNQ9bYyZIaLjjudzIQoFkKbTbwCO+UI0HcB9J/LdeY0xs0R02IGYYObRrWqiFQCfEZEtSHsfmGZm+4qxbbM/hQD8BeBNa0hEM2EYnmgLgP3lFARBT1dXly4vL//b29tbzQNIU+llAHeJaLFSqRzJes5vegR8xGbZLCwsHKzVav8z8/0sm0ID+MDvAfh4qZk2exFopnd9vv0ELrXBQO7fD10AAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-fullscreenExit:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAC/ElEQVRoQ+2Zy49NQRCHvx+ReK6IlZ34E7CUiCAR4xEbTLCyQRATYswwb2IQZDYWgojHZpCQECts+ResiQwLj0RClNSkb9Lu3HtPz7mZc8+V6eXt6tP1VVV3VdcVbT7U5vozC9BqD/7/HjCzlZLet9rS9fbP9ICZvQPWSfqRAmFmS4ClMHm+JiR9S1mXVyYFwIBXwEZJv7I2MrPjQH8A6JN0OWtNM/OpAL7HS0mbsjYzswGgN8gNS+rJWtPM/HQAfJ9nkrY22tDMTgMjQaZH0nAzCmatTQE4ClyNPvQU2CbJQ2vKKB2Aa2hmR4DrkbbPgQ5Jv6sJSgkQILqA0dgTkjraBiBAxPHtPz2UtDuGKK0HKkqamd8qg5HS9yXtjebLdYjrHNRqiAeS9gQvnQGGSnML1bvGzOwc0BfN35PUaWYHgRulBwjW9ju+O4JwqM/AWFsABIgLwKkIYgJY1jYAAeJQuGIXVIVcKTKxh8WfBin9J+AVpx/eFWUEqFkyNACKp0rhgWYArkg6kQibSyylmPOklQdibijBX+fSLHFRJkDid+qKmdlaYENOI0zeEcBNSZ9qbVIEQHWuyGOTNZLetgrAz8ClPFpHa1ZL8rf5lFGEB2oBfAxQi4D5DeDmAP7mGJPka0oD4LnDr9imH/xFe8AP4vLIjBclxWXItCOtaIBjwOKo3HaFRyWdnLbmYUHhAJKumdkt4ECk9JCkSitmWixFAwxKOjt5uZvdBvZH2vZLit8XSSBFA/yjpJndAfY1A9FSgOCJu0BnBNErqfIkzfRCywECxCNgR6Rtt6TzmdqHBmyKXG4ZM4sTWc04NzNPWE+AuG3ZlZInSuGBinXMbBzYGVkrE6JUACGcHgPbUyGKAIj7REmZ18y897o5ghiQ5E/bltRChwE/kF7Xj0jyLkbDYWbzgBfA+iA4LmlXqwD8LydvszjAF0lfswBCKC0E3gBeP22p186f8RBKUbaejJmtAr5L+lBPptQAKfCzAClWmkmZWQ/MpHVTvv0X9iFAQGQyevIAAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-audio{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAACrUlEQVRoQ+2ZPYgTURCAZzbBXJnCeL2Cnb87b9MEtPBUrrMQFAtrtT5/ClGs9LBWWz0RtbBUFCF4oJDsbO68wsLA2YqQSmLlvpEHu7IuMdlLcus+yUKKhJfZ+ebnvZl5CJY/aLn+MAP41x7M1QPMfFtr/crzvHfTAs8FoNPp1LTWzwHgqIg0lFLvrQHwfX8BER8DwC6jNCIecF13wwoA3/dvIuKNpLJa60Oe560XGoCZd4rICiKeTCtaeABmPg4AJmRqg6xcaABmvg4At4aFRyEBhoVM4UMoCplHADCfJTEL5YEsIVNID5iQAYCHALCYxeq5b6PMfF5EBAAEESthGK7W6/XPRpFWq7W3VCqtZg2ZcT3g+/6i4zjzIlLSWn/yPO/DIGMNLCWY2Sj/+xGRK0qpZfNDEASnROTFVi0fr8+aA8z8Ld6KEfGt67oLYwMAwEUium8EREn7OgeAjwCwPyo/nrque3YSgAtE9GDaAM1mc65arc4Zuf1+P2w0Gt9jJZl5DQAORt+fENG5wgEw8zUAMB/zbBBRwyqAIAjuiMjlSOlNItpjFUCqWl0josMzgChR/9hGAWBbknjmAdPhDdqa0gfZzAMJKyVP4v8hhJYRcSni+0JEu63ahZj5anyQici6UuqIVQDdbrfS6/UqRulyufyTiH5sF8AlIro37VpoWEHIzGZ2tM+sEZFnSqkzk9RCS0R01wjIsZz+mug53hDRia0AnI4bGgDYISItz/M2jYC8Gpp2u30MEWuO4zha665Sqp0ZYFStX/iWchRAItFGzoHSsrJ2ZFl1mHg6bfVYJeGJv85CC++BpIJZ5kSFC6G0ha0e7mYJqcJ7IOkRay84UhD2XjHFIFZf8iW9YcYoYRi+tO6aNeupOs66iU/icV46zf/MAKZpzXFk/QL+JG1PUPhRiQAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-audio:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAACSElEQVRoQ+2Zu4sUQRCHf5+C+gf4yBXMfMYHGvjCzEBQDIzV+HwEohipGKupD0QNDE8UEwUFTe68wEDhTMVUMFJ+0tArzbjs9u3Ojt0wBR0M9MzUV1XdXVWNKhcq1189wP/2YKcesH1d0nPgdVvgnQDY3iTpqaT9kuaAt9UA2D4o6aGkzVHpXcByFQC2r0q60lB2D7BUNIDtjZIeSDoyRNGyAWwfiiET4n6YlAtg+7Kka2PCozyAMSHT5CkLIIbMfUlbMhdmOQCZIVOeB2LI3JN0NNPq6bTZe8D2aUmOY72kN8DnoIXt7eF5FSEzkQdsB+OEsFwr6RPwbpixhqYStoPyqVwAbkaAY5KeTWD5wStZHrD9XdJgK34FhBP9H8kFOAvciQBhn3/RAcBHSTvjfx4DJ6cBOAPcbRvA9gZJYQT5DfwYKGl7UdLu+PwIOFUiwCVJYQRZBuZqA7gh6XxUegXYVhtAmq0uAnt7gLhQm9vorBZx74Hcc6D3QLKH/z2JGyVnlYs4pCfzEe4rsLW2XehicpAtAftqAwiZbhhBfgE/ZwVwDrjddi40KiG0HXpHO+KcJ8CJaXKheeBWBOgqnf6W1BwvgcOrATieFDTrJL0HViJAVwXNgVgPrJH0BfiQDTDKtREiNK7KLSnHASQLLacP1PxcVkWWq8PU3emq2yqJJ0b1Qsv2QKpdZp+orBBqmrfq5m5mSJXtgUZI1XnB0YCo94opCal6L/ka3ghtlIXqrllzT9VJ5k19Ek/y0zbf6QHatOYk3/oDujC8QMWgjf4AAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-mute{background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-mute:hover{background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-ptz{background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-ptz:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAI3ElEQVRoQ8Xa55NlVRUF8LXNOeecc8455xyrzH+GH/0//GwVlhagKGbECIpZRII4MOQkEgYFRTnW79U+U3eabqZ57yGn6lVPdd97z1l7r7322vdNZctrjHHPJE9P8tIkT0zynyTnJPl9kvOramxzy9rmwzxrjPGgJC9J8sYkT20AZyT5WZLTq+rGbe65VQBjjPsleXaStyd5T5KnJLklyZ+SfDfJT5KcW1X/2BaIrQEYY9y7qfOmJO9K8qokD+6DXprktCQndyaA+Oc2QGwFQEceXV7bh39FkkcuDigLVyT5bZLvJflFkr8muX7TmtgIwBjjbkke0FR5dRLRd/jH7RFdmfh1kp82iANJrqmqm9fNxtoAxhjufWCSpyV5XfOe8jwsyV33OJBM/C3JH5L8MMnPk5xVVdfcGQAcUqRfk+S9Sd62oI2DKtSbktwlifq4z+KQQADwrc7GhetSaZMM3KOp89ZWnDckoULWVUnQA+9d9/gkT1r8HTiKdGKSk5KcV1X/XScLmwC4e5LHNueBAOAJWkHLJp4rVABQS4HPxnZ+kh93FhT2pXcGANRACzRSuG/uHgAAyUSPs7segHt3kuckIZ9qgKT+JsmVfvd/p9BM9xhDJjSsF3dBo4LOe0pV/b27M2tBpfz8V5Izk/wuyQXrHnzuvzaFlnxt//OQViUZII0iu1oN8hH9d7+6lhpV1b/X4f3ynq0A2HmIMQbe+6AZQDdXFUXa+joqgD6M6xyCPN7mGmM8tOWUqQMCgBuSoNOV+/FBYwzAUXMcLUt7Amh78PBOOwd5WVVdv9vpmyIoRCqf1WoDAGsNtPtR6ry21joyG7GrdI4xeKhHd/+wJ1m+brd62RXAGIM9oBjPS4K7l7WPOaeqFOHh1Ycnp4r4lUle1LqvebEaKwp1BvQGxetzloPttBG9N0fLkttb0+Nmz6wq/z5i3QrAGOO+fXjaTh5F9qLumFr/wenp+/BMm83emeT1rUSoI+o+6OCZ9hJNCnRqy+jpDWK0NRH5Z3Z31+EfRRBaljU888QRVvwIAGMMuv7c1nSWWAbQQPpt+h0dtKpkhLrMw7MRZgCbsxgAa1buw2W9QpNzvXr4c88H3xfdqrqhjaG9BU5PkVFMoFQyoK+wH2cvh6LDAMYY92+d9gCflyVRkBYKaDpfT3JcVR0YYzgouvBBmtQLmi7nttO0KSsBgNqQJTPCYxrEKUm+1oe6sK/TrT/awdAz5lIDAsiKa4Cot+ox1anjYUQbBd7R6FFnLlT4VW94QlUdbMBo86kGLAAiK6rSrQtLtyDhsoB4NueKGg7NCx3bwbHXy5N8sK9Tg+i3SnaSS5L8sjOBxqzICsAzOrVmWC1fpJaRx1vFZ6Z1MJmAnkp8LMln2+tc1xT7qmuXBdf0MPDI7Ac6Ew6npr7coN0vU0A4C8BoJzDEgGId7Ho4UFVfmAA+01YAh3FwjoH+7qEoId3z8IqKNJoDPp7k00kEwcO/4kBV9cedajHGuFfbCfe8v6mkiAFAzQu6b5BuINQBytmHCFjqQV3JALasMgAJ2VK0tHu5cM8EpYBOrCppV7wKW4o/kuST/fYBZb6U5BgU2wmg71Mzn2jg/JPXLUAf3zK5mszGGHrJ+7q2OFmD03JdXlUYsALw+T6MYjRNLdfVrf/fTvKNqqIs09sA/eHOgILTpI4Boqr+sksGUIahUzMfagoqdABOAKaqvEPy/Od3lgQVaDSaC8iLqgolVwBw8smdAfyXwqlOJE80FQ8FYJM1E6k0pDjI57roUUumHEgNoN9qdb9wvRqgMgqZiqkB1yt8ioUqVEpDRCFUMkPIuOU8suYFGSquALhA0WocbhKlVXr6pRQlAcKbhB/0z8s7KuRTRBWdHsJGOwywZ1TVVc39KaNUiFDoC3qJvnJcB0hd6SP2x+8X9sAElOwd6sOTURPcFycA0VZgUjLnWxEgfTMTIm5ykupjuw94qE6Nq15iSbtDAGEaI7s8D2A4LZqeC4yhRjYVL8AmN9bD/mgpU4RhLtRiPUgn0BdXFfodPuAsTA8XoaVeuw4AxWzD46sK391Dz8mdTPigop5BURwK3QRHxD1bZoHUL9DNYdiDQ00z0Ucx/UU25lJ7VNDbPUy4dnbjnVZC1yRbUqiodVf8o0akFIVMWqthpa02zpI7WRBhDZBu8/+M33wrgfN+x2aIPprJKot9SzdUYuDdkgygECvhGXNEVTMKeFXsR2RgUXAOjE6iwY/oCwrMQzSxS5bDSYMQYXLnI/Xcqc0dWsQdQpFf3NE3E+sBVywP093d3rI696aE9rW/BnbES7C97DQ+Ug0PU+A6r+o3wx5GvwDNfTJqBIG+u1cNoY8OqgAFQR9BP0Cu3m0eaEPpOQJBPtHQPQJ3q5fCtzXQoJMGQgVEEO/2HAt7inItCsnacqBRtDLgc5i/C44f8c9+Uex+Z3DoQ3tNZvsZKV1T+xknFxlxz3Kguen2vv9UE/t5Y3FUAHtFaZPf7/dw+9ljKwA65Tivi1MgvFUv09vgskJHLzVBxczYG39bszGAViEFR0oZPMv3YSdXFQ9PbqkKeSSTOO3v9JyqbPSd2doAeiJTtBRnvl5nx8mmnvHN7p4U6i3dVwDkZ8iinsJjycTaXzltAmC+dRZ5s4QODsy0EyI8PT5HqcmhERk2IHk7DcRpVUVW11qbAtAnRFcXlgXNy9I3dFyvENWEHqG5Uab5d36JnThpr/lhP4g2AaDLOhhDx7fzL/zOivbtiXgoVkJDkzFLhkx5or+y6Fzrfg672zVrA+jiFFFdEz0YQD/RaB52554aoa7KFswR1bcza7833RTA/I4APabSqAWGcL5RmCB0c5Ma6uA/JTIT3Hh7muTOiGwEYD6spXR+W8PFcrOTTi6j9+w1deL/vVr0rcza307OvbcCoOmkWNFnWnHFPWdsw8eP+kNCSeda34ndIRnYkQn0mbrPmaKOt2oiv5rSNqHMHQqgMzH/v4SaQCtKZAJDGwW7lchvnUK71APbwBsBoKGxDYaTra7/Ae7IKV57urcCAAAAAElFTkSuQmCC") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-ptzActive{background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-ptzActive:hover{background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-performance{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABWRJREFUaEPtmX+IVFUUx7/nTctgP6Q2M4MKFUyyqOaet6ytsVm0RUFZWZtbEERUEkUkipV/aFAQpRVoP6kIijRFMwjMfpCmbsu+d99su2tGm/SLoqKsltB1Z+edOMt78XZznR87Ywzs/Wdm3rv33e/n/LpnZgg1PqjG9WMC4P/24IQHYg9Ya18CcDeAe5j55WPlmYp4oLe398TBwcH9IjIVwJPMvLymALLZ7IIwDLeqaCJ6xRhzV00BWGvXArgvEr2FmRfWGsAXAM6NRO9k5vk1A+D7/iVEtCshuIeZL6gZAGvtSgCrAOwGoDA/GmPOrCWAnQCawzB81HGclSIy4LrupJoAsNZq3Gv869AkXqdvmLki5bkYI4xrI2util4rIt8Q0UMA3tZNReQ013V/K0bAeOeMF2AzgBu19ovIegAfR4LmMPO+8YorZn3ZAHv27JmaTqf3EVE9EbWFYbiXiLqjTZuZOVmZitFS1pyyATzPa3Mc5y0AA0R0dhiGxxHRT5GKhcy8pSxFJS4qCqCnp+f0XC53qjEmTlhYa1/Uxg3ANma+pq+vL93f3z8Q7T9mQ2etZWa2Jeocc3pBgCAIrhORd4loL4BWhRARJwgChZktIstc112tO1hrJeqHHjbGPDF6V8/zVmmp1ZLb0NCgZ8e4x1EBPM9rcRxHm7Tjo+qy1HXdNUEQXCEiH+o1x3EymUymKwI4CEDPgNXMvGy0OmvtZwDmEtEBIpqbyWT6xkswJoDnefMi8VMSmww3atbaxwCsIKIuY0wmvm+t/R7AWQBeY+Y7k+KCIHBFxEtcW8fM91cFwPO8DBFp2KgYHQ8CeIaIfjHGTPN9fzcRzdNrzLwkAaCxbQBsZeYbkuKstSsAKLiG2bDhhoaGLmpsbPx8PBAjPKAxGsXwIiKaHYVNaxiGfalUKquf8/l8Jn4P4Fpmfi8W4Pv+diK6EsAuZm4eBaBlVXulV0VkAYApRLTeGHNrPC/evxBQMn9GAMRJGD9ARFpd190UxfcfAE6OvQHg18OHD09vamo6lPDAmwBu04Q3xpwfXw+C4EIRGc6TVCrVmM/nFeCR6P7FzNxhrf0KwKxC4olohzHmsnjeCIAgCD6Jb4Rh+HwsPgJ4B8D1Gh76SkQbjDFtyQ1933+WiB4QkZ9d1z0jAbBcRLQqDTFzXUdHx+S6urofAEwGsN1xnDVhGH4QeX9HIYgxAY62MAiCJSKyBsCfkSf+U+sTcT7IzOmEZ1TUpQA2MXNrZJCnACyN5rQDaALwHTNPLwSQvF/wHIgnd3Z2NqdSKW2d4zGLmb9OPiwIgsUi8oJeizvSrq6u8/L5fG9k3RZjzEcJzwyIyL+gAEo+wYsGaG9vn5ROp7VV0Dz4lJnVoiOGtfYWABuSAL7vLyUitfYIr0Re0Or2dPSQg8x8QinWHzZKKQustRsB3DzWSZrNZlviWI5bamutdqiXH6m0RhDDp3c51i8ZQBd4nje/oaHhiIk26rCaE4Zh6DjOl4UEZrPZ6ZlM5ttSjBnPLckDhTbo7u6emcvl9kfz9BxgPewAHGLm4Xak0qPSAKfkcrkDscVFZDERtQDYzMw3VVp8WSFUSETiMNRWW38v1XEHM79eaG059yvqARXg+34/EZ2kzR6AxwH8zcz6uSqj4gDWWs2BmUS0TUSuBrCRmbW8VmVUA6ATQENCbdXCp1o58D6AqyKAv+rr66fNmDEj/qpZcS9UwwP688qiYeuMapcrrr7Uk7gYAdba5wDcGwHcbox5o5h15c6phgfir5sHcrncOY2Njb+XK66YddUA0PjXPDgm/5VVHKAYq1VyzgRAJa1ZzrMmPFCO1Sq5puY98A+NFCdPMfR+nQAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-performance:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABGRJREFUaEPtmXvI3XMcx19vkVxzN4WWGhlhRq7NyIhymTG3UpJLItGW2x+sKLGZMtdGioytDaXmmg0hkrnLJbcIuadNkrfeT9/f+j3H8+yc85znN516Pv+cc37n+/t+36/v5/L9nN8RfW7qc/2MAfzfHhzzQOUB2/cAFwAXSrp3fXlmVDxge3PgM2AH4GZJV/YbwEnA40X0Qknn9xvA7cAlRfQySTP6DeADYM8ieqWkqX0DYPtw4KWa4Hcl7dNPANcB1wMvA4H5RtLO/QSwEpgCzAEC86ekTfoCwHbiPvEfSxIvyBtJo1KeO9mEnhayHdGpQJ8DVwGPlkW3l/RjJwJ6HdMrwFLgFGAhsAh4vgiaKOnDXsV1cv+IAWzn1I3IbYAzgfeBd8qiUyTVK1MnWkY0pheAiH44SQvsCmwIfFtUzJC0bESKurypIwDbOwLbSqoSFtt3p3EDlks63vbGBSYShm3obE+W9GaXOocd3hbA9onAEyVEZgbC9gal+uwBzJY0NyvYdlnpakk3ta5qO+dFSu0cSXnfs60TwPa00qRtWlaaJWme7aOBZ8u1SZJWFYDVQM6AuZJmDwHwKnAw8HNeJX3SK8GwALYPK+K3qy0y0KjZvgG4FlglaVL1ve2vgF2A+yWdVxdn+wDgjdq1BZIubQTAdkQlbCImdjkwH/he0jjbaRsCOF/SFTWAxPb+AZc0vQUgwAFPmFUbt5+kt3uBGOSBEqOZ7wwg8R2bCcTVb1UhU3t/gqQnawBPA8ekuZOU9mKt2U5ZTa90H5DfD/HsIkln1e7vKC/q+dMKUCVhNWeSdkmJ71+ArWre+AEYL2lNTcBDwNlJeEl7167vm3Arnw8qANeUz4dIes32x8CEDryxQtKR1bhWgBdqE9xZiS8AjwEnl7zI6yOSchbUd/k24DLgO0k71QDyEzNV6W9JG9neEvgayGu8Ng94poxf0Q5iWIB13Wg7sZ6Ffi2e+E+tt13F+V+Sci4MmO2IOgJYIikhmWu3ALPKkFeAQ4EvJY1vB1D/vu05UBORmE7rXNkESZ+2eOAi4K5cqzpS23sB75Vx0yQ9V5szp/haUKDrE7wbgNT3tArJgxclZUcHme3TE1otANnl7PYgrxQvpLrdWiZZLWmzbnZ/YJ1ubrC9GDhtuJO0HHxVLA+01LbToR41VGktEFXh6Hr3uwYoC06VNGSitRxWE4F/gI/KJg0r0Haq2RfdbGY1tisPtFvA9m7lAVeGJmcmlwNwjaSqHWk3TVffjzbA1qXPiYg8G0pSp59aKunUrpR1OHhUAVpiOq12npfGzpX0QIeauhrWBMDvwBal2bsR+ENSPjdiTQDkIW9yYTlwHLBYUsprI9YEwOvAgTW1jYXPiMpou220/RRwbBn3GzBOUk7cRqwJD+TxStrx2KB2uQmCJgDuAC4uYs+R9GATwqs5mwCofm7md+/ukn7qN4DEf/JgvfxXNuoeaHK3h5p7DGB973jremMeGPNAjzvwL2DsnUCOKLhRAAAAAElFTkSuQmCC") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-performanceActive{background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-performanceActive:hover{background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-face{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAA8lJREFUaEPtWU1oXUUU/s68F4TuFERcWCtSlCourCCBpJlzXxSUuGyQQKFWUHSniAiC2o2lqAgt+G8KYhe2uFHQRXwzk5utQhvBHyw1oO4KXUgW8nLnyMALPGPuncm79zW0vNnOOXO+73znzpmZS7jOB13n+DEmsNsKjhUYK1AzAzd+CXW73TeqkqSU+oSZ/6yTSGutrvJnZlc2X6lAAK+Uej0CjqsCxIjVjZFKgMuA1AEf1gzZ996XKtBPYGmSkgnUBRpTYrv5fmlZAGMCO6pz59wjInIfgHsB3ENEq0VR/KKU+o2Zv0tVY1cUcM69LCInS3cNokWt9dMpJK45AWvt7wD2ich57/3pVqv1BzOvLS0t7W2323tF5G0iehjAFWa+NUbimhJwzn0lIk8AOMnMr5SBc859KiLHvPfHO51OZY+pTWBzi0sINAfgawBdZp5NyOw3AB4jokNa65Uq+36fKG2WjRwljDEfEdFkf7u7EiNgjDlIRN+LyJksy47F7KvmGyHgnPvJe38hy7KFVDDGmItEtIeZ96f6bGdXm0C3271TKbUG4B1mfikVjLX2DICj7Xb77unp6cupflvtahNYXl6+y3t/mXawPQYQzrnPROQIgP3MfGnXCPTPM2H7/IeZQ+NKGtbaAPomZr4jyaHEqLYCYV1jzFkiWlBKHZiZmfk5Bshaez+AH0O/yLJsPmY/8o/YGLNARGdTARljzhHRYQBHmPnzXSfQL6PQvE7ESAyAr2x4qaQaKaHNYM65D0XkmfCNAjgOYC0cJfI8P9Dr9eZbrdakiDwK4AdmfigV5MhLKAQIIIuiWAQQzjqxcYmITmmtT8cMY/ONKOCcO+y9/4CIbgFwVUQ+VkpdEJGDAELXXRWR1bBTEdELIvJgH9gXzPxkDORIFQjgReRcCBJ6QVEUr3U6nb+qgg7eg4noXa31i8OSqKVAnucPFEVxsQ/+Ta31q6lArLVHAYRuHIg/r7V+P9V30K6SgLV2HwA9MTHx5dTU1N9bA1hr3wIQjg/fMvPjOwUwoN6v6+vrk3Nzc1cH18jz/PZer/ds1dPN0Jf6lZWVmzc2NkLTuq0oikOzs7OVx+IycsaYRSJ6arv7Qe37wECt/u9OvJm92L4fU2VABReCDNqPlIAx5j0ieo6I5rXW52NAq+attRLmmfk/FTFSAnUAp/qOCVR9A6lZrGPXqAJlQJp4coy8TjfytFiVyB292m1daKSv0yHYqP8PJLxOCzOHk+22o9ZRok59N+U7JtBUJoddZ6zAsJlrym+sQFOZHHadfwF5DxJPm75v8wAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-face:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAx1JREFUaEPtmUuoTVEYx3//kTKjJAOvdKNLBiiZyC0UMSQp5VHEjCSlPCYkpChv95YYIBOKCVGmlEd5RCjMlIGR0V9fbTr3Onvvdffex0Xnqz3aa539f3xrfd9aR/zjoX8cP10CI+1g14GuAzUV+P9TyPb+EpEuSPpUR0jbi4rmS3qQ977QgQz8vhJwfUUfKCNW9xupBPpyFShQpwx8vM/UL3IgBMwVKZlAHZVTiLQbk5G73yVQpECOckuAmcAMYDrwDHgFvJF0N9WREXHA9i7gcAHIfkmbUkj8cQK23wNTgOvASeCjpA+2JwHxHAXmA18kjSsj8UcJ2L4JrAz1Je3OA2f7IrAROCCpsMY0QSC2t0UJH1oB3ALuSVqcoOxtYBmwUNLDovFZncgtlo20ErbPAQuyxf4lgcBc4BEwICncqBxNEXgBPJG0NhWJ7afAaEk9qXPajatNwPZk4ANwTNLOVDC2B4D1wDRJ71LnDR3XBIGpQABI3h6zFuISsA7okfR2xAhkYGL7/C4pCldS2A7QoyRNTJqQM6i2AxmBK0Dkf6+kl2WAbM8Cnke9kLS6bHzR+6YIBPggkQTI9jVgVaSQpMsjTiBzIYrXoTISLeALC14qqUYc+Pkx22eBzUCcoA7E7pS1Er1ApErUiqXAY0nzUkF2PIUyBwJkf9brlGGLBXxCUvRLtaIRB2xHPp8BxgJfgfNR2ICouPFEOx3Pd2A7MCdDfVXSmjoMahPIwMeijAgH9kr6XARqyDn4uKQdVUnUImB7NhAtQcRBSXtSgdiOKhzVOGKbpNOpc1vHlZ2Jo7ePjvSGpG9DP2D7CBDtwx1Jy4cLoMW917HAJUX6/QrbE4AtQLVutMXq324FbI8BomiNT2mL88jZjrTb0O580MR5IA4cba81WtRLKl4FBGIDiDX0QNKg65tOEzgFbI39XVIcISuHbcdkSYNSuqMEKqMdxsQugaJFPAwhKw9t1IE8FE1cOZbcTjdytVik4t97Ox2oO/3/QMLttCVFZ9s2arUSlZO7wYldAg2KWemnug5Ukq3BSV0HGhSz0k/9AN8KmkDYgiFSAAAAAElFTkSuQmCC") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-faceActive{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAA+1JREFUaEPtWV1oXEUU/s69/oAvzd6tiA/WajPZWEsfTEHyUlpQQdHHBgkU2oqWncUHRWpBaJsXpagUmmY28ScBsQ9afFHQF8WCrxbaCk27dxsj6pPZuS0VITY7R2bbYFKzc+92dhMqe9+WOWfO951zZs6Zs4Q7/KM7HD+6BNY6gt0IdCPg6YH/fwpFY5eOOJ10T/CRfln85uPIntF4h0v/yqvidLN1ZwQa4Ck47Nrc1LHTZSCNmK+NTAQsyGZAfMDbPa33g8A0jwAFh11OykzAF2haJFZab5AL8X2XQKt5Ho1Xnoahx8HUz8QFYj7PAV0MOIhrctO3WaOxJhHIlasHiPloU5CMSV0SL2UhseoEIlX9GeCNAE4xzCiT+fVK8bHZ3MTlDVjABkL9PRA9CWBOS3F/GolVJZBX8ZcMvEDA0ZoUB5uBi8bij0HYBzYjulRw1hhvAotXXJqhXPny88TmKxB9p4u9T6V5NlLx1wCeZYTbE/noDy75Rp1wFMu2tBJROf4AjMHrodl5bX9hLo3AelUdMOAfAUxpKfalybvW20NAxRfAfFaX+oazgolU5RyD7kukEFl1VpLzJtBz4sLDQXD3LBjv65J4IyuYqFydAvOeOsymq7Iwk1XvVjlvAutGLz4ShuEMWrgeLYicij8hYHfIJP4o9VbXjIA1fOP6NPNa9vVnBZJXcZUZ9+qSeCirTkdSyG6aV5WTDBom5s21Ut90GqBcubqFmH+y9UJLMZQm3/FDnFOVYQKdzAooUvHnAHYxsDuR4tM1J9DI6XJ8kBjvpJFYBJ9W8LKS8j7ESw1FqjIB0CsMnOY6RnDXwqxtJaLxeDPqZggUDAJ4hoEziRTbsoLseAo1DrIFaTAJwPY6zo+BagA6XpO9o2myaettiUCk4l0AjwMUAUiI+UOD8CzBDDBhwLbTAJ1nwjwIrxHjiZvAPtNSvJgGsqMRuAEe9lAChEmCOVQrFn53GV32DiYc00Xx+u2S8IpATs1sJdTPWeMMvJ1I8VZWIPmxyh4mmmroEmRSFOWsukvlnAR6ytMbQxPuoD/NF3Nv9l+71UCkKu8CZNuHb7QUz7UK4N/o0aU6/hq8KrcmS/dYPzH7oFmY33/b3ehiqFd6Uq5Tv+RC/nsahAcYZnsiC862uBm5SMX24O9d6X3g/R5wEViS+17VdHEfe/UmUiwb33SUQF7FioEigCEtxalW02d5/YjZ/tZSLEvpjhLwAZxVt0vAdQayetFHrq0RaAakHSNH13S6LaNFlxdbndr9p5Z4TsBTK3Gn/x9InU4HAeuiGGnmxFQCPjm8GrpdAqvh5Y62010Cnh7ongFPB3qr/wPHMTZPXfm7BQAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-faceActive:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAA/pJREFUaEPtWVtoHFUY/v6zWQVf1DonpYJtRYqlig9G1N1JSgMqKPrYIIFCraDom1Ik2J0kuzNe6gXBgncTEPtgiy8K+qIY2Z21DxXaCl6w1ID3zDQVBCVmd345m0a2YXfOyc5sQmX39fz/+b/LmXP5l3CR/+gix48egfV2sOdAz4GECvz/l1Ch/PtknEiZbN9bxduv+imJkIVysCsu3xuSM+3GYx1Q4EmIibjJOcJwXAEdsaQ1jAgokO2AJAGv5lxSP2rrgBIwTiRjAkmB6pxoNa7IkcBnPQKrXefjlbN3MqIbCNjOAteD6RQD30Lgey9nfWLqxro44PjhEwAfbA+SplzbetCExJoTcPzwB4C3MuMogQ+JTP3HYm7T7ER5fnMNtc2C6AUQbgMQuraUOhJrSsCpBh+AcR+BD5bs/rF24Bw/fBvgfRxFRW9oY+wZkwKBpS1OW6ga3EuMD0H0qZu37tAp61SDj8C4G5zZ6Q5uKMfFq3Mi7rBM5SpR8IM3AM71/VMbnhy+OtQSKAcDEDjOoGnPtvbp4uPGUyHgVMOvmfmEZ8tRUzCFytxJIrrMteU205xWcYkJHPB/2SKQnSXgxZIt95uCcfxwGuC9Ipu9rnjrFWdM81bGJSZQ+Py3a6kvcwYw3x4ViHE/fIfBewRdsq2Yv/z0uhFQhc9vnwuuLbebAnH8QIG+1LXlNaY5XVlCDQKV4DAIoyxoh5ezvtEBmvTnb6yj/pU6L7xBOaKLX4OPOBgF47ApoEIlOEKE3QDtcW3r3XUn0HChGo6B+RkdiWXwugPPlFTij7i5kOMHrwN4CIQZrqOY6avNNq4Sx87uqC/WRkhkcgDfBeBL15a3mILs+hJSBRTIKOIpMKu7jubHpwni5ZJtHdJF6sZTcWC8OrebmV4DsIGBcwS8SYQTYAwwYaBxneboFJFYIOLHmHGzAsbAe54t79eB7KoD58EfaRQhmoqA8afy1s9xRZvfwUR4qZSXj3dKIpEDE8fmb4rq9ZNLxelp17YOmAJx/Lm9AE03MkGPlmzrVdPc5rhYAhNf/Lo1ijK7Fpjef25Q/rmygFMJngdhPwgfu3l5z2oBNLn33WL0V+7ZoS3nmud48niwSfwdPdzxbXTZ6lZPyrHyH1dmxaI6tDaCeac72B97LW5HruDPTRHogVbvgxTeA0t9oVYEltXT7fs6V/5zgTDj5uUF7ZvuEvCDVxh4hIhHSvn+ozqgceOOH7Aad215wZLuKoEkgE1zewTiPmJTFZPEpepAOyBptBzjutOptBbjVFxt127lXF3tTqti3f5/QNedhhDs2bLYTsREV4kk6zut3B6BtJTsdJ6eA50ql1Zez4G0lOx0nn8BCGZET2pBy4cAAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-zoom{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABZ5JREFUaEPVmW2IVFUYx//PvRMbUQiuW1IShZFCoIhQsjAz5xxnWtEMhFpCSbPIsqDUoojALEPSMsNASwshA2mlV2yhxplzFVn8UAbRi/pBWSlc24wsZAt2zhNnmbvcnZ2X+7Lubgcud9l5Xv6/+9xz7nPPJfwPRk9Pz9T29vY/akmlya6/WCxuchxnBTOvU0p9Wa130gNorWcD2AdgARFtEELsCEJMegArtqury21ra/sQwAMA3pFSrvUhRgForWdIKX+ZjLdWqVTaSkTPEdEx13VXpNPpcyMAPM9by8y7AEgppTdREMVicSaAma7r3gZgljFmFhHdDuBWX5Mx5uWFCxduGgGgtT5JRKeFEPdeafG20sw8JNQeRGTPQ0KZ+Zqq/AzgDBH1GmNaiWiuf5GHASqz/SUAS6WUh64EgOd59zPz0xXR06ty/A7gbEXoGWY+Z4zpZebecrnc29HRcdnzvKXM/IV/9a3/MIDneXadPSmEaA8G7u7ubmlpaZlGRNMADJ8rf7fasz0cx1mXyWR+agReLBbvdhxnPRFZgfY467ru2YGBgd5FixbVXOf9eFprC9wNYFBKeeeISay1fg/AIwA0Ef1tjLFCfXH2XHMw818A+ojoguu6jzcDSFLVUqm0h4gerZ6fQxXQWvcBuCGQ4IIVBuA8EZ03xvQ5jtPHzL+Vy2X729CRy+UuJhEVxVdrzUS0QwixYdRz4PDhw3Nc17VPuRkA0lLKY1GCj4ft0aNH2zKZTH/dJ7HWegGATwFMdxynI5vNfn2lhVUm9RMArjPGHLLLYtScI5bRI0eOKGPM5wCuZeb7lFIfRw0Y1r4iviton0qlZqXT6dNhY4xYhXwnf6kC8JmUcpn//2KxeJMxpiWfz5+JkqCWbS3x1s513etr3SaN8tXshWq1E1rrHwDcAeCjgYGBVYsXL/43Dkg98cz8ilLKPocijdDNnF0FApFfkFK+FikTgAbityilXowar+YtVC9IEICZTyil5kdJWE88EW0TQjwfJdaoZTSMc1UFLvX397d2dnaWw/g2EP+mEOKZMDHq2cS9hcDMs5VSp5olbyB+pxDC9kWJRmwAx3GWZLNZ25vUHQ3E7xJCPJlIecU5NoDtKpVSO+uJaDBh9yql1li/QqFwcz6fP5cEJDYAEdW9BRqI36eUeti2LqlU6lVmtu3xbqWUfRrHGrEBmLlbKbWkOmsD8fuVUisrLct+APZtyx/rpZRvxSGIDQDglJTS7hgMjwbiDyillttWhZn3M/ONQb9yuTw3l8t9P94A5cHBwdZ8Pn/JJm4g/qBSqlNrfQ8Au7MwJSiUmTcrpTbGEW99klTA9i7zM5nMiXriK6J+JKJ3mXk7gKuqhG6XUj4bV3xiALtHY18LiWhrVBFEtFsIEXvy+vkSVSCqaN+emT9QSq2ylQPwIID5zNwlpVwfNea4AzDz0Jyoc9tF3o8adwAA/pwY9RAcs/eBWmWsauaiVrqpPRFtEUJEbqknogKjYIhojxDisaaUNQwmHMCfE1ZbnN5owgGscAvhOM7VcXqj0AClUukiEU2NU+YYPqF7o9AAWuvjAO6KISayCxEtF0IcCOMYBcD2MSvCBE1iQ0QbhRCbw8YIDRDYfg8bO7Kd/foihHg9imNoABtUa/0JgOHNriiJmtkS0VNCiLeb2VX/HgnAfvpxHOerygeKqLnq2hPRGiHE3jgBIwHYBJ7nLWNmW4kxGUS0Ughh39BijcgAFQj7qWjExmyM7JeJaLUQ4mAM32GXWABJIZj5V2PM6lwuV0gi3vrGBghAbANwSwQh3wFYI6X8JoJP/fmTNIjW2oq3u8oPNYn1J4A3ANjXyH+S5vX9E1UgKEJrbQEEEc1j5jmB3+wH828dx3k/m83+PFbCxxwgKKxQKExJpVLzABwfy6tdC/4/XM+7T0JWDwMAAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-zoom:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABH1JREFUaEPVmVuIVlUUx/8/IowoArtSEUWRQpCEUBEE1UM9mEFQEUbahSwLMi2MCMwyoiwzDMy0EDKQkq6YUD3UQw8+pEF0UR8KpSi70QWhoFjxn/YZvjlzvjNnn/NN87ngMMPMXnv//nudvfba+6BDwCJiOvBLFSrDzh8RKyTdIOke4J0y76EgYKakTZIulLQUWNMrYugFGDYiDpP0sqTrJa0HFhUixgmIiFOBb4bx1YqIJyQtk/SRXytg/xgBEWFl6yRdCnw4VSIi4kxJfs6SNCM9Z0s6o4fpYWBFWcBuSXuBqyYb3pFOkAWsfxrWoEeWxg9JX0naJ+lYSbOKSR4VkFb7Q5LmAtsmQ0BEXCtpcQI/qTTGT5K+TqCG3Z+ADb0POBgRcyW9LWlk9u3fK8B5djdwUW/HETFN0nF9Hs9G8T+nuS/qhEfE5ZKW9EAa2I8BK/N80V9EWPB2SX8D549ZxBHxgqRbJX0g6Y8EVcD5Zz/7XdL3kg5IumMiAV2iGhEbJN1WXp8jEYgIQ5zYM4CB/Lfv0uPf/fyQYP3/A8DPXaByfCPC62ANsHTcPhAR50ryLueFdTHgNDVUFhHHAz/23YkjwjvdG5L8rl0BvDfZCtKivlPS0ZK2FQszZ9xyGr1M0luSjpJ0DfBaTmc5bRP8qyWfGcDenH6qduIiVb0JXN2TBU6RNA1wiutkfeDd5wlVr0ndYJW1UFU5ERGfSTpH0iuSFgB/tVFRA/8I4H0oyxoXcykLFJ0/ADyeNdJ/2c4bWfm1cTePAQ/m9uf2bQXsAmbnDFgDvwq4P6evcWm0iXMpAr+5JgH+aejbb+afBu5t0ke/Nm0j4P5mAnsmGrxm5tcCros6WRcBcwDXJn2tBn4dcFcn8uTcRcBiYG0/iBr4jcBC+0XEaT6UdBHSRUDfV6AGfhNwSypdHnXpLuk5wLtxK+siYDswpzxqDfxmYH4qWTan01bhvgR4po2CLgL2AL4xGLUa+C3AvIhwqWL4k0uws4BP/28BTqFOpU6pdZvUVuC6iLgy3SwcUwJdCSxvA2+fLhGw/2xgV83Mu83nkp6XtFrS4SXQ1cB9beEHIWB9OhL6uiPXOi3eYrCuEciFLtq/BCxIkbvRkXSNBPi8nGVTIaBYE1XlRfZ91FQIKNZE1SY4mPNAVQxLxVxWmBs2blVST0UEqvRsAG5vKHRMs2EQMLIm0l6SXRsNgwCzb5V0RJvaKEeAL7GmtwlzC5/GtVGOgB2SLmgB08ZlHrCliWOOAH8h8beqybblwMqmg+QI8HV29rVHU5DUbhnwZI5PYwEpS7wuafSyK2egBm3vBp5t0K5dGk0C/BXl3fSBInesuvYLgY1tOsyKQBLhCDgSg7L5gA85rSxbQBLR754nB+KgpJsB7wGtrZWAAYj4NsG/35o8ObYW0CNilaTTM0A+keR3/uMMn75NOwlIIgzv9HrTBEC/SnrKR0vgz0HAu4/OAgqQiLCASySdJ8mfrArzB/Odkl4EvhwUeNHPwAT0gkWEbx4sZMcgZ7tK/L/0u8tAh/gBxwAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-zoomStop{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABC5JREFUaEPVmVvIZ1MYh59fSskFF8bxhhxKo+FGcyGFG7mZDBmZ0Mw4XDhlUmqSGOZiChFTyiFEhpliNBNRmAunuJBxmowy5VgiZ0W8eqe1p2X7773ftff6fKza7f/3rXe97+/Z67yW+J8nzYd+M3sP2CFp+dT4kwDM7GbgI0mPR4WY2d3A1cAqSQ9Fy3XZjQYws2OAXcnxGknrh8SY2VnAs8BmScuG7CP5owHcuZktBh4ATgDulXRFX1Az+w74EVgi6e3c1sz2AQ4BDk1P8zt/r5W0PS83CSBB7A/cD1wAbANWSPqmDWJmLwJnAM8AOzOxLrB5HKJJvwKftZ4XqgMkiMOBtcClwFfAIklft76wZX97LbTFfZ7/b9ZHmFW74Rows4OBY7PH+4A/RwMHtJwvlbSlBXBJam5bJC2NtO+IzUwAM/MO1ohr3ke0HP4OvAt8mDrzx8Bj3pwkXT4ruJmdB2ya006chsabWm1xRxLrbxe6S5K/9yYzWwfcAJwq6ZWur1cb4h81YGaHAWf7RONfV9K3kao0M7d7S9KZQ/YZxGpJdw3Z9+WH+8DA8Hg+8IR3YkkPRgSZ2ZFuJ2l3xL7LphbAy8BRPh9I+qlUkJldBVwPvArcKumDqI9aACuA3e0xOiJiRp/bLun0SNk9NRg1nAu7GeI9zMOSVkbjFQGkduvV/CnwnCSfvEalDvHua5mkzVGnpQC++myG2J99UpP0ZTRYY1dLfHETmhF4uaSNJQA1xdcAuEVSPun1stQWXwNgkySfAwbTXIivAeDbwhOH1M+V+BoAvwELJP3QBTEk3swWAPtK8uV0cZoyCjXBFkt6c1bkgPh8VNs4ZpNfA8B3YI+0AQrFN8UXliwjajQh97Fe0pocYKT4rZKWlLahGjXwtx1Wj/hrJN3Tke97i3Ml+RK+KNUA2CnpeI/aI96zm2VHe974Iol/o0h5Mq4B4K58C7owW2ZEtXwPnCPpJTPbs2UtHY1qAUQF53a+p3bx28zMN0PNhFg0Gs0nQNMnNgBX5mSSwrrChoE2XloLXX2iaDSaT4Au4H9tP1D6xSP2ReJrTWQRYRGbveLNbD9JfjY6mP5LTSjvE78At0nytVJvKgVYBYTOfYYCR/Ijo1EpwCLgnUjwCjavSTplyE8RQBpK/dj8oCHHE/O9/V8o6akhP2MAnk5np0O+x+b72sjF+2nfYBoDcBLgzg8c9F5u8D5wUfv6qc9NMUBqRtcCd5br6y3hR/IXS/qkxO8ogATxZFqFlsTrst2a7tZCR/m5k9EACeI+4LKJBI8CKyX9McbPJIAEcTtw3ZjgwAZJfuk9Ok0GSBD56UJUzDpJN0aNu+yqACSI09KOzN99yW/q7/Bd2FTxXr4aQCPGzHzPe3J6/GrWk98Jvw48H72CisJVB8gDm9lxwJ/tG82ouIjdX/SjzEC2QOtuAAAAAElFTkSuQmCC") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-zoomStop:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABXBJREFUaEPVmVtsFFUYx//fLIUYTexuC1svJGjnFAkN+kJ4MCboi/GFcIklEjQFi7ozlHhJTIgxgPJA4jXAzgbBeI0gJIqBQDRReAA1+kAsaktnFRIWJIGdLRQktJ35zPSi2+3uzjk7g+i87Z7/+b7/71znzCH8zx+6Ef4Tlv0zmLscs2VZ2PyhABLpE+uZqLdgtHwiayRu9W4mUCfAKx2j5T3ZepV0NQNMTWd1l9j2AzNhbSElNgWZiVvZRwh8AMAexxBtQXqZ8poB/OAN207OY3doB4BWAjJ5QxjVkiYsuw+Mfk/Dgr6UODZOu5tjjf2nk7h6rcmF10QaJQnUxERJMDcxkGQXG/o6xeHieqEA/EDJD8/dPHjl8nYwP0aE/QPuUHv/6ln5UpAGy/6agYeY8IXG6Bk25nETEZK+OYCSAMeK6l0FkGMgB0IOjBy7+CpyAD9h45ae271YbAOADoDODQzxnMtrxPliiIRlc9Hvft/cmDEQ5djzzvi/WeOcO+TlyjVCud6V7oFkJjttYGhIaJomPCJBDJ0BnQjNAG4tDu65tKivU987DiBtPwnCDgb2FgyxSGZ8y2jKAiQydhuxpzNrvjkdIybvKAk4yITjmodu1uA3b5YYH4Nou5PSnyqXPGHZjwLYfV0nsb80grR1JWOxC8BxAnV5QHYSwz5v6tlik/F070YieolZe6BgNh+p1HpRQ0zogcZtp25zvcGFAHW5dVO6L3VMd2S6MmHZvu5HxxAPB+mLIJ5zDPF2kL5aufQcqLo8prNLQbwLjA7HFO/KGKrPdM/wdX2pWadk9JU0kQDELfsQAXfF+FrrebP1sqqhhnR2NRO/CPBRaPSq84z4VTZGJAAN6d5216NTpWu0jInSOcfA4YIhHpSp62siAZBNVqors2AARO87KX2FbEwlAH/cajzpKIDTIBx0UsLfvGp6ypofidTmGGKPbFAlgJKkV7RYnbjw9Iw/ZJON6aIyrzyEJoxX5mUFs2WnCkCU5kMDAHjFMUTxpleVJWrz4QEYux1TLJXpgethPjwAqMsx9HuDAK6X+fAAhAEMYqqzRlyqBBFk/pbN9tQpdd7kfGrmmaCGKFceZhUajkcUm5dP3f1DueBB5seVM++s5ZAfHgBee96Y+YHUJlW0zpeF0zBb5TUi/BDye4CxKW+KtcUASi0/WpGAfXlDLFAdRqF7oPSEVck8gdbkDX1LuXL/MAS4SwrGPf65Q+kJDQBGj2OKWX7WKi0PsDfy2jH+sOT/cxbAEscQ3ys5/6fn5KtVGxpgb3YZc0HBLxLR4nxK/6Yhc2L4yKq6GoXvgSCLlcsHmbTFhVTz/oSV3QXwyIaouBrdMICxORG37K0EmMWcjiGkfUkLA8e4ak9UmBOqq9GNA6gM/K+dB1TbXEavZD6SjUzGlaTmb/N3vnn6ptzz0/1vo4HPf2cIjZsT9CfYfc0xZ64PIlADyNgrwZD67hOUWKZcZjVSAohbv88huD/JJI9A861jiPuD4igBDC+llu1/Nm8MChyunK4S0/K82fxZUBxlgLiV/ZzAC4MChyg/qzEtv2Dqh2RiKAPUp3vv04j84PUyCRQ1v3iExydcP1UJogwwOoyeBfCWorkAOR1x6yY9cXHVjJMqcWsCGHmtsD8FIaqbxn2Dk6+1X+polfqUXwxYM8AoxDsgrFJpsVItAx8VGo+tQFubW0ucUACjEK+D8EItyZmxtWCKzlrqjtUJDTACMeFaSsITbXQM/WUJYVVJJAB+hvot9nyKYR0B86tmZD5AmvaGfwoLa96vHxnAmJlExl4HprkAzwUwbfh/Hr4T/g6ML2WvoGThIgcoTty49bcWIvZKbzRlzcno/gK3l1tPCk17NAAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-close{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAA2FJREFUaEPtmdtqE1EUhvdKOq0gDSiCQkEoCAW1DcyBhgpCQJAKKYI4eQJv2oeofQi98gXaWpAKiiBEBEvSOdBpoyAIguKFIAoBwWQOW1aZKZuQSeawJ00hczfJPnz/+tearNkBcsYvOOP8ZCzgtB0cOzB2IGUEBqaQpmmPcY98Pr8liuKnlPtFmm6a5nVK6RoAfHddt64oyruwiX0FmKa5TCl9hZMB4CMhRM1aBMITQrYopTdwX0rpM1mWH6UWMAwR3fA+9FNJktYSCcBJhmFsEUIeBgtk5UQIfBMAqv1cH1gDwxARAm95nldVFOVzv8KJJCBLESHwJiGkKknSl0FVH1lAFiJC4DXHcaqLi4tfB8Ef12WUQewYXjURAl+nlFZlWf4WlSu2AB5O9IKnlH7odDrVpaWlH1HhEzkQLJ7UiZDIv5+cnFTn5+d/xoFPJSCJEyHwNUqpKsvyr7jwqQXEEREC/1YQBHVhYeFPEnguAqKICIF/Y9u2WiqVWknhuQnoJ8KHO+lt8B77K4x8sVj8mwaeq4A+IhD4uDHzr5etVkstl8v/0sJzF9BLBAtJKX2BHa0syzYP+EwE9BGxs7u7q25sbHi84DMRsL6+nltZWcEO9kEX6OgL0HVdwJcRALjfK8ojnUK1Wu1coVDAyFcY+G1CSK7LjdErYsuyzruui4/Keyy8JEkqplSlUtlhXRmpx2i9Xi8IgoCRv9sNH9xjagHATpc7p/9Ddnh4eMG2bYS/EwYffI4pNj09jU6wLp1eK6Hr+iUAQPjyIPjge0w1x3HQCdat4Tdz+/v7V/L5/CYh5HZU+GCcn3IognVteO30wcHBjOd5m5TSW3Hhg/F+6qGIE/eG8kKj6/pVAMDIl5LCM4WNKYgiWBeze6W0LGvWdV2MvJIWPph/dHR0ud1uY2GzbvJ/qTcM4xohBCMv8oIP1tnb25uZmpp63uUqv2MVy7LmHMdB+CJveCadMDVRBOtu+oMt/5QY4W9mBR+s22g0ZicmJlAE63K6o0XDMJ4QQlazhg/W91MVRbBuJz/c1XV9FQBQBF7b2Nvw7OV7raVp2lwul0MRx66nOl5vNpsX2+32MgD8FkXxddbwwfrc/uAYFnCafRIdLabZkPfcsQDeEY273tiBuBHjPf7MO/Af3d0KT6EhkZgAAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-close:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAApxJREFUaEPtmV2nVVEUht8REREnUUREREVEREREioh0+gXd1J/oT9RVf6BziogSUSIOEVEREeVcRIqIiN68jM1w7Lm+5pz7g7Wu9tdc83nmO9beY81tWPLDlpwfo8C8ExwTGBPIXIHWEiJ5y+dYM7MPmfN1Gk7yCICbAL4C2DCzF6mBjQIkLwB47IPfA1itLeHwawCO+rx3zex6CQGdo6rEFHjNecfMlMbUo0sJaTWuhtFVJBLw7wBca0q9VUDgJKtKJODfOvzHpgunk0BNiQT8G4f/1HbVdxaoIZGAf+3wn9vg9X4vgZISCfgNh//SBX6QQAmJBPwrh9/sCj9YIEciAf/Sf2O+9YHPEhgikYB/7vDf+8JnC/SRSMA/c/ifQ+CLCHSRSMA/dfhfQ+GLCTRJOFzsbfSS+iv1Vb9z4IsKNEjorUljpsePHP5PLnxxgYRE5Hzo8H9LwFcRaJB44PD/SsFXESC5DYBq/soW0MUXILnd4S8nVnlxS4jkDoe/FODXASiRmMbiXcQkdzr8xQhvZqteUiqfmMrifI2S3OXw57fCT557aUkipjP/HzKSKw5/LgUfJFRikogpza+VILnH4c+2wQcJlZokYlqzb+ZI7gNwD8CZrvBBQiUniZja7Nppkvsd/nRf+CCh0pNETK/+DQ3JAw5/aih8kFAJSiKmWO+WkuRBhz+ZCx8k9rpETLP8TT3JQw5/ohR8kFBJ3gcQUy23rULysMMfLw0fJFSakojp5m9s+Z2Uvm2O1YIPEipRScSU87YWSd4GcKM2fJBQqUoipj18c5ek4CWhY129Tcleftq5vGQlMUk9a3t9NwD9R/DDzJ7Uhg9JlPmDY1bAOfP03hvNmazG2FGgxqr2OeeYQJ/VqvHZpU/gPw7jX0B+RCgyAAAAAElFTkSuQmCC") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-narrow{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABNlJREFUaEPtmWmolVUUhp+XaJ5LpKQif0RkQpNE4B8bKKJBtEGlogFEi8AGG6gQ+lEWJZUQhkQWlA0alvWjsoIgApGgICusKKzIBiMaqag3lnzKOefu79v7fOdE90ILLpd7v7Xevd49rLX22mKMi8a4//xP4L9ewb5WwPYc4DZg0hAcfwhYJOnbQbCKCNg+AHgYmDHIYAnb74H5kla1xc0SsD0FWAsc3HaQArslkhYW6I1QaSRg+1Tg1ULgL4FPgfj9J7APcAhwFLB7AcZKSRcV6HWp1BKwfTzwdgbwG+Ax4Hlgg6Q/evVtx8pNBWYB52fwVki6oh8SSQK29wK+APatAXN1mJdK+rl0QNuTgduBmQ02CyUtKcWsI7AOOK0G5D1gjqT43UpszwWWNxhPlrSxBHwEAdvnAatrjN8ETpEUe3wgsT0NeB2SyXSjpFitrKQIfAUclLD8EDha0t9Z1EIF26cDL9eoz5L0TA4qRSD2d0omSvosB9jvd9uLqnPRa7pJ0pE5vFICt0hanANr+932JuCIhP1USW814ZYQ2CppXFvnSuxsn1uF4l71ByVdPSiBOyXdWuLIIDq2P68SXydMdhuVrMCxkt4dxLkSW9sR+69L6B4mKcglJUdgi6RkDWQ7ttVZwH5V6ZBb6Z2BTyS9kFK0PR14LvHtTEkvtSXwmqQRCa0qM6JG2r9kdnt0wpmzJf3V+X/bUTO9n8CbKykq4VYr8LikS3otba8HTmzh/HaTeZK6MnG1opsThd8Nku5tSyBZXNn+DjhwAAIjoovtqLuCQFSxnXKzpLvbElgl6cLECsTsRT3TVqZJeqNnC00AIlHGWemUBZKWtiWwXtJJCQK7ASuAiN+7ArnyIoJFZPivgTskxXWyS6qL04aEo7MlPd2WwC/AeEm/pgBsjwf26IeApN9rsC4HHkl8myKp9l6SC6OB1xjG2u6hxArELPdu1x/jKls3gYFRQiB5DobleODY3hOIwBBbs1PWSYqKtVZKCITxBElRZv8r0lCRXpk6L51OlBJYKyky5dDFdmTyONy79IBHohsn6YdhrEBgXCzpiWEzsB23spMTuMslzcuNl1qBR4FLawyz9XluwM7vtu8DrknYRLcu7sXR9WiUFIG9ga2JhBJAEe8jKr2SA859tx3lwfU1esskXZXDiO91XYloezzbAHCjpHtKBujVsX0osKyqZOsgYgKjXmryYZttU2PrfmBBg5ORNSOrRlMrK1XSmw9ECzFWuURmSlrTpJhrLT5VddSaMKJbETV+3F0/qCJKlA1RYhwee7k6pOc0NMqa8BtJlDR3o+a5rGS6Kp3InkEgirIoM4YhtSSyBGJ02zcBdw3DkwEwkiSKCFQkoip9YMCLTKf/0VONd4Eo4kplhqSua2cxge0j2I4ccS1wTOmoPXo/AZEQF0vabDsKuNpyOTHGdEnxXrFN+ibQQeQMIA5mZNHck1MUahG1IqKskRR/75Dq6WplHxMySVIEjPYEehyIrtrE6ieuhjsBvwFbgI+A6O/EzNeK7dnAk4UkVku6YGgECgfNqtmOR5AI3Tn5WNK2VmTrLZQboe33wjPxjqTjRiWBcKqAxI5XnFG3Ah1BIvZ46n2gq9k2aglUKxEPjdEvPaGqkF+U1JVQRzWBknM05gn8A3BFtUAnWz1iAAAAAElFTkSuQmCC") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-narrow:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABeRJREFUaEPtWW+IVUUUP+eub/9Y7lqJpFTkhyW0B9vunHkI+kErCikVrValogxEi8D+2B8qhD6YRUklhBKRBWWWhql9sKwkWBb0zn3bgzXFig0rcv0TUdbaPu6cGHkrb+/OfXfefSut0Hx58Oac3zm/OXPmnJmLcJEPvMj9h/8J/NcRrCoCvu8vQ8TnAGDGKDi+2fO8tR0dHSdrwXIi0N3dfXl9ff1bALCoFmMW3d8AYBURbU+Lm0ggn8+T1no3AExJa8RBbwMRrXGQGyFSkUA+n79Ja/2FI/AvANDHzOa36HleMzNfBQDTAaDJAWMrEd3tIDdMJJaAUqoDAIIEwBPM/C4A7GpqavKz2exgVF4pNYWZZyHiEgC4sxIeM2+RUj5QDQkrgd7e3kvPnj37MwC0xICxSeaGhoaN2Wz2jKtB3/ezAPA8Ii6uoLOGiDa4YloJBEGwj5lvjgHpZeZlUspeVyNRuSAIVjDzm3H6WutsLpc75II/goDv+3cg4o4Y5S4AuJGIii7glWR835+DiF8BWIvpISIy0UocIwgopX4FgCstmkeEENcjok5EdRRQSt0CAJ/ZxE3OCCE+SoKyEWCbUl1d3bT29vYfkwCrnVdKrTV5YdE7SkTXJeG5EniGiNYngaWdV0odBYDWqL7WelYul+uuhOtC4DQRTUrrnIue7/sLEHFXVJaZ35BSPlwTAWZ+QUr5rIsjtcgopX4CAFP4ykfiNkqMgOd5N3R0dBRqcc5FVyllzv7HLNvomlwuZ8hZRxKB40Rk7YGUUmZb3QYAE03rUDHMiMZOBgB+EELsscn6vr8QET+JziHiPCHE3lQEmPlLKeWIglZqM0yPdJnL6pbLMPPevr6+2zs7O8Py/4MgmM7M31rwVhCR6YSrjwAzvyelvDeqqZQ6AAC5ap0fkkfElUKIYZW4FNFjlsbvCSJ6JS0Ba3OllDoFAFekJWA7XZRSpu8yBJojuE8T0UupCADAdiLqtETArN6KtAS01nNyudzX5fr5fH6q1toUSpMr5WM1EW1MS+AAEc2MKu/fv7+xubl5CzMvAIAGAEhqL0wSmwrfDwDriGhzFLN0cfItSbxUCPFhWgJ/AcBkIvrbBlAoFCZrrceHYViRgOd5qLXmlpaW/tbW1n9sWEEQLGfmty0ESAgRey9JOkYh6RhLu40s29KscnS7/mGusnELaDASCcTlwWg5bnAKhcIlxWLRHAyNEdx9RGQ61tjhQsAoTyUi02ZfkFGhI33Qli/lTjgRQMTdQoiFF8L7np6eiWEYmuSuj+CHdXV1k9rb238fjQiYXLhHCPH+aJNQSplb2dworrlySilXJtmzReAdALjPpujSnycZLJ/3ff9VRHzEonMyk8lk29raTiThjSDQ1dU1obGx8bSloBgsc1zOI6LPk4CT5pVSpj14PEZuExE9lIRhPYXMn0EQLGbmj+MAEPFJIcTLLgaiMgcPHrza87xNpU42DuI0M6+UUsb6MKRY6WHrNQBYXYGEr7VeJ6UccZOy6ZiiVywWVwGAeUKc4ELevB8JIXZWlcSRPbqt9KJWCeMIM+9BxG5mPjxu3Lj+MAw5k8k0DA4OXgsA5nlkLiLOr/BQFoufRCLxcVcptQUA7ndZsZKMqZ6m7zFN2fgq9FKRSCRgUJVSTwHAi6PhTFqMuEg4ESgl9kxmfr2Wi0zE+TPMvB0Rl1dBahERDbt2OhMYMqKUMjXiUQBoq8JwueifAGAK4noiOhYEQSczx7bLURvMvFBKab5XnBtVExhSDILgVq31fEQ0VTTpk9MpRDS9/k5m3klEpnE7P0qfrra6LggizhBCHK6JQLmxnp6e1jAMpzHzNHPSIGIdIg5orY97nvfdwMDA0dmzZ5uVjx2+7y9FxA8cSewgortGjYCj0USxIAiWMPO2REGA74no3FNk6i3kYCSViGNOfENE7WOSgHHKgcT5rzhjLgJlp53Z4yO+D0Qf28YsAUOk9AJo3ksFAJgO+VMiGlZQxzQBlyS66An8C26dYE+zHCOfAAAAAElFTkSuQmCC") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-expand{background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-expand:hover{background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-menu-icon-text,.jessibuca-container .jessibuca-quality-icon-text,.jessibuca-container .jessibuca-scale-icon-text,.jessibuca-container .jessibuca-speed-icon-text{font-size:14px;width:30px;height:20px;line-height:20px;cursor:pointer;text-align:center}.jessibuca-container .jessibuca-speed{font-size:14px;color:#fff}.jessibuca-container .jessibuca-menu-list,.jessibuca-container .jessibuca-quality-menu-list,.jessibuca-container .jessibuca-scale-menu-list,.jessibuca-container .jessibuca-speed-menu-list{position:absolute;left:50%;bottom:100%;visibility:hidden;opacity:0;transform:translateX(-50%);transition:visibility .3s,opacity .3s;background-color:rgba(0,0,0,.5);border-radius:4px;overflow:hidden}.jessibuca-container .jessibuca-menu-list.jessibuca-menu-shown,.jessibuca-container .jessibuca-menu-list.jessibuca-quality-menu-shown,.jessibuca-container .jessibuca-menu-list.jessibuca-scale-menu-shown,.jessibuca-container .jessibuca-menu-list.jessibuca-speed-menu-shown,.jessibuca-container .jessibuca-quality-menu-list.jessibuca-menu-shown,.jessibuca-container .jessibuca-quality-menu-list.jessibuca-quality-menu-shown,.jessibuca-container .jessibuca-quality-menu-list.jessibuca-scale-menu-shown,.jessibuca-container .jessibuca-quality-menu-list.jessibuca-speed-menu-shown,.jessibuca-container .jessibuca-scale-menu-list.jessibuca-menu-shown,.jessibuca-container .jessibuca-scale-menu-list.jessibuca-quality-menu-shown,.jessibuca-container .jessibuca-scale-menu-list.jessibuca-scale-menu-shown,.jessibuca-container .jessibuca-scale-menu-list.jessibuca-speed-menu-shown,.jessibuca-container .jessibuca-speed-menu-list.jessibuca-menu-shown,.jessibuca-container .jessibuca-speed-menu-list.jessibuca-quality-menu-shown,.jessibuca-container .jessibuca-speed-menu-list.jessibuca-scale-menu-shown,.jessibuca-container .jessibuca-speed-menu-list.jessibuca-speed-menu-shown{visibility:visible;opacity:1}.jessibuca-container .icon-title-tips{pointer-events:none;position:absolute;left:50%;bottom:100%;visibility:hidden;opacity:0;transform:translateX(-50%);transition:visibility .3s ease 0s,opacity .3s ease 0s;background-color:rgba(0,0,0,.5);border-radius:4px}.jessibuca-container .icon-title{display:inline-block;padding:5px 10px;font-size:12px;white-space:nowrap;color:#fff}.jessibuca-container .jessibuca-quality-menu{padding:8px 0}.jessibuca-container .jessibuca-menu-item,.jessibuca-container .jessibuca-quality-menu-item,.jessibuca-container .jessibuca-scale-menu-item,.jessibuca-container .jessibuca-speed-menu-item{box-sizing:border-box;display:block;height:25px;line-height:25px;margin:0;padding:0 10px;cursor:pointer;font-size:14px;text-align:center;width:50px;color:hsla(0,0%,100%,.5);transition:color .3s,background-color .3s}.jessibuca-container .jessibuca-menu-item:hover,.jessibuca-container .jessibuca-quality-menu-item:hover,.jessibuca-container .jessibuca-scale-menu-item:hover,.jessibuca-container .jessibuca-speed-menu-item:hover{background-color:hsla(0,0%,100%,.2)}.jessibuca-container .jessibuca-menu-item:focus,.jessibuca-container .jessibuca-quality-menu-item:focus,.jessibuca-container .jessibuca-scale-menu-item:focus,.jessibuca-container .jessibuca-speed-menu-item:focus{outline:none}.jessibuca-container .jessibuca-menu-item.jessibuca-menu-item-active,.jessibuca-container .jessibuca-menu-item.jessibuca-quality-menu-item-active,.jessibuca-container .jessibuca-menu-item.jessibuca-scale-menu-item-active,.jessibuca-container .jessibuca-menu-item.jessibuca-speed-menu-item-active,.jessibuca-container .jessibuca-quality-menu-item.jessibuca-menu-item-active,.jessibuca-container .jessibuca-quality-menu-item.jessibuca-quality-menu-item-active,.jessibuca-container .jessibuca-quality-menu-item.jessibuca-scale-menu-item-active,.jessibuca-container .jessibuca-quality-menu-item.jessibuca-speed-menu-item-active,.jessibuca-container .jessibuca-scale-menu-item.jessibuca-menu-item-active,.jessibuca-container .jessibuca-scale-menu-item.jessibuca-quality-menu-item-active,.jessibuca-container .jessibuca-scale-menu-item.jessibuca-scale-menu-item-active,.jessibuca-container .jessibuca-scale-menu-item.jessibuca-speed-menu-item-active,.jessibuca-container .jessibuca-speed-menu-item.jessibuca-menu-item-active,.jessibuca-container .jessibuca-speed-menu-item.jessibuca-quality-menu-item-active,.jessibuca-container .jessibuca-speed-menu-item.jessibuca-scale-menu-item-active,.jessibuca-container .jessibuca-speed-menu-item.jessibuca-speed-menu-item-active{color:#2298fc}.jessibuca-container .jessibuca-volume-panel-wrap{position:absolute;left:50%;bottom:100%;visibility:hidden;opacity:0;transform:translateX(-50%) translateY(22%);transition:visibility .3s,opacity .3s;background-color:rgba(0,0,0,.5);border-radius:4px;height:120px;width:50px;overflow:hidden}.jessibuca-container .jessibuca-volume-panel-wrap.jessibuca-volume-panel-wrap-show{visibility:visible;opacity:1}.jessibuca-container .jessibuca-volume-panel{cursor:pointer;position:absolute;top:21px;height:60px;width:50px;overflow:hidden}.jessibuca-container .jessibuca-volume-panel-text{position:absolute;left:0;top:0;width:50px;height:20px;line-height:20px;text-align:center;color:#fff;font-size:12px}.jessibuca-container .jessibuca-volume-panel-handle{position:absolute;top:48px;left:50%;width:12px;height:12px;border-radius:12px;margin-left:-6px;background:#fff}.jessibuca-container .jessibuca-volume-panel-handle:before{bottom:-54px;background:#fff}.jessibuca-container .jessibuca-volume-panel-handle:after{bottom:6px;background:hsla(0,0%,100%,.2)}.jessibuca-container .jessibuca-volume-panel-handle:after,.jessibuca-container .jessibuca-volume-panel-handle:before{content:"";position:absolute;display:block;left:50%;width:3px;margin-left:-1px;height:60px}.jessibuca-container.jessibuca-fullscreen-web .jessibuca-controls{width:100vh}.jessibuca-container.jessibuca-fullscreen-web .jessibuca-play-big:after{transform:translate(-50%,-50%) rotate(270deg)}.jessibuca-container.jessibuca-fullscreen-web .jessibuca-loading{flex-direction:row}.jessibuca-container.jessibuca-fullscreen-web .jessibuca-loading-text{transform:rotate(270deg)}.jessibuca-container .jessibuca-contextmenus{display:none;flex-direction:column;position:absolute;z-index:120;left:10px;top:10px;min-width:200px;padding:5px 0;background-color:rgba(0,0,0,.9);border-radius:3px}.jessibuca-container .jessibuca-contextmenus .jessibuca-contextmenu{cursor:pointer;font-size:12px;display:block;color:#fff;padding:10px 15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 0 2px rgba(0,0,0,.5);border-bottom:1px solid hsla(0,0%,100%,.1)}.jessibuca-container .jessibuca-contextmenus .jessibuca-contextmenu a{color:#fff;text-decoration:none}.jessibuca-container .jessibuca-contextmenus .jessibuca-contextmenu span{display:inline-block;padding:0 7px}.jessibuca-container .jessibuca-contextmenus .jessibuca-contextmenu span.art-current,.jessibuca-container .jessibuca-contextmenus .jessibuca-contextmenu span:hover{color:var(--theme)}.jessibuca-container .jessibuca-contextmenus .jessibuca-contextmenu:hover{background-color:hsla(0,0%,100%,.1)}.jessibuca-container .jessibuca-contextmenus .jessibuca-contextmenu:last-child{border-bottom:none}.jessibuca-container.jessibuca-contextmenus-show .jessibuca-contextmenus{display:flex}.jessibuca-container-playback .jessibuca-controls{height:48px}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center{flex:1;display:flex;box-sizing:border-box;justify-content:space-between;font-size:12px}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-controls-playback-time{box-sizing:border-box;flex:1;position:relative;height:100%}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-controls-playback-time-inner{width:300px;height:100%;overflow-y:hidden;overflow-x:auto}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-controls-playback-current-time{position:absolute;left:0;top:0;height:15px;width:1px;background-color:red;text-align:center;z-index:1}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-controls-playback-current-time-text{position:absolute;box-sizing:border-box;padding:0 5px;width:60px;left:-25px;top:15px;border:1px solid red;height:15px;line-height:15px;cursor:move;background-color:#fff;color:#000;-webkit-user-select:none;user-select:none}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-controls-playback-time-scroll{position:relative;width:1440px;margin:0 auto}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-controls-playback-time-scroll.one-hour{width:1440px}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-controls-playback-time-scroll.half-hour{width:2880px}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-controls-playback-time-scroll.ten-min{width:8640px}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-controls-playback-time-scroll.five-min{width:17280px}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-controls-playback-time-scroll.one-min{width:86400px}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-controls-playback-time-list{position:relative;background-color:#ccc;height:48px}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-day{height:100%;overflow:hidden}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-one-wrap{height:8px;z-index:1}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-second-wrap{height:25px}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-controls-playback-btns{display:flex;align-items:center}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-minute-one,.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-second-one{float:left;width:1px;height:8px;margin:0;cursor:default;position:relative;z-index:1}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-minute-one.active,.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-second-one.active{background-color:orange;cursor:pointer}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-minute-one.start,.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-second-one.start{background-color:#999}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-minute-one:hover .jessibuca-playback-time-title-tips,.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-second-one:hover .jessibuca-playback-time-title-tips{visibility:visible;opacity:1}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-title-tips{pointer-events:none;position:absolute;left:0;top:100%;visibility:hidden;opacity:0;transform:translateX(13%);transition:visibility .3s ease 0s,opacity .3s ease 0s;background-color:#000;border-radius:4px;z-index:1}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-title-tips.jessibuca-playback-time-title-tips-left{transform:translateX(-100%)}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-title-tips .jessibuca-playback-time-title{display:inline-block;padding:2px 5px;font-size:12px;white-space:nowrap;color:#fff}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-hour,.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-minute{float:left;position:relative;width:60px;box-sizing:border-box;border-top:1px solid #999;-webkit-user-select:none;user-select:none;text-align:left;height:25px;line-height:25px}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-hour:first-child,.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-minute:first-child{border-left:0}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-hour:first-child .jessibuca-playback-time-hour-text,.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-minute:first-child .jessibuca-playback-time-hour-text{left:0}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-hour:after,.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-minute:after{content:"";position:absolute;left:0;top:-8px;width:1px;height:14px;background-color:#999}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-hour-text,.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-minute-text{position:absolute;left:-13px}.jessibuca-container-playback .jessibuca-playback-expand.disabled .jessibuca-icon-expand,.jessibuca-container-playback .jessibuca-playback-narrow.disabled .jessibuca-icon-narrow{cursor:no-drop}.jessibuca-container-playback.jessibuca-fullscreen-web .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-playback-time-inner{overflow-y:auto}.jessibuca-zoom-control{cursor:grab}.jessibuca-performance-panel{position:absolute;box-sizing:border-box;z-index:10000;left:0;top:0;padding:5px;font-size:10px;background:rgba(0,0,0,.2);color:#fff;max-height:100%;overflow-y:auto;display:none}.jessibuca-performance-panel .jessibuca-performance-item{display:flex;align-items:center;margin-top:3px;color:#fff}.jessibuca-performance-panel .jessibuca-performance-item-block{height:10px}');class Ur{constructor(e){this.player=e,this.extendBtnList=[],c=this,(l=e)._opt.hasControl&&l._opt.controlAutoHide?l.$container.classList.add("jessibuca-controls-show-auto-hide"):l.$container.classList.add("jessibuca-controls-show"),u=l._opt,d=u.operateBtns,h=`
<div class="jessibuca-controls-center">
<div class="jessibuca-controls-playback-time">
<div class="jessibuca-controls-playback-time-inner">
<div class="jessibuca-controls-playback-time-scroll">
<div class="jessibuca-controls-playback-time-list">
<div class="jessibuca-playback-time-day">
<div class="jessibuca-playback-time-one-wrap"></div>
<div class="jessibuca-playback-time-second-wrap"></div>
</div>
</div>
<div class="jessibuca-controls-playback-current-time">
<div class="jessibuca-controls-playback-current-time-text">00:00:00</div>
</div>
</div>
</div>
</div>
<div class="jessibuca-controls-playback-btns">
<div class="jessibuca-controls-item jessibuca-playback-narrow">${B.narrow}</div>
<div class="jessibuca-controls-item jessibuca-playback-expand">${B.expand}</div>
</div>
</div>
`,l.$container.insertAdjacentHTML("beforeend",`
${u.background?`<div class="jessibuca-poster" style="background-image: url(${u.background})"></div>`:""}
<div class="jessibuca-loading-bg">
<img class="jessibuca-loading-bg-image" src="" alt="">
</div>
${u.loadingIcon?`
<div class="jessibuca-loading">
${B.loading}
${u.loadingText?`<div class="jessibuca-loading-text">${u.loadingText}</div>`:""}
</div>
`:""}
${u.hasControl&&d.play?'<div class="jessibuca-play-big"></div>':""}
${u.hasControl&&d.ptz?'\n <div class="jessibuca-ptz-controls">\n <div class="jessibuca-ptz-bg-active"></div>\n <div class="jessibuca-ptz-arrow jessibuca-ptz-arrow-up" data-arrow="up"></div>\n <div class="jessibuca-ptz-arrow jessibuca-ptz-arrow-right" data-arrow="right"></div>\n <div class="jessibuca-ptz-arrow jessibuca-ptz-arrow-down" data-arrow="down"></div>\n <div class="jessibuca-ptz-arrow jessibuca-ptz-arrow-left" data-arrow="left"></div>\n <div class="jessibuca-ptz-control"></div>\n </div>\n ':""}
${u.hasVideo?`
<div class="jessibuca-zoom-controls">
<div class="jessibuca-zoom-narrow">${B.narrow}</div>
<div class="jessibuca-zoom-tips">电子放大</div>
<div class="jessibuca-zoom-expand">${B.expand}</div>
<div class="jessibuca-zoom-stop2">${B.zoomStop}</div>
</div>
<div class="jessibuca-recording">
<div class="jessibuca-recording-red-point"></div>
<div class="jessibuca-recording-time">00:00:00</div>
<div class="jessibuca-icon-recordStop jessibuca-recording-stop">${B.recordStop}</div>
</div>
`:""}
${u.hasControl?`
<div class="jessibuca-controls">
<div class="jessibuca-controls-bottom">
<div class="jessibuca-controls-left">
${u.showBandwidth?'<div class="jessibuca-controls-item jessibuca-speed"></div>':""}
</div>
${u.playType===y&&u.playbackConfig.showControl?h:""}
<div class="jessibuca-controls-right">
${u.playType===y&&u.playbackConfig.showRateBtn?'\n <div class="jessibuca-controls-item-wrap">\n <div class="jessibuca-controls-item jessibuca-speed-menu">\n <div class="jessibuca-speed-icon-text"></div>\n <div class="jessibuca-speed-menu-list"></div>\n </div>\n </div>\n ':""}
${d.close?`<div class="jessibuca-controls-item-wrap"><div class="jessibuca-controls-item jessibuca-close">${B.close}</div></div>`:""}
${d.performance?`<div class="jessibuca-controls-item-wrap"><div class="jessibuca-controls-item jessibuca-performance">${B.performance}</div><div class="jessibuca-controls-item jessibuca-performance-active">${B.performanceActive}</div></div>`:""}
${d.aiFace?`<div class="jessibuca-controls-item-wrap"><div class="jessibuca-controls-item jessibuca-face">${B.face}</div><div class="jessibuca-controls-item jessibuca-face-active">${B.faceActive}</div></div>`:""}
${d.quality?'\n <div class="jessibuca-controls-item-wrap">\n <div class="jessibuca-controls-item jessibuca-quality-menu">\n <div class="jessibuca-quality-icon-text"></div>\n <div class="jessibuca-quality-menu-list"></div>\n </div>\n </div>\n ':""}
${d.scale?'\n <div class="jessibuca-controls-item-wrap">\n <div class="jessibuca-controls-item jessibuca-scale-menu">\n <div class="jessibuca-scale-icon-text"></div>\n <div class="jessibuca-scale-menu-list"></div>\n </div>\n </div>\n ':""}
${d.audio?`
<div class="jessibuca-controls-item-wrap">
<div class="jessibuca-controls-item jessibuca-volume">
${B.audio}
${B.mute}
<div class="jessibuca-volume-panel-wrap">
<div class="jessibuca-volume-panel">
<div class="jessibuca-volume-panel-handle"></div>
</div>
<div class="jessibuca-volume-panel-text"></div>
</div>
</div>
</div>
`:""}
${d.play?`<div class="jessibuca-controls-item-wrap"><div class="jessibuca-controls-item jessibuca-play">${B.play}</div><div class="jessibuca-controls-item jessibuca-pause">${B.pause}</div></div>`:""}
${d.screenshot?`<div class="jessibuca-controls-item-wrap"><div class="jessibuca-controls-item jessibuca-screenshot">${B.screenshot}</div></div>`:""}
${d.record?` <div class="jessibuca-controls-item-wrap"><div class="jessibuca-controls-item jessibuca-record">${B.record}</div><div class="jessibuca-controls-item jessibuca-record-stop">${B.recordStop}</div></div>`:""}
${d.ptz?` <div class="jessibuca-controls-item-wrap"><div class="jessibuca-controls-item jessibuca-ptz">${B.ptz}</div><div class="jessibuca-controls-item jessibuca-ptz-active">${B.ptzActive}</div></div>`:""}
${d.zoom?` <div class="jessibuca-controls-item-wrap"><div class="jessibuca-controls-item jessibuca-zoom">${B.zoom}</div><div class="jessibuca-controls-item jessibuca-zoom-stop">${B.zoomStop}</div></div>`:""}
${d.fullscreen?`<div class="jessibuca-controls-item-wrap"><div class="jessibuca-controls-item jessibuca-fullscreen">${B.fullscreen}</div><div class="jessibuca-controls-item jessibuca-fullscreen-exit">${B.fullscreenExit}</div></div>`:""}
</div>
</div>
</div>
`:""}
<div class="jessibuca-performance-panel"></div>
<div class="jessibuca-contextmenus"></div>
`),Object.defineProperty(c,"$poster",{value:l.$container.querySelector(".jessibuca-poster")}),Object.defineProperty(c,"$loadingBg",{value:l.$container.querySelector(".jessibuca-loading-bg")}),Object.defineProperty(c,"$loadingBgImage",{value:l.$container.querySelector(".jessibuca-loading-bg-image")}),Object.defineProperty(c,"$loading",{value:l.$container.querySelector(".jessibuca-loading")}),Object.defineProperty(c,"$play",{value:l.$container.querySelector(".jessibuca-play")}),Object.defineProperty(c,"$playBig",{value:l.$container.querySelector(".jessibuca-play-big")}),Object.defineProperty(c,"$recording",{value:l.$container.querySelector(".jessibuca-recording")}),Object.defineProperty(c,"$recordingTime",{value:l.$container.querySelector(".jessibuca-recording-time")}),Object.defineProperty(c,"$recordingStop",{value:l.$container.querySelector(".jessibuca-recording-stop")}),Object.defineProperty(c,"$pause",{value:l.$container.querySelector(".jessibuca-pause")}),Object.defineProperty(c,"$controls",{value:l.$container.querySelector(".jessibuca-controls")}),Object.defineProperty(c,"$controlsInner",{value:l.$container.querySelector(".jessibuca-controls-bottom")}),Object.defineProperty(c,"$controlsLeft",{value:l.$container.querySelector(".jessibuca-controls-left")}),Object.defineProperty(c,"$controlsRight",{value:l.$container.querySelector(".jessibuca-controls-right")}),Object.defineProperty(c,"$volume",{value:l.$container.querySelector(".jessibuca-volume")}),Object.defineProperty(c,"$volumePanelWrap",{value:l.$container.querySelector(".jessibuca-volume-panel-wrap")}),Object.defineProperty(c,"$volumePanelText",{value:l.$container.querySelector(".jessibuca-volume-panel-text")}),Object.defineProperty(c,"$volumePanel",{value:l.$container.querySelector(".jessibuca-volume-panel")}),Object.defineProperty(c,"$volumeHandle",{value:l.$container.querySelector(".jessibuca-volume-panel-handle")}),Object.defineProperty(c,"$volumeOn",{value:l.$container.querySelector(".jessibuca-icon-audio")}),Object.defineProperty(c,"$volumeOff",{value:l.$container.querySelector(".jessibuca-icon-mute")}),Object.defineProperty(c,"$fullscreen",{value:l.$container.querySelector(".jessibuca-fullscreen")}),Object.defineProperty(c,"$fullscreenExit",{value:l.$container.querySelector(".jessibuca-fullscreen-exit")}),Object.defineProperty(c,"$record",{value:l.$container.querySelector(".jessibuca-record")}),Object.defineProperty(c,"$recordStop",{value:l.$container.querySelector(".jessibuca-record-stop")}),Object.defineProperty(c,"$screenshot",{value:l.$container.querySelector(".jessibuca-screenshot")}),Object.defineProperty(c,"$speed",{value:l.$container.querySelector(".jessibuca-speed")}),Object.defineProperty(c,"$playbackTime",{value:l.$container.querySelector(".jessibuca-controls-playback-time")}),Object.defineProperty(c,"$playbackTimeInner",{value:l.$container.querySelector(".jessibuca-controls-playback-time-inner")}),Object.defineProperty(c,"$playbackTimeScroll",{value:l.$container.querySelector(".jessibuca-controls-playback-time-scroll")}),Object.defineProperty(c,"$playbackTimeList",{value:l.$container.querySelector(".jessibuca-controls-playback-time-list")}),Object.defineProperty(c,"$playbackTimeListOne",{value:l.$container.querySelector(".jessibuca-playback-time-one-wrap")}),Object.defineProperty(c,"$playbackTimeListSecond",{value:l.$container.querySelector(".jessibuca-playback-time-second-wrap")}),Object.defineProperty(c,"$playbackCurrentTime",{value:l.$container.querySelector(".jessibuca-controls-playback-current-time")}),Object.defineProperty(c,"$playbackCurrentTimeText",{value:l.$container.querySelector(".jessibuca-controls-playback-current-time-text")}),Object.defineProperty(c,"$controlsPlaybackBtns",{value:l.$container.querySelector(".jessibuca-controls-playback-btns")}),Object.defineProperty(c,"$playbackNarrow",{value:l.$container.querySelector(".jessibuca-playback-narrow")}),Object.defineProperty(c,"$playbackExpand",{value:l.$container.querySelector(".jessibuca-playback-expand")}),Object.defineProperty(c,"$ptz",{value:l.$container.querySelector(".jessibuca-ptz")}),Object.defineProperty(c,"$ptzActive",{value:l.$container.querySelector(".jessibuca-ptz-active")}),Object.defineProperty(c,"$ptzControl",{value:l.$container.querySelector(".jessibuca-ptz-controls")}),Object.defineProperty(c,"$ptzBgActive",{value:l.$container.querySelector(".jessibuca-ptz-bg-active")}),Object.defineProperty(c,"$ptzControlCircular",{value:l.$container.querySelector(".jessibuca-ptz-control")}),Object.defineProperty(c,"$ptzArrows",{value:l.$container.querySelectorAll(".jessibuca-ptz-arrow")}),Object.defineProperty(c,"$qualityText",{value:l.$container.querySelector(".jessibuca-quality-icon-text")}),Object.defineProperty(c,"$qualityMenu",{value:l.$container.querySelector(".jessibuca-quality-menu")}),Object.defineProperty(c,"$qualityMenuList",{value:l.$container.querySelector(".jessibuca-quality-menu-list")}),Object.defineProperty(c,"$scaleText",{value:l.$container.querySelector(".jessibuca-scale-icon-text")}),Object.defineProperty(c,"$scaleMenu",{value:l.$container.querySelector(".jessibuca-scale-menu")}),Object.defineProperty(c,"$scaleMenuList",{value:l.$container.querySelector(".jessibuca-scale-menu-list")}),Object.defineProperty(c,"$zoom",{value:l.$container.querySelector(".jessibuca-zoom")}),Object.defineProperty(c,"$zoomStop",{value:l.$container.querySelector(".jessibuca-zoom-stop")}),Object.defineProperty(c,"$zoomNarrow",{value:l.$container.querySelector(".jessibuca-zoom-narrow")}),Object.defineProperty(c,"$zoomExpand",{value:l.$container.querySelector(".jessibuca-zoom-expand")}),Object.defineProperty(c,"$zoomStop2",{value:l.$container.querySelector(".jessibuca-zoom-stop2")}),Object.defineProperty(c,"$close",{value:l.$container.querySelector(".jessibuca-close")}),Object.defineProperty(c,"$zoomControls",{value:l.$container.querySelector(".jessibuca-zoom-controls")}),Object.defineProperty(c,"$performancePanel",{value:l.$container.querySelector(".jessibuca-performance-panel")}),Object.defineProperty(c,"$performance",{value:l.$container.querySelector(".jessibuca-performance")}),Object.defineProperty(c,"$performanceActive",{value:l.$container.querySelector(".jessibuca-performance-active")}),Object.defineProperty(c,"$faceDetect",{value:l.$container.querySelector(".jessibuca-face")}),Object.defineProperty(c,"$faceDetectActive",{value:l.$container.querySelector(".jessibuca-face-active")}),Object.defineProperty(c,"$contextmenus",{value:l.$container.querySelector(".jessibuca-contextmenus")}),Object.defineProperty(c,"$speedText",{value:l.$container.querySelector(".jessibuca-speed-icon-text")}),Object.defineProperty(c,"$speedMenu",{value:l.$container.querySelector(".jessibuca-speed-menu")}),Object.defineProperty(c,"$speedMenuList",{value:l.$container.querySelector(".jessibuca-speed-menu-list")}),0<e._opt.extendOperateBtns.length&&e._opt.extendOperateBtns.forEach(e=>{this.addExtendBtn(e)}),o=this,Object.defineProperty(o,"controlsRect",{get:()=>o.$controls.getBoundingClientRect()}),Object.defineProperty(o,"controlsInnerRect",{get:()=>o.$controlsInner.getBoundingClientRect()}),Object.defineProperty(o,"controlsLeftRect",{get:()=>o.$controlsLeft.getBoundingClientRect()}),Object.defineProperty(o,"controlsRightRect",{get:()=>o.$controlsRight.getBoundingClientRect()}),Object.defineProperty(o,"controlsPlaybackTimeInner",{get:()=>o.$playbackTimeInner&&o.$playbackTimeInner.getBoundingClientRect()||{}}),Object.defineProperty(o,"controlsPlaybackBtnsRect",{get:()=>o.$controlsPlaybackBtns&&o.$controlsPlaybackBtns.getBoundingClientRect()||{width:0}}),Fr(e,this);{var r=e,s=this;const p=r["events"]["proxy"],f=r._opt,A=f.operateBtns;function t(e){var{bottom:t,height:i}=s.$volumePanel.getBoundingClientRect(),r=s.$volumeHandle.getBoundingClientRect()["height"];return b(t-e.y-r/2,0,i-r/2)/(i-r)}if(p(window,["click","contextmenu"],e=>{-1<e.composedPath().indexOf(r.$container)?s.isFocus=!0:s.isFocus=!1}),p(window,"orientationchange",()=>{setTimeout(()=>{r.resize()},300)}),p(s.$controls,"click",e=>{e.stopPropagation()}),A.play&&(p(s.$pause,"click",e=>{f.playType===y&&f.playbackConfig.uiUsePlaybackPause?r.playbackPause=!0:k(A.pauseFn)?A.pauseFn():r.pause()}),p(s.$play,"click",e=>{f.playType===y&&r.playbackPause?r.playbackPause=!1:k(A.playFn)?A.playFn():(r.play(),r.resumeAudioAfterPause())})),p(s.$playBig,"click",e=>{f.playType===y&&r.playbackPause?r.playbackPause=!1:k(A.playFn)?A.playFn():(r.play(),r.resumeAudioAfterPause())}),A.screenshot&&p(s.$screenshot,"click",e=>{e.stopPropagation(),k(A.screenshotFn)?A.screenshotFn():r.video.screenshot()}),A.audio&&(p(s.$volume,"mouseover",()=>{s.$volumePanelWrap.classList.add("jessibuca-volume-panel-wrap-show")}),p(s.$volume,"mouseout",()=>{s.$volumePanelWrap.classList.remove("jessibuca-volume-panel-wrap-show")}),p(s.$volumeOn,"click",e=>{e.stopPropagation(),E(s.$volumeOn,"display","none"),E(s.$volumeOff,"display","block");e=r.volume;r.volume=0,r._lastVolume=e}),p(s.$volumeOff,"click",e=>{e.stopPropagation(),E(s.$volumeOn,"display","block"),E(s.$volumeOff,"display","none"),r.volume=r.lastVolume||.5}),p(s.$volumePanel,"click",e=>{e.stopPropagation(),r.volume=t(e)}),p(s.$volumeHandle,"mousedown",()=>{s.isVolumeDroging=!0}),p(s.$volumeHandle,"mousemove",e=>{s.isVolumeDroging&&(r.volume=t(e))}),p(document,"mouseup",()=>{s.isVolumeDroging&&(s.isVolumeDroging=!1)})),A.record&&(p(s.$record,"click",e=>{e.stopPropagation(),k(A.recordFn)?A.recordFn():r.recording=!0}),p(s.$recordStop,"click",e=>{e.stopPropagation(),k(A.recordStopFn)?A.recordStopFn():r.recording=!1})),p(s.$recordingStop,"click",e=>{e.stopPropagation(),k(A.recordStopFn)?A.recordStopFn():r.recording=!1}),A.fullscreen&&(p(s.$fullscreen,"click",e=>{e.stopPropagation(),k(A.fullscreenFn)?A.fullscreenFn():r.fullscreen=!0}),p(s.$fullscreenExit,"click",e=>{e.stopPropagation(),k(A.fullscreenExitFn)?A.fullscreenExitFn():r.fullscreen=!1})),A.ptz&&(p(s.$ptz,"click",e=>{e.stopPropagation(),E(s.$ptzActive,"display","flex"),E(s.$ptz,"display","none"),s.$ptzControl.classList.add("jessibuca-ptz-controls-show")}),p(s.$ptzActive,"click",e=>{e.stopPropagation(),E(s.$ptz,"display","flex"),E(s.$ptzActive,"display","none"),s.$ptzControl.classList.remove("jessibuca-ptz-controls-show")}),s.$ptzArrows.forEach(e=>{if(f.ptzClickType===q)p(e,"click",e=>{e.stopPropagation();e=e.currentTarget.dataset.arrow;s.$ptzBgActive.classList.add("jessibuca-ptz-bg-active-show"),s.$ptzBgActive.classList.add("jessibuca-ptz-bg-active-"+e),s.$ptzControlCircular.classList.add("jessibuca-ptz-control-"+e),r.emit(v.ptz,e),setTimeout(()=>{s.$ptzBgActive.classList.remove("jessibuca-ptz-bg-active-show"),we.forEach(e=>{s.$ptzBgActive.classList.remove("jessibuca-ptz-bg-active-"+e),s.$ptzControlCircular.classList.remove("jessibuca-ptz-control-"+e)}),r.emit(v.ptz,"stop")},300)});else if("mouseDownAndUp"===f.ptzClickType){let t=!1;p(e,"mousedown",e=>{e.stopPropagation(),t=!0;e=e.currentTarget.dataset.arrow;s.$ptzBgActive.classList.add("jessibuca-ptz-bg-active-show"),s.$ptzBgActive.classList.add("jessibuca-ptz-bg-active-"+e),s.$ptzControlCircular.classList.add("jessibuca-ptz-control-"+e),r.emit(v.ptz,e)});const i=()=>{t=!1,s.$ptzBgActive.classList.remove("jessibuca-ptz-bg-active-show"),we.forEach(e=>{s.$ptzBgActive.classList.remove("jessibuca-ptz-bg-active-"+e),s.$ptzControlCircular.classList.remove("jessibuca-ptz-control-"+e)}),r.emit(v.ptz,"stop")};p(e,"mouseup",e=>{e.stopPropagation(),t&&i()}),p(window,"mouseup",e=>{e.stopPropagation(),t&&i()})}})),A.performance&&(p(s.$performance,"click",e=>{e.stopPropagation(),r.togglePerformancePanel(!0)}),p(s.$performanceActive,"click",e=>{e.stopPropagation(),r.togglePerformancePanel(!1)})),A.aiFace&&(p(s.$faceDetect,"click",e=>{e.stopPropagation(),r.faceDetect(!0)}),p(s.$faceDetectActive,"click",e=>{e.stopPropagation(),r.faceDetect(!1)})),r._opt.hasControl&&r._opt.controlAutoHide){p(r.$container,"mouseover",()=>{r.fullscreen||(E(s.$controls,"display","block"),f())}),p(r.$container,"mousemove",()=>{r.$container&&s.$controls&&(r.fullscreen,"none"===s.$controls.style.display)&&(E(s.$controls,"display","block"),f())}),p(r.$container,"mouseout",()=>{A(),E(s.$controls,"display","none")});let e=null;const f=()=>{A(),e=setTimeout(()=>{E(s.$controls,"display","none")},5e3)},A=()=>{e&&(clearTimeout(e),e=null)}}r._opt.playType===y&&(p(s.$playbackNarrow,"click",e=>{e.stopPropagation(),r.playback&&r.playback.narrowPrecision()}),p(s.$playbackExpand,"click",e=>{e.stopPropagation(),r.playback&&r.playback.expandPrecision()}),p(s.$playbackTimeList,"click",e=>{e=w(e);e.matches("div.jessibuca-playback-time-minute-one")&&r.playback&&r.playback.seek(e.dataset)}),r._opt.playbackConfig.showRateBtn&&(p(s.$speedMenu,"mouseover",()=>{s.$speedMenuList.classList.add("jessibuca-speed-menu-shown")}),p(s.$speedMenu,"mouseout",()=>{s.$speedMenuList.classList.remove("jessibuca-speed-menu-shown")}),p(s.$speedMenuList,"click",e=>{var t=w(e);if(t.matches("div.jessibuca-speed-menu-item")){const e=t.dataset;r.emit(v.playbackPreRateChange,e.speed)}})),r._opt.playbackConfig.supportWheel)&&p(s.$playbackTimeInner,"wheel",e=>{e.preventDefault(),0<(e.wheelDelta?e.wheelDelta/120:-(e.detail||0)/3)?r.playback&&r.playback.expandPrecision():r.playback&&r.playback.narrowPrecision()}),A.quality&&(p(s.$qualityMenu,"mouseover",()=>{s.$qualityMenuList.classList.add("jessibuca-quality-menu-shown")}),p(s.$qualityMenu,"mouseout",()=>{s.$qualityMenuList.classList.remove("jessibuca-quality-menu-shown")}),p(s.$qualityMenuList,"click",e=>{var t=w(e);if(t.matches("div.jessibuca-quality-menu-item")){const e=t.dataset;r.streamQuality=e.quality}})),A.scale&&(p(s.$scaleMenu,"mouseover",()=>{s.$scaleMenuList.classList.add("jessibuca-scale-menu-shown")}),p(s.$scaleMenu,"mouseout",()=>{s.$scaleMenuList.classList.remove("jessibuca-scale-menu-shown")}),p(s.$scaleMenuList,"click",e=>{var t=w(e);if(t.matches("div.jessibuca-scale-menu-item")){const e=t.dataset;r.setScaleMode(e.scale)}})),A.zoom&&(p(s.$zoom,"click",e=>{e.stopPropagation(),r.zooming=!0}),p(s.$zoomStop,"click",e=>{e.stopPropagation(),r.zooming=!1})),p(s.$zoomExpand,"click",e=>{e.stopPropagation(),r.zoom&&r.zoom.expandPrecision()}),p(s.$zoomNarrow,"click",e=>{e.stopPropagation(),r.zoom&&r.zoom.narrowPrecision()}),p(s.$zoomStop2,"click",e=>{e.stopPropagation(),r.zooming=!1}),A.close&&p(s.$close,"click",e=>{e.stopPropagation(),r.doDestroy()})}if(e._opt.hotKey){var i=e,a=this;const m=i["events"]["proxy"],g={};function n(e,t){g[e]?g[e].push(t):g[e]=[t]}n(27,()=>{i.fullscreen&&(i.fullscreen=!1)}),n(38,()=>{i.volume+=.05}),n(40,()=>{i.volume-=.05}),m(window,"keydown",e=>{if(a.isFocus){const a=document.activeElement.tagName.toUpperCase(),t=document.activeElement.getAttribute("contenteditable");if("INPUT"!==a&&"TEXTAREA"!==a&&""!==t&&"true"!==t){const a=g[e.keyCode];a&&(e.preventDefault(),a.forEach(e=>e()))}}})}var o,l,c,u,d,h;this.btnIndex=0,this.initLoadingBackground(),this.player.debug.log("Control","init")}getBtnIndex(){return this.btnIndex++}destroy(){this.$performancePanel&&(this.$performancePanel.innerHTML="",this.player.$container.removeChild(this.$performancePanel)),this.$poster&&this.player.$container.removeChild(this.$poster),this.$loading&&this.player.$container.removeChild(this.$loading),this.$loadingBg&&this.player.$container.removeChild(this.$loadingBg),this.$controls&&this.player.$container.removeChild(this.$controls),this.$playBig&&this.player.$container.removeChild(this.$playBig),this.$recording&&this.player.$container.removeChild(this.$recording),this.$ptzControl&&this.player.$container.removeChild(this.$ptzControl),this.$zoomControls&&this.player.$container.removeChild(this.$zoomControls),this.$contextmenus&&(this.$contextmenus.innerHTML="",this.player.$container.removeChild(this.$contextmenus)),this.extendBtnList=[],this.player.$container.classList.remove("jessibuca-controls-show-auto-hide"),this.player.$container.classList.remove("jessibuca-controls-show"),this.player.debug.log("control","destroy")}autoSize(){var e=this.player;e.$container.style.padding="0 0";const t=e.width,i=e.height,r=t/i,s=e.video.$videoElement.width/e.video.$videoElement.height;if(r>s){const r=(t-i*s)/2;e.$container.style.padding=`0 ${r}px`}else{const r=(i-t/s)/2;e.$container.style.padding=r+"px 0"}}initLoadingBackground(){var r=this.player;if(r._opt.loadingBackground&&r._opt.heartTimeoutReplayUseLastFrameShow){let e=r.height;var s=r._opt,a=(s.hasControl&&!s.controlAutoHide&&(e-=s.playType===y?48:38),this.$loadingBgImage.width=r.width,this.$loadingBgImage.height=e,s.rotate);270!==a&&90!==a||(control.$loadingBgImage.width=e,control.$loadingBgImage.height=r.width),this.$loadingBgImage.src=r._opt.loadingBackground;let t="contain",i=(s.isResize||(t="fill"),s.isFullResize&&(t="none"),"");"none"===s.mirrorRotate&&a&&(i+=" rotate("+a+"deg)"),"level"===s.mirrorRotate?i+=" rotateY(180deg)":"vertical"===s.mirrorRotate&&(i+=" rotateX(180deg)"),this.$loadingBgImage.style.transform=i,this.$loadingBgImage.style.objectFit=t,x(this.$loadingBg,"display","block")}}_validateExtendBtn(t){let e=!0;return t.name||(this.player.debug.warn("Control","extend button name is required"),e=!1),e&&-1!==this.extendBtnList.findIndex(e=>e.name===t.name)&&(this.player.debug.warn("Control",`extend button name: ${t.name} is already exist`),e=!1),e&&!t.icon&&(this.player.debug.warn("Control","extend button icon is required"),e=!1),e}addExtendBtn(){let t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};var e=bt(Ue);if(t=Object.assign({},e,t),this._validateExtendBtn(t)){const i=t.name||"",r=this.$controlsRight,s=t.activeIcon&&t.activeClick,a=`
<div class="jessibuca-controls-item-wrap">
${t.icon?`<div class="jessibuca-controls-item jessibuca-control-extend-${i}">
<i class="jessibuca-icon jessibuca-icon-extend-${i}"></i>
${t.iconTitle?`
<span class="icon-title-tips"><span class="icon-title">${t.iconTitle}</span></span>
`:""}
</div>`:""}
${t.activeIcon?`<div class="jessibuca-controls-item jessibuca-control-extend-${i}-active">
<i class="jessibuca-icon jessibuca-icon-extend-${i}-active"></i>
${t.activeIconTitle?`
<span class="icon-title-tips"><span class="icon-title">${t.activeIconTitle}</span></span>
`:""}
</div>`:""}
</div>
`,n=Array.from(r.children)[t.index],o=(n?n.insertAdjacentHTML("beforebegin",a):_r(r,a),t.icon?r.querySelector(".jessibuca-icon-extend-"+i):null),l=t.icon?r.querySelector(".jessibuca-control-extend-"+i):null,c=t.activeIcon?r.querySelector(`.jessibuca-icon-extend-${i}-active`):null,u=t.activeIcon?r.querySelector(`.jessibuca-control-extend-${i}-active`):null,{proxy:d}=this.player["events"];t.icon&&(x(o,"background",`url(${t.icon}) no-repeat center`),x(o,"background-size","100% 100%"),x(l,"display","none"),t.iconHover)&&(d(o,"mouseover",()=>{x(o,"background",`url(${t.iconHover}) no-repeat center`),x(o,"background-size","100% 100%")}),d(o,"mouseout",()=>{x(o,"background",`url(${t.icon}) no-repeat center`),x(o,"background-size","100% 100%")})),t.activeIcon&&(x(c,"background",`url(${t.activeIcon}) no-repeat center`),x(c,"background-size","100% 100%"),x(u,"display","none"),t.activeIconHover)&&(d(c,"mouseover",()=>{x(c,"background",`url(${t.activeIconHover}) no-repeat center`),x(c,"background-size","100% 100%")}),d(c,"mouseout",()=>{x(c,"background",`url(${t.activeIcon}) no-repeat center`),x(c,"background-size","100% 100%")})),t.click&&o&&d(o,"click",e=>{e.preventDefault(),s&&(x(l,"display","none"),x(u,"display","flex")),t.click.call(this.player,this,e)}),t.activeClick&&c&&d(c,"click",e=>{e.preventDefault(),x(l,"display","flex"),x(u,"display","none"),t.activeClick.call(this.player,this,e)}),this.extendBtnList.push({name:i,$iconWrap:l,$activeIconWrap:u})}}}Or(".jessibuca-container{position:relative;width:100%;height:100%;overflow:hidden}.jessibuca-container.jessibuca-fullscreen-web{position:fixed;z-index:9999;left:0;top:0;right:0;bottom:0;width:100vw!important;height:100vh!important;background:#000}");class O{static init(){for(var e in O.types={avc1:[],avcC:[],hvc1:[],hvcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],mvex:[],mvhd:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[]},O.types)O.types.hasOwnProperty(e)&&(O.types[e]=[e.charCodeAt(0),e.charCodeAt(1),e.charCodeAt(2),e.charCodeAt(3)]);var t=O.constants={};t.FTYP=new Uint8Array([105,115,111,109,0,0,0,1,105,115,111,109,97,118,99,49]),t.STSD_PREFIX=new Uint8Array([0,0,0,0,0,0,0,1]),t.STTS=new Uint8Array([0,0,0,0,0,0,0,0]),t.STSC=t.STCO=t.STTS,t.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),t.HDLR_VIDEO=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),t.HDLR_AUDIO=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]),t.DREF=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),t.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),t.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0])}static box(e){let t=8,i=null,r=Array.prototype.slice.call(arguments,1),s=r.length;for(let e=0;e<s;e++)t+=r[e].byteLength;(i=new Uint8Array(t))[0]=t>>>24&255,i[1]=t>>>16&255,i[2]=t>>>8&255,i[3]=255&t,i.set(e,4);let a=8;for(let e=0;e<s;e++)i.set(r[e],a),a+=r[e].byteLength;return i}static generateInitSegment(e){var t=O.box(O.types.ftyp,O.constants.FTYP),e=O.moov(e),i=new Uint8Array(t.byteLength+e.byteLength);return i.set(t,0),i.set(e,t.byteLength),i}static moov(e){var t=O.mvhd(e.timescale,e.duration),i=O.trak(e),e=O.mvex(e);return O.box(O.types.moov,t,i,e)}static mvhd(e,t){return O.box(O.types.mvhd,new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,e>>>24&255,e>>>16&255,e>>>8&255,255&e,t>>>24&255,t>>>16&255,t>>>8&255,255&t,0,1,0,0,1,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,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,255,255,255,255]))}static trak(e){return O.box(O.types.trak,O.tkhd(e),O.mdia(e))}static tkhd(e){var t=e.id,i=e.duration,r=e.presentWidth,e=e.presentHeight;return O.box(O.types.tkhd,new Uint8Array([0,0,0,7,0,0,0,0,0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t,0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i,0,0,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,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,r>>>8&255,255&r,0,0,e>>>8&255,255&e,0,0]))}static mdia(e){return O.box(O.types.mdia,O.mdhd(e),O.hdlr(e),O.minf(e))}static mdhd(e){var t=e.timescale,e=e.duration;return O.box(O.types.mdhd,new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t,e>>>24&255,e>>>16&255,e>>>8&255,255&e,85,196,0,0]))}static hdlr(e){e="audio"===e.type?O.constants.HDLR_AUDIO:O.constants.HDLR_VIDEO;return O.box(O.types.hdlr,e)}static minf(e){var t="audio"===e.type?O.box(O.types.smhd,O.constants.SMHD):O.box(O.types.vmhd,O.constants.VMHD);return O.box(O.types.minf,t,O.dinf(),O.stbl(e))}static dinf(){return O.box(O.types.dinf,O.box(O.types.dref,O.constants.DREF))}static stbl(e){return O.box(O.types.stbl,O.stsd(e),O.box(O.types.stts,O.constants.STTS),O.box(O.types.stsc,O.constants.STSC),O.box(O.types.stsz,O.constants.STSZ),O.box(O.types.stco,O.constants.STCO))}static stsd(e){return"audio"===e.type?O.box(O.types.stsd,O.constants.STSD_PREFIX,O.mp4a(e)):"avc"===e.videoType?O.box(O.types.stsd,O.constants.STSD_PREFIX,O.avc1(e)):O.box(O.types.stsd,O.constants.STSD_PREFIX,O.hvc1(e))}static mp4a(e){var t=e.channelCount,i=e.audioSampleRate,t=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,t,0,16,0,0,0,0,i>>>8&255,255&i,0,0]);return O.box(O.types.mp4a,t,O.esds(e))}static esds(e){var e=e.config||[],t=e.length,t=new Uint8Array([0,0,0,0,3,23+t,0,1,0,4,15+t,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([t]).concat(e).concat([6,1,2]));return O.box(O.types.esds,t)}static avc1(e){var t=e.avcc,i=e.codecWidth,e=e.codecHeight,i=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,i>>>8&255,255&i,e>>>8&255,255&e,0,72,0,0,0,72,0,0,0,0,0,0,0,1,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,0,0,0,0,0,0,24,255,255]);return O.box(O.types.avc1,i,O.box(O.types.avcC,t))}static hvc1(e){var t=e.avcc,i=e.codecWidth,e=e.codecHeight,i=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,i>>>8&255,255&i,e>>>8&255,255&e,0,72,0,0,0,72,0,0,0,0,0,0,0,1,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,0,0,0,0,0,0,24,255,255]);return O.box(O.types.hvc1,i,O.box(O.types.hvcC,t))}static mvex(e){return O.box(O.types.mvex,O.trex(e))}static trex(e){e=e.id,e=new Uint8Array([0,0,0,0,e>>>24&255,e>>>16&255,e>>>8&255,255&e,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]);return O.box(O.types.trex,e)}static moof(e,t){return O.box(O.types.moof,O.mfhd(e.sequenceNumber),O.traf(e,t))}static mfhd(e){e=new Uint8Array([0,0,0,0,e>>>24&255,e>>>16&255,e>>>8&255,255&e]);return O.box(O.types.mfhd,e)}static traf(e,t){var i=e.id,i=O.box(O.types.tfhd,new Uint8Array([0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i])),t=O.box(O.types.tfdt,new Uint8Array([0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t])),r=O.sdtp(e),e=O.trun(e,r.byteLength+16+16+8+16+8+8);return O.box(O.types.traf,i,t,e,r)}static sdtp(e){var t=new Uint8Array(5),e=e.flags;return t[4]=e.isLeading<<6|e.dependsOn<<4|e.isDependedOn<<2|e.hasRedundancy,O.box(O.types.sdtp,t)}static trun(e,t){var i=new Uint8Array(28),t=(i.set([0,0,15,1,0,0,0,1,(t+=36)>>>24&255,t>>>16&255,t>>>8&255,255&t],0),e.duration),r=e.size,s=e.flags,e=e.cts;return i.set([t>>>24&255,t>>>16&255,t>>>8&255,255&t,r>>>24&255,r>>>16&255,r>>>8&255,255&r,s.isLeading<<2|s.dependsOn,s.isDependedOn<<6|s.hasRedundancy<<4|s.isNonSync,0,0,e>>>24&255,e>>>16&255,e>>>8&255,255&e],12),O.box(O.types.trun,i)}static mdat(e){return O.box(O.types.mdat,e)}}O.init();class jr extends t{constructor(t){super(),this.player=t,this.isAvc=!0,this.mediaSource=new window.MediaSource,this.sourceBuffer=null,this.hasInit=!1,this.isInitInfo=!1,this.cacheTrack={},this.timeInit=!1,this.sequenceNumber=0,this.dropping=!1,this.firstRenderTime=null,this.$videoElement=null,this.mediaSourceAppendBufferFull=!1,this.mediaSourceAppendBufferError=!1,this.isDecodeFirstIIframe=!1,this.prevTimestamp=null,this.decodeDiffTimestamp=null,this.prevDts=null,this.prevTs=null,this.mediaSourceObjectURL=window.URL.createObjectURL(this.mediaSource),this.eventListenList=[],t._opt.mseUseCanvasRender?(this.$videoElement=document.createElement("video"),this.$videoElement.src=this.mediaSourceObjectURL,this.initVideoEvents()):(this.player.video.$videoElement.src=this.mediaSourceObjectURL,this.$videoElement=this.player.video.$videoElement);const{proxy:e}=t["events"],i=e(this.mediaSource,"sourceopen",()=>{this.player&&this.player.emit(v.mseSourceOpen)}),r=e(this.mediaSource,"sourceclose",()=>{this.player&&this.player.emit(v.mseSourceClose)}),s=e(this.mediaSource,"sourceended",()=>{this.player&&this.player.emit(v.mseSourceended)});if(this.eventListenList.push(i,r,s),this.player.isPlayer){const a=e(this.$videoElement,De,e=>{if(this._handleUpdatePlaybackRate(),t._opt.mseUseCanvasRender)if(this.player.checkIsInRender())this.player.handleRender();else{const t=parseInt(e.timeStamp,10);this.player.debug.warn("MediaSource",`mseUseCanvasRender is true and $videoElement ts is ${t}, but not in render`)}else this.player.handleRender()}),i=e(this.$videoElement,Le,()=>{t.debug.log("MediaSource","video playback Rate change",this.$videoElement&&this.$videoElement.playbackRate)});this.eventListenList.push(a,i)}t.debug.log("MediaSource","init")}destroy(){this.stop(),this.eventListenList.length&&(this.eventListenList.forEach(e=>e()),this.eventListenList=[]),this.mediaSource=null,this.sourceBuffer=null,this.hasInit=!1,this.isInitInfo=!1,this.sequenceNumber=0,this.cacheTrack={},this.timeInit=!1,this.mediaSourceAppendBufferFull=!1,this.mediaSourceAppendBufferError=!1,this.isDecodeFirstIIframe=!1,this.prevTimestamp=null,this.prevDts=null,this.prevTs=null,this.firstRenderTime=null,this.dropping=!1,this.$videoElement&&(this.player._opt.mseUseCanvasRender&&this.$videoElement.src&&(this.$videoElement.src="",this.$videoElement.removeAttribute("src")),this.$videoElement=null),this.mediaSourceObjectURL&&(window.URL.revokeObjectURL(this.mediaSourceObjectURL),this.mediaSourceObjectURL=null),this.off(),this.player.debug.log("MediaSource","destroy")}get state(){return this.mediaSource&&this.mediaSource.readyState}get isStateOpen(){return"open"===this.state}get isStateClosed(){return"closed"===this.state}get isStateEnded(){return"ended"===this.state}get duration(){return this.mediaSource&&this.mediaSource.duration}set duration(e){this.mediaSource.duration=e}initVideoEvents(){var e=this.player.events["proxy"],t=(this.$videoElement,e(this.$videoElement,Re,()=>{this.player.debug.log("MediaSource","video waiting")})),e=e(this.$videoElement,De,e=>{e=parseInt(e.timeStamp,10);this.player.emit(v.videoTimeUpdate,e),this.$videoElement.paused&&(this.player.debug.warn("MediaSource","video is paused and next try to replay"),this.$videoElement.play().then(()=>{this.player.debug.log("MediaSource","video is paused and replay success")}).catch(e=>{this.player.debug.warn("MediaSource","video is paused and replay error ",e)}))});this.eventListenList.push(()=>{this.player.debug.log("MediaSource","video canplay"),this.$videoElement.play().then(()=>{this.player.debug.log("MediaSource","video play")}).catch(e=>{this.player.debug.warn("MediaSource","video play error ",e)})},t,e)}decodeVideo(t,i,r,s){var e=this.player;if(e)if(this.hasInit){if(r&&0===t[1]){const i=15&t[0];let e={};7==i?e=di(t.slice(5)):12==i&&(e=mi(t));const s=this.player.video.videoInfo;s&&s.width&&s.height&&e&&e.codecWidth&&e.codecHeight&&(e.codecWidth!==s.width||e.codecHeight!==s.height)&&(this.player.debug.warn("MediaSource",`width or height is update, width ${s.width}-> ${e.codecWidth}, height ${s.height}-> `+e.codecHeight),this.isInitInfo=!1,this.player.video.init=!1)}if(!this.isDecodeFirstIIframe&&r&&(this.isDecodeFirstIIframe=!0),this.isDecodeFirstIIframe){null===this.firstRenderTime&&(this.firstRenderTime=i);let e=i-this.firstRenderTime;e<0&&(this.player.debug.error("MediaSource",`decodeVideo local dts is < 0 , ts is ${i} and firstRenderTime is `+this.firstRenderTime),e=null===this.prevDts?0:this.prevDts+20,this._checkTsIsMaxDiff(i))&&(this.player.error("MediaSource",`decodeVideo local dts is < 0 , ts is ${i} and prevTs is ${this.prevTs}, diff is `+(this.prevTs-i)),this.firstRenderTime=i),null!==this.prevDts&&e<=this.prevDts&&(this.player.debug.error("MediaSource",`decodeVideo dts is less than prev dts , dts is ${e} and prev dts is ${this.prevDts} and now ts is ${i} and prev ts is ${this.prevTs} and firstRenderTime is `+this.firstRenderTime),e=this.prevDts+20),this._decodeVideo(t,e,r,s,i),this.prevDts=e,this.prevTs=i}else this.player.debug.warn("MediaSource","decodeVideo isDecodeFirstIIframe false")}else if(r&&0===t[1]){const s=15&t[0];(e.video.updateVideoInfo({encTypeCode:s}),12!=s||window.MediaSource&&window.MediaSource.isTypeSupported(ye))?(e._times.decodeStart||(e._times.decodeStart=m()),this.hasInit=this._decodeConfigurationRecord(t,i,r,s)):this.emit(A.mediaSourceH265NotSupport)}else this.player.debug.error("MediaSource",`decodeVideo has not init , isIframe is ${r} , payload is `+t[1])}_checkTsIsMaxDiff(e){return 0<this.prevTs&&e<this.prevTs&&36e5<this.prevTs-e}_decodeConfigurationRecord(e,t,i,r){let s=e.slice(5),a={};return 7===r?a=di(s):12===r&&(a=mi(e)),this.player.recorder&&this.player._opt.recordType===p&&this.player.recorder.initMetaData(e,r),0===a.codecWidth&&0===a.codecHeight?(this.player.debug.error("MediaSource","_decodeConfigurationRecord",a),this.emit(A.mediaSourceDecoderConfigurationError),!1):(e={id:1,type:"video",timescale:1e3,duration:0,avcc:s,codecWidth:a.codecWidth,codecHeight:a.codecHeight,videoType:a.videoType},e=O.generateInitSegment(e),this.isAvc=7===r,this.appendBuffer(e.buffer),this.sequenceNumber=0,this.cacheTrack={},!(this.timeInit=!1))}_decodeVideo(e,t,i,r,s){var a=this.player;let n=e.slice(5),o=n.byteLength,l=(new Date).getTime(),c=!1;this.prevTimestamp||(this.prevTimestamp=l,c=!0);var u,d,e=l-this.prevTimestamp,e=(((this.decodeDiffTimestamp=e)<5||500<e)&&!c&&a.debug.warn("MediaSource",`_decodeVideo now time is ${l} and prev time is ${this.prevTimestamp}, diff time is ${e} ms`),this.$videoElement),h=a._opt.videoBufferDelay+a._opt.videoBuffer;1<e.buffered.length&&(this.removeBuffer(e.buffered.start(0),e.buffered.end(0)),this.timeInit=!1),this.dropping&&this.cacheTrack.id&&t-this.cacheTrack.dts>h?(a.debug.warn("MediaSource","dropping time is ",t-this.cacheTrack.dts),this.dropping=!1,this.cacheTrack={}):this.cacheTrack.id&&t>=this.cacheTrack.dts?(h=8+this.cacheTrack.size,(u=new Uint8Array(h))[0]=h>>>24&255,u[1]=h>>>16&255,u[2]=h>>>8&255,u[3]=255&h,u.set(O.types.mdat,4),u.set(this.cacheTrack.data,8),this.cacheTrack.duration=t-this.cacheTrack.dts,this.player.recorder&&this.player.recorder.isRecording&&this.player._opt.recordType===p&&this.player.recorder.handleAddFmp4Track(this.cacheTrack),h=O.moof(this.cacheTrack,this.cacheTrack.dts),(d=new Uint8Array(h.byteLength+u.byteLength)).set(h,0),d.set(u,h.byteLength),this.appendBuffer(d.buffer),a.emit(v.timeUpdate,s),a.updateStats({fps:!0,ts:s,mseTs:t,buf:a.demux&&a.demux.delay||0}),a._times.videoStart||(a._times.videoStart=m(),a.handlePlayToRenderTimes())):(a.debug.log("MediaSource",`timeInit set false , cacheTrack = {} now dts is ${t}, and ts is ${s} cacheTrack dts is `+(this.cacheTrack&&this.cacheTrack.dts)),this.timeInit=!1,this.cacheTrack={}),this.cacheTrack||(this.cacheTrack={}),this.cacheTrack.id=1,this.cacheTrack.sequenceNumber=++this.sequenceNumber,this.cacheTrack.size=o,this.cacheTrack.dts=t,this.cacheTrack.cts=r,this.cacheTrack.isKeyframe=i,this.cacheTrack.data=n,this.cacheTrack.flags={isLeading:0,dependsOn:i?2:1,isDependedOn:i?1:0,hasRedundancy:0,isNonSync:i?0:1},this.timeInit||1!==e.buffered.length||(a.debug.log("MediaSource","timeInit set true"),this.timeInit=!0,e.currentTime=e.buffered.end(0)),!this.isInitInfo&&0<e.videoWidth&&0<e.videoHeight&&(a.debug.log("MediaSource",`updateVideoInfo: ${e.videoWidth},`+e.videoHeight),a.video.updateVideoInfo({width:e.videoWidth,height:e.videoHeight}),a.video.initCanvasViewSize(),this.isInitInfo=!0),a._opt.mseUseCanvasRender&&a.video.render({$video:e,ts:t}),this.prevTimestamp=(new Date).getTime()}appendBuffer(e){var{debug:t,events:{proxy:i}}=this.player;if(null===this.sourceBuffer){var r=this.isAvc?ge:ye;try{this.sourceBuffer=this.mediaSource.addSourceBuffer(r)}catch(e){t.warn("MediaSource","this.mediaSource.addSourceBuffer()",e.code,e)}r=i(this.sourceBuffer,"error",e=>{this.player.emit(v.mseSourceBufferError,e)}),i=i(this.sourceBuffer,"updateend",()=>{});this.eventListenList.push(r,i)}if(this.mediaSourceAppendBufferFull)t.error("MediaSource","this.mediaSourceAppendBufferFull is true");else if(this.mediaSourceAppendBufferError)t.error("MediaSource","this.mediaSourceAppendBufferError is true");else if(!1===this.sourceBuffer.updating&&this.isStateOpen)try{this.sourceBuffer.appendBuffer(e)}catch(e){t.warn("MediaSource","this.sourceBuffer.appendBuffer()",e.code,e),22===e.code?(this.stop(),this.mediaSourceAppendBufferFull=!0,this.emit(A.mediaSourceFull)):11===e.code?(this.stop(),this.mediaSourceAppendBufferError=!0,this.emit(A.mediaSourceAppendBufferError)):(t.error("MediaSource","appendBuffer error",e),this.player.emit(v.mseSourceBufferError,e))}else this.isStateClosed?this.player.emit(A.mseSourceBufferError,"mediaSource is not attached to video or mediaSource is closed"):this.isStateEnded?this.player.emit(A.mseSourceBufferError,"mediaSource is end"):!0===this.sourceBuffer.updating&&this.player.emit(v.mseSourceBufferBusy)}stop(){this.abortSourceBuffer(),this.removeSourceBuffer(),this.endOfStream()}dropSourceBuffer(e){var t=this.$videoElement;this.dropping=e,0<t.buffered.length&&1<t.buffered.end(0)-t.currentTime&&(this.player.debug.warn("MediaSource","dropSourceBuffer",`$video.buffered.end(0) is ${t.buffered.end(0)} - $video.currentTime `+t.currentTime),t.currentTime=t.buffered.end(0))}checkSourceBufferDelay(){var e=this.$videoElement;let t=0;return(t=0<e.buffered.length?e.buffered.end(e.buffered.length-1)-e.currentTime:t)<0&&(this.player.debug.warn("MediaSource",`checkSourceBufferDelay end(0) is ${e.buffered.end(0)} - currentTime is ${e.currentTime} and result < 0 and result is `+t),t=0),t}getDecodeDiffTimes(){return this.decodeDiffTimestamp}removeBuffer(e,t){if(this.isStateOpen&&!1===this.sourceBuffer.updating)try{this.sourceBuffer.remove(e,t)}catch(e){this.player.debug.warn("MediaSource","removeBuffer() error",e)}else this.player.debug.warn("MediaSource","removeBuffer() this.isStateOpen is",this.isStateOpen,"this.sourceBuffer.updating",this.sourceBuffer.updating)}endOfStream(){if(this.isStateOpen&&this.$videoElement&&1<=this.$videoElement.readyState)try{this.mediaSource.endOfStream()}catch(e){this.player.debug.warn("MediaSource","endOfStream() error",e)}}abortSourceBuffer(){this.isStateOpen&&this.sourceBuffer&&(this.sourceBuffer.abort(),this.sourceBuffer=null)}removeSourceBuffer(){if(!this.isStateClosed&&this.mediaSource&&this.sourceBuffer)try{this.mediaSource.removeSourceBuffer(this.sourceBuffer)}catch(e){this.player.debug.warn("MediaSource","removeSourceBuffer() error",e)}}_handleUpdatePlaybackRate(){if(this.$videoElement){var t=this.$videoElement,i=(this.player._opt.videoBuffer+this.player._opt.videoBufferDelay)/1e3,r=t.buffered,r=(r.length&&r.start(0),r.length?r.end(r.length-1):0);let e=t.currentTime;var s=r-e,i=Math.max(5,3+i),i=(i<s?(this.player.debug.warn("MediaSource",`handleUpdatePlaybackRate and buffered is ${r} and current is ${e} , delay buffer is more than ${i} is ${s} and new time is `+r),t.currentTime=r,e=t.currentTime):s<0&&(this.player.debug.warn("MediaSource",`handleUpdatePlaybackRate and delay buffer is ${r} - current is ${e} = ${s} < 0 and check video is paused : ${t.paused} `),t.paused)&&t.play(),this._getPlaybackRate(r-e));t.playbackRate!==i&&(this.player.debug.warn("MediaSource",`handleUpdatePlaybackRate and buffered is ${r} and current time is ${e} and delay is ${r-e} set playbackRate is ${i} `),t.playbackRate=i)}}getDecodePlaybackRate(){let e=0;var t=this.$videoElement;return e=t?t.playbackRate:e}_getPlaybackRate(e){var t=this.$videoElement,i=this.player._opt.videoBuffer,r=i+this.player._opt.videoBufferDelay;return e*=1e3,1===t.playbackRate?r<e?1.2:1:e<=i?1:t.playbackRate}}const Nr=()=>"undefined"!=typeof navigator&&parseFloat((""+(/CPU.*OS ([0-9_]{3,4})[0-9_]{0,1}|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_",".").replace("_",""))<10&&!window.MSStream,Vr=()=>"wakeLock"in navigator;class Hr{constructor(e){if(this.player=e,this.enabled=!1,Vr()){this._wakeLock=null;const e=()=>{null!==this._wakeLock&&"visible"===document.visibilityState&&this.enable()};document.addEventListener("visibilitychange",e),document.addEventListener("fullscreenchange",e)}else Nr()?this.noSleepTimer=null:(this.noSleepVideo=document.createElement("video"),this.noSleepVideo.setAttribute("title","No Sleep"),this.noSleepVideo.setAttribute("playsinline",""),this._addSourceToVideo(this.noSleepVideo,"webm","data:video/webm;base64,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"),this._addSourceToVideo(this.noSleepVideo,"mp4","data:video/mp4;base64,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"),this.noSleepVideo.addEventListener("loadedmetadata",()=>{this.noSleepVideo.duration<=1?this.noSleepVideo.setAttribute("loop",""):this.noSleepVideo.addEventListener("timeupdate",()=>{.5<this.noSleepVideo.currentTime&&(this.noSleepVideo.currentTime=Math.random())})}))}_addSourceToVideo(e,t,i){var r=document.createElement("source");r.src=i,r.type="video/"+t,e.appendChild(r)}get isEnabled(){return this.enabled}enable(){const t=this.player.debug;return Vr()?navigator.wakeLock.request("screen").then(e=>{this._wakeLock=e,this.enabled=!0,t.log("wakeLock","Wake Lock active."),this._wakeLock.addEventListener("release",()=>{t.log("wakeLock","Wake Lock released.")})}).catch(e=>{throw this.enabled=!1,t.error("wakeLock",e.name+", "+e.message),e}):Nr()?(this.disable(),this.noSleepTimer=window.setInterval(()=>{document.hidden||(window.location.href=window.location.href.split("#")[0],window.setTimeout(window.stop,0))},15e3),this.enabled=!0,Promise.resolve()):this.noSleepVideo.play().then(e=>(this.enabled=!0,e)).catch(e=>{throw this.enabled=!1,e})}disable(){var e=this.player.debug;Vr()?(this._wakeLock&&this._wakeLock.release(),this._wakeLock=null):Nr()?this.noSleepTimer&&(e.warn("wakeLock","NoSleep now disabled for older iOS devices."),window.clearInterval(this.noSleepTimer),this.noSleepTimer=null):this.noSleepVideo.pause(),this.enabled=!1}}var s=(tr=He(function(e,t){"undefined"!=typeof window&&(e.exports=function(){return i={"./node_modules/eventemitter3/index.js":function(e,t,i){var r=Object.prototype.hasOwnProperty,p="~";function s(){}function a(e,t,i){this.fn=e,this.context=t,this.once=i||!1}function n(e,t,i,r,s){if("function"!=typeof i)throw new TypeError("The listener must be a function");i=new a(i,r||e,s),r=p?p+t:t;return e._events[r]?e._events[r].fn?e._events[r]=[e._events[r],i]:e._events[r].push(i):(e._events[r]=i,e._eventsCount++),e}function l(e,t){0==--e._eventsCount?e._events=new s:delete e._events[t]}function o(){this._events=new s,this._eventsCount=0}Object.create&&(s.prototype=Object.create(null),(new s).__proto__||(p=!1)),o.prototype.eventNames=function(){var e,t,i=[];if(0===this._eventsCount)return i;for(t in e=this._events)r.call(e,t)&&i.push(p?t.slice(1):t);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(e)):i},o.prototype.listeners=function(e){var e=p?p+e:e,t=this._events[e];if(!t)return[];if(t.fn)return[t.fn];for(var i=0,r=t.length,s=new Array(r);i<r;i++)s[i]=t[i].fn;return s},o.prototype.listenerCount=function(e){e=p?p+e:e,e=this._events[e];return e?e.fn?1:e.length:0},o.prototype.emit=function(e,t,i,r,s,a){var n=p?p+e:e;if(!this._events[n])return!1;var o,l=this._events[n],c=arguments.length;if(l.fn){switch(l.once&&this.removeListener(e,l.fn,void 0,!0),c){case 1:return l.fn.call(l.context),!0;case 2:return l.fn.call(l.context,t),!0;case 3:return l.fn.call(l.context,t,i),!0;case 4:return l.fn.call(l.context,t,i,r),!0;case 5:return l.fn.call(l.context,t,i,r,s),!0;case 6:return l.fn.call(l.context,t,i,r,s,a),!0}for(h=1,o=new Array(c-1);h<c;h++)o[h-1]=arguments[h];l.fn.apply(l.context,o)}else for(var u,d=l.length,h=0;h<d;h++)switch(l[h].once&&this.removeListener(e,l[h].fn,void 0,!0),c){case 1:l[h].fn.call(l[h].context);break;case 2:l[h].fn.call(l[h].context,t);break;case 3:l[h].fn.call(l[h].context,t,i);break;case 4:l[h].fn.call(l[h].context,t,i,r);break;default:if(!o)for(u=1,o=new Array(c-1);u<c;u++)o[u-1]=arguments[u];l[h].fn.apply(l[h].context,o)}return!0},o.prototype.on=function(e,t,i){return n(this,e,t,i,!1)},o.prototype.once=function(e,t,i){return n(this,e,t,i,!0)},o.prototype.removeListener=function(e,t,i,r){e=p?p+e:e;if(this._events[e])if(t){var s=this._events[e];if(s.fn)s.fn!==t||r&&!s.once||i&&s.context!==i||l(this,e);else{for(var a=0,n=[],o=s.length;a<o;a++)(s[a].fn!==t||r&&!s[a].once||i&&s[a].context!==i)&&n.push(s[a]);n.length?this._events[e]=1===n.length?n[0]:n:l(this,e)}}else l(this,e);return this},o.prototype.removeAllListeners=function(e){return e?(e=p?p+e:e,this._events[e]&&l(this,e)):(this._events=new s,this._eventsCount=0),this},o.prototype.off=o.prototype.removeListener,o.prototype.addListener=o.prototype.on,o.prefixed=p,e.exports=o.EventEmitter=o},"./node_modules/url-toolkit/src/url-toolkit.js":function(e,t,i){var r=/^((?:[a-zA-Z0-9+\-.]+:)?)(\/\/[^\/?#]*)?((?:[^\/?#]*\/)*[^;?#]*)?(;[^?#]*)?(\?[^#]*)?(#[^]*)?$/,a=/^([^\/?#]*)([^]*)$/,s=/(?:\/|^)\.(?=\/)/g,n=/(?:\/|^)\.\.\/(?!\.\.\/)[^\/]*(?=\/)/g,o={buildAbsoluteURL:function(e,t,i){if(i=i||{},e=e.trim(),!(t=t.trim())){if(!i.alwaysNormalize)return e;var r=o.parseURL(e);if(r)return r.path=o.normalizePath(r.path),o.buildURLFromParts(r);throw new Error("Error trying to parse base URL.")}r=o.parseURL(t);if(!r)throw new Error("Error trying to parse relative URL.");if(r.scheme)return i.alwaysNormalize?(r.path=o.normalizePath(r.path),o.buildURLFromParts(r)):t;t=o.parseURL(e);if(!t)throw new Error("Error trying to parse base URL.");!t.netLoc&&t.path&&"/"!==t.path[0]&&(e=a.exec(t.path),t.netLoc=e[1],t.path=e[2]),t.netLoc&&!t.path&&(t.path="/");var s,e={scheme:t.scheme,netLoc:r.netLoc,path:null,params:r.params,query:r.query,fragment:r.fragment};return r.netLoc||(e.netLoc=t.netLoc,"/"===r.path[0])||(r.path?(s=(s=t.path).substring(0,s.lastIndexOf("/")+1)+r.path,e.path=o.normalizePath(s)):(e.path=t.path,r.params||(e.params=t.params,r.query)||(e.query=t.query))),null===e.path&&(e.path=i.alwaysNormalize?o.normalizePath(r.path):r.path),o.buildURLFromParts(e)},parseURL:function(e){e=r.exec(e);return e?{scheme:e[1]||"",netLoc:e[2]||"",path:e[3]||"",params:e[4]||"",query:e[5]||"",fragment:e[6]||""}:null},normalizePath:function(e){for(e=e.split("").reverse().join("").replace(s,"");e.length!==(e=e.replace(n,"")).length;);return e.split("").reverse().join("")},buildURLFromParts:function(e){return e.scheme+e.netLoc+e.path+e.params+e.query+e.fragment}};e.exports=o},"./node_modules/webworkify-webpack/index.js":function(e,t,h){function a(i){var r={};function s(e){var t;return(r[e]||(t=r[e]={i:e,l:!1,exports:{}},i[e].call(t.exports,t,t.exports,s),t.l=!0,t)).exports}s.m=i,s.c=r,s.i=function(e){return e},s.d=function(e,t,i){s.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:i})},s.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},s.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return s.d(t,"a",t),t},s.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},s.p="/",s.oe=function(e){throw console.error(e),e};var e=s(s.s=ENTRY_MODULE);return e.default||e}var p="[\\.|\\-|\\+|\\w|/|@]+",f="\\(\\s*(/\\*.*?\\*/)?\\s*.*?([\\.|\\-|\\+|\\w|/|@]+).*?\\)";function A(e){return(e+"").replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}e.exports=function(d,e){var i={main:h.m},r=(e=e||{}).all?{main:Object.keys(i.main)}:function(e){for(var t={main:[d]},i={main:[]},r={main:{}};function(i){return Object.keys(i).reduce(function(e,t){return e||0<i[t].length},!1)}(t);)for(var s=Object.keys(t),a=0;a<s.length;a++){var n=s[a],o=t[n].pop();if(r[n]=r[n]||{},!r[n][o]&&e[n][o]){r[n][o]=!0,i[n]=i[n]||[],i[n].push(o);for(var l=function(e,t,i){var r={},s=(r[i]=[],t.toString());if(t=s.match(/^function\s?\w*\(\w+,\s*\w+,\s*(\w+)\)/)){for(var a,t=t[1],n=new RegExp("(\\\\n|\\W)"+A(t)+f,"g");a=n.exec(s);)"dll-reference"!==a[3]&&r[i].push(a[3]);for(n=new RegExp("\\("+A(t)+'\\("(dll-reference\\s('+p+'))"\\)\\)'+f,"g");a=n.exec(s);)e[a[2]]||(r[i].push(a[1]),e[a[2]]=h(a[1]).m),r[a[2]]=r[a[2]]||[],r[a[2]].push(a[4]);for(var o,l=Object.keys(r),c=0;c<l.length;c++)for(var u=0;u<r[l[c]].length;u++)o=r[l[c]][u],isNaN(+o)||(r[l[c]][u]=+r[l[c]][u])}return r}(e,e[n][o],n),c=Object.keys(l),u=0;u<c.length;u++)t[c[u]]=t[c[u]]||[],t[c[u]]=t[c[u]].concat(l[c[u]])}}return i}(i),s="",t=(Object.keys(r).filter(function(e){return"main"!==e}).forEach(function(t){for(var e=0;r[t][e];)e++;r[t].push(e),i[t][e]="(function(module, exports, __webpack_require__) { module.exports = __webpack_require__; })",s=s+"var "+t+" = ("+a.toString().replace("ENTRY_MODULE",JSON.stringify(e))+")({"+r[t].map(function(e){return JSON.stringify(e)+": "+i[t][e].toString()}).join(",")+"});\n"}),s=s+"new (("+a.toString().replace("ENTRY_MODULE",JSON.stringify(d))+")({"+r.main.map(function(e){return JSON.stringify(e)+": "+i.main[e].toString()}).join(",")+"}))(self);",new window.Blob([s],{type:"text/javascript"}));return e.bare||(e=(window.URL||window.webkitURL||window.mozURL||window.msURL).createObjectURL(t),(t=new window.Worker(e)).objectURL=e),t}},"./src/config.ts":function(e,t,i){i.r(t),i.d(t,"hlsDefaultConfig",function(){return E}),i.d(t,"mergeConfig",function(){return S}),i.d(t,"enableStreamingMode",function(){return T});var t=i("./src/controller/abr-controller.ts"),r=i("./src/controller/audio-stream-controller.ts"),s=i("./src/controller/audio-track-controller.ts"),a=i("./src/controller/subtitle-stream-controller.ts"),n=i("./src/controller/subtitle-track-controller.ts"),o=i("./src/controller/buffer-controller.ts"),l=i("./src/controller/timeline-controller.ts"),c=i("./src/controller/cap-level-controller.ts"),u=i("./src/controller/fps-controller.ts"),d=i("./src/controller/eme-controller.ts"),h=i("./src/controller/cmcd-controller.ts"),p=i("./src/utils/xhr-loader.ts"),f=i("./src/utils/fetch-loader.ts"),A=i("./src/utils/cues.ts"),m=i("./src/utils/mediakeys-helper.ts"),g=i("./src/utils/logger.ts");function y(){return(y=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i,r=arguments[t];for(i in r)Object.prototype.hasOwnProperty.call(r,i)&&(e[i]=r[i])}return e}).apply(this,arguments)}function v(t,e){var i,r=Object.keys(t);return Object.getOwnPropertySymbols&&(i=Object.getOwnPropertySymbols(t),e&&(i=i.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,i)),r}function b(r){for(var e=1;e<arguments.length;e++){var s=null!=arguments[e]?arguments[e]:{};e%2?v(Object(s),!0).forEach(function(e){var t,i;t=r,i=s[e=e],e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(s)):v(Object(s)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(s,e))})}return r}var E=b(b({autoStartLoad:!0,startPosition:-1,defaultAudioCodec:void 0,debug:!1,capLevelOnFPSDrop:!1,capLevelToPlayerSize:!1,initialLiveManifestSize:1,maxBufferLength:30,backBufferLength:1/0,maxBufferSize:6e7,maxBufferHole:.1,highBufferWatchdogPeriod:2,nudgeOffset:.1,nudgeMaxRetry:3,maxFragLookUpTolerance:.25,liveSyncDurationCount:3,liveMaxLatencyDurationCount:1/0,liveSyncDuration:void 0,liveMaxLatencyDuration:void 0,maxLiveSyncPlaybackRate:1,liveDurationInfinity:!1,liveBackBufferLength:null,maxMaxBufferLength:600,enableWorker:!0,enableSoftwareAES:!0,manifestLoadingTimeOut:1e4,manifestLoadingMaxRetry:1,manifestLoadingRetryDelay:1e3,manifestLoadingMaxRetryTimeout:64e3,startLevel:void 0,levelLoadingTimeOut:1e4,levelLoadingMaxRetry:4,levelLoadingRetryDelay:1e3,levelLoadingMaxRetryTimeout:64e3,fragLoadingTimeOut:2e4,fragLoadingMaxRetry:6,fragLoadingRetryDelay:1e3,fragLoadingMaxRetryTimeout:64e3,startFragPrefetch:!1,fpsDroppedMonitoringPeriod:5e3,fpsDroppedMonitoringThreshold:.2,appendErrorMaxRetry:3,loader:p.default,fLoader:void 0,pLoader:void 0,xhrSetup:void 0,licenseXhrSetup:void 0,licenseResponseCallback:void 0,abrController:t.default,bufferController:o.default,capLevelController:c.default,fpsController:u.default,stretchShortVideoTrack:!1,maxAudioFramesDrift:1,forceKeyFrameOnDiscontinuity:!0,abrEwmaFastLive:3,abrEwmaSlowLive:9,abrEwmaFastVoD:3,abrEwmaSlowVoD:9,abrEwmaDefaultEstimate:5e5,abrBandWidthFactor:.95,abrBandWidthUpFactor:.7,abrMaxWithRealBitrate:!1,maxStarvationDelay:4,maxLoadingDelay:4,minAutoBitrate:0,emeEnabled:!1,widevineLicenseUrl:void 0,drmSystemOptions:{},requestMediaKeySystemAccessFunc:m.requestMediaKeySystemAccess,testBandwidth:!0,progressive:!1,lowLatencyMode:!0,cmcd:void 0},{cueHandler:A.default,enableCEA708Captions:!0,enableWebVTT:!0,enableIMSC1:!0,captionsTextTrack1Label:"English",captionsTextTrack1LanguageCode:"en",captionsTextTrack2Label:"Spanish",captionsTextTrack2LanguageCode:"es",captionsTextTrack3Label:"Unknown CC",captionsTextTrack3LanguageCode:"",captionsTextTrack4Label:"Unknown CC",captionsTextTrack4LanguageCode:"",renderTextTracksNatively:!0}),{},{subtitleStreamController:a.SubtitleStreamController,subtitleTrackController:n.default,timelineController:l.TimelineController,audioStreamController:r.default,audioTrackController:s.default,emeController:d.default,cmcdController:h.default});function S(e,t){if((t.liveSyncDurationCount||t.liveMaxLatencyDurationCount)&&(t.liveSyncDuration||t.liveMaxLatencyDuration))throw new Error("Illegal hls.js config: don't mix up liveSyncDurationCount/liveMaxLatencyDurationCount and liveSyncDuration/liveMaxLatencyDuration");if(void 0!==t.liveMaxLatencyDurationCount&&(void 0===t.liveSyncDurationCount||t.liveMaxLatencyDurationCount<=t.liveSyncDurationCount))throw new Error('Illegal hls.js config: "liveMaxLatencyDurationCount" must be greater than "liveSyncDurationCount"');if(void 0!==t.liveMaxLatencyDuration&&(void 0===t.liveSyncDuration||t.liveMaxLatencyDuration<=t.liveSyncDuration))throw new Error('Illegal hls.js config: "liveMaxLatencyDuration" must be greater than "liveSyncDuration"');return y({},e,t)}function T(e){var t=e.loader;t!==f.default&&t!==p.default?(g.logger.log("[config]: Custom loader detected, cannot enable progressive streaming"),e.progressive=!1):Object(f.fetchSupported)()&&(e.loader=f.default,e.progressive=!0,e.enableSoftwareAES=!0,g.logger.log("[config]: Progressive streaming enabled, using FetchLoader"))}},"./src/controller/abr-controller.ts":function(e,t,i){i.r(t);var g=i("./src/polyfills/number.ts"),r=i("./src/utils/ewma-bandwidth-estimator.ts"),y=i("./src/events.ts"),v=i("./src/utils/buffer-helper.ts"),s=i("./src/errors.ts"),o=i("./src/types/loader.ts"),b=i("./src/utils/logger.ts");function a(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function n(e){this.hls=void 0,this.lastLoadedFragLevel=0,this._nextAutoLevel=-1,this.timer=void 0,this.onCheck=this._abandonRulesCheck.bind(this),this.fragCurrent=null,this.partCurrent=null,this.bitrateTestDelay=0,this.bwEstimator=void 0;e=(this.hls=e).config;this.bwEstimator=new r.default(e.abrEwmaSlowVoD,e.abrEwmaFastVoD,e.abrEwmaDefaultEstimate),this.registerListeners()}(i=n.prototype).registerListeners=function(){var e=this.hls;e.on(y.Events.FRAG_LOADING,this.onFragLoading,this),e.on(y.Events.FRAG_LOADED,this.onFragLoaded,this),e.on(y.Events.FRAG_BUFFERED,this.onFragBuffered,this),e.on(y.Events.LEVEL_LOADED,this.onLevelLoaded,this),e.on(y.Events.ERROR,this.onError,this)},i.unregisterListeners=function(){var e=this.hls;e.off(y.Events.FRAG_LOADING,this.onFragLoading,this),e.off(y.Events.FRAG_LOADED,this.onFragLoaded,this),e.off(y.Events.FRAG_BUFFERED,this.onFragBuffered,this),e.off(y.Events.LEVEL_LOADED,this.onLevelLoaded,this),e.off(y.Events.ERROR,this.onError,this)},i.destroy=function(){this.unregisterListeners(),this.clearTimer(),this.hls=this.onCheck=null,this.fragCurrent=this.partCurrent=null},i.onFragLoading=function(e,t){var i=t.frag;i.type!==o.PlaylistLevelType.MAIN||this.timer||(this.fragCurrent=i,this.partCurrent=null!=(i=t.part)?i:null,this.timer=self.setInterval(this.onCheck,100))},i.onLevelLoaded=function(e,t){var i=this.hls.config;t.details.live?this.bwEstimator.update(i.abrEwmaSlowLive,i.abrEwmaFastLive):this.bwEstimator.update(i.abrEwmaSlowVoD,i.abrEwmaFastVoD)},i._abandonRulesCheck=function(){var e=this.fragCurrent,t=this.partCurrent,i=this.hls,r=i.autoLevelEnabled,s=i.config,a=i.media;if(e&&a){var n=(t||e).stats,o=(t||e).duration;if(n.aborted)b.logger.warn("frag loader destroy or aborted, disarm abandonRules"),this.clearTimer(),this._nextAutoLevel=-1;else if(r&&!a.paused&&a.playbackRate&&a.readyState){var r=performance.now()-n.loading.start,l=Math.abs(a.playbackRate);if(!(r<=500*o/l)){var c=i.levels,u=i.minAutoLevel,d=c[e.level],d=n.total||Math.max(n.loaded,Math.round(o*d.maxBitrate/8)),h=Math.max(1,n.bwEstimate?n.bwEstimate/8:1e3*n.loaded/r),d=(d-n.loaded)/h,p=a.currentTime,f=(v.BufferHelper.bufferInfo(a,p,s.maxBufferHole).end-p)/l;if(!(2*o/l<=f||d<=f)){for(var A=Number.POSITIVE_INFINITY,m=e.level-1;u<m&&!((A=o*c[m].maxBitrate/(6.4*h))<f);m--);d<=A||(a=this.bwEstimator.getEstimate(),b.logger.warn("Fragment "+e.sn+(t?" part "+t.index:"")+" of level "+e.level+" is loading too slowly and will cause an underbuffer; aborting and switching to level "+m+"\n Current BW estimate: "+(Object(g.isFiniteNumber)(a)?(a/1024).toFixed(3):"Unknown")+" Kb/s\n Estimated load time for current fragment: "+d.toFixed(3)+" s\n Estimated load time for the next fragment: "+A.toFixed(3)+" s\n Time to underbuffer: "+f.toFixed(3)+" s"),i.nextLoadLevel=m,this.bwEstimator.sample(r,n.loaded),this.clearTimer(),e.loader&&(this.fragCurrent=this.partCurrent=null,e.loader.abort()),i.trigger(y.Events.FRAG_LOAD_EMERGENCY_ABORTED,{frag:e,part:t,stats:n}))}}}}},i.onFragLoaded=function(e,t){var i,r,s,a,n=t.frag,t=t.part;n.type===o.PlaylistLevelType.MAIN&&Object(g.isFiniteNumber)(n.sn)&&(i=(t||n).stats,s=(t||n).duration,this.clearTimer(),this.lastLoadedFragLevel=n.level,this._nextAutoLevel=-1,this.hls.config.abrMaxWithRealBitrate&&(r=((a=this.hls.levels[n.level]).loaded?a.loaded.bytes:0)+i.loaded,s=(a.loaded?a.loaded.duration:0)+s,a.loaded={bytes:r,duration:s},a.realBitrate=Math.round(8*r/s)),n.bitrateTest)&&(a={stats:i,frag:n,part:t,id:n.type},this.onFragBuffered(y.Events.FRAG_BUFFERED,a),n.bitrateTest=!1)},i.onFragBuffered=function(e,t){var i,r=t.frag,t=t.part,t=(t||r).stats;t.aborted||r.type!==o.PlaylistLevelType.MAIN||"initSegment"===r.sn||(i=t.parsing.end-t.loading.start,this.bwEstimator.sample(i,t.loaded),t.bwEstimate=this.bwEstimator.getEstimate(),r.bitrateTest?this.bitrateTestDelay=i/1e3:this.bitrateTestDelay=0)},i.onError=function(e,t){switch(t.details){case s.ErrorDetails.FRAG_LOAD_ERROR:case s.ErrorDetails.FRAG_LOAD_TIMEOUT:this.clearTimer()}},i.clearTimer=function(){self.clearInterval(this.timer),this.timer=void 0},i.getNextABRAutoLevel=function(){var e=this.fragCurrent,t=this.partCurrent,i=this.hls,r=i.maxAutoLevel,s=i.config,a=i.minAutoLevel,i=i.media,t=t?t.duration:e?e.duration:0,e=i?i.currentTime:0,n=i&&0!==i.playbackRate?Math.abs(i.playbackRate):1,o=this.bwEstimator?this.bwEstimator.getEstimate():s.abrEwmaDefaultEstimate,i=(v.BufferHelper.bufferInfo(i,e,s.maxBufferHole).end-e)/n,e=this.findBestLevel(o,a,r,i,s.abrBandWidthFactor,s.abrBandWidthUpFactor);if(0<=e)return e;b.logger.trace((i?"rebuffering expected":"buffer is empty")+", finding optimal quality level");var l,n=t?Math.min(t,s.maxStarvationDelay):s.maxStarvationDelay,c=s.abrBandWidthFactor,u=s.abrBandWidthUpFactor;return i||(l=this.bitrateTestDelay)&&(n=(t?Math.min(t,s.maxLoadingDelay):s.maxLoadingDelay)-l,b.logger.trace("bitrate test took "+Math.round(1e3*l)+"ms, set first fragment max fetchDuration to "+Math.round(1e3*n)+" ms"),c=u=1),e=this.findBestLevel(o,a,r,i+n,c,u),Math.max(e,0)},i.findBestLevel=function(e,t,i,r,s,a){for(var n,o=this.fragCurrent,l=this.partCurrent,c=this.lastLoadedFragLevel,u=this.hls.levels,d=u[c],h=!(null==d||null==(n=d.details)||!n.live),p=null==d?void 0:d.codecSet,f=l?l.duration:o?o.duration:0,A=i;t<=A;A--){var m=u[A];if(m&&(!p||m.codecSet===p)){var g,m=m.details,m=(l?null==m?void 0:m.partTarget:null==m?void 0:m.averagetargetduration)||f,y=u[A].maxBitrate,v=y*m/(g=A<=c?s*e:a*e);if(b.logger.trace("level/adjustedbw/bitrate/avgDuration/maxFetchDuration/fetchDuration: "+A+"/"+Math.round(g)+"/"+y+"/"+m+"/"+r+"/"+v),y<g&&(!v||h&&!this.bitrateTestDelay||v<r))return A}}return-1},a(n.prototype,[{key:"nextAutoLevel",get:function(){var e=this._nextAutoLevel,t=this.bwEstimator;return-1===e||t&&t.canEstimate()?(t=this.getNextABRAutoLevel(),-1!==e?Math.min(e,t):t):e},set:function(e){this._nextAutoLevel=e}}]),t.default=n},"./src/controller/audio-stream-controller.ts":function(e,t,i){i.r(t);var s=i("./src/polyfills/number.ts"),d=i("./src/controller/base-stream-controller.ts"),h=i("./src/events.ts"),a=i("./src/utils/buffer-helper.ts"),n=i("./src/controller/fragment-tracker.ts"),r=i("./src/types/level.ts"),u=i("./src/types/loader.ts"),p=i("./src/loader/fragment.ts"),f=i("./src/demux/chunk-cache.ts"),A=i("./src/demux/transmuxer-interface.ts"),m=i("./src/types/transmuxer.ts"),o=i("./src/controller/fragment-finders.ts"),l=i("./src/utils/discontinuities.ts"),c=i("./src/errors.ts"),g=i("./src/utils/logger.ts");function y(){return(y=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i,r=arguments[t];for(i in r)Object.prototype.hasOwnProperty.call(r,i)&&(e[i]=r[i])}return e}).apply(this,arguments)}function v(e,t){return(v=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}b=d.default,i=b,(E=S).prototype=Object.create(i.prototype),v(E.prototype.constructor=E,i),(E=S.prototype).onHandlerDestroying=function(){this._unregisterListeners(),this.mainDetails=null},E._registerListeners=function(){var e=this.hls;e.on(h.Events.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(h.Events.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(h.Events.MANIFEST_LOADING,this.onManifestLoading,this),e.on(h.Events.LEVEL_LOADED,this.onLevelLoaded,this),e.on(h.Events.AUDIO_TRACKS_UPDATED,this.onAudioTracksUpdated,this),e.on(h.Events.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.on(h.Events.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.on(h.Events.ERROR,this.onError,this),e.on(h.Events.BUFFER_RESET,this.onBufferReset,this),e.on(h.Events.BUFFER_CREATED,this.onBufferCreated,this),e.on(h.Events.BUFFER_FLUSHED,this.onBufferFlushed,this),e.on(h.Events.INIT_PTS_FOUND,this.onInitPtsFound,this),e.on(h.Events.FRAG_BUFFERED,this.onFragBuffered,this)},E._unregisterListeners=function(){var e=this.hls;e.off(h.Events.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(h.Events.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(h.Events.MANIFEST_LOADING,this.onManifestLoading,this),e.off(h.Events.LEVEL_LOADED,this.onLevelLoaded,this),e.off(h.Events.AUDIO_TRACKS_UPDATED,this.onAudioTracksUpdated,this),e.off(h.Events.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.off(h.Events.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.off(h.Events.ERROR,this.onError,this),e.off(h.Events.BUFFER_RESET,this.onBufferReset,this),e.off(h.Events.BUFFER_CREATED,this.onBufferCreated,this),e.off(h.Events.BUFFER_FLUSHED,this.onBufferFlushed,this),e.off(h.Events.INIT_PTS_FOUND,this.onInitPtsFound,this),e.off(h.Events.FRAG_BUFFERED,this.onFragBuffered,this)},E.onInitPtsFound=function(e,t){var i=t.frag,r=t.id,t=t.initPTS;"main"===r&&(r=i.cc,this.initPTS[i.cc]=t,this.log("InitPTS for cc: "+r+" found from main: "+t),this.videoTrackCC=r,this.state===d.State.WAITING_INIT_PTS)&&this.tick()},E.startLoad=function(e){var t;this.levels?(t=this.lastCurrentTime,this.stopLoad(),this.setInterval(100),(this.fragLoadError=0)<t&&-1===e?(this.log("Override startPosition with lastCurrentTime @"+t.toFixed(3)),this.state=d.State.IDLE):(this.loadedmetadata=!1,this.state=d.State.WAITING_TRACK),this.nextLoadPosition=this.startPosition=this.lastCurrentTime=e,this.tick()):(this.startPosition=e,this.state=d.State.STOPPED)},E.doTick=function(){switch(this.state){case d.State.IDLE:this.doTickIdle();break;case d.State.WAITING_TRACK:var e=this.levels,t=this.trackId,t=null==e||null==(e=e[t])?void 0:e.details;if(t){if(this.waitForCdnTuneIn(t))break;this.state=d.State.WAITING_INIT_PTS}break;case d.State.FRAG_LOADING_WAITING_RETRY:e=performance.now(),t=this.retryDate;(!t||t<=e||null!=(t=this.media)&&t.seeking)&&(this.log("RetryDate reached, switch back to IDLE state"),this.state=d.State.IDLE);break;case d.State.WAITING_INIT_PTS:var i,r,e=this.waitingData;e?(t=e.frag,i=e.part,r=e.cache,e=e.complete,void 0!==this.initPTS[t.cc]?(this.waitingData=null,this.waitingVideoCC=-1,this.state=d.State.FRAG_LOADING,i={frag:t,part:i,payload:r.flush(),networkDetails:null},this._handleFragmentLoadProgress(i),e&&b.prototype._handleFragmentLoadComplete.call(this,i)):this.videoTrackCC!==this.waitingVideoCC?(g.logger.log("Waiting fragment cc ("+t.cc+") cancelled because video is at cc "+this.videoTrackCC),this.clearWaitingFragment()):(r=this.getLoadPosition(),e=a.BufferHelper.bufferInfo(this.mediaBuffer,r,this.config.maxBufferHole),Object(o.fragmentWithinToleranceTest)(e.end,this.config.maxFragLookUpTolerance,t)<0&&(g.logger.log("Waiting fragment cc ("+t.cc+") @ "+t.start+" cancelled because another fragment at "+e.end+" is needed"),this.clearWaitingFragment()))):this.state=d.State.IDLE}this.onTickEnd()},E.clearWaitingFragment=function(){var e=this.waitingData;e&&(this.fragmentTracker.removeFragment(e.frag),this.waitingData=null,this.waitingVideoCC=-1,this.state=d.State.IDLE)},E.onTickEnd=function(){var e,t=this.media;t&&t.readyState&&(e=(this.mediaBuffer||t).buffered,!this.loadedmetadata&&e.length&&(this.loadedmetadata=!0),this.lastCurrentTime=t.currentTime)},E.doTickIdle=function(){var e,t,i=this.hls,r=this.levels,s=this.media,a=this.trackId,n=i.config;r&&r[a]&&(s||!this.startFragRequested&&n.startFragPrefetch)&&(!(n=r[a].details)||n.live&&this.levelLastLoaded!==a||this.waitForCdnTuneIn(n)?this.state=d.State.WAITING_TRACK:(this.bufferFlushed&&(this.bufferFlushed=!1,this.afterBufferFlushed(this.mediaBuffer||this.media,p.ElementaryStreamTypes.AUDIO,u.PlaylistLevelType.AUDIO)),null!==(r=this.getFwdBufferInfo(this.mediaBuffer||this.media,u.PlaylistLevelType.AUDIO))&&(a=r.len,e=this.getMaxBufferLength(),t=this.audioSwitch,e<=a&&!t||(!t&&this._streamEnded(r,n)?(i.trigger(h.Events.BUFFER_EOS,{type:"audio"}),this.state=d.State.ENDED):(e=n.fragments[0].start,a=r.end,t&&(a=i=this.getLoadPosition(),n.PTSKnown)&&i<e&&(r.end>e||r.nextStart)&&(this.log("Alt audio track ahead of main track, seek to start of alt audio track"),s.currentTime=e+.05),(t=this.getNextFragment(a,n))?"identity"!==(null==(i=t.decryptdata)?void 0:i.keyFormat)||null!=(r=t.decryptdata)&&r.key?this.loadFragment(t,n,a):this.loadKey(t,n):this.bufferFlushed=!0)))))},E.getMaxBufferLength=function(){var e=b.prototype.getMaxBufferLength.call(this),t=this.getFwdBufferInfo(this.videoBuffer||this.media,u.PlaylistLevelType.MAIN);return null===t?e:Math.max(e,t.len)},E.onMediaDetaching=function(){this.videoBuffer=null,b.prototype.onMediaDetaching.call(this)},E.onAudioTracksUpdated=function(e,t){t=t.audioTracks;this.resetTransmuxer(),this.levels=t.map(function(e){return new r.Level(e)})},E.onAudioTrackSwitching=function(e,t){var i=!!t.url,t=(this.trackId=t.id,this.fragCurrent);null!=t&&t.loader&&t.loader.abort(),this.fragCurrent=null,this.clearWaitingFragment(),i?this.setInterval(100):this.resetTransmuxer(),i?(this.audioSwitch=!0,this.state=d.State.IDLE):this.state=d.State.STOPPED,this.tick()},E.onManifestLoading=function(){this.mainDetails=null,this.fragmentTracker.removeAllFragments(),this.startPosition=this.lastCurrentTime=0,this.bufferFlushed=!1},E.onLevelLoaded=function(e,t){this.mainDetails=t.details},E.onAudioTrackLoaded=function(e,t){var i=this.levels,r=t.details,t=t.id;if(i){this.log("Track "+t+" loaded ["+r.startSN+","+r.endSN+"],duration:"+r.totalduration);var i=i[t],s=0;if(r.live||null!=(a=i.details)&&a.live){var a=this.mainDetails;if(r.fragments[0]||(r.deltaUpdateFailed=!0),r.deltaUpdateFailed||!a)return;s=!i.details&&r.hasProgramDateTime&&a.hasProgramDateTime?(Object(l.alignMediaPlaylistByPDT)(r,a),r.fragments[0].start):this.alignPlaylists(r,i.details)}i.details=r,this.levelLastLoaded=t,this.startFragRequested||!this.mainDetails&&r.live||this.setStartPosition(i.details,s),this.state!==d.State.WAITING_TRACK||this.waitForCdnTuneIn(r)||(this.state=d.State.IDLE),this.tick()}else this.warn("Audio tracks were reset while loading level "+t)},E._handleFragmentLoadProgress=function(e){var t,i,r,s,a=e.frag,n=e.part,e=e.payload,o=this.config,l=this.trackId,c=this.levels;c?(c=c[l],console.assert(c,"Audio track is defined on fragment load progress"),t=c.details,console.assert(t,"Audio track details are defined on fragment load progress"),o=o.defaultAudioCodec||c.audioCodec||"mp4a.40.2",c=(c=this.transmuxer)||(this.transmuxer=new A.default(this.hls,u.PlaylistLevelType.AUDIO,this._handleTransmuxComplete.bind(this),this._handleTransmuxerFlush.bind(this))),i=this.initPTS[a.cc],r=null==(r=a.initSegment)?void 0:r.data,void 0!==i?(s=n?n.index:-1,s=new m.ChunkMetadata(a.level,a.sn,a.stats.chunkCount,e.byteLength,s,-1!==s),c.push(e,r,o,"",a,n,t.totalduration,!1,s,i)):(g.logger.log("Unknown video PTS for cc "+a.cc+", waiting for video PTS before demuxing audio frag "+a.sn+" of ["+t.startSN+" ,"+t.endSN+"],track "+l),(this.waitingData=this.waitingData||{frag:a,part:n,cache:new f.default,complete:!1}).cache.push(new Uint8Array(e)),this.waitingVideoCC=this.videoTrackCC,this.state=d.State.WAITING_INIT_PTS)):this.warn("Audio tracks were reset while fragment load was in progress. Fragment "+a.sn+" of level "+a.level+" will not be buffered")},E._handleFragmentLoadComplete=function(e){this.waitingData?this.waitingData.complete=!0:b.prototype._handleFragmentLoadComplete.call(this,e)},E.onBufferReset=function(){this.mediaBuffer=this.videoBuffer=null,this.loadedmetadata=!1},E.onBufferCreated=function(e,t){var i=t.tracks.audio;i&&(this.mediaBuffer=i.buffer),t.tracks.video&&(this.videoBuffer=t.tracks.video.buffer)},E.onFragBuffered=function(e,t){var i=t.frag,t=t.part;i.type===u.PlaylistLevelType.AUDIO&&(this.fragContextChanged(i)?this.warn("Fragment "+i.sn+(t?" p: "+t.index:"")+" of level "+i.level+" finished buffering, but was aborted. state: "+this.state+", audioSwitch: "+this.audioSwitch):("initSegment"!==i.sn&&(this.fragPrevious=i,this.audioSwitch)&&(this.audioSwitch=!1,this.hls.trigger(h.Events.AUDIO_TRACK_SWITCHED,{id:this.trackId})),this.fragBufferedComplete(i,t)))},E.onError=function(e,t){switch(t.details){case c.ErrorDetails.FRAG_LOAD_ERROR:case c.ErrorDetails.FRAG_LOAD_TIMEOUT:case c.ErrorDetails.KEY_LOAD_ERROR:case c.ErrorDetails.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(u.PlaylistLevelType.AUDIO,t);break;case c.ErrorDetails.AUDIO_TRACK_LOAD_ERROR:case c.ErrorDetails.AUDIO_TRACK_LOAD_TIMEOUT:this.state!==d.State.ERROR&&this.state!==d.State.STOPPED&&(this.state=t.fatal?d.State.ERROR:d.State.IDLE,this.warn(t.details+" while loading frag, switching to "+this.state+" state"));break;case c.ErrorDetails.BUFFER_FULL_ERROR:var i,r;"audio"!==t.parent||this.state!==d.State.PARSING&&this.state!==d.State.PARSED||(i=!0,(i=(r=this.getFwdBufferInfo(this.mediaBuffer,u.PlaylistLevelType.AUDIO))&&.5<r.len?!this.reduceMaxBufferLength(r.len):i)&&(this.warn("Buffer full error also media.currentTime is not buffered, flush audio buffer"),this.fragCurrent=null,b.prototype.flushMainBuffer.call(this,0,Number.POSITIVE_INFINITY,"audio")),this.resetLoadingState())}},E.onBufferFlushed=function(e,t){t.type===p.ElementaryStreamTypes.AUDIO&&(this.bufferFlushed=!0)},E._handleTransmuxComplete=function(e){var t,i,r,s,a,n,o,l=this.hls,c=e.remuxResult,e=e.chunkMeta,u=this.getCurrentContext(e);u?(t=u.frag,u=u.part,i=c.audio,r=c.text,s=c.id3,c=c.initSegment,this.fragContextChanged(t)||(this.state=d.State.PARSING,this.audioSwitch&&i&&this.completeAudioSwitch(),null!=c&&c.tracks&&(this._bufferInitSegment(c.tracks,t,e),l.trigger(h.Events.FRAG_PARSING_INIT_SEGMENT,{frag:t,id:"audio",tracks:c.tracks})),i&&(c=i.startPTS,n=i.endPTS,o=i.startDTS,a=i.endDTS,u&&(u.elementaryStreams[p.ElementaryStreamTypes.AUDIO]={startPTS:c,endPTS:n,startDTS:o,endDTS:a}),t.setElementaryStreamInfo(p.ElementaryStreamTypes.AUDIO,c,n,o,a),this.bufferFragmentData(i,t,u,e)),null!=s&&null!=(c=s.samples)&&c.length&&(n=y({frag:t,id:"audio"},s),l.trigger(h.Events.FRAG_PARSING_METADATA,n)),r&&(o=y({frag:t,id:"audio"},r),l.trigger(h.Events.FRAG_PARSING_USERDATA,o)))):(this.warn("The loading context changed while buffering fragment "+e.sn+" of level "+e.level+". This chunk will not be buffered."),this.resetLiveStartWhenNotLoaded(e.level))},E._bufferInitSegment=function(e,t,i){var r;this.state===d.State.PARSING&&(e.video&&delete e.video,r=e.audio)&&(r.levelCodec=r.codec,r.id="audio",this.log("Init audio buffer, container:"+r.container+", codecs[parsed]=["+r.codec+"]"),this.hls.trigger(h.Events.BUFFER_CODECS,e),null!=(e=r.initSegment)&&e.byteLength&&(r={type:"audio",frag:t,part:null,chunkMeta:i,parent:t.type,data:e},this.hls.trigger(h.Events.BUFFER_APPENDING,r)),this.tick())},E.loadFragment=function(e,t,i){var r=this.fragmentTracker.getState(e);this.fragCurrent=e,!this.audioSwitch&&r!==n.FragmentState.NOT_LOADED&&r!==n.FragmentState.PARTIAL||("initSegment"===e.sn?this._loadInitSegment(e):t.live&&!Object(s.isFiniteNumber)(this.initPTS[e.cc])?(this.log("Waiting for video PTS in continuity counter "+e.cc+" of live stream before loading audio fragment "+e.sn+" of level "+this.trackId),this.state=d.State.WAITING_INIT_PTS):(this.startFragRequested=!0,b.prototype.loadFragment.call(this,e,t,i)))},E.completeAudioSwitch=function(){var e=this.hls,t=this.media,i=this.trackId;t&&(this.log("Switching audio track : flushing all audio"),b.prototype.flushMainBuffer.call(this,0,Number.POSITIVE_INFINITY,"audio")),this.audioSwitch=!1,e.trigger(h.Events.AUDIO_TRACK_SWITCHED,{id:i})};var b,E,i=S;function S(e,t){return(e=b.call(this,e,t,"[audio-stream-controller]")||this).videoBuffer=null,e.videoTrackCC=-1,e.waitingVideoCC=-1,e.audioSwitch=!1,e.trackId=-1,e.waitingData=null,e.mainDetails=null,e.bufferFlushed=!1,e._registerListeners(),e}t.default=i},"./src/controller/audio-track-controller.ts":function(e,t,i){i.r(t);var l=i("./src/events.ts"),r=i("./src/errors.ts"),s=i("./src/controller/base-playlist-controller.ts"),a=i("./src/types/loader.ts");function n(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function o(e,t){return(o=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}c=s.default,i=c,(s=u).prototype=Object.create(i.prototype),o(s.prototype.constructor=s,i),(s=u.prototype).registerListeners=function(){var e=this.hls;e.on(l.Events.MANIFEST_LOADING,this.onManifestLoading,this),e.on(l.Events.MANIFEST_PARSED,this.onManifestParsed,this),e.on(l.Events.LEVEL_LOADING,this.onLevelLoading,this),e.on(l.Events.LEVEL_SWITCHING,this.onLevelSwitching,this),e.on(l.Events.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.on(l.Events.ERROR,this.onError,this)},s.unregisterListeners=function(){var e=this.hls;e.off(l.Events.MANIFEST_LOADING,this.onManifestLoading,this),e.off(l.Events.MANIFEST_PARSED,this.onManifestParsed,this),e.off(l.Events.LEVEL_LOADING,this.onLevelLoading,this),e.off(l.Events.LEVEL_SWITCHING,this.onLevelSwitching,this),e.off(l.Events.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.off(l.Events.ERROR,this.onError,this)},s.destroy=function(){this.unregisterListeners(),this.tracks.length=0,this.tracksInGroup.length=0,c.prototype.destroy.call(this)},s.onManifestLoading=function(){this.tracks=[],this.groupId=null,this.tracksInGroup=[],this.trackId=-1,this.trackName="",this.selectDefaultTrack=!0},s.onManifestParsed=function(e,t){this.tracks=t.audioTracks||[]},s.onAudioTrackLoaded=function(e,t){var i,r=t.id,s=t.details,a=this.tracksInGroup[r];a?(i=a.details,a.details=t.details,this.log("audioTrack "+r+" loaded ["+s.startSN+"-"+s.endSN+"]"),r===this.trackId&&(this.retryCount=0,this.playlistLoaded(r,t,i))):this.warn("Invalid audio track id "+r)},s.onLevelLoading=function(e,t){this.switchLevel(t.level)},s.onLevelSwitching=function(e,t){this.switchLevel(t.level)},s.switchLevel=function(e){var t,i,e=this.hls.levels[e];null!=e&&e.audioGroupIds&&(t=e.audioGroupIds[e.urlId],this.groupId!==t)&&(this.groupId=t,e=this.tracks.filter(function(e){return!t||e.groupId===t}),this.selectDefaultTrack&&!e.some(function(e){return e.default})&&(this.selectDefaultTrack=!1),i={audioTracks:this.tracksInGroup=e},this.log("Updating audio tracks, "+e.length+' track(s) found in "'+t+'" group-id'),this.hls.trigger(l.Events.AUDIO_TRACKS_UPDATED,i),this.selectInitialTrack())},s.onError=function(e,t){c.prototype.onError.call(this,e,t),!t.fatal&&t.context&&t.context.type===a.PlaylistContextType.AUDIO_TRACK&&t.context.id===this.trackId&&t.context.groupId===this.groupId&&this.retryLoadingOrFail(t)},s.setAudioTrack=function(e){var t,i,r,s,a,n,o=this.tracksInGroup;e<0||e>=o.length?this.warn("Invalid id passed to audio-track controller"):(this.clearTimer(),t=o[this.trackId],this.log("Now switching to audio-track index "+e),i=(o=o[e]).id,r=void 0===(r=o.groupId)?"":r,s=o.name,a=o.type,n=o.url,this.trackId=e,this.trackName=s,this.selectDefaultTrack=!1,this.hls.trigger(l.Events.AUDIO_TRACK_SWITCHING,{id:i,groupId:r,name:s,type:a,url:n}),o.details&&!o.details.live||(e=this.switchParams(o.url,null==t?void 0:t.details),this.loadPlaylist(e)))},s.selectInitialTrack=function(){var e=this.tracksInGroup,e=(console.assert(e.length,"Initial audio track should be selected when tracks are known"),this.trackName),e=this.findTrackId(e)||this.findTrackId();-1!==e?this.setAudioTrack(e):(this.warn("No track found for running audio group-ID: "+this.groupId),this.hls.trigger(l.Events.ERROR,{type:r.ErrorTypes.MEDIA_ERROR,details:r.ErrorDetails.AUDIO_TRACK_LOAD_ERROR,fatal:!0}))},s.findTrackId=function(e){for(var t=this.tracksInGroup,i=0;i<t.length;i++){var r=t[i];if((!this.selectDefaultTrack||r.default)&&(!e||e===r.name))return r.id}return-1},s.loadPlaylist=function(e){var t=this.tracksInGroup[this.trackId];if(this.shouldLoadTrack(t)){var i=t.id,r=t.groupId,t=t.url;if(e)try{t=e.addDirectives(t)}catch(e){this.warn("Could not construct new URL with HLS Delivery Directives: "+e)}this.log("loading audio-track playlist for id: "+i),this.clearTimer(),this.hls.trigger(l.Events.AUDIO_TRACK_LOADING,{url:t,id:i,groupId:r,deliveryDirectives:e||null})}},n(u.prototype,[{key:"audioTracks",get:function(){return this.tracksInGroup}},{key:"audioTrack",get:function(){return this.trackId},set:function(e){this.selectDefaultTrack=!1,this.setAudioTrack(e)}}]);var c,i=u;function u(e){return(e=c.call(this,e,"[audio-track-controller]")||this).tracks=[],e.groupId=null,e.tracksInGroup=[],e.trackId=-1,e.trackName="",e.selectDefaultTrack=!0,e.registerListeners(),e}t.default=i},"./src/controller/base-playlist-controller.ts":function(e,t,i){i.r(t),i.d(t,"default",function(){return a});var o=i("./src/polyfills/number.ts"),l=i("./src/types/level.ts"),f=i("./src/controller/level-helper.ts"),r=i("./src/utils/logger.ts"),s=i("./src/errors.ts"),a=((t=n.prototype).destroy=function(){this.clearTimer(),this.hls=this.log=this.warn=null},t.onError=function(e,t){t.fatal&&t.type===s.ErrorTypes.NETWORK_ERROR&&this.clearTimer()},t.clearTimer=function(){clearTimeout(this.timer),this.timer=-1},t.startLoad=function(){this.canLoad=!0,this.retryCount=0,this.loadPlaylist()},t.stopLoad=function(){this.canLoad=!1,this.clearTimer()},t.switchParams=function(e,t){var i=null==t?void 0:t.renditionReports;if(i)for(var r=0;r<i.length;r++){var s=i[r],a=""+s.URI;if(a===e.substr(-a.length)){var n,a=parseInt(s["LAST-MSN"]),s=parseInt(s["LAST-PART"]);if(t&&this.hls.config.lowLatencyMode&&(n=Math.min(t.age-t.partTarget,t.targetduration),void 0!==s)&&n>t.partTarget&&(s+=1),Object(o.isFiniteNumber)(a))return new l.HlsUrlParameters(a,Object(o.isFiniteNumber)(s)?s:void 0,l.HlsSkip.No)}}},t.loadPlaylist=function(e){},t.shouldLoadTrack=function(e){return this.canLoad&&e&&!!e.url&&(!e.details||e.details.live)},t.playlistLoaded=function(e,t,i){var r=this,s=t.details,a=t.stats,n=a.loading.end?Math.max(0,self.performance.now()-a.loading.end):0;if(s.advancedDateTime=Date.now()-n,s.live||null!=i&&i.live){if(s.reloaded(i),i&&this.log("live playlist "+e+" "+(s.advanced?"REFRESHED "+s.lastPartSn+"-"+s.lastPartIndex:"MISSED")),i&&0<s.fragments.length&&Object(f.mergeDetails)(i,s),this.canLoad&&s.live){var o,n=void 0,l=void 0;if(s.canBlockReload&&s.endSN&&s.advanced){var c=this.hls.config.lowLatencyMode,u=s.lastPartSn,d=s.endSN,h=s.lastPartIndex,p=u===d,u=(-1!==h?(n=p?d+1:u,l=p?c?0:h:h+1):n=d+1,s.age),h=u+s.ageHeader,d=Math.min(h-s.partTarget,1.5*s.targetduration);if(0<d&&(i&&d>i.tuneInGoal?(this.warn("CDN Tune-in goal increased from: "+i.tuneInGoal+" to: "+d+" with playlist age: "+s.age),d=0):(n+=h=Math.floor(d/s.targetduration),void 0!==l&&(l+=Math.round(d%s.targetduration/s.partTarget)),this.log("CDN Tune-in age: "+s.ageHeader+"s last advanced "+u.toFixed(2)+"s goal: "+d+" skip sn "+h+" to part "+l)),s.tuneInGoal=d),o=this.getDeliveryDirectives(s,t.deliveryDirectives,n,l),c||!p)return void this.loadPlaylist(o)}else o=this.getDeliveryDirectives(s,t.deliveryDirectives,n,l);i=Object(f.computeReloadInterval)(s,a);void 0!==n&&s.canBlockReload&&(i-=s.partTarget||1),this.log("reload live playlist "+e+" in "+Math.round(i)+" ms"),this.timer=self.setTimeout(function(){return r.loadPlaylist(o)},i)}}else this.clearTimer()},t.getDeliveryDirectives=function(e,t,i,r){var s=Object(l.getSkipValue)(e,i);return null!=t&&t.skip&&e.deltaUpdateFailed&&(i=t.msn,r=t.part,s=l.HlsSkip.No),new l.HlsUrlParameters(i,r,s)},t.retryLoadingOrFail=function(e){var t,i=this,r=this.hls.config,s=this.retryCount<r.levelLoadingMaxRetry;return s?(this.retryCount++,-1<e.details.indexOf("LoadTimeOut")&&null!=(t=e.context)&&t.deliveryDirectives?(this.warn("retry playlist loading #"+this.retryCount+' after "'+e.details+'"'),this.loadPlaylist()):(t=Math.min(Math.pow(2,this.retryCount)*r.levelLoadingRetryDelay,r.levelLoadingMaxRetryTimeout),this.timer=self.setTimeout(function(){return i.loadPlaylist()},t),this.warn("retry playlist loading #"+this.retryCount+" in "+t+' ms after "'+e.details+'"'))):(this.warn('cannot recover from error "'+e.details+'"'),this.clearTimer(),e.fatal=!0),s},n);function n(e,t){this.hls=void 0,this.timer=-1,this.canLoad=!1,this.retryCount=0,this.log=void 0,this.warn=void 0,this.log=r.logger.log.bind(r.logger,t+":"),this.warn=r.logger.warn.bind(r.logger,t+":"),this.hls=e}},"./src/controller/base-stream-controller.ts":function(e,t,i){i.r(t),i.d(t,"State",function(){return E}),i.d(t,"default",function(){return S});var l=i("./src/polyfills/number.ts"),t=i("./src/task-loop.ts"),d=i("./src/controller/fragment-tracker.ts"),n=i("./src/utils/buffer-helper.ts"),s=i("./src/utils/logger.ts"),h=i("./src/events.ts"),r=i("./src/errors.ts"),a=i("./src/types/transmuxer.ts"),o=i("./src/utils/mp4-tools.ts"),c=i("./src/utils/discontinuities.ts"),p=i("./src/controller/fragment-finders.ts"),u=i("./src/controller/level-helper.ts"),f=i("./src/loader/fragment-loader.ts"),A=i("./src/crypt/decrypter.ts"),m=i("./src/utils/time-ranges.ts"),g=i("./src/types/loader.ts");function y(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function v(e,t){return(v=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var b,E={STOPPED:"STOPPED",IDLE:"IDLE",KEY_LOADING:"KEY_LOADING",FRAG_LOADING:"FRAG_LOADING",FRAG_LOADING_WAITING_RETRY:"FRAG_LOADING_WAITING_RETRY",WAITING_TRACK:"WAITING_TRACK",PARSING:"PARSING",PARSED:"PARSED",BACKTRACKING:"BACKTRACKING",ENDED:"ENDED",ERROR:"ERROR",WAITING_INIT_PTS:"WAITING_INIT_PTS",WAITING_LEVEL:"WAITING_LEVEL"},S=(b=t.default,i=b,(t=T).prototype=Object.create(i.prototype),v(t.prototype.constructor=t,i),(t=T.prototype).doTick=function(){this.onTickEnd()},t.onTickEnd=function(){},t.startLoad=function(e){},t.stopLoad=function(){this.fragmentLoader.abort();var e=this.fragCurrent;e&&this.fragmentTracker.removeFragment(e),this.resetTransmuxer(),this.fragCurrent=null,this.fragPrevious=null,this.clearInterval(),this.clearNextTick(),this.state=E.STOPPED},t._streamEnded=function(e,t){var i=this.fragCurrent,r=this.fragmentTracker;return!(!(!t.live&&i&&i.sn>=t.endSN)||e.nextStart)&&(null!=(e=t.partList)&&e.length?(t=e[e.length-1],n.BufferHelper.isBuffered(this.media,t.start+t.duration/2)):(e=r.getState(i))===d.FragmentState.PARTIAL||e===d.FragmentState.OK)},t.onMediaAttached=function(e,t){t=this.media=this.mediaBuffer=t.media,this.onvseeking=this.onMediaSeeking.bind(this),this.onvended=this.onMediaEnded.bind(this),t.addEventListener("seeking",this.onvseeking),t.addEventListener("ended",this.onvended),t=this.config;this.levels&&t.autoStartLoad&&this.state===E.STOPPED&&this.startLoad(t.startPosition)},t.onMediaDetaching=function(){var e=this.media;null!=e&&e.ended&&(this.log("MSE detaching and video ended, reset startPosition"),this.startPosition=this.lastCurrentTime=0),e&&(e.removeEventListener("seeking",this.onvseeking),e.removeEventListener("ended",this.onvended),this.onvseeking=this.onvended=null),this.media=this.mediaBuffer=null,this.loadedmetadata=!1,this.fragmentTracker.removeAllFragments(),this.stopLoad()},t.onMediaSeeking=function(){var e=this.config,t=this.fragCurrent,i=this.media,r=this.mediaBuffer,s=this.state,a=i?i.currentTime:0,r=n.BufferHelper.bufferInfo(r||i,a,e.maxBufferHole);this.log("media seeking to "+(Object(l.isFiniteNumber)(a)?a.toFixed(3):a)+", state: "+s),s===E.ENDED?this.resetLoadingState():t&&!r.len&&(s=e.maxFragLookUpTolerance,e=t.start-s,s=a>t.start+t.duration+s,a<e||s)&&(s&&t.loader&&(this.log("seeking outside of buffer while fragment load in progress, cancel fragment load"),t.loader.abort()),this.resetLoadingState()),i&&(this.lastCurrentTime=a),this.loadedmetadata||r.len||(this.nextLoadPosition=this.startPosition=a),this.tickImmediate()},t.onMediaEnded=function(){this.startPosition=this.lastCurrentTime=0},t.onKeyLoaded=function(e,t){var i;this.state===E.KEY_LOADING&&t.frag===this.fragCurrent&&this.levels&&(this.state=E.IDLE,i=this.levels[t.frag.level].details)&&this.loadFragment(t.frag,i,t.frag.start)},t.onHandlerDestroying=function(){this.stopLoad(),b.prototype.onHandlerDestroying.call(this)},t.onHandlerDestroyed=function(){this.state=E.STOPPED,this.hls.off(h.Events.KEY_LOADED,this.onKeyLoaded,this),this.fragmentLoader&&this.fragmentLoader.destroy(),this.decrypter&&this.decrypter.destroy(),this.hls=this.log=this.warn=this.decrypter=this.fragmentLoader=this.fragmentTracker=null,b.prototype.onHandlerDestroyed.call(this)},t.loadKey=function(e,t){this.log("Loading key for "+e.sn+" of ["+t.startSN+"-"+t.endSN+"], "+("[stream-controller]"===this.logPrefix?"level":"track")+" "+e.level),this.state=E.KEY_LOADING,this.fragCurrent=e,this.hls.trigger(h.Events.KEY_LOADING,{frag:e})},t.loadFragment=function(e,t,i){this._loadFragForPlayback(e,t,i)},t._loadFragForPlayback=function(i,e,t){var r=this;this._doFragLoad(i,e,t,function(e){r.fragContextChanged(i)?(r.warn("Fragment "+i.sn+(e.part?" p: "+e.part.index:"")+" of level "+i.level+" was dropped during download."),r.fragmentTracker.removeFragment(i)):(i.stats.chunkCount++,r._handleFragmentLoadProgress(e))}).then(function(e){if(e){r.fragLoadError=0;var t=r.state;if(!r.fragContextChanged(i))return"payload"in e&&(r.log("Loaded fragment "+i.sn+" of level "+i.level),r.hls.trigger(h.Events.FRAG_LOADED,e),r.state===E.BACKTRACKING)?(r.fragmentTracker.backtrack(i,e),void r.resetFragmentLoading(i)):void r._handleFragmentLoadComplete(e);t!==E.FRAG_LOADING&&t!==E.BACKTRACKING&&(r.fragCurrent||t!==E.PARSING)||(r.fragmentTracker.removeFragment(i),r.state=E.IDLE)}}).catch(function(e){r.warn(e),r.resetFragmentLoading(i)})},t.flushMainBuffer=function(e,t,i){void 0===i&&(i=null),e-t&&(e={startOffset:e,endOffset:t,type:i},this.fragLoadError=0,this.hls.trigger(h.Events.BUFFER_FLUSHING,e))},t._loadInitSegment=function(a){var n=this;this._doFragLoad(a).then(function(e){if(e&&!n.fragContextChanged(a)&&n.levels)return e;throw new Error("init load aborted")}).then(function(i){var r,s=n.hls,e=i.payload,t=a.decryptdata;return e&&0<e.byteLength&&t&&t.key&&t.iv&&"AES-128"===t.method?(r=self.performance.now(),n.decrypter.webCryptoDecrypt(new Uint8Array(e),t.key.buffer,t.iv.buffer).then(function(e){var t=self.performance.now();return s.trigger(h.Events.FRAG_DECRYPTED,{frag:a,payload:e,stats:{tstart:r,tdecrypt:t}}),i.payload=e,i})):i}).then(function(e){var t=n.fragCurrent,i=n.hls,r=n.levels;if(!r)throw new Error("init load aborted, missing levels");r=r[a.level].details,console.assert(r,"Level details are defined when init segment is loaded"),r=a.stats;n.state=E.IDLE,n.fragLoadError=0,a.data=new Uint8Array(e.payload),r.parsing.start=r.buffering.start=self.performance.now(),r.parsing.end=r.buffering.end=self.performance.now(),e.frag===t&&i.trigger(h.Events.FRAG_BUFFERED,{stats:r,frag:t,part:null,id:a.type}),n.tick()}).catch(function(e){n.warn(e),n.resetFragmentLoading(a)})},t.fragContextChanged=function(e){var t=this.fragCurrent;return!e||!t||e.level!==t.level||e.sn!==t.sn||e.urlId!==t.urlId},t.fragBufferedComplete=function(e,t){var i=this.mediaBuffer||this.media;this.log("Buffered "+e.type+" sn: "+e.sn+(t?" part: "+t.index:"")+" of "+("[stream-controller]"===this.logPrefix?"level":"track")+" "+e.level+" "+m.default.toString(n.BufferHelper.getBuffered(i))),this.state=E.IDLE,this.tick()},t._handleFragmentLoadComplete=function(e){var t,i,r=this.transmuxer;r&&(i=e.frag,t=e.part,e=!(e=e.partsLoaded)||0===e.length||e.some(function(e){return!e}),i=new a.ChunkMetadata(i.level,i.sn,i.stats.chunkCount+1,0,t?t.index:-1,!e),r.flush(i))},t._handleFragmentLoadProgress=function(e){},t._doFragLoad=function(e,t,i,r){var s=this;if(void 0===i&&(i=null),!this.levels)throw new Error("frag load aborted, missing levels");if(i=Math.max(e.start,i||0),this.config.lowLatencyMode&&t){var a=t.partList;if(a&&r){i>e.end&&t.fragmentHint&&(e=t.fragmentHint);var n,o=this.getNextPart(a,e,i);if(-1<o)return n=a[o],this.log("Loading part sn: "+e.sn+" p: "+n.index+" cc: "+e.cc+" of playlist ["+t.startSN+"-"+t.endSN+"] parts [0-"+o+"-"+(a.length-1)+"] "+("[stream-controller]"===this.logPrefix?"level":"track")+": "+e.level+", target: "+parseFloat(i.toFixed(3))),this.nextLoadPosition=n.start+n.duration,this.state=E.FRAG_LOADING,this.hls.trigger(h.Events.FRAG_LOADING,{frag:e,part:a[o],targetBufferTime:i}),this.doFragPartsLoad(e,a,o,r).catch(function(e){return s.handleFragLoadError(e)});if(!e.url||this.loadedEndOfParts(a,i))return Promise.resolve(null)}}return this.log("Loading fragment "+e.sn+" cc: "+e.cc+" "+(t?"of ["+t.startSN+"-"+t.endSN+"] ":"")+("[stream-controller]"===this.logPrefix?"level":"track")+": "+e.level+", target: "+parseFloat(i.toFixed(3))),Object(l.isFiniteNumber)(e.sn)&&!this.bitrateTest&&(this.nextLoadPosition=e.start+e.duration),this.state=E.FRAG_LOADING,this.hls.trigger(h.Events.FRAG_LOADING,{frag:e,targetBufferTime:i}),this.fragmentLoader.load(e,r).catch(function(e){return s.handleFragLoadError(e)})},t.doFragPartsLoad=function(o,l,t,c){var u=this;return new Promise(function(a,e){var n=[];!function i(r){var s=l[r];u.fragmentLoader.loadPart(o,s,c).then(function(e){var t=(n[s.index]=e).part,e=(u.hls.trigger(h.Events.FRAG_LOADED,e),l[r+1]);if(!e||e.fragment!==o)return a({frag:o,part:t,partsLoaded:n});i(r+1)}).catch(e)}(t)})},t.handleFragLoadError=function(e){e=e.data;return e&&e.details===r.ErrorDetails.INTERNAL_ABORTED?this.handleFragLoadAborted(e.frag,e.part):this.hls.trigger(h.Events.ERROR,e),null},t._handleTransmuxerFlush=function(e){var t,i,r,s=this.getCurrentContext(e);s&&this.state===E.PARSING?(t=s.frag,i=s.part,s=s.level,r=self.performance.now(),t.stats.parsing.end=r,i&&(i.stats.parsing.end=r),this.updateLevelTiming(t,i,s,e.partial)):this.fragCurrent||(this.state=E.IDLE)},t.getCurrentContext=function(e){var t,i=this.levels,r=e.level,s=e.sn,e=e.part;return i&&i[r]?(i=i[r],(t=(e=-1<e?Object(u.getPartWith)(i,s,e):null)?e.fragment:Object(u.getFragmentWithSN)(i,s,this.fragCurrent))?{frag:t,part:e,level:i}:null):(this.warn("Levels object was unset while buffering fragment "+s+" of level "+r+". The current chunk will not be buffered."),null)},t.bufferFragmentData=function(e,t,i,r){var s,a,n;e&&this.state===E.PARSING&&(n=e.data1,s=e.data2,a=(a=n)&&s?Object(o.appendUint8Array)(n,s):a)&&a.length&&(n={type:e.type,frag:t,part:i,chunkMeta:r,parent:t.type,data:a},this.hls.trigger(h.Events.BUFFER_APPENDING,n),e.dropped)&&e.independent&&!i&&this.flushBufferGap(t)},t.flushBufferGap=function(e){var t,i,r=this.media;r&&(n.BufferHelper.isBuffered(r,r.currentTime)?(t=r.currentTime,r=n.BufferHelper.bufferInfo(r,t,0),i=e.duration,i=Math.min(2*this.config.maxFragLookUpTolerance,.25*i),r=Math.max(Math.min(e.start-i,r.end-i),t+i),e.start-r>i&&this.flushMainBuffer(r,e.start)):this.flushMainBuffer(0,e.start))},t.getFwdBufferInfo=function(e,t){var i=this.config,r=this.getLoadPosition();if(!Object(l.isFiniteNumber)(r))return null;var s=n.BufferHelper.bufferInfo(e,r,i.maxBufferHole);if(0===s.len&&void 0!==s.nextStart){t=this.fragmentTracker.getBufferedFrag(r,t);if(t&&s.nextStart<t.end)return n.BufferHelper.bufferInfo(e,r,Math.max(s.nextStart,i.maxBufferHole))}return s},t.getMaxBufferLength=function(e){var t=this.config,e=e?Math.max(8*t.maxBufferSize/e,t.maxBufferLength):t.maxBufferLength;return Math.min(e,t.maxMaxBufferLength)},t.reduceMaxBufferLength=function(e){var t=this.config,e=e||t.maxBufferLength;return t.maxMaxBufferLength>=e&&(t.maxMaxBufferLength/=2,this.warn("Reduce max buffer length to "+t.maxMaxBufferLength+"s"),!0)},t.getNextFragment=function(e,t){var i=t.fragments,r=i.length;if(!r)return null;var s,a=this.config,n=i[0].start;if(t.live){var o=a.initialLiveManifestSize;if(r<o)return this.warn("Not enough fragments to start playback (have: "+r+", need: "+o+")"),null;t.PTSKnown||this.startFragRequested||-1!==this.startPosition||(s=this.getInitialLiveFragment(t,i),this.startPosition=s?this.hls.liveSyncPosition||s.start:e)}else e<=n&&(s=i[0]);return s||(r=a.lowLatencyMode?t.partEnd:t.fragmentEnd,s=this.getFragmentAtPosition(e,r,t)),s=null==(o=s)||!o.initSegment||null!=(n=s)&&n.initSegment.data||this.bitrateTest?s:s.initSegment},t.getNextPart=function(e,t,i){for(var r=-1,s=!1,a=!0,n=0,o=e.length;n<o;n++){var l=e[n],a=a&&!l.independent;if(-1<r&&i<l.start)break;var c=l.loaded;!c&&(s||l.independent||a)&&l.fragment===t&&(r=n),s=c}return r},t.loadedEndOfParts=function(e,t){e=e[e.length-1];return e&&t>e.start&&e.loaded},t.getInitialLiveFragment=function(e,t){var i,r=this.fragPrevious,s=null;return r?(e.hasProgramDateTime&&(this.log("Live playlist, switching playlist, load frag with same PDT: "+r.programDateTime),s=Object(p.findFragmentByPDT)(t,r.endProgramDateTime,this.config.maxFragLookUpTolerance)),s||((i=r.sn+1)>=e.startSN&&i<=e.endSN&&(i=t[i-e.startSN],r.cc===i.cc)&&this.log("Live playlist, switching playlist, load frag with next SN: "+(s=i).sn),s)||(s=Object(p.findFragWithCC)(t,r.cc))&&this.log("Live playlist, switching playlist, load frag with same CC: "+s.sn)):null!==(i=this.hls.liveSyncPosition)&&(s=this.getFragmentAtPosition(i,this.bitrateTest?e.fragmentEnd:e.edge,e)),s},t.getFragmentAtPosition=function(e,t,i){var r,s=this.config,a=this.fragPrevious,n=i.fragments,o=i.endSN,l=i.fragmentHint,c=s.maxFragLookUpTolerance,s=!!(s.lowLatencyMode&&i.partList&&l);if(s&&l&&!this.bitrateTest&&(n=n.concat(l),o=l.sn),r=e<t?(l=t-c<e?0:c,Object(p.findFragmentByPTS)(a,n,e,l)):n[n.length-1]){t=r.sn-i.startSN,c=a&&r.level===a.level,e=n[1+t];if(this.fragmentTracker.getState(r)===d.FragmentState.BACKTRACKED){r=null;for(var u=t;n[u]&&this.fragmentTracker.getState(n[u])===d.FragmentState.BACKTRACKED;)r=a?n[u--]:n[--u];r=r||e}else a&&r.sn===a.sn&&!s&&c&&(r=r.sn<o&&this.fragmentTracker.getState(e)!==d.FragmentState.OK?(this.log("SN "+r.sn+" just loaded, load next one: "+e.sn),e):null)}return r},t.synchronizeToLiveEdge=function(e){var t,i,r,s,a=this.config,n=this.media;n&&(t=this.hls.liveSyncPosition,i=n.currentTime,s=e.fragments[0].start,r=e.edge,s=i>=s-a.maxFragLookUpTolerance&&i<=r,null!==t)&&n.duration>t&&(i<t||!s)&&(a=void 0!==a.liveMaxLatencyDuration?a.liveMaxLatencyDuration:a.liveMaxLatencyDurationCount*e.targetduration,!s&&n.readyState<4||i<r-a)&&(this.loadedmetadata||(this.nextLoadPosition=t),n.readyState)&&(this.warn("Playback: "+i.toFixed(3)+" is located too far from the end of live sliding playlist: "+r+", reset currentTime to : "+t.toFixed(3)),n.currentTime=t)},t.alignPlaylists=function(e,t){var i,r,s,a=this.levels,n=this.levelLastLoaded,o=this.fragPrevious,a=null!==n?a[n]:null,n=e.fragments.length;return n?(i=e.fragments[0].start,s=!t,r=e.alignedSliding&&Object(l.isFiniteNumber)(i),s||!r&&!i?(Object(c.alignStream)(o,a,e),s=e.fragments[0].start,this.log("Live playlist sliding: "+s.toFixed(2)+" start-sn: "+(t?t.startSN:"na")+"->"+e.startSN+" prev-sn: "+(o?o.sn:"na")+" fragments: "+n),s):i):(this.warn("No fragments in live playlist"),0)},t.waitForCdnTuneIn=function(e){return e.live&&e.canBlockReload&&e.tuneInGoal>Math.max(e.partHoldBack,3*e.partTarget)},t.setStartPosition=function(e,t){var i,r=this.startPosition;-1!==(r=r<t?-1:r)&&-1!==this.lastCurrentTime||(i=e.startTimeOffset,Object(l.isFiniteNumber)(i)?(r=t+i,i<0&&(r+=e.totalduration),r=Math.min(Math.max(t,r),t+e.totalduration),this.log("Start time offset "+i+" found in playlist, adjust startPosition to "+r),this.startPosition=r):e.live?r=this.hls.liveSyncPosition||t:this.startPosition=r=0,this.lastCurrentTime=r),this.nextLoadPosition=r},t.getLoadPosition=function(){var e=this.media,t=0;return this.loadedmetadata&&e?t=e.currentTime:this.nextLoadPosition&&(t=this.nextLoadPosition),t},t.handleFragLoadAborted=function(e,t){this.transmuxer&&"initSegment"!==e.sn&&e.stats.aborted&&(this.warn("Fragment "+e.sn+(t?" part"+t.index:"")+" of level "+e.level+" was aborted"),this.resetFragmentLoading(e))},t.resetFragmentLoading=function(e){this.fragCurrent&&this.fragContextChanged(e)||(this.state=E.IDLE)},t.onFragmentOrKeyLoadError=function(e,t){var i,r;t.fatal||(i=t.frag)&&i.type===e&&(r=this.fragCurrent,console.assert(r&&i.sn===r.sn&&i.level===r.level&&i.urlId===r.urlId,"Frag load error must match current frag to retry"),r=this.config,this.fragLoadError+1<=r.fragLoadingMaxRetry?this.resetLiveStartWhenNotLoaded(i.level)||(r=Math.min(Math.pow(2,this.fragLoadError)*r.fragLoadingRetryDelay,r.fragLoadingMaxRetryTimeout),this.warn("Fragment "+i.sn+" of "+e+" "+i.level+" failed to load, retrying in "+r+"ms"),this.retryDate=self.performance.now()+r,this.fragLoadError++,this.state=E.FRAG_LOADING_WAITING_RETRY):t.levelRetry?(e===g.PlaylistLevelType.AUDIO&&(this.fragCurrent=null),this.fragLoadError=0,this.state=E.IDLE):(s.logger.error(t.details+" reaches max retry, redispatch as fatal ..."),t.fatal=!0,this.hls.stopLoad(),this.state=E.ERROR))},t.afterBufferFlushed=function(e,t,i){e&&(e=n.BufferHelper.getBuffered(e),this.fragmentTracker.detectEvictedFragments(t,e,i),this.state===E.ENDED)&&this.resetLoadingState()},t.resetLoadingState=function(){this.fragCurrent=null,this.fragPrevious=null,this.state=E.IDLE},t.resetLiveStartWhenNotLoaded=function(e){if(!this.loadedmetadata){this.startFragRequested=!1;e=this.levels?this.levels[e].details:null;if(null!=e&&e.live)return this.startPosition=-1,this.setStartPosition(e,0),this.resetLoadingState(),!0;this.nextLoadPosition=this.startPosition}return!1},t.updateLevelTiming=function(s,e,a,n){var o=this,l=a.details;console.assert(!!l,"level.details must be defined"),Object.keys(s.elementaryStreams).reduce(function(e,t){var i,r=s.elementaryStreams[t];return r?(i=r.endPTS-r.startPTS)<=0?(o.warn("Could not parse fragment "+s.sn+" "+t+" duration reliably ("+i+") resetting transmuxer to fallback to playlist timing"),o.resetTransmuxer(),e||!1):(i=n?0:Object(u.updateFragPTSDTS)(l,s,r.startPTS,r.endPTS,r.startDTS,r.endDTS),o.hls.trigger(h.Events.LEVEL_PTS_UPDATED,{details:l,level:a,drift:i,type:t,frag:s,start:r.startPTS,end:r.endPTS}),!0):e},!1)?(this.state=E.PARSED,this.hls.trigger(h.Events.FRAG_PARSED,{frag:s,part:e})):this.resetLoadingState()},t.resetTransmuxer=function(){this.transmuxer&&(this.transmuxer.destroy(),this.transmuxer=null)},y(T.prototype,[{key:"state",get:function(){return this._state},set:function(e){var t=this._state;t!==e&&(this._state=e,this.log(t+"->"+e))}}]),T);function T(e,t,i){var r;return(r=b.call(this)||this).hls=void 0,r.fragPrevious=null,r.fragCurrent=null,r.fragmentTracker=void 0,r.transmuxer=null,r._state=E.STOPPED,r.media=void 0,r.mediaBuffer=void 0,r.config=void 0,r.bitrateTest=!1,r.lastCurrentTime=0,r.nextLoadPosition=0,r.startPosition=0,r.loadedmetadata=!1,r.fragLoadError=0,r.retryDate=0,r.levels=null,r.fragmentLoader=void 0,r.levelLastLoaded=null,r.startFragRequested=!1,r.decrypter=void 0,r.initPTS=[],r.onvseeking=null,r.onvended=null,r.logPrefix="",r.log=void 0,r.warn=void 0,r.logPrefix=i,r.log=s.logger.log.bind(s.logger,i+":"),r.warn=s.logger.warn.bind(s.logger,i+":"),r.hls=e,r.fragmentLoader=new f.default(e.config),r.fragmentTracker=t,r.config=e.config,r.decrypter=new A.default(e,e.config),e.on(h.Events.KEY_LOADED,r.onKeyLoaded,function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(r)),r}},"./src/controller/buffer-controller.ts":function(e,t,i){i.r(t),i.d(t,"default",function(){return a});var l=i("./src/polyfills/number.ts"),A=i("./src/events.ts"),m=i("./src/utils/logger.ts"),g=i("./src/errors.ts"),y=i("./src/utils/buffer-helper.ts"),t=i("./src/utils/mediasource-helper.ts"),n=i("./src/loader/fragment.ts"),r=i("./src/controller/buffer-operation-queue.ts"),s=Object(t.getMediaSource)(),c=/([ha]vc.)(?:\.[^.,]+)+/,a=((i=o.prototype).hasSourceTypes=function(){return 0<this.getSourceBufferTypes().length||0<Object.keys(this.pendingTracks).length},i.destroy=function(){this.unregisterListeners(),this.details=null},i.registerListeners=function(){var e=this.hls;e.on(A.Events.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(A.Events.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(A.Events.MANIFEST_PARSED,this.onManifestParsed,this),e.on(A.Events.BUFFER_RESET,this.onBufferReset,this),e.on(A.Events.BUFFER_APPENDING,this.onBufferAppending,this),e.on(A.Events.BUFFER_CODECS,this.onBufferCodecs,this),e.on(A.Events.BUFFER_EOS,this.onBufferEos,this),e.on(A.Events.BUFFER_FLUSHING,this.onBufferFlushing,this),e.on(A.Events.LEVEL_UPDATED,this.onLevelUpdated,this),e.on(A.Events.FRAG_PARSED,this.onFragParsed,this),e.on(A.Events.FRAG_CHANGED,this.onFragChanged,this)},i.unregisterListeners=function(){var e=this.hls;e.off(A.Events.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(A.Events.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(A.Events.MANIFEST_PARSED,this.onManifestParsed,this),e.off(A.Events.BUFFER_RESET,this.onBufferReset,this),e.off(A.Events.BUFFER_APPENDING,this.onBufferAppending,this),e.off(A.Events.BUFFER_CODECS,this.onBufferCodecs,this),e.off(A.Events.BUFFER_EOS,this.onBufferEos,this),e.off(A.Events.BUFFER_FLUSHING,this.onBufferFlushing,this),e.off(A.Events.LEVEL_UPDATED,this.onLevelUpdated,this),e.off(A.Events.FRAG_PARSED,this.onFragParsed,this),e.off(A.Events.FRAG_CHANGED,this.onFragChanged,this)},i._initSourceBuffer=function(){this.sourceBuffer={},this.operationQueue=new r.default(this.sourceBuffer),this.listeners={audio:[],video:[],audiovideo:[]}},i.onManifestParsed=function(e,t){var i=2;(!t.audio||t.video)&&t.altAudio||(i=1),this.bufferCodecEventsExpected=this._bufferCodecEventsTotal=i,this.details=null,m.logger.log(this.bufferCodecEventsExpected+" bufferCodec event(s) expected")},i.onMediaAttaching=function(e,t){var i,t=this.media=t.media;t&&s&&((i=this.mediaSource=new s).addEventListener("sourceopen",this._onMediaSourceOpen),i.addEventListener("sourceended",this._onMediaSourceEnded),i.addEventListener("sourceclose",this._onMediaSourceClose),t.src=self.URL.createObjectURL(i),this._objectUrl=t.src)},i.onMediaDetaching=function(){var e=this.media,t=this.mediaSource,i=this._objectUrl;if(t){if(m.logger.log("[buffer-controller]: media source detaching"),"open"===t.readyState)try{t.endOfStream()}catch(e){m.logger.warn("[buffer-controller]: onMediaDetaching: "+e.message+" while calling endOfStream")}this.onBufferReset(),t.removeEventListener("sourceopen",this._onMediaSourceOpen),t.removeEventListener("sourceended",this._onMediaSourceEnded),t.removeEventListener("sourceclose",this._onMediaSourceClose),e&&(i&&self.URL.revokeObjectURL(i),e.src===i?(e.removeAttribute("src"),e.load()):m.logger.warn("[buffer-controller]: media.src was changed by a third party - skip cleanup")),this.mediaSource=null,this.media=null,this._objectUrl=null,this.bufferCodecEventsExpected=this._bufferCodecEventsTotal,this.pendingTracks={},this.tracks={}}this.hls.trigger(A.Events.MEDIA_DETACHED,void 0)},i.onBufferReset=function(){var i=this;this.getSourceBufferTypes().forEach(function(t){var e=i.sourceBuffer[t];try{e&&(i.removeBufferListeners(t),i.mediaSource&&i.mediaSource.removeSourceBuffer(e),i.sourceBuffer[t]=void 0)}catch(e){m.logger.warn("[buffer-controller]: Failed to reset the "+t+" buffer",e)}}),this._initSourceBuffer()},i.onBufferCodecs=function(e,a){var n=this,o=this.getSourceBufferTypes().length;Object.keys(a).forEach(function(e){var t,i,r,s;o?(t=n.tracks[e])&&"function"==typeof t.buffer.changeType&&(i=(s=a[e]).codec,r=s.levelCodec,s=s.container,(t.levelCodec||t.codec).replace(c,"$1")!==(r||i).replace(c,"$1"))&&n.appendChangeType(e,s+";codecs="+(r||i)):n.pendingTracks[e]=a[e]}),o||(this.bufferCodecEventsExpected=Math.max(this.bufferCodecEventsExpected-1,0),this.mediaSource&&"open"===this.mediaSource.readyState&&this.checkPendingTracks())},i.appendChangeType=function(t,i){var r=this,s=this.operationQueue;s.append({execute:function(){var e=r.sourceBuffer[t];e&&(m.logger.log("[buffer-controller]: changing "+t+" sourceBuffer type to "+i),e.changeType(i)),s.shiftAndExecuteNext(t)},onStart:function(){},onComplete:function(){},onError:function(e){m.logger.warn("[buffer-controller]: Failed to change "+t+" SourceBuffer type",e)}},t)},i.onBufferAppending=function(e,t){var s=this,i=this.hls,r=this.operationQueue,a=this.tracks,n=t.data,o=t.type,l=t.frag,c=t.part,u=t.chunkMeta,d=u.buffering[o],t=self.performance.now(),h=(d.start=t,l.stats.buffering),p=c?c.stats.buffering:null,t=(0===h.start&&(h.start=t),p&&0===p.start&&(p.start=t),a.audio),f="audio"===o&&1===u.id&&"audio/mpeg"===(null==t?void 0:t.container);r.append({execute:function(){var e,t;d.executeStart=self.performance.now(),f&&(e=s.sourceBuffer[o])&&(t=l.start-e.timestampOffset,.1<=Math.abs(t))&&(m.logger.log("[buffer-controller]: Updating audio SourceBuffer timestampOffset to "+l.start+" (delta: "+t+") sn: "+l.sn+")"),e.timestampOffset=l.start),s.appendExecutor(n,o)},onStart:function(){},onComplete:function(){var e,t=self.performance.now(),i=(d.executeEnd=d.end=t,0===h.first&&(h.first=t),p&&0===p.first&&(p.first=t),s.sourceBuffer),r={};for(e in i)r[e]=y.BufferHelper.getBuffered(i[e]);s.appendError=0,s.hls.trigger(A.Events.BUFFER_APPENDED,{type:o,frag:l,part:c,chunkMeta:u,parent:l.type,timeRanges:r})},onError:function(e){m.logger.error("[buffer-controller]: Error encountered while trying to append to the "+o+" SourceBuffer",e);var t={type:g.ErrorTypes.MEDIA_ERROR,parent:l.type,details:g.ErrorDetails.BUFFER_APPEND_ERROR,err:e,fatal:!1};e.code===DOMException.QUOTA_EXCEEDED_ERR?t.details=g.ErrorDetails.BUFFER_FULL_ERROR:(s.appendError++,t.details=g.ErrorDetails.BUFFER_APPEND_ERROR,s.appendError>i.config.appendErrorMaxRetry&&(m.logger.error("[buffer-controller]: Failed "+i.config.appendErrorMaxRetry+" times to append segment in sourceBuffer"),t.fatal=!0)),i.trigger(A.Events.ERROR,t)}},o)},i.onBufferFlushing=function(e,i){function t(t){return{execute:r.removeExecutor.bind(r,t,i.startOffset,i.endOffset),onStart:function(){},onComplete:function(){r.hls.trigger(A.Events.BUFFER_FLUSHED,{type:t})},onError:function(e){m.logger.warn("[buffer-controller]: Failed to remove from "+t+" SourceBuffer",e)}}}var r=this,s=this.operationQueue;i.type?s.append(t(i.type),i.type):this.getSourceBufferTypes().forEach(function(e){s.append(t(e),e)})},i.onFragParsed=function(e,t){var i=this,r=t.frag,s=t.part,t=[],a=(s||r).elementaryStreams;a[n.ElementaryStreamTypes.AUDIOVIDEO]?t.push("audiovideo"):(a[n.ElementaryStreamTypes.AUDIO]&&t.push("audio"),a[n.ElementaryStreamTypes.VIDEO]&&t.push("video")),0===t.length&&m.logger.warn("Fragments must have at least one ElementaryStreamType set. type: "+r.type+" level: "+r.level+" sn: "+r.sn),this.blockBuffers(function(){var e=self.performance.now(),e=(r.stats.buffering.end=e,s&&(s.stats.buffering.end=e),(s||r).stats);i.hls.trigger(A.Events.FRAG_BUFFERED,{frag:r,part:s,stats:e,id:r.type})},t)},i.onFragChanged=function(e,t){this.flushBackBuffer()},i.onBufferEos=function(e,r){var s=this;this.getSourceBufferTypes().reduce(function(e,t){var i=s.sourceBuffer[t];return r.type&&r.type!==t||i&&!i.ended&&(i.ended=!0,m.logger.log("[buffer-controller]: "+t+" sourceBuffer now EOS")),e&&!(i&&!i.ended)},!0)&&this.blockBuffers(function(){var e=s.mediaSource;e&&"open"===e.readyState&&e.endOfStream()})},i.onLevelUpdated=function(e,t){t=t.details;t.fragments.length&&(this.details=t,this.getSourceBufferTypes().length?this.blockBuffers(this.updateMediaElementDuration.bind(this)):this.updateMediaElementDuration())},i.flushBackBuffer=function(){var e,t,i,r,s=this.hls,a=this.details,n=this.media,o=this.sourceBuffer;n&&null!==a&&(e=this.getSourceBufferTypes()).length&&(i=a.live&&null!==s.config.liveBackBufferLength?s.config.liveBackBufferLength:s.config.backBufferLength,!Object(l.isFiniteNumber)(i)||i<0||(n=n.currentTime,t=a.levelTargetDuration,i=Math.max(i,t),r=Math.floor(n/t)*t-i,e.forEach(function(e){var t=o[e];t&&0<(t=y.BufferHelper.getBuffered(t)).length&&r>t.start(0)&&(s.trigger(A.Events.BACK_BUFFER_REACHED,{bufferEnd:r}),a.live&&s.trigger(A.Events.LIVE_BACK_BUFFER_REACHED,{bufferEnd:r}),s.trigger(A.Events.BUFFER_FLUSHING,{startOffset:0,endOffset:r,type:e}))})))},i.updateMediaElementDuration=function(){var e,t,i,r,s,a;this.details&&this.media&&this.mediaSource&&"open"===this.mediaSource.readyState&&(e=this.details,t=this.hls,s=this.media,i=this.mediaSource,r=e.fragments[0].start+e.totalduration,s=s.duration,a=Object(l.isFiniteNumber)(i.duration)?i.duration:0,e.live&&t.config.liveDurationInfinity?(m.logger.log("[buffer-controller]: Media Source duration is set to Infinity"),i.duration=1/0,this.updateSeekableRange(e)):(a<r&&s<r||!Object(l.isFiniteNumber)(s))&&(m.logger.log("[buffer-controller]: Updating Media Source duration to "+r.toFixed(3)),i.duration=r))},i.updateSeekableRange=function(e){var t=this.mediaSource,i=e.fragments;i.length&&e.live&&null!=t&&t.setLiveSeekableRange&&(i=Math.max(0,i[0].start),e=Math.max(i,i+e.totalduration),t.setLiveSeekableRange(i,e))},i.checkPendingTracks=function(){var e=this.bufferCodecEventsExpected,t=this.operationQueue,i=this.pendingTracks,r=Object.keys(i).length;(r&&!e||2===r)&&(this.createSourceBuffers(i),this.pendingTracks={},0===(e=this.getSourceBufferTypes()).length?this.hls.trigger(A.Events.ERROR,{type:g.ErrorTypes.MEDIA_ERROR,details:g.ErrorDetails.BUFFER_INCOMPATIBLE_CODECS_ERROR,fatal:!0,reason:"could not create source buffer for media codec(s)"}):e.forEach(function(e){t.executeNext(e)}))},i.createSourceBuffers=function(e){var t=this.sourceBuffer,i=this.mediaSource;if(!i)throw Error("createSourceBuffers called when mediaSource was null");var r,s=0;for(r in e)if(!t[r]){var a=e[r];if(!a)throw Error("source buffer exists for track "+r+", however track does not");var n=a.levelCodec||a.codec,o=a.container+";codecs="+n;m.logger.log("[buffer-controller]: creating sourceBuffer("+o+")");try{var l=t[r]=i.addSourceBuffer(o),c=r;this.addBufferListener(c,"updatestart",this._onSBUpdateStart),this.addBufferListener(c,"updateend",this._onSBUpdateEnd),this.addBufferListener(c,"error",this._onSBUpdateError),this.tracks[r]={buffer:l,codec:n,container:a.container,levelCodec:a.levelCodec,id:a.id},s++}catch(e){m.logger.error("[buffer-controller]: error while trying to add sourceBuffer: "+e.message),this.hls.trigger(A.Events.ERROR,{type:g.ErrorTypes.MEDIA_ERROR,details:g.ErrorDetails.BUFFER_ADD_CODEC_ERROR,fatal:!1,error:e,mimeType:o})}}s&&this.hls.trigger(A.Events.BUFFER_CREATED,{tracks:this.tracks})},i._onSBUpdateStart=function(e){this.operationQueue.current(e).onStart()},i._onSBUpdateEnd=function(e){var t=this.operationQueue;t.current(e).onComplete(),t.shiftAndExecuteNext(e)},i._onSBUpdateError=function(e,t){m.logger.error("[buffer-controller]: "+e+" SourceBuffer error",t),this.hls.trigger(A.Events.ERROR,{type:g.ErrorTypes.MEDIA_ERROR,details:g.ErrorDetails.BUFFER_APPENDING_ERROR,fatal:!1});e=this.operationQueue.current(e);e&&e.onError(t)},i.removeExecutor=function(e,t,i){var r=this.media,s=this.mediaSource,a=this.operationQueue,n=this.sourceBuffer[e];r&&s&&n?(r=Object(l.isFiniteNumber)(r.duration)?r.duration:1/0,s=Object(l.isFiniteNumber)(s.duration)?s.duration:1/0,(t=Math.max(0,t))<(i=Math.min(i,r,s))?(m.logger.log("[buffer-controller]: Removing ["+t+","+i+"] from the "+e+" SourceBuffer"),console.assert(!n.updating,e+" sourceBuffer must not be updating"),n.remove(t,i)):a.shiftAndExecuteNext(e)):(m.logger.warn("[buffer-controller]: Attempting to remove from the "+e+" SourceBuffer, but it does not exist"),a.shiftAndExecuteNext(e))},i.appendExecutor=function(e,t){var i=this.operationQueue,r=this.sourceBuffer[t];r?(r.ended=!1,console.assert(!r.updating,t+" sourceBuffer must not be updating"),r.appendBuffer(e)):(m.logger.warn("[buffer-controller]: Attempting to append to the "+t+" SourceBuffer, but it does not exist"),i.shiftAndExecuteNext(t))},i.blockBuffers=function(e,t){var i,r,s=this;(t=void 0===t?this.getSourceBufferTypes():t).length?(i=this.operationQueue,r=t.map(function(e){return i.appendBlocker(e)}),Promise.all(r).then(function(){e(),t.forEach(function(e){var t=s.sourceBuffer[e];t&&t.updating||i.shiftAndExecuteNext(e)})})):(m.logger.log("[buffer-controller]: Blocking operation requested, but no SourceBuffers exist"),Promise.resolve(e))},i.getSourceBufferTypes=function(){return Object.keys(this.sourceBuffer)},i.addBufferListener=function(e,t,i){var r=this.sourceBuffer[e];r&&(i=i.bind(this,e),this.listeners[e].push({event:t,listener:i}),r.addEventListener(t,i))},i.removeBufferListeners=function(e){var t=this.sourceBuffer[e];t&&this.listeners[e].forEach(function(e){t.removeEventListener(e.event,e.listener)})},o);function o(e){var r=this;this.details=null,this._objectUrl=null,this.operationQueue=void 0,this.listeners=void 0,this.hls=void 0,this.bufferCodecEventsExpected=0,this._bufferCodecEventsTotal=0,this.media=null,this.mediaSource=null,this.appendError=0,this.tracks={},this.pendingTracks={},this.sourceBuffer=void 0,this._onMediaSourceOpen=function(){var e=r.hls,t=r.media,i=r.mediaSource;m.logger.log("[buffer-controller]: Media source opened"),t&&(r.updateMediaElementDuration(),e.trigger(A.Events.MEDIA_ATTACHED,{media:t})),i&&i.removeEventListener("sourceopen",r._onMediaSourceOpen),r.checkPendingTracks()},this._onMediaSourceClose=function(){m.logger.log("[buffer-controller]: Media source closed")},this._onMediaSourceEnded=function(){m.logger.log("[buffer-controller]: Media source ended")},this.hls=e,this._initSourceBuffer(),this.registerListeners()}},"./src/controller/buffer-operation-queue.ts":function(e,t,i){i.r(t),i.d(t,"default",function(){return r});var a=i("./src/utils/logger.ts"),r=((t=s.prototype).append=function(e,t){var i=this.queues[t];i.push(e),1===i.length&&this.buffers[t]&&this.executeNext(t)},t.insertAbort=function(e,t){this.queues[t].unshift(e),this.executeNext(t)},t.appendBlocker=function(e){var t,i=new Promise(function(e){t=e}),r={execute:t,onStart:function(){},onComplete:function(){},onError:function(){}};return this.append(r,e),i},t.executeNext=function(e){var t=this.buffers,i=this.queues,r=t[e],i=i[e];if(i.length){var s=i[0];try{s.execute()}catch(t){a.logger.warn("[buffer-operation-queue]: Unhandled exception executing the current operation"),s.onError(t),r&&r.updating||(i.shift(),this.executeNext(e))}}},t.shiftAndExecuteNext=function(e){this.queues[e].shift(),this.executeNext(e)},t.current=function(e){return this.queues[e][0]},s);function s(e){this.buffers=void 0,this.queues={video:[],audio:[],audiovideo:[]},this.buffers=e}},"./src/controller/cap-level-controller.ts":function(e,t,i){i.r(t);var r=i("./src/events.ts");function s(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(i=n.prototype).setStreamController=function(e){this.streamController=e},i.destroy=function(){this.unregisterListener(),this.hls.config.capLevelToPlayerSize&&this.stopCapping(),this.media=null,this.clientRect=null,this.hls=this.streamController=null},i.registerListeners=function(){var e=this.hls;e.on(r.Events.FPS_DROP_LEVEL_CAPPING,this.onFpsDropLevelCapping,this),e.on(r.Events.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(r.Events.MANIFEST_PARSED,this.onManifestParsed,this),e.on(r.Events.BUFFER_CODECS,this.onBufferCodecs,this),e.on(r.Events.MEDIA_DETACHING,this.onMediaDetaching,this)},i.unregisterListener=function(){var e=this.hls;e.off(r.Events.FPS_DROP_LEVEL_CAPPING,this.onFpsDropLevelCapping,this),e.off(r.Events.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(r.Events.MANIFEST_PARSED,this.onManifestParsed,this),e.off(r.Events.BUFFER_CODECS,this.onBufferCodecs,this),e.off(r.Events.MEDIA_DETACHING,this.onMediaDetaching,this)},i.onFpsDropLevelCapping=function(e,t){n.isLevelAllowed(t.droppedLevel,this.restrictedLevels)&&this.restrictedLevels.push(t.droppedLevel)},i.onMediaAttaching=function(e,t){this.media=t.media instanceof HTMLVideoElement?t.media:null},i.onManifestParsed=function(e,t){var i=this.hls;this.restrictedLevels=[],this.firstLevel=t.firstLevel,i.config.capLevelToPlayerSize&&t.video&&this.startCapping()},i.onBufferCodecs=function(e,t){this.hls.config.capLevelToPlayerSize&&t.video&&this.startCapping()},i.onMediaDetaching=function(){this.stopCapping()},i.detectPlayerSize=function(){var e,t;this.media&&0<this.mediaHeight&&0<this.mediaWidth&&(e=this.hls.levels).length&&((t=this.hls).autoLevelCapping=this.getMaxLevel(e.length-1),t.autoLevelCapping>this.autoLevelCapping&&this.streamController&&this.streamController.nextLevelSwitch(),this.autoLevelCapping=t.autoLevelCapping)},i.getMaxLevel=function(i){var r=this,e=this.hls.levels;return e.length?(e=e.filter(function(e,t){return n.isLevelAllowed(t,r.restrictedLevels)&&t<=i}),this.clientRect=null,n.getMaxLevelByMediaSize(e,this.mediaWidth,this.mediaHeight)):-1},i.startCapping=function(){this.timer||(this.autoLevelCapping=Number.POSITIVE_INFINITY,this.hls.firstLevel=this.getMaxLevel(this.firstLevel),self.clearInterval(this.timer),this.timer=self.setInterval(this.detectPlayerSize.bind(this),1e3),this.detectPlayerSize())},i.stopCapping=function(){this.restrictedLevels=[],this.firstLevel=-1,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.timer&&(self.clearInterval(this.timer),this.timer=void 0)},i.getDimensions=function(){var e,t,i;return this.clientRect||(t={width:0,height:0},(e=this.media)&&(i=e.getBoundingClientRect(),t.width=i.width,t.height=i.height,t.width||t.height||(t.width=i.right-i.left||e.width||0,t.height=i.bottom-i.top||e.height||0)),this.clientRect=t)},n.isLevelAllowed=function(e,t){return-1===(t=void 0===t?[]:t).indexOf(e)},n.getMaxLevelByMediaSize=function(e,t,i){if(!e||!e.length)return-1;for(var r,s=e.length-1,a=0;a<e.length;a+=1){var n=e[a];if((n.width>=t||n.height>=i)&&(!(r=e[a+1])||n.width!==r.width||n.height!==r.height)){s=a;break}}return s},i=[{key:"contentScaleFactor",get:function(){var e=1;try{e=self.devicePixelRatio}catch(e){}return e}}],s((a=n).prototype,[{key:"mediaWidth",get:function(){return this.getDimensions().width*n.contentScaleFactor}},{key:"mediaHeight",get:function(){return this.getDimensions().height*n.contentScaleFactor}}]),s(a,i);var a=n;function n(e){this.autoLevelCapping=void 0,this.firstLevel=void 0,this.media=void 0,this.restrictedLevels=void 0,this.timer=void 0,this.hls=void 0,this.streamController=void 0,this.clientRect=void 0,this.hls=e,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.firstLevel=-1,this.media=null,this.restrictedLevels=[],this.timer=void 0,this.clientRect=null,this.registerListeners()}t.default=a},"./src/controller/cmcd-controller.ts":function(e,t,i){i.r(t),i.d(t,"default",function(){return h});var r=i("./src/events.ts"),n=i("./src/types/cmcd.ts"),s=i("./src/utils/buffer-helper.ts"),o=i("./src/utils/logger.ts");function a(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function l(e,t,i){t&&a(e.prototype,t),i&&a(e,i)}function u(e,t){var i,r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=function(e){var t;if(e)return"string"==typeof e?c(e,void 0):"Map"===(t="Object"===(t=Object.prototype.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:t)||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?c(e,void 0):void 0}(e))||t&&e&&"number"==typeof e.length)return r&&(e=r),i=0,function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,r=new Array(t);i<t;i++)r[i]=e[i];return r}function d(){return(d=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i,r=arguments[t];for(i in r)Object.prototype.hasOwnProperty.call(r,i)&&(e[i]=r[i])}return e}).apply(this,arguments)}(t=p.prototype).registerListeners=function(){var e=this.hls;e.on(r.Events.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(r.Events.MEDIA_DETACHED,this.onMediaDetached,this),e.on(r.Events.BUFFER_CREATED,this.onBufferCreated,this)},t.unregisterListeners=function(){var e=this.hls;e.off(r.Events.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(r.Events.MEDIA_DETACHED,this.onMediaDetached,this),e.off(r.Events.BUFFER_CREATED,this.onBufferCreated,this),this.onMediaDetached()},t.destroy=function(){this.unregisterListeners(),this.hls=this.config=this.audioBuffer=this.videoBuffer=null},t.onMediaAttached=function(e,t){this.media=t.media,this.media.addEventListener("waiting",this.onWaiting),this.media.addEventListener("playing",this.onPlaying)},t.onMediaDetached=function(){this.media&&(this.media.removeEventListener("waiting",this.onWaiting),this.media.removeEventListener("playing",this.onPlaying),this.media=null)},t.onBufferCreated=function(e,t){var i;this.audioBuffer=null==(i=t.tracks.audio)?void 0:i.buffer,this.videoBuffer=null==(i=t.tracks.video)?void 0:i.buffer},t.createData=function(){var e;return{v:n.CMCDVersion,sf:n.CMCDStreamingFormat.HLS,sid:this.sid,cid:this.cid,pr:null==(e=this.media)?void 0:e.playbackRate,mtp:this.hls.bandwidthEstimate/1e3}},t.apply=function(e,t){d(t=void 0===t?{}:t,this.createData());var i=t.ot===n.CMCDObjectType.INIT||t.ot===n.CMCDObjectType.VIDEO||t.ot===n.CMCDObjectType.MUXED;this.starved&&i&&(t.bs=!0,t.su=!0,this.starved=!1),null==t.su&&(t.su=this.buffering),this.useHeaders?(i=p.toHeaders(t),Object.keys(i).length&&(e.headers||(e.headers={}),d(e.headers,i))):(i=p.toQuery(t))&&(e.url=p.appendQueryToUri(e.url,i))},t.getObjectType=function(e){var t=e.type;return"subtitle"===t?n.CMCDObjectType.TIMED_TEXT:"initSegment"===e.sn?n.CMCDObjectType.INIT:"audio"===t?n.CMCDObjectType.AUDIO:"main"===t?this.hls.audioTracks.length?n.CMCDObjectType.VIDEO:n.CMCDObjectType.MUXED:void 0},t.getTopBandwidth=function(e){for(var t=0,i=this.hls,r=u(e===n.CMCDObjectType.AUDIO?i.audioTracks:(e=-1<(e=i.maxAutoLevel)?e+1:i.levels.length,i.levels.slice(0,e)));!(s=r()).done;){var s=s.value;s.bitrate>t&&(t=s.bitrate)}return 0<t?t:NaN},t.getBufferLength=function(e){var t=this.hls.media,e=e===n.CMCDObjectType.AUDIO?this.audioBuffer:this.videoBuffer;return e&&t?1e3*s.BufferHelper.bufferInfo(e,t.currentTime,this.config.maxBufferHole).len:NaN},t.createPlaylistLoader=function(){var e=this.config.pLoader,r=this.applyPlaylistData,t=e||this.config.loader;return(e=i.prototype).destroy=function(){this.loader.destroy()},e.abort=function(){this.loader.abort()},e.load=function(e,t,i){r(e),this.loader.load(e,t,i)},l(i,[{key:"stats",get:function(){return this.loader.stats}},{key:"context",get:function(){return this.loader.context}}]),i;function i(e){this.loader=void 0,this.loader=new t(e)}},t.createFragmentLoader=function(){var e=this.config.fLoader,r=this.applyFragmentData,t=e||this.config.loader;return(e=i.prototype).destroy=function(){this.loader.destroy()},e.abort=function(){this.loader.abort()},e.load=function(e,t,i){r(e),this.loader.load(e,t,i)},l(i,[{key:"stats",get:function(){return this.loader.stats}},{key:"context",get:function(){return this.loader.context}}]),i;function i(e){this.loader=void 0,this.loader=new t(e)}},p.uuid=function(){var e=URL.createObjectURL(new Blob),t=e.toString();return URL.revokeObjectURL(e),t.substr(t.lastIndexOf("/")+1)},p.serialize=function(e){for(var t=[],i=function(e){return Math.round(e)},r=function(e){return 100*i(e/100)},s={br:i,d:i,bl:r,dl:r,mtp:r,nor:function(e){return encodeURIComponent(e)},rtp:r,tb:i},a=u(Object.keys(e||{}).sort());!(l=a()).done;){var n,o,l=l.value,c=e[l];n=c,Number.isNaN(n)||null==n||""===n||!1===n||"v"===l&&1===c||"pr"==l&&1===c||(n=typeof(c=(n=s[l])?n(c):c),o=void 0,o="ot"===l||"sf"===l||"st"===l?l+"="+c:"boolean"==n?l:"number"==n?l+"="+c:l+"="+JSON.stringify(c),t.push(o))}return t.join(",")},p.toHeaders=function(e){for(var t={},i=["Object","Request","Session","Status"],r=[{},{},{},{}],s={br:0,d:0,ot:0,tb:0,bl:1,dl:1,mtp:1,nor:1,nrr:1,su:1,cid:2,pr:2,sf:2,sid:2,st:2,v:2,bs:3,rtp:3},a=0,n=Object.keys(e);a<n.length;a++){var o=n[a];r[null!=s[o]?s[o]:1][o]=e[o]}for(var l=0;l<r.length;l++){var c=p.serialize(r[l]);c&&(t["CMCD-"+i[l]]=c)}return t},p.toQuery=function(e){return"CMCD="+encodeURIComponent(p.serialize(e))},p.appendQueryToUri=function(e,t){var i;return t?(i=e.includes("?")?"&":"?",e+i+t):e};var h=p;function p(e){var a=this,e=(this.hls=void 0,this.config=void 0,this.media=void 0,this.sid=void 0,this.cid=void 0,this.useHeaders=!1,this.initialized=!1,this.starved=!1,this.buffering=!0,this.audioBuffer=void 0,this.videoBuffer=void 0,this.onWaiting=function(){a.initialized&&(a.starved=!0),a.buffering=!0},this.onPlaying=function(){a.initialized||(a.initialized=!0),a.buffering=!1},this.applyPlaylistData=function(e){try{a.apply(e,{ot:n.CMCDObjectType.MANIFEST,su:!a.initialized})}catch(e){o.logger.warn("Could not generate manifest CMCD data.",e)}},this.applyFragmentData=function(e){try{var t=e.frag,i=a.hls.levels[t.level],r=a.getObjectType(t),s={d:1e3*t.duration,ot:r};r!==n.CMCDObjectType.VIDEO&&r!==n.CMCDObjectType.AUDIO&&r!=n.CMCDObjectType.MUXED||(s.br=i.bitrate/1e3,s.tb=a.getTopBandwidth(r)/1e3,s.bl=a.getBufferLength(r)),a.apply(e,s)}catch(e){o.logger.warn("Could not generate segment CMCD data.",e)}},this.hls=e,this.config=e.config),t=e.cmcd;null!=t&&(e.pLoader=this.createPlaylistLoader(),e.fLoader=this.createFragmentLoader(),this.sid=t.sessionId||p.uuid(),this.cid=t.contentId,this.useHeaders=!0===t.useHeaders,this.registerListeners())}},"./src/controller/eme-controller.ts":function(e,t,i){i.r(t);var n=i("./src/events.ts"),o=i("./src/errors.ts"),l=i("./src/utils/logger.ts"),c=i("./src/utils/mediakeys-helper.ts");function r(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function s(e){this.hls=void 0,this._widevineLicenseUrl=void 0,this._licenseXhrSetup=void 0,this._licenseResponseCallback=void 0,this._emeEnabled=void 0,this._requestMediaKeySystemAccess=void 0,this._drmSystemOptions=void 0,this._config=void 0,this._mediaKeysList=[],this._media=null,this._hasSetMediaKeys=!1,this._requestLicenseFailureCount=0,this.mediaKeysPromise=null,this._onMediaEncrypted=this.onMediaEncrypted.bind(this),this.hls=e,this._config=e.config,this._widevineLicenseUrl=this._config.widevineLicenseUrl,this._licenseXhrSetup=this._config.licenseXhrSetup,this._licenseResponseCallback=this._config.licenseResponseCallback,this._emeEnabled=this._config.emeEnabled,this._requestMediaKeySystemAccess=this._config.requestMediaKeySystemAccessFunc,this._drmSystemOptions=this._config.drmSystemOptions,this._registerListeners()}(i=s.prototype).destroy=function(){this._unregisterListeners(),this.hls=this._onMediaEncrypted=null,this._requestMediaKeySystemAccess=null},i._registerListeners=function(){this.hls.on(n.Events.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.on(n.Events.MEDIA_DETACHED,this.onMediaDetached,this),this.hls.on(n.Events.MANIFEST_PARSED,this.onManifestParsed,this)},i._unregisterListeners=function(){this.hls.off(n.Events.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.off(n.Events.MEDIA_DETACHED,this.onMediaDetached,this),this.hls.off(n.Events.MANIFEST_PARSED,this.onManifestParsed,this)},i.getLicenseServerUrl=function(e){if(e===c.KeySystems.WIDEVINE)if(this._widevineLicenseUrl)return this._widevineLicenseUrl;throw new Error('no license server URL configured for key-system "'+e+'"')},i._attemptKeySystemAccess=function(t,e,n){var i=this,e=function(e,t,i){if(e===c.KeySystems.WIDEVINE)return r=n,s=i,a={audioCapabilities:[],videoCapabilities:[]},t.forEach(function(e){a.audioCapabilities.push({contentType:'audio/mp4; codecs="'+e+'"',robustness:s.audioRobustness||""})}),r.forEach(function(e){a.videoCapabilities.push({contentType:'video/mp4; codecs="'+e+'"',robustness:s.videoRobustness||""})}),[a];var r,s,a;throw new Error("Unknown key-system: "+e)}(t,e,this._drmSystemOptions),e=(l.logger.log("Requesting encrypted media key-system access"),this.requestMediaKeySystemAccess(t,e));this.mediaKeysPromise=e.then(function(e){return i._onMediaKeySystemAccessObtained(t,e)}),e.catch(function(e){l.logger.error('Failed to obtain key-system "'+t+'" access:',e)})},i._onMediaKeySystemAccessObtained=function(t,e){var i=this,r=(l.logger.log('Access for key-system "'+t+'" obtained'),{mediaKeysSessionInitialized:!1,mediaKeySystemAccess:e,mediaKeySystemDomain:t}),s=(this._mediaKeysList.push(r),Promise.resolve().then(function(){return e.createMediaKeys()}).then(function(e){return r.mediaKeys=e,l.logger.log('Media-keys created for key-system "'+t+'"'),i._onMediaKeysCreated(),e}));return s.catch(function(e){l.logger.error("Failed to create media-keys:",e)}),s},i._onMediaKeysCreated=function(){var t=this;this._mediaKeysList.forEach(function(e){e.mediaKeysSession||(e.mediaKeysSession=e.mediaKeys.createSession(),t._onNewMediaKeySession(e.mediaKeysSession))})},i._onNewMediaKeySession=function(t){var i=this;l.logger.log("New key-system session "+t.sessionId),t.addEventListener("message",function(e){i._onKeySessionMessage(t,e.message)},!1)},i._onKeySessionMessage=function(t,e){l.logger.log("Got EME message event, creating license request"),this._requestLicense(e,function(e){l.logger.log("Received license data (length: "+(e&&e.byteLength)+"), updating key-session"),t.update(e)})},i.onMediaEncrypted=function(t){var e,i=this;l.logger.log('Media is encrypted using "'+t.initDataType+'" init data type'),this.mediaKeysPromise?this.mediaKeysPromise.then(e=function(e){i._media&&(i._attemptSetMediaKeys(e),i._generateRequestWithPreferredKeySession(t.initDataType,t.initData))}).catch(e):(l.logger.error("Fatal: Media is encrypted but no CDM access or no keys have been requested"),this.hls.trigger(n.Events.ERROR,{type:o.ErrorTypes.KEY_SYSTEM_ERROR,details:o.ErrorDetails.KEY_SYSTEM_NO_KEYS,fatal:!0}))},i._attemptSetMediaKeys=function(e){if(!this._media)throw new Error("Attempted to set mediaKeys without first attaching a media element");var t;this._hasSetMediaKeys||((t=this._mediaKeysList[0])&&t.mediaKeys?(l.logger.log("Setting keys for encrypted media"),this._media.setMediaKeys(t.mediaKeys),this._hasSetMediaKeys=!0):(l.logger.error("Fatal: Media is encrypted but no CDM access or no keys have been obtained yet"),this.hls.trigger(n.Events.ERROR,{type:o.ErrorTypes.KEY_SYSTEM_ERROR,details:o.ErrorDetails.KEY_SYSTEM_NO_KEYS,fatal:!0})))},i._generateRequestWithPreferredKeySession=function(e,t){var i,r=this,s=this._mediaKeysList[0];s?s.mediaKeysSessionInitialized?l.logger.warn("Key-Session already initialized but requested again"):(i=s.mediaKeysSession)?t?(l.logger.log('Generating key-session request for "'+e+'" init data type'),s.mediaKeysSessionInitialized=!0,i.generateRequest(e,t).then(function(){l.logger.debug("Key-session generation succeeded")}).catch(function(e){l.logger.error("Error generating key-session request:",e),r.hls.trigger(n.Events.ERROR,{type:o.ErrorTypes.KEY_SYSTEM_ERROR,details:o.ErrorDetails.KEY_SYSTEM_NO_SESSION,fatal:!1})})):(l.logger.warn("Fatal: initData required for generating a key session is null"),this.hls.trigger(n.Events.ERROR,{type:o.ErrorTypes.KEY_SYSTEM_ERROR,details:o.ErrorDetails.KEY_SYSTEM_NO_INIT_DATA,fatal:!0})):(l.logger.error("Fatal: Media is encrypted but no key-session existing"),this.hls.trigger(n.Events.ERROR,{type:o.ErrorTypes.KEY_SYSTEM_ERROR,details:o.ErrorDetails.KEY_SYSTEM_NO_SESSION,fatal:!0})):(l.logger.error("Fatal: Media is encrypted but not any key-system access has been obtained yet"),this.hls.trigger(n.Events.ERROR,{type:o.ErrorTypes.KEY_SYSTEM_ERROR,details:o.ErrorDetails.KEY_SYSTEM_NO_ACCESS,fatal:!0}))},i._createLicenseXhr=function(e,t,i){var r=new XMLHttpRequest,t=(r.responseType="arraybuffer",r.onreadystatechange=this._onLicenseRequestReadyStageChange.bind(this,r,e,t,i),this._licenseXhrSetup);if(t)try{t.call(this.hls,r,e),t=void 0}catch(e){l.logger.error(e)}try{r.readyState||r.open("POST",e,!0),t&&t.call(this.hls,r,e)}catch(e){throw new Error("issue setting up KeySystem license XHR "+e)}return r},i._onLicenseRequestReadyStageChange=function(e,t,i,r){if(4===e.readyState)if(200===e.status){this._requestLicenseFailureCount=0,l.logger.log("License request succeeded");var s=e.response,a=this._licenseResponseCallback;if(a)try{s=a.call(this.hls,e,t)}catch(e){l.logger.error(e)}r(s)}else(l.logger.error("License Request XHR failed ("+t+"). Status: "+e.status+" ("+e.statusText+")"),this._requestLicenseFailureCount++,3<this._requestLicenseFailureCount)?this.hls.trigger(n.Events.ERROR,{type:o.ErrorTypes.KEY_SYSTEM_ERROR,details:o.ErrorDetails.KEY_SYSTEM_LICENSE_REQUEST_FAILED,fatal:!0}):(a=3-this._requestLicenseFailureCount+1,l.logger.warn("Retrying license request, "+a+" attempts left"),this._requestLicense(i,r))},i._generateLicenseRequestChallenge=function(e,t){if(e.mediaKeySystemDomain===c.KeySystems.WIDEVINE)return t;throw new Error("unsupported key-system: "+e.mediaKeySystemDomain)},i._requestLicense=function(e,t){l.logger.log("Requesting content license for key-system");var i=this._mediaKeysList[0];if(i)try{var r=this.getLicenseServerUrl(i.mediaKeySystemDomain),s=this._createLicenseXhr(r,e,t),a=(l.logger.log("Sending license request to URL: "+r),this._generateLicenseRequestChallenge(i,e));s.send(a)}catch(e){l.logger.error("Failure requesting DRM license: "+e),this.hls.trigger(n.Events.ERROR,{type:o.ErrorTypes.KEY_SYSTEM_ERROR,details:o.ErrorDetails.KEY_SYSTEM_LICENSE_REQUEST_FAILED,fatal:!0})}else l.logger.error("Fatal error: Media is encrypted but no key-system access has been obtained yet"),this.hls.trigger(n.Events.ERROR,{type:o.ErrorTypes.KEY_SYSTEM_ERROR,details:o.ErrorDetails.KEY_SYSTEM_NO_ACCESS,fatal:!0})},i.onMediaAttached=function(e,t){this._emeEnabled&&(t=t.media,(this._media=t).addEventListener("encrypted",this._onMediaEncrypted))},i.onMediaDetached=function(){var e=this._media,t=this._mediaKeysList;e&&(e.removeEventListener("encrypted",this._onMediaEncrypted),this._media=null,this._mediaKeysList=[],Promise.all(t.map(function(e){if(e.mediaKeysSession)return e.mediaKeysSession.close().catch(function(){})})).then(function(){return e.setMediaKeys(null)}).catch(function(){}))},i.onManifestParsed=function(e,t){var i;this._emeEnabled&&(i=t.levels.map(function(e){return e.audioCodec}).filter(function(e){return!!e}),t=t.levels.map(function(e){return e.videoCodec}).filter(function(e){return!!e}),this._attemptKeySystemAccess(c.KeySystems.WIDEVINE,i,t))},r(s.prototype,[{key:"requestMediaKeySystemAccess",get:function(){if(this._requestMediaKeySystemAccess)return this._requestMediaKeySystemAccess;throw new Error("No requestMediaKeySystemAccess function configured")}}]),t.default=s},"./src/controller/fps-controller.ts":function(e,t,i){i.r(t);var l=i("./src/events.ts"),c=i("./src/utils/logger.ts");function r(e){this.hls=void 0,this.isVideoPlaybackQualityAvailable=!1,this.timer=void 0,this.media=null,this.lastTime=void 0,this.lastDroppedFrames=0,this.lastDecodedFrames=0,this.streamController=void 0,this.hls=e,this.registerListeners()}(i=r.prototype).setStreamController=function(e){this.streamController=e},i.registerListeners=function(){this.hls.on(l.Events.MEDIA_ATTACHING,this.onMediaAttaching,this)},i.unregisterListeners=function(){this.hls.off(l.Events.MEDIA_ATTACHING,this.onMediaAttaching)},i.destroy=function(){this.timer&&clearInterval(this.timer),this.unregisterListeners(),this.isVideoPlaybackQualityAvailable=!1,this.media=null},i.onMediaAttaching=function(e,t){var i=this.hls.config;i.capLevelOnFPSDrop&&(t=t.media instanceof self.HTMLVideoElement?t.media:null,(this.media=t)&&"function"==typeof t.getVideoPlaybackQuality&&(this.isVideoPlaybackQualityAvailable=!0),self.clearInterval(this.timer),this.timer=self.setInterval(this.checkFPSInterval.bind(this),i.fpsDroppedMonitoringPeriod))},i.checkFPS=function(e,t,i){var r,s,a,n,o=performance.now();t&&(this.lastTime&&(n=o-this.lastTime,r=i-this.lastDroppedFrames,s=t-this.lastDecodedFrames,n=1e3*r/n,(a=this.hls).trigger(l.Events.FPS_DROP,{currentDropped:r,currentDecoded:s,totalDroppedFrames:i}),0<n)&&r>a.config.fpsDroppedMonitoringThreshold*s&&(n=a.currentLevel,c.logger.warn("drop FPS ratio greater than max allowed value for currentLevel: "+n),0<n)&&(-1===a.autoLevelCapping||a.autoLevelCapping>=n)&&(a.trigger(l.Events.FPS_DROP_LEVEL_CAPPING,{level:--n,droppedLevel:a.currentLevel}),a.autoLevelCapping=n,this.streamController.nextLevelSwitch()),this.lastTime=o,this.lastDroppedFrames=i,this.lastDecodedFrames=t)},i.checkFPSInterval=function(){var e,t=this.media;t&&(this.isVideoPlaybackQualityAvailable?(e=t.getVideoPlaybackQuality(),this.checkFPS(t,e.totalVideoFrames,e.droppedVideoFrames)):this.checkFPS(t,t.webkitDecodedFrameCount,t.webkitDroppedFrameCount))},t.default=r},"./src/controller/fragment-finders.ts":function(e,t,i){i.r(t),i.d(t,"findFragmentByPDT",function(){return r}),i.d(t,"findFragmentByPTS",function(){return s}),i.d(t,"fragmentWithinToleranceTest",function(){return o}),i.d(t,"pdtWithinToleranceTest",function(){return l}),i.d(t,"findFragWithCC",function(){return c});var a=i("./src/polyfills/number.ts"),n=i("./src/utils/binary-search.ts");function r(e,t,i){if(null!==t&&Array.isArray(e)&&e.length&&Object(a.isFiniteNumber)(t)&&!(t<(e[0].programDateTime||0)||t>=(e[e.length-1].endProgramDateTime||0))){i=i||0;for(var r=0;r<e.length;++r){var s=e[r];if(l(t,i,s))return s}}return null}function s(e,t,i,r){void 0===i&&(i=0),void 0===r&&(r=0);var s=null;return e?s=t[e.sn-t[0].sn+1]||null:0===i&&0===t[0].start&&(s=t[0]),(!s||0!==o(i,r,s))&&n.default.search(t,o.bind(null,i,r))||s}function o(e,t,i){void 0===e&&(e=0),void 0===t&&(t=0);t=Math.min(t,i.duration+(i.deltaPTS||0));return i.start+i.duration-t<=e?1:i.start-t>e&&i.start?-1:0}function l(e,t,i){t=1e3*Math.min(t,i.duration+(i.deltaPTS||0));return(i.endProgramDateTime||0)-t>e}function c(e,t){return n.default.search(e,function(e){return e.cc<t?1:e.cc>t?-1:0})}},"./src/controller/fragment-tracker.ts":function(e,t,i){i.r(t),i.d(t,"FragmentState",function(){return r}),i.d(t,"FragmentTracker",function(){return a});var r,s=i("./src/events.ts"),o=i("./src/types/loader.ts"),a=((t=r=r||{}).NOT_LOADED="NOT_LOADED",t.BACKTRACKED="BACKTRACKED",t.APPENDING="APPENDING",t.PARTIAL="PARTIAL",t.OK="OK",(i=n.prototype)._registerListeners=function(){var e=this.hls;e.on(s.Events.BUFFER_APPENDED,this.onBufferAppended,this),e.on(s.Events.FRAG_BUFFERED,this.onFragBuffered,this),e.on(s.Events.FRAG_LOADED,this.onFragLoaded,this)},i._unregisterListeners=function(){var e=this.hls;e.off(s.Events.BUFFER_APPENDED,this.onBufferAppended,this),e.off(s.Events.FRAG_BUFFERED,this.onFragBuffered,this),e.off(s.Events.FRAG_LOADED,this.onFragLoaded,this)},i.destroy=function(){this._unregisterListeners(),this.fragments=this.timeRanges=null},i.getAppendedFrag=function(e,t){if(t===o.PlaylistLevelType.MAIN){var i=this.activeFragment,r=this.activeParts;if(!i)return null;if(r)for(var s=r.length;s--;){var a=r[s],n=a?a.end:i.appendedPTS;if(a.start<=e&&void 0!==n&&e<=n)return 9<s&&(this.activeParts=r.slice(s-9)),a}else if(i.start<=e&&void 0!==i.appendedPTS&&e<=i.appendedPTS)return i}return this.getBufferedFrag(e,t)},i.getBufferedFrag=function(e,t){for(var i=this.fragments,r=Object.keys(i),s=r.length;s--;){var a=i[r[s]];if((null==a?void 0:a.body.type)===t&&a.buffered){a=a.body;if(a.start<=e&&e<=a.end)return a}}return null},i.detectEvictedFragments=function(i,r,s){var a=this;Object.keys(this.fragments).forEach(function(e){var t=a.fragments[e];t&&(t.buffered?(e=t.range[i])&&e.time.some(function(e){e=!a.isTimeBuffered(e.startPTS,e.endPTS,r);return e&&a.removeFragment(t.body),e}):t.body.type===s&&a.removeFragment(t.body))})},i.detectPartialFragments=function(e){var r,s=this,a=this.timeRanges,n=e.frag,o=e.part;a&&"initSegment"!==n.sn&&(e=c(n),r=this.fragments[e])&&(Object.keys(a).forEach(function(e){var t,i=n.elementaryStreams[e];i&&(t=a[e],i=null!==o||!0===i.partial,r.range[e]=s.getBufferedTimes(n,o,i,t))}),r.backtrack=r.loaded=null,Object.keys(r.range).length?r.buffered=!0:this.removeFragment(r.body))},i.fragBuffered=function(e){e=c(e),e=this.fragments[e];e&&(e.backtrack=e.loaded=null,e.buffered=!0)},i.getBufferedTimes=function(e,t,i,r){for(var s={time:[],partial:i},a=(t||e).start,n=(t||e).end,o=e.minEndPTS||n,l=e.maxStartPTS||a,c=0;c<r.length;c++){var u=r.start(c)-this.bufferPadding,d=r.end(c)+this.bufferPadding;if(u<=l&&o<=d){s.time.push({startPTS:Math.max(a,r.start(c)),endPTS:Math.min(n,r.end(c))});break}if(a<d&&u<n)s.partial=!0,s.time.push({startPTS:Math.max(a,r.start(c)),endPTS:Math.min(n,r.end(c))});else if(n<=u)break}return s},i.getPartialFragment=function(t){var i,r,s=null,a=0,n=this.bufferPadding,o=this.fragments;return Object.keys(o).forEach(function(e){e=o[e];e&&l(e)&&(i=e.body.start-n,r=e.body.end+n,i<=t)&&t<=r&&(i=Math.min(t-i,r-t),a<=i)&&(s=e.body,a=i)}),s},i.getState=function(e){e=c(e),e=this.fragments[e];return e?e.buffered?l(e)?r.PARTIAL:r.OK:e.backtrack?r.BACKTRACKED:r.APPENDING:r.NOT_LOADED},i.backtrack=function(e,t){e=c(e),e=this.fragments[e];return!e||e.backtrack?null:(t=e.backtrack=t||e.loaded,e.loaded=null,t)},i.getBacktrackData=function(e){var t=c(e),t=this.fragments[t];if(t){var i,t=t.backtrack;if(null!=t&&null!=(i=t.payload)&&i.byteLength)return t;this.removeFragment(e)}return null},i.isTimeBuffered=function(e,t,i){for(var r,s,a=0;a<i.length;a++){if(r=i.start(a)-this.bufferPadding,s=i.end(a)+this.bufferPadding,r<=e&&t<=s)return!0;if(t<=r)return!1}return!1},i.onFragLoaded=function(e,t){var i=t.frag,r=t.part;"initSegment"===i.sn||i.bitrateTest||r||(r=c(i),this.fragments[r]={body:i,loaded:t,backtrack:null,buffered:!1,range:Object.create(null)})},i.onBufferAppended=function(e,t){var r=this,s=t.frag,a=t.part,n=t.timeRanges;s.type===o.PlaylistLevelType.MAIN&&(this.activeFragment=s,a?((t=this.activeParts)||(this.activeParts=t=[]),t.push(a)):this.activeParts=null),this.timeRanges=n,Object.keys(n).forEach(function(e){var t=n[e];if(r.detectEvictedFragments(e,t),!a)for(var i=0;i<t.length;i++)s.appendedPTS=Math.max(t.end(i),s.appendedPTS||0)})},i.onFragBuffered=function(e,t){this.detectPartialFragments(t)},i.hasFragment=function(e){e=c(e);return!!this.fragments[e]},i.removeFragmentsInRange=function(t,i,r){var s=this;Object.keys(this.fragments).forEach(function(e){var e=s.fragments[e];e&&e.buffered&&(e=e.body).type===r&&e.start<i&&e.end>t&&s.removeFragment(e)})},i.removeFragment=function(e){var t=c(e);e.stats.loaded=0,e.clearElementaryStreamInfo(),delete this.fragments[t]},i.removeAllFragments=function(){this.fragments=Object.create(null),this.activeFragment=null,this.activeParts=null},n);function n(e){this.activeFragment=null,this.activeParts=null,this.fragments=Object.create(null),this.timeRanges=Object.create(null),this.bufferPadding=.2,this.hls=void 0,this.hls=e,this._registerListeners()}function l(e){var t;return e.buffered&&(null!=(t=e.range.video)&&t.partial||null!=(t=e.range.audio)&&t.partial)}function c(e){return e.type+"_"+e.level+"_"+e.urlId+"_"+e.sn}},"./src/controller/gap-controller.ts":function(e,t,i){i.r(t),i.d(t,"STALL_MINIMUM_DURATION_MS",function(){return p}),i.d(t,"MAX_START_GAP_JUMP",function(){return f}),i.d(t,"SKIP_BUFFER_HOLE_STEP_SECONDS",function(){return A}),i.d(t,"SKIP_BUFFER_RANGE_START",function(){return m}),i.d(t,"default",function(){return r});var c=i("./src/utils/buffer-helper.ts"),u=i("./src/errors.ts"),d=i("./src/events.ts"),h=i("./src/utils/logger.ts"),p=250,f=2,A=.1,m=.05,r=((t=s.prototype).destroy=function(){this.hls=this.fragmentTracker=this.media=null},t.poll=function(e){var t=this.config,i=this.media,r=this.stalled,s=i.currentTime,a=i.seeking,n=this.seeking&&!a,o=!this.seeking&&a;if(this.seeking=a,s===e){if((o||n)&&(this.stalled=null),!i.paused&&!i.ended&&0!==i.playbackRate&&c.BufferHelper.getBuffered(i).length){e=c.BufferHelper.bufferInfo(i,s,0),o=0<e.len,n=e.nextStart||0;if(o||n){if(a){var o=e.len>f,l=!n||f<n-s&&!this.fragmentTracker.getPartialFragment(s);if(o||l)return;this.moved=!1}if(!this.moved&&null!==this.stalled){o=Math.max(n,e.start||0)-s,l=this.hls.levels?this.hls.levels[this.hls.currentLevel]:null,n=null!=l&&null!=(n=l.details)&&n.live?2*l.details.targetduration:f;if(0<o&&o<=n)return void this._trySkipBufferHole(null)}l=self.performance.now();null!==r?(o=l-r,!a&&p<=o&&this._reportStall(e.len),n=c.BufferHelper.bufferInfo(i,s,t.maxBufferHole),this._tryFixBufferStall(n,o)):this.stalled=l}}}else this.moved=!0,null!==r&&(this.stallReported&&(a=self.performance.now()-r,h.logger.warn("playback not stuck anymore @"+s+", after "+Math.round(a)+"ms"),this.stallReported=!1),this.stalled=null,this.nudgeRetry=0)},t._tryFixBufferStall=function(e,t){var i=this.config,r=this.fragmentTracker,s=this.media.currentTime,r=r.getPartialFragment(s);r&&this._trySkipBufferHole(r)||e.len>i.maxBufferHole&&t>1e3*i.highBufferWatchdogPeriod&&(h.logger.warn("Trying to nudge playhead over buffer-hole"),this.stalled=null,this._tryNudgeBuffer())},t._reportStall=function(e){var t=this.hls,i=this.media;this.stallReported||(this.stallReported=!0,h.logger.warn("Playback stalling at @"+i.currentTime+" due to low buffer (buffer="+e+")"),t.trigger(d.Events.ERROR,{type:u.ErrorTypes.MEDIA_ERROR,details:u.ErrorDetails.BUFFER_STALLED_ERROR,fatal:!1,buffer:e}))},t._trySkipBufferHole=function(e){for(var t=this.config,i=this.hls,r=this.media,s=r.currentTime,a=0,n=c.BufferHelper.getBuffered(r),o=0;o<n.length;o++){var l=n.start(o);if(s+t.maxBufferHole>=a&&s<l)return l=Math.max(l+m,r.currentTime+A),h.logger.warn("skipping hole, adjusting currentTime from "+s+" to "+l),this.moved=!0,this.stalled=null,r.currentTime=l,e&&i.trigger(d.Events.ERROR,{type:u.ErrorTypes.MEDIA_ERROR,details:u.ErrorDetails.BUFFER_SEEK_OVER_HOLE,fatal:!1,reason:"fragment loaded with buffer holes, seeking from "+s+" to "+l,frag:e}),l;a=n.end(o)}return 0},t._tryNudgeBuffer=function(){var e=this.config,t=this.hls,i=this.media,r=i.currentTime,s=(this.nudgeRetry||0)+1;(this.nudgeRetry=s)<e.nudgeMaxRetry?(s=r+s*e.nudgeOffset,h.logger.warn("Nudging 'currentTime' from "+r+" to "+s),i.currentTime=s,t.trigger(d.Events.ERROR,{type:u.ErrorTypes.MEDIA_ERROR,details:u.ErrorDetails.BUFFER_NUDGE_ON_STALL,fatal:!1})):(h.logger.error("Playhead still not moving while enough data buffered @"+r+" after "+e.nudgeMaxRetry+" nudges"),t.trigger(d.Events.ERROR,{type:u.ErrorTypes.MEDIA_ERROR,details:u.ErrorDetails.BUFFER_STALLED_ERROR,fatal:!0}))},s);function s(e,t,i,r){this.config=void 0,this.media=void 0,this.fragmentTracker=void 0,this.hls=void 0,this.nudgeRetry=0,this.stallReported=!1,this.stalled=null,this.moved=!1,this.seeking=!1,this.config=e,this.media=t,this.fragmentTracker=i,this.hls=r}},"./src/controller/id3-track-controller.ts":function(e,t,i){i.r(t);var r=i("./src/events.ts"),s=i("./src/utils/texttrack-utils.ts"),h=i("./src/demux/id3.ts");function a(e){this.hls=void 0,this.id3Track=null,this.media=null,this.hls=e,this._registerListeners()}(i=a.prototype).destroy=function(){this._unregisterListeners()},i._registerListeners=function(){var e=this.hls;e.on(r.Events.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(r.Events.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(r.Events.FRAG_PARSING_METADATA,this.onFragParsingMetadata,this),e.on(r.Events.BUFFER_FLUSHING,this.onBufferFlushing,this)},i._unregisterListeners=function(){var e=this.hls;e.off(r.Events.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(r.Events.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(r.Events.FRAG_PARSING_METADATA,this.onFragParsingMetadata,this),e.off(r.Events.BUFFER_FLUSHING,this.onBufferFlushing,this)},i.onMediaAttached=function(e,t){this.media=t.media},i.onMediaDetaching=function(){this.id3Track&&(Object(s.clearCurrentCues)(this.id3Track),this.id3Track=null,this.media=null)},i.getID3Track=function(e){if(this.media){for(var t=0;t<e.length;t++){var i=e[t];if("metadata"===i.kind&&"id3"===i.label)return Object(s.sendAddTrackEvent)(i,this.media),i}return this.media.addTextTrack("metadata","id3")}},i.onFragParsingMetadata=function(e,t){if(this.media){var i=t.frag,r=t.samples;this.id3Track||(this.id3Track=this.getID3Track(this.media.textTracks),this.id3Track.mode="hidden");for(var s=self.WebKitDataCue||self.VTTCue||self.TextTrackCue,a=0;a<r.length;a++){var n=h.getID3Frames(r[a].data);if(n){var o=r[a].pts,l=a<r.length-1?r[a+1].pts:i.end;l-o<=0&&(l=o+.25);for(var c=0;c<n.length;c++){var u,d=n[c];h.isTimeStampFrame(d)||((u=new s(o,l,"")).value=d,this.id3Track.addCue(u))}}}}},i.onBufferFlushing=function(e,t){var i=t.startOffset,r=t.endOffset,t=t.type;t&&"audio"!==t||(t=this.id3Track)&&Object(s.removeCuesInRange)(t,i,r)},t.default=a},"./src/controller/latency-controller.ts":function(e,t,i){i.r(t),i.d(t,"default",function(){return o});var r=i("./src/errors.ts"),s=i("./src/events.ts"),a=i("./src/utils/logger.ts");function n(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(t=l.prototype).destroy=function(){this.unregisterListeners(),this.onMediaDetaching(),this.levelDetails=null,this.hls=this.timeupdateHandler=null},t.registerListeners=function(){this.hls.on(s.Events.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.on(s.Events.MEDIA_DETACHING,this.onMediaDetaching,this),this.hls.on(s.Events.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.on(s.Events.LEVEL_UPDATED,this.onLevelUpdated,this),this.hls.on(s.Events.ERROR,this.onError,this)},t.unregisterListeners=function(){this.hls.off(s.Events.MEDIA_ATTACHED,this.onMediaAttached),this.hls.off(s.Events.MEDIA_DETACHING,this.onMediaDetaching),this.hls.off(s.Events.MANIFEST_LOADING,this.onManifestLoading),this.hls.off(s.Events.LEVEL_UPDATED,this.onLevelUpdated),this.hls.off(s.Events.ERROR,this.onError)},t.onMediaAttached=function(e,t){this.media=t.media,this.media.addEventListener("timeupdate",this.timeupdateHandler)},t.onMediaDetaching=function(){this.media&&(this.media.removeEventListener("timeupdate",this.timeupdateHandler),this.media=null)},t.onManifestLoading=function(){this.levelDetails=null,this._latency=null,this.stallCount=0},t.onLevelUpdated=function(e,t){t=t.details;(this.levelDetails=t).advanced&&this.timeupdate(),!t.live&&this.media&&this.media.removeEventListener("timeupdate",this.timeupdateHandler)},t.onError=function(e,t){t.details===r.ErrorDetails.BUFFER_STALLED_ERROR&&(this.stallCount++,a.logger.warn("[playback-rate-controller]: Stall detected, adjusting target latency"))},t.timeupdate=function(){var e,t,i,r=this.media,s=this.levelDetails;r&&s&&(this.currentTime=r.currentTime,null!==(t=this.computeLatency()))&&(this._latency=t,i=(e=this.config).lowLatencyMode,e=e.maxLiveSyncPlaybackRate,i)&&1!==e&&null!==(i=this.targetLatency)&&(i=(t=t-i)<Math.min(this.maxLatency,i+s.targetduration),s.live&&i&&.05<t&&1<this.forwardBufferLength?(s=Math.min(2,Math.max(1,e)),i=Math.round(2/(1+Math.exp(-.75*t-this.edgeStalled))*20)/20,r.playbackRate=Math.min(s,Math.max(1,i))):1!==r.playbackRate&&0!==r.playbackRate&&(r.playbackRate=1))},t.estimateLiveEdge=function(){var e=this.levelDetails;return null===e?null:e.edge+e.age},t.computeLatency=function(){var e=this.estimateLiveEdge();return null===e?null:e-this.currentTime},n(l.prototype,[{key:"latency",get:function(){return this._latency||0}},{key:"maxLatency",get:function(){var e=this.config,t=this.levelDetails;return void 0!==e.liveMaxLatencyDuration?e.liveMaxLatencyDuration:t?e.liveMaxLatencyDurationCount*t.targetduration:0}},{key:"targetLatency",get:function(){var e,t,i,r,s,a=this.levelDetails;return null===a?null:(e=a.holdBack,r=a.partHoldBack,a=a.targetduration,t=(s=this.config).liveSyncDuration,i=s.liveSyncDurationCount,s=s.lowLatencyMode&&r||e,(s=(r=this.hls.userConfig).liveSyncDuration||r.liveSyncDurationCount||0===s?void 0!==t?t:i*a:s)+Math.min(+this.stallCount,a))}},{key:"liveSyncPosition",get:function(){var e,t=this.estimateLiveEdge(),i=this.targetLatency,r=this.levelDetails;return null===t||null===i||null===r?null:(e=r.edge,t=t-i-this.edgeStalled,i=e-r.totalduration,e=e-(this.config.lowLatencyMode&&r.partTarget||r.targetduration),Math.min(Math.max(i,t),e))}},{key:"drift",get:function(){var e=this.levelDetails;return null===e?1:e.drift}},{key:"edgeStalled",get:function(){var e,t=this.levelDetails;return null===t?0:(e=3*(this.config.lowLatencyMode&&t.partTarget||t.targetduration),Math.max(t.age-e,0))}},{key:"forwardBufferLength",get:function(){var e,t=this.media,i=this.levelDetails;return t&&i?(e=t.buffered.length)?t.buffered.end(e-1):i.edge-this.currentTime:0}}]);var o=l;function l(e){var t=this;this.hls=void 0,this.config=void 0,this.media=null,this.levelDetails=null,this.currentTime=0,this.stallCount=0,this._latency=null,this.timeupdateHandler=function(){return t.timeupdate()},this.hls=e,this.config=e.config,this.registerListeners()}},"./src/controller/level-controller.ts":function(e,t,i){i.r(t),i.d(t,"default",function(){return n});var p=i("./src/types/level.ts"),f=i("./src/events.ts"),A=i("./src/errors.ts"),m=i("./src/utils/codecs.ts"),g=i("./src/controller/level-helper.ts"),t=i("./src/controller/base-playlist-controller.ts"),o=i("./src/types/loader.ts");function s(){return(s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i,r=arguments[t];for(i in r)Object.prototype.hasOwnProperty.call(r,i)&&(e[i]=r[i])}return e}).apply(this,arguments)}function r(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function a(e,t){return(a=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var l,y=/chrome|firefox/.test(navigator.userAgent.toLowerCase()),n=(l=t.default,i=l,(t=c).prototype=Object.create(i.prototype),a(t.prototype.constructor=t,i),(t=c.prototype)._registerListeners=function(){var e=this.hls;e.on(f.Events.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(f.Events.LEVEL_LOADED,this.onLevelLoaded,this),e.on(f.Events.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),e.on(f.Events.FRAG_LOADED,this.onFragLoaded,this),e.on(f.Events.ERROR,this.onError,this)},t._unregisterListeners=function(){var e=this.hls;e.off(f.Events.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(f.Events.LEVEL_LOADED,this.onLevelLoaded,this),e.off(f.Events.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),e.off(f.Events.FRAG_LOADED,this.onFragLoaded,this),e.off(f.Events.ERROR,this.onError,this)},t.destroy=function(){this._unregisterListeners(),this.manualLevelIndex=-1,this._levels.length=0,l.prototype.destroy.call(this)},t.startLoad=function(){this._levels.forEach(function(e){e.loadError=0}),l.prototype.startLoad.call(this)},t.onManifestLoaded=function(e,t){var i,r,s=[],a=[],n=[],o={},l=!1,c=!1,u=!1;if(t.levels.forEach(function(e){var t=e.attrs,i=(l=l||!(!e.width||!e.height),c=c||!!e.videoCodec,u=u||!!e.audioCodec,y&&e.audioCodec&&-1!==e.audioCodec.indexOf("mp4a.40.34")&&(e.audioCodec=void 0),e.bitrate+"-"+e.attrs.RESOLUTION+"-"+e.attrs.CODECS);(r=o[i])?r.url.push(e.url):(r=new p.Level(e),o[i]=r,s.push(r)),t&&(t.AUDIO&&Object(g.addGroupId)(r,"audio",t.AUDIO),t.SUBTITLES)&&Object(g.addGroupId)(r,"text",t.SUBTITLES)}),s=(s=(l||c)&&u?s.filter(function(e){var t=e.videoCodec,i=e.width,e=e.height;return!!t||!(!i||!e)}):s).filter(function(e){var t=e.audioCodec,e=e.videoCodec;return(!t||Object(m.isCodecSupportedInMp4)(t,"audio"))&&(!e||Object(m.isCodecSupportedInMp4)(e,"video"))}),t.audioTracks&&(a=t.audioTracks.filter(function(e){return!e.audioCodec||Object(m.isCodecSupportedInMp4)(e.audioCodec,"audio")}),Object(g.assignTrackIdsByGroup)(a)),t.subtitles&&(n=t.subtitles,Object(g.assignTrackIdsByGroup)(n)),0<s.length){i=s[0].bitrate,s.sort(function(e,t){return e.bitrate-t.bitrate}),this._levels=s;for(var d=0;d<s.length;d++)if(s[d].bitrate===i){this._firstLevel=d,this.log("manifest loaded, "+s.length+" level(s) found, first bitrate: "+i);break}var h=u&&!c,n={levels:s,audioTracks:a,subtitleTracks:n,firstLevel:this._firstLevel,stats:t.stats,audio:u,video:c,altAudio:!h&&a.some(function(e){return!!e.url})};this.hls.trigger(f.Events.MANIFEST_PARSED,n),(this.hls.config.autoStartLoad||this.hls.forceStartLoad)&&this.hls.startLoad(this.hls.config.startPosition)}else this.hls.trigger(f.Events.ERROR,{type:A.ErrorTypes.MEDIA_ERROR,details:A.ErrorDetails.MANIFEST_INCOMPATIBLE_CODECS_ERROR,fatal:!0,url:t.url,reason:"no level with compatible codecs found in manifest"})},t.onError=function(e,t){if(l.prototype.onError.call(this,e,t),!t.fatal){var i=t.context,e=this._levels[this.currentLevelIndex];if(i&&(i.type===o.PlaylistContextType.AUDIO_TRACK&&e.audioGroupIds&&i.groupId===e.audioGroupIds[e.urlId]||i.type===o.PlaylistContextType.SUBTITLE_TRACK&&e.textGroupIds&&i.groupId===e.textGroupIds[e.urlId]))this.redundantFailover(this.currentLevelIndex);else{var r,s,a=!1,n=!0;switch(t.details){case A.ErrorDetails.FRAG_LOAD_ERROR:case A.ErrorDetails.FRAG_LOAD_TIMEOUT:case A.ErrorDetails.KEY_LOAD_ERROR:case A.ErrorDetails.KEY_LOAD_TIMEOUT:t.frag&&(!(s=this._levels[t.frag.level])||(s.fragmentError++,s.fragmentError>this.hls.config.fragLoadingMaxRetry))&&(r=t.frag.level);break;case A.ErrorDetails.LEVEL_LOAD_ERROR:case A.ErrorDetails.LEVEL_LOAD_TIMEOUT:i&&(i.deliveryDirectives&&(n=!1),r=i.level),a=!0;break;case A.ErrorDetails.REMUX_ALLOC_ERROR:r=t.level,a=!0}void 0!==r&&this.recoverLevel(t,r,a,n)}}},t.recoverLevel=function(e,t,i,r){var s=e.details,a=this._levels[t];if(a.loadError++,i){if(!this.retryLoadingOrFail(e))return void(this.currentLevelIndex=-1);e.levelRetry=!0}r&&(1<(i=a.url.length)&&a.loadError<i?(e.levelRetry=!0,this.redundantFailover(t)):-1===this.manualLevelIndex&&(r=0===t?this._levels.length-1:t-1,this.currentLevelIndex!==r)&&0===this._levels[r].loadError&&(this.warn(s+": switch to "+r),e.levelRetry=!0,this.hls.nextAutoLevel=r))},t.redundantFailover=function(e){var t,i=this._levels[e],r=i.url.length;1<r&&(t=(i.urlId+1)%r,this.warn("Switching to redundant URL-id "+t),this._levels.forEach(function(e){e.urlId=t}),this.level=e)},t.onFragLoaded=function(e,t){var t=t.frag;void 0!==t&&t.type===o.PlaylistLevelType.MAIN&&void 0!==(t=this._levels[t.level])&&(t.fragmentError=0,t.loadError=0)},t.onLevelLoaded=function(e,t){var i=t.level,r=t.details,s=this._levels[i];s?i===this.currentLevelIndex?(0===s.fragmentError&&(s.loadError=0,this.retryCount=0),this.playlistLoaded(i,t,s.details)):null!=(s=t.deliveryDirectives)&&s.skip&&(r.deltaUpdateFailed=!0):(this.warn("Invalid level index "+i),null!=(s=t.deliveryDirectives)&&s.skip&&(r.deltaUpdateFailed=!0))},t.onAudioTrackSwitched=function(e,t){var i=this.hls.levels[this.currentLevelIndex];if(i&&i.audioGroupIds){for(var r=-1,s=this.hls.audioTracks[t.id].groupId,a=0;a<i.audioGroupIds.length;a++)if(i.audioGroupIds[a]===s){r=a;break}r!==i.urlId&&(i.urlId=r,this.startLoad())}},t.loadPlaylist=function(e){var t=this.currentLevelIndex,i=this._levels[t];if(this.canLoad&&i&&0<i.url.length){var r=i.urlId,i=i.url[r];if(e)try{i=e.addDirectives(i)}catch(e){this.warn("Could not construct new URL with HLS Delivery Directives: "+e)}this.log("Attempt loading level index "+t+(e?" at sn "+e.msn+" part "+e.part:"")+" with URL-id "+r+" "+i),this.clearTimer(),this.hls.trigger(f.Events.LEVEL_LOADING,{url:i,level:t,id:r,deliveryDirectives:e||null})}},t.removeLevel=function(i,r){function s(e,t){return t!==r}var e=this._levels.filter(function(e,t){return t!==i||1<e.url.length&&void 0!==r&&(e.url=e.url.filter(s),e.audioGroupIds&&(e.audioGroupIds=e.audioGroupIds.filter(s)),e.textGroupIds&&(e.textGroupIds=e.textGroupIds.filter(s)),!(e.urlId=0))}).map(function(e,t){var i=e.details;return null!=i&&i.fragments&&i.fragments.forEach(function(e){e.level=t}),e});this._levels=e,this.hls.trigger(f.Events.LEVELS_UPDATED,{levels:e})},r(c.prototype,[{key:"levels",get:function(){return 0===this._levels.length?null:this._levels}},{key:"level",get:function(){return this.currentLevelIndex},set:function(e){var t=this._levels;if(0!==t.length&&(this.currentLevelIndex!==e||null==(i=t[e])||!i.details)){if(e<0||e>=t.length){var i=e<0;if(this.hls.trigger(f.Events.ERROR,{type:A.ErrorTypes.OTHER_ERROR,details:A.ErrorDetails.LEVEL_SWITCH_ERROR,level:e,fatal:i,reason:"invalid level idx"}),i)return;e=Math.min(e,t.length-1)}this.clearTimer();var i=this.currentLevelIndex,r=t[i],t=t[e],i=(this.log("switching to level "+e+" from "+i),s({},t,{level:this.currentLevelIndex=e,maxBitrate:t.maxBitrate,uri:t.uri,urlId:t.urlId})),e=(delete i._urlId,this.hls.trigger(f.Events.LEVEL_SWITCHING,i),t.details);e&&!e.live||(i=this.switchParams(t.uri,null==r?void 0:r.details),this.loadPlaylist(i))}}},{key:"manualLevel",get:function(){return this.manualLevelIndex},set:function(e){this.manualLevelIndex=e,void 0===this._startLevel&&(this._startLevel=e),-1!==e&&(this.level=e)}},{key:"firstLevel",get:function(){return this._firstLevel},set:function(e){this._firstLevel=e}},{key:"startLevel",get:function(){var e;return void 0===this._startLevel?void 0!==(e=this.hls.config.startLevel)?e:this._firstLevel:this._startLevel},set:function(e){this._startLevel=e}},{key:"nextLoadLevel",get:function(){return-1!==this.manualLevelIndex?this.manualLevelIndex:this.hls.nextAutoLevel},set:function(e){this.level=e,-1===this.manualLevelIndex&&(this.hls.nextAutoLevel=e)}}]),c);function c(e){return(e=l.call(this,e,"[level-controller]")||this)._levels=[],e._firstLevel=-1,e._startLevel=void 0,e.currentLevelIndex=-1,e.manualLevelIndex=-1,e.onParsedComplete=void 0,e._registerListeners(),e}},"./src/controller/level-helper.ts":function(e,t,i){i.r(t),i.d(t,"addGroupId",function(){return r}),i.d(t,"assignTrackIdsByGroup",function(){return s}),i.d(t,"updatePTS",function(){return a}),i.d(t,"updateFragPTSDTS",function(){return m}),i.d(t,"mergeDetails",function(){return n}),i.d(t,"mapPartIntersection",function(){return g}),i.d(t,"mapFragmentIntersection",function(){return y}),i.d(t,"adjustSliding",function(){return v}),i.d(t,"addSliding",function(){return o}),i.d(t,"computeReloadInterval",function(){return l}),i.d(t,"getFragmentWithSN",function(){return c}),i.d(t,"getPartWith",function(){return u});var p=i("./src/polyfills/number.ts"),f=i("./src/utils/logger.ts");function r(e,t,i){switch(t){case"audio":e.audioGroupIds||(e.audioGroupIds=[]),e.audioGroupIds.push(i);break;case"text":e.textGroupIds||(e.textGroupIds=[]),e.textGroupIds.push(i)}}function s(e){var i={};e.forEach(function(e){var t=e.groupId||"";e.id=i[t]=i[t]||0,i[t]++})}function a(e,t,i){A(e[t],e[i])}function A(e,t){var i,r=t.startPTS;Object(p.isFiniteNumber)(r)?(i=0,(r=t.sn>e.sn?(i=r-e.start,e):(i=e.start-r,t)).duration!==i&&(r.duration=i)):t.sn>e.sn?e.cc===t.cc&&e.minEndPTS?t.start=e.start+(e.minEndPTS-e.start):t.start=e.start+e.duration:t.start=Math.max(e.start-t.duration,0)}function m(e,t,i,r,s,a){r-i<=0&&(f.logger.warn("Fragment should have a positive duration",t),r=i+t.duration,a=s+t.duration);var n=i,o=r,l=t.startPTS,c=t.endPTS,u=(Object(p.isFiniteNumber)(l)&&(u=Math.abs(l-i),Object(p.isFiniteNumber)(t.deltaPTS)?t.deltaPTS=Math.max(u,t.deltaPTS):t.deltaPTS=u,n=Math.max(i,l),i=Math.min(i,l),s=Math.min(s,t.startDTS),o=Math.min(r,c),r=Math.max(r,c),a=Math.max(a,t.endDTS)),t.duration=r-i,i-t.start);t.appendedPTS=r,t.start=t.startPTS=i,t.maxStartPTS=n,t.startDTS=s,t.endPTS=r,t.minEndPTS=o,t.endDTS=a;var d,l=t.sn;if(!e||l<e.startSN||l>e.endSN)return 0;var c=l-e.startSN,h=e.fragments;for(h[c]=t,d=c;0<d;d--)A(h[d],h[d-1]);for(d=c;d<h.length-1;d++)A(h[d],h[d+1]);return e.fragmentHint&&A(h[h.length-1],e.fragmentHint),e.PTSKnown=e.alignedSliding=!0,u}function n(e,i){for(var r=null,t=e.fragments,s=t.length-1;0<=s;s--){var a=t[s].initSegment;if(a){r=a;break}}e.fragmentHint&&delete e.fragmentHint.endPTS;var n,o=0;if(y(e,i,function(e,t){e.relurl&&(o=e.cc-t.cc),Object(p.isFiniteNumber)(e.startPTS)&&Object(p.isFiniteNumber)(e.endPTS)&&(t.start=t.startPTS=e.startPTS,t.startDTS=e.startDTS,t.appendedPTS=e.appendedPTS,t.maxStartPTS=e.maxStartPTS,t.endPTS=e.endPTS,t.endDTS=e.endDTS,t.minEndPTS=e.minEndPTS,t.duration=e.endPTS-e.startPTS,t.duration&&(n=t),i.PTSKnown=i.alignedSliding=!0),t.elementaryStreams=e.elementaryStreams,t.loader=e.loader,t.stats=e.stats,t.urlId=e.urlId,e.initSegment&&(t.initSegment=e.initSegment,r=e.initSegment)}),r&&(i.fragmentHint?i.fragments.concat(i.fragmentHint):i.fragments).forEach(function(e){var t;e.initSegment&&e.initSegment.relurl!==(null==(t=r)?void 0:t.relurl)||(e.initSegment=r)}),i.skippedSegments&&(i.deltaUpdateFailed=i.fragments.some(function(e){return!e}),i.deltaUpdateFailed)){f.logger.warn("[level-helper] Previous playlist missing segments skipped in delta playlist");for(var l=i.skippedSegments;l--;)i.fragments.shift();i.startSN=i.fragments[0].sn,i.startCC=i.fragments[0].cc}var c=i.fragments;if(o){f.logger.warn("discontinuity sliding from playlist, take drift into account");for(var u=0;u<c.length;u++)c[u].cc+=o}i.skippedSegments&&(i.startCC=i.fragments[0].cc),g(e.partList,i.partList,function(e,t){t.elementaryStreams=e.elementaryStreams,t.stats=e.stats}),n?m(i,n,n.startPTS,n.endPTS,n.startDTS,n.endDTS):v(e,i),c.length&&(i.totalduration=i.edge-c[0].start),i.driftStartTime=e.driftStartTime,i.driftStart=e.driftStart;var d,h=i.advancedDateTime;i.advanced&&h?(d=i.edge,i.driftStart||(i.driftStartTime=h,i.driftStart=d),i.driftEndTime=h,i.driftEnd=d):(i.driftEndTime=e.driftEndTime,i.driftEnd=e.driftEnd,i.advancedDateTime=e.advancedDateTime)}function g(e,t,i){if(e&&t)for(var r=0,s=0,a=e.length;s<=a;s++){var n=e[s],o=t[s+r];n&&o&&n.index===o.index&&n.fragment.sn===o.fragment.sn?i(n,o):r--}}function y(e,t,i){for(var r=t.skippedSegments,s=Math.max(e.startSN,t.startSN)-t.startSN,a=(e.fragmentHint?1:0)+(r?t.endSN:Math.min(e.endSN,t.endSN))-t.startSN,n=t.startSN-e.startSN,o=t.fragmentHint?t.fragments.concat(t.fragmentHint):t.fragments,l=e.fragmentHint?e.fragments.concat(e.fragmentHint):e.fragments,c=s;c<=a;c++){var u=l[n+c],d=o[c];r&&!d&&c<r&&(d=t.fragments[c]=u),u&&d&&i(u,d)}}function v(e,t){var i=t.startSN+t.skippedSegments-e.startSN,e=e.fragments;i<0||i>=e.length||o(t,e[i].start)}function o(e,t){if(t){for(var i=e.fragments,r=e.skippedSegments;r<i.length;r++)i[r].start+=t;e.fragmentHint&&(e.fragmentHint.start+=t)}}function l(e,t){var i,r=1e3*e.levelTargetDuration,s=r/2,a=e.age,n=0<a&&a<3*r,t=t.loading.end-t.loading.start,o=e.availabilityDelay;return!1===e.updated?n?(i=333*e.misses,i=Math.max(Math.min(s,2*t),i),e.availabilityDelay=(e.availabilityDelay||0)+i):i=s:i=n?(o=Math.min(o||r/2,a),(e.availabilityDelay=o)+r-a):r-t,Math.round(i)}function c(e,t,i){var r;return e&&e.details?(e=e.details).fragments[t-e.startSN]||((r=e.fragmentHint)&&r.sn===t?r:t<e.startSN&&i&&i.sn===t?i:null):null}function u(e,t,i){if(e&&e.details){var r=e.details.partList;if(r)for(var s=r.length;s--;){var a=r[s];if(a.index===i&&a.fragment.sn===t)return a}}return null}},"./src/controller/stream-controller.ts":function(e,t,i){i.r(t),i.d(t,"default",function(){return v});var f=i("./src/polyfills/number.ts"),A=i("./src/controller/base-stream-controller.ts"),a=i("./src/is-supported.ts"),m=i("./src/events.ts"),s=i("./src/utils/buffer-helper.ts"),n=i("./src/controller/fragment-tracker.ts"),d=i("./src/types/loader.ts"),g=i("./src/loader/fragment.ts"),h=i("./src/demux/transmuxer-interface.ts"),p=i("./src/types/transmuxer.ts"),r=i("./src/controller/gap-controller.ts"),o=i("./src/errors.ts"),l=i("./src/utils/logger.ts");function c(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function u(e,t){return(u=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}y=A.default,t=y,(i=b).prototype=Object.create(t.prototype),u(i.prototype.constructor=i,t),(i=b.prototype)._registerListeners=function(){var e=this.hls;e.on(m.Events.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(m.Events.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(m.Events.MANIFEST_LOADING,this.onManifestLoading,this),e.on(m.Events.MANIFEST_PARSED,this.onManifestParsed,this),e.on(m.Events.LEVEL_LOADING,this.onLevelLoading,this),e.on(m.Events.LEVEL_LOADED,this.onLevelLoaded,this),e.on(m.Events.FRAG_LOAD_EMERGENCY_ABORTED,this.onFragLoadEmergencyAborted,this),e.on(m.Events.ERROR,this.onError,this),e.on(m.Events.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.on(m.Events.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),e.on(m.Events.BUFFER_CREATED,this.onBufferCreated,this),e.on(m.Events.BUFFER_FLUSHED,this.onBufferFlushed,this),e.on(m.Events.LEVELS_UPDATED,this.onLevelsUpdated,this),e.on(m.Events.FRAG_BUFFERED,this.onFragBuffered,this)},i._unregisterListeners=function(){var e=this.hls;e.off(m.Events.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(m.Events.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(m.Events.MANIFEST_LOADING,this.onManifestLoading,this),e.off(m.Events.MANIFEST_PARSED,this.onManifestParsed,this),e.off(m.Events.LEVEL_LOADED,this.onLevelLoaded,this),e.off(m.Events.FRAG_LOAD_EMERGENCY_ABORTED,this.onFragLoadEmergencyAborted,this),e.off(m.Events.ERROR,this.onError,this),e.off(m.Events.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.off(m.Events.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),e.off(m.Events.BUFFER_CREATED,this.onBufferCreated,this),e.off(m.Events.BUFFER_FLUSHED,this.onBufferFlushed,this),e.off(m.Events.LEVELS_UPDATED,this.onLevelsUpdated,this),e.off(m.Events.FRAG_BUFFERED,this.onFragBuffered,this)},i.onHandlerDestroying=function(){this._unregisterListeners(),this.onMediaDetaching()},i.startLoad=function(e){var t,i,r;this.levels?(t=this.lastCurrentTime,i=this.hls,this.stopLoad(),this.setInterval(100),this.level=-1,this.fragLoadError=0,this.startFragRequested||(-1===(r=i.startLevel)&&(i.config.testBandwidth?this.bitrateTest=!(r=0):r=i.nextAutoLevel),this.level=i.nextLoadLevel=r,this.loadedmetadata=!1),0<t&&-1===e&&(this.log("Override startPosition with lastCurrentTime @"+t.toFixed(3)),e=t),this.state=A.State.IDLE,this.nextLoadPosition=this.startPosition=this.lastCurrentTime=e,this.tick()):(this._forceStartLoad=!0,this.state=A.State.STOPPED)},i.stopLoad=function(){this._forceStartLoad=!1,y.prototype.stopLoad.call(this)},i.doTick=function(){switch(this.state){case A.State.IDLE:this.doTickIdle();break;case A.State.WAITING_LEVEL:var e=this.levels,t=this.level,t=null==e||null==(e=e[t])?void 0:e.details;if(t&&(!t.live||this.levelLastLoaded===this.level)){if(this.waitForCdnTuneIn(t))break;this.state=A.State.IDLE}break;case A.State.FRAG_LOADING_WAITING_RETRY:e=self.performance.now(),t=this.retryDate;(!t||t<=e||null!=(t=this.media)&&t.seeking)&&(this.log("retryDate reached, switch back to IDLE state"),this.state=A.State.IDLE)}this.onTickEnd()},i.onTickEnd=function(){y.prototype.onTickEnd.call(this),this.checkBuffer(),this.checkFragmentChanged()},i.doTickIdle=function(){var e=this.hls,t=this.levelLastLoaded,i=this.levels,r=this.media,s=e.config,a=e.nextLoadLevel;null===t||!(r||!this.startFragRequested&&s.startFragPrefetch)||this.altAudio&&this.audioOnly||!i||!i[a]||(t=i[a],this.level=e.nextLoadLevel=a,!(s=t.details)||this.state===A.State.WAITING_LEVEL||s.live&&this.levelLastLoaded!==a?this.state=A.State.WAITING_LEVEL:null===(i=this.getFwdBufferInfo(this.mediaBuffer||r,d.PlaylistLevelType.MAIN))||i.len>=this.getMaxBufferLength(t.maxBitrate)||(this._streamEnded(i,s)?(e={},this.altAudio&&(e.type="video"),this.hls.trigger(m.Events.BUFFER_EOS,e),this.state=A.State.ENDED):(a=i.end,t=this.getNextFragment(a,s),this.couldBacktrack&&!this.fragPrevious&&t&&"initSegment"!==t.sn&&1<(e=t.sn-s.startSN)&&(t=s.fragments[e-1],this.fragmentTracker.removeFragment(t)),t&&this.fragmentTracker.getState(t)===n.FragmentState.OK&&this.nextLoadPosition>a&&(i=this.audioOnly&&!this.altAudio?g.ElementaryStreamTypes.AUDIO:g.ElementaryStreamTypes.VIDEO,this.afterBufferFlushed(r,i,d.PlaylistLevelType.MAIN),t=this.getNextFragment(this.nextLoadPosition,s)),t&&("identity"!==(null==(e=(t=!t.initSegment||t.initSegment.data||this.bitrateTest?t:t.initSegment).decryptdata)?void 0:e.keyFormat)||null!=(r=t.decryptdata)&&r.key?this.loadFragment(t,s,a):this.loadKey(t,s)))))},i.loadFragment=function(e,t,i){var r=this.fragmentTracker.getState(e);if(this.fragCurrent=e,r===n.FragmentState.BACKTRACKED){var s=this.fragmentTracker.getBacktrackData(e);if(s)return this._handleFragmentLoadProgress(s),void this._handleFragmentLoadComplete(s);r=n.FragmentState.NOT_LOADED}r===n.FragmentState.NOT_LOADED||r===n.FragmentState.PARTIAL?"initSegment"===e.sn?this._loadInitSegment(e):this.bitrateTest?(e.bitrateTest=!0,this.log("Fragment "+e.sn+" of level "+e.level+" is being downloaded to test bitrate and will not be buffered"),this._loadBitrateTestFrag(e)):(this.startFragRequested=!0,y.prototype.loadFragment.call(this,e,t,i)):r===n.FragmentState.APPENDING?this.reduceMaxBufferLength(e.duration)&&this.fragmentTracker.removeFragment(e):0===(null==(s=this.media)?void 0:s.buffered.length)&&this.fragmentTracker.removeAllFragments()},i.getAppendedFrag=function(e){e=this.fragmentTracker.getAppendedFrag(e,d.PlaylistLevelType.MAIN);return e&&"fragment"in e?e.fragment:e},i.getBufferedFrag=function(e){return this.fragmentTracker.getBufferedFrag(e,d.PlaylistLevelType.MAIN)},i.followingBufferedFrag=function(e){return e?this.getBufferedFrag(e.end+.5):null},i.immediateLevelSwitch=function(){this.abortCurrentFrag(),this.flushMainBuffer(0,Number.POSITIVE_INFINITY)},i.nextLevelSwitch=function(){var e,t=this.levels,i=this.media;null!=i&&i.readyState&&((e=this.getAppendedFrag(i.currentTime))&&1<e.start&&this.flushMainBuffer(0,e.start-1),e=!i.paused&&t&&(e=t[this.hls.nextLoadLevel],t=this.fragLastKbps)&&this.fragCurrent?this.fragCurrent.duration*e.maxBitrate/(1e3*t)+1:0,t=this.getBufferedFrag(i.currentTime+e))&&(i=this.followingBufferedFrag(t))&&(this.abortCurrentFrag(),e=i.maxStartPTS||i.start,i=i.duration,t=Math.max(t.end,e+Math.min(Math.max(i-this.config.maxFragLookUpTolerance,.5*i),.75*i)),this.flushMainBuffer(t,Number.POSITIVE_INFINITY))},i.abortCurrentFrag=function(){var e=this.fragCurrent;(this.fragCurrent=null)!=e&&e.loader&&e.loader.abort(),this.state===A.State.KEY_LOADING&&(this.state=A.State.IDLE),this.nextLoadPosition=this.getLoadPosition()},i.flushMainBuffer=function(e,t){y.prototype.flushMainBuffer.call(this,e,t,this.altAudio?"video":null)},i.onMediaAttached=function(e,t){y.prototype.onMediaAttached.call(this,e,t);e=t.media;this.onvplaying=this.onMediaPlaying.bind(this),this.onvseeked=this.onMediaSeeked.bind(this),e.addEventListener("playing",this.onvplaying),e.addEventListener("seeked",this.onvseeked),this.gapController=new r.default(this.config,e,this.fragmentTracker,this.hls)},i.onMediaDetaching=function(){var e=this.media;e&&(e.removeEventListener("playing",this.onvplaying),e.removeEventListener("seeked",this.onvseeked),this.onvplaying=this.onvseeked=null,this.videoBuffer=null),this.fragPlaying=null,this.gapController&&(this.gapController.destroy(),this.gapController=null),y.prototype.onMediaDetaching.call(this)},i.onMediaPlaying=function(){this.tick()},i.onMediaSeeked=function(){var e=this.media,e=e?e.currentTime:null;Object(f.isFiniteNumber)(e)&&this.log("Media seeked to "+e.toFixed(3)),this.tick()},i.onManifestLoading=function(){this.log("Trigger BUFFER_RESET"),this.hls.trigger(m.Events.BUFFER_RESET,void 0),this.fragmentTracker.removeAllFragments(),this.couldBacktrack=this.stalled=!1,this.startPosition=this.lastCurrentTime=0,this.fragPlaying=null},i.onManifestParsed=function(e,t){var i,r=!1,s=!1;t.levels.forEach(function(e){(i=e.audioCodec)&&(-1!==i.indexOf("mp4a.40.2")&&(r=!0),-1!==i.indexOf("mp4a.40.5"))&&(s=!0)}),this.audioCodecSwitch=r&&s&&!Object(a.changeTypeSupported)(),this.audioCodecSwitch&&this.log("Both AAC/HE-AAC audio found in levels; declaring level codec as HE-AAC"),this.levels=t.levels,this.startFragRequested=!1},i.onLevelLoading=function(e,t){var i=this.levels;i&&this.state===A.State.IDLE&&(!(i=i[t.level]).details||i.details.live&&this.levelLastLoaded!==t.level||this.waitForCdnTuneIn(i.details))&&(this.state=A.State.WAITING_LEVEL)},i.onLevelLoaded=function(e,t){var i=this.levels,r=t.level,s=t.details,a=s.totalduration;if(i){this.log("Level "+r+" loaded ["+s.startSN+","+s.endSN+"], cc ["+s.startCC+", "+s.endCC+"] duration:"+a);a=this.fragCurrent,t=(!a||this.state!==A.State.FRAG_LOADING&&this.state!==A.State.FRAG_LOADING_WAITING_RETRY||a.level!==t.level&&a.loader&&(this.state=A.State.IDLE,a.loader.abort()),i[r]),a=0;if(s.live||null!=(i=t.details)&&i.live){if(s.fragments[0]||(s.deltaUpdateFailed=!0),s.deltaUpdateFailed)return;a=this.alignPlaylists(s,t.details)}if(t.details=s,this.levelLastLoaded=r,this.hls.trigger(m.Events.LEVEL_UPDATED,{details:s,level:r}),this.state===A.State.WAITING_LEVEL){if(this.waitForCdnTuneIn(s))return;this.state=A.State.IDLE}this.startFragRequested?s.live&&this.synchronizeToLiveEdge(s):this.setStartPosition(s,a),this.tick()}else this.warn("Levels were reset while loading level "+r)},i._handleFragmentLoadProgress=function(e){var t,i,r,s,a,n,o,l=e.frag,c=e.part,e=e.payload,u=this.levels;u?(t=(u=u[l.level]).details)?(i=u.videoCodec,r=t.PTSKnown||!t.live,s=null==(s=l.initSegment)?void 0:s.data,u=this._getAudioCodec(u),a=this.transmuxer=this.transmuxer||new h.default(this.hls,d.PlaylistLevelType.MAIN,this._handleTransmuxComplete.bind(this),this._handleTransmuxerFlush.bind(this)),n=c?c.index:-1,n=new p.ChunkMetadata(l.level,l.sn,l.stats.chunkCount,e.byteLength,n,-1!==n),o=this.initPTS[l.cc],a.push(e,s,u,i,l,c,t.totalduration,r,n,o)):this.warn("Dropping fragment "+l.sn+" of level "+l.level+" after level details were reset"):this.warn("Levels were reset while fragment load was in progress. Fragment "+l.sn+" of level "+l.level+" will not be buffered")},i.onAudioTrackSwitching=function(e,t){var i=this.altAudio,r=!!t.url,t=t.id;r||(this.mediaBuffer!==this.media?(this.log("Switching on main audio, use media.buffered to schedule main fragment loading"),this.mediaBuffer=this.media,null!=(r=this.fragCurrent)&&r.loader&&(this.log("Switching to main audio track, cancel main fragment load"),r.loader.abort()),this.resetTransmuxer(),this.resetLoadingState()):this.audioOnly&&this.resetTransmuxer(),r=this.hls,i&&r.trigger(m.Events.BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:"audio"}),r.trigger(m.Events.AUDIO_TRACK_SWITCHED,{id:t}))},i.onAudioTrackSwitched=function(e,t){var i,t=t.id,t=!!this.hls.audioTracks[t].url;t&&(i=this.videoBuffer)&&this.mediaBuffer!==i&&(this.log("Switching on alternate audio, use video.buffered to schedule main fragment loading"),this.mediaBuffer=i),this.altAudio=t,this.tick()},i.onBufferCreated=function(e,t){var i,r=t.tracks,s=!1;for(i in r){var a,n,o=r[i];"main"===o.id?(n=o,"video"===(a=i)&&(o=r[i])&&(this.videoBuffer=o.buffer)):s=!0}s&&n?(this.log("Alternate track found, use "+a+".buffered to schedule main fragment loading"),this.mediaBuffer=n.buffer):this.mediaBuffer=this.media},i.onFragBuffered=function(e,t){var i,r=t.frag,t=t.part;r&&r.type!==d.PlaylistLevelType.MAIN||(this.fragContextChanged(r)?(this.warn("Fragment "+r.sn+(t?" p: "+t.index:"")+" of level "+r.level+" finished buffering, but was aborted. state: "+this.state),this.state===A.State.PARSED&&(this.state=A.State.IDLE)):(i=(t||r).stats,this.fragLastKbps=Math.round(8*i.total/(i.buffering.end-i.loading.first)),"initSegment"!==r.sn&&(this.fragPrevious=r),this.fragBufferedComplete(r,t)))},i.onError=function(e,t){switch(t.details){case o.ErrorDetails.FRAG_LOAD_ERROR:case o.ErrorDetails.FRAG_LOAD_TIMEOUT:case o.ErrorDetails.KEY_LOAD_ERROR:case o.ErrorDetails.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(d.PlaylistLevelType.MAIN,t);break;case o.ErrorDetails.LEVEL_LOAD_ERROR:case o.ErrorDetails.LEVEL_LOAD_TIMEOUT:this.state!==A.State.ERROR&&(t.fatal?(this.warn(""+t.details),this.state=A.State.ERROR):t.levelRetry||this.state!==A.State.WAITING_LEVEL||(this.state=A.State.IDLE));break;case o.ErrorDetails.BUFFER_FULL_ERROR:var i,r;"main"!==t.parent||this.state!==A.State.PARSING&&this.state!==A.State.PARSED||(i=!0,(i=(r=this.getFwdBufferInfo(this.media,d.PlaylistLevelType.MAIN))&&.5<r.len?!this.reduceMaxBufferLength(r.len):i)&&(this.warn("buffer full error also media.currentTime is not buffered, flush main"),this.immediateLevelSwitch()),this.resetLoadingState())}},i.checkBuffer=function(){var e,t=this.media,i=this.gapController;t&&i&&t.readyState&&(e=s.BufferHelper.getBuffered(t),!this.loadedmetadata&&e.length?(this.loadedmetadata=!0,this.seekToStartPos()):i.poll(this.lastCurrentTime),this.lastCurrentTime=t.currentTime)},i.onFragLoadEmergencyAborted=function(){this.state=A.State.IDLE,this.loadedmetadata||(this.startFragRequested=!1,this.nextLoadPosition=this.startPosition),this.tickImmediate()},i.onBufferFlushed=function(e,t){var i,t=t.type;(t!==g.ElementaryStreamTypes.AUDIO||this.audioOnly&&!this.altAudio)&&(i=(t===g.ElementaryStreamTypes.VIDEO?this.videoBuffer:this.mediaBuffer)||this.media,this.afterBufferFlushed(i,t,d.PlaylistLevelType.MAIN))},i.onLevelsUpdated=function(e,t){this.levels=t.levels},i.swapAudioCodec=function(){this.audioCodecSwap=!this.audioCodecSwap},i.seekToStartPos=function(){var e,t=this.media,i=t.currentTime,r=this.startPosition;0<=r&&i<r&&(t.seeking?l.logger.log("could not seek to "+r+", already seeking at "+i):(0<(e=((e=s.BufferHelper.getBuffered(t)).length?e.start(0):0)-r)&&(e<this.config.maxBufferHole||e<this.config.maxFragLookUpTolerance)&&(l.logger.log("adjusting start position by "+e+" to match buffer start"),this.startPosition=r+=e),this.log("seek to target start position "+r+" from current time "+i),t.currentTime=r))},i._getAudioCodec=function(e){e=this.config.defaultAudioCodec||e.audioCodec;return this.audioCodecSwap&&e&&(this.log("Swapping audio codec"),e=-1!==e.indexOf("mp4a.40.5")?"mp4a.40.2":"mp4a.40.5"),e},i._loadBitrateTestFrag=function(r){var s=this;this._doFragLoad(r).then(function(e){var t,i=s.hls;!e||i.nextLoadLevel||s.fragContextChanged(r)||(s.fragLoadError=0,s.state=A.State.IDLE,s.startFragRequested=!1,s.bitrateTest=!1,(t=r.stats).parsing.start=t.parsing.end=t.buffering.start=t.buffering.end=self.performance.now(),i.trigger(m.Events.FRAG_LOADED,e))})},i._handleTransmuxComplete=function(e){var t="main",i=this.hls,r=e.remuxResult,e=e.chunkMeta,s=this.getCurrentContext(e);if(s){var a=s.frag,n=s.part,s=s.level,o=r.video,l=r.text,c=r.id3,u=r.initSegment,d=this.altAudio?void 0:r.audio;if(!this.fragContextChanged(a)){if(this.state=A.State.PARSING,u&&(u.tracks&&(this._bufferInitSegment(s,u.tracks,a,e),i.trigger(m.Events.FRAG_PARSING_INIT_SEGMENT,{frag:a,id:t,tracks:u.tracks})),h=u.initPTS,u=u.timescale,Object(f.isFiniteNumber)(h))&&(this.initPTS[a.cc]=h,i.trigger(m.Events.INIT_PTS_FOUND,{frag:a,id:t,initPTS:h,timescale:u})),o&&!1!==r.independent){if(s.details){var h=o.startPTS,u=o.endPTS,s=o.startDTS,p=o.endDTS;if(n)n.elementaryStreams[o.type]={startPTS:h,endPTS:u,startDTS:s,endDTS:p};else if(o.firstKeyFrame&&o.independent&&(this.couldBacktrack=!0),o.dropped&&o.independent){if(this.getLoadPosition()+this.config.maxBufferHole<h)return void this.backtrack(a);a.setElementaryStreamInfo(o.type,a.start,u,a.start,p,!0)}a.setElementaryStreamInfo(o.type,h,u,s,p),this.bufferFragmentData(o,a,n,e)}}else if(!1===r.independent)return void this.backtrack(a);d&&(h=d.startPTS,u=d.endPTS,s=d.startDTS,p=d.endDTS,n&&(n.elementaryStreams[g.ElementaryStreamTypes.AUDIO]={startPTS:h,endPTS:u,startDTS:s,endDTS:p}),a.setElementaryStreamInfo(g.ElementaryStreamTypes.AUDIO,h,u,s,p),this.bufferFragmentData(d,a,n,e)),null!=c&&null!=(o=c.samples)&&o.length&&(r={frag:a,id:t,samples:c.samples},i.trigger(m.Events.FRAG_PARSING_METADATA,r)),l&&(h={frag:a,id:t,samples:l.samples},i.trigger(m.Events.FRAG_PARSING_USERDATA,h))}}else this.warn("The loading context changed while buffering fragment "+e.sn+" of level "+e.level+". This chunk will not be buffered."),this.resetLiveStartWhenNotLoaded(e.level)},i._bufferInitSegment=function(e,i,r,s){var t,a,n,o,l,c=this;this.state===A.State.PARSING&&(this.audioOnly=!!i.audio&&!i.video,this.altAudio&&!this.audioOnly&&delete i.audio,t=i.audio,a=i.video,n=i.audiovideo,t&&(o=e.audioCodec,l=navigator.userAgent.toLowerCase(),this.audioCodecSwitch&&(o=o&&(-1!==o.indexOf("mp4a.40.5")?"mp4a.40.2":"mp4a.40.5"),1!==t.metadata.channelCount)&&-1===l.indexOf("firefox")&&(o="mp4a.40.5"),-1!==l.indexOf("android")&&"audio/mpeg"!==t.container&&this.log("Android: force audio codec to "+(o="mp4a.40.2")),e.audioCodec&&e.audioCodec!==o&&this.log('Swapping manifest audio codec "'+e.audioCodec+'" for "'+o+'"'),t.levelCodec=o,t.id="main",this.log("Init audio buffer, container:"+t.container+", codecs[selected/level/parsed]=["+(o||"")+"/"+(e.audioCodec||"")+"/"+t.codec+"]")),a&&(a.levelCodec=e.videoCodec,a.id="main",this.log("Init video buffer, container:"+a.container+", codecs[level/parsed]=["+(e.videoCodec||"")+"/"+a.codec+"]")),n&&this.log("Init audiovideo buffer, container:"+n.container+", codecs[level/parsed]=["+(e.attrs.CODECS||"")+"/"+n.codec+"]"),this.hls.trigger(m.Events.BUFFER_CODECS,i),Object.keys(i).forEach(function(e){var t=i[e].initSegment;null!=t&&t.byteLength&&c.hls.trigger(m.Events.BUFFER_APPENDING,{type:e,data:t,frag:r,part:null,chunkMeta:s,parent:r.type})}),this.tick())},i.backtrack=function(e){this.couldBacktrack=!0,this.resetTransmuxer(),this.flushBufferGap(e);var t=this.fragmentTracker.backtrack(e);this.fragPrevious=null,this.nextLoadPosition=e.start,t?this.resetFragmentLoading(e):this.state=A.State.BACKTRACKING},i.checkFragmentChanged=function(){var e,t=this.media,i=null;t&&1<t.readyState&&!1===t.seeking&&(e=t.currentTime,s.BufferHelper.isBuffered(t,e)?i=this.getAppendedFrag(e):s.BufferHelper.isBuffered(t,e+.1)&&(i=this.getAppendedFrag(e+.1)),i)&&(t=this.fragPlaying,e=i.level,t&&i.sn===t.sn&&t.level===e&&i.urlId===t.urlId||(this.hls.trigger(m.Events.FRAG_CHANGED,{frag:i}),t&&t.level===e||this.hls.trigger(m.Events.LEVEL_SWITCHED,{level:e}),this.fragPlaying=i))},c(b.prototype,[{key:"nextLevel",get:function(){var e=this.nextBufferedFrag;return e?e.level:-1}},{key:"currentLevel",get:function(){var e=this.media;if(e){e=this.getAppendedFrag(e.currentTime);if(e)return e.level}return-1}},{key:"nextBufferedFrag",get:function(){var e=this.media;return e?(e=this.getAppendedFrag(e.currentTime),this.followingBufferedFrag(e)):null}},{key:"forceStartLoad",get:function(){return this._forceStartLoad}}]);var y,v=b;function b(e,t){return(e=y.call(this,e,t,"[stream-controller]")||this).audioCodecSwap=!1,e.gapController=null,e.level=-1,e._forceStartLoad=!1,e.altAudio=!1,e.audioOnly=!1,e.fragPlaying=null,e.onvplaying=null,e.onvseeked=null,e.fragLastKbps=0,e.stalled=!1,e.couldBacktrack=!1,e.audioCodecSwitch=!1,e.videoBuffer=null,e._registerListeners(),e}},"./src/controller/subtitle-stream-controller.ts":function(e,t,i){i.r(t),i.d(t,"SubtitleStreamController",function(){return A});var a=i("./src/events.ts"),l=i("./src/utils/buffer-helper.ts"),c=i("./src/controller/fragment-finders.ts"),n=i("./src/utils/discontinuities.ts"),o=i("./src/controller/level-helper.ts"),u=i("./src/controller/fragment-tracker.ts"),d=i("./src/controller/base-stream-controller.ts"),h=i("./src/types/loader.ts"),r=i("./src/types/level.ts");function s(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function p(e,t){return(p=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}f=d.default,t=f,(i=m).prototype=Object.create(t.prototype),p(i.prototype.constructor=i,t),(i=m.prototype).onHandlerDestroying=function(){this._unregisterListeners(),this.mainDetails=null},i._registerListeners=function(){var e=this.hls;e.on(a.Events.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(a.Events.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(a.Events.MANIFEST_LOADING,this.onManifestLoading,this),e.on(a.Events.LEVEL_LOADED,this.onLevelLoaded,this),e.on(a.Events.ERROR,this.onError,this),e.on(a.Events.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.on(a.Events.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),e.on(a.Events.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.on(a.Events.SUBTITLE_FRAG_PROCESSED,this.onSubtitleFragProcessed,this),e.on(a.Events.BUFFER_FLUSHING,this.onBufferFlushing,this)},i._unregisterListeners=function(){var e=this.hls;e.off(a.Events.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(a.Events.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(a.Events.MANIFEST_LOADING,this.onManifestLoading,this),e.off(a.Events.LEVEL_LOADED,this.onLevelLoaded,this),e.off(a.Events.ERROR,this.onError,this),e.off(a.Events.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.off(a.Events.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),e.off(a.Events.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.off(a.Events.SUBTITLE_FRAG_PROCESSED,this.onSubtitleFragProcessed,this),e.off(a.Events.BUFFER_FLUSHING,this.onBufferFlushing,this)},i.startLoad=function(){this.stopLoad(),this.state=d.State.IDLE,this.setInterval(500),this.tick()},i.onManifestLoading=function(){this.mainDetails=null,this.fragmentTracker.removeAllFragments()},i.onLevelLoaded=function(e,t){this.mainDetails=t.details},i.onSubtitleFragProcessed=function(e,t){var i=t.frag,t=t.success;if(this.fragPrevious=i,this.state=d.State.IDLE,t){var r=this.tracksBuffered[this.currentTrackId];if(r){for(var s,a=i.start,n=0;n<r.length;n++)if(a>=r[n].start&&a<=r[n].end){s=r[n];break}t=i.start+i.duration;s?s.end=t:r.push(s={start:a,end:t}),this.fragmentTracker.fragBuffered(i)}}},i.onBufferFlushing=function(e,t){var i,r,s,a=t.startOffset,n=t.endOffset;0===a&&n!==Number.POSITIVE_INFINITY&&(i=this.currentTrackId,(r=this.levels).length)&&r[i]&&r[i].details&&((s=n-r[i].details.targetduration)<=0||(t.endOffsetSubtitles=Math.max(0,s),this.tracksBuffered.forEach(function(e){for(var t=0;t<e.length;)if(e[t].end<=s)e.shift();else{if(!(e[t].start<s))break;e[t].start=s,t++}}),this.fragmentTracker.removeFragmentsInRange(a,s,h.PlaylistLevelType.SUBTITLE)))},i.onError=function(e,t){var t=t.frag;t&&t.type===h.PlaylistLevelType.SUBTITLE&&(null!=(t=this.fragCurrent)&&t.loader&&this.fragCurrent.loader.abort(),this.state=d.State.IDLE)},i.onSubtitleTracksUpdated=function(e,t){var i=this,t=t.subtitleTracks;this.tracksBuffered=[],this.levels=t.map(function(e){return new r.Level(e)}),this.fragmentTracker.removeAllFragments(),this.fragPrevious=null,this.levels.forEach(function(e){i.tracksBuffered[e.id]=[]}),this.mediaBuffer=null},i.onSubtitleTrackSwitch=function(e,t){this.currentTrackId=t.id,this.levels.length&&-1!==this.currentTrackId?(null!=(t=this.levels[this.currentTrackId])&&t.details?this.mediaBuffer=this.mediaBufferTimeRanges:this.mediaBuffer=null,t&&this.setInterval(500)):this.clearInterval()},i.onSubtitleTrackLoaded=function(e,t){var i=t.details,t=t.id,r=this.currentTrackId,s=this.levels;if(s.length){var a=s[r];if(!(t>=s.length||t!==r)&&a){if(this.mediaBuffer=this.mediaBufferTimeRanges,i.live||null!=(s=a.details)&&s.live){r=this.mainDetails;if(i.deltaUpdateFailed||!r)return;s=r.fragments[0];a.details?0===this.alignPlaylists(i,a.details)&&s&&Object(o.addSliding)(i,s.start):i.hasProgramDateTime&&r.hasProgramDateTime?Object(n.alignMediaPlaylistByPDT)(i,r):s&&Object(o.addSliding)(i,s.start)}a.details=i,this.levelLastLoaded=t,this.tick(),!i.live||this.fragCurrent||!this.media||this.state!==d.State.IDLE||Object(c.findFragmentByPTS)(null,i.fragments,this.media.currentTime,0)||(this.warn("Subtitle playlist not aligned with playback"),a.details=void 0)}}},i._handleFragmentLoadComplete=function(e){var i,r=e.frag,e=e.payload,t=r.decryptdata,s=this.hls;!this.fragContextChanged(r)&&e&&0<e.byteLength&&t&&t.key&&t.iv&&"AES-128"===t.method&&(i=performance.now(),this.decrypter.webCryptoDecrypt(new Uint8Array(e),t.key.buffer,t.iv.buffer).then(function(e){var t=performance.now();s.trigger(a.Events.FRAG_DECRYPTED,{frag:r,payload:e,stats:{tstart:i,tdecrypt:t}})}))},i.doTick=function(){var e,t,i,r,s,a,n,o;this.media?this.state===d.State.IDLE&&(a=this.currentTrackId,(e=this.levels).length)&&e[a]&&e[a].details&&(a=(e=e[a].details).targetduration,t=this.config,s=this.media,i=(s=l.BufferHelper.bufferedInfo(this.mediaBufferTimeRanges,s.currentTime-a,t.maxBufferHole)).end,s.len>this.getMaxBufferLength()+a||(console.assert(e,"Subtitle track details are defined on idle subtitle stream controller tick"),a=(s=e.fragments).length,o=e.edge,n=this.fragPrevious,i<o?(o=t.maxFragLookUpTolerance,!(r=Object(c.findFragmentByPTS)(n,s,i,o))&&n&&n.start<s[0].start&&(r=s[0])):r=s[a-1],null!=(t=r)&&t.encrypted?this.loadKey(r,e):r&&this.fragmentTracker.getState(r)===u.FragmentState.NOT_LOADED&&this.loadFragment(r,e,i))):this.state=d.State.IDLE},i.loadFragment=function(e,t,i){this.fragCurrent=e,f.prototype.loadFragment.call(this,e,t,i)},s(m.prototype,[{key:"mediaBufferTimeRanges",get:function(){return this.tracksBuffered[this.currentTrackId]||[]}}]);var f,A=m;function m(e,t){return(e=f.call(this,e,t,"[subtitle-stream-controller]")||this).levels=[],e.currentTrackId=-1,e.tracksBuffered=[],e.mainDetails=null,e._registerListeners(),e}},"./src/controller/subtitle-track-controller.ts":function(e,t,i){i.r(t);var l=i("./src/events.ts"),r=i("./src/utils/texttrack-utils.ts"),s=i("./src/controller/base-playlist-controller.ts"),a=i("./src/types/loader.ts");function n(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function o(e,t){return(o=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}c=s.default,i=c,(s=u).prototype=Object.create(i.prototype),o(s.prototype.constructor=s,i),(s=u.prototype).destroy=function(){this.unregisterListeners(),this.tracks.length=0,this.tracksInGroup.length=0,this.trackChangeListener=this.asyncPollTrackChange=null,c.prototype.destroy.call(this)},s.registerListeners=function(){var e=this.hls;e.on(l.Events.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(l.Events.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(l.Events.MANIFEST_LOADING,this.onManifestLoading,this),e.on(l.Events.MANIFEST_PARSED,this.onManifestParsed,this),e.on(l.Events.LEVEL_LOADING,this.onLevelLoading,this),e.on(l.Events.LEVEL_SWITCHING,this.onLevelSwitching,this),e.on(l.Events.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.on(l.Events.ERROR,this.onError,this)},s.unregisterListeners=function(){var e=this.hls;e.off(l.Events.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(l.Events.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(l.Events.MANIFEST_LOADING,this.onManifestLoading,this),e.off(l.Events.MANIFEST_PARSED,this.onManifestParsed,this),e.off(l.Events.LEVEL_LOADING,this.onLevelLoading,this),e.off(l.Events.LEVEL_SWITCHING,this.onLevelSwitching,this),e.off(l.Events.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.off(l.Events.ERROR,this.onError,this)},s.onMediaAttached=function(e,t){this.media=t.media,this.media&&(-1<this.queuedDefaultTrack&&(this.subtitleTrack=this.queuedDefaultTrack,this.queuedDefaultTrack=-1),this.useTextTrackPolling=!(this.media.textTracks&&"onchange"in this.media.textTracks),this.useTextTrackPolling?this.pollTrackChange(500):this.media.textTracks.addEventListener("change",this.asyncPollTrackChange))},s.pollTrackChange=function(e){self.clearInterval(this.subtitlePollingInterval),this.subtitlePollingInterval=self.setInterval(this.trackChangeListener,e)},s.onMediaDetaching=function(){this.media&&(self.clearInterval(this.subtitlePollingInterval),this.useTextTrackPolling||this.media.textTracks.removeEventListener("change",this.asyncPollTrackChange),-1<this.trackId&&(this.queuedDefaultTrack=this.trackId),d(this.media.textTracks).forEach(function(e){Object(r.clearCurrentCues)(e)}),this.subtitleTrack=-1,this.media=null)},s.onManifestLoading=function(){this.tracks=[],this.groupId=null,this.tracksInGroup=[],this.trackId=-1,this.selectDefaultTrack=!0},s.onManifestParsed=function(e,t){this.tracks=t.subtitleTracks},s.onSubtitleTrackLoaded=function(e,t){var i,r=t.id,s=t.details,a=this.trackId,a=this.tracksInGroup[a];a?(i=a.details,a.details=t.details,this.log("subtitle track "+r+" loaded ["+s.startSN+"-"+s.endSN+"]"),r===this.trackId&&(this.retryCount=0,this.playlistLoaded(r,t,i))):this.warn("Invalid subtitle track id "+r)},s.onLevelLoading=function(e,t){this.switchLevel(t.level)},s.onLevelSwitching=function(e,t){this.switchLevel(t.level)},s.switchLevel=function(e){var t,i,r,s,e=this.hls.levels[e];null!=e&&e.textGroupIds&&(t=e.textGroupIds[e.urlId],this.groupId!==t)&&(e=this.tracksInGroup?this.tracksInGroup[this.trackId]:void 0,i=this.tracks.filter(function(e){return!t||e.groupId===t}),this.tracksInGroup=i,r=this.findTrackId(null==e?void 0:e.name)||this.findTrackId(),this.groupId=t,s={subtitleTracks:i},this.log("Updating subtitle tracks, "+i.length+' track(s) found in "'+t+'" group-id'),this.hls.trigger(l.Events.SUBTITLE_TRACKS_UPDATED,s),-1!==r)&&this.setSubtitleTrack(r,e)},s.findTrackId=function(e){for(var t=this.tracksInGroup,i=0;i<t.length;i++){var r=t[i];if((!this.selectDefaultTrack||r.default)&&(!e||e===r.name))return r.id}return-1},s.onError=function(e,t){c.prototype.onError.call(this,e,t),!t.fatal&&t.context&&t.context.type===a.PlaylistContextType.SUBTITLE_TRACK&&t.context.id===this.trackId&&t.context.groupId===this.groupId&&this.retryLoadingOrFail(t)},s.loadPlaylist=function(e){var t=this.tracksInGroup[this.trackId];if(this.shouldLoadTrack(t)){var i=t.id,r=t.groupId,t=t.url;if(e)try{t=e.addDirectives(t)}catch(e){this.warn("Could not construct new URL with HLS Delivery Directives: "+e)}this.log("Loading subtitle playlist for id "+i),this.hls.trigger(l.Events.SUBTITLE_TRACK_LOADING,{url:t,id:i,groupId:r,deliveryDirectives:e||null})}},s.toggleTrackModes=function(e){var t,i=this,r=this.media,s=this.subtitleDisplay,a=this.trackId;r&&(t=(r=d(r.textTracks)).filter(function(e){return e.groupId===i.groupId}),-1===e?[].slice.call(r).forEach(function(e){e.mode="disabled"}):(r=t[a])&&(r.mode="disabled"),a=t[e])&&(a.mode=s?"showing":"hidden")},s.setSubtitleTrack=function(e,t){var i,r,s,a,n,o=this.tracksInGroup;this.media?(this.trackId!==e&&this.toggleTrackModes(e),this.trackId===e&&(-1===e||null!=(i=o[e])&&i.details)||e<-1||e>=o.length||(this.clearTimer(),i=o[e],this.log("Switching to subtitle track "+e),this.trackId=e,i?(o=i.id,r=i.groupId,s=i.name,a=i.type,n=i.url,this.hls.trigger(l.Events.SUBTITLE_TRACK_SWITCH,{id:o,groupId:void 0===r?"":r,name:s,type:a,url:n}),o=this.switchParams(i.url,null==t?void 0:t.details),this.loadPlaylist(o)):this.hls.trigger(l.Events.SUBTITLE_TRACK_SWITCH,{id:e}))):this.queuedDefaultTrack=e},s.onTextTracksChanged=function(){if(this.useTextTrackPolling||self.clearInterval(this.subtitlePollingInterval),this.media&&this.hls.config.renderTextTracksNatively){for(var e=-1,t=d(this.media.textTracks),i=0;i<t.length;i++)if("hidden"===t[i].mode)e=i;else if("showing"===t[i].mode){e=i;break}this.subtitleTrack!==e&&(this.subtitleTrack=e)}},n(u.prototype,[{key:"subtitleTracks",get:function(){return this.tracksInGroup}},{key:"subtitleTrack",get:function(){return this.trackId},set:function(e){this.selectDefaultTrack=!1;var t=this.tracksInGroup?this.tracksInGroup[this.trackId]:void 0;this.setSubtitleTrack(e,t)}}]);var c,i=u;function u(e){var t;return(t=c.call(this,e,"[subtitle-track-controller]")||this).media=null,t.tracks=[],t.groupId=null,t.tracksInGroup=[],t.trackId=-1,t.selectDefaultTrack=!0,t.queuedDefaultTrack=-1,t.trackChangeListener=function(){return t.onTextTracksChanged()},t.asyncPollTrackChange=function(){return t.pollTrackChange(0)},t.useTextTrackPolling=!1,t.subtitlePollingInterval=-1,t.subtitleDisplay=!0,t.registerListeners(),t}function d(e){for(var t=[],i=0;i<e.length;i++){var r=e[i];"subtitles"===r.kind&&r.label&&t.push(e[i])}return t}t.default=i},"./src/controller/timeline-controller.ts":function(e,t,i){i.r(t),i.d(t,"TimelineController",function(){return r});var l=i("./src/polyfills/number.ts"),h=i("./src/events.ts"),a=i("./src/utils/cea-608-parser.ts"),n=i("./src/utils/output-filter.ts"),o=i("./src/utils/webvtt-parser.ts"),c=i("./src/utils/texttrack-utils.ts"),u=i("./src/utils/imsc1-ttml-parser.ts"),d=i("./src/types/loader.ts"),p=i("./src/utils/logger.ts"),r=((t=s.prototype).destroy=function(){var e=this.hls;e.off(h.Events.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(h.Events.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(h.Events.MANIFEST_LOADING,this.onManifestLoading,this),e.off(h.Events.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(h.Events.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.off(h.Events.FRAG_LOADING,this.onFragLoading,this),e.off(h.Events.FRAG_LOADED,this.onFragLoaded,this),e.off(h.Events.FRAG_PARSING_USERDATA,this.onFragParsingUserdata,this),e.off(h.Events.FRAG_DECRYPTED,this.onFragDecrypted,this),e.off(h.Events.INIT_PTS_FOUND,this.onInitPtsFound,this),e.off(h.Events.SUBTITLE_TRACKS_CLEARED,this.onSubtitleTracksCleared,this),e.off(h.Events.BUFFER_FLUSHING,this.onBufferFlushing,this),this.hls=this.config=this.cea608Parser1=this.cea608Parser2=null},t.addCues=function(e,t,i,r,s){for(var a,n,o,l=!1,c=s.length;c--;){var u=s[c],d=(a=u[0],d=u[1],n=t,Math.min(d,i)-Math.max(a,n));if(0<=d&&(u[0]=Math.min(u[0],t),u[1]=Math.max(u[1],i),l=!0,.5<d/(i-t)))return}l||s.push([t,i]),this.config.renderTextTracksNatively?(o=this.captionsTracks[e],this.Cues.newCue(o,t,i,r)):(o=this.Cues.newCue(null,t,i,r),this.hls.trigger(h.Events.CUES_PARSED,{type:"captions",cues:o,track:e}))},t.onInitPtsFound=function(e,t){var i=this,r=t.frag,s=t.id,a=t.initPTS,t=t.timescale,n=this.unparsedVttFrags;"main"===s&&(this.initPTS[r.cc]=a,this.timescale[r.cc]=t),n.length&&(this.unparsedVttFrags=[],n.forEach(function(e){i.onFragLoaded(h.Events.FRAG_LOADED,e)}))},t.getExistingTrack=function(e){var t=this.media;if(t)for(var i=0;i<t.textTracks.length;i++){var r=t.textTracks[i];if(r[e])return r}return null},t.createCaptionsTrack=function(e){this.config.renderTextTracksNatively?this.createNativeTrack(e):this.createNonNativeTrack(e)},t.createNativeTrack=function(e){var t,i,r,s,a;this.captionsTracks[e]||(s=this.captionsProperties,t=this.captionsTracks,i=this.media,r=(s=s[e]).label,s=s.languageCode,(a=this.getExistingTrack(e))?(t[e]=a,Object(c.clearCurrentCues)(t[e]),Object(c.sendAddTrackEvent)(t[e],i)):(a=this.createTextTrack("captions",r,s))&&(a[e]=!0,t[e]=a))},t.createNonNativeTrack=function(e){var t;this.nonNativeCaptionsTracks[e]||(t=this.captionsProperties[e])&&(t={_id:e,label:t.label,kind:"captions",default:!!t.media&&!!t.media.default,closedCaptions:t.media},this.nonNativeCaptionsTracks[e]=t,this.hls.trigger(h.Events.NON_NATIVE_TEXT_TRACKS_FOUND,{tracks:[t]}))},t.createTextTrack=function(e,t,i){var r=this.media;if(r)return r.addTextTrack(e,t,i)},t.onMediaAttaching=function(e,t){this.media=t.media,this._cleanTracks()},t.onMediaDetaching=function(){var t=this.captionsTracks;Object.keys(t).forEach(function(e){Object(c.clearCurrentCues)(t[e]),delete t[e]}),this.nonNativeCaptionsTracks={}},t.onManifestLoading=function(){this.lastSn=-1,this.lastPartIndex=-1,this.prevCC=-1,this.vttCCs={ccOffset:0,presentationOffset:0,0:{start:0,prevCC:-1,new:!1}},this._cleanTracks(),this.tracks=[],this.captionsTracks={},this.nonNativeCaptionsTracks={},this.textTracks=[],this.unparsedVttFrags=this.unparsedVttFrags||[],this.initPTS=[],this.timescale=[],this.cea608Parser1&&this.cea608Parser2&&(this.cea608Parser1.reset(),this.cea608Parser2.reset())},t._cleanTracks=function(){var e=this.media;if(e){var t=e.textTracks;if(t)for(var i=0;i<t.length;i++)Object(c.clearCurrentCues)(t[i])}},t.onSubtitleTracksUpdated=function(e,t){var o,l=this,t=(this.textTracks=[],t.subtitleTracks||[]),i=t.some(function(e){return e.textCodec===u.IMSC1_CODEC});(this.config.enableWebVTT||i&&this.config.enableIMSC1)&&(i=this.tracks&&t&&this.tracks.length===t.length,this.tracks=t||[],this.config.renderTextTracksNatively?(o=this.media?this.media.textTracks:[],this.tracks.forEach(function(e,t){var i,r,s;if(t<o.length){for(var a=null,n=0;n<o.length;n++)if(r=o[n],s=e,r&&r.label===s.name&&!r.textTrack1&&!r.textTrack2){a=o[n];break}a&&(i=a)}i?Object(c.clearCurrentCues)(i):(i=l.createTextTrack("subtitles",e.name,e.lang))&&(i.mode="disabled"),i&&(i.groupId=e.groupId,l.textTracks.push(i))})):!i&&this.tracks&&this.tracks.length&&(t=this.tracks.map(function(e){return{label:e.name,kind:e.type.toLowerCase(),default:e.default,subtitleTrack:e}}),this.hls.trigger(h.Events.NON_NATIVE_TEXT_TRACKS_FOUND,{tracks:t})))},t.onManifestLoaded=function(e,t){var i=this;this.config.enableCEA708Captions&&t.captions&&t.captions.forEach(function(e){var t=/(?:CC|SERVICE)([1-4])/.exec(e.instreamId);t&&(t="textTrack"+t[1],t=i.captionsProperties[t])&&(t.label=e.name,e.lang&&(t.languageCode=e.lang),t.media=e)})},t.onFragLoading=function(e,t){var i,r=this.cea608Parser1,s=this.cea608Parser2,a=this.lastSn,n=this.lastPartIndex;this.enabled&&r&&s&&t.frag.type===d.PlaylistLevelType.MAIN&&(i=t.frag.sn,t=null!=(t=null==t||null==(t=t.part)?void 0:t.index)?t:-1,i===a+1||i===a&&t===n+1||(r.reset(),s.reset()),this.lastSn=i,this.lastPartIndex=t)},t.onFragLoaded=function(e,t){var i,r,s=t.frag,a=t.payload,n=this.initPTS,o=this.unparsedVttFrags;s.type===d.PlaylistLevelType.SUBTITLE&&(a.byteLength?Object(l.isFiniteNumber)(n[s.cc])?(i=s.decryptdata,r="stats"in t,null!=i&&null!=i.key&&"AES-128"===i.method&&!r||(i=this.tracks[s.level],(r=this.vttCCs)[s.cc]||(r[s.cc]={start:s.start,prevCC:this.prevCC,new:!0},this.prevCC=s.cc),i&&i.textCodec===u.IMSC1_CODEC?this._parseIMSC1(s,a):this._parseVTTs(s,a,r))):(o.push(t),n.length&&this.hls.trigger(h.Events.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:s,error:new Error("Missing initial subtitle PTS")})):this.hls.trigger(h.Events.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:s,error:new Error("Empty subtitle payload")}))},t._parseIMSC1=function(t,e){var i=this,r=this.hls;Object(u.parseIMSC1)(e,this.initPTS[t.cc],this.timescale[t.cc],function(e){i._appendCues(e,t.level),r.trigger(h.Events.SUBTITLE_FRAG_PROCESSED,{success:!0,frag:t})},function(e){p.logger.log("Failed to parse IMSC1: "+e),r.trigger(h.Events.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:t,error:e})})},t._parseVTTs=function(t,i,e){var r=this,s=this.hls;Object(o.parseWebVTT)(i,this.initPTS[t.cc],this.timescale[t.cc],e,t.cc,t.start,function(e){r._appendCues(e,t.level),s.trigger(h.Events.SUBTITLE_FRAG_PROCESSED,{success:!0,frag:t})},function(e){r._fallbackToIMSC1(t,i),p.logger.log("Failed to parse VTT cue: "+e),s.trigger(h.Events.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:t,error:e})})},t._fallbackToIMSC1=function(e,t){var i=this,r=this.tracks[e.level];r.textCodec||Object(u.parseIMSC1)(t,this.initPTS[e.cc],this.timescale[e.cc],function(){r.textCodec=u.IMSC1_CODEC,i._parseIMSC1(e,t)},function(){r.textCodec="wvtt"})},t._appendCues=function(e,t){var i,r=this.hls;this.config.renderTextTracksNatively?"disabled"!==(i=this.textTracks[t]).mode&&e.forEach(function(e){return Object(c.addCueToTrack)(i,e)}):(t=this.tracks[t].default?"default":"subtitles"+t,r.trigger(h.Events.CUES_PARSED,{type:"subtitles",cues:e,track:t}))},t.onFragDecrypted=function(e,t){var i=t.frag;i.type===d.PlaylistLevelType.SUBTITLE&&(Object(l.isFiniteNumber)(this.initPTS[i.cc])?this.onFragLoaded(h.Events.FRAG_LOADED,t):this.unparsedVttFrags.push(t))},t.onSubtitleTracksCleared=function(){this.tracks=[],this.captionsTracks={}},t.onFragParsingUserdata=function(e,t){var i=this.cea608Parser1,r=this.cea608Parser2;if(this.enabled&&i&&r)for(var s=0;s<t.samples.length;s++){var a=t.samples[s].bytes;a&&(a=this.extractCea608Data(a),i.addData(t.samples[s].pts,a[0]),r.addData(t.samples[s].pts,a[1]))}},t.onBufferFlushing=function(e,t){var i,r,s=t.startOffset,a=t.endOffset,n=t.endOffsetSubtitles,t=t.type,o=this.media;!o||o.currentTime<a||(t&&"video"!==t||(i=this.captionsTracks,Object.keys(i).forEach(function(e){return Object(c.removeCuesInRange)(i[e],s,a)})),this.config.renderTextTracksNatively&&0===s&&void 0!==n&&(r=this.textTracks,Object.keys(r).forEach(function(e){return Object(c.removeCuesInRange)(r[e],s,n)})))},t.extractCea608Data=function(e){for(var t=31&e[0],i=2,r=[[],[]],s=0;s<t;s++){var a=e[i++],n=127&e[i++],o=127&e[i++],l=3&a;0==n&&0==o||0==(4&a)||0!=l&&1!=l||(r[l].push(n),r[l].push(o))}return r},s);function s(e){var t,i,r,s;this.hls=void 0,this.media=null,this.config=void 0,this.enabled=!0,this.Cues=void 0,this.textTracks=[],this.tracks=[],this.initPTS=[],this.timescale=[],this.unparsedVttFrags=[],this.captionsTracks={},this.nonNativeCaptionsTracks={},this.cea608Parser1=void 0,this.cea608Parser2=void 0,this.lastSn=-1,this.lastPartIndex=-1,this.prevCC=-1,this.vttCCs={ccOffset:0,presentationOffset:0,0:{start:0,prevCC:-1,new:!1}},this.captionsProperties=void 0,this.hls=e,this.config=e.config,this.Cues=e.config.cueHandler,this.captionsProperties={textTrack1:{label:this.config.captionsTextTrack1Label,languageCode:this.config.captionsTextTrack1LanguageCode},textTrack2:{label:this.config.captionsTextTrack2Label,languageCode:this.config.captionsTextTrack2LanguageCode},textTrack3:{label:this.config.captionsTextTrack3Label,languageCode:this.config.captionsTextTrack3LanguageCode},textTrack4:{label:this.config.captionsTextTrack4Label,languageCode:this.config.captionsTextTrack4LanguageCode}},this.config.enableCEA708Captions&&(t=new n.default(this,"textTrack1"),i=new n.default(this,"textTrack2"),r=new n.default(this,"textTrack3"),s=new n.default(this,"textTrack4"),this.cea608Parser1=new a.default(1,t,i),this.cea608Parser2=new a.default(3,r,s)),e.on(h.Events.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(h.Events.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(h.Events.MANIFEST_LOADING,this.onManifestLoading,this),e.on(h.Events.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(h.Events.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.on(h.Events.FRAG_LOADING,this.onFragLoading,this),e.on(h.Events.FRAG_LOADED,this.onFragLoaded,this),e.on(h.Events.FRAG_PARSING_USERDATA,this.onFragParsingUserdata,this),e.on(h.Events.FRAG_DECRYPTED,this.onFragDecrypted,this),e.on(h.Events.INIT_PTS_FOUND,this.onInitPtsFound,this),e.on(h.Events.SUBTITLE_TRACKS_CLEARED,this.onSubtitleTracksCleared,this),e.on(h.Events.BUFFER_FLUSHING,this.onBufferFlushing,this)}},"./src/crypt/aes-crypto.ts":function(e,t,i){i.r(t),i.d(t,"default",function(){return r});s.prototype.decrypt=function(e,t){return this.subtle.decrypt({name:"AES-CBC",iv:this.aesIV},t,e)};var r=s;function s(e,t){this.subtle=void 0,this.aesIV=void 0,this.subtle=e,this.aesIV=t}},"./src/crypt/aes-decryptor.ts":function(e,t,i){i.r(t),i.d(t,"removePadding",function(){return s}),i.d(t,"default",function(){return a});var r=i("./src/utils/typed-array.ts");function s(e){var t=e.byteLength,i=t&&new DataView(e.buffer).getUint8(t-1);return i?Object(r.sliceUint8)(e,0,t-i):e}(t=n.prototype).uint8ArrayToUint32Array_=function(e){for(var t=new DataView(e),i=new Uint32Array(4),r=0;r<4;r++)i[r]=t.getUint32(4*r);return i},t.initTable=function(){for(var e=this.sBox,t=this.invSBox,i=this.subMix,r=i[0],s=i[1],a=i[2],n=i[3],i=this.invSubMix,o=i[0],l=i[1],c=i[2],u=i[3],d=new Uint32Array(256),h=0,p=0,f=0,f=0;f<256;f++)d[f]=f<128?f<<1:f<<1^283;for(f=0;f<256;f++){var A=p^p<<1^p<<2^p<<3^p<<4,m=(e[h]=A=A>>>8^255&A^99,d[t[A]=h]),g=d[m],y=d[g],v=257*d[A]^16843008*A;r[h]=v<<24|v>>>8,s[h]=v<<16|v>>>16,a[h]=v<<8|v>>>24,n[h]=v,o[A]=(v=16843009*y^65537*g^257*m^16843008*h)<<24|v>>>8,l[A]=v<<16|v>>>16,c[A]=v<<8|v>>>24,u[A]=v,h?(h=m^d[d[d[y^m]]],p^=d[d[p]]):h=p=1}},t.expandKey=function(e){for(var t=this.uint8ArrayToUint32Array_(e),i=!0,r=0;r<t.length&&i;)i=t[r]===this.key[r],r++;if(!i){this.key=t;var s=this.keySize=t.length;if(4!==s&&6!==s&&8!==s)throw new Error("Invalid aes key size="+s);for(var a,n,o,l=this.ksRows=4*(s+6+1),c=this.keySchedule=new Uint32Array(l),u=this.invKeySchedule=new Uint32Array(l),d=this.sBox,h=this.rcon,e=this.invSubMix,p=e[0],f=e[1],A=e[2],m=e[3],g=0;g<l;g++)g<s?n=c[g]=t[g]:(o=n,g%s==0?(o=d[(o=o<<8|o>>>24)>>>24]<<24|d[o>>>16&255]<<16|d[o>>>8&255]<<8|d[255&o],o^=h[g/s|0]<<24):6<s&&g%s==4&&(o=d[o>>>24]<<24|d[o>>>16&255]<<16|d[o>>>8&255]<<8|d[255&o]),c[g]=n=(c[g-s]^o)>>>0);for(a=0;a<l;a++)g=l-a,o=3&a?c[g]:c[g-4],u[a]=a<4||g<=4?o:p[d[o>>>24]]^f[d[o>>>16&255]]^A[d[o>>>8&255]]^m[d[255&o]],u[a]=u[a]>>>0}},t.networkToHostOrderSwap=function(e){return e<<24|(65280&e)<<8|(16711680&e)>>8|e>>>24},t.decrypt=function(e,t,i){for(var r,s,a,n,o,l,c,u,d,h,p,f,A,m,g=this.keySize+6,y=this.invKeySchedule,v=this.invSBox,b=this.invSubMix,E=b[0],S=b[1],T=b[2],w=b[3],b=this.uint8ArrayToUint32Array_(i),k=b[0],C=b[1],R=b[2],D=b[3],L=new Int32Array(e),I=new Int32Array(L.length),B=this.networkToHostOrderSwap;t<L.length;){for(d=B(L[t]),h=B(L[t+1]),p=B(L[t+2]),f=B(L[t+3]),o=d^y[0],l=f^y[1],c=p^y[2],u=h^y[3],A=4,m=1;m<g;m++)r=E[o>>>24]^S[l>>16&255]^T[c>>8&255]^w[255&u]^y[A],s=E[l>>>24]^S[c>>16&255]^T[u>>8&255]^w[255&o]^y[A+1],a=E[c>>>24]^S[u>>16&255]^T[o>>8&255]^w[255&l]^y[A+2],n=E[u>>>24]^S[o>>16&255]^T[l>>8&255]^w[255&c]^y[A+3],o=r,l=s,c=a,u=n,A+=4;r=v[o>>>24]<<24^v[l>>16&255]<<16^v[c>>8&255]<<8^v[255&u]^y[A],s=v[l>>>24]<<24^v[c>>16&255]<<16^v[u>>8&255]<<8^v[255&o]^y[A+1],a=v[c>>>24]<<24^v[u>>16&255]<<16^v[o>>8&255]<<8^v[255&l]^y[A+2],n=v[u>>>24]<<24^v[o>>16&255]<<16^v[l>>8&255]<<8^v[255&c]^y[A+3],I[t]=B(r^k),I[t+1]=B(n^C),I[t+2]=B(a^R),I[t+3]=B(s^D),k=d,C=h,R=p,D=f,t+=4}return I.buffer};var a=n;function n(){this.rcon=[0,1,2,4,8,16,32,64,128,27,54],this.subMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.invSubMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.sBox=new Uint32Array(256),this.invSBox=new Uint32Array(256),this.key=new Uint32Array(0),this.ksRows=0,this.keySize=0,this.keySchedule=void 0,this.invKeySchedule=void 0,this.initTable()}},"./src/crypt/decrypter.ts":function(e,t,i){i.r(t),i.d(t,"default",function(){return r});var n=i("./src/crypt/aes-crypto.ts"),o=i("./src/crypt/fast-aes-key.ts"),l=i("./src/crypt/aes-decryptor.ts"),s=i("./src/utils/logger.ts"),c=i("./src/utils/mp4-tools.ts"),u=i("./src/utils/typed-array.ts"),r=((t=a.prototype).destroy=function(){this.observer=null},t.isSync=function(){return this.config.enableSoftwareAES},t.flush=function(){var e=this.currentResult;if(e)return e=new Uint8Array(e),this.reset(),this.removePKCS7Padding?Object(l.removePadding)(e):e;this.reset()},t.reset=function(){this.currentResult=null,this.currentIV=null,this.remainderData=null,this.softwareDecrypter&&(this.softwareDecrypter=null)},t.decrypt=function(e,t,i,r){var s;this.config.enableSoftwareAES?(this.softwareDecrypt(new Uint8Array(e),t,i),(s=this.flush())&&r(s.buffer)):this.webCryptoDecrypt(new Uint8Array(e),t,i).then(r)},t.softwareDecrypt=function(e,t,i){var r=this.currentIV,s=this.currentResult,a=this.remainderData,a=(this.logOnce("JS AES decrypt"),a&&(e=Object(c.appendUint8Array)(a,e),this.remainderData=null),this.getValidChunk(e));if(!a.length)return null;r&&(i=r);e=this.softwareDecrypter,(e=e||(this.softwareDecrypter=new l.default)).expandKey(t),r=s;return this.currentResult=e.decrypt(a.buffer,0,i),this.currentIV=Object(u.sliceUint8)(a,-16).buffer,r||null},t.webCryptoDecrypt=function(t,i,r){var s=this,a=this.subtle;return this.key===i&&this.fastAesKey||(this.key=i,this.fastAesKey=new o.default(a,i)),this.fastAesKey.expandKey().then(function(e){return a?new n.default(a,r).decrypt(t.buffer,e):Promise.reject(new Error("web crypto not initialized"))}).catch(function(e){return s.onWebCryptoError(e,t,i,r)})},t.onWebCryptoError=function(e,t,i,r){return s.logger.warn("[decrypter.ts]: WebCrypto Error, disable WebCrypto API:",e),this.config.enableSoftwareAES=!0,this.logEnabled=!0,this.softwareDecrypt(t,i,r)},t.getValidChunk=function(e){var t=e,i=e.length-e.length%16;return i!==e.length&&(t=Object(u.sliceUint8)(e,0,i),this.remainderData=Object(u.sliceUint8)(e,i)),t},t.logOnce=function(e){this.logEnabled&&(s.logger.log("[decrypter.ts]: "+e),this.logEnabled=!1)},a);function a(e,t,i){i=(void 0===i?{}:i).removePKCS7Padding,i=void 0===i||i;if(this.logEnabled=!0,this.observer=void 0,this.config=void 0,this.removePKCS7Padding=void 0,this.subtle=null,this.softwareDecrypter=null,this.key=null,this.fastAesKey=null,this.remainderData=null,this.currentIV=null,this.currentResult=null,this.observer=e,this.config=t,this.removePKCS7Padding=i)try{var r=self.crypto;r&&(this.subtle=r.subtle||r.webkitSubtle)}catch(e){}null===this.subtle&&(this.config.enableSoftwareAES=!0)}},"./src/crypt/fast-aes-key.ts":function(e,t,i){i.r(t),i.d(t,"default",function(){return r});s.prototype.expandKey=function(){return this.subtle.importKey("raw",this.key,{name:"AES-CBC"},!1,["encrypt","decrypt"])};var r=s;function s(e,t){this.subtle=void 0,this.key=void 0,this.subtle=e,this.key=t}},"./src/demux/aacdemuxer.ts":function(e,t,i){i.r(t);var r=i("./src/demux/base-audio-demuxer.ts"),s=i("./src/demux/adts.ts"),a=i("./src/utils/logger.ts"),n=i("./src/demux/id3.ts");function o(e,t){return(o=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}l=r.default,i=l,(r=c).prototype=Object.create(i.prototype),o(r.prototype.constructor=r,i),(r=c.prototype).resetInitSegment=function(e,t,i){l.prototype.resetInitSegment.call(this,e,t,i),this._audioTrack={container:"audio/adts",type:"audio",id:2,pid:-1,sequenceNumber:0,isAAC:!0,samples:[],manifestCodec:e,duration:i,inputTimeScale:9e4,dropped:0}},c.probe=function(e){if(e)for(var t=(n.getID3Data(e,0)||[]).length,i=e.length;t<i;t++)if(s.probe(e,t))return a.logger.log("ADTS sync word found !"),!0;return!1},r.canParse=function(e,t){return s.canParse(e,t)},r.appendFrame=function(e,t,i){s.initTrackConfig(e,this.observer,t,i,e.manifestCodec);e=s.appendFrame(e,t,i,this.initPTS,this.frameIndex);if(e&&0===e.missing)return e};var l,i=c;function c(e,t){var i;return(i=l.call(this)||this).observer=void 0,i.config=void 0,i.observer=e,i.config=t,i}i.minProbeByteLength=9,t.default=i},"./src/demux/adts.ts":function(e,t,i){i.r(t),i.d(t,"getAudioConfig",function(){return a}),i.d(t,"isHeaderPattern",function(){return r}),i.d(t,"getHeaderLength",function(){return n}),i.d(t,"getFullFrameLength",function(){return o}),i.d(t,"canGetFrameLength",function(){return s}),i.d(t,"isHeader",function(){return l}),i.d(t,"canParse",function(){return c}),i.d(t,"probe",function(){return u}),i.d(t,"initTrackConfig",function(){return f}),i.d(t,"getFrameDuration",function(){return A}),i.d(t,"parseFrameHeader",function(){return m}),i.d(t,"appendFrame",function(){return g});var d=i("./src/utils/logger.ts"),h=i("./src/errors.ts"),p=i("./src/events.ts");function a(e,t,i,r){var s,a,n=navigator.userAgent.toLowerCase(),o=r,l=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],c=1+((192&t[i+2])>>>6),u=(60&t[i+2])>>>2;if(!(l.length-1<u))return s=(1&t[i+2])<<2,s|=(192&t[i+3])>>>6,d.logger.log("manifest codec:"+r+", ADTS type:"+c+", samplingIndex:"+u),t=/firefox/i.test(n)?6<=u?(c=5,a=new Array(4),u-3):(c=2,a=new Array(2),u):-1!==n.indexOf("android")?(c=2,a=new Array(2),u):(c=5,a=new Array(4),r&&(-1!==r.indexOf("mp4a.40.29")||-1!==r.indexOf("mp4a.40.5"))||!r&&6<=u?u-3:((r&&-1!==r.indexOf("mp4a.40.2")&&(6<=u&&1==s||/vivaldi/i.test(n))||!r&&1==s)&&(c=2,a=new Array(2)),u)),a[0]=c<<3,a[0]|=(14&u)>>1,a[1]|=(1&u)<<7,a[1]|=s<<3,5===c&&(a[1]|=(14&t)>>1,a[2]=(1&t)<<7,a[2]|=8,a[3]=0),{config:a,samplerate:l[u],channelCount:s,codec:"mp4a.40."+c,manifestCodec:o};e.trigger(p.Events.ERROR,{type:h.ErrorTypes.MEDIA_ERROR,details:h.ErrorDetails.FRAG_PARSING_ERROR,fatal:!0,reason:"invalid ADTS sampling index:"+u})}function r(e,t){return 255===e[t]&&240==(246&e[t+1])}function n(e,t){return 1&e[t+1]?7:9}function o(e,t){return(3&e[t+3])<<11|e[t+4]<<3|(224&e[t+5])>>>5}function s(e,t){return t+5<e.length}function l(e,t){return t+1<e.length&&r(e,t)}function c(e,t){return s(e,t)&&r(e,t)&&o(e,t)<=e.length-t}function u(e,t){var i,r;return!!l(e,t)&&!(t+(r=n(e,t))>=e.length||(i=o(e,t))<=r)&&((r=t+i)===e.length||l(e,r))}function f(e,t,i,r,s){e.samplerate||(t=a(t,i,r,s))&&(e.config=t.config,e.samplerate=t.samplerate,e.channelCount=t.channelCount,e.codec=t.codec,e.manifestCodec=t.manifestCodec,d.logger.log("parsed codec:"+e.codec+", rate:"+t.samplerate+", channels:"+t.channelCount))}function A(e){return 9216e4/e}function m(e,t,i,r,s){var a=n(e,t),e=o(e,t);if(0<(e-=a))return{headerLength:a,frameLength:e,stamp:i+r*s}}function g(e,t,i,r,s){var a,n,o,r=m(t,i,r,s,A(e.samplerate));if(r)return s=r.frameLength,n=r.headerLength,r=r.stamp,s=n+s,(o=Math.max(0,i+s-t.length))?(a=new Uint8Array(s-n)).set(t.subarray(i+n,t.length),0):a=t.subarray(i+n,i+s),t={unit:a,pts:r},o||e.samples.push(t),{sample:t,length:s,missing:o}}},"./src/demux/base-audio-demuxer.ts":function(e,t,i){i.r(t),i.d(t,"initPTSFn",function(){return A});var r=i("./src/polyfills/number.ts"),d=i("./src/demux/id3.ts"),h=i("./src/demux/dummy-demuxed-track.ts"),p=i("./src/utils/mp4-tools.ts"),f=i("./src/utils/typed-array.ts");(i=s.prototype).resetInitSegment=function(e,t,i){this._id3Track={type:"id3",id:3,pid:-1,inputTimeScale:9e4,sequenceNumber:0,samples:[],dropped:0}},i.resetTimeStamp=function(){},i.resetContiguity=function(){},i.canParse=function(e,t){return!1},i.appendFrame=function(e,t,i){},i.demux=function(e,t){this.cachedData&&(e=Object(p.appendUint8Array)(this.cachedData,e),this.cachedData=null);var i,r,s,a=d.getID3Data(e,0),n=a?a.length:0,o=this._audioTrack,l=this._id3Track,c=a?d.getTimeStamp(a):void 0,u=e.length;for(0!==this.frameIndex&&null!==this.initPTS||(this.initPTS=A(c,t)),a&&0<a.length&&l.samples.push({pts:this.initPTS,dts:this.initPTS,data:a}),r=this.initPTS;n<u;)this.canParse(e,n)?(s=this.appendFrame(o,e,n))?(this.frameIndex++,r=s.sample.pts,i=n+=s.length):n=u:d.canParse(e,n)?(a=d.getID3Data(e,n),l.samples.push({pts:r,dts:r,data:a}),i=n+=a.length):n++,n===u&&i!==u&&(s=Object(f.sliceUint8)(e,i),this.cachedData?this.cachedData=Object(p.appendUint8Array)(this.cachedData,s):this.cachedData=s);return{audioTrack:o,avcTrack:Object(h.dummyTrack)(),id3Track:l,textTrack:Object(h.dummyTrack)()}},i.demuxSampleAes=function(e,t,i){return Promise.reject(new Error("["+this+"] This demuxer does not support Sample-AES decryption"))},i.flush=function(e){var t=this.cachedData;return t&&(this.cachedData=null,this.demux(t,0)),this.frameIndex=0,{audioTrack:this._audioTrack,avcTrack:Object(h.dummyTrack)(),id3Track:this._id3Track,textTrack:Object(h.dummyTrack)()}},i.destroy=function(){};var A=function(e,t){return Object(r.isFiniteNumber)(e)?90*e:9e4*t};function s(){this._audioTrack=void 0,this._id3Track=void 0,this.frameIndex=0,this.cachedData=null,this.initPTS=null}t.default=s},"./src/demux/chunk-cache.ts":function(e,t,i){i.r(t),i.d(t,"default",function(){return r});(i=s.prototype).push=function(e){this.chunks.push(e),this.dataLength+=e.length},i.flush=function(){var e=this.chunks,a=this.dataLength;return e.length?(e=1===e.length?e[0]:function(e){for(var t=new Uint8Array(a),i=0,r=0;r<e.length;r++){var s=e[r];t.set(s,i),i+=s.length}return t}(e),this.reset(),e):new Uint8Array(0)},i.reset=function(){this.chunks.length=0,this.dataLength=0};var r=s;function s(){this.chunks=[],this.dataLength=0}},"./src/demux/dummy-demuxed-track.ts":function(e,t,i){function r(){return{type:"",id:-1,pid:-1,inputTimeScale:9e4,sequenceNumber:-1,samples:[],dropped:0}}i.r(t),i.d(t,"dummyTrack",function(){return r})},"./src/demux/exp-golomb.ts":function(e,t,i){i.r(t);var r=i("./src/utils/logger.ts");function s(e){this.data=void 0,this.bytesAvailable=void 0,this.word=void 0,this.bitsAvailable=void 0,this.data=e,this.bytesAvailable=e.byteLength,this.word=0,this.bitsAvailable=0}(i=s.prototype).loadWord=function(){var e=this.data,t=this.bytesAvailable,i=e.byteLength-t,r=new Uint8Array(4),t=Math.min(4,t);if(0===t)throw new Error("no bytes available");r.set(e.subarray(i,i+t)),this.word=new DataView(r.buffer).getUint32(0),this.bitsAvailable=8*t,this.bytesAvailable-=t},i.skipBits=function(e){var t;this.bitsAvailable>e||(e=(e-=this.bitsAvailable)-((t=e>>3)>>3),this.bytesAvailable-=t,this.loadWord()),this.word<<=e,this.bitsAvailable-=e},i.readBits=function(e){var t=Math.min(this.bitsAvailable,e),i=this.word>>>32-t;return 32<e&&r.logger.error("Cannot read more than 32 bits at a time"),this.bitsAvailable-=t,0<this.bitsAvailable?this.word<<=t:0<this.bytesAvailable&&this.loadWord(),0<(t=e-t)&&this.bitsAvailable?i<<t|this.readBits(t):i},i.skipLZ=function(){for(var e=0;e<this.bitsAvailable;++e)if(0!=(this.word&2147483648>>>e))return this.word<<=e,this.bitsAvailable-=e,e;return this.loadWord(),e+this.skipLZ()},i.skipUEG=function(){this.skipBits(1+this.skipLZ())},i.skipEG=function(){this.skipBits(1+this.skipLZ())},i.readUEG=function(){var e=this.skipLZ();return this.readBits(e+1)-1},i.readEG=function(){var e=this.readUEG();return 1&e?1+e>>>1:-1*(e>>>1)},i.readBoolean=function(){return 1===this.readBits(1)},i.readUByte=function(){return this.readBits(8)},i.readUShort=function(){return this.readBits(16)},i.readUInt=function(){return this.readBits(32)},i.skipScalingList=function(e){for(var t=8,i=8,r=0;r<e;r++)t=0===(i=0!==i?(t+this.readEG()+256)%256:i)?t:i},i.readSPS=function(){var e,t,i,r=0,s=0,a=0,n=0,o=this.readUByte.bind(this),l=this.readBits.bind(this),c=this.readUEG.bind(this),u=this.readBoolean.bind(this),d=this.skipBits.bind(this),h=this.skipEG.bind(this),p=this.skipUEG.bind(this),f=this.skipScalingList.bind(this),A=(o(),o());if(l(5),d(3),o(),p(),100===A||110===A||122===A||244===A||44===A||83===A||86===A||118===A||128===A){A=c();if(3===A&&d(1),p(),p(),d(1),u())for(t=3!==A?8:12,i=0;i<t;i++)u()&&f(i<6?16:64)}p();A=c();if(0===A)c();else if(1===A)for(d(1),h(),h(),e=c(),i=0;i<e;i++)h();p(),d(1);var A=c(),p=c(),l=l(1),m=(0===l&&d(1),d(1),u()&&(r=c(),s=c(),a=c(),n=c()),[1,1]);if(u()&&u())switch(o()){case 1:m=[1,1];break;case 2:m=[12,11];break;case 3:m=[10,11];break;case 4:m=[16,11];break;case 5:m=[40,33];break;case 6:m=[24,11];break;case 7:m=[20,11];break;case 8:m=[32,11];break;case 9:m=[80,33];break;case 10:m=[18,11];break;case 11:m=[15,11];break;case 12:m=[64,33];break;case 13:m=[160,99];break;case 14:m=[4,3];break;case 15:m=[3,2];break;case 16:m=[2,1];break;case 255:m=[o()<<8|o(),o()<<8|o()]}return{width:Math.ceil(16*(A+1)-2*r-2*s),height:(2-l)*(p+1)*16-(l?2:4)*(a+n),pixelRatio:m}},i.readSliceType=function(){return this.readUByte(),this.readUEG(),this.readUEG()},t.default=s},"./src/demux/id3.ts":function(e,t,i){i.r(t),i.d(t,"isHeader",function(){return o}),i.d(t,"isFooter",function(){return l}),i.d(t,"getID3Data",function(){return r}),i.d(t,"canParse",function(){return s}),i.d(t,"getTimeStamp",function(){return a}),i.d(t,"isTimeStampFrame",function(){return n}),i.d(t,"getID3Frames",function(){return h}),i.d(t,"decodeFrame",function(){return p}),i.d(t,"utf8ArrayToStr",function(){return y}),i.d(t,"testables",function(){return v});var u,o=function(e,t){return t+10<=e.length&&73===e[t]&&68===e[t+1]&&51===e[t+2]&&e[t+3]<255&&e[t+4]<255&&e[t+6]<128&&e[t+7]<128&&e[t+8]<128&&e[t+9]<128},l=function(e,t){return t+10<=e.length&&51===e[t]&&68===e[t+1]&&73===e[t+2]&&e[t+3]<255&&e[t+4]<255&&e[t+6]<128&&e[t+7]<128&&e[t+8]<128&&e[t+9]<128},r=function(e,t){for(var i=t,r=0;o(e,t);)r=(r+=10)+c(e,t+6),l(e,t+10)&&(r+=10),t+=r;if(0<r)return e.subarray(i,i+r)},c=function(e,t){var i=0,i=(127&e[t])<<21;return(i=(i|=(127&e[t+1])<<14)|(127&e[t+2])<<7)|127&e[t+3]},s=function(e,t){return o(e,t)&&c(e,t+6)+10<=e.length-t},a=function(e){for(var t=h(e),i=0;i<t.length;i++){var r=t[i];if(n(r))return g(r)}},n=function(e){return e&&"PRIV"===e.key&&"com.apple.streaming.transportStreamTimestamp"===e.info},d=function(e){var t=String.fromCharCode(e[0],e[1],e[2],e[3]),i=c(e,4);return{type:t,size:i,data:e.subarray(10,10+i)}},h=function(e){for(var t=0,i=[];o(e,t);){for(var r=c(e,t+6),s=(t+=10)+r;t+8<s;){var a=d(e.subarray(t)),n=p(a);n&&i.push(n),t+=a.size+10}l(e,t)&&(t+=10)}return i},p=function(e){return("PRIV"===e.type?f:"W"===e.type[0]?m:A)(e)},f=function(e){var t,i;if(!(e.size<2))return t=y(e.data,!0),i=new Uint8Array(e.data.subarray(t.length+1)),{key:e.type,info:t,data:i.buffer}},A=function(e){var t,i;if(!(e.size<2))return"TXXX"===e.type?(t=1,t+=(i=y(e.data.subarray(1),!0)).length+1,t=y(e.data.subarray(t)),{key:e.type,info:i,data:t}):(i=y(e.data.subarray(1)),{key:e.type,data:i})},m=function(e){var t,i;return"WXXX"===e.type?e.size<2?void 0:(t=1,t+=(i=y(e.data.subarray(1),!0)).length+1,t=y(e.data.subarray(t)),{key:e.type,info:i,data:t}):(i=y(e.data),{key:e.type,data:i})},g=function(e){var t;if(8===e.data.byteLength)return t=1&(e=new Uint8Array(e.data))[3],e=(e[4]<<23)+(e[5]<<15)+(e[6]<<7)+e[7],e/=45,t&&(e+=47721858.84),Math.round(e)},y=function(e,t){void 0===t&&(t=!1);var i,r;u=u||void 0===self.TextDecoder?u:new self.TextDecoder("utf-8");if(u)return i=u.decode(e),t?-1!==(r=i.indexOf("\0"))?i.substring(0,r):i:i.replace(/\0/g,"");for(var s,a,n,o=e.length,l="",c=0;c<o;){if(0===(s=e[c++])&&t)return l;if(0!==s&&3!==s)switch(s>>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:l+=String.fromCharCode(s);break;case 12:case 13:a=e[c++],l+=String.fromCharCode((31&s)<<6|63&a);break;case 14:a=e[c++],n=e[c++],l+=String.fromCharCode((15&s)<<12|(63&a)<<6|(63&n)<<0)}}return l},v={decodeTextFrame:A}},"./src/demux/mp3demuxer.ts":function(e,t,i){i.r(t);var r=i("./src/demux/base-audio-demuxer.ts"),s=i("./src/demux/id3.ts"),a=i("./src/utils/logger.ts"),n=i("./src/demux/mpegaudio.ts");function o(e,t){return(o=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}l=r.default,i=l,(r=c).prototype=Object.create(i.prototype),o(r.prototype.constructor=r,i),(r=c.prototype).resetInitSegment=function(e,t,i){l.prototype.resetInitSegment.call(this,e,t,i),this._audioTrack={container:"audio/mpeg",type:"audio",id:2,pid:-1,sequenceNumber:0,isAAC:!1,samples:[],manifestCodec:e,duration:i,inputTimeScale:9e4,dropped:0}},c.probe=function(e){if(e)for(var t=(s.getID3Data(e,0)||[]).length,i=e.length;t<i;t++)if(n.probe(e,t))return a.logger.log("MPEG Audio sync word found !"),!0;return!1},r.canParse=function(e,t){return n.canParse(e,t)},r.appendFrame=function(e,t,i){if(null!==this.initPTS)return n.appendFrame(e,t,i,this.initPTS,this.frameIndex)};var l,i=c;function c(){return l.apply(this,arguments)||this}i.minProbeByteLength=4,t.default=i},"./src/demux/mp4demuxer.ts":function(e,t,i){i.r(t);var r=i("./src/utils/mp4-tools.ts"),s=i("./src/demux/dummy-demuxed-track.ts"),i=((i=a.prototype).resetTimeStamp=function(){},i.resetInitSegment=function(){},i.resetContiguity=function(){},a.probe=function(e){return 0<Object(r.findBox)({data:e,start:0,end:Math.min(e.length,16384)},["moof"]).length},i.demux=function(e){var t=e,i=Object(s.dummyTrack)();return this.config.progressive?(this.remainderData&&(t=Object(r.appendUint8Array)(this.remainderData,e)),e=Object(r.segmentValidRange)(t),this.remainderData=e.remainder,i.samples=e.valid||new Uint8Array):i.samples=t,{audioTrack:Object(s.dummyTrack)(),avcTrack:i,id3Track:Object(s.dummyTrack)(),textTrack:Object(s.dummyTrack)()}},i.flush=function(){var e=Object(s.dummyTrack)();return e.samples=this.remainderData||new Uint8Array,this.remainderData=null,{audioTrack:Object(s.dummyTrack)(),avcTrack:e,id3Track:Object(s.dummyTrack)(),textTrack:Object(s.dummyTrack)()}},i.demuxSampleAes=function(e,t,i){return Promise.reject(new Error("The MP4 demuxer does not support SAMPLE-AES decryption"))},i.destroy=function(){},a);function a(e,t){this.remainderData=null,this.config=void 0,this.config=t}i.minProbeByteLength=1024,t.default=i},"./src/demux/mpegaudio.ts":function(e,t,i){i.r(t),i.d(t,"appendFrame",function(){return r}),i.d(t,"parseHeader",function(){return n}),i.d(t,"isHeaderPattern",function(){return s}),i.d(t,"isHeader",function(){return a}),i.d(t,"canParse",function(){return o}),i.d(t,"probe",function(){return l});var d=null,h=[32,64,96,128,160,192,224,256,288,320,352,384,416,448,32,48,56,64,80,96,112,128,160,192,224,256,320,384,32,40,48,56,64,80,96,112,128,160,192,224,256,320,32,48,56,64,80,96,112,128,144,160,176,192,224,256,8,16,24,32,40,48,56,64,80,96,112,128,144,160],p=[44100,48e3,32e3,22050,24e3,16e3,11025,12e3,8e3],f=[[0,72,144,12],[0,0,0,0],[0,72,144,12],[0,144,144,12]],A=[0,1,1,4];function r(e,t,i,r,s){if(!(i+24>t.length)){var a=n(t,i);if(a&&i+a.frameLength<=t.length)return r=r+s*(9e4*a.samplesPerFrame/a.sampleRate),s={unit:t.subarray(i,i+a.frameLength),pts:r,dts:r},e.config=[],e.channelCount=a.channelCount,e.samplerate=a.sampleRate,e.samples.push(s),{sample:s,length:a.frameLength,missing:0}}}function n(e,t){var i,r,s,a,n,o=e[t+1]>>3&3,l=e[t+1]>>1&3,c=e[t+2]>>4&15,u=e[t+2]>>2&3;if(1!=o&&0!=c&&15!=c&&3!=u)return n=e[t+2]>>1&1,i=e[t+3]>>6,c=1e3*h[14*(3==o?3-l:3==l?3:4)+c-1],u=p[3*(3==o?0:2==o?1:2)+u],r=3==i?1:2,a=8*(o=f[o][l])*(s=A[l]),o=Math.floor(o*c/u+n)*s,null===d&&(n=(navigator.userAgent||"").match(/Chrome\/(\d+)/i),d=n?parseInt(n[1]):0),d&&d<=87&&2==l&&224e3<=c&&0==i&&(e[t+3]=128|e[t+3]),{sampleRate:u,channelCount:r,frameLength:o,samplesPerFrame:a}}function s(e,t){return 255===e[t]&&224==(224&e[t+1])&&0!=(6&e[t+1])}function a(e,t){return t+1<e.length&&s(e,t)}function o(e,t){return s(e,t)&&4<=e.length-t}function l(e,t){var i;return!!(t+1<e.length&&s(e,t))&&(i=4,(t=t+(i=null!=(t=n(e,t))&&t.frameLength?t.frameLength:i))===e.length||a(e,t))}},"./src/demux/sample-aes.ts":function(e,t,i){i.r(t);var r=i("./src/crypt/decrypter.ts"),c=i("./src/demux/tsdemuxer.ts");function s(e,t,i){this.keyData=void 0,this.decrypter=void 0,this.keyData=i,this.decrypter=new r.default(e,t,{removePKCS7Padding:!1})}(i=s.prototype).decryptBuffer=function(e,t){this.decrypter.decrypt(e,this.keyData.key.buffer,this.keyData.iv.buffer,t)},i.decryptAacSample=function(t,i,r,s){var a=t[i].unit,e=a.subarray(16,a.length-a.length%16),e=e.buffer.slice(e.byteOffset,e.byteOffset+e.length),n=this;this.decryptBuffer(e,function(e){e=new Uint8Array(e);a.set(e,16),s||n.decryptAacSamples(t,i+1,r)})},i.decryptAacSamples=function(e,t,i){for(;;t++){if(t>=e.length)return void i();if(!(e[t].unit.length<32)){var r=this.decrypter.isSync();if(this.decryptAacSample(e,t,i,r),!r)return}}},i.getAvcEncryptedData=function(e){for(var t=16*Math.floor((e.length-48)/160)+16,i=new Int8Array(t),r=0,s=32;s<e.length-16;s+=160,r+=16)i.set(e.subarray(s,s+16),r);return i},i.getAvcDecryptedUnit=function(e,t){for(var i=new Uint8Array(t),r=0,s=32;s<e.length-16;s+=160,r+=16)e.set(i.subarray(r,r+16),s);return e},i.decryptAvcSample=function(t,i,r,s,a,n){var o=Object(c.discardEPB)(a.data),e=this.getAvcEncryptedData(o),l=this;this.decryptBuffer(e.buffer,function(e){a.data=l.getAvcDecryptedUnit(o,e),n||l.decryptAvcSamples(t,i,r+1,s)})},i.decryptAvcSamples=function(e,t,i,r){if(e instanceof Uint8Array)throw new Error("Cannot decrypt samples of type Uint8Array");for(;;t++,i=0){if(t>=e.length)return void r();for(var s=e[t].units;!(i>=s.length);i++){var a=s[i];if(!(a.data.length<=48||1!==a.type&&5!==a.type)){var n=this.decrypter.isSync();if(this.decryptAvcSample(e,t,i,r,a,n),!n)return}}}},t.default=s},"./src/demux/transmuxer-interface.ts":function(e,t,i){i.r(t),i.d(t,"default",function(){return r});var l=i("./node_modules/webworkify-webpack/index.js"),c=i("./src/events.ts"),S=i("./src/demux/transmuxer.ts"),T=i("./src/utils/logger.ts"),u=i("./src/errors.ts"),t=i("./src/utils/mediasource-helper.ts"),d=i("./node_modules/eventemitter3/index.js"),h=Object(t.getMediaSource)()||{isTypeSupported:function(){return!1}},r=((i=s.prototype).destroy=function(){var e=this.worker,e=(e?(e.removeEventListener("message",this.onwmsg),e.terminate(),this.worker=null):(e=this.transmuxer)&&(e.destroy(),this.transmuxer=null),this.observer);e&&e.removeAllListeners(),this.observer=null},i.push=function(e,t,i,r,s,a,n,o,l,c){var u=this,d=(l.transmuxing.start=self.performance.now(),this.transmuxer),h=this.worker,p=(a||s).start,f=s.decryptdata,A=this.frag,m=!(A&&s.cc===A.cc),g=!(A&&l.level===A.level),y=A?l.sn-A.sn:-1,v=this.part?l.part-this.part.index:1,b=!g&&(1==y||0==y&&1==v),E=self.performance.now(),E=((g||y||0===s.stats.parsing.start)&&(s.stats.parsing.start=E),!a||!v&&b||(a.stats.parsing.start=E),!(A&&(null==(y=s.initSegment)?void 0:y.url)===(null==(v=A.initSegment)?void 0:v.url))),y=new S.TransmuxState(m,b,o,g,p,E);b&&!m&&!E||(T.logger.log("[transmuxer-interface, "+s.type+"]: Starting new transmux session for sn: "+l.sn+" p: "+l.part+" level: "+l.level+" id: "+l.id+"\n discontinuity: "+m+"\n trackSwitch: "+g+"\n contiguous: "+b+"\n accurateTimeOffset: "+o+"\n timeOffset: "+p+"\n initSegmentChange: "+E),A=new S.TransmuxConfig(i,r,t,n,c),this.configureTransmuxer(A)),this.frag=s,this.part=a,h?h.postMessage({cmd:"demux",data:e,decryptdata:f,chunkMeta:l,state:y},e instanceof ArrayBuffer?[e]:[]):d&&(v=d.push(e,f,l,y),Object(S.isPromise)(v)?v.then(function(e){u.handleTransmuxComplete(e)}):this.handleTransmuxComplete(v))},i.flush=function(t){var i=this,e=(t.transmuxing.start=self.performance.now(),this.transmuxer),r=this.worker;r?r.postMessage({cmd:"flush",chunkMeta:t}):e&&(r=e.flush(t),Object(S.isPromise)(r)?r.then(function(e){i.handleFlushResult(e,t)}):this.handleFlushResult(r,t))},i.handleFlushResult=function(e,t){var i=this;e.forEach(function(e){i.handleTransmuxComplete(e)}),this.onFlush(t)},i.onWorkerMessage=function(e){var t=e.data,i=this.hls;switch(t.event){case"init":self.URL.revokeObjectURL(this.worker.objectURL);break;case"transmuxComplete":this.handleTransmuxComplete(t.data);break;case"flush":this.onFlush(t.data);break;default:t.data=t.data||{},t.data.frag=this.frag,t.data.id=this.id,i.trigger(t.event,t.data)}},i.configureTransmuxer=function(e){var t=this.worker,i=this.transmuxer;t?t.postMessage({cmd:"configure",config:e}):i&&i.configure(e)},i.handleTransmuxComplete=function(e){e.chunkMeta.transmuxing.end=self.performance.now(),this.onTransmuxComplete(e)},s);function s(i,e,t,r){function s(e,t){(t=t||{}).frag=n.frag,t.id=n.id,i.trigger(e,t)}var a,n=this,t=(this.hls=void 0,this.id=void 0,this.observer=void 0,this.frag=null,this.part=null,this.worker=void 0,this.onwmsg=void 0,this.transmuxer=null,this.onTransmuxComplete=void 0,this.onFlush=void 0,this.hls=i,this.id=e,this.onTransmuxComplete=t,this.onFlush=r,i.config),r=(this.observer=new d.EventEmitter,this.observer.on(c.Events.FRAG_DECRYPTED,s),this.observer.on(c.Events.ERROR,s),{mp4:h.isTypeSupported("video/mp4"),mpeg:h.isTypeSupported("audio/mpeg"),mp3:h.isTypeSupported('audio/mp4; codecs="mp3"')}),o=navigator.vendor;if(t.enableWorker&&"undefined"!=typeof Worker){T.logger.log("demuxing in webworker");try{a=this.worker=l("./src/demux/transmuxer-worker.ts"),this.onwmsg=this.onWorkerMessage.bind(this),a.addEventListener("message",this.onwmsg),a.onerror=function(e){i.trigger(c.Events.ERROR,{type:u.ErrorTypes.OTHER_ERROR,details:u.ErrorDetails.INTERNAL_EXCEPTION,fatal:!0,event:"demuxerWorker",error:new Error(e.message+" ("+e.filename+":"+e.lineno+")")})},a.postMessage({cmd:"init",typeSupported:r,vendor:o,id:e,config:JSON.stringify(t)})}catch(i){T.logger.warn("Error in worker:",i),T.logger.error("Error while initializing DemuxerWorker, fallback to inline"),a&&self.URL.revokeObjectURL(a.objectURL),this.transmuxer=new S.default(this.observer,r,t,o,e),this.worker=null}}else this.transmuxer=new S.default(this.observer,r,t,o,e)}},"./src/demux/transmuxer-worker.ts":function(e,t,i){i.r(t),i.d(t,"default",function(){return s});var o=i("./src/demux/transmuxer.ts"),r=i("./src/events.ts"),l=i("./src/utils/logger.ts"),c=i("./node_modules/eventemitter3/index.js");function s(s){function a(e,t){s.postMessage({event:e,data:t})}var n=new c.EventEmitter;n.on(r.Events.FRAG_DECRYPTED,a),n.on(r.Events.ERROR,a),s.addEventListener("message",function(e){var t=e.data;switch(t.cmd){case"init":var i=JSON.parse(t.config);s.transmuxer=new o.default(n,t.typeSupported,i,t.vendor,t.id),Object(l.enableLogs)(i.debug),a("init",null);break;case"configure":s.transmuxer.configure(t.config);break;case"demux":i=s.transmuxer.push(t.data,t.decryptdata,t.chunkMeta,t.state);Object(o.isPromise)(i)?i.then(function(e){u(s,e)}):u(s,i);break;case"flush":var r=t.chunkMeta,i=s.transmuxer.flush(r);Object(o.isPromise)(i)?i.then(function(e){d(s,e,r)}):d(s,i,r)}})}function u(e,t){var i,r,s;((i=t.remuxResult).audio||i.video||i.text||i.id3||i.initSegment)&&(i=[],r=(s=t.remuxResult).audio,s=s.video,r&&a(i,r),s&&a(i,s),e.postMessage({event:"transmuxComplete",data:t},i))}function a(e,t){t.data1&&e.push(t.data1.buffer),t.data2&&e.push(t.data2.buffer)}function d(t,e,i){e.forEach(function(e){u(t,e)}),t.postMessage({event:"flush",data:i})}},"./src/demux/transmuxer.ts":function(e,t,i){i.r(t),i.d(t,"default",function(){return d}),i.d(t,"isPromise",function(){return p}),i.d(t,"TransmuxConfig",function(){return f}),i.d(t,"TransmuxState",function(){return A});var y,l=i("./src/events.ts"),c=i("./src/errors.ts"),r=i("./src/crypt/decrypter.ts"),t=i("./src/demux/aacdemuxer.ts"),g=i("./src/demux/mp4demuxer.ts"),s=i("./src/demux/tsdemuxer.ts"),a=i("./src/demux/mp3demuxer.ts"),n=i("./src/remux/mp4-remuxer.ts"),v=i("./src/remux/passthrough-remuxer.ts"),o=i("./src/demux/chunk-cache.ts"),b=i("./src/utils/mp4-tools.ts"),E=i("./src/utils/logger.ts");try{y=self.performance.now.bind(self.performance)}catch(e){E.logger.debug("Unable to use Performance API on this environment"),y=self.Date.now}var S=[{demux:s.default,remux:n.default},{demux:g.default,remux:v.default},{demux:t.default,remux:n.default},{demux:a.default,remux:n.default}],u=1024,d=(S.forEach(function(e){e=e.demux;u=Math.max(u,e.minProbeByteLength)}),(i=h.prototype).configure=function(e){this.transmuxConfig=e,this.decrypter&&this.decrypter.reset()},i.push=function(e,t,i,r){var s=this,a=i.transmuxing,e=(a.executeStart=y(),new Uint8Array(e)),n=this.cache,o=this.config,l=this.currentTransmuxState,c=this.transmuxConfig,t=(r&&(this.currentTransmuxState=r),u=null,u=0<e.byteLength&&null!=t&&null!=t.key&&null!==t.iv&&null!=t.method?t:u);if(t&&"AES-128"===t.method){var u=this.getDecrypter();if(!o.enableSoftwareAES)return this.decryptionPromise=u.webCryptoDecrypt(e,t.key.buffer,t.iv.buffer).then(function(e){e=s.push(e,null,i);return s.decryptionPromise=null,e}),this.decryptionPromise;o=u.softwareDecrypt(e,t.key.buffer,t.iv.buffer);if(!o)return a.executeEnd=y(),T(i);e=new Uint8Array(o)}var u=r||l,o=u.contiguous,r=u.discontinuity,l=u.trackSwitch,d=u.accurateTimeOffset,h=u.timeOffset,u=u.initSegmentChange,p=c.audioCodec,f=c.videoCodec,A=c.defaultInitPts,m=c.duration,g=c.initSegmentData,p=((r||l||u)&&this.resetInitSegment(g,p,f,m),(r||u)&&this.resetInitialTimestamp(A),o||this.resetContiguity(),this.needsProbing(e,r,l)&&(n.dataLength&&(g=n.flush(),e=Object(b.appendUint8Array)(g,e)),this.configureTransmuxer(e,c)),this.transmux(e,t,h,d,i)),f=this.currentTransmuxState;return f.contiguous=!0,f.discontinuity=!1,f.trackSwitch=!1,a.executeEnd=y(),p},i.flush=function(t){var i,r=this,e=t.transmuxing,s=(e.executeStart=y(),this.decrypter),a=this.cache,n=this.currentTransmuxState,o=this.decryptionPromise;return o?o.then(function(){return r.flush(t)}):(i=[],o=n.timeOffset,s&&(n=s.flush())&&i.push(this.push(n,null,t)),s=a.dataLength,a.reset(),n=this.demuxer,a=this.remuxer,n&&a?p(a=n.flush(o))?a.then(function(e){return r.flushRemux(i,e,t),i}):(this.flushRemux(i,a,t),i):(u<=s&&this.observer.emit(l.Events.ERROR,l.Events.ERROR,{type:c.ErrorTypes.MEDIA_ERROR,details:c.ErrorDetails.FRAG_PARSING_ERROR,fatal:!0,reason:"no demux matching with content found"}),e.executeEnd=y(),[T(t)]))},i.flushRemux=function(e,t,i){var r=t.audioTrack,s=t.avcTrack,a=t.id3Track,t=t.textTrack,n=this.currentTransmuxState,o=n.accurateTimeOffset,n=n.timeOffset,r=(E.logger.log("[transmuxer.ts]: Flushed fragment "+i.sn+(-1<i.part?" p: "+i.part:"")+" of level "+i.level),this.remuxer.remux(r,s,a,t,n,o,!0,this.id));e.push({remuxResult:r,chunkMeta:i}),i.transmuxing.executeEnd=y()},i.resetInitialTimestamp=function(e){var t=this.demuxer,i=this.remuxer;t&&i&&(t.resetTimeStamp(e),i.resetTimeStamp(e))},i.resetContiguity=function(){var e=this.demuxer,t=this.remuxer;e&&t&&(e.resetContiguity(),t.resetNextTimestamp())},i.resetInitSegment=function(e,t,i,r){var s=this.demuxer,a=this.remuxer;s&&a&&(s.resetInitSegment(t,i,r),a.resetInitSegment(e,t,i))},i.destroy=function(){this.demuxer&&(this.demuxer.destroy(),this.demuxer=void 0),this.remuxer&&(this.remuxer.destroy(),this.remuxer=void 0)},i.transmux=function(e,t,i,r,s){return t&&"SAMPLE-AES"===t.method?this.transmuxSampleAes(e,t,i,r,s):this.transmuxUnencrypted(e,i,r,s)},i.transmuxUnencrypted=function(e,t,i,r){var e=this.demuxer.demux(e,t,!1,!this.config.progressive),s=e.audioTrack,a=e.avcTrack,n=e.id3Track,e=e.textTrack;return{remuxResult:this.remuxer.remux(s,a,n,e,t,i,!1,this.id),chunkMeta:r}},i.transmuxSampleAes=function(e,t,i,r,s){var a=this;return this.demuxer.demuxSampleAes(e,t,i).then(function(e){return{remuxResult:a.remuxer.remux(e.audioTrack,e.avcTrack,e.id3Track,e.textTrack,i,r,!1,a.id),chunkMeta:s}})},i.configureTransmuxer=function(e,t){for(var i,r=this.config,s=this.observer,a=this.typeSupported,n=this.vendor,o=t.audioCodec,l=t.defaultInitPts,c=t.duration,u=t.initSegmentData,t=t.videoCodec,d=0,h=S.length;d<h;d++)if(S[d].demux.probe(e)){i=S[d];break}i||(E.logger.warn("Failed to find demuxer by probing frag, treating as mp4 passthrough"),i={demux:g.default,remux:v.default});var p=this.demuxer,f=this.remuxer,A=i.remux,m=i.demux;f&&f instanceof A||(this.remuxer=new A(s,r,a,n)),p&&p instanceof m||(this.demuxer=new m(s,r,a),this.probe=m.probe),this.resetInitSegment(u,o,t,c),this.resetInitialTimestamp(l)},i.needsProbing=function(e,t,i){return!this.demuxer||!this.remuxer||t||i},i.getDecrypter=function(){return this.decrypter||(this.decrypter=new r.default(this.observer,this.config))},h),T=function(e){return{remuxResult:{},chunkMeta:e}};function h(e,t,i,r,s){this.observer=void 0,this.typeSupported=void 0,this.config=void 0,this.vendor=void 0,this.id=void 0,this.demuxer=void 0,this.remuxer=void 0,this.decrypter=void 0,this.probe=void 0,this.decryptionPromise=null,this.transmuxConfig=void 0,this.currentTransmuxState=void 0,this.cache=new o.default,this.observer=e,this.typeSupported=t,this.config=i,this.vendor=r,this.id=s}function p(e){return"then"in e&&e.then instanceof Function}var f=function(e,t,i,r,s){this.audioCodec=void 0,this.videoCodec=void 0,this.initSegmentData=void 0,this.duration=void 0,this.defaultInitPts=void 0,this.audioCodec=e,this.videoCodec=t,this.initSegmentData=i,this.duration=r,this.defaultInitPts=s},A=function(e,t,i,r,s,a){this.discontinuity=void 0,this.contiguous=void 0,this.accurateTimeOffset=void 0,this.trackSwitch=void 0,this.timeOffset=void 0,this.initSegmentChange=void 0,this.discontinuity=e,this.contiguous=t,this.accurateTimeOffset=i,this.trackSwitch=r,this.timeOffset=s,this.initSegmentChange=a}},"./src/demux/tsdemuxer.ts":function(e,t,i){i.r(t),i.d(t,"discardEPB",function(){return U});var p=i("./src/demux/adts.ts"),o=i("./src/demux/mpegaudio.ts"),R=i("./src/demux/exp-golomb.ts"),D=i("./src/demux/id3.ts"),r=i("./src/demux/sample-aes.ts"),L=i("./src/events.ts"),I=i("./src/utils/mp4-tools.ts"),B=i("./src/utils/logger.ts"),x=i("./src/errors.ts"),s={video:1,audio:2,id3:3,text:4},i=(P.probe=function(e){e=P.syncOffset(e);return!(e<0||(e&&B.logger.warn("MPEG2-TS detected but first sync word found @ offset "+e+", junk ahead ?"),0))},P.syncOffset=function(e){for(var t=Math.min(1e3,e.length-564),i=0;i<t;){if(71===e[i]&&71===e[i+188]&&71===e[i+376])return i;i++}return-1},P.createTrack=function(e,t){return{container:"video"===e||"audio"===e?"video/mp2t":void 0,type:e,id:s[e],pid:-1,inputTimeScale:9e4,sequenceNumber:0,samples:[],dropped:0,duration:"audio"===e?t:void 0}},(i=P.prototype).resetInitSegment=function(e,t,i){this.pmtParsed=!1,this._pmtId=-1,this._avcTrack=P.createTrack("video",i),this._audioTrack=P.createTrack("audio",i),this._id3Track=P.createTrack("id3",i),this._txtTrack=P.createTrack("text",i),this._audioTrack.isAAC=!0,this.aacOverFlow=null,this.aacLastPTS=null,this.avcSample=null,this.audioCodec=e,this.videoCodec=t,this._duration=i},i.resetTimeStamp=function(){},i.resetContiguity=function(){var e=this._audioTrack,t=this._avcTrack,i=this._id3Track;e&&(e.pesData=null),t&&(t.pesData=null),i&&(i.pesData=null),this.aacOverFlow=null,this.aacLastPTS=null},i.demux=function(e,t,i,r){void 0===r&&(r=!1),(i=void 0===i?!1:i)||(this.sampleAes=null);var s,a=this._avcTrack,n=this._audioTrack,o=this._id3Track,l=a.pid,c=a.pesData,u=n.pid,d=o.pid,h=n.pesData,p=o.pesData,f=!1,A=this.pmtParsed,m=this._pmtId,g=e.length;if(this.remainderData&&(g=(e=Object(I.appendUint8Array)(this.remainderData,e)).length,this.remainderData=null),g<188&&!r)return this.remainderData=e,{audioTrack:n,avcTrack:a,id3Track:o,textTrack:this._txtTrack};var y=Math.max(0,P.syncOffset(e));(g-=(g+y)%188)<e.byteLength&&!r&&(this.remainderData=new Uint8Array(e.buffer,g,e.buffer.byteLength-g));for(var v,b=0,E=y;E<g;E+=188)if(71===e[E]){var S=!!(64&e[E+1]),T=((31&e[E+1])<<8)+e[E+2],w=void 0;if(1<(48&e[E+3])>>4){if((w=E+5+e[E+4])===E+188)continue}else w=E+4;switch(T){case l:S&&(c&&(s=O(c))&&this.parseAVCPES(s,!1),c={data:[],size:0}),c&&(c.data.push(e.subarray(w,E+188)),c.size+=E+188-w);break;case u:S&&(h&&(s=O(h))&&(n.isAAC?this.parseAACPES(s):this.parseMPEGPES(s)),h={data:[],size:0}),h&&(h.data.push(e.subarray(w,E+188)),h.size+=E+188-w);break;case d:S&&(p&&(s=O(p))&&this.parseID3PES(s),p={data:[],size:0}),p&&(p.data.push(e.subarray(w,E+188)),p.size+=E+188-w);break;case 0:S&&(w+=e[w]+1),m=this._pmtId=(31&(k=e)[(v=w)+10])<<8|k[v+11];break;case m:S&&(w+=e[w]+1);var k=function(e,t,i,r){var s={audio:-1,avc:-1,id3:-1,isAAC:!0},a=t+3+((15&e[t+1])<<8|e[t+2])-4;for(t+=12+((15&e[t+10])<<8|e[t+11]);t<a;){var n=(31&e[t+1])<<8|e[t+2];switch(e[t]){case 207:if(!r){B.logger.log("ADTS AAC with AES-128-CBC frame encryption found in unencrypted stream");break}case 15:-1===s.audio&&(s.audio=n);break;case 21:-1===s.id3&&(s.id3=n);break;case 219:if(!r){B.logger.log("H.264 with AES-128-CBC slice encryption found in unencrypted stream");break}case 27:-1===s.avc&&(s.avc=n);break;case 3:case 4:i?-1===s.audio&&(s.audio=n,s.isAAC=!1):B.logger.log("MPEG audio found, not supported in this browser");break;case 36:B.logger.warn("Unsupported HEVC stream type found")}t+=5+((15&e[t+3])<<8|e[t+4])}return s}(e,w,!0===this.typeSupported.mpeg||!0===this.typeSupported.mp3,i);0<(l=k.avc)&&(a.pid=l),0<(u=k.audio)&&(n.pid=u,n.isAAC=k.isAAC),0<(d=k.id3)&&(o.pid=d),f&&!A&&(B.logger.log("reparse from beginning"),f=!1,E=y-188),A=this.pmtParsed=!0;break;case 17:case 8191:break;default:f=!0}}else b++;0<b&&this.observer.emit(L.Events.ERROR,L.Events.ERROR,{type:x.ErrorTypes.MEDIA_ERROR,details:x.ErrorDetails.FRAG_PARSING_ERROR,fatal:!1,reason:"Found "+b+" TS packet/s that do not start with 0x47"}),a.pesData=c,n.pesData=h,o.pesData=p;var C={audioTrack:n,avcTrack:a,id3Track:o,textTrack:this._txtTrack};return r&&this.extractRemainingSamples(C),C},i.flush=function(){var e=this.remainderData;return this.remainderData=null,e=e?this.demux(e,-1,!1,!0):{audioTrack:this._audioTrack,avcTrack:this._avcTrack,textTrack:this._txtTrack,id3Track:this._id3Track},this.extractRemainingSamples(e),this.sampleAes?this.decrypt(e,this.sampleAes):e},i.extractRemainingSamples=function(e){var t,i=e.audioTrack,r=e.avcTrack,e=e.id3Track,s=r.pesData,a=i.pesData,n=e.pesData;s&&(t=O(s))?(this.parseAVCPES(t,!0),r.pesData=null):r.pesData=s,a&&(t=O(a))?(i.isAAC?this.parseAACPES(t):this.parseMPEGPES(t),i.pesData=null):(null!=a&&a.size&&B.logger.log("last AAC PES packet truncated,might overlap between fragments"),i.pesData=a),n&&(t=O(n))?(this.parseID3PES(t),e.pesData=null):e.pesData=n},i.demuxSampleAes=function(e,t,i){e=this.demux(e,i,!0,!this.config.progressive),i=this.sampleAes=new r.default(this.observer,this.config,t);return this.decrypt(e,i)},i.decrypt=function(r,s){return new Promise(function(e){var t=r.audioTrack,i=r.avcTrack;t.samples&&t.isAAC?s.decryptAacSamples(t.samples,0,function(){i.samples?s.decryptAvcSamples(i.samples,0,0,function(){e(r)}):e(r)}):i.samples&&s.decryptAvcSamples(i.samples,0,0,function(){e(r)})})},i.destroy=function(){this._initPTS=this._initDTS=null,this._duration=0},i.parseAVCPES=function(E,e){var S,T=this,w=this._avcTrack,t=this.parseAVCNALu(E.data),k=this.avcSample,C=!1;E.data=null,k&&t.length&&!w.audFound&&(_(k,w),k=this.avcSample=F(!1,E.pts,E.dts,"")),t.forEach(function(e){switch(e.type){case 1:S=!0,(k=k||(T.avcSample=F(!0,E.pts,E.dts,""))).frame=!0;var t=e.data;C&&4<t.length&&(2!==(t=new R.default(t).readSliceType())&&4!==t&&7!==t&&9!==t||(k.key=!0));break;case 5:S=!0,(k=k||(T.avcSample=F(!0,E.pts,E.dts,""))).key=!0,k.frame=!0;break;case 6:S=!0;var i=new R.default(U(e.data));i.readUByte();for(var r=0,s=0,a=!1,n=0;!a&&1<i.bytesAvailable;){for(r=0;r+=n=i.readUByte(),255===n;);for(s=0;s+=n=i.readUByte(),255===n;);if(4===r&&0!==i.bytesAvailable){if(a=!0,181===i.readUByte()&&49===i.readUShort()&&1195456820===i.readUInt()&&3===i.readUByte()){for(var o=i.readUByte(),l=31&o,c=[o,i.readUByte()],u=0;u<l;u++)c.push(i.readUByte()),c.push(i.readUByte()),c.push(i.readUByte());M(T._txtTrack.samples,{type:3,pts:E.pts,bytes:c})}}else if(5===r&&0!==i.bytesAvailable){if(a=!0,16<s){for(var d=[],h=0;h<16;h++)d.push(i.readUByte().toString(16)),3!==h&&5!==h&&7!==h&&9!==h||d.push("-");for(var p=s-16,f=new Uint8Array(p),A=0;A<p;A++)f[A]=i.readUByte();M(T._txtTrack.samples,{pts:E.pts,payloadType:r,uuid:d.join(""),userData:Object(D.utf8ArrayToStr)(f),userDataBytes:f})}}else if(s<i.bytesAvailable)for(var m=0;m<s;m++)i.readUByte()}break;case 7:if(C=S=!0,!w.sps){t=new R.default(e.data).readSPS();w.width=t.width,w.height=t.height,w.pixelRatio=t.pixelRatio,w.sps=[e.data],w.duration=T._duration;for(var g=e.data.subarray(1,4),y="avc1.",v=0;v<3;v++){var b=g[v].toString(16);y+=b=b.length<2?"0"+b:b}w.codec=y}break;case 8:S=!0,w.pps||(w.pps=[e.data]);break;case 9:S=!1,w.audFound=!0,k&&_(k,w),k=T.avcSample=F(!1,E.pts,E.dts,"");break;case 12:S=!1;break;default:S=!1,k&&(k.debug+="unknown NAL "+e.type+" ")}k&&S&&k.units.push(e)}),e&&k&&(_(k,w),this.avcSample=null)},i.getLastNalUnit=function(){var e,t,i=this.avcSample;return t=null!=(e=i=i&&0!==i.units.length?i:(e=this._avcTrack.samples)[e.length-1])&&e.units?(e=i.units)[e.length-1]:t},i.parseAVCNALu=function(e){var t,i,r,s,a,n,o=e.byteLength,l=this._avcTrack,c=l.naluState||0,u=c,d=[],h=0,p=-1,f=0;for(-1===c&&(f=31&e[p=0],c=0,h=1);h<o;)t=e[h++],c=c?1!==c?t?1===t?(0<=p?(r={data:e.subarray(p,h-c-1),type:f},d.push(r)):(r=this.getLastNalUnit())&&(u&&h<=4-u&&r.state&&(r.data=r.data.subarray(0,r.data.byteLength-u)),0<(i=h-c-1))&&((s=new Uint8Array(r.data.byteLength+i)).set(r.data,0),s.set(e.subarray(0,i),r.data.byteLength),r.data=s,r.state=0),h<o?(f=31&e[p=h],0):-1):0:3:t?0:2:t?0:1;return 0<=p&&0<=c&&(a={data:e.subarray(p,o),type:f,state:c},d.push(a)),0===d.length&&(a=this.getLastNalUnit())&&((n=new Uint8Array(a.data.byteLength+e.byteLength)).set(a.data,0),n.set(e,a.data.byteLength),a.data=n),l.naluState=c,d},i.parseAACPES=function(e){var t,i,r,s,a=0,n=this._audioTrack,o=this.aacOverFlow,l=e.data;for(o&&(this.aacOverFlow=null,c=(s=o.sample.unit.byteLength)-(s=Math.min(o.missing,s)),o.sample.unit.set(l.subarray(0,s),c),n.samples.push(o.sample),a=o.missing),t=a,i=l.length;t<i-1&&!p.isHeader(l,t);t++);if(t===a||(s=t<i-1?(r="AAC PES did not start with ADTS header,offset:"+t,!1):(r="no ADTS header found in AAC PES",!0),B.logger.warn("parsing error:"+r),this.observer.emit(L.Events.ERROR,L.Events.ERROR,{type:x.ErrorTypes.MEDIA_ERROR,details:x.ErrorDetails.FRAG_PARSING_ERROR,fatal:s,reason:r}),!s)){if(p.initTrackConfig(n,this.observer,l,t,this.audioCodec),void 0!==e.pts)u=e.pts;else{if(!o)return void B.logger.warn("[tsdemuxer]: AAC PES unknown PTS");var c=p.getFrameDuration(n.samplerate),u=o.sample.pts+c}for(var d=0;t<i;){if(p.isHeader(l,t)){if(t+5<i){var h=p.appendFrame(n,l,t,u,d);if(h){if(!h.missing){t+=h.length,d++;continue}this.aacOverFlow=h}}break}t++}}},i.parseMPEGPES=function(e){var t=e.data,i=t.length,r=0,s=0,a=e.pts;if(void 0!==a)for(;s<i;)if(o.isHeader(t,s)){var n=o.appendFrame(this._audioTrack,t,s,a,r);if(!n)break;s+=n.length,r++}else s++;else B.logger.warn("[tsdemuxer]: MPEG PES unknown PTS")},i.parseID3PES=function(e){void 0!==e.pts?this._id3Track.samples.push(e):B.logger.warn("[tsdemuxer]: ID3 PES unknown PTS")},P);function P(e,t,i){this.observer=void 0,this.config=void 0,this.typeSupported=void 0,this.sampleAes=null,this.pmtParsed=!1,this.audioCodec=void 0,this.videoCodec=void 0,this._duration=0,this.aacLastPTS=null,this._initPTS=null,this._initDTS=null,this._pmtId=-1,this._avcTrack=void 0,this._audioTrack=void 0,this._id3Track=void 0,this._txtTrack=void 0,this.aacOverFlow=null,this.avcSample=null,this.remainderData=null,this.observer=e,this.config=t,this.typeSupported=i}function F(e,t,i,r){return{key:e,frame:!1,pts:t,dts:i,units:[],debug:r,length:0}}function O(e){var t,i,r,s,a=0,n=e.data;if(!e||0===e.size)return null;for(;n[0].length<19&&1<n.length;){var o=new Uint8Array(n[0].length+n[1].length);o.set(n[0]),o.set(n[1],n[0].length),n[0]=o,n.splice(1,1)}if(1!==((t=n[0])[0]<<16)+(t[1]<<8)+t[2])return null;if((i=(t[4]<<8)+t[5])&&i>e.size-6)return null;var l=t[7],c=(192&l&&(r=536870912*(14&t[9])+4194304*(255&t[10])+16384*(254&t[11])+128*(255&t[12])+(254&t[13])/2,64&l?54e5<r-(s=536870912*(14&t[14])+4194304*(255&t[15])+16384*(254&t[16])+128*(255&t[17])+(254&t[18])/2)&&(B.logger.warn(Math.round((r-s)/9e4)+"s delta between PTS and DTS, align them"),r=s):s=r),(l=t[8])+9);if(e.size<=c)return null;e.size-=c;for(var u=new Uint8Array(e.size),d=0,h=n.length;d<h;d++){var p=(t=n[d]).byteLength;if(c){if(p<c){c-=p;continue}t=t.subarray(c),p-=c,c=0}u.set(t,a),a+=p}return i&&(i-=l+3),{data:u,pts:r,dts:s,len:i}}function _(e,t){if(e.units.length&&e.frame){if(void 0===e.pts){var i=t.samples,r=i.length;if(!r)return t.dropped++;i=i[r-1];e.pts=i.pts,e.dts=i.dts}t.samples.push(e)}e.debug.length&&B.logger.log(e.pts+"/"+e.dts+":"+e.debug)}function M(e,t){var i=e.length;if(0<i){if(t.pts>=e[i-1].pts)e.push(t);else for(var r=i-1;0<=r;r--)if(t.pts<e[r].pts){e.splice(r,0,t);break}}else e.push(t)}function U(e){for(var t=e.byteLength,i=[],r=1;r<t-2;)0===e[r]&&0===e[r+1]&&3===e[r+2]?(i.push(r+2),r+=2):r++;if(0===i.length)return e;for(var s=t-i.length,a=new Uint8Array(s),n=0,r=0;r<s;n++,r++)n===i[0]&&(n++,i.shift()),a[r]=e[n];return a}i.minProbeByteLength=188,t.default=i},"./src/errors.ts":function(e,t,i){var r,s;i.r(t),i.d(t,"ErrorTypes",function(){return r}),i.d(t,"ErrorDetails",function(){return s}),(i=r=r||{}).NETWORK_ERROR="networkError",i.MEDIA_ERROR="mediaError",i.KEY_SYSTEM_ERROR="keySystemError",i.MUX_ERROR="muxError",i.OTHER_ERROR="otherError",(t=s=s||{}).KEY_SYSTEM_NO_KEYS="keySystemNoKeys",t.KEY_SYSTEM_NO_ACCESS="keySystemNoAccess",t.KEY_SYSTEM_NO_SESSION="keySystemNoSession",t.KEY_SYSTEM_LICENSE_REQUEST_FAILED="keySystemLicenseRequestFailed",t.KEY_SYSTEM_NO_INIT_DATA="keySystemNoInitData",t.MANIFEST_LOAD_ERROR="manifestLoadError",t.MANIFEST_LOAD_TIMEOUT="manifestLoadTimeOut",t.MANIFEST_PARSING_ERROR="manifestParsingError",t.MANIFEST_INCOMPATIBLE_CODECS_ERROR="manifestIncompatibleCodecsError",t.LEVEL_EMPTY_ERROR="levelEmptyError",t.LEVEL_LOAD_ERROR="levelLoadError",t.LEVEL_LOAD_TIMEOUT="levelLoadTimeOut",t.LEVEL_SWITCH_ERROR="levelSwitchError",t.AUDIO_TRACK_LOAD_ERROR="audioTrackLoadError",t.AUDIO_TRACK_LOAD_TIMEOUT="audioTrackLoadTimeOut",t.SUBTITLE_LOAD_ERROR="subtitleTrackLoadError",t.SUBTITLE_TRACK_LOAD_TIMEOUT="subtitleTrackLoadTimeOut",t.FRAG_LOAD_ERROR="fragLoadError",t.FRAG_LOAD_TIMEOUT="fragLoadTimeOut",t.FRAG_DECRYPT_ERROR="fragDecryptError",t.FRAG_PARSING_ERROR="fragParsingError",t.REMUX_ALLOC_ERROR="remuxAllocError",t.KEY_LOAD_ERROR="keyLoadError",t.KEY_LOAD_TIMEOUT="keyLoadTimeOut",t.BUFFER_ADD_CODEC_ERROR="bufferAddCodecError",t.BUFFER_INCOMPATIBLE_CODECS_ERROR="bufferIncompatibleCodecsError",t.BUFFER_APPEND_ERROR="bufferAppendError",t.BUFFER_APPENDING_ERROR="bufferAppendingError",t.BUFFER_STALLED_ERROR="bufferStalledError",t.BUFFER_FULL_ERROR="bufferFullError",t.BUFFER_SEEK_OVER_HOLE="bufferSeekOverHole",t.BUFFER_NUDGE_ON_STALL="bufferNudgeOnStall",t.INTERNAL_EXCEPTION="internalException",t.INTERNAL_ABORTED="aborted",t.UNKNOWN="unknown"},"./src/events.ts":function(e,t,i){var r;i.r(t),i.d(t,"Events",function(){return r}),(i=r=r||{}).MEDIA_ATTACHING="hlsMediaAttaching",i.MEDIA_ATTACHED="hlsMediaAttached",i.MEDIA_DETACHING="hlsMediaDetaching",i.MEDIA_DETACHED="hlsMediaDetached",i.BUFFER_RESET="hlsBufferReset",i.BUFFER_CODECS="hlsBufferCodecs",i.BUFFER_CREATED="hlsBufferCreated",i.BUFFER_APPENDING="hlsBufferAppending",i.BUFFER_APPENDED="hlsBufferAppended",i.BUFFER_EOS="hlsBufferEos",i.BUFFER_FLUSHING="hlsBufferFlushing",i.BUFFER_FLUSHED="hlsBufferFlushed",i.MANIFEST_LOADING="hlsManifestLoading",i.MANIFEST_LOADED="hlsManifestLoaded",i.MANIFEST_PARSED="hlsManifestParsed",i.LEVEL_SWITCHING="hlsLevelSwitching",i.LEVEL_SWITCHED="hlsLevelSwitched",i.LEVEL_LOADING="hlsLevelLoading",i.LEVEL_LOADED="hlsLevelLoaded",i.LEVEL_UPDATED="hlsLevelUpdated",i.LEVEL_PTS_UPDATED="hlsLevelPtsUpdated",i.LEVELS_UPDATED="hlsLevelsUpdated",i.AUDIO_TRACKS_UPDATED="hlsAudioTracksUpdated",i.AUDIO_TRACK_SWITCHING="hlsAudioTrackSwitching",i.AUDIO_TRACK_SWITCHED="hlsAudioTrackSwitched",i.AUDIO_TRACK_LOADING="hlsAudioTrackLoading",i.AUDIO_TRACK_LOADED="hlsAudioTrackLoaded",i.SUBTITLE_TRACKS_UPDATED="hlsSubtitleTracksUpdated",i.SUBTITLE_TRACKS_CLEARED="hlsSubtitleTracksCleared",i.SUBTITLE_TRACK_SWITCH="hlsSubtitleTrackSwitch",i.SUBTITLE_TRACK_LOADING="hlsSubtitleTrackLoading",i.SUBTITLE_TRACK_LOADED="hlsSubtitleTrackLoaded",i.SUBTITLE_FRAG_PROCESSED="hlsSubtitleFragProcessed",i.CUES_PARSED="hlsCuesParsed",i.NON_NATIVE_TEXT_TRACKS_FOUND="hlsNonNativeTextTracksFound",i.INIT_PTS_FOUND="hlsInitPtsFound",i.FRAG_LOADING="hlsFragLoading",i.FRAG_LOAD_EMERGENCY_ABORTED="hlsFragLoadEmergencyAborted",i.FRAG_LOADED="hlsFragLoaded",i.FRAG_DECRYPTED="hlsFragDecrypted",i.FRAG_PARSING_INIT_SEGMENT="hlsFragParsingInitSegment",i.FRAG_PARSING_USERDATA="hlsFragParsingUserdata",i.FRAG_PARSING_METADATA="hlsFragParsingMetadata",i.FRAG_PARSED="hlsFragParsed",i.FRAG_BUFFERED="hlsFragBuffered",i.FRAG_CHANGED="hlsFragChanged",i.FPS_DROP="hlsFpsDrop",i.FPS_DROP_LEVEL_CAPPING="hlsFpsDropLevelCapping",i.ERROR="hlsError",i.DESTROYING="hlsDestroying",i.KEY_LOADING="hlsKeyLoading",i.KEY_LOADED="hlsKeyLoaded",i.LIVE_BACK_BUFFER_REACHED="hlsLiveBackBufferReached",i.BACK_BUFFER_REACHED="hlsBackBufferReached"},"./src/hls.ts":function(e,t,i){i.r(t),i.d(t,"default",function(){return l});var s=i("./node_modules/url-toolkit/src/url-toolkit.js"),d=i("./src/loader/playlist-loader.ts"),h=i("./src/loader/key-loader.ts"),p=i("./src/controller/id3-track-controller.ts"),f=i("./src/controller/latency-controller.ts"),A=i("./src/controller/level-controller.ts"),m=i("./src/controller/fragment-tracker.ts"),g=i("./src/controller/stream-controller.ts"),r=i("./src/is-supported.ts"),y=i("./src/utils/logger.ts"),v=i("./src/config.ts"),b=i("./node_modules/eventemitter3/index.js"),a=i("./src/events.ts"),n=i("./src/errors.ts");function o(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}E.isSupported=function(){return Object(r.isSupported)()},(t=E.prototype).createController=function(e,t,i){return e?(t=t?new e(this,t):new e(this),i&&i.push(t),t):null},t.on=function(e,t,i){this._emitter.on(e,t,i=void 0===i?this:i)},t.once=function(e,t,i){this._emitter.once(e,t,i=void 0===i?this:i)},t.removeAllListeners=function(e){this._emitter.removeAllListeners(e)},t.off=function(e,t,i,r){this._emitter.off(e,t,i=void 0===i?this:i,r)},t.listeners=function(e){return this._emitter.listeners(e)},t.emit=function(e,t,i){return this._emitter.emit(e,t,i)},t.trigger=function(e,t){if(this.config.debug)return this.emit(e,e,t);try{return this.emit(e,e,t)}catch(t){y.logger.error("An internal error happened while handling event "+e+'. Error message: "'+t.message+'". Here is a stacktrace:',t),this.trigger(a.Events.ERROR,{type:n.ErrorTypes.OTHER_ERROR,details:n.ErrorDetails.INTERNAL_EXCEPTION,fatal:!1,event:e,error:t})}return!1},t.listenerCount=function(e){return this._emitter.listenerCount(e)},t.destroy=function(){y.logger.log("destroy"),this.trigger(a.Events.DESTROYING,void 0),this.detachMedia(),this.removeAllListeners(),this._autoLevelCapping=-1,this.url=null,this.networkControllers.forEach(function(e){return e.destroy()}),this.networkControllers.length=0,this.coreComponents.forEach(function(e){return e.destroy()}),this.coreComponents.length=0},t.attachMedia=function(e){y.logger.log("attachMedia"),this._media=e,this.trigger(a.Events.MEDIA_ATTACHING,{media:e})},t.detachMedia=function(){y.logger.log("detachMedia"),this.trigger(a.Events.MEDIA_DETACHING,void 0),this._media=null},t.loadSource=function(e){this.stopLoad();var t=this.media,i=this.url,r=this.url=s.buildAbsoluteURL(self.location.href,e,{alwaysNormalize:!0});y.logger.log("loadSource:"+r),t&&i&&i!==r&&this.bufferController.hasSourceTypes()&&(this.detachMedia(),this.attachMedia(t)),this.trigger(a.Events.MANIFEST_LOADING,{url:e})},t.startLoad=function(t){void 0===t&&(t=-1),y.logger.log("startLoad("+t+")"),this.networkControllers.forEach(function(e){e.startLoad(t)})},t.stopLoad=function(){y.logger.log("stopLoad"),this.networkControllers.forEach(function(e){e.stopLoad()})},t.swapAudioCodec=function(){y.logger.log("swapAudioCodec"),this.streamController.swapAudioCodec()},t.recoverMediaError=function(){y.logger.log("recoverMediaError");var e=this._media;this.detachMedia(),e&&this.attachMedia(e)},t.removeLevel=function(e,t){this.levelController.removeLevel(e,t=void 0===t?0:t)},t=[{key:"version",get:function(){return"1.1.5"}},{key:"Events",get:function(){return a.Events}},{key:"ErrorTypes",get:function(){return n.ErrorTypes}},{key:"ErrorDetails",get:function(){return n.ErrorDetails}},{key:"DefaultConfig",get:function(){return E.defaultConfig||v.hlsDefaultConfig},set:function(e){E.defaultConfig=e}}],o((i=E).prototype,[{key:"levels",get:function(){return this.levelController.levels||[]}},{key:"currentLevel",get:function(){return this.streamController.currentLevel},set:function(e){y.logger.log("set currentLevel:"+e),this.loadLevel=e,this.abrController.clearTimer(),this.streamController.immediateLevelSwitch()}},{key:"nextLevel",get:function(){return this.streamController.nextLevel},set:function(e){y.logger.log("set nextLevel:"+e),this.levelController.manualLevel=e,this.streamController.nextLevelSwitch()}},{key:"loadLevel",get:function(){return this.levelController.level},set:function(e){y.logger.log("set loadLevel:"+e),this.levelController.manualLevel=e}},{key:"nextLoadLevel",get:function(){return this.levelController.nextLoadLevel},set:function(e){this.levelController.nextLoadLevel=e}},{key:"firstLevel",get:function(){return Math.max(this.levelController.firstLevel,this.minAutoLevel)},set:function(e){y.logger.log("set firstLevel:"+e),this.levelController.firstLevel=e}},{key:"startLevel",get:function(){return this.levelController.startLevel},set:function(e){y.logger.log("set startLevel:"+e),-1!==e&&(e=Math.max(e,this.minAutoLevel)),this.levelController.startLevel=e}},{key:"capLevelToPlayerSize",get:function(){return this.config.capLevelToPlayerSize},set:function(e){e=!!e;e!==this.config.capLevelToPlayerSize&&(e?this.capLevelController.startCapping():(this.capLevelController.stopCapping(),this.autoLevelCapping=-1,this.streamController.nextLevelSwitch()),this.config.capLevelToPlayerSize=e)}},{key:"autoLevelCapping",get:function(){return this._autoLevelCapping},set:function(e){this._autoLevelCapping!==e&&(y.logger.log("set autoLevelCapping:"+e),this._autoLevelCapping=e)}},{key:"bandwidthEstimate",get:function(){var e=this.abrController.bwEstimator;return e?e.getEstimate():NaN}},{key:"autoLevelEnabled",get:function(){return-1===this.levelController.manualLevel}},{key:"manualLevel",get:function(){return this.levelController.manualLevel}},{key:"minAutoLevel",get:function(){var e=this.levels,t=this.config.minAutoBitrate;if(e)for(var i=e.length,r=0;r<i;r++)if(e[r].maxBitrate>t)return r;return 0}},{key:"maxAutoLevel",get:function(){var e=this.levels,t=this.autoLevelCapping;return-1===t&&e&&e.length?e.length-1:t}},{key:"nextAutoLevel",get:function(){return Math.min(Math.max(this.abrController.nextAutoLevel,this.minAutoLevel),this.maxAutoLevel)},set:function(e){this.abrController.nextAutoLevel=Math.max(this.minAutoLevel,e)}},{key:"audioTracks",get:function(){var e=this.audioTrackController;return e?e.audioTracks:[]}},{key:"audioTrack",get:function(){var e=this.audioTrackController;return e?e.audioTrack:-1},set:function(e){var t=this.audioTrackController;t&&(t.audioTrack=e)}},{key:"subtitleTracks",get:function(){var e=this.subtitleTrackController;return e?e.subtitleTracks:[]}},{key:"subtitleTrack",get:function(){var e=this.subtitleTrackController;return e?e.subtitleTrack:-1},set:function(e){var t=this.subtitleTrackController;t&&(t.subtitleTrack=e)}},{key:"media",get:function(){return this._media}},{key:"subtitleDisplay",get:function(){var e=this.subtitleTrackController;return!!e&&e.subtitleDisplay},set:function(e){var t=this.subtitleTrackController;t&&(t.subtitleDisplay=e)}},{key:"lowLatencyMode",get:function(){return this.config.lowLatencyMode},set:function(e){this.config.lowLatencyMode=e}},{key:"liveSyncPosition",get:function(){return this.latencyController.liveSyncPosition}},{key:"latency",get:function(){return this.latencyController.latency}},{key:"maxLatency",get:function(){return this.latencyController.maxLatency}},{key:"targetLatency",get:function(){return this.latencyController.targetLatency}},{key:"drift",get:function(){return this.latencyController.drift}},{key:"forceStartLoad",get:function(){return this.streamController.forceStartLoad}}]),o(i,t);var l=E;function E(e){void 0===e&&(e={}),this.config=void 0,this.userConfig=void 0,this.coreComponents=void 0,this.networkControllers=void 0,this._emitter=new b.EventEmitter,this._autoLevelCapping=void 0,this.abrController=void 0,this.bufferController=void 0,this.capLevelController=void 0,this.latencyController=void 0,this.levelController=void 0,this.streamController=void 0,this.audioTrackController=void 0,this.subtitleTrackController=void 0,this.emeController=void 0,this.cmcdController=void 0,this._media=null,this.url=null;var t=this.config=Object(v.mergeConfig)(E.DefaultConfig,e),e=(this.userConfig=e,Object(y.enableLogs)(t.debug),this._autoLevelCapping=-1,t.progressive&&Object(v.enableStreamingMode)(t),t.abrController),i=t.bufferController,r=t.capLevelController,s=t.fpsController,e=this.abrController=new e(this),i=this.bufferController=new i(this),r=this.capLevelController=new r(this),s=new s(this),a=new d.default(this),n=new h.default(this),o=new p.default(this),l=this.levelController=new A.default(this),c=new m.FragmentTracker(this),u=this.streamController=new g.default(this,c),l=(r.setStreamController(u),s.setStreamController(u),[l,u]),u=(this.networkControllers=l,[a,n,e,i,r,s,o,c]);this.audioTrackController=this.createController(t.audioTrackController,null,l),this.createController(t.audioStreamController,c,l),this.subtitleTrackController=this.createController(t.subtitleTrackController,null,l),this.createController(t.subtitleStreamController,c,l),this.createController(t.timelineController,null,u),this.emeController=this.createController(t.emeController,null,u),this.cmcdController=this.createController(t.cmcdController,null,u),this.latencyController=this.createController(f.default,null,u),this.coreComponents=u}l.defaultConfig=void 0},"./src/is-supported.ts":function(e,t,i){i.r(t),i.d(t,"isSupported",function(){return a}),i.d(t,"changeTypeSupported",function(){return n});var r=i("./src/utils/mediasource-helper.ts");function s(){return self.SourceBuffer||self.WebKitSourceBuffer}function a(){var e,t=Object(r.getMediaSource)();return!!t&&(e=s(),t=t&&"function"==typeof t.isTypeSupported&&t.isTypeSupported('video/mp4; codecs="avc1.42E01E,mp4a.40.2"'),e=!e||e.prototype&&"function"==typeof e.prototype.appendBuffer&&"function"==typeof e.prototype.remove,!!t)&&!!e}function n(){var e=s();return"function"==typeof(null==e||null==(e=e.prototype)?void 0:e.changeType)}},"./src/loader/fragment-loader.ts":function(e,t,i){i.r(t),i.d(t,"default",function(){return l}),i.d(t,"LoadError",function(){return A});var r=i("./src/polyfills/number.ts"),h=i("./src/errors.ts");function s(e){var i="function"==typeof Map?new Map:void 0;return(s=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==i){if(i.has(e))return i.get(e);i.set(e,t)}function t(){return a(e,arguments,o(this).constructor)}return t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),n(t,e)})(e)}function a(e,t,i){return(a=function(){if("undefined"==typeof Reflect||!Reflect.construct)return;if(Reflect.construct.sham)return;if("function"==typeof Proxy)return 1;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),1}catch(e){}}()?Reflect.construct:function(e,t,i){var r=[null],t=(r.push.apply(r,t),new(Function.bind.apply(e,r)));return i&&n(t,i.prototype),t}).apply(null,arguments)}function n(e,t){return(n=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function o(e){return(o=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var p=Math.pow(2,17),l=((t=c.prototype).destroy=function(){this.loader&&(this.loader.destroy(),this.loader=null)},t.abort=function(){this.loader&&this.loader.abort()},t.load=function(n,o){var l=this,e=n.url;if(!e)return Promise.reject(new A({type:h.ErrorTypes.NETWORK_ERROR,details:h.ErrorDetails.FRAG_LOAD_ERROR,fatal:!1,frag:n,networkDetails:null},"Fragment does not have a "+(e?"part list":"url")));this.abort();var i=this.config,c=i.fLoader,u=i.loader;return new Promise(function(s,r){l.loader&&l.loader.destroy();var a=l.loader=n.loader=new(c||u)(i),e=f(n),t={timeout:i.fragLoadingTimeOut,maxRetry:0,retryDelay:0,maxRetryDelay:i.fragLoadingMaxRetryTimeout,highWaterMark:p};n.stats=a.stats,a.load(e,t,{onSuccess:function(e,t,i,r){l.resetLoader(n,a),s({frag:n,part:null,payload:e.data,networkDetails:r})},onError:function(e,t,i){l.resetLoader(n,a),r(new A({type:h.ErrorTypes.NETWORK_ERROR,details:h.ErrorDetails.FRAG_LOAD_ERROR,fatal:!1,frag:n,response:e,networkDetails:i}))},onAbort:function(e,t,i){l.resetLoader(n,a),r(new A({type:h.ErrorTypes.NETWORK_ERROR,details:h.ErrorDetails.INTERNAL_ABORTED,fatal:!1,frag:n,networkDetails:i}))},onTimeout:function(e,t,i){l.resetLoader(n,a),r(new A({type:h.ErrorTypes.NETWORK_ERROR,details:h.ErrorDetails.FRAG_LOAD_TIMEOUT,fatal:!1,frag:n,networkDetails:i}))},onProgress:function(e,t,i,r){o&&o({frag:n,part:null,payload:i,networkDetails:r})}})})},t.loadPart=function(n,o,l){var c=this,i=(this.abort(),this.config),u=i.fLoader,d=i.loader;return new Promise(function(s,r){c.loader&&c.loader.destroy();var a=c.loader=n.loader=new(u||d)(i),e=f(n,o),t={timeout:i.fragLoadingTimeOut,maxRetry:0,retryDelay:0,maxRetryDelay:i.fragLoadingMaxRetryTimeout,highWaterMark:p};o.stats=a.stats,a.load(e,t,{onSuccess:function(e,t,i,r){c.resetLoader(n,a),c.updateStatsFromPart(n,o);e={frag:n,part:o,payload:e.data,networkDetails:r};l(e),s(e)},onError:function(e,t,i){c.resetLoader(n,a),r(new A({type:h.ErrorTypes.NETWORK_ERROR,details:h.ErrorDetails.FRAG_LOAD_ERROR,fatal:!1,frag:n,part:o,response:e,networkDetails:i}))},onAbort:function(e,t,i){n.stats.aborted=o.stats.aborted,c.resetLoader(n,a),r(new A({type:h.ErrorTypes.NETWORK_ERROR,details:h.ErrorDetails.INTERNAL_ABORTED,fatal:!1,frag:n,part:o,networkDetails:i}))},onTimeout:function(e,t,i){c.resetLoader(n,a),r(new A({type:h.ErrorTypes.NETWORK_ERROR,details:h.ErrorDetails.FRAG_LOAD_TIMEOUT,fatal:!1,frag:n,part:o,networkDetails:i}))}})})},t.updateStatsFromPart=function(e,t){var i=e.stats,r=t.stats,s=r.total,e=(i.loaded+=r.loaded,s?(s=((e=Math.round(e.duration/t.duration))-(t=Math.min(Math.round(i.loaded/s),e)))*Math.round(i.loaded/t),i.total=i.loaded+s):i.total=Math.max(i.loaded,i.total),i.loading),t=r.loading;e.start?e.first+=t.first-t.start:(e.start=t.start,e.first=t.first),e.end=t.end},t.resetLoader=function(e,t){e.loader=null,this.loader===t&&(self.clearTimeout(this.partLoadTimeout),this.loader=null),t.destroy()},c);function c(e){this.config=void 0,this.loader=null,this.partLoadTimeout=-1,this.config=e}function f(e,t){var i=(t=void 0===t?null:t)||e,e={frag:e,part:t,responseType:"arraybuffer",url:i.url,headers:{},rangeStart:0,rangeEnd:0},t=i.byteRangeStartOffset,i=i.byteRangeEndOffset;return Object(r.isFiniteNumber)(t)&&Object(r.isFiniteNumber)(i)&&(e.rangeStart=t,e.rangeEnd=i),e}u=s(Error),i=u,(t=d).prototype=Object.create(i.prototype),n(t.prototype.constructor=t,i);var u,A=d;function d(e){for(var t,i=arguments.length,r=new Array(1<i?i-1:0),s=1;s<i;s++)r[s-1]=arguments[s];return(t=u.call.apply(u,[this].concat(r))||this).data=void 0,t.data=e,t}},"./src/loader/fragment.ts":function(e,t,i){i.r(t),i.d(t,"ElementaryStreamTypes",function(){return r}),i.d(t,"BaseSegment",function(){return A}),i.d(t,"Fragment",function(){return m}),i.d(t,"Part",function(){return g});var r,s=i("./src/polyfills/number.ts"),a=i("./node_modules/url-toolkit/src/url-toolkit.js"),n=i("./src/utils/logger.ts"),o=i("./src/loader/level-key.ts"),l=i("./src/loader/load-stats.ts");function c(e,t){e.prototype=Object.create(t.prototype),u(e.prototype.constructor=e,t)}function u(e,t){return(u=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function d(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function h(e,t,i){t&&d(e.prototype,t),i&&d(e,i)}(t=r=r||{}).AUDIO="audio",t.VIDEO="video",t.AUDIOVIDEO="audiovideo";b.prototype.setByteRange=function(e,t){var e=e.split("@",2),i=[];1===e.length?i[0]=t?t.byteRangeEndOffset:0:i[0]=parseInt(e[1]),i[1]=parseInt(e[0])+i[0],this._byteRange=i},h(b,[{key:"byteRange",get:function(){return this._byteRange||[]}},{key:"byteRangeStartOffset",get:function(){return this.byteRange[0]}},{key:"byteRangeEndOffset",get:function(){return this.byteRange[1]}},{key:"url",get:function(){return!this._url&&this.baseurl&&this.relurl&&(this._url=Object(a.buildAbsoluteURL)(this.baseurl,this.relurl,{alwaysNormalize:!0})),this._url||""},set:function(e){this._url=e}}]);var p,f,A=b,m=(c(v,f=A),(i=v.prototype).createInitializationVector=function(e){for(var t=new Uint8Array(16),i=12;i<16;i++)t[i]=e>>8*(15-i)&255;return t},i.setDecryptDataFromLevelKey=function(e,t){var i=e;return"AES-128"===(null==e?void 0:e.method)&&e.uri&&!e.iv&&((i=o.LevelKey.fromURI(e.uri)).method=e.method,i.iv=this.createInitializationVector(t),i.keyFormat="identity"),i},i.setElementaryStreamInfo=function(e,t,i,r,s,a){void 0===a&&(a=!1);var n=this.elementaryStreams,o=n[e];o?(o.startPTS=Math.min(o.startPTS,t),o.endPTS=Math.max(o.endPTS,i),o.startDTS=Math.min(o.startDTS,r),o.endDTS=Math.max(o.endDTS,s)):n[e]={startPTS:t,endPTS:i,startDTS:r,endDTS:s,partial:a}},i.clearElementaryStreamInfo=function(){var e=this.elementaryStreams;e[r.AUDIO]=null,e[r.VIDEO]=null,e[r.AUDIOVIDEO]=null},h(v,[{key:"decryptdata",get:function(){var e;return this.levelkey||this._decryptdata?(!this._decryptdata&&this.levelkey&&("number"!=typeof(e=this.sn)&&(this.levelkey&&"AES-128"===this.levelkey.method&&!this.levelkey.iv&&n.logger.warn('missing IV for initialization segment with method="'+this.levelkey.method+'" - compliance issue'),e=0),this._decryptdata=this.setDecryptDataFromLevelKey(this.levelkey,e)),this._decryptdata):null}},{key:"end",get:function(){return this.start+this.duration}},{key:"endProgramDateTime",get:function(){var e;return null!==this.programDateTime&&Object(s.isFiniteNumber)(this.programDateTime)?(e=Object(s.isFiniteNumber)(this.duration)?this.duration:0,this.programDateTime+1e3*e):null}},{key:"encrypted",get:function(){var e;return!(null==(e=this.decryptdata)||!e.keyFormat||!this.decryptdata.uri)}}]),v),g=(c(y,p=A),h(y,[{key:"start",get:function(){return this.fragment.start+this.fragOffset}},{key:"end",get:function(){return this.start+this.duration}},{key:"loaded",get:function(){var e=this.elementaryStreams;return!!(e.audio||e.video||e.audiovideo)}}]),y);function y(e,t,i,r,s){(i=p.call(this,i)||this).fragOffset=0,i.duration=0,i.gap=!1,i.independent=!1,i.relurl=void 0,i.fragment=void 0,i.index=void 0,i.stats=new l.LoadStats,i.duration=e.decimalFloatingPoint("DURATION"),i.gap=e.bool("GAP"),i.independent=e.bool("INDEPENDENT"),i.relurl=e.enumeratedString("URI"),i.fragment=t,i.index=r;t=e.enumeratedString("BYTERANGE");return t&&i.setByteRange(t,s),s&&(i.fragOffset=s.fragOffset+s.duration),i}function v(e,t){return(t=f.call(this,t)||this)._decryptdata=null,t.rawProgramDateTime=null,t.programDateTime=null,t.tagList=[],t.duration=0,t.sn=0,t.levelkey=void 0,t.type=void 0,t.loader=null,t.level=-1,t.cc=0,t.startPTS=void 0,t.endPTS=void 0,t.appendedPTS=void 0,t.startDTS=void 0,t.endDTS=void 0,t.start=0,t.deltaPTS=void 0,t.maxStartPTS=void 0,t.minEndPTS=void 0,t.stats=new l.LoadStats,t.urlId=0,t.data=void 0,t.bitrateTest=!1,t.title=null,t.initSegment=null,t.type=e,t}function b(e){var t;this._byteRange=null,this._url=null,this.baseurl=void 0,this.relurl=void 0,this.elementaryStreams=((t={})[r.AUDIO]=null,t[r.VIDEO]=null,t[r.AUDIOVIDEO]=null,t),this.baseurl=e}},"./src/loader/key-loader.ts":function(e,t,i){i.r(t),i.d(t,"default",function(){return s});var n=i("./src/events.ts"),r=i("./src/errors.ts"),o=i("./src/utils/logger.ts"),s=((t=a.prototype)._registerListeners=function(){this.hls.on(n.Events.KEY_LOADING,this.onKeyLoading,this)},t._unregisterListeners=function(){this.hls.off(n.Events.KEY_LOADING,this.onKeyLoading)},t.destroy=function(){for(var e in this._unregisterListeners(),this.loaders){e=this.loaders[e];e&&e.destroy()}this.loaders={}},t.onKeyLoading=function(e,t){var i,r,t=t.frag,s=t.type,a=this.loaders[s];t.decryptdata?(i=t.decryptdata.uri)!==this.decrypturl||null===this.decryptkey?(r=this.hls.config,a&&(o.logger.warn("abort previous key loader for type:"+s),a.abort()),i?(a=r.loader,s=t.loader=this.loaders[s]=new a(r),this.decrypturl=i,this.decryptkey=null,a={url:i,frag:t,responseType:"arraybuffer"},i={timeout:r.fragLoadingTimeOut,maxRetry:0,retryDelay:r.fragLoadingRetryDelay,maxRetryDelay:r.fragLoadingMaxRetryTimeout,highWaterMark:0},r={onSuccess:this.loadsuccess.bind(this),onError:this.loaderror.bind(this),onTimeout:this.loadtimeout.bind(this)},s.load(a,i,r)):o.logger.warn("key uri is falsy")):this.decryptkey&&(t.decryptdata.key=this.decryptkey,this.hls.trigger(n.Events.KEY_LOADED,{frag:t})):o.logger.warn("Missing decryption data on fragment in onKeyLoading")},t.loadsuccess=function(e,t,i){i=i.frag;i.decryptdata?(this.decryptkey=i.decryptdata.key=new Uint8Array(e.data),i.loader=null,delete this.loaders[i.type],this.hls.trigger(n.Events.KEY_LOADED,{frag:i})):o.logger.error("after key load, decryptdata unset")},t.loaderror=function(e,t){var t=t.frag,i=t.loader;i&&i.abort(),delete this.loaders[t.type],this.hls.trigger(n.Events.ERROR,{type:r.ErrorTypes.NETWORK_ERROR,details:r.ErrorDetails.KEY_LOAD_ERROR,fatal:!1,frag:t,response:e})},t.loadtimeout=function(e,t){var t=t.frag,i=t.loader;i&&i.abort(),delete this.loaders[t.type],this.hls.trigger(n.Events.ERROR,{type:r.ErrorTypes.NETWORK_ERROR,details:r.ErrorDetails.KEY_LOAD_TIMEOUT,fatal:!1,frag:t})},a);function a(e){this.hls=void 0,this.loaders={},this.decryptkey=null,this.decrypturl=null,this.hls=e,this._registerListeners()}},"./src/loader/level-details.ts":function(e,t,i){i.r(t),i.d(t,"LevelDetails",function(){return a});var r=i("./src/polyfills/number.ts");function s(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}n.prototype.reloaded=function(e){var t,i;e?(t=this.lastPartSn-e.lastPartSn,i=this.lastPartIndex-e.lastPartIndex,this.updated=this.endSN!==e.endSN||!!i||!!t,this.advanced=this.endSN>e.endSN||0<t||0==t&&0<i,this.updated||this.advanced?this.misses=Math.floor(.6*e.misses):this.misses=e.misses+1,this.availabilityDelay=e.availabilityDelay):(this.advanced=!0,this.updated=!0)},s(n.prototype,[{key:"hasProgramDateTime",get:function(){return!!this.fragments.length&&Object(r.isFiniteNumber)(this.fragments[this.fragments.length-1].programDateTime)}},{key:"levelTargetDuration",get:function(){return this.averagetargetduration||this.targetduration||10}},{key:"drift",get:function(){var e=this.driftEndTime-this.driftStartTime;return 0<e?1e3*(this.driftEnd-this.driftStart)/e:1}},{key:"edge",get:function(){return this.partEnd||this.fragmentEnd}},{key:"partEnd",get:function(){var e;return null!=(e=this.partList)&&e.length?this.partList[this.partList.length-1].end:this.fragmentEnd}},{key:"fragmentEnd",get:function(){var e;return null!=(e=this.fragments)&&e.length?this.fragments[this.fragments.length-1].end:0}},{key:"age",get:function(){return this.advancedDateTime?Math.max(Date.now()-this.advancedDateTime,0)/1e3:0}},{key:"lastPartIndex",get:function(){var e;return null!=(e=this.partList)&&e.length?this.partList[this.partList.length-1].index:-1}},{key:"lastPartSn",get:function(){var e;return null!=(e=this.partList)&&e.length?this.partList[this.partList.length-1].fragment.sn:this.endSN}}]);var a=n;function n(e){this.PTSKnown=!1,this.alignedSliding=!1,this.averagetargetduration=void 0,this.endCC=0,this.endSN=0,this.fragments=void 0,this.fragmentHint=void 0,this.partList=null,this.live=!0,this.ageHeader=0,this.advancedDateTime=void 0,this.updated=!0,this.advanced=!0,this.availabilityDelay=void 0,this.misses=0,this.needSidxRanges=!1,this.startCC=0,this.startSN=0,this.startTimeOffset=null,this.targetduration=0,this.totalduration=0,this.type=null,this.url=void 0,this.m3u8="",this.version=null,this.canBlockReload=!1,this.canSkipUntil=0,this.canSkipDateRanges=!1,this.skippedSegments=0,this.recentlyRemovedDateranges=void 0,this.partHoldBack=0,this.holdBack=0,this.partTarget=0,this.preloadHint=void 0,this.renditionReports=void 0,this.tuneInGoal=0,this.deltaUpdateFailed=void 0,this.driftStartTime=0,this.driftEndTime=0,this.driftStart=0,this.driftEnd=0,this.fragments=[],this.url=e}},"./src/loader/level-key.ts":function(e,t,i){i.r(t),i.d(t,"LevelKey",function(){return a});var r=i("./node_modules/url-toolkit/src/url-toolkit.js");function s(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}n.fromURL=function(e,t){return new n(e,t)},n.fromURI=function(e){return new n(e)},s(n.prototype,[{key:"uri",get:function(){return this._uri}}]);var a=n;function n(e,t){this._uri=null,this.method=null,this.keyFormat=null,this.keyFormatVersions=null,this.keyID=null,this.key=null,this.iv=null,this._uri=t?Object(r.buildAbsoluteURL)(e,t,{alwaysNormalize:!0}):e}},"./src/loader/load-stats.ts":function(e,t,i){i.r(t),i.d(t,"LoadStats",function(){return r});var r=function(){this.aborted=!1,this.loaded=0,this.retry=0,this.total=0,this.chunkCount=0,this.bwEstimate=0,this.loading={start:0,first:0,end:0},this.parsing={start:0,end:0},this.buffering={start:0,first:0,end:0}}},"./src/loader/m3u8-parser.ts":function(e,t,i){i.r(t),i.d(t,"default",function(){return r});var M=i("./src/polyfills/number.ts"),U=i("./node_modules/url-toolkit/src/url-toolkit.js"),j=i("./src/loader/fragment.ts"),N=i("./src/loader/level-details.ts"),V=i("./src/loader/level-key.ts"),H=i("./src/utils/attr-list.ts"),W=i("./src/utils/logger.ts"),c=i("./src/utils/codecs.ts"),u=/#EXT-X-STREAM-INF:([^\r\n]*)(?:[\r\n](?:#[^\r\n]*)?)*([^\r\n]+)|#EXT-X-SESSION-DATA:([^\r\n]*)[\r\n]+/g,l=/#EXT-X-MEDIA:(.*)/g,G=new RegExp([/#EXTINF:\s*(\d*(?:\.\d+)?)(?:,(.*)\s+)?/.source,/(?!#) *(\S[\S ]*)/.source,/#EXT-X-BYTERANGE:*(.+)/.source,/#EXT-X-PROGRAM-DATE-TIME:(.+)/.source,/#.*/.source].join("|"),"g"),z=new RegExp([/#(EXTM3U)/.source,/#EXT-X-(PLAYLIST-TYPE):(.+)/.source,/#EXT-X-(MEDIA-SEQUENCE): *(\d+)/.source,/#EXT-X-(SKIP):(.+)/.source,/#EXT-X-(TARGETDURATION): *(\d+)/.source,/#EXT-X-(KEY):(.+)/.source,/#EXT-X-(START):(.+)/.source,/#EXT-X-(ENDLIST)/.source,/#EXT-X-(DISCONTINUITY-SEQ)UENCE: *(\d+)/.source,/#EXT-X-(DIS)CONTINUITY/.source,/#EXT-X-(VERSION):(\d+)/.source,/#EXT-X-(MAP):(.+)/.source,/#EXT-X-(SERVER-CONTROL):(.+)/.source,/#EXT-X-(PART-INF):(.+)/.source,/#EXT-X-(GAP)/.source,/#EXT-X-(BITRATE):\s*(\d+)/.source,/#EXT-X-(PART):(.+)/.source,/#EXT-X-(PRELOAD-HINT):(.+)/.source,/#EXT-X-(RENDITION-REPORT):(.+)/.source,/(#)([^:]*):(.*)/.source,/(#)(.*)(?:.*)\r?\n?/.source].join("|")),K=/\.(mp4|m4s|m4v|m4a)$/i,r=(d.findGroup=function(e,t){for(var i=0;i<e.length;i++){var r=e[i];if(r.id===t)return r}},d.convertAVC1ToAVCOTI=function(e){var t,i=e.split(".");return 2<i.length?(t=i.shift()+".",(t+=parseInt(i.shift()).toString(16))+("000"+parseInt(i.shift()).toString(16)).substr(-4)):e},d.resolve=function(e,t){return U.buildAbsoluteURL(t,e,{alwaysNormalize:!0})},d.parseMasterPlaylist=function(e,t){var i,r,s,a,n=[],o={},l=!1;for(u.lastIndex=0;null!=(i=u.exec(e));)i[1]?(s={attrs:r=new H.AttrList(i[1]),bitrate:r.decimalInteger("AVERAGE-BANDWIDTH")||r.decimalInteger("BANDWIDTH"),name:r.NAME,url:d.resolve(i[2],t)},(a=r.decimalResolution("RESOLUTION"))&&(s.width=a.width,s.height=a.height),function(r,s){["video","audio","text"].forEach(function(t){var e,i=r.filter(function(e){return Object(c.isCodecType)(e,t)});i.length&&(e=i.filter(function(e){return 0===e.lastIndexOf("avc1",0)||0===e.lastIndexOf("mp4a",0)}),s[t+"Codec"]=(0<e.length?e:i)[0],r=r.filter(function(e){return-1===i.indexOf(e)}))}),s.unknownCodecs=r}((r.CODECS||"").split(/[ ,]+/).filter(function(e){return e}),s),s.videoCodec&&-1!==s.videoCodec.indexOf("avc1")&&(s.videoCodec=d.convertAVC1ToAVCOTI(s.videoCodec)),n.push(s)):i[3]&&(a=new H.AttrList(i[3]))["DATA-ID"]&&(l=!0,o[a["DATA-ID"]]=a);return{levels:n,sessionData:l?o:null}},d.parseMasterPlaylistMedia=function(e,t,i,r){void 0===r&&(r=[]);var s=[],a=0;for(l.lastIndex=0;null!==(o=l.exec(e));){var n,o=new H.AttrList(o[1]);o.TYPE===i&&(o={attrs:o,bitrate:0,id:a++,groupId:o["GROUP-ID"],instreamId:o["INSTREAM-ID"],name:o.NAME||o.LANGUAGE||"",type:i,default:o.bool("DEFAULT"),autoselect:o.bool("AUTOSELECT"),forced:o.bool("FORCED"),lang:o.LANGUAGE,url:o.URI?d.resolve(o.URI,t):""},r.length&&(h(o,n=d.findGroup(r,o.groupId)||r[0],"audioCodec"),h(o,n,"textCodec")),s.push(o))}return s},d.parseLevelPlaylist=function(e,t,i,r,s){var a,n,o,l=new N.LevelDetails(t),c=l.fragments,u=null,d=0,h=0,p=0,f=0,A=null,m=new j.Fragment(r,t),g=-1,y=!1;for(G.lastIndex=0,l.m3u8=e;null!==(a=G.exec(e));){y&&(y=!1,(m=new j.Fragment(r,t)).start=p,m.sn=d,m.cc=f,m.level=i,u)&&(m.initSegment=u,m.rawProgramDateTime=u.rawProgramDateTime);var v=a[1];if(v){m.duration=parseFloat(v);var b=(" "+a[2]).slice(1);m.title=b||null,m.tagList.push(b?["INF",v,b]:["INF",v])}else if(a[3])Object(M.isFiniteNumber)(m.duration)&&(m.start=p,o&&(m.levelkey=o),m.sn=d,m.level=i,m.cc=f,m.urlId=s,c.push(m),m.relurl=(" "+a[3]).slice(1),q(m,A),p+=(A=m).duration,d++,y=!(h=0));else if(a[4]){b=(" "+a[4]).slice(1);A?m.setByteRange(b,A):m.setByteRange(b)}else if(a[5])m.rawProgramDateTime=(" "+a[5]).slice(1),m.tagList.push(["PROGRAM-DATE-TIME",m.rawProgramDateTime]),-1===g&&(g=c.length);else if(a=a[0].match(z)){for(n=1;n<a.length&&void 0===a[n];n++);var E=(" "+a[n]).slice(1),S=(" "+a[n+1]).slice(1),T=a[n+2]?(" "+a[n+2]).slice(1):"";switch(E){case"PLAYLIST-TYPE":l.type=S.toUpperCase();break;case"MEDIA-SEQUENCE":d=l.startSN=parseInt(S);break;case"SKIP":var w=new H.AttrList(S),k=w.decimalInteger("SKIPPED-SEGMENTS");if(Object(M.isFiniteNumber)(k)){for(var _=l.skippedSegments=k;_--;)c.unshift(null);d+=k}k=w.enumeratedString("RECENTLY-REMOVED-DATERANGES");k&&(l.recentlyRemovedDateranges=k.split("\t"));break;case"TARGETDURATION":l.targetduration=parseFloat(S);break;case"VERSION":l.version=parseInt(S);break;case"EXTM3U":break;case"ENDLIST":l.live=!1;break;case"#":(S||T)&&m.tagList.push(T?[S,T]:[S]);break;case"DIS":f++;case"GAP":m.tagList.push([E]);break;case"BITRATE":m.tagList.push([E,S]);break;case"DISCONTINUITY-SEQ":f=parseInt(S);break;case"KEY":var w=new H.AttrList(S),k=w.enumeratedString("METHOD"),C=w.URI,R=w.hexadecimalInteger("IV"),D=w.enumeratedString("KEYFORMATVERSIONS"),L=w.enumeratedString("KEYID"),I=null!=(I=w.enumeratedString("KEYFORMAT"))?I:"identity";-1<["com.apple.streamingkeydelivery","com.microsoft.playready","urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed","com.widevine"].indexOf(I)?W.logger.warn("Keyformat "+I+" is not supported from the manifest"):"identity"===I&&k&&(o=V.LevelKey.fromURL(t,C),C)&&0<=["AES-128","SAMPLE-AES","SAMPLE-AES-CENC"].indexOf(k)&&(o.method=k,o.keyFormat=I,L&&(o.keyID=L),D&&(o.keyFormatVersions=D),o.iv=R);break;case"START":C=new H.AttrList(S).decimalFloatingPoint("TIME-OFFSET");Object(M.isFiniteNumber)(C)&&(l.startTimeOffset=C);break;case"MAP":I=new H.AttrList(S);m.relurl=I.URI,I.BYTERANGE&&m.setByteRange(I.BYTERANGE),m.level=i,m.sn="initSegment",o&&(m.levelkey=o),m.initSegment=null,u=m,y=!0;break;case"SERVER-CONTROL":L=new H.AttrList(S);l.canBlockReload=L.bool("CAN-BLOCK-RELOAD"),l.canSkipUntil=L.optionalFloat("CAN-SKIP-UNTIL",0),l.canSkipDateRanges=0<l.canSkipUntil&&L.bool("CAN-SKIP-DATERANGES"),l.partHoldBack=L.optionalFloat("PART-HOLD-BACK",0),l.holdBack=L.optionalFloat("HOLD-BACK",0);break;case"PART-INF":D=new H.AttrList(S);l.partTarget=D.decimalFloatingPoint("PART-TARGET");break;case"PART":var R=(R=l.partList)||(l.partList=[]),B=0<h?R[R.length-1]:void 0,x=h++,x=new j.Part(new H.AttrList(S),m,t,x,B);R.push(x),m.duration+=x.duration;break;case"PRELOAD-HINT":B=new H.AttrList(S);l.preloadHint=B;break;case"RENDITION-REPORT":x=new H.AttrList(S);l.renditionReports=l.renditionReports||[],l.renditionReports.push(x);break;default:W.logger.warn("line parsed but not handled: "+a)}}else W.logger.warn("No matches on slow regex match for level playlist!")}A&&!A.relurl?(c.pop(),p-=A.duration,l.partList&&(l.fragmentHint=A)):l.partList&&(q(m,A),m.cc=f,l.fragmentHint=m);var P=c.length,F=c[0],O=c[P-1];return 0<(p+=l.skippedSegments*l.targetduration)&&P&&O?(l.averagetargetduration=p/P,P=O.sn,l.endSN="initSegment"!==P?P:0,F&&(l.startCC=F.cc,F.initSegment||l.fragments.every(function(e){return e.relurl&&(e=e.relurl,K.test(null!=(e=null==(e=U.parseURL(e))?void 0:e.path)?e:""))})&&(W.logger.warn("MP4 fragments found but no init segment (probably no MAP, incomplete M3U8), trying to fetch SIDX"),(m=new j.Fragment(r,t)).relurl=O.relurl,m.level=i,m.sn="initSegment",F.initSegment=m,l.needSidxRanges=!0))):(l.endSN=0,l.startCC=0),l.fragmentHint&&(p+=l.fragmentHint.duration),l.totalduration=p,l.endCC=f,0<g&&function(e,t){for(var i=e[t],r=t;r--;){var s=e[r];if(!s)return;s.programDateTime=i.programDateTime-1e3*s.duration,i=s}}(c,g),l},d);function d(){}function h(e,t,i){t=t[i];t&&(e[i]=t)}function q(e,t){e.rawProgramDateTime?e.programDateTime=Date.parse(e.rawProgramDateTime):null!=t&&t.programDateTime&&(e.programDateTime=t.endProgramDateTime),Object(M.isFiniteNumber)(e.programDateTime)||(e.programDateTime=null,e.rawProgramDateTime=null)}},"./src/loader/playlist-loader.ts":function(e,t,i){i.r(t);var h=i("./src/polyfills/number.ts"),p=i("./src/events.ts"),f=i("./src/errors.ts"),d=i("./src/utils/logger.ts"),s=i("./src/utils/mp4-tools.ts"),A=i("./src/loader/m3u8-parser.ts"),m=i("./src/types/loader.ts"),g=i("./src/utils/attr-list.ts");function y(e,t){e=e.url;return e=void 0!==e&&0!==e.indexOf("data:")?e:t.url}function r(e){this.hls=void 0,this.loaders=Object.create(null),this.hls=e,this.registerListeners()}(i=r.prototype).registerListeners=function(){var e=this.hls;e.on(p.Events.MANIFEST_LOADING,this.onManifestLoading,this),e.on(p.Events.LEVEL_LOADING,this.onLevelLoading,this),e.on(p.Events.AUDIO_TRACK_LOADING,this.onAudioTrackLoading,this),e.on(p.Events.SUBTITLE_TRACK_LOADING,this.onSubtitleTrackLoading,this)},i.unregisterListeners=function(){var e=this.hls;e.off(p.Events.MANIFEST_LOADING,this.onManifestLoading,this),e.off(p.Events.LEVEL_LOADING,this.onLevelLoading,this),e.off(p.Events.AUDIO_TRACK_LOADING,this.onAudioTrackLoading,this),e.off(p.Events.SUBTITLE_TRACK_LOADING,this.onSubtitleTrackLoading,this)},i.createInternalLoader=function(e){var t=this.hls.config,i=t.pLoader,r=t.loader,i=new(i||r)(t);return e.loader=i,this.loaders[e.type]=i},i.getInternalLoader=function(e){return this.loaders[e.type]},i.resetInternalLoader=function(e){this.loaders[e]&&delete this.loaders[e]},i.destroyInternalLoaders=function(){for(var e in this.loaders){var t=this.loaders[e];t&&t.destroy(),this.resetInternalLoader(e)}},i.destroy=function(){this.unregisterListeners(),this.destroyInternalLoaders()},i.onManifestLoading=function(e,t){t=t.url;this.load({id:null,groupId:null,level:0,responseType:"text",type:m.PlaylistContextType.MANIFEST,url:t,deliveryDirectives:null})},i.onLevelLoading=function(e,t){var i=t.id,r=t.level,s=t.url,t=t.deliveryDirectives;this.load({id:i,groupId:null,level:r,responseType:"text",type:m.PlaylistContextType.LEVEL,url:s,deliveryDirectives:t})},i.onAudioTrackLoading=function(e,t){var i=t.id,r=t.groupId,s=t.url,t=t.deliveryDirectives;this.load({id:i,groupId:r,level:null,responseType:"text",type:m.PlaylistContextType.AUDIO_TRACK,url:s,deliveryDirectives:t})},i.onSubtitleTrackLoading=function(e,t){var i=t.id,r=t.groupId,s=t.url,t=t.deliveryDirectives;this.load({id:i,groupId:r,level:null,responseType:"text",type:m.PlaylistContextType.SUBTITLE_TRACK,url:s,deliveryDirectives:t})},i.load=function(e){var t,i,r,s,a=this.hls.config;if(o=this.getInternalLoader(e)){var n=o.context;if(n&&n.url===e.url)return void d.logger.trace("[playlist-loader]: playlist request ongoing");d.logger.log("[playlist-loader]: aborting previous loader for type: "+e.type),o.abort()}switch(e.type){case m.PlaylistContextType.MANIFEST:t=a.manifestLoadingMaxRetry,i=a.manifestLoadingTimeOut,r=a.manifestLoadingRetryDelay,s=a.manifestLoadingMaxRetryTimeout;break;case m.PlaylistContextType.LEVEL:case m.PlaylistContextType.AUDIO_TRACK:case m.PlaylistContextType.SUBTITLE_TRACK:t=0,i=a.levelLoadingTimeOut;break;default:t=a.levelLoadingMaxRetry,i=a.levelLoadingTimeOut,r=a.levelLoadingRetryDelay,s=a.levelLoadingMaxRetryTimeout}var o=this.createInternalLoader(e),n=(null!=(n=e.deliveryDirectives)&&n.part&&(e.type===m.PlaylistContextType.LEVEL&&null!==e.level?l=this.hls.levels[e.level].details:e.type===m.PlaylistContextType.AUDIO_TRACK&&null!==e.id?l=this.hls.audioTracks[e.id].details:e.type===m.PlaylistContextType.SUBTITLE_TRACK&&null!==e.id&&(l=this.hls.subtitleTracks[e.id].details),l)&&(n=l.partTarget,l=l.targetduration,n&&l&&(i=Math.min(1e3*Math.max(3*n,.8*l),i))),{timeout:i,maxRetry:t,retryDelay:r,maxRetryDelay:s,highWaterMark:0}),l={onSuccess:this.loadsuccess.bind(this),onError:this.loaderror.bind(this),onTimeout:this.loadtimeout.bind(this)};o.load(e,n,l)},i.loadsuccess=function(e,t,i,r){var s;void 0===r&&(r=null),i.isSidxRequest?(this.handleSidxRequest(e,i),this.handlePlaylistLoaded(e,t,i,r)):(this.resetInternalLoader(i.type),0===(s=e.data).indexOf("#EXTM3U")?(t.parsing.start=performance.now(),0<s.indexOf("#EXTINF:")||0<s.indexOf("#EXT-X-TARGETDURATION:")?this.handleTrackOrLevelPlaylist(e,t,i,r):this.handleMasterPlaylist(e,t,i,r)):this.handleManifestParsingError(e,i,"no EXTM3U delimiter",r))},i.loaderror=function(e,t,i){this.handleNetworkError(t,i=void 0===i?null:i,!1,e)},i.loadtimeout=function(e,t,i){this.handleNetworkError(t,i=void 0===i?null:i,!0)},i.handleMasterPlaylist=function(e,t,i,r){var s,a,n=this.hls,o=e.data,l=y(e,i),c=A.default.parseMasterPlaylist(o,l),u=c.levels,c=c.sessionData;u.length?(s=u.map(function(e){return{id:e.attrs.AUDIO,audioCodec:e.audioCodec}}),a=u.map(function(e){return{id:e.attrs.SUBTITLES,textCodec:e.textCodec}}),s=A.default.parseMasterPlaylistMedia(o,l,"AUDIO",s),a=A.default.parseMasterPlaylistMedia(o,l,"SUBTITLES",a),o=A.default.parseMasterPlaylistMedia(o,l,"CLOSED-CAPTIONS"),s.length&&!s.some(function(e){return!e.url})&&u[0].audioCodec&&!u[0].attrs.AUDIO&&(d.logger.log("[playlist-loader]: audio codec signaled in quality level, but no embedded audio track signaled, create one"),s.unshift({type:"main",name:"main",default:!1,autoselect:!1,forced:!1,id:-1,attrs:new g.AttrList({}),bitrate:0,url:""})),n.trigger(p.Events.MANIFEST_LOADED,{levels:u,audioTracks:s,subtitles:a,captions:o,url:l,stats:t,networkDetails:r,sessionData:c})):this.handleManifestParsingError(e,i,"no level found in manifest",r)},i.handleTrackOrLevelPlaylist=function(e,t,i,r){var s=this.hls,a=i.id,n=i.level,o=i.type,l=y(e,i),c=Object(h.isFiniteNumber)(a)?a:0,u=Object(h.isFiniteNumber)(n)?n:c,d=function(){switch(i.type){case m.PlaylistContextType.AUDIO_TRACK:return m.PlaylistLevelType.AUDIO;case m.PlaylistContextType.SUBTITLE_TRACK:return m.PlaylistLevelType.SUBTITLE;default:return m.PlaylistLevelType.MAIN}}(),u=A.default.parseLevelPlaylist(e.data,l,u,d,c);u.fragments.length?(o===m.PlaylistContextType.MANIFEST&&(d={attrs:new g.AttrList({}),bitrate:0,details:u,name:"",url:l},s.trigger(p.Events.MANIFEST_LOADED,{levels:[d],audioTracks:[],url:l,stats:t,networkDetails:r,sessionData:null})),t.parsing.end=performance.now(),u.needSidxRanges?(d=null==(c=u.fragments[0].initSegment)?void 0:c.url,this.load({url:d,isSidxRequest:!0,type:o,level:n,levelDetails:u,id:a,groupId:null,rangeStart:0,rangeEnd:2048,responseType:"arraybuffer",deliveryDirectives:null})):(i.levelDetails=u,this.handlePlaylistLoaded(e,t,i,r))):s.trigger(p.Events.ERROR,{type:f.ErrorTypes.NETWORK_ERROR,details:f.ErrorDetails.LEVEL_EMPTY_ERROR,fatal:!1,url:l,reason:"no fragments found in level",level:"number"==typeof i.level?i.level:void 0})},i.handleSidxRequest=function(e,t){var i,r=Object(s.parseSegmentIndex)(new Uint8Array(e.data));r&&(e=r.references,i=t.levelDetails,e.forEach(function(e,t){e=e.info,t=i.fragments[t];0===t.byteRange.length&&t.setByteRange(String(1+e.end-e.start)+"@"+String(e.start)),t.initSegment&&t.initSegment.setByteRange(String(r.moovEndOffset)+"@0")}))},i.handleManifestParsingError=function(e,t,i,r){this.hls.trigger(p.Events.ERROR,{type:f.ErrorTypes.NETWORK_ERROR,details:f.ErrorDetails.MANIFEST_PARSING_ERROR,fatal:t.type===m.PlaylistContextType.MANIFEST,url:e.url,reason:i,response:e,context:t,networkDetails:r})},i.handleNetworkError=function(e,t,i,r){d.logger.warn("[playlist-loader]: A network "+((i=void 0===i?!1:i)?"timeout":"error")+" occurred while loading "+e.type+" level: "+e.level+" id: "+e.id+' group-id: "'+e.groupId+'"');var s=f.ErrorDetails.UNKNOWN,a=!1,n=this.getInternalLoader(e);switch(e.type){case m.PlaylistContextType.MANIFEST:s=i?f.ErrorDetails.MANIFEST_LOAD_TIMEOUT:f.ErrorDetails.MANIFEST_LOAD_ERROR,a=!0;break;case m.PlaylistContextType.LEVEL:s=i?f.ErrorDetails.LEVEL_LOAD_TIMEOUT:f.ErrorDetails.LEVEL_LOAD_ERROR,a=!1;break;case m.PlaylistContextType.AUDIO_TRACK:s=i?f.ErrorDetails.AUDIO_TRACK_LOAD_TIMEOUT:f.ErrorDetails.AUDIO_TRACK_LOAD_ERROR,a=!1;break;case m.PlaylistContextType.SUBTITLE_TRACK:s=i?f.ErrorDetails.SUBTITLE_TRACK_LOAD_TIMEOUT:f.ErrorDetails.SUBTITLE_LOAD_ERROR,a=!1}n&&this.resetInternalLoader(e.type);n={type:f.ErrorTypes.NETWORK_ERROR,details:s,fatal:a,url:e.url,loader:n,context:e,networkDetails:t};r&&(n.response=r),this.hls.trigger(p.Events.ERROR,n)},i.handlePlaylistLoaded=function(e,t,i,r){var s=i.type,a=i.level,n=i.id,o=i.groupId,l=i.loader,c=i.levelDetails,u=i.deliveryDirectives;if(null!=c&&c.targetduration){if(l)switch(c.live&&(l.getCacheAge&&(c.ageHeader=l.getCacheAge()||0),l.getCacheAge&&!isNaN(c.ageHeader)||(c.ageHeader=0)),s){case m.PlaylistContextType.MANIFEST:case m.PlaylistContextType.LEVEL:this.hls.trigger(p.Events.LEVEL_LOADED,{details:c,level:a||0,id:n||0,stats:t,networkDetails:r,deliveryDirectives:u});break;case m.PlaylistContextType.AUDIO_TRACK:this.hls.trigger(p.Events.AUDIO_TRACK_LOADED,{details:c,id:n||0,groupId:o||"",stats:t,networkDetails:r,deliveryDirectives:u});break;case m.PlaylistContextType.SUBTITLE_TRACK:this.hls.trigger(p.Events.SUBTITLE_TRACK_LOADED,{details:c,id:n||0,groupId:o||"",stats:t,networkDetails:r,deliveryDirectives:u})}}else this.handleManifestParsingError(e,i,"invalid target duration",r)},t.default=r},"./src/polyfills/number.ts":function(e,t,i){i.r(t),i.d(t,"isFiniteNumber",function(){return r}),i.d(t,"MAX_SAFE_INTEGER",function(){return s});var r=Number.isFinite||function(e){return"number"==typeof e&&isFinite(e)},s=Number.MAX_SAFE_INTEGER||9007199254740991},"./src/remux/aac-helper.ts":function(e,t,i){function r(){}i.r(t),r.getSilentFrame=function(e,t){return"mp4a.40.2"===e?1===t?new Uint8Array([0,200,0,128,35,128]):2===t?new Uint8Array([33,0,73,144,2,25,0,35,128]):3===t?new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]):4===t?new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]):5===t?new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,56]):6===t?new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,0,178,0,32,8,224]):void 0:1===t?new Uint8Array([1,64,34,128,163,78,230,128,186,8,0,0,0,28,6,241,193,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]):2===t||3===t?new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]):void 0},t.default=r},"./src/remux/mp4-generator.ts":function(e,t,i){i.r(t);var a=Math.pow(2,32)-1,i=(d.init=function(){for(var e in d.types={avc1:[],avcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],".mp3":[],mvex:[],mvhd:[],pasp:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[]})d.types.hasOwnProperty(e)&&(d.types[e]=[e.charCodeAt(0),e.charCodeAt(1),e.charCodeAt(2),e.charCodeAt(3)]);var t=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),i=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]),t=(d.HDLR_TYPES={video:t,audio:i},new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1])),i=new Uint8Array([0,0,0,0,0,0,0,0]),i=(d.STTS=d.STSC=d.STCO=i,d.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),d.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0]),d.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),d.STSD=new Uint8Array([0,0,0,0,0,0,0,1]),new Uint8Array([105,115,111,109])),r=new Uint8Array([97,118,99,49]),s=new Uint8Array([0,0,0,1]);d.FTYP=d.box(d.types.ftyp,i,s,i,r),d.DINF=d.box(d.types.dinf,d.box(d.types.dref,t))},d.box=function(e){for(var t=8,i=arguments.length,r=new Array(1<i?i-1:0),s=1;s<i;s++)r[s-1]=arguments[s];for(var a=r.length,n=a;a--;)t+=r[a].byteLength;var o=new Uint8Array(t);for(o[0]=t>>24&255,o[1]=t>>16&255,o[2]=t>>8&255,o[3]=255&t,o.set(e,4),a=0,t=8;a<n;a++)o.set(r[a],t),t+=r[a].byteLength;return o},d.hdlr=function(e){return d.box(d.types.hdlr,d.HDLR_TYPES[e])},d.mdat=function(e){return d.box(d.types.mdat,e)},d.mdhd=function(e,t){t*=e;var i=Math.floor(t/(1+a)),t=Math.floor(t%(1+a));return d.box(d.types.mdhd,new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,e>>24&255,e>>16&255,e>>8&255,255&e,i>>24,i>>16&255,i>>8&255,255&i,t>>24,t>>16&255,t>>8&255,255&t,85,196,0,0]))},d.mdia=function(e){return d.box(d.types.mdia,d.mdhd(e.timescale,e.duration),d.hdlr(e.type),d.minf(e))},d.mfhd=function(e){return d.box(d.types.mfhd,new Uint8Array([0,0,0,0,e>>24,e>>16&255,e>>8&255,255&e]))},d.minf=function(e){return"audio"===e.type?d.box(d.types.minf,d.box(d.types.smhd,d.SMHD),d.DINF,d.stbl(e)):d.box(d.types.minf,d.box(d.types.vmhd,d.VMHD),d.DINF,d.stbl(e))},d.moof=function(e,t,i){return d.box(d.types.moof,d.mfhd(e),d.traf(i,t))},d.moov=function(e){for(var t=e.length,i=[];t--;)i[t]=d.trak(e[t]);return d.box.apply(null,[d.types.moov,d.mvhd(e[0].timescale,e[0].duration)].concat(i).concat(d.mvex(e)))},d.mvex=function(e){for(var t=e.length,i=[];t--;)i[t]=d.trex(e[t]);return d.box.apply(null,[d.types.mvex].concat(i))},d.mvhd=function(e,t){t*=e;var i=Math.floor(t/(1+a)),t=Math.floor(t%(1+a)),e=new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,e>>24&255,e>>16&255,e>>8&255,255&e,i>>24,i>>16&255,i>>8&255,255&i,t>>24,t>>16&255,t>>8&255,255&t,0,1,0,0,1,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,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,255,255,255,255]);return d.box(d.types.mvhd,e)},d.sdtp=function(e){for(var t,i=e.samples||[],r=new Uint8Array(4+i.length),s=0;s<i.length;s++)t=i[s].flags,r[s+4]=t.dependsOn<<4|t.isDependedOn<<2|t.hasRedundancy;return d.box(d.types.sdtp,r)},d.stbl=function(e){return d.box(d.types.stbl,d.stsd(e),d.box(d.types.stts,d.STTS),d.box(d.types.stsc,d.STSC),d.box(d.types.stsz,d.STSZ),d.box(d.types.stco,d.STCO))},d.avc1=function(e){for(var t,i,r=[],s=[],a=0;a<e.sps.length;a++)i=(t=e.sps[a]).byteLength,r.push(i>>>8&255),r.push(255&i),r=r.concat(Array.prototype.slice.call(t));for(a=0;a<e.pps.length;a++)i=(t=e.pps[a]).byteLength,s.push(i>>>8&255),s.push(255&i),s=s.concat(Array.prototype.slice.call(t));var n=d.box(d.types.avcC,new Uint8Array([1,r[3],r[4],r[5],255,224|e.sps.length].concat(r).concat([e.pps.length]).concat(s))),o=e.width,l=e.height,c=e.pixelRatio[0],u=e.pixelRatio[1];return d.box(d.types.avc1,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,o>>8&255,255&o,l>>8&255,255&l,0,72,0,0,0,72,0,0,0,0,0,0,0,1,18,100,97,105,108,121,109,111,116,105,111,110,47,104,108,115,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),n,d.box(d.types.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])),d.box(d.types.pasp,new Uint8Array([c>>24,c>>16&255,c>>8&255,255&c,u>>24,u>>16&255,u>>8&255,255&u])))},d.esds=function(e){var t=e.config.length;return new Uint8Array([0,0,0,0,3,23+t,0,1,0,4,15+t,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([t]).concat(e.config).concat([6,1,2]))},d.mp4a=function(e){var t=e.samplerate;return d.box(d.types.mp4a,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,e.channelCount,0,16,0,0,0,0,t>>8&255,255&t,0,0]),d.box(d.types.esds,d.esds(e)))},d.mp3=function(e){var t=e.samplerate;return d.box(d.types[".mp3"],new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,e.channelCount,0,16,0,0,0,0,t>>8&255,255&t,0,0]))},d.stsd=function(e){return"audio"===e.type?e.isAAC||"mp3"!==e.codec?d.box(d.types.stsd,d.STSD,d.mp4a(e)):d.box(d.types.stsd,d.STSD,d.mp3(e)):d.box(d.types.stsd,d.STSD,d.avc1(e))},d.tkhd=function(e){var t=e.id,i=e.duration*e.timescale,r=e.width,e=e.height,s=Math.floor(i/(1+a)),i=Math.floor(i%(1+a));return d.box(d.types.tkhd,new Uint8Array([1,0,0,7,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,t>>24&255,t>>16&255,t>>8&255,255&t,0,0,0,0,s>>24,s>>16&255,s>>8&255,255&s,i>>24,i>>16&255,i>>8&255,255&i,0,0,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,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,r>>8&255,255&r,0,0,e>>8&255,255&e,0,0]))},d.traf=function(e,t){var i=d.sdtp(e),r=e.id,s=Math.floor(t/(1+a)),t=Math.floor(t%(1+a));return d.box(d.types.traf,d.box(d.types.tfhd,new Uint8Array([0,0,0,0,r>>24,r>>16&255,r>>8&255,255&r])),d.box(d.types.tfdt,new Uint8Array([1,0,0,0,s>>24,s>>16&255,s>>8&255,255&s,t>>24,t>>16&255,t>>8&255,255&t])),d.trun(e,i.length+16+20+8+16+8+8),i)},d.trak=function(e){return e.duration=e.duration||4294967295,d.box(d.types.trak,d.tkhd(e),d.mdia(e))},d.trex=function(e){e=e.id;return d.box(d.types.trex,new Uint8Array([0,0,0,0,e>>24,e>>16&255,e>>8&255,255&e,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]))},d.trun=function(e,t){var i,r,s,a,n,o=e.samples||[],l=o.length,e=12+16*l,c=new Uint8Array(e);for(c.set([0,0,15,1,l>>>24&255,l>>>16&255,l>>>8&255,255&l,(t+=8+e)>>>24&255,t>>>16&255,t>>>8&255,255&t],0),i=0;i<l;i++)r=(n=o[i]).duration,s=n.size,a=n.flags,n=n.cts,c.set([r>>>24&255,r>>>16&255,r>>>8&255,255&r,s>>>24&255,s>>>16&255,s>>>8&255,255&s,a.isLeading<<2|a.dependsOn,a.isDependedOn<<6|a.hasRedundancy<<4|a.paddingValue<<1|a.isNonSync,61440&a.degradPrio,15&a.degradPrio,n>>>24&255,n>>>16&255,n>>>8&255,255&n],12+16*i);return d.box(d.types.trun,c)},d.initSegment=function(e){d.types||d.init();var e=d.moov(e),t=new Uint8Array(d.FTYP.byteLength+e.byteLength);return t.set(d.FTYP),t.set(e,d.FTYP.byteLength),t},d);function d(){}i.types=void 0,i.HDLR_TYPES=void 0,i.STTS=void 0,i.STSC=void 0,i.STCO=void 0,i.STSZ=void 0,i.VMHD=void 0,i.SMHD=void 0,i.STSD=void 0,i.FTYP=void 0,i.DINF=void 0,t.default=i},"./src/remux/mp4-remuxer.ts":function(e,t,i){i.r(t),i.d(t,"default",function(){return r}),i.d(t,"normalizePts",function(){return Z});var h=i("./src/polyfills/number.ts"),M=i("./src/remux/aac-helper.ts"),G=i("./src/remux/mp4-generator.ts"),z=i("./src/events.ts"),K=i("./src/errors.ts"),q=i("./src/utils/logger.ts"),S=i("./src/types/loader.ts"),J=i("./src/utils/timescale-conversion.ts");function Q(){return(Q=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i,r=arguments[t];for(i in r)Object.prototype.hasOwnProperty.call(r,i)&&(e[i]=r[i])}return e}).apply(this,arguments)}var X=null,s=null,Y=!1,r=((t=a.prototype).destroy=function(){},t.resetTimeStamp=function(e){q.logger.log("[mp4-remuxer]: initPTS & initDTS reset"),this._initPTS=this._initDTS=e},t.resetNextTimestamp=function(){q.logger.log("[mp4-remuxer]: reset next timestamp"),this.isVideoContiguous=!1,this.isAudioContiguous=!1},t.resetInitSegment=function(){q.logger.log("[mp4-remuxer]: ISGenerated flag reset"),this.ISGenerated=!1},t.getVideoStartPts=function(e){var r=!1,e=e.reduce(function(e,t){var i=t.pts-e;return i<-4294967296?(r=!0,Z(e,t.pts)):0<i?e:t.pts},e[0].pts);return r&&q.logger.debug("PTS rollover detected"),e},t.remux=function(e,t,i,r,s,a,n,o){var l,c,u,d,h,p,f,A=s,m=s,g=-1<e.pid,y=-1<t.pid,v=t.samples.length,b=0<e.samples.length,E=1<v;return(g&&!b||y&&!E)&&!this.ISGenerated&&!n||(this.ISGenerated||(u=this.generateIS(e,t,s)),g=this.isVideoContiguous,n=-1,E&&(n=function(e){for(var t=0;t<e.length;t++)if(e[t].key)return t;return-1}(t.samples),!g)&&this.config.forceKeyFrameOnDiscontinuity&&(p=!0,0<n?(q.logger.warn("[mp4-remuxer]: Dropped "+n+" out of "+v+" video samples due to a missing keyframe"),f=this.getVideoStartPts(t.samples),t.samples=t.samples.slice(n),t.dropped+=n,m+=(t.samples[0].pts-f)/(t.timescale||9e4)):-1===n&&(q.logger.warn("[mp4-remuxer]: No keyframe found out of "+v+" video samples"),p=!1)),this.ISGenerated&&(b&&E&&(f=this.getVideoStartPts(t.samples),v=(Z(e.samples[0].pts,f)-f)/t.inputTimeScale,A+=Math.max(0,v),m+=Math.max(0,-v)),b?(e.samplerate||(q.logger.warn("[mp4-remuxer]: regenerate InitSegment as audio detected"),u=this.generateIS(e,t,s)),c=this.remuxAudio(e,A,this.isAudioContiguous,a,y||E||o===S.PlaylistLevelType.AUDIO?m:void 0),E&&(f=c?c.endPTS-c.startPTS:0,t.inputTimeScale||(q.logger.warn("[mp4-remuxer]: regenerate InitSegment as video detected"),u=this.generateIS(e,t,s)),l=this.remuxVideo(t,m,g,f))):E&&(l=this.remuxVideo(t,m,g,0)),l)&&(l.firstKeyFrame=n,l.independent=-1!==n)),{audio:c,video:l,initSegment:u,independent:p,text:d=this.ISGenerated&&(i.samples.length&&(h=this.remuxID3(i,s)),r.samples.length)?this.remuxText(r,s):d,id3:h}},t.generateIS=function(e,t,i){var r,s,a,n=e.samples,o=t.samples,l=this.typeSupported,c={},u=!Object(h.isFiniteNumber)(this._initPTS),d="audio/mp4";if(u&&(a=s=1/0),e.config&&n.length&&(e.timescale=e.samplerate,e.isAAC||(l.mpeg?(d="audio/mpeg",e.codec=""):l.mp3&&(e.codec="mp3")),c.audio={id:"audio",container:d,codec:e.codec,initSegment:!e.isAAC&&l.mpeg?new Uint8Array(0):G.default.initSegment([e]),metadata:{channelCount:e.channelCount}},u)&&(r=e.inputTimeScale,a=s=n[0].pts-Math.round(r*i)),t.sps&&t.pps&&o.length&&(t.timescale=t.inputTimeScale,c.video={id:"main",container:"video/mp4",codec:t.codec,initSegment:G.default.initSegment([t]),metadata:{width:t.width,height:t.height}},u)&&(r=t.inputTimeScale,d=this.getVideoStartPts(o),l=Math.round(r*i),s=Math.min(s,Z(o[0].dts,d)-l),a=Math.min(a,d-l)),Object.keys(c).length)return this.ISGenerated=!0,u&&(this._initPTS=a,this._initDTS=s),{tracks:c,initPTS:a,timescale:r}},t.remuxVideo=function(e,t,i,r){var s,a=e.inputTimeScale,n=e.samples,o=[],l=n.length,c=this._initPTS,u=this.nextAvcDts,d=8,h=Number.POSITIVE_INFINITY,p=Number.NEGATIVE_INFINITY,f=0,A=!1;i&&null!==u||(u=t*a-(n[0].pts-Z(n[0].dts,n[0].pts)));for(var m=0;m<l;m++){var g=n[m];g.pts=Z(g.pts-c,u),g.dts=Z(g.dts-c,u),g.dts>g.pts&&(f=Math.max(Math.min(f,g.pts-g.dts),-18e3)),g.dts<n[0<m?m-1:m].dts&&(A=!0)}A&&n.sort(function(e,t){var i=e.dts-t.dts,e=e.pts-t.pts;return i||e}),y=n[0].dts;var y,t=n[n.length-1].dts,v=Math.round((t-y)/(l-1));if(f<0){if(f<-2*v){q.logger.warn("PTS < DTS detected in video samples, offsetting DTS from PTS by "+Object(J.toMsFromMpegTsClock)(-v,!0)+" ms");for(var b=f,E=0;E<l;E++)n[E].dts=b=Math.max(b,n[E].pts-v),n[E].pts=Math.max(b,n[E].pts)}else{q.logger.warn("PTS < DTS detected in video samples, shifting DTS by "+Object(J.toMsFromMpegTsClock)(f,!0)+" ms to overcome this issue");for(var S=0;S<l;S++)n[S].dts=n[S].dts+f}y=n[0].dts}i&&((L=v<(i=y-u))||i<-1)&&(L?q.logger.warn("AVC: "+Object(J.toMsFromMpegTsClock)(i,!0)+" ms ("+i+"dts) hole between fragments detected, filling it"):q.logger.warn("AVC: "+Object(J.toMsFromMpegTsClock)(-i,!0)+" ms ("+i+"dts) overlapping between fragments detected"),y=u,L=n[0].pts-i,n[0].dts=y,n[0].pts=L,q.logger.log("Video: First PTS/DTS adjusted: "+Object(J.toMsFromMpegTsClock)(L,!0)+"/"+Object(J.toMsFromMpegTsClock)(y,!0)+", delta: "+Object(J.toMsFromMpegTsClock)(i,!0)+" ms")),Y&&(y=Math.max(0,y));for(var T=0,_=0,w=0;w<l;w++){for(var k=n[w],M=k.units,U=M.length,C=0,R=0;R<U;R++)C+=M[R].data.length;_+=C,T+=U,k.length=C,k.dts=Math.max(k.dts,y),k.pts=Math.max(k.pts,k.dts,0),h=Math.min(k.pts,h),p=Math.max(k.pts,p)}t=n[l-1].dts;var D,L=_+4*T+8;try{D=new Uint8Array(L)}catch(e){return void this.observer.emit(z.Events.ERROR,z.Events.ERROR,{type:K.ErrorTypes.MUX_ERROR,details:K.ErrorDetails.REMUX_ALLOC_ERROR,fatal:!1,bytes:L,reason:"fail allocating video mdat "+L})}var j=new DataView(D.buffer);j.setUint32(0,L),D.set(G.default.types.mdat,4);for(var I=0;I<l;I++){for(var B,x=n[I],N=x.units,V=0,P=0,H=N.length;P<H;P++){var F=N[P],W=F.data,F=F.data.byteLength;j.setUint32(d,F),d+=4,D.set(W,d),d+=F,V+=4+F}I<l-1?s=n[I+1].dts-x.dts:(O=this.config,B=x.dts-n[0<I?I-1:I].dts,O.stretchShortVideoTrack&&null!==this.nextAudioPts&&Math.floor(O.maxBufferHole*a)<(O=(r?h+r*a:this.nextAudioPts)-x.pts)?((s=O-B)<0&&(s=B),q.logger.log("[mp4-remuxer]: It is approximately "+O/90+" ms to the next segment; using duration "+s/90+" ms for the last video frame.")):s=B);var O=Math.round(x.pts-x.dts);o.push(new $(x.key,s,V,O))}o.length&&X&&X<70&&((i=o[0].flags).dependsOn=2,i.isNonSync=0),console.assert(void 0!==s,"mp4SampleDuration must be computed"),this.nextAvcDts=u=t+s,this.isVideoContiguous=!0;L={data1:G.default.moof(e.sequenceNumber++,y,Q({},e,{samples:o})),data2:D,startPTS:h/a,endPTS:(p+s)/a,startDTS:y/a,endDTS:u/a,type:"video",hasAudio:!1,hasVideo:!0,nb:o.length,dropped:e.dropped};return e.samples=[],e.dropped=0,console.assert(D.length,"MDAT length must not be zero"),L},t.remuxAudio=function(e,t,i,r,s){var a=e.inputTimeScale,n=a/(e.samplerate||a),o=e.isAAC?1024:1152,l=o*n,c=this._initPTS,u=!e.isAAC&&this.typeSupported.mpeg,d=[],h=e.samples,p=u?0:8,f=this.nextAudioPts||-1,A=t*a;if(this.isAudioContiguous=i=i||h.length&&0<f&&(r&&Math.abs(A-f)<9e3||Math.abs(Z(h[0].pts-c,A)-f)<20*l),h.forEach(function(e){e.pts=Z(e.pts-c,A)}),!i||f<0){if(!(h=h.filter(function(e){return 0<=e.pts})).length)return;f=0===s?0:r?Math.max(0,A):h[0].pts}if(e.isAAC)for(var m=void 0!==s,g=this.config.maxAudioFramesDrift,y=0,v=f;y<h.length;y++){var b=h[y],E=b.pts,S=E-v,T=Math.abs(1e3*S/a);if(S<=-g*l&&m)0===y&&(q.logger.warn("Audio frame @ "+(E/a).toFixed(3)+"s overlaps nextAudioPts by "+Math.round(1e3*S/a)+" ms."),this.nextAudioPts=f=v=E);else if(g*l<=S&&T<1e4&&m){var w=Math.round(S/l);(v=E-w*l)<0&&(w--,v+=l),0===y&&(this.nextAudioPts=f=v),q.logger.warn("[mp4-remuxer]: Injecting "+w+" audio frame @ "+(v/a).toFixed(3)+"s due to "+Math.round(1e3*S/a)+" ms gap.");for(var k=0;k<w;k++){var C=Math.max(v,0),R=M.default.getSilentFrame(e.manifestCodec||e.codec,e.channelCount);R||(q.logger.log("[mp4-remuxer]: Unable to get silent frame for given audio codec; duplicating last frame instead."),R=b.unit.subarray()),h.splice(y,0,{unit:R,pts:C}),v+=l,y++}}b.pts=v,v+=l}for(var D,L=null,I=null,B=0,x=h.length;x--;)B+=h[x].unit.byteLength;for(var P=0,_=h.length;P<_;P++){var F=h[P],O=F.unit,F=F.pts;if(null!==I)d[P-1].duration=Math.round((F-I)/n);else{if(L=F=i&&e.isAAC?f:F,!(0<B))return;B+=p;try{D=new Uint8Array(B)}catch(e){return void this.observer.emit(z.Events.ERROR,z.Events.ERROR,{type:K.ErrorTypes.MUX_ERROR,details:K.ErrorDetails.REMUX_ALLOC_ERROR,fatal:!1,bytes:B,reason:"fail allocating audio mdat "+B})}u||(new DataView(D.buffer).setUint32(0,B),D.set(G.default.types.mdat,4))}D.set(O,p);O=O.byteLength;p+=O,d.push(new $(!0,o,O,0)),I=F}t=d.length;if(t)return this.nextAudioPts=f=I+n*d[d.length-1].duration,r={data1:u?new Uint8Array(0):G.default.moof(e.sequenceNumber++,L/n,Q({},e,{samples:d})),data2:D,startPTS:r=L/a,endPTS:s=f/a,startDTS:r,endDTS:s,type:"audio",hasAudio:!0,hasVideo:!(e.samples=[]),nb:t},this.isAudioContiguous=!0,console.assert(D.length,"MDAT length must not be zero"),r},t.remuxEmptyAudio=function(e,t,i,r){var s=e.inputTimeScale,a=s/(e.samplerate||s),n=this.nextAudioPts,o=(null!==n?n:r.startDTS*s)+this._initDTS,n=r.endDTS*s+this._initDTS,l=1024*a,c=Math.ceil((n-o)/l),u=M.default.getSilentFrame(e.manifestCodec||e.codec,e.channelCount);if(q.logger.warn("[mp4-remuxer]: remux empty Audio"),u){for(var d=[],h=0;h<c;h++){var p=o+h*l;d.push({unit:u,pts:p,dts:p})}return e.samples=d,this.remuxAudio(e,t,i,!1)}q.logger.trace("[mp4-remuxer]: Unable to remuxEmptyAudio since we were unable to get a silent frame for given audio codec")},t.remuxID3=function(e,t){var i=e.samples.length;if(i){for(var r=e.inputTimeScale,s=this._initPTS,a=this._initDTS,n=0;n<i;n++){var o=e.samples[n];o.pts=Z(o.pts-s,t*r)/r,o.dts=Z(o.dts-a,t*r)/r}var l=e.samples;return e.samples=[],{samples:l}}},t.remuxText=function(e,t){var i=e.samples.length;if(i){for(var r=e.inputTimeScale,s=this._initPTS,a=0;a<i;a++){var n=e.samples[a];n.pts=Z(n.pts-s,t*r)/r}e.samples.sort(function(e,t){return e.pts-t.pts});var o=e.samples;return e.samples=[],{samples:o}}},a);function a(e,t,i,r){this.observer=void 0,this.config=void 0,this.typeSupported=void 0,this.ISGenerated=!1,this._initPTS=void 0,this._initDTS=void 0,this.nextAvcDts=null,this.nextAudioPts=null,this.isAudioContiguous=!1,this.isVideoContiguous=!1,this.observer=e,this.config=t,this.typeSupported=i,this.ISGenerated=!1,null===X&&(e=(navigator.userAgent||"").match(/Chrome\/(\d+)/i),X=e?parseInt(e[1]):0),null===s&&(t=navigator.userAgent.match(/Safari\/(\d+)/i),s=t?parseInt(t[1]):0),Y=!!X&&X<75||!!s&&s<600}function Z(e,t){var i;if(null!==t)for(i=t<e?-8589934592:8589934592;4294967296<Math.abs(e-t);)e+=i;return e}var $=function(e,t,i,r){this.size=void 0,this.duration=void 0,this.cts=void 0,this.flags=void 0,this.duration=t,this.size=i,this.cts=r,this.flags=new n(e)},n=function(e){this.isLeading=0,this.isDependedOn=0,this.hasRedundancy=0,this.degradPrio=0,this.dependsOn=1,this.isNonSync=1,this.dependsOn=e?2:1,this.isNonSync=e?0:1}},"./src/remux/passthrough-remuxer.ts":function(e,t,i){i.r(t);var d=i("./src/polyfills/number.ts"),h=i("./src/utils/mp4-tools.ts"),a=i("./src/loader/fragment.ts"),p=i("./src/utils/logger.ts");(i=r.prototype).destroy=function(){},i.resetTimeStamp=function(e){this.initPTS=e,this.lastEndDTS=null},i.resetNextTimestamp=function(){this.lastEndDTS=null},i.resetInitSegment=function(e,t,i){this.audioCodec=t,this.videoCodec=i,this.generateInitSegment(e),this.emitInitSegment=!0},i.generateInitSegment=function(e){var t,i,r=this.audioCodec,s=this.videoCodec;e&&e.byteLength?(t=this.initData=Object(h.parseInitSegment)(e),r=r||n(t.audio,a.ElementaryStreamTypes.AUDIO),s=s||n(t.video,a.ElementaryStreamTypes.VIDEO),i={},t.audio&&t.video?i.audiovideo={container:"video/mp4",codec:r+","+s,initSegment:e,id:"main"}:t.audio?i.audio={container:"audio/mp4",codec:r,initSegment:e,id:"audio"}:t.video?i.video={container:"video/mp4",codec:s,initSegment:e,id:"main"}:p.logger.warn("[passthrough-remuxer.ts]: initSegment does not contain moov or trak boxes."),this.initTracks=i):(this.initTracks=void 0,this.initData=void 0)},i.remux=function(e,t,i,r,s){var a,n,o,l=this.initPTS,c=this.lastEndDTS,u={audio:void 0,video:void 0,text:r,id3:i,initSegment:void 0},s=(Object(d.isFiniteNumber)(c)||(c=this.lastEndDTS=s||0),t.samples);return s&&s.length&&(t={initPTS:void 0,timescale:1},(o=this.initData)&&o.length||(this.generateInitSegment(s),o=this.initData),o&&o.length?(this.emitInitSegment&&(t.tracks=this.initTracks,this.emitInitSegment=!1),Object(d.isFiniteNumber)(l)||(this.initPTS=t.initPTS=l=f(o,s,c)),a=(n=Object(h.getDuration)(s,o))+(c=c),Object(h.offsetStartDTS)(o,s,l),0<n?this.lastEndDTS=a:(p.logger.warn("Duration parsed from mp4 should be greater than zero"),this.resetNextTimestamp()),l="",(n=!!o.audio)&&(l+="audio"),(o=!!o.video)&&(l+="video"),u.audio="audio"===(s={data1:s,startPTS:c,startDTS:c,endPTS:a,endDTS:a,type:l,hasAudio:n,hasVideo:o,nb:1,dropped:0}).type?s:void 0,u.video="audio"!==s.type?s:void 0,u.text=r,u.id3=i,u.initSegment=t):p.logger.warn("[passthrough-remuxer.ts]: Failed to generate initSegment.")),u};var f=function(e,t,i){return Object(h.getStartDTS)(e,t)-i};function r(){this.emitInitSegment=!1,this.audioCodec=void 0,this.videoCodec=void 0,this.initData=void 0,this.initPTS=void 0,this.initTracks=void 0,this.lastEndDTS=null}function n(e,t){e=null==e?void 0:e.codec;return e&&4<e.length?e:"hvc1"===e?"hvc1.1.c.L120.90":"av01"===e?"av01.0.04M.08":"avc1"===e||t===a.ElementaryStreamTypes.VIDEO?"avc1.42e01e":"mp4a.40.5"}t.default=r},"./src/task-loop.ts":function(e,t,i){i.r(t),i.d(t,"default",function(){return r});(i=s.prototype).destroy=function(){this.onHandlerDestroying(),this.onHandlerDestroyed()},i.onHandlerDestroying=function(){this.clearNextTick(),this.clearInterval()},i.onHandlerDestroyed=function(){},i.hasInterval=function(){return!!this._tickInterval},i.hasNextTick=function(){return!!this._tickTimer},i.setInterval=function(e){return!this._tickInterval&&(this._tickInterval=self.setInterval(this._boundTick,e),!0)},i.clearInterval=function(){return!!this._tickInterval&&(self.clearInterval(this._tickInterval),!(this._tickInterval=null))},i.clearNextTick=function(){return!!this._tickTimer&&(self.clearTimeout(this._tickTimer),!(this._tickTimer=null))},i.tick=function(){this._tickCallCount++,1===this._tickCallCount&&(this.doTick(),1<this._tickCallCount&&this.tickImmediate(),this._tickCallCount=0)},i.tickImmediate=function(){this.clearNextTick(),this._tickTimer=self.setTimeout(this._boundTick,0)},i.doTick=function(){};var r=s;function s(){this._boundTick=void 0,this._tickTimer=null,this._tickInterval=null,this._tickCallCount=0,this._boundTick=this.tick.bind(this)}},"./src/types/cmcd.ts":function(e,t,i){i.r(t),i.d(t,"CMCDVersion",function(){return n}),i.d(t,"CMCDObjectType",function(){return r}),i.d(t,"CMCDStreamingFormat",function(){return s}),i.d(t,"CMCDStreamType",function(){return a});var r,s,a,n=1;(i=r=r||{}).MANIFEST="m",i.AUDIO="a",i.VIDEO="v",i.MUXED="av",i.INIT="i",i.CAPTION="c",i.TIMED_TEXT="tt",i.KEY="k",i.OTHER="o",(t=s=s||{}).DASH="d",t.HLS="h",t.SMOOTH="s",t.OTHER="o",(i=a=a||{}).VOD="v",i.LIVE="l"},"./src/types/level.ts":function(e,t,i){function r(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var s;function a(e,t){var i=e.canSkipUntil,r=e.canSkipDateRanges,e=e.endSN;return i&&(void 0!==t?t-e:0)<i?r?s.v2:s.Yes:s.No}i.r(t),i.d(t,"HlsSkip",function(){return s}),i.d(t,"getSkipValue",function(){return a}),i.d(t,"HlsUrlParameters",function(){return n}),i.d(t,"Level",function(){return o}),(i=s=s||{}).No="",i.Yes="YES",i.v2="v2";c.prototype.addDirectives=function(e){e=new self.URL(e);return void 0!==this.msn&&e.searchParams.set("_HLS_msn",this.msn.toString()),void 0!==this.part&&e.searchParams.set("_HLS_part",this.part.toString()),this.skip&&e.searchParams.set("_HLS_skip",this.skip),e.toString()};var n=c,o=(r(l.prototype,[{key:"maxBitrate",get:function(){return Math.max(this.realBitrate,this.bitrate)}},{key:"uri",get:function(){return this.url[this._urlId]||""}},{key:"urlId",get:function(){return this._urlId},set:function(e){e%=this.url.length;this._urlId!==e&&(this.details=void 0,this._urlId=e)}}]),l);function l(e){this.attrs=void 0,this.audioCodec=void 0,this.bitrate=void 0,this.codecSet=void 0,this.height=void 0,this.id=void 0,this.name=void 0,this.videoCodec=void 0,this.width=void 0,this.unknownCodecs=void 0,this.audioGroupIds=void 0,this.details=void 0,this.fragmentError=0,this.loadError=0,this.loaded=void 0,this.realBitrate=0,this.textGroupIds=void 0,this.url=void 0,this._urlId=0,this.url=[e.url],this.attrs=e.attrs,this.bitrate=e.bitrate,e.details&&(this.details=e.details),this.id=e.id||0,this.name=e.name,this.width=e.width||0,this.height=e.height||0,this.audioCodec=e.audioCodec,this.videoCodec=e.videoCodec,this.unknownCodecs=e.unknownCodecs,this.codecSet=[e.videoCodec,e.audioCodec].filter(function(e){return e}).join(",").replace(/\.[^.,]+/g,"")}function c(e,t,i){this.msn=void 0,this.part=void 0,this.skip=void 0,this.msn=e,this.part=t,this.skip=i}},"./src/types/loader.ts":function(e,t,i){var r,s;i.r(t),i.d(t,"PlaylistContextType",function(){return r}),i.d(t,"PlaylistLevelType",function(){return s}),(i=r=r||{}).MANIFEST="manifest",i.LEVEL="level",i.AUDIO_TRACK="audioTrack",i.SUBTITLE_TRACK="subtitleTrack",(t=s=s||{}).MAIN="main",t.AUDIO="audio",t.SUBTITLE="subtitle"},"./src/types/transmuxer.ts":function(e,t,i){i.r(t),i.d(t,"ChunkMetadata",function(){return r});var r=function(e,t,i,r,s,a){void 0===r&&(r=0),void 0===s&&(s=-1),void 0===a&&(a=!1),this.level=void 0,this.sn=void 0,this.part=void 0,this.id=void 0,this.size=void 0,this.partial=void 0,this.transmuxing={start:0,executeStart:0,executeEnd:0,end:0},this.buffering={audio:{start:0,executeStart:0,executeEnd:0,end:0},video:{start:0,executeStart:0,executeEnd:0,end:0},audiovideo:{start:0,executeStart:0,executeEnd:0,end:0}},this.level=e,this.sn=t,this.id=i,this.size=r,this.part=s,this.partial=a}},"./src/utils/attr-list.ts":function(e,t,i){i.r(t),i.d(t,"AttrList",function(){return a});var r=/^(\d+)x(\d+)$/,s=/\s*(.+?)\s*=((?:\".*?\")|.*?)(?:,|$)/g,a=((i=n.prototype).decimalInteger=function(e){e=parseInt(this[e],10);return e>Number.MAX_SAFE_INTEGER?1/0:e},i.hexadecimalInteger=function(e){if(this[e]){for(var t=(1&(t=(this[e]||"0x").slice(2)).length?"0":"")+t,i=new Uint8Array(t.length/2),r=0;r<t.length/2;r++)i[r]=parseInt(t.slice(2*r,2*r+2),16);return i}return null},i.hexadecimalIntegerAsNumber=function(e){e=parseInt(this[e],16);return e>Number.MAX_SAFE_INTEGER?1/0:e},i.decimalFloatingPoint=function(e){return parseFloat(this[e])},i.optionalFloat=function(e,t){e=this[e];return e?parseFloat(e):t},i.enumeratedString=function(e){return this[e]},i.bool=function(e){return"YES"===this[e]},i.decimalResolution=function(e){e=r.exec(this[e]);if(null!==e)return{width:parseInt(e[1],10),height:parseInt(e[2],10)}},n.parseAttrList=function(e){var t,i={};for(s.lastIndex=0;null!==(t=s.exec(e));){var r=t[2];0===r.indexOf('"')&&r.lastIndexOf('"')===r.length-1&&(r=r.slice(1,-1)),i[t[1]]=r}return i},n);function n(e){for(var t in e="string"==typeof e?n.parseAttrList(e):e)e.hasOwnProperty(t)&&(this[t]=e[t])}},"./src/utils/binary-search.ts":function(e,t,i){i.r(t),t.default={search:function(e,t){for(var i,r,s=0,a=e.length-1;s<=a;){var n=t(r=e[i=(s+a)/2|0]);if(0<n)s=1+i;else{if(!(n<0))return r;a=i-1}}return null}}},"./src/utils/buffer-helper.ts":function(e,t,i){i.r(t),i.d(t,"BufferHelper",function(){return a});var r=i("./src/utils/logger.ts"),s={length:0,start:function(){return 0},end:function(){return 0}},a=(n.isBuffered=function(e,t){try{if(e)for(var i=n.getBuffered(e),r=0;r<i.length;r++)if(t>=i.start(r)&&t<=i.end(r))return!0}catch(e){}return!1},n.bufferInfo=function(e,t,i){try{if(e){for(var r=n.getBuffered(e),s=[],a=0;a<r.length;a++)s.push({start:r.start(a),end:r.end(a)});return this.bufferedInfo(s,t,i)}}catch(e){}return{len:0,start:t,end:t,nextStart:void 0}},n.bufferedInfo=function(e,t,i){t=Math.max(0,t),e.sort(function(e,t){return e.start-t.start||t.end-e.end});var r=[];if(i)for(var s=0;s<e.length;s++){var a,n=r.length;n&&(a=r[n-1].end,e[s].start-a<i)?e[s].end>a&&(r[n-1].end=e[s].end):r.push(e[s])}else r=e;for(var o,l=0,c=t,u=t,d=0;d<r.length;d++){var h=r[d].start,p=r[d].end;if(h<=t+i&&t<p)c=h,l=(u=p)-t;else if(t+i<h){o=h;break}}return{len:l,start:c||0,end:u||0,nextStart:o}},n.getBuffered=function(e){try{return e.buffered}catch(e){return r.logger.log("failed to get media.buffered",e),s}},n);function n(){}},"./src/utils/cea-608-parser.ts":function(e,t,i){i.r(t),i.d(t,"Row",function(){return y}),i.d(t,"CaptionScreen",function(){return v});function a(e){var t=e;return s.hasOwnProperty(e)&&(t=s[e]),String.fromCharCode(t)}function l(e){for(var t=[],i=0;i<e.length;i++)t.push(e[i].toString(16));return t}var c,r=i("./src/utils/logger.ts"),s={42:225,92:233,94:237,95:243,96:250,123:231,124:247,125:209,126:241,127:9608,128:174,129:176,130:189,131:191,132:8482,133:162,134:163,135:9834,136:224,137:32,138:232,139:226,140:234,141:238,142:244,143:251,144:193,145:201,146:211,147:218,148:220,149:252,150:8216,151:161,152:42,153:8217,154:9473,155:169,156:8480,157:8226,158:8220,159:8221,160:192,161:194,162:199,163:200,164:202,165:203,166:235,167:206,168:207,169:239,170:212,171:217,172:249,173:219,174:171,175:187,176:195,177:227,178:205,179:204,180:236,181:210,182:242,183:213,184:245,185:123,186:125,187:92,188:94,189:95,190:124,191:8764,192:196,193:228,194:214,195:246,196:223,197:165,198:164,199:9475,200:197,201:229,202:216,203:248,204:9487,205:9491,206:9495,207:9499},u=15,n=100,o={17:1,18:3,21:5,22:7,23:9,16:11,19:12,20:14},d={17:2,18:4,21:6,22:8,23:10,19:13,20:15},h={25:1,26:3,29:5,30:7,31:9,24:11,27:12,28:14},p={25:2,26:4,29:6,30:8,31:10,27:13,28:15},f=["white","green","blue","cyan","red","yellow","magenta","black","transparent"],A=((i=c=c||{})[i.ERROR=0]="ERROR",i[i.TEXT=1]="TEXT",i[i.WARNING=2]="WARNING",i[i.INFO=2]="INFO",i[i.DEBUG=3]="DEBUG",i[i.DATA=3]="DATA",R.prototype.log=function(e,t){this.verboseLevel>=e&&r.logger.log(this.time+" ["+e+"] "+t)},R),m=((i=C.prototype).reset=function(){this.foreground="white",this.underline=!1,this.italics=!1,this.background="black",this.flash=!1},i.setStyles=function(e){for(var t=["foreground","underline","italics","background","flash"],i=0;i<t.length;i++){var r=t[i];e.hasOwnProperty(r)&&(this[r]=e[r])}},i.isDefault=function(){return"white"===this.foreground&&!this.underline&&!this.italics&&"black"===this.background&&!this.flash},i.equals=function(e){return this.foreground===e.foreground&&this.underline===e.underline&&this.italics===e.italics&&this.background===e.background&&this.flash===e.flash},i.copy=function(e){this.foreground=e.foreground,this.underline=e.underline,this.italics=e.italics,this.background=e.background,this.flash=e.flash},i.toString=function(){return"color="+this.foreground+", underline="+this.underline+", italics="+this.italics+", background="+this.background+", flash="+this.flash},C),g=((i=k.prototype).reset=function(){this.uchar=" ",this.penState.reset()},i.setChar=function(e,t){this.uchar=e,this.penState.copy(t)},i.setPenState=function(e){this.penState.copy(e)},i.equals=function(e){return this.uchar===e.uchar&&this.penState.equals(e.penState)},i.copy=function(e){this.uchar=e.uchar,this.penState.copy(e.penState)},i.isEmpty=function(){return" "===this.uchar&&this.penState.isDefault()},k),y=((i=w.prototype).equals=function(e){for(var t=!0,i=0;i<n;i++)if(!this.chars[i].equals(e.chars[i])){t=!1;break}return t},i.copy=function(e){for(var t=0;t<n;t++)this.chars[t].copy(e.chars[t])},i.isEmpty=function(){for(var e=!0,t=0;t<n;t++)if(!this.chars[t].isEmpty()){e=!1;break}return e},i.setCursor=function(e){this.pos!==e&&(this.pos=e),this.pos<0?(this.logger.log(c.DEBUG,"Negative cursor position "+this.pos),this.pos=0):this.pos>n&&(this.logger.log(c.DEBUG,"Too large cursor position "+this.pos),this.pos=n)},i.moveCursor=function(e){var t=this.pos+e;if(1<e)for(var i=this.pos+1;i<t+1;i++)this.chars[i].setPenState(this.currPenState);this.setCursor(t)},i.backSpace=function(){this.moveCursor(-1),this.chars[this.pos].setChar(" ",this.currPenState)},i.insertChar=function(e){144<=e&&this.backSpace();var t=a(e);this.pos>=n?this.logger.log(c.ERROR,"Cannot insert "+e.toString(16)+" ("+t+") at position "+this.pos+". Skipping it!"):(this.chars[this.pos].setChar(t,this.currPenState),this.moveCursor(1))},i.clearFromPos=function(e){for(var t=e;t<n;t++)this.chars[t].reset()},i.clear=function(){this.clearFromPos(0),this.pos=0,this.currPenState.reset()},i.clearToEndOfRow=function(){this.clearFromPos(this.pos)},i.getTextString=function(){for(var e=[],t=!0,i=0;i<n;i++){var r=this.chars[i].uchar;" "!==r&&(t=!1),e.push(r)}return t?"":e.join("")},i.setPenStyles=function(e){this.currPenState.setStyles(e),this.chars[this.pos].setPenState(this.currPenState)},w),v=((i=T.prototype).reset=function(){for(var e=0;e<u;e++)this.rows[e].clear();this.currRow=14},i.equals=function(e){for(var t=!0,i=0;i<u;i++)if(!this.rows[i].equals(e.rows[i])){t=!1;break}return t},i.copy=function(e){for(var t=0;t<u;t++)this.rows[t].copy(e.rows[t])},i.isEmpty=function(){for(var e=!0,t=0;t<u;t++)if(!this.rows[t].isEmpty()){e=!1;break}return e},i.backSpace=function(){this.rows[this.currRow].backSpace()},i.clearToEndOfRow=function(){this.rows[this.currRow].clearToEndOfRow()},i.insertChar=function(e){this.rows[this.currRow].insertChar(e)},i.setPen=function(e){this.rows[this.currRow].setPenStyles(e)},i.moveCursor=function(e){this.rows[this.currRow].moveCursor(e)},i.setCursor=function(e){this.logger.log(c.INFO,"setCursor: "+e),this.rows[this.currRow].setCursor(e)},i.setPAC=function(e){this.logger.log(c.INFO,"pacData = "+JSON.stringify(e));var t=e.row-1;if(this.nrRollUpRows&&t<this.nrRollUpRows-1&&(t=this.nrRollUpRows-1),this.nrRollUpRows&&this.currRow!==t){for(var i=0;i<u;i++)this.rows[i].clear();var r=this.currRow+1-this.nrRollUpRows,s=this.lastOutputScreen;if(s){var a=s.rows[r].cueStartTime,n=this.logger.time;if(a&&null!==n&&a<n)for(var o=0;o<this.nrRollUpRows;o++)this.rows[t-this.nrRollUpRows+o+1].copy(s.rows[r+o])}}this.currRow=t;a=this.rows[this.currRow],null!==e.indent&&(n=e.indent,n=Math.max(n-1,0),a.setCursor(e.indent),e.color=a.chars[n].penState.foreground),a={foreground:e.color,underline:e.underline,italics:e.italics,background:"black",flash:!1};this.setPen(a)},i.setBkgData=function(e){this.logger.log(c.INFO,"bkgData = "+JSON.stringify(e)),this.backSpace(),this.setPen(e),this.insertChar(32)},i.setRollUpRows=function(e){this.nrRollUpRows=e},i.rollUp=function(){var e;null!==this.nrRollUpRows?(this.logger.log(c.TEXT,this.getDisplayText()),e=this.currRow+1-this.nrRollUpRows,(e=this.rows.splice(e,1)[0]).clear(),this.rows.splice(this.currRow,0,e),this.logger.log(c.INFO,"Rolling up")):this.logger.log(c.DEBUG,"roll_up but nrRollUpRows not set yet")},i.getDisplayText=function(e){e=e||!1;for(var t=[],i="",r=0;r<u;r++){var s=this.rows[r].getTextString();s&&t.push(e?"Row "+(r+1)+": '"+s+"'":s.trim())}return i=0<t.length?e?"["+t.join(" | ")+"]":t.join("\n"):i},i.getTextAndFormat=function(){return this.rows},T),b=((i=S.prototype).reset=function(){this.mode=null,this.displayedMemory.reset(),this.nonDisplayedMemory.reset(),this.lastOutputScreen.reset(),this.outputFilter.reset(),this.currRollUpRow=this.displayedMemory.rows[14],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null},i.getHandler=function(){return this.outputFilter},i.setHandler=function(e){this.outputFilter=e},i.setPAC=function(e){this.writeScreen.setPAC(e)},i.setBkgData=function(e){this.writeScreen.setBkgData(e)},i.setMode=function(e){e!==this.mode&&(this.mode=e,this.logger.log(c.INFO,"MODE="+e),"MODE_POP-ON"===this.mode?this.writeScreen=this.nonDisplayedMemory:(this.writeScreen=this.displayedMemory,this.writeScreen.reset()),"MODE_ROLL-UP"!==this.mode&&(this.displayedMemory.nrRollUpRows=null,this.nonDisplayedMemory.nrRollUpRows=null),this.mode=e)},i.insertChars=function(e){for(var t=0;t<e.length;t++)this.writeScreen.insertChar(e[t]);var i=this.writeScreen===this.displayedMemory?"DISP":"NON_DISP";this.logger.log(c.INFO,i+": "+this.writeScreen.getDisplayText(!0)),"MODE_PAINT-ON"!==this.mode&&"MODE_ROLL-UP"!==this.mode||(this.logger.log(c.TEXT,"DISPLAYED: "+this.displayedMemory.getDisplayText(!0)),this.outputDataUpdate())},i.ccRCL=function(){this.logger.log(c.INFO,"RCL - Resume Caption Loading"),this.setMode("MODE_POP-ON")},i.ccBS=function(){this.logger.log(c.INFO,"BS - BackSpace"),"MODE_TEXT"!==this.mode&&(this.writeScreen.backSpace(),this.writeScreen===this.displayedMemory)&&this.outputDataUpdate()},i.ccAOF=function(){},i.ccAON=function(){},i.ccDER=function(){this.logger.log(c.INFO,"DER- Delete to End of Row"),this.writeScreen.clearToEndOfRow(),this.outputDataUpdate()},i.ccRU=function(e){this.logger.log(c.INFO,"RU("+e+") - Roll Up"),this.writeScreen=this.displayedMemory,this.setMode("MODE_ROLL-UP"),this.writeScreen.setRollUpRows(e)},i.ccFON=function(){this.logger.log(c.INFO,"FON - Flash On"),this.writeScreen.setPen({flash:!0})},i.ccRDC=function(){this.logger.log(c.INFO,"RDC - Resume Direct Captioning"),this.setMode("MODE_PAINT-ON")},i.ccTR=function(){this.logger.log(c.INFO,"TR"),this.setMode("MODE_TEXT")},i.ccRTD=function(){this.logger.log(c.INFO,"RTD"),this.setMode("MODE_TEXT")},i.ccEDM=function(){this.logger.log(c.INFO,"EDM - Erase Displayed Memory"),this.displayedMemory.reset(),this.outputDataUpdate(!0)},i.ccCR=function(){this.logger.log(c.INFO,"CR - Carriage Return"),this.writeScreen.rollUp(),this.outputDataUpdate(!0)},i.ccENM=function(){this.logger.log(c.INFO,"ENM - Erase Non-displayed Memory"),this.nonDisplayedMemory.reset()},i.ccEOC=function(){var e;this.logger.log(c.INFO,"EOC - End Of Caption"),"MODE_POP-ON"===this.mode&&(e=this.displayedMemory,this.displayedMemory=this.nonDisplayedMemory,this.nonDisplayedMemory=e,this.writeScreen=this.nonDisplayedMemory,this.logger.log(c.TEXT,"DISP: "+this.displayedMemory.getDisplayText())),this.outputDataUpdate(!0)},i.ccTO=function(e){this.logger.log(c.INFO,"TO("+e+") - Tab Offset"),this.writeScreen.moveCursor(e)},i.ccMIDROW=function(e){var t={flash:!1};t.underline=e%2==1,t.italics=46<=e,t.italics?t.foreground="white":(e=Math.floor(e/2)-16,t.foreground=["white","green","blue","cyan","red","yellow","magenta"][e]),this.logger.log(c.INFO,"MIDROW: "+JSON.stringify(t)),this.writeScreen.setPen(t)},i.outputDataUpdate=function(e){void 0===e&&(e=!1);var t=this.logger.time;null!==t&&this.outputFilter&&(null!==this.cueStartTime||this.displayedMemory.isEmpty()?this.displayedMemory.equals(this.lastOutputScreen)||(this.outputFilter.newCue(this.cueStartTime,t,this.lastOutputScreen),e&&this.outputFilter.dispatchCue&&this.outputFilter.dispatchCue(),this.cueStartTime=this.displayedMemory.isEmpty()?null:t):this.cueStartTime=t,this.lastOutputScreen.copy(this.displayedMemory))},i.cueSplitAtTime=function(e){!this.outputFilter||this.displayedMemory.isEmpty()||(this.outputFilter.newCue&&this.outputFilter.newCue(this.cueStartTime,e,this.displayedMemory),this.cueStartTime=e)},S);function E(e,t,i){this.channels=void 0,this.currentChannel=0,this.cmdHistory=void 0,this.logger=void 0;var r=new A;this.channels=[null,new b(e,t,r),new b(e+1,i,r)],this.cmdHistory={a:null,b:null},this.logger=r}function S(e,t,i){this.chNr=void 0,this.outputFilter=void 0,this.mode=void 0,this.verbose=void 0,this.displayedMemory=void 0,this.nonDisplayedMemory=void 0,this.lastOutputScreen=void 0,this.currRollUpRow=void 0,this.writeScreen=void 0,this.cueStartTime=void 0,this.logger=void 0,this.chNr=e,this.outputFilter=t,this.mode=null,this.verbose=0,this.displayedMemory=new v(i),this.nonDisplayedMemory=new v(i),this.lastOutputScreen=new v(i),this.currRollUpRow=this.displayedMemory.rows[14],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null,this.logger=i}function T(e){this.rows=void 0,this.currRow=void 0,this.nrRollUpRows=void 0,this.lastOutputScreen=void 0,this.logger=void 0,this.rows=[];for(var t=0;t<u;t++)this.rows.push(new y(e));this.logger=e,this.currRow=14,this.nrRollUpRows=null,this.lastOutputScreen=null,this.reset()}function w(e){this.chars=void 0,this.pos=void 0,this.currPenState=void 0,this.cueStartTime=void 0,this.logger=void 0,this.chars=[];for(var t=0;t<n;t++)this.chars.push(new g);this.logger=e,this.pos=0,this.currPenState=new m}function k(e,t,i,r,s,a){this.uchar=void 0,this.penState=void 0,this.uchar=e||" ",this.penState=new m(t,i,r,s,a)}function C(e,t,i,r,s){this.foreground=void 0,this.underline=void 0,this.italics=void 0,this.background=void 0,this.flash=void 0,this.foreground=e||"white",this.underline=t||!1,this.italics=i||!1,this.background=r||"black",this.flash=s||!1}function R(){this.time=null,this.verboseLevel=c.ERROR}function D(e,t,i){i.a=e,i.b=t}function L(e,t,i){return i.a===e&&i.b===t}(i=E.prototype).getHandler=function(e){return this.channels[e].getHandler()},i.setHandler=function(e,t){this.channels[e].setHandler(t)},i.addData=function(e,t){var i,r=!1;this.logger.time=e;for(var s=0;s<t.length;s+=2){var a,n=127&t[s],o=127&t[s+1];0==n&&0==o||(this.logger.log(c.DATA,"["+l([t[s],t[s+1]])+"] -> ("+l([n,o])+")"),!(i=(i=(i=(i=this.parseCmd(n,o))||this.parseMidrow(n,o))||this.parsePAC(n,o))||this.parseBackgroundAttributes(n,o))&&(r=this.parseChars(n,o))&&((a=this.currentChannel)&&0<a?this.channels[a].insertChars(r):this.logger.log(c.WARNING,"No channel found yet. TEXT-MODE?")),i)||r||this.logger.log(c.WARNING,"Couldn't parse cleaned data "+l([n,o])+" orig: "+l([t[s],t[s+1]]))}},i.parseCmd=function(e,t){var i,r,s=this.cmdHistory;return((20===e||28===e||21===e||29===e)&&32<=t&&t<=47||(23===e||31===e)&&33<=t&&t<=35)&&(L(e,t,s)?(D(null,null,s),this.logger.log(c.DEBUG,"Repeated command ("+l([e,t])+") is dropped")):(r=this.channels[i=20===e||21===e||23===e?1:2],20===e||21===e||28===e||29===e?32===t?r.ccRCL():33===t?r.ccBS():34===t?r.ccAOF():35===t?r.ccAON():36===t?r.ccDER():37===t?r.ccRU(2):38===t?r.ccRU(3):39===t?r.ccRU(4):40===t?r.ccFON():41===t?r.ccRDC():42===t?r.ccTR():43===t?r.ccRTD():44===t?r.ccEDM():45===t?r.ccCR():46===t?r.ccENM():47===t&&r.ccEOC():r.ccTO(t-32),D(e,t,s),this.currentChannel=i),!0)},i.parseMidrow=function(e,t){var i;return(17===e||25===e)&&32<=t&&t<=47&&((i=17===e?1:2)!==this.currentChannel?(this.logger.log(c.ERROR,"Mismatch channel in midrow parsing"),!1):!!(i=this.channels[i])&&(i.ccMIDROW(t),this.logger.log(c.DEBUG,"MIDROW ("+l([e,t])+")"),!0))},i.parsePAC=function(e,t){var i,r,s=this.cmdHistory;return((17<=e&&e<=23||25<=e&&e<=31)&&64<=t&&t<=127||(16===e||24===e)&&64<=t&&t<=95)&&(L(e,t,s)?(D(null,null,s),!0):!!(r=this.channels[i=e<=23?1:2])&&(r.setPAC(this.interpretPAC((64<=t&&t<=95?1==i?o:h:1==i?d:p)[e],t)),D(e,t,s),this.currentChannel=i,!0))},i.interpretPAC=function(e,t){e={color:null,italics:!1,indent:null,underline:!1,row:e},t=95<t?t-96:t-64;return e.underline=1==(1&t),t<=13?e.color=["white","green","blue","cyan","red","yellow","magenta","white"][Math.floor(t/2)]:t<=15?(e.italics=!0,e.color="white"):e.indent=4*Math.floor((t-16)/2),e},i.parseChars=function(e,t){var i,r=null,s=null;return 17<=(s=25<=e?(i=2,e-8):(i=1,e))&&s<=19?(this.logger.log(c.INFO,"Special char '"+a(s=17===s?t+80:18===s?t+112:t+144)+"' in channel "+i),r=[s]):32<=e&&e<=127&&(r=0===t?[e]:[e,t]),r&&(i=l(r),this.logger.log(c.DEBUG,"Char codes = "+i.join(",")),D(e,t,this.cmdHistory)),r},i.parseBackgroundAttributes=function(e,t){var i,r;return((16===e||24===e)&&32<=t&&t<=47||(23===e||31===e)&&45<=t&&t<=47)&&(r={},16===e||24===e?(i=Math.floor((t-32)/2),r.background=f[i],t%2==1&&(r.background=r.background+"_semi")):45===t?r.background="transparent":(r.foreground="black",47===t&&(r.underline=!0)),this.channels[e<=23?1:2].setBkgData(r),D(e,t,this.cmdHistory),!0)},i.reset=function(){for(var e=0;e<Object.keys(this.channels).length;e++){var t=this.channels[e];t&&t.reset()}this.cmdHistory={a:null,b:null}},i.cueSplitAtTime=function(e){for(var t=0;t<this.channels.length;t++){var i=this.channels[t];i&&i.cueSplitAtTime(e)}},t.default=E},"./src/utils/codecs.ts":function(e,t,i){i.r(t),i.d(t,"isCodecType",function(){return s}),i.d(t,"isCodecSupportedInMp4",function(){return a});var r={audio:{a3ds:!0,"ac-3":!0,"ac-4":!0,alac:!0,alaw:!0,dra1:!0,"dts+":!0,"dts-":!0,dtsc:!0,dtse:!0,dtsh:!0,"ec-3":!0,enca:!0,g719:!0,g726:!0,m4ae:!0,mha1:!0,mha2:!0,mhm1:!0,mhm2:!0,mlpa:!0,mp4a:!0,"raw ":!0,Opus:!0,samr:!0,sawb:!0,sawp:!0,sevc:!0,sqcp:!0,ssmv:!0,twos:!0,ulaw:!0},video:{avc1:!0,avc2:!0,avc3:!0,avc4:!0,avcp:!0,av01:!0,drac:!0,dvav:!0,dvhe:!0,encv:!0,hev1:!0,hvc1:!0,mjp2:!0,mp4v:!0,mvc1:!0,mvc2:!0,mvc3:!0,mvc4:!0,resv:!0,rv60:!0,s263:!0,svc1:!0,svc2:!0,"vc-1":!0,vp08:!0,vp09:!0},text:{stpp:!0,wvtt:!0}};function s(e,t){t=r[t];return!!t&&!0===t[e.slice(0,4)]}function a(e,t){return MediaSource.isTypeSupported((t||"video")+'/mp4;codecs="'+e+'"')}},"./src/utils/cues.ts":function(e,t,i){i.r(t);var f=i("./src/utils/vttparser.ts"),A=i("./src/utils/webvtt-parser.ts"),m=i("./src/utils/texttrack-utils.ts"),g=/\s/;t.default={newCue:function(t,e,i,r){for(var s,a,n,o,l=[],c=self.VTTCue||self.TextTrackCue,u=0;u<r.rows.length;u++)if(a=!0,n=0,o="",!(s=r.rows[u]).isEmpty()){for(var d=0;d<s.chars.length;d++)g.test(s.chars[d].uchar)&&a?n++:(o+=s.chars[d].uchar,a=!1);(s.cueStartTime=e)===i&&(i+=1e-4),16<=n?n--:n++;var h=Object(f.fixLineBreaks)(o.trim()),p=Object(A.generateCueId)(e,i,h);t&&t.cues&&t.cues.getCueById(p)||((h=new c(e,i,h)).id=p,h.line=u+1,h.align="left",h.position=10+Math.min(80,10*Math.floor(8*n/32)),l.push(h))}return t&&l.length&&(l.sort(function(e,t){return"auto"===e.line||"auto"===t.line?0:8<e.line&&8<t.line?t.line-e.line:e.line-t.line}),l.forEach(function(e){return Object(m.addCueToTrack)(t,e)})),l}}},"./src/utils/discontinuities.ts":function(e,t,i){i.r(t),i.d(t,"findFirstFragWithCC",function(){return r}),i.d(t,"shouldAlignOnDiscontinuities",function(){return o}),i.d(t,"findDiscontinuousReferenceFrag",function(){return l}),i.d(t,"adjustSlidingStart",function(){return u}),i.d(t,"alignStream",function(){return d}),i.d(t,"alignPDT",function(){return h}),i.d(t,"alignFragmentByPDTDelta",function(){return p}),i.d(t,"alignMediaPlaylistByPDT",function(){return f});var s=i("./src/polyfills/number.ts"),a=i("./src/utils/logger.ts"),n=i("./src/controller/level-helper.ts");function r(e,t){for(var i=null,r=0,s=e.length;r<s;r++){var a=e[r];if(a&&a.cc===t){i=a;break}}return i}function o(e,t,i){return!(!t.details||!(i.endCC>i.startCC||e&&e.cc<i.startCC))}function l(e,t){e=e.fragments,t=t.fragments;if(t.length&&e.length){e=r(e,t[0].cc);if(e&&(!e||e.startPTS))return e;a.logger.log("No frag in previous level to align on")}else a.logger.log("No fragments to align")}function c(e,t){e&&(t=e.start+t,e.start=e.startPTS=t,e.endPTS=t+e.duration)}function u(e,t){for(var i=t.fragments,r=0,s=i.length;r<s;r++)c(i[r],e);t.fragmentHint&&c(t.fragmentHint,e),t.alignedSliding=!0}function d(e,t,i){var r;t&&(o(e,t,e=i)&&(r=l(t.details,e))&&Object(s.isFiniteNumber)(r.start)&&(a.logger.log("Adjusting PTS using last level due to CC increase within current level "+e.url),u(r.start,e)),!i.alignedSliding&&t.details&&h(i,t.details),i.alignedSliding||!t.details||i.skippedSegments||Object(n.adjustSliding)(t.details,i))}function h(e,t){var i,r;t.fragments.length&&e.hasProgramDateTime&&t.hasProgramDateTime&&(i=t.fragments[0].programDateTime,t=((r=e.fragments[0].programDateTime)-i)/1e3+t.fragments[0].start)&&Object(s.isFiniteNumber)(t)&&(a.logger.log("Adjusting PTS using programDateTime delta "+(r-i)+"ms, sliding:"+t.toFixed(3)+" "+e.url+" "),u(t,e))}function p(e,t){var i=e.programDateTime;i&&(e.start=e.startPTS=i=(i-t)/1e3,e.endPTS=i+e.duration)}function f(e,t){var i;t.fragments.length&&e.hasProgramDateTime&&t.hasProgramDateTime&&(i=t.fragments[0].programDateTime-1e3*t.fragments[0].start,e.fragments.forEach(function(e){p(e,i)}),e.fragmentHint&&p(e.fragmentHint,i),e.alignedSliding=!0)}},"./src/utils/ewma-bandwidth-estimator.ts":function(e,t,i){i.r(t);var s=i("./src/utils/ewma.ts");function r(e,t,i){this.defaultEstimate_=void 0,this.minWeight_=void 0,this.minDelayMs_=void 0,this.slow_=void 0,this.fast_=void 0,this.defaultEstimate_=i,this.minWeight_=.001,this.minDelayMs_=50,this.slow_=new s.default(e),this.fast_=new s.default(t)}(i=r.prototype).update=function(e,t){var i=this.slow_,r=this.fast_;this.slow_.halfLife!==e&&(this.slow_=new s.default(e,i.getEstimate(),i.getTotalWeight())),this.fast_.halfLife!==t&&(this.fast_=new s.default(t,r.getEstimate(),r.getTotalWeight()))},i.sample=function(e,t){e=(e=Math.max(e,this.minDelayMs_))/1e3,t=8*t/e;this.fast_.sample(e,t),this.slow_.sample(e,t)},i.canEstimate=function(){var e=this.fast_;return e&&e.getTotalWeight()>=this.minWeight_},i.getEstimate=function(){return this.canEstimate()?Math.min(this.fast_.getEstimate(),this.slow_.getEstimate()):this.defaultEstimate_},i.destroy=function(){},t.default=r},"./src/utils/ewma.ts":function(e,t,i){function r(e,t,i){void 0===t&&(t=0),void 0===i&&(i=0),this.halfLife=void 0,this.alpha_=void 0,this.estimate_=void 0,this.totalWeight_=void 0,this.halfLife=e,this.alpha_=e?Math.exp(Math.log(.5)/e):0,this.estimate_=t,this.totalWeight_=i}i.r(t),(i=r.prototype).sample=function(e,t){var i=Math.pow(this.alpha_,e);this.estimate_=t*(1-i)+i*this.estimate_,this.totalWeight_+=e},i.getTotalWeight=function(){return this.totalWeight_},i.getEstimate=function(){if(this.alpha_){var e=1-Math.pow(this.alpha_,this.totalWeight_);if(e)return this.estimate_/e}return this.estimate_},t.default=r},"./src/utils/fetch-loader.ts":function(e,t,i){i.r(t),i.d(t,"fetchSupported",function(){return l});var d=i("./src/polyfills/number.ts"),r=i("./src/loader/load-stats.ts"),c=i("./src/demux/chunk-cache.ts");function s(e){var i="function"==typeof Map?new Map:void 0;return(s=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==i){if(i.has(e))return i.get(e);i.set(e,t)}function t(){return a(e,arguments,o(this).constructor)}return t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),n(t,e)})(e)}function a(e,t,i){return(a=function(){if("undefined"==typeof Reflect||!Reflect.construct)return;if(Reflect.construct.sham)return;if("function"==typeof Proxy)return 1;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),1}catch(e){}}()?Reflect.construct:function(e,t,i){var r=[null],t=(r.push.apply(r,t),new(Function.bind.apply(e,r)));return i&&n(t,i.prototype),t}).apply(null,arguments)}function n(e,t){return(n=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function o(e){return(o=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function h(){return(h=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i,r=arguments[t];for(i in r)Object.prototype.hasOwnProperty.call(r,i)&&(e[i]=r[i])}return e}).apply(this,arguments)}function l(){if(self.fetch&&self.AbortController&&self.ReadableStream&&self.Request)try{return new self.ReadableStream({}),!0}catch(e){}return!1}(i=u.prototype).destroy=function(){this.loader=this.callbacks=null,this.abortInternal()},i.abortInternal=function(){var e=this.response;e&&e.ok||(this.stats.aborted=!0,this.controller.abort())},i.abort=function(){var e;this.abortInternal(),null!=(e=this.callbacks)&&e.onAbort&&this.callbacks.onAbort(this.stats,this.context,this.response)},i.load=function(r,s,a){var n=this,o=this.stats;if(o.loading.start)throw new Error("Loader can only be used once.");o.loading.start=self.performance.now();var e=function(e,t){t={method:"GET",mode:"cors",credentials:"same-origin",signal:t,headers:new self.Headers(h({},e.headers))};return e.rangeEnd&&t.headers.set("Range","bytes="+e.rangeStart+"-"+String(e.rangeEnd-1)),t}(r,this.controller.signal),l=a.onProgress,c="arraybuffer"===r.responseType,u=c?"byteLength":"length";this.context=r,this.config=s,this.callbacks=a,this.request=this.fetchSetup(r,e),self.clearTimeout(this.requestTimeout),this.requestTimeout=self.setTimeout(function(){n.abortInternal(),a.onTimeout(o,r,n.response)},s.timeout),self.fetch(this.request).then(function(e){var t,i;if((n.response=n.loader=e).ok)return o.loading.first=Math.max(self.performance.now(),o.loading.start),o.total=parseInt(e.headers.get("Content-Length")||"0"),l&&Object(d.isFiniteNumber)(s.highWaterMark)?n.loadProgressively(e,o,r,s.highWaterMark,l):c?e.arrayBuffer():e.text();throw t=e.status,i=e.statusText,new g(i||"fetch, bad network response",t,e)}).then(function(e){var t=n.response,i=(self.clearTimeout(n.requestTimeout),o.loading.end=Math.max(self.performance.now(),o.loading.first),o.loaded=o.total=e[u],{url:t.url,data:e});l&&!Object(d.isFiniteNumber)(s.highWaterMark)&&l(o,r,e,t),a.onSuccess(i,o,r,t)}).catch(function(e){var t;self.clearTimeout(n.requestTimeout),o.aborted||(t=e.code||0,a.onError({code:t,text:e.message},r,e.details))})},i.getCacheAge=function(){var e,t=null;return t=this.response?(e=this.response.headers.get("age"))?parseFloat(e):null:t},i.loadProgressively=function(r,s,a,n,o){void 0===n&&(n=0);var l=new c.default,e=r.body.getReader();return function i(){return e.read().then(function(e){var t;return e.done?(l.dataLength&&o(s,a,l.flush(),r),Promise.resolve(new ArrayBuffer(0))):(t=(e=e.value).length,s.loaded+=t,t<n||l.dataLength?(l.push(e),l.dataLength>=n&&o(s,a,l.flush(),r)):o(s,a,e,r),i())}).catch(function(){return Promise.reject()})}()};i=u;function u(e){this.fetchSetup=void 0,this.requestTimeout=void 0,this.request=void 0,this.response=void 0,this.controller=void 0,this.context=void 0,this.config=null,this.callbacks=null,this.stats=void 0,this.loader=null,this.fetchSetup=e.fetchSetup||p,this.controller=new self.AbortController,this.stats=new r.LoadStats}function p(e,t){return new self.Request(e.url,t)}f=s(Error),m=f,(A=y).prototype=Object.create(m.prototype),n(A.prototype.constructor=A,m);var f,A,m,g=y;function y(e,t,i){return(e=f.call(this,e)||this).code=void 0,e.details=void 0,e.code=t,e.details=i,e}t.default=i},"./src/utils/imsc1-ttml-parser.ts":function(e,t,i){i.r(t),i.d(t,"IMSC1_CODEC",function(){return r}),i.d(t,"parseIMSC1",function(){return s});var n=i("./src/utils/mp4-tools.ts"),o=i("./src/utils/vttparser.ts"),p=i("./src/utils/vttcue.ts"),l=i("./src/demux/id3.ts"),c=i("./src/utils/timescale-conversion.ts"),f=i("./src/utils/webvtt-parser.ts");function A(){return(A=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i,r=arguments[t];for(i in r)Object.prototype.hasOwnProperty.call(r,i)&&(e[i]=r[i])}return e}).apply(this,arguments)}var r="stpp.ttml.im1t",u=/^(\d{2,}):(\d{2}):(\d{2}):(\d{2})\.?(\d+)?$/,d=/^(\d*(?:\.\d*)?)(h|m|s|ms|f|t)$/,m={left:"start",center:"center",right:"end",start:"start",end:"end"};function s(e,t,i,r,s){var a=Object(n.findBox)(new Uint8Array(e),["mdat"]);if(0!==a.length){a=a[0],a=Object(l.utf8ArrayToStr)(new Uint8Array(e,a.start,a.end-a.start)),t=Object(c.toTimescaleFromScale)(t,1,i);try{r(function(e,l){var i,c,u,d,h,r=(new DOMParser).parseFromString(e,"text/xml").getElementsByTagName("tt")[0];if(r)return i={frameRate:30,subFrameRate:1,frameRateMultiplier:0,tickRate:0},c=Object.keys(i).reduce(function(e,t){return e[t]=r.getAttribute("ttp:"+t)||i[t],e},{}),u="preserve"!==r.getAttribute("xml:space"),d=y(g(r,"styling","style")),h=y(g(r,"layout","region")),e=g(r,"body","[begin]"),[].map.call(e,function(e){var t=function r(e,s){return[].slice.call(e.childNodes).reduce(function(e,t,i){return"br"===t.nodeName&&i?e+"\n":null!=(i=t.childNodes)&&i.length?r(t,s):s?e+t.textContent.trim().replace(/\s+/g," "):e+t.textContent},"")}(e,u);if(!t||!e.hasAttribute("begin"))return null;var i=E(e.getAttribute("begin"),c),r=E(e.getAttribute("dur"),c),s=E(e.getAttribute("end"),c);if(null===i)throw b(e);if(null===s){if(null===r)throw b(e);s=i+r}var a,n,o,r=new p.default(i-l,s-l,t),i=(r.id=Object(f.generateCueId)(r.startTime,r.endTime,r.text),h[e.getAttribute("region")]),s=d[e.getAttribute("style")],t=(r.position=10,r.size=80,a=i,n=s,o="http://www.w3.org/ns/ttml#styling",["displayAlign","textAlign","color","backgroundColor","fontSize","fontFamily"].reduce(function(e,t){var i=v(n,o,t)||v(a,o,t);return i&&(e[t]=i),e},{})),e=t.textAlign;return e&&((i=m[e])&&(r.lineAlign=i),r.align=e),A(r,t),r}).filter(function(e){return null!==e});throw new Error("Invalid ttml")}(a,t))}catch(e){s(e)}}else s(new Error("Could not parse IMSC1 mdat"))}function g(e,t,i){e=e.getElementsByTagName(t)[0];return e?[].slice.call(e.querySelectorAll(i)):[]}function y(e){return e.reduce(function(e,t){var i=t.getAttribute("xml:id");return i&&(e[i]=t),e},{})}function v(e,t,i){return e.hasAttributeNS(t,i)?e.getAttributeNS(t,i):null}function b(e){return new Error("Could not parse ttml timestamp "+e)}function E(r,e){var t,i,s,a;return r?(null===(t=Object(o.parseTimeStamp)(r))&&(u.test(r)?(i=e,s=u.exec(r),a=(0|s[4])+(0|s[5])/i.subFrameRate,t=3600*(0|s[1])+60*(0|s[2])+(0|s[3])+a/i.frameRate):d.test(r)&&(t=function(e){var t=d.exec(r),i=Number(t[1]);switch(t[2]){case"h":return 3600*i;case"m":return 60*i;case"ms":return 1e3*i;case"f":return i/e.frameRate;case"t":return i/e.tickRate}return i}(e))),t):null}},"./src/utils/logger.ts":function(e,t,i){i.r(t),i.d(t,"enableLogs",function(){return n}),i.d(t,"logger",function(){return o});function s(){}var r={trace:s,debug:s,log:s,warn:s,info:s,error:s},a=r;function n(e){if(self.console&&!0===e||"object"==typeof e){!function(i){for(var e=arguments.length,t=new Array(1<e?e-1:0),r=1;r<e;r++)t[r-1]=arguments[r];t.forEach(function(e){var t;a[e]=i[e]?i[e].bind(i):(e=e,(t=self.console[e])?t.bind(self.console,"["+e+"] >"):s)})}(e,"debug","log","info","warn","error");try{a.log()}catch(e){a=r}}else a=r}var o=r},"./src/utils/mediakeys-helper.ts":function(e,t,i){i.r(t),i.d(t,"KeySystems",function(){return r}),i.d(t,"requestMediaKeySystemAccess",function(){return s}),(i=r=r||{}).WIDEVINE="com.widevine.alpha",i.PLAYREADY="com.microsoft.playready";var r,s="undefined"!=typeof self&&self.navigator&&self.navigator.requestMediaKeySystemAccess?self.navigator.requestMediaKeySystemAccess.bind(self.navigator):null},"./src/utils/mediasource-helper.ts":function(e,t,i){function r(){return self.MediaSource||self.WebKitMediaSource}i.r(t),i.d(t,"getMediaSource",function(){return r})},"./src/utils/mp4-tools.ts":function(e,t,i){i.r(t),i.d(t,"bin2str",function(){return u}),i.d(t,"readUint16",function(){return h}),i.d(t,"readUint32",function(){return g}),i.d(t,"writeUint32",function(){return n}),i.d(t,"findBox",function(){return y}),i.d(t,"parseSegmentIndex",function(){return v}),i.d(t,"parseInitSegment",function(){return s}),i.d(t,"getStartDTS",function(){return o}),i.d(t,"getDuration",function(){return l}),i.d(t,"computeRawDurationFromSamples",function(){return b}),i.d(t,"offsetStartDTS",function(){return d}),i.d(t,"segmentValidRange",function(){return p}),i.d(t,"appendUint8Array",function(){return f});var r=i("./src/utils/typed-array.ts"),m=i("./src/loader/fragment.ts"),a=Math.pow(2,32)-1,c=[].push;function u(e){return String.fromCharCode.apply(null,e)}function h(e,t){"data"in e&&(t+=e.start,e=e.data);e=e[t]<<8|e[t+1];return e<0?65536+e:e}function g(e,t){"data"in e&&(t+=e.start,e=e.data);e=e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3];return e<0?4294967296+e:e}function n(e,t,i){"data"in e&&(t+=e.start,e=e.data),e[t]=i>>24,e[t+1]=i>>16&255,e[t+2]=i>>8&255,e[t+3]=255&i}function y(e,t){var i,r,s=[];if(t.length)for(var a=("data"in e?(i=e.data,r=e.start,e.end):(r=0,(i=e).byteLength)),n=r;n<a;){var o,l=g(i,n),l=1<l?n+l:a;u(i.subarray(n+4,n+8))===t[0]&&(1===t.length?s.push({data:i,start:n+8,end:l}):(o=y({data:i,start:n+8,end:l},t.slice(1))).length&&c.apply(s,o)),n=l}return s}function v(e){var t=y(e,["moov"])[0],t=t?t.end:null,e=y(e,["sidx"]);if(!e||!e[0])return null;var i=[],r=e[0],e=r.data[0],s=0===e?8:16,a=g(r,s),n=r.end+0,o=h(r,s=(s+=4)+(0===e?8:16)+2);s+=2;for(var l=0;l<o;l++){var c=s,u=g(r,c),d=(c+=4,2147483647&u);if(1==(2147483648&u)>>>31)return console.warn("SIDX has hierarchical references (not supported)"),null;u=g(r,c);c+=4,i.push({referenceSize:d,subsegmentDuration:u,info:{duration:u/a,start:n,end:n+d-1}}),n+=d,s=c+=4}return{earliestPresentationTime:0,timescale:a,version:e,referencesCount:o,references:i,moovEndOffset:t}}function s(e){for(var i=[],t=y(e,["moov","trak"]),r=0;r<t.length;r++){var s,a,n,o=t[r],l=y(o,["tkhd"])[0];l&&(l=g(l,0===l.data[l.start]?12:20),s=y(o,["mdia","mdhd"])[0])&&(s=g(s,0===s.data[s.start]?12:20),a=y(o,["mdia","hdlr"])[0])&&(a=u(a.data.subarray(a.start+8,a.start+12)),a={soun:m.ElementaryStreamTypes.AUDIO,vide:m.ElementaryStreamTypes.VIDEO}[a])&&(n=void 0,(o=y(o,["mdia","minf","stbl","stsd"])[0])&&(n=u(o.data.subarray(o.start+12,o.start+16))),i[l]={timescale:s,type:a},i[a]={timescale:s,id:l,codec:n})}return y(e,["moov","mvex","trex"]).forEach(function(e){var t=g(e,4),t=i[t];t&&(t.default={duration:g(e,12),flags:g(e,20)})}),i}function o(a,e){return y(e,["moof","traf"]).reduce(function(e,t){var r=y(t,["tfdt"])[0],s=r.data[r.start],t=y(t,["tfhd"]).reduce(function(e,t){t=g(t,4),t=a[t];if(t){var i=g(r,4),i=(i=1===s?(i*=Math.pow(2,32))+g(r,8):i)/(t.timescale||9e4);if(isFinite(i)&&(null===e||i<e))return i}return e},null);return null!==t&&isFinite(t)&&(null===e||t<e)?t:e},null)||0}function l(e,t){for(var i=0,r=0,s=0,a=y(e,["moof","traf"]),n=0;n<a.length;n++){var o=a[n],l=y(o,["tfhd"])[0],c=t[g(l,4)];if(c){var u=c.default,d=g(l,0)|(null==u?void 0:u.flags),h=null==u?void 0:u.duration;8&d&&(h=g(l,2&d?12:8));for(var p=c.timescale||9e4,f=y(o,["trun"]),A=0;A<f.length;A++)!(i=b(f[A]))&&h&&(i=h*g(f[A],4)),c.type===m.ElementaryStreamTypes.VIDEO?r+=i/p:c.type===m.ElementaryStreamTypes.AUDIO&&(s+=i/p)}}if(0===r&&0===s){e=v(e);if(null!=e&&e.references)return e.references.reduce(function(e,t){return e+t.info.duration||0},0)}return r||s}function b(e){var t=g(e,0),i=8;1&t&&(i+=4),4&t&&(i+=4);for(var r=0,s=g(e,4),a=0;a<s;a++)256&t&&(r+=g(e,i),i+=4),512&t&&(i+=4),1024&t&&(i+=4),2048&t&&(i+=4);return r}function d(i,e,s){y(e,["moof","traf"]).forEach(function(t){y(t,["tfhd"]).forEach(function(e){var r,e=g(e,4),e=i[e];e&&(r=e.timescale||9e4,y(t,["tfdt"]).forEach(function(e){var t=e.data[e.start],i=g(e,4);0===t?n(e,4,i-s*r):(i=(i=(i*=Math.pow(2,32))+g(e,8))-s*r,i=Math.max(i,0),t=Math.floor(i/(a+1)),i=Math.floor(i%(a+1)),n(e,4,t),n(e,8,i))}))})})}function p(e){var t={valid:null,remainder:null},i=y(e,["moof"]);return i&&(i.length<2?t.remainder=e:(i=i[i.length-1],t.valid=Object(r.sliceUint8)(e,0,i.start-8),t.remainder=Object(r.sliceUint8)(e,i.start-8))),t}function f(e,t){var i=new Uint8Array(e.length+t.length);return i.set(e),i.set(t,e.length),i}},"./src/utils/output-filter.ts":function(e,t,i){i.r(t),i.d(t,"default",function(){return r});(i=s.prototype).dispatchCue=function(){null!==this.startTime&&(this.timelineController.addCues(this.trackName,this.startTime,this.endTime,this.screen,this.cueRanges),this.startTime=null)},i.newCue=function(e,t,i){(null===this.startTime||this.startTime>e)&&(this.startTime=e),this.endTime=t,this.screen=i,this.timelineController.createCaptionsTrack(this.trackName)},i.reset=function(){this.cueRanges=[],this.startTime=null};var r=s;function s(e,t){this.timelineController=void 0,this.cueRanges=[],this.trackName=void 0,this.startTime=null,this.endTime=null,this.screen=null,this.timelineController=e,this.trackName=t}},"./src/utils/texttrack-utils.ts":function(e,t,i){i.r(t),i.d(t,"sendAddTrackEvent",function(){return r}),i.d(t,"addCueToTrack",function(){return a}),i.d(t,"clearCurrentCues",function(){return n}),i.d(t,"removeCuesInRange",function(){return o}),i.d(t,"getCuesInRange",function(){return l});var s=i("./src/utils/logger.ts");function r(e,t){var i;try{i=new Event("addtrack")}catch(e){(i=document.createEvent("Event")).initEvent("addtrack",!1,!1)}i.track=e,t.dispatchEvent(i)}function a(e,t){var i=e.mode;if("disabled"===i&&(e.mode="hidden"),e.cues&&!e.cues.getCueById(t.id))try{if(e.addCue(t),!e.cues.getCueById(t.id))throw new Error("addCue is failed for: "+t)}catch(i){s.logger.debug("[texttrack-utils]: "+i);var r=new self.TextTrackCue(t.startTime,t.endTime,t.text);r.id=t.id,e.addCue(r)}"disabled"===i&&(e.mode=i)}function n(e){var t=e.mode;if("disabled"===t&&(e.mode="hidden"),e.cues)for(var i=e.cues.length;i--;)e.removeCue(e.cues[i]);"disabled"===t&&(e.mode=t)}function o(e,t,i){var r=e.mode;if("disabled"===r&&(e.mode="hidden"),e.cues&&0<e.cues.length)for(var s=l(e.cues,t,i),a=0;a<s.length;a++)e.removeCue(s[a]);"disabled"===r&&(e.mode=r)}function l(e,t,i){var r=[],s=function(e,t){if(t<e[0].startTime)return 0;var i=e.length-1;if(t>e[i].endTime)return-1;for(var r=0,s=i;r<=s;){var a=Math.floor((s+r)/2);if(t<e[a].startTime)s=a-1;else{if(!(t>e[a].startTime&&r<i))return a;r=a+1}}return e[r].startTime-t<t-e[s].startTime?r:s}(e,t);if(-1<s)for(var a=s,n=e.length;a<n;a++){var o=e[a];if(o.startTime>=t&&o.endTime<=i)r.push(o);else if(o.startTime>i)return r}return r}},"./src/utils/time-ranges.ts":function(e,t,i){i.r(t),t.default={toString:function(e){for(var t="",i=e.length,r=0;r<i;r++)t+="["+e.start(r).toFixed(3)+","+e.end(r).toFixed(3)+"]";return t}}},"./src/utils/timescale-conversion.ts":function(e,t,i){function s(e,t,i,r){e=e*t*(i=void 0===i?1:i);return(r=void 0===r?!1:r)?Math.round(e):e}function r(e,t,i,r){return s(e,t,1/(i=void 0===i?1:i),r=void 0===r?!1:r)}function a(e,t){return s(e,1e3,1/9e4,t=void 0===t?!1:t)}function n(e,t){return s(e,9e4,1/(t=void 0===t?1:t))}i.r(t),i.d(t,"toTimescaleFromBase",function(){return s}),i.d(t,"toTimescaleFromScale",function(){return r}),i.d(t,"toMsFromMpegTsClock",function(){return a}),i.d(t,"toMpegTsClockFromTimescale",function(){return n})},"./src/utils/typed-array.ts":function(e,t,i){function r(e,t,i){return Uint8Array.prototype.slice?e.slice(t,i):new Uint8Array(Array.prototype.slice.call(e,t,i))}i.r(t),i.d(t,"sliceUint8",function(){return r})},"./src/utils/vttcue.ts":function(e,t,i){function v(e,t){return"string"==typeof t&&!!Array.isArray(e)&&(t=t.toLowerCase(),!!~e.indexOf(t))&&t}function b(e){return v(s,e)}function E(e){for(var t=arguments.length,i=new Array(1<t?t-1:0),r=1;r<t;r++)i[r-1]=arguments[r];for(var s=1;s<arguments.length;s++){var a,n=arguments[s];for(a in n)e[a]=n[a]}return e}function r(e,t,i){var r=this,s={enumerable:!0},a=(r.hasBeenReset=!1,""),n=!1,o=e,l=t,c=i,u=null,d="",h=!0,p="auto",f="start",A=50,m="middle",g=50,y="middle";Object.defineProperty(r,"id",E({},s,{get:function(){return a},set:function(e){a=""+e}})),Object.defineProperty(r,"pauseOnExit",E({},s,{get:function(){return n},set:function(e){n=!!e}})),Object.defineProperty(r,"startTime",E({},s,{get:function(){return o},set:function(e){if("number"!=typeof e)throw new TypeError("Start time must be set to a number.");o=e,this.hasBeenReset=!0}})),Object.defineProperty(r,"endTime",E({},s,{get:function(){return l},set:function(e){if("number"!=typeof e)throw new TypeError("End time must be set to a number.");l=e,this.hasBeenReset=!0}})),Object.defineProperty(r,"text",E({},s,{get:function(){return c},set:function(e){c=""+e,this.hasBeenReset=!0}})),Object.defineProperty(r,"region",E({},s,{get:function(){return u},set:function(e){u=e,this.hasBeenReset=!0}})),Object.defineProperty(r,"vertical",E({},s,{get:function(){return d},set:function(e){e=v(S,e);if(!1===e)throw new SyntaxError("An invalid or illegal string was specified.");d=e,this.hasBeenReset=!0}})),Object.defineProperty(r,"snapToLines",E({},s,{get:function(){return h},set:function(e){h=!!e,this.hasBeenReset=!0}})),Object.defineProperty(r,"line",E({},s,{get:function(){return p},set:function(e){if("number"!=typeof e&&"auto"!==e)throw new SyntaxError("An invalid number or illegal string was specified.");p=e,this.hasBeenReset=!0}})),Object.defineProperty(r,"lineAlign",E({},s,{get:function(){return f},set:function(e){e=b(e);if(!e)throw new SyntaxError("An invalid or illegal string was specified.");f=e,this.hasBeenReset=!0}})),Object.defineProperty(r,"position",E({},s,{get:function(){return A},set:function(e){if(e<0||100<e)throw new Error("Position must be between 0 and 100.");A=e,this.hasBeenReset=!0}})),Object.defineProperty(r,"positionAlign",E({},s,{get:function(){return m},set:function(e){e=b(e);if(!e)throw new SyntaxError("An invalid or illegal string was specified.");m=e,this.hasBeenReset=!0}})),Object.defineProperty(r,"size",E({},s,{get:function(){return g},set:function(e){if(e<0||100<e)throw new Error("Size must be between 0 and 100.");g=e,this.hasBeenReset=!0}})),Object.defineProperty(r,"align",E({},s,{get:function(){return y},set:function(e){e=b(e);if(!e)throw new SyntaxError("An invalid or illegal string was specified.");y=e,this.hasBeenReset=!0}})),r.displayState=void 0}var S,s;i.r(t),t.default="undefined"!=typeof self&&self.VTTCue?self.VTTCue:(S=["","lr","rl"],s=["start","middle","end","left","right"],r.prototype.getCueAsHTML=function(){return self.WebVTT.convertCueToDOMTree(self,this.text)},r)},"./src/utils/vttparser.ts":function(e,t,i){i.r(t),i.d(t,"parseTimeStamp",function(){return l}),i.d(t,"fixLineBreaks",function(){return p}),i.d(t,"VTTParser",function(){return n});var o=i("./src/utils/vttcue.ts"),r=(s.prototype.decode=function(e,t){if(!e)return"";if("string"!=typeof e)throw new Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(e))},s);function s(){}function l(e){function t(e,t,i,r){return 3600*(0|e)+60*(0|t)+(0|i)+parseFloat(r||0)}e=e.match(/^(?:(\d+):)?(\d{2}):(\d{2})(\.\d+)?/);return e?59<parseFloat(e[2])?t(e[2],e[3],0,e[4]):t(e[1],e[2],e[3],e[4]):null}(t=a.prototype).set=function(e,t){this.get(e)||""===t||(this.values[e]=t)},t.get=function(e,t,i){return i?this.has(e)?this.values[e]:t[i]:this.has(e)?this.values[e]:t},t.has=function(e){return e in this.values},t.alt=function(e,t,i){for(var r=0;r<i.length;++r)if(t===i[r]){this.set(e,t);break}},t.integer=function(e,t){/^-?\d+$/.test(t)&&this.set(e,parseInt(t,10))},t.percent=function(e,t){if(/^([\d]{1,3})(\.[\d]*)?%$/.test(t)){t=parseFloat(t);if(0<=t&&t<=100)return this.set(e,t),!0}return!1};var c=a;function a(){this.values=Object.create(null)}function u(e,t,i,r){var s,a,n=r?e.split(r):[e];for(s in n)"string"==typeof n[s]&&2===(a=n[s].split(i)).length&&t(a[0],a[1])}var d=new o.default(0,0,""),h="middle"===d.align?"middle":"center";function p(e){return e.replace(/<br(?: \/)?>/gi,"\n")}(i=f.prototype).parse=function(e){var r=this;function t(){for(var e=0,t=p(t=r.buffer);e<t.length&&"\r"!==t[e]&&"\n"!==t[e];)++e;var i=t.substr(0,e);return"\r"===t[e]&&++e,"\n"===t[e]&&++e,r.buffer=t.substr(e),i}e&&(r.buffer+=r.decoder.decode(e,{stream:!0}));try{var i="";if("INITIAL"===r.state){if(!/\r\n|\n/.test(r.buffer))return this;var s=(i=t()).match(/^()?WEBVTT([ \t].*)?$/);if(!s||!s[0])throw new Error("Malformed WebVTT signature.");r.state="HEADER"}for(var a=!1;r.buffer;){if(!/\r\n|\n/.test(r.buffer))return this;switch(a?a=!1:i=t(),r.state){case"HEADER":/:/.test(i)?u(i,function(e,t){},/:/):i||(r.state="ID");continue;case"NOTE":i||(r.state="ID");continue;case"ID":if(/^NOTE($|[ \t])/.test(i)){r.state="NOTE";break}if(!i)continue;if(r.cue=new o.default(0,0,""),r.state="CUE",-1===i.indexOf("--\x3e")){r.cue.id=i;continue}case"CUE":if(!r.cue){r.state="BADCUE";continue}try{!function(t,e,s){var i,a,r=t;function n(){var e=l(t);if(null===e)throw new Error("Malformed timestamp: "+r);return t=t.replace(/^[^\sa-zA-Z-]+/,""),e}function o(){t=t.replace(/^\s+/,"")}if(o(),e.startTime=n(),o(),"--\x3e"!==t.substr(0,3))throw new Error("Malformed time stamp (time stamps must be separated by '--\x3e'): "+r);t=t.substr(3),o(),e.endTime=n(),o(),i=t,e=e,a=new c,u(i,function(e,t){var i;switch(e){case"region":for(var r=s.length-1;0<=r;r--)if(s[r].id===t){a.set(e,s[r].region);break}break;case"vertical":a.alt(e,t,["rl","lr"]);break;case"line":i=t.split(","),a.integer(e,i[0]),a.percent(e,i[0])&&a.set("snapToLines",!1),a.alt(e,i[0],["auto"]),2===i.length&&a.alt("lineAlign",i[1],["start",h,"end"]);break;case"position":i=t.split(","),a.percent(e,i[0]),2===i.length&&a.alt("positionAlign",i[1],["start",h,"end","line-left","line-right","auto"]);break;case"size":a.percent(e,t);break;case"align":a.alt(e,t,["start",h,"end","left","right"])}},/:/,/\s/),e.region=a.get("region",null),e.vertical=a.get("vertical",""),"auto"===(i=a.get("line","auto"))&&-1===d.line&&(i=-1),e.line=i,e.lineAlign=a.get("lineAlign","start"),e.snapToLines=a.get("snapToLines",!0),e.size=a.get("size",100),e.align=a.get("align",h),"auto"===(i=a.get("position","auto"))&&50===d.position&&(i="start"===e.align||"left"===e.align?0:"end"===e.align||"right"===e.align?100:50),e.position=i}(i,r.cue,r.regionList)}catch(e){r.cue=null,r.state="BADCUE";continue}r.state="CUETEXT";continue;case"CUETEXT":var n=-1!==i.indexOf("--\x3e");if(!i||n&&(a=!0)){r.oncue&&r.cue&&r.oncue(r.cue),r.cue=null,r.state="ID";continue}if(null===r.cue)continue;r.cue.text&&(r.cue.text+="\n"),r.cue.text+=i;continue;case"BADCUE":i||(r.state="ID")}}}catch(e){"CUETEXT"===r.state&&r.cue&&r.oncue&&r.oncue(r.cue),r.cue=null,r.state="INITIAL"===r.state?"BADWEBVTT":"BADCUE"}return this},i.flush=function(){var t=this;try{if(!t.cue&&"HEADER"!==t.state||(t.buffer+="\n\n",t.parse()),"INITIAL"===t.state||"BADWEBVTT"===t.state)throw new Error("Malformed WebVTT signature.")}catch(e){t.onparsingerror&&t.onparsingerror(e)}return t.onflush&&t.onflush(),this};var n=f;function f(){this.state="INITIAL",this.buffer="",this.decoder=new r,this.regionList=[],this.cue=null,this.oncue=void 0,this.onparsingerror=void 0,this.onflush=void 0}},"./src/utils/webvtt-parser.ts":function(e,t,i){i.r(t),i.d(t,"generateCueId",function(){return w}),i.d(t,"parseWebVTT",function(){return s});var g=i("./src/polyfills/number.ts"),y=i("./src/utils/vttparser.ts"),v=i("./src/demux/id3.ts"),b=i("./src/utils/timescale-conversion.ts"),E=i("./src/remux/mp4-remuxer.ts"),S=/\r\n|\n\r|\n|\r/g,T=function(e,t,i){return e.substr(i=void 0===i?0:i,t.length)===t},r=function(e){for(var t=5381,i=e.length;i;)t=33*t^e.charCodeAt(--i);return(t>>>0).toString()};function w(e,t,i){return r(e.toString())+r(t.toString())+r(i)}function s(e,t,i,s,a,n,r,o){var l,c=new y.VTTParser,e=Object(v.utf8ArrayToStr)(new Uint8Array(e)).trim().replace(S,"\n").split("\n"),u=[],d=Object(b.toMpegTsClockFromTimescale)(t,i),h="00:00.000",p=0,f=0,A=!0,m=!1;c.oncue=function(e){var t=s[a],i=s.ccOffset,r=(p-d)/9e4,i=(null!=t&&t.new&&(void 0!==f?i=s.ccOffset=t.start:function(e,t){var i,r=e[a],s=e[r.prevCC];if(!s||!s.new&&r.new)return e.ccOffset=e.presentationOffset=r.start,r.new=!1;for(;null!=(i=s)&&i.new;)e.ccOffset+=r.start-s.start,r.new=!1,s=e[(r=s).prevCC];e.presentationOffset=t}(s,r)),r&&(i=r-s.presentationOffset),m&&(t=e.endTime-e.startTime,r=Object(E.normalizePts)(9e4*(e.startTime+i-f),9e4*n)/9e4,e.startTime=r,e.endTime=r+t),e.text.trim());e.text=decodeURIComponent(encodeURIComponent(i)),e.id||(e.id=w(e.startTime,e.endTime,i)),0<e.endTime&&u.push(e)},c.onparsingerror=function(e){l=e},c.onflush=function(){l?o(l):r(u)},e.forEach(function(e){if(A){if(T(e,"X-TIMESTAMP-MAP=")){m=!(A=!1),e.substr(16).split(",").forEach(function(e){T(e,"LOCAL:")?h=e.substr(6):T(e,"MPEGTS:")&&(p=parseInt(e.substr(7)))});try{f=function(e){var t=parseInt(e.substr(-3)),i=parseInt(e.substr(-6,2)),r=parseInt(e.substr(-9,2)),s=9<e.length?parseInt(e.substr(0,e.indexOf(":"))):0;if(Object(g.isFiniteNumber)(t)&&Object(g.isFiniteNumber)(i)&&Object(g.isFiniteNumber)(r)&&Object(g.isFiniteNumber)(s))return t+1e3*i+6e4*r+36e5*s;throw Error("Malformed X-TIMESTAMP-MAP: Local:"+e)}(h)/1e3}catch(e){m=!1,l=e}return}""===e&&(A=!1)}c.parse(e+"\n")}),c.flush()}},"./src/utils/xhr-loader.ts":function(e,t,i){i.r(t);var o=i("./src/utils/logger.ts"),r=i("./src/loader/load-stats.ts"),s=/^age:\s*[\d.]+\s*$/m;function a(e){this.xhrSetup=void 0,this.requestTimeout=void 0,this.retryTimeout=void 0,this.retryDelay=void 0,this.config=null,this.callbacks=null,this.context=void 0,this.loader=null,this.stats=void 0,this.xhrSetup=e?e.xhrSetup:null,this.stats=new r.LoadStats,this.retryDelay=0}(i=a.prototype).destroy=function(){this.callbacks=null,this.abortInternal(),this.loader=null,this.config=null},i.abortInternal=function(){var e=this.loader;self.clearTimeout(this.requestTimeout),self.clearTimeout(this.retryTimeout),e&&(e.onreadystatechange=null,e.onprogress=null,4!==e.readyState)&&(this.stats.aborted=!0,e.abort())},i.abort=function(){var e;this.abortInternal(),null!=(e=this.callbacks)&&e.onAbort&&this.callbacks.onAbort(this.stats,this.context,this.loader)},i.load=function(e,t,i){if(this.stats.loading.start)throw new Error("Loader can only be used once.");this.stats.loading.start=self.performance.now(),this.context=e,this.config=t,this.callbacks=i,this.retryDelay=t.retryDelay,this.loadInternal()},i.loadInternal=function(){var e=this.config,t=this.context;if(e){var i=this.loader=new self.XMLHttpRequest,r=this.stats,r=(r.loading.first=0,r.loaded=0,this.xhrSetup);try{if(r)try{r(i,t.url)}catch(e){i.open("GET",t.url,!0),r(i,t.url)}i.readyState||i.open("GET",t.url,!0);var s=this.context.headers;if(s)for(var a in s)i.setRequestHeader(a,s[a])}catch(e){return void this.callbacks.onError({code:i.status,text:e.message},t,i)}t.rangeEnd&&i.setRequestHeader("Range","bytes="+t.rangeStart+"-"+(t.rangeEnd-1)),i.onreadystatechange=this.readystatechange.bind(this),i.onprogress=this.loadprogress.bind(this),i.responseType=t.responseType,self.clearTimeout(this.requestTimeout),this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),e.timeout),i.send()}},i.readystatechange=function(){var e,t,i,r,s=this.context,a=this.loader,n=this.stats;s&&a&&(t=a.readyState,e=this.config,!n.aborted)&&2<=t&&(self.clearTimeout(this.requestTimeout),0===n.loading.first&&(n.loading.first=Math.max(self.performance.now(),n.loading.start)),4===t?(a.onreadystatechange=null,a.onprogress=null,200<=(t=a.status)&&t<300?(n.loading.end=Math.max(self.performance.now(),n.loading.first),r="arraybuffer"===s.responseType?(i=a.response).byteLength:(i=a.responseText).length,n.loaded=n.total=r,this.callbacks&&((r=this.callbacks.onProgress)&&r(n,s,i,a),this.callbacks)&&(r={url:a.responseURL,data:i},this.callbacks.onSuccess(r,n,s,a))):n.retry>=e.maxRetry||400<=t&&t<499?(o.logger.error(t+" while loading "+s.url),this.callbacks.onError({code:t,text:a.statusText},s,a)):(o.logger.warn(t+" while loading "+s.url+", retrying in "+this.retryDelay+"..."),this.abortInternal(),this.loader=null,self.clearTimeout(this.retryTimeout),this.retryTimeout=self.setTimeout(this.loadInternal.bind(this),this.retryDelay),this.retryDelay=Math.min(2*this.retryDelay,e.maxRetryDelay),n.retry++)):(self.clearTimeout(this.requestTimeout),this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),e.timeout)))},i.loadtimeout=function(){o.logger.warn("timeout while loading "+this.context.url);var e=this.callbacks;e&&(this.abortInternal(),e.onTimeout(this.stats,this.context,this.loader))},i.loadprogress=function(e){var t=this.stats;t.loaded=e.loaded,e.lengthComputable&&(t.total=e.total)},i.getCacheAge=function(){var e,t=null;return t=this.loader&&s.test(this.loader.getAllResponseHeaders())?(e=this.loader.getResponseHeader("age"))?parseFloat(e):null:t},t.default=a}},r={},s.m=i,s.c=r,s.d=function(e,t,i){s.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},s.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.t=function(t,e){if(1&e&&(t=s(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(s.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)s.d(i,r,function(e){return t[e]}.bind(null,r));return i},s.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return s.d(t,"a",t),t},s.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},s.p="/dist/",s(s.s="./src/hls.ts").default;function s(e){var t;return(r[e]||(t=r[e]={i:e,l:!1,exports:{}},i[e].call(t.exports,t,t.exports,s),t.l=!0,t)).exports}var i,r}())}))&&tr.__esModule&&Object.prototype.hasOwnProperty.call(tr,"default")?tr.default:tr;class Wr extends t{constructor(e){super(),(this.player=e)._opt,this.canVideoPlay=!1,this.$videoElement=null,this.canvasRenderInterval=null,this.bandwidthEstimateInterval=null,this.fpsInterval=null,this.hlsFps=0,this.hlsPrevFrams=0,this.isInitInfo=!1,this.eventsDestroy=[],s.isSupported()?(this.$videoElement=this.player.video.$videoElement,this.hls=new s({}),this._initHls(),this._bindEvents()):function(){let e=document.createElement("video"),t=e.canPlayType("application/vnd.apple.mpegurl");return e=null,t}()?(this.$videoElement=this.player.video.$videoElement,this.canVideoPlay=!0):this.player.debug.error("HlsDecoder","init hls error ,not support "),this.player.debug.log("HlsDecoder","init")}destroy(){this.hls&&(this.hls.destroy(),this.hls=null),this.eventsDestroy.length&&(this.eventsDestroy.forEach(e=>e()),this.eventsDestroy=[]),this.isInitInfo=!1,this._stopCanvasRender(),this._stopBandwidthEstimateInterval(),this._stopFpsInterval(),this.$videoElement=null,this.hlsFps=0,this.player.debug.log("HlsDecoder","destroy")}checkHlsBufferedDelay(){var e=this.$videoElement;let t=0;var i=e.buffered,i=i.length?i.end(i.length-1):0;return(t=i-e.currentTime)<0&&(this.player.debug.warn("HlsDecoder","checkHlsBufferedDelay result < 0",t,i,e.currentTime),t=0),t}getFps(){return this.hlsFps}_startCanvasRender(){this._stopCanvasRender(),this.canvasRenderInterval=setInterval(()=>{this.player.video.render({$video:this.$videoElement,ts:0})},40)}_stopCanvasRender(){this.canvasRenderInterval&&(clearInterval(this.canvasRenderInterval),this.canvasRenderInterval=null)}_startBandwidthEstimateInterval(){this._stopBandwidthEstimateInterval(),this.bandwidthEstimateInterval=setInterval(()=>{let e=0;this.hls.bandwidthEstimate&&(e=this.hls.bandwidthEstimate),this.player.emit(v.kBps,(e/1024/8/10).toFixed(2))},1e3)}_stopBandwidthEstimateInterval(){this.bandwidthEstimateInterval&&(clearInterval(this.bandwidthEstimateInterval),this.bandwidthEstimateInterval=null)}_startFpsInterval(){this._stopCanvasRender(),this.fpsInterval=setInterval(()=>{var e=this.$videoElement.getVideoPlaybackQuality();this.hlsFps=e.totalVideoFrames-this.hlsPrevFrams,this.hlsPrevFrams=e.totalVideoFrames},1e3)}_stopFpsInterval(){this.fpsInterval&&(clearInterval(this.fpsInterval),this.fpsInterval=null)}_initHls(){this.player._opt.useCanvasRender&&(this.$videoElement=document.createElement("video"),this.$videoElement.muted=!0,Xe()&&(this.$videoElement.style.position="absolute"),this.initVideoEvents()),this.hls.attachMedia(this.$videoElement)}_bindEvents(){const i=this.player,e=this.player.events["proxy"];this.hls;var t=e(this.$videoElement,De,e=>{this.hls&&(e=parseInt(e.timeStamp,10),i.handleRender(),i.updateStats({ts:e,dts:e}),i.emit(v.videoTimeUpdate,e))});this.eventsDestroy.push(t),this._startBandwidthEstimateInterval(),this._startFpsInterval(),this.hls.on(s.Events.ERROR,(e,t)=>{if(t.fatal)switch(t.type){case s.ErrorTypes.NETWORK_ERROR:this.player.debug.error("HlsDecoder","fatal network error encountered, try to recover"),this.hls.startLoad();break;case s.ErrorTypes.MEDIA_ERROR:this.player.debug.error("HlsDecoder","fatal media error encountered, try to recover"),this.hls.recoverMediaError()}}),this.hls.on(s.Events.MEDIA_ATTACHING,()=>{}),this.hls.on(s.Events.MEDIA_ATTACHED,()=>{}),this.hls.on(s.Events.MEDIA_DETACHING,()=>{}),this.hls.on(s.Events.MEDIA_DETACHED,()=>{}),this.hls.on(s.Events.BUFFER_RESET,()=>{}),this.hls.on(s.Events.BUFFER_CODECS,()=>{}),this.hls.on(s.Events.BUFFER_CREATED,()=>{}),this.hls.on(s.Events.BUFFER_APPENDING,(e,t)=>{this.player.debug.log("HlsDecoder","BUFFER_APPENDING",t)}),this.hls.on(s.Events.BUFFER_APPENDED,()=>{}),this.hls.on(s.Events.BUFFER_EOS,()=>{}),this.hls.on(s.Events.BUFFER_FLUSHING,()=>{}),this.hls.on(s.Events.BUFFER_FLUSHED,()=>{}),this.hls.on(s.Events.MANIFEST_LOADING,()=>{this.player.debug.log("HlsDecoder","MANIFEST_LOADING 开始加载playlist m3u8资源")}),this.hls.on(s.Events.MANIFEST_LOADED,(e,t)=>{this.player.debug.log("HlsDecoder","MANIFEST_LOADED playlist m3u8文件加载完成",t)}),this.hls.on(s.Events.MANIFEST_PARSED,()=>{this.player.debug.log("HlsDecoder","MANIFEST_PARSED playlist m3u8解析完成"),i._times.demuxStart||(i._times.demuxStart=m())}),this.hls.on(s.Events.LEVEL_LOADING,()=>{}),this.hls.on(s.Events.LEVEL_LOADED,(e,t)=>{}),this.hls.on(s.Events.FRAG_LOADING,()=>{}),this.hls.on(s.Events.FRAG_LOADED,(e,t)=>{i._times.decodeStart||(i._times.decodeStart=m())}),this.hls.on(s.Events.BUFFER_APPENDING,()=>{i._times.videoStart||(i._times.videoStart=m(),i.handlePlayToRenderTimes())}),this.hls.on(s.Events.FRAG_DECRYPTED,()=>{}),this.hls.on(s.Events.KEY_LOADING,()=>{}),this.hls.on(s.Events.KEY_LOADING,()=>{}),this.hls.on(s.Events.FPS_DROP,e=>{}),this.hls.on(s.Events.FPS_DROP_LEVEL_CAPPING,e=>{}),this.hls.on(s.Events.FRAG_PARSING_INIT_SEGMENT,(e,t)=>{this.player.debug.log("HlsDecoder","FRAG_PARSING_INIT_SEGMENT",t);const i=!!(t&&t.tracks&&t.tracks.audio),r=!!(t&&t.tracks&&t.tracks.video);if(i&&t.tracks.audio){var s=t.tracks.audio;const i=s.metadata&&s.metadata.channelCount?s.metadata.channelCount:0,r=s.codec;this.player.audio&&this.player.audio.updateAudioInfo({encType:r,channels:i,sampleRate:44100})}var a;r&&t.tracks.video&&(t=(s=t.tracks.video).codec,a=s.metadata&&s.metadata.width?s.metadata.width:0,s=s.metadata&&s.metadata.height?s.metadata.height:0,this.player.video)&&this.player.video.updateVideoInfo({encTypeCode:-1!==t.indexOf("avc")?7:12,width:a,height:s})})}initVideoPlay(e){this.player._opt.useCanvasRender&&(this.$videoElement=document.createElement("video"),this.initVideoEvents()),this.$videoElement.muted=!0,this.$videoElement.src=e}initRenderSize(){this.isInitInfo||(this.player.video.updateVideoInfo({width:this.$videoElement.videoWidth,height:this.$videoElement.videoHeight}),this.player.video.initCanvasViewSize(),this.isInitInfo=!0)}initVideoEvents(){var e=this.player.events["proxy"],t=e(this.$videoElement,"canplay",()=>{this.player.debug.log("HlsDecoder","video canplay"),this.$videoElement.play().then(()=>{this.player.debug.log("HlsDecoder","video play"),this._startCanvasRender(),this.initRenderSize()}).catch(e=>{this.player.debug.warn("HlsDecoder","video play error ",e)})}),i=e(this.$videoElement,Re,()=>{this.player.debug.log("HlsDecoder","video waiting")}),r=e(this.$videoElement,De,e=>{e=parseInt(e.timeStamp,10);this.player.handleRender(),this.player.updateStats({ts:e}),this.player.emit(v.videoTimeUpdate,e)}),e=e(this.$videoElement,Le,()=>{this.player.debug.log("HlsDecoder","video playback Rate change",this.$videoElement&&this.$videoElement.playbackRate)});this.eventsDestroy.push(t,i,r,e)}loadSource(i){return new Promise((e,t)=>{this.canVideoPlay?(this.initVideoPlay(i),e()):this.hls.on(s.Events.MEDIA_ATTACHED,()=>{this.hls.loadSource(i),e()})})}_handleUpdatePlaybackRate(){if(this.$videoElement){var t=this.$videoElement,i=(this.player._opt.videoBuffer+this.player._opt.videoBufferDelay)/1e3,r=t.buffered,r=(r.length&&r.start(0),r.length?r.end(r.length-1):0);let e=t.currentTime;var s=r-e,i=Math.max(5,3+i),i=(i<s?(this.player.debug.warn("HlsDecoder",`handleUpdatePlaybackRate and delay buffer is more than ${i} is ${s} and new time is ${r} `),t.currentTime=r,e=t.currentTime):s<0&&this.player.debug.warn("HlsDecoder",`handleUpdatePlaybackRate and delay buffer is less than 0 is ${s} and new time is `+r),this._getPlaybackRate(r-e));t.playbackRate!==i&&(t.playbackRate=i)}}_getPlaybackRate(e){var t=this.$videoElement,i=this.player._opt.videoBuffer,r=i+this.player._opt.videoBufferDelay;return e*=1e3,1===t.playbackRate?r<e?1.2:1:e<=i?1:t.playbackRate}getDecodePlaybackRate(){let e=0;var t=this.$videoElement;return e=t?t.playbackRate:e}}class Gr extends t{constructor(e){super(),this.player=e,this.rtcPeerConnection=null,this.videoStream=null,this._initRtcPeerConnection(),this.player.debug.log("WebrtcDecoder","init")}destroy(){this.rtcPeerConnection&&(this.rtcPeerConnection.close(),this.rtcPeerConnection=null),this.videoStream=null,this.player.video.$videoElement.srcObject=null,this.player.debug.log("WebrtcDecoder","destroy")}_initRtcPeerConnection(){const t=new RTCPeerConnection,i=this.player;t.addTransceiver("video",{direction:"recvonly"}),t.addTransceiver("audio",{direction:"recvonly"}),t.onsignalingstatechange=e=>{this.player.debug.log("WebrtcDecoder","onsignalingstatechange",e)},t.oniceconnectionstatechange=e=>{this.player.debug.log("WebrtcDecoder","oniceconnectionstatechange",t.iceConnectionState)},t.onicecandidate=e=>{this.player.debug.log("WebrtcDecoder","onicecandidate",e)},t.ontrack=e=>{var t=i.video.$videoElement;"video"===e.track.kind&&(e=e.streams[0],t.srcObject=e,this.videoStream=e)},t.onconnectionstatechange=e=>{switch(i.debug.log("WebrtcDecoder","sdp connect status "+t.connectionState),t.connectionState){case"connected":break;case"disconnected":i.emit(v.webrtcDisconnect);break;case"failed":i.emit(v.webrtcFailed);break;case"closed":i.emit(v.webrtcClosed)}},this.rtcPeerConnection=t}loadSource(s){return new Promise((t,i)=>{const r=this.rtcPeerConnection;r.createOffer().then(e=>{r.setLocalDescription(e),this.player.debug.log("WebrtcDecoder","getWebRtcRemoteSdp loadSource"),e=e.sdp,fetch(s,{method:"POST",mode:"cors",cache:"no-cache",credentials:"include",redirect:"follow",referrerPolicy:"no-referrer",headers:{"Content-Type":"application/sdp"},body:e}).then(e=>{e.text().then(e=>{this.player.debug.log("WebrtcDecoder","getWebRtcRemoteSdp response"),r.setRemoteDescription(new RTCSessionDescription({type:"answer",sdp:e})),t()}).catch(e=>{this.player.debug.error("WebrtcDecoder","loadSource response.text() error",e),i(e)})}).catch(e=>{this.player.debug.error("WebrtcDecoder","loadSource getWebRtcRemoteSdp response error",e),i(e)})}).catch(e=>{this.player.debug.error("WebrtcDecoder","loadSource rtcPeerConnection.createOffer() error",e),i(e)})})}}class zr extends t{constructor(e){super(),this.tagName="WebrtcForZLMDecoder",this.player=e,this.rtcPeerConnection=null,this.videoStream=null,this._initRtcPeerConnection(),this.player.debug.log(this.tagName,"init")}destroy(){this.rtcPeerConnection&&(this.rtcPeerConnection.close(),this.rtcPeerConnection=null),this.videoStream&&(this.videoStream.getTracks().forEach(e=>e.stop()),this.videoStream=null),this.videoStream=null,this.player.video.$videoElement.srcObject=null,this.player.debug.log(this.tagName,"destroy")}_initRtcPeerConnection(){const t=new RTCPeerConnection,i=this.player;t.addTransceiver("video",{direction:"recvonly"}),t.addTransceiver("audio",{direction:"recvonly"}),t.onsignalingstatechange=e=>{console.log("onsignalingstatechange",e)},t.oniceconnectionstatechange=e=>{console.log("oniceconnectionstatechange",t.iceConnectionState)},t.onicecandidate=e=>{console.log("onicecandidate",e)},t.ontrack=e=>{var t=i.video.$videoElement;console.log("ontrack",e),"video"===e.track.kind&&(e=e.streams[0],t.srcObject=e,this.videoStream=e)},this.rtcPeerConnection=t}loadSource(s){return new Promise((t,i)=>{const r=this.rtcPeerConnection;r.createOffer().then(e=>{r.setLocalDescription(e),this.player.debug.log(this.tagName,"getWebRtcRemoteSdp loadSource"),e=e.sdp,R({url:s,type:"POST",data:e,contentType:"text/plain;charset=utf-8",processData:!1,dataType:"json"}).then(e=>{this.player.debug.log(this.tagName,"getWebRtcRemoteSdp response");e=e.data;if(0!==e.code)return i(e.msg);r.setRemoteDescription(new RTCSessionDescription({type:"answer",sdp:e.sdp})),t()}).catch(e=>{this.player.debug.error(this.tagName,"loadSource getWebRtcRemoteSdp response error",e),i(e)})}).catch(e=>{this.player.debug.error(this.tagName,"loadSource rtcPeerConnection.createOffer() error",e),i(e)})})}}class Kr extends t{constructor(e,t){super(),this.player=e,this._showPrecision=null,this._startTime=null,this._playStartTime=null,this._playingTimestamp=null,this._fps=parseInt(t.fps,10)||e._opt.playbackFps,this._isUseFpsRender=!0===t.isUseFpsRender,this._rate=1,this._audioTimestamp=0,this._videoTimestamp=0,this._currentLocalTimestamp=0,this._localOneFrameTimestamp=t.localOneFrameTimestamp||40,this._localCalculateTimeInterval=null,this._isUseLocalCalculateTime=!0===t.isUseLocalCalculateTime,this._isPlaybackPauseClearCache=!1!==t.isPlaybackPauseClearCache,this._isCacheBeforeDecodeForFpsRender=!0===t.isCacheBeforeDecodeForFpsRender,this._startfpsTime=null,this._startFpsTimestamp=null,this._checkStatsInterval=null,this._playbackTs=0,this._renderFps=0,this._isUseLocalCalculateTime?this._startLocalCalculateTime():this._listen(),this.playbackList=[],this._totalDuration=0,this.initPlaybackList(t.playList),this.player.on(v.playbackPause,e=>{e?this.pause():this.resume()}),e.debug.log("Playback","init",{fps:this._fps,isUseFpsRender:this._isUseFpsRender,localOneFrameTimestamp:this._localOneFrameTimestamp,isUseLocalCalculateTime:this._isUseLocalCalculateTime,uiUsePlaybackPause:t.uiUsePlaybackPause,showControl:t.showControl})}destroy(){this._startTime=null,this._showPrecision=null,this._playStartTime=null,this._playingTimestamp=null,this._totalDuration=0,this._audioTimestamp=0,this._videoTimestamp=0,this._fps=null,this._isUseFpsRender=!1,this._rate=1,this.playbackList=[],this._localCalculateTimeInterval=null,this._currentLocalTimestamp=0,this._startfpsTime=null,this._startFpsTimestamp=null,this._renderFps=0,this._playbackTs=0,this._stopLocalCalculateTime(),this.clearStatsInterval(),this.off(),this.player.debug.log("Playback","destroy")}_listen(){this.player.on(v.stats,e=>{e=e.ts,this._playStartTime||(this._playStartTime=e),e-=this._playStartTime;this.setPlayingTimestamp(e)})}pause(){this.clearStatsInterval()}resume(){this.startCheckStatsInterval()}updateStats(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},t=(this._startFpsTimestamp||(this._startFpsTimestamp=m()),c(t.ts)&&(this.player.updateStats({fps:!0,ts:t.ts}),this._playbackTs=t.ts,this._startfpsTime||(this._startfpsTime=t.ts),this._renderFps+=1),m()),i=t-this._startFpsTimestamp;if(!(i<1e3)){let e=null;this._startfpsTime&&(e=this._playbackTs-this._startfpsTime),this.player.emit(v.playbackStats,{fps:this._renderFps,rate:this.rate,start:this._startfpsTime,end:this._playbackTs,timestamp:i,dataTimestamp:e,audioBufferSize:this.player.audio?this.player.audio.bufferSize:0,videoBufferSize:this.player.video?this.player.video.bufferSize:0,ts:this._playbackTs}),this._renderFps=0,this._startfpsTime=this._playbackTs,this._startFpsTimestamp=t}}_startLocalCalculateTime(){this._stopLocalCalculateTime(),this._localCalculateTimeInterval=setInterval(()=>{var e=this._currentLocalTimestamp,e=(this._playStartTime||(this._playStartTime=e),e-this._playStartTime);this.setPlayingTimestamp(e)},1e3)}startCheckStatsInterval(){this.clearStatsInterval(),this._checkStatsInterval=setInterval(()=>{this.updateStats()},1e3)}_stopLocalCalculateTime(){this._localCalculateTimeInterval&&(clearInterval(this._localCalculateTimeInterval),this._localCalculateTimeInterval=null)}clearStatsInterval(){this._checkStatsInterval&&(clearInterval(this._checkStatsInterval),this._checkStatsInterval=null)}increaseLocalTimestamp(){this._isUseLocalCalculateTime&&(this._currentLocalTimestamp+=this._localOneFrameTimestamp)}initPlaybackList(e){this.playbackList=e||[];let i=0;this.playbackList.forEach((e,t)=>{10===ut(e.start)&&(e.startTimestamp=1e3*e.start,e.startTime=Ye(e.startTimestamp)),10===ut(e.end)&&(e.endTimestamp=1e3*e.end,e.endTime=Ye(e.endTimestamp)),e.duration=e.end-e.start,i+=e.duration}),this._totalDuration=i,this.player.debug.log("Playback",this.playbackList),0<this.playbackList.length&&this.setStartTime(this.playbackList[0].startTimestamp),this.setShowPrecision(ve)}get startTime(){return this._startTime||0}setStartTime(e){this._startTime=e,this._playStartTime=null}setRate(e){this._rate=e,this.player.emit(v.playbackRateChange,e)}get fps(){return this._fps}get rate(){return this._rate}get isUseFpsRender(){return this._isUseFpsRender}get isUseLocalCalculateTime(){return this._isUseLocalCalculateTime}get showPrecision(){return this._showPrecision}get is60Min(){return this.showPrecision===ve}get is30Min(){return this.showPrecision===be}get is10Min(){return"tenMin"===this.showPrecision}get is5Min(){return this.showPrecision===Ee}get is1Min(){return this.showPrecision===Ee}get isPlaybackPauseClearCache(){return this._isPlaybackPauseClearCache}get isCacheBeforeDecodeForFpsRender(){return this._isCacheBeforeDecodeForFpsRender}setShowPrecision(e){this._showPrecision&&this._showPrecision===e||(this._showPrecision=e,this.player.emit(v.playbackPrecision,this._showPrecision,this.playbackList))}setPlayingTimestamp(e){var e=this.startTime+e,t=(this._playingTimestamp=e,this.player.emit(v.playbackTime,e),new Date(e));this.player.emit(v.playbackTimestamp,{ts:e,hour:t.getHours(),min:t.getMinutes(),second:t.getSeconds()})}get playingTimestamp(){return this._playingTimestamp}narrowPrecision(){var e=Te.indexOf(this.showPrecision)-1;0<=e&&(e=Te[e],this.setShowPrecision(e))}expandPrecision(){var e=Te.indexOf(this.showPrecision)+1;e<=Te.length-1&&(e=Te[e],this.setShowPrecision(e))}seek(t){if(console.log(t),"true"===t.hasRecord){let e=t.time;"min"===t.type&&(e=60*t.time),this.player.emit(v.playbackSeek,function(e){let t={};return t=-1<e?{hour:Math.floor(e/60/60)%60,min:Math.floor(e/60)%60,second:e%60}:t}(e))}}}class qr extends t{constructor(e){super(),this.player=e,this.bindEvents=[],this.isDragging=!1,this.currentZoom=1,this.prevVideoElementStyleTransform=null,this.prevVideoElementStyleScale=null,this.tempPosition={x:0,y:0},this.videoPosition={left:0,top:0};var{proxy:t}=this.player["events"];this.player.on(v.zooming,e=>{if(e){this.player.$container.classList.add("jessibuca-zoom-control"),this._bindEvents();const e=this.player.video.$videoElement.style.transform;var t=this.player.video.$videoElement.style.left,i=this.player.video.$videoElement.style.top,t=parseFloat(t),i=parseFloat(i),t=(t&&(this.videoPosition.left=t),i&&(this.videoPosition.top=i),(this.prevVideoElementStyleTransform=e).match(/scale\([0-9., ]*\)/g));t&&t[0]&&(i=t[0].replace("scale(","").replace(")",""),this.prevVideoElementStyleScale=i.split(","))}else this.player.$container.classList.remove("jessibuca-zoom-control"),this._unbindEvents(),this._resetVideoPosition(),this.player.$container.style.cursor="auto",this.player.video.$videoElement.style.transform=this.prevVideoElementStyleTransform,this.prevVideoElementStyleTransform=null,this.prevVideoElementStyleScale=null}),t(window,"mouseup",e=>{this.handleMouseUp(e)}),e.debug.log("zoom","init")}destroy(){this.bindEvents=[],this.isDragging=!1,this.currentZoom=1,this.prevVideoElementStyleTransform=null,this.prevVideoElementStyleScale=null,this.tempPosition={x:0,y:0},this.videoPosition={left:0,top:0},this.off(),this.player.debug.log("zoom","destroy")}_bindEvents(){var e=this.player["events"]["proxy"],t=e(this.player.$container,"mousemove",e=>{this.handleMouseMove(e)}),t=(this.bindEvents.push(t),e(this.player.$container,"mousedown",e=>{this.handleMouseDown(e)}));this.bindEvents.push(t)}_unbindEvents(){this.bindEvents.forEach(e=>{e&&e()})}handleMouseMove(e){var t,i,r;e.stopPropagation(),this.isDragging&&this.player.zooming&&({posX:e,posY:t}=ft(e),i=this.tempPosition.x-e,r=this.tempPosition.y-t,this.videoPosition.left=this.videoPosition.left-i,this.videoPosition.top=this.videoPosition.top-r,this.tempPosition.x=e,this.tempPosition.y=t,this.updateVideoPosition())}handleMouseDown(e){e.stopPropagation();const t=w(e);if(this.player.zooming&&(t.matches("video")||t.matches("canvas"))){const{posX:t,posY:i}=ft(e);this.player.$container.style.cursor="grabbing",this.tempPosition.x=t,this.tempPosition.y=i,this.isDragging=!0,this.player.debug.log("zoom","handleMouseDown is dragging true")}}handleMouseUp(e){e.stopPropagation(),this.isDragging&&this.player.zooming&&(this.tempPosition={x:0,y:0},this.isDragging=!1,this.player.$container.style.cursor="grab",this.player.debug.log("zoom","handleMouseUp is dragging false"))}updateVideoPosition(){var e=this.player.video.$videoElement;e.style.left=this.videoPosition.left+"px",e.style.top=this.videoPosition.top+"px"}_resetVideoPosition(){this.player.resize(),this.tempPosition={x:0,y:0},this.videoPosition={left:0,top:0},this.currentZoom=1}narrowPrecision(){this.currentZoom<=1||(--this.currentZoom,this.updateVideoElementScale())}expandPrecision(){5<=this.currentZoom||(this.currentZoom+=1,this.updateVideoElementScale())}updateVideoElementScale(){const e=this.player.video.$videoElement;let t=e.style.transform,i=1,r=1;if(this.prevVideoElementStyleScale){const e=this.prevVideoElementStyleScale[0],t=(void 0!==e&&(i=e,r=e),this.prevVideoElementStyleScale[1]);void 0!==t&&(r=t)}r=T(r);var s=.5*(i=T(i))*(this.currentZoom-1)+i,a=.5*r*(this.currentZoom-1)+r,n=-1===t.indexOf("scale(")?t+` scale(${s},${a})`:t.replace(/scale\([0-9., ]*\)/,`scale(${s},${a})`);this.player.debug.log("zoom",`updateVideoElementScale end is ${s}, ${a} style is `+n),e.style.transform=n}}class Jr extends t{constructor(e){super(),this.player=e,this.faceDetector=null,this.objectDetector=null,this.initFaceDetector(),this.initObjectDetector(),this.player.debug.log("AiLoader","init")}initFaceDetector(){if(this.player._opt.useFaceDetector&&window.JessibucaProFaceDetector){const e=new JessibucaProFaceDetector({detectWidth:this.player._opt.aiFaceDetectWidth});e.load().then(()=>{this.player.debug.log("AiLoader","init face detector success"),this.faceDetector=e})}}initObjectDetector(){if(this.player._opt.useObjectDetector&&window.JessibucaProObjectDetector){const e=new JessibucaProObjectDetector({detectWidth:this.player._opt.aiObjectDetectWidth});e.load().then(()=>{this.player.debug.log("AiLoader","init object detector success"),this.objectDetector=e,this.objectDetector.on("jessibuca-pro-object-detector-info",e=>{e&&0<e.length&&this.player.emit(v.aiObjectDetectorInfo,e)})})}}destroy(){this.faceDetector&&(this.faceDetector.destroy(),this.faceDetector=null),this.objectDetector&&(this.objectDetector.destroy(),this.objectDetector=null),this.off()}}class Qr extends t{constructor(e){super(),this.player=e,this.LOG_NAME="Contextmenu",this.menuList=[],this.$contextmenus=e.control.$contextmenus,S()?this.player.debug.warn(this.LOG_NAME,"not support mobile"):this.init(),e.debug.log(this.LOG_NAME,"init")}destroy(){this.menuList=[],this.player.debug.log(this.LOG_NAME,"destroy")}get isShow(){return this.player.$container.classList.contains("jessibuca-contextmenus-show")}show(){this.player.$container.classList.add("jessibuca-contextmenus-show")}hide(){this.player.$container.classList.remove("jessibuca-contextmenus-show")}init(){var{proxy:e}=this.player["events"];0<this.player._opt.contextmenuBtns.length&&this.player._opt.contextmenuBtns.forEach(e=>{this.addMenuItem(e)}),e(this.player.$container,"contextmenu",e=>{e.preventDefault(),this.show();var t=e.clientX,e=e.clientY,{height:i,width:r,left:s,top:a}=this.player.$container.getBoundingClientRect(),{height:n,width:o}=this.$contextmenus.getBoundingClientRect();let l=t-s,c=e-a;s+r<t+o&&(l=r-o),a+i<e+n&&(c=i-n),E(this.$contextmenus,{left:l+"px",top:c+"px"})}),e(this.player.$container,"click",e=>{Mr(e,this.$contextmenus)||this.hide()}),this.player.on(v.blur,()=>{this.hide()})}_validateMenuItem(e){let t=!0;return e.content||(this.player.debug.warn(this.LOG_NAME,"content is required"),t=!1),t}addMenuItem(){let t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};var e,i,r,s,a=bt(je);t=Object.assign({},a,t),this._validateMenuItem(t)&&({events:{proxy:a},debug:e}=this.player,r=`
<div class="jessibuca-contextmenu jessibuca-contextmenu-${i=$e()}">
${t.content}
</div>
`,(s=Array.from(this.$contextmenus.children)[t.index])?s.insertAdjacentHTML("beforebegin",r):_r(this.$contextmenus,r),s=this.$contextmenus.querySelector(".jessibuca-contextmenu-"+i),t.click&&a(s,"click",e=>{e.preventDefault(),t.click.call(this.player,this,e),this.hide()}),this.menuList.push({uuid:i,$menuItem:s}))}}class Xr extends t{constructor(e,t){super(),this.$container=e;var i,e=St(),r=(this._opt=Object.assign({},e,t),this.debug=new Ne(this),this._opt.forceNoOffscreen=!0,S()&&(this._opt.controlAutoHide=!1),this._opt.forceNoOffscreen||("undefined"==typeof OffscreenCanvas?(this._opt.forceNoOffscreen=!0,this._opt.useOffscreen=!1):this._opt.useOffscreen=!0),(this._opt.isHls||this._opt.isWebrtc)&&(this._opt.useWCS=!1,this._opt.useMSE=!1,this._opt.isNakedFlow=!1),this._opt.isNakedFlow,this._opt.isHls||this._opt.isWebrtc||(this._opt.useWCS&&(this._opt.useWCS="VideoEncoder"in window,this._opt.useWCS||this.debug.warn("Player","useWCS is true, but not support so set useWCS false"),this._opt.useWCS)&&(this._opt.useOffscreen?this._opt.wcsUseVideoRender=!1:this._opt.wcsUseVideoRender&&(this._opt.wcsUseVideoRender=tt())),this._opt.useMSE&&(this._opt.useMSE=window.MediaSource&&window.MediaSource.isTypeSupported(ge),this._opt.useMSE||this.debug.warn("Player","useMSE is true, but not support so set useMSE false"))),this._opt.useMSE?(this._opt.useWCS&&this.debug.warn("Player","useMSE is true and useWCS is true then useWCS set true->false"),this._opt.forceNoOffscreen||this.debug.warn("Player","useMSE is true and forceNoOffscreen is false then forceNoOffscreen set false->true"),this._opt.useWCS=!1,this._opt.forceNoOffscreen=!0):this._opt.useWCS,!this._opt.useSIMD&&-1===this._opt.decoder.indexOf("-simd")||(this._opt.useSIMD=WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11])),this._opt.useSIMD)||this.debug.warn("Player","useSIMD is true, but not support so set useSIMD false"),this._opt.useSIMD?-1===this._opt.decoder.indexOf("-simd")&&(this._opt.decoder=this._opt.decoder.replace("decoder-pro","decoder-pro-simd")):-1!==this._opt.decoder.indexOf("-simd")&&(this._opt.decoder=this._opt.decoder.replace("decoder-pro-simd","decoder-pro")),this._opt.hasAudio||(this._opt.operateBtns.audio=!1),this._opt.hasVideo||(this._opt.operateBtns.fullscreen=!1,this._opt.operateBtns.screenshot=!1,this._opt.operateBtns.record=!1,this._opt.operateBtns.ptz=!1,this._opt.operateBtns.quality=!1,this._opt.operateBtns.zoom=!1),this._opt.qualityConfig&&0===this._opt.qualityConfig.length&&this._opt.operateBtns.quality&&(this._opt.operateBtns.quality=!1,this.debug.warn("Player","_opt.qualityConfig is empty, so set operateBtns.quality false")),this._opt.hasControl=this._hasControl(),this._loading=!1,this._playing=!1,this._playbackPause=!1,this._hasLoaded=!1,this._zooming=!1,this._destroyed=!1,this._checkHeartTimeout=null,this._checkLoadingTimeout=null,this._checkStatsInterval=null,this._checkVisibleHiddenTimeout=null,this._startBpsTime=null,this._isPlayingBeforePageHidden=!1,this._stats={buf:0,netBuf:0,fps:0,maxFps:0,dfps:0,abps:0,vbps:0,ts:0,mseTs:0,pTs:0,dts:0},this._allStatsData={},this._faceDetectActive=!1,this._objectDetectActive=!1,this._times={playInitStart:"",playStart:"",streamStart:"",streamResponse:"",demuxStart:"",decodeStart:"",videoStart:"",playTimestamp:"",streamTimestamp:"",streamResponseTimestamp:"",demuxTimestamp:"",decodeTimestamp:"",videoTimestamp:"",allTimestamp:""},this._videoTimestamp=0,this._audioTimestamp=0,this._videoIframeIntervalTs=0,this._streamQuality=this._opt.defaultStreamQuality||"",this._visibility=!0,this._lastestVisibilityChangeTimestamp=null,this._tempWorkerStats=null,this._isPlayback()&&(this._opt.useMSE=!1,this._opt.useWCS=!1),!1!==this._opt.useMSE||!1!==this._opt.useWCS||this._opt.isWebrtc||this._opt.isHls||(this._opt.useWasm=!0),(this._opt.isHls||this._opt.isWebrtc)&&(this._opt.hasVideo=!0,this._opt.hasAudio=!0),this._opt.hasVideo||(this._opt.useMSE=!1,this._opt.useWCS=!1),this._opt.useWasm&&(this._opt.useOffscreen?this._opt.wasmUseVideoRender=!1:this._opt.wasmUseVideoRender&&(this._opt.wasmUseVideoRender=Ze()&&tt(),this._opt.wasmUseVideoRender||this.debug.warn("Player","use wasm video render, but not support so set wasmUseVideoRender false")),this._opt.useSIMD?this.debug.log("Player","use simd wasm"):this.debug.log("Player","use wasm")),this._opt.useWasm&&(this._opt.useFaceDetector&&window.JessibucaProFaceDetector||this._opt.useObjectDetector&&window.JessibucaProObjectDetector)?(this.ai=new Jr(this),this._opt.useFaceDetector&&window.JessibucaProFaceDetector||(this._opt.operateBtns.aiFace=!1),this._opt.useObjectDetector&&window.JessibucaProObjectDetector||(this._opt.operateBtns.aiObject=!1)):(this._opt.operateBtns.aiObject=!1,this._opt.operateBtns.aiFace=!1),!this._opt.useFaceDetector||this._opt.useWasm&&window.JessibucaProFaceDetector||this.debug.warn("Player",`use face detector, useWasm is ${this._opt.useWasm} and window.JessibucaProFaceDetector is `+!!window.JessibucaProFaceDetector),!this._opt.useObjectDetector||this._opt.useWasm&&window.JessibucaProObjectDetector||this.debug.warn("Player",`use object detector, useWasm is ${this._opt.useWasm} and window.JessibucaProObjectDetector is `+!!window.JessibucaProObjectDetector),this._opt.useVideoRender&&(this._opt.useWasm&&!this._opt.useOffscreen?(this._opt.wasmUseVideoRender=Ze(),this._opt.wasmUseVideoRender||this.debug.warn("Player","use wasm video render, but not support so set wasmUseVideoRender false")):this._opt.useWCS&&!this._opt.useOffscreen&&(this._opt.wcsUseVideoRender=tt(),this._opt.wcsUseVideoRender||this.debug.warn("Player","use wcs video render, but not support so set wcsUseVideoRender false"))),this._opt.useCanvasRender&&(this._opt.useMSE&&(this._opt.mseUseCanvasRender=!0),this._opt.useWasm&&(this._opt.wasmUseVideoRender=!1),this._opt.useWCS&&(this._opt.wcsUseVideoRender=!1),this._opt.isHls)&&!Xe()&&(this._opt.hlsUseCanvasRender=!0),this._opt.useVideoRender=!1,this._opt.useCanvasRender=!1,this._opt.useWasm?this._opt.wasmUseVideoRender?this._opt.useVideoRender=!0:this._opt.useCanvasRender=!0:this._opt.useWCS?this._opt.wcsUseVideoRender?this._opt.useVideoRender=!0:this._opt.useCanvasRender=!0:this._opt.useMSE?this._opt.mseUseCanvasRender?this._opt.useCanvasRender=!0:this._opt.useVideoRender=!0:this._opt.isHls?this._opt.hlsUseCanvasRender?this._opt.useCanvasRender=!0:this._opt.useVideoRender=!0:this._opt.isWebrtc&&(this._opt.useVideoRender=!0),i=this,Object.defineProperty(i,"rect",{get:()=>{var e=i.$container.getBoundingClientRect();return e.width=Math.max(e.width,i.$container.clientWidth),e.height=Math.max(e.height,i.$container.clientHeight),e}}),["bottom","height","left","right","top","width"].forEach(e=>{Object.defineProperty(i,e,{get:()=>i.rect[e]})}),this.events=new Ve(this),this._opt.hasVideo&&(this.video=new Ut(this),this.recorder=new Ei(this)),this._opt.isHls?(this.hlsDecoder=new Wr(this),this.loaded=!0):this._opt.isWebrtc?(this._opt.isWebrtcForZLM?this.webrtc=new zr(this):this.webrtc=new Gr(this),this.loaded=!0):At(this._opt)?this.loaded=!0:this.decoderWorker=new Si(this),this._opt.hasAudio&&(this.audio=new ei(this)),this.stream=null,this.demux=null,this._lastVolume=null,this._isInZoom=!1,this._playingStartTimestamp=null,this._opt.useWCS&&(this.webcodecsDecoder=new Lr(this),this._opt.hasAudio||(this.loaded=!0)),this._opt.useMSE&&(this.mseDecoder=new jr(this),this._opt.hasAudio||(this.loaded=!0)),this.control=new Ur(this),0<this._opt.contextmenuBtns.length&&(this.contextmenu=new Qr(this)),this._isPlayback()&&(this.playback=new Kr(this,this._opt.playbackConfig),this.$container.classList.add("jessibuca-container-playback")),this._opt.operateBtns.zoom&&(this.zoom=new qr(this)),S()&&(this.keepScreenOn=new Hr(this)),this);try{const a=e=>{w(e)===r.$container&&(r.emit(ie.fullscreen,r.fullscreen),!r.fullscreen||r._opt.useMSE)&&r.resize()};f.on("change",a),r.events.destroys.push(()=>{f.off("change",a)})}catch(r){}if(r.on(v.decoderWorkerInit,()=>{r.debug.log("player","listen decoderWorkerInit and set loaded true"),r.loaded=!0}),r.on(v.play,()=>{r.loading=!1}),r.on(v.fullscreen,e=>{if(e)try{f.request(r.$container).then(()=>{}).catch(e=>{r.debug.error("player","fullscreen request error",e),S()&&r._opt.useWebFullScreen&&(r.webFullscreen=!0)})}catch(e){S()&&r._opt.useWebFullScreen&&(r.webFullscreen=!0)}else try{f.exit().then(()=>{r.webFullscreen&&(r.webFullscreen=!1)}).catch(e=>{r.debug.error("player","fullscreen exit error",e),r.webFullscreen&&(r.webFullscreen=!1)})}catch(e){r.webFullscreen&&(r.webFullscreen=!1)}}),S()&&r.on(v.webFullscreen,e=>{e?r.$container.classList.add("jessibuca-fullscreen-web"):r.$container.classList.remove("jessibuca-fullscreen-web"),r.emit(ie.fullscreen,r.fullscreen)}),r.on(v.resize,()=>{r.video&&r.video.resize()}),r._opt.debug){const n=[v.timeUpdate];Object.keys(v).forEach(t=>{r.on(v[t],e=>{n.includes(t)||r.debug.log("player events",v[t],e)})}),Object.keys(A).forEach(t=>{r.on(A[t],e=>{r.debug.log("player event error",A[t],e)})})}{var s=this;const{_opt:o,debug:l,events:{proxy:c}}=s;if(o.supportDblclickFullscreen&&c(s.$container,"dblclick",e=>{e=w(e).nodeName.toLowerCase();"canvas"!==e&&"video"!==e||(s.fullscreen=!s.fullscreen)}),c(document,"visibilitychange",()=>{s.visibility="visible"===document.visibilityState,l.log("visibilitychange",document.visibilityState),o.hiddenAutoPause&&(l.log("visibilitychange","hiddenAutoPause is true ",document.visibilityState,s._isPlayingBeforePageHidden),"visible"===document.visibilityState?s._isPlayingBeforePageHidden&&s.play():(s._isPlayingBeforePageHidden=s.playing,s.playing&&s.pause()))}),c(window,"fullscreenchange",()=>{null!==s.keepScreenOn&&"visible"===document.visibilityState&&s.enableWakeLock()}),c(document,["click","contextmenu"],e=>{Mr(e,s.$container)?(s.isInput="INPUT"===e.target.tagName,s.isFocus=!0,s.emit(v.focus)):(s.isInput=!1,s.isFocus=!1,s.emit(v.blur))}),o.autoResize){const o=et(()=>{s.resize()},500);c(window,["resize","orientationchange"],()=>{o()}),screen&&screen.orientation&&screen.orientation.onchange&&c(screen.orientation,"change",()=>{o()})}}if(dt(this._opt.watermarkConfig)){const e=Object.assign(this._opt.watermarkConfig,{container:this.$container});this._removeWatermarkFn=function(){var t=st(e);const i=t.container;if(i){var r=null;const n=document.createElement("div");n.setAttribute("style","pointer-events: none !important; display: block !important");var r="function"==typeof n.attachShadow?n.attachShadow({mode:"open"}):n.shadowRoot||n,s=i.children,a=Math.floor(Math.random()*(s.length-1)),s=(s[a]?i.insertBefore(n,s[a]):i.appendChild(n),document.createElement("div"));let e=null;return t.image&&t.image.src?((e=document.createElement("img")).style.height="100%",e.style.width="100%",e.style.objectFit="contain",e.src=t.image.src):t.text&&t.text.content&&(e=document.createTextNode(t.text.content)),e?(s.appendChild(e),s.style.visibility="",s.style.position="absolute",s.style.display="block",s.style["-ms-user-select"]="none",s.style["-moz-user-select"]="none",s.style["-webkit-user-select"]="none",s.style["-o-user-select"]="none",s.style["user-select"]="none",s.style["-webkit-touch-callout"]="none",s.style["-webkit-tap-highlight-color"]="rgba(0,0,0,0)",s.style["-webkit-text-size-adjust"]="none",s.style["-webkit-touch-callout"]="none",s.style.opacity=t.opacity,u(t.left)&&(s.style.left=t.left+"px"),u(t.right)&&(s.style.right=t.right+"px"),u(t.top)&&(s.style.top=t.top+"px"),u(t.bottom)&&(s.style.bottom=t.bottom+"px"),s.style.overflow="hidden",s.style.zIndex="9999999",t.image&&t.image.src?(s.style.width=t.image.width+"px",s.style.height=t.image.height+"px"):t.text&&t.text.content&&(s.style.fontSize=t.text.fontSize+"px",s.style.color=t.text.color),r.appendChild(s),()=>{i.removeChild(n)}):void 0}}()}this._opt.useWCS&&this.debug.log("Player","use WCS"),this._opt.useMSE&&this.debug.log("Player","use MSE"),this._opt.useOffscreen&&this.debug.log("Player","use offscreen"),this._opt.isHls&&this.debug.log("Player","use hls"),this._opt.isWebrtc&&this.debug.log("Player","use webrtc"),this._isPlayback()&&this.debug.log("Player","use playback"),this._opt.hasVideo&&(0===this.width&&this.debug.error("Player","container width is 0, please check the container width"),0===this.height)&&this.debug.error("Player","container height is 0, please check the container height"),this.debug.log("Player options",this._opt)}destroy(){this._destroyed=!0,this.emit("destroy"),this.off(),this.clearCheckHeartTimeout(),this.clearCheckLoadingTimeout(),this.clearStatsInterval(),this.clearVisibilityHiddenTimeout(),this._loading=!1,this._playing=!1,this._playbackPause=!1,this._hasLoaded=!1,this._lastVolume=null,this._zooming=!1,this._faceDetectActive=!1,this._objectDetectActive=!1,this._times={playInitStart:"",playStart:"",streamStart:"",streamResponse:"",demuxStart:"",decodeStart:"",videoStart:"",playTimestamp:"",streamTimestamp:"",streamResponseTimestamp:"",demuxTimestamp:"",decodeTimestamp:"",videoTimestamp:"",allTimestamp:""},this._opt=St(),this.decoderWorker&&(this.decoderWorker.destroy(),this.decoderWorker=null),this.mseDecoder&&(this.mseDecoder.destroy(),this.mseDecoder=null),this.video&&(this.video.destroy(),this.video=null),this.audio&&(this.audio.destroy(),this.audio=null),this.stream&&(this.stream.destroy(),this.stream=null),this.recorder&&(this.recorder.destroy(),this.recorder=null),this.control&&(this.control.destroy(),this.control=null),this.webcodecsDecoder&&(this.webcodecsDecoder.destroy(),this.webcodecsDecoder=null),this.demux&&(this.demux.destroy(),this.demux=null),this.hlsDecoder&&(this.hlsDecoder.destroy(),this.hlsDecoder=null),this.events&&(this.events.destroy(),this.events=null),this.playback&&(this.playback.destroy(),this.playback=null),this.zoom&&(this.zoom.destroy(),this.zoom=null),this.ai&&(this.ai.destroy(),this.ai=null),this.releaseWakeLock(),this.keepScreenOn=null,this.resetStats(),this._audioTimestamp=0,this._videoTimestamp=0,this._streamQuality="",this._visibility=!0,this._isInZoom=!1,this._playingStartTimestamp=null,this._lastestVisibilityChangeTimestamp=null,this._videoIframeIntervalTs=null,this._tempWorkerStats=null,this._removeWatermarkFn&&(this._removeWatermarkFn(),this._removeWatermarkFn=null),this.$container=null,this.debug.log("play","destroy end")}set fullscreen(e){S()&&this._opt.useWebFullScreen?(this.emit(v.webFullscreen,e),setTimeout(()=>{this.updateOption({rotate:e?270:0}),this.resize()},10)):this.emit(v.fullscreen,e)}get fullscreen(){return f.isFullscreen||this.webFullscreen}set webFullscreen(e){this.emit(v.webFullscreen,e)}get webFullscreen(){return this.$container.classList.contains("jessibuca-fullscreen-web")}set loaded(e){this._hasLoaded=e}get loaded(){return this._hasLoaded||this._opt.isHls||this._opt.isWebrtc||this._opt.useMSE&&!this._opt.hasAudio||this._opt.useWCS&&!this._opt.hasAudio}set playing(e){e&&(this.loading=!1),this.playing!==e&&(this._playing=e,this.emit(v.playing,e),this.emit(v.volumechange,this.volume),e?this.emit(v.play):this.emit(v.pause))}get playing(){return this._playing}get volume(){return this.audio&&this.audio.volume||0}set volume(e){e!==this.volume&&(this.audio?(this.audio.setVolume(e),this._lastVolume=this.volume):this.debug.error("Player","set volume error, audio is null"))}get lastVolume(){return this._lastVolume}set loading(e){this.loading!==e&&(this._loading=e,this.emit(v.loading,this._loading))}get loading(){return this._loading}set zooming(e){this.zooming!==e&&(this.zoom||(this.zoom=new qr(this)),this._zooming=e,this.emit(v.zooming,this.zooming))}get zooming(){return this._zooming}set recording(e){e?this.playing&&!this.recording&&(this.recorder&&this.recorder.startRecord(),this._opt.useWasm)&&this.decoderWorker.updateWorkConfig({key:"isRecording",value:!0}):this.recording&&(this._opt.useWasm&&this.decoderWorker.updateWorkConfig({key:"isRecording",value:!1}),this.recorder)&&this.recorder.stopRecordAndSave().then(()=>{}).catch(e=>{})}get recording(){return!!this.recorder&&this.recorder.isRecording}set audioTimestamp(e){null!==e&&(this._audioTimestamp=e)}get audioTimestamp(){return this._audioTimestamp}set videoTimestamp(e){null!==e&&(this._videoTimestamp=e,this._opt.useWCS||this._opt.useMSE||this.audioTimestamp&&this.videoTimestamp&&this.audio&&this.audio.emit(v.videoSyncAudio,{audioTimestamp:this.audioTimestamp,videoTimestamp:this.videoTimestamp,diff:this.audioTimestamp-this.videoTimestamp}))}set streamQuality(e){this.streamQuality!==e&&(this._streamQuality=e,this.emit(v.streamQualityChange,e))}get streamQuality(){return this._streamQuality}get videoTimestamp(){return this._videoTimestamp}get isDebug(){return!0===this._opt.debug}get scaleType(){var e=this._opt,t=e.isResize,e=e.isFullResize;let i=0;return!1===e&&!1===t?i=0:!1===e&&!0===t?i=1:!0===e&&!0===t&&(i=2),i}set visibility(e){this._visibility!==e&&(this._visibility=e,this.emit(v.visibilityChange,e),this._lastestVisibilityChangeTimestamp=m(),e?this.clearVisibilityHiddenTimeout():this.startVisibilityHiddenTimeout())}get visibility(){return this._visibility}set playbackPause(e){this._playbackPause!==e&&(this._playbackPause=e,this.emit(v.playbackPause,e),this.emit(v.playbackPauseOrResume,e))}get playbackPause(){return this._playbackPause}set videoIframeIntervalTs(e){this._videoIframeIntervalTs=e}get videoIframeIntervalTs(){return this._videoIframeIntervalTs}set faceDetectActive(e){this._faceDetectActive!==e&&(this._faceDetectActive=e,this.emit(v.faceDetectActive,e))}get faceDetectActive(){return this._faceDetectActive}set objectDetectActive(e){this._objectDetectActive!==e&&(this._objectDetectActive=e,this.emit(v.objectDetectActive,e))}get objectDetectActive(){return this._objectDetectActive}get isUseWorkerDemuxAndDecode(){return this.stream&&this.stream.getStreamType()===U}isDestroyed(){return this._destroyed}updateOption(e){this._opt=Object.assign({},this._opt,e)}init(){return new Promise((e,t)=>{this.video||this._opt.hasVideo&&(this.video=new Ut(this)),this.audio||this._opt.hasAudio&&(this.audio=new ei(this)),this.stream||(this.stream=new oi(this)),this._opt.isHls?(this.hlsDecoder||(this.hlsDecoder=new Wr(this),this.loaded=!0),e()):this._opt.isWebrtc?(this.webrtc||(this._opt.isWebrtcForZLM?this.webrtc=new zr(this):this.webrtc=new Gr(this),this.loaded=!0),e()):(this.demux||this._opt.hasVideo&&!this.isUseWorkerDemuxAndDecode&&(this.demux=new Dr(this)),this._opt.useWCS&&!this.webcodecsDecoder&&(this.webcodecsDecoder=new Lr(this)),this._opt.useMSE&&!this.mseDecoder&&(this.mseDecoder=new jr(this)),this.decoderWorker?this.loaded?e():this.once(v.decoderWorkerInit,()=>{e()}):At(this._opt)?e():(this.decoderWorker=new Si(this),this.once(v.decoderWorkerInit,()=>{e()})))})}play(i,r){return new Promise((e,t)=>{if(!i&&!this._opt.url)return t("url is empty");this.loading=!0,this.playing=!1,this._times.playInitStart=m(),i=i||this._opt.url,this._opt.url=i,this.clearCheckHeartTimeout(),this.init().then(()=>{this._times.playStart=m(),this._opt.isNotMute&&this.mute(!1),this.webcodecsDecoder&&this.webcodecsDecoder.once(A.webcodecsH265NotSupport,()=>{this.emit(A.webcodecsH265NotSupport),this._opt.autoWasm||this.emit(v.error,A.webcodecsH265NotSupport)}),this.mseDecoder&&(this.mseDecoder.once(A.mediaSourceH265NotSupport,()=>{this.emit(A.mediaSourceH265NotSupport),this._opt.autoWasm||this.emit(v.error,A.mediaSourceH265NotSupport)}),this.mseDecoder.once(A.mediaSourceFull,()=>{this.emit(A.mediaSourceFull)}),this.mseDecoder.once(A.mediaSourceAppendBufferError,()=>{this.emit(A.mediaSourceAppendBufferError)}),this.mseDecoder.once(A.mediaSourceBufferListLarge,()=>{this.emit(A.mediaSourceBufferListLarge)}),this.mseDecoder.once(A.mediaSourceAppendBufferEndTimeout,()=>{this.emit(A.mediaSourceAppendBufferEndTimeout)}),this.mseDecoder.once(A.mediaSourceDecoderConfigurationError,()=>{this.emit(A.mediaSourceDecoderConfigurationError)})),this.enableWakeLock(),this.checkLoadingTimeout(),this.stream?(this.stream.once(A.fetchError,e=>{this.emit(A.fetchError,e),t(e)}),this.stream.once(A.websocketError,e=>{this.emit(A.websocketError,e),t(e)}),this.stream.once(v.streamEnd,()=>{t("stream end")}),this.stream.once(A.hlsError,e=>{t(e)}),this.stream.once(A.webrtcError,e=>{t(e)}),this.stream.once(v.streamSuccess,()=>{e(),this._times.streamResponse=m(),this.video&&this.video.play(),this.checkStatsInterval(),this.isPlayback()&&this.playback&&this.playback.startCheckStatsInterval()}),this.stream.fetchStream(i,r)):this.debug.warn("player","play() this.stream is null")}).catch(e=>{t(e)})})}close(){return new Promise((e,t)=>{this._close().then(()=>{this.video&&this.video.clearView(),e()}).catch(e=>{t(e)})})}resumeAudioAfterPause(){this.lastVolume&&(this.volume=this.lastVolume)}_close(){return new Promise((e,t)=>{this.stream&&(this.stream.destroy(),this.stream=null),this.demux&&(this.demux.destroy(),this.demux=null),this.decoderWorker&&(this.decoderWorker.destroy(),this.decoderWorker=null),this.webcodecsDecoder&&(this.webcodecsDecoder.destroy(),this.webcodecsDecoder=null),this.mseDecoder&&(this.mseDecoder.destroy(),this.mseDecoder=null),this.hlsDecoder&&(this.hlsDecoder.destroy(),this.hlsDecoder=null),this.webrtc&&(this.webrtc.destroy(),this.webrtc=null),this.audio&&(this.audio.destroy(),this.audio=null),this.clearCheckHeartTimeout(),this.clearCheckLoadingTimeout(),this.clearStatsInterval(),this.isPlayback()&&this.playback&&this.playback.clearStatsInterval(),this.loading=!1,this.recording=!1,this.zooming=!1,this.playing=!1,this.video&&(this.video.resetInit(),this.video.pause(!0)),this.releaseWakeLock(),this.resetStats(),this._audioTimestamp=0,this._videoTimestamp=0,this._times={playInitStart:"",playStart:"",streamStart:"",streamResponse:"",demuxStart:"",decodeStart:"",videoStart:"",playTimestamp:"",streamTimestamp:"",streamResponseTimestamp:"",demuxTimestamp:"",decodeTimestamp:"",videoTimestamp:"",allTimestamp:""},setTimeout(()=>{e()},0)})}pause(){let i=0<arguments.length&&void 0!==arguments[0]&&arguments[0];return new Promise((e,t)=>{i?this.close().then(()=>{e()}).catch(e=>{t(e)}):this._close().then(()=>{e()}).catch(e=>{t(e)})})}isAudioMute(){let e=!0;return e=this.audio?this.audio.isMute:e}isAudioNotMute(){return!this.isAudioMute()}mute(e){this.audio&&this.audio.mute(e)}resize(){this.video&&this.video.resize()}startRecord(e,t){this.recording||(this.recorder.setFileName(e,t),this.recording=!0)}stopRecordAndSave(e,r){return new Promise((t,i)=>{this.recorder||i("recorder is null"),this.recording?(this._opt.useWasm&&this.decoderWorker.updateWorkConfig({key:"isRecording",value:!0}),this.recorder.stopRecordAndSave(e,r).then(e=>{t(e)}).catch(e=>{i(e)})):i("recorder is not recording")})}_hasControl(){let e=!1,t=!1;return Object.keys(this._opt.operateBtns).forEach(e=>{this._opt.operateBtns[e]&&-1===(""+e).indexOf("Fn")&&(t=!0)}),(this._opt.showBandwidth||t)&&(e=!0),e=this._isPlayback()&&this._opt.playbackConfig.showControl?!0:e}_isPlayback(){return this._opt.playType===y}useWasmDecode(){return!1===this._opt.useMSE&&!1===this._opt.useWCS}canVideoTrackWritter(){var e=this._opt;return!e.isHls&&!e.isWebrtc&&!e.useMSE&&(e.useWCS&&!e.useOffscreen&&e.wcsUseVideoRender||this.useWasmDecode())}checkHeart(){this.clearCheckHeartTimeout(),this.checkHeartTimeout()}checkHeartTimeout(){this._checkHeartTimeout=setTimeout(()=>{!1===this.playbackPause&&this.playing?0!==this._stats.fps?this.debug.warn("player","checkHeartTimeout but fps is "+this._stats.fps):this.isDestroyed()?this.debug&&this.debug.warn("player","checkHeartTimeout but player is destroyed"):(this.debug.warn("player","checkHeartTimeout and pause and emit delayTimeout event"),this.pause(!1).then(()=>{this.emit(v.timeout,v.delayTimeout),this.emit(v.delayTimeout)})):this.debug.warn("player",`playbackPause is ${this.playbackPause}, playing is `+this.playing)},1e3*this._opt.heartTimeout)}checkStatsInterval(){this._checkStatsInterval=setInterval(()=>{this.updateStats()},1e3)}clearCheckHeartTimeout(){this._checkHeartTimeout&&(clearTimeout(this._checkHeartTimeout),this._checkHeartTimeout=null)}checkLoadingTimeout(){this._checkLoadingTimeout=setTimeout(()=>{this.playing?this.debug.warn("player",`checkLoadingTimeout but loading is ${this.loading} and playing is `+this.playing):this.isDestroyed()?this.debug&&this.debug.warn("player","checkLoadingTimeout but player is destroyed"):(this.debug.warn("player","checkLoadingTimeout and pause and emit loadingTimeout event"),this.pause(!1).then(()=>{this.emit(v.timeout,v.loadingTimeout),this.emit(v.loadingTimeout)}))},1e3*this._opt.loadingTimeout)}clearCheckLoadingTimeout(){this._checkLoadingTimeout&&(this.debug.log("player","clearCheckLoadingTimeout"),clearTimeout(this._checkLoadingTimeout),this._checkLoadingTimeout=null)}clearStatsInterval(){this._checkStatsInterval&&(clearInterval(this._checkStatsInterval),this._checkStatsInterval=null)}handleRender(){this.isDestroyed()?this.debug&&this.debug.warn("player","handleRender but player is destroyed"):(this.loading&&(this.clearCheckLoadingTimeout(),this.emit(v.start),this.loading=!1),this.playing||(this.playing=!0),this.checkHeart())}updateStats(h){h=h||{},this._startBpsTime||(this._startBpsTime=m()),c(h.ts)&&(this._stats.ts=h.ts,null===this._playingStartTimestamp)&&0<h.ts&&(this._playingStartTimestamp=h.ts),c(h.dts)&&(this._stats.dts=h.dts),c(h.mseTs)&&(this._stats.mseTs=h.mseTs),c(h.buf)&&(this._stats.buf=h.buf),c(h.netBuf)&&(this._stats.netBuf=h.netBuf),h.fps&&(this._stats.fps+=1),h.dfps&&(this._stats.dfps+=1),h.abps&&(this._stats.abps+=h.abps),h.vbps&&(this._stats.vbps+=h.vbps),h.workerStats&&(this._tempWorkerStats=h.workerStats);const p=m();if(!(p-this._startBpsTime<1e3)){null!==this._playingStartTimestamp&&(this._stats.pTs+=1);let e=0,t=0,i=0,r=(this._opt.useMSE&&this.mseDecoder&&(e=this.mseDecoder.checkSourceBufferDelay(),e=parseInt(1e3*e,10),t=this.mseDecoder.getDecodeDiffTimes(),i=this.mseDecoder.getDecodePlaybackRate()),this._opt.useWCS&&this.webcodecsDecoder&&(t=this.webcodecsDecoder.getDecodeDiffTimes()),this._opt.isHls&&this.hlsDecoder&&(e=this.hlsDecoder.checkHlsBufferedDelay(),e=parseInt(1e3*e,10),i=this.hlsDecoder.getDecodePlaybackRate()),0),s=0,a=0,n=!1,o=!1,l=0,c=(this.demux&&(n=this.demux.isDropping()),this._opt.useWasm?this._tempWorkerStats&&(s=this._tempWorkerStats.demuxBufferDelay,a=this._tempWorkerStats.audioDemuxBufferDelay,r=this._tempWorkerStats.flvBufferByteLength,this._stats.netBuf=this._tempWorkerStats.netBuf,n=this._tempWorkerStats.isDropping,l=this._tempWorkerStats.pushLatestDelay,o=this._tempWorkerStats.isStreamTsMoreThanLocal):this.demux&&(r=this.demux.getInputByteLength(),l=this.demux.getPushLatestDelay(),o=this.demux.getIsStreamTsMoreThanLocal(),this.demux.bufferList)&&(s=this.demux.bufferList.length),0),u=(this.audio&&this.audio.bufferList&&(c=this.audio.bufferList.length),0),d=0;if(this.isPlayback()&&this.video){this._opt.playbackConfig.isUseFpsRender&&(u=this.video.bufferList&&this.video.bufferList.length||0);h=this.video.getStreamFps();const p=0<h?1e3/h:0;d=parseInt(p*u+p*s,10)}var h=this._stats.dts-this._stats.ts,f=h+this._stats.netBuf;this._opt.isHls&&(this._stats.fps=this.hlsDecoder.getFps()),this._stats.fps>this._stats.maxFps&&(this._stats.maxFps=this._stats.fps),this._allStatsData=Object.assign(this._stats,{audioBuffer:c,audioTs:this.audioTimestamp,playbackVideoBuffer:u,playbackVideoWaitingBuffer:0,playbackAudioWaitingBuffer:0,playbackCacheDataDuration:d,demuxBuffer:s,pushLatestDelay:l,audioDemuxBuffer:a,flvBuffer:r,mseDelay:e,mseDecodeDiffTimes:t,mseDecodePlaybackRate:i,wcsDecodeDiffTimes:t,hlsDelay:e,hlsDecodePlaybackRate:i,delayTs:h,totalDelayTs:f,isDropping:n,isStreamTsMoreThanLocal:o}),this.emit(v.stats,this._allStatsData),1048576<this._allStatsData.flvBuffer&&this.emit(A.flvDemuxBufferSizeTooLarge,this._allStatsData.flvBuffer),this._opt.hasVideo&&this.emit(v.performance,function(e){let t=0;return 24<=e?t=2:15<=e&&(t=1),t}(this._stats.fps)),this._stats.fps=0,this._stats.dfps=0,this._stats.abps=0,this._stats.vbps=0,this._startBpsTime=p}}resetStats(){this._startBpsTime=null,this._playingStartTimestamp=null,this._stats={buf:0,netBuf:0,fps:0,maxFps:0,dfps:0,abps:0,vbps:0,ts:0,mseTs:0,pTs:0,dts:0},this._allStatsData={}}enableWakeLock(){this._opt.keepScreenOn&&this.keepScreenOn&&this.keepScreenOn.enable()}releaseWakeLock(){this._opt.keepScreenOn&&this.keepScreenOn&&this.keepScreenOn.disable()}clearBufferDelay(){this._opt.useWasm?this.decoderWorker&&this.decoderWorker.clearWorkBuffer(!0):this.demux&&this.demux.clearBuffer(!0)}doDestroy(){this.emit(v.beforeDestroy)}handlePlayToRenderTimes(){var e=this.getPlayToRenderTimes();this.emit(v.playToRenderTimes,e)}getPlayToRenderTimes(){var e=this._times;return e.playTimestamp=e.playStart-e.playInitStart,e.streamTimestamp=e.streamStart-e.playStart,e.streamResponseTimestamp=e.streamResponse-e.streamStart,e.demuxTimestamp=e.demuxStart-e.streamResponse,e.decodeTimestamp=e.decodeStart-e.demuxStart,e.videoTimestamp=e.videoStart-e.decodeStart,e.allTimestamp=e.videoStart-e.playInitStart,e}getOption(){return this._opt}isPlayer(){return this._opt.playType===n}isPlayback(){return this._opt.playType===y}isDemuxSetCodecInit(){let e=!0,t=this._opt;return t.useWCS&&!t.useOffscreen?e=this.webcodecsDecoder.hasInit:t.useMSE&&(e=this.mseDecoder.hasInit),e}isDemuxDecodeFirstIIframeInit(){let e=!0,t=this._opt;return t.useWCS&&!t.useOffscreen?e=!!this.webcodecsDecoder&&this.webcodecsDecoder.isDecodeFirstIIframe:t.useMSE&&(e=!!this.mseDecoder&&this.mseDecoder.isDecodeFirstIIframe),e}isAudioPlaybackRateSpeed(){let e=!1;return e=this.audio?this.audio.isPlaybackRateSpeed():e}getPlayingTimestamp(){return this._stats.pTs}getRecordingType(){let e=null;return e=this.recorder?this.recorder.getType():e}getRecordingByteLength(){let e=0;return e=this.recording?this.recorder.getToTalByteLength():e}getRecordingDuration(){let e=0;return e=this.recording?this.recorder.getTotalDuration():e}getDecodeType(){let e="";var t=this.getOption();return t.useMSE&&(e+="mse "),t.useWCS&&(e+="wcs "),t.useWasm&&(e+="wasm ",t.useSIMD)&&(e+="simd "),t.useOffscreen&&(e+="offscreen "),e}getDemuxType(){return this.getOption().demuxType}getRenderType(){let e="";return e=this.video?this.video.getType():e}getAudioEngineType(){let e="";return e=this.audio?this.audio.getEngineType():e}getStreamType(){let e="";return e=this.stream?this.stream.getStreamType():e}getAllStatsData(){return this._allStatsData}togglePerformancePanel(e){this.updateOption({showPerformance:e}),this.emit(v.togglePerformancePanel,e)}setScaleMode(e){var t={isFullResize:!1,isResize:!1};switch(e=Number(e)){case 0:t.isFullResize=!1,t.isResize=!1;break;case 1:t.isFullResize=!1,t.isResize=!0;break;case 2:t.isFullResize=!0,t.isResize=!0}this.updateOption(t),this.resize(),this.emit(v.viewResizeChange,e)}startVisibilityHiddenTimeout(){this.clearVisibilityHiddenTimeout(),0<this._opt.pageVisibilityHiddenTimeout&&(this.visibilityHiddenTimeout=setTimeout(()=>{this.emit(v.visibilityHiddenTimeout)},1e3*this._opt.pageVisibilityHiddenTimeout))}clearVisibilityHiddenTimeout(){this._checkVisibleHiddenTimeout&&(clearTimeout(this._checkVisibleHiddenTimeout),this._checkVisibleHiddenTimeout=null)}faceDetect(e){this.faceDetectActive=e}objectDetect(e){this.objectDetectActive=e}downloadNakedFlowFile(){this.demux&&this.demux.downloadNakedFlowFile&&this.demux.downloadNakedFlowFile()}hasCacheOnGopBuffer(){var e=this.videoIframeIntervalTs,t=this._allStatsData.demuxBuffer,i=this._allStatsData.maxFps;let r=e&&t&&i?e<1e3/i*t:!1;return r}addContentToCanvas(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:[];this.video&&0<e.length&&this.video.addContentToCanvas(e)}sendWebsocketMessage(e){var t=this.getStreamType();t===M||t===U+" "+M?this.stream.sendMessage(e):this.debug.warn("player","sendWebsocketMessage: stream type is not websocket, current stream type is "+this.getStreamType())}checkIsInRender(){var e=this._stats;return 0<e.vbps&&0<e.fps}}class Yr{constructor(e){var{fromSampleRate:e,toSampleRate:t,channels:i,inputBufferSize:r}=e;if(!e||!t||!i)throw new Error("Invalid settings specified for the resampler.");this.resampler=null,this.fromSampleRate=e,this.toSampleRate=t,this.channels=i||0,this.inputBufferSize=r,this.initialize()}initialize(){this.fromSampleRate==this.toSampleRate?(this.resampler=e=>e,this.ratioWeight=1):(this.fromSampleRate<this.toSampleRate?(this.linearInterpolation(),this.lastWeight=1):(this.multiTap(),this.tailExists=!1,this.lastWeight=0),this.initializeBuffers(),this.ratioWeight=this.fromSampleRate/this.toSampleRate)}bufferSlice(t){try{return this.outputBuffer.subarray(0,t)}catch(e){try{return this.outputBuffer.length=t,this.outputBuffer}catch(e){return this.outputBuffer.slice(0,t)}}}initializeBuffers(){this.outputBufferSize=Math.ceil(this.inputBufferSize*this.toSampleRate/this.fromSampleRate/this.channels*1.0000004768371582)+this.channels+this.channels;try{this.outputBuffer=new Float32Array(this.outputBufferSize),this.lastOutput=new Float32Array(this.channels)}catch(e){this.outputBuffer=[],this.lastOutput=[]}}linearInterpolation(){this.resampler=e=>{let t,i,r,s,a,n,o,l,c,u=e.length,d=this.channels;if(u%d!=0)throw new Error("Buffer was of incorrect sample length.");if(u<=0)return[];for(t=this.outputBufferSize,i=this.ratioWeight,r=this.lastWeight,s=0,a=0,n=0,o=0,l=this.outputBuffer;r<1;r+=i)for(a=r%1,s=1-a,this.lastWeight=r%1,c=0;c<this.channels;++c)l[o++]=this.lastOutput[c]*s+e[c]*a;for(--r,u-=d,n=Math.floor(r)*d;o<t&&n<u;){for(a=r%1,s=1-a,c=0;c<this.channels;++c)l[o++]=e[n+(0<c?c:0)]*s+e[n+(d+c)]*a;r+=i,n=Math.floor(r)*d}for(c=0;c<d;++c)this.lastOutput[c]=e[n++];return this.bufferSlice(o)}}multiTap(){this.resampler=e=>{let t,i,r,s,a,n,o,l,c,u,d,h=e.length,p=this.channels;if(h%p!=0)throw new Error("Buffer was of incorrect sample length.");if(h<=0)return[];for(t=this.outputBufferSize,i=[],r=this.ratioWeight,s=0,n=0,l=!this.tailExists,this.tailExists=!1,c=this.outputBuffer,u=0,d=0,a=0;a<p;++a)i[a]=0;do{if(l)for(s=r,a=0;a<p;++a)i[a]=0;else{for(s=this.lastWeight,a=0;a<p;++a)i[a]=this.lastOutput[a];l=!0}for(;0<s&&n<h;){if(o=1+n-d,!(s>=o)){for(a=0;a<p;++a)i[a]+=e[n+(0<a?a:0)]*s;d+=s,s=0;break}for(a=0;a<p;++a)i[a]+=e[n++]*o;d=n,s-=o}if(0!==s){for(this.lastWeight=s,a=0;a<p;++a)this.lastOutput[a]=i[a];this.tailExists=!0;break}for(a=0;a<p;++a)c[u++]=i[a]/r}while(n<h&&u<t);return this.bufferSlice(u)}}resample(e){return this.fromSampleRate==this.toSampleRate?this.ratioWeight=1:(this.fromSampleRate<this.toSampleRate?this.lastWeight=1:(this.tailExists=!1,this.lastWeight=0),this.initializeBuffers(),this.ratioWeight=this.fromSampleRate/this.toSampleRate),this.resampler(e)}}const Zr=[255,511,1023,2047,4095,8191,16383,32767];function $r(t,i,r){for(let e=0;e<r;e++)if(t<=i[e])return e;return r}class es extends t{constructor(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},e=(super(),e&&(this.player=e),this.tag="talk",bt(Fe));this._opt=Object.assign({},e,t),this._opt.sampleRate=parseInt(this._opt.sampleRate,10),this._opt.sampleBitsWidth=parseInt(this._opt.sampleBitsWidth,10),this.audioContext=null,this.gainNode=null,this.recorder=null,this.workletRecorder=null,this.biquadFilter=null,this.userMediaStream=null,this.bufferSize=512,this._opt.audioBufferLength=this.calcAudioBufferLength(),this.audioBufferList=[],this.socket=null,this.socketStatus=se,this.mediaStreamSource=null,this.heartInterval=null,this.checkGetUserMediaTimeout=null,this.wsUrl=null,this.startTimestamp=0,this.sequenceId=0,this.tempTimestamp=null,this.tempRtpBufferList=[],this.events=new Ve(this),this._initTalk(),this.player||(this.debug=new Ne(this)),this.log(this.tag,"init",this._opt)}destroy(){this.userMediaStream&&(this.userMediaStream.getTracks&&this.userMediaStream.getTracks().forEach(e=>{e.stop()}),this.userMediaStream=null),this.mediaStreamSource&&(this.mediaStreamSource.disconnect(),this.mediaStreamSource=null),this.recorder&&(this.recorder.disconnect(),this.recorder.onaudioprocess=null),this.biquadFilter&&(this.biquadFilter.disconnect(),this.biquadFilter=null),this.gainNode&&(this.gainNode.disconnect(),this.gainNode=null),this.workletRecorder&&(this.workletRecorder.disconnect(),this.workletRecorder=null),this.socket&&(this.socketStatus===ae&&this._sendClose(),this.socket.close(),this.socket=null),this._stopHeartInterval(),this._stopCheckGetUserMediaTimeout(),this.audioContext=null,this.gainNode=null,this.recorder=null,this.audioBufferList=[],this.sequenceId=0,this.wsUrl=null,this.tempTimestamp=null,this.tempRtpBufferList=[],this.startTimestamp=0,this.log("talk","destroy")}addRtpToBuffer(e){var t=e.length+this.tempRtpBufferList.length,t=new Uint8Array(t);t.set(this.tempRtpBufferList,0),t.set(e,this.tempRtpBufferList.length),this.tempRtpBufferList=t}downloadRtpFile(){var e=new Blob([this.tempRtpBufferList]);try{var t=document.createElement("a");t.href=window.URL.createObjectURL(e),t.download=Date.now()+".rtp",t.click()}catch(e){console.error("downloadRtpFile",e)}}calcAudioBufferLength(){var e=this._opt["sampleRate"];return 8*e*.02/8}get socketStatusOpen(){return this.socketStatus===ae}log(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this._log("log",...t)}warn(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this._log("warn",...t)}error(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this._log("error",...t)}_log(e){for(var t=arguments.length,i=new Array(1<t?t-1:0),r=1;r<t;r++)i[r-1]=arguments[r];(this.player?this.player.debug:this.debug||console)[e](...i)}_getSequenceId(){return++this.sequenceId}_createWebSocket(){return new Promise((e,t)=>{var i=this.events.proxy;this.socket=new WebSocket(this.wsUrl),this.socket.binaryType="arraybuffer",this.emit(v.talkStreamStart),i(this.socket,"open",()=>{this.socketStatus=ae,this.log(this.tag,"websocket open -> do talk"),this.emit(v.talkStreamOpen),e(),this._doTalk()}),i(this.socket,"message",e=>{this.log(this.tag,"websocket message",e.data)}),i(this.socket,"close",e=>{this.socketStatus="close",this.log(this.tag,"websocket close"),this.emit(v.talkStreamClose),t(e)}),i(this.socket,"error",e=>{this.socketStatus="error",this.error(this.tag,"websocket error",e),this.emit(v.talkStreamError,e),t(e)})})}_sendClose(){}_initTalk(){this._initMethods(),this._opt.engine===Pe?this._initWorklet():"script"===this._opt.engine&&this._initScriptProcessor(),this.log(this.tag,"audioContext samplerate",this.audioContext.sampleRate)}_initMethods(){this.audioContext=new(window.AudioContext||window.webkitAudioContext)({sampleRate:48e3}),this.gainNode=this.audioContext.createGain(),this.gainNode.gain.value=1,this.biquadFilter=this.audioContext.createBiquadFilter(),this.biquadFilter.type="lowpass",this.biquadFilter.frequency.value=3e3,this.resampler=new Yr({fromSampleRate:this.audioContext.sampleRate,toSampleRate:this._opt.sampleRate,channels:this._opt.numberChannels,inputBufferSize:this.bufferSize})}_initScriptProcessor(){var e=this.audioContext.createScriptProcessor||this.audioContext.createJavaScriptNode;this.recorder=e.apply(this.audioContext,[this.bufferSize,this._opt.numberChannels,this._opt.numberChannels]),this.recorder.onaudioprocess=e=>this._onaudioprocess(e)}_initWorklet(){this.audioContext.audioWorklet.addModule(mt(function(){class e extends AudioWorkletProcessor{constructor(e){super(),this._cursor=0,this._bufferSize=e.processorOptions.bufferSize,this._buffer=new Float32Array(this._bufferSize)}process(t,e,i){if(t.length&&t[0].length)for(let e=0;e<t[0][0].length;e++)this._cursor+=1,this._cursor===this._bufferSize&&(this._cursor=0,this.port.postMessage({eventType:"data",buffer:this._buffer})),this._buffer[this._cursor]=t[0][0][e];return!0}}registerProcessor("talk-processor",e)})).then(()=>{var e=new AudioWorkletNode(this.audioContext,"talk-processor",{processorOptions:{bufferSize:this.bufferSize}});e.connect(this.gainNode),e.port.onmessage=e=>{"data"===e.data.eventType&&this._encodeAudioData(e.data.buffer)},this.workletRecorder=e})}_onaudioprocess(e){e=e.inputBuffer.getChannelData(0);this._encodeAudioData(new Float32Array(e))}_encodeAudioData(e){if(0===e[0]&&0===e[1])this.log(this.tag,"empty audio data");else{const r=this.resampler.resample(e);let t=r;if(16===this._opt.sampleBitsWidth?t=function(e){let t=e.length,i=new Int16Array(t);for(;t--;){var r=Math.max(-1,Math.min(1,e[t]));i[t]=r<0?32768*r:32767*r}return i}(r):8===this._opt.sampleBitsWidth&&(t=function(e){let t=e.length,i=new Int8Array(t);for(;t--;){var r=Math.max(-1,Math.min(1,e[t]));i[t]=parseInt(255/(65535/(32768+(r<0?32768*r:32767*r))),10)}return i}(r)),null!==t.buffer){let e=null;this._opt.encType===ke?e=function(e){const i=[];return Array.prototype.slice.call(e).forEach((e,t)=>{i[t]=function(e){let t,i,r;return 0<=e?t=213:(t=85,(e=-e-1)<0&&(e=32767)),8<=(i=$r(e,Zr,8))?127^t:(r=i<<4,(r|=i<2?e>>4&15:e>>i+3&15)^t)}(e)}),i}(t):this._opt.encType===Ce&&(e=function(e){const i=[];return Array.prototype.slice.call(e).forEach((e,t)=>{i[t]=function(e){let t=0;t=e<0?(e=132-e,127):(e+=132,255);var i=$r(e,Zr,8);return 8<=i?127^t:(i<<4|e>>i+3&15)^t}(e)}),i}(t));const r=Uint8Array.from(e);for(let e=0;e<r.length;e++){var i=this.audioBufferList.length;this.audioBufferList[+i]=r[e],this.audioBufferList.length===this._opt.audioBufferLength&&(this._sendTalkMsg(new Uint8Array(this.audioBufferList)),this.audioBufferList=[])}}}}_parseAudioMsg(e){let t=null;return"rtp"!==this._opt.packetType||this._opt.encType!==ke&&this._opt.encType!==Ce?"opus"===this._opt.packetType?t=this.opusPacket(e):"empty"===this._opt.packetType&&(t=e):t=this.rtpPacket(e),t}rtpPacket(e){var t=[];let i=0,r,s;var a=this._opt.rtpSsrc,n=e.length,n=(this._opt.encType===ke?i=8:this._opt.encType===Ce&&(i=0),this.startTimestamp||(this.startTimestamp=m()),s=m()-this.startTimestamp,r=this._getSequenceId(),n+12),o=(t[0]=255&n>>8,t[1]=255&n>>0,t[2]=128,t[3]=128+i,t[4]=r/256,t[5]=r%256,t[6]=s/65536/256,t[7]=s/65536%256,t[8]=s%65536/256,t[9]=s%65536%256,t[10]=a/65536/256,t[11]=a/65536%256,t[12]=a%65536/256,t[13]=a%65536%256,t.concat([...e])),l=new Uint8Array(o.length);for(let e=0;e<o.length;e++)l[e]=o[e];return l}opusPacket(e){return e}_sendTalkMsg(e){null===this.tempTimestamp&&(this.tempTimestamp=m());var t=m(),i=t-this.tempTimestamp,r=this._parseAudioMsg(e);this.log(this.tag,`'send talk msg and diff is ${i} and byteLength is ${r.byteLength} and length is ${r.length}, and g711 length is `+e.length),"rtp"===this._opt.packetType&&this.addRtpToBuffer(r),r&&(this.socketStatusOpen?this.socket.send(r.buffer):this.emit(A.tallWebsocketClosedByError)),this.tempTimestamp=t}_doTalk(){this._getUserMedia()}_getUserMedia(){this.log(this.tag,"getUserMedia"),void 0===window.navigator.mediaDevices&&(window.navigator.mediaDevices={}),void 0===window.navigator.mediaDevices.getUserMedia&&(this.log(this.tag,"window.navigator.mediaDevices.getUserMedia is undefined and init function"),window.navigator.mediaDevices.getUserMedia=function(i){var r=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia;return r?new Promise(function(e,t){r.call(navigator,i,e,t)}):Promise.reject(new Error("getUserMedia is not implemented in this browser"))}),this._opt.checkGetUserMediaTimeout&&this._startCheckGetUserMediaTimeout(),window.navigator.mediaDevices.getUserMedia({audio:{latency:!0,noiseSuppression:!0,autoGainControl:!0,echoCancellation:!0,sampleRate:48e3,channelCount:1},video:!1}).then(e=>{this.log(this.tag,"getUserMedia success"),this.userMediaStream=e,this.mediaStreamSource=this.audioContext.createMediaStreamSource(e),this.mediaStreamSource.connect(this.biquadFilter),this.recorder?(this.biquadFilter.connect(this.recorder),this.recorder.connect(this.gainNode)):this.workletRecorder&&(this.biquadFilter.connect(this.workletRecorder),this.workletRecorder.connect(this.gainNode)),this.gainNode.connect(this.audioContext.destination),this.emit(v.talkGetUserMediaSuccess),null===e.oninactive&&(e.oninactive=e=>{this._handleStreamInactive(e)})}).catch(e=>{this.error(this.tag,"getUserMedia error",e.toString()),this.emit(v.talkGetUserMediaFail,e.toString())}).finally(()=>{this.log(this.tag,"getUserMedia finally"),this._stopCheckGetUserMediaTimeout()})}_getUserMedia2(){this.log(this.tag,"getUserMedia"),navigator.mediaDevices?navigator.mediaDevices.getUserMedia({audio:!0}).then(e=>{this.log(this.tag,"getUserMedia2 success")}):navigator.getUserMedia({audio:!0},this.log(this.tag,"getUserMedia2 success"),this.log(this.tag,"getUserMedia2 fail"))}async _getUserMedia3(){this.log(this.tag,"getUserMedia3");try{var e=await navigator.mediaDevices.getUserMedia({audio:{latency:!0,noiseSuppression:!0,autoGainControl:!0,echoCancellation:!0,sampleRate:48e3,channelCount:1},video:!1});console.log("getUserMedia() got stream:",e),this.log(this.tag,"getUserMedia3 success")}catch(e){this.log(this.tag,"getUserMedia3 fail")}}_handleStreamInactive(e){this.userMediaStream&&(this.error(this.tag,"stream oninactive"),this.emit(v.talkStreamInactive))}_startCheckGetUserMediaTimeout(){this._stopCheckGetUserMediaTimeout(),this.checkGetUserMediaTimeout=setTimeout(()=>{this.log(this.tag,"check getUserMedia timeout"),this.emit(v.talkGetUserMediaTimeout)},this._opt.getUserMediaTimeout)}_stopCheckGetUserMediaTimeout(){this.checkGetUserMediaTimeout&&(this.log(this.tag,"stop checkGetUserMediaTimeout"),clearTimeout(this.checkGetUserMediaTimeout),this.checkGetUserMediaTimeout=null)}_startHeartInterval(){this.heartInterval=setInterval(()=>{this.log(this.tag,"heart interval");var e=[35,36,0,0,0,0,0,0],e=new Uint8Array(e);this.socket.send(e.buffer)},15e3)}_stopHeartInterval(){this.heartInterval&&(this.log(this.tag,"stop heart interval"),clearInterval(this.heartInterval),this.heartInterval=null)}startTalk(i){return new Promise((e,t)=>function(){let e=!1;var t=window.navigator;return e=t?(e=!(!t.mediaDevices||!t.mediaDevices.getUserMedia))||!!(t.getUserMedia||t.webkitGetUserMedia||t.mozGetUserMedia||t.msGetUserMedia):e}()?(this.wsUrl=i,this._opt.testMicrophone?(this._doTalk(),e()):(this._createWebSocket().catch(e=>{t(e)}),this.once(v.talkGetUserMediaFail,()=>{t("getUserMedia fail")}),void this.once(v.talkGetUserMediaSuccess,()=>{e()}))):t("not support getUserMedia"))}setVolume(e){e=parseFloat(e).toFixed(2),isNaN(e)||(e=b(e,0,1),this.gainNode.gain.value=e)}getOption(){return this._opt}get volume(){return this.gainNode?parseFloat(100*this.gainNode.gain.value).toFixed(0):null}}class ts{constructor(e){this.player=e,this.globalSetting=null;e=$e();this.defaultSettings={watermark_id:"JessibucaPro_"+e,watermark_prefix:"JessibucaPro_mask_"+e,watermark_txt:"JessibucaPro 测试水印",watermark_x:0,watermark_y:0,watermark_rows:0,watermark_cols:0,watermark_x_space:0,watermark_y_space:0,watermark_font:"微软雅黑",watermark_color:"black",watermark_fontsize:"18px",watermark_alpha:.15,watermark_width:150,watermark_height:100,watermark_angle:15,watermark_parent_width:0,watermark_parent_height:0,watermark_parent_node:null}}destroy(){this._removeMark(),this.globalSetting=null,this.defaultSettings={watermark_id:"",watermark_prefix:"",watermark_txt:"JessibucaPro 测试水印",watermark_x:0,watermark_y:0,watermark_rows:0,watermark_cols:0,watermark_x_space:0,watermark_y_space:0,watermark_font:"微软雅黑",watermark_color:"black",watermark_fontsize:"18px",watermark_alpha:.15,watermark_width:150,watermark_height:100,watermark_angle:15,watermark_parent_width:0,watermark_parent_height:0,watermark_parent_node:null}}remove(){this._removeMark()}load(e){this.globalSetting=e,this._loadMark(e)}resize(){this.globalSetting&&this._loadMark(this.globalSetting)}_loadMark(){var e=this.defaultSettings;if(1===arguments.length&&"object"==typeof arguments[0]){var t,i=arguments[0]||{};for(t in i)i[t]&&e[t]&&i[t]===e[t]||!i[t]&&0!==i[t]||(e[t]=i[t])}var r=document.getElementById(e.watermark_id),s=(r&&r.parentNode&&r.parentNode.removeChild(r),"string"==typeof e.watermark_parent_node?document.getElementById(e.watermark_parent_node):e.watermark_parent_node),r=s||document.body,a=r.getBoundingClientRect(),n=Math.max(r.scrollWidth,r.clientWidth,a.width),o=Math.max(r.scrollHeight,r.clientHeight,a.height),a=arguments[0]||{},a=((a.watermark_parent_width||a.watermark_parent_height)&&r&&(e.watermark_x=e.watermark_x+0,e.watermark_y=e.watermark_y+0),document.getElementById(e.watermark_id)),l=null;a?a.shadowRoot&&(l=a.shadowRoot):((a=document.createElement("div")).id=e.watermark_id,a.setAttribute("style","pointer-events: none !important; display: block !important"),l="function"==typeof a.attachShadow?a.attachShadow({mode:"open"}):a,(u=r.children)[d=Math.floor(Math.random()*(u.length-1))]?r.insertBefore(a,u[d]):r.appendChild(a)),e.watermark_cols=parseInt((n-e.watermark_x)/(e.watermark_width+e.watermark_x_space));var c,u=parseInt((n-e.watermark_x-e.watermark_width*e.watermark_cols)/e.watermark_cols);e.watermark_x_space=u&&e.watermark_x_space,e.watermark_rows=parseInt((o-e.watermark_y)/(e.watermark_height+e.watermark_y_space));var d=parseInt((o-e.watermark_y-e.watermark_height*e.watermark_rows)/e.watermark_rows);e.watermark_y_space=d&&e.watermark_y_space;for(var h=s?(c=e.watermark_x+e.watermark_width*e.watermark_cols+e.watermark_x_space*(e.watermark_cols-1),e.watermark_y+e.watermark_height*e.watermark_rows+e.watermark_y_space*(e.watermark_rows-1)):(c=0+e.watermark_x+e.watermark_width*e.watermark_cols+e.watermark_x_space*(e.watermark_cols-1),0+e.watermark_y+e.watermark_height*e.watermark_rows+e.watermark_y_space*(e.watermark_rows-1)),p=0;p<e.watermark_rows;p++)for(var f=s?0+e.watermark_y+(o-h)/2+(e.watermark_y_space+e.watermark_height)*p:e.watermark_y+(o-h)/2+(e.watermark_y_space+e.watermark_height)*p,A=0;A<e.watermark_cols;A++){var m=s?0+e.watermark_x+(n-c)/2+(e.watermark_width+e.watermark_x_space)*A:e.watermark_x+(n-c)/2+(e.watermark_width+e.watermark_x_space)*A,g=document.createElement("div"),y=document.createTextNode(e.watermark_txt);g.appendChild(y),g.id=e.watermark_prefix+p+A,g.style.webkitTransform="rotate(-"+e.watermark_angle+"deg)",g.style.MozTransform="rotate(-"+e.watermark_angle+"deg)",g.style.msTransform="rotate(-"+e.watermark_angle+"deg)",g.style.OTransform="rotate(-"+e.watermark_angle+"deg)",g.style.transform="rotate(-"+e.watermark_angle+"deg)",g.style.visibility="",g.style.position="absolute",g.style.left=m+"px",g.style.top=f+"px",g.style.overflow="hidden",g.style.zIndex="9999999",g.style.opacity=e.watermark_alpha,g.style.fontSize=e.watermark_fontsize,g.style.fontFamily=e.watermark_font,g.style.color=e.watermark_color,g.style.textAlign="center",g.style.width=e.watermark_width+"px",g.style.height=e.watermark_height+"px",g.style.display="block",g.style["-ms-user-select"]="none",l.appendChild(g)}}_removeMark(){var e,t=this.defaultSettings,t=document.getElementById(t.watermark_id);t&&(e=t.parentNode)&&e.removeChild(t)}}class is extends t{constructor(e){super();var t=Et(),t=Object.assign({},t,e);t.url="";let i=e.container;if(!(i="string"==typeof e.container?document.querySelector(e.container):i))throw new Error("Jessibuca-pro need container option");if("CANVAS"===i.nodeName||"VIDEO"===i.nodeName)throw new Error(`Jessibuca-pro container type can not be ${i.nodeName} type`);if(t.videoBuffer>=t.heartTimeout)throw new Error(`Jessibuca-pro videoBuffer ${t.videoBuffer}s must be less than heartTimeout ${t.heartTimeout}s`);if(i.classList.add("jessibuca-container"),!1===t.isLive){const e=document.createElement("video");e.muted=!0,e.setAttribute("controlsList","nodownload"),e.disablePictureInPicture="disablePictureInPicture",e.style.position="absolute",e.style.top=0,e.style.left=0,e.style.height="100%",e.style.width="100%",i.appendChild(e),this.$videoElement=e,this.$container=i,void(this._opt=t)}else delete t.container,c(t.videoBuffer)&&(t.videoBuffer=1e3*Number(t.videoBuffer)),c(t.videoBufferDelay)&&(t.videoBufferDelay=1e3*Number(t.videoBufferDelay)),c(t.networkDelay)&&(t.networkDelay=1e3*Number(t.networkDelay)),c(t.timeout)&&(it(t.loadingTimeout)&&(t.loadingTimeout=t.timeout),it(t.heartTimeout))&&(t.heartTimeout=t.timeout),t.isMulti&&(t.debugUuid="xxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)})),this._opt=t,this._destroyed=!1,this.$container=i,this._loadingTimeoutReplayTimes=0,this._heartTimeoutReplayTimes=0,this.events=new Ve(this),this.debug=new Ne(this),this.watermark=new ts(this),this._initPlayer(i,t),this._initWatermark()}destroy(){this._destroyed=!0,this.off(),this.$videoElement&&(this.$videoElement.pause(),this.$videoElement.currentTime=0,this.$videoElement.srcObject&&(this.$videoElement.srcObject=null,this.$videoElement.removeAttribute("srcObject")),this.$videoElement.src&&(this.$videoElement.src="",this.$videoElement.removeAttribute("src")),this.$container.removeChild(this.$videoElement),this.$videoElement=null),this.player&&(this.player.destroy(),this.player=null),this.events&&(this.events.destroy(),this.events=null),this.talk&&(this.talk.destroy(),this.talk=null),this.watermark&&(this.watermark.destroy(),this.watermark=null),this.$container=null,this._resetOpt(),this._loadingTimeoutReplayTimes=0,this._heartTimeoutReplayTimes=0,this.debug&&this.debug.log("jessibuca","destroy")}_resetOpt(){this._opt=Et()}_initPlayer(e,t){this.player=new Xr(e,t),this.debug.log("jessibuca","_initPlayer",this.player.getOption()),this._bindEvents()}_initTalk(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};this.talk&&(this.talk.destroy(),this.talk=null),this.player&&(e.debug=this.player._opt.debug),this.talk=new es(this.player,e),this.debug.log("jessibuca","_initTalk",this.talk.getOption()),this._bindTalkEvents()}_resetPlayer(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};this.player&&(this.player.destroy(),this.player=null),this._opt.url="",this._opt.playOptions={},this._opt=Object.assign(this._opt,e),this._initPlayer(this.$container,this._opt)}_bindEvents(){Object.keys(ie).forEach(t=>{this.player.on(ie[t],e=>{this.emit(t,e)})}),this.player.once(v.beforeDestroy,()=>{this.emit(v.close),this.destroy()}),this.player.on(v.resize,()=>{this.watermark&&this.watermark.resize()}),this.player.on(v.fullscreen,()=>{this.watermark&&this.watermark.resize()})}_bindTalkEvents(){Object.keys(re).forEach(t=>{this.player.on(re[t],e=>{this.emit(t,e)})})}_initWatermark(){var e;dt(this._opt.fullscreenWatermarkConfig)&&((e=at(this.$container,this._opt.fullscreenWatermarkConfig)).watermark_txt?this.watermark.load(e):this.debug.warn("jessibuca","fullscreenWatermarkConfig text is empty"))}isDestroyed(){return this._destroyed}getOption(){return this.player?this.player.getOption():{}}setDebug(e){this.player&&this.player.updateOption({debug:!!e})}mute(){this.player&&this.player.mute(!0)}cancelMute(){this.player&&this.player.mute(!1)}setVolume(e){this.player&&(this.player.volume=e)}getVolume(){let e=null;return this.player&&(e=this.player.volume,e=parseFloat(e).toFixed(2)),e}audioResume(){this.player&&this.player.audio&&this.player.audio.audioEnabled(!0)}setTimeout(e){e=Number(e),this.player&&this.player.updateOption({timeout:e,loadingTimeout:e,heartTimeout:e})}setScaleMode(e){this.player&&this.player.setScaleMode(e)}pause(){let e=0<arguments.length&&void 0!==arguments[0]&&arguments[0];return new Promise((t,i)=>{this.player?this.player.pause(e).then(e=>{t(e)}).catch(e=>{i(e)}):i("player is null")})}close(){return new Promise((e,t)=>{this._opt.url="",this._loadingTimeoutReplayTimes=0,this._heartTimeoutReplayTimes=0,this.player?this.player.close().then(()=>{e()}).catch(e=>{t(e)}):t("player is null")})}clearView(){this.player&&this.player.video?this.getRenderType()===G?this.player.video.clearView():this.debug.warn("jessibuca","clearView","render type is video, not support clearView, please use canvas render type"):this.debug.warn("jessibuca","clearView","player is null")}play(){let a=0<arguments.length&&void 0!==arguments[0]?arguments[0]:"",n=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};return new Promise((i,r)=>{if(a||this._opt.url)if(a=a&&(""+a).trim(),!1===this._opt.isLive)this.$videoElement.controls="controls",this.$videoElement.muted=!1,this.$videoElement.src=a,this.$videoElement.play(),i(this.$videoElement);else{if(this._opt.isCrypto){var e,t=n.cryptoKey||this._opt.playOptions.cryptoKey,s=n.cryptoIV||this._opt.playOptions.cryptoIV;if(!t||!s)return e=a||this._opt.url,void this._cryptoPlay(e).then(e=>{var{cryptoIV:e,cryptoKey:t}=e;this._opt.playOptions.cryptoKey=t,this._opt.playOptions.cryptoIV=e,n.cryptoIV=e,n.cryptoKey=t,this._playBefore(a,n).then(()=>{i()}).catch(e=>{r(e)})}).catch(e=>{r(e)});this._opt.playOptions.cryptoKey=t,this._opt.playOptions.cryptoIV=s,n.cryptoIV=s,n.cryptoKey=t}this._playBefore(a,n).then(()=>{i()}).catch(e=>{r(e)})}else this.emit(v.error,A.playError),r()})}_playBefore(i,r){return new Promise((e,t)=>{this.player?i?this._opt.url?i===this._opt.url?this.player.playing?(this.debug.log("jessibuca","_playBefore","playing and resolve()"),e()):(this.debug.log("jessibuca","_playBefore","pause -> play"),this.player.play(this._opt.url,this._opt.playOptions).then(()=>{e(),this.player.resumeAudioAfterPause()}).catch(e=>{this.debug.error("Jessibuca","_playBefore this.player.play error",e),this.emit(v.crashLog,this.getCrashLog(e)),this.player.pause().then(()=>{t(e)})})):this.player.pause().then(()=>{this._play(i,r).then(()=>{e()}).catch(e=>{this.debug.error("Jessibuca","_play error",e),t(e)})}).catch(e=>{this.debug.error("Jessibuca","this.player.pause error",e),t(e)}):this._play(i,r).then(()=>{e()}).catch(e=>{this.debug.error("Jessibuca","_play error",e),t(e)}):this.player.play(this._opt.url,this._opt.playOptions).then(()=>{e(),this.player.resumeAudioAfterPause()}).catch(e=>{this.debug.error("Jessibuca","this.player.play error",e),this.emit(v.crashLog,this.getCrashLog(e)),this.player.pause().then(()=>{t(e)})}):i?this._play(i,r).then(()=>{e()}).catch(e=>{this.debug.error("Jessibuca","_play error",e),t(e)}):this._play(this._opt.url,this._opt.playOptions).then(()=>{e()}).catch(e=>{this.debug.error("Jessibuca","_play error",e),t(e)})})}_cryptoPlay(n){return new Promise((r,s)=>{var e,t=function(){var e=(n||document.location.toString()).split("//"),t=e[1].indexOf("/");let i=e[1].substring(t);return i=-1!=i.indexOf("?")?i.split("?")[0]:i}();let i=this._opt.cryptoKeyUrl,a="";if(i)a=i;else{const r=function(e){var t=/(msie|trident)/i.test(navigator.userAgent),i=document.createElement("a");let r=e;return t&&(i.setAttribute("href",r),r=i.href),i.setAttribute("href",r),{origin:i.origin,href:i.href,protocol:i.protocol?i.protocol.replace(/:$/,""):"",host:i.host,search:i.search?i.search.replace(/^\?/,""):"",hash:i.hash?i.hash.replace(/^#/,""):"",hostname:i.hostname,port:i.port,pathname:"/"===i.pathname.charAt(0)?i.pathname:"/"+i.pathname}}(n);i=r.origin+"/crypto/",a=i+"?stream="+t}e=a,new Promise((t,i)=>{R.get(e).then(e=>{t(e)}).catch(e=>{i(e)})}).then(e=>{if(e){const t=e.split("."),i=vt(t[0]),a=vt(t[1]);a&&i?r({cryptoIV:a,cryptoKey:i}):s("get cryptoIV or cryptoKey error")}else s(`cryptoKeyUrl: getM7SCryptoStreamKey ${a} res is null`)}).catch(e=>{s(e)})})}playback(e){var t,i=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};return!1===this._opt.isLive?Promise.reject("this._opt.isLive is false, can not playback"):(t=St(),(t=Object.assign({},t.playbackConfig,this._opt.playbackConfig,i)).isUseFpsRender||t.isCacheBeforeDecodeForFpsRender&&(t.isCacheBeforeDecodeForFpsRender=!1,this.debug.error("Jessibuca","playbackConfig.isUseFpsRender is false, isCacheBeforeDecodeForFpsRender can not be ture, isCacheBeforeDecodeForFpsRender is set to false")),0===t.rateConfig.length&&t.showRateBtn&&(t.showRateBtn=!1,this.debug.error("Jessibuca","playbackConfig.rateConfig.length is 0, showRateBtn can not be ture, showRateBtn is set to false")),this._resetPlayer({videoBuffer:0,playbackConfig:t,playType:y,useMSE:!1,useWCS:!1,useSIMD:!0}),this.play(e))}playbackPause(){let i=0<arguments.length&&void 0!==arguments[0]&&arguments[0];return this._opt.playType===n?Promise.reject("playType is player, can not call playbackPause method"):new Promise((e,t)=>{if(!this.player)return t("player is null");!0===i?this.pause().then(()=>{e()}).catch(e=>{t(e)}):(this.player.playbackPause=!0,e())})}playbackResume(){return this._opt.playType===n?Promise.reject("playType is player, can not call playbackResume method"):new Promise((e,t)=>{if(!this.player)return t();this.player.playbackPause=!1,e()})}forward(i){return!1===this._opt.isLive||this._opt.playType===n?Promise.reject("forward() method only just for playback type"):u(Number(i))?new Promise((e,t)=>{(this.player&&this.player.playing?(i=b(Number(i),.1,32),this.player.playback.setRate(i),this.player.video&&this.player.video.setRate(i),this.player.audio&&this.player.audio.setRate(i),this.player.decoderWorker.clearWorkBuffer(!0),this.player.decoderWorker&&this.player.decoderWorker.updateWorkConfig({key:"playbackRate",value:i}),e):t)()}):Promise.reject(`forward() params "rate": ${i} must be number type`)}playbackForward(e){return this.forward(e)}normal(){return this.forward(1)}playbackNormal(){return this.normal()}updatePlaybackForwardMaxRateDecodeIFrame(e){e=b(Number(e),1,8),this.player?this.player.updateOption({playbackForwardMaxRateDecodeIFrame:e}):this._opt.playbackForwardMaxRateDecodeIFrame=e}setPlaybackStartTime(e){var t=ut(e);this.player&&this.player.isPlayback()&&(t<10&&0!==e||this.player.playing&&(10===t&&(e*=1e3),this.player.playback.setStartTime(e),this.playbackClearCacheBuffer()))}playbackClearCacheBuffer(){this.player&&this.player.isPlayback()&&(this.player.video&&this.player.video.clear(),this.player.audio&&this.player.audio.clear(),this.player.decoderWorker.clearWorkBuffer(!0))}getPlaybackCurrentRate(){return this.player&&this.player.isPlayback()?this.player.playback.rate:1}setStreamQuality(e){this.player&&this.player._opt.operateBtns.quality&&(this.player._opt.qualityConfig||[]).includes(e)&&(this.player.streamQuality=e)}_play(){let c=0<arguments.length&&void 0!==arguments[0]?arguments[0]:"",u=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};return new Promise((e,t)=>{this.player||t("player is null");let i=!1;this._opt.url&&this._opt.url!==c&&(i=!0),this._opt.url=c,this._opt.playOptions=u;var r=0===c.indexOf("http"),s=0===c.indexOf("webrtc"),a=0===c.indexOf("wt"),n=!s&&-1!==c.indexOf(".m3u8"),o=!s&&-1!==c.indexOf(".flv"),l=r?n?3:2:a?5:s?4:1,r=this._opt.isNakedFlow?H:r&&!n||o||this._opt.isFlv?N:n?"hls":s?"webrtc":a?V:"m7s";if(o&&!this._opt.isFlv&&(this._opt.isFlv=!0),!l||!r)return t(`play protocol is ${l}, demuxType is `+r);n||s||i?this._resetPlayer({protocol:l,demuxType:r,isHls:n,isWebrtc:s}):(this.player.updateOption({protocol:l,demuxType:r,isFlv:this._opt.isFlv,cryptoKey:u.cryptoKey||"",cryptoIV:u.cryptoIV||""}),u.cryptoKey&&u.cryptoIV&&(this.player.decoderWorker&&this.player.decoderWorker.updateWorkConfig({key:"cryptoKey",value:u.cryptoKey}),this.player.decoderWorker)&&this.player.decoderWorker.updateWorkConfig({key:"cryptoIV",value:u.cryptoIV})),this.player.once(A.webglAlignmentError,()=>{this.emit(v.crashLog,this.getCrashLog(A.webglAlignmentError)),this.pause().then(()=>{this.debug.log("Jessibuca","webglAlignmentError");var e=this._opt.url;this._resetPlayer({openWebglAlignment:!0}),this.play(e).then(()=>{this.debug.log("Jessibuca","webglAlignmentError and play success")}).catch(e=>{this.debug.error("Jessibuca","webglAlignmentError and play error",e)})}).catch(e=>{this.debug.error("Jessibuca","webglAlignmentError and pause error",e)})}),this.player.once(A.mediaSourceH265NotSupport,()=>{this.emit(v.crashLog,this.getCrashLog(A.mediaSourceH265NotSupport)),this.pause().then(()=>{var e;this.player._opt.autoWasm?(this.debug.log("Jessibuca","mediaSourceH265NotSupport auto wasm [mse-> wasm] reset player and play"),e=this._opt.url,this._resetPlayer({useMSE:!1,useWCS:!1}),this.play(e).then(()=>{this.debug.log("Jessibuca","mediaSourceH265NotSupport auto wasm [mse-> wasm] reset player and play success")}).catch(e=>{this.debug.error("Jessibuca","mediaSourceH265NotSupport auto wasm [mse-> wasm] reset player and play error",e)})):this.debug.log("Jessibuca","mediaSourceH265NotSupport and autoWasm is false")}).catch(e=>{this.debug.error("Jessibuca","mediaSourceH265NotSupport and pause error",e)})}),this.player.once(A.mediaSourceFull,()=>{this.emit(v.crashLog,this.getCrashLog(A.mediaSourceFull)),this.pause().then(()=>{var e;this.player._opt.autoWasm?(this.debug.log("Jessibuca","mediaSourceFull and auto wasm [mse-> wasm] reset player and play"),e=this._opt.url,this._resetPlayer({useMSE:!1,useWCS:!1}),this.play(e).then(()=>{this.debug.log("Jessibuca","mediaSourceFull and reset player and play success")}).catch(e=>{this.debug.error("Jessibuca","mediaSourceFull and reset player and play error",e)})):this.debug.log("Jessibuca","mediaSourceFull and autoWasm is false")}).catch(e=>{this.debug.error("Jessibuca","mediaSourceFull and pause error",e)})}),this.player.once(A.mediaSourceAppendBufferError,()=>{this.emit(v.crashLog,this.getCrashLog(A.mediaSourceAppendBufferError)),this.pause().then(()=>{var e;this.player._opt.autoWasm?(this.debug.log("Jessibuca","mediaSourceAppendBufferError and auto wasm [mse-> wasm] reset player and play"),e=this._opt.url,this._resetPlayer({useMSE:!1,useWCS:!1}),this.play(e).then(()=>{this.debug.log("Jessibuca","mediaSourceAppendBufferError and reset player and play success")}).catch(e=>{this.debug.error("Jessibuca","mediaSourceAppendBufferError and reset player and play error",e)})):this.debug.log("Jessibuca","mediaSourceAppendBufferError and autoWasm is false")}).catch(e=>{this.debug.error("Jessibuca","mediaSourceAppendBufferError and pause error",e)})}),this.player.once(A.mediaSourceBufferListLarge,()=>{this.emit(v.crashLog,this.getCrashLog(A.mediaSourceBufferListLarge)),this.pause().then(()=>{var e;this.player._opt.autoWasm?(this.debug.log("Jessibuca","media source buffer list large and auto wasm [mse-> wasm] reset player and play"),e=this._opt.url,this._resetPlayer({useMSE:!1,useWCS:!1}),this.play(e).then(()=>{this.debug.log("Jessibuca","media source buffer list large and reset player and play success")}).catch(e=>{this.debug.error("Jessibuca","media source buffer list large and reset player and play error",e)})):this.debug.log("Jessibuca","media source buffer list large and autoWasm is false")}).catch(e=>{this.debug.error("Jessibuca","media source buffer list large and pause error",e)})}),this.player.once(A.mediaSourceAppendBufferEndTimeout,()=>{this.emit(v.crashLog,this.getCrashLog(A.mediaSourceAppendBufferEndTimeout)),this.pause().then(()=>{var e;this.player._opt.autoWasm&&(this.debug.log("Jessibuca","media source append buffer end timeout and auto wasm [mse-> wasm] reset player and play"),e=this._opt.url,this._resetPlayer({useMSE:!1,useWCS:!1}),this.play(e).then(()=>{this.debug.log("Jessibuca","media source append buffer end timeout and reset player and play success")}).catch(e=>{this.debug.error("Jessibuca","media source append buffer end timeout and reset player and play error",e)}))}).catch(e=>{this.debug.error("Jessibuca","media source append buffer end timeout and pause error",e)})}),this.player.once(A.mseSourceBufferError,()=>{this.emit(v.crashLog,this.getCrashLog(A.mseSourceBufferError)),this.pause().then(()=>{var e;this.player._opt.autoWasm?(this.debug.log("Jessibuca","mseSourceBufferError auto wasm [mse-> wasm] reset player and play"),e=this._opt.url,this._resetPlayer({useMSE:!1,useWCS:!1}),this.play(e).then(()=>{this.debug.log("Jessibuca","mseSourceBufferError auto wasm [mse-> wasm] reset player and play success")}).catch(e=>{this.debug.error("Jessibuca","mseSourceBufferError auto wasm [mse-> wasm] reset player and play error",e)})):this.debug.log("Jessibuca","mseSourceBufferError and autoWasm is false")}).catch(e=>{this.debug.error("Jessibuca","mseSourceBufferError and pause error",e)})}),this.player.once(A.mediaSourceDecoderConfigurationError,()=>{this.emit(v.crashLog,this.getCrashLog(A.mediaSourceDecoderConfigurationError)),this.pause().then(()=>{var e;this.player._opt.autoWasm?(this.debug.log("Jessibuca","mediaSourceDecoderConfigurationError auto wasm [mse-> wasm] reset player and play"),e=this._opt.url,this._resetPlayer({useMSE:!1,useWCS:!1}),this.play(e).then(()=>{this.debug.log("Jessibuca","mediaSourceDecoderConfigurationError auto wasm [mse-> wasm] reset player and play success")}).catch(e=>{this.debug.error("Jessibuca","mediaSourceDecoderConfigurationError auto wasm [mse-> wasm] reset player and play error",e)})):this.debug.log("Jessibuca","mediaSourceDecoderConfigurationError and autoWasm is false")}).catch(e=>{this.debug.error("Jessibuca","mediaSourceDecoderConfigurationError and pause error",e)})}),this.player.once(A.webcodecsH265NotSupport,()=>{this.emit(v.crashLog,this.getCrashLog(A.webcodecsH265NotSupport)),this.pause().then(()=>{var e;this.player._opt.autoWasm?(this.debug.log("Jessibuca","webcodecsH265NotSupport auto wasm [wcs-> wasm] reset player and play"),e=this._opt.url,this._resetPlayer({useWCS:!1}),this.play(e).then(()=>{this.debug.log("Jessibuca","webcodecsH265NotSupport auto wasm [wcs-> wasm] reset player and play success")}).catch(e=>{this.debug.error("Jessibuca","webcodecsH265NotSupport auto wasm [wcs-> wasm] reset player and play error",e)})):this.debug.log("Jessibuca","webcodecsH265NotSupport and autoWasm is false")}).catch(e=>{this.debug.error("Jessibuca","webcodecsH265NotSupport and pause error",e)})}),this.player.once(A.webcodecsWidthOrHeightChange,()=>{this.emit(v.crashLog,this.getCrashLog(A.webcodecsWidthOrHeightChange)),this.pause().then(()=>{this.debug.log("Jessibuca","webcodecs Width Or Height Change reset player and play");var e=this._opt.url;this._resetPlayer({useWCS:!0}),this.play(e).then(()=>{this.debug.log("Jessibuca","webcodecs Width Or Height Change reset player and play success")}).catch(e=>{this.debug.error("Jessibuca","webcodecs Width Or Height Change reset player and play error",e)})})}),this.player.once(A.webcodecsDecodeError,()=>{this.emit(v.crashLog,this.getCrashLog(A.webcodecsDecodeError)),this.pause().then(()=>{var e;this.player._opt.autoWasm?(this.debug.log("Jessibuca","webcodecs decode error reset player and play"),e=this._opt.url,this._resetPlayer({useWCS:!1}),this.play(e).then(()=>{this.debug.log("Jessibuca","webcodecs decode error reset player and play success")}).catch(e=>{this.debug.error("Jessibuca","webcodecs decode error reset player and play error",e)})):this.debug.log("Jessibuca","webcodecs decode error and autoWasm is false")}).catch(e=>{this.debug.error("Jessibuca","webcodecs decode error and pause error",e)})}),this.player.once(A.wasmDecodeError,()=>{this.emit(v.crashLog,this.getCrashLog(A.wasmDecodeError)),this.pause().then(()=>{var e;this.player._opt.wasmDecodeErrorReplay?(this.debug.log("Jessibuca","wasm decode error and reset player and play"),e=this._opt.url,this._resetPlayer(),this.play(e).then(()=>{this.debug.log("Jessibuca","wasm decode error and reset player and play success")}).catch(e=>{this.debug.error("Jessibuca","wasm decode error and reset player and play error",e)})):this.debug.log("Jessibuca","wasm decode error and wasmDecodeErrorReplay is false")}).catch(e=>{this.debug.error("Jessibuca","wasm decode error and pause error",e)})}),this.player.once(A.wasmDecodeVideoNoResponseError,()=>{this.emit(v.crashLog,this.getCrashLog(A.wasmDecodeVideoNoResponseError)),this.pause().then(()=>{this.debug.log("Jessibuca","wasm decode video no response error and reset player and play");var e=this._opt.url,t=this.screenshot("","png",.92,"base64");this._resetPlayer({loadingBackground:t}),this.play(e).then(()=>{this.debug.log("Jessibuca","wasm decode video no response error and reset player and play success")}).catch(e=>{this.debug.error("Jessibuca","wasm decode video no response error and reset player and play error",e)})}).catch(e=>{this.debug.error("Jessibuca","wasm decode video no response error and pause error",e)})}),this.player.once(A.simdH264DecodeVideoWidthIsTooLarge,()=>{this.emit(v.crashLog,this.getCrashLog(A.simdH264DecodeVideoWidthIsTooLarge)),this.pause().then(()=>{this.debug.log("Jessibuca","simdH264DecodeVideoWidthIsTooLarge and reset player and play");var e=this._opt.url;this._resetPlayer({useSIMD:!1}),this.play(e).then(()=>{this.debug.log("Jessibuca","simdH264DecodeVideoWidthIsTooLarge and reset player and play success")}).catch(e=>{this.debug.error("Jessibuca","simdH264DecodeVideoWidthIsTooLarge and reset player and play error",e)})}).catch(e=>{this.debug.error("Jessibuca","simdH264DecodeVideoWidthIsTooLarge and pause error",e)})}),this.player.once(v.networkDelayTimeout,()=>{var e;this.emit(v.crashLog,this.getCrashLog(v.networkDelayTimeout)),this.player._opt.networkDelayTimeoutReplay&&(this.debug.log("Jessibuca","network delay time out and reset player and play"),e=this._opt.url,this._resetPlayer(),this.play(e).then(()=>{this.debug.log("Jessibuca","wasm decode error and reset player and play success")}).catch(e=>{this.debug.error("Jessibuca","wasm decode error and reset player and play error",e)}))}),this.player.once(A.fetchError,()=>{this.emit(v.crashLog,this.getCrashLog(A.fetchError)),this.debug.log("Jessibuca","fetch error and reset player"),this.pause().then(()=>{this._resetPlayer()}).catch(e=>{this.debug.error("Jessibuca","fetch error and pause",e)})}),this.player.on(v.delayTimeout,()=>{var e,t;this.emit(v.crashLog,this.getCrashLog(v.delayTimeout)),this.player&&this.player._opt.heartTimeoutReplay&&(this._heartTimeoutReplayTimes<this.player._opt.heartTimeoutReplayTimes||-1===this.player._opt.heartTimeoutReplayTimes)?(this.debug.log("Jessibuca",`delay timeout replay time is ${this._heartTimeoutReplayTimes} and heartTimeoutReplayTimes is `+this.player._opt.heartTimeoutReplayTimes),this.isDestroyed()?this.debug&&this.debug.warn("Jessibuca","delay timeout replay but player is destroyed"):(this._heartTimeoutReplayTimes+=1,e=this._opt.url,t={},this.player._opt.heartTimeoutReplayUseLastFrameShow&&(t.loadingBackground=this.screenshot("","png",.92,"base64")),this._resetPlayer(t),this.play(e).then(()=>{}).catch(e=>{this.debug.error("Jessibuca","delay timeout replay error",e)}))):(this.player&&this.player.emit(v.delayTimeoutRetryEnd),this.debug.warn("Jessibuca",`delayTimeout and opt.heartTimeoutReplay is ${this.player._opt.heartTimeoutReplay} and opt.heartTimeoutReplayTimes is ${this.player._opt.heartTimeoutReplayTimes}},and local._heartTimeoutReplayTimes is `+this._heartTimeoutReplayTimes))}),this.player.on(v.loadingTimeout,()=>{var e;this.emit(v.crashLog,this.getCrashLog(v.loadingTimeout)),this.player&&this.player._opt.loadingTimeoutReplay&&(this._loadingTimeoutReplayTimes<this.player._opt.loadingTimeoutReplayTimes||-1===this.player._opt.loadingTimeoutReplayTimes)?(this.debug.log("Jessibuca",`loading timeout replay time is ${this._loadingTimeoutReplayTimes} and loadingTimeoutReplayTimes is `+this.player._opt.loadingTimeoutReplayTimes),this.isDestroyed()?this.debug&&this.debug.warn("Jessibuca","delay timeout replay but player is destroyed"):(this._loadingTimeoutReplayTimes+=1,e=this._opt.url,this._resetPlayer(),this.play(e).then(()=>{}).catch(e=>{this.debug.error("Jessibuca","loading timeout replay error",e)}))):(this.player&&this.player.emit(v.loadingTimeoutRetryEnd),this.debug.log("Jessibuca",`loadingTimeoutReplay is ${this.player._opt.loadingTimeoutReplay} and local._loadingTimeoutReplayTimes time is ${this._loadingTimeoutReplayTimes} and opt.loadingTimeoutReplayTimes is `+this.player._opt.loadingTimeoutReplayTimes))}),this.hasLoaded()?this.player.play(c,u).then(()=>{e()}).catch(e=>{this.debug.error("Jessibuca","hasLoaded and play error",e),this.emit(v.crashLog,this.getCrashLog(e)),this.player.pause().then(()=>{t(e)}).catch(e=>{this.debug.error("Jessibuca","hasLoaded and play error and next pause error",e)})}):this.player.once(v.decoderWorkerInit,()=>{this.player.play(c,u).then(()=>{e()}).catch(e=>{this.debug.error("Jessibuca","decoderWorkerInit and play error",e),this.emit(v.crashLog,this.getCrashLog(e)),this.player.pause().then(()=>{t(e)}).catch(e=>{this.debug.error("Jessibuca","decoderWorkerInit and play error and next pause error",e)})})})})}resize(){this.player&&this.player.resize()}setBufferTime(e){e=Number(e),this.player&&(10<e&&console.warn(`Jessibuca buffer time is ${e} second, is too large, video will show blank screen until cache ${e} second buffer data`),this.player.updateOption({videoBuffer:1e3*e}),this.player.decoderWorker)&&this.player.decoderWorker.updateWorkConfig({key:"videoBuffer",value:1e3*e})}setBufferDelayTime(e){e=Number(e),this.player&&(e<.2&&console.warn(`Jessibuca buffer time delay is ${e} second, is too small`),e=b(e,.2,100),this.player.updateOption({videoBufferDelay:1e3*e}),this.player.decoderWorker)&&this.player.decoderWorker.updateWorkConfig({key:"videoBufferDelay",value:1e3*e})}setRotate(e){e=parseInt(e,10),this.player&&this._opt.rotate!==e&&-1!==[0,90,180,270].indexOf(e)&&(this.player.updateOption({rotate:e}),this.resize())}setMirrorRotate(e){this.player&&this._opt.mirrorRotate!==e&&-1!==["none","level","vertical"].indexOf(e)&&(this.player.updateOption({mirrorRotate:e}),this.resize())}hasLoaded(){return this.player&&this.player.loaded||!1}setKeepScreenOn(){this.player&&this.player.updateOption({keepScreenOn:!0})}setFullscreen(e){e=!!e;this.player&&this.player.fullscreen!==e&&(this.player.fullscreen=e)}screenshot(e,t,i,r){return this.player&&this.player.video?this.player.video.screenshot(e,t,i,r):null}screenshotWatermark(e){return this.player&&this.player.video?this.player.video.screenshotWatermark(e):null}startRecord(i,r){return new Promise((e,t)=>{if(!this.player)return t();(this.player.playing?(this.player.startRecord(i,r),e):t)()})}stopRecordAndSave(e,r){return new Promise((t,i)=>{this.player&&this.player.recording?this.player.stopRecordAndSave(e,r).then(e=>{t(e)}).catch(e=>{i(e)}):i("not recording")})}isPlaying(){let e=!1;return this.player&&(this._opt.playType===n?e=this.player.playing:this._opt.playType===y&&(e=!1===this.player.playbackPause&&this.player.playing)),e}isLoading(){return!!this.player&&this.player.loading}isPause(){let e=!1;return this._opt.playType===n?e=!this.isPlaying()&&!this.isLoading():this._opt.playType===y&&this.player&&(e=this.player.playbackPause),e}isPaused(){return this.isPause()}isPlaybackPause(){let e=!1;return e=this._opt.playType===y&&this.player?this.player.playbackPause:e}isMute(){let e=!0;return e=this.player?this.player.isAudioMute():e}isRecording(){return this.player&&this.player.recorder&&this.player.recorder.recording||!1}clearBufferDelay(){this.player&&this.player.clearBufferDelay()}setNetworkDelayTime(e){e=Number(e),this.player&&(e<1&&console.warn(`Jessibuca network delay is ${e} second, is too small`),e=b(e,1,100),this.player.updateOption({networkDelay:1e3*e}),this.player.decoderWorker)&&this.player.decoderWorker.updateWorkConfig({key:"networkDelay",value:1e3*e})}getDecodeType(){let e="";return e=this.player?this.player.getDecodeType():e}getRenderType(){let e="";return e=this.player?this.player.getRenderType():e}getAudioEngineType(){let e="";return e=this.player?this.player.getAudioEngineType():e}getPlayingTimestamp(){let e=0;return e=this.player?this.player.getPlayingTimestamp():e}getStatus(){let e="destroy";return e=this.player?this.player.loading?"loading":this.player.playing?"playing":"paused":e}getPlayType(){return this.player?this.player._opt.playType:n}togglePerformancePanel(e){var t=this.player._opt.showPerformance;let i=!t;(i=rt(e)?e:i)!==t&&this.player&&this.player.togglePerformancePanel(i)}openZoom(){this.player&&(this.player.zooming=!0)}closeZoom(){this.player&&(this.player.zooming=!1)}isZoomOpen(){let e=!1;return e=this.player?this.player.zooming:e}expandZoom(){this.player&&this.player.zoom&&this.player.zooming&&this.player.zoom.expandPrecision()}narrowZoom(){this.player&&this.player.zoom&&this.player.zooming&&this.player.zoom.narrowPrecision()}getCurrentZoomIndex(){let e=1;return e=this.player&&this.player.zoom?this.player.zoom.currentZoom:e}startTalk(i){let r=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};return new Promise((e,t)=>{this._initTalk(r),this.talk.startTalk(i).then(()=>{e(),this.talk.once(v.talkStreamClose,()=>{this.stopTalk().catch(e=>{})}),this.talk.once(v.talkStreamError,()=>{this.stopTalk().catch(e=>{})}),this.talk.once(v.talkStreamInactive,()=>{this.stopTalk().catch(e=>{})})}).catch(e=>{t(e)})})}stopTalk(){return new Promise((e,t)=>{this.talk||t("talk is not init"),this.talk.destroy(),e()})}getTalkVolume(){return new Promise((e,t)=>{this.talk||t("talk is not init"),e(this.talk.volume)})}setTalkVolume(i){return new Promise((e,t)=>{this.talk||t("talk is not init"),this.talk.setVolume(i/100),e()})}setNakedFlowFps(r){return new Promise((e,t)=>{var i;return this.player?it(r)?t("fps is empty"):(i=b(i=Number(r),1,100),void this.player.updateOption({nakedFlowFps:i})):t("player is not init")})}getCrashLog(e){var t,i;if(this.player)return t=this.player.getAllStatsData(),i=this.player,{url:this._opt.url,playType:i.isPlayback()?"playback":"live",demuxType:i.getDemuxType(),decoderType:i.getDecodeType(),renderType:i.getRenderType(),videoInfo:i.video?i.video.videoInfo:{},audioInfo:i.audio?i.audio.audioInfo:{},audioEngine:i.getAudioEngineType(),allTimes:t.pTs,timestamp:m(),error:function(e){const t=Object.prototype.toString;return function(e){switch(t.call(e)){case"[object Error]":case"[object Exception]":case"[object DOMException]":return 1;default:try{return e instanceof Error}catch(e){}}}(e)?e.message:null==e?"":"object"==typeof e?JSON.stringify(e,null,2):String(e)}(e)}}updateDebugLevel(e){!this.player||e!==z&&e!==K||e!==this.player._opt.debugLevel&&(this.player.updateOption({debugLevel:e}),this.player.decoderWorker)&&this.player.decoderWorker.updateWorkConfig({key:"debugLevel",value:e})}updateFullscreenWatermark(e){dt(e)&&(this._opt.fullscreenWatermarkConfig=e,(e=at(this.$container,e)).watermark_txt?this.watermark.load(e):this.debug.warn("jessibuca","fullscreenWatermarkConfig text is empty"))}removeFullscreenWatermark(){this.watermark&&this.watermark.remove()}faceDetectOpen(){this.player&&this.player.faceDetect(!0)}faceDetectClose(){this.player&&this.player.faceDetect(!1)}objectDetectOpen(){this.player&&this.player.objectDetect(!0)}objectDetectClose(){this.player&&this.player.objectDetect(!1)}sendWebsocketMessage(e){this.player?this.player.sendWebsocketMessage(e):this.debug.warn("jessibuca","player is not init")}downloadTempNakedFlowFile(){return new Promise((e,t)=>{this.player?(this.player.downloadNakedFlowFile(),e()):t("player is not init")})}downloadTempRtpFile(){return new Promise((e,t)=>{this.talk?(this.talk.downloadRtpFile(),e()):t("talk is not init")})}}return is.ERROR=A,is.EVENTS=ie,window.JessibucaPro=is});