shaka-player
Version:
DASH/EME video player library
105 lines (101 loc) • 95.8 kB
JavaScript
(function(){var g={};
(function(window){var l,aa=this;function n(a,b){var c=a.split("."),d=aa;c[0]in d||!d.execScript||d.execScript("var "+c[0]);for(var e;c.length&&(e=c.shift());)c.length||void 0===b?d[e]?d=d[e]:d=d[e]={}:d[e]=b}function p(a,b){function c(){}c.prototype=b.prototype;a.Bb=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.Ab=function(a,c,f){return b.prototype[c].apply(a,Array.prototype.slice.call(arguments,2))}};/*
Copyright 2015 Google Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
function ba(){};function ca(a){var b=console[a];b?b.bind||(console[a]=function(){b.apply(console,arguments)}):console[a]=function(){}}ca("error");ca("warn");ca("info");ca("log");ca("debug");function da(a){ea[a]={ha:fa(),end:NaN}}function ga(a){if(a=ea[a])a.end=fa()}function ha(a){return(a=ea[a])&&a.end?a.end-a.ha:NaN}var fa=window.performance&&window.performance.now?window.performance.now.bind(window.performance):Date.now,ea={};function ia(a,b,c){this.id=a;this.bandwidth=b||0;this.lang=c||"unknown";this.active=!1}n("shaka.player.AudioTrack.compare",function(a,b){return a.lang<b.lang?-1:a.lang>b.lang?1:a.bandwidth<b.bandwidth?-1:a.bandwidth>b.bandwidth?1:0});function ja(){this.minBandwidth=this.maxBandwidth=this.maxWidth=this.minHeight=this.maxHeight=null}ja.prototype.clone=function(){var a=new ja;a.maxHeight=this.maxHeight;a.minHeight=this.minHeight;a.maxWidth=this.maxWidth;a.maxBandwidth=this.maxBandwidth;a.minBandwidth=this.minBandwidth;return a};function r(){this.fontSize="100%";this.fontColor=ka;this.fontOpacity=la;this.backgroundColor=ma;this.backgroundOpacity=la;this.fontEdge=na}n("shaka.player.TextStyle",r);r.prototype.a=function(){var a=window.localStorage.getItem("ShakaPlayerTextStyle");if(a){var b;try{b=JSON.parse(a)}catch(c){return}if(b&&"object"==typeof b){var a=b,d;for(d in a)d in this&&(this[d]=a[d])}}};r.prototype.load=r.prototype.a;r.prototype.b=function(){window.localStorage.setItem("ShakaPlayerTextStyle",JSON.stringify(this))};
r.prototype.store=r.prototype.b;function oa(a){var b=[];b.push("font-size: "+a.fontSize);b.push("color: "+pa(a.fontColor,a.fontOpacity));b.push("background-color: "+pa(a.backgroundColor,a.backgroundOpacity));for(var c=[],d=0;d<a.fontEdge.length;++d){var e=a.fontEdge[d].slice(3,6);c.push(pa(a.fontEdge[d].slice(0,3),a.fontOpacity)+" "+e.join("px ")+"px")}b.push("text-shadow: "+c.join(","));return b.join("; ")}function pa(a,b){return"rgba("+a.concat(b).join(",")+")"}var ka=[255,255,255],ma=[0,0,0];
r.StandardColors={WHITE:ka,BLACK:ma,RED:[255,0,0],GREEN:[0,255,0],BLUE:[0,0,255],YELLOW:[255,255,0],MAGENTA:[255,0,255],CYAN:[0,255,255]};var la=1;r.StandardOpacities={OPAQUE:la,SEMI_HIGH:.75,SEMI_LOW:.25,TRANSPARENT:0};var na=[];
r.EdgeStyles={NONE:na,RAISED:[[34,34,34,1,1,0],[34,34,34,2,2,0],[34,34,34,3,3,0]],DEPRESSED:[[204,204,204,1,1,0],[204,204,204,0,1,0],[34,34,34,-1,-1,0],[34,34,34,0,-1,0]],UNIFORM:[[34,34,34,0,0,4],[34,34,34,0,0,4],[34,34,34,0,0,4],[34,34,34,0,0,4]],DROP:[[34,34,34,2,2,3],[34,34,34,2,2,4],[34,34,34,2,2,5]]};function qa(a,b){this.id=a;this.lang=b||"unknown";this.enabled=this.active=!1}n("shaka.player.TextTrack.compare",function(a,b){return a.lang<b.lang?-1:a.lang>b.lang?1:0});function ra(a,b,c,d){this.id=a;this.bandwidth=b||0;this.width=c||0;this.height=d||0;this.active=!1}function sa(a,b){var c=a.width*a.height,d=b.width*b.height;return c<d?-1:c>d?1:a.bandwidth<b.bandwidth?-1:a.bandwidth>b.bandwidth?1:0}n("shaka.player.VideoTrack.compare",sa);function ta(){var a="CustomEvent"in window;if(a)try{new CustomEvent("")}catch(b){a=!1}a||(window.CustomEvent=ua)}n("shaka.polyfill.CustomEvent.install",ta);function ua(a,b){var c=document.createEvent("CustomEvent"),d=b||{bubbles:!1,cancelable:!1,detail:null};c.initCustomEvent(a,!!d.bubbles,!!d.cancelable,d.detail);return c};function va(){var a=Element.prototype;a.requestFullscreen=a.requestFullscreen||a.mozRequestFullScreen||a.msRequestFullscreen||a.webkitRequestFullscreen;a=Document.prototype;a.exitFullscreen=a.exitFullscreen||a.mozCancelFullScreen||a.msExitFullscreen||a.webkitExitFullscreen;"fullscreenElement"in document||Object.defineProperty(document,"fullscreenElement",{get:function(){return document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement}});document.addEventListener("webkitfullscreenchange",
wa);document.addEventListener("webkitfullscreenerror",wa);document.addEventListener("mozfullscreenchange",wa);document.addEventListener("mozfullscreenerror",wa);document.addEventListener("MSFullscreenChange",wa);document.addEventListener("MSFullscreenError",wa)}n("shaka.polyfill.Fullscreen.install",va);function wa(a){var b=a.type.replace(/^(webkit|moz|MS)/,"").toLowerCase(),b=new Event(b,a);a.target.dispatchEvent(b)};function xa(){return Promise.reject(Error("The key system specified is not supported."))}function ya(a){return null==a?Promise.resolve():Promise.reject(Error("MediaKeys not supported."))}function za(){throw new TypeError("Illegal constructor.");}za.prototype.createSession=function(){};za.prototype.setServerCertificate=function(){};function Aa(){throw new TypeError("Illegal constructor.");}Aa.prototype.getConfiguration=function(){};Aa.prototype.createMediaKeys=function(){};function t(a){this.c=[];this.b=[];this.V=Ba;if(a)try{a(this.R.bind(this),this.a.bind(this))}catch(b){this.a(b)}}var Ba=0;function Ca(){window.Promise||(window.Promise=t,window.Promise.resolve=Da,window.Promise.reject=Ea,window.Promise.all=Fa,window.Promise.race=Ga,window.setImmediate?(Ha=function(a){return window.setImmediate(a)},Ia=function(a){return window.clearImmediate(a)}):(Ha=function(a){return window.setTimeout(a,0)},Ia=function(a){return window.clearTimeout(a)}))}
n("shaka.polyfill.Promise.install",Ca);function Da(a){var b=new t;b.R(a);return b}function Ea(a){var b=new t;b.a(a);return b}function Fa(a){function b(a,b,c){a.V==Ba&&(e[b]=c,d++,d==e.length&&a.R(e))}var c=new t;if(!a.length)return c.R([]),c;for(var d=0,e=Array(a.length),f=c.a.bind(c),g=0;g<a.length;++g)a[g]&&a[g].then?a[g].then(b.bind(null,c,g),f):b(c,g,a[g]);return c}function Ga(a){for(var b=new t,c=b.R.bind(b),d=b.a.bind(b),e=0;e<a.length;++e)a[e]&&a[e].then?a[e].then(c,d):c(a[e]);return b}
t.prototype.then=function(a,b){var c=new t;switch(this.V){case 1:Ja(this,c,a);break;case 2:Ja(this,c,b);break;case Ba:this.c.push({va:c,pa:a}),this.b.push({va:c,pa:b})}return c};t.prototype.then=t.prototype.then;t.prototype.catch=function(a){return this.then(void 0,a)};t.prototype["catch"]=t.prototype.catch;t.prototype.R=function(a){if(this.V==Ba){this.na=a;this.V=1;for(a=0;a<this.c.length;++a)Ja(this,this.c[a].va,this.c[a].pa);this.c=[];this.b=[]}};
t.prototype.a=function(a){if(this.V==Ba){this.na=a;this.V=2;for(a=0;a<this.b.length;++a)Ja(this,this.b[a].va,this.b[a].pa);this.c=[];this.b=[]}};function Ja(a,b,c){Ka.push(function(){if(c&&"function"==typeof c){try{var a=c(this.na)}catch(e){b.a(e);return}a instanceof t?a==b?b.a(new TypeError("Chaining cycle detected")):a.then(b.R.bind(b),b.a.bind(b)):b.R(a)}else 1==this.V?b.R(this.na):b.a(this.na)}.bind(a));null==La&&(La=Ha(Ma))}
function Ma(){for(;Ka.length;){null!=La&&(Ia(La),La=null);var a=Ka;Ka=[];for(var b=0;b<a.length;++b)a[b]()}}function Ha(){return 0}function Ia(){}var La=null,Ka=[];function Na(){var a=HTMLVideoElement.prototype;!a.getVideoPlaybackQuality&&"webkitDroppedFrameCount"in a&&(a.getVideoPlaybackQuality=Oa)}n("shaka.polyfill.VideoPlaybackQuality.install",Na);function Oa(){return{droppedVideoFrames:this.webkitDroppedFrameCount,totalVideoFrames:this.webkitDecodedFrameCount,corruptedVideoFrames:0,creationTime:NaN,totalFrameDelay:0}};function Pa(a,b){for(var c=[],d=0;d<a.length;++d){for(var e=!1,f=0;f<c.length&&!(e=b?b(a[d],c[f]):a[d]===c[f]);++f);e||c.push(a[d])}return c};function u(){return Date.now()+Qa}var Qa=0;function Ra(a){this.b=a;this.c=0==Sa;this.a=0}var Sa=1;function Ta(a){var b=a.b.getUint32(a.a,a.c);a.a+=4;return b}function Ua(a){if(a.a+16>a.b.byteLength)throw new RangeError("DataViewReader: Read past end of DataView.");var b=new Uint8Array(a.b.buffer,a.a,16);a.a+=16;return b}function Va(a,b){if(a.a+b>a.b.byteLength)throw new RangeError("DataViewReader: Skip past end of DataView.");a.a+=b};var Wa={"output-restricted":"The required output protection is not available.","output-not-allowed":"The required output protection is not available.",expired:"The decryption key has expired.","internal-error":"The key system has encountered an unspecified error."};function Xa(a){this.c=Math.exp(Math.log(.5)/a);this.a=this.b=0}Xa.prototype.sample=function(a,b){var c=Math.pow(this.c,a);this.b=b*(1-c)+c*this.b;this.a+=a};function Ya(a){return a.b/(1-Math.pow(a.c,a.a))};function v(a){var b=new CustomEvent(a.type,{detail:a.detail,bubbles:!!a.bubbles}),c;for(c in a)c in b||(b[c]=a[c]);return b}function x(a){return new CustomEvent("error",{detail:a,bubbles:!0})};function Za(a,b,c){$a(b);$a(c);return c==b||a>=ab&&c==b.split("-")[0]||a>=bb&&c.split("-")[0]==b.split("-")[0]?!0:!1}var ab=1,bb=2;function $a(a){a=a.toLowerCase().split("-");var b=cb[a[0]];b&&(a[0]=b);return a.join("-")}
var cb={aar:"aa",abk:"ab",afr:"af",aka:"ak",alb:"sq",amh:"am",ara:"ar",arg:"an",arm:"hy",asm:"as",ava:"av",ave:"ae",aym:"ay",aze:"az",bak:"ba",bam:"bm",baq:"eu",bel:"be",ben:"bn",bih:"bh",bis:"bi",bod:"bo",bos:"bs",bre:"br",bul:"bg",bur:"my",cat:"ca",ces:"cs",cha:"ch",che:"ce",chi:"zh",chu:"cu",chv:"cv",cor:"kw",cos:"co",cre:"cr",cym:"cy",cze:"cs",dan:"da",deu:"de",div:"dv",dut:"nl",dzo:"dz",ell:"el",eng:"en",epo:"eo",est:"et",eus:"eu",ewe:"ee",fao:"fo",fas:"fa",fij:"fj",fin:"fi",fra:"fr",fre:"fr",
fry:"fy",ful:"ff",geo:"ka",ger:"de",gla:"gd",gle:"ga",glg:"gl",glv:"gv",gre:"el",grn:"gn",guj:"gu",hat:"ht",hau:"ha",heb:"he",her:"hz",hin:"hi",hmo:"ho",hrv:"hr",hun:"hu",hye:"hy",ibo:"ig",ice:"is",ido:"io",iii:"ii",iku:"iu",ile:"ie",ina:"ia",ind:"id",ipk:"ik",isl:"is",ita:"it",jav:"jv",jpn:"ja",kal:"kl",kan:"kn",kas:"ks",kat:"ka",kau:"kr",kaz:"kk",khm:"km",kik:"ki",kin:"rw",kir:"ky",kom:"kv",kon:"kg",kor:"ko",kua:"kj",kur:"ku",lao:"lo",lat:"la",lav:"lv",lim:"li",lin:"ln",lit:"lt",ltz:"lb",lub:"lu",
lug:"lg",mac:"mk",mah:"mh",mal:"ml",mao:"mi",mar:"mr",may:"ms",mkd:"mk",mlg:"mg",mlt:"mt",mon:"mn",mri:"mi",msa:"ms",mya:"my",nau:"na",nav:"nv",nbl:"nr",nde:"nd",ndo:"ng",nep:"ne",nld:"nl",nno:"nn",nob:"nb",nor:"no",nya:"ny",oci:"oc",oji:"oj",ori:"or",orm:"om",oss:"os",pan:"pa",per:"fa",pli:"pi",pol:"pl",por:"pt",pus:"ps",que:"qu",roh:"rm",ron:"ro",rum:"ro",run:"rn",rus:"ru",sag:"sg",san:"sa",sin:"si",slk:"sk",slo:"sk",slv:"sl",sme:"se",smo:"sm",sna:"sn",snd:"sd",som:"so",sot:"st",spa:"es",sqi:"sq",
srd:"sc",srp:"sr",ssw:"ss",sun:"su",swa:"sw",swe:"sv",tah:"ty",tam:"ta",tat:"tt",tel:"te",tgk:"tg",tgl:"tl",tha:"th",tib:"bo",tir:"ti",ton:"to",tsn:"tn",tso:"ts",tuk:"tk",tur:"tr",twi:"tw",uig:"ug",ukr:"uk",urd:"ur",uzb:"uz",ven:"ve",vie:"vi",vol:"vo",wel:"cy",wln:"wa",wol:"wo",xho:"xh",yid:"yi",yor:"yo",zha:"za",zho:"zh",zul:"zu"};function db(a){return Object.keys(a).map(function(b){return a[b]})}function eb(a,b){return fb(a,b,"boolean")}function gb(a,b){var c=fb(a,b,"number");if(null==c)return null;if(isNaN(c)||c==Number.NEGATIVE_INFINITY||c==Number.POSITIVE_INFINITY)throw new RangeError("'"+b+"' must be finite.");if(0>c)throw new RangeError("'"+b+"' must be >= 0");return c}function y(a,b){return fb(a,b,"string")}
function fb(a,b,c){a=a[b];if(null==a)return null;if(typeof a!=c)throw new TypeError("'"+b+"' must be a "+c+".");return a}function hb(a,b,c){a=a[b];if(null==a)return null;if(!(a instanceof c))throw new TypeError("'"+b+"' must be an instance of "+c.name+".");return a};function z(){this.a={}}z.prototype.push=function(a,b){this.a.hasOwnProperty(a)?this.a[a].push(b):this.a[a]=[b]};z.prototype.set=function(a,b){this.a[a]=b};z.prototype.get=function(a){return(a=this.a[a])?a.slice():null};function ib(a){var b=[],c;for(c in a.a)b.push.apply(b,a.a[c]);return b}function jb(a,b,c){if(a=a.a[b])for(b=0;b<a.length;++b)a[b]==c&&(a.splice(b,1),--b)}function A(a){var b=[],c;for(c in a.a)b.push(c);return b};function B(){this.a=new z}B.prototype.destroy=function(){kb(this);this.a=null};function D(a,b,c,d){b=new lb(b,c,d);a.a.push(c,b)}B.prototype.la=function(a,b){for(var c=this.a.get(b)||[],d=0;d<c.length;++d){var e=c[d];e.target==a&&(e.la(),jb(this.a,b,e))}};function kb(a){for(var b=ib(a.a),c=0;c<b.length;++c)b[c].la();a.a.a={}}function lb(a,b,c){this.target=a;this.type=b;this.a=c;this.target.addEventListener(b,c,!1)}
lb.prototype.la=function(){this.target&&(this.target.removeEventListener(this.type,this.a,!1),this.a=this.target=null)};function E(a){this.oa=new z;this.G=a}n("shaka.util.FakeEventTarget",E);E.prototype.addEventListener=function(a,b,c){c||this.oa.push(a,b)};E.prototype.removeEventListener=function(a,b,c){c||jb(this.oa,a,b)};
E.prototype.dispatchEvent=function(a){a.hasOwnProperty("srcElement")||(delete a.srcElement,Object.defineProperty(a,"srcElement",{get:function(){return null}}));if(a.hasOwnProperty("target"))a.target=this;else{delete a.target;var b=this;Object.defineProperty(a,"target",{get:function(){return b},set:function(a){b=a}})}if(a.hasOwnProperty("currentTarget"))a.currentTarget=null;else{delete a.currentTarget;var c=null;Object.defineProperty(a,"currentTarget",{get:function(){return c},set:function(a){c=a}})}return mb(this,
a)};function mb(a,b){b.currentTarget=a;for(var c=a.oa.get(b.type)||[],d=0;d<c.length;++d){var e=c[d];try{e.handleEvent?e.handleEvent(b):e.call(a,b)}catch(f){}}a.G&&b.bubbles&&mb(a.G,b);return b.defaultPrevented};function nb(){E.call(this,null);this.a=new Xa(3);this.c=new Xa(10);this.b=0}p(nb,E);n("shaka.util.EWMABandwidthEstimator",nb);nb.prototype.sample=function(a,b){if(!(65536>b)){a=Math.max(a,50);var c=8E3*b/a,d=a/1E3;this.a.sample(d,c);this.c.sample(d,c);this.dispatchEvent(v({type:"bandwidth"}));this.b=Date.now()}};nb.prototype.getBandwidth=function(){return.5>this.a.a?5E5:Math.min(Ya(this.a),Ya(this.c))};nb.prototype.getDataAge=function(){return(Date.now()-this.b)/1E3};
nb.prototype.supportsCaching=function(){return!1};function F(){var a,b,c=new Promise(function(c,e){a=c;b=e});c.resolve=a;c.reject=b;c.destroy=F.prototype.destroy;return c}F.prototype.destroy=function(){this.catch(function(){});var a=Error("Destroyed!");a.type="destroy";this.reject(a)};function ob(a){a.split("").reduce(function(a,c,d){return a+(d&&0==d%4?" "+c:c)})};function pb(){this.g=new F;this.f=!1;this.a=null;this.b=[];this.c=null}function qb(a,b){if(a.f)throw Error("Cannot append to a running task!");a.b.push(b)}pb.prototype.start=function(){if(this.f)throw Error("Task already started!");this.f=!0;this.b.unshift(function(){});rb(this,void 0)};pb.prototype.end=function(){this.b.splice(1)};
function rb(a,b){var c=a.b[0](b),d;c?(d=c[0],a.c=c[1]):(d=Promise.resolve(),a.c=null);d.then(G(a,function(a){this.a?(this.b=[],this.c=null,sb(this)):(this.b.shift(),this.b.length?rb(this,a):(this.g.resolve(a),this.c=null))})).catch(G(a,function(a){this.b=[];this.c=null;this.a?sb(this):this.g.reject(a)}))}function sb(a){var b=Error("Task aborted.");b.type="aborted";a.g.reject(b);window.setTimeout(function(){this.a.resolve();this.a=null}.bind(a),5)};function G(a,b){return b.bind(a)};function tb(a,b,c){MediaSource.isTypeSupported(b);b=a.addSourceBuffer(b);this.h=a;this.c=b;this.l=c;this.i=new B;this.G=null;this.b=[];this.u=0;this.f=this.a=null;this.o=0;D(this.i,this.c,"updateend",this.w.bind(this))}var ub=1/60;tb.prototype.destroy=function(){vb(this).catch(function(){});this.f&&this.f.destroy();this.b=this.a=this.f=null;this.i.destroy();this.h=this.c=this.i=null};
function wb(a,b){for(var c=a.c.buffered,d=0;d<c.length;++d){var e=c.start(d)-ub,f=c.end(d)+ub;if(b>=e&&b<=f)return c.end(d)-b}return 0}
function xb(a,b,c,d){if(a.a)return a=Error("Cannot fetch ("+a.j+"): previous operation not complete."),a.type="stream",Promise.reject(a);a.a=new pb;c!=a.c.timestampOffset&&(a.c.timestampOffset=c);d&&qb(a.a,function(){return[yb(this,d),this.g.bind(this)]}.bind(a));qb(a.a,function(){var a=b.a?b.a-b.b:1,c=new zb;c.a=3;c.h=1E3*a;c.c=1E3*this.o;c.j=this.G;return[Ab(b.url,c,this.l),H.prototype.j.bind(b.url)]}.bind(a));qb(a.a,G(a,function(a){this.l.getBandwidth();return[yb(this,a),this.g.bind(this)]}));
var e=0==a.c.buffered.length&&0==a.b.length,f=null;qb(a.a,function(){if(0==this.c.buffered.length){var a=Error("Failed to buffer segment ("+this.j+").");a.type="stream";return[Promise.reject(a)]}e&&(a=b.b,f=this.c.buffered.start(0)-a);a=Bb(this.b,b.b);0<=a?this.b.splice(a+1,0,b):this.b.push(b)}.bind(a));return Cb(a).then(function(){return Promise.resolve(f)}.bind(a))}
function Db(a){if(a.a)return a=Error("Cannot clear ("+a.j+"): previous operation not complete."),a.type="stream",Promise.reject(a);a.a=new pb;qb(a.a,function(){var a;a:if(0==this.c.buffered.length)a=Promise.resolve();else{try{this.c.remove(0,this.h.duration)}catch(c){a=Promise.reject(c);break a}this.b=[];a=this.f=new F}return[a,this.g.bind(this)]}.bind(a));return Cb(a)}
function Eb(a,b){if(a.a){var c=Error("Cannot clearAfter ("+a.j+"): previous operation not complete.");c.type="stream";return Promise.reject(c)}a.a=new pb;qb(a.a,function(){return[Fb(this,b),this.g.bind(this)]}.bind(a));return Cb(a)}function vb(a){a.a?(a=a.a,a.a?a=a.a:a.f?(a.c&&a.c(),a.a=new F,a=a.a):(a.f=!0,a=Promise.resolve())):a=Promise.resolve();return a}function Cb(a){a.a.start();return a.a.g.then(G(a,function(){this.a=null})).catch(G(a,function(a){this.a=null;return Promise.reject(a)}))}
function yb(a,b){try{a.c.appendBuffer(b)}catch(c){return Promise.reject(c)}a.f=new F;return a.f}function Fb(a,b){if(0==a.c.buffered.length)return Promise.resolve();var c=Bb(a.b,b);if(-1==c||c==a.b.length-1)return Promise.resolve();try{a.c.remove(a.b[c+1].b,a.h.duration)}catch(d){return Promise.reject(d)}a.b=a.b.slice(0,c+1);a.f=new F;return a.f}tb.prototype.g=function(){this.f&&"open"==this.h.readyState&&this.c.abort()};tb.prototype.w=function(){this.f&&(this.f.resolve(),this.f=null)};function Gb(a){return String.fromCharCode.apply(null,a)}n("shaka.util.Uint8ArrayUtils.toString",Gb);function Hb(a){for(var b=new Uint8Array(a.length),c=0;c<a.length;++c)b[c]=a.charCodeAt(c);return b}n("shaka.util.Uint8ArrayUtils.fromString",Hb);n("shaka.util.Uint8ArrayUtils.toBase64",function(a,b){var c=void 0==b?!0:b,d=window.btoa(Gb(a)).replace(/\+/g,"-").replace(/\//g,"_");return c?d:d.replace(/=*$/,"")});function Ib(a){return Hb(window.atob(a.replace(/-/g,"+").replace(/_/g,"/")))}
n("shaka.util.Uint8ArrayUtils.fromBase64",Ib);n("shaka.util.Uint8ArrayUtils.fromHex",function(a){for(var b=new Uint8Array(a.length/2),c=0;c<a.length;c+=2)b[c/2]=window.parseInt(a.substr(c,2),16);return b});function Jb(a){for(var b="",c=0;c<a.length;++c){var d=a[c].toString(16);1==d.length&&(d="0"+d);b+=d}return b}n("shaka.util.Uint8ArrayUtils.toHex",Jb);function Kb(a,b){if(!a&&!b)return!0;if(!a||!b||a.length!=b.length)return!1;for(var c=0;c<a.length;++c)if(a[c]!=b[c])return!1;return!0};function Lb(){this.h=this.a="";this.j=!1;this.u=this.o=null;this.i=this.g=!1;this.l=this.f="";this.c=null;this.b=[]}function Mb(a,b){var c=new Lb;c.a=a.a;c.h=a.h;c.j=a.j;c.o=a.o;c.u=a.u;c.g=a.g;c.i=a.i;c.f=a.f;c.l=a.l;c.c=a.c?new Uint8Array(a.c.buffer):null;Nb(c,a.b);Nb(c,b.b);return c}function Nb(a,b){var c=a.b.concat(b.map(function(a){return{initData:new Uint8Array(a.initData.buffer),initDataType:a.initDataType}}));a.b=Pa(c,Ob)}
function Ob(a,b){return a.initDataType==b.initDataType&&Kb(a.initData,b.initData)};function Pb(a,b){try{var c=new Qb(a,b);return Promise.resolve(c)}catch(d){return Promise.reject(d)}}function Rb(a){var b=this.mediaKeys;b&&b!=a&&Sb(b,null);delete this.mediaKeys;(this.mediaKeys=a)&&Sb(a,this);return Promise.resolve()}
function Qb(a,b){this.a=this.keySystem=a;var c=!0;"org.w3.clearkey"==a&&(this.a="webkit-org.w3.clearkey",c=!1);var d=!1,e;e=document.getElementsByTagName("video");e=e.length?e[0]:document.createElement("video");for(var f=0;f<b.length;++f){var g=b[f],h={audioCapabilities:[],videoCapabilities:[],persistentState:"optional",distinctiveIdentifier:"optional",initDataTypes:g.initDataTypes,sessionTypes:["temporary"]},k=!1;if(g.audioCapabilities)for(var m=0;m<g.audioCapabilities.length;++m){var q=g.audioCapabilities[m];
q.contentType&&(k=!0,e.canPlayType(q.contentType.split(";")[0],this.a)&&(h.audioCapabilities.push(q),d=!0))}if(g.videoCapabilities)for(m=0;m<g.videoCapabilities.length;++m)q=g.videoCapabilities[m],q.contentType&&(k=!0,e.canPlayType(q.contentType,this.a)&&(h.videoCapabilities.push(q),d=!0));k||(d=e.canPlayType("video/mp4",this.a)||e.canPlayType("video/webm",this.a));"required"==g.persistentState&&(c?(h.persistentState="required",h.sessionTypes=["persistent-license"]):d=!1);if(d){this.b=h;return}}c=
"Unsupported keySystem";if("org.w3.clearkey"==a||"com.widevine.alpha"==a)c="None of the requested configurations were supported.";c=Error(c);c.name="NotSupportedError";c.code=DOMException.NOT_SUPPORTED_ERR;throw c;}Qb.prototype.createMediaKeys=function(){var a=new Tb(this.a);return Promise.resolve(a)};Qb.prototype.getConfiguration=function(){return this.b};function Tb(a){this.g=a;this.b=null;this.a=new B;this.c=[];this.f={}}
function Sb(a,b){a.b=b;kb(a.a);b&&(D(a.a,b,"webkitneedkey",a.wb.bind(a)),D(a.a,b,"webkitkeymessage",a.vb.bind(a)),D(a.a,b,"webkitkeyadded",a.tb.bind(a)),D(a.a,b,"webkitkeyerror",a.ub.bind(a)))}l=Tb.prototype;l.createSession=function(a){var b=a||"temporary";if("temporary"!=b&&"persistent-license"!=b)throw new TypeError("Session type "+a+" is unsupported on this platform.");a=this.b||document.createElement("video");a.src||(a.src="about:blank");b=new Ub(a,this.g,b);this.c.push(b);return b};
l.setServerCertificate=function(){return Promise.reject(Error("setServerCertificate not supported on this platform."))};l.wb=function(a){a=v({type:"encrypted",initDataType:"webm",initData:a.initData});this.b.dispatchEvent(a)};l.vb=function(a){var b=Vb(this,a.sessionId);b&&(a=v({type:"message",messageType:void 0==b.keyStatuses.sa()?"licenserequest":"licenserenewal",message:a.message}),b.b&&(b.b.resolve(),b.b=null),b.dispatchEvent(a))};
l.tb=function(a){if(a=Vb(this,a.sessionId))Wb(a,"usable"),a.a&&a.a.resolve(),a.a=null};
l.ub=function(a){var b=Vb(this,a.sessionId);if(b){var c=Error("EME v0.1b key error");c.errorCode=a.errorCode;c.errorCode.systemCode=a.systemCode;!a.sessionId&&b.b?(c.method="generateRequest",45==a.systemCode&&(c.message="Unsupported session type."),b.b.reject(c),b.b=null):a.sessionId&&b.a?(c.method="update",b.a.reject(c),b.a=null):(c=a.systemCode,a.errorCode.code==MediaKeyError.MEDIA_KEYERR_OUTPUT?Wb(b,"output-restricted"):1==c?Wb(b,"expired"):Wb(b,"internal-error"))}};
function Vb(a,b){var c=a.f[b];return c?c:(c=a.c.shift())?(c.sessionId=b,a.f[b]=c):null}function Ub(a,b,c){E.call(this,null);this.f=a;this.h=!1;this.a=this.b=null;this.c=b;this.g=c;this.sessionId="";this.expiration=NaN;this.closed=new F;this.keyStatuses=new Xb}p(Ub,E);
function Yb(a,b,c){if(a.h)return Promise.reject(Error("The session is already initialized."));a.h=!0;var d;try{if("persistent-license"==a.g)if(c)d=Hb("LOAD_SESSION|"+c);else{var e=new Uint8Array(b);d=Hb("PERSISTENT|"+Gb(e))}else d=new Uint8Array(b)}catch(f){return Promise.reject(f)}a.b=new F;try{a.f.webkitGenerateKeyRequest(a.c,d)}catch(g){if("InvalidStateError"!=g.name)return a.b=null,Promise.reject(g);setTimeout(function(){try{this.f.webkitGenerateKeyRequest(this.c,d)}catch(a){this.b.reject(a),
this.b=null}}.bind(a),10)}return a.b}l=Ub.prototype;l.Aa=function(a,b){if(this.a)this.a.then(this.Aa.bind(this,a,b)).catch(this.Aa.bind(this,a,b));else{this.a=a;var c,d;"webkit-org.w3.clearkey"==this.c?(c=Gb(new Uint8Array(b)),d=JSON.parse(c),"oct"!=d.keys[0].kty&&(this.a.reject(Error("Response is not a valid JSON Web Key Set.")),this.a=null),c=Ib(d.keys[0].k),d=Ib(d.keys[0].kid)):(c=new Uint8Array(b),d=null);try{this.f.webkitAddKey(this.c,c,d,this.sessionId)}catch(e){this.a.reject(e),this.a=null}}};
function Wb(a,b){a.keyStatuses.xa(b);var c=v({type:"keystatuseschange"});a.dispatchEvent(c)}l.generateRequest=function(a,b){return Yb(this,b,null)};l.load=function(a){return"persistent-license"==this.g?Yb(this,null,a):Promise.reject(Error("Not a persistent session."))};l.update=function(a){var b=new F;this.Aa(b,a);return b};
l.close=function(){if("persistent-license"!=this.g){if(!this.sessionId)return this.closed.reject(Error("The session is not callable.")),this.closed;this.f.webkitCancelKeyRequest(this.c,this.sessionId)}this.closed.resolve();return this.closed};l.remove=function(){return"persistent-license"!=this.g?Promise.reject(Error("Not a persistent session.")):this.close()};function Xb(){this.size=0;this.a=void 0}var Zb;l=Xb.prototype;l.xa=function(a){this.size=void 0==a?0:1;this.a=a};l.sa=function(){return this.a};
l.forEach=function(a){this.a&&a(Zb,this.a)};l.get=function(a){if(this.has(a))return this.a};l.has=function(a){var b=Zb;return this.a&&Kb(new Uint8Array(a),new Uint8Array(b))?!0:!1};function $b(a){this.systemIds=[];this.cencKeyIds=[];this.a=[];a=new Ra(new DataView(a.buffer));try{for(;a.a<a.b.byteLength;){var b=a.a,c=Ta(a),d=Ta(a);if(1==c){var e=a,f=void 0,g=void 0;e.c?(f=e.b.getUint32(e.a,!0),g=e.b.getUint32(e.a+4,!0)):(g=e.b.getUint32(e.a,!1),f=e.b.getUint32(e.a+4,!1));if(2097151<g)throw new RangeError("DataViewReader: Overflow reading 64-bit value.");e.a+=8;c=g*Math.pow(2,32)+f}else 0==c&&(c=a.b.byteLength-b);if(1886614376!=d)Va(a,c-(a.a-b));else{var h,e=a,k=e.b.getUint8(e.a);
e.a+=1;h=k;if(1<h)Va(a,c-(a.a-b));else{Va(a,3);var m=Jb(Ua(a)),e=[];if(0<h)for(var q=Ta(a),f=0;f<q;++f){var w=Jb(Ua(a));e.push(w)}var C=Ta(a);Va(a,C);this.cencKeyIds.push.apply(this.cencKeyIds,e);this.systemIds.push(m);this.a.push({start:b,end:a.a-1});a.a!=b+c&&Va(a,c-(a.a-b))}}}}catch(V){}};function ac(a,b){try{var c=new bc(a,b);return Promise.resolve(c)}catch(d){return Promise.reject(d)}}
function bc(a,b){this.keySystem=a;for(var c=!1,d=0;d<b.length;++d){var e=b[d],f={audioCapabilities:[],videoCapabilities:[],persistentState:"optional",distinctiveIdentifier:"optional",initDataTypes:e.initDataTypes,sessionTypes:["temporary"]},g=!1;if(e.audioCapabilities)for(var h=0;h<e.audioCapabilities.length;++h){var k=e.audioCapabilities[h];if(k.contentType){var g=!0,m=k.contentType.split(";")[0];MSMediaKeys.isTypeSupported(this.keySystem,m)&&(f.audioCapabilities.push(k),c=!0)}}if(e.videoCapabilities)for(h=
0;h<e.videoCapabilities.length;++h)k=e.videoCapabilities[h],k.contentType&&(g=!0,m=k.contentType.split(";")[0],MSMediaKeys.isTypeSupported(this.keySystem,m)&&(f.videoCapabilities.push(k),c=!0));g||(c=MSMediaKeys.isTypeSupported(this.keySystem,"video/mp4"));"required"==e.persistentState&&(f.persistentState="required",f.sessionTypes=["persistent-license"]);if(c){this.a=f;return}}c=Error("Unsupported keySystem");c.name="NotSupportedError";c.code=DOMException.NOT_SUPPORTED_ERR;throw c;}
bc.prototype.createMediaKeys=function(){var a=new cc(this.keySystem);return Promise.resolve(a)};bc.prototype.getConfiguration=function(){return this.a};function dc(a){var b=this.mediaKeys;b&&b!=a&&ec(b,null);delete this.mediaKeys;return(this.mediaKeys=a)?ec(a,this):Promise.resolve()}function cc(a){this.a=new MSMediaKeys(a);this.b=new B}cc.prototype.createSession=function(a){if("temporary"!=(a||"temporary"))throw new TypeError("Session type "+a+" is unsupported on this platform.");return new fc(this.a)};
cc.prototype.setServerCertificate=function(){return Promise.reject(Error("setServerCertificate not supported on this platform."))};function ec(a,b){function c(){b.msSetMediaKeys(d.a);b.removeEventListener("loadedmetadata",c)}kb(a.b);if(!b)return Promise.resolve();D(a.b,b,"msneedkey",gc);var d=a;try{return 1<=b.readyState?b.msSetMediaKeys(a.a):b.addEventListener("loadedmetadata",c),Promise.resolve()}catch(e){return Promise.reject(e)}}
function fc(a){E.call(this,null);this.c=null;this.g=a;this.b=this.a=null;this.f=new B;this.sessionId="";this.expiration=NaN;this.closed=new F;this.keyStatuses=new hc}p(fc,E);l=fc.prototype;l.generateRequest=function(a,b){this.a=new F;try{this.c=this.g.createSession("video/mp4",new Uint8Array(b),null),D(this.f,this.c,"mskeymessage",this.jb.bind(this)),D(this.f,this.c,"mskeyadded",this.hb.bind(this)),D(this.f,this.c,"mskeyerror",this.ib.bind(this)),ic(this,"status-pending")}catch(c){this.a.reject(c)}return this.a};
l.load=function(){return Promise.reject(Error("MediaKeySession.load not yet supported"))};l.update=function(a){this.b=new F;try{this.c.update(new Uint8Array(a))}catch(b){this.b.reject(b)}return this.b};l.close=function(){try{this.c.close(),this.closed.resolve(),kb(this.f)}catch(a){this.closed.reject(a)}return this.closed};l.remove=function(){return Promise.reject(Error("MediaKeySession.remove is only applicable for persistent licenses, which are not supported on this platform"))};
function gc(a){var b=a.initData;if(b){var c=new $b(b);if(1>=c.a.length)a=b;else{var d=[];for(a=0;a<c.a.length;a++)d.push(b.subarray(c.a[a].start,c.a[a].end+1));b=Pa(d,jc);for(a=c=0;a<b.length;a++)c+=b[a].length;c=new Uint8Array(c);for(a=d=0;a<b.length;a++)c.set(b[a],d),d+=b[a].length;a=c}}else a=b;a=v({type:"encrypted",initDataType:"cenc",initData:a});this.dispatchEvent(a)}function jc(a,b){return Kb(a,b)}
l.jb=function(a){this.a&&(this.a.resolve(),this.a=null);a=v({type:"message",messageType:void 0==this.keyStatuses.sa()?"licenserequest":"licenserenewal",message:a.message.buffer});this.dispatchEvent(a)};l.hb=function(){this.a?(this.a.resolve(),this.a=null):this.b&&(ic(this,"usable"),this.b.resolve(),this.b=null)};
l.ib=function(){var a=Error("EME v20140218 key error");a.errorCode=this.c.error;if(null!=this.a)this.a.reject(a),this.a=null;else if(null!=this.b)this.b.reject(a),this.b=null;else switch(this.c.error.code){case MSMediaKeyError.MS_MEDIA_KEYERR_OUTPUT:case MSMediaKeyError.MS_MEDIA_KEYERR_HARDWARECHANGE:ic(this,"output-not-allowed");default:ic(this,"internal-error")}};function ic(a,b){a.keyStatuses.xa(b);var c=v({type:"keystatuseschange"});a.dispatchEvent(c)}function hc(){this.size=0;this.a=void 0}var mc;
l=hc.prototype;l.xa=function(a){this.size=void 0==a?0:1;this.a=a};l.sa=function(){return this.a};l.forEach=function(a){this.a&&a(mc,this.a)};l.get=function(a){if(this.has(a))return this.a};l.has=function(a){var b=mc;return this.a&&Kb(new Uint8Array(a),new Uint8Array(b))?!0:!1};function nc(){Navigator.prototype.requestMediaKeySystemAccess&&MediaKeySystemAccess.prototype.getConfiguration||(HTMLMediaElement.prototype.webkitGenerateKeyRequest?(Zb=(new Uint8Array([0])).buffer,Navigator.prototype.requestMediaKeySystemAccess=Pb,delete HTMLMediaElement.prototype.mediaKeys,HTMLMediaElement.prototype.mediaKeys=null,HTMLMediaElement.prototype.setMediaKeys=Rb,window.MediaKeys=Tb,window.MediaKeySystemAccess=Qb):window.MSMediaKeys?(mc=(new Uint8Array([0])).buffer,delete HTMLMediaElement.prototype.mediaKeys,
HTMLMediaElement.prototype.mediaKeys=null,HTMLMediaElement.prototype.setMediaKeys=dc,window.MediaKeys=cc,window.MediaKeySystemAccess=bc,Navigator.prototype.requestMediaKeySystemAccess=ac):(Navigator.prototype.requestMediaKeySystemAccess=xa,delete HTMLMediaElement.prototype.mediaKeys,HTMLMediaElement.prototype.mediaKeys=null,HTMLMediaElement.prototype.setMediaKeys=ya,window.MediaKeys=za,window.MediaKeySystemAccess=Aa))}n("shaka.polyfill.MediaKeys.install",nc);n("shaka.polyfill.installAll",function(){ta();va();Na();Ca();nc()});var oc=/^(?:([^:/?#.]+):)?(?:\/\/(?:([^/?#]*)@)?([^/#?]*?)(?::([0-9]+))?(?=[/#?]|$))?([^?#]+)?(?:\?([^#]*))?(?:#(.*))?$/;function I(a){var b;a instanceof I?(pc(this,a.O),this.W=a.W,this.N=a.N,qc(this,a.ca),this.M=a.M,rc(this,a.a.clone()),this.U=a.U):a&&(b=String(a).match(oc))?(pc(this,b[1]||"",!0),this.W=sc(b[2]||""),this.N=sc(b[3]||"",!0),qc(this,b[4]),this.M=sc(b[5]||"",!0),rc(this,b[6]||"",!0),this.U=sc(b[7]||"")):this.a=new J(null)}l=I.prototype;l.O="";l.W="";l.N="";l.ca=null;l.M="";l.U="";
l.toString=function(){var a=[],b=this.O;b&&a.push(tc(b,uc,!0),":");if(b=this.N){a.push("//");var c=this.W;c&&a.push(tc(c,uc,!0),"@");a.push(encodeURIComponent(b).replace(/%25([0-9a-fA-F]{2})/g,"%$1"));b=this.ca;null!=b&&a.push(":",String(b))}if(b=this.M)this.N&&"/"!=b.charAt(0)&&a.push("/"),a.push(tc(b,"/"==b.charAt(0)?vc:wc,!0));(b=this.a.toString())&&a.push("?",b);(b=this.U)&&a.push("#",tc(b,xc));return a.join("")};
l.resolve=function(a){var b=this.clone();"data"===b.O&&(b=new I);var c=!!a.O;c?pc(b,a.O):c=!!a.W;c?b.W=a.W:c=!!a.N;c?b.N=a.N:c=null!=a.ca;var d=a.M;if(c)qc(b,a.ca);else if(c=!!a.M){if("/"!=d.charAt(0))if(this.N&&!this.M)d="/"+d;else{var e=b.M.lastIndexOf("/");-1!=e&&(d=b.M.substr(0,e+1)+d)}if(".."==d||"."==d)d="";else if(-1!=d.indexOf("./")||-1!=d.indexOf("/.")){for(var e=0==d.lastIndexOf("/",0),d=d.split("/"),f=[],g=0;g<d.length;){var h=d[g++];"."==h?e&&g==d.length&&f.push(""):".."==h?((1<f.length||
1==f.length&&""!=f[0])&&f.pop(),e&&g==d.length&&f.push("")):(f.push(h),e=!0)}d=f.join("/")}}c?b.M=d:c=""!==a.a.toString();c?rc(b,a.a.clone()):c=!!a.U;c&&(b.U=a.U);return b};l.clone=function(){return new I(this)};function pc(a,b,c){a.O=c?sc(b,!0):b;a.O&&(a.O=a.O.replace(/:$/,""))}function qc(a,b){if(b){b=Number(b);if(isNaN(b)||0>b)throw Error("Bad port number "+b);a.ca=b}else a.ca=null}function rc(a,b,c){b instanceof J?a.a=b:(c||(b=tc(b,yc)),a.a=new J(b))}
function sc(a,b){return a?b?decodeURI(a):decodeURIComponent(a):""}function tc(a,b,c){return"string"==typeof a?(a=encodeURI(a).replace(b,zc),c&&(a=a.replace(/%25([0-9a-fA-F]{2})/g,"%$1")),a):null}function zc(a){a=a.charCodeAt(0);return"%"+(a>>4&15).toString(16)+(a&15).toString(16)}var uc=/[#\/\?@]/g,wc=/[\#\?:]/g,vc=/[\#\?]/g,yc=/[\#\?@]/g,xc=/#/g;function J(a){this.b=a||null}J.prototype.a=null;J.prototype.c=null;
function Ac(a,b,c){if(!a.a&&(a.a={},a.c=0,a.b))for(var d=a.b.split("&"),e=0;e<d.length;e++){var f=d[e].indexOf("="),g=null,h=null;0<=f?(g=d[e].substring(0,f),h=d[e].substring(f+1)):g=d[e];g=decodeURIComponent(g.replace(/\+/g," "));h=h||"";Ac(a,g,decodeURIComponent(h.replace(/\+/g," ")))}a.b=null;(d=a.a.hasOwnProperty(b)&&a.a[b])||(a.a[b]=d=[]);d.push(c);a.c++}
J.prototype.toString=function(){if(this.b)return this.b;if(!this.a)return"";var a=[],b;for(b in this.a)for(var c=encodeURIComponent(b),d=this.a[b],e=0;e<d.length;e++){var f=c;""!==d[e]&&(f+="="+encodeURIComponent(d[e]));a.push(f)}return this.b=a.join("&")};J.prototype.clone=function(){var a=new J;a.b=this.b;if(this.a){var b={},c;for(c in this.a)b[c]=this.a[c].concat();a.a=b;a.c=this.c}return a};function Bc(){this.id=this.url=null;this.type="static";this.b=this.j=this.s=this.Sa=null;this.h=5;this.f=this.c=this.g=null;this.i=1;this.a=[]}function Cc(){this.g=this.f=this.c=this.s=this.a=this.start=this.id=null;this.b=[]}function Dc(){this.i=this.b=this.height=this.width=this.contentType=this.lang=this.group=this.id=null;this.c=!1;this.h=this.g=this.f=this.s=null;this.j=[];this.a=[]}function Ec(){this.value=null}function Fc(){this.contentType=this.lang=this.id=null}
function Gc(){this.a=this.b=this.g=this.s=this.h=this.f=this.height=this.width=this.bandwidth=this.lang=this.id=null;this.c=[]}function Hc(){this.b=this.a=this.c=this.f=null}function Ic(){this.parsedPssh=this.psshBox=null}function Jc(){this.url=null}function Kc(){this.url=null}function Lc(){this.s=null;this.c=1;this.g=this.f=this.a=this.b=null}Lc.prototype.clone=function(){var a=new Lc;a.s=Mc(this.s);a.c=this.c;a.b=this.b;a.a=K(this.a);a.f=K(this.f);a.g=K(this.g);return a};
function Nc(){this.a=this.url=null}Nc.prototype.clone=function(){var a=new Nc;a.url=Mc(this.url);a.a=K(this.a);return a};function Oc(){this.a=this.url=null}Oc.prototype.clone=function(){var a=new Oc;a.url=Mc(this.url);a.a=K(this.a);return a};function Pc(){this.s=null;this.f=1;this.b=this.g=null;this.i=1;this.h=null;this.a=[];this.c=null}Pc.prototype.clone=function(){var a=new Pc;a.s=Mc(this.s);a.f=this.f;a.g=this.g;a.b=this.b;a.i=this.i;a.h=K(this.h);a.a=Mc(this.a)||[];a.c=K(this.c);return a};
function Qc(){this.a=this.b=null}Qc.prototype.clone=function(){var a=new Qc;a.b=Mc(this.b);a.a=K(this.a);return a};function Rc(){this.a=1;this.b=this.i=null;this.j=1;this.c=this.g=this.f=this.h=null}Rc.prototype.clone=function(){var a=new Rc;a.a=this.a;a.i=this.i;a.b=this.b;a.j=this.j;a.h=this.h;a.f=this.f;a.g=this.g;a.c=K(this.c);return a};function Sc(){this.a=[]}Sc.prototype.clone=function(){var a=new Sc;a.a=Mc(this.a)||[];return a};function Tc(){this.c=this.a=this.b=null}
Tc.prototype.clone=function(){var a=new Tc;a.b=this.b;a.a=this.a;a.c=this.c;return a};function Uc(a,b){this.ha=a;this.end=b}Uc.prototype.clone=function(){return new Uc(this.ha,this.end)};Bc.TAG_NAME="MPD";Cc.TAG_NAME="Period";Dc.TAG_NAME="AdaptationSet";Ec.TAG_NAME="Role";Fc.TAG_NAME="ContentComponent";Gc.TAG_NAME="Representation";Hc.TAG_NAME="ContentProtection";Ic.TAG_NAME="cenc:pssh";Jc.TAG_NAME="BaseURL";Kc.TAG_NAME="Location";Lc.TAG_NAME="SegmentBase";Nc.TAG_NAME="RepresentationIndex";
Oc.TAG_NAME="Initialization";Pc.TAG_NAME="SegmentList";Qc.TAG_NAME="SegmentURL";Rc.TAG_NAME="SegmentTemplate";Sc.TAG_NAME="SegmentTimeline";Tc.TAG_NAME="S";
Bc.prototype.parse=function(a,b){this.url=a.Sa;this.id=L(b,"id",M);this.type=L(b,"type",M)||"static";this.b=L(b,"mediaPresentationDuration",Vc);this.h=L(b,"minBufferTime",Vc,this.h);this.g=L(b,"minimumUpdatePeriod",Vc,this.g);this.c=L(b,"availabilityStartTime",Wc,this.c);this.f=L(b,"timeShiftBufferDepth",Vc,this.f);this.i=L(b,"suggestedPresentationDelay",Vc,this.i);var c=a.s,d=N(this,b,Jc);this.s=Xc(c,d);if(d=O(this,b,Kc))this.j=Yc(c,d.url);this.a=N(this,b,Cc)};
Cc.prototype.parse=function(a,b){this.id=L(b,"id",M);this.start=L(b,"start",Vc);this.a=L(b,"duration",Vc);var c=N(this,b,Jc);this.s=Xc(a.s,c);this.c=O(this,b,Lc);this.f=O(this,b,Pc);this.g=O(this,b,Rc);this.b=N(this,b,Dc);Zc(this)};function Zc(a){for(var b=[],c=0;c<a.b.length;++c){var d=a.b[c];null!=d.group&&(b[d.group]=!0)}for(c=0;c<a.b.length;++c)if(d=a.b[c],null==d.group){for(var e=1;1==b[e];)++e;b[e]=!0;d.group=e}}
Dc.prototype.parse=function(a,b){var c=O(this,b,Fc)||{},d=O(this,b,Ec);this.id=L(b,"id",M);this.group=L(b,"group",P);this.lang=L(b,"lang",M,c.lang);this.contentType=L(b,"contentType",M,c.contentType);this.width=L(b,"width",Q);this.height=L(b,"height",Q);this.b=L(b,"mimeType",M);this.i=L(b,"codecs",M);this.c=d&&"main"==d.value;this.lang&&(this.lang=$a(this.lang));c=N(this,b,Jc);this.s=Xc(a.s,c);this.j=N(this,b,Hc);!this.contentType&&this.b&&(this.contentType=this.b.split("/")[0]);this.f=a.c?$c(this,
b,a.c):O(this,b,Lc);this.g=a.f?$c(this,b,a.f):O(this,b,Pc);this.h=a.g?$c(this,b,a.g):O(this,b,Rc);this.a=N(this,b,Gc);!this.b&&this.a.length&&(this.b=this.a[0].f,!this.contentType&&this.b&&(this.contentType=this.b.split("/")[0]))};Ec.prototype.parse=function(a,b){this.value=L(b,"value",M)};Fc.prototype.parse=function(a,b){this.id=L(b,"id",M);this.lang=L(b,"lang",M);this.contentType=L(b,"contentType",M);this.lang&&(this.lang=$a(this.lang))};
Gc.prototype.parse=function(a,b){this.id=L(b,"id",M);this.bandwidth=L(b,"bandwidth",Q);this.width=L(b,"width",Q,a.width);this.height=L(b,"height",Q,a.height);this.f=L(b,"mimeType",M,a.b);this.h=L(b,"codecs",M,a.i);this.lang=a.lang;var c=N(this,b,Jc);this.s=Xc(a.s,c);this.c=N(this,b,Hc);this.g=a.f?$c(this,b,a.f):O(this,b,Lc);this.b=a.g?$c(this,b,a.g):O(this,b,Pc);this.a=a.h?$c(this,b,a.h):O(this,b,Rc);this.c=this.c.concat(a.j)};
Hc.prototype.parse=function(a,b){this.f=b;this.c=L(b,"schemeIdUri",M);var c=L(b,"cenc:default_KID",M);c&&(this.b=c.replace(/[-]/g,""));this.a=O(this,b,Ic)};Ic.prototype.parse=function(a,b){var c=ad(b);if(c){this.psshBox=Ib(c);try{this.parsedPssh=new $b(this.psshBox)}catch(d){if(!(d instanceof RangeError))throw d;}}};Jc.prototype.parse=function(a,b){this.url=ad(b)};Kc.prototype.parse=function(a,b){this.url=ad(b)};
Lc.prototype.parse=function(a,b){this.s=a.s||this.s;this.c=L(b,"timescale",Q,this.c);this.b=L(b,"presentationTimeOffset",P,this.b);this.a=L(b,"indexRange",bd,this.a);this.f=O(this,b,Nc)||this.f;this.g=O(this,b,Oc)||this.g};Nc.prototype.parse=function(a,b){var c=L(b,"sourceURL",M);this.url=Yc(a.s,c);this.a=L(b,"range",bd,K(a.a))};Oc.prototype.parse=function(a,b){var c=L(b,"sourceURL",M);this.url=Yc(a.s,c);this.a=L(b,"range",bd)};
Pc.prototype.parse=function(a,b){this.s=a.s||this.s;this.f=L(b,"timescale",Q,this.f);this.g=L(b,"presentationTimeOffset",P,this.g);this.b=L(b,"duration",Q,this.b);var c=L(b,"startNumber",Q);null!=c&&(this.i=c);this.h=O(this,b,Oc)||this.h;this.a=(c=N(this,b,Qc))&&0<c.length?c:this.a;this.c=O(this,b,Sc)||this.c};Qc.prototype.parse=function(a,b){var c=L(b,"media",M);this.b=Yc(a.s,c);this.a=L(b,"mediaRange",bd)};
Rc.prototype.parse=function(a,b){this.a=L(b,"timescale",Q,this.a);this.i=L(b,"presentationTimeOffset",P,this.i);this.b=L(b,"duration",Q,this.b);var c=L(b,"startNumber",P);null!=c&&(this.j=c);this.h=L(b,"media",M,this.h);this.f=L(b,"index",M,this.f);this.g=L(b,"initialization",M,this.g);this.c=O(this,b,Sc)||this.c};Sc.prototype.parse=function(a,b){this.a=N(this,b,Tc)};Tc.prototype.parse=function(a,b){this.b=L(b,"t",P);this.a=L(b,"d",P);this.c=L(b,"r",cd)};
function Xc(a,b){if(!b||0===b.length)return a;for(var c=[],d=0;d<b.length;d++){var e=b[d].url;null==a||0===a.length?c.push(new I(e)):(e=Yc(a.slice(0,1),e),c.push(e[0]))}return c}function Yc(a,b){if(!b)return a;var c=new I(b);return a?a.map(function(a){return a.resolve(c)}):[c]}function $c(a,b,c){var d=K(c);(b=dd(b,c.constructor.TAG_NAME))&&d.parse(a,b);return d}function O(a,b,c){var d=null;if(b=dd(b,c.TAG_NAME))d=new c,d.parse(a,b);return d}
function dd(a,b){for(var c=null,d=0;d<a.childNodes.length;d++)if(a.childNodes[d].tagName==b){if(c)return null;c=a.childNodes[d]}return c}function N(a,b,c){for(var d=[],e=0;e<b.childNodes.length;e++)if(b.childNodes[e].tagName==c.TAG_NAME){var f=new c;f.parse.call(f,a,b.childNodes[e]);d.push(f)}return d}function ad(a){a=a.firstChild;return a.nodeType!=Node.TEXT_NODE?null:a.nodeValue}function Mc(a){return a?a.map(function(a){return a.clone()}):null}function K(a){return a?a.clone():null}
function L(a,b,c,d){a=c(a.getAttribute(b));return null!=a?a:void 0!==d?d:null}function Wc(a){if(!a)return null;a=Date.parse(a);return isNaN(a)?null:Math.floor(a/1E3)}
function Vc(a){if(!a)return null;var b=/^P(?:([0-9]*)Y)?(?:([0-9]*)M)?(?:([0-9]*)D)?(?:T(?:([0-9]*)H)?(?:([0-9]*)M)?(?:([0-9.]*)S)?)?$/.exec(a);if(!b)return null;a=0;var c=P(b[1]);c&&(a+=31536E3*c);(c=P(b[2]))&&(a+=2592E3*c);(c=P(b[3]))&&(a+=86400*c);(c=P(b[4]))&&(a+=3600*c);(c=P(b[5]))&&(a+=60*c);b=window.parseFloat(b[6]);(b=isNaN(b)?null:b)&&(a+=b);return a}
function bd(a){var b=/([0-9]+)-([0-9]+)/.exec(a);if(!b)return null;a=P(b[1]);if(null==a)return null;b=P(b[2]);return null==b?null:new Uc(a,b)}function cd(a){a=window.parseInt(a,10);return isNaN(a)?null:a}function Q(a){a=window.parseInt(a,10);return 0<a?a:null}function P(a){a=window.parseInt(a,10);return 0<=a?a:null}function M(a){return a};function ed(a,b){this.url=a;this.b=b||new zb;this.g=this.i=this.h=0;this.a=null;this.c=new F;this.f=null}function zb(){this.body=null;this.a=1;this.h=1E3;this.c=0;this.method="GET";this.f="arraybuffer";this.b={};this.g=this.i=!1;this.j=null}var fd=!0;function gd(a){hd(a);a.b.body=null;a.c.destroy();a.c=null;a.f=null}function hd(a){a.a&&(a.a.onload=null,a.a.onreadystatechange=null,a.a.onerror=null,a.a.ontimeout=null);a.a=null}l=ed.prototype;
l.Wa=function(){if(this.a)return this.c;if(0==this.url.lastIndexOf("data:",0)){var a=this.url.split(":")[1].split(";").pop().split(","),b=a.pop(),b="base64"==a.pop()?window.atob(b.replace(/-/g,"+").replace(/_/g,"/")):window.decodeURIComponent(b);"arraybuffer"==this.b.f&&(b=Hb(b).buffer);a=JSON.parse(JSON.stringify(new XMLHttpRequest));a.response=b;a.responseText=b.toString();b=this.c;b.resolve(a);gd(this);return b}if(0==this.url.lastIndexOf("idb:",0))return this.j();this.h++;this.i=Date.now();this.g||
(this.g=this.b.h);this.a=new XMLHttpRequest;a=this.url;fd&&(this.f&&!this.f.supportsCaching()||this.b.g)&&(a=new I(a),Ac(a.a,"_",Date.now()),a=a.toString());this.a.open(this.b.method,a,!0);this.a.responseType=this.b.f;this.a.timeout=this.b.c;this.a.withCredentials=this.b.i;this.a.onload=this.fb.bind(this);this.b.g&&(this.a.onreadystatechange=this.mb.bind(this));this.a.onerror=this.zb.bind(this);this.a.ontimeout=this.qb.bind(this);for(b in this.b.b)this.a.setRequestHeader(b,this.b.b[b]);this.a.send(this.b.body);
return this.c};function id(a,b,c){b=Error(b);b.type=c;b.status=a.a.status;b.url=a.url;b.method=a.b.method;b.body=a.b.body;b.xhr=a.a;return b}l.fb=function(a){this.f&&this.f.sample(Date.now()-this.i,a.loaded);200<=this.a.status&&299>=this.a.status?(this.c.resolve(this.a),gd(this)):this.h<this.b.a?jd(this):(a=id(this,"HTTP error.","net"),this.c.reject(a),gd(this))};l.mb=function(){if(this.a.readyState==XMLHttpRequest.HEADERS_RECEIVED){var a=Date.parse(this.a.getResponseHeader("Date"));a&&(Qa=a-Date.now())}};
l.zb=function(){var a=id(this,"Network failure.","net");this.c.reject(a);gd(this)};l.qb=function(){if(this.h<this.b.a)jd(this);else{var a=id(this,"Request timed out.","net");this.c.reject(a);gd(this)}};function jd(a){hd(a);window.setTimeout(a.Wa.bind(a),a.g*(1+.5*(2*Math.random()-1)));a.g*=2};function H(a,b,c,d){this.c=b;this.i=c||0;this.g=null!=d?d:null;this.b=this.a=null;this.h=a;this.f=null}function kd(a,b){return a&&0!==a.length?a.map(function(a){return a.resolve(b)}):[b]}function Ab(a,b,c){if(a.a)return a.a;b=b||new zb;if(a.i||a.g)b.b.Range="bytes="+(a.i+"-"+(null!=a.g?a.g:""));a.a=ld(a,0,b,c);return a.a}
H.prototype.j=function(){if(this.b){this.a=null;var a=this.b;if(a.a&&a.a.readyState!=XMLHttpRequest.DONE){a.a.abort();var b=id(a,"Request aborted.","aborted");a.c.reject(b);gd(a)}this.f=this.b=null}};
function ld(a,b,c,d){var e=a.c[b].toString();a.h&&(e=a.h(e,c.b)||e);a.b=new ed(e,c);d&&(a.b.f=d);e=a.b.Wa().then(G(a,function(a){this.f=this.b=this.a=null;this.f=a.a?new I(a.a):this.c[b];return Promise.resolve(a.response)}));return e=e.catch(G(a,function(a){if(this.a&&b+1<this.c.length)return this.a=ld(this,b+1,c,d);this.a=this.b=null;return Promise.reject(a)}))}H.prototype.clone=function(){return new H(this.h,this.c.map(function(a){return a.clone()}),this.i,this.g)};H.prototype.toString=function(){return this.c[0].toString()};function md(a,b){this.a=new zb;this.a.f="text";this.a.a=3;this.a.c=1E3*(null!=b?b:0);this.a.g=!0;this.b=a}function nd(a){var b=a.b;return Ab(b,a.a).then(function(a){var d;d=b.c;var e=[b.f];d=(a=(new DOMParser).parseFromString(a,"text/xml"))?O({Sa:d,s:e},a,Bc):null;if(d)return Promise.resolve(d);d=Error("MPD parse failure.");d.type="dash";return Promise.reject(d)})};function od(a,b,c,d){for(var e=b.a,f=[],g=0;g<d;++g){var h=g+c,k=(h-1)*e.b,m=k/e.a,q=(k+e.b)/e.a,h=pd(a,b,e.j+h-1,k);if(!h)return null;f.push(new qd(m,q,h))}return f}function pd(a,b,c,d){if(!b.a)return null;var e=b.a.h;if(!e)return b.s?new H(a,b.s,0,null):null;c=rd(e,b.id,c,b.bandwidth,d);if(!c)return null;b=kd(b.s,c);return new H(a,b,0,null)}
function rd(a,b,c,d,e){var f={RepresentationID:b,Number:c,Bandwidth:d,Time:e};a=a.replace(/\$(RepresentationID|Number|Bandwidth|Time)?(?:%0([0-9]+)d)?\$/g,function(a,b,c){if("$$"==a)return"$";var d=f[b];if(null==d)return a;"RepresentationID"==b&&c&&(c=void 0);a=d.toString();c=window.parseInt(c,10)||1;c=Math.max(0,c-a.length);return Array(c+1).join("0")+a});try{return new I(a)}catch(g){if(g instanceof URIError)return null;throw g;}}
function sd(a,b,c){var d=0;b*=c;a=a.a;c=[];for(var e=0;e<a.length&&a[e].a;++e){var f=a[e].b,f=null!=f?f:d,g=a[e].c||0;0>g&&(g=a[e].a,g=e+1===a.length?Math.ceil((a[0].b+b-f)/g)-1:Math.ceil((a[e+1].b-f)/g)-1);0<c.length&&f!=d&&(c[c.length-1].end=f);for(var h=0;h<=g;++h)d=f+a[e].a,c.push({start:f,end:d}),f=d}return c};function td(a,b){this.a=a;this.b=b||null}td.prototype.destroy=function(){this.a&&(this.a.j(),this.a=null);this.b=null};td.prototype.create=function(){return this.a?Ab(this.a):Promise.resolve(this.b)};function qd(a,b,c){this.b=a;this.a=b;this.url=c}function ud(a,b,c){return new qd(b,c,a.url)}function Bb(a,b){for(var c=a.length-1;0<=c;--c){var d=a[c];if(b>=d.b&&(null==d.a||b<d.a))return c}return-1}function vd(a,b){return a.map(function(a){return ud(a,a.b+b,null!=a.a?a.a+b:null)})};function R(a){this.a=a;this.j=0}R.prototype.destroy=function(){this.a=null};l=R.prototype;l.length=function(){return this.a.length};function S(a){if(0==a.a.length)throw new RangeError("SegmentIndex: There is no first SegmentReference.");return a.a[0]}l.v=function(){if(0==this.a.length)throw new RangeError("SegmentIndex: There is no last SegmentReference.");return this.a[this.a.length-1]};
l.get=function(a){if(0>a||a>=this.a.length)throw new RangeError("SegmentIndex: The specified index is out of range.");return this.a[a]};l.ea=function(a){a=Bb(this.a,a);return 0<=a?this.a[a]:null};l.ua=function(a){wd(this,a);return!0};
function wd(a,b){a.j!=b.j&&(b=new R(vd(b.a,a.j-b.j)));if(0==a.length())a.a=b.a.slice(0);else if(0!=b.length()&&null!=a.v().a&&!(null!=b.v().a&&b.v().a<a.v().a)){if(a.v().a<=S(b).b)var c=ud(a.v(),a.v().b,S(b).b),c=a.a.slice(0,-1).concat([c]);else{var d;for(d=0;d<a.a.length&&!(a.a[d].a>=S(b).b);++d);a.a[d].b<S(b).b?(c=ud(a.a[d],a.a[d].b,S(b).b),c=a.a.slice(0,d).concat([c])):(S(a).b>S(b).b||S(b),c=a.a.slice(0,d))}a.a=c.concat(b.a)}}
l.da=function(a){var b=a-this.j;if(0==b)return 0;this.a=vd(this.a,b);this.j=a;return b};l.ra=function(){return 0<this.length()?{start:S(this).b,end:this.v().a}:{start:0,end:0}};function T(a,b,c,d){R.call(this,a);this.h=b;this.w=c;this.g=d;this.i=this.h.b||this.h.a.reduce(function(a,b){return null==b.a?NaN:a+b.a},0)||0;this.b=this.u=this.f=null;xd(this)}p(T,R);T.prototype.destroy=function(){this.