/
dash.protection.min.js
3 lines (3 loc) · 54.4 KB
/
dash.protection.min.js
1
2
3
/*! v3.1.2-ea1362fe, 2020-07-24T08:59:37Z */
!function(e){var t;"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):((t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).dashjs||(t.dashjs={})).Protection=e()}(function(){return function i(a,o,u){function E(t,e){if(!o[t]){if(!a[t]){var n="function"==typeof require&&require;if(!e&&n)return n(t,!0);if(l)return l(t,!0);var r=new Error("Cannot find module '"+t+"'");throw r.code="MODULE_NOT_FOUND",r}var s=o[t]={exports:{}};a[t][0].call(s.exports,function(e){return E(a[t][1][e]||e)},s,s.exports,i,a,o,u)}return o[t].exports}for(var l="function"==typeof require&&require,e=0;e<u.length;e++)E(u[e]);return E}({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)}}Object.defineProperty(n,"__esModule",{value:!0});var s=(function(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}(i,[{key:"extend",value:function(e,t){if(e){var n=!!t&&t.override,r=!!t&&t.publicOnly;for(var s in e)!e.hasOwnProperty(s)||this[s]&&!n||r&&-1===e[s].indexOf("public_")||(this[s]=e[s])}}}]),i);function i(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i)}n.default=s,t.exports=n.default},{}],2:[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)}}Object.defineProperty(n,"__esModule",{value:!0});var s=(function(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}(i,[{key:"extend",value:function(e,t){if(e){var n=!!t&&t.override,r=!!t&&t.publicOnly;for(var s in e)!e.hasOwnProperty(s)||this[s]&&!n||r&&-1===e[s].indexOf("public_")||(this[s]=e[s])}}}]),i);function i(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i)}n.default=s,t.exports=n.default},{}],3:[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)}}function s(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,s),this.init()}Object.defineProperty(n,"__esModule",{value:!0});var i=new(function(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}(s,[{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"}}]),s);n.default=i,t.exports=n.default},{}],4:[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)}}Object.defineProperty(n,"__esModule",{value:!0});var s=(function(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}(i,null,[{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()&&(t=r)}return t}},{key:"getPSSHData",value:function(e){var t=8,n=new DataView(e),r=n.getUint8(t);return t+=20,0<r&&(t+=4+16*n.getUint32(t)),t+=4,e.slice(t)}},{key:"getPSSHForKeySystem",value:function(e,t){var n=i.parsePSSHList(t);return e&&n.hasOwnProperty(e.uuid.toLowerCase())?n[e.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 s,i,a=void 0,o=r;if(r>=t.buffer.byteLength)break;if(s=r+t.getUint32(r),r+=4,1886614376===t.getUint32(r))if(r+=4,0===(i=t.getUint8(r))||1===i){r++,r+=3,a="";for(var u=void 0,E=void 0,u=0;u<4;u++)a+=1===(E=t.getUint8(r+u).toString(16)).length?"0"+E:E;for(r+=4,a+="-",u=0;u<2;u++)a+=1===(E=t.getUint8(r+u).toString(16)).length?"0"+E:E;for(r+=2,a+="-",u=0;u<2;u++)a+=1===(E=t.getUint8(r+u).toString(16)).length?"0"+E:E;for(r+=2,a+="-",u=0;u<2;u++)a+=1===(E=t.getUint8(r+u).toString(16)).length?"0"+E:E;for(r+=2,a+="-",u=0;u<6;u++)a+=1===(E=t.getUint8(r+u).toString(16)).length?"0"+E:E;r+=6,a=a.toLowerCase(),t.getUint32(r),r+=4,n[a]=t.buffer.slice(o,s),r=s}else r=s;else r=s}return n}}]),i);function i(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i)}n.default=s,t.exports=n.default},{}],5:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(n,"__esModule",{value:!0});var f=r(e(7)),y=r(e(8)),s=r(e(6)),i=r(e(13)),S=r(e(15)),_=r(e(16)),g=r(e(14)),p=[{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"}],v=[{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 a(){var l=void 0,d=this.context;function c(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 l={createProtectionSystem:function(e){var t=null,n=(0,y.default)(d).getInstance();n.setConfig({debug:e.debug,BASE64:e.BASE64}),n.initialize();var r,s,i,a,o,u,E=(s=(r=e).debug,i=s.getLogger(l),a=r.eventBus,o=r.errHandler,(u=r.videoModel?r.videoModel.getElement():null)&&void 0===u.onencrypted||u&&void 0===u.mediaKeys?c(u,v)?(i.info("EME detected on this user agent! (ProtectionModel_3Feb2014)"),(0,_.default)(d).create({debug:s,eventBus:a,events:r.events,api:c(u,v)})):c(u,p)?(i.info("EME detected on this user agent! (ProtectionModel_01b)"),(0,g.default)(d).create({debug:s,eventBus:a,errHandler:o,events:r.events,api:c(u,p)})):(i.warn("No supported version of EME detected on this user agent! - Attempts to play encrypted content will fail!"),null):(i.info("EME detected on this user agent! (ProtectionModel_21Jan2015)"),(0,S.default)(d).create({debug:s,eventBus:a,events:r.events})));return!t&&E&&(t=(0,f.default)(d).create({protectionModel:E,protectionKeyController:n,eventBus:e.eventBus,debug:e.debug,events:e.events,BASE64:e.BASE64,constants:e.constants}),e.capabilities.setEncryptedMediaSupported(!0)),t}}}a.__dashjs_factory_name="Protection";var o=dashjs.FactoryMaker.getClassFactory(a);o.events=s.default,o.errors=i.default,dashjs.FactoryMaker.updateClassFactory(a.__dashjs_factory_name,o),n.default=o,t.exports=n.default},{13:13,14:14,15:15,16:16,6:6,7:7,8:8}],6:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r=function(e,t,n){for(var r=!0;r;){var s=e,i=t,a=n,r=!1;null===s&&(s=Function.prototype);var o=Object.getOwnPropertyDescriptor(s,i);if(void 0!==o){if("value"in o)return o.value;var u=o.get;if(void 0===u)return;return u.call(a)}var E=Object.getPrototypeOf(s);if(null===E)return;e=E,t=i,n=a,r=!0,o=E=void 0}};var s,i=e(2);function a(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,a),r(Object.getPrototypeOf(a.prototype),"constructor",this).call(this),this.INTERNAL_KEY_MESSAGE="internalKeyMessage",this.INTERNAL_KEY_SYSTEM_SELECTED="internalKeySystemSelected",this.INTERNAL_KEY_STATUS_CHANGED="internalkeyStatusChanged",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_SYSTEM_ACCESS_COMPLETE="public_keySystemAccessComplete",this.KEY_SYSTEM_SELECTED="public_keySystemSelected",this.LICENSE_REQUEST_COMPLETE="public_licenseRequestComplete",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"}var o=new(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(a,((s=i)&&s.__esModule?s:{default:s}).default),a);n.default=o,t.exports=n.default},{2:2}],7:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(n,"__esModule",{value:!0});var I=r(e(4)),O=r(e(26)),w=r(e(25)),b=r(e(13)),k=r(e(28));function s(e){var t,R=(e=e||{}).protectionKeyController,h=e.protectionModel,D=e.eventBus,m=e.events,n=e.debug,l=e.BASE64,E=e.constants,o=[],M=void 0,d=void 0,c=void 0,f=void 0,r=void 0,y=void 0,C=void 0;function s(){if(!(D&&D.hasOwnProperty("on")&&R&&R.hasOwnProperty("getSupportedKeySystemsFromContentProtection")))throw new Error("Missing config parameter(s)")}function S(e,t){var n=I.default.getPSSHForKeySystem(C,e),r=A(C);if(n){for(var s=h.getAllInitData(),i=0;i<s.length;i++)if(R.initDataEquals(n,s[i]))return void M.warn("DRM: Ignoring initData because we have already seen it!");try{h.createKeySession(n,r,p(C),t)}catch(e){D.trigger(m.KEY_SESSION_CREATED,{data:null,error:new k.default(b.default.KEY_SESSION_CREATED_ERROR_CODE,b.default.KEY_SESSION_CREATED_ERROR_MESSAGE+e.message)})}}else e?h.createKeySession(e,r,p(C),t):D.trigger(m.KEY_SESSION_CREATED,{data:null,error:new k.default(b.default.KEY_SESSION_CREATED_ERROR_CODE,b.default.KEY_SESSION_CREATED_ERROR_MESSAGE+"Selected key system is "+(C?C.systemString:null)+". needkey/encrypted event contains no initData corresponding to that key system!")})}function _(e,t){s(),h.loadKeySession(e,t,p(C))}function i(e){s(),e?(h.setMediaElement(e),D.on(m.NEED_KEY,K,this)):null===e&&(h.setMediaElement(e),D.off(m.NEED_KEY,K,this))}function A(e){var t,n=null;return e&&(t=e.systemString,f&&(n=t in f?f[t]:null)),n}function g(e){var t=A(e),n=[],r=[],s=t&&t.audioRobustness&&0<t.audioRobustness.length?t.audioRobustness:y,i=t&&t.videoRobustness&&0<t.videoRobustness.length?t.videoRobustness:y,a=p(e),o=t&&t.distinctiveIdentifier?t.distinctiveIdentifier:"optional",u=t&&t.persistentState?t.persistentState:"temporary"===a?"optional":"required";return c.forEach(function(e){e.type===E.AUDIO?n.push(new O.default(e.codec,s)):e.type===E.VIDEO&&r.push(new O.default(e.codec,i))}),new w.default(n,r,o,u,[a])}function p(e){var t=A(e);return t&&t.sessionType?t.sessionType:r}function u(n,o){var u=this,t=[];n=n.sort(function(e,t){return(f&&f[e.ks.systemString]&&0<=f[e.ks.systemString].priority?f[e.ks.systemString].priority:n.length)-(f&&f[t.ks.systemString]&&0<=f[t.ks.systemString].priority?f[t.ks.systemString].priority:n.length)});var r,E=void 0;if(C)for(E=0;E<n.length;E++){if(C===n[E].ks)if("break"===function(){t.push({ks:n[E].ks,configs:[g(C)]});return D.on(m.KEY_SYSTEM_ACCESS_COMPLETE,function e(t){D.off(m.KEY_SYSTEM_ACCESS_COMPLETE,e,u),t.error?o||D.trigger(m.KEY_SYSTEM_SELECTED,{error:new k.default(b.default.KEY_SYSTEM_ACCESS_DENIED_ERROR_CODE,b.default.KEY_SYSTEM_ACCESS_DENIED_ERROR_MESSAGE+t.error)}):(M.info("DRM: KeySystem Access Granted"),D.trigger(m.KEY_SYSTEM_SELECTED,{data:t.data}),n[E].sessionId?_(n[E].sessionId,n[E].initData):n[E].initData&&S(n[E].initData,n[E].cdmData))},u),h.requestKeySystemAccess(t),"break"}())break}else void 0===C?function(){C=null,d.push(n);for(var e=0;e<n.length;e++)t.push({ks:n[e].ks,configs:[g(n[e].ks)]});function i(e){D.off(m.KEY_SYSTEM_ACCESS_COMPLETE,i,u),e.error?(C=void 0,D.off(m.INTERNAL_KEY_SYSTEM_SELECTED,r,u),o||D.trigger(m.KEY_SYSTEM_SELECTED,{data:null,error:new k.default(b.default.KEY_SYSTEM_ACCESS_DENIED_ERROR_CODE,b.default.KEY_SYSTEM_ACCESS_DENIED_ERROR_MESSAGE+e.error)})):(a=e.data,M.info("DRM: KeySystem Access Granted ("+a.keySystem.systemString+")! Selecting key system..."),h.selectKeySystem(a))}var a=void 0;r=function e(t){if(D.off(m.INTERNAL_KEY_SYSTEM_SELECTED,e,u),D.off(m.KEY_SYSTEM_ACCESS_COMPLETE,i,u),t.error)C=void 0,o||D.trigger(m.KEY_SYSTEM_SELECTED,{data:null,error:new k.default(b.default.KEY_SYSTEM_ACCESS_DENIED_ERROR_CODE,b.default.KEY_SYSTEM_ACCESS_DENIED_ERROR_MESSAGE+"Error selecting key system! -- "+t.error)});else{if(!h)return;C=h.getKeySystem(),D.trigger(m.KEY_SYSTEM_SELECTED,{data:a});var n=A(C);n&&n.serverCertificate&&0<n.serverCertificate.length&&h.setServerCertificate(l.decodeArray(n.serverCertificate).buffer);for(var r,s=0;s<d.length;s++)for(E=0;E<d[s].length;E++)if(C===d[s][E].ks){R.isClearKey(C)&&n&&n.hasOwnProperty("clearkeys")&&(r={kids:Object.keys(n.clearkeys)},d[s][E].initData=(new TextEncoder).encode(JSON.stringify(r))),d[s][E].sessionId?_(d[s][E].sessionId,d[s][E].initData):null!==d[s][E].initData&&S(d[s][E].initData,d[s][E].cdmData);break}}},D.on(m.INTERNAL_KEY_SYSTEM_SELECTED,r,u),D.on(m.KEY_SYSTEM_ACCESS_COMPLETE,i,u),h.requestKeySystemAccess(t)}():d.push(n)}function T(e,t){D.trigger(m.LICENSE_REQUEST_COMPLETE,{data:e,error:t})}function a(e){e.error?D.trigger(m.KEY_STATUSES_CHANGED,{data:null,error:e.error}):M.debug("DRM: key status = "+e.status)}function v(e){M.debug("DRM: onKeyMessage");var t=e.data;D.trigger(m.KEY_MESSAGE,{data:t});var n=t.messageType?t.messageType:"license-request",r=t.message,s=t.sessionToken,i=A(C),a=C?C.systemString:null,o=R.getLicenseServer(C,i,n),u={sessionToken:s,messageType:n};if(r&&0!==r.byteLength){if(!o)return M.debug("DRM: License server request not required for this message (type = "+e.data.messageType+"). Session ID = "+s.getSessionID()),void T(u);if(R.isClearKey(C)){var E=R.processClearKeyLicenseRequest(C,i,r);if(E)return M.debug("DRM: ClearKey license request handled by application!"),T(u),void h.updateKeySession(s,E)}var l,d,c,f,y,S,_,g,p,v=null;i&&i.serverURL?"string"==typeof(l=i.serverURL)&&""!==l?v=l:"object"==typeof l&&l.hasOwnProperty(n)&&(v=l[n]):v=i&&i.laURL&&""!==i.laURL?i.laURL:(v=C.getLicenseServerURLFromInitData(I.default.getPSSHData(s.initData)))||e.data.laURL,(v=o.getServerURLFromMessage(v,r,n))?(c=!(d={}),f=function(e){if(e)for(var t in e)"authorization"===t.toLowerCase()&&(c=!0),d[t]=e[t]},i&&f(i.httpRequestHeaders),f(C.getRequestHeadersFromMessage(r)),i&&"boolean"==typeof i.withCredentials&&(c=i.withCredentials),y=function(e,t,n,r){var s=e.response?o.getErrorResponse(e.response,n,r):"NONE";T(t,new k.default(b.default.MEDIA_KEY_MESSAGE_LICENSER_ERROR_CODE,b.default.MEDIA_KEY_MESSAGE_LICENSER_ERROR_MESSAGE+n+' update, XHR complete. status is "'+e.statusText+'" ('+e.status+"), readyState is "+e.readyState+". Response is "+s))},S=C.getLicenseRequestFromMessage(r),_=o.getHTTPMethod(n),g=o.getResponseType(a,n),p=i&&!isNaN(i.httpTimeout)?i.httpTimeout:8e3,function e(t,n,r,s,i,a,o,u,E,l,d){var c=new XMLHttpRequest;c.open(r,t,!0);c.responseType=s;c.withCredentials=i;0<u&&(c.timeout=u);for(var f in n)c.setRequestHeader(f,n[f]);var y=function(){o--,setTimeout(function(){e(t,n,r,s,i,a,o,u,E,l,d)},1e3)};c.onload=function(){200===this.status||o<=0?E(this):(M.warn("License request failed ("+this.status+"). Retrying it... Pending retries: "+o),y())};c.ontimeout=c.onerror=function(){o<=0?d(this):(M.warn("License request network request failed . Retrying it... Pending retries: "+o),y())};c.onabort=function(){l(this)};c.send(a)}(v,d,_,g,c,S,3,p,function(e){var t;h&&(200===e.status&&null!==(t=o.getLicenseMessage(e.response,a,n))?(T(u),h.updateKeySession(s,t)):y(e,u,a,n))},function(e){T(u,new k.default(b.default.MEDIA_KEY_MESSAGE_LICENSER_ERROR_CODE,b.default.MEDIA_KEY_MESSAGE_LICENSER_ERROR_MESSAGE+a+' update, XHR aborted. status is "'+e.statusText+'" ('+e.status+"), readyState is "+e.readyState))},function(e){T(u,new k.default(b.default.MEDIA_KEY_MESSAGE_LICENSER_ERROR_CODE,b.default.MEDIA_KEY_MESSAGE_LICENSER_ERROR_MESSAGE+a+' update, XHR error. status is "'+e.statusText+'" ('+e.status+"), readyState is "+e.readyState))})):T(u,new k.default(b.default.MEDIA_KEY_MESSAGE_NO_LICENSE_SERVER_URL_ERROR_CODE,b.default.MEDIA_KEY_MESSAGE_NO_LICENSE_SERVER_URL_ERROR_MESSAGE))}else T(u,new k.default(b.default.MEDIA_KEY_MESSAGE_NO_CHALLENGE_ERROR_CODE,b.default.MEDIA_KEY_MESSAGE_NO_CHALLENGE_ERROR_MESSAGE))}function K(e,t){if(M.debug("DRM: onNeedKey"),"cenc"===e.key.initDataType)if(0===c.length&&(M.warn("DRM: onNeedKey called before initializeForMedia, wait until initialized"),(t=void 0===t?1:t+1)<5))o.push(setTimeout(function(){K(e,t)},500));else{var n=e.key.initData;if(ArrayBuffer.isView(n)&&(n=n.buffer),C){var r=I.default.getPSSHForKeySystem(C,n);if(r)for(var s=h.getAllInitData(),i=0;i<s.length;i++)if(R.initDataEquals(r,s[i]))return void M.warn("DRM: Ignoring initData because we have already seen it!")}M.debug("DRM: initData:",String.fromCharCode.apply(null,new Uint8Array(n)));var a=R.getSupportedKeySystems(n,f);0!==a.length?u(a,!1):M.debug("DRM: Received needkey event with initData, but we don't support any of the key systems!")}else M.warn("DRM: Only 'cenc' initData is supported! Ignoring initData of type: "+e.key.initDataType)}return t={initializeForMedia:function(e){if(!e)throw new Error("mediaInfo can not be null or undefined");s(),D.on(m.INTERNAL_KEY_MESSAGE,v,this),D.on(m.INTERNAL_KEY_STATUS_CHANGED,a,this),c.push(e);var t=R.getSupportedKeySystemsFromContentProtection(e.contentProtection);t&&0<t.length&&u(t,!0)},createKeySession:S,loadKeySession:_,removeKeySession:function(e){s(),h.removeKeySession(e)},closeKeySession:function(e){s(),h.closeKeySession(e)},setServerCertificate:function(e){s(),h.setServerCertificate(e)},setMediaElement:i,setSessionType:function(e){r=e},setRobustnessLevel:function(e){y=e},setProtectionData:function(e){f=e,R.setProtectionData(e)},getSupportedKeySystemsFromContentProtection:function(e){return s(),R.getSupportedKeySystemsFromContentProtection(e)},getKeySystems:function(){return R?R.getKeySystems():[]},setKeySystems:function(e){R&&R.setKeySystems(e)},stop:function(){h&&h.stop()},reset:function(){s(),D.off(m.INTERNAL_KEY_MESSAGE,v,this),D.off(m.INTERNAL_KEY_STATUS_CHANGED,a,this),i(null),C=void 0,h&&(h.reset(),h=null),o.forEach(function(e){return clearTimeout(e)}),o=[],c=[]}},M=n.getLogger(t),d=[],c=[],r="temporary",y="",t}s.__dashjs_factory_name="ProtectionController",n.default=dashjs.FactoryMaker.getClassFactory(s),t.exports=n.default},{13:13,25:25,26:26,28:28,4:4}],8:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(n,"__esModule",{value:!0});var E=r(e(4)),l=r(e(9)),d=r(e(11)),c=r(e(12)),f=r(e(10)),y=r(e(18)),S=r(e(19)),_=r(e(20)),g=r(e(17)),p=r(e(3));function s(){var s=this.context,t=void 0,n=void 0,r=void 0,u=void 0,i=void 0,a=void 0,o=void 0;return t={initialize:function(){u=[];var e=void 0,e=(0,f.default)(s).getInstance({BASE64:i});u.push(e),e=(0,c.default)(s).getInstance({BASE64:i}),u.push(e),e=(0,l.default)(s).getInstance({BASE64:i}),u.push(e),a=e,e=(0,d.default)(s).getInstance({BASE64:i,debug:n}),u.push(e),o=e},setProtectionData:function(e){for(var t,n,r=0;r<u.length;r++){var s=u[r];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===a||e===o},initDataEquals:function(e,t){if(e.byteLength!==t.byteLength)return!1;for(var n=new Uint8Array(e),r=new Uint8Array(t),s=0;s<n.length;s++)if(n[s]!==r[s])return!1;return!0},getKeySystems:function(){return u},setKeySystems:function(e){u=e},getKeySystemBySystemString:function(e){for(var t=0;t<u.length;t++)if(u[t].systemString===e)return u[t];return null},getSupportedKeySystemsFromContentProtection:function(e){var t,n=void 0,r=void 0,s=void 0,i=void 0,a=[];if(e)for(s=0;s<u.length;++s)for(r=u[s],i=0;i<e.length;++i){(n=e[i]).schemeIdUri.toLowerCase()===r.schemeIdURI&&(t=r.getInitData(n),a.push({ks:u[s],initData:t,cdmData:r.getCDMData(),sessionId:r.getSessionId(n)}))}return a},getSupportedKeySystems:function(e,t){for(var n=[],r=E.default.parsePSSHList(e),s=void 0,i=void 0,a=void 0,o=0;o<u.length;++o)i=(s=u[o]).systemString,a=!t||i in t,s.uuid in r&&a&&n.push({ks:s,initData:r[s.uuid],cdmData:s.getCDMData(),sessionId:s.getSessionId()});return n},getLicenseServer:function(e,t,n){if("license-release"===n||"individualization-request"===n)return null;var r=null;return t&&t.hasOwnProperty("drmtoday")?r=(0,y.default)(s).getInstance({BASE64:i}):e.systemString===p.default.WIDEVINE_KEYSTEM_STRING?r=(0,_.default)(s).getInstance():e.systemString===p.default.PLAYREADY_KEYSTEM_STRING?r=(0,S.default)(s).getInstance():e.systemString===p.default.CLEARKEY_KEYSTEM_STRING&&(r=(0,g.default)(s).getInstance()),r},processClearKeyLicenseRequest:function(e,t,n){try{return e.getClearKeysFromProtectionData(t,n)}catch(e){return r.error("Failed to retrieve clearkeys from ProtectionData"),null}},setConfig:function(e){e&&(e.debug&&(n=e.debug,r=n.getLogger(t)),e.BASE64&&(i=e.BASE64))}}}s.__dashjs_factory_name="ProtectionKeyController",n.default=dashjs.FactoryMaker.getSingletonFactory(s),t.exports=n.default},{10:10,11:11,12:12,17:17,18:18,19:19,20:20,3:3,4:4,9:9}],9:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(n,"__esModule",{value:!0});var u=r(e(23)),E=r(e(21)),s=r(e(4)),i=r(e(3)),a="e2719d58-a985-b3c9-781a-b030af78d30e",o=i.default.CLEARKEY_KEYSTEM_STRING;function l(e){var t=(e=e||{}).BASE64;return{uuid:a,schemeIdURI:"urn:uuid:e2719d58-a985-b3c9-781a-b030af78d30e",systemString:o,getInitData:function(e){return s.default.parseInitDataFromContentProtection(e,t)},getRequestHeadersFromMessage:function(){return null},getLicenseRequestFromMessage:function(e){return new Uint8Array(e)},getLicenseServerURLFromInitData:function(){return null},getCDMData:function(){return null},getSessionId:function(){return null},getClearKeysFromProtectionData:function(e,t){var n=null;if(e){for(var r=JSON.parse(String.fromCharCode.apply(null,new Uint8Array(t))),s=[],i=0;i<r.kids.length;i++){var a=r.kids[i],o=e.clearkeys&&e.clearkeys.hasOwnProperty(a)?e.clearkeys[a]:null;if(!o)throw new Error("DRM: ClearKey keyID ("+a+") is not known!");s.push(new u.default(a,o))}n=new E.default(s)}return n}}}l.__dashjs_factory_name="KeySystemClearKey",n.default=dashjs.FactoryMaker.getSingletonFactory(l),t.exports=n.default},{21:21,23:23,3:3,4:4}],10:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(n,"__esModule",{value:!0});var c=r(e(4)),s=r(e(3)),i="9a04f079-9840-4286-ab92-e65be0885f95",a=s.default.PLAYREADY_KEYSTEM_STRING,o=void 0;function u(e){var E="utf-16",l=(e=e||{}).BASE64;function d(){if(!l||!l.hasOwnProperty("decodeArray")||!l.hasOwnProperty("decodeArray"))throw new Error("Missing config parameter(s)")}return{uuid:i,schemeIdURI:"urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95",systemString:a,getInitData:function(e){var t,n,r,s=new Uint8Array([112,115,115,104,0,0,0,0]),i=new Uint8Array([154,4,240,121,152,64,66,134,171,146,230,91,224,136,95,149]),a=0,o=null,u=void 0,E=void 0;if(d(),!e)return null;if("pssh"in e)return c.default.parseInitDataFromContentProtection(e,l);if("pro"in e)o=l.decodeArray(e.pro.__text);else{if(!("prheader"in e))return null;o=l.decodeArray(e.prheader.__text)}return t=o.length,n=4+s.length+i.length+4+t,r=new ArrayBuffer(n),u=new Uint8Array(r),(E=new DataView(r)).setUint32(a,n),a+=4,u.set(s,a),a+=s.length,u.set(i,a),a+=i.length,E.setUint32(a,t),a+=4,u.set(o,a),a+=t,u.buffer},getRequestHeadersFromMessage:function(e){for(var t=void 0,n={},r=new DOMParser,s=new("utf-16"===E?Uint16Array:Uint8Array)(e),i=String.fromCharCode.apply(null,s),a=(t=r.parseFromString(i,"application/xml")).getElementsByTagName("name"),o=t.getElementsByTagName("value"),u=0;u<a.length;u++)n[a[u].childNodes[0].nodeValue]=o[u].childNodes[0].nodeValue;return n.hasOwnProperty("Content")&&(n["Content-Type"]=n.Content,delete n.Content),n.hasOwnProperty("Content-Type")||(n["Content-Type"]="text/xml; charset=utf-8"),n},getLicenseRequestFromMessage:function(e){var t=null,n=new DOMParser,r=new("utf-16"===E?Uint16Array:Uint8Array)(e);d();var s=String.fromCharCode.apply(null,r),i=n.parseFromString(s,"application/xml");if(!i.getElementsByTagName("PlayReadyKeyMessage")[0])return e;var a=i.getElementsByTagName("Challenge")[0].childNodes[0].nodeValue;return a&&(t=l.decode(a)),t},getLicenseServerURLFromInitData:function(e){if(e)for(var t=new DataView(e),n=t.getUint16(4,!0),r=6,s=new DOMParser,i=0;i<n;i++){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),E=String.fromCharCode.apply(null,new Uint16Array(u)),l=s.parseFromString(E,"application/xml");if(l.getElementsByTagName("LA_URL")[0]){var d=l.getElementsByTagName("LA_URL")[0].childNodes[0].nodeValue;if(d)return d}if(l.getElementsByTagName("LUI_URL")[0]){var c=l.getElementsByTagName("LUI_URL")[0].childNodes[0].nodeValue;if(c)return c}}else r+=o}return null},getCDMData:function(){var e=void 0,t=void 0,n=void 0,r=void 0;if(d(),o&&o.cdmData){for(e=[],r=0;r<o.cdmData.length;++r)e.push(o.cdmData.charCodeAt(r)),e.push(0);for(e=String.fromCharCode.apply(null,e),e=l.encode(e),t='<PlayReadyCDMData type="LicenseAcquisition"><LicenseAcquisition version="1.0" Proactive="false"><CustomData encoding="base64encoded">%CUSTOMDATA%</CustomData></LicenseAcquisition></PlayReadyCDMData>'.replace("%CUSTOMDATA%",e),n=[],r=0;r<t.length;++r)n.push(t.charCodeAt(r)),n.push(0);return new Uint8Array(n).buffer}return null},getSessionId:function(e){return o&&o.sessionId?o.sessionId:e&&e.sessionId?e.sessionId:null},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"');E=e},init:function(e){e&&(o=e)}}}u.__dashjs_factory_name="KeySystemPlayReady",n.default=dashjs.FactoryMaker.getSingletonFactory(u),t.exports=n.default},{3:3,4:4}],11:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(n,"__esModule",{value:!0});var E=r(e(23)),l=r(e(21)),s=r(e(4)),i=r(e(3)),a="1077efec-c0b2-4d02-ace3-3c1e52e2fb4b",o=i.default.CLEARKEY_KEYSTEM_STRING;function u(e){var t=void 0,n=e.BASE64,u=e.debug.getLogger(t);return t={uuid:a,schemeIdURI:"urn:uuid:1077efec-c0b2-4d02-ace3-3c1e52e2fb4b",systemString:o,getInitData:function(e){return s.default.parseInitDataFromContentProtection(e,n)},getRequestHeadersFromMessage:function(){return null},getLicenseRequestFromMessage:function(e){return new Uint8Array(e)},getLicenseServerURLFromInitData:function(){return null},getCDMData:function(){return null},getSessionId:function(){return null},getClearKeysFromProtectionData:function(e,t){var n=null;if(e){for(var r=JSON.parse(String.fromCharCode.apply(null,new Uint8Array(t))),s=[],i=0;i<r.kids.length;i++){var a=r.kids[i],o=e.clearkeys&&e.clearkeys.hasOwnProperty(a)?e.clearkeys[a]:null;if(!o)throw new Error("DRM: ClearKey keyID ("+a+") is not known!");s.push(new E.default(a,o))}n=new l.default(s),u.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}}}u.__dashjs_factory_name="KeySystemW3CClearKey",n.default=dashjs.FactoryMaker.getSingletonFactory(u),t.exports=n.default},{21:21,23:23,3:3,4:4}],12:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(n,"__esModule",{value:!0});var s=r(e(4)),i=r(e(3)),a="edef8ba9-79d6-4ace-a3c8-27dcd51d21ed",o=i.default.WIDEVINE_KEYSTEM_STRING;function u(e){var t=null,n=(e=e||{}).BASE64;return{uuid:a,schemeIdURI:"urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed",systemString:o,init:function(e){e&&(t=e)},getInitData:function(e){return s.default.parseInitDataFromContentProtection(e,n)},getRequestHeadersFromMessage:function(){return null},getLicenseRequestFromMessage:function(e){return new Uint8Array(e)},getLicenseServerURLFromInitData:function(){return null},getCDMData:function(){return null},getSessionId:function(e){return t&&t.sessionId?t.sessionId:e&&e.sessionId?e.sessionId:null}}}u.__dashjs_factory_name="KeySystemWidevine",n.default=dashjs.FactoryMaker.getSingletonFactory(u),t.exports=n.default},{3:3,4:4}],13:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r=function(e,t,n){for(var r=!0;r;){var s=e,i=t,a=n,r=!1;null===s&&(s=Function.prototype);var o=Object.getOwnPropertyDescriptor(s,i);if(void 0!==o){if("value"in o)return o.value;var u=o.get;if(void 0===u)return;return u.call(a)}var E=Object.getPrototypeOf(s);if(null===E)return;e=E,t=i,n=a,r=!0,o=E=void 0}};var s,i=e(1);function a(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,a),r(Object.getPrototypeOf(a.prototype),"constructor",this).call(this),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! --"}var o=new(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(a,((s=i)&&s.__esModule?s:{default:s}).default),a);n.default=o,t.exports=n.default},{1:1}],14:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(n,"__esModule",{value:!0});var R=r(e(8)),h=r(e(27)),D=r(e(28)),m=r(e(22)),M=r(e(25)),C=r(e(24)),A=r(e(13));function s(e){e=e||{};var t=this.context,f=e.eventBus,y=e.events,n=e.debug,a=e.api,o=e.errHandler,r=void 0,u=void 0,S=void 0,s=void 0,_=void 0,E=void 0,l=void 0,d=void 0,i=void 0;function c(){S&&v();for(var e=0;e<l.length;e++)g(l[e]);f.trigger(y.TEARDOWN_COMPLETE)}function g(t){try{S[a.cancelKeyRequest](s.systemString,t.sessionID)}catch(e){f.trigger(y.KEY_SESSION_CLOSED,{data:null,error:"Error closing session ("+t.sessionID+") "+e.message})}}function p(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(){S.removeEventListener(a.keyerror,i),S.removeEventListener(a.needkey,i),S.removeEventListener(a.keymessage,i),S.removeEventListener(a.keyadded,i)}return r={getAllInitData:function(){for(var e=[],t=0;t<E.length;t++)e.push(E[t].initData);for(t=0;t<l.length;t++)e.push(l[t].initData);return e},requestKeySystemAccess:function(e){for(var t=(t=S)||document.createElement("video"),n=!1,r=0;r<e.length;r++)for(var s=e[r].ks.systemString,i=e[r].configs,a=null,o=null,u=0;u<i.length;u++){var E=i[u].videoCapabilities;if(E&&0!==E.length){o=[];for(var l=0;l<E.length;l++)""!==t.canPlayType(E[l].contentType,s)&&o.push(E[l])}if(o&&(!o||0!==o.length)){n=!0;var d=new M.default(a,o),c=_.getKeySystemBySystemString(s);f.trigger(y.KEY_SYSTEM_ACCESS_COMPLETE,{data:new C.default(c,d)});break}}n||f.trigger(y.KEY_SYSTEM_ACCESS_COMPLETE,{error:"Key system access denied! -- No valid audio/video content configurations detected!"})},getKeySystem:function(){return s},selectKeySystem:function(e){s=e.keySystem,f.trigger(y.INTERNAL_KEY_SYSTEM_SELECTED)},setMediaElement:function(e){if(S!==e){if(S){v();for(var t=0;t<l.length;t++)g(l[t]);l=[]}(S=e)&&(S.addEventListener(a.keyerror,i),S.addEventListener(a.needkey,i),S.addEventListener(a.keymessage,i),S.addEventListener(a.keyadded,i),f.trigger(y.VIDEO_ELEMENT_SELECTED))}},createKeySession:function(e){if(!s)throw new Error("Can not create sessions until you have selected a key system");if(d||0===l.length){var t={sessionID:null,initData:e,getSessionID:function(){return this.sessionID},getExpirationTime:function(){return NaN},getSessionType:function(){return"temporary"}};return E.push(t),S[a.generateKeyRequest](s.systemString,new Uint8Array(e)),t}throw new Error("Multiple sessions not allowed!")},updateKeySession:function(e,t){var n=e.sessionID;if(_.isClearKey(s))for(var r=0;r<t.keyPairs.length;r++)S[a.addKey](s.systemString,t.keyPairs[r].key,t.keyPairs[r].keyID,n);else S[a.addKey](s.systemString,new Uint8Array(t),new Uint8Array(e.initData),n)},closeKeySession:g,setServerCertificate:function(){},loadKeySession:function(){},removeKeySession:function(){},stop:c,reset:c},u=n.getLogger(r),E=[],l=[],_=(s=S=null,R.default)(t).getInstance(),i={handleEvent:function(e){var t,n=null;switch(e.type){case a.needkey:var r=ArrayBuffer.isView(e.initData)?e.initData.buffer:e.initData;f.trigger(y.NEED_KEY,{key:new h.default(r,"cenc")});break;case a.keyerror:if(n=(n=p(l,e.sessionId))||p(E,e.sessionId)){var s=A.default.MEDIA_KEYERR_CODE,i="";switch(e.errorCode.code){case 1:s=A.default.MEDIA_KEYERR_UNKNOWN_CODE,i+="MEDIA_KEYERR_UNKNOWN - "+A.default.MEDIA_KEYERR_UNKNOWN_MESSAGE;break;case 2:s=A.default.MEDIA_KEYERR_CLIENT_CODE,i+="MEDIA_KEYERR_CLIENT - "+A.default.MEDIA_KEYERR_CLIENT_MESSAGE;break;case 3:s=A.default.MEDIA_KEYERR_SERVICE_CODE,i+="MEDIA_KEYERR_SERVICE - "+A.default.MEDIA_KEYERR_SERVICE_MESSAGE;break;case 4:s=A.default.MEDIA_KEYERR_OUTPUT_CODE,i+="MEDIA_KEYERR_OUTPUT - "+A.default.MEDIA_KEYERR_OUTPUT_MESSAGE;break;case 5:s=A.default.MEDIA_KEYERR_HARDWARECHANGE_CODE,i+="MEDIA_KEYERR_HARDWARECHANGE - "+A.default.MEDIA_KEYERR_HARDWARECHANGE_MESSAGE;break;case 6:s=A.default.MEDIA_KEYERR_DOMAIN_CODE,i+="MEDIA_KEYERR_DOMAIN - "+A.default.MEDIA_KEYERR_DOMAIN_MESSAGE}i+=" System Code = "+e.systemCode,f.trigger(y.KEY_ERROR,{data:new D.default(s,i,n)})}else u.error("No session token found for key error");break;case a.keyadded:(n=(n=p(l,e.sessionId))||p(E,e.sessionId))?(u.debug("DRM: Key added."),f.trigger(y.KEY_ADDED,{data:n})):u.debug("No session token found for key added");break;case a.keymessage:(d=null!==e.sessionId&&void 0!==e.sessionId)?!(n=p(l,e.sessionId))&&0<E.length&&(n=E.shift(),l.push(n),n.sessionID=e.sessionId,f.trigger(y.KEY_SESSION_CREATED,{data:n})):0<E.length&&(n=E.shift(),l.push(n),0!==E.length&&o.error(new D.default(A.default.MEDIA_KEY_MESSAGE_ERROR_CODE,A.default.MEDIA_KEY_MESSAGE_ERROR_MESSAGE))),n?(t=ArrayBuffer.isView(e.message)?e.message.buffer:e.message,n.keyMessage=t,f.trigger(y.INTERNAL_KEY_MESSAGE,{data:new m.default(n,t,e.defaultURL)})):u.warn("No session token found for key message")}}},r}s.__dashjs_factory_name="ProtectionModel_01b",n.default=dashjs.FactoryMaker.getClassFactory(s),t.exports=n.default},{13:13,22:22,24:24,25:25,27:27,28:28,8:8}],15:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(n,"__esModule",{value:!0});var g=r(e(8)),p=r(e(27)),v=r(e(13)),R=r(e(28)),h=r(e(22)),D=r(e(24)),m=r(e(3));function s(e){e=e||{};var t=this.context,a=e.eventBus,o=e.events,n=e.debug,r=void 0,u=void 0,E=void 0,s=void 0,l=void 0,d=void 0,i=void 0,c=void 0;function f(e){var t=e.session;return t.removeEventListener("keystatuseschange",e),t.removeEventListener("message",e),t.close()}function y(e){for(var t=0;t<d.length;t++)if(d[t]===e){d.splice(t,1);break}}function S(e){var t=void 0,n=void 0;return e&&0<e.length&&(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 _(t,e,n,r){var s={session:t,initData:e,sessionId:r,handleEvent:function(e){switch(e.type){case"keystatuseschange":a.trigger(o.KEY_STATUSES_CHANGED,{data:this}),e.target.keyStatuses.forEach(function(){var e=S(arguments);switch(e.status){case"expired":a.trigger(o.INTERNAL_KEY_STATUS_CHANGED,{error:new R.default(v.default.KEY_STATUS_CHANGED_EXPIRED_ERROR_CODE,v.default.KEY_STATUS_CHANGED_EXPIRED_ERROR_MESSAGE)});break;default:a.trigger(o.INTERNAL_KEY_STATUS_CHANGED,e)}});break;case"message":var t=ArrayBuffer.isView(e.message)?e.message.buffer:e.message;a.trigger(o.INTERNAL_KEY_MESSAGE,{data:new h.default(this,t,void 0,e.messageType)})}},getSessionID:function(){return t.sessionId},getExpirationTime:function(){return t.expiration},getKeyStatuses:function(){return t.keyStatuses},getUsable:function(){var e=!1;return t.keyStatuses.forEach(function(){"usable"===S(arguments).status&&(e=!0)}),e},getSessionType:function(){return n}};return t.addEventListener("keystatuseschange",s),t.addEventListener("message",s),t.closed.then(function(){y(s),u.debug("DRM: Session closed. SessionID = "+s.getSessionID()),a.trigger(o.KEY_SESSION_CLOSED,{data:s.getSessionID()})}),d.push(s),s}return r={getAllInitData:function(){for(var e=[],t=0;t<d.length;t++)d[t].initData&&e.push(d[t].initData);return e},requestKeySystemAccess:function(e){!function s(i,e){if(void 0===navigator.requestMediaKeySystemAccess||"function"!=typeof navigator.requestMediaKeySystemAccess)return void a.trigger(o.KEY_SYSTEM_ACCESS_COMPLETE,{error:"Insecure origins are not allowed"});!function(t){var r=i[t].ks,e=i[t].configs,n=r.systemString;n===m.default.PLAYREADY_KEYSTEM_STRING&&"required"===e[0].persistentState&&(n+=".recommendation"),navigator.requestMediaKeySystemAccess(n,e).then(function(e){var t="function"==typeof e.getConfiguration?e.getConfiguration():null,n=new D.default(r,t);n.mksa=e,a.trigger(o.KEY_SYSTEM_ACCESS_COMPLETE,{data:n})}).catch(function(e){++t<i.length?s(i,t):a.trigger(o.KEY_SYSTEM_ACCESS_COMPLETE,{error:"Key system access denied! "+e.message})})}(e)}(e,0)},getKeySystem:function(){return E},selectKeySystem:function(t){t.mksa.createMediaKeys().then(function(e){E=t.keySystem,l=e,s?s.setMediaKeys(l).then(function(){a.trigger(o.INTERNAL_KEY_SYSTEM_SELECTED)}):a.trigger(o.INTERNAL_KEY_SYSTEM_SELECTED)}).catch(function(){a.trigger(o.INTERNAL_KEY_SYSTEM_SELECTED,{error:"Error selecting keys system ("+t.keySystem.systemString+")! Could not create MediaKeys -- TODO"})})},setMediaElement:function(e){s!==e&&(s&&(s.removeEventListener("encrypted",i),s.setMediaKeys&&s.setMediaKeys(null)),(s=e)&&(s.addEventListener("encrypted",i),s.setMediaKeys&&l&&s.setMediaKeys(l)))},setServerCertificate:function(e){if(!E||!l)throw new Error("Can not set server certificate until you have selected a key system");l.setServerCertificate(e).then(function(){u.info("DRM: License server certificate successfully updated."),a.trigger(o.SERVER_CERTIFICATE_UPDATED)}).catch(function(e){a.trigger(o.SERVER_CERTIFICATE_UPDATED,{error:new R.default(v.default.SERVER_CERTIFICATE_UPDATED_ERROR_CODE,v.default.SERVER_CERTIFICATE_UPDATED_ERROR_MESSAGE+e.name)})})},createKeySession:function(e,t,n){if(!E||!l)throw new Error("Can not create sessions until you have selected a key system");var r=l.createSession(n),s=_(r,e,n),i=this.getKeySystem().systemString===m.default.CLEARKEY_KEYSTEM_STRING&&t&&t.clearkeys?"keyids":"cenc";r.generateRequest(i,e).then(function(){u.debug("DRM: Session created. SessionID = "+s.getSessionID()),a.trigger(o.KEY_SESSION_CREATED,{data:s})}).catch(function(e){y(s),a.trigger(o.KEY_SESSION_CREATED,{data:null,error:new R.default(v.default.KEY_SESSION_CREATED_ERROR_CODE,v.default.KEY_SESSION_CREATED_ERROR_MESSAGE+"Error generating key request -- "+e.name)})})},updateKeySession:function(t,e){var n=t.session;c.isClearKey(E)&&(e=e.toJWK()),n.update(e).catch(function(e){a.trigger(o.KEY_ERROR,{data:new R.default(v.default.MEDIA_KEYERR_CODE,"Error sending update() message! "+e.name,t)})})},loadKeySession:function(t,e,n){if(!E||!l)throw new Error("Can not load sessions until you have selected a key system");for(var r=0;r<d.length;r++)if(t===d[r].sessionId)return void u.warn("DRM: Ignoring session ID because we have already seen it!");var s=l.createSession(n),i=_(s,e,n,t);s.load(t).then(function(e){e?(u.debug("DRM: Session loaded. SessionID = "+i.getSessionID()),a.trigger(o.KEY_SESSION_CREATED,{data:i})):(y(i),a.trigger(o.KEY_SESSION_CREATED,{data:null,error:new R.default(v.default.KEY_SESSION_CREATED_ERROR_CODE,v.default.KEY_SESSION_CREATED_ERROR_MESSAGE+"Could not load session! Invalid Session ID ("+t+")")}))}).catch(function(e){y(i),a.trigger(o.KEY_SESSION_CREATED,{data:null,error:new R.default(v.default.KEY_SESSION_CREATED_ERROR_CODE,v.default.KEY_SESSION_CREATED_ERROR_MESSAGE+"Could not load session ("+t+")! "+e.name)})})},removeKeySession:function(t){t.session.remove().then(function(){u.debug("DRM: Session removed. SessionID = "+t.getSessionID()),a.trigger(o.KEY_SESSION_REMOVED,{data:t.getSessionID()})},function(e){a.trigger(o.KEY_SESSION_REMOVED,{data:null,error:"Error removing session ("+t.getSessionID()+"). "+e.name})})},closeKeySession:function(t){f(t).catch(function(e){y(t),a.trigger(o.KEY_SESSION_CLOSED,{data:null,error:"Error closing session ("+t.getSessionID()+") "+e.name})})},stop:function(){for(var e=void 0,t=0;t<d.length;t++)(e=d[t]).getUsable()||f(e).catch(function(){y(e)})},reset:function(){var n=d.length,r=void 0;0!==n?function(){for(var t=function(e){y(e),0===d.length&&(s?(s.removeEventListener("encrypted",i),s.setMediaKeys(null).then(function(){a.trigger(o.TEARDOWN_COMPLETE)})):a.trigger(o.TEARDOWN_COMPLETE))},e=0;e<n;e++)!function(e){r.session.closed.then(function(){t(e)}),f(r).catch(function(){t(e)})}(r=d[e])}():a.trigger(o.TEARDOWN_COMPLETE)}},u=n.getLogger(r),d=[],c=(l=s=E=null,g.default)(t).getInstance(),i={handleEvent:function(e){switch(e.type){case"encrypted":var t;e.initData&&(t=ArrayBuffer.isView(e.initData)?e.initData.buffer:e.initData,a.trigger(o.NEED_KEY,{key:new p.default(t,e.initDataType)}))}}},r}s.__dashjs_factory_name="ProtectionModel_21Jan2015",n.default=dashjs.FactoryMaker.getClassFactory(s),t.exports=n.default},{13:13,22:22,24:24,27:27,28:28,3:3,8:8}],16:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(n,"__esModule",{value:!0});var p=r(e(8)),v=r(e(27)),R=r(e(28)),h=r(e(13)),D=r(e(22)),m=r(e(25)),M=r(e(24));function s(e){e=e||{};var t=this.context,y=e.eventBus,S=e.events,n=e.debug,_=e.api,r=void 0,u=void 0,s=void 0,E=void 0,l=void 0,d=void 0,c=void 0,i=void 0,g=void 0;function a(){try{for(var e=0;e<c.length;e++)o(c[e]);s&&s.removeEventListener(_.needkey,i),y.trigger(S.TEARDOWN_COMPLETE)}catch(e){y.trigger(S.TEARDOWN_COMPLETE,{error:"Error tearing down key sessions and MediaKeys! -- "+e.message})}}function o(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<c.length;n++)if(c[n]===e){c.splice(n,1);break}t[_.release]()}function f(){function e(){s.removeEventListener("loadedmetadata",t),s[_.setMediaKeys](l),y.trigger(S.VIDEO_ELEMENT_SELECTED)}var t=null;1<=s.readyState?e():(t=e.bind(this),s.addEventListener("loadedmetadata",t))}return r={getAllInitData:function(){for(var e=[],t=0;t<c.length;t++)e.push(c[t].initData);return e},requestKeySystemAccess:function(e){for(var t=!1,n=0;n<e.length;n++)for(var r=e[n].ks.systemString,s=e[n].configs,i=null,a=null,o=0;o<s.length;o++){var u=s[o].audioCapabilities,E=s[o].videoCapabilities;if(u&&0!==u.length){i=[];for(var l=0;l<u.length;l++)window[_.MediaKeys].isTypeSupported(r,u[l].contentType)&&i.push(u[l])}if(E&&0!==E.length){a=[];for(var d=0;d<E.length;d++)window[_.MediaKeys].isTypeSupported(r,E[d].contentType)&&a.push(E[d])}if(!(!i&&!a||i&&0===i.length||a&&0===a.length)){t=!0;var c=new m.default(i,a),f=g.getKeySystemBySystemString(r);y.trigger(S.KEY_SYSTEM_ACCESS_COMPLETE,{data:new M.default(f,c)});break}}t||y.trigger(S.KEY_SYSTEM_ACCESS_COMPLETE,{error:"Key system access denied! -- No valid audio/video content configurations detected!"})},getKeySystem:function(){return E},selectKeySystem:function(e){try{l=e.mediaKeys=new window[_.MediaKeys](e.keySystem.systemString),E=e.keySystem,d=e,s&&f(),y.trigger(S.INTERNAL_KEY_SYSTEM_SELECTED)}catch(e){y.trigger(S.INTERNAL_KEY_SYSTEM_SELECTED,{error:"Error selecting keys system ("+E.systemString+")! Could not create MediaKeys -- TODO"})}},setMediaElement:function(e){s!==e&&(s&&s.removeEventListener(_.needkey,i),(s=e)&&(s.addEventListener(_.needkey,i),l&&f()))},createKeySession:function(e,t,n,r){if(!E||!l||!d)throw new Error("Can not create sessions until you have selected a key system");var s=null;if(d.ksConfiguration.videoCapabilities&&0<d.ksConfiguration.videoCapabilities.length&&(s=d.ksConfiguration.videoCapabilities[0]),null===s&&d.ksConfiguration.audioCapabilities&&0<d.ksConfiguration.audioCapabilities.length&&(s=d.ksConfiguration.audioCapabilities[0]),null===s)throw new Error("Can not create sessions for unknown content types.");var i=s.contentType,a=l.createSession(i,new Uint8Array(e),r?new Uint8Array(r):null),o={session:a,initData:e,getSessionID:function(){return this.session.sessionId},getExpirationTime:function(){return NaN},getSessionType:function(){return"temporary"},handleEvent:function(e){switch(e.type){case _.error:y.trigger(S.KEY_ERROR,{data:new R.default(h.default.MEDIA_KEYERR_CODE,"KeyError",this)});break;case _.message:var t=ArrayBuffer.isView(e.message)?e.message.buffer:e.message;y.trigger(S.INTERNAL_KEY_MESSAGE,{data:new D.default(this,t,e.destinationURL)});break;case _.ready:u.debug("DRM: Key added."),y.trigger(S.KEY_ADDED);break;case _.close:u.debug("DRM: Session closed. SessionID = "+this.getSessionID()),y.trigger(S.KEY_SESSION_CLOSED,{data:this.getSessionID()})}}};a.addEventListener(_.error,o),a.addEventListener(_.message,o),a.addEventListener(_.ready,o),a.addEventListener(_.close,o),c.push(o),u.debug("DRM: Session created. SessionID = "+o.getSessionID()),y.trigger(S.KEY_SESSION_CREATED,{data:o})},updateKeySession:function(e,t){var n=e.session;g.isClearKey(E)?n.update(new Uint8Array(t.toJWK())):n.update(new Uint8Array(t))},closeKeySession:o,setServerCertificate:function(){},loadKeySession:function(){},removeKeySession:function(){},stop:a,reset:a},u=n.getLogger(r),c=[],g=(d=l=E=s=null,p.default)(t).getInstance(),i={handleEvent:function(e){switch(e.type){case _.needkey:var t;e.initData&&(t=ArrayBuffer.isView(e.initData)?e.initData.buffer:e.initData,y.trigger(S.NEED_KEY,{key:new v.default(t,"cenc")}))}}},r}s.__dashjs_factory_name="ProtectionModel_3Feb2014",n.default=dashjs.FactoryMaker.getClassFactory(s),t.exports=n.default},{13:13,22:22,24:24,25:25,27:27,28:28,8:8}],17:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(n,"__esModule",{value:!0});var a=r(e(23)),o=r(e(21));function s(){return{getServerURLFromMessage:function(e,t){var n=JSON.parse(String.fromCharCode.apply(null,new Uint8Array(t)));e+="/?";for(var r=0;r<n.kids.length;r++)e+=n.kids[r]+"&";return e=e.substring(0,e.length-1)},getHTTPMethod:function(){return"GET"},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],s=r.kid.replace(/=/g,""),i=r.k.replace(/=/g,"");t.push(new a.default(s,i))}return new o.default(t)},getErrorResponse:function(e){return String.fromCharCode.apply(null,new Uint8Array(e))}}}s.__dashjs_factory_name="ClearKey",n.default=dashjs.FactoryMaker.getSingletonFactory(s),t.exports=n.default},{21:21,23:23}],18:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r,s=e(3),i=(r=s)&&r.__esModule?r:{default:r};function a(e){var n=(e=e||{}).BASE64,r={};r[i.default.WIDEVINE_KEYSTEM_STRING]={responseType:"json",getLicenseMessage:function(e){return n.decodeArray(e.license)},getErrorResponse:function(e){return e}},r[i.default.PLAYREADY_KEYSTEM_STRING]={responseType:"arraybuffer",getLicenseMessage:function(e){return e},getErrorResponse:function(e){return String.fromCharCode.apply(null,new Uint8Array(e))}};return{getServerURLFromMessage:function(e){return e},getHTTPMethod:function(){return"POST"},getResponseType:function(e){return r[e].responseType},getLicenseMessage:function(e,t){return function(){if(!n||!n.hasOwnProperty("decodeArray"))throw new Error("Missing config parameter(s)")}(),r[t].getLicenseMessage(e)},getErrorResponse:function(e,t){return r[t].getErrorResponse(e)}}}a.__dashjs_factory_name="DRMToday",n.default=dashjs.FactoryMaker.getSingletonFactory(a),t.exports=n.default},{3:3}],19:[function(e,t,n){"use strict";function r(){var S="http://schemas.xmlsoap.org/soap/envelope/";function _(e){var t=String.fromCharCode.apply(null,new Uint8Array(e));return decodeURIComponent(escape(t))}return{getServerURLFromMessage:function(e){return e},getHTTPMethod:function(){return"POST"},getResponseType:function(){return"arraybuffer"},getLicenseMessage:function(e){return function(e){if(window.DOMParser){var t=_(e),n=(new window.DOMParser).parseFromString(t,"text/xml"),r=n?n.getElementsByTagNameNS(S,"Envelope")[0]:null,s=r?r.getElementsByTagNameNS(S,"Body")[0]:null;if(s?s.getElementsByTagNameNS(S,"Fault")[0]:null)return null}return e}.call(this,e)},getErrorResponse:function(e){return function(e){var t="",n="",r="",s=-1,i=-1;if(window.DOMParser){var a=_(e),o=(new window.DOMParser).parseFromString(a,"text/xml"),u=o?o.getElementsByTagNameNS(S,"Envelope")[0]:null,E=u?u.getElementsByTagNameNS(S,"Body")[0]:null,l=E?E.getElementsByTagNameNS(S,"Fault")[0]:null,d=l?l.getElementsByTagName("detail")[0]:null,c=d?d.getElementsByTagName("Exception")[0]:null,f=null;if(null===l)return a;t=(f=l.getElementsByTagName("faultstring")[0].firstChild)?f.nodeValue:null,null!==c&&(n=(f=c.getElementsByTagName("StatusCode")[0])?f.firstChild.nodeValue:null,s=(r=(f=c.getElementsByTagName("Message")[0])?f.firstChild.nodeValue:null)?r.lastIndexOf("[")+1:-1,i=r?r.indexOf("]"):-1,r=r?r.substring(s,i):"")}var y="code: "+n+", name: "+t;return r&&(y+=", message: "+r),y}.call(this,e)}}}Object.defineProperty(n,"__esModule",{value:!0}),r.__dashjs_factory_name="PlayReady",n.default=dashjs.FactoryMaker.getSingletonFactory(r),t.exports=n.default},{}],20:[function(e,t,n){"use strict";function r(){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))}}}Object.defineProperty(n,"__esModule",{value:!0}),r.__dashjs_factory_name="Widevine",n.default=dashjs.FactoryMaker.getSingletonFactory(r),t.exports=n.default},{}],21:[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)}}Object.defineProperty(n,"__esModule",{value:!0});var s=(function(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}(i,[{key:"toJWK",value:function(){for(var e=void 0,t=this.keyPairs.length,n={keys:[]},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 s=JSON.stringify(n),i=s.length,a=new ArrayBuffer(i),o=new Uint8Array(a);for(e=0;e<i;e++)o[e]=s.charCodeAt(e);return a}}]),i);function i(e,t){if(!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i),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}n.default=s,t.exports=n.default},{}],22:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});n.default=function e(t,n,r,s){!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=s||"license-request"},t.exports=n.default},{}],23:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});n.default=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},t.exports=n.default},{}],24:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});n.default=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},t.exports=n.default},{}],25:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});n.default=function e(t,n,r,s,i){!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=s,this.sessionTypes=i},t.exports=n.default},{}],26:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});n.default=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},t.exports=n.default},{}],27:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});n.default=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},t.exports=n.default},{}],28:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});n.default=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},t.exports=n.default},{}]},{},[5])(5)});
//# sourceMappingURL=dash.protection.min.js.map