UNPKG

dashjs

Version:

A reference client implementation for the playback of MPEG DASH via Javascript and compliant browsers.

1 lines 84.8 kB
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.dashjs=t():e.dashjs=t()}(self,(function(){return function(){"use strict";var e={3282:function(e){function t(e){if("string"!=typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}function n(e,t){for(var n,r="",s=0,i=-1,o=0,a=0;a<=e.length;++a){if(a<e.length)n=e.charCodeAt(a);else{if(47===n)break;n=47}if(47===n){if(i===a-1||1===o);else if(i!==a-1&&2===o){if(r.length<2||2!==s||46!==r.charCodeAt(r.length-1)||46!==r.charCodeAt(r.length-2))if(r.length>2){var E=r.lastIndexOf("/");if(E!==r.length-1){-1===E?(r="",s=0):s=(r=r.slice(0,E)).length-1-r.lastIndexOf("/"),i=a,o=0;continue}}else if(2===r.length||1===r.length){r="",s=0,i=a,o=0;continue}t&&(r.length>0?r+="/..":r="..",s=2)}else r.length>0?r+="/"+e.slice(i+1,a):r=e.slice(i+1,a),s=a-i-1;i=a,o=0}else 46===n&&-1!==o?++o:o=-1}return r}var r={resolve:function(){for(var e,r="",s=!1,i=arguments.length-1;i>=-1&&!s;i--){var o;i>=0?o=arguments[i]:(void 0===e&&(e=process.cwd()),o=e),t(o),0!==o.length&&(r=o+"/"+r,s=47===o.charCodeAt(0))}return r=n(r,!s),s?r.length>0?"/"+r:"/":r.length>0?r:"."},normalize:function(e){if(t(e),0===e.length)return".";var r=47===e.charCodeAt(0),s=47===e.charCodeAt(e.length-1);return 0!==(e=n(e,!r)).length||r||(e="."),e.length>0&&s&&(e+="/"),r?"/"+e:e},isAbsolute:function(e){return t(e),e.length>0&&47===e.charCodeAt(0)},join:function(){if(0===arguments.length)return".";for(var e,n=0;n<arguments.length;++n){var s=arguments[n];t(s),s.length>0&&(void 0===e?e=s:e+="/"+s)}return void 0===e?".":r.normalize(e)},relative:function(e,n){if(t(e),t(n),e===n)return"";if((e=r.resolve(e))===(n=r.resolve(n)))return"";for(var s=1;s<e.length&&47===e.charCodeAt(s);++s);for(var i=e.length,o=i-s,a=1;a<n.length&&47===n.charCodeAt(a);++a);for(var E=n.length-a,c=o<E?o:E,u=-1,l=0;l<=c;++l){if(l===c){if(E>c){if(47===n.charCodeAt(a+l))return n.slice(a+l+1);if(0===l)return n.slice(a+l)}else o>c&&(47===e.charCodeAt(s+l)?u=l:0===l&&(u=0));break}var _=e.charCodeAt(s+l);if(_!==n.charCodeAt(a+l))break;47===_&&(u=l)}var S="";for(l=s+u+1;l<=i;++l)l!==i&&47!==e.charCodeAt(l)||(0===S.length?S+="..":S+="/..");return S.length>0?S+n.slice(a+u):(a+=u,47===n.charCodeAt(a)&&++a,n.slice(a))},_makeLong:function(e){return e},dirname:function(e){if(t(e),0===e.length)return".";for(var n=e.charCodeAt(0),r=47===n,s=-1,i=!0,o=e.length-1;o>=1;--o)if(47===(n=e.charCodeAt(o))){if(!i){s=o;break}}else i=!1;return-1===s?r?"/":".":r&&1===s?"//":e.slice(0,s)},basename:function(e,n){if(void 0!==n&&"string"!=typeof n)throw new TypeError('"ext" argument must be a string');t(e);var r,s=0,i=-1,o=!0;if(void 0!==n&&n.length>0&&n.length<=e.length){if(n.length===e.length&&n===e)return"";var a=n.length-1,E=-1;for(r=e.length-1;r>=0;--r){var c=e.charCodeAt(r);if(47===c){if(!o){s=r+1;break}}else-1===E&&(o=!1,E=r+1),a>=0&&(c===n.charCodeAt(a)?-1==--a&&(i=r):(a=-1,i=E))}return s===i?i=E:-1===i&&(i=e.length),e.slice(s,i)}for(r=e.length-1;r>=0;--r)if(47===e.charCodeAt(r)){if(!o){s=r+1;break}}else-1===i&&(o=!1,i=r+1);return-1===i?"":e.slice(s,i)},extname:function(e){t(e);for(var n=-1,r=0,s=-1,i=!0,o=0,a=e.length-1;a>=0;--a){var E=e.charCodeAt(a);if(47!==E)-1===s&&(i=!1,s=a+1),46===E?-1===n?n=a:1!==o&&(o=1):-1!==n&&(o=-1);else if(!i){r=a+1;break}}return-1===n||-1===s||0===o||1===o&&n===s-1&&n===r+1?"":e.slice(n,s)},format:function(e){if(null===e||"object"!=typeof e)throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return function(e,t){var n=t.dir||t.root,r=t.base||(t.name||"")+(t.ext||"");return n?n===t.root?n+r:n+"/"+r:r}(0,e)},parse:function(e){t(e);var n={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return n;var r,s=e.charCodeAt(0),i=47===s;i?(n.root="/",r=1):r=0;for(var o=-1,a=0,E=-1,c=!0,u=e.length-1,l=0;u>=r;--u)if(47!==(s=e.charCodeAt(u)))-1===E&&(c=!1,E=u+1),46===s?-1===o?o=u:1!==l&&(l=1):-1!==o&&(l=-1);else if(!c){a=u+1;break}return-1===o||-1===E||0===l||1===l&&o===E-1&&o===a+1?-1!==E&&(n.base=n.name=0===a&&i?e.slice(1,E):e.slice(a,E)):(0===a&&i?(n.name=e.slice(1,o),n.base=e.slice(1,E)):(n.name=e.slice(a,o),n.base=e.slice(a,E)),n.ext=e.slice(o,E)),a>0?n.dir=e.slice(0,a-1):i&&(n.dir="/"),n},sep:"/",delimiter:":",win32:null,posix:null};r.posix=r,e.exports=r},8735:function(e,t,n){n.d(t,{GM:function(){return c},I$:function(){return _},LA:function(){return s},WJ:function(){return r},mm:function(){return u},pv:function(){return l},x_:function(){return S}}),n(2877),n(9259);const r={BITRATE_CHANGE:"bc",PLAY_STATE:"ps",ERROR:"e",TIME_INTERVAL:"t",CONTENT_ID:"c",BACKGROUNDED_MODE:"b",MUTE:"m",UNMUTE:"um",PLAYER_EXPAND:"pe",PLAYER_COLLAPSE:"pc",RESPONSE_RECEIVED:"rr",AD_START:"as",AD_END:"ae",AD_BREAK_START:"abs",AD_BREAK_END:"abe",SKIP:"sk",CUSTOM_EVENT:"ce"},s={REQUEST:"request",EVENT:"event"},i=["cen","e","h","ts"],o=["ab","bg","bl","br","bs","bsa","bsd","bsda","cdn","cid","cs","d","dfa","dl","ec","lab","lb","ltc","msd","mtp","nor","nr","ot","pb","pr","pt","rtp","sf","sid","sn","st","sta","su","tab","tb","tbl","tpb","v"];new Set(o);const a=["cmsdd","cmsds","rc","smrt","ttfb","ttfbb","ttlb","url"];new Set(a),new Set(i),new Set(["ab","bl","br","bsa","bsd","bsda","lab","lb","mtp","pb","tab","tb","tbl","tpb"]);const E=["bl","br","bs","cid","d","dl","mtp","nor","nrr","ot","pr","rtp","sf","sid","st","su","tb","v"];new Set(E),new Set(["ot","sf","st","e","sta"]);const c="CMCD",u=30,l=[...E,...o,...a,...i].filter(((e,t,n)=>n.indexOf(e)===t)),_={STARTING:"s",PLAYING:"p",SEEKING:"k",REBUFFERING:"r",PAUSED:"a",WAITING:"w",ENDED:"e",FATAL_ERROR:"f",QUIT:"q",PRELOADING:"d"},S={JSON:"json",QUERY:"query",HEADERS:"headers"};new Set(E),new Set(l),new Set(["bl","dl","mtp","rtp","tbl"]),new Set(["br","d","tb"])},2877:function(e,t,n){n.d(t,{d5:function(){return r}}),n(9259);var r=class e{constructor(t,n){Array.isArray(t)&&(t=t.map((t=>t instanceof e?t:new e(t)))),this.value=t,this.params=n}}},9259:function(e,t,n){function r(e){const t="string"==typeof e?new URL(e):e;return t.origin+t.pathname.substring(0,t.pathname.lastIndexOf("/")+1)}function s(e,t){let n;try{n=new URL(e)}catch{return e}const r=new URL(t);if(n.origin!==r.origin)return e;const s=n.pathname.split("/").slice(1),i=r.pathname.split("/").slice(1,-1),o=Math.min(s.length,i.length);for(let e=0;e<o&&s[e]===i[e];e++)s.shift(),i.shift();for(;i.length;)i.shift(),s.unshift("..");return s.join("/")+n.search+n.hash}n.d(t,{$_:function(){return r},gn:function(){return s}})},138:function(e,t){const n=function(){let e,t=[];const n={},r={};function s(e,n){for(const r in t){const s=t[r];if(s.context===e&&s.name===n)return s.instance}return null}function i(e,t){return t[e]}function o(e,t,n){e in n&&(n[e]=t)}function a(t,n,r){let s;const i=t.__dashjs_factory_name,o=n[i];if(o){let i=o.instance;if(!o.override)return i.apply({context:n,factory:e},r);s=t.apply({context:n},r),i=i.apply({context:n,factory:e,parent:s},r);for(const e in i)s.hasOwnProperty(e)&&(s[e]=i[e])}else s=t.apply({context:n},r);return s.getClassName=function(){return i},s}return e={deleteSingletonInstances:function(e){t=t.filter((t=>t.context!==e))},extend:function(e,t,n,r){!r[e]&&t&&(r[e]={instance:t,override:n})},getClassFactory:function(e){let t=i(e.__dashjs_factory_name,r);return t||(t=function(t){return void 0===t&&(t={}),{create:function(){return a(e,t,arguments)}}},r[e.__dashjs_factory_name]=t),t},getClassFactoryByName:function(e){return i(e,r)},getSingletonFactory:function(e){let r=i(e.__dashjs_factory_name,n);return r||(r=function(n){let r;return void 0===n&&(n={}),{getInstance:function(){return r||(r=s(n,e.__dashjs_factory_name)),r||(r=a(e,n,arguments),t.push({name:e.__dashjs_factory_name,context:n,instance:r})),r}}},n[e.__dashjs_factory_name]=r),r},getSingletonFactoryByName:function(e){return i(e,n)},getSingletonInstance:s,setSingletonInstance:function(e,n,r){for(const s in t){const i=t[s];if(i.context===e&&i.name===n)return void(t[s].instance=r)}t.push({name:n,context:e,instance:r})},updateClassFactory:function(e,t){o(e,t,r)},updateSingletonFactory:function(e,t){o(e,t,n)}},e}();t.A=n},7263:function(e,t,n){var r=n(3282),s=n(5212);class i{static mixin(e,t,n){let r,s={};if(e)for(let o in t)t.hasOwnProperty(o)&&(r=t[o],o in e&&(e[o]===r||o in s&&s[o]===r)||("object"==typeof e[o]&&null!==e[o]?e[o]=i.mixin(e[o],r,n):e[o]=n(r)));return e}static clone(e){if(!e||"object"!=typeof e)return e;if(e instanceof RegExp)return new RegExp(e);let t;if(e instanceof Array){t=[];for(let n=0,r=e.length;n<r;++n)n in e&&t.push(i.clone(e[n]))}else t={};return i.mixin(t,e,i.clone)}static addAdditionalQueryParameterToUrl(e,t){try{if(!t||0===t.length)return e;let n=e;return t.forEach((({key:e,value:t})=>{const r=n.includes("?")?"&":"?";n+=`${r}${encodeURIComponent(e)}=${encodeURIComponent(t)}`})),n}catch(t){return e}}static removeQueryParameterFromUrl(e,t){if(!e||!t)return e;const n=new URL(e),r=new URLSearchParams(n.search);if(!r||0===r.size||!r.has(t))return e;r.delete(t);const s=Array.from(r.entries()).map((([e,t])=>`${e}=${t}`)).join("&"),i=`${n.origin}${n.pathname}`;return s?`${i}?${s}`:i}static parseHttpHeaders(e){let t={};if(!e)return t;let n=e.trim().split("\r\n");for(let e=0,r=n.length;e<r;e++){let r=n[e],s=r.indexOf(": ");s>0&&(t[r.substring(0,s)]=r.substring(s+2))}return t}static parseQueryParams(e){const t=[],n=new URLSearchParams(e);for(const[e,r]of n.entries())t.push({key:decodeURIComponent(e),value:decodeURIComponent(r)});return t}static generateUuid(){let e=(new Date).getTime();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(t){const n=(e+16*Math.random())%16|0;return e=Math.floor(e/16),("x"==t?n:3&n|8).toString(16)}))}static generateHashCode(e){let t=0;if(0===e.length)return t;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n),t|=0;return t}static getRelativeUrl(e,t){try{const n=new URL(e),s=new URL(t);if(n.protocol=s.protocol,n.origin!==s.origin)return t;let i=r.relative(n.pathname.substr(0,n.pathname.lastIndexOf("/")),s.pathname.substr(0,s.pathname.lastIndexOf("/")));const o=0===i.length?1:0;return i+=s.pathname.substr(s.pathname.lastIndexOf("/")+o,s.pathname.length-1),s.pathname.length<i.length?s.pathname:i}catch(e){return t}}static getHostFromUrl(e){try{return new URL(e).host}catch(e){return null}}static parseUserAgent(e=null){try{const t="string"==typeof e?e.toLowerCase():"undefined"!=typeof navigator&&navigator.userAgent?navigator.userAgent.toLowerCase():"",n={name:""};return/edg/.test(t)?n.name="edge":/opr|opios/.test(t)?n.name="opera":/chrome|crios/.test(t)?n.name="chrome":/firefox|fxios/.test(t)?n.name="firefox":/safari/.test(t)&&(n.name="safari"),{browser:n}}catch(e){return{}}}static stringHasProtocol(e){return/(http(s?)):\/\//i.test(e)}static bufferSourceToDataView(e){return i.toDataView(e,DataView)}static bufferSourceToInt8(e){return i.toDataView(e,Uint8Array)}static uint8ArrayToString(e){return new TextDecoder("utf-8").decode(e)}static bufferSourceToHex(e){const t=i.bufferSourceToInt8(e);let n="";for(let e of t)e=e.toString(16),1===e.length&&(e="0"+e),n+=e;return n}static toDataView(e,t){const n=i.getArrayBuffer(e);let r=1;"BYTES_PER_ELEMENT"in DataView&&(r=DataView.BYTES_PER_ELEMENT);const s=((e.byteOffset||0)+e.byteLength)/r,o=(e.byteOffset||0)/r,a=Math.floor(Math.max(0,Math.min(o,s)));return new t(n,a,Math.floor(Math.min(a+Math.max(1/0,0),s))-a)}static getArrayBuffer(e){return e instanceof ArrayBuffer?e:e.buffer}static getCodecFamily(e){const{base:t,profile:n}=i._getCodecParts(e);switch(t){case"mp4a":switch(n){case"69":case"6b":case"40.34":return s.A.CODEC_FAMILIES.MP3;case"66":case"67":case"68":case"40.2":case"40.02":case"40.5":case"40.05":case"40.29":case"40.42":return s.A.CODEC_FAMILIES.AAC;case"a5":return s.A.CODEC_FAMILIES.AC3;case"e6":return s.A.CODEC_FAMILIES.EC3;case"b2":return s.A.CODEC_FAMILIES.DTSX;case"a9":return s.A.CODEC_FAMILIES.DTSC}break;case"avc1":case"avc3":return s.A.CODEC_FAMILIES.AVC;case"hvc1":case"hvc3":return s.A.CODEC_FAMILIES.HEVC;default:return t}return t}static _getCodecParts(e){const[t,...n]=e.split(".");return{base:t,profile:n.join(".")}}}t.A=i},8748:function(e,t){t.A=class{extend(e,t){if(!e)return;let n=!!t&&t.override,r=!!t&&t.publicOnly;for(const t in e)!e.hasOwnProperty(t)||this[t]&&!n||r&&-1===e[t].indexOf("public_")||(this[t]=e[t])}}},7252:function(e,t){t.A=class{extend(e,t){if(!e)return;let n=!!t&&t.override,r=!!t&&t.publicOnly;for(const t in e)!e.hasOwnProperty(t)||this[t]&&!n||r&&-1===e[t].indexOf("public_")||(this[t]=e[t])}}},8854:function(e,t){t.A={ACCESSIBILITY:"Accessibility",ADAPTATION_SET:"AdaptationSet",ADAPTATION_SETS:"adaptationSets",ADAPTATION_SET_SWITCHING_SCHEME_ID_URI:"urn:mpeg:dash:adaptation-set-switching:2016",ADD:"add",ASSET_IDENTIFIER:"AssetIdentifier",AUDIO_CHANNEL_CONFIGURATION:"AudioChannelConfiguration",AUDIO_SAMPLING_RATE:"audioSamplingRate",AVAILABILITY_END_TIME:"availabilityEndTime",AVAILABILITY_START_TIME:"availabilityStartTime",AVAILABILITY_TIME_COMPLETE:"availabilityTimeComplete",AVAILABILITY_TIME_OFFSET:"availabilityTimeOffset",BANDWITH:"bandwidth",BASE_URL:"BaseURL",BITSTREAM_SWITCHING:"BitstreamSwitching",BITSTREAM_SWITCHING_MINUS:"bitstreamSwitching",BYTE_RANGE:"byteRange",CAPTION:"caption",CENC_DEFAULT_KID:"cenc:default_KID",CLIENT_DATA_REPORTING:"ClientDataReporting",CLIENT_REQUIREMENT:"clientRequirement",CMCD_PARAMETERS:"CMCDParameters",CODECS:"codecs",CODEC_PRIVATE_DATA:"codecPrivateData",CODING_DEPENDENCY:"codingDependency",CONTENT_COMPONENT:"ContentComponent",CONTENT_PROTECTION:"ContentProtection",CONTENT_STEERING:"ContentSteering",CONTENT_STEERING_RESPONSE:{VERSION:"VERSION",TTL:"TTL",RELOAD_URI:"RELOAD-URI",PATHWAY_PRIORITY:"PATHWAY-PRIORITY",PATHWAY_CLONES:"PATHWAY-CLONES",BASE_ID:"BASE-ID",ID:"ID",URI_REPLACEMENT:"URI-REPLACEMENT",HOST:"HOST",PARAMS:"PARAMS"},CONTENT_TYPE:"contentType",DEFAULT_SERVICE_LOCATION:"defaultServiceLocation",DEPENDENCY_ID:"dependencyId",DURATION:"duration",DVB_PRIORITY:"dvb:priority",DVB_WEIGHT:"dvb:weight",DVB_URL:"dvb:url",DVB_MIMETYPE:"dvb:mimeType",DVB_FONTFAMILY:"dvb:fontFamily",DYNAMIC:"dynamic",END_NUMBER:"endNumber",ESSENTIAL_PROPERTY:"EssentialProperty",EVENT:"Event",EVENT_STREAM:"EventStream",FORCED_SUBTITLE:"forced-subtitle",FRAMERATE:"frameRate",FRAME_PACKING:"FramePacking",GROUP_LABEL:"GroupLabel",HEIGHT:"height",ID:"id",INBAND:"inband",INBAND_EVENT_STREAM:"InbandEventStream",INDEX:"index",INDEX_RANGE:"indexRange",INITIALIZATION:"Initialization",INITIALIZATION_MINUS:"initialization",K:"k",LA_URL:"Laurl",LA_URL_LOWER_CASE:"laurl",CERT_URL:"Certurl",LABEL:"Label",LANG:"lang",LOCATION:"Location",MAIN:"main",MAXIMUM_SAP_PERIOD:"maximumSAPPeriod",MAX_PLAYOUT_RATE:"maxPlayoutRate",MAX_SEGMENT_DURATION:"maxSegmentDuration",MAX_SUBSEGMENT_DURATION:"maxSubsegmentDuration",MEDIA:"media",MEDIA_PRESENTATION_DURATION:"mediaPresentationDuration",MEDIA_RANGE:"mediaRange",MEDIA_STREAM_STRUCTURE_ID:"mediaStreamStructureId",METRICS:"Metrics",METRICS_MINUS:"metrics",MIME_TYPE:"mimeType",MINIMUM_UPDATE_PERIOD:"minimumUpdatePeriod",MIN_BUFFER_TIME:"minBufferTime",MP4_PROTECTION_SCHEME:"urn:mpeg:dash:mp4protection:2011",MPD:"MPD",MPD_TYPE:"mpd",MPD_PATCH_TYPE:"mpdpatch",ORDER:"order",ORIGINAL_MPD_ID:"mpdId",ORIGINAL_PUBLISH_TIME:"originalPublishTime",PATCH_LOCATION:"PatchLocation",PERIOD:"Period",PRESELECTION:"Preselection",PRESELECTION_COMPONENTS:"preselectionComponents",PRESENTATION_TIME:"presentationTime",PRESENTATION_TIME_OFFSET:"presentationTimeOffset",PRO:"pro",PRODUCER_REFERENCE_TIME:"ProducerReferenceTime",PRODUCER_REFERENCE_TIME_TYPE:{ENCODER:"encoder",CAPTURED:"captured",APPLICATION:"application"},PROFILES:"profiles",PSSH:"pssh",PUBLISH_TIME:"publishTime",QUALITY_RANKING:"qualityRanking",QUERY_BEFORE_START:"queryBeforeStart",QUERY_PART:"$querypart$",RANGE:"range",RATING:"Rating",REF:"ref",REF_ID:"refId",REMOVE:"remove",REPLACE:"replace",REPORTING:"Reporting",REPRESENTATION:"Representation",REPRESENTATION_INDEX:"RepresentationIndex",ROBUSTNESS:"robustness",ROLE:"Role",S:"S",SAR:"sar",SCAN_TYPE:"scanType",SEGMENT_ALIGNMENT:"segmentAlignment",SEGMENT_BASE:"SegmentBase",SEGMENT_LIST:"SegmentList",SEGMENT_PROFILES:"segmentProfiles",SEGMENT_SEQUENCE_PROPERTIES:"SegmentSequenceProperties",SEGMENT_TEMPLATE:"SegmentTemplate",SEGMENT_TIMELINE:"SegmentTimeline",SEGMENT_TYPE:"segment",SEGMENT_URL:"SegmentURL",SERVICE_DESCRIPTION:"ServiceDescription",SERVICE_DESCRIPTION_LATENCY:"Latency",SERVICE_DESCRIPTION_OPERATING_BANDWIDTH:"OperatingBandwidth",SERVICE_DESCRIPTION_OPERATING_QUALITY:"OperatingQuality",SERVICE_DESCRIPTION_PLAYBACK_RATE:"PlaybackRate",SERVICE_DESCRIPTION_SCOPE:"Scope",SERVICE_LOCATION:"serviceLocation",SERVICE_LOCATIONS:"serviceLocations",SOURCE_URL:"sourceURL",START:"start",START_NUMBER:"startNumber",START_WITH_SAP:"startWithSAP",STATIC:"static",STEERING_TYPE:"steering",SUBSET:"Subset",SUBTITLE:"subtitle",SUB_REPRESENTATION:"SubRepresentation",SUB_SEGMENT_ALIGNMENT:"subsegmentAlignment",SUGGESTED_PRESENTATION_DELAY:"suggestedPresentationDelay",SUPPLEMENTAL_PROPERTY:"SupplementalProperty",SUPPLEMENTAL_CODECS:"scte214:supplementalCodecs",TAG:"tag",TIMESCALE:"timescale",TIMESHIFT_BUFFER_DEPTH:"timeShiftBufferDepth",TTL:"ttl",TYPE:"type",UTC_TIMING:"UTCTiming",VALUE:"value",VIEWPOINT:"Viewpoint",WALL_CLOCK_TIME:"wallClockTime",WIDTH:"width"}},5212:function(e,t,n){var r=n(8735);t.A={STREAM:"stream",VIDEO:"video",ENHANCEMENT:"enhancement",AUDIO:"audio",TEXT:"text",MUXED:"muxed",IMAGE:"image",STPP:"stpp",TTML:"ttml",VTT:"vtt",WVTT:"wvtt",CONTENT_STEERING:"contentSteering",LIVE_CATCHUP_MODE_DEFAULT:"liveCatchupModeDefault",LIVE_CATCHUP_MODE_LOLP:"liveCatchupModeLoLP",LIVE_CATCHUP_MODE_STEP:"liveCatchupModeStep",MOVING_AVERAGE_SLIDING_WINDOW:"slidingWindow",MOVING_AVERAGE_EWMA:"ewma",BAD_ARGUMENT_ERROR:"Invalid Arguments",MISSING_CONFIG_ERROR:"Missing config parameter(s)",TRACK_SWITCH_MODE_ALWAYS_REPLACE:"alwaysReplace",TRACK_SWITCH_MODE_NEVER_REPLACE:"neverReplace",TRACK_SELECTION_MODE_FIRST_TRACK:"firstTrack",TRACK_SELECTION_MODE_HIGHEST_BITRATE:"highestBitrate",TRACK_SELECTION_MODE_HIGHEST_EFFICIENCY:"highestEfficiency",TRACK_SELECTION_MODE_LOWEST_STARTUP_DELAY:"lowestStartupDelay",TRACK_SELECTION_MODE_WIDEST_RANGE:"widestRange",CMCD_QUERY_KEY:r.GM,CMCD_MODE_QUERY:r.x_.QUERY,CMCD_MODE_HEADERS:r.x_.HEADERS,CMCD_MODE_BODY:"body",CMCD_AVAILABLE_REQUESTS:["segment","mpd","xlink","steering","other"],CMCD_DEFAULT_TIME_INTERVAL:r.mm,CMCD_REPORTING_MODE:r.LA,CMCD_KEYS:r.pv,CMCD_REPORTING_EVENTS:r.WJ,CMCD_PLAYER_STATES:r.I$,CMCD_DEFAULT_VERSION:1,CMCD_DEFAULT_INCLUDE_IN_REQUESTS:"segment",CMCD_CONTENT_TYPE_HEADER:{"Content-Type":"text/cmcd"},INITIALIZE:"initialize",TEXT_SHOWING:"showing",TEXT_HIDDEN:"hidden",TEXT_DISABLED:"disabled",ACCESSIBILITY_CEA608_SCHEME:"urn:scte:dash:cc:cea-608:2015",CC1:"CC1",CC3:"CC3",UTF8:"utf-8",SCHEME_ID_URI:"schemeIdUri",START_TIME:"starttime",SERVICE_DESCRIPTION_DVB_LL_SCHEME:"urn:dvb:dash:lowlatency:scope:2019",SUPPLEMENTAL_PROPERTY_DVB_LL_SCHEME:"urn:dvb:dash:lowlatency:critical:2019",CTA_5004_2023_SCHEME:"urn:mpeg:dash:cta-5004:2023",CTA_5004_2025_SCHEME:"urn:dashif:cta-5004:2025",THUMBNAILS_SCHEME_ID_URIS:["http://dashif.org/thumbnail_tile","http://dashif.org/guidelines/thumbnail_tile"],FONT_DOWNLOAD_DVB_SCHEME:"urn:dvb:dash:fontdownload:2014",COLOUR_PRIMARIES_SCHEME_ID_URI:"urn:mpeg:mpegB:cicp:ColourPrimaries",URL_QUERY_INFO_SCHEME:"urn:mpeg:dash:urlparam:2014",EXT_URL_QUERY_INFO_SCHEME:"urn:mpeg:dash:urlparam:2016",ADV_URL_QUERY_INFO_SCHEME:"urn:mpeg:dash:urlparam:2025",URL_QUERY_STATE_PREFIX:/urn:mpeg:dash:state:/,MATRIX_COEFFICIENTS_SCHEME_ID_URI:"urn:mpeg:mpegB:cicp:MatrixCoefficients",TRANSFER_CHARACTERISTICS_SCHEME_ID_URI:"urn:mpeg:mpegB:cicp:TransferCharacteristics",SEGMENT_SEQUENCE_REPRESENTATION_SCHEME_ID_URI:"urn:mpeg:dash:ssr:2023",HDR_METADATA_FORMAT_SCHEME_ID_URI:"urn:dvb:dash:hdr-dmi",HDR_METADATA_FORMAT_VALUES:{ST2094_10:"ST2094-10",SL_HDR2:"SL-HDR2",ST2094_40:"ST2094-40"},MEDIA_CAPABILITIES_API:{COLORGAMUT:{SRGB:"srgb",P3:"p3",REC2020:"rec2020"},TRANSFERFUNCTION:{SRGB:"srgb",PQ:"pq",HLG:"hlg"},HDR_METADATATYPE:{SMPTE_ST_2094_10:"smpteSt2094-10",SLHDR2:"slhdr2",SMPTE_ST_2094_40:"smpteSt2094-40"}},XML:"XML",ARRAY_BUFFER:"ArrayBuffer",DVB_REPORTING_URL:"dvb:reportingUrl",DVB_PROBABILITY:"dvb:probability",OFF_MIMETYPE:"application/font-sfnt",WOFF_MIMETYPE:"application/font-woff",VIDEO_ELEMENT_READY_STATES:{HAVE_NOTHING:0,HAVE_METADATA:1,HAVE_CURRENT_DATA:2,HAVE_FUTURE_DATA:3,HAVE_ENOUGH_DATA:4},FILE_LOADER_TYPES:{FETCH:"fetch_loader",XHR:"xhr_loader"},THROUGHPUT_TYPES:{LATENCY:"throughput_type_latency",BANDWIDTH:"throughput_type_bandwidth"},THROUGHPUT_CALCULATION_MODES:{EWMA:"throughputCalculationModeEwma",ZLEMA:"throughputCalculationModeZlema",ARITHMETIC_MEAN:"throughputCalculationModeArithmeticMean",BYTE_SIZE_WEIGHTED_ARITHMETIC_MEAN:"throughputCalculationModeByteSizeWeightedArithmeticMean",DATE_WEIGHTED_ARITHMETIC_MEAN:"throughputCalculationModeDateWeightedArithmeticMean",HARMONIC_MEAN:"throughputCalculationModeHarmonicMean",BYTE_SIZE_WEIGHTED_HARMONIC_MEAN:"throughputCalculationModeByteSizeWeightedHarmonicMean",DATE_WEIGHTED_HARMONIC_MEAN:"throughputCalculationModeDateWeightedHarmonicMean"},LOW_LATENCY_DOWNLOAD_TIME_CALCULATION_MODE:{MOOF_PARSING:"lowLatencyDownloadTimeCalculationModeMoofParsing",DOWNLOADED_DATA:"lowLatencyDownloadTimeCalculationModeDownloadedData",AAST:"lowLatencyDownloadTimeCalculationModeAast"},RULES_TYPES:{QUALITY_SWITCH_RULES:"qualitySwitchRules",ABANDON_FRAGMENT_RULES:"abandonFragmentRules"},QUALITY_SWITCH_RULES:{BOLA_RULE:"BolaRule",THROUGHPUT_RULE:"ThroughputRule",INSUFFICIENT_BUFFER_RULE:"InsufficientBufferRule",SWITCH_HISTORY_RULE:"SwitchHistoryRule",DROPPED_FRAMES_RULE:"DroppedFramesRule",LEARN_TO_ADAPT_RULE:"L2ARule",LOL_PLUS_RULE:"LoLPRule"},ABANDON_FRAGMENT_RULES:{ABANDON_REQUEST_RULE:"AbandonRequestsRule"},ID3_SCHEME_ID_URI:"https://aomedia.org/emsg/ID3",COMMON_ACCESS_TOKEN_HEADER:"common-access-token",DASH_ROLE_SCHEME_ID:"urn:mpeg:dash:role:2011",CODEC_FAMILIES:{MP3:"mp3",AAC:"aac",AC3:"ac3",EC3:"ec3",DTSX:"dtsx",DTSC:"dtsc",AVC:"avc",HEVC:"hevc"}}},2861:function(e,t){t.A={CLEARKEY_KEYSTEM_STRING:"org.w3.clearkey",CLEARKEY_UUID:"e2719d58-a985-b3c9-781a-b030af78d30e",ENCRYPTION_SCHEME_CBCS:"cbcs",ENCRYPTION_SCHEME_CENC:"cenc",FAIRPLAY_KEYSTEM_STRING:"com.apple.fps",FAIRPLAY_UUID:"94ce86fb-07ff-4f43-adb8-93d2fa968ca2",INITIALIZATION_DATA_TYPE_CENC:"cenc",INITIALIZATION_DATA_TYPE_KEYIDS:"keyids",INITIALIZATION_DATA_TYPE_SINF:"sinf",INITIALIZATION_DATA_TYPE_WEBM:"webm",MEDIA_KEY_MESSAGE_TYPES:{LICENSE_REQUEST:"license-request",LICENSE_RENEWAL:"license-renewal",LICENSE_RELEASE:"license-release",INDIVIDUALIZATION_REQUEST:"individualization-request"},MEDIA_KEY_STATUSES:{USABLE:"usable",EXPIRED:"expired",RELEASED:"released",OUTPUT_RESTRICTED:"output-restricted",OUTPUT_DOWNSCALED:"output-downscaled",STATUS_PENDING:"status-pending",INTERNAL_ERROR:"internal-error"},PLAYREADY_KEYSTEM_STRING:"com.microsoft.playready",PLAYREADY_RECOMMENDATION_KEYSTEM_STRING:"com.microsoft.playready.recommendation",PLAYREADY_UUID:"9a04f079-9840-4286-ab92-e65be0885f95",ROBUSTNESS_STRINGS:{WIDEVINE:{SW_SECURE_CRYPTO:"SW_SECURE_CRYPTO",SW_SECURE_DECODE:"SW_SECURE_DECODE",HW_SECURE_CRYPTO:"HW_SECURE_CRYPTO",HW_SECURE_DECODE:"HW_SECURE_DECODE",HW_SECURE_ALL:"HW_SECURE_ALL"}},W3C_CLEARKEY_UUID:"1077efec-c0b2-4d02-ace3-3c1e52e2fb4b",WIDEVINE_KEYSTEM_STRING:"com.widevine.alpha",WIDEVINE_UUID:"edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"}},445:function(e,t,n){var r=n(7252);class s extends r.A{constructor(){super(),this.INTERNAL_KEY_MESSAGE="internalKeyMessage",this.INTERNAL_KEY_STATUSES_CHANGED="internalkeyStatusesChanged",this.KEY_ADDED="public_keyAdded",this.KEY_ERROR="public_keyError",this.KEY_MESSAGE="public_keyMessage",this.KEY_SESSION_CLOSED="public_keySessionClosed",this.KEY_SESSION_CREATED="public_keySessionCreated",this.KEY_SESSION_REMOVED="public_keySessionRemoved",this.KEY_STATUSES_CHANGED="public_keyStatusesChanged",this.KEY_STATUSES_MAP_UPDATED="keyStatusesMapUpdated",this.KEY_SYSTEM_ACCESS_COMPLETE="public_keySystemAccessComplete",this.KEY_SYSTEM_SELECTED="public_keySystemSelected",this.LICENSE_REQUEST_COMPLETE="public_licenseRequestComplete",this.LICENSE_REQUEST_SENDING="public_licenseRequestSending",this.NEED_KEY="needkey",this.PROTECTION_CREATED="public_protectioncreated",this.PROTECTION_DESTROYED="public_protectiondestroyed",this.SERVER_CERTIFICATE_UPDATED="serverCertificateUpdated",this.TEARDOWN_COMPLETE="protectionTeardownComplete",this.VIDEO_ELEMENT_SELECTED="videoElementSelected",this.KEY_SESSION_UPDATED="public_keySessionUpdated"}}let i=new s;t.A=i},1923:function(e,t,n){var r=n(8748);class s extends r.A{constructor(){super(),this.MEDIA_KEYERR_CODE=100,this.MEDIA_KEYERR_UNKNOWN_CODE=101,this.MEDIA_KEYERR_CLIENT_CODE=102,this.MEDIA_KEYERR_SERVICE_CODE=103,this.MEDIA_KEYERR_OUTPUT_CODE=104,this.MEDIA_KEYERR_HARDWARECHANGE_CODE=105,this.MEDIA_KEYERR_DOMAIN_CODE=106,this.MEDIA_KEY_MESSAGE_ERROR_CODE=107,this.MEDIA_KEY_MESSAGE_NO_CHALLENGE_ERROR_CODE=108,this.SERVER_CERTIFICATE_UPDATED_ERROR_CODE=109,this.KEY_STATUS_CHANGED_EXPIRED_ERROR_CODE=110,this.MEDIA_KEY_MESSAGE_NO_LICENSE_SERVER_URL_ERROR_CODE=111,this.KEY_SYSTEM_ACCESS_DENIED_ERROR_CODE=112,this.KEY_SESSION_CREATED_ERROR_CODE=113,this.MEDIA_KEY_MESSAGE_LICENSER_ERROR_CODE=114,this.MEDIA_KEYERR_UNKNOWN_MESSAGE="An unspecified error occurred. This value is used for errors that don't match any of the other codes.",this.MEDIA_KEYERR_CLIENT_MESSAGE="The Key System could not be installed or updated.",this.MEDIA_KEYERR_SERVICE_MESSAGE="The message passed into update indicated an error from the license service.",this.MEDIA_KEYERR_OUTPUT_MESSAGE="There is no available output device with the required characteristics for the content protection system.",this.MEDIA_KEYERR_HARDWARECHANGE_MESSAGE="A hardware configuration change caused a content protection error.",this.MEDIA_KEYERR_DOMAIN_MESSAGE="An error occurred in a multi-device domain licensing configuration. The most common error is a failure to join the domain.",this.MEDIA_KEY_MESSAGE_ERROR_MESSAGE="Multiple key sessions were creates with a user-agent that does not support sessionIDs!! Unpredictable behavior ahead!",this.MEDIA_KEY_MESSAGE_NO_CHALLENGE_ERROR_MESSAGE="DRM: Empty key message from CDM",this.SERVER_CERTIFICATE_UPDATED_ERROR_MESSAGE="Error updating server certificate -- ",this.KEY_STATUS_CHANGED_EXPIRED_ERROR_MESSAGE="DRM: KeyStatusChange error! -- License has expired",this.MEDIA_KEY_MESSAGE_NO_LICENSE_SERVER_URL_ERROR_MESSAGE="DRM: No license server URL specified!",this.KEY_SYSTEM_ACCESS_DENIED_ERROR_MESSAGE="DRM: KeySystem Access Denied! -- ",this.KEY_SESSION_CREATED_ERROR_MESSAGE="DRM: unable to create session! --",this.MEDIA_KEY_MESSAGE_LICENSER_ERROR_MESSAGE="DRM: licenser error! --"}}let i=new s;t.A=i},1349:function(e,t){function n(e){return e?(Array.isArray(e)?e:[e]).map((e=>{if(!e)return null;if("string"==typeof e){const t=e.trim();return t?{url:t,certType:null}:null}if("object"==typeof e){let t=(e.__text||e.text||"").trim();t||"string"!=typeof e.url||(t=e.url.trim());let n=e.certType||e["@certType"]||null;return n&&"string"==typeof n?(n=n.trim(),""===n&&(n=null)):n=null,t?{url:t,certType:n}:null}return null})).filter(Boolean):[]}function r(e){if(!Array.isArray(e)||0===e.length)return[];const t=new Set,n=[];for(let r=0;r<e.length;r++){const s=e[r];if(!s||!s.url)continue;const i=s.url+"||"+(s.certType||"");t.has(i)||(t.add(i),n.push(s))}return n}t.A={normalizeCertUrls:n,dedupeCertUrls:r,sanitizeProtectionDataCertUrls:function(e){return e&&"object"==typeof e&&Object.keys(e).forEach((t=>{const s=e[t];s&&Array.isArray(s.certUrls)&&(s.certUrls=r(n(s.certUrls)))})),e}}},1944:function(e,t){t.A=class{constructor(e,t,n){this.code=e||null,this.message=t||null,this.data=n||null}}},7568:function(e,t,n){n.d(t,{G:function(){return r}});class r{constructor(){this.tcpid=null,this.type=null,this.url=null,this.actualurl=null,this.range=null,this.trequest=null,this.tresponse=null,this.responsecode=null,this.interval=null,this.trace=[],this.cmsd=null,this._stream=null,this._tfinish=null,this._mediaduration=null,this._responseHeaders=null,this._serviceLocation=null,this._fileLoaderType=null,this._resourceTimingValues=null}}r.BITSTREAM_SWITCHING_SEGMENT_TYPE="BitstreamSwitchingSegment",r.CONTENT_STEERING_TYPE="ContentSteering",r.DVB_REPORTING_TYPE="DVBReporting",r.GET="GET",r.POST="POST",r.HEAD="HEAD",r.INDEX_SEGMENT_TYPE="IndexSegment",r.INIT_SEGMENT_TYPE="InitializationSegment",r.LICENSE="license",r.LICENSE_CERTIFICATE="licenseCertificate",r.MEDIA_SEGMENT_TYPE="MediaSegment",r.MPD_TYPE="MPD",r.MSS_FRAGMENT_INFO_SEGMENT_TYPE="FragmentInfoSegment",r.CMCD_EVENT="CmcdEvent",r.OTHER_TYPE="other",r.XLINK_EXPANSION_TYPE="XLinkExpansion"}},t={};function n(r){var s=t[r];if(void 0!==s)return s.exports;var i=t[r]={exports:{}};return e[r](i,i.exports,n),i.exports}n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};var r={};n.d(r,{default:function(){return Ce}});var s=n(8854),i=n(2861);const o={prefixes:["clearkey","dashif","ck"]};class a{static findMp4ProtectionElement(e){let t=null;for(let n=0;n<e.length;++n){let r=e[n];r.schemeIdUri&&r.schemeIdUri.toLowerCase()===s.A.MP4_PROTECTION_SCHEME&&r.value&&(r.value.toLowerCase()===i.A.ENCRYPTION_SCHEME_CENC||r.value.toLowerCase()===i.A.ENCRYPTION_SCHEME_CBCS)&&(t=r)}return t}static getPSSHData(e){let t=8,n=new DataView(e),r=n.getUint8(t);return t+=20,r>0&&(t+=4+16*n.getUint32(t)),t+=4,e.slice(t)}static getPSSHForKeySystem(e,t){let n=a.parsePSSHList(t);return e&&n.hasOwnProperty(e.uuid.toLowerCase())?n[e.uuid.toLowerCase()]:null}static parseInitDataFromContentProtection(e,t){return"pssh"in e&&e.pssh?(e.pssh.__text=e.pssh.__text.replace(/\r?\n|\r/g,"").replace(/\s+/g,""),t.decodeArray(e.pssh.__text).buffer):null}static parsePSSHList(e){if(null==e)return[];let t=new DataView(e.buffer||e),n={},r=0;for(;;){let e,s,i,o,a,E,c=r;if(r>=t.buffer.byteLength)break;if(e=t.getUint32(r),s=r+e,r+=4,1886614376===t.getUint32(r))if(r+=4,i=t.getUint8(r),0===i||1===i){for(r++,r+=3,o="",a=0;a<4;a++)E=t.getUint8(r+a).toString(16),o+=1===E.length?"0"+E:E;for(r+=4,o+="-",a=0;a<2;a++)E=t.getUint8(r+a).toString(16),o+=1===E.length?"0"+E:E;for(r+=2,o+="-",a=0;a<2;a++)E=t.getUint8(r+a).toString(16),o+=1===E.length?"0"+E:E;for(r+=2,o+="-",a=0;a<2;a++)E=t.getUint8(r+a).toString(16),o+=1===E.length?"0"+E:E;for(r+=2,o+="-",a=0;a<6;a++)E=t.getUint8(r+a).toString(16),o+=1===E.length?"0"+E:E;r+=6,o=o.toLowerCase(),r+=4,n[o]=t.buffer.slice(c,s),r=s}else r=s;else r=s}return n}static getLicenseServerUrlFromMediaInfo(e,t){try{if(!e||0===e.length)return null;let n=0,r=null;for(;n<e.length&&!r;){const s=e[n];if(s&&s.contentProtection&&s.contentProtection.length>0){const e=s.contentProtection.filter((e=>e.schemeIdUri&&e.schemeIdUri===t));if(e&&e.length>0){let t=0;for(;t<e.length&&!r;){const n=e[t];n.laUrl&&n.laUrl.__prefix&&o.prefixes.includes(n.laUrl.__prefix)&&n.laUrl.__text&&(r=n.laUrl.__text),t+=1}}}n+=1}return r}catch(e){return null}}static hexKidToBufferSource(e){const t=e.replace(/-/g,"");return new Uint8Array(t.match(/[\da-f]{2}/gi).map((function(e){return parseInt(e,16)}))).buffer}}var E=a,c=class{constructor(e,t,n=null){this.contentType=e,this.robustness=t,this.encryptionScheme=n}},u=class{constructor(e,t,n,r,s,o){this.initDataTypes=o&&o.length>0?o:[i.A.INITIALIZATION_DATA_TYPE_CENC],e&&e.length&&(this.audioCapabilities=e),t&&t.length&&(this.videoCapabilities=t),this.distinctiveIdentifier=n,this.persistentState=r,this.sessionTypes=s}},l=n(1923),_=n(1944),S=class{constructor(e,t,n,r,s,i,o,a){this.url=e,this.method=t,this.responseType=n,this.headers=r,this.withCredentials=s,this.messageType=i,this.sessionId=o,this.data=a}},d=class{constructor(e,t,n){this.url=e,this.headers=t,this.data=n}},g=n(7568),A=n(1349),f=n(7263),y=n(138),T=class{constructor(e,t,n){this.url=e,this.method="GET",this.responseType="arraybuffer",this.headers=t,this.body=null,this.withCredentials=n}},I=class{constructor(e,t,n){this.url=e,this.headers=t,this.data=n}};function R(e){const t=(e=e||{}).BASE64,n=e.cmcdController,r=e.constants,s=e.customParametersModel,o=e.debug,a=e.eventBus,y=e.events,R=e.protectionKeyController,h=e.settings;let p,C,m,D,M,N,O,L,P,U,K,Y,b,v,w=e.protectionModel,k=[];function G(){if(!(a&&a.hasOwnProperty("on")&&R&&R.hasOwnProperty("getSupportedKeySystemMetadataFromContentProtection")))throw new Error("Missing config parameter(s)")}function F(e,n){b||M?b&&(U?U.then((()=>{V()})):V()):function(e,n){if(M)return;var r;M=!0;const s=function(e){const t=[];for(let n=0;n<e.length;n++){const r=W(e[n]);t.push({ks:e[n].ks,configs:[r],protData:e[n].protData})}return t}(e=(r=e).sort(((e,t)=>(p&&p[e.ks.systemString]&&p[e.ks.systemString].priority>=0?p[e.ks.systemString].priority:r.length)-(p&&p[t.ks.systemString]&&p[t.ks.systemString].priority>=0?p[t.ks.systemString].priority:r.length))));let o;w.requestKeySystemAccess(s).then((e=>(o=e.data,function(e){let t=e&&e.selectedSystemString?e.selectedSystemString:e.keySystem.systemString;return L.info("DRM: KeySystem Access Granted for system string ("+t+")! Selecting key system..."),w.selectKeySystem(e)}(o)))).then((e=>{!function(e,n){try{b=e,M=!1,a.trigger(y.KEY_SYSTEM_SELECTED,{data:n});const r=Q(b);r&&r.serverCertificate&&r.serverCertificate.length>0&&w.setServerCertificate(t.decodeArray(r.serverCertificate).buffer),b.systemString===i.A.FAIRPLAY_KEYSTEM_STRING?U=H().then((()=>{U=null,V()})).catch((e=>{L.warn("DRM: Certificate acquisition failed for FairPlay: "+(e&&e.message?e.message:e)+". Proceeding anyway."),U=null,V()})):(H().catch((e=>{L.error(e)})),V())}catch(e){L.error(e)}}(e,o)})).catch((e=>{!function(e,t){b=null,M=!1,t||a.trigger(y.KEY_SYSTEM_SELECTED,{data:null,error:new _.A(l.A.KEY_SYSTEM_ACCESS_DENIED_ERROR_CODE,l.A.KEY_SYSTEM_ACCESS_DENIED_ERROR_MESSAGE+"Error selecting key system! -- "+e.error)})}(e,n)}))}(e,n)}function H(){if(!b)return Promise.resolve();const e=b.systemString,t=C.get(e);if(t&&(t.applied||t.inProgress))return Promise.resolve();const n=function(){const e=[],t=Q(b);return t&&Array.isArray(t.certUrls)&&t.certUrls.length&&t.certUrls.forEach((t=>{e.push(t)})),P.forEach((t=>{t&&t.contentProtection&&t.contentProtection.forEach((t=>{t&&Array.isArray(t.certUrls)&&t.certUrls.length&&t.schemeIdUri.toLowerCase()===b.schemeIdURI&&t.certUrls.forEach((t=>{e.push(t)}))}))})),A.A.dedupeCertUrls(e)}();if(!n.length)return L.debug("DRM: No Certificate Server URLs found for "+e+". Skipping certificate acquisition."),Promise.resolve();L.debug("DRM: Found "+n.length+" certificate candidate(s) for "+e+". Starting acquisition.");const r=Q(b)||{},s=t||{applied:!1,inProgress:!0,attempts:0};return s.inProgress=!0,C.set(e,s),B(n,0,r,e,s)}function B(e,t,n,r,i){if(t>=e.length)return function(e,t){return e.inProgress=!1,e.error=e.error||"All certificate candidates failed",L.warn("DRM: All certificate candidates failed for "+t+"."),Promise.reject(new Error(e.error))}(i,r);const o=e[t],a=isNaN(h.get().streaming.retryAttempts[g.G.LICENSE_CERTIFICATE])?3:h.get().streaming.retryAttempts[g.G.LICENSE_CERTIFICATE];return L.debug("DRM: Attempting certificate download ("+(t+1)+"/"+e.length+") url="+o.url),function(e,t){const n=s.getCertificateRequestFilters();let r=!1;t&&"boolean"==typeof t.withCredentials&&(r=t.withCredentials);const i={};t&&ne(i,t.httpRequestHeaders);const o=new T(e.url,i,r);return se(n,o).then((()=>o))}(o,n).then((e=>x(e,n,a))).then((e=>function(e,t,n,r){if(!e||!e.byteLength)throw new Error("Empty certificate response");return r.urlUsed=t.url,r.buffer=e,function(e,t,n){return new Promise(((r,s)=>{try{const t=w.setServerCertificate(e);t&&"function"==typeof t.then?t.then((e=>{r("boolean"!=typeof e||e)})).catch((e=>{n.error=e&&e.message?e.message:e,s(e)})):r(!0)}catch(e){n.error=e&&e.message?e.message:e,L.warn("DRM: setServerCertificate threw for "+t+": "+n.error),s(e)}}))}(e,n,r).then((e=>{if(!e)throw new Error("CDM rejected certificate");r.applied=!0,r.inProgress=!1}))}(e,o,r,i))).then((()=>{!function(e,t,n){const r=e.certType?" certType="+e.certType:"";L.info("DRM: Server certificate applied successfully from "+n.urlUsed+r+" for "+t+".")}(o,r,i)})).catch((s=>(i.attempts++,i.lastError=s&&s.message?s.message:s,L.warn("DRM: Certificate attempt failed ("+o.url+"): "+i.lastError),B(e,t+1,n,r,i))))}function x(e,t,n){return new Promise(((r,i)=>{const o=new XMLHttpRequest;o.open(e.method,e.url,!0),o.responseType=e.responseType;const a=t&&!isNaN(t.httpTimeout)?t.httpTimeout:8e3;a>0&&(o.timeout=a),o.withCredentials=e.withCredentials;for(const t of Object.keys(e.headers))o.setRequestHeader(t,e.headers[t]);const E=s=>{if(n>0){const o=n-1,a=isNaN(h.get().streaming.retryIntervals[g.G.LICENSE_CERTIFICATE])?500:h.get().streaming.retryIntervals[g.G.LICENSE_CERTIFICATE];L.debug("DRM: Certificate request failed ("+s+"). Retrying... remaining="+o),setTimeout((()=>{x(e,t,o).then(r).catch(i)}),a)}else i(new Error(s))};o.onload=function(){if(this.status>=200&&this.status<=299){const e=f.A.parseHttpHeaders(o.getAllResponseHeaders?o.getAllResponseHeaders():null);se(s.getCertificateResponseFilters(),new I(o.responseURL,e,this.response)).then((()=>{r(this.response)})).catch((()=>{r(this.response)}))}else E("HTTP "+this.status)},o.onerror=function(){E("network error")},o.ontimeout=function(){E("timeout")},o.onabort=function(){E("aborted")};try{o.send(e.body)}catch(e){i(e)}}))}function V(){let e;for(let n=0;n<K.length;n++)for(e=0;e<K[n].length;e++)if(b===K[n][e].ks){t=K[n][e],R.isClearKey(b)&&function(e){if(e.protData&&e.protData.hasOwnProperty("clearkeys")&&0!==Object.keys(e.protData.clearkeys).length){const t={kids:Object.keys(e.protData.clearkeys)};e.initData=(new TextEncoder).encode(JSON.stringify(t))}}(t),t.sessionId?q(t):null!==t.initData&&j(t);break}var t;K=[]}function W(e){const t=e.protData,n=[],s=[];let o=i.A.INITIALIZATION_DATA_TYPE_CENC;e.ks&&e.ks.systemString===i.A.FAIRPLAY_KEYSTEM_STRING&&(o=i.A.INITIALIZATION_DATA_TYPE_SINF);const a=t&&t.initDataTypes&&t.initDataTypes.length>0?t.initDataTypes:[o],E=t&&t.audioRobustness&&t.audioRobustness.length>0?t.audioRobustness:Y,l=t&&t.videoRobustness&&t.videoRobustness.length>0?t.videoRobustness:Y,_=e.sessionType,S=t&&t.distinctiveIdentifier?t.distinctiveIdentifier:"optional",d=t&&t.persistentState?t.persistentState:"temporary"===_?"optional":"required",g=e.ks&&e.ks.systemString===i.A.FAIRPLAY_KEYSTEM_STRING?i.A.ENCRYPTION_SCHEME_CBCS:void 0;return P.forEach((e=>{e.type===r.AUDIO?n.push(new c(e.codec,E,g)):e.type===r.VIDEO&&s.push(new c(e.codec,l,g))})),new u(n,s,S,d,[_],a)}function q(e){G(),w.loadKeySession(e)}function j(e){if(e&&function(e){if(!e)return!1;try{const t=w.getSessionTokens();for(let n=0;n<t.length;n++)if(t[n].getKeyId()===e)return!0;return!1}catch(e){return!1}}(e.keyId))return;!function(){if(!h)return;const e=h.get().streaming.protection.keepProtectionMediaKeys,t=h.get().streaming.protection.keepProtectionMediaKeysMaximumOpenSessions;if("number"!=typeof t||t<=0)return;if(!e)return void L.warn("DRM: keepProtectionMediaKeysMaximumOpenSessions is set to "+t+", but keepProtectionMediaKeys is not enabled. Therefore, keepProtectionMediaKeysMaximumOpenSessions will be ignored.");if(!w||"function"!=typeof w.getSessionTokens)return;const n=w.getSessionTokens()||[];if(n.length<t)return;const r=n[0];r&&(L.info("DRM: Maximum number of open MediaKeySessions reached ("+t+"), closing oldest session."),z(r))}();const t=E.getPSSHForKeySystem(b,e?e.initData:null);if(t){if(X(t))return;try{e.initData=t,w.createKeySession(e)}catch(e){a.trigger(y.KEY_SESSION_CREATED,{data:null,error:new _.A(l.A.KEY_SESSION_CREATED_ERROR_CODE,l.A.KEY_SESSION_CREATED_ERROR_MESSAGE+e.message)})}}else e&&e.initData?w.createKeySession(e):a.trigger(y.KEY_SESSION_CREATED,{data:null,error:new _.A(l.A.KEY_SESSION_CREATED_ERROR_CODE,l.A.KEY_SESSION_CREATED_ERROR_MESSAGE+"Selected key system is "+(b?b.systemString:null)+". needkey/encrypted event contains no initData corresponding to that key system!")})}function Q(e){if(e){const t=e.systemString;if(p)return t in p?p[t]:null}return null}function X(e){if(!e)return!1;try{const t=w.getAllInitData();for(let n=0;n<t.length;n++)if(R.initDataEquals(e,t[n]))return L.debug("DRM: Ignoring initData because we have already seen it!"),!0;return!1}catch(e){return!1}}function z(e){G(),w.closeKeySession(e)}function Z(e){G(),e?(w.setMediaElement(e),a.on(y.NEED_KEY,ie,m)):null===e&&(w.setMediaElement(e),a.off(y.NEED_KEY,ie,m))}function $(e){L.debug("DRM: onKeyMessage");const t=e.data;a.trigger(y.KEY_MESSAGE,{data:t});const n=t.messageType?t.messageType:i.A.MEDIA_KEY_MESSAGE_TYPES.LICENSE_REQUEST,r=t.message,o=t.sessionToken,c=Q(b),u=R.getLicenseServerModelInstance(b,c,n),A={sessionToken:o,messageType:n};if(r&&0!==r.byteLength){if(!u)return L.debug("DRM: License server request not required for this message (type = "+e.data.messageType+"). Session ID = "+o.getSessionId()),void J(A);if(R.isClearKey(b)){const e=R.processClearKeyLicenseRequest(b,c,r);if(e&&e.keyPairs&&e.keyPairs.length>0)return L.debug("DRM: ClearKey license request handled by application!"),J(A),void w.updateKeySession(o,e)}!function(e,t,n){const r=e.sessionToken,o=e.messageType?e.messageType:i.A.MEDIA_KEY_MESSAGE_TYPES.LICENSE_REQUEST,a={sessionToken:r,messageType:o},c=b?b.systemString:null;let u=function(e,t,n,r,s){let i=null;const o=r.message;if(e&&e.serverURL){const n=e.serverURL;"string"==typeof n&&""!==n?i=n:"object"==typeof n&&n.hasOwnProperty(t)&&(i=n[t])}else if(e&&e.laURL&&""!==e.laURL)i=e.laURL;else if(i=E.getLicenseServerUrlFromMediaInfo(P,b.schemeIdURI),!i&&!R.isClearKey(b)){const e=E.getPSSHData(n.initData);i=b.getLicenseServerURLFromInitData(e),i||(i=r.laURL)}return i=s.getServerURLFromMessage(i,o,t),i}(n,o,r,e,t);if(!u)return void J(a,new _.A(l.A.MEDIA_KEY_MESSAGE_NO_LICENSE_SERVER_URL_ERROR_CODE,l.A.MEDIA_KEY_MESSAGE_NO_LICENSE_SERVER_URL_ERROR_MESSAGE));const A={};let y=!1;n&&ne(A,n.httpRequestHeaders);const T=e.message;ne(A,b.getRequestHeadersFromMessage(T)),Object.keys(A).forEach((e=>{"authorization"===e.toLowerCase()&&(y=!0)})),n&&"boolean"==typeof n.withCredentials&&(y=n.withCredentials);const I=function(e){if(w)if(e.status>=200&&e.status<=299){const n=f.A.parseHttpHeaders(e.getAllResponseHeaders?e.getAllResponseHeaders():null);let i=new d(e.responseURL,n,e.response);se(s.getLicenseResponseFilters(),i).then((()=>{const n=t.getLicenseMessage(i.data,c,o);null!==n?(J(a),w.updateKeySession(r,n)):re(e,a,c,o,t)}))}else re(e,a,c,o,t)},p=function(e){J(a,new _.A(l.A.MEDIA_KEY_MESSAGE_LICENSER_ERROR_CODE,l.A.MEDIA_KEY_MESSAGE_LICENSER_ERROR_MESSAGE+c+' update, XHR aborted. status is "'+e.statusText+'" ('+e.status+"), readyState is "+e.readyState))},C=function(e){J(a,new _.A(l.A.MEDIA_KEY_MESSAGE_LICENSER_ERROR_CODE,l.A.MEDIA_KEY_MESSAGE_LICENSER_ERROR_MESSAGE+c+' update, XHR error. status is "'+e.statusText+'" ('+e.status+"), readyState is "+e.readyState))},m=b.getLicenseRequestFromMessage(T),D=t.getHTTPMethod(o),M=t.getResponseType(c,o),N=n&&!isNaN(n.httpTimeout)?n.httpTimeout:8e3,O=r.getSessionId()||null;let L=new S(u,D,M,A,y,o,O,m);const U=isNaN(h.get().streaming.retryAttempts[g.G.LICENSE])?3:h.get().streaming.retryAttempts[g.G.LICENSE];se(s.getLicenseRequestFilters(),L).then((()=>{ee(L,U,N,I,p,C)}))}(t,u,c)}else J(A,new _.A(l.A.MEDIA_KEY_MESSAGE_NO_CHALLENGE_ERROR_CODE,l.A.MEDIA_KEY_MESSAGE_NO_CHALLENGE_ERROR_MESSAGE))}function J(e,t=null){a.trigger(y.LICENSE_REQUEST_COMPLETE,{data:e,error:t})}function ee(e,t,r,s,i,o){const E=new XMLHttpRequest,c={url:e.url,type:g.G.LICENSE,method:e.method,headers:e.headers||{}};n.applyCmcdToRequest(c),e.url=c.url,e.headers=c.headers,E.open(e.method,e.url,!0),E.responseType=e.responseType,E.withCredentials=e.withCredentials,r>0&&(E.timeout=r);for(const t in e.headers)E.setRequestHeader(t,e.headers[t]);const u=function(){t--;const n=isNaN(h.get().streaming.retryIntervals[g.G.LICENSE])?1e3:h.get().streaming.retryIntervals[g.G.LICENSE];N=setTimeout((function(){ee(e,t,r,s,i,o)}),n)};E.onload=function(){O=null,this.status>=200&&this.status<=299||t<=0?s(this):(L.warn("License request failed ("+this.status+"). Retrying it... Pending retries: "+t),u())},E.ontimeout=E.onerror=function(){O=null,t<=0?o(this):(L.warn("License request network request failed . Retrying it... Pending retries: "+t),u())},E.onabort=function(){i(this)},a.trigger(y.LICENSE_REQUEST_SENDING,{url:e.url,headers:e.headers,payload:e.data,sessionId:e.sessionId}),O=E,E.send(e.data)}function te(){O&&(O.onloadend=O.onerror=O.onprogress=void 0,O.abort(),O=null),N&&(clearTimeout(N),N=null)}function ne(e,t){if(t)for(const n in t)e[n]=t[n]}function re(e,t,n,r,s){let i="NONE",o=null;e.response&&(i=s.getErrorResponse(e.response,n,r),o={serverResponse:e.response||null,responseCode:e.status||null,responseText:e.statusText||null}),J(t,new _.A(l.A.MEDIA_KEY_MESSAGE_LICENSER_ERROR_CODE,l.A.MEDIA_KEY_MESSAGE_LICENSER_ERROR_MESSAGE+n+' update, XHR complete. status is "'+e.statusText+'" ('+e.status+"), readyState is "+e.readyState+". Response is "+i,o))}function se(e,t){return e?e.reduce(((e,n)=>e.then((()=>n(t)))),Promise.resolve()):Promise.resolve()}function ie(e,t){if(h.get().streaming.protection.ignoreEmeEncryptedEvent)return;if(L.debug("DRM: onNeedKey"),e.key.initDataType!==i.A.INITIALIZATION_DATA_TYPE_CENC&&e.key.initDataType!==i.A.INITIALIZATION_DATA_TYPE_SINF)return void L.warn("DRM: Only 'cenc' and 'sinf' initData are supported! Ignoring initData of type: "+e.key.initDataType);if(0===P.length&&(L.warn("DRM: onNeedKey called before initializeForMedia, wait until initialized"),(t=void 0===t?1:t+1)<5))return void k.push(setTimeout((()=>{ie(e,t)}),500));let n=e.key.initData;ArrayBuffer.isView(n)&&(n=n.buffer);const r=e.key.initDataType===i.A.INITIALIZATION_DATA_TYPE_SINF;if(b){const e=r?n:E.getPSSHForKeySystem(b,n);if(e&&X(e))return}let s;L.debug("DRM: initData:",String.fromCharCode.apply(null,new Uint8Array(n))),s=r?R.getSupportedKeySystemMetadataForSinf(n,p,v):R.getSupportedKeySystemMetadataFromSegmentPssh(n,p,v),0!==s.length?function(e){K.push(e),F(e,!1)}(s):L.debug("DRM: Received needkey event with initData, but we don't support any of the key systems!")}function oe(e,t){if(e.size<=0)return!1;if(t.size>0&&[...e].every((e=>{const n=t.get(e);return void 0!==n&&""!==n})))return!0;const n=w.getSessionTokens();if(n&&n.length>0){const t=n.filter((t=>[...e].includes(t.normalizedKeyId)));if(t.some((e=>!e.hasTriggeredKeyStatusMapUpdate))||0===t.length)return!1}return!h.get().streaming.protection.ignoreKeyStatuses&&e&&e.size>0&&t&&t.size>0}return m={areKeyIdsExpired:function(e){try{return!!oe(e,D)&&[...e].every((e=>D.get(e)===i.A.MEDIA_KEY_STATUSES.EXPIRED))}catch(e){return L.error(e),!1}},areKeyIdsUsable:function(e){try{return!oe(e,D)||[...e].some((e=>{const t=D.get(e);return t&&t!==i.A.MEDIA_KEY_STATUSES.INTERNAL_ERROR&&t!==i.A.MEDIA_KEY_STATUSES.OUTPUT_RESTRICTED}))}catch(e){return L.error(e),!0}},clearMediaInfoArray:function(){P=[]},closeKeySession:z,createKeySession:j,getKeySystems:function(){return R?R.getKeySystems():[]},getProtectionData:function(){return p},getSupportedKeySystemMetadataFromContentProtection:function(e){return G(),R.getSupportedKeySystemMetadataFromContentProtection(e,p,v)},handleKeySystemFromManifest:function(){if(!P||0===P.length)return;let e=[];P.forEach((t=>{const n=R.getSupportedKeySystemMetadataFromContentProtection(t.contentProtection,p,v);n.length>0&&(0===e.length&&(e=n),K.push(n))})),e&&e.length>0&&F(e,!0)},initializeForMedia:function(e){if(!e)throw new Error("mediaInfo can not be null or undefined");G(),P.push(e)},loadKeySession:q,removeKeySession:function(e){G(),w.removeKeySession(e)},reset:function(){a.off(y.INTERNAL_KEY_MESSAGE,$,m),G(),te(),Z(null),b=null,M=!1,D=new Map,C=new Map,w&&(w.reset(),w=null),k.forEach((e=>clearTimeout(e))),k=[],P=[],K=[]},setKeySystems:function(e){R&&R.setKeySystems(e)},setMediaElement:Z,setProtectionData:function(e){p=e,R.setProtectionData(e)},setRobustnessLevel:function(e){Y=e},setServerCertificate:function(e){return G(),w.setServerCertificate(e)},setSessionType:function(e){v=e},stop:function(){te(),w&&w.stop()},updateKeyStatusesMap:function(e){try{if(!e||!e.sessionToken||!e.parsedKeyStatuses)return;e.sessionToken.hasTriggeredKeyStatusMapUpdate=!0;const t=e.parsedKeyStatuses,n=f.A.parseUserAgent(),r=n&&n.browser&&n.browser.name&&"edge"===n.browser.name.toLowerCase();t.forEach((e=>{r&&b.uuid===i.A.PLAYREADY_UUID&&e.keyId&&16===e.keyId.byteLength&&function(e){const t=f.A.bufferSourceToDataView(e),n=t.getUint32(0,!0),r=t.getUint16(4,!0),s=t.getUint16(6,!0);t.setUint32(0,n,!1),t.setUint16(4,r,!1),t.setUint16(6,s,!1)}(e.keyId);const t=f.A.bufferSourceToHex(e.keyId).slice(0,32);t&&""!==t&&D.set(t,e.status)})),a.trigger(y.KEY_STATUSES_MAP_UPDATED,{keyStatusMap:D})}catch(e){L.error(e)}}},L=o.getLogger(m),K=[],P=[],v="temporary",Y="",O=null,N=null,D=new Map,C=new Map,U=null,a.on(y.INTERNAL_KEY_MESSAGE,$,m),m}R.__dashjs_factory_name="ProtectionController";var h=y.A.getClassFactory(R),p=class{constructor(e,t){this.keyID=e,this.key=t}},C=class{constructor(e,t){if(t&&"persistent"!==t&&"temporary"!==t)throw new Error("Invalid ClearKey key set type! Must be one of 'persistent' or 'temporary'");this.keyPairs=e,this.type=t}toJWK(){let e,t=this.keyPairs.length,n={keys:[]};for(e=0;e<t;e++){let t={kty:"oct",alg:"A128KW",kid:this.keyPairs[e].keyID,k:this.keyPairs[e].key};n.keys.push(t)}this.type&&(n.type=this.type);let r=JSON.stringify(n);const s=r.length;let i=new ArrayBuffer(s),o=new Uint8Array(i);for(e=0;e<s;e++)o[e]=r.charCodeAt(e);return i}};const m=i.A.CLEARKEY_UUID,D=i.A.CLEARKEY_KEYSTEM_STRING,M="urn:uuid:"+m;function N(e){let t;const n=(e=e||{}).BASE64;return t={uuid:m,schemeIdURI:M,systemString:D,getInitData:function(e,t){try{let r=E.parseInitDataFromContentProtection(e,n);if(!r&&t){const e={kids:[function(e){try{let t=e.r