-
Notifications
You must be signed in to change notification settings - Fork 1.7k
/
dash.protection.min.js
2 lines (2 loc) · 66.3 KB
/
dash.protection.min.js
1
2
!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()}(window,(function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/dist/",n(n.s=75)}({1:function(e,t,n){"use strict";function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var i=new(function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.init()}var t,n,i;return t=e,(n=[{key:"init",value:function(){this.STREAM="stream",this.VIDEO="video",this.AUDIO="audio",this.TEXT="text",this.MUXED="muxed",this.IMAGE="image",this.STPP="stpp",this.TTML="ttml",this.VTT="vtt",this.WVTT="wvtt",this.ABR_STRATEGY_DYNAMIC="abrDynamic",this.ABR_STRATEGY_BOLA="abrBola",this.ABR_STRATEGY_L2A="abrL2A",this.ABR_STRATEGY_LoLP="abrLoLP",this.ABR_STRATEGY_THROUGHPUT="abrThroughput",this.ABR_FETCH_THROUGHPUT_CALCULATION_DOWNLOADED_DATA="abrFetchThroughputCalculationDownloadedData",this.ABR_FETCH_THROUGHPUT_CALCULATION_MOOF_PARSING="abrFetchThroughputCalculationMoofParsing",this.ABR_FETCH_THROUGHPUT_CALCULATION_AAST="abrFetchThroughputCalculationAAST",this.LIVE_CATCHUP_MODE_DEFAULT="liveCatchupModeDefault",this.LIVE_CATCHUP_MODE_LOLP="liveCatchupModeLoLP",this.MOVING_AVERAGE_SLIDING_WINDOW="slidingWindow",this.MOVING_AVERAGE_EWMA="ewma",this.BAD_ARGUMENT_ERROR="Invalid Arguments",this.MISSING_CONFIG_ERROR="Missing config parameter(s)",this.TRACK_SWITCH_MODE_ALWAYS_REPLACE="alwaysReplace",this.TRACK_SWITCH_MODE_NEVER_REPLACE="neverReplace",this.TRACK_SELECTION_MODE_FIRST_TRACK="firstTrack",this.TRACK_SELECTION_MODE_HIGHEST_BITRATE="highestBitrate",this.TRACK_SELECTION_MODE_HIGHEST_EFFICIENCY="highestEfficiency",this.TRACK_SELECTION_MODE_WIDEST_RANGE="widestRange",this.TRACK_SELECTION_MODE_HIGHEST_SELECTION_PRIORITY="highestSelectionPriority",this.CMCD_MODE_QUERY="query",this.CMCD_MODE_HEADER="header",this.LOCATION="Location",this.INITIALIZE="initialize",this.TEXT_SHOWING="showing",this.TEXT_HIDDEN="hidden",this.CC1="CC1",this.CC3="CC3",this.UTF8="utf-8",this.SCHEME_ID_URI="schemeIdUri",this.START_TIME="starttime",this.SERVICE_DESCRIPTION_DVB_LL_SCHEME="urn:dvb:dash:lowlatency:scope:2019",this.SUPPLEMENTAL_PROPERTY_DVB_LL_SCHEME="urn:dvb:dash:lowlatency:critical:2019",this.XML="XML",this.ARRAY_BUFFER="ArrayBuffer",this.DVB_REPORTING_URL="dvb:reportingUrl",this.DVB_PROBABILITY="dvb:probability",this.VIDEO_ELEMENT_READY_STATES={HAVE_NOTHING:0,HAVE_METADATA:1,HAVE_CURRENT_DATA:2,HAVE_FUTURE_DATA:3,HAVE_ENOUGH_DATA:4},this.FILE_LOADER_TYPES={FETCH:"fetch_loader",XHR:"xhr_loader"}}}])&&r(t.prototype,n),i&&r(t,i),e}());t.a=i},10:function(e,t,n){"use strict";t.a=function e(t,n,r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.code=t||null,this.message=n||null,this.data=r||null}},15:function(e,t,n){"use strict";var r=n(36),i=n.n(r);function s(e){return(s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function a(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var o=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,n,r;return t=e,r=[{key:"mixin",value:function(t,n,r){var i,a={};if(t)for(var o in n)n.hasOwnProperty(o)&&(i=n[o],o in t&&(t[o]===i||o in a&&a[o]===i)||("object"===s(t[o])&&null!==t[o]?t[o]=e.mixin(t[o],i,r):t[o]=r(i)));return t}},{key:"clone",value:function(t){if(!t||"object"!==s(t))return t;var n;if(t instanceof Array){n=[];for(var r=0,i=t.length;r<i;++r)r in t&&n.push(e.clone(t[r]))}else n={};return e.mixin(n,t,e.clone)}},{key:"addAditionalQueryParameterToUrl",value:function(e,t){try{if(!t||0===t.length)return e;var n=new URL(e);return t.forEach((function(e){e.key&&e.value&&n.searchParams.set(e.key,e.value)})),n.href}catch(t){return e}}},{key:"parseHttpHeaders",value:function(e){var t={};if(!e)return t;for(var n=e.trim().split("\r\n"),r=0,i=n.length;r<i;r++){var s=n[r],a=s.indexOf(": ");a>0&&(t[s.substring(0,a)]=s.substring(a+2))}return t}},{key:"generateUuid",value:function(){var e=(new Date).getTime();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(t){var n=(e+16*Math.random())%16|0;return e=Math.floor(e/16),("x"==t?n:3&n|8).toString(16)}))}},{key:"generateHashCode",value:function(e){var t=0;if(0===e.length)return t;for(var n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n),t|=0;return t}},{key:"getRelativeUrl",value:function(e,t){try{var n=new URL(e),r=new URL(t);if(n.protocol=r.protocol,n.origin!==r.origin)return t;var s=i.a.relative(n.pathname.substr(0,n.pathname.lastIndexOf("/")),r.pathname.substr(0,r.pathname.lastIndexOf("/"))),a=0===s.length?1:0;return s+=r.pathname.substr(r.pathname.lastIndexOf("/")+a,r.pathname.length-1),r.pathname.length<s.length?r.pathname:s}catch(e){return t}}}],(n=null)&&a(t.prototype,n),r&&a(t,r),e}();t.a=o},18:function(e,t,n){"use strict";function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var i=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,n,i;return t=e,(n=[{key:"extend",value:function(e,t){if(e){var n=!!t&&t.override,r=!!t&&t.publicOnly;for(var i in e)!e.hasOwnProperty(i)||this[i]&&!n||r&&-1===e[i].indexOf("public_")||(this[i]=e[i])}}}])&&r(t.prototype,n),i&&r(t,i),e}();t.a=i},25:function(e,t){var n,r,i=e.exports={};function s(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function o(e){if(n===setTimeout)return setTimeout(e,0);if((n===s||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:s}catch(e){n=s}try{r="function"==typeof clearTimeout?clearTimeout:a}catch(e){r=a}}();var u,c=[],l=!1,E=-1;function f(){l&&u&&(l=!1,u.length?c=u.concat(c):E=-1,c.length&&y())}function y(){if(!l){var e=o(f);l=!0;for(var t=c.length;t;){for(u=c,c=[];++E<t;)u&&u[E].run();E=-1,t=c.length}u=null,l=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===a||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(e)}}function d(e,t){this.fun=e,this.array=t}function g(){}i.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];c.push(new d(e,t)),1!==c.length||l||o(y)},d.prototype.run=function(){this.fun.apply(null,this.array)},i.title="browser",i.browser=!0,i.env={},i.argv=[],i.version="",i.versions={},i.on=g,i.addListener=g,i.once=g,i.off=g,i.removeListener=g,i.removeAllListeners=g,i.emit=g,i.prependListener=g,i.prependOnceListener=g,i.listeners=function(e){return[]},i.binding=function(e){throw new Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(e){throw new Error("process.chdir is not supported")},i.umask=function(){return 0}},28:function(e,t,n){"use strict";function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var i=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,n,i;return t=e,(n=[{key:"extend",value:function(e,t){if(e){var n=!!t&&t.override,r=!!t&&t.publicOnly;for(var i in e)!e.hasOwnProperty(i)||this[i]&&!n||r&&-1===e[i].indexOf("public_")||(this[i]=e[i])}}}])&&r(t.prototype,n),i&&r(t,i),e}();t.a=i},3:function(e,t,n){"use strict";var r=function(){var e,t=[],n={},r={};function i(e,n){for(var r in t){var i=t[r];if(i.context===e&&i.name===n)return i.instance}return null}function s(e,t){return t[e]}function a(e,t,n){e in n&&(n[e]=t)}function o(t,n,r){var i,s=t.__dashjs_factory_name,a=n[s];if(a){var o=a.instance;if(!a.override)return o.apply({context:n,factory:e},r);for(var u in i=t.apply({context:n},r),o=o.apply({context:n,factory:e,parent:i},r))i.hasOwnProperty(u)&&(i[u]=o[u])}else i=t.apply({context:n},r);return i.getClassName=function(){return s},i}return e={extend:function(e,t,n,r){!r[e]&&t&&(r[e]={instance:t,override:n})},getSingletonInstance:i,setSingletonInstance:function(e,n,r){for(var i in t){var s=t[i];if(s.context===e&&s.name===n)return void(t[i].instance=r)}t.push({name:n,context:e,instance:r})},deleteSingletonInstances:function(e){t=t.filter((function(t){return t.context!==e}))},getSingletonFactory:function(e){var r=s(e.__dashjs_factory_name,n);return r||(r=function(n){var r;return void 0===n&&(n={}),{getInstance:function(){return r||(r=i(n,e.__dashjs_factory_name)),r||(r=o(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 s(e,n)},updateSingletonFactory:function(e,t){a(e,t,n)},getClassFactory:function(e){var t=s(e.__dashjs_factory_name,r);return t||(t=function(t){return void 0===t&&(t={}),{create:function(){return o(e,t,arguments)}}},r[e.__dashjs_factory_name]=t),t},getClassFactoryByName:function(e){return s(e,r)},updateClassFactory:function(e,t){a(e,t,r)}}}();t.a=r},36:function(e,t,n){(function(e){function n(e,t){for(var n=0,r=e.length-1;r>=0;r--){var i=e[r];"."===i?e.splice(r,1):".."===i?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n--;n)e.unshift("..");return e}function r(e,t){if(e.filter)return e.filter(t);for(var n=[],r=0;r<e.length;r++)t(e[r],r,e)&&n.push(e[r]);return n}t.resolve=function(){for(var t="",i=!1,s=arguments.length-1;s>=-1&&!i;s--){var a=s>=0?arguments[s]:e.cwd();if("string"!=typeof a)throw new TypeError("Arguments to path.resolve must be strings");a&&(t=a+"/"+t,i="/"===a.charAt(0))}return(i?"/":"")+(t=n(r(t.split("/"),(function(e){return!!e})),!i).join("/"))||"."},t.normalize=function(e){var s=t.isAbsolute(e),a="/"===i(e,-1);return(e=n(r(e.split("/"),(function(e){return!!e})),!s).join("/"))||s||(e="."),e&&a&&(e+="/"),(s?"/":"")+e},t.isAbsolute=function(e){return"/"===e.charAt(0)},t.join=function(){var e=Array.prototype.slice.call(arguments,0);return t.normalize(r(e,(function(e,t){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e})).join("/"))},t.relative=function(e,n){function r(e){for(var t=0;t<e.length&&""===e[t];t++);for(var n=e.length-1;n>=0&&""===e[n];n--);return t>n?[]:e.slice(t,n-t+1)}e=t.resolve(e).substr(1),n=t.resolve(n).substr(1);for(var i=r(e.split("/")),s=r(n.split("/")),a=Math.min(i.length,s.length),o=a,u=0;u<a;u++)if(i[u]!==s[u]){o=u;break}var c=[];for(u=o;u<i.length;u++)c.push("..");return(c=c.concat(s.slice(o))).join("/")},t.sep="/",t.delimiter=":",t.dirname=function(e){if("string"!=typeof e&&(e+=""),0===e.length)return".";for(var t=e.charCodeAt(0),n=47===t,r=-1,i=!0,s=e.length-1;s>=1;--s)if(47===(t=e.charCodeAt(s))){if(!i){r=s;break}}else i=!1;return-1===r?n?"/":".":n&&1===r?"/":e.slice(0,r)},t.basename=function(e,t){var n=function(e){"string"!=typeof e&&(e+="");var t,n=0,r=-1,i=!0;for(t=e.length-1;t>=0;--t)if(47===e.charCodeAt(t)){if(!i){n=t+1;break}}else-1===r&&(i=!1,r=t+1);return-1===r?"":e.slice(n,r)}(e);return t&&n.substr(-1*t.length)===t&&(n=n.substr(0,n.length-t.length)),n},t.extname=function(e){"string"!=typeof e&&(e+="");for(var t=-1,n=0,r=-1,i=!0,s=0,a=e.length-1;a>=0;--a){var o=e.charCodeAt(a);if(47!==o)-1===r&&(i=!1,r=a+1),46===o?-1===t?t=a:1!==s&&(s=1):-1!==t&&(s=-1);else if(!i){n=a+1;break}}return-1===t||-1===r||0===s||1===s&&t===r-1&&t===n+1?"":e.slice(t,r)};var i="b"==="ab".substr(-1)?function(e,t,n){return e.substr(t,n)}:function(e,t,n){return t<0&&(t=e.length+t),e.substr(t,n)}}).call(this,n(25))},5:function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}n.d(t,"a",(function(){return i})),n.d(t,"b",(function(){return s}));var i=function e(){r(this,e),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._stream=null,this._tfinish=null,this._mediaduration=null,this._quality=null,this._responseHeaders=null,this._serviceLocation=null,this._fileLoaderType=null},s=function e(){r(this,e),this.s=null,this.d=null,this.b=[]};i.GET="GET",i.HEAD="HEAD",i.MPD_TYPE="MPD",i.XLINK_EXPANSION_TYPE="XLinkExpansion",i.INIT_SEGMENT_TYPE="InitializationSegment",i.INDEX_SEGMENT_TYPE="IndexSegment",i.MEDIA_SEGMENT_TYPE="MediaSegment",i.BITSTREAM_SWITCHING_SEGMENT_TYPE="BitstreamSwitchingSegment",i.MSS_FRAGMENT_INFO_SEGMENT_TYPE="FragmentInfoSegment",i.DVB_REPORTING_TYPE="DVBReporting",i.LICENSE="license",i.OTHER_TYPE="other"},75:function(e,t,n){"use strict";function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}n.r(t);var i={attributes:["Laurl","laurl"],prefixes:["clearkey","dashif"]},s=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,n,s;return t=e,s=[{key:"findCencContentProtection",value:function(e){for(var t=null,n=0;n<e.length;++n){var r=e[n];"urn:mpeg:dash:mp4protection:2011"!==r.schemeIdUri.toLowerCase()||"cenc"!==r.value.toLowerCase()&&"cbcs"!==r.value.toLowerCase()||(t=r)}return t}},{key:"getPSSHData",value:function(e){var 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)}},{key:"getPSSHForKeySystem",value:function(t,n){var r=e.parsePSSHList(n);return t&&r.hasOwnProperty(t.uuid.toLowerCase())?r[t.uuid.toLowerCase()]:null}},{key:"parseInitDataFromContentProtection",value:function(e,t){return"pssh"in e?(e.pssh.__text=e.pssh.__text.replace(/\r?\n|\r/g,"").replace(/\s+/g,""),t.decodeArray(e.pssh.__text).buffer):null}},{key:"parsePSSHList",value:function(e){if(null==e)return[];for(var t=new DataView(e.buffer||e),n={},r=0;;){var i,s,a=void 0,o=r;if(r>=t.buffer.byteLength)break;if(i=r+t.getUint32(r),r+=4,1886614376===t.getUint32(r))if(r+=4,0===(s=t.getUint8(r))||1===s){r++,r+=3,a="";var u=void 0,c=void 0;for(u=0;u<4;u++)a+=1===(c=t.getUint8(r+u).toString(16)).length?"0"+c:c;for(r+=4,a+="-",u=0;u<2;u++)a+=1===(c=t.getUint8(r+u).toString(16)).length?"0"+c:c;for(r+=2,a+="-",u=0;u<2;u++)a+=1===(c=t.getUint8(r+u).toString(16)).length?"0"+c:c;for(r+=2,a+="-",u=0;u<2;u++)a+=1===(c=t.getUint8(r+u).toString(16)).length?"0"+c:c;for(r+=2,a+="-",u=0;u<6;u++)a+=1===(c=t.getUint8(r+u).toString(16)).length?"0"+c:c;r+=6,r+=4,n[a=a.toLowerCase()]=t.buffer.slice(o,i),r=i}else r=i;else r=i}return n}},{key:"getLicenseServerUrlFromMediaInfo",value:function(e,t){try{if(!e||0===e.length)return null;for(var n=0,r=null;n<e.length&&!r;){var s=e[n];if(s&&s.contentProtection&&s.contentProtection.length>0){var a=s.contentProtection.filter((function(e){return e.schemeIdUri&&e.schemeIdUri===t}));if(a&&a.length>0)for(var o=0;o<a.length&&!r;){for(var u=a[o],c=0;c<i.attributes.length&&!r;){for(var l=0,E=i.attributes[c];l<i.prefixes.length&&!r;){var f=i.prefixes[l];u[E]&&u[E].__prefix&&u[E].__prefix===f&&u[E].__text&&(r=u[E].__text),l+=1}c+=1}o+=1}}n+=1}return r}catch(e){return null}}}],(n=null)&&r(t.prototype,n),s&&r(t,s),e}();var a=function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.contentType=t,this.robustness=n};var o=function e(t,n,r,i,s){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.initDataTypes=["cenc"],t&&t.length&&(this.audioCapabilities=t),n&&n.length&&(this.videoCapabilities=n),this.distinctiveIdentifier=r,this.persistentState=i,this.sessionTypes=s};function u(e){return(u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function c(e,t){return(c=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function l(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=f(e);if(t){var i=f(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return E(this,n)}}function E(e,t){return!t||"object"!==u(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function f(e){return(f=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var y=new(function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&c(e,t)}(n,e);var t=l(n);function n(){var e;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,n),(e=t.call(this)).MEDIA_KEYERR_CODE=100,e.MEDIA_KEYERR_UNKNOWN_CODE=101,e.MEDIA_KEYERR_CLIENT_CODE=102,e.MEDIA_KEYERR_SERVICE_CODE=103,e.MEDIA_KEYERR_OUTPUT_CODE=104,e.MEDIA_KEYERR_HARDWARECHANGE_CODE=105,e.MEDIA_KEYERR_DOMAIN_CODE=106,e.MEDIA_KEY_MESSAGE_ERROR_CODE=107,e.MEDIA_KEY_MESSAGE_NO_CHALLENGE_ERROR_CODE=108,e.SERVER_CERTIFICATE_UPDATED_ERROR_CODE=109,e.KEY_STATUS_CHANGED_EXPIRED_ERROR_CODE=110,e.MEDIA_KEY_MESSAGE_NO_LICENSE_SERVER_URL_ERROR_CODE=111,e.KEY_SYSTEM_ACCESS_DENIED_ERROR_CODE=112,e.KEY_SESSION_CREATED_ERROR_CODE=113,e.MEDIA_KEY_MESSAGE_LICENSER_ERROR_CODE=114,e.MEDIA_KEYERR_UNKNOWN_MESSAGE="An unspecified error occurred. This value is used for errors that don't match any of the other codes.",e.MEDIA_KEYERR_CLIENT_MESSAGE="The Key System could not be installed or updated.",e.MEDIA_KEYERR_SERVICE_MESSAGE="The message passed into update indicated an error from the license service.",e.MEDIA_KEYERR_OUTPUT_MESSAGE="There is no available output device with the required characteristics for the content protection system.",e.MEDIA_KEYERR_HARDWARECHANGE_MESSAGE="A hardware configuration change caused a content protection error.",e.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.",e.MEDIA_KEY_MESSAGE_ERROR_MESSAGE="Multiple key sessions were creates with a user-agent that does not support sessionIDs!! Unpredictable behavior ahead!",e.MEDIA_KEY_MESSAGE_NO_CHALLENGE_ERROR_MESSAGE="DRM: Empty key message from CDM",e.SERVER_CERTIFICATE_UPDATED_ERROR_MESSAGE="Error updating server certificate -- ",e.KEY_STATUS_CHANGED_EXPIRED_ERROR_MESSAGE="DRM: KeyStatusChange error! -- License has expired",e.MEDIA_KEY_MESSAGE_NO_LICENSE_SERVER_URL_ERROR_MESSAGE="DRM: No license server URL specified!",e.KEY_SYSTEM_ACCESS_DENIED_ERROR_MESSAGE="DRM: KeySystem Access Denied! -- ",e.KEY_SESSION_CREATED_ERROR_MESSAGE="DRM: unable to create session! --",e.MEDIA_KEY_MESSAGE_LICENSER_ERROR_MESSAGE="DRM: licenser error! --",e}return n}(n(28).a)),d=n(10);var g=function e(t,n,r,i,s,a,o,u){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.url=t,this.method=n,this.responseType=r,this.headers=i,this.withCredentials=s,this.messageType=a,this.sessionId=o,this.data=u};var S=function e(t,n,r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.url=t,this.headers=n,this.data=r},_=n(5),h=n(15),p=n(1),m=n(3);function R(e){return(R="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function v(e){var t,n,r,i,u,c,l,E,f,m,v,T=(e=e||{}).protectionKeyController,A=e.protectionModel,D=e.eventBus,C=e.events,I=e.debug,M=e.BASE64,O=e.constants,K=[],b=e.cmcdModel,w=e.settings,N=e.customParametersModel;function L(){if(!(D&&D.hasOwnProperty("on")&&T&&T.hasOwnProperty("getSupportedKeySystemsFromContentProtection")))throw new Error("Missing config parameter(s)")}function k(e,t){f?r.push(e):E?E&&function(e){var t=e.findIndex((function(e){return e.ks===E})),n=e[t];if(-1===t||!n.initData)return;P(n)}(e):function(e,t){f=!0;var i,s=[];e=e.sort((function(t,n){return(u&&u[t.ks.systemString]&&u[t.ks.systemString].priority>=0?u[t.ks.systemString].priority:e.length)-(u&&u[n.ks.systemString]&&u[n.ks.systemString].priority>=0?u[n.ks.systemString].priority:e.length)})),r.push(e);for(var a=0;a<e.length;a++){var o=H(e[a]);s.push({ks:e[a].ks,configs:[o],protData:e[a].protData})}A.requestKeySystemAccess(s).then((function(e){var t=(i=e.data).mksa&&i.mksa.selectedSystemString?i.mksa.selectedSystemString:i.keySystem.systemString;return n.info("DRM: KeySystem Access Granted for system string ("+t+")! Selecting key system..."),A.selectKeySystem(i)})).then((function(e){if(E=e,f=!1,A){D.trigger(C.KEY_SYSTEM_SELECTED,{data:i});var t,n=G(E);n&&n.serverCertificate&&n.serverCertificate.length>0&&A.setServerCertificate(M.decodeArray(n.serverCertificate).buffer);for(var s=0;s<r.length;s++)for(t=0;t<r[s].length;t++)if(E===r[s][t].ks){P(r[s][t]);break}}})).catch((function(e){E=null,f=!1,t||D.trigger(C.KEY_SYSTEM_SELECTED,{data:null,error:new d.a(y.KEY_SYSTEM_ACCESS_DENIED_ERROR_CODE,y.KEY_SYSTEM_ACCESS_DENIED_ERROR_MESSAGE+"Error selecting key system! -- "+e.error)})}))}(e,t)}function P(e){if(T.isClearKey(E)&&e.protData&&e.protData.hasOwnProperty("clearkeys")&&0!==Object.keys(e.protData.clearkeys).length){var t={kids:Object.keys(e.protData.clearkeys)};e.initData=(new TextEncoder).encode(JSON.stringify(t))}e.sessionId?Y(e):null!==e.initData&&U(e)}function Y(e){L(),A.loadKeySession(e)}function U(e){var t=s.getPSSHForKeySystem(E,e?e.initData:null);if(t){if(function(e){if(!e)return!1;try{for(var t=A.getSessions(),n=0;n<t.length;n++)if(t[n].getKeyId()===e)return!0;return!1}catch(e){return!1}}(e.keyId))return;if(F(t))return;try{e.initData=t,A.createKeySession(e)}catch(e){D.trigger(C.KEY_SESSION_CREATED,{data:null,error:new d.a(y.KEY_SESSION_CREATED_ERROR_CODE,y.KEY_SESSION_CREATED_ERROR_MESSAGE+e.message)})}}else e&&e.initData?A.createKeySession(e):D.trigger(C.KEY_SESSION_CREATED,{data:null,error:new d.a(y.KEY_SESSION_CREATED_ERROR_CODE,y.KEY_SESSION_CREATED_ERROR_MESSAGE+"Selected key system is "+(E?E.systemString:null)+". needkey/encrypted event contains no initData corresponding to that key system!")})}function G(e){if(e){var t=e.systemString;if(u)return t in u?u[t]:null}return null}function F(e){if(!e)return!1;try{for(var t=A.getAllInitData(),r=0;r<t.length;r++)if(T.initDataEquals(e,t[r]))return n.debug("DRM: Ignoring initData because we have already seen it!"),!0;return!1}catch(e){return!1}}function x(e){L(),e?(A.setMediaElement(e),D.on(C.NEED_KEY,z,t)):null===e&&(A.setMediaElement(e),D.off(C.NEED_KEY,z,t))}function H(e){var t=e.protData,n=[],r=[],s=t&&t.audioRobustness&&t.audioRobustness.length>0?t.audioRobustness:l,u=t&&t.videoRobustness&&t.videoRobustness.length>0?t.videoRobustness:l,c=e.sessionType,E=t&&t.distinctiveIdentifier?t.distinctiveIdentifier:"optional",f=t&&t.persistentState?t.persistentState:"temporary"===c?"optional":"required";return i.forEach((function(e){e.type===O.AUDIO?n.push(new a(e.codec,s)):e.type===O.VIDEO&&r.push(new a(e.codec,u))})),new o(n,r,E,f,[c])}function B(e){e.error?D.trigger(C.KEY_STATUSES_CHANGED,{data:null,error:e.error}):n.debug("DRM: key status = "+e.status)}function j(e){n.debug("DRM: onKeyMessage");var t=e.data;D.trigger(C.KEY_MESSAGE,{data:t});var r=t.messageType?t.messageType:"license-request",a=t.message,o=t.sessionToken,u=G(E),c=T.getLicenseServerModelInstance(E,u,r),l={sessionToken:o,messageType:r};if(a&&0!==a.byteLength){if(!c)return n.debug("DRM: License server request not required for this message (type = "+e.data.messageType+"). Session ID = "+o.getSessionId()),void V(l);if(T.isClearKey(E)){var f=T.processClearKeyLicenseRequest(E,u,a);if(f&&f.keyPairs&&f.keyPairs.length>0)return n.debug("DRM: ClearKey license request handled by application!"),V(l),void A.updateKeySession(o,f)}!function(e,t,r){var a=e.sessionToken,o=e.messageType?e.messageType:"license-request",u={sessionToken:a,messageType:o},c=E?E.systemString:null,l=function(e,t,n,r,a){var o=null,u=r.message;if(e&&e.serverURL){var c=e.serverURL;"string"==typeof c&&""!==c?o=c:"object"===R(c)&&c.hasOwnProperty(t)&&(o=c[t])}else if(e&&e.laURL&&""!==e.laURL)o=e.laURL;else if(!(o=s.getLicenseServerUrlFromMediaInfo(i,E.schemeIdURI))&&!T.isClearKey(E)){var l=s.getPSSHData(n.initData);(o=E.getLicenseServerURLFromInitData(l))||(o=r.laURL)}return o=a.getServerURLFromMessage(o,u,t)}(r,o,a,e,t);if(!l)return void V(u,new d.a(y.MEDIA_KEY_MESSAGE_NO_LICENSE_SERVER_URL_ERROR_CODE,y.MEDIA_KEY_MESSAGE_NO_LICENSE_SERVER_URL_ERROR_MESSAGE));var f={},I=!1;r&&W(f,r.httpRequestHeaders);var M=e.message,O=E.getRequestHeadersFromMessage(M);W(f,O),Object.keys(f).forEach((function(e){"authorization"===e.toLowerCase()&&(I=!0)})),r&&"boolean"==typeof r.withCredentials&&(I=r.withCredentials);var K=function(e){if(A)if(e.status>=200&&e.status<=299){var n=h.a.parseHttpHeaders(e.getAllResponseHeaders?e.getAllResponseHeaders():null),r=new S(e.responseURL,n,e.response);J(N.getLicenseResponseFilters(),r).then((function(){var n=t.getLicenseMessage(r.data,c,o);null!==n?(V(u),A.updateKeySession(a,n)):X(e,u,c,o,t)}))}else X(e,u,c,o,t)},L=function(e){V(u,new d.a(y.MEDIA_KEY_MESSAGE_LICENSER_ERROR_CODE,y.MEDIA_KEY_MESSAGE_LICENSER_ERROR_MESSAGE+c+' update, XHR aborted. status is "'+e.statusText+'" ('+e.status+"), readyState is "+e.readyState))},k=function(e){V(u,new d.a(y.MEDIA_KEY_MESSAGE_LICENSER_ERROR_CODE,y.MEDIA_KEY_MESSAGE_LICENSER_ERROR_MESSAGE+c+' update, XHR error. status is "'+e.statusText+'" ('+e.status+"), readyState is "+e.readyState))},P=E.getLicenseRequestFromMessage(M),Y=t.getHTTPMethod(o),U=t.getResponseType(c,o),G=r&&!isNaN(r.httpTimeout)?r.httpTimeout:8e3,F=a.getSessionId()||null,x=new g(l,Y,U,f,I,o,F,P),H=isNaN(w.get().streaming.retryAttempts[_.a.LICENSE])?3:w.get().streaming.retryAttempts[_.a.LICENSE];J(N.getLicenseRequestFilters(),x).then((function(){!function e(t,r,i,s,a,o){var u=new XMLHttpRequest;if(w.get().streaming.cmcd&&w.get().streaming.cmcd.enabled){if(w.get().streaming.cmcd.mode===p.a.CMCD_MODE_QUERY){var c=b.getQueryParameter({url:t.url,type:_.a.LICENSE});c&&(t.url=h.a.addAditionalQueryParameterToUrl(t.url,[c]))}}u.open(t.method,t.url,!0),u.responseType=t.responseType,u.withCredentials=t.withCredentials,i>0&&(u.timeout=i);for(var l in t.headers)u.setRequestHeader(l,t.headers[l]);if(w.get().streaming.cmcd&&w.get().streaming.cmcd.enabled){if(w.get().streaming.cmcd.mode===p.a.CMCD_MODE_HEADER){var E=b.getHeaderParameters({url:t.url,type:_.a.LICENSE});if(E)for(var f in E){var y=E[f];y&&u.setRequestHeader(f,y)}}}var d=function(){r--;var n=isNaN(w.get().streaming.retryIntervals[_.a.LICENSE])?1e3:w.get().streaming.retryIntervals[_.a.LICENSE];v=setTimeout((function(){e(t,r,i,s,a,o)}),n)};u.onload=function(){m=null,this.status>=200&&this.status<=299||r<=0?s(this):(n.warn("License request failed ("+this.status+"). Retrying it... Pending retries: "+r),d())},u.ontimeout=u.onerror=function(){m=null,r<=0?o(this):(n.warn("License request network request failed . Retrying it... Pending retries: "+r),d())},u.onabort=function(){a(this)},D.trigger(C.LICENSE_REQUEST_SENDING,{url:t.url,headers:t.headers,payload:t.data,sessionId:t.sessionId}),m=u,u.send(t.data)}(x,H,G,K,L,k)}))}(t,c,u)}else V(l,new d.a(y.MEDIA_KEY_MESSAGE_NO_CHALLENGE_ERROR_CODE,y.MEDIA_KEY_MESSAGE_NO_CHALLENGE_ERROR_MESSAGE))}function V(e,t){D.trigger(C.LICENSE_REQUEST_COMPLETE,{data:e,error:t})}function q(){m&&(m.onloadend=m.onerror=m.onprogress=void 0,m.abort(),m=null),v&&(clearTimeout(v),v=null)}function W(e,t){if(t)for(var n in t)e[n]=t[n]}function X(e,t,n,r,i){var s="NONE",a=null;e.response&&(s=i.getErrorResponse(e.response,n,r),a={serverResponse:e.response||null,responseCode:e.status||null,responseText:e.statusText||null}),V(t,new d.a(y.MEDIA_KEY_MESSAGE_LICENSER_ERROR_CODE,y.MEDIA_KEY_MESSAGE_LICENSER_ERROR_MESSAGE+n+' update, XHR complete. status is "'+e.statusText+'" ('+e.status+"), readyState is "+e.readyState+". Response is "+s,a))}function J(e,t){return e?e.reduce((function(e,n){return e.then((function(){return n(t)}))}),Promise.resolve()):Promise.resolve()}function z(e,t){if(!w.get().streaming.protection.ignoreEmeEncryptedEvent){if(n.debug("DRM: onNeedKey"),"cenc"!==e.key.initDataType)return void n.warn("DRM: Only 'cenc' initData is supported! Ignoring initData of type: "+e.key.initDataType);if(0===i.length&&(n.warn("DRM: onNeedKey called before initializeForMedia, wait until initialized"),(t=void 0===t?1:t+1)<5))return void K.push(setTimeout((function(){z(e,t)}),500));var r=e.key.initData;if(ArrayBuffer.isView(r)&&(r=r.buffer),E){var a=s.getPSSHForKeySystem(E,r);if(a&&F(a))return}n.debug("DRM: initData:",String.fromCharCode.apply(null,new Uint8Array(r)));var o=T.getSupportedKeySystemsFromSegmentPssh(r,u,c);if(0===o.length)return void n.debug("DRM: Received needkey event with initData, but we don't support any of the key systems!");k(o,!1)}}return t={initializeForMedia:function(e){if(!e)throw new Error("mediaInfo can not be null or undefined");L(),i.push(e);var t=T.getSupportedKeySystemsFromContentProtection(e.contentProtection,u,c);t&&t.length>0&&k(t,!0)},clearMediaInfoArray:function(){i=[]},createKeySession:U,loadKeySession:Y,removeKeySession:function(e){L(),A.removeKeySession(e)},closeKeySession:function(e){L(),A.closeKeySession(e)},setServerCertificate:function(e){L(),A.setServerCertificate(e)},setMediaElement:x,setSessionType:function(e){c=e},setRobustnessLevel:function(e){l=e},setProtectionData:function(e){u=e,T.setProtectionData(e)},getSupportedKeySystemsFromContentProtection:function(e){return L(),T.getSupportedKeySystemsFromContentProtection(e,u,c)},getKeySystems:function(){return T?T.getKeySystems():[]},setKeySystems:function(e){T&&T.setKeySystems(e)},stop:function(){q(),A&&A.stop()},reset:function(){D.off(C.INTERNAL_KEY_MESSAGE,j,t),D.off(C.INTERNAL_KEY_STATUS_CHANGED,B,t),L(),q(),x(null),E=null,f=!1,A&&(A.reset(),A=null),K.forEach((function(e){return clearTimeout(e)})),K=[],i=[],r=[]}},n=I.getLogger(t),r=[],i=[],c="temporary",l="",m=null,v=null,D.on(C.INTERNAL_KEY_MESSAGE,j,t),D.on(C.INTERNAL_KEY_STATUS_CHANGED,B,t),t}v.__dashjs_factory_name="ProtectionController";var T=m.a.getClassFactory(v);var A=function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.keyID=t,this.key=n};function D(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var C=function(){function e(t,n){if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),n&&"persistent"!==n&&"temporary"!==n)throw new Error("Invalid ClearKey key set type! Must be one of 'persistent' or 'temporary'");this.keyPairs=t,this.type=n}var t,n,r;return t=e,(n=[{key:"toJWK",value:function(){var e,t=this.keyPairs.length,n={keys:[]};for(e=0;e<t;e++){var r={kty:"oct",alg:"A128KW",kid:this.keyPairs[e].keyID,k:this.keyPairs[e].key};n.keys.push(r)}this.type&&(n.type=this.type);var i=JSON.stringify(n),s=i.length,a=new ArrayBuffer(s),o=new Uint8Array(a);for(e=0;e<s;e++)o[e]=i.charCodeAt(e);return a}}])&&D(t.prototype,n),r&&D(t,r),e}();function I(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var M=new(function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.init()}var t,n,r;return t=e,(n=[{key:"init",value:function(){this.CLEARKEY_KEYSTEM_STRING="org.w3.clearkey",this.WIDEVINE_KEYSTEM_STRING="com.widevine.alpha",this.PLAYREADY_KEYSTEM_STRING="com.microsoft.playready",this.PLAYREADY_RECOMMENDATION_KEYSTEM_STRING="com.microsoft.playready.recommendation",this.INITIALIZATION_DATA_TYPE_CENC="cenc",this.INITIALIZATION_DATA_TYPE_KEYIDS="keyids",this.INITIALIZATION_DATA_TYPE_WEBM="webm"}}])&&I(t.prototype,n),r&&I(t,r),e}()),O="e2719d58-a985-b3c9-781a-b030af78d30e",K=M.CLEARKEY_KEYSTEM_STRING;function b(e){var t=(e=e||{}).BASE64;return{uuid:O,schemeIdURI:"urn:uuid:e2719d58-a985-b3c9-781a-b030af78d30e",systemString:K,getInitData:function(e,n){try{var r=s.parseInitDataFromContentProtection(e,t);if(!r&&n){var i={kids:[function(e){try{var t=e.replace(/-/g,"");return(t=btoa(t.match(/\w{2}/g).map((function(e){return String.fromCharCode(parseInt(e,16))})).join(""))).replace(/=/g,"")}catch(e){return null}}(n["cenc:default_KID"])]};r=(new TextEncoder).encode(JSON.stringify(i))}return r}catch(e){return null}},getRequestHeadersFromMessage:function(){return{"Content-Type":"application/json"}},getLicenseRequestFromMessage:function(e){return JSON.stringify(JSON.parse(String.fromCharCode.apply(null,new Uint8Array(e))))},getLicenseServerURLFromInitData:function(){return null},getCDMData:function(){return null},getClearKeysFromProtectionData:function(e,t){var n=null;if(e){for(var r=JSON.parse(String.fromCharCode.apply(null,new Uint8Array(t))),i=[],s=0;s<r.kids.length;s++){var a=r.kids[s],o=e.clearkeys&&e.clearkeys.hasOwnProperty(a)?e.clearkeys[a]:null;if(!o)throw new Error("DRM: ClearKey keyID ("+a+") is not known!");i.push(new A(a,o))}n=new C(i)}return n}}}b.__dashjs_factory_name="KeySystemClearKey";var w=dashjs.FactoryMaker.getSingletonFactory(b),N=M.CLEARKEY_KEYSTEM_STRING;function L(e){var t,n=e.BASE64,r=e.debug.getLogger(t);return t={uuid:"1077efec-c0b2-4d02-ace3-3c1e52e2fb4b",schemeIdURI:"urn:uuid:1077efec-c0b2-4d02-ace3-3c1e52e2fb4b",systemString:N,getInitData:function(e){return s.parseInitDataFromContentProtection(e,n)},getRequestHeadersFromMessage:function(){return null},getLicenseRequestFromMessage:function(e){return new Uint8Array(e)},getLicenseServerURLFromInitData:function(){return null},getCDMData:function(){return null},getClearKeysFromProtectionData:function(e,t){var n=null;if(e){for(var i=JSON.parse(String.fromCharCode.apply(null,new Uint8Array(t))),s=[],a=0;a<i.kids.length;a++){var o=i.kids[a],u=e.clearkeys&&e.clearkeys.hasOwnProperty(o)?e.clearkeys[o]:null;if(!u)throw new Error("DRM: ClearKey keyID ("+o+") is not known!");s.push(new A(o,u))}n=new C(s),r.warn("ClearKey schemeIdURI is using W3C Common PSSH systemID (1077efec-c0b2-4d02-ace3-3c1e52e2fb4b) in Content Protection. See DASH-IF IOP v4.1 section 7.6.2.4")}return n}}}L.__dashjs_factory_name="KeySystemW3CClearKey";var k=dashjs.FactoryMaker.getSingletonFactory(L),P=M.WIDEVINE_KEYSTEM_STRING;function Y(e){var t=(e=e||{}).BASE64;return{uuid:"edef8ba9-79d6-4ace-a3c8-27dcd51d21ed",schemeIdURI:"urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed",systemString:P,getInitData:function(e){return s.parseInitDataFromContentProtection(e,t)},getRequestHeadersFromMessage:function(){return null},getLicenseRequestFromMessage:function(e){return new Uint8Array(e)},getLicenseServerURLFromInitData:function(){return null},getCDMData:function(){return null}}}Y.__dashjs_factory_name="KeySystemWidevine";var U=dashjs.FactoryMaker.getSingletonFactory(Y),G=M.PLAYREADY_KEYSTEM_STRING;function F(e){var t="utf-16",n=(e=e||{}).BASE64,r=e.settings;function i(){if(!n||!n.hasOwnProperty("decodeArray")||!n.hasOwnProperty("decodeArray"))throw new Error("Missing config parameter(s)")}return{uuid:"9a04f079-9840-4286-ab92-e65be0885f95",schemeIdURI:"urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95",systemString:G,getInitData:function(e){var t,r,a,o,u,c=new Uint8Array([112,115,115,104,0,0,0,0]),l=new Uint8Array([154,4,240,121,152,64,66,134,171,146,230,91,224,136,95,149]),E=0,f=null;if(i(),!e)return null;if("pssh"in e)return s.parseInitDataFromContentProtection(e,n);if("pro"in e)f=n.decodeArray(e.pro.__text);else{if(!("prheader"in e))return null;f=n.decodeArray(e.prheader.__text)}return t=f.length,r=4+c.length+l.length+4+t,a=new ArrayBuffer(r),o=new Uint8Array(a),(u=new DataView(a)).setUint32(E,r),E+=4,o.set(c,E),E+=c.length,o.set(l,E),E+=l.length,u.setUint32(E,t),E+=4,o.set(f,E),E+=t,o.buffer},getRequestHeadersFromMessage:function(e){var n,i,s={},a=new DOMParser;if(r&&r.get().streaming.protection.detectPlayreadyMessageFormat&&"utf-16"===t&&e&&e.byteLength%2==1)return s["Content-Type"]="text/xml; charset=utf-8",s;var o="utf-16"===t?new Uint16Array(e):new Uint8Array(e);n=String.fromCharCode.apply(null,o);for(var u=(i=a.parseFromString(n,"application/xml")).getElementsByTagName("name"),c=i.getElementsByTagName("value"),l=0;l<u.length;l++)s[u[l].childNodes[0].nodeValue]=c[l].childNodes[0].nodeValue;return s.hasOwnProperty("Content")&&(s["Content-Type"]=s.Content,delete s.Content),s.hasOwnProperty("Content-Type")||(s["Content-Type"]="text/xml; charset=utf-8"),s},getLicenseRequestFromMessage:function(e){var s=null,a=new DOMParser;if(r&&r.get().streaming.protection.detectPlayreadyMessageFormat&&"utf-16"===t&&e&&e.byteLength%2==1)return e;var o="utf-16"===t?new Uint16Array(e):new Uint8Array(e);i();var u=String.fromCharCode.apply(null,o),c=a.parseFromString(u,"application/xml");if(!c.getElementsByTagName("PlayReadyKeyMessage")[0])return e;var l=c.getElementsByTagName("Challenge")[0].childNodes[0].nodeValue;return l&&(s=n.decode(l)),s},getLicenseServerURLFromInitData:function(e){if(e)for(var t=new DataView(e),n=t.getUint16(4,!0),r=6,i=new DOMParser,s=0;s<n;s++){var a=t.getUint16(r,!0);r+=2;var o=t.getUint16(r,!0);if(r+=2,1===a){var u=e.slice(r,r+o),c=String.fromCharCode.apply(null,new Uint16Array(u)),l=i.parseFromString(c,"application/xml");if(l.getElementsByTagName("LA_URL")[0]){var E=l.getElementsByTagName("LA_URL")[0].childNodes[0].nodeValue;if(E)return E}if(l.getElementsByTagName("LUI_URL")[0]){var f=l.getElementsByTagName("LUI_URL")[0].childNodes[0].nodeValue;if(f)return f}}else r+=o}return null},getCDMData:function(e){var t,r,s,a;if(i(),!e)return null;for(t=[],a=0;a<e.length;++a)t.push(e.charCodeAt(a)),t.push(0);for(t=String.fromCharCode.apply(null,t),t=n.encode(t),r='<PlayReadyCDMData type="LicenseAcquisition"><LicenseAcquisition version="1.0" Proactive="false"><CustomData encoding="base64encoded">%CUSTOMDATA%</CustomData></LicenseAcquisition></PlayReadyCDMData>'.replace("%CUSTOMDATA%",t),s=[],a=0;a<r.length;++a)s.push(r.charCodeAt(a)),s.push(0);return new Uint8Array(s).buffer},setPlayReadyMessageFormat:function(e){if("utf-8"!==e&&"utf-16"!==e)throw new Error('Specified message format is not one of "utf-8" or "utf-16"');t=e}}}F.__dashjs_factory_name="KeySystemPlayReady";var x=dashjs.FactoryMaker.getSingletonFactory(F);function H(e){var t=(e=e||{}).BASE64,n={};return n[M.WIDEVINE_KEYSTEM_STRING]={responseType:"json",getLicenseMessage:function(e){return t.decodeArray(e.license)},getErrorResponse:function(e){return e}},n[M.PLAYREADY_KEYSTEM_STRING]={responseType:"arraybuffer",getLicenseMessage:function(e){return e},getErrorResponse:function(e){return String.fromCharCode.apply(null,new Uint8Array(e))}},{getServerURLFromMessage:function(e){return e},getHTTPMethod:function(){return"POST"},getResponseType:function(e){return n[e].responseType},getLicenseMessage:function(e,r){return function(){if(!t||!t.hasOwnProperty("decodeArray"))throw new Error("Missing config parameter(s)")}(),n[r].getLicenseMessage(e)},getErrorResponse:function(e,t){return n[t].getErrorResponse(e)}}}H.__dashjs_factory_name="DRMToday";var B=dashjs.FactoryMaker.getSingletonFactory(H);function j(){var e="http://schemas.xmlsoap.org/soap/envelope/";function t(e){var t=String.fromCharCode.apply(null,new Uint8Array(e));return decodeURIComponent(escape(t))}function n(n){if(window.DOMParser){var r=t(n),i=(new window.DOMParser).parseFromString(r,"text/xml"),s=i?i.getElementsByTagNameNS(e,"Envelope")[0]:null,a=s?s.getElementsByTagNameNS(e,"Body")[0]:null;if(a?a.getElementsByTagNameNS(e,"Fault")[0]:null)return null}return n}function r(n){var r="",i="",s="",a=-1,o=-1;if(window.DOMParser){var u=t(n),c=(new window.DOMParser).parseFromString(u,"text/xml"),l=c?c.getElementsByTagNameNS(e,"Envelope")[0]:null,E=l?l.getElementsByTagNameNS(e,"Body")[0]:null,f=E?E.getElementsByTagNameNS(e,"Fault")[0]:null,y=f?f.getElementsByTagName("detail")[0]:null,d=y?y.getElementsByTagName("Exception")[0]:null,g=null;if(null===f)return u;r=(g=f.getElementsByTagName("faultstring")[0].firstChild)?g.nodeValue:null,null!==d&&(i=(g=d.getElementsByTagName("StatusCode")[0])?g.firstChild.nodeValue:null,a=(s=(g=d.getElementsByTagName("Message")[0])?g.firstChild.nodeValue:null)?s.lastIndexOf("[")+1:-1,o=s?s.indexOf("]"):-1,s=s?s.substring(a,o):"")}var S="code: ".concat(i,", name: ").concat(r);return s&&(S+=", message: ".concat(s)),S}return{getServerURLFromMessage:function(e){return e},getHTTPMethod:function(){return"POST"},getResponseType:function(){return"arraybuffer"},getLicenseMessage:function(e){return n.call(this,e)},getErrorResponse:function(e){return r.call(this,e)}}}j.__dashjs_factory_name="PlayReady";var V=dashjs.FactoryMaker.getSingletonFactory(j);function q(){return{getServerURLFromMessage:function(e){return e},getHTTPMethod:function(){return"POST"},getResponseType:function(){return"arraybuffer"},getLicenseMessage:function(e){return e},getErrorResponse:function(e){return String.fromCharCode.apply(null,new Uint8Array(e))}}}q.__dashjs_factory_name="Widevine";var W=dashjs.FactoryMaker.getSingletonFactory(q);function X(){return{getServerURLFromMessage:function(e){return e},getHTTPMethod:function(){return"POST"},getResponseType:function(){return"json"},getLicenseMessage:function(e){if(!e.hasOwnProperty("keys"))return null;for(var t=[],n=0;n<e.keys.length;n++){var r=e.keys[n],i=r.kid.replace(/=/g,""),s=r.k.replace(/=/g,"");t.push(new A(i,s))}return new C(t)},getErrorResponse:function(e){return String.fromCharCode.apply(null,new Uint8Array(e))}}}X.__dashjs_factory_name="ClearKey";var J=dashjs.FactoryMaker.getSingletonFactory(X);function z(){var e,t,n,r,i,a,o,u,c=this.context;function l(e,t){return t&&e in t?t[e]:null}function E(e,t){return e&&e.sessionId?e.sessionId:t&&t.sessionId?t.sessionId:null}function f(e,t){return e&&e.sessionType?e.sessionType:t}return e={initialize:function(){var e;r=[],e=x(c).getInstance({BASE64:i,settings:a}),r.push(e),e=U(c).getInstance({BASE64:i}),r.push(e),e=w(c).getInstance({BASE64:i}),r.push(e),o=e,e=k(c).getInstance({BASE64:i,debug:t}),r.push(e),u=e},setProtectionData:function(e){for(var t,n,i=0;i<r.length;i++){var s=r[i];s.hasOwnProperty("init")&&s.init((t=s.systemString,n=void 0,n=null,e&&(n=t in e?e[t]:null),n))}},isClearKey:function(e){return e===o||e===u},initDataEquals:function(e,t){if(e.byteLength===t.byteLength){for(var n=new Uint8Array(e),r=new Uint8Array(t),i=0;i<n.length;i++)if(n[i]!==r[i])return!1;return!0}return!1},getKeySystems:function(){return r},setKeySystems:function(e){r=e},getKeySystemBySystemString:function(e){for(var t=0;t<r.length;t++)if(r[t].systemString===e)return r[t];return null},getSupportedKeySystemsFromContentProtection:function(e,t,n){var i,a,o,u,c=[];if(e){var y=s.findCencContentProtection(e);for(o=0;o<r.length;++o){var d=l((a=r[o]).systemString,t);for(u=0;u<e.length;++u)if((i=e[u]).schemeIdUri.toLowerCase()===a.schemeIdURI){var g=a.getInitData(i,y);c.push({ks:r[o],keyId:i.keyId,initData:g,protData:d,cdmData:a.getCDMData(d?d.cdmData:null),sessionId:E(d,i),sessionType:f(d,n)})}}}return c},getSupportedKeySystemsFromSegmentPssh:function(e,t,n){for(var i,a=[],o=s.parsePSSHList(e),u=0;u<r.length;++u){var c=l((i=r[u]).systemString,t);i.uuid in o&&a.push({ks:i,initData:o[i.uuid],protData:c,cdmData:i.getCDMData(c?c.cdmData:null),sessionId:E(c),sessionType:f(c,n)})}return a},getLicenseServerModelInstance:function(e,t,n){if("license-release"===n||"individualization-request"===n)return null;var r=null;return t&&t.hasOwnProperty("drmtoday")?r=B(c).getInstance({BASE64:i}):e.systemString===M.WIDEVINE_KEYSTEM_STRING?r=W(c).getInstance():e.systemString===M.PLAYREADY_KEYSTEM_STRING?r=V(c).getInstance():e.systemString===M.CLEARKEY_KEYSTEM_STRING&&(r=J(c).getInstance()),r},processClearKeyLicenseRequest:function(e,t,r){try{return e.getClearKeysFromProtectionData(t,r)}catch(e){return n.error("Failed to retrieve clearkeys from ProtectionData"),null}},setConfig:function(r){r&&(r.debug&&(t=r.debug,n=t.getLogger(e)),r.BASE64&&(i=r.BASE64),r.settings&&(a=r.settings))}}}z.__dashjs_factory_name="ProtectionKeyController";var Q=dashjs.FactoryMaker.getSingletonFactory(z);function Z(e){return(Z="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function $(e,t){return($=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function ee(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=ne(e);if(t){var i=ne(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return te(this,n)}}function te(e,t){return!t||"object"!==Z(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function ne(e){return(ne=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var re=new(function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&$(e,t)}(n,e);var t=ee(n);function n(){var e;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,n),(e=t.call(this)).INTERNAL_KEY_MESSAGE="internalKeyMessage",e.INTERNAL_KEY_STATUS_CHANGED="internalkeyStatusChanged",e.KEY_ADDED="public_keyAdded",e.KEY_ERROR="public_keyError",e.KEY_MESSAGE="public_keyMessage",e.KEY_SESSION_CLOSED="public_keySessionClosed",e.KEY_SESSION_CREATED="public_keySessionCreated",e.KEY_SESSION_REMOVED="public_keySessionRemoved",e.KEY_STATUSES_CHANGED="public_keyStatusesChanged",e.KEY_SYSTEM_ACCESS_COMPLETE="public_keySystemAccessComplete",e.KEY_SYSTEM_SELECTED="public_keySystemSelected",e.LICENSE_REQUEST_COMPLETE="public_licenseRequestComplete",e.LICENSE_REQUEST_SENDING="public_licenseRequestSending",e.NEED_KEY="needkey",e.PROTECTION_CREATED="public_protectioncreated",e.PROTECTION_DESTROYED="public_protectiondestroyed",e.SERVER_CERTIFICATE_UPDATED="serverCertificateUpdated",e.TEARDOWN_COMPLETE="protectionTeardownComplete",e.VIDEO_ELEMENT_SELECTED="videoElementSelected",e.KEY_SESSION_UPDATED="public_keySessionUpdated",e}return n}(n(18).a));var ie=function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.initData=t,this.initDataType=n};var se=function e(t,n,r,i){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.sessionToken=t,this.message=n,this.defaultURL=r,this.messageType=i||"license-request"};var ae=function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.keySystem=t,this.ksConfiguration=n},oe={};function ue(e){e=e||{};var t,n,r,i,s,a,o,u,c=this.context,l=e.eventBus,E=e.events,f=e.debug;function g(e){var t=e.session;return t.removeEventListener("keystatuseschange",e),t.removeEventListener("message",e),t.close()}function S(e){for(var t=0;t<a.length;t++)if(a[t]===e){a.splice(t,1);break}}function _(e){var t,n;return e&&e.length>0&&(e[0]&&("string"==typeof e[0]?t=e[0]:n=e[0]),e[1]&&("string"==typeof e[1]?t=e[1]:n=e[1])),{status:t,keyId:n}}function h(e,t){var r={session:e,keyId:t.keyId,initData:t.initData,sessionId:t.sessionId,sessionType:t.sessionType,handleEvent:function(e){switch(e.type){case"keystatuseschange":l.trigger(E.KEY_STATUSES_CHANGED,{data:this}),e.target.keyStatuses.forEach((function(){var e=_(arguments);switch(e.status){case"expired":l.trigger(E.INTERNAL_KEY_STATUS_CHANGED,{error:new d.a(y.KEY_STATUS_CHANGED_EXPIRED_ERROR_CODE,y.KEY_STATUS_CHANGED_EXPIRED_ERROR_MESSAGE)});break;default:l.trigger(E.INTERNAL_KEY_STATUS_CHANGED,e)}}));break;case"message":var t=ArrayBuffer.isView(e.message)?e.message.buffer:e.message;l.trigger(E.INTERNAL_KEY_MESSAGE,{data:new se(this,t,void 0,e.messageType)})}},getKeyId:function(){return this.keyId},getSessionId:function(){return e.sessionId},getSessionType:function(){return this.sessionType},getExpirationTime:function(){return e.expiration},getKeyStatuses:function(){return e.keyStatuses},getUsable:function(){var t=!1;return e.keyStatuses.forEach((function(){var e=_(arguments);"usable"===e.status&&(t=!0)})),t}};return e.addEventListener("keystatuseschange",r),e.addEventListener("message",r),e.closed.then((function(){S(r),n.debug("DRM: Session closed. SessionID = "+r.getSessionId()),l.trigger(E.KEY_SESSION_CLOSED,{data:r.getSessionId()})})),a.push(r),r}return t={getAllInitData:function(){for(var e=[],t=0;t<a.length;t++)a[t].initData&&e.push(a[t].initData);return e},getSessions:function(){return a},requestKeySystemAccess:function(e){return new Promise((function(t,r){!function e(t,r,i,s){if(void 0===navigator.requestMediaKeySystemAccess||"function"!=typeof navigator.requestMediaKeySystemAccess){var a="Insecure origins are not allowed";return l.trigger(E.KEY_SYSTEM_ACCESS_COMPLETE,{error:a}),void s({error:a})}var o=t[r].protData&&t[r].protData.systemStringPriority?t[r].protData.systemStringPriority:null,u=t[r].configs,c=t[r].ks,f=c.systemString;(function(e,t){return new Promise((function(r,i){!function e(t,r,i,s,a){var o=t[i];n.debug("Requesting key system access for system string ".concat(o)),navigator.requestMediaKeySystemAccess(o,r).then((function(e){e.selectedSystemString=o,s(e)})).catch((function(n){i+1<t.length?e(t,r,i+1,s,a):a(n)}))}(e,t,0,r,i)}))})(o||(oe[f]?oe[f]:[f]),u).then((function(e){var t="function"==typeof e.getConfiguration?e.getConfiguration():null,n=new ae(c,t);n.mksa=e,l.trigger(E.KEY_SYSTEM_ACCESS_COMPLETE,{data:n}),i({data:n})})).catch((function(n){if(r+1<t.length)e(t,r+1,i,s);else{l.trigger(E.KEY_SYSTEM_ACCESS_COMPLETE,{error:"Key system access denied! "+n.message}),s({error:"Key system access denied! "+n.message})}}))}(e,0,t,r)}))},selectKeySystem:function(e){return new Promise((function(t,n){e.mksa.createMediaKeys().then((function(t){return r=e.keySystem,s=t,i?i.setMediaKeys(s):Promise.resolve()})).then((function(){t(r)})).catch((function(){n({error:"Error selecting keys system ("+e.keySystem.systemString+")! Could not create MediaKeys -- TODO"})}))}))},setMediaElement:function(e){i!==e&&(i&&(i.removeEventListener("encrypted",o),i.setMediaKeys&&i.setMediaKeys(null)),(i=e)&&(i.addEventListener("encrypted",o),i.setMediaKeys&&s&&i.setMediaKeys(s)))},setServerCertificate:function(e){if(!r||!s)throw new Error("Can not set server certificate until you have selected a key system");s.setServerCertificate(e).then((function(){n.info("DRM: License server certificate successfully updated."),l.trigger(E.SERVER_CERTIFICATE_UPDATED)})).catch((function(e){l.trigger(E.SERVER_CERTIFICATE_UPDATED,{error:new d.a(y.SERVER_CERTIFICATE_UPDATED_ERROR_CODE,y.SERVER_CERTIFICATE_UPDATED_ERROR_MESSAGE+e.name)})}))},createKeySession:function(e){if(!r||!s)throw new Error("Can not create sessions until you have selected a key system");var t=s.createSession(e.sessionType),i=h(t,e),a=r.systemString===M.CLEARKEY_KEYSTEM_STRING&&(e.initData||e.protData&&e.protData.clearkeys)?M.INITIALIZATION_DATA_TYPE_KEYIDS:M.INITIALIZATION_DATA_TYPE_CENC;t.generateRequest(a,e.initData).then((function(){n.debug("DRM: Session created. SessionID = "+i.getSessionId()),l.trigger(E.KEY_SESSION_CREATED,{data:i})})).catch((function(e){S(i),l.trigger(E.KEY_SESSION_CREATED,{data:null,error:new d.a(y.KEY_SESSION_CREATED_ERROR_CODE,y.KEY_SESSION_CREATED_ERROR_MESSAGE+"Error generating key request -- "+e.name)})}))},updateKeySession:function(e,t){var n=e.session;u.isClearKey(r)&&(t=t.toJWK()),n.update(t).then((function(){l.trigger(E.KEY_SESSION_UPDATED)})).catch((function(t){l.trigger(E.KEY_ERROR,{error:new d.a(y.MEDIA_KEYERR_CODE,"Error sending update() message! "+t.name,e)})}))},loadKeySession:function(e){if(!r||!s)throw new Error("Can not load sessions until you have selected a key system");for(var t=e.sessionId,i=0;i<a.length;i++)if(t===a[i].sessionId)return void n.warn("DRM: Ignoring session ID because we have already seen it!");var o=s.createSession(e.sessionType),u=h(o,e);o.load(t).then((function(e){e?(n.debug("DRM: Session loaded. SessionID = "+u.getSessionId()),l.trigger(E.KEY_SESSION_CREATED,{data:u})):(S(u),l.trigger(E.KEY_SESSION_CREATED,{data:null,error:new d.a(y.KEY_SESSION_CREATED_ERROR_CODE,y.KEY_SESSION_CREATED_ERROR_MESSAGE+"Could not load session! Invalid Session ID ("+t+")")}))})).catch((function(e){S(u),l.trigger(E.KEY_SESSION_CREATED,{data:null,error:new d.a(y.KEY_SESSION_CREATED_ERROR_CODE,y.KEY_SESSION_CREATED_ERROR_MESSAGE+"Could not load session ("+t+")! "+e.name)})}))},removeKeySession:function(e){e.session.remove().then((function(){n.debug("DRM: Session removed. SessionID = "+e.getSessionId()),l.trigger(E.KEY_SESSION_REMOVED,{data:e.getSessionId()})}),(function(t){l.trigger(E.KEY_SESSION_REMOVED,{data:null,error:"Error removing session ("+e.getSessionId()+"). "+t.name})}))},closeKeySession:function(e){g(e).catch((function(t){S(e),l.trigger(E.KEY_SESSION_CLOSED,{data:null,error:"Error closing session ("+e.getSessionId()+") "+t.name})}))},stop:function(){for(var e,t=0;t<a.length;t++)(e=a[t]).getUsable()||g(e).catch((function(){S(e)}))},reset:function(){var e,t=a.length;0!==t?function(){for(var n=function(e){S(e),0===a.length&&(i?(i.removeEventListener("encrypted",o),i.setMediaKeys(null).then((function(){l.trigger(E.TEARDOWN_COMPLETE)}))):l.trigger(E.TEARDOWN_COMPLETE))},r=0;r<t;r++)!function(t){e.session.closed.then((function(){n(t)})),g(e).catch((function(){n(t)}))}(e=a[r])}():l.trigger(E.TEARDOWN_COMPLETE)}},n=f.getLogger(t),r=null,i=null,s=null,a=[],u=Q(c).getInstance(),o={handleEvent:function(e){switch(e.type){case"encrypted":if(e.initData){var t=ArrayBuffer.isView(e.initData)?e.initData.buffer:e.initData;l.trigger(E.NEED_KEY,{key:new ie(t,e.initDataType)})}}}},t}oe[M.PLAYREADY_KEYSTEM_STRING]=[M.PLAYREADY_KEYSTEM_STRING,M.PLAYREADY_RECOMMENDATION_KEYSTEM_STRING],oe[M.WIDEVINE_KEYSTEM_STRING]=[M.WIDEVINE_KEYSTEM_STRING],oe[M.CLEARKEY_KEYSTEM_STRING]=[M.CLEARKEY_KEYSTEM_STRING],ue.__dashjs_factory_name="ProtectionModel_21Jan2015";var ce=dashjs.FactoryMaker.getClassFactory(ue);function le(e){e=e||{};var t,n,r,i,s,a,u,c,l,E=this.context,f=e.eventBus,g=e.events,S=e.debug,_=e.api;function h(){try{for(var e=0;e<u.length;e++)p(u[e]);r&&r.removeEventListener(_.needkey,c),f.trigger(g.TEARDOWN_COMPLETE)}catch(e){f.trigger(g.TEARDOWN_COMPLETE,{error:"Error tearing down key sessions and MediaKeys! -- "+e.message})}}function p(e){var t=e.session;t.removeEventListener(_.error,e),t.removeEventListener(_.message,e),t.removeEventListener(_.ready,e),t.removeEventListener(_.close,e);for(var n=0;n<u.length;n++)if(u[n]===e){u.splice(n,1);break}t[_.release]()}function m(){var e=null,t=function(){r.removeEventListener("loadedmetadata",e),r[_.setMediaKeys](s),f.trigger(g.VIDEO_ELEMENT_SELECTED)};r.readyState>=1?t():(e=t.bind(this),r.addEventListener("loadedmetadata",e))}return t={getAllInitData:function(){for(var e=[],t=0;t<u.length;t++)e.push(u[t].initData);return e},getSessions:function(){return u},requestKeySystemAccess:function(e){return new Promise((function(t,n){for(var r=!1,i=0;i<e.length;i++)for(var s=e[i].ks.systemString,a=e[i].configs,u=null,c=null,E=0;E<a.length;E++){var y=a[E].audioCapabilities,d=a[E].videoCapabilities;if(y&&0!==y.length){u=[];for(var S=0;S<y.length;S++)window[_.MediaKeys].isTypeSupported(s,y[S].contentType)&&u.push(y[S])}if(d&&0!==d.length){c=[];for(var h=0;h<d.length;h++)window[_.MediaKeys].isTypeSupported(s,d[h].contentType)&&c.push(d[h])}if(!(!u&&!c||u&&0===u.length||c&&0===c.length)){r=!0;var p=new o(u,c),m=l.getKeySystemBySystemString(s),R=new ae(m,p);f.trigger(g.KEY_SYSTEM_ACCESS_COMPLETE,{data:R}),t({data:R});break}}if(!r){var v="Key system access denied! -- No valid audio/video content configurations detected!";f.trigger(g.KEY_SYSTEM_ACCESS_COMPLETE,{error:v}),n({error:v})}}))},selectKeySystem:function(e){return new Promise((function(t,n){try{s=e.mediaKeys=new window[_.MediaKeys](e.keySystem.systemString),i=e.keySystem,a=e,r&&m(),t(i)}catch(e){n({error:"Error selecting keys system ("+i.systemString+")! Could not create MediaKeys -- TODO"})}}))},setMediaElement:function(e){r!==e&&(r&&r.removeEventListener(_.needkey,c),(r=e)&&(r.addEventListener(_.needkey,c),s&&m()))},createKeySession:function(e){if(!i||!s||!a)throw new Error("Can not create sessions until you have selected a key system");var t=null;if(a.ksConfiguration.videoCapabilities&&a.ksConfiguration.videoCapabilities.length>0&&(t=a.ksConfiguration.videoCapabilities[0]),null===t&&a.ksConfiguration.audioCapabilities&&a.ksConfiguration.audioCapabilities.length>0&&(t=a.ksConfiguration.audioCapabilities[0]),null===t)throw new Error("Can not create sessions for unknown content types.");var r=t.contentType,o=s.createSession(r,new Uint8Array(e.initData),e.cdmData?new Uint8Array(e.cdmData):null),c=function(e,t){return{session:e,keyId:t.keyId,initData:t.initData,getKeyId:function(){return this.keyId},getSessionId:function(){return this.session.sessionId},getExpirationTime:function(){return NaN},getSessionType:function(){return"temporary"},handleEvent:function(e){switch(e.type){case _.error:f.trigger(g.KEY_ERROR,{error:new d.a(y.MEDIA_KEYERR_CODE,"KeyError",this)});break;case _.message:var t=ArrayBuffer.isView(e.message)?e.message.buffer:e.message;f.trigger(g.INTERNAL_KEY_MESSAGE,{data:new se(this,t,e.destinationURL)});break;case _.ready:n.debug("DRM: Key added."),f.trigger(g.KEY_ADDED);break;case _.close:n.debug("DRM: Session closed. SessionID = "+this.getSessionId()),f.trigger(g.KEY_SESSION_CLOSED,{data:this.getSessionId()})}}}}(o,e);o.addEventListener(_.error,c),o.addEventListener(_.message,c),o.addEventListener(_.ready,c),o.addEventListener(_.close,c),u.push(c),n.debug("DRM: Session created. SessionID = "+c.getSessionId()),f.trigger(g.KEY_SESSION_CREATED,{data:c})},updateKeySession:function(e,t){var n=e.session;l.isClearKey(i)?n.update(new Uint8Array(t.toJWK())):n.update(new Uint8Array(t)),f.trigger(g.KEY_SESSION_UPDATED)},closeKeySession:p,setServerCertificate:function(){},loadKeySession:function(){},removeKeySession:function(){},stop:h,reset:h},n=S.getLogger(t),r=null,i=null,s=null,a=null,u=[],l=Q(E).getInstance(),c={handleEvent:function(e){switch(e.type){case _.needkey:if(e.initData){var t=ArrayBuffer.isView(e.initData)?e.initData.buffer:e.initData;f.trigger(g.NEED_KEY,{key:new ie(t,"cenc")})}}}},t}le.__dashjs_factory_name="ProtectionModel_3Feb2014";var Ee=dashjs.FactoryMaker.getClassFactory(le);function fe(e){e=e||{};var t,n,r,i,s,a,u,c,l,E=this.context,f=e.eventBus,g=e.events,S=e.debug,_=e.api,h=e.errHandler;function p(){r&&v();for(var e=0;e<u.length;e++)m(u[e]);f.trigger(g.TEARDOWN_COMPLETE)}function m(e){try{r[_.cancelKeyRequest](i.systemString,e.sessionId)}catch(t){f.trigger(g.KEY_SESSION_CLOSED,{data:null,error:"Error closing session ("+e.sessionId+") "+t.message})}}function R(e,t){if(t&&e){for(var n=e.length,r=0;r<n;r++)if(e[r].sessionId==t)return e[r];return null}return null}function v(){r.removeEventListener(_.keyerror,l),r.removeEventListener(_.needkey,l),r.removeEventListener(_.keymessage,l),r.removeEventListener(_.keyadded,l)}return t={getAllInitData:function(){for(var e=[],t=0;t<a.length;t++)e.push(a[t].initData);for(var n=0;n<u.length;n++)e.push(u[n].initData);return e},getSessions:function(){return u.concat(a)},requestKeySystemAccess:function(e){return new Promise((function(t,n){var i=r;i||(i=document.createElement("video"));for(var a=!1,u=0;u<e.length;u++)for(var c=e[u].ks.systemString,l=e[u].configs,E=null,y=0;y<l.length;y++){var d=l[y].videoCapabilities;if(d&&0!==d.length){E=[];for(var S=0;S<d.length;S++)""!==i.canPlayType(d[S].contentType,c)&&E.push(d[S])}if(E&&(!E||0!==E.length)){a=!0;var _=new o(null,E),h=s.getKeySystemBySystemString(c),p=new ae(h,_);f.trigger(g.KEY_SYSTEM_ACCESS_COMPLETE,{data:p}),t({data:p});break}}if(!a){var m="Key system access denied! -- No valid audio/video content configurations detected!";f.trigger(g.KEY_SYSTEM_ACCESS_COMPLETE,{error:m}),n({error:m})}}))},selectKeySystem:function(e){return i=e.keySystem,Promise.resolve(i)},setMediaElement:function(e){if(r!==e){if(r){v();for(var t=0;t<u.length;t++)m(u[t]);u=[]}(r=e)&&(r.addEventListener(_.keyerror,l),r.addEventListener(_.needkey,l),r.addEventListener(_.keymessage,l),r.addEventListener(_.keyadded,l),f.trigger(g.VIDEO_ELEMENT_SELECTED))}},createKeySession:function(e){if(!i)throw new Error("Can not create sessions until you have selected a key system");if(c||0===u.length){var t={sessionId:null,keyId:e.keyId,initData:e.initData,getKeyId:function(){return this.keyId},getSessionId:function(){return this.sessionId},getExpirationTime:function(){return NaN},getSessionType:function(){return"temporary"}};return a.push(t),r[_.generateKeyRequest](i.systemString,new Uint8Array(e.initData)),t}throw new Error("Multiple sessions not allowed!")},updateKeySession:function(e,t){var n=e.sessionId;if(s.isClearKey(i))for(var a=0;a<t.keyPairs.length;a++)r[_.addKey](i.systemString,t.keyPairs[a].key,t.keyPairs[a].keyID,n);else r[_.addKey](i.systemString,new Uint8Array(t),new Uint8Array(e.initData),n);f.trigger(g.KEY_SESSION_UPDATED)},closeKeySession:m,setServerCertificate:function(){},loadKeySession:function(){},removeKeySession:function(){},stop:p,reset:p},n=S.getLogger(t),r=null,i=null,a=[],u=[],s=Q(E).getInstance(),l={handleEvent:function(e){var t=null;switch(e.type){case _.needkey:var r=ArrayBuffer.isView(e.initData)?e.initData.buffer:e.initData;f.trigger(g.NEED_KEY,{key:new ie(r,"cenc")});break;case _.keyerror:if((t=R(u,e.sessionId))||(t=R(a,e.sessionId)),t){var i=y.MEDIA_KEYERR_CODE,s="";switch(e.errorCode.code){case 1:i=y.MEDIA_KEYERR_UNKNOWN_CODE,s+="MEDIA_KEYERR_UNKNOWN - "+y.MEDIA_KEYERR_UNKNOWN_MESSAGE;break;case 2:i=y.MEDIA_KEYERR_CLIENT_CODE,s+="MEDIA_KEYERR_CLIENT - "+y.MEDIA_KEYERR_CLIENT_MESSAGE;break;case 3:i=y.MEDIA_KEYERR_SERVICE_CODE,s+="MEDIA_KEYERR_SERVICE - "+y.MEDIA_KEYERR_SERVICE_MESSAGE;break;case 4:i=y.MEDIA_KEYERR_OUTPUT_CODE,s+="MEDIA_KEYERR_OUTPUT - "+y.MEDIA_KEYERR_OUTPUT_MESSAGE;break;case 5:i=y.MEDIA_KEYERR_HARDWARECHANGE_CODE,s+="MEDIA_KEYERR_HARDWARECHANGE - "+y.MEDIA_KEYERR_HARDWARECHANGE_MESSAGE;break;case 6:i=y.MEDIA_KEYERR_DOMAIN_CODE,s+="MEDIA_KEYERR_DOMAIN - "+y.MEDIA_KEYERR_DOMAIN_MESSAGE}s+=" System Code = "+e.systemCode,f.trigger(g.KEY_ERROR,{error:new d.a(i,s,t)})}else n.error("No session token found for key error");break;case _.keyadded:(t=R(u,e.sessionId))||(t=R(a,e.sessionId)),t?(n.debug("DRM: Key added."),f.trigger(g.KEY_ADDED,{data:t})):n.debug("No session token found for key added");break;case _.keymessage:if((c=null!==e.sessionId&&void 0!==e.sessionId)?!(t=R(u,e.sessionId))&&a.length>0&&(t=a.shift(),u.push(t),t.sessionId=e.sessionId,f.trigger(g.KEY_SESSION_CREATED,{data:t})):a.length>0&&(t=a.shift(),u.push(t),0!==a.length&&h.error(new d.a(y.MEDIA_KEY_MESSAGE_ERROR_CODE,y.MEDIA_KEY_MESSAGE_ERROR_MESSAGE))),t){var o=ArrayBuffer.isView(e.message)?e.message.buffer:e.message;t.keyMessage=o,f.trigger(g.INTERNAL_KEY_MESSAGE,{data:new se(t,o,e.defaultURL)})}else n.warn("No session token found for key message")}}},t}fe.__dashjs_factory_name="ProtectionModel_01b";var ye=dashjs.FactoryMaker.getClassFactory(fe),de=[{generateKeyRequest:"generateKeyRequest",addKey:"addKey",cancelKeyRequest:"cancelKeyRequest",needkey:"needkey",keyerror:"keyerror",keyadded:"keyadded",keymessage:"keymessage"},{generateKeyRequest:"webkitGenerateKeyRequest",addKey:"webkitAddKey",cancelKeyRequest:"webkitCancelKeyRequest",needkey:"webkitneedkey",keyerror:"webkitkeyerror",keyadded:"webkitkeyadded",keymessage:"webkitkeymessage"}],ge=[{setMediaKeys:"setMediaKeys",MediaKeys:"MediaKeys",release:"close",needkey:"needkey",error:"keyerror",message:"keymessage",ready:"keyadded",close:"keyclose"},{setMediaKeys:"msSetMediaKeys",MediaKeys:"MSMediaKeys",release:"close",needkey:"msneedkey",error:"mskeyerror",message:"mskeymessage",ready:"mskeyadded",close:"mskeyclose"}];function Se(){var e,t=this.context;function n(e,t){for(var n=0;n<t.length;n++){var r=t[n];if("function"==typeof e[r[Object.keys(r)[0]]])return r}return null}return e={createProtectionSystem:function(r){var i=null,s=Q(t).getInstance();s.setConfig({debug:r.debug,BASE64:r.BASE64,settings:r.settings}),s.initialize();var a=function(r){var i=r.debug,s=i.getLogger(e),a=r.eventBus,o=r.errHandler,u=r.videoModel?r.videoModel.getElement():null;return u&&void 0===u.onencrypted||u&&void 0===u.mediaKeys?n(u,ge)?(s.info("EME detected on this user agent! (ProtectionModel_3Feb2014)"),Ee(t).create({debug:i,eventBus:a,events:r.events,api:n(u,ge)})):n(u,de)?(s.info("EME detected on this user agent! (ProtectionModel_01b)"),ye(t).create({debug:i,eventBus:a,errHandler:o,events:r.events,api:n(u,de)})):(s.warn("No supported version of EME detected on this user agent! - Attempts to play encrypted content will fail!"),null):(s.info("EME detected on this user agent! (ProtectionModel_21Jan2015)"),ce(t).create({debug:i,eventBus:a,events:r.events}))}(r);return!i&&a&&(i=T(t).create({protectionModel:a,protectionKeyController:s,eventBus:r.eventBus,debug:r.debug,events:r.events,BASE64:r.BASE64,constants:r.constants,cmcdModel:r.cmcdModel,customParametersModel:r.customParametersModel,settings:r.settings}),r.capabilities.setEncryptedMediaSupported(!0)),i}}}Se.__dashjs_factory_name="Protection";var _e=dashjs.FactoryMaker.getClassFactory(Se);_e.events=re,_e.errors=y,dashjs.FactoryMaker.updateClassFactory(Se.__dashjs_factory_name,_e);t.default=_e}}).default}));
//# sourceMappingURL=dash.protection.min.js.map