{"version":3,"sources":["webpack:///./node_modules/@videojs/xhr/index.js","webpack:///./node_modules/core-js/internals/function-bind.js","webpack:///./node_modules/@videojs/vhs-utils/dist/stream.js","webpack:///./node_modules/store/storages/cookieStorage.js","webpack:///./node_modules/core-js/modules/es.object.set-prototype-of.js","webpack:///./node_modules/core-js/modules/es.array.reduce.js","webpack:///./node_modules/mux.js/lib/mp4/find-box.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/mux.js/lib/m2ts/timestamp-rollover-stream.js","webpack:///./node_modules/mux.js/lib/mp4/probe.js","webpack:///./node_modules/@videojs/vhs-utils/dist/codecs.js","webpack:///./node_modules/xmldom/dom-parser.js","webpack:///./node_modules/videojs-vtt.js/lib/browser-index.js","webpack:///./node_modules/store/src/util.js","webpack:///./node_modules/core-js/modules/es.object.get-prototype-of.js","webpack:///./node_modules/mux.js/lib/utils/clock.js","webpack:///./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack:///./node_modules/store/plugins/defaults.js","webpack:///./node_modules/store/storages/memoryStorage.js","webpack:///./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack:///./node_modules/mux.js/lib/m2ts/probe.js","webpack:///./node_modules/mux.js/lib/utils/stream.js","webpack:///./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack:///./node_modules/core-js/modules/es.reflect.construct.js","webpack:///./node_modules/core-js/internals/array-from.js","webpack:///./node_modules/core-js/modules/es.object.entries.js","webpack:///./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack:///./src/components/VideoPlayer.vue?8eb0","webpack:///./node_modules/m3u8-parser/dist/m3u8-parser.es.js","webpack:///./node_modules/mpd-parser/dist/mpd-parser.es.js","webpack:///./node_modules/video.js/dist/video.es.js","webpack:///./src/js/VideoJs/utils/storage.js","webpack:///./src/configs/volumePersisterDefaults.js","webpack:///./src/configs/videoJsEvents.js","webpack:///./src/configs/storageKeys.js","webpack:///./src/js/VideoJs/VolumePersister/index.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack:///./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack:///./src/js/VideoJs/uiComponents/resolutionMenu/ItemComponent.js","webpack:///./src/js/VideoJs/uiComponents/resolutionMenu/MenuButtonComponent.js","webpack:///./src/configs/resolutionSwitcherDefaults.js","webpack:///./src/js/VideoJs/ResolutionSwitcher/index.js","webpack:///./src/js/VideoJs/playerConfig.js","webpack:///src/components/VideoPlayer.vue","webpack:///./src/components/VideoPlayer.vue?6a50","webpack:///./src/components/VideoPlayer.vue","webpack:///./node_modules/@videojs/vhs-utils/dist/resolve-url.js","webpack:///./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack:///./node_modules/core-js/internals/object-to-array.js","webpack:///./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","webpack:///./node_modules/@babel/runtime/helpers/typeof.js","webpack:///./node_modules/xmldom/dom.js","webpack:///./node_modules/@videojs/vhs-utils/dist/containers.js","webpack:///./node_modules/mux.js/lib/utils/bin.js","webpack:///./node_modules/mux.js/lib/tools/parse-sidx.js","webpack:///./node_modules/is-function/index.js","webpack:///./node_modules/@videojs/vhs-utils/dist/decode-b64-to-uint8-array.js","webpack:///./node_modules/mux.js/lib/tools/parse-trun.js","webpack:///./node_modules/safe-json-parse/tuple.js","webpack:///./node_modules/mux.js/lib/mp4/parse-type.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///./node_modules/@babel/runtime/helpers/extends.js","webpack:///./node_modules/core-js/modules/es.array.from.js","webpack:///./node_modules/store/storages/localStorage.js","webpack:///./node_modules/mux.js/lib/m2ts/stream-types.js","webpack:///./node_modules/@videojs/vhs-utils/dist/byte-helpers.js","webpack:///./node_modules/videojs-vtt.js/lib/vttcue.js","webpack:///./node_modules/core-js/modules/es.function.name.js","webpack:///./node_modules/@babel/runtime/helpers/construct.js","webpack:///./node_modules/@videojs/vhs-utils/dist/media-types.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/global/window.js","webpack:///./node_modules/mux.js/lib/tools/parse-tfhd.js","webpack:///./node_modules/mux.js/lib/tools/parse-sample-flags.js","webpack:///./node_modules/videojs-vtt.js/lib/vtt.js","webpack:///./node_modules/url-toolkit/src/url-toolkit.js","webpack:///./node_modules/core-js/modules/es.symbol.iterator.js","webpack:///./node_modules/core-js/internals/array-reduce.js","webpack:///./node_modules/xmldom/sax.js","webpack:///./node_modules/@videojs/xhr/node_modules/global/window.js","webpack:///./node_modules/core-js/modules/es.array.map.js","webpack:///./node_modules/mux.js/lib/tools/parse-tfdt.js","webpack:///./node_modules/mux.js/lib/tools/ts-inspector.js","webpack:///./node_modules/keycode/index.js","webpack:///./node_modules/core-js/modules/es.symbol.description.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/store/src/store-engine.js","webpack:///./node_modules/@babel/runtime/helpers/inherits.js","webpack:///./node_modules/store/plugins/expire.js","webpack:///./node_modules/global/document.js","webpack:///./node_modules/videojs-vtt.js/lib/vttregion.js","webpack:///./node_modules/mux.js/lib/aac/utils.js"],"names":["window","_extends","isFunction","parseHeaders","headers","result","trim","split","forEach","row","index","indexOf","key","slice","toLowerCase","value","Array","isArray","push","forEachArray","array","iterator","i","length","isEmpty","obj","hasOwnProperty","initParams","uri","options","callback","params","createXHR","_createXHR","Error","called","err","response","body","readystatechange","xhr","readyState","setTimeout","loadFunc","getBody","undefined","responseText","getXml","isJson","JSON","parse","e","errorFunc","evt","clearTimeout","timeoutTimer","statusCode","failureResponse","aborted","status","useXDR","method","url","rawRequest","getAllResponseHeaders","cors","XDomainRequest","XMLHttpRequest","data","sync","json","stringify","onreadystatechange","onload","onerror","onprogress","onabort","ontimeout","open","username","password","withCredentials","timeout","abort","code","setRequestHeader","responseType","beforeSend","send","responseXML","firefoxBugTakenEffect","documentElement","nodeName","noop","module","exports","default","toUpperCase","aFunction","isObject","factories","construct","C","argsLength","args","list","Function","join","bind","that","fn","this","partArgs","call","arguments","boundFunction","concat","apply","prototype","Stream","listeners","_proto","on","type","listener","off","splice","trigger","callbacks","_length","_i","dispose","pipe","destination","util","Global","name","read","write","each","remove","clearAll","doc","document","_has","regexpStr","escape","replace","unescape","cookie","RegExp","cookies","kvp","val","_","test","$","setPrototypeOf","target","stat","$reduce","left","arrayMethodIsStrict","CHROME_VERSION","IS_NODE","STRICT_METHOD","CHROME_BUG","proto","forced","reduce","callbackfn","toUnsigned","parseType","findBox","path","size","end","subresults","results","byteLength","subarray","toByteArray","fromByteArray","lookup","revLookup","Arr","Uint8Array","len","charCodeAt","getLens","b64","validLen","placeHoldersLen","lens","_byteLength","tmp","arr","curByte","tripletToBase64","num","encodeChunk","uint8","start","output","extraBytes","parts","maxChunkLength","len2","MAX_TS","RO_THRESH","TYPE_SHARED","handleRollover","reference","direction","Math","abs","TimestampRolloverStream","lastDTS","referenceDTS","init","type_","dts","pts","flush","endTimeline","discontinuity","reset","timescale","startTime","compositionStartTime","getVideoTrackIds","getTracks","getTimescaleFromMediaHeader","toHexString","parseTfhd","parseTrun","parseTfdt","traks","trak","tkhd","version","id","mdhd","fragment","trafs","baseTimes","map","traf","tfhd","scale","baseTime","tfdt","pow","isNaN","Infinity","min","isFinite","timescales","trackId","trafBoxes","baseMediaDecodeTime","compositionTimeOffset","trun","parsedTfhd","parsedTfdt","parsedTrun","samples","videoTrackIds","hdlrs","tkhds","hdlr","view","handlerType","DataView","buffer","byteOffset","getUint8","getUint32","tracks","tkhdVersion","track","stsd","sampleDescriptions","codec","codecConfig","codecConfigType","codecBox","_interopDefault","ex","Object","defineProperty","regexs","mp4","webm","ogg","video","audio","text","muxerVideo","muxerAudio","muxerText","mediaTypes","upperMediaTypes","translateLegacyCodec","orig","profile","avcLevel","profileHex","Number","toString","avcLevelHex","translateLegacyCodecs","codecs","mapLegacyAvcCodecs","codecString","match","parseCodecs","unknown","codecType","exec","substring","details","codecsFromDefault","master","audioGroupId","mediaGroups","AUDIO","audioGroup","audioType","playlists","attributes","CODECS","isVideoCodec","isAudioCodec","isTextCodec","getMimeForCodec","c","container","every","browserSupportsCodec","MediaSource","isTypeSupported","muxerSupportsCodec","DEFAULT_AUDIO_CODEC","DEFAULT_VIDEO_CODEC","DOMParser","locator","buildErrorHandler","errorImpl","domBuilder","DOMHandler","errorHandler","isCallback","build","msg","_locator","cdata","position","node","lineNumber","columnNumber","l","systemId","_toString","chars","substr","java","lang","String","appendElement","hander","currentElement","appendChild","parseFromString","source","mimeType","sax","XMLReader","defaultNSMap","xmlns","entityMap","setDocumentLocator","nbsp","copy","xml","error","startDocument","DOMImplementation","createDocument","documentURI","startElement","namespaceURI","localName","qName","attrs","el","createElementNS","getURI","getValue","attr","getQName","createAttributeNS","getLocator","nodeValue","setAttributeNode","endElement","current","tagName","parentNode","startPrefixMapping","prefix","endPrefixMapping","processingInstruction","ins","createProcessingInstruction","ignorableWhitespace","ch","characters","charNode","createCDATASection","createTextNode","skippedEntity","endDocument","normalize","comment","comm","createComment","startCDATA","endCDATA","startDTD","publicId","impl","implementation","createDocumentType","dt","warning","console","warn","fatalError","XMLSerializer","vttjs","WebVTT","VTTCue","VTTRegion","cueShim","regionShim","nativeVTTCue","nativeVTTRegion","shim","restore","create","make_create","make_trim","global","make_assign","assign","props1","props2","etc","assignProps1","assignProps2","assignArgsList","F","str","pluck","res","isList","v","k","fails","toObject","nativeGetPrototypeOf","CORRECT_PROTOTYPE_GETTER","FAILS_ON_PRIMITIVES","sham","getPrototypeOf","it","secondsToVideoTs","secondsToAudioTs","videoTsToSeconds","audioTsToSeconds","audioTsToVideoTs","videoTsToAudioTs","metadataTsToSeconds","ONE_SECOND_IN_TS","seconds","sampleRate","timestamp","timelineStartPts","keepOriginalTimestamps","_getPrototypeOf","o","__proto__","__esModule","defaultsPlugin","defaultValues","defaults","get","values","super_fn","memoryStorage","_assertThisInitialized","self","ReferenceError","StreamTypes","parsePid","packet","pid","parsePayloadUnitStartIndicator","parseAdaptionField","offset","pmtPid","parsePat","pusi","parsePmt","programMapTable","payloadOffset","sectionLength","tableEnd","programInfoLength","parsePesType","H264_STREAM_TYPE","ADTS_STREAM_TYPE","METADATA_STREAM_TYPE","parsePesTime","ptsDtsFlags","pes","parseNalUnitType","videoPacketContainsKeyFrame","nalType","frameBuffer","frameI","frameSyncPoint","foundKeyFrame","flushSource","partialFlush","_setPrototypeOf","p","getBuiltIn","anObject","nativeConstruct","NEW_TARGET_BUG","ARGS_BUG","FORCED","Target","newTarget","$args","instance","callWithSafeIterationClosing","isArrayIteratorMethod","toLength","createProperty","getIteratorMethod","arrayLike","step","next","O","argumentsLength","mapfn","mapping","iteratorMethod","done","$entries","entries","require","_inheritsLoose","subClass","superClass","constructor","render","_vm","_h","$createElement","_c","_self","staticClass","ref","_m","staticRenderFns","_v","_Stream","LineStream","_this","nextNewline","attributeSeparator","keyvalue","parseAttributes","ParseStream","customParsers","tagMappers","line","event","_this2","newLines","acc","mapper","mappedLine","newLine","tagType","duration","parseFloat","title","parseInt","number","playlistType","allowed","URI","BYTERANGE","_attributes$BYTERANGE","byterange","RESOLUTION","resolution","width","height","BANDWIDTH","dateTimeString","dateTimeObject","Date","IV","Uint32Array","PRECISE","addParser","_ref","_this3","expression","customType","dataParser","segment","addTagMapper","_ref2","mapFn","Parser","lineStream","parseStream","currentMap","_key","uris","currentUri","defaultMediaGroups","widevineUuid","currentTimeline","manifest","allowCache","discontinuityStarts","segments","lastByterangeEnd","entry","mediaGroup","rendition","tag","message","endlist","endList","inf","mediaSequence","discontinuitySequence","METHOD","KEYFORMAT","VALID_METHODS","KEYID","contentProtection","schemeIdUri","keyId","pssh","iv","playlist","media","TYPE","NAME","mediaGroupType","DEFAULT","autoselect","AUTOSELECT","LANGUAGE","language","instreamId","CHARACTERISTICS","characteristics","targetduration","targetDuration","totalduration","totalDuration","timeOffset","precise","cueOut","cueOutCont","cueIn","timeline","custom","chunk","merge","_len","objects","keys","flatten","lists","x","y","from","findIndexes","a","INVALID_NUMBER_OF_PERIOD","DASH_EMPTY_MANIFEST","DASH_INVALID_XML","NO_BASE_URL","MISSING_SEGMENT_INFORMATION","SEGMENT_TIME_UNSPECIFIED","UNSUPPORTED_UTC_TIMING_SCHEME","_ref$baseUrl","baseUrl","_ref$source","_ref$range","range","_ref$indexRange","indexRange","resolvedUri","rangeStr","ranges","startRange","endRange","byteRangeToString","segmentRange","static","_attributes$timescale","sourceDuration","ceil","dynamic","NOW","clientOffset","availabilityStartTime","_attributes$timescale2","_attributes$start","_attributes$minimumUp","minimumUpdatePeriod","_attributes$timeShift","timeShiftBufferDepth","now","periodStartWC","periodEndWC","periodDuration","segmentCount","availableStart","floor","availableEnd","max","toSegments","_attributes$timescale3","periodIndex","_attributes$startNumb","startNumber","time","parseByDuration","_attributes$type","_attributes$timescale4","_segmentRange$type","segmentsFromBase","_attributes$initializ","initialization","_attributes$indexRang","initSegment","sourceURL","segmentTimeInfo","addSegmentsToPlaylist","sidx","sidxByteRange","sidxEnd","mediaReferences","references","filter","r","referenceType","startIndex","firstOffset","referencedSize","subsegmentDuration","endIndex","mergeDiscontiguousPlaylists","mergedPlaylists","_acc$name$segments","addSegmentInfoFromSidx","sidxMapping","sidxKey","sidxMatch","formatAudioPlaylist","_attributes","bandwidth","formatVttPlaylist","_m3u8Attributes","m3u8Attributes","organizeAudioPlaylists","mainPlaylist","formattedPlaylists","role","label","roleLabel","firstLabel","organizeVttPlaylists","formatVideoPlaylist","_ref3","_attributes2","SUBTITLES","toM3u8","dashPlaylists","locations","_mediaGroups","_dashPlaylists$0$attr","_dashPlaylists$0$attr2","suggestedPresentationDelay","videoOnly","_ref4","contentType","audioOnly","_ref5","vttOnly","_ref6","videoPlaylists","audioPlaylists","vttPlaylists","VIDEO","subs","getLiveRValue","parseByTimeline","segmentTimeline","_attributes$minimumUp2","_attributes$media","sIndex","S","d","repeat","segmentTime","t","count","nextS","identifierPattern","identifierReplacement","identifier","format","constructTemplateUrl","parseTemplateInfo","templateValues","RepresentationID","Bandwidth","mapSegment","Time","SegmentURLToSegmentObject","segmentUrl","mediaRange","segmentsFromList","_attributes$segmentUr","segmentUrls","segmentUrlMap","segmentUrlObject","generateSegments","segmentAttributes","segmentsFn","segmentInfo","template","base","segmentsInfo","_segmentAttributes","_segmentAttributes$ti","toPlaylists","representations","findChildren","element","childNodes","getContent","textContent","parseDuration","SECONDS_IN_YEAR","SECONDS_IN_MONTH","SECONDS_IN_DAY","SECONDS_IN_HOUR","SECONDS_IN_MIN","durationRegex","_match$slice","year","month","day","hour","minute","second","parseDate","dateRegex","parsers","mediaPresentationDuration","parsedValue","parseFn","keySystemsMap","referenceUrls","baseUrlElements","baseUrlElement","getSegmentInformation","adaptationSet","segmentTemplate","segmentList","s","segmentBase","segmentTimelineParentNode","segmentInitializationParentNode","segmentInitialization","inheritBaseUrls","adaptationSetAttributes","adaptationSetBaseUrls","adaptationSetSegmentInfo","representation","repBaseUrlElements","repBaseUrls","representationSegmentInfo","contentProtectionNodes","keySystem","psshNode","psshBuffer","toRepresentations","periodAttributes","periodBaseUrls","periodSegmentInfo","roleAttributes","mpdAttributes","mpdBaseUrls","period","periodAtt","parsedPeriodId","adaptationSets","inheritAttributes","mpd","_options","_options$manifestUri","manifestUri","_options$NOW","_options$clientOffset","periods","representationInfo","manifestString","parser","getElementsByTagName","parseUTCTimingScheme","UTCTimingNode","parsedManifestInfo","parseUTCTiming","addSidxSegmentsToPlaylist","log","level","lvl","levels","lvlRegExp","unshift","info","createLogger","logByType","subname","all","debug","history","fname","historyItem","clear","disable","enable","_len2","_key2","_len3","_key3","_len4","_key4","createLogger$1","object","initial","accum","sources","isPlain","computedStyle","prop","getComputedStyle","computedStyleValue","getPropertyValue","isNonBlankString","Boolean","throwIfWhitespace","classRegExp","className","isReal","isEl","nodeType","isInFrame","parent","createQuerier","selector","context","querySelector","ctx","properties","content","createElement","getOwnPropertyNames","propName","setAttribute","attrName","appendContent","innerText","prependTo","child","firstChild","insertBefore","hasClass","classToCheck","classList","contains","addClass","classToAdd","add","removeClass","classToRemove","toggleClass","classToToggle","predicate","has","setAttributes","attrValue","removeAttribute","getAttributes","knownBooleans","attrVal","getAttribute","attribute","blockTextSelection","focus","onselectstart","unblockTextSelection","getBoundingClientRect","rect","findPosition","offsetParent","top","offsetWidth","offsetHeight","offsetLeft","offsetTop","getPointerPosition","boxTarget","box","boxW","boxH","offsetY","offsetX","changedTouches","pageX","pageY","isTextNode","emptyEl","removeChild","normalizeContent","insertContent","isSingleLeftClick","button","buttons","videojs","$$","Dom","freeze","createEl","_windowLoaded","autoSetup","vids","audios","divs","mediaEls","mediaEl","autoSetupTimeout","player","wait","vjs","setWindowLoaded","removeEventListener","addEventListener","style","setTextContent","styleSheet","cssText","_initialGuid","_guid","newGUID","WeakMap","FakeWeakMap","vdata","performance","set","access","_supportsPassive","DomData","_cleanUpEvents","elem","handlers","dispatcher","detachEvent","disabled","_handleMultipleEvents","types","fixEvent","fixed_","returnTrue","returnFalse","isPropagationStopped","old","preventDefault","srcElement","relatedTarget","fromElement","toElement","returnValue","defaultPrevented","stopPropagation","cancelBubble","stopImmediatePropagation","isImmediatePropagationStopped","clientX","scrollLeft","clientLeft","clientY","scrollTop","clientTop","which","charCode","keyCode","opts","passiveEvents","guid","hash","handlersCopy","m","n","passive","attachEvent","removeType","elemData","ownerDocument","bubbles","targetData","one","func","any","EVENT_MAP","Events","UPDATE_REFRESH_INTERVAL","uid","bound","last","throttled","immediate","cancel","debounced","_later","EventTarget","allowedEvents_","ael","dispatchEvent","queueTrigger","Map","oldTimeout","objName","name_","isEvented","eventBusEl_","addEventedCallback","eventedCallbacks","isValidEventType","validateTarget","fnName","validateEventType","validateListener","normalizeListenArgs","isTargetingSelf","shift","listen","EventedMixin","_normalizeListenArgs","removeListenerOnDispose","removeRemoverOnTargetDispose","_normalizeListenArgs2","wrapper","largs","_normalizeListenArgs3","_len5","_key5","targetOrType","typeOrListener","evented","eventBusKey","StatefulMixin","state","setState","stateUpdates","changes","to","stateful","defaultState","handleStateChanged","string","w","toTitleCase","titleCaseEquals","str1","str2","mergeOptions","MapSham","map_","thisArg","Map$1","SetSham","set_","Set","Component","ready","play","player_","isDisposed_","parentComponent_","options_","id_","el_","handleLanguagechange","children_","childIndex_","childNameIndex_","setTimeoutIds_","setIntervalIds_","rafIds_","namedRafs_","clearingTimersOnDispose_","initChildren","reportTouchActivity","enableTouchActivity","readyQueue_","isDisposed","localize","tokens","defaultValue","languages","primaryCode","primaryLang","localizedString","ret","contentEl","contentEl_","children","getChildById","getChild","getDescendant","names","currentChild","addChild","component","componentName","componentClassName","componentClass","ComponentClass","getComponent","refNode","childFound","compEl","workingChildren","parentOptions","handleAdd","playerOptions","newChild","Tech","some","wchild","isTech","buildCSSClass","isReady_","triggerReady","readyQueue","show","hide","lockShowing","unlockShowing","skipListeners","dimension","dimensions","widthOrHeight","pxIndex","currentDimension","computedWidthOrHeight","rule","currentDimensions","currentWidth","currentHeight","blur","handleKeyDown","handleKeyPress","emitTapEvents","couldBeTap","touchStart","firstTouch","tapMovementThreshold","touchTimeThreshold","touches","xdiff","ydiff","touchDistance","sqrt","noTap","touchTime","reportUserActivity","touchHolding","report","clearInterval","setInterval","touchEnd","timeoutId","clearTimersOnDispose_","interval","intervalId","requestAnimationFrame","supportsRaf_","requestNamedAnimationFrame","_this4","cancelNamedAnimationFrame","cancelAnimationFrame","_this5","idName","cancelName","registerComponent","ComponentToRegister","reason","isComp","isPrototypeOf","components_","Player","players","playerNames","pname","USER_AGENT","navigator","userAgent","webkitVersionMap","appleWebkitVersion","pop","IS_IPOD","IOS_VERSION","IS_ANDROID","ANDROID_VERSION","major","minor","IS_NATIVE_ANDROID","IS_FIREFOX","IS_EDGE","IS_CHROME","IE_VERSION","IS_SAFARI","IS_WINDOWS","TOUCH_ENABLED","maxTouchPoints","DocumentTouch","IS_IPAD","IS_IPHONE","IS_IOS","IS_ANY_SAFARI","browser","rangeCheck","maxIndex","getRange","valueIndex","rangeIndex","createTimeRangesObj","createTimeRanges","bufferedPercent","buffered","bufferedDuration","browserApi","FullscreenApi","prefixed","apiMap","specApi","MediaError","defaultMessages","errorTypes","1","2","3","4","5","errNum","isPromise","then","silencePromise","trackToJson_","cues","cue","endTime","textTracksToJson","tech","trackEls","trackObjs","trackEl","src","textTracks","jsonToTextTracks","addedTrack","addRemoteTextTrack","addCue","textTrackConverter","MODAL_CLASS_NAME","_Component","ModalDialog","opened_","hasBeenOpened_","hasBeenFilled_","closeable","uncloseable","descEl_","description","tabIndex","previouslyActiveEl_","desc","fillAlways","fill","wasPlaying_","paused","pauseOnOpen","pause","hadControls_","controls","conditionalFocus_","opened","close","conditionalBlur_","temporary","closeable_","temp","controlText","fillWith","parentEl","nextSiblingEl","nextSibling","empty","closeButton","content_","activeEl","activeElement","playerEl","isEventKey","focusIndex","focusableEls","focusableEls_","shiftKey","allChildren","querySelectorAll","HTMLAnchorElement","HTMLAreaElement","hasAttribute","HTMLInputElement","HTMLSelectElement","HTMLTextAreaElement","HTMLButtonElement","HTMLIFrameElement","HTMLObjectElement","HTMLEmbedElement","_EventTarget","TrackList","tracks_","addTrack","labelchange_","removeTrack","rtrack","getTrackById","change","addtrack","removetrack","labelchange","disableOthers","enabled","_TrackList","AudioTrackList","changing_","enabledChange_","disableOthers$1","selected","VideoTrackList","selectedChange_","TextTrackList","queueChange_","triggerSelectedlanguagechange","triggerSelectedlanguagechange_","nonLanguageTextTrackKind","kind","selectedlanguagechange_","HtmlTrackElementList","trackElements","trackElements_","addTrackElement_","trackElement","getTrackElementByTrack_","trackElement_","removeTrackElement_","TextTrackCueList","setCues_","length_","oldLength","cues_","defineProp","getCueById","VideoTrackKind","alternative","captions","main","sign","subtitles","commentary","AudioTrackKind","TextTrackKind","descriptions","chapters","metadata","TextTrackMode","hidden","showing","Track","trackProps","_loop","newLabel","props","href","div","addToBody","host","protocol","innerHTML","location","getFileExtension","splitPathRe","pathParts","winLoc","urlInfo","srcProtocol","crossOrigin","Url","parseUrl","getAbsoluteURL","isCrossOrigin","srcContent","StringDecoder","errors","oncue","onparsingerror","onflush","groupCollapsed","groupEnd","tech_","responseBody","loaded_","_Track","TextTrack","settings","srclang","mode","default_","activeCues_","preload_","preloadTextTracks","activeCues","changed","timeupdateHandler","disposeHandler","defineProperties","newMode","ct","currentTime","active","originalCue","originalCue_","removeCue","_removeCue","cuechange","AudioTrack","newEnabled","VideoTrack","newSelected","NONE","LOADING","LOADED","ERROR","HTMLTrackElement","load","NORMAL","ListClass","TrackClass","capitalName","getterName","privateName","REMOTE","remoteText","remoteTextEl","ALL","createTrackHelper","hasStarted_","featuresProgressEvents","manualProgressOn","featuresTimeupdateEvents","manualTimeUpdatesOn","nativeCaptions","nativeTextTracks","featuresNativeTextTracks","emulateTextTracks","autoRemoteTextTracks_","initTrackListeners","nativeControlsForTouch","triggerSourceset","onDurationChange","manualProgress","trackProgress","manualProgressOff","stopTrackingProgress","progressInterval","numBufferedPercent","bufferedPercent_","duration_","manualTimeUpdates","trackCurrentTime","stopTrackingCurrentTime","manualTimeUpdatesOff","currentTimeInterval","manuallyTriggered","clearTracks","removeRemoteTextTrack","cleanupAutoTextTracks","setCrossOrigin","error_","played","setScrubbing","scrubbing","setCurrentTime","trackListChanges","addWebVttScript_","script","_this6","remoteTracks","remoteTextTracks","handleAddTrack","handleRemoveTrack","updateDisplay","textTracksChanges","addTextTrack","createRemoteTextTrack","manualCleanup","_this7","htmlTrackElement","remoteTextTrackEls","getVideoPlaybackQuality","requestPictureInPicture","PromiseClass","Promise","reject","disablePictureInPicture","setDisablePictureInPicture","setPoster","playsinline","setPlaysinline","overrideNativeAudioTracks","overrideNativeVideoTracks","canPlayType","canPlaySource","srcObj","registerTech","techs_","defaultTechOrder_","getTech","featuresVolumeControl","featuresMuteControl","featuresFullscreenResize","featuresPlaybackRate","featuresSourceset","withSourceHandlers","_Tech","registerSourceHandler","handler","sourceHandlers","can","selectSourceHandler","canHandleSource","sh","deferrable","originalFn","sourceHandler_","setSource","nativeSourceHandler","disposeSourceHandler","currentSource_","handleSource","middlewares","middlewareInstances","TERMINATOR","use","middleware","setSourceHelper","setTech","mw","reduceRight","middlewareIterator","arg","mediate","callMethod","middlewareValue","terminated","executeRight","allowedGetters","muted","seekable","volume","allowedSetters","setMuted","setVolume","allowedMediators","mws","clearCacheForPlayer","getOrCreateFactory","mwFactory","_mws$i","mwf","mwi","lastRun","_middleware","mwrest","_src","MimetypesKind","opus","ogv","mov","m4v","mkv","m4a","mp3","aac","caf","flac","oga","wav","m3u8","jpg","jpeg","gif","png","svg","webp","getMimetype","ext","mimetype","findMimetype","cache_","matchingSources","filterSource","newsrc","srcobj","fixSource","MediaLoader","j","techOrder","techName","isSupported","loadTech_","ClickableComponent","tabIndex_","createControlTextEl","controlTextEl_","controlText_","localizedText","nonIconControl","enabled_","handleClick","handleMouseOver","handleMouseOut","clickHandler","_ClickableComponent","PosterImage","update","poster","setSrc","backgroundImage","sourceIsEncrypted","usingPlugin","eme","sessions","darkGray","lightGray","fontMap","monospace","sansSerif","serif","monospaceSansSerif","monospaceSerif","proportionalSansSerif","proportionalSerif","casual","smallcaps","constructColor","color","opacity","hex","tryUpdateStyle","TextTrackDisplay","updateDisplayHandler","toggleDisplay","preselectTrack","firstDesc","firstCaptions","preferredTrack","modes","trackList","userPref","selectedLanguage","clearDisplay","processCues","allowMultipleShowingTracks","showingTracks","updateForTrack","descriptionsTrack","captionsSubtitlesTrack","_track","updateDisplayState","overrides","textTrackSettings","getValues","cueDiv","displayState","textOpacity","backgroundColor","backgroundOpacity","windowColor","windowOpacity","edgeStyle","textShadow","fontPercent","fontSize","fontFamily","fontVariant","_i2","_track2","_j","cueEl","LoadingSpinner","isAudio","playerType","dir","Button","_Button","BigPlayButton","mouseused_","handleMouseDown","playPromise","cb","playToggle","playFocus","CloseButton","PlayToggle","replay","handlePlay","handlePause","handleEnded","handleSeeked","defaultImplementation","guide","h","gm","gh","setFormatTime","customImplementation","resetFormatTime","formatTime","TimeDisplay","updateContent","updateTextNode_","labelText_","textNode_","formattedTime_","oldNode","replaceChild","_TimeDisplay","CurrentTimeDisplay","ended","getCache","DurationDisplay","TimeDivider","RemainingTimeDisplay","remainingTimeDisplay","remainingTime","LiveDisplay","updateShowing","SeekToLive","updateLiveEdgeStatus","liveTracker","textEl_","atLiveEdge","seekToLiveEdge","clamp","Slider","bar","barName","vertical","playerEvent","handleMouseMove","handleMouseUp","progress","getProgress","progress_","sizeKey","toFixed","getPercent","calculateDistance","stepBack","stepForward","bool","vertical_","percentify","LoadProgressBar","partEls_","loadedText","separator","percentageEl_","isLive","seekableEnd","bufferedEnd","percent","percent_","part","dataset","TimeTooltip","seekBarRect","seekBarPoint","tooltipRect","playerRect","seekBarPointPx","spaceLeftOfPoint","spaceRightOfPoint","right","pullTooltipBy","round","updateTime","liveWindow","secondsBehind","PlayProgressBar","timeTooltip","MouseTimeDisplay","STEP_SECONDS","PAGE_KEY_MULTIPLIER","_Slider","SeekBar","setEventHandlers_","update_","updateInterval","enableInterval_","disableInterval_","toggleVisibility_","getCurrentTime_","liveCurrentTime","currentTime_","seekableStart","videoWasPlaying","newTime","distance","mouseTimeDisplay","handleAction","gotoFraction","codes","ProgressControl","throttledHandleMouseSeek","handleMouseSeek","seekBar","playProgressBar","seekBarEl","PictureInPictureToggle","handlePictureInPictureChange","handlePictureInPictureEnabledChange","pictureInPictureEnabled","isInPictureInPicture","exitPictureInPicture","FullscreenToggle","handleFullscreenChange","fsApi_","fullscreenEnabled","isFullscreen","exitFullscreen","requestFullscreen","checkVolumeSupport","VolumeLevel","VolumeBar","updateLastVolume_","updateARIAAttributes","checkMuted","ariaValue","volumeAsPercentage_","volumeBeforeDrag","lastVolume_","VolumeControl","volumeBar","throttledHandleMouseMove","orientationClass","checkMuteSupport","MuteToggle","vol","lastVolume","volumeToSet","updateIcon_","updateControlText_","soundOff","VolumePanel","inline","volumeControl","volumePanelState_","muteToggle","handleVolumeControlKeyUp","sliderActive_","sliderInactive_","Menu","menuButton_","menuButton","focusedChild_","boundHandleBlur_","handleBlur","boundHandleTapClick_","handleTapClick","addEventListenerForItem","removeEventListenerForItem","addItem","childComponent","contentElType","append","btn","buttonPressed_","unpressButton","childComponents","foundComponent","stepChild","item","haveTitle","MenuButton","buttonClass","menu","handleMenuKeyUp","handleMouseLeave","handleSubmenuKeyDown","createMenu","items","hideThreshold_","titleEl","titleComponent","createItems","buildWrapperCSSClass","menuButtonClass","pressButton","handleSubmenuKeyPress","_MenuButton","TrackButton","updateHandler","MenuKeys","MenuItem","selectable","isSelected_","multiSelectable","_selected","_MenuItem","TextTrackMenuItem","kinds","changeHandler","handleTracksChange","selectedLanguageChangeHandler","handleSelectedLanguageChange","onchange","Event","createEvent","initEvent","referenceTrack","shouldBeSelected","_TextTrackMenuItem","OffTextTrackMenuItem","allHidden","_TrackButton","TextTrackButton","TrackMenuItem","label_","kinds_","kind_","ChaptersTrackMenuItem","_TextTrackButton","ChaptersButton","track_","setTrack","findChaptersTrack","updateHandler_","remoteTextTrackEl","_remoteTextTrackEl","getMenuCaption","mi","DescriptionsButton","SubtitlesButton","CaptionSettingsMenuItem","CaptionsButton","SubsCapsMenuItem","SubsCapsButton","language_","AudioTrackMenuItem","audioTracks","AudioTrackButton","PlaybackRateMenuItem","rate","playbackRate","PlaybackRateMenuButton","updateVisibility","updateLabel","labelEl_","rates","playbackRates","currentRate","newRate","playbackRateSupported","Spacer","_Spacer","CustomControlSpacer","ControlBar","_ModalDialog","ErrorDisplay","LOCAL_STORAGE_KEY","COLOR_BLACK","COLOR_BLUE","COLOR_CYAN","COLOR_GREEN","COLOR_MAGENTA","COLOR_RED","COLOR_WHITE","COLOR_YELLOW","OPACITY_OPAQUE","OPACITY_SEMI","OPACITY_TRANS","selectConfigs","parseOptionValue","getSelectedOptionValue","selectedIndex","setSelectedOption","TextTrackSettings","endDialog","setDefaults","persistTextTrackSettings","saveSettings","config","restoreSettings","createElSelect_","legendId","selectLabelledbyIds","optionId","createElFgColor_","createElBgColor_","createElWinColor_","createElColors_","createElFont_","createElControls_","defaultsDescription","setValues","localStorage","getItem","setItem","removeItem","ttDisplay","controlBar","subsCapsBtn","subsCapsButton","ccBtn","captionsButton","ResizeManager","RESIZE_OBSERVER_AVAILABLE","ResizeObserver","loadListener_","resizeObserver_","debouncedHandler_","resizeHandler","observe","contentWindow","unloadListener_","unobserve","disconnect","resizeObserver","trackingThreshold","liveTolerance","LiveTracker","reset_","handleDurationchange","handleVisibilityChange","stopTracking","startTracking","trackLive_","deltaTime","lastTime_","pastSeekEnd_","pastSeekEnd","isBehind","seekedBehindLive_","timeupdateSeen_","behindLiveEdge_","liveui","isTracking","hasStarted","trackingInterval_","handleFirstTimeupdate","timeDiff","skipNextSeeked_","lastSeekEnd_","seekableEnds","sort","seekableStarts","behindLiveEdge","sourcesetLoad","srcUrls","innerHTMLDescriptorPolyfill","cloneNode","dummy","docFrag","createDocumentFragment","Element","getDescriptor","priority","descriptor","getOwnPropertyDescriptor","enumerable","configurable","HTMLMediaElement","firstSourceWatch","resetSourceWatch_","innerDescriptor","appendWrapper","appendFn","retval","srcDescriptorPolyfill","setupSourceset","resetSourceset_","srcDescriptor","oldSetAttribute","oldLoad","currentSrc","defineLazyProperty","setter","writable","Html5","crossoriginTracks","initNetworkState_","handleLateInit_","enableSourceset","setupSourcesetHandling_","isScrubbing_","hasChildNodes","nodes","nodesLength","removeNodes","proxyNativeTracks_","restoreMetadataTracksInIOSNativePlayer_","setControls","proxyWebkitFullscreen_","disposeMediaElement","metadataTracksPreFullscreenState","takeMetadataTrackSnapshot","storedMode","restoreTrackMode","storedTrack","overrideNative_","override","lowerCaseType","eventName","elTracks","proxyNativeTracksForType_","techTracks","currentTarget","removeOldTracks","removeTracks","found","playerElIngest","movingMediaElementInDOM","clone","tagAttributes","techId","playerId","preload","settingsAttrs","networkState","loadstartFired","setLoadstartFired","triggerLoadstart","eventsToTrigger","isScrubbing","fastSeek","checkProgress","NaN","endFn","beginFn","webkitPresentationMode","nativeIOSFullscreen","supportsFullScreen","webkitEnterFullScreen","enterFullScreen","HAVE_METADATA","exitFullScreen","webkitDisplayingFullscreen","webkitExitFullScreen","resetMediaElement","videoPlaybackQuality","webkitDroppedFrameCount","webkitDecodedFrameCount","droppedVideoFrames","totalVideoFrames","creationTime","timing","navigationStart","TEST_VID","canControlVolume","canMuteVolume","canControlPlaybackRate","canOverrideAttributes","supportsNativeTextTracks","supportsNativeVideoTracks","videoTracks","supportsNativeAudioTracks","patchCanPlayType","mpegurlRE","unpatchCanPlayType","TECH_EVENTS_RETRIGGER","TECH_EVENTS_QUEUE","canplay","canplaythrough","playing","seeked","BREAKPOINT_ORDER","BREAKPOINT_CLASSES","charAt","DEFAULT_BREAKPOINTS","tiny","xsmall","small","medium","large","xlarge","huge","getTagSettings","closest","boundDocumentFullscreenChange_","documentFullscreenChange_","boundFullWindowOnEscKey_","fullWindowOnEscKey","isFullscreen_","isPosterFromTech_","queuedCallbacks_","userActive_","debugEnabled_","languagesToLower","languages_","resetCache_","poster_","controls_","changingSrc_","playCallbacks_","playTerminatedQueue_","autoplay","plugins","scrubbing_","fullscreenchange","fluid_","updateStyleEl_","playerOptionsCopy","middleware_","flexNotSupported_","majorVersion","userActive","listenForUserActivity_","handleStageClick_","breakpoints","responsive","styleEl_","playerElIngest_","divEmbed","tabindex","VIDEOJS_NO_DYNAMIC_STYLE","defaultsStyleEl","head","fill_","fluid","aspectRatio","crossorigin","links","linkEl","techGet_","techCall_","_dimension","privDimension","parsedVal","ratio","aspectRatio_","idClass","videoWidth","videoHeight","ratioParts","ratioMultiplier","width_","height_","_width","_height","techEl","unloadTech_","titleTechName","camelTechName","techName_","techOptions","loop","techCanOverridePoster","TechClass","handleTechReady_","textTracksJson_","eventObj","seeking","handleTechLoadStart_","handleTechSourceset_","handleTechWaiting_","handleTechEnded_","handleTechSeeking_","handleTechPlay_","handleTechFirstPlay_","handleTechPause_","handleTechDurationChange_","handleTechFullscreenChange_","handleTechFullscreenError_","handleTechEnterPictureInPicture_","handleTechLeavePictureInPicture_","handleTechError_","handleTechPosterChange_","handleTechTextData_","handleTechRateChange_","usingNativeControls","addTechControlsListeners_","safety","removeTechControlsListeners_","handleTechClick_","handleTechDoubleClick_","handleTechTouchStart_","handleTechTouchMove_","handleTechTouchEnd_","handleTechTap_","manualAutoplay_","promise","previouslyMuted","restoreMuted","mutedPromise","updateSourceCaches_","sourceElSources","sourceEls","matchingSourceEls","sourceObj","updateSourceCaches","playerSrc","currentSource","eventSrc","lastSource_","techSrc","techGet","request","lastPlaybackRate","queued","_this8","timeWhenWaiting","timeUpdateListener","handleTechCanPlay_","handleTechCanPlayThrough_","handleTechPlaying_","handleTechSeeked_","starttime","inAllowedEls","userActions","doubleClick","userWasActive","cancelable","toggleFullscreenClass_","targetPlayer","isFs","fullscreenElement","matches","fullscreen","msMatchesSelector","togglePictureInPictureClass_","initTime","inactivityTimeout","defaultPlaybackRate","_this9","resolve","play_","_this10","isSrcReady","waitToPlay_","runPlayTerminatedQueue_","runPlayCallbacks_","queue","q","applyInitTime_","percentAsDecimal","_muted","defaultMuted","_defaultMuted","isFS","oldValue","fullscreenOptions","offHandler","requestFullscreenHelper_","fsOptions","_this11","enterFullWindow","exitFullscreenHelper_","_this12","exitFullWindow","isFullWindow","docOrigOverflow","overflow","isPiP","isInPictureInPicture_","hotkeys","excludeElement","isContentEditable","allowedInputTypes","excludedTags","handleHotkeys","_hotkeys$fullscreenKe","fullscreenKey","keydownEvent","_hotkeys$muteKey","muteKey","_hotkeys$playPauseKey","playPauseKey","FSToggle","selectSource","foundSourceAndTech","_this13","techs","findFirstPassingTechSourcePair","outerArray","innerArray","tester","outerChoice","innerChoice","flip","b","finder","sourceOrder","_this14","middlewareSource","src_","notSupportedMessage","_this15","sourceTech","_this16","doReset_","resetControlBarUI_","resetProgressBar_","resetPlaybackRate_","resetVolumeBar_","_this$controlBar","durationDisplay","currentSources","currentType","techAutoplay","newPoster","usingNativeControls_","suppressNotSupportedError","triggerSuppressedError","errorDisplay","userActivity_","mouseInProgress","lastMoveX","lastMoveY","handleActivity","screenX","screenY","handleMouseUpAndMouseLeave","isAudio_","_obj","toJSON","createModal","_this17","modal","updateCurrentBreakpoint_","currentBreakpoint","candidateBreakpoint","maxWidth","breakpoints_","breakpoint_","removeCurrentBreakpoint_","currentBreakpointClass","_breakpoints","responsive_","loadMedia","_this18","_this$cache_$media","artwork","tt","getMedia","baseOptions","tagOptions","dataSetup","_safeParseTuple","childName","previousLogLevel_","html5","userLanguage","navigationUI","BASE_PLUGIN_NAME","PLUGIN_CACHE_KEY","pluginStorage","pluginExists","getPlugin","markPluginAsActive","triggerSetupEvent","before","createBasicPlugin","plugin","basicPluginWrapper","PluginSubClass","getEventHash","Plugin","VERSION","isBasic","registerPlugin","deregisterPlugin","getPlugins","getPluginVersion","hasPlugin","subClassMethods","methods","super_","normalizeId","videojs$1","getPlayer","TypeError","defaultView","hooks","hookFunction","PlayerComponent","hooks_","hook","hookOnce","original","removeHook","getPlayers","nId","_tag","_player","getAllPlayers","comp","writeable","extend","addLanguage","_mergeOptions","createTimeRange","dom","currentTransmux","resolveUrl","resolveManifestRedirect","handleManifestRedirect","req","responseURL","log$1","createPlaylistID","_ref$customTagParsers","customTagParsers","_ref$customTagMappers","customTagMappers","customParser","forEachMediaGroup","mediaType","groupKey","labelKey","mediaProperties","setupMediaPlaylist","setupMediaPlaylists","resolveMediaGroupUris","addPropertiesToMaster","phonyUri","mergeOptions$1","EventTarget$1","updateSegments","resolveSegmentUris","baseUri","updateMaster","mergedPlaylist","refreshDelay","delay","lastSegment","PlaylistLoader","vhs","_options$withCredenti","_options$handleManife","handleManifestRedirects","vhs_","vhsOptions","playlistRequestError","haveMetadata","playlistString","startingState","playlistObject","lastRequest","media_","mediaUpdateTimeout","stopRequest","finalRenditionTimeout","oldRequest","shouldDelay","mediaChange","started","setupInitialPlaylist","srcUri","TIME_FUDGE_FACTOR","SAFE_TIME_DELTA","filterRanges","timeRanges","findRange","findNextRange","findGaps","bufferIntersection","bufferA","bufferB","arity","extents","printableRange","strArr","timeUntilRebuffer","timeRangesToArray","timeRangesList","isRangeDifferent","backwardDuration","endSequence","forwardDuration","intervalDuration","expired","backward","forward","sumDurations","durations","safeLiveIndex","liveEdgePadding","lastSegmentDuration","safeDistance","distanceFromEnd","playlistEnd","useSafeLiveEnd","getMediaInfoForTime","numSegments","mediaIndex","isBlacklisted","excludeUntil","isIncompatible","isEnabled","blacklisted","isDisabled","isAes","estimateSegmentRequestTime","segmentDuration","bytesReceived","isLowestEnabledRendition","currentBandwidth","MAX_VALUE","Playlist","videojsXHR","mergeOptions$1$1","callbackWrapper","reqResponse","responseTime","roundTripTime","requestTime","responseHeaders","timedout","xhrFactory","XhrFunction","beforeRequest","Vhs","newOptions","originalAbort","byterangeStr","byterangeEnd","byterangeStart","segmentXhrHeaders","Range","textRange","formatHexString","formatAsciiString","fromCharCode","createTransferableMessage","transferable","ArrayBuffer","isView","bytes","initSegmentId","segmentKeyId","hexDump","ascii","tagDump","textRanges","utils","SEGMENT_END_FUDGE_PERCENT","playerTimeToProgramTime","playerTime","transmuxerPrependedSeconds","videoTimingInfo","transmuxedStart","transmuxedPresentationStart","startOfSegment","offsetFromSegmentStart","getTime","originalSegmentVideoDuration","transmuxedPresentationEnd","findSegmentForProgramTime","programTime","nextSegmentStart","lastSegmentStart","lastSegmentEnd","estimatedStart","findSegmentForPlayerTime","segmentEnd","getOffsetFromTimestamp","comparisonTimeStamp","segmentDateTime","programDateTime","segmentTimeEpoch","programTimeEpoch","verifyProgramDateTimeTags","getProgramTime","_ref$time","matchedSegment","seekTime","programTimeObject","mediaSeconds","toISOString","seekToProgramTime","_ref2$retryCount","retryCount","seekTo","_ref2$pauseAfterSeek","pauseAfterSeek","mediaOffset","seekToTime","seekedCallback","callbackOnCompleted","id3Offset","finished","endRequestAndCallback","_bytes","progressListener","newPart","overrideMimeType","total","loaded","EventTarget$1$1","mergeOptions$2","masterXml","srcUrl","generateSidxKey","sidxInfo","sidxByteRangeEnd","oldMaster","newMaster","noChanges","playlistUpdate","group","_playlistUpdate","equivalentSidx","neitherMap","equivalentMap","compareSidxEntry","oldSidxMapping","newSidxMapping","currentSidxInfo","savedSidxInfo","filterChangedSidxMappings","videoSidx","mediaGroupSidx","DashPlaylistLoader","srcUrlOrPlaylist","masterPlaylistLoader","masterPlaylistLoader_","isMaster_","refreshXml_","refreshMedia_","loadedPlaylists_","sidxMapping_","childPlaylist_","requestErrored_","addSidxSegments_","fin","internal","blacklistDuration","_playlist$sidx$bytera","mediaRequest_","minimumUpdatePeriodTimeout_","hasPendingRequest","sidxChanged","isFinalRendition","requestMaster_","masterChanged","haveMaster_","masterXml_","date","masterLoaded_","handleMaster_","syncClientServerClock_","utcTiming","clientOffset_","serverTime","updateMinimumUpdatePeriodTimeout_","createMUPTimeout","mup","mediaID","mediaChanged","Config","GOAL_BUFFER_LENGTH","MAX_GOAL_BUFFER_LENGTH","BACK_BUFFER_LENGTH","GOAL_BUFFER_LENGTH_RATE","INITIAL_BANDWIDTH","BANDWIDTH_VARIANCE","BUFFER_LOW_WATER_LINE","MAX_BUFFER_LOW_WATER_LINE","EXPERIMENTAL_MAX_BUFFER_LOW_WATER_LINE","BUFFER_LOW_WATER_LINE_RATE","BUFFER_HIGH_WATER_LINE","stringToArrayBuffer","transmuxQueue","handleData_","transmuxedData","_event$data$segment","captionStreams","videoFrameDtsTime","videoFramePtsTime","boxes","handleDone_","handleGopInfo_","gopInfo","processTransmux","transmuxer","audioAppendStart","gopsToAlignWith","isPartial","remux","onData","onTrackInfo","onAudioTimingInfo","onVideoTimingInfo","onVideoSegmentTimingInfo","onAudioSegmentTimingInfo","onId3","onCaptions","onDone","handleMessage","action","trackInfo","audioTimingInfo","videoSegmentTimingInfo","audioSegmentTimingInfo","id3Frame","dispatchType","caption","onmessage","dequeue","postMessage","appendStart","processAction","enqueueAction","transmux","segmentTransmuxer","baseStartTime","timeInfo","inspect","hasVideo","hasAudio","videoStart","ptsTime","audioStart","concatSegments","segmentObj","tempBuffer","REQUEST_ERRORS","FAILURE","TIMEOUT","ABORTED","abortAll","activeXhrs","getRequestStats","getProgressStats","progressEvent","stats","handleErrors","handleKeyResponse","finishProcessingFn","errorObj","handleSegmentResponse","newBytes","lastReachedChar","encryptedBytes","transmuxAndNotify","trackInfoFn","timingInfoFn","videoSegmentTimingInfoFn","audioSegmentTimingInfoFn","id3Fn","captionsFn","dataFn","doneFn","fmp4Tracks","isMuxed","audioStartFn","audioEndFn","videoStartFn","videoEndFn","probeResult","id3Frames","bytesAsUint8Array","isFmp4","audioCodec","videoCodec","timingInfo","finishLoading","listenForCaptions","trackIds","decryptSegment","keyBytes","decryptionWorker","decryptionHandler","requestId","decrypted","encrypted","waitForCompletion","didError","endOfAllRequests","handleLoadEnd","_ref7","loadendState","abortFn","calledAbortFn","_ref8","progressFn","handlePartialData","firstBytesReceivedAt","mediaSegmentRequest","_ref9","xhrOptions","keyRequestOptions","keyRequestCallback","keyXhr","initSegmentOptions","initSegmentRequestCallback","initSegmentXhr","segmentRequestOptions","xhrObject","segmentRequestCallback","segmentXhr","activeXhr","win","TARGET","Symbol","SCRIPT_TYPE","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","URL","webkitURL","msURL","Worker","shimWorker","filename","forceFallback","objURL","createSourceObject","wrapTerminate","selfShim","isThisThread","testWorker","testArray","revokeObjectURL","terminate","createObjectURL","Blob","blob","getBlob","worker","term","TransmuxWorker","dinf","esds","ftyp","mdat","mfhd","minf","moof","moov","mvex","mvhd","mdia","sdtp","stbl","trex","MAJOR_BRAND","MINOR_VERSION","AVC1_BRAND","VIDEO_HDLR","AUDIO_HDLR","HDLR_TYPES","VMHD","SMHD","DREF","STCO","STSC","STSZ","STTS","stream","UINT32_MAX","avc1","avcC","btrt","dref","mp4a","pasp","smhd","stco","stsc","stsz","stts","styp","vmhd","payload","setUint32","audioobjecttype","samplingfrequencyindex","channelcount","samplerate","sequenceNumber","trackFragments","flags","dependsOn","isDependedOn","hasRedundancy","videoSample","audioSample","avc1Box","sps","pps","sequenceParameterSets","pictureParameterSets","profileIdc","profileCompatibility","levelIdc","sarRatio","hSpacing","vSpacing","samplesize","trackFragmentHeader","trackFragmentDecodeTime","trackFragmentRun","sampleDependencyTable","dataOffset","upperWordBaseMediaDecodeTime","lowerWordBaseMediaDecodeTime","audioTrun","videoTrun","trunHeader","durationPresent","sizePresent","flagsPresent","bytesOffest","header","sample","isLeading","paddingValue","isNonSyncSample","degradationPriority","silence","mp4Generator","fileType","movie","groupNalsIntoFrames","nalUnits","currentNal","currentFrame","frames","nalCount","nalUnitType","keyFrame","groupFramesIntoGops","currentGop","gops","extendFirstKeyFrame","createDefaultSample","sampleForFrame","frame","generateSampleTable","baseDataOffset","concatenateNalData","nalsByteLength","numberOfNals","totalByteLength","generateSampleTableForFrame","concatenateNalDataForFrame","frameUtils","highPrefix","lowPrefix","zeroFill","makeTable","metaTable","silence_1","coneOfSilence","96000","88200","64000","48000","44100","32000","24000","16000","12000","11025","8000","clock","sumFrameByteLengths","currentObj","sum","prefixWithSilence","audioAppendStartTs","videoBaseMediaDecodeTime","baseMediaDecodeTimeTs","silentFrame","firstFrame","frameDuration","audioGapDuration","audioFillFrameCount","audioFillDuration","trimAdtsFramesByEarliestDts","adtsFrames","earliestAllowedDts","minSegmentDts","minSegmentPts","generateSampleTable$1","concatenateFrameData","audioFrameUtils","ONE_SECOND_IN_TS$1","collectDtsInfo","timelineStartInfo","maxSegmentPts","maxSegmentDts","clearDtsInfo","calculateTrackBaseMediaDecodeTime","trackDecodeInfo","USER_DATA_REGISTERED_ITU_T_T35","RBSP_TRAILING_BITS","parseSei","payloadType","payloadSize","userIdentifier","parseUserData","sei","parseCaptionPackets","userData","ccData","discardEmulationPreventionBytes","newLength","newData","emulationPreventionBytesPositions","sourceIndex","captionPacketParser","CaptionStream","captionPackets_","ccStreams_","Cea608Stream","cc708Stream_","Cea708Stream","cc","newCaptionPackets","escapedRBSP","latestDts_","ignoreNextEqualDts_","numSameDts_","flushCCStreams","flushType","flushStream","idx","presortIndex","dispatchCea608Packet","dispatchCea708Packet","activeCea608Channel_","ccStream","setsTextOrXDSActive","setsChannel1Active","setsChannel2Active","CHARACTER_TRANSLATION_708","get708CharFromCode","newCode","within708TextBlock","Cea708Window","windowNum","clearText","pendingNewLine","winAttr","penAttr","penLoc","penColor","visible","rowLock","columnLock","relativePositioning","anchorVertical","anchorHorizontal","anchorPoint","rowCount","virtualRowCount","columnCount","windowStyle","penStyle","getText","rows","rowIdx","beforeRowOverflow","addText","backspace","Cea708Service","serviceNum","currentWindow","windows","startPts","setCurrentWindow","current708Packet","services","new708Packet","add708Bytes","push708Packet","ptsVals","byte0","byte1","packet708","packetData","blockSize","seq","sizeCode","pushServiceBlock","service","initService","handleText","extendedCommands","defineWindow","clearWindows","deleteWindows","displayWindows","hideWindows","toggleWindows","setWindowAttributes","setPenAttributes","setPenColor","setPenLocation","getPts","byteIndex","flushDisplayed","isExtended","extended","_char","fillOpacity","fillRed","fillGreen","fillBlue","borderType","borderRed","borderGreen","borderBlue","wordWrap","printDirection","scrollDirection","justify","effectSpeed","effectDirection","displayEffect","displayedText","winId","endPts","pushCaption","textTag","penSize","italics","underline","edgeType","fontStyle","fgOpacity","fgRed","fgGreen","fgBlue","bgOpacity","bgRed","bgGreen","bgBlue","edgeRed","edgeGreen","edgeBlue","column","CHARACTER_TRANSLATION","getCharFromCode","BOTTOM_ROW","ROWS","createDisplayBuffer","field","dataChannel","field_","dataChannel_","setConstants","swap","char0","char1","lastControlCode_","PADDING_","RESUME_CAPTION_LOADING_","mode_","END_OF_CAPTION_","clearFormatting","displayed_","nonDisplayed_","startPts_","ROLL_UP_2_ROWS_","rollUpRows_","setRollUp","ROLL_UP_3_ROWS_","ROLL_UP_4_ROWS_","CARRIAGE_RETURN_","shiftRowsUp_","BACKSPACE_","row_","ERASE_DISPLAYED_MEMORY_","ERASE_NON_DISPLAYED_MEMORY_","RESUME_DIRECT_CAPTIONING_","isSpecialCharacter","column_","isExtCharacter","isMidRowCode","addFormatting","isOffsetControlCode","isPAC","formatting_","isColorPAC","isNormalChar","topRow_","BASE_","EXT_","CONTROL_","OFFSET_","_char2","newBaseRow","reverse","popOn","baseRow","rollUp","paintOn","captionStream","streamTypes","_MetadataStream","timestampRolloverStream","percentEncode","parseUtf8","decodeURIComponent","parseIso88591","parseSyncSafeInteger","tagParsers","TXXX","WXXX","PRIV","owner","privateData","tagSize","bufferSize","frameStart","frameSize","frameHeader","dataAlignmentIndicator","timeStamp","_TransportPacketStream","_TransportParseStream","_ElementaryStream","metadataStream","TimestampRolloverStream$1","MP2T_PACKET_LENGTH","SYNC_BYTE","bytesInBuffer","everything","parsePsi","packetsWaitingForPmt","psi","payloadUnitStartIndicator","pat","section_number","last_section_number","pmt","streamType","processPes_","STREAM_TYPES","h264","adts","timedMetadata","parsePes","packetLength","forceFlush","packetFlushable","flushStreams_","m2ts","PAT_PID","TransportPacketStream","TransportParseStream","ElementaryStream","MetadataStream","_AdtsStream","m2ts_1","ONE_SECOND_IN_TS$2","ADTS_SAMPLING_FREQUENCIES","handlePartialSegments","frameNum","frameLength","protectionSkipBytes","frameEnd","oldBuffer","sampleCount","adtsFrameDuration","ExpGolomb","workingData","workingBytesAvailable","workingWord","workingBitsAvailable","bitsAvailable","loadWord","workingBytes","availableBytes","skipBits","skipBytes","readBits","bits","valu","skipLeadingZeros","leadingZeroCount","skipUnsignedExpGolomb","skipExpGolomb","readUnsignedExpGolomb","clz","readExpGolomb","readBoolean","readUnsignedByte","_H264Stream","_NalByteStream","PROFILES_WITH_OPTIONAL_SPS_DATA","expGolomb","syncPoint","swapBuffer","100","110","122","244","44","83","86","118","128","138","139","134","currentPts","currentDts","readSequenceParameterSet","skipScalingList","nalByteStream","expGolombDecoder","deltaScale","lastScale","nextScale","chromaFormatIdc","picOrderCntType","numRefFramesInPicOrderCntCycle","picWidthInMbsMinus1","picHeightInMapUnitsMinus1","frameMbsOnlyFlag","scalingListCount","aspectRatioIdc","frameCropLeftOffset","frameCropRightOffset","frameCropTopOffset","frameCropBottomOffset","sarScale","_AacStream","H264Stream","NalByteStream","ADTS_SAMPLING_FREQUENCIES$1","parseId3TagSize","returnSize","footerPresent","getId3Offset","isLikelyAacData","parseSyncSafeInteger$1","percentEncode$1","parseIso88591$1","parseAdtsSize","lowThree","middle","highTwo","parseSampleRate","parseAacTimestamp","setTimestamp","bytesLeft","tempLength","_VideoSegmentStream","_AudioSegmentStream","_Transmuxer","_CoalesceStream","AUDIO_PROPERTIES","audioProperties","VIDEO_PROPERTIES","videoProperties","isLikelyAacData$1","ONE_SECOND_IN_TS$3","arrayEquals","generateSegmentTimingInfo","startDts","endDts","prependedContentDuration","ptsOffsetFromDts","decodeDuration","presentationDuration","setEarliestDts","earliestDts","setVideoBaseMediaDecodeTime","setAudioAppendStart","videoClockCyclesOfSilencePrefixed","minPTS","gopCache_","nalUnit","gopForFusion","firstGop","lastGop","resetStream_","getGopForFusion_","alignedGops","alignGopsAtEnd","alignGopsAtEnd_","alignGopsAtStart_","gop","dtsDistance","nearestGopObj","currentGopObj","halfSecond","allowableOverlap","nearestDistance","alignIndex","gopIndex","align","alignEndIndex","matchFound","trimIndex","alignGopsWith","newGopsToAlignWith","numberOfTracks","remuxTracks","pendingTracks","videoTrack","pendingBoxes","pendingCaptions","pendingMetadata","pendingBytes","emittedTracks","audioTrack","id3","cueTime","setRemux","hasFlushed","transmuxPipeline_","setupAacPipeline","pipeline","aacStream","audioTimestampRolloverStream","timedMetadataTimestampRolloverStream","adtsStream","coalesceStream","headOfPipeline","audioSegmentStream","setupTsPipeline","packetStream","elementaryStream","h264Stream","videoSegmentStream","setBaseMediaDecodeTime","isAac","resetCaptions","Transmuxer","VideoSegmentStream","AudioSegmentStream","Adts","ONE_SECOND_IN_TS$4","segmentStartPts","segmentEndPts","processFrames_","resetTiming_","frameCache","ensureNextFrameIsKeyFrame","processNals_","cacheLastFrame","sequence","videoFrameDts","videoFramePts","resetTimingAndConfig_","isLikelyAacData$2","createPipeline","tsPipeline","elementary","timestampRollover","aacPipeline","audioRollover","timedMetadataRollover","setupPipelineListeners","transmuxer$1","bin","parseType$1","parseType_1","toUnsigned$1","findBox_1","toUnsigned$2","parseSampleFlags","parseSampleFlags_1","trun$1","dataOffsetPresent","firstSampleFlagsPresent","sampleDurationPresent","sampleSizePresent","sampleFlagsPresent","sampleCompositionTimeOffsetPresent","getInt32","baseDataOffsetPresent","sampleDescriptionIndexPresent","defaultSampleDurationPresent","defaultSampleSizePresent","defaultSampleFlagsPresent","durationIsEmpty","defaultBaseIsMoof","sampleDescriptionIndex","defaultSampleDuration","defaultSampleSize","defaultSampleFlags","baseDataOffsetIsMoof","discardEmulationPreventionBytes$1","CaptionStream$1","mapToSample","approximateOffset","findSeiNals","avcStream","seiNal","lastMatchedSample","avcView","matchingSample","parseSamples","truns","allSamples","trackRun","parseCaptionNals","videoTrackId","mdats","captionNals","mdatTrafPairs","matchingTraf","pair","seiNals","headerInfo","parseEmbeddedCaptions","CaptionParser","segmentCache","parsedCaptions","parsingPartial","isInitialized","isNewInit","parsedData","cachedSegment","pushNals","nals","nal","clearParsedCaptions","resetCaptionStream","clearAllCaptions","captionParser","typeFromStreamString","streamString","wireFullTransmuxerEvents","initArray","typedArray","decode","presentation","wirePartialTransmuxerEvents","timingInfoInSeconds","MessageHandlers","pushMp4Captions","parsed","clearAllMp4Captions","clearParsedMp4Captions","setTimestampOffset","timestampOffset","TransmuxerWorker","messageHandlers","transmuxerWorker","mediaAttributes","isMaat","groupId","codecInfo","defaultCodecs","logger","logFn","representationToString","property","stableSort","sortFn","newArray","cmp","leftBandwidth","rightBandwidth","leftWidth","rightWidth","playerBandwidth","playerWidth","playerHeight","limitRenditionByPlayerDimensions","sortedPlaylistReps","rep","enabledPlaylistReps","bandwidthPlaylistReps","highestRemainingBandwidthRep","bandwidthBestRep","_chosenRep","haveResolution","resolutionBestRepList","resolutionPlusOneList","resolutionPlusOneSmallest","resolutionPlusOneRep","resolutionBestRep","chosenRep","_type","pixelRatio","useDevicePixelRatio","devicePixelRatio","systemBandwidth","decay","average","minRebufferMaxBandwidthSelector","syncController","compatiblePlaylists","enabledPlaylists","bandwidthPlaylists","rebufferingEstimates","getSyncPoint","numRequests","requestTimeEstimate","rebufferingImpact","noRebufferingPlaylists","estimate","lowestBitrateCompatibleVariantSelector","playlistsWithVideo","createCaptionsTrackIfNotExists","inbandTextTracks","captionArray","Cue","WebKitDataCue","deprecateOldCue","metadataArray","videoDuration","metadataTrack","metadataTrack_","cuesArray","cuesGroupedByStartTime","timeSlot","sortedStartTimes","cueGroup","nextTime","createMetadataTrackIfNotExists","inBandMetadataTrackDispatchType","removeCuesFromTrack","removeDuplicateCuesFromTrack","duplicates","occurrences","dupe","currentTimePts","updateGopBuffer","updatedBuffer","shallowEqual","akeys","bkeys","CHECK_BUFFER_DELAY","finite","MIN_SEGMENT_DURATION_TO_SAVE_STATS","illegalMediaSwitch","loaderType","startingMedia","safeBackBufferTrimTime","trimTime","maxTrimTime","segmentInfoString","_segmentInfo$segment","_segmentInfo$playlist","_segmentInfo$playlist2","timingInfoPropertyForMedia","timestampOffsetForSegment","overrideCheck","shouldWaitForTimelineChange","timelineChangeController","audioDisabled","lastMainTimelineChange","lastTimelineChange","pendingAudioTimelineChange","pendingTimelineChange","mediaDuration","audioDuration","segmentTooLong","maxDuration","getTroublesomeSegmentDurationMessage","sourceType","isSegmentWayTooLong","isSegmentSlightlyTooLong","segmentTooLongMessage","severity","_videojs$EventTarget","SegmentLoader","mediaSource","throughput","roundTrip","resetStats_","hasPlayed_","hasPlayed","seekable_","seeking_","mediaSource_","loaderType_","currentMediaInfo_","startingMediaInfo_","segmentMetadataTrack_","segmentMetadataTrack","goalBufferLength_","goalBufferLength","sourceType_","sourceUpdater_","sourceUpdater","inbandTextTracks_","state_","handlePartialData_","timelineChangeController_","shouldSaveSegmentTimingInfo_","checkBufferTimeout_","currentTimeline_","pendingSegment_","xhrOptions_","pendingSegments_","audioDisabled_","isPendingTimestampOffset_","gopBuffer_","timeMapping_","safeAppend_","appendInitSegment_","playlistOfLastInitSegment_","callQueue_","loadQueue_","metadataQueue_","activeInitSegmentId_","initSegments_","cacheEncryptionKeys_","cacheEncryptionKeys","keyCache_","decrypter_","decrypter","syncController_","syncPoint_","segmentIndex","transmuxer_","createTransmuxer_","triggerSyncInfoUpdate_","isEndOfStream_","ended_","fetchAtBuffer_","logger_","newState","hasEnoughInfoToAppend_","processCallQueue_","hasEnoughInfoToLoad_","processLoadQueue_","mediaBytesTransferred","mediaRequests","mediaRequestsAborted","mediaRequestsTimedout","mediaRequestsErrored","mediaTransferDuration","mediaSecondsLoaded","abort_","setAudio","removeAudio","monitorBuffer_","abortRequests","clearPendingTimelineChange","checkForAbort_","_error","endOfStream","buffered_","_this$startingMediaIn","videoBuffered","audioBuffered","initSegmentForMap","storedMap","segmentKey","storedKey","couldBeginLoading_","playlist_","setDateTimeMapping","init_","resetEverything","newPlaylist","oldPlaylist","syncInfo","oldId","resyncLoader","mediaSequenceDiff","saveExpiredSegmentInfo","resetLoader","removesRemaining","removeFinished","removeVideo","monitorBufferTick_","fillBuffer_","updating","checkBuffer_","loadSegment_","appendedLastSegment","currentMediaIndex","lastBufferedEnd","bufferedTime","nextMediaIndex","isSyncRequest","getSyncSegmentCandidate_","mediaSourceInfo","_mediaSourceInfo","generateSegmentInfo_","segmentIndexArray","audioTimestampOffset","videoTimestampOffset","random","earlyAbortWhenNeeded_","measuredBandwidth","requestTimeRemaining","timeUntilRebuffer$1","switchCandidate","timeSavedBySwitching","minimumTimeSaving","handleAbort_","handleProgress_","simpleSegment","handleTrackInfo_","checkForIllegalMediaSwitch","handleTimingInfo_","timeType","timingInfoProperty","handleCaptions_","captionData","hasAppendedData_","captionTracks","captionTrack","trackName","_captionTracks$trackN","handleId3_","processMetadataQueue_","callQueue","fun","loadQueue","_this$currentMediaInf","setTimeMapping_","updateMediaSecondsLoaded_","firstVideoFrameTimeForData","useVideoTimingInfo","trueSegmentStart_","currentStart","currentVideoTimestampOffset","updateAppendInitSegmentStatus","updateSourceBufferTimestampOffset_","appendData_","changedTimestampOffset","getInitSegmentAndUpdateState_","appendToSourceBuffer_","appendBuffer","handleSegmentTimingInfo_","segmentTimingInfo","transmuxedDecodeStart","transmuxedDecodeEnd","trimBackBuffer_","updateTransmuxerAndRequestSegment_","shouldUpdateTransmuxerTimestampOffset_","createSimplifiedSegmentObj_","segmentRequestFinished_","removeToTime","previousSegment","saveTransferStats_","saveBandwidthRelatedStats_","handleTimeout_","isEndOfStream","isWalkingForward","isDiscontinuity","waitForAppendsToComplete_","timelineMapping","mappingForTimeline","_this$currentMediaInf2","waitForVideo","waitForAudio","waitingOnAppends","checkAppendsDone_","videoQueueCallback","audioQueueCallback","handleAppendsDone_","illegalMediaSwitchError","didChange","updateTimingInfoEnd_","prioritizedTimingInfo","saveSegmentTimingInfo","shouldSaveTimelineMapping","segmentDurationMessage","recordThroughput_","addSegmentMetadataCue_","segmentProcessingTime","segmentProcessingThroughput","toTitleCase$1","bufferTypes","_updating","sourceBuffer","queuePending","nextQueueIndexOfType","queueEntry","shiftQueue","queueIndex","cleanupBuffer","titleType","inSourceBuffers","sourceBuffers","actions","_callback","_duration","addSourceBuffer","mime","removeSourceBuffer","changeType","pushQueue","onUpdateend","SourceUpdater","sourceopenListener_","audioTimestampOffset_","videoTimestampOffset_","delayedAudioAppendQueue_","videoAppendQueued_","onVideoUpdateEnd_","onAudioUpdateEnd_","onVideoError_","videoError_","onAudioError_","audioError_","createdSourceBuffers_","initializedEme_","triggeredReady_","initializedEme","hasCreatedSourceBuffers","hasInitializedAnyEme","createSourceBuffers","addOrChangeSourceBuffers","canRemoveSourceBuffer","canChangeType","SourceBuffer","processedAppend_","videoBuffer","que","audioBuffer","setDuration","uint8ToUtf8","uintArray","VTT_LINE_TERMINATORS","_char3","_SegmentLoader","VTTSegmentLoader","subtitlesTrack_","featuresNativeTextTracks_","combinedByteLength","combinedSegment","skipEmptySegments_","timestampOffsetForTimeline","checkTimestampOffset","stopForError","loadHandler","requested","parseVTTCues_","updateTimeMapping_","timelines","decoder","decodeBytesToString","TextDecoder","timestampmap","MPEGTS","LOCAL","ontimestampmap","mapData","segmentData","mappingObj","diff","firstStart","lastStart","findAdCue","mediaTime","adStartTime","adEndTime","_segment$cueOutCont$s","adOffset","adTotal","syncPointStrategies","run","datetimeToDisplayTime","lastDistance","segmentStart","discontinuitySync","discontinuities","SyncController","syncPoints","runStrategies_","selectSyncPoint_","getExpiredTime","strategy","bestSyncPoint","bestDistance","bestStrategy","newDistance","lastRemovedSegment","playlistTimestamp","didCalculateSegmentTimeMapping","calculateSegmentTimeMapping_","saveDiscontinuitySyncInfo_","accuracy","mediaIndexDiff","TimelineChangeController","pendingTimelineChanges_","lastTimelineChanges_","Decrypter","_defineProperties","_createClass","Constructor","protoProps","staticProps","createClass","inheritsLoose","unpad","padded","precompute","xInv","x2","x4","x8","tEnc","tDec","tables","encTable","decTable","sbox","sboxInv","th","aesTables","AES","_tables","keyLen","rcon","encKey","decKey","decrypt","encrypted0","encrypted1","encrypted2","encrypted3","out","a2","b2","c2","nInnerRounds","kIndex","table","table0","table1","table2","table3","AsyncStream","jobs","timeout_","processJob_","job","ntoh","word","initVector","init0","init1","init2","init3","wordIx","encrypted32","Int32Array","decipher","decrypted32","STEP","asyncStream_","decryptChunk_","DecrypterWorker","decrypterWorker","audioTrackKind_","stopLoaders","segmentLoader","activePlaylistLoader","startLoaders","playlistLoader","onGroupChanged","_settings$segmentLoad","segmentLoaders","mainSegmentLoader","activeTrack","activeGroup","previousActiveLoader","onGroupChanging","onTrackChanged","_settings$segmentLoad2","onError","blacklistCurrentPlaylist","defaultTrack","setupListeners","requestOptions","initialize","_settings$master","_settings$mediaTypes$","groups","groupPlaylists","_loop2","variantLabel","unmatchingPlaylists","_settings$mediaTypes$2","_settings$mediaTypes$3","variants","setupMediaGroups","onAudioTrackChanged","createMediaTypes","ABORT_EARLY_BLACKLIST_SECONDS","loaderStats","sumLoaderStat","audioSegmentLoader_","mainSegmentLoader_","shouldSwitchToMedia","currentPlaylist","nextPlaylist","forwardBuffer","bufferLowWaterLine","bufferHighWaterLine","experimentalBufferBasedABR","sharedLogLine","maxBufferLowWaterLine","nextBandwidth","currBandwidth","logLine","_logLine","MasterPlaylistController","externVhs","useCueTags","enableLowInitialPlaylist","useCueTags_","cueTagsTrack_","requestOptions_","pauseLoading","mediaTypes_","handleDurationChange_","handleSourceOpen_","handleSourceEnded_","segmentLoaderSettings","setupMasterPlaylistLoaderListeners_","subtitleSegmentLoader_","setupSegmentLoaderListeners_","startABRTimer_","stopABRTimer_","triggeredFmp4Usage","checkABR_","selectPlaylist","shouldSwitchToMedia_","abrTimer_","requestTimeout","triggerPresenceUsage_","setupFirstPlay","updatedPlaylist","selectedMedia","excludeUnsupportedVariants_","selectInitialPlaylist","initialMedia_","haveJsonSource","handleUpdatedMediaPlaylist","playlistOutdated","stuckAtPlaylistEnd_","updateAdCues_","updateDuration","defaultDemuxed","audioGroupKeys","onSyncInfoUpdate_","onEndOfStream","delegateLoaders_","updateCodecs","tryToCreateSourceBuffers_","getCodecsOrExclude_","mediaSecondsLoaded_","smoothQualityChange_","fastQualityChange_","absolutePlaylistEnd","reincluded","errorMessage","delayDuration","fnNames","loaders","dontFilterPlaylist","loader","audioSeekable","mainSeekable","oldEnd","oldStart","updateDuration_","areMediaTypesKnown_","usingAudioLoader","playlistCodecs","unsupportedAudio","supportFunction","unsupportedCodecs","supporter","variant","variantAudioGroup","switchMessages","newCodec","oldCodec","excludeIncompatibleVariants_","ids","unsupported","codecCount","variantCodecs","variantCodecCount","blacklistReasons","variantCodecStrings","variantCodecString","newMax","enableFunction","playlistID","changePlaylistFn","incompatible","currentlyEnabled","Representation","vhsHandler","mpc","masterPlaylistController_","smoothQualityChange","qualityChangeFunction","renditionSelectionMixin","timerCancelEvents","closeToBufferedContent","PlaybackWatcher","masterPlaylistController","allowSeeksWithinUnsafeLiveWindow","liveRangeSafeTimeDelta","consecutiveUpdates","lastRecordedTime","timer_","checkCurrentTimeTimeout_","canPlayHandler","monitorCurrentTime_","waitingHandler","techWaiting_","cancelTimerHandler","cancelTimer_","fixesBadSeeksHandler","fixesBadSeeks_","loaderTypes","loaderChecks","resetSegmentDownloads_","updateend","checkSegmentDownloads_","checkCurrentTime_","isBufferedDifferent","playlistId","waiting_","isAfterSeekableRange","afterSeekableWindow_","beforeSeekableWindow_","currentRange","livePoint","videoUnderflow","videoUnderflow_","nextRange","difference","skipTheGap_","allowedEnd","gap","lastVideoRange","videoRange","audioRange","gapFromVideoUnderflow_","scheduledCurrentTime","gaps","defaultOptions","errorInterval","getSource","IWillNotUseThisInPlugins","initPlugin","lastCalled","localOptions","loadedMetadataHandler","cleanupEvents","reinitPlugin","reloadSourceOnError","version$1","version$1$1","version$2","version$3","version$4","Vhs$1","STANDARD_PLAYLIST_SELECTOR","INITIAL_PLAYLIST_SELECTOR","lastBandwidthSelector","movingAverageBandwidthSelector","comparePlaylistBandwidth","comparePlaylistResolution","LOCAL_STORAGE_KEY$1","handleVhsMediaChange","qualityLevels","selectedIndex_","handleVhsLoadedMetadata","addQualityLevel","keySystemOptions","videoPlaylist","audioPlaylist","videoContentType","audioContentType","keySystemContentTypes","getAllPsshKeySystemsOptions","keySystems","keySystemsArr","keySystemsOptions","keySystemsObj","waitForKeySessionCreation","sourceKeySystems","audioMedia","mainPlaylists","initializeMediaKeys","keySystemsOptionsArr","initializationFinishedPromises","keySessionCreatedPromises","race","setupEmeOptions","sourceOptions","storedObject","objectToStore","expandDataUri","dataUri","supportsNativeHls","canPlay","canItPlay","supportsNativeDash","supportsTypeNatively","Component$1","VhsHandler","hls","source_","ignoreNextSeekingEvent_","setOptions_","overrideNative","featuresNativeVideoTracks","featuresNativeAudioTracks","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","useBandwidthFromLocalStorage","option","playbackWatcherOptions","playbackWatcher_","defaultSelector","invThroughput","invBandwidth","systemBitrate","mediaRequests_","mediaRequestsAborted_","mediaRequestsTimedout_","mediaRequestsErrored_","mediaTransferDuration_","mediaBytesTransferred_","currentTech","playerDimensions","setupEme_","setupQualityLevels_","mediaSourceUrl_","audioPlaylistLoader","didSetupEmeOptions","qualityLevels_","dash","convertToProgramTime","VhsSourceHandler","_videojs$mergeOptions","_videojs$mergeOptions2","supportedType","canUseMsePlayback","storages","localStore","cookieStore","memoryStore","defaultPlugin","expiredPlugin","storeEngine","engine","createStore","storageNamespace","VolumeChange","ContentLoadedMetaData","CanPlay","Play","Click","PageHide","Vast","AdSkip","AdError","AdStart","AdMute","AdEnd","Vpaid","AdStopped","AdClickThru","AdPaused","AdPlaying","AdVolumeChange","AdVideoStart","AdVideoFirstQuartile","AdVideoMidpoint","AdVideoThirdQuartile","AdVideoComplete","AdImpression","Dispose","TimeUpdate","ResolutionChange","UpdateSources","VolumePersister","Volume","Mute","ResolutionSwitcher","ChosenUserResolution","Index","volumePersisterDefaults","StorageKeys","volumeKey","videojsEvents","storage","persistedVolume","persistedMute","_arrayWithHoles","_iterableToArrayLimit","_arr","_n","_d","_e","_s","_arrayLikeToArray","arr2","_unsupportedIterableToArray","minLen","arrayLikeToArray","_nonIterableRest","_slicedToArray","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","ResolutionMenuItem","currentResolution","chosen","storageKeys","ResolutionMenuButton","dynamicLabel","staticLabel","labels","currentSelection","getGroupedSrc","ui","resolutionSwitcherDefaults","bucketSources","resolutions","chooseSrc","groupedSrc","selectedResolution","selectedLabel","chosenUserResolution","updateSrc","currentResolutionState","setSourcesSanitized","customSourcePicker","isPaused","bigPlayButton","handleSeekEvent","resolutionSwitcher","videoId","mounted","$on","custom1","playerData","videos","initPlayer","loadSources","beforeDestroy","fetch","URLToolkit","relativeUrl","buildAbsoluteURL","_typeof","assertThisInitialized","_possibleConstructorReturn","DESCRIPTORS","objectKeys","toIndexedObject","propertyIsEnumerable","f","createMethod","TO_ENTRIES","_isNativeReflectConstruct","Reflect","Proxy","valueOf","dest","Class","Super","pt","ppt","htmlns","NodeType","ELEMENT_NODE","ATTRIBUTE_NODE","TEXT_NODE","CDATA_SECTION_NODE","ENTITY_REFERENCE_NODE","ENTITY_NODE","PROCESSING_INSTRUCTION_NODE","COMMENT_NODE","DOCUMENT_NODE","DOCUMENT_TYPE_NODE","DOCUMENT_FRAGMENT_NODE","NOTATION_NODE","ExceptionCode","ExceptionMessage","HIERARCHY_REQUEST_ERR","INDEX_SIZE_ERR","DOMSTRING_SIZE_ERR","NOT_FOUND_ERR","WRONG_DOCUMENT_ERR","INVALID_CHARACTER_ERR","NO_DATA_ALLOWED_ERR","NO_MODIFICATION_ALLOWED_ERR","INUSE_ATTRIBUTE_ERR","NOT_SUPPORTED_ERR","INVALID_STATE_ERR","SYNTAX_ERR","INVALID_MODIFICATION_ERR","NAMESPACE_ERR","INVALID_ACCESS_ERR","DOMException","captureStackTrace","NodeList","LiveNodeList","refresh","_node","_refresh","_updateLiveList","inc","_inc","ls","__set__","NamedNodeMap","_findNodeIndex","_addNamedNode","newAttr","oldAttr","ownerElement","_onRemoveAttribute","_onAddAttribute","_removeNamedNode","lastIndex","features","_features","feature","Node","_xmlEncoder","_visitNode","Document","ns","_nsMap","_onUpdateChild","cs","_removeChild","previous","previousSibling","lastChild","_insertBefore","nextChild","cp","newFirst","newLast","pre","_appendSingleChild","Attr","CharacterData","Text","Comment","CDATASection","DocumentType","Notation","Entity","EntityReference","DocumentFragment","ProcessingInstruction","nodeSerializeToString","isHtml","nodeFilter","buf","lookupPrefix","visibleNamespaces","namespace","serializeToString","needNamespaceDefine","isHTML","pubid","sysid","sub","internalSubset","importNode","deep","node2","attrs2","_ownerElement","getNamedItem","setNamedItem","setNamedItemNS","getNamedItemNS","removeNamedItem","removeNamedItemNS","hasFeature","versions","qualifiedName","doctype","root","refChild","oldChild","appendData","hasAttributes","lookupNamespaceURI","isDefaultNamespace","importedNode","getElementById","rtv","createAttribute","specified","createEntityReference","pl","getAttributeNode","removeAttributeNode","setAttributeNodeNS","removeAttributeNS","getAttributeNodeNS","hasAttributeNS","getAttributeNS","setAttributeNS","getElementsByTagNameNS","substringData","insertData","replaceData","deleteData","splitText","newText","newNode","getTextContent","$$length","toUint8","bytesToString","id3Size","isLikely","ts","isLikelyTypes","isLikelyFn","detectContainerForBytes","isLikelyFmp4MediaSegment","MAX_UINT32","parseSidx","referenceId","earliestPresentationTime","referenceCount","getUint16","startsWithSap","sapType","sapDeltaTime","alert","confirm","prompt","atob","Buffer","decodeB64ToUint8Array","b64Text","decodedString","SafeParseTuple","reviver","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","LN2","iteratorClose","ENTRIES","checkCorrectnessOfIteration","INCORRECT_ITERATION","iterable","isTypedArray","stringToBytes","stringIsBytes","encodeURIComponent","concatTypedArrays","buffers","totalLength","autoKeyword","directionSetting","alignSetting","findDirectionSetting","findAlignSetting","hasBeenReset","_id","_pauseOnExit","_startTime","_endTime","_text","_region","_vertical","_snapToLines","_line","_lineAlign","_position","_positionAlign","_size","_align","setting","SyntaxError","getCueAsHTML","convertCueToDOMTree","FunctionPrototype","FunctionPrototypeToString","nameRE","isNativeReflectConstruct","_construct","Parent","MPEGURL_REGEX","DASH_REGEX","simpleTypeFromSourceType","base64","ieee754","typedArraySupport","foo","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","RangeError","encodingOrOffset","allocUnsafe","fromArrayBuffer","fromString","fromObject","assertSize","alloc","encoding","checked","isEncoding","actual","fromArrayLike","isBuffer","isnan","SlowBuffer","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","bidirectionalIndexOf","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","readUInt16BE","foundIndex","hexWrite","remaining","strLen","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","decodeCodePointsArray","INSPECT_MAX_BYTES","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","compare","pos","swap16","swap32","swap64","equals","thisStart","thisEnd","thisCopy","targetCopy","includes","MAX_ARGUMENTS_LENGTH","codePoints","toHex","checkOffset","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","maxBytes","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","base64clean","stringtrim","units","leadSurrogate","byteArray","hi","lo","dst","_objCreate","ParsingError","errorData","parseTimeStamp","input","computeSeconds","Settings","parseOptions","keyValueDelim","groupDelim","kv","parseCue","regionList","oInput","consumeTimeStamp","Errors","BadTimeStamp","consumeCueSettings","region","alt","vals","vals0","integer","lineAlign","snapToLines","center","positionAlign","skipWhitespace","BadSignature","dflt","defaultKey","TEXTAREA_ELEMENT","TAG_NAME","u","ruby","DEFAULT_COLOR_CLASS","white","lime","cyan","red","yellow","magenta","blue","black","TAG_ANNOTATION","NEEDS_PARENT","parseContent","nextToken","consume","shouldAdd","annotation","rootDiv","tagStack","classes","cl","bgColor","colorName","propValue","strongRTLRanges","isStrongRTLChar","determineBidi","nodeStack","pushNodes","nextTextNode","computeLinePos","textTrackList","mediaElement","StyleBox","CueStyleBox","styleOptions","styles","bottom","display","writingMode","unicodeBidi","applyStyles","textAlign","font","whiteSpace","textPos","formatStyle","move","BoxPosition","lh","rects","getClientRects","lineHeight","moveBoxToLinePosition","styleBox","containerBox","boxPositions","findBestPosition","axis","bestPosition","specifiedPosition","percentage","overlapsOppositeAxis","within","overlapsAny","intersectPercentage","boxPosition","linePos","maxPosition","initialAxis","calculatedPercentage","toCSSCompatValues","unit","toMove","overlaps","intersectArea","getSimpleBoxPosition","cuetext","FONT_SIZE_PERCENT","FONT_STYLE","CUE_BACKGROUND_PADDING","overlay","paddedOverlay","shouldCompute","margin","reportOrThrowError","collectNextLine","parseRegion","xy","anchor","lines","regionAnchorX","regionAnchorY","viewportAnchorX","viewportAnchorY","scroll","onregion","parseTimestampMap","parseHeader","alreadyCollectedLine","hasSubstring","URL_REGEX","FIRST_SEGMENT_REGEX","SLASH_DOT_REGEX","SLASH_DOT_DOT_REGEX","baseURL","relativeURL","alwaysNormalize","basePartsForNormalise","parseURL","normalizePath","buildURLFromParts","relativeParts","scheme","baseParts","netLoc","builtParts","query","baseURLPath","newPath","defineWellKnownSymbol","IndexedObject","IS_RIGHT","memo","nameStartChar","nameChar","tagNamePattern","S_TAG","S_ATTR","S_ATTR_SPACE","S_EQ","S_ATTR_NOQUOT_VALUE","S_ATTR_END","S_TAG_SPACE","S_TAG_CLOSE","defaultNSMapCopy","fixedFromCharCode","surrogate1","surrogate2","entityReplacer","appendText","xt","lineEnd","linePattern","lineStart","parseStack","currentNSMap","closeMap","tagStart","localNSMap","endMatch","endIgnoreCaseMach","parseInstruction","parseDCC","ElementAttributes","parseElementStartPart","closed","fixSelfClosed","locator2","copyLocator","parseHtmlSpecialContent","setTagName","nsp","nsPrefix","_copy","elStartEnd","elEndStart","matchs","lastMatch","endDTD","_set_proto_","thiz","reg","getLocalName","$map","arrayMethodHasSpeciesSupport","HAS_SPECIES_SUPPORT","probe","parsePsi_","parseAudioPes_","pesType","endLoop","parseVideoPes_","firstKeyFrame","adjustTimestamp_","baseTimestamp","audioBaseTimestamp","dtsTime","videoBaseTimestamp","inspectAac_","audioCount","audioTimescale","inspectTs_","isAacData","searchInput","hasKeyCode","search","foundNamedKey","aliases","nameOrCode","alias","copyConstructorProperties","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolPrototype","symbolToString","native","regexp","symbol","storeAPI","optionalDefaultValue","_namespacePrefix","_deserialize","_serialize","namespacedKey","_namespaceRegexp","hasNamespace","addPlugin","_addPlugin","_warn","_console","namespacePrefix","namespaceRegexp","legalNamespaces","_privateStoreProps","_testStorage","testStr","ok","_assignPluginFnProp","pluginFnProp","oldFn","newFnArgs","strVal","defaultVal","_addStorage","seenPlugin","pluginProperties","addStorage","store","raw","_inherits","expirePlugin","expirations","expire_set","expire_get","expire_remove","getExpiration","removeExpiredKeys","expiration","_checkExpiration","doccy","minDoc","topLevel","scrollSetting","findScrollSetting","isValidPercentValue","_lines","_regionAnchorX","_regionAnchorY","_viewportAnchorX","_viewportAnchorY","_scroll"],"mappings":"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","file":"js/chunk-0860a08a.js","sourcesContent":["\"use strict\";\nvar window = require(\"global/window\")\nvar _extends = require(\"@babel/runtime/helpers/extends\");\nvar isFunction = require('is-function');\n\n/**\n * @license\n * slighly modified parse-headers 2.0.2 \n * Copyright (c) 2014 David Björklund\n * Available under the MIT license\n * \n */\n\nvar parseHeaders = function(headers) {\n var result = {};\n\n if (!headers) {\n return result;\n }\n\n headers.trim().split('\\n').forEach(function(row) {\n var index = row.indexOf(':');\n var key = row.slice(0, index).trim().toLowerCase();\n var value = row.slice(index + 1).trim();\n\n if (typeof(result[key]) === 'undefined') {\n result[key] = value\n } else if (Array.isArray(result[key])) {\n result[key].push(value)\n } else {\n result[key] = [ result[key], value ]\n }\n });\n\n return result;\n};\n\nmodule.exports = createXHR\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = createXHR;\ncreateXHR.XMLHttpRequest = window.XMLHttpRequest || noop\ncreateXHR.XDomainRequest = \"withCredentials\" in (new createXHR.XMLHttpRequest()) ? createXHR.XMLHttpRequest : window.XDomainRequest\n\nforEachArray([\"get\", \"put\", \"post\", \"patch\", \"head\", \"delete\"], function(method) {\n createXHR[method === \"delete\" ? \"del\" : method] = function(uri, options, callback) {\n options = initParams(uri, options, callback)\n options.method = method.toUpperCase()\n return _createXHR(options)\n }\n})\n\nfunction forEachArray(array, iterator) {\n for (var i = 0; i < array.length; i++) {\n iterator(array[i])\n }\n}\n\nfunction isEmpty(obj){\n for(var i in obj){\n if(obj.hasOwnProperty(i)) return false\n }\n return true\n}\n\nfunction initParams(uri, options, callback) {\n var params = uri\n\n if (isFunction(options)) {\n callback = options\n if (typeof uri === \"string\") {\n params = {uri:uri}\n }\n } else {\n params = _extends({}, options, {uri: uri})\n }\n\n params.callback = callback\n return params\n}\n\nfunction createXHR(uri, options, callback) {\n options = initParams(uri, options, callback)\n return _createXHR(options)\n}\n\nfunction _createXHR(options) {\n if(typeof options.callback === \"undefined\"){\n throw new Error(\"callback argument missing\")\n }\n\n var called = false\n var callback = function cbOnce(err, response, body){\n if(!called){\n called = true\n options.callback(err, response, body)\n }\n }\n\n function readystatechange() {\n if (xhr.readyState === 4) {\n setTimeout(loadFunc, 0)\n }\n }\n\n function getBody() {\n // Chrome with requestType=blob throws errors arround when even testing access to responseText\n var body = undefined\n\n if (xhr.response) {\n body = xhr.response\n } else {\n body = xhr.responseText || getXml(xhr)\n }\n\n if (isJson) {\n try {\n body = JSON.parse(body)\n } catch (e) {}\n }\n\n return body\n }\n\n function errorFunc(evt) {\n clearTimeout(timeoutTimer)\n if(!(evt instanceof Error)){\n evt = new Error(\"\" + (evt || \"Unknown XMLHttpRequest Error\") )\n }\n evt.statusCode = 0\n return callback(evt, failureResponse)\n }\n\n // will load the data & process the response in a special response object\n function loadFunc() {\n if (aborted) return\n var status\n clearTimeout(timeoutTimer)\n if(options.useXDR && xhr.status===undefined) {\n //IE8 CORS GET successful response doesn't have a status field, but body is fine\n status = 200\n } else {\n status = (xhr.status === 1223 ? 204 : xhr.status)\n }\n var response = failureResponse\n var err = null\n\n if (status !== 0){\n response = {\n body: getBody(),\n statusCode: status,\n method: method,\n headers: {},\n url: uri,\n rawRequest: xhr\n }\n if(xhr.getAllResponseHeaders){ //remember xhr can in fact be XDR for CORS in IE\n response.headers = parseHeaders(xhr.getAllResponseHeaders())\n }\n } else {\n err = new Error(\"Internal XMLHttpRequest Error\")\n }\n return callback(err, response, response.body)\n }\n\n var xhr = options.xhr || null\n\n if (!xhr) {\n if (options.cors || options.useXDR) {\n xhr = new createXHR.XDomainRequest()\n }else{\n xhr = new createXHR.XMLHttpRequest()\n }\n }\n\n var key\n var aborted\n var uri = xhr.url = options.uri || options.url\n var method = xhr.method = options.method || \"GET\"\n var body = options.body || options.data\n var headers = xhr.headers = options.headers || {}\n var sync = !!options.sync\n var isJson = false\n var timeoutTimer\n var failureResponse = {\n body: undefined,\n headers: {},\n statusCode: 0,\n method: method,\n url: uri,\n rawRequest: xhr\n }\n\n if (\"json\" in options && options.json !== false) {\n isJson = true\n headers[\"accept\"] || headers[\"Accept\"] || (headers[\"Accept\"] = \"application/json\") //Don't override existing accept header declared by user\n if (method !== \"GET\" && method !== \"HEAD\") {\n headers[\"content-type\"] || headers[\"Content-Type\"] || (headers[\"Content-Type\"] = \"application/json\") //Don't override existing accept header declared by user\n body = JSON.stringify(options.json === true ? body : options.json)\n }\n }\n\n xhr.onreadystatechange = readystatechange\n xhr.onload = loadFunc\n xhr.onerror = errorFunc\n // IE9 must have onprogress be set to a unique function.\n xhr.onprogress = function () {\n // IE must die\n }\n xhr.onabort = function(){\n aborted = true;\n }\n xhr.ontimeout = errorFunc\n xhr.open(method, uri, !sync, options.username, options.password)\n //has to be after open\n if(!sync) {\n xhr.withCredentials = !!options.withCredentials\n }\n // Cannot set timeout with sync request\n // not setting timeout on the xhr object, because of old webkits etc. not handling that correctly\n // both npm's request and jquery 1.x use this kind of timeout, so this is being consistent\n if (!sync && options.timeout > 0 ) {\n timeoutTimer = setTimeout(function(){\n if (aborted) return\n aborted = true//IE9 may still call readystatechange\n xhr.abort(\"timeout\")\n var e = new Error(\"XMLHttpRequest timeout\")\n e.code = \"ETIMEDOUT\"\n errorFunc(e)\n }, options.timeout )\n }\n\n if (xhr.setRequestHeader) {\n for(key in headers){\n if(headers.hasOwnProperty(key)){\n xhr.setRequestHeader(key, headers[key])\n }\n }\n } else if (options.headers && !isEmpty(options.headers)) {\n throw new Error(\"Headers cannot be set on an XDomainRequest object\")\n }\n\n if (\"responseType\" in options) {\n xhr.responseType = options.responseType\n }\n\n if (\"beforeSend\" in options &&\n typeof options.beforeSend === \"function\"\n ) {\n options.beforeSend(xhr)\n }\n\n // Microsoft Edge browser sends \"undefined\" when send is called with undefined value.\n // XMLHttpRequest spec says to pass null as body to indicate no body\n // See https://github.com/naugtur/xhr/issues/100.\n xhr.send(body || null)\n\n return xhr\n\n\n}\n\nfunction getXml(xhr) {\n // xhr.responseXML will throw Exception \"InvalidStateError\" or \"DOMException\"\n // See https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/responseXML.\n try {\n if (xhr.responseType === \"document\") {\n return xhr.responseXML\n }\n var firefoxBugTakenEffect = xhr.responseXML && xhr.responseXML.documentElement.nodeName === \"parsererror\"\n if (xhr.responseType === \"\" && !firefoxBugTakenEffect) {\n return xhr.responseXML\n }\n } catch (e) {}\n\n return null\n}\n\nfunction noop() {}\n","'use strict';\nvar aFunction = require('../internals/a-function');\nvar isObject = require('../internals/is-object');\n\nvar slice = [].slice;\nvar factories = {};\n\nvar construct = function (C, argsLength, args) {\n if (!(argsLength in factories)) {\n for (var list = [], i = 0; i < argsLength; i++) list[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func -- we have no proper alternatives, IE8- only\n factories[argsLength] = Function('C,a', 'return new C(' + list.join(',') + ')');\n } return factories[argsLength](C, args);\n};\n\n// `Function.prototype.bind` method implementation\n// https://tc39.es/ecma262/#sec-function.prototype.bind\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = slice.call(arguments, 1);\n var boundFunction = function bound(/* args... */) {\n var args = partArgs.concat(slice.call(arguments));\n return this instanceof boundFunction ? construct(fn, args.length, args) : fn.apply(that, args);\n };\n if (isObject(fn.prototype)) boundFunction.prototype = fn.prototype;\n return boundFunction;\n};\n","/*! @name @videojs/vhs-utils @version 2.3.0 @license MIT */\n'use strict';\n\n/**\n * @file stream.js\n */\n\n/**\n * A lightweight readable stream implemention that handles event dispatching.\n *\n * @class Stream\n */\nvar Stream =\n/*#__PURE__*/\nfunction () {\n function Stream() {\n this.listeners = {};\n }\n /**\n * Add a listener for a specified event type.\n *\n * @param {string} type the event name\n * @param {Function} listener the callback to be invoked when an event of\n * the specified type occurs\n */\n\n\n var _proto = Stream.prototype;\n\n _proto.on = function on(type, listener) {\n if (!this.listeners[type]) {\n this.listeners[type] = [];\n }\n\n this.listeners[type].push(listener);\n }\n /**\n * Remove a listener for a specified event type.\n *\n * @param {string} type the event name\n * @param {Function} listener a function previously registered for this\n * type of event through `on`\n * @return {boolean} if we could turn it off or not\n */\n ;\n\n _proto.off = function off(type, listener) {\n if (!this.listeners[type]) {\n return false;\n }\n\n var index = this.listeners[type].indexOf(listener); // TODO: which is better?\n // In Video.js we slice listener functions\n // on trigger so that it does not mess up the order\n // while we loop through.\n //\n // Here we slice on off so that the loop in trigger\n // can continue using it's old reference to loop without\n // messing up the order.\n\n this.listeners[type] = this.listeners[type].slice(0);\n this.listeners[type].splice(index, 1);\n return index > -1;\n }\n /**\n * Trigger an event of the specified type on this stream. Any additional\n * arguments to this function are passed as parameters to event listeners.\n *\n * @param {string} type the event name\n */\n ;\n\n _proto.trigger = function trigger(type) {\n var callbacks = this.listeners[type];\n\n if (!callbacks) {\n return;\n } // Slicing the arguments on every invocation of this method\n // can add a significant amount of overhead. Avoid the\n // intermediate object creation for the common case of a\n // single callback argument\n\n\n if (arguments.length === 2) {\n var length = callbacks.length;\n\n for (var i = 0; i < length; ++i) {\n callbacks[i].call(this, arguments[1]);\n }\n } else {\n var args = Array.prototype.slice.call(arguments, 1);\n var _length = callbacks.length;\n\n for (var _i = 0; _i < _length; ++_i) {\n callbacks[_i].apply(this, args);\n }\n }\n }\n /**\n * Destroys the stream and cleans up.\n */\n ;\n\n _proto.dispose = function dispose() {\n this.listeners = {};\n }\n /**\n * Forwards all `data` events on this stream to the destination stream. The\n * destination stream should provide a method `push` to receive the data\n * events as they arrive.\n *\n * @param {Stream} destination the stream that will receive all `data` events\n * @see http://nodejs.org/api/stream.html#stream_readable_pipe_destination_options\n */\n ;\n\n _proto.pipe = function pipe(destination) {\n this.on('data', function (data) {\n destination.push(data);\n });\n };\n\n return Stream;\n}();\n\nmodule.exports = Stream;\n","// cookieStorage is useful Safari private browser mode, where localStorage\n// doesn't work but cookies do. This implementation is adopted from\n// https://developer.mozilla.org/en-US/docs/Web/API/Storage/LocalStorage\n\nvar util = require('../src/util')\nvar Global = util.Global\nvar trim = util.trim\n\nmodule.exports = {\n\tname: 'cookieStorage',\n\tread: read,\n\twrite: write,\n\teach: each,\n\tremove: remove,\n\tclearAll: clearAll,\n}\n\nvar doc = Global.document\n\nfunction read(key) {\n\tif (!key || !_has(key)) { return null }\n\tvar regexpStr = \"(?:^|.*;\\\\s*)\" +\n\t\tescape(key).replace(/[\\-\\.\\+\\*]/g, \"\\\\$&\") +\n\t\t\"\\\\s*\\\\=\\\\s*((?:[^;](?!;))*[^;]?).*\"\n\treturn unescape(doc.cookie.replace(new RegExp(regexpStr), \"$1\"))\n}\n\nfunction each(callback) {\n\tvar cookies = doc.cookie.split(/; ?/g)\n\tfor (var i = cookies.length - 1; i >= 0; i--) {\n\t\tif (!trim(cookies[i])) {\n\t\t\tcontinue\n\t\t}\n\t\tvar kvp = cookies[i].split('=')\n\t\tvar key = unescape(kvp[0])\n\t\tvar val = unescape(kvp[1])\n\t\tcallback(val, key)\n\t}\n}\n\nfunction write(key, data) {\n\tif(!key) { return }\n\tdoc.cookie = escape(key) + \"=\" + escape(data) + \"; expires=Tue, 19 Jan 2038 03:14:07 GMT; path=/\"\n}\n\nfunction remove(key) {\n\tif (!key || !_has(key)) {\n\t\treturn\n\t}\n\tdoc.cookie = escape(key) + \"=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/\"\n}\n\nfunction clearAll() {\n\teach(function(_, key) {\n\t\tremove(key)\n\t})\n}\n\nfunction _has(key) {\n\treturn (new RegExp(\"(?:^|;\\\\s*)\" + escape(key).replace(/[\\-\\.\\+\\*]/g, \"\\\\$&\") + \"\\\\s*\\\\=\")).test(doc.cookie)\n}\n","var $ = require('../internals/export');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n$({ target: 'Object', stat: true }, {\n setPrototypeOf: setPrototypeOf\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || CHROME_BUG }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var toUnsigned = require('../utils/bin').toUnsigned;\nvar parseType = require('./parse-type.js');\n\nvar findBox = function(data, path) {\n var results = [],\n i, size, type, end, subresults;\n\n if (!path.length) {\n // short-circuit the search for empty paths\n return null;\n }\n\n for (i = 0; i < data.byteLength;) {\n size = toUnsigned(data[i] << 24 |\n data[i + 1] << 16 |\n data[i + 2] << 8 |\n data[i + 3]);\n\n type = parseType(data.subarray(i + 4, i + 8));\n\n end = size > 1 ? i + size : data.byteLength;\n\n if (type === path[0]) {\n if (path.length === 1) {\n // this is the end of the path and we've found the box we were\n // looking for\n results.push(data.subarray(i + 8, end));\n } else {\n // recursively search for the next box along the path\n subresults = findBox(data.subarray(i + 8, end), path.slice(1));\n if (subresults.length) {\n results = results.concat(subresults);\n }\n }\n }\n i = end;\n }\n\n // we've finished searching all of data\n return results;\n};\n\nmodule.exports = findBox;\n\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/**\n * mux.js\n *\n * Copyright (c) Brightcove\n * Licensed Apache-2.0 https://github.com/videojs/mux.js/blob/master/LICENSE\n *\n * Accepts program elementary stream (PES) data events and corrects\n * decode and presentation time stamps to account for a rollover\n * of the 33 bit value.\n */\n\n'use strict';\n\nvar Stream = require('../utils/stream');\n\nvar MAX_TS = 8589934592;\n\nvar RO_THRESH = 4294967296;\n\nvar TYPE_SHARED = 'shared';\n\nvar handleRollover = function(value, reference) {\n var direction = 1;\n\n if (value > reference) {\n // If the current timestamp value is greater than our reference timestamp and we detect a\n // timestamp rollover, this means the roll over is happening in the opposite direction.\n // Example scenario: Enter a long stream/video just after a rollover occurred. The reference\n // point will be set to a small number, e.g. 1. The user then seeks backwards over the\n // rollover point. In loading this segment, the timestamp values will be very large,\n // e.g. 2^33 - 1. Since this comes before the data we loaded previously, we want to adjust\n // the time stamp to be `value - 2^33`.\n direction = -1;\n }\n\n // Note: A seek forwards or back that is greater than the RO_THRESH (2^32, ~13 hours) will\n // cause an incorrect adjustment.\n while (Math.abs(reference - value) > RO_THRESH) {\n value += (direction * MAX_TS);\n }\n\n return value;\n};\n\nvar TimestampRolloverStream = function(type) {\n var lastDTS, referenceDTS;\n\n TimestampRolloverStream.prototype.init.call(this);\n\n // The \"shared\" type is used in cases where a stream will contain muxed\n // video and audio. We could use `undefined` here, but having a string\n // makes debugging a little clearer.\n this.type_ = type || TYPE_SHARED;\n\n this.push = function(data) {\n\n // Any \"shared\" rollover streams will accept _all_ data. Otherwise,\n // streams will only accept data that matches their type.\n if (this.type_ !== TYPE_SHARED && data.type !== this.type_) {\n return;\n }\n\n if (referenceDTS === undefined) {\n referenceDTS = data.dts;\n }\n\n data.dts = handleRollover(data.dts, referenceDTS);\n data.pts = handleRollover(data.pts, referenceDTS);\n\n lastDTS = data.dts;\n\n this.trigger('data', data);\n };\n\n this.flush = function() {\n referenceDTS = lastDTS;\n this.trigger('done');\n };\n\n this.endTimeline = function() {\n this.flush();\n this.trigger('endedtimeline');\n };\n\n this.discontinuity = function() {\n referenceDTS = void 0;\n lastDTS = void 0;\n };\n\n this.reset = function() {\n this.discontinuity();\n this.trigger('reset');\n };\n};\n\nTimestampRolloverStream.prototype = new Stream();\n\nmodule.exports = {\n TimestampRolloverStream: TimestampRolloverStream,\n handleRollover: handleRollover\n};\n","/**\n * mux.js\n *\n * Copyright (c) Brightcove\n * Licensed Apache-2.0 https://github.com/videojs/mux.js/blob/master/LICENSE\n *\n * Utilities to detect basic properties and metadata about MP4s.\n */\n'use strict';\n\nvar toUnsigned = require('../utils/bin').toUnsigned;\nvar toHexString = require('../utils/bin').toHexString;\nvar findBox = require('../mp4/find-box.js');\nvar parseType = require('../mp4/parse-type.js');\nvar parseTfhd = require('../tools/parse-tfhd.js');\nvar parseTrun = require('../tools/parse-trun.js');\nvar parseTfdt = require('../tools/parse-tfdt.js');\nvar timescale, startTime, compositionStartTime, getVideoTrackIds, getTracks,\n getTimescaleFromMediaHeader;\n\n/**\n * Parses an MP4 initialization segment and extracts the timescale\n * values for any declared tracks. Timescale values indicate the\n * number of clock ticks per second to assume for time-based values\n * elsewhere in the MP4.\n *\n * To determine the start time of an MP4, you need two pieces of\n * information: the timescale unit and the earliest base media decode\n * time. Multiple timescales can be specified within an MP4 but the\n * base media decode time is always expressed in the timescale from\n * the media header box for the track:\n * ```\n * moov > trak > mdia > mdhd.timescale\n * ```\n * @param init {Uint8Array} the bytes of the init segment\n * @return {object} a hash of track ids to timescale values or null if\n * the init segment is malformed.\n */\ntimescale = function(init) {\n var\n result = {},\n traks = findBox(init, ['moov', 'trak']);\n\n // mdhd timescale\n return traks.reduce(function(result, trak) {\n var tkhd, version, index, id, mdhd;\n\n tkhd = findBox(trak, ['tkhd'])[0];\n if (!tkhd) {\n return null;\n }\n version = tkhd[0];\n index = version === 0 ? 12 : 20;\n id = toUnsigned(tkhd[index] << 24 |\n tkhd[index + 1] << 16 |\n tkhd[index + 2] << 8 |\n tkhd[index + 3]);\n\n mdhd = findBox(trak, ['mdia', 'mdhd'])[0];\n if (!mdhd) {\n return null;\n }\n version = mdhd[0];\n index = version === 0 ? 12 : 20;\n result[id] = toUnsigned(mdhd[index] << 24 |\n mdhd[index + 1] << 16 |\n mdhd[index + 2] << 8 |\n mdhd[index + 3]);\n return result;\n }, result);\n};\n\n/**\n * Determine the base media decode start time, in seconds, for an MP4\n * fragment. If multiple fragments are specified, the earliest time is\n * returned.\n *\n * The base media decode time can be parsed from track fragment\n * metadata:\n * ```\n * moof > traf > tfdt.baseMediaDecodeTime\n * ```\n * It requires the timescale value from the mdhd to interpret.\n *\n * @param timescale {object} a hash of track ids to timescale values.\n * @return {number} the earliest base media decode start time for the\n * fragment, in seconds\n */\nstartTime = function(timescale, fragment) {\n var trafs, baseTimes, result;\n\n // we need info from two childrend of each track fragment box\n trafs = findBox(fragment, ['moof', 'traf']);\n\n // determine the start times for each track\n baseTimes = [].concat.apply([], trafs.map(function(traf) {\n return findBox(traf, ['tfhd']).map(function(tfhd) {\n var id, scale, baseTime;\n\n // get the track id from the tfhd\n id = toUnsigned(tfhd[4] << 24 |\n tfhd[5] << 16 |\n tfhd[6] << 8 |\n tfhd[7]);\n // assume a 90kHz clock if no timescale was specified\n scale = timescale[id] || 90e3;\n\n // get the base media decode time from the tfdt\n baseTime = findBox(traf, ['tfdt']).map(function(tfdt) {\n var version, result;\n\n version = tfdt[0];\n result = toUnsigned(tfdt[4] << 24 |\n tfdt[5] << 16 |\n tfdt[6] << 8 |\n tfdt[7]);\n if (version === 1) {\n result *= Math.pow(2, 32);\n result += toUnsigned(tfdt[8] << 24 |\n tfdt[9] << 16 |\n tfdt[10] << 8 |\n tfdt[11]);\n }\n return result;\n })[0];\n baseTime = typeof baseTime === 'number' && !isNaN(baseTime) ? baseTime : Infinity;\n\n // convert base time to seconds\n return baseTime / scale;\n });\n }));\n\n // return the minimum\n result = Math.min.apply(null, baseTimes);\n return isFinite(result) ? result : 0;\n};\n\n/**\n * Determine the composition start, in seconds, for an MP4\n * fragment.\n *\n * The composition start time of a fragment can be calculated using the base\n * media decode time, composition time offset, and timescale, as follows:\n *\n * compositionStartTime = (baseMediaDecodeTime + compositionTimeOffset) / timescale\n *\n * All of the aforementioned information is contained within a media fragment's\n * `traf` box, except for timescale info, which comes from the initialization\n * segment, so a track id (also contained within a `traf`) is also necessary to\n * associate it with a timescale\n *\n *\n * @param timescales {object} - a hash of track ids to timescale values.\n * @param fragment {Unit8Array} - the bytes of a media segment\n * @return {number} the composition start time for the fragment, in seconds\n **/\ncompositionStartTime = function(timescales, fragment) {\n var trafBoxes = findBox(fragment, ['moof', 'traf']);\n var baseMediaDecodeTime = 0;\n var compositionTimeOffset = 0;\n var trackId;\n\n if (trafBoxes && trafBoxes.length) {\n // The spec states that track run samples contained within a `traf` box are contiguous, but\n // it does not explicitly state whether the `traf` boxes themselves are contiguous.\n // We will assume that they are, so we only need the first to calculate start time.\n var tfhd = findBox(trafBoxes[0], ['tfhd'])[0];\n var trun = findBox(trafBoxes[0], ['trun'])[0];\n var tfdt = findBox(trafBoxes[0], ['tfdt'])[0];\n\n if (tfhd) {\n var parsedTfhd = parseTfhd(tfhd);\n\n trackId = parsedTfhd.trackId;\n }\n\n if (tfdt) {\n var parsedTfdt = parseTfdt(tfdt);\n\n baseMediaDecodeTime = parsedTfdt.baseMediaDecodeTime;\n }\n\n if (trun) {\n var parsedTrun = parseTrun(trun);\n\n if (parsedTrun.samples && parsedTrun.samples.length) {\n compositionTimeOffset = parsedTrun.samples[0].compositionTimeOffset || 0;\n }\n }\n }\n\n // Get timescale for this specific track. Assume a 90kHz clock if no timescale was\n // specified.\n var timescale = timescales[trackId] || 90e3;\n\n // return the composition start time, in seconds\n return (baseMediaDecodeTime + compositionTimeOffset) / timescale;\n};\n\n/**\n * Find the trackIds of the video tracks in this source.\n * Found by parsing the Handler Reference and Track Header Boxes:\n * moov > trak > mdia > hdlr\n * moov > trak > tkhd\n *\n * @param {Uint8Array} init - The bytes of the init segment for this source\n * @return {Number[]} A list of trackIds\n *\n * @see ISO-BMFF-12/2015, Section 8.4.3\n **/\ngetVideoTrackIds = function(init) {\n var traks = findBox(init, ['moov', 'trak']);\n var videoTrackIds = [];\n\n traks.forEach(function(trak) {\n var hdlrs = findBox(trak, ['mdia', 'hdlr']);\n var tkhds = findBox(trak, ['tkhd']);\n\n hdlrs.forEach(function(hdlr, index) {\n var handlerType = parseType(hdlr.subarray(8, 12));\n var tkhd = tkhds[index];\n var view;\n var version;\n var trackId;\n\n if (handlerType === 'vide') {\n view = new DataView(tkhd.buffer, tkhd.byteOffset, tkhd.byteLength);\n version = view.getUint8(0);\n trackId = (version === 0) ? view.getUint32(12) : view.getUint32(20);\n\n videoTrackIds.push(trackId);\n }\n });\n });\n\n return videoTrackIds;\n};\n\ngetTimescaleFromMediaHeader = function(mdhd) {\n // mdhd is a FullBox, meaning it will have its own version as the first byte\n var version = mdhd[0];\n var index = version === 0 ? 12 : 20;\n\n return toUnsigned(\n mdhd[index] << 24 |\n mdhd[index + 1] << 16 |\n mdhd[index + 2] << 8 |\n mdhd[index + 3]\n );\n};\n\n/**\n * Get all the video, audio, and hint tracks from a non fragmented\n * mp4 segment\n */\ngetTracks = function(init) {\n var traks = findBox(init, ['moov', 'trak']);\n var tracks = [];\n\n traks.forEach(function(trak) {\n var track = {};\n var tkhd = findBox(trak, ['tkhd'])[0];\n var view, tkhdVersion;\n\n // id\n if (tkhd) {\n view = new DataView(tkhd.buffer, tkhd.byteOffset, tkhd.byteLength);\n tkhdVersion = view.getUint8(0);\n\n track.id = (tkhdVersion === 0) ? view.getUint32(12) : view.getUint32(20);\n }\n\n var hdlr = findBox(trak, ['mdia', 'hdlr'])[0];\n\n // type\n if (hdlr) {\n var type = parseType(hdlr.subarray(8, 12));\n\n if (type === 'vide') {\n track.type = 'video';\n } else if (type === 'soun') {\n track.type = 'audio';\n } else {\n track.type = type;\n }\n }\n\n\n // codec\n var stsd = findBox(trak, ['mdia', 'minf', 'stbl', 'stsd'])[0];\n\n if (stsd) {\n var sampleDescriptions = stsd.subarray(8);\n // gives the codec type string\n track.codec = parseType(sampleDescriptions.subarray(4, 8));\n\n var codecBox = findBox(sampleDescriptions, [track.codec])[0];\n var codecConfig, codecConfigType;\n\n if (codecBox) {\n // https://tools.ietf.org/html/rfc6381#section-3.3\n if ((/^[a-z]vc[1-9]$/i).test(track.codec)) {\n // we don't need anything but the \"config\" parameter of the\n // avc1 codecBox\n codecConfig = codecBox.subarray(78);\n codecConfigType = parseType(codecConfig.subarray(4, 8));\n\n if (codecConfigType === 'avcC' && codecConfig.length > 11) {\n track.codec += '.';\n\n // left padded with zeroes for single digit hex\n // profile idc\n track.codec += toHexString(codecConfig[9]);\n // the byte containing the constraint_set flags\n track.codec += toHexString(codecConfig[10]);\n // level idc\n track.codec += toHexString(codecConfig[11]);\n } else {\n // TODO: show a warning that we couldn't parse the codec\n // and are using the default\n track.codec = 'avc1.4d400d';\n }\n } else if ((/^mp4[a,v]$/i).test(track.codec)) {\n // we do not need anything but the streamDescriptor of the mp4a codecBox\n codecConfig = codecBox.subarray(28);\n codecConfigType = parseType(codecConfig.subarray(4, 8));\n\n if (codecConfigType === 'esds' && codecConfig.length > 20 && codecConfig[19] !== 0) {\n track.codec += '.' + toHexString(codecConfig[19]);\n // this value is only a single digit\n track.codec += '.' + toHexString((codecConfig[20] >>> 2) & 0x3f).replace(/^0/, '');\n } else {\n // TODO: show a warning that we couldn't parse the codec\n // and are using the default\n track.codec = 'mp4a.40.2';\n }\n } else {\n // flac, opus, etc\n track.codec = track.codec.toLowerCase();\n }\n }\n }\n\n var mdhd = findBox(trak, ['mdia', 'mdhd'])[0];\n\n if (mdhd) {\n track.timescale = getTimescaleFromMediaHeader(mdhd);\n }\n\n tracks.push(track);\n });\n\n return tracks;\n};\n\nmodule.exports = {\n // export mp4 inspector's findBox and parseType for backwards compatibility\n findBox: findBox,\n parseType: parseType,\n timescale: timescale,\n startTime: startTime,\n compositionStartTime: compositionStartTime,\n videoTrackIds: getVideoTrackIds,\n tracks: getTracks,\n getTimescaleFromMediaHeader: getTimescaleFromMediaHeader\n};\n","/*! @name @videojs/vhs-utils @version 2.3.0 @license MIT */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar window = _interopDefault(require('global/window'));\n\nvar regexs = {\n // to determine mime types\n mp4: /^(av0?1|avc0?[1234]|vp0?9|flac|opus|mp3|mp4a|mp4v|stpp.ttml.im1t)/,\n webm: /^(vp0?[89]|av0?1|opus|vorbis)/,\n ogg: /^(vp0?[89]|theora|flac|opus|vorbis)/,\n // to determine if a codec is audio or video\n video: /^(av0?1|avc0?[1234]|vp0?[89]|hvc1|hev1|theora|mp4v)/,\n audio: /^(mp4a|flac|vorbis|opus|ac-[34]|ec-3|alac|mp3)/,\n text: /^(stpp.ttml.im1t)/,\n // mux.js support regex\n muxerVideo: /^(avc0?1)/,\n muxerAudio: /^(mp4a)/,\n // match nothing as muxer does not support text right now.\n // there cannot never be a character before the start of a string\n // so this matches nothing.\n muxerText: /a^/\n};\nvar mediaTypes = ['video', 'audio', 'text'];\nvar upperMediaTypes = ['Video', 'Audio', 'Text'];\n/**\n * Replace the old apple-style `avc1.
.
` codec string with the standard\n * `avc1.`\n *\n * @param {string} codec\n * Codec string to translate\n * @return {string}\n * The translated codec string\n */\n\nvar translateLegacyCodec = function translateLegacyCodec(codec) {\n if (!codec) {\n return codec;\n }\n\n return codec.replace(/avc1\\.(\\d+)\\.(\\d+)/i, function (orig, profile, avcLevel) {\n var profileHex = ('00' + Number(profile).toString(16)).slice(-2);\n var avcLevelHex = ('00' + Number(avcLevel).toString(16)).slice(-2);\n return 'avc1.' + profileHex + '00' + avcLevelHex;\n });\n};\n/**\n * Replace the old apple-style `avc1.
.
` codec strings with the standard\n * `avc1.`\n *\n * @param {string[]} codecs\n * An array of codec strings to translate\n * @return {string[]}\n * The translated array of codec strings\n */\n\nvar translateLegacyCodecs = function translateLegacyCodecs(codecs) {\n return codecs.map(translateLegacyCodec);\n};\n/**\n * Replace codecs in the codec string with the old apple-style `avc1.
.
` to the\n * standard `avc1.`.\n *\n * @param {string} codecString\n * The codec string\n * @return {string}\n * The codec string with old apple-style codecs replaced\n *\n * @private\n */\n\nvar mapLegacyAvcCodecs = function mapLegacyAvcCodecs(codecString) {\n return codecString.replace(/avc1\\.(\\d+)\\.(\\d+)/i, function (match) {\n return translateLegacyCodecs([match])[0];\n });\n};\n/**\n * @typedef {Object} ParsedCodecInfo\n * @property {number} codecCount\n * Number of codecs parsed\n * @property {string} [videoCodec]\n * Parsed video codec (if found)\n * @property {string} [videoObjectTypeIndicator]\n * Video object type indicator (if found)\n * @property {string|null} audioProfile\n * Audio profile\n */\n\n/**\n * Parses a codec string to retrieve the number of codecs specified, the video codec and\n * object type indicator, and the audio profile.\n *\n * @param {string} [codecString]\n * The codec string to parse\n * @return {ParsedCodecInfo}\n * Parsed codec info\n */\n\nvar parseCodecs = function parseCodecs(codecString) {\n if (codecString === void 0) {\n codecString = '';\n }\n\n var codecs = codecString.split(',');\n var result = {};\n var unknown = [];\n codecs.forEach(function (codec) {\n codec = codec.trim();\n var codecType;\n mediaTypes.forEach(function (name) {\n var match = regexs[name].exec(codec.toLowerCase());\n\n if (!match || match.length <= 1) {\n return;\n }\n\n codecType = name; // maintain codec case\n\n var type = codec.substring(0, match[1].length);\n var details = codec.replace(type, '');\n result[name] = {\n type: type,\n details: details\n };\n });\n\n if (!codecType) {\n unknown.push(codec);\n }\n });\n\n if (unknown.length) {\n result.unknown = unknown;\n }\n\n return result;\n};\n/**\n * Returns a ParsedCodecInfo object for the default alternate audio playlist if there is\n * a default alternate audio playlist for the provided audio group.\n *\n * @param {Object} master\n * The master playlist\n * @param {string} audioGroupId\n * ID of the audio group for which to find the default codec info\n * @return {ParsedCodecInfo}\n * Parsed codec info\n */\n\nvar codecsFromDefault = function codecsFromDefault(master, audioGroupId) {\n if (!master.mediaGroups.AUDIO || !audioGroupId) {\n return null;\n }\n\n var audioGroup = master.mediaGroups.AUDIO[audioGroupId];\n\n if (!audioGroup) {\n return null;\n }\n\n for (var name in audioGroup) {\n var audioType = audioGroup[name];\n\n if (audioType.default && audioType.playlists) {\n // codec should be the same for all playlists within the audio type\n return parseCodecs(audioType.playlists[0].attributes.CODECS);\n }\n }\n\n return null;\n};\nvar isVideoCodec = function isVideoCodec(codec) {\n if (codec === void 0) {\n codec = '';\n }\n\n return regexs.video.test(codec.trim().toLowerCase());\n};\nvar isAudioCodec = function isAudioCodec(codec) {\n if (codec === void 0) {\n codec = '';\n }\n\n return regexs.audio.test(codec.trim().toLowerCase());\n};\nvar isTextCodec = function isTextCodec(codec) {\n if (codec === void 0) {\n codec = '';\n }\n\n return regexs.text.test(codec.trim().toLowerCase());\n};\nvar getMimeForCodec = function getMimeForCodec(codecString) {\n if (!codecString || typeof codecString !== 'string') {\n return;\n }\n\n var codecs = codecString.toLowerCase().split(',').map(function (c) {\n return translateLegacyCodec(c.trim());\n }); // default to video type\n\n var type = 'video'; // only change to audio type if the only codec we have is\n // audio\n\n if (codecs.length === 1 && isAudioCodec(codecs[0])) {\n type = 'audio';\n } else if (codecs.length === 1 && isTextCodec(codecs[0])) {\n // text uses application/ for now\n type = 'application';\n } // default the container to mp4\n\n\n var container = 'mp4'; // every codec must be able to go into the container\n // for that container to be the correct one\n\n if (codecs.every(function (c) {\n return regexs.mp4.test(c);\n })) {\n container = 'mp4';\n } else if (codecs.every(function (c) {\n return regexs.webm.test(c);\n })) {\n container = 'webm';\n } else if (codecs.every(function (c) {\n return regexs.ogg.test(c);\n })) {\n container = 'ogg';\n }\n\n return type + \"/\" + container + \";codecs=\\\"\" + codecString + \"\\\"\";\n};\nvar browserSupportsCodec = function browserSupportsCodec(codecString) {\n if (codecString === void 0) {\n codecString = '';\n }\n\n return window.MediaSource && window.MediaSource.isTypeSupported && window.MediaSource.isTypeSupported(getMimeForCodec(codecString)) || false;\n};\nvar muxerSupportsCodec = function muxerSupportsCodec(codecString) {\n if (codecString === void 0) {\n codecString = '';\n }\n\n return codecString.toLowerCase().split(',').every(function (codec) {\n codec = codec.trim(); // any match is supported.\n\n for (var i = 0; i < upperMediaTypes.length; i++) {\n var type = upperMediaTypes[i];\n\n if (regexs[\"muxer\" + type].test(codec)) {\n return true;\n }\n }\n\n return false;\n });\n};\nvar DEFAULT_AUDIO_CODEC = 'mp4a.40.2';\nvar DEFAULT_VIDEO_CODEC = 'avc1.4d400d';\n\nexports.DEFAULT_AUDIO_CODEC = DEFAULT_AUDIO_CODEC;\nexports.DEFAULT_VIDEO_CODEC = DEFAULT_VIDEO_CODEC;\nexports.browserSupportsCodec = browserSupportsCodec;\nexports.codecsFromDefault = codecsFromDefault;\nexports.getMimeForCodec = getMimeForCodec;\nexports.isAudioCodec = isAudioCodec;\nexports.isTextCodec = isTextCodec;\nexports.isVideoCodec = isVideoCodec;\nexports.mapLegacyAvcCodecs = mapLegacyAvcCodecs;\nexports.muxerSupportsCodec = muxerSupportsCodec;\nexports.parseCodecs = parseCodecs;\nexports.translateLegacyCodec = translateLegacyCodec;\nexports.translateLegacyCodecs = translateLegacyCodecs;\n","function DOMParser(options){\r\n\tthis.options = options ||{locator:{}};\r\n\t\r\n}\r\nDOMParser.prototype.parseFromString = function(source,mimeType){\r\n\tvar options = this.options;\r\n\tvar sax = new XMLReader();\r\n\tvar domBuilder = options.domBuilder || new DOMHandler();//contentHandler and LexicalHandler\r\n\tvar errorHandler = options.errorHandler;\r\n\tvar locator = options.locator;\r\n\tvar defaultNSMap = options.xmlns||{};\r\n\tvar entityMap = {'lt':'<','gt':'>','amp':'&','quot':'\"','apos':\"'\"}\r\n\tif(locator){\r\n\t\tdomBuilder.setDocumentLocator(locator)\r\n\t}\r\n\t\r\n\tsax.errorHandler = buildErrorHandler(errorHandler,domBuilder,locator);\r\n\tsax.domBuilder = options.domBuilder || domBuilder;\r\n\tif(/\\/x?html?$/.test(mimeType)){\r\n\t\tentityMap.nbsp = '\\xa0';\r\n\t\tentityMap.copy = '\\xa9';\r\n\t\tdefaultNSMap['']= 'http://www.w3.org/1999/xhtml';\r\n\t}\r\n\tdefaultNSMap.xml = defaultNSMap.xml || 'http://www.w3.org/XML/1998/namespace';\r\n\tif(source){\r\n\t\tsax.parse(source,defaultNSMap,entityMap);\r\n\t}else{\r\n\t\tsax.errorHandler.error(\"invalid doc source\");\r\n\t}\r\n\treturn domBuilder.doc;\r\n}\r\nfunction buildErrorHandler(errorImpl,domBuilder,locator){\r\n\tif(!errorImpl){\r\n\t\tif(domBuilder instanceof DOMHandler){\r\n\t\t\treturn domBuilder;\r\n\t\t}\r\n\t\terrorImpl = domBuilder ;\r\n\t}\r\n\tvar errorHandler = {}\r\n\tvar isCallback = errorImpl instanceof Function;\r\n\tlocator = locator||{}\r\n\tfunction build(key){\r\n\t\tvar fn = errorImpl[key];\r\n\t\tif(!fn && isCallback){\r\n\t\t\tfn = errorImpl.length == 2?function(msg){errorImpl(key,msg)}:errorImpl;\r\n\t\t}\r\n\t\terrorHandler[key] = fn && function(msg){\r\n\t\t\tfn('[xmldom '+key+']\\t'+msg+_locator(locator));\r\n\t\t}||function(){};\r\n\t}\r\n\tbuild('warning');\r\n\tbuild('error');\r\n\tbuild('fatalError');\r\n\treturn errorHandler;\r\n}\r\n\r\n//console.log('#\\n\\n\\n\\n\\n\\n\\n####')\r\n/**\r\n * +ContentHandler+ErrorHandler\r\n * +LexicalHandler+EntityResolver2\r\n * -DeclHandler-DTDHandler \r\n * \r\n * DefaultHandler:EntityResolver, DTDHandler, ContentHandler, ErrorHandler\r\n * DefaultHandler2:DefaultHandler,LexicalHandler, DeclHandler, EntityResolver2\r\n * @link http://www.saxproject.org/apidoc/org/xml/sax/helpers/DefaultHandler.html\r\n */\r\nfunction DOMHandler() {\r\n this.cdata = false;\r\n}\r\nfunction position(locator,node){\r\n\tnode.lineNumber = locator.lineNumber;\r\n\tnode.columnNumber = locator.columnNumber;\r\n}\r\n/**\r\n * @see org.xml.sax.ContentHandler#startDocument\r\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ContentHandler.html\r\n */ \r\nDOMHandler.prototype = {\r\n\tstartDocument : function() {\r\n \tthis.doc = new DOMImplementation().createDocument(null, null, null);\r\n \tif (this.locator) {\r\n \tthis.doc.documentURI = this.locator.systemId;\r\n \t}\r\n\t},\r\n\tstartElement:function(namespaceURI, localName, qName, attrs) {\r\n\t\tvar doc = this.doc;\r\n\t var el = doc.createElementNS(namespaceURI, qName||localName);\r\n\t var len = attrs.length;\r\n\t appendElement(this, el);\r\n\t this.currentElement = el;\r\n\t \r\n\t\tthis.locator && position(this.locator,el)\r\n\t for (var i = 0 ; i < len; i++) {\r\n\t var namespaceURI = attrs.getURI(i);\r\n\t var value = attrs.getValue(i);\r\n\t var qName = attrs.getQName(i);\r\n\t\t\tvar attr = doc.createAttributeNS(namespaceURI, qName);\r\n\t\t\tthis.locator &&position(attrs.getLocator(i),attr);\r\n\t\t\tattr.value = attr.nodeValue = value;\r\n\t\t\tel.setAttributeNode(attr)\r\n\t }\r\n\t},\r\n\tendElement:function(namespaceURI, localName, qName) {\r\n\t\tvar current = this.currentElement\r\n\t\tvar tagName = current.tagName;\r\n\t\tthis.currentElement = current.parentNode;\r\n\t},\r\n\tstartPrefixMapping:function(prefix, uri) {\r\n\t},\r\n\tendPrefixMapping:function(prefix) {\r\n\t},\r\n\tprocessingInstruction:function(target, data) {\r\n\t var ins = this.doc.createProcessingInstruction(target, data);\r\n\t this.locator && position(this.locator,ins)\r\n\t appendElement(this, ins);\r\n\t},\r\n\tignorableWhitespace:function(ch, start, length) {\r\n\t},\r\n\tcharacters:function(chars, start, length) {\r\n\t\tchars = _toString.apply(this,arguments)\r\n\t\t//console.log(chars)\r\n\t\tif(chars){\r\n\t\t\tif (this.cdata) {\r\n\t\t\t\tvar charNode = this.doc.createCDATASection(chars);\r\n\t\t\t} else {\r\n\t\t\t\tvar charNode = this.doc.createTextNode(chars);\r\n\t\t\t}\r\n\t\t\tif(this.currentElement){\r\n\t\t\t\tthis.currentElement.appendChild(charNode);\r\n\t\t\t}else if(/^\\s*$/.test(chars)){\r\n\t\t\t\tthis.doc.appendChild(charNode);\r\n\t\t\t\t//process xml\r\n\t\t\t}\r\n\t\t\tthis.locator && position(this.locator,charNode)\r\n\t\t}\r\n\t},\r\n\tskippedEntity:function(name) {\r\n\t},\r\n\tendDocument:function() {\r\n\t\tthis.doc.normalize();\r\n\t},\r\n\tsetDocumentLocator:function (locator) {\r\n\t if(this.locator = locator){// && !('lineNumber' in locator)){\r\n\t \tlocator.lineNumber = 0;\r\n\t }\r\n\t},\r\n\t//LexicalHandler\r\n\tcomment:function(chars, start, length) {\r\n\t\tchars = _toString.apply(this,arguments)\r\n\t var comm = this.doc.createComment(chars);\r\n\t this.locator && position(this.locator,comm)\r\n\t appendElement(this, comm);\r\n\t},\r\n\t\r\n\tstartCDATA:function() {\r\n\t //used in characters() methods\r\n\t this.cdata = true;\r\n\t},\r\n\tendCDATA:function() {\r\n\t this.cdata = false;\r\n\t},\r\n\t\r\n\tstartDTD:function(name, publicId, systemId) {\r\n\t\tvar impl = this.doc.implementation;\r\n\t if (impl && impl.createDocumentType) {\r\n\t var dt = impl.createDocumentType(name, publicId, systemId);\r\n\t this.locator && position(this.locator,dt)\r\n\t appendElement(this, dt);\r\n\t }\r\n\t},\r\n\t/**\r\n\t * @see org.xml.sax.ErrorHandler\r\n\t * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html\r\n\t */\r\n\twarning:function(error) {\r\n\t\tconsole.warn('[xmldom warning]\\t'+error,_locator(this.locator));\r\n\t},\r\n\terror:function(error) {\r\n\t\tconsole.error('[xmldom error]\\t'+error,_locator(this.locator));\r\n\t},\r\n\tfatalError:function(error) {\r\n\t\tconsole.error('[xmldom fatalError]\\t'+error,_locator(this.locator));\r\n\t throw error;\r\n\t}\r\n}\r\nfunction _locator(l){\r\n\tif(l){\r\n\t\treturn '\\n@'+(l.systemId ||'')+'#[line:'+l.lineNumber+',col:'+l.columnNumber+']'\r\n\t}\r\n}\r\nfunction _toString(chars,start,length){\r\n\tif(typeof chars == 'string'){\r\n\t\treturn chars.substr(start,length)\r\n\t}else{//java sax connect width xmldom on rhino(what about: \"? && !(chars instanceof String)\")\r\n\t\tif(chars.length >= start+length || start){\r\n\t\t\treturn new java.lang.String(chars,start,length)+'';\r\n\t\t}\r\n\t\treturn chars;\r\n\t}\r\n}\r\n\r\n/*\r\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/LexicalHandler.html\r\n * used method of org.xml.sax.ext.LexicalHandler:\r\n * #comment(chars, start, length)\r\n * #startCDATA()\r\n * #endCDATA()\r\n * #startDTD(name, publicId, systemId)\r\n *\r\n *\r\n * IGNORED method of org.xml.sax.ext.LexicalHandler:\r\n * #endDTD()\r\n * #startEntity(name)\r\n * #endEntity(name)\r\n *\r\n *\r\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/DeclHandler.html\r\n * IGNORED method of org.xml.sax.ext.DeclHandler\r\n * \t#attributeDecl(eName, aName, type, mode, value)\r\n * #elementDecl(name, model)\r\n * #externalEntityDecl(name, publicId, systemId)\r\n * #internalEntityDecl(name, value)\r\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/EntityResolver2.html\r\n * IGNORED method of org.xml.sax.EntityResolver2\r\n * #resolveEntity(String name,String publicId,String baseURI,String systemId)\r\n * #resolveEntity(publicId, systemId)\r\n * #getExternalSubset(name, baseURI)\r\n * @link http://www.saxproject.org/apidoc/org/xml/sax/DTDHandler.html\r\n * IGNORED method of org.xml.sax.DTDHandler\r\n * #notationDecl(name, publicId, systemId) {};\r\n * #unparsedEntityDecl(name, publicId, systemId, notationName) {};\r\n */\r\n\"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl\".replace(/\\w+/g,function(key){\r\n\tDOMHandler.prototype[key] = function(){return null}\r\n})\r\n\r\n/* Private static helpers treated below as private instance methods, so don't need to add these to the public API; we might use a Relator to also get rid of non-standard public properties */\r\nfunction appendElement (hander,node) {\r\n if (!hander.currentElement) {\r\n hander.doc.appendChild(node);\r\n } else {\r\n hander.currentElement.appendChild(node);\r\n }\r\n}//appendChild and setAttributeNS are preformance key\r\n\r\n//if(typeof require == 'function'){\r\n\tvar XMLReader = require('./sax').XMLReader;\r\n\tvar DOMImplementation = exports.DOMImplementation = require('./dom').DOMImplementation;\r\n\texports.XMLSerializer = require('./dom').XMLSerializer ;\r\n\texports.DOMParser = DOMParser;\r\n//}\r\n","/**\n * Copyright 2013 vtt.js Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Default exports for Node. Export the extended versions of VTTCue and\n// VTTRegion in Node since we likely want the capability to convert back and\n// forth between JSON. If we don't then it's not that big of a deal since we're\n// off browser.\n\nvar window = require('global/window');\n\nvar vttjs = module.exports = {\n WebVTT: require(\"./vtt.js\"),\n VTTCue: require(\"./vttcue.js\"),\n VTTRegion: require(\"./vttregion.js\")\n};\n\nwindow.vttjs = vttjs;\nwindow.WebVTT = vttjs.WebVTT;\n\nvar cueShim = vttjs.VTTCue;\nvar regionShim = vttjs.VTTRegion;\nvar nativeVTTCue = window.VTTCue;\nvar nativeVTTRegion = window.VTTRegion;\n\nvttjs.shim = function() {\n window.VTTCue = cueShim;\n window.VTTRegion = regionShim;\n};\n\nvttjs.restore = function() {\n window.VTTCue = nativeVTTCue;\n window.VTTRegion = nativeVTTRegion;\n};\n\nif (!window.VTTCue) {\n vttjs.shim();\n}\n","var assign = make_assign()\nvar create = make_create()\nvar trim = make_trim()\nvar Global = (typeof window !== 'undefined' ? window : global)\n\nmodule.exports = {\n\tassign: assign,\n\tcreate: create,\n\ttrim: trim,\n\tbind: bind,\n\tslice: slice,\n\teach: each,\n\tmap: map,\n\tpluck: pluck,\n\tisList: isList,\n\tisFunction: isFunction,\n\tisObject: isObject,\n\tGlobal: Global\n}\n\nfunction make_assign() {\n\tif (Object.assign) {\n\t\treturn Object.assign\n\t} else {\n\t\treturn function shimAssign(obj, props1, props2, etc) {\n\t\t\tfor (var i = 1; i < arguments.length; i++) {\n\t\t\t\teach(Object(arguments[i]), function(val, key) {\n\t\t\t\t\tobj[key] = val\n\t\t\t\t})\n\t\t\t}\t\t\t\n\t\t\treturn obj\n\t\t}\n\t}\n}\n\nfunction make_create() {\n\tif (Object.create) {\n\t\treturn function create(obj, assignProps1, assignProps2, etc) {\n\t\t\tvar assignArgsList = slice(arguments, 1)\n\t\t\treturn assign.apply(this, [Object.create(obj)].concat(assignArgsList))\n\t\t}\n\t} else {\n\t\tfunction F() {} // eslint-disable-line no-inner-declarations\n\t\treturn function create(obj, assignProps1, assignProps2, etc) {\n\t\t\tvar assignArgsList = slice(arguments, 1)\n\t\t\tF.prototype = obj\n\t\t\treturn assign.apply(this, [new F()].concat(assignArgsList))\n\t\t}\n\t}\n}\n\nfunction make_trim() {\n\tif (String.prototype.trim) {\n\t\treturn function trim(str) {\n\t\t\treturn String.prototype.trim.call(str)\n\t\t}\n\t} else {\n\t\treturn function trim(str) {\n\t\t\treturn str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '')\n\t\t}\n\t}\n}\n\nfunction bind(obj, fn) {\n\treturn function() {\n\t\treturn fn.apply(obj, Array.prototype.slice.call(arguments, 0))\n\t}\n}\n\nfunction slice(arr, index) {\n\treturn Array.prototype.slice.call(arr, index || 0)\n}\n\nfunction each(obj, fn) {\n\tpluck(obj, function(val, key) {\n\t\tfn(val, key)\n\t\treturn false\n\t})\n}\n\nfunction map(obj, fn) {\n\tvar res = (isList(obj) ? [] : {})\n\tpluck(obj, function(v, k) {\n\t\tres[k] = fn(v, k)\n\t\treturn false\n\t})\n\treturn res\n}\n\nfunction pluck(obj, fn) {\n\tif (isList(obj)) {\n\t\tfor (var i=0; i>> 4) > 0x01) {\n offset += packet[4] + 1;\n }\n return offset;\n};\n\nvar parseType = function(packet, pmtPid) {\n var pid = parsePid(packet);\n if (pid === 0) {\n return 'pat';\n } else if (pid === pmtPid) {\n return 'pmt';\n } else if (pmtPid) {\n return 'pes';\n }\n return null;\n};\n\nvar parsePat = function(packet) {\n var pusi = parsePayloadUnitStartIndicator(packet);\n var offset = 4 + parseAdaptionField(packet);\n\n if (pusi) {\n offset += packet[offset] + 1;\n }\n\n return (packet[offset + 10] & 0x1f) << 8 | packet[offset + 11];\n};\n\nvar parsePmt = function(packet) {\n var programMapTable = {};\n var pusi = parsePayloadUnitStartIndicator(packet);\n var payloadOffset = 4 + parseAdaptionField(packet);\n\n if (pusi) {\n payloadOffset += packet[payloadOffset] + 1;\n }\n\n // PMTs can be sent ahead of the time when they should actually\n // take effect. We don't believe this should ever be the case\n // for HLS but we'll ignore \"forward\" PMT declarations if we see\n // them. Future PMT declarations have the current_next_indicator\n // set to zero.\n if (!(packet[payloadOffset + 5] & 0x01)) {\n return;\n }\n\n var sectionLength, tableEnd, programInfoLength;\n // the mapping table ends at the end of the current section\n sectionLength = (packet[payloadOffset + 1] & 0x0f) << 8 | packet[payloadOffset + 2];\n tableEnd = 3 + sectionLength - 4;\n\n // to determine where the table is, we have to figure out how\n // long the program info descriptors are\n programInfoLength = (packet[payloadOffset + 10] & 0x0f) << 8 | packet[payloadOffset + 11];\n\n // advance the offset to the first entry in the mapping table\n var offset = 12 + programInfoLength;\n while (offset < tableEnd) {\n var i = payloadOffset + offset;\n // add an entry that maps the elementary_pid to the stream_type\n programMapTable[(packet[i + 1] & 0x1F) << 8 | packet[i + 2]] = packet[i];\n\n // move to the next table entry\n // skip past the elementary stream descriptors, if present\n offset += ((packet[i + 3] & 0x0F) << 8 | packet[i + 4]) + 5;\n }\n return programMapTable;\n};\n\nvar parsePesType = function(packet, programMapTable) {\n var pid = parsePid(packet);\n var type = programMapTable[pid];\n switch (type) {\n case StreamTypes.H264_STREAM_TYPE:\n return 'video';\n case StreamTypes.ADTS_STREAM_TYPE:\n return 'audio';\n case StreamTypes.METADATA_STREAM_TYPE:\n return 'timed-metadata';\n default:\n return null;\n }\n};\n\nvar parsePesTime = function(packet) {\n var pusi = parsePayloadUnitStartIndicator(packet);\n if (!pusi) {\n return null;\n }\n\n var offset = 4 + parseAdaptionField(packet);\n\n if (offset >= packet.byteLength) {\n // From the H 222.0 MPEG-TS spec\n // \"For transport stream packets carrying PES packets, stuffing is needed when there\n // is insufficient PES packet data to completely fill the transport stream packet\n // payload bytes. Stuffing is accomplished by defining an adaptation field longer than\n // the sum of the lengths of the data elements in it, so that the payload bytes\n // remaining after the adaptation field exactly accommodates the available PES packet\n // data.\"\n //\n // If the offset is >= the length of the packet, then the packet contains no data\n // and instead is just adaption field stuffing bytes\n return null;\n }\n\n var pes = null;\n var ptsDtsFlags;\n\n // PES packets may be annotated with a PTS value, or a PTS value\n // and a DTS value. Determine what combination of values is\n // available to work with.\n ptsDtsFlags = packet[offset + 7];\n\n // PTS and DTS are normally stored as a 33-bit number. Javascript\n // performs all bitwise operations on 32-bit integers but javascript\n // supports a much greater range (52-bits) of integer using standard\n // mathematical operations.\n // We construct a 31-bit value using bitwise operators over the 31\n // most significant bits and then multiply by 4 (equal to a left-shift\n // of 2) before we add the final 2 least significant bits of the\n // timestamp (equal to an OR.)\n if (ptsDtsFlags & 0xC0) {\n pes = {};\n // the PTS and DTS are not written out directly. For information\n // on how they are encoded, see\n // http://dvd.sourceforge.net/dvdinfo/pes-hdr.html\n pes.pts = (packet[offset + 9] & 0x0E) << 27 |\n (packet[offset + 10] & 0xFF) << 20 |\n (packet[offset + 11] & 0xFE) << 12 |\n (packet[offset + 12] & 0xFF) << 5 |\n (packet[offset + 13] & 0xFE) >>> 3;\n pes.pts *= 4; // Left shift by 2\n pes.pts += (packet[offset + 13] & 0x06) >>> 1; // OR by the two LSBs\n pes.dts = pes.pts;\n if (ptsDtsFlags & 0x40) {\n pes.dts = (packet[offset + 14] & 0x0E) << 27 |\n (packet[offset + 15] & 0xFF) << 20 |\n (packet[offset + 16] & 0xFE) << 12 |\n (packet[offset + 17] & 0xFF) << 5 |\n (packet[offset + 18] & 0xFE) >>> 3;\n pes.dts *= 4; // Left shift by 2\n pes.dts += (packet[offset + 18] & 0x06) >>> 1; // OR by the two LSBs\n }\n }\n return pes;\n};\n\nvar parseNalUnitType = function(type) {\n switch (type) {\n case 0x05:\n return 'slice_layer_without_partitioning_rbsp_idr';\n case 0x06:\n return 'sei_rbsp';\n case 0x07:\n return 'seq_parameter_set_rbsp';\n case 0x08:\n return 'pic_parameter_set_rbsp';\n case 0x09:\n return 'access_unit_delimiter_rbsp';\n default:\n return null;\n }\n};\n\nvar videoPacketContainsKeyFrame = function(packet) {\n var offset = 4 + parseAdaptionField(packet);\n var frameBuffer = packet.subarray(offset);\n var frameI = 0;\n var frameSyncPoint = 0;\n var foundKeyFrame = false;\n var nalType;\n\n // advance the sync point to a NAL start, if necessary\n for (; frameSyncPoint < frameBuffer.byteLength - 3; frameSyncPoint++) {\n if (frameBuffer[frameSyncPoint + 2] === 1) {\n // the sync point is properly aligned\n frameI = frameSyncPoint + 5;\n break;\n }\n }\n\n while (frameI < frameBuffer.byteLength) {\n // look at the current byte to determine if we've hit the end of\n // a NAL unit boundary\n switch (frameBuffer[frameI]) {\n case 0:\n // skip past non-sync sequences\n if (frameBuffer[frameI - 1] !== 0) {\n frameI += 2;\n break;\n } else if (frameBuffer[frameI - 2] !== 0) {\n frameI++;\n break;\n }\n\n if (frameSyncPoint + 3 !== frameI - 2) {\n nalType = parseNalUnitType(frameBuffer[frameSyncPoint + 3] & 0x1f);\n if (nalType === 'slice_layer_without_partitioning_rbsp_idr') {\n foundKeyFrame = true;\n }\n }\n\n // drop trailing zeroes\n do {\n frameI++;\n } while (frameBuffer[frameI] !== 1 && frameI < frameBuffer.length);\n frameSyncPoint = frameI - 2;\n frameI += 3;\n break;\n case 1:\n // skip past non-sync sequences\n if (frameBuffer[frameI - 1] !== 0 ||\n frameBuffer[frameI - 2] !== 0) {\n frameI += 3;\n break;\n }\n\n nalType = parseNalUnitType(frameBuffer[frameSyncPoint + 3] & 0x1f);\n if (nalType === 'slice_layer_without_partitioning_rbsp_idr') {\n foundKeyFrame = true;\n }\n frameSyncPoint = frameI - 2;\n frameI += 3;\n break;\n default:\n // the current byte isn't a one or zero, so it cannot be part\n // of a sync sequence\n frameI += 3;\n break;\n }\n }\n frameBuffer = frameBuffer.subarray(frameSyncPoint);\n frameI -= frameSyncPoint;\n frameSyncPoint = 0;\n // parse the final nal\n if (frameBuffer && frameBuffer.byteLength > 3) {\n nalType = parseNalUnitType(frameBuffer[frameSyncPoint + 3] & 0x1f);\n if (nalType === 'slice_layer_without_partitioning_rbsp_idr') {\n foundKeyFrame = true;\n }\n }\n\n return foundKeyFrame;\n};\n\n\nmodule.exports = {\n parseType: parseType,\n parsePat: parsePat,\n parsePmt: parsePmt,\n parsePayloadUnitStartIndicator: parsePayloadUnitStartIndicator,\n parsePesType: parsePesType,\n parsePesTime: parsePesTime,\n videoPacketContainsKeyFrame: videoPacketContainsKeyFrame\n};\n","/**\n * mux.js\n *\n * Copyright (c) Brightcove\n * Licensed Apache-2.0 https://github.com/videojs/mux.js/blob/master/LICENSE\n *\n * A lightweight readable stream implemention that handles event dispatching.\n * Objects that inherit from streams should call init in their constructors.\n */\n'use strict';\n\nvar Stream = function() {\n this.init = function() {\n var listeners = {};\n /**\n * Add a listener for a specified event type.\n * @param type {string} the event name\n * @param listener {function} the callback to be invoked when an event of\n * the specified type occurs\n */\n this.on = function(type, listener) {\n if (!listeners[type]) {\n listeners[type] = [];\n }\n listeners[type] = listeners[type].concat(listener);\n };\n /**\n * Remove a listener for a specified event type.\n * @param type {string} the event name\n * @param listener {function} a function previously registered for this\n * type of event through `on`\n */\n this.off = function(type, listener) {\n var index;\n if (!listeners[type]) {\n return false;\n }\n index = listeners[type].indexOf(listener);\n listeners[type] = listeners[type].slice();\n listeners[type].splice(index, 1);\n return index > -1;\n };\n /**\n * Trigger an event of the specified type on this stream. Any additional\n * arguments to this function are passed as parameters to event listeners.\n * @param type {string} the event name\n */\n this.trigger = function(type) {\n var callbacks, i, length, args;\n callbacks = listeners[type];\n if (!callbacks) {\n return;\n }\n // Slicing the arguments on every invocation of this method\n // can add a significant amount of overhead. Avoid the\n // intermediate object creation for the common case of a\n // single callback argument\n if (arguments.length === 2) {\n length = callbacks.length;\n for (i = 0; i < length; ++i) {\n callbacks[i].call(this, arguments[1]);\n }\n } else {\n args = [];\n i = arguments.length;\n for (i = 1; i < arguments.length; ++i) {\n args.push(arguments[i]);\n }\n length = callbacks.length;\n for (i = 0; i < length; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n };\n /**\n * Destroys the stream and cleans up.\n */\n this.dispose = function() {\n listeners = {};\n };\n };\n};\n\n/**\n * Forwards all `data` events on this stream to the destination stream. The\n * destination stream should provide a method `push` to receive the data\n * events as they arrive.\n * @param destination {stream} the stream that will receive all `data` events\n * @param autoFlush {boolean} if false, we will not call `flush` on the destination\n * when the current stream emits a 'done' event\n * @see http://nodejs.org/api/stream.html#stream_readable_pipe_destination_options\n */\nStream.prototype.pipe = function(destination) {\n this.on('data', function(data) {\n destination.push(data);\n });\n\n this.on('done', function(flushSource) {\n destination.flush(flushSource);\n });\n\n this.on('partialdone', function(flushSource) {\n destination.partialFlush(flushSource);\n });\n\n this.on('endedtimeline', function(flushSource) {\n destination.endTimeline(flushSource);\n });\n\n this.on('reset', function(flushSource) {\n destination.reset(flushSource);\n });\n\n return destination;\n};\n\n// Default stream functions that are expected to be overridden to perform\n// actual work. These are provided by the prototype as a sort of no-op\n// implementation so that we don't have to check for their existence in the\n// `pipe` function above.\nStream.prototype.push = function(data) {\n this.trigger('data', data);\n};\n\nStream.prototype.flush = function(flushSource) {\n this.trigger('done', flushSource);\n};\n\nStream.prototype.partialFlush = function(flushSource) {\n this.trigger('partialdone', flushSource);\n};\n\nStream.prototype.endTimeline = function(flushSource) {\n this.trigger('endedtimeline', flushSource);\n};\n\nStream.prototype.reset = function(flushSource) {\n this.trigger('reset', flushSource);\n};\n\nmodule.exports = Stream;\n","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar aFunction = require('../internals/a-function');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar bind = require('../internals/function-bind');\nvar fails = require('../internals/fails');\n\nvar nativeConstruct = getBuiltIn('Reflect', 'construct');\n\n// `Reflect.construct` method\n// https://tc39.es/ecma262/#sec-reflect.construct\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n nativeConstruct(function () { /* empty */ });\n});\nvar FORCED = NEW_TARGET_BUG || ARGS_BUG;\n\n$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {\n construct: function construct(Target, args /* , newTarget */) {\n aFunction(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : Object.prototype);\n var result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.es/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n entries: function entries(O) {\n return $entries(O);\n }\n});\n","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inheritsLoose;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"player\"},[_c('video',{ref:\"videoPlayer\",staticClass:\"video-js vjs-big-play-centered\",attrs:{\"width\":\"100%\",\"height\":\"100%\"}},[_vm._m(0)])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('p',{staticClass:\"vjs-no-js\"},[_vm._v(\" To view this video please enable JavaScript, and consider upgrading to a web browser that \"),_c('a',{attrs:{\"href\":\"https://videojs.com/html5-video-support/\",\"target\":\"_blank\"}},[_vm._v(\" supports HTML5 video \")])])}]\n\nexport { render, staticRenderFns }","/*! @name m3u8-parser @version 4.5.0 @license Apache-2.0 */\nimport _inheritsLoose from '@babel/runtime/helpers/inheritsLoose';\nimport Stream from '@videojs/vhs-utils/dist/stream.js';\nimport _extends from '@babel/runtime/helpers/extends';\nimport _assertThisInitialized from '@babel/runtime/helpers/assertThisInitialized';\nimport decodeB64ToUint8Array from '@videojs/vhs-utils/dist/decode-b64-to-uint8-array.js';\n\n/**\n * A stream that buffers string input and generates a `data` event for each\n * line.\n *\n * @class LineStream\n * @extends Stream\n */\n\nvar LineStream =\n/*#__PURE__*/\nfunction (_Stream) {\n _inheritsLoose(LineStream, _Stream);\n\n function LineStream() {\n var _this;\n\n _this = _Stream.call(this) || this;\n _this.buffer = '';\n return _this;\n }\n /**\n * Add new data to be parsed.\n *\n * @param {string} data the text to process\n */\n\n\n var _proto = LineStream.prototype;\n\n _proto.push = function push(data) {\n var nextNewline;\n this.buffer += data;\n nextNewline = this.buffer.indexOf('\\n');\n\n for (; nextNewline > -1; nextNewline = this.buffer.indexOf('\\n')) {\n this.trigger('data', this.buffer.substring(0, nextNewline));\n this.buffer = this.buffer.substring(nextNewline + 1);\n }\n };\n\n return LineStream;\n}(Stream);\n\n/**\n * \"forgiving\" attribute list psuedo-grammar:\n * attributes -> keyvalue (',' keyvalue)*\n * keyvalue -> key '=' value\n * key -> [^=]*\n * value -> '\"' [^\"]* '\"' | [^,]*\n */\n\nvar attributeSeparator = function attributeSeparator() {\n var key = '[^=]*';\n var value = '\"[^\"]*\"|[^,]*';\n var keyvalue = '(?:' + key + ')=(?:' + value + ')';\n return new RegExp('(?:^|,)(' + keyvalue + ')');\n};\n/**\n * Parse attributes from a line given the separator\n *\n * @param {string} attributes the attribute line to parse\n */\n\n\nvar parseAttributes = function parseAttributes(attributes) {\n // split the string using attributes as the separator\n var attrs = attributes.split(attributeSeparator());\n var result = {};\n var i = attrs.length;\n var attr;\n\n while (i--) {\n // filter out unmatched portions of the string\n if (attrs[i] === '') {\n continue;\n } // split the key and value\n\n\n attr = /([^=]*)=(.*)/.exec(attrs[i]).slice(1); // trim whitespace and remove optional quotes around the value\n\n attr[0] = attr[0].replace(/^\\s+|\\s+$/g, '');\n attr[1] = attr[1].replace(/^\\s+|\\s+$/g, '');\n attr[1] = attr[1].replace(/^['\"](.*)['\"]$/g, '$1');\n result[attr[0]] = attr[1];\n }\n\n return result;\n};\n/**\n * A line-level M3U8 parser event stream. It expects to receive input one\n * line at a time and performs a context-free parse of its contents. A stream\n * interpretation of a manifest can be useful if the manifest is expected to\n * be too large to fit comfortably into memory or the entirety of the input\n * is not immediately available. Otherwise, it's probably much easier to work\n * with a regular `Parser` object.\n *\n * Produces `data` events with an object that captures the parser's\n * interpretation of the input. That object has a property `tag` that is one\n * of `uri`, `comment`, or `tag`. URIs only have a single additional\n * property, `line`, which captures the entirety of the input without\n * interpretation. Comments similarly have a single additional property\n * `text` which is the input without the leading `#`.\n *\n * Tags always have a property `tagType` which is the lower-cased version of\n * the M3U8 directive without the `#EXT` or `#EXT-X-` prefix. For instance,\n * `#EXT-X-MEDIA-SEQUENCE` becomes `media-sequence` when parsed. Unrecognized\n * tags are given the tag type `unknown` and a single additional property\n * `data` with the remainder of the input.\n *\n * @class ParseStream\n * @extends Stream\n */\n\n\nvar ParseStream =\n/*#__PURE__*/\nfunction (_Stream) {\n _inheritsLoose(ParseStream, _Stream);\n\n function ParseStream() {\n var _this;\n\n _this = _Stream.call(this) || this;\n _this.customParsers = [];\n _this.tagMappers = [];\n return _this;\n }\n /**\n * Parses an additional line of input.\n *\n * @param {string} line a single line of an M3U8 file to parse\n */\n\n\n var _proto = ParseStream.prototype;\n\n _proto.push = function push(line) {\n var _this2 = this;\n\n var match;\n var event; // strip whitespace\n\n line = line.trim();\n\n if (line.length === 0) {\n // ignore empty lines\n return;\n } // URIs\n\n\n if (line[0] !== '#') {\n this.trigger('data', {\n type: 'uri',\n uri: line\n });\n return;\n } // map tags\n\n\n var newLines = this.tagMappers.reduce(function (acc, mapper) {\n var mappedLine = mapper(line); // skip if unchanged\n\n if (mappedLine === line) {\n return acc;\n }\n\n return acc.concat([mappedLine]);\n }, [line]);\n newLines.forEach(function (newLine) {\n for (var i = 0; i < _this2.customParsers.length; i++) {\n if (_this2.customParsers[i].call(_this2, newLine)) {\n return;\n }\n } // Comments\n\n\n if (newLine.indexOf('#EXT') !== 0) {\n _this2.trigger('data', {\n type: 'comment',\n text: newLine.slice(1)\n });\n\n return;\n } // strip off any carriage returns here so the regex matching\n // doesn't have to account for them.\n\n\n newLine = newLine.replace('\\r', ''); // Tags\n\n match = /^#EXTM3U/.exec(newLine);\n\n if (match) {\n _this2.trigger('data', {\n type: 'tag',\n tagType: 'm3u'\n });\n\n return;\n }\n\n match = /^#EXTINF:?([0-9\\.]*)?,?(.*)?$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'inf'\n };\n\n if (match[1]) {\n event.duration = parseFloat(match[1]);\n }\n\n if (match[2]) {\n event.title = match[2];\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-TARGETDURATION:?([0-9.]*)?/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'targetduration'\n };\n\n if (match[1]) {\n event.duration = parseInt(match[1], 10);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#ZEN-TOTAL-DURATION:?([0-9.]*)?/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'totalduration'\n };\n\n if (match[1]) {\n event.duration = parseInt(match[1], 10);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-VERSION:?([0-9.]*)?/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'version'\n };\n\n if (match[1]) {\n event.version = parseInt(match[1], 10);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-MEDIA-SEQUENCE:?(\\-?[0-9.]*)?/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'media-sequence'\n };\n\n if (match[1]) {\n event.number = parseInt(match[1], 10);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-DISCONTINUITY-SEQUENCE:?(\\-?[0-9.]*)?/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'discontinuity-sequence'\n };\n\n if (match[1]) {\n event.number = parseInt(match[1], 10);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-PLAYLIST-TYPE:?(.*)?$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'playlist-type'\n };\n\n if (match[1]) {\n event.playlistType = match[1];\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-BYTERANGE:?([0-9.]*)?@?([0-9.]*)?/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'byterange'\n };\n\n if (match[1]) {\n event.length = parseInt(match[1], 10);\n }\n\n if (match[2]) {\n event.offset = parseInt(match[2], 10);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-ALLOW-CACHE:?(YES|NO)?/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'allow-cache'\n };\n\n if (match[1]) {\n event.allowed = !/NO/.test(match[1]);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-MAP:?(.*)$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'map'\n };\n\n if (match[1]) {\n var attributes = parseAttributes(match[1]);\n\n if (attributes.URI) {\n event.uri = attributes.URI;\n }\n\n if (attributes.BYTERANGE) {\n var _attributes$BYTERANGE = attributes.BYTERANGE.split('@'),\n length = _attributes$BYTERANGE[0],\n offset = _attributes$BYTERANGE[1];\n\n event.byterange = {};\n\n if (length) {\n event.byterange.length = parseInt(length, 10);\n }\n\n if (offset) {\n event.byterange.offset = parseInt(offset, 10);\n }\n }\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-STREAM-INF:?(.*)$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'stream-inf'\n };\n\n if (match[1]) {\n event.attributes = parseAttributes(match[1]);\n\n if (event.attributes.RESOLUTION) {\n var split = event.attributes.RESOLUTION.split('x');\n var resolution = {};\n\n if (split[0]) {\n resolution.width = parseInt(split[0], 10);\n }\n\n if (split[1]) {\n resolution.height = parseInt(split[1], 10);\n }\n\n event.attributes.RESOLUTION = resolution;\n }\n\n if (event.attributes.BANDWIDTH) {\n event.attributes.BANDWIDTH = parseInt(event.attributes.BANDWIDTH, 10);\n }\n\n if (event.attributes['PROGRAM-ID']) {\n event.attributes['PROGRAM-ID'] = parseInt(event.attributes['PROGRAM-ID'], 10);\n }\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-MEDIA:?(.*)$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'media'\n };\n\n if (match[1]) {\n event.attributes = parseAttributes(match[1]);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-ENDLIST/.exec(newLine);\n\n if (match) {\n _this2.trigger('data', {\n type: 'tag',\n tagType: 'endlist'\n });\n\n return;\n }\n\n match = /^#EXT-X-DISCONTINUITY/.exec(newLine);\n\n if (match) {\n _this2.trigger('data', {\n type: 'tag',\n tagType: 'discontinuity'\n });\n\n return;\n }\n\n match = /^#EXT-X-PROGRAM-DATE-TIME:?(.*)$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'program-date-time'\n };\n\n if (match[1]) {\n event.dateTimeString = match[1];\n event.dateTimeObject = new Date(match[1]);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-KEY:?(.*)$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'key'\n };\n\n if (match[1]) {\n event.attributes = parseAttributes(match[1]); // parse the IV string into a Uint32Array\n\n if (event.attributes.IV) {\n if (event.attributes.IV.substring(0, 2).toLowerCase() === '0x') {\n event.attributes.IV = event.attributes.IV.substring(2);\n }\n\n event.attributes.IV = event.attributes.IV.match(/.{8}/g);\n event.attributes.IV[0] = parseInt(event.attributes.IV[0], 16);\n event.attributes.IV[1] = parseInt(event.attributes.IV[1], 16);\n event.attributes.IV[2] = parseInt(event.attributes.IV[2], 16);\n event.attributes.IV[3] = parseInt(event.attributes.IV[3], 16);\n event.attributes.IV = new Uint32Array(event.attributes.IV);\n }\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-START:?(.*)$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'start'\n };\n\n if (match[1]) {\n event.attributes = parseAttributes(match[1]);\n event.attributes['TIME-OFFSET'] = parseFloat(event.attributes['TIME-OFFSET']);\n event.attributes.PRECISE = /YES/.test(event.attributes.PRECISE);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-CUE-OUT-CONT:?(.*)?$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'cue-out-cont'\n };\n\n if (match[1]) {\n event.data = match[1];\n } else {\n event.data = '';\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-CUE-OUT:?(.*)?$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'cue-out'\n };\n\n if (match[1]) {\n event.data = match[1];\n } else {\n event.data = '';\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-CUE-IN:?(.*)?$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'cue-in'\n };\n\n if (match[1]) {\n event.data = match[1];\n } else {\n event.data = '';\n }\n\n _this2.trigger('data', event);\n\n return;\n } // unknown tag type\n\n\n _this2.trigger('data', {\n type: 'tag',\n data: newLine.slice(4)\n });\n });\n }\n /**\n * Add a parser for custom headers\n *\n * @param {Object} options a map of options for the added parser\n * @param {RegExp} options.expression a regular expression to match the custom header\n * @param {string} options.customType the custom type to register to the output\n * @param {Function} [options.dataParser] function to parse the line into an object\n * @param {boolean} [options.segment] should tag data be attached to the segment object\n */\n ;\n\n _proto.addParser = function addParser(_ref) {\n var _this3 = this;\n\n var expression = _ref.expression,\n customType = _ref.customType,\n dataParser = _ref.dataParser,\n segment = _ref.segment;\n\n if (typeof dataParser !== 'function') {\n dataParser = function dataParser(line) {\n return line;\n };\n }\n\n this.customParsers.push(function (line) {\n var match = expression.exec(line);\n\n if (match) {\n _this3.trigger('data', {\n type: 'custom',\n data: dataParser(line),\n customType: customType,\n segment: segment\n });\n\n return true;\n }\n });\n }\n /**\n * Add a custom header mapper\n *\n * @param {Object} options\n * @param {RegExp} options.expression a regular expression to match the custom header\n * @param {Function} options.map function to translate tag into a different tag\n */\n ;\n\n _proto.addTagMapper = function addTagMapper(_ref2) {\n var expression = _ref2.expression,\n map = _ref2.map;\n\n var mapFn = function mapFn(line) {\n if (expression.test(line)) {\n return map(line);\n }\n\n return line;\n };\n\n this.tagMappers.push(mapFn);\n };\n\n return ParseStream;\n}(Stream);\n\n/**\n * A parser for M3U8 files. The current interpretation of the input is\n * exposed as a property `manifest` on parser objects. It's just two lines to\n * create and parse a manifest once you have the contents available as a string:\n *\n * ```js\n * var parser = new m3u8.Parser();\n * parser.push(xhr.responseText);\n * ```\n *\n * New input can later be applied to update the manifest object by calling\n * `push` again.\n *\n * The parser attempts to create a usable manifest object even if the\n * underlying input is somewhat nonsensical. It emits `info` and `warning`\n * events during the parse if it encounters input that seems invalid or\n * requires some property of the manifest object to be defaulted.\n *\n * @class Parser\n * @extends Stream\n */\n\nvar Parser =\n/*#__PURE__*/\nfunction (_Stream) {\n _inheritsLoose(Parser, _Stream);\n\n function Parser() {\n var _this;\n\n _this = _Stream.call(this) || this;\n _this.lineStream = new LineStream();\n _this.parseStream = new ParseStream();\n\n _this.lineStream.pipe(_this.parseStream);\n /* eslint-disable consistent-this */\n\n\n var self = _assertThisInitialized(_this);\n /* eslint-enable consistent-this */\n\n\n var uris = [];\n var currentUri = {}; // if specified, the active EXT-X-MAP definition\n\n var currentMap; // if specified, the active decryption key\n\n var _key;\n\n var noop = function noop() {};\n\n var defaultMediaGroups = {\n 'AUDIO': {},\n 'VIDEO': {},\n 'CLOSED-CAPTIONS': {},\n 'SUBTITLES': {}\n }; // This is the Widevine UUID from DASH IF IOP. The same exact string is\n // used in MPDs with Widevine encrypted streams.\n\n var widevineUuid = 'urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed'; // group segments into numbered timelines delineated by discontinuities\n\n var currentTimeline = 0; // the manifest is empty until the parse stream begins delivering data\n\n _this.manifest = {\n allowCache: true,\n discontinuityStarts: [],\n segments: []\n }; // keep track of the last seen segment's byte range end, as segments are not required\n // to provide the offset, in which case it defaults to the next byte after the\n // previous segment\n\n var lastByterangeEnd = 0; // update the manifest with the m3u8 entry from the parse stream\n\n _this.parseStream.on('data', function (entry) {\n var mediaGroup;\n var rendition;\n ({\n tag: function tag() {\n // switch based on the tag type\n (({\n 'allow-cache': function allowCache() {\n this.manifest.allowCache = entry.allowed;\n\n if (!('allowed' in entry)) {\n this.trigger('info', {\n message: 'defaulting allowCache to YES'\n });\n this.manifest.allowCache = true;\n }\n },\n byterange: function byterange() {\n var byterange = {};\n\n if ('length' in entry) {\n currentUri.byterange = byterange;\n byterange.length = entry.length;\n\n if (!('offset' in entry)) {\n /*\n * From the latest spec (as of this writing):\n * https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.2.2\n *\n * Same text since EXT-X-BYTERANGE's introduction in draft 7:\n * https://tools.ietf.org/html/draft-pantos-http-live-streaming-07#section-3.3.1)\n *\n * \"If o [offset] is not present, the sub-range begins at the next byte\n * following the sub-range of the previous media segment.\"\n */\n entry.offset = lastByterangeEnd;\n }\n }\n\n if ('offset' in entry) {\n currentUri.byterange = byterange;\n byterange.offset = entry.offset;\n }\n\n lastByterangeEnd = byterange.offset + byterange.length;\n },\n endlist: function endlist() {\n this.manifest.endList = true;\n },\n inf: function inf() {\n if (!('mediaSequence' in this.manifest)) {\n this.manifest.mediaSequence = 0;\n this.trigger('info', {\n message: 'defaulting media sequence to zero'\n });\n }\n\n if (!('discontinuitySequence' in this.manifest)) {\n this.manifest.discontinuitySequence = 0;\n this.trigger('info', {\n message: 'defaulting discontinuity sequence to zero'\n });\n }\n\n if (entry.duration > 0) {\n currentUri.duration = entry.duration;\n }\n\n if (entry.duration === 0) {\n currentUri.duration = 0.01;\n this.trigger('info', {\n message: 'updating zero segment duration to a small value'\n });\n }\n\n this.manifest.segments = uris;\n },\n key: function key() {\n if (!entry.attributes) {\n this.trigger('warn', {\n message: 'ignoring key declaration without attribute list'\n });\n return;\n } // clear the active encryption key\n\n\n if (entry.attributes.METHOD === 'NONE') {\n _key = null;\n return;\n }\n\n if (!entry.attributes.URI) {\n this.trigger('warn', {\n message: 'ignoring key declaration without URI'\n });\n return;\n } // check if the content is encrypted for Widevine\n // Widevine/HLS spec: https://storage.googleapis.com/wvdocs/Widevine_DRM_HLS.pdf\n\n\n if (entry.attributes.KEYFORMAT === widevineUuid) {\n var VALID_METHODS = ['SAMPLE-AES', 'SAMPLE-AES-CTR', 'SAMPLE-AES-CENC'];\n\n if (VALID_METHODS.indexOf(entry.attributes.METHOD) === -1) {\n this.trigger('warn', {\n message: 'invalid key method provided for Widevine'\n });\n return;\n }\n\n if (entry.attributes.METHOD === 'SAMPLE-AES-CENC') {\n this.trigger('warn', {\n message: 'SAMPLE-AES-CENC is deprecated, please use SAMPLE-AES-CTR instead'\n });\n }\n\n if (entry.attributes.URI.substring(0, 23) !== 'data:text/plain;base64,') {\n this.trigger('warn', {\n message: 'invalid key URI provided for Widevine'\n });\n return;\n }\n\n if (!(entry.attributes.KEYID && entry.attributes.KEYID.substring(0, 2) === '0x')) {\n this.trigger('warn', {\n message: 'invalid key ID provided for Widevine'\n });\n return;\n } // if Widevine key attributes are valid, store them as `contentProtection`\n // on the manifest to emulate Widevine tag structure in a DASH mpd\n\n\n this.manifest.contentProtection = {\n 'com.widevine.alpha': {\n attributes: {\n schemeIdUri: entry.attributes.KEYFORMAT,\n // remove '0x' from the key id string\n keyId: entry.attributes.KEYID.substring(2)\n },\n // decode the base64-encoded PSSH box\n pssh: decodeB64ToUint8Array(entry.attributes.URI.split(',')[1])\n }\n };\n return;\n }\n\n if (!entry.attributes.METHOD) {\n this.trigger('warn', {\n message: 'defaulting key method to AES-128'\n });\n } // setup an encryption key for upcoming segments\n\n\n _key = {\n method: entry.attributes.METHOD || 'AES-128',\n uri: entry.attributes.URI\n };\n\n if (typeof entry.attributes.IV !== 'undefined') {\n _key.iv = entry.attributes.IV;\n }\n },\n 'media-sequence': function mediaSequence() {\n if (!isFinite(entry.number)) {\n this.trigger('warn', {\n message: 'ignoring invalid media sequence: ' + entry.number\n });\n return;\n }\n\n this.manifest.mediaSequence = entry.number;\n },\n 'discontinuity-sequence': function discontinuitySequence() {\n if (!isFinite(entry.number)) {\n this.trigger('warn', {\n message: 'ignoring invalid discontinuity sequence: ' + entry.number\n });\n return;\n }\n\n this.manifest.discontinuitySequence = entry.number;\n currentTimeline = entry.number;\n },\n 'playlist-type': function playlistType() {\n if (!/VOD|EVENT/.test(entry.playlistType)) {\n this.trigger('warn', {\n message: 'ignoring unknown playlist type: ' + entry.playlist\n });\n return;\n }\n\n this.manifest.playlistType = entry.playlistType;\n },\n map: function map() {\n currentMap = {};\n\n if (entry.uri) {\n currentMap.uri = entry.uri;\n }\n\n if (entry.byterange) {\n currentMap.byterange = entry.byterange;\n }\n },\n 'stream-inf': function streamInf() {\n this.manifest.playlists = uris;\n this.manifest.mediaGroups = this.manifest.mediaGroups || defaultMediaGroups;\n\n if (!entry.attributes) {\n this.trigger('warn', {\n message: 'ignoring empty stream-inf attributes'\n });\n return;\n }\n\n if (!currentUri.attributes) {\n currentUri.attributes = {};\n }\n\n _extends(currentUri.attributes, entry.attributes);\n },\n media: function media() {\n this.manifest.mediaGroups = this.manifest.mediaGroups || defaultMediaGroups;\n\n if (!(entry.attributes && entry.attributes.TYPE && entry.attributes['GROUP-ID'] && entry.attributes.NAME)) {\n this.trigger('warn', {\n message: 'ignoring incomplete or missing media group'\n });\n return;\n } // find the media group, creating defaults as necessary\n\n\n var mediaGroupType = this.manifest.mediaGroups[entry.attributes.TYPE];\n mediaGroupType[entry.attributes['GROUP-ID']] = mediaGroupType[entry.attributes['GROUP-ID']] || {};\n mediaGroup = mediaGroupType[entry.attributes['GROUP-ID']]; // collect the rendition metadata\n\n rendition = {\n default: /yes/i.test(entry.attributes.DEFAULT)\n };\n\n if (rendition.default) {\n rendition.autoselect = true;\n } else {\n rendition.autoselect = /yes/i.test(entry.attributes.AUTOSELECT);\n }\n\n if (entry.attributes.LANGUAGE) {\n rendition.language = entry.attributes.LANGUAGE;\n }\n\n if (entry.attributes.URI) {\n rendition.uri = entry.attributes.URI;\n }\n\n if (entry.attributes['INSTREAM-ID']) {\n rendition.instreamId = entry.attributes['INSTREAM-ID'];\n }\n\n if (entry.attributes.CHARACTERISTICS) {\n rendition.characteristics = entry.attributes.CHARACTERISTICS;\n }\n\n if (entry.attributes.FORCED) {\n rendition.forced = /yes/i.test(entry.attributes.FORCED);\n } // insert the new rendition\n\n\n mediaGroup[entry.attributes.NAME] = rendition;\n },\n discontinuity: function discontinuity() {\n currentTimeline += 1;\n currentUri.discontinuity = true;\n this.manifest.discontinuityStarts.push(uris.length);\n },\n 'program-date-time': function programDateTime() {\n if (typeof this.manifest.dateTimeString === 'undefined') {\n // PROGRAM-DATE-TIME is a media-segment tag, but for backwards\n // compatibility, we add the first occurence of the PROGRAM-DATE-TIME tag\n // to the manifest object\n // TODO: Consider removing this in future major version\n this.manifest.dateTimeString = entry.dateTimeString;\n this.manifest.dateTimeObject = entry.dateTimeObject;\n }\n\n currentUri.dateTimeString = entry.dateTimeString;\n currentUri.dateTimeObject = entry.dateTimeObject;\n },\n targetduration: function targetduration() {\n if (!isFinite(entry.duration) || entry.duration < 0) {\n this.trigger('warn', {\n message: 'ignoring invalid target duration: ' + entry.duration\n });\n return;\n }\n\n this.manifest.targetDuration = entry.duration;\n },\n totalduration: function totalduration() {\n if (!isFinite(entry.duration) || entry.duration < 0) {\n this.trigger('warn', {\n message: 'ignoring invalid total duration: ' + entry.duration\n });\n return;\n }\n\n this.manifest.totalDuration = entry.duration;\n },\n start: function start() {\n if (!entry.attributes || isNaN(entry.attributes['TIME-OFFSET'])) {\n this.trigger('warn', {\n message: 'ignoring start declaration without appropriate attribute list'\n });\n return;\n }\n\n this.manifest.start = {\n timeOffset: entry.attributes['TIME-OFFSET'],\n precise: entry.attributes.PRECISE\n };\n },\n 'cue-out': function cueOut() {\n currentUri.cueOut = entry.data;\n },\n 'cue-out-cont': function cueOutCont() {\n currentUri.cueOutCont = entry.data;\n },\n 'cue-in': function cueIn() {\n currentUri.cueIn = entry.data;\n }\n })[entry.tagType] || noop).call(self);\n },\n uri: function uri() {\n currentUri.uri = entry.uri;\n uris.push(currentUri); // if no explicit duration was declared, use the target duration\n\n if (this.manifest.targetDuration && !('duration' in currentUri)) {\n this.trigger('warn', {\n message: 'defaulting segment duration to the target duration'\n });\n currentUri.duration = this.manifest.targetDuration;\n } // annotate with encryption information, if necessary\n\n\n if (_key) {\n currentUri.key = _key;\n }\n\n currentUri.timeline = currentTimeline; // annotate with initialization segment information, if necessary\n\n if (currentMap) {\n currentUri.map = currentMap;\n } // prepare for the next URI\n\n\n currentUri = {};\n },\n comment: function comment() {// comments are not important for playback\n },\n custom: function custom() {\n // if this is segment-level data attach the output to the segment\n if (entry.segment) {\n currentUri.custom = currentUri.custom || {};\n currentUri.custom[entry.customType] = entry.data; // if this is manifest-level data attach to the top level manifest object\n } else {\n this.manifest.custom = this.manifest.custom || {};\n this.manifest.custom[entry.customType] = entry.data;\n }\n }\n })[entry.type].call(self);\n });\n\n return _this;\n }\n /**\n * Parse the input string and update the manifest object.\n *\n * @param {string} chunk a potentially incomplete portion of the manifest\n */\n\n\n var _proto = Parser.prototype;\n\n _proto.push = function push(chunk) {\n this.lineStream.push(chunk);\n }\n /**\n * Flush any remaining input. This can be handy if the last line of an M3U8\n * manifest did not contain a trailing newline but the file has been\n * completely received.\n */\n ;\n\n _proto.end = function end() {\n // flush any buffered input\n this.lineStream.push('\\n');\n }\n /**\n * Add an additional parser for non-standard tags\n *\n * @param {Object} options a map of options for the added parser\n * @param {RegExp} options.expression a regular expression to match the custom header\n * @param {string} options.type the type to register to the output\n * @param {Function} [options.dataParser] function to parse the line into an object\n * @param {boolean} [options.segment] should tag data be attached to the segment object\n */\n ;\n\n _proto.addParser = function addParser(options) {\n this.parseStream.addParser(options);\n }\n /**\n * Add a custom header mapper\n *\n * @param {Object} options\n * @param {RegExp} options.expression a regular expression to match the custom header\n * @param {Function} options.map function to translate tag into a different tag\n */\n ;\n\n _proto.addTagMapper = function addTagMapper(options) {\n this.parseStream.addTagMapper(options);\n };\n\n return Parser;\n}(Stream);\n\nexport { LineStream, ParseStream, Parser };\n","/*! @name mpd-parser @version 0.15.0 @license Apache-2.0 */\nimport resolveUrl from '@videojs/vhs-utils/dist/resolve-url';\nimport window from 'global/window';\nimport decodeB64ToUint8Array from '@videojs/vhs-utils/dist/decode-b64-to-uint8-array';\nimport { DOMParser } from 'xmldom';\n\nvar version = \"0.15.0\";\n\nvar isObject = function isObject(obj) {\n return !!obj && typeof obj === 'object';\n};\n\nvar merge = function merge() {\n for (var _len = arguments.length, objects = new Array(_len), _key = 0; _key < _len; _key++) {\n objects[_key] = arguments[_key];\n }\n\n return objects.reduce(function (result, source) {\n if (typeof source !== 'object') {\n return result;\n }\n\n Object.keys(source).forEach(function (key) {\n if (Array.isArray(result[key]) && Array.isArray(source[key])) {\n result[key] = result[key].concat(source[key]);\n } else if (isObject(result[key]) && isObject(source[key])) {\n result[key] = merge(result[key], source[key]);\n } else {\n result[key] = source[key];\n }\n });\n return result;\n }, {});\n};\nvar values = function values(o) {\n return Object.keys(o).map(function (k) {\n return o[k];\n });\n};\n\nvar range = function range(start, end) {\n var result = [];\n\n for (var i = start; i < end; i++) {\n result.push(i);\n }\n\n return result;\n};\nvar flatten = function flatten(lists) {\n return lists.reduce(function (x, y) {\n return x.concat(y);\n }, []);\n};\nvar from = function from(list) {\n if (!list.length) {\n return [];\n }\n\n var result = [];\n\n for (var i = 0; i < list.length; i++) {\n result.push(list[i]);\n }\n\n return result;\n};\nvar findIndexes = function findIndexes(l, key) {\n return l.reduce(function (a, e, i) {\n if (e[key]) {\n a.push(i);\n }\n\n return a;\n }, []);\n};\n\nvar errors = {\n INVALID_NUMBER_OF_PERIOD: 'INVALID_NUMBER_OF_PERIOD',\n DASH_EMPTY_MANIFEST: 'DASH_EMPTY_MANIFEST',\n DASH_INVALID_XML: 'DASH_INVALID_XML',\n NO_BASE_URL: 'NO_BASE_URL',\n MISSING_SEGMENT_INFORMATION: 'MISSING_SEGMENT_INFORMATION',\n SEGMENT_TIME_UNSPECIFIED: 'SEGMENT_TIME_UNSPECIFIED',\n UNSUPPORTED_UTC_TIMING_SCHEME: 'UNSUPPORTED_UTC_TIMING_SCHEME'\n};\n\n/**\n * @typedef {Object} SingleUri\n * @property {string} uri - relative location of segment\n * @property {string} resolvedUri - resolved location of segment\n * @property {Object} byterange - Object containing information on how to make byte range\n * requests following byte-range-spec per RFC2616.\n * @property {String} byterange.length - length of range request\n * @property {String} byterange.offset - byte offset of range request\n *\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.1\n */\n\n/**\n * Converts a URLType node (5.3.9.2.3 Table 13) to a segment object\n * that conforms to how m3u8-parser is structured\n *\n * @see https://github.com/videojs/m3u8-parser\n *\n * @param {string} baseUrl - baseUrl provided by nodes\n * @param {string} source - source url for segment\n * @param {string} range - optional range used for range calls,\n * follows RFC 2616, Clause 14.35.1\n * @return {SingleUri} full segment information transformed into a format similar\n * to m3u8-parser\n */\n\nvar urlTypeToSegment = function urlTypeToSegment(_ref) {\n var _ref$baseUrl = _ref.baseUrl,\n baseUrl = _ref$baseUrl === void 0 ? '' : _ref$baseUrl,\n _ref$source = _ref.source,\n source = _ref$source === void 0 ? '' : _ref$source,\n _ref$range = _ref.range,\n range = _ref$range === void 0 ? '' : _ref$range,\n _ref$indexRange = _ref.indexRange,\n indexRange = _ref$indexRange === void 0 ? '' : _ref$indexRange;\n var segment = {\n uri: source,\n resolvedUri: resolveUrl(baseUrl || '', source)\n };\n\n if (range || indexRange) {\n var rangeStr = range ? range : indexRange;\n var ranges = rangeStr.split('-');\n var startRange = parseInt(ranges[0], 10);\n var endRange = parseInt(ranges[1], 10); // byterange should be inclusive according to\n // RFC 2616, Clause 14.35.1\n\n segment.byterange = {\n length: endRange - startRange + 1,\n offset: startRange\n };\n }\n\n return segment;\n};\nvar byteRangeToString = function byteRangeToString(byterange) {\n // `endRange` is one less than `offset + length` because the HTTP range\n // header uses inclusive ranges\n var endRange = byterange.offset + byterange.length - 1;\n return byterange.offset + \"-\" + endRange;\n};\n\n/**\n * Functions for calculating the range of available segments in static and dynamic\n * manifests.\n */\n\nvar segmentRange = {\n /**\n * Returns the entire range of available segments for a static MPD\n *\n * @param {Object} attributes\n * Inheritied MPD attributes\n * @return {{ start: number, end: number }}\n * The start and end numbers for available segments\n */\n static: function _static(attributes) {\n var duration = attributes.duration,\n _attributes$timescale = attributes.timescale,\n timescale = _attributes$timescale === void 0 ? 1 : _attributes$timescale,\n sourceDuration = attributes.sourceDuration;\n return {\n start: 0,\n end: Math.ceil(sourceDuration / (duration / timescale))\n };\n },\n\n /**\n * Returns the current live window range of available segments for a dynamic MPD\n *\n * @param {Object} attributes\n * Inheritied MPD attributes\n * @return {{ start: number, end: number }}\n * The start and end numbers for available segments\n */\n dynamic: function dynamic(attributes) {\n var NOW = attributes.NOW,\n clientOffset = attributes.clientOffset,\n availabilityStartTime = attributes.availabilityStartTime,\n _attributes$timescale2 = attributes.timescale,\n timescale = _attributes$timescale2 === void 0 ? 1 : _attributes$timescale2,\n duration = attributes.duration,\n _attributes$start = attributes.start,\n start = _attributes$start === void 0 ? 0 : _attributes$start,\n _attributes$minimumUp = attributes.minimumUpdatePeriod,\n minimumUpdatePeriod = _attributes$minimumUp === void 0 ? 0 : _attributes$minimumUp,\n _attributes$timeShift = attributes.timeShiftBufferDepth,\n timeShiftBufferDepth = _attributes$timeShift === void 0 ? Infinity : _attributes$timeShift;\n var now = (NOW + clientOffset) / 1000;\n var periodStartWC = availabilityStartTime + start;\n var periodEndWC = now + minimumUpdatePeriod;\n var periodDuration = periodEndWC - periodStartWC;\n var segmentCount = Math.ceil(periodDuration * timescale / duration);\n var availableStart = Math.floor((now - periodStartWC - timeShiftBufferDepth) * timescale / duration);\n var availableEnd = Math.floor((now - periodStartWC) * timescale / duration);\n return {\n start: Math.max(0, availableStart),\n end: Math.min(segmentCount, availableEnd)\n };\n }\n};\n/**\n * Maps a range of numbers to objects with information needed to build the corresponding\n * segment list\n *\n * @name toSegmentsCallback\n * @function\n * @param {number} number\n * Number of the segment\n * @param {number} index\n * Index of the number in the range list\n * @return {{ number: Number, duration: Number, timeline: Number, time: Number }}\n * Object with segment timing and duration info\n */\n\n/**\n * Returns a callback for Array.prototype.map for mapping a range of numbers to\n * information needed to build the segment list.\n *\n * @param {Object} attributes\n * Inherited MPD attributes\n * @return {toSegmentsCallback}\n * Callback map function\n */\n\nvar toSegments = function toSegments(attributes) {\n return function (number, index) {\n var duration = attributes.duration,\n _attributes$timescale3 = attributes.timescale,\n timescale = _attributes$timescale3 === void 0 ? 1 : _attributes$timescale3,\n periodIndex = attributes.periodIndex,\n _attributes$startNumb = attributes.startNumber,\n startNumber = _attributes$startNumb === void 0 ? 1 : _attributes$startNumb;\n return {\n number: startNumber + number,\n duration: duration / timescale,\n timeline: periodIndex,\n time: index * duration\n };\n };\n};\n/**\n * Returns a list of objects containing segment timing and duration info used for\n * building the list of segments. This uses the @duration attribute specified\n * in the MPD manifest to derive the range of segments.\n *\n * @param {Object} attributes\n * Inherited MPD attributes\n * @return {{number: number, duration: number, time: number, timeline: number}[]}\n * List of Objects with segment timing and duration info\n */\n\nvar parseByDuration = function parseByDuration(attributes) {\n var _attributes$type = attributes.type,\n type = _attributes$type === void 0 ? 'static' : _attributes$type,\n duration = attributes.duration,\n _attributes$timescale4 = attributes.timescale,\n timescale = _attributes$timescale4 === void 0 ? 1 : _attributes$timescale4,\n sourceDuration = attributes.sourceDuration;\n\n var _segmentRange$type = segmentRange[type](attributes),\n start = _segmentRange$type.start,\n end = _segmentRange$type.end;\n\n var segments = range(start, end).map(toSegments(attributes));\n\n if (type === 'static') {\n var index = segments.length - 1; // final segment may be less than full segment duration\n\n segments[index].duration = sourceDuration - duration / timescale * index;\n }\n\n return segments;\n};\n\n/**\n * Translates SegmentBase into a set of segments.\n * (DASH SPEC Section 5.3.9.3.2) contains a set of nodes. Each\n * node should be translated into segment.\n *\n * @param {Object} attributes\n * Object containing all inherited attributes from parent elements with attribute\n * names as keys\n * @return {Object.} list of segments\n */\n\nvar segmentsFromBase = function segmentsFromBase(attributes) {\n var baseUrl = attributes.baseUrl,\n _attributes$initializ = attributes.initialization,\n initialization = _attributes$initializ === void 0 ? {} : _attributes$initializ,\n sourceDuration = attributes.sourceDuration,\n _attributes$indexRang = attributes.indexRange,\n indexRange = _attributes$indexRang === void 0 ? '' : _attributes$indexRang,\n duration = attributes.duration; // base url is required for SegmentBase to work, per spec (Section 5.3.9.2.1)\n\n if (!baseUrl) {\n throw new Error(errors.NO_BASE_URL);\n }\n\n var initSegment = urlTypeToSegment({\n baseUrl: baseUrl,\n source: initialization.sourceURL,\n range: initialization.range\n });\n var segment = urlTypeToSegment({\n baseUrl: baseUrl,\n source: baseUrl,\n indexRange: indexRange\n });\n segment.map = initSegment; // If there is a duration, use it, otherwise use the given duration of the source\n // (since SegmentBase is only for one total segment)\n\n if (duration) {\n var segmentTimeInfo = parseByDuration(attributes);\n\n if (segmentTimeInfo.length) {\n segment.duration = segmentTimeInfo[0].duration;\n segment.timeline = segmentTimeInfo[0].timeline;\n }\n } else if (sourceDuration) {\n segment.duration = sourceDuration;\n segment.timeline = 0;\n } // This is used for mediaSequence\n\n\n segment.number = 0;\n return [segment];\n};\n/**\n * Given a playlist, a sidx box, and a baseUrl, update the segment list of the playlist\n * according to the sidx information given.\n *\n * playlist.sidx has metadadata about the sidx where-as the sidx param\n * is the parsed sidx box itself.\n *\n * @param {Object} playlist the playlist to update the sidx information for\n * @param {Object} sidx the parsed sidx box\n * @return {Object} the playlist object with the updated sidx information\n */\n\nvar addSegmentsToPlaylist = function addSegmentsToPlaylist(playlist, sidx, baseUrl) {\n // Retain init segment information\n var initSegment = playlist.sidx.map ? playlist.sidx.map : null; // Retain source duration from initial master manifest parsing\n\n var sourceDuration = playlist.sidx.duration; // Retain source timeline\n\n var timeline = playlist.timeline || 0;\n var sidxByteRange = playlist.sidx.byterange;\n var sidxEnd = sidxByteRange.offset + sidxByteRange.length; // Retain timescale of the parsed sidx\n\n var timescale = sidx.timescale; // referenceType 1 refers to other sidx boxes\n\n var mediaReferences = sidx.references.filter(function (r) {\n return r.referenceType !== 1;\n });\n var segments = []; // firstOffset is the offset from the end of the sidx box\n\n var startIndex = sidxEnd + sidx.firstOffset;\n\n for (var i = 0; i < mediaReferences.length; i++) {\n var reference = sidx.references[i]; // size of the referenced (sub)segment\n\n var size = reference.referencedSize; // duration of the referenced (sub)segment, in the timescale\n // this will be converted to seconds when generating segments\n\n var duration = reference.subsegmentDuration; // should be an inclusive range\n\n var endIndex = startIndex + size - 1;\n var indexRange = startIndex + \"-\" + endIndex;\n var attributes = {\n baseUrl: baseUrl,\n timescale: timescale,\n timeline: timeline,\n // this is used in parseByDuration\n periodIndex: timeline,\n duration: duration,\n sourceDuration: sourceDuration,\n indexRange: indexRange\n };\n var segment = segmentsFromBase(attributes)[0];\n\n if (initSegment) {\n segment.map = initSegment;\n }\n\n segments.push(segment);\n startIndex += size;\n }\n\n playlist.segments = segments;\n return playlist;\n};\n\nvar mergeDiscontiguousPlaylists = function mergeDiscontiguousPlaylists(playlists) {\n var mergedPlaylists = values(playlists.reduce(function (acc, playlist) {\n // assuming playlist IDs are the same across periods\n // TODO: handle multiperiod where representation sets are not the same\n // across periods\n var name = playlist.attributes.id + (playlist.attributes.lang || ''); // Periods after first\n\n if (acc[name]) {\n var _acc$name$segments;\n\n // first segment of subsequent periods signal a discontinuity\n if (playlist.segments[0]) {\n playlist.segments[0].discontinuity = true;\n }\n\n (_acc$name$segments = acc[name].segments).push.apply(_acc$name$segments, playlist.segments); // bubble up contentProtection, this assumes all DRM content\n // has the same contentProtection\n\n\n if (playlist.attributes.contentProtection) {\n acc[name].attributes.contentProtection = playlist.attributes.contentProtection;\n }\n } else {\n // first Period\n acc[name] = playlist;\n }\n\n return acc;\n }, {}));\n return mergedPlaylists.map(function (playlist) {\n playlist.discontinuityStarts = findIndexes(playlist.segments, 'discontinuity');\n return playlist;\n });\n};\n\nvar addSegmentInfoFromSidx = function addSegmentInfoFromSidx(playlists, sidxMapping) {\n if (sidxMapping === void 0) {\n sidxMapping = {};\n }\n\n if (!Object.keys(sidxMapping).length) {\n return playlists;\n }\n\n for (var i in playlists) {\n var playlist = playlists[i];\n\n if (!playlist.sidx) {\n continue;\n }\n\n var sidxKey = playlist.sidx.uri + '-' + byteRangeToString(playlist.sidx.byterange);\n var sidxMatch = sidxMapping[sidxKey] && sidxMapping[sidxKey].sidx;\n\n if (playlist.sidx && sidxMatch) {\n addSegmentsToPlaylist(playlist, sidxMatch, playlist.sidx.resolvedUri);\n }\n }\n\n return playlists;\n};\n\nvar formatAudioPlaylist = function formatAudioPlaylist(_ref) {\n var _attributes;\n\n var attributes = _ref.attributes,\n segments = _ref.segments,\n sidx = _ref.sidx;\n var playlist = {\n attributes: (_attributes = {\n NAME: attributes.id,\n BANDWIDTH: attributes.bandwidth,\n CODECS: attributes.codecs\n }, _attributes['PROGRAM-ID'] = 1, _attributes),\n uri: '',\n endList: (attributes.type || 'static') === 'static',\n timeline: attributes.periodIndex,\n resolvedUri: '',\n targetDuration: attributes.duration,\n segments: segments,\n mediaSequence: segments.length ? segments[0].number : 1\n };\n\n if (attributes.contentProtection) {\n playlist.contentProtection = attributes.contentProtection;\n }\n\n if (sidx) {\n playlist.sidx = sidx;\n }\n\n return playlist;\n};\nvar formatVttPlaylist = function formatVttPlaylist(_ref2) {\n var _m3u8Attributes;\n\n var attributes = _ref2.attributes,\n segments = _ref2.segments;\n\n if (typeof segments === 'undefined') {\n // vtt tracks may use single file in BaseURL\n segments = [{\n uri: attributes.baseUrl,\n timeline: attributes.periodIndex,\n resolvedUri: attributes.baseUrl || '',\n duration: attributes.sourceDuration,\n number: 0\n }]; // targetDuration should be the same duration as the only segment\n\n attributes.duration = attributes.sourceDuration;\n }\n\n var m3u8Attributes = (_m3u8Attributes = {\n NAME: attributes.id,\n BANDWIDTH: attributes.bandwidth\n }, _m3u8Attributes['PROGRAM-ID'] = 1, _m3u8Attributes);\n\n if (attributes.codecs) {\n m3u8Attributes.CODECS = attributes.codecs;\n }\n\n return {\n attributes: m3u8Attributes,\n uri: '',\n endList: (attributes.type || 'static') === 'static',\n timeline: attributes.periodIndex,\n resolvedUri: attributes.baseUrl || '',\n targetDuration: attributes.duration,\n segments: segments,\n mediaSequence: segments.length ? segments[0].number : 1\n };\n};\nvar organizeAudioPlaylists = function organizeAudioPlaylists(playlists, sidxMapping) {\n if (sidxMapping === void 0) {\n sidxMapping = {};\n }\n\n var mainPlaylist;\n var formattedPlaylists = playlists.reduce(function (a, playlist) {\n var role = playlist.attributes.role && playlist.attributes.role.value || '';\n var language = playlist.attributes.lang || '';\n var label = 'main';\n\n if (language) {\n var roleLabel = role ? \" (\" + role + \")\" : '';\n label = \"\" + playlist.attributes.lang + roleLabel;\n } // skip if we already have the highest quality audio for a language\n\n\n if (a[label] && a[label].playlists[0].attributes.BANDWIDTH > playlist.attributes.bandwidth) {\n return a;\n }\n\n a[label] = {\n language: language,\n autoselect: true,\n default: role === 'main',\n playlists: addSegmentInfoFromSidx([formatAudioPlaylist(playlist)], sidxMapping),\n uri: ''\n };\n\n if (typeof mainPlaylist === 'undefined' && role === 'main') {\n mainPlaylist = playlist;\n mainPlaylist.default = true;\n }\n\n return a;\n }, {}); // if no playlists have role \"main\", mark the first as main\n\n if (!mainPlaylist) {\n var firstLabel = Object.keys(formattedPlaylists)[0];\n formattedPlaylists[firstLabel].default = true;\n }\n\n return formattedPlaylists;\n};\nvar organizeVttPlaylists = function organizeVttPlaylists(playlists, sidxMapping) {\n if (sidxMapping === void 0) {\n sidxMapping = {};\n }\n\n return playlists.reduce(function (a, playlist) {\n var label = playlist.attributes.lang || 'text'; // skip if we already have subtitles\n\n if (a[label]) {\n return a;\n }\n\n a[label] = {\n language: label,\n default: false,\n autoselect: false,\n playlists: addSegmentInfoFromSidx([formatVttPlaylist(playlist)], sidxMapping),\n uri: ''\n };\n return a;\n }, {});\n};\nvar formatVideoPlaylist = function formatVideoPlaylist(_ref3) {\n var _attributes2;\n\n var attributes = _ref3.attributes,\n segments = _ref3.segments,\n sidx = _ref3.sidx;\n var playlist = {\n attributes: (_attributes2 = {\n NAME: attributes.id,\n AUDIO: 'audio',\n SUBTITLES: 'subs',\n RESOLUTION: {\n width: attributes.width,\n height: attributes.height\n },\n CODECS: attributes.codecs,\n BANDWIDTH: attributes.bandwidth\n }, _attributes2['PROGRAM-ID'] = 1, _attributes2),\n uri: '',\n endList: (attributes.type || 'static') === 'static',\n timeline: attributes.periodIndex,\n resolvedUri: '',\n targetDuration: attributes.duration,\n segments: segments,\n mediaSequence: segments.length ? segments[0].number : 1\n };\n\n if (attributes.contentProtection) {\n playlist.contentProtection = attributes.contentProtection;\n }\n\n if (sidx) {\n playlist.sidx = sidx;\n }\n\n return playlist;\n};\nvar toM3u8 = function toM3u8(dashPlaylists, locations, sidxMapping) {\n var _mediaGroups;\n\n if (sidxMapping === void 0) {\n sidxMapping = {};\n }\n\n if (!dashPlaylists.length) {\n return {};\n } // grab all master attributes\n\n\n var _dashPlaylists$0$attr = dashPlaylists[0].attributes,\n duration = _dashPlaylists$0$attr.sourceDuration,\n _dashPlaylists$0$attr2 = _dashPlaylists$0$attr.type,\n type = _dashPlaylists$0$attr2 === void 0 ? 'static' : _dashPlaylists$0$attr2,\n suggestedPresentationDelay = _dashPlaylists$0$attr.suggestedPresentationDelay,\n minimumUpdatePeriod = _dashPlaylists$0$attr.minimumUpdatePeriod;\n\n var videoOnly = function videoOnly(_ref4) {\n var attributes = _ref4.attributes;\n return attributes.mimeType === 'video/mp4' || attributes.mimeType === 'video/webm' || attributes.contentType === 'video';\n };\n\n var audioOnly = function audioOnly(_ref5) {\n var attributes = _ref5.attributes;\n return attributes.mimeType === 'audio/mp4' || attributes.mimeType === 'audio/webm' || attributes.contentType === 'audio';\n };\n\n var vttOnly = function vttOnly(_ref6) {\n var attributes = _ref6.attributes;\n return attributes.mimeType === 'text/vtt' || attributes.contentType === 'text';\n };\n\n var videoPlaylists = mergeDiscontiguousPlaylists(dashPlaylists.filter(videoOnly)).map(formatVideoPlaylist);\n var audioPlaylists = mergeDiscontiguousPlaylists(dashPlaylists.filter(audioOnly));\n var vttPlaylists = dashPlaylists.filter(vttOnly);\n var master = {\n allowCache: true,\n discontinuityStarts: [],\n segments: [],\n endList: true,\n mediaGroups: (_mediaGroups = {\n AUDIO: {},\n VIDEO: {}\n }, _mediaGroups['CLOSED-CAPTIONS'] = {}, _mediaGroups.SUBTITLES = {}, _mediaGroups),\n uri: '',\n duration: duration,\n playlists: addSegmentInfoFromSidx(videoPlaylists, sidxMapping)\n };\n\n if (minimumUpdatePeriod >= 0) {\n master.minimumUpdatePeriod = minimumUpdatePeriod * 1000;\n }\n\n if (locations) {\n master.locations = locations;\n }\n\n if (type === 'dynamic') {\n master.suggestedPresentationDelay = suggestedPresentationDelay;\n }\n\n if (audioPlaylists.length) {\n master.mediaGroups.AUDIO.audio = organizeAudioPlaylists(audioPlaylists, sidxMapping);\n }\n\n if (vttPlaylists.length) {\n master.mediaGroups.SUBTITLES.subs = organizeVttPlaylists(vttPlaylists, sidxMapping);\n }\n\n return master;\n};\n\n/**\n * Calculates the R (repetition) value for a live stream (for the final segment\n * in a manifest where the r value is negative 1)\n *\n * @param {Object} attributes\n * Object containing all inherited attributes from parent elements with attribute\n * names as keys\n * @param {number} time\n * current time (typically the total time up until the final segment)\n * @param {number} duration\n * duration property for the given \n *\n * @return {number}\n * R value to reach the end of the given period\n */\nvar getLiveRValue = function getLiveRValue(attributes, time, duration) {\n var NOW = attributes.NOW,\n clientOffset = attributes.clientOffset,\n availabilityStartTime = attributes.availabilityStartTime,\n _attributes$timescale = attributes.timescale,\n timescale = _attributes$timescale === void 0 ? 1 : _attributes$timescale,\n _attributes$start = attributes.start,\n start = _attributes$start === void 0 ? 0 : _attributes$start,\n _attributes$minimumUp = attributes.minimumUpdatePeriod,\n minimumUpdatePeriod = _attributes$minimumUp === void 0 ? 0 : _attributes$minimumUp;\n var now = (NOW + clientOffset) / 1000;\n var periodStartWC = availabilityStartTime + start;\n var periodEndWC = now + minimumUpdatePeriod;\n var periodDuration = periodEndWC - periodStartWC;\n return Math.ceil((periodDuration * timescale - time) / duration);\n};\n/**\n * Uses information provided by SegmentTemplate.SegmentTimeline to determine segment\n * timing and duration\n *\n * @param {Object} attributes\n * Object containing all inherited attributes from parent elements with attribute\n * names as keys\n * @param {Object[]} segmentTimeline\n * List of objects representing the attributes of each S element contained within\n *\n * @return {{number: number, duration: number, time: number, timeline: number}[]}\n * List of Objects with segment timing and duration info\n */\n\n\nvar parseByTimeline = function parseByTimeline(attributes, segmentTimeline) {\n var _attributes$type = attributes.type,\n type = _attributes$type === void 0 ? 'static' : _attributes$type,\n _attributes$minimumUp2 = attributes.minimumUpdatePeriod,\n minimumUpdatePeriod = _attributes$minimumUp2 === void 0 ? 0 : _attributes$minimumUp2,\n _attributes$media = attributes.media,\n media = _attributes$media === void 0 ? '' : _attributes$media,\n sourceDuration = attributes.sourceDuration,\n _attributes$timescale2 = attributes.timescale,\n timescale = _attributes$timescale2 === void 0 ? 1 : _attributes$timescale2,\n _attributes$startNumb = attributes.startNumber,\n startNumber = _attributes$startNumb === void 0 ? 1 : _attributes$startNumb,\n timeline = attributes.periodIndex;\n var segments = [];\n var time = -1;\n\n for (var sIndex = 0; sIndex < segmentTimeline.length; sIndex++) {\n var S = segmentTimeline[sIndex];\n var duration = S.d;\n var repeat = S.r || 0;\n var segmentTime = S.t || 0;\n\n if (time < 0) {\n // first segment\n time = segmentTime;\n }\n\n if (segmentTime && segmentTime > time) {\n // discontinuity\n // TODO: How to handle this type of discontinuity\n // timeline++ here would treat it like HLS discontuity and content would\n // get appended without gap\n // E.G.\n // \n // \n // \n // \n // would have $Time$ values of [0, 1, 2, 5]\n // should this be appened at time positions [0, 1, 2, 3],(#EXT-X-DISCONTINUITY)\n // or [0, 1, 2, gap, gap, 5]? (#EXT-X-GAP)\n // does the value of sourceDuration consider this when calculating arbitrary\n // negative @r repeat value?\n // E.G. Same elements as above with this added at the end\n // \n // with a sourceDuration of 10\n // Would the 2 gaps be included in the time duration calculations resulting in\n // 8 segments with $Time$ values of [0, 1, 2, 5, 6, 7, 8, 9] or 10 segments\n // with $Time$ values of [0, 1, 2, 5, 6, 7, 8, 9, 10, 11] ?\n time = segmentTime;\n }\n\n var count = void 0;\n\n if (repeat < 0) {\n var nextS = sIndex + 1;\n\n if (nextS === segmentTimeline.length) {\n // last segment\n if (type === 'dynamic' && minimumUpdatePeriod > 0 && media.indexOf('$Number$') > 0) {\n count = getLiveRValue(attributes, time, duration);\n } else {\n // TODO: This may be incorrect depending on conclusion of TODO above\n count = (sourceDuration * timescale - time) / duration;\n }\n } else {\n count = (segmentTimeline[nextS].t - time) / duration;\n }\n } else {\n count = repeat + 1;\n }\n\n var end = startNumber + segments.length + count;\n var number = startNumber + segments.length;\n\n while (number < end) {\n segments.push({\n number: number,\n duration: duration / timescale,\n time: time,\n timeline: timeline\n });\n time += duration;\n number++;\n }\n }\n\n return segments;\n};\n\nvar identifierPattern = /\\$([A-z]*)(?:(%0)([0-9]+)d)?\\$/g;\n/**\n * Replaces template identifiers with corresponding values. To be used as the callback\n * for String.prototype.replace\n *\n * @name replaceCallback\n * @function\n * @param {string} match\n * Entire match of identifier\n * @param {string} identifier\n * Name of matched identifier\n * @param {string} format\n * Format tag string. Its presence indicates that padding is expected\n * @param {string} width\n * Desired length of the replaced value. Values less than this width shall be left\n * zero padded\n * @return {string}\n * Replacement for the matched identifier\n */\n\n/**\n * Returns a function to be used as a callback for String.prototype.replace to replace\n * template identifiers\n *\n * @param {Obect} values\n * Object containing values that shall be used to replace known identifiers\n * @param {number} values.RepresentationID\n * Value of the Representation@id attribute\n * @param {number} values.Number\n * Number of the corresponding segment\n * @param {number} values.Bandwidth\n * Value of the Representation@bandwidth attribute.\n * @param {number} values.Time\n * Timestamp value of the corresponding segment\n * @return {replaceCallback}\n * Callback to be used with String.prototype.replace to replace identifiers\n */\n\nvar identifierReplacement = function identifierReplacement(values) {\n return function (match, identifier, format, width) {\n if (match === '$$') {\n // escape sequence\n return '$';\n }\n\n if (typeof values[identifier] === 'undefined') {\n return match;\n }\n\n var value = '' + values[identifier];\n\n if (identifier === 'RepresentationID') {\n // Format tag shall not be present with RepresentationID\n return value;\n }\n\n if (!format) {\n width = 1;\n } else {\n width = parseInt(width, 10);\n }\n\n if (value.length >= width) {\n return value;\n }\n\n return \"\" + new Array(width - value.length + 1).join('0') + value;\n };\n};\n/**\n * Constructs a segment url from a template string\n *\n * @param {string} url\n * Template string to construct url from\n * @param {Obect} values\n * Object containing values that shall be used to replace known identifiers\n * @param {number} values.RepresentationID\n * Value of the Representation@id attribute\n * @param {number} values.Number\n * Number of the corresponding segment\n * @param {number} values.Bandwidth\n * Value of the Representation@bandwidth attribute.\n * @param {number} values.Time\n * Timestamp value of the corresponding segment\n * @return {string}\n * Segment url with identifiers replaced\n */\n\nvar constructTemplateUrl = function constructTemplateUrl(url, values) {\n return url.replace(identifierPattern, identifierReplacement(values));\n};\n/**\n * Generates a list of objects containing timing and duration information about each\n * segment needed to generate segment uris and the complete segment object\n *\n * @param {Object} attributes\n * Object containing all inherited attributes from parent elements with attribute\n * names as keys\n * @param {Object[]|undefined} segmentTimeline\n * List of objects representing the attributes of each S element contained within\n * the SegmentTimeline element\n * @return {{number: number, duration: number, time: number, timeline: number}[]}\n * List of Objects with segment timing and duration info\n */\n\nvar parseTemplateInfo = function parseTemplateInfo(attributes, segmentTimeline) {\n if (!attributes.duration && !segmentTimeline) {\n // if neither @duration or SegmentTimeline are present, then there shall be exactly\n // one media segment\n return [{\n number: attributes.startNumber || 1,\n duration: attributes.sourceDuration,\n time: 0,\n timeline: attributes.periodIndex\n }];\n }\n\n if (attributes.duration) {\n return parseByDuration(attributes);\n }\n\n return parseByTimeline(attributes, segmentTimeline);\n};\n/**\n * Generates a list of segments using information provided by the SegmentTemplate element\n *\n * @param {Object} attributes\n * Object containing all inherited attributes from parent elements with attribute\n * names as keys\n * @param {Object[]|undefined} segmentTimeline\n * List of objects representing the attributes of each S element contained within\n * the SegmentTimeline element\n * @return {Object[]}\n * List of segment objects\n */\n\nvar segmentsFromTemplate = function segmentsFromTemplate(attributes, segmentTimeline) {\n var templateValues = {\n RepresentationID: attributes.id,\n Bandwidth: attributes.bandwidth || 0\n };\n var _attributes$initializ = attributes.initialization,\n initialization = _attributes$initializ === void 0 ? {\n sourceURL: '',\n range: ''\n } : _attributes$initializ;\n var mapSegment = urlTypeToSegment({\n baseUrl: attributes.baseUrl,\n source: constructTemplateUrl(initialization.sourceURL, templateValues),\n range: initialization.range\n });\n var segments = parseTemplateInfo(attributes, segmentTimeline);\n return segments.map(function (segment) {\n templateValues.Number = segment.number;\n templateValues.Time = segment.time;\n var uri = constructTemplateUrl(attributes.media || '', templateValues);\n return {\n uri: uri,\n timeline: segment.timeline,\n duration: segment.duration,\n resolvedUri: resolveUrl(attributes.baseUrl || '', uri),\n map: mapSegment,\n number: segment.number\n };\n });\n};\n\n/**\n * Converts a (of type URLType from the DASH spec 5.3.9.2 Table 14)\n * to an object that matches the output of a segment in videojs/mpd-parser\n *\n * @param {Object} attributes\n * Object containing all inherited attributes from parent elements with attribute\n * names as keys\n * @param {Object} segmentUrl\n * node to translate into a segment object\n * @return {Object} translated segment object\n */\n\nvar SegmentURLToSegmentObject = function SegmentURLToSegmentObject(attributes, segmentUrl) {\n var baseUrl = attributes.baseUrl,\n _attributes$initializ = attributes.initialization,\n initialization = _attributes$initializ === void 0 ? {} : _attributes$initializ;\n var initSegment = urlTypeToSegment({\n baseUrl: baseUrl,\n source: initialization.sourceURL,\n range: initialization.range\n });\n var segment = urlTypeToSegment({\n baseUrl: baseUrl,\n source: segmentUrl.media,\n range: segmentUrl.mediaRange\n });\n segment.map = initSegment;\n return segment;\n};\n/**\n * Generates a list of segments using information provided by the SegmentList element\n * SegmentList (DASH SPEC Section 5.3.9.3.2) contains a set of nodes. Each\n * node should be translated into segment.\n *\n * @param {Object} attributes\n * Object containing all inherited attributes from parent elements with attribute\n * names as keys\n * @param {Object[]|undefined} segmentTimeline\n * List of objects representing the attributes of each S element contained within\n * the SegmentTimeline element\n * @return {Object.} list of segments\n */\n\n\nvar segmentsFromList = function segmentsFromList(attributes, segmentTimeline) {\n var duration = attributes.duration,\n _attributes$segmentUr = attributes.segmentUrls,\n segmentUrls = _attributes$segmentUr === void 0 ? [] : _attributes$segmentUr; // Per spec (5.3.9.2.1) no way to determine segment duration OR\n // if both SegmentTimeline and @duration are defined, it is outside of spec.\n\n if (!duration && !segmentTimeline || duration && segmentTimeline) {\n throw new Error(errors.SEGMENT_TIME_UNSPECIFIED);\n }\n\n var segmentUrlMap = segmentUrls.map(function (segmentUrlObject) {\n return SegmentURLToSegmentObject(attributes, segmentUrlObject);\n });\n var segmentTimeInfo;\n\n if (duration) {\n segmentTimeInfo = parseByDuration(attributes);\n }\n\n if (segmentTimeline) {\n segmentTimeInfo = parseByTimeline(attributes, segmentTimeline);\n }\n\n var segments = segmentTimeInfo.map(function (segmentTime, index) {\n if (segmentUrlMap[index]) {\n var segment = segmentUrlMap[index];\n segment.timeline = segmentTime.timeline;\n segment.duration = segmentTime.duration;\n segment.number = segmentTime.number;\n return segment;\n } // Since we're mapping we should get rid of any blank segments (in case\n // the given SegmentTimeline is handling for more elements than we have\n // SegmentURLs for).\n\n }).filter(function (segment) {\n return segment;\n });\n return segments;\n};\n\nvar generateSegments = function generateSegments(_ref) {\n var attributes = _ref.attributes,\n segmentInfo = _ref.segmentInfo;\n var segmentAttributes;\n var segmentsFn;\n\n if (segmentInfo.template) {\n segmentsFn = segmentsFromTemplate;\n segmentAttributes = merge(attributes, segmentInfo.template);\n } else if (segmentInfo.base) {\n segmentsFn = segmentsFromBase;\n segmentAttributes = merge(attributes, segmentInfo.base);\n } else if (segmentInfo.list) {\n segmentsFn = segmentsFromList;\n segmentAttributes = merge(attributes, segmentInfo.list);\n }\n\n var segmentsInfo = {\n attributes: attributes\n };\n\n if (!segmentsFn) {\n return segmentsInfo;\n }\n\n var segments = segmentsFn(segmentAttributes, segmentInfo.timeline); // The @duration attribute will be used to determin the playlist's targetDuration which\n // must be in seconds. Since we've generated the segment list, we no longer need\n // @duration to be in @timescale units, so we can convert it here.\n\n if (segmentAttributes.duration) {\n var _segmentAttributes = segmentAttributes,\n duration = _segmentAttributes.duration,\n _segmentAttributes$ti = _segmentAttributes.timescale,\n timescale = _segmentAttributes$ti === void 0 ? 1 : _segmentAttributes$ti;\n segmentAttributes.duration = duration / timescale;\n } else if (segments.length) {\n // if there is no @duration attribute, use the largest segment duration as\n // as target duration\n segmentAttributes.duration = segments.reduce(function (max, segment) {\n return Math.max(max, Math.ceil(segment.duration));\n }, 0);\n } else {\n segmentAttributes.duration = 0;\n }\n\n segmentsInfo.attributes = segmentAttributes;\n segmentsInfo.segments = segments; // This is a sidx box without actual segment information\n\n if (segmentInfo.base && segmentAttributes.indexRange) {\n segmentsInfo.sidx = segments[0];\n segmentsInfo.segments = [];\n }\n\n return segmentsInfo;\n};\nvar toPlaylists = function toPlaylists(representations) {\n return representations.map(generateSegments);\n};\n\nvar findChildren = function findChildren(element, name) {\n return from(element.childNodes).filter(function (_ref) {\n var tagName = _ref.tagName;\n return tagName === name;\n });\n};\nvar getContent = function getContent(element) {\n return element.textContent.trim();\n};\n\nvar parseDuration = function parseDuration(str) {\n var SECONDS_IN_YEAR = 365 * 24 * 60 * 60;\n var SECONDS_IN_MONTH = 30 * 24 * 60 * 60;\n var SECONDS_IN_DAY = 24 * 60 * 60;\n var SECONDS_IN_HOUR = 60 * 60;\n var SECONDS_IN_MIN = 60; // P10Y10M10DT10H10M10.1S\n\n var durationRegex = /P(?:(\\d*)Y)?(?:(\\d*)M)?(?:(\\d*)D)?(?:T(?:(\\d*)H)?(?:(\\d*)M)?(?:([\\d.]*)S)?)?/;\n var match = durationRegex.exec(str);\n\n if (!match) {\n return 0;\n }\n\n var _match$slice = match.slice(1),\n year = _match$slice[0],\n month = _match$slice[1],\n day = _match$slice[2],\n hour = _match$slice[3],\n minute = _match$slice[4],\n second = _match$slice[5];\n\n return parseFloat(year || 0) * SECONDS_IN_YEAR + parseFloat(month || 0) * SECONDS_IN_MONTH + parseFloat(day || 0) * SECONDS_IN_DAY + parseFloat(hour || 0) * SECONDS_IN_HOUR + parseFloat(minute || 0) * SECONDS_IN_MIN + parseFloat(second || 0);\n};\nvar parseDate = function parseDate(str) {\n // Date format without timezone according to ISO 8601\n // YYY-MM-DDThh:mm:ss.ssssss\n var dateRegex = /^\\d+-\\d+-\\d+T\\d+:\\d+:\\d+(\\.\\d+)?$/; // If the date string does not specifiy a timezone, we must specifiy UTC. This is\n // expressed by ending with 'Z'\n\n if (dateRegex.test(str)) {\n str += 'Z';\n }\n\n return Date.parse(str);\n};\n\nvar parsers = {\n /**\n * Specifies the duration of the entire Media Presentation. Format is a duration string\n * as specified in ISO 8601\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The duration in seconds\n */\n mediaPresentationDuration: function mediaPresentationDuration(value) {\n return parseDuration(value);\n },\n\n /**\n * Specifies the Segment availability start time for all Segments referred to in this\n * MPD. For a dynamic manifest, it specifies the anchor for the earliest availability\n * time. Format is a date string as specified in ISO 8601\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The date as seconds from unix epoch\n */\n availabilityStartTime: function availabilityStartTime(value) {\n return parseDate(value) / 1000;\n },\n\n /**\n * Specifies the smallest period between potential changes to the MPD. Format is a\n * duration string as specified in ISO 8601\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The duration in seconds\n */\n minimumUpdatePeriod: function minimumUpdatePeriod(value) {\n return parseDuration(value);\n },\n\n /**\n * Specifies the suggested presentation delay. Format is a\n * duration string as specified in ISO 8601\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The duration in seconds\n */\n suggestedPresentationDelay: function suggestedPresentationDelay(value) {\n return parseDuration(value);\n },\n\n /**\n * specifices the type of mpd. Can be either \"static\" or \"dynamic\"\n *\n * @param {string} value\n * value of attribute as a string\n *\n * @return {string}\n * The type as a string\n */\n type: function type(value) {\n return value;\n },\n\n /**\n * Specifies the duration of the smallest time shifting buffer for any Representation\n * in the MPD. Format is a duration string as specified in ISO 8601\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The duration in seconds\n */\n timeShiftBufferDepth: function timeShiftBufferDepth(value) {\n return parseDuration(value);\n },\n\n /**\n * Specifies the PeriodStart time of the Period relative to the availabilityStarttime.\n * Format is a duration string as specified in ISO 8601\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The duration in seconds\n */\n start: function start(value) {\n return parseDuration(value);\n },\n\n /**\n * Specifies the width of the visual presentation\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The parsed width\n */\n width: function width(value) {\n return parseInt(value, 10);\n },\n\n /**\n * Specifies the height of the visual presentation\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The parsed height\n */\n height: function height(value) {\n return parseInt(value, 10);\n },\n\n /**\n * Specifies the bitrate of the representation\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The parsed bandwidth\n */\n bandwidth: function bandwidth(value) {\n return parseInt(value, 10);\n },\n\n /**\n * Specifies the number of the first Media Segment in this Representation in the Period\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The parsed number\n */\n startNumber: function startNumber(value) {\n return parseInt(value, 10);\n },\n\n /**\n * Specifies the timescale in units per seconds\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The aprsed timescale\n */\n timescale: function timescale(value) {\n return parseInt(value, 10);\n },\n\n /**\n * Specifies the constant approximate Segment duration\n * NOTE: The element also contains an @duration attribute. This duration\n * specifies the duration of the Period. This attribute is currently not\n * supported by the rest of the parser, however we still check for it to prevent\n * errors.\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The parsed duration\n */\n duration: function duration(value) {\n var parsedValue = parseInt(value, 10);\n\n if (isNaN(parsedValue)) {\n return parseDuration(value);\n }\n\n return parsedValue;\n },\n\n /**\n * Specifies the Segment duration, in units of the value of the @timescale.\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The parsed duration\n */\n d: function d(value) {\n return parseInt(value, 10);\n },\n\n /**\n * Specifies the MPD start time, in @timescale units, the first Segment in the series\n * starts relative to the beginning of the Period\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The parsed time\n */\n t: function t(value) {\n return parseInt(value, 10);\n },\n\n /**\n * Specifies the repeat count of the number of following contiguous Segments with the\n * same duration expressed by the value of @d\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The parsed number\n */\n r: function r(value) {\n return parseInt(value, 10);\n },\n\n /**\n * Default parser for all other attributes. Acts as a no-op and just returns the value\n * as a string\n *\n * @param {string} value\n * value of attribute as a string\n * @return {string}\n * Unparsed value\n */\n DEFAULT: function DEFAULT(value) {\n return value;\n }\n};\n/**\n * Gets all the attributes and values of the provided node, parses attributes with known\n * types, and returns an object with attribute names mapped to values.\n *\n * @param {Node} el\n * The node to parse attributes from\n * @return {Object}\n * Object with all attributes of el parsed\n */\n\nvar parseAttributes = function parseAttributes(el) {\n if (!(el && el.attributes)) {\n return {};\n }\n\n return from(el.attributes).reduce(function (a, e) {\n var parseFn = parsers[e.name] || parsers.DEFAULT;\n a[e.name] = parseFn(e.value);\n return a;\n }, {});\n};\n\nvar keySystemsMap = {\n 'urn:uuid:1077efec-c0b2-4d02-ace3-3c1e52e2fb4b': 'org.w3.clearkey',\n 'urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed': 'com.widevine.alpha',\n 'urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95': 'com.microsoft.playready',\n 'urn:uuid:f239e769-efa3-4850-9c16-a903c6932efb': 'com.adobe.primetime'\n};\n/**\n * Builds a list of urls that is the product of the reference urls and BaseURL values\n *\n * @param {string[]} referenceUrls\n * List of reference urls to resolve to\n * @param {Node[]} baseUrlElements\n * List of BaseURL nodes from the mpd\n * @return {string[]}\n * List of resolved urls\n */\n\nvar buildBaseUrls = function buildBaseUrls(referenceUrls, baseUrlElements) {\n if (!baseUrlElements.length) {\n return referenceUrls;\n }\n\n return flatten(referenceUrls.map(function (reference) {\n return baseUrlElements.map(function (baseUrlElement) {\n return resolveUrl(reference, getContent(baseUrlElement));\n });\n }));\n};\n/**\n * Contains all Segment information for its containing AdaptationSet\n *\n * @typedef {Object} SegmentInformation\n * @property {Object|undefined} template\n * Contains the attributes for the SegmentTemplate node\n * @property {Object[]|undefined} timeline\n * Contains a list of atrributes for each S node within the SegmentTimeline node\n * @property {Object|undefined} list\n * Contains the attributes for the SegmentList node\n * @property {Object|undefined} base\n * Contains the attributes for the SegmentBase node\n */\n\n/**\n * Returns all available Segment information contained within the AdaptationSet node\n *\n * @param {Node} adaptationSet\n * The AdaptationSet node to get Segment information from\n * @return {SegmentInformation}\n * The Segment information contained within the provided AdaptationSet\n */\n\nvar getSegmentInformation = function getSegmentInformation(adaptationSet) {\n var segmentTemplate = findChildren(adaptationSet, 'SegmentTemplate')[0];\n var segmentList = findChildren(adaptationSet, 'SegmentList')[0];\n var segmentUrls = segmentList && findChildren(segmentList, 'SegmentURL').map(function (s) {\n return merge({\n tag: 'SegmentURL'\n }, parseAttributes(s));\n });\n var segmentBase = findChildren(adaptationSet, 'SegmentBase')[0];\n var segmentTimelineParentNode = segmentList || segmentTemplate;\n var segmentTimeline = segmentTimelineParentNode && findChildren(segmentTimelineParentNode, 'SegmentTimeline')[0];\n var segmentInitializationParentNode = segmentList || segmentBase || segmentTemplate;\n var segmentInitialization = segmentInitializationParentNode && findChildren(segmentInitializationParentNode, 'Initialization')[0]; // SegmentTemplate is handled slightly differently, since it can have both\n // @initialization and an node. @initialization can be templated,\n // while the node can have a url and range specified. If the has\n // both @initialization and an subelement we opt to override with\n // the node, as this interaction is not defined in the spec.\n\n var template = segmentTemplate && parseAttributes(segmentTemplate);\n\n if (template && segmentInitialization) {\n template.initialization = segmentInitialization && parseAttributes(segmentInitialization);\n } else if (template && template.initialization) {\n // If it is @initialization we convert it to an object since this is the format that\n // later functions will rely on for the initialization segment. This is only valid\n // for \n template.initialization = {\n sourceURL: template.initialization\n };\n }\n\n var segmentInfo = {\n template: template,\n timeline: segmentTimeline && findChildren(segmentTimeline, 'S').map(function (s) {\n return parseAttributes(s);\n }),\n list: segmentList && merge(parseAttributes(segmentList), {\n segmentUrls: segmentUrls,\n initialization: parseAttributes(segmentInitialization)\n }),\n base: segmentBase && merge(parseAttributes(segmentBase), {\n initialization: parseAttributes(segmentInitialization)\n })\n };\n Object.keys(segmentInfo).forEach(function (key) {\n if (!segmentInfo[key]) {\n delete segmentInfo[key];\n }\n });\n return segmentInfo;\n};\n/**\n * Contains Segment information and attributes needed to construct a Playlist object\n * from a Representation\n *\n * @typedef {Object} RepresentationInformation\n * @property {SegmentInformation} segmentInfo\n * Segment information for this Representation\n * @property {Object} attributes\n * Inherited attributes for this Representation\n */\n\n/**\n * Maps a Representation node to an object containing Segment information and attributes\n *\n * @name inheritBaseUrlsCallback\n * @function\n * @param {Node} representation\n * Representation node from the mpd\n * @return {RepresentationInformation}\n * Representation information needed to construct a Playlist object\n */\n\n/**\n * Returns a callback for Array.prototype.map for mapping Representation nodes to\n * Segment information and attributes using inherited BaseURL nodes.\n *\n * @param {Object} adaptationSetAttributes\n * Contains attributes inherited by the AdaptationSet\n * @param {string[]} adaptationSetBaseUrls\n * Contains list of resolved base urls inherited by the AdaptationSet\n * @param {SegmentInformation} adaptationSetSegmentInfo\n * Contains Segment information for the AdaptationSet\n * @return {inheritBaseUrlsCallback}\n * Callback map function\n */\n\nvar inheritBaseUrls = function inheritBaseUrls(adaptationSetAttributes, adaptationSetBaseUrls, adaptationSetSegmentInfo) {\n return function (representation) {\n var repBaseUrlElements = findChildren(representation, 'BaseURL');\n var repBaseUrls = buildBaseUrls(adaptationSetBaseUrls, repBaseUrlElements);\n var attributes = merge(adaptationSetAttributes, parseAttributes(representation));\n var representationSegmentInfo = getSegmentInformation(representation);\n return repBaseUrls.map(function (baseUrl) {\n return {\n segmentInfo: merge(adaptationSetSegmentInfo, representationSegmentInfo),\n attributes: merge(attributes, {\n baseUrl: baseUrl\n })\n };\n });\n };\n};\n/**\n * Tranforms a series of content protection nodes to\n * an object containing pssh data by key system\n *\n * @param {Node[]} contentProtectionNodes\n * Content protection nodes\n * @return {Object}\n * Object containing pssh data by key system\n */\n\nvar generateKeySystemInformation = function generateKeySystemInformation(contentProtectionNodes) {\n return contentProtectionNodes.reduce(function (acc, node) {\n var attributes = parseAttributes(node);\n var keySystem = keySystemsMap[attributes.schemeIdUri];\n\n if (keySystem) {\n acc[keySystem] = {\n attributes: attributes\n };\n var psshNode = findChildren(node, 'cenc:pssh')[0];\n\n if (psshNode) {\n var pssh = getContent(psshNode);\n var psshBuffer = pssh && decodeB64ToUint8Array(pssh);\n acc[keySystem].pssh = psshBuffer;\n }\n }\n\n return acc;\n }, {});\n};\n/**\n * Maps an AdaptationSet node to a list of Representation information objects\n *\n * @name toRepresentationsCallback\n * @function\n * @param {Node} adaptationSet\n * AdaptationSet node from the mpd\n * @return {RepresentationInformation[]}\n * List of objects containing Representaion information\n */\n\n/**\n * Returns a callback for Array.prototype.map for mapping AdaptationSet nodes to a list of\n * Representation information objects\n *\n * @param {Object} periodAttributes\n * Contains attributes inherited by the Period\n * @param {string[]} periodBaseUrls\n * Contains list of resolved base urls inherited by the Period\n * @param {string[]} periodSegmentInfo\n * Contains Segment Information at the period level\n * @return {toRepresentationsCallback}\n * Callback map function\n */\n\n\nvar toRepresentations = function toRepresentations(periodAttributes, periodBaseUrls, periodSegmentInfo) {\n return function (adaptationSet) {\n var adaptationSetAttributes = parseAttributes(adaptationSet);\n var adaptationSetBaseUrls = buildBaseUrls(periodBaseUrls, findChildren(adaptationSet, 'BaseURL'));\n var role = findChildren(adaptationSet, 'Role')[0];\n var roleAttributes = {\n role: parseAttributes(role)\n };\n var attrs = merge(periodAttributes, adaptationSetAttributes, roleAttributes);\n var contentProtection = generateKeySystemInformation(findChildren(adaptationSet, 'ContentProtection'));\n\n if (Object.keys(contentProtection).length) {\n attrs = merge(attrs, {\n contentProtection: contentProtection\n });\n }\n\n var segmentInfo = getSegmentInformation(adaptationSet);\n var representations = findChildren(adaptationSet, 'Representation');\n var adaptationSetSegmentInfo = merge(periodSegmentInfo, segmentInfo);\n return flatten(representations.map(inheritBaseUrls(attrs, adaptationSetBaseUrls, adaptationSetSegmentInfo)));\n };\n};\n/**\n * Maps an Period node to a list of Representation inforamtion objects for all\n * AdaptationSet nodes contained within the Period\n *\n * @name toAdaptationSetsCallback\n * @function\n * @param {Node} period\n * Period node from the mpd\n * @param {number} periodIndex\n * Index of the Period within the mpd\n * @return {RepresentationInformation[]}\n * List of objects containing Representaion information\n */\n\n/**\n * Returns a callback for Array.prototype.map for mapping Period nodes to a list of\n * Representation information objects\n *\n * @param {Object} mpdAttributes\n * Contains attributes inherited by the mpd\n * @param {string[]} mpdBaseUrls\n * Contains list of resolved base urls inherited by the mpd\n * @return {toAdaptationSetsCallback}\n * Callback map function\n */\n\nvar toAdaptationSets = function toAdaptationSets(mpdAttributes, mpdBaseUrls) {\n return function (period, index) {\n var periodBaseUrls = buildBaseUrls(mpdBaseUrls, findChildren(period, 'BaseURL'));\n var periodAtt = parseAttributes(period);\n var parsedPeriodId = parseInt(periodAtt.id, 10); // fallback to mapping index if Period@id is not a number\n\n var periodIndex = window.isNaN(parsedPeriodId) ? index : parsedPeriodId;\n var periodAttributes = merge(mpdAttributes, {\n periodIndex: periodIndex\n });\n var adaptationSets = findChildren(period, 'AdaptationSet');\n var periodSegmentInfo = getSegmentInformation(period);\n return flatten(adaptationSets.map(toRepresentations(periodAttributes, periodBaseUrls, periodSegmentInfo)));\n };\n};\n/**\n * Traverses the mpd xml tree to generate a list of Representation information objects\n * that have inherited attributes from parent nodes\n *\n * @param {Node} mpd\n * The root node of the mpd\n * @param {Object} options\n * Available options for inheritAttributes\n * @param {string} options.manifestUri\n * The uri source of the mpd\n * @param {number} options.NOW\n * Current time per DASH IOP. Default is current time in ms since epoch\n * @param {number} options.clientOffset\n * Client time difference from NOW (in milliseconds)\n * @return {RepresentationInformation[]}\n * List of objects containing Representation information\n */\n\nvar inheritAttributes = function inheritAttributes(mpd, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$manifestUri = _options.manifestUri,\n manifestUri = _options$manifestUri === void 0 ? '' : _options$manifestUri,\n _options$NOW = _options.NOW,\n NOW = _options$NOW === void 0 ? Date.now() : _options$NOW,\n _options$clientOffset = _options.clientOffset,\n clientOffset = _options$clientOffset === void 0 ? 0 : _options$clientOffset;\n var periods = findChildren(mpd, 'Period');\n\n if (!periods.length) {\n throw new Error(errors.INVALID_NUMBER_OF_PERIOD);\n }\n\n var locations = findChildren(mpd, 'Location');\n var mpdAttributes = parseAttributes(mpd);\n var mpdBaseUrls = buildBaseUrls([manifestUri], findChildren(mpd, 'BaseURL'));\n mpdAttributes.sourceDuration = mpdAttributes.mediaPresentationDuration || 0;\n mpdAttributes.NOW = NOW;\n mpdAttributes.clientOffset = clientOffset;\n\n if (locations.length) {\n mpdAttributes.locations = locations.map(getContent);\n }\n\n return {\n locations: mpdAttributes.locations,\n representationInfo: flatten(periods.map(toAdaptationSets(mpdAttributes, mpdBaseUrls)))\n };\n};\n\nvar stringToMpdXml = function stringToMpdXml(manifestString) {\n if (manifestString === '') {\n throw new Error(errors.DASH_EMPTY_MANIFEST);\n }\n\n var parser = new DOMParser();\n var xml;\n var mpd;\n\n try {\n xml = parser.parseFromString(manifestString, 'application/xml');\n mpd = xml && xml.documentElement.tagName === 'MPD' ? xml.documentElement : null;\n } catch (e) {// ie 11 throwsw on invalid xml\n }\n\n if (!mpd || mpd && mpd.getElementsByTagName('parsererror').length > 0) {\n throw new Error(errors.DASH_INVALID_XML);\n }\n\n return mpd;\n};\n\n/**\n * Parses the manifest for a UTCTiming node, returning the nodes attributes if found\n *\n * @param {string} mpd\n * XML string of the MPD manifest\n * @return {Object|null}\n * Attributes of UTCTiming node specified in the manifest. Null if none found\n */\n\nvar parseUTCTimingScheme = function parseUTCTimingScheme(mpd) {\n var UTCTimingNode = findChildren(mpd, 'UTCTiming')[0];\n\n if (!UTCTimingNode) {\n return null;\n }\n\n var attributes = parseAttributes(UTCTimingNode);\n\n switch (attributes.schemeIdUri) {\n case 'urn:mpeg:dash:utc:http-head:2014':\n case 'urn:mpeg:dash:utc:http-head:2012':\n attributes.method = 'HEAD';\n break;\n\n case 'urn:mpeg:dash:utc:http-xsdate:2014':\n case 'urn:mpeg:dash:utc:http-iso:2014':\n case 'urn:mpeg:dash:utc:http-xsdate:2012':\n case 'urn:mpeg:dash:utc:http-iso:2012':\n attributes.method = 'GET';\n break;\n\n case 'urn:mpeg:dash:utc:direct:2014':\n case 'urn:mpeg:dash:utc:direct:2012':\n attributes.method = 'DIRECT';\n attributes.value = Date.parse(attributes.value);\n break;\n\n case 'urn:mpeg:dash:utc:http-ntp:2014':\n case 'urn:mpeg:dash:utc:ntp:2014':\n case 'urn:mpeg:dash:utc:sntp:2014':\n default:\n throw new Error(errors.UNSUPPORTED_UTC_TIMING_SCHEME);\n }\n\n return attributes;\n};\n\nvar VERSION = version;\n\nvar parse = function parse(manifestString, options) {\n if (options === void 0) {\n options = {};\n }\n\n var parsedManifestInfo = inheritAttributes(stringToMpdXml(manifestString), options);\n var playlists = toPlaylists(parsedManifestInfo.representationInfo);\n return toM3u8(playlists, parsedManifestInfo.locations, options.sidxMapping);\n};\n/**\n * Parses the manifest for a UTCTiming node, returning the nodes attributes if found\n *\n * @param {string} manifestString\n * XML string of the MPD manifest\n * @return {Object|null}\n * Attributes of UTCTiming node specified in the manifest. Null if none found\n */\n\n\nvar parseUTCTiming = function parseUTCTiming(manifestString) {\n return parseUTCTimingScheme(stringToMpdXml(manifestString));\n};\n\nvar addSidxSegmentsToPlaylist = addSegmentsToPlaylist;\n\nexport { VERSION, addSidxSegmentsToPlaylist, inheritAttributes, parse, parseUTCTiming, stringToMpdXml, toM3u8, toPlaylists };\n","/**\n * @license\n * Video.js 7.11.4 \n * Copyright Brightcove, Inc. \n * Available under Apache License Version 2.0\n * \n *\n * Includes vtt.js \n * Available under Apache License Version 2.0\n * \n */\n\nimport window$1 from 'global/window';\nimport document from 'global/document';\nimport _extends from '@babel/runtime/helpers/extends';\nimport _assertThisInitialized from '@babel/runtime/helpers/assertThisInitialized';\nimport '@babel/runtime/helpers/possibleConstructorReturn';\nimport '@babel/runtime/helpers/getPrototypeOf';\nimport _inheritsLoose from '@babel/runtime/helpers/inheritsLoose';\nimport safeParseTuple from 'safe-json-parse/tuple';\nimport keycode from 'keycode';\nimport XHR from '@videojs/xhr';\nimport vtt from 'videojs-vtt.js';\nimport _construct from '@babel/runtime/helpers/construct';\nimport _inherits from '@babel/runtime/helpers/inherits';\nimport _resolveUrl from '@videojs/vhs-utils/dist/resolve-url.js';\nimport { Parser } from 'm3u8-parser';\nimport { simpleTypeFromSourceType } from '@videojs/vhs-utils/dist/media-types.js';\nimport { parseUTCTiming, parse, addSidxSegmentsToPlaylist } from 'mpd-parser';\nimport parseSidx from 'mux.js/lib/tools/parse-sidx';\nimport { detectContainerForBytes, isLikelyFmp4MediaSegment, getId3Offset } from '@videojs/vhs-utils/dist/containers';\nimport { concatTypedArrays, stringToBytes, toUint8 } from '@videojs/vhs-utils/dist/byte-helpers';\nimport tsInspector from 'mux.js/lib/tools/ts-inspector.js';\nimport { ONE_SECOND_IN_TS } from 'mux.js/lib/utils/clock';\nimport mp4probe from 'mux.js/lib/mp4/probe';\nimport { browserSupportsCodec, DEFAULT_VIDEO_CODEC, DEFAULT_AUDIO_CODEC, muxerSupportsCodec, parseCodecs, codecsFromDefault, translateLegacyCodec, getMimeForCodec, isAudioCodec, isVideoCodec } from '@videojs/vhs-utils/dist/codecs.js';\n\nvar version = \"7.11.4\";\n\n/**\n * @file create-logger.js\n * @module create-logger\n */\n\nvar history = [];\n/**\n * Log messages to the console and history based on the type of message\n *\n * @private\n * @param {string} type\n * The name of the console method to use.\n *\n * @param {Array} args\n * The arguments to be passed to the matching console method.\n */\n\nvar LogByTypeFactory = function LogByTypeFactory(name, log) {\n return function (type, level, args) {\n var lvl = log.levels[level];\n var lvlRegExp = new RegExp(\"^(\" + lvl + \")$\");\n\n if (type !== 'log') {\n // Add the type to the front of the message when it's not \"log\".\n args.unshift(type.toUpperCase() + ':');\n } // Add console prefix after adding to history.\n\n\n args.unshift(name + ':'); // Add a clone of the args at this point to history.\n\n if (history) {\n history.push([].concat(args)); // only store 1000 history entries\n\n var splice = history.length - 1000;\n history.splice(0, splice > 0 ? splice : 0);\n } // If there's no console then don't try to output messages, but they will\n // still be stored in history.\n\n\n if (!window$1.console) {\n return;\n } // Was setting these once outside of this function, but containing them\n // in the function makes it easier to test cases where console doesn't exist\n // when the module is executed.\n\n\n var fn = window$1.console[type];\n\n if (!fn && type === 'debug') {\n // Certain browsers don't have support for console.debug. For those, we\n // should default to the closest comparable log.\n fn = window$1.console.info || window$1.console.log;\n } // Bail out if there's no console or if this type is not allowed by the\n // current logging level.\n\n\n if (!fn || !lvl || !lvlRegExp.test(type)) {\n return;\n }\n\n fn[Array.isArray(args) ? 'apply' : 'call'](window$1.console, args);\n };\n};\n\nfunction createLogger(name) {\n // This is the private tracking variable for logging level.\n var level = 'info'; // the curried logByType bound to the specific log and history\n\n var logByType;\n /**\n * Logs plain debug messages. Similar to `console.log`.\n *\n * Due to [limitations](https://github.com/jsdoc3/jsdoc/issues/955#issuecomment-313829149)\n * of our JSDoc template, we cannot properly document this as both a function\n * and a namespace, so its function signature is documented here.\n *\n * #### Arguments\n * ##### *args\n * Mixed[]\n *\n * Any combination of values that could be passed to `console.log()`.\n *\n * #### Return Value\n *\n * `undefined`\n *\n * @namespace\n * @param {Mixed[]} args\n * One or more messages or objects that should be logged.\n */\n\n var log = function log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n logByType('log', level, args);\n }; // This is the logByType helper that the logging methods below use\n\n\n logByType = LogByTypeFactory(name, log);\n /**\n * Create a new sublogger which chains the old name to the new name.\n *\n * For example, doing `videojs.log.createLogger('player')` and then using that logger will log the following:\n * ```js\n * mylogger('foo');\n * // > VIDEOJS: player: foo\n * ```\n *\n * @param {string} name\n * The name to add call the new logger\n * @return {Object}\n */\n\n log.createLogger = function (subname) {\n return createLogger(name + ': ' + subname);\n };\n /**\n * Enumeration of available logging levels, where the keys are the level names\n * and the values are `|`-separated strings containing logging methods allowed\n * in that logging level. These strings are used to create a regular expression\n * matching the function name being called.\n *\n * Levels provided by Video.js are:\n *\n * - `off`: Matches no calls. Any value that can be cast to `false` will have\n * this effect. The most restrictive.\n * - `all`: Matches only Video.js-provided functions (`debug`, `log`,\n * `log.warn`, and `log.error`).\n * - `debug`: Matches `log.debug`, `log`, `log.warn`, and `log.error` calls.\n * - `info` (default): Matches `log`, `log.warn`, and `log.error` calls.\n * - `warn`: Matches `log.warn` and `log.error` calls.\n * - `error`: Matches only `log.error` calls.\n *\n * @type {Object}\n */\n\n\n log.levels = {\n all: 'debug|log|warn|error',\n off: '',\n debug: 'debug|log|warn|error',\n info: 'log|warn|error',\n warn: 'warn|error',\n error: 'error',\n DEFAULT: level\n };\n /**\n * Get or set the current logging level.\n *\n * If a string matching a key from {@link module:log.levels} is provided, acts\n * as a setter.\n *\n * @param {string} [lvl]\n * Pass a valid level to set a new logging level.\n *\n * @return {string}\n * The current logging level.\n */\n\n log.level = function (lvl) {\n if (typeof lvl === 'string') {\n if (!log.levels.hasOwnProperty(lvl)) {\n throw new Error(\"\\\"\" + lvl + \"\\\" in not a valid log level\");\n }\n\n level = lvl;\n }\n\n return level;\n };\n /**\n * Returns an array containing everything that has been logged to the history.\n *\n * This array is a shallow clone of the internal history record. However, its\n * contents are _not_ cloned; so, mutating objects inside this array will\n * mutate them in history.\n *\n * @return {Array}\n */\n\n\n log.history = function () {\n return history ? [].concat(history) : [];\n };\n /**\n * Allows you to filter the history by the given logger name\n *\n * @param {string} fname\n * The name to filter by\n *\n * @return {Array}\n * The filtered list to return\n */\n\n\n log.history.filter = function (fname) {\n return (history || []).filter(function (historyItem) {\n // if the first item in each historyItem includes `fname`, then it's a match\n return new RegExp(\".*\" + fname + \".*\").test(historyItem[0]);\n });\n };\n /**\n * Clears the internal history tracking, but does not prevent further history\n * tracking.\n */\n\n\n log.history.clear = function () {\n if (history) {\n history.length = 0;\n }\n };\n /**\n * Disable history tracking if it is currently enabled.\n */\n\n\n log.history.disable = function () {\n if (history !== null) {\n history.length = 0;\n history = null;\n }\n };\n /**\n * Enable history tracking if it is currently disabled.\n */\n\n\n log.history.enable = function () {\n if (history === null) {\n history = [];\n }\n };\n /**\n * Logs error messages. Similar to `console.error`.\n *\n * @param {Mixed[]} args\n * One or more messages or objects that should be logged as an error\n */\n\n\n log.error = function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return logByType('error', level, args);\n };\n /**\n * Logs warning messages. Similar to `console.warn`.\n *\n * @param {Mixed[]} args\n * One or more messages or objects that should be logged as a warning.\n */\n\n\n log.warn = function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return logByType('warn', level, args);\n };\n /**\n * Logs debug messages. Similar to `console.debug`, but may also act as a comparable\n * log if `console.debug` is not available\n *\n * @param {Mixed[]} args\n * One or more messages or objects that should be logged as debug.\n */\n\n\n log.debug = function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return logByType('debug', level, args);\n };\n\n return log;\n}\n\n/**\n * @file log.js\n * @module log\n */\nvar log = createLogger('VIDEOJS');\nvar createLogger$1 = log.createLogger;\n\n/**\n * @file obj.js\n * @module obj\n */\n\n/**\n * @callback obj:EachCallback\n *\n * @param {Mixed} value\n * The current key for the object that is being iterated over.\n *\n * @param {string} key\n * The current key-value for object that is being iterated over\n */\n\n/**\n * @callback obj:ReduceCallback\n *\n * @param {Mixed} accum\n * The value that is accumulating over the reduce loop.\n *\n * @param {Mixed} value\n * The current key for the object that is being iterated over.\n *\n * @param {string} key\n * The current key-value for object that is being iterated over\n *\n * @return {Mixed}\n * The new accumulated value.\n */\nvar toString = Object.prototype.toString;\n/**\n * Get the keys of an Object\n *\n * @param {Object}\n * The Object to get the keys from\n *\n * @return {string[]}\n * An array of the keys from the object. Returns an empty array if the\n * object passed in was invalid or had no keys.\n *\n * @private\n */\n\nvar keys = function keys(object) {\n return isObject(object) ? Object.keys(object) : [];\n};\n/**\n * Array-like iteration for objects.\n *\n * @param {Object} object\n * The object to iterate over\n *\n * @param {obj:EachCallback} fn\n * The callback function which is called for each key in the object.\n */\n\n\nfunction each(object, fn) {\n keys(object).forEach(function (key) {\n return fn(object[key], key);\n });\n}\n/**\n * Array-like reduce for objects.\n *\n * @param {Object} object\n * The Object that you want to reduce.\n *\n * @param {Function} fn\n * A callback function which is called for each key in the object. It\n * receives the accumulated value and the per-iteration value and key\n * as arguments.\n *\n * @param {Mixed} [initial = 0]\n * Starting value\n *\n * @return {Mixed}\n * The final accumulated value.\n */\n\nfunction reduce(object, fn, initial) {\n if (initial === void 0) {\n initial = 0;\n }\n\n return keys(object).reduce(function (accum, key) {\n return fn(accum, object[key], key);\n }, initial);\n}\n/**\n * Object.assign-style object shallow merge/extend.\n *\n * @param {Object} target\n * @param {Object} ...sources\n * @return {Object}\n */\n\nfunction assign(target) {\n for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sources[_key - 1] = arguments[_key];\n }\n\n if (Object.assign) {\n return _extends.apply(void 0, [target].concat(sources));\n }\n\n sources.forEach(function (source) {\n if (!source) {\n return;\n }\n\n each(source, function (value, key) {\n target[key] = value;\n });\n });\n return target;\n}\n/**\n * Returns whether a value is an object of any kind - including DOM nodes,\n * arrays, regular expressions, etc. Not functions, though.\n *\n * This avoids the gotcha where using `typeof` on a `null` value\n * results in `'object'`.\n *\n * @param {Object} value\n * @return {boolean}\n */\n\nfunction isObject(value) {\n return !!value && typeof value === 'object';\n}\n/**\n * Returns whether an object appears to be a \"plain\" object - that is, a\n * direct instance of `Object`.\n *\n * @param {Object} value\n * @return {boolean}\n */\n\nfunction isPlain(value) {\n return isObject(value) && toString.call(value) === '[object Object]' && value.constructor === Object;\n}\n\n/**\n * @file computed-style.js\n * @module computed-style\n */\n/**\n * A safe getComputedStyle.\n *\n * This is needed because in Firefox, if the player is loaded in an iframe with\n * `display:none`, then `getComputedStyle` returns `null`, so, we do a\n * null-check to make sure that the player doesn't break in these cases.\n *\n * @function\n * @param {Element} el\n * The element you want the computed style of\n *\n * @param {string} prop\n * The property name you want\n *\n * @see https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n */\n\nfunction computedStyle(el, prop) {\n if (!el || !prop) {\n return '';\n }\n\n if (typeof window$1.getComputedStyle === 'function') {\n var computedStyleValue = window$1.getComputedStyle(el);\n return computedStyleValue ? computedStyleValue.getPropertyValue(prop) || computedStyleValue[prop] : '';\n }\n\n return '';\n}\n\n/**\n * @file dom.js\n * @module dom\n */\n/**\n * Detect if a value is a string with any non-whitespace characters.\n *\n * @private\n * @param {string} str\n * The string to check\n *\n * @return {boolean}\n * Will be `true` if the string is non-blank, `false` otherwise.\n *\n */\n\nfunction isNonBlankString(str) {\n // we use str.trim as it will trim any whitespace characters\n // from the front or back of non-whitespace characters. aka\n // Any string that contains non-whitespace characters will\n // still contain them after `trim` but whitespace only strings\n // will have a length of 0, failing this check.\n return typeof str === 'string' && Boolean(str.trim());\n}\n/**\n * Throws an error if the passed string has whitespace. This is used by\n * class methods to be relatively consistent with the classList API.\n *\n * @private\n * @param {string} str\n * The string to check for whitespace.\n *\n * @throws {Error}\n * Throws an error if there is whitespace in the string.\n */\n\n\nfunction throwIfWhitespace(str) {\n // str.indexOf instead of regex because str.indexOf is faster performance wise.\n if (str.indexOf(' ') >= 0) {\n throw new Error('class has illegal whitespace characters');\n }\n}\n/**\n * Produce a regular expression for matching a className within an elements className.\n *\n * @private\n * @param {string} className\n * The className to generate the RegExp for.\n *\n * @return {RegExp}\n * The RegExp that will check for a specific `className` in an elements\n * className.\n */\n\n\nfunction classRegExp(className) {\n return new RegExp('(^|\\\\s)' + className + '($|\\\\s)');\n}\n/**\n * Whether the current DOM interface appears to be real (i.e. not simulated).\n *\n * @return {boolean}\n * Will be `true` if the DOM appears to be real, `false` otherwise.\n */\n\n\nfunction isReal() {\n // Both document and window will never be undefined thanks to `global`.\n return document === window$1.document;\n}\n/**\n * Determines, via duck typing, whether or not a value is a DOM element.\n *\n * @param {Mixed} value\n * The value to check.\n *\n * @return {boolean}\n * Will be `true` if the value is a DOM element, `false` otherwise.\n */\n\nfunction isEl(value) {\n return isObject(value) && value.nodeType === 1;\n}\n/**\n * Determines if the current DOM is embedded in an iframe.\n *\n * @return {boolean}\n * Will be `true` if the DOM is embedded in an iframe, `false`\n * otherwise.\n */\n\nfunction isInFrame() {\n // We need a try/catch here because Safari will throw errors when attempting\n // to get either `parent` or `self`\n try {\n return window$1.parent !== window$1.self;\n } catch (x) {\n return true;\n }\n}\n/**\n * Creates functions to query the DOM using a given method.\n *\n * @private\n * @param {string} method\n * The method to create the query with.\n *\n * @return {Function}\n * The query method\n */\n\nfunction createQuerier(method) {\n return function (selector, context) {\n if (!isNonBlankString(selector)) {\n return document[method](null);\n }\n\n if (isNonBlankString(context)) {\n context = document.querySelector(context);\n }\n\n var ctx = isEl(context) ? context : document;\n return ctx[method] && ctx[method](selector);\n };\n}\n/**\n * Creates an element and applies properties, attributes, and inserts content.\n *\n * @param {string} [tagName='div']\n * Name of tag to be created.\n *\n * @param {Object} [properties={}]\n * Element properties to be applied.\n *\n * @param {Object} [attributes={}]\n * Element attributes to be applied.\n *\n * @param {module:dom~ContentDescriptor} content\n * A content descriptor object.\n *\n * @return {Element}\n * The element that was created.\n */\n\n\nfunction createEl(tagName, properties, attributes, content) {\n if (tagName === void 0) {\n tagName = 'div';\n }\n\n if (properties === void 0) {\n properties = {};\n }\n\n if (attributes === void 0) {\n attributes = {};\n }\n\n var el = document.createElement(tagName);\n Object.getOwnPropertyNames(properties).forEach(function (propName) {\n var val = properties[propName]; // See #2176\n // We originally were accepting both properties and attributes in the\n // same object, but that doesn't work so well.\n\n if (propName.indexOf('aria-') !== -1 || propName === 'role' || propName === 'type') {\n log.warn('Setting attributes in the second argument of createEl()\\n' + 'has been deprecated. Use the third argument instead.\\n' + (\"createEl(type, properties, attributes). Attempting to set \" + propName + \" to \" + val + \".\"));\n el.setAttribute(propName, val); // Handle textContent since it's not supported everywhere and we have a\n // method for it.\n } else if (propName === 'textContent') {\n textContent(el, val);\n } else if (el[propName] !== val || propName === 'tabIndex') {\n el[propName] = val;\n }\n });\n Object.getOwnPropertyNames(attributes).forEach(function (attrName) {\n el.setAttribute(attrName, attributes[attrName]);\n });\n\n if (content) {\n appendContent(el, content);\n }\n\n return el;\n}\n/**\n * Injects text into an element, replacing any existing contents entirely.\n *\n * @param {Element} el\n * The element to add text content into\n *\n * @param {string} text\n * The text content to add.\n *\n * @return {Element}\n * The element with added text content.\n */\n\nfunction textContent(el, text) {\n if (typeof el.textContent === 'undefined') {\n el.innerText = text;\n } else {\n el.textContent = text;\n }\n\n return el;\n}\n/**\n * Insert an element as the first child node of another\n *\n * @param {Element} child\n * Element to insert\n *\n * @param {Element} parent\n * Element to insert child into\n */\n\nfunction prependTo(child, parent) {\n if (parent.firstChild) {\n parent.insertBefore(child, parent.firstChild);\n } else {\n parent.appendChild(child);\n }\n}\n/**\n * Check if an element has a class name.\n *\n * @param {Element} element\n * Element to check\n *\n * @param {string} classToCheck\n * Class name to check for\n *\n * @return {boolean}\n * Will be `true` if the element has a class, `false` otherwise.\n *\n * @throws {Error}\n * Throws an error if `classToCheck` has white space.\n */\n\nfunction hasClass(element, classToCheck) {\n throwIfWhitespace(classToCheck);\n\n if (element.classList) {\n return element.classList.contains(classToCheck);\n }\n\n return classRegExp(classToCheck).test(element.className);\n}\n/**\n * Add a class name to an element.\n *\n * @param {Element} element\n * Element to add class name to.\n *\n * @param {string} classToAdd\n * Class name to add.\n *\n * @return {Element}\n * The DOM element with the added class name.\n */\n\nfunction addClass(element, classToAdd) {\n if (element.classList) {\n element.classList.add(classToAdd); // Don't need to `throwIfWhitespace` here because `hasElClass` will do it\n // in the case of classList not being supported.\n } else if (!hasClass(element, classToAdd)) {\n element.className = (element.className + ' ' + classToAdd).trim();\n }\n\n return element;\n}\n/**\n * Remove a class name from an element.\n *\n * @param {Element} element\n * Element to remove a class name from.\n *\n * @param {string} classToRemove\n * Class name to remove\n *\n * @return {Element}\n * The DOM element with class name removed.\n */\n\nfunction removeClass(element, classToRemove) {\n if (element.classList) {\n element.classList.remove(classToRemove);\n } else {\n throwIfWhitespace(classToRemove);\n element.className = element.className.split(/\\s+/).filter(function (c) {\n return c !== classToRemove;\n }).join(' ');\n }\n\n return element;\n}\n/**\n * The callback definition for toggleClass.\n *\n * @callback module:dom~PredicateCallback\n * @param {Element} element\n * The DOM element of the Component.\n *\n * @param {string} classToToggle\n * The `className` that wants to be toggled\n *\n * @return {boolean|undefined}\n * If `true` is returned, the `classToToggle` will be added to the\n * `element`. If `false`, the `classToToggle` will be removed from\n * the `element`. If `undefined`, the callback will be ignored.\n */\n\n/**\n * Adds or removes a class name to/from an element depending on an optional\n * condition or the presence/absence of the class name.\n *\n * @param {Element} element\n * The element to toggle a class name on.\n *\n * @param {string} classToToggle\n * The class that should be toggled.\n *\n * @param {boolean|module:dom~PredicateCallback} [predicate]\n * See the return value for {@link module:dom~PredicateCallback}\n *\n * @return {Element}\n * The element with a class that has been toggled.\n */\n\nfunction toggleClass(element, classToToggle, predicate) {\n // This CANNOT use `classList` internally because IE11 does not support the\n // second parameter to the `classList.toggle()` method! Which is fine because\n // `classList` will be used by the add/remove functions.\n var has = hasClass(element, classToToggle);\n\n if (typeof predicate === 'function') {\n predicate = predicate(element, classToToggle);\n }\n\n if (typeof predicate !== 'boolean') {\n predicate = !has;\n } // If the necessary class operation matches the current state of the\n // element, no action is required.\n\n\n if (predicate === has) {\n return;\n }\n\n if (predicate) {\n addClass(element, classToToggle);\n } else {\n removeClass(element, classToToggle);\n }\n\n return element;\n}\n/**\n * Apply attributes to an HTML element.\n *\n * @param {Element} el\n * Element to add attributes to.\n *\n * @param {Object} [attributes]\n * Attributes to be applied.\n */\n\nfunction setAttributes(el, attributes) {\n Object.getOwnPropertyNames(attributes).forEach(function (attrName) {\n var attrValue = attributes[attrName];\n\n if (attrValue === null || typeof attrValue === 'undefined' || attrValue === false) {\n el.removeAttribute(attrName);\n } else {\n el.setAttribute(attrName, attrValue === true ? '' : attrValue);\n }\n });\n}\n/**\n * Get an element's attribute values, as defined on the HTML tag.\n *\n * Attributes are not the same as properties. They're defined on the tag\n * or with setAttribute.\n *\n * @param {Element} tag\n * Element from which to get tag attributes.\n *\n * @return {Object}\n * All attributes of the element. Boolean attributes will be `true` or\n * `false`, others will be strings.\n */\n\nfunction getAttributes(tag) {\n var obj = {}; // known boolean attributes\n // we can check for matching boolean properties, but not all browsers\n // and not all tags know about these attributes, so, we still want to check them manually\n\n var knownBooleans = ',' + 'autoplay,controls,playsinline,loop,muted,default,defaultMuted' + ',';\n\n if (tag && tag.attributes && tag.attributes.length > 0) {\n var attrs = tag.attributes;\n\n for (var i = attrs.length - 1; i >= 0; i--) {\n var attrName = attrs[i].name;\n var attrVal = attrs[i].value; // check for known booleans\n // the matching element property will return a value for typeof\n\n if (typeof tag[attrName] === 'boolean' || knownBooleans.indexOf(',' + attrName + ',') !== -1) {\n // the value of an included boolean attribute is typically an empty\n // string ('') which would equal false if we just check for a false value.\n // we also don't want support bad code like autoplay='false'\n attrVal = attrVal !== null ? true : false;\n }\n\n obj[attrName] = attrVal;\n }\n }\n\n return obj;\n}\n/**\n * Get the value of an element's attribute.\n *\n * @param {Element} el\n * A DOM element.\n *\n * @param {string} attribute\n * Attribute to get the value of.\n *\n * @return {string}\n * The value of the attribute.\n */\n\nfunction getAttribute(el, attribute) {\n return el.getAttribute(attribute);\n}\n/**\n * Set the value of an element's attribute.\n *\n * @param {Element} el\n * A DOM element.\n *\n * @param {string} attribute\n * Attribute to set.\n *\n * @param {string} value\n * Value to set the attribute to.\n */\n\nfunction setAttribute(el, attribute, value) {\n el.setAttribute(attribute, value);\n}\n/**\n * Remove an element's attribute.\n *\n * @param {Element} el\n * A DOM element.\n *\n * @param {string} attribute\n * Attribute to remove.\n */\n\nfunction removeAttribute(el, attribute) {\n el.removeAttribute(attribute);\n}\n/**\n * Attempt to block the ability to select text.\n */\n\nfunction blockTextSelection() {\n document.body.focus();\n\n document.onselectstart = function () {\n return false;\n };\n}\n/**\n * Turn off text selection blocking.\n */\n\nfunction unblockTextSelection() {\n document.onselectstart = function () {\n return true;\n };\n}\n/**\n * Identical to the native `getBoundingClientRect` function, but ensures that\n * the method is supported at all (it is in all browsers we claim to support)\n * and that the element is in the DOM before continuing.\n *\n * This wrapper function also shims properties which are not provided by some\n * older browsers (namely, IE8).\n *\n * Additionally, some browsers do not support adding properties to a\n * `ClientRect`/`DOMRect` object; so, we shallow-copy it with the standard\n * properties (except `x` and `y` which are not widely supported). This helps\n * avoid implementations where keys are non-enumerable.\n *\n * @param {Element} el\n * Element whose `ClientRect` we want to calculate.\n *\n * @return {Object|undefined}\n * Always returns a plain object - or `undefined` if it cannot.\n */\n\nfunction getBoundingClientRect(el) {\n if (el && el.getBoundingClientRect && el.parentNode) {\n var rect = el.getBoundingClientRect();\n var result = {};\n ['bottom', 'height', 'left', 'right', 'top', 'width'].forEach(function (k) {\n if (rect[k] !== undefined) {\n result[k] = rect[k];\n }\n });\n\n if (!result.height) {\n result.height = parseFloat(computedStyle(el, 'height'));\n }\n\n if (!result.width) {\n result.width = parseFloat(computedStyle(el, 'width'));\n }\n\n return result;\n }\n}\n/**\n * Represents the position of a DOM element on the page.\n *\n * @typedef {Object} module:dom~Position\n *\n * @property {number} left\n * Pixels to the left.\n *\n * @property {number} top\n * Pixels from the top.\n */\n\n/**\n * Get the position of an element in the DOM.\n *\n * Uses `getBoundingClientRect` technique from John Resig.\n *\n * @see http://ejohn.org/blog/getboundingclientrect-is-awesome/\n *\n * @param {Element} el\n * Element from which to get offset.\n *\n * @return {module:dom~Position}\n * The position of the element that was passed in.\n */\n\nfunction findPosition(el) {\n if (!el || el && !el.offsetParent) {\n return {\n left: 0,\n top: 0,\n width: 0,\n height: 0\n };\n }\n\n var width = el.offsetWidth;\n var height = el.offsetHeight;\n var left = 0;\n var top = 0;\n\n do {\n left += el.offsetLeft;\n top += el.offsetTop;\n el = el.offsetParent;\n } while (el);\n\n return {\n left: left,\n top: top,\n width: width,\n height: height\n };\n}\n/**\n * Represents x and y coordinates for a DOM element or mouse pointer.\n *\n * @typedef {Object} module:dom~Coordinates\n *\n * @property {number} x\n * x coordinate in pixels\n *\n * @property {number} y\n * y coordinate in pixels\n */\n\n/**\n * Get the pointer position within an element.\n *\n * The base on the coordinates are the bottom left of the element.\n *\n * @param {Element} el\n * Element on which to get the pointer position on.\n *\n * @param {EventTarget~Event} event\n * Event object.\n *\n * @return {module:dom~Coordinates}\n * A coordinates object corresponding to the mouse position.\n *\n */\n\nfunction getPointerPosition(el, event) {\n var position = {};\n var boxTarget = findPosition(event.target);\n var box = findPosition(el);\n var boxW = box.width;\n var boxH = box.height;\n var offsetY = event.offsetY - (box.top - boxTarget.top);\n var offsetX = event.offsetX - (box.left - boxTarget.left);\n\n if (event.changedTouches) {\n offsetX = event.changedTouches[0].pageX - box.left;\n offsetY = event.changedTouches[0].pageY + box.top;\n }\n\n position.y = 1 - Math.max(0, Math.min(1, offsetY / boxH));\n position.x = Math.max(0, Math.min(1, offsetX / boxW));\n return position;\n}\n/**\n * Determines, via duck typing, whether or not a value is a text node.\n *\n * @param {Mixed} value\n * Check if this value is a text node.\n *\n * @return {boolean}\n * Will be `true` if the value is a text node, `false` otherwise.\n */\n\nfunction isTextNode(value) {\n return isObject(value) && value.nodeType === 3;\n}\n/**\n * Empties the contents of an element.\n *\n * @param {Element} el\n * The element to empty children from\n *\n * @return {Element}\n * The element with no children\n */\n\nfunction emptyEl(el) {\n while (el.firstChild) {\n el.removeChild(el.firstChild);\n }\n\n return el;\n}\n/**\n * This is a mixed value that describes content to be injected into the DOM\n * via some method. It can be of the following types:\n *\n * Type | Description\n * -----------|-------------\n * `string` | The value will be normalized into a text node.\n * `Element` | The value will be accepted as-is.\n * `TextNode` | The value will be accepted as-is.\n * `Array` | A one-dimensional array of strings, elements, text nodes, or functions. These functions should return a string, element, or text node (any other return value, like an array, will be ignored).\n * `Function` | A function, which is expected to return a string, element, text node, or array - any of the other possible values described above. This means that a content descriptor could be a function that returns an array of functions, but those second-level functions must return strings, elements, or text nodes.\n *\n * @typedef {string|Element|TextNode|Array|Function} module:dom~ContentDescriptor\n */\n\n/**\n * Normalizes content for eventual insertion into the DOM.\n *\n * This allows a wide range of content definition methods, but helps protect\n * from falling into the trap of simply writing to `innerHTML`, which could\n * be an XSS concern.\n *\n * The content for an element can be passed in multiple types and\n * combinations, whose behavior is as follows:\n *\n * @param {module:dom~ContentDescriptor} content\n * A content descriptor value.\n *\n * @return {Array}\n * All of the content that was passed in, normalized to an array of\n * elements or text nodes.\n */\n\nfunction normalizeContent(content) {\n // First, invoke content if it is a function. If it produces an array,\n // that needs to happen before normalization.\n if (typeof content === 'function') {\n content = content();\n } // Next up, normalize to an array, so one or many items can be normalized,\n // filtered, and returned.\n\n\n return (Array.isArray(content) ? content : [content]).map(function (value) {\n // First, invoke value if it is a function to produce a new value,\n // which will be subsequently normalized to a Node of some kind.\n if (typeof value === 'function') {\n value = value();\n }\n\n if (isEl(value) || isTextNode(value)) {\n return value;\n }\n\n if (typeof value === 'string' && /\\S/.test(value)) {\n return document.createTextNode(value);\n }\n }).filter(function (value) {\n return value;\n });\n}\n/**\n * Normalizes and appends content to an element.\n *\n * @param {Element} el\n * Element to append normalized content to.\n *\n * @param {module:dom~ContentDescriptor} content\n * A content descriptor value.\n *\n * @return {Element}\n * The element with appended normalized content.\n */\n\nfunction appendContent(el, content) {\n normalizeContent(content).forEach(function (node) {\n return el.appendChild(node);\n });\n return el;\n}\n/**\n * Normalizes and inserts content into an element; this is identical to\n * `appendContent()`, except it empties the element first.\n *\n * @param {Element} el\n * Element to insert normalized content into.\n *\n * @param {module:dom~ContentDescriptor} content\n * A content descriptor value.\n *\n * @return {Element}\n * The element with inserted normalized content.\n */\n\nfunction insertContent(el, content) {\n return appendContent(emptyEl(el), content);\n}\n/**\n * Check if an event was a single left click.\n *\n * @param {EventTarget~Event} event\n * Event object.\n *\n * @return {boolean}\n * Will be `true` if a single left click, `false` otherwise.\n */\n\nfunction isSingleLeftClick(event) {\n // Note: if you create something draggable, be sure to\n // call it on both `mousedown` and `mousemove` event,\n // otherwise `mousedown` should be enough for a button\n if (event.button === undefined && event.buttons === undefined) {\n // Why do we need `buttons` ?\n // Because, middle mouse sometimes have this:\n // e.button === 0 and e.buttons === 4\n // Furthermore, we want to prevent combination click, something like\n // HOLD middlemouse then left click, that would be\n // e.button === 0, e.buttons === 5\n // just `button` is not gonna work\n // Alright, then what this block does ?\n // this is for chrome `simulate mobile devices`\n // I want to support this as well\n return true;\n }\n\n if (event.button === 0 && event.buttons === undefined) {\n // Touch screen, sometimes on some specific device, `buttons`\n // doesn't have anything (safari on ios, blackberry...)\n return true;\n } // `mouseup` event on a single left click has\n // `button` and `buttons` equal to 0\n\n\n if (event.type === 'mouseup' && event.button === 0 && event.buttons === 0) {\n return true;\n }\n\n if (event.button !== 0 || event.buttons !== 1) {\n // This is the reason we have those if else block above\n // if any special case we can catch and let it slide\n // we do it above, when get to here, this definitely\n // is-not-left-click\n return false;\n }\n\n return true;\n}\n/**\n * Finds a single DOM element matching `selector` within the optional\n * `context` of another DOM element (defaulting to `document`).\n *\n * @param {string} selector\n * A valid CSS selector, which will be passed to `querySelector`.\n *\n * @param {Element|String} [context=document]\n * A DOM element within which to query. Can also be a selector\n * string in which case the first matching element will be used\n * as context. If missing (or no element matches selector), falls\n * back to `document`.\n *\n * @return {Element|null}\n * The element that was found or null.\n */\n\nvar $ = createQuerier('querySelector');\n/**\n * Finds a all DOM elements matching `selector` within the optional\n * `context` of another DOM element (defaulting to `document`).\n *\n * @param {string} selector\n * A valid CSS selector, which will be passed to `querySelectorAll`.\n *\n * @param {Element|String} [context=document]\n * A DOM element within which to query. Can also be a selector\n * string in which case the first matching element will be used\n * as context. If missing (or no element matches selector), falls\n * back to `document`.\n *\n * @return {NodeList}\n * A element list of elements that were found. Will be empty if none\n * were found.\n *\n */\n\nvar $$ = createQuerier('querySelectorAll');\n\nvar Dom = /*#__PURE__*/Object.freeze({\n __proto__: null,\n isReal: isReal,\n isEl: isEl,\n isInFrame: isInFrame,\n createEl: createEl,\n textContent: textContent,\n prependTo: prependTo,\n hasClass: hasClass,\n addClass: addClass,\n removeClass: removeClass,\n toggleClass: toggleClass,\n setAttributes: setAttributes,\n getAttributes: getAttributes,\n getAttribute: getAttribute,\n setAttribute: setAttribute,\n removeAttribute: removeAttribute,\n blockTextSelection: blockTextSelection,\n unblockTextSelection: unblockTextSelection,\n getBoundingClientRect: getBoundingClientRect,\n findPosition: findPosition,\n getPointerPosition: getPointerPosition,\n isTextNode: isTextNode,\n emptyEl: emptyEl,\n normalizeContent: normalizeContent,\n appendContent: appendContent,\n insertContent: insertContent,\n isSingleLeftClick: isSingleLeftClick,\n $: $,\n $$: $$\n});\n\n/**\n * @file setup.js - Functions for setting up a player without\n * user interaction based on the data-setup `attribute` of the video tag.\n *\n * @module setup\n */\nvar _windowLoaded = false;\nvar videojs;\n/**\n * Set up any tags that have a data-setup `attribute` when the player is started.\n */\n\nvar autoSetup = function autoSetup() {\n // Protect against breakage in non-browser environments and check global autoSetup option.\n if (!isReal() || videojs.options.autoSetup === false) {\n return;\n }\n\n var vids = Array.prototype.slice.call(document.getElementsByTagName('video'));\n var audios = Array.prototype.slice.call(document.getElementsByTagName('audio'));\n var divs = Array.prototype.slice.call(document.getElementsByTagName('video-js'));\n var mediaEls = vids.concat(audios, divs); // Check if any media elements exist\n\n if (mediaEls && mediaEls.length > 0) {\n for (var i = 0, e = mediaEls.length; i < e; i++) {\n var mediaEl = mediaEls[i]; // Check if element exists, has getAttribute func.\n\n if (mediaEl && mediaEl.getAttribute) {\n // Make sure this player hasn't already been set up.\n if (mediaEl.player === undefined) {\n var options = mediaEl.getAttribute('data-setup'); // Check if data-setup attr exists.\n // We only auto-setup if they've added the data-setup attr.\n\n if (options !== null) {\n // Create new video.js instance.\n videojs(mediaEl);\n }\n } // If getAttribute isn't defined, we need to wait for the DOM.\n\n } else {\n autoSetupTimeout(1);\n break;\n }\n } // No videos were found, so keep looping unless page is finished loading.\n\n } else if (!_windowLoaded) {\n autoSetupTimeout(1);\n }\n};\n/**\n * Wait until the page is loaded before running autoSetup. This will be called in\n * autoSetup if `hasLoaded` returns false.\n *\n * @param {number} wait\n * How long to wait in ms\n *\n * @param {module:videojs} [vjs]\n * The videojs library function\n */\n\n\nfunction autoSetupTimeout(wait, vjs) {\n if (vjs) {\n videojs = vjs;\n }\n\n window$1.setTimeout(autoSetup, wait);\n}\n/**\n * Used to set the internal tracking of window loaded state to true.\n *\n * @private\n */\n\n\nfunction setWindowLoaded() {\n _windowLoaded = true;\n window$1.removeEventListener('load', setWindowLoaded);\n}\n\nif (isReal()) {\n if (document.readyState === 'complete') {\n setWindowLoaded();\n } else {\n /**\n * Listen for the load event on window, and set _windowLoaded to true.\n *\n * We use a standard event listener here to avoid incrementing the GUID\n * before any players are created.\n *\n * @listens load\n */\n window$1.addEventListener('load', setWindowLoaded);\n }\n}\n\n/**\n * @file stylesheet.js\n * @module stylesheet\n */\n/**\n * Create a DOM syle element given a className for it.\n *\n * @param {string} className\n * The className to add to the created style element.\n *\n * @return {Element}\n * The element that was created.\n */\n\nvar createStyleElement = function createStyleElement(className) {\n var style = document.createElement('style');\n style.className = className;\n return style;\n};\n/**\n * Add text to a DOM element.\n *\n * @param {Element} el\n * The Element to add text content to.\n *\n * @param {string} content\n * The text to add to the element.\n */\n\nvar setTextContent = function setTextContent(el, content) {\n if (el.styleSheet) {\n el.styleSheet.cssText = content;\n } else {\n el.textContent = content;\n }\n};\n\n/**\n * @file guid.js\n * @module guid\n */\n// Default value for GUIDs. This allows us to reset the GUID counter in tests.\n//\n// The initial GUID is 3 because some users have come to rely on the first\n// default player ID ending up as `vjs_video_3`.\n//\n// See: https://github.com/videojs/video.js/pull/6216\nvar _initialGuid = 3;\n/**\n * Unique ID for an element or function\n *\n * @type {Number}\n */\n\nvar _guid = _initialGuid;\n/**\n * Get a unique auto-incrementing ID by number that has not been returned before.\n *\n * @return {number}\n * A new unique ID.\n */\n\nfunction newGUID() {\n return _guid++;\n}\n\n/**\n * @file dom-data.js\n * @module dom-data\n */\nvar FakeWeakMap;\n\nif (!window$1.WeakMap) {\n FakeWeakMap = /*#__PURE__*/function () {\n function FakeWeakMap() {\n this.vdata = 'vdata' + Math.floor(window$1.performance && window$1.performance.now() || Date.now());\n this.data = {};\n }\n\n var _proto = FakeWeakMap.prototype;\n\n _proto.set = function set(key, value) {\n var access = key[this.vdata] || newGUID();\n\n if (!key[this.vdata]) {\n key[this.vdata] = access;\n }\n\n this.data[access] = value;\n return this;\n };\n\n _proto.get = function get(key) {\n var access = key[this.vdata]; // we have data, return it\n\n if (access) {\n return this.data[access];\n } // we don't have data, return nothing.\n // return undefined explicitly as that's the contract for this method\n\n\n log('We have no data for this element', key);\n return undefined;\n };\n\n _proto.has = function has(key) {\n var access = key[this.vdata];\n return access in this.data;\n };\n\n _proto[\"delete\"] = function _delete(key) {\n var access = key[this.vdata];\n\n if (access) {\n delete this.data[access];\n delete key[this.vdata];\n }\n };\n\n return FakeWeakMap;\n }();\n}\n/**\n * Element Data Store.\n *\n * Allows for binding data to an element without putting it directly on the\n * element. Ex. Event listeners are stored here.\n * (also from jsninja.com, slightly modified and updated for closure compiler)\n *\n * @type {Object}\n * @private\n */\n\n\nvar DomData = window$1.WeakMap ? new WeakMap() : new FakeWeakMap();\n\n/**\n * @file events.js. An Event System (John Resig - Secrets of a JS Ninja http://jsninja.com/)\n * (Original book version wasn't completely usable, so fixed some things and made Closure Compiler compatible)\n * This should work very similarly to jQuery's events, however it's based off the book version which isn't as\n * robust as jquery's, so there's probably some differences.\n *\n * @file events.js\n * @module events\n */\n/**\n * Clean up the listener cache and dispatchers\n *\n * @param {Element|Object} elem\n * Element to clean up\n *\n * @param {string} type\n * Type of event to clean up\n */\n\nfunction _cleanUpEvents(elem, type) {\n if (!DomData.has(elem)) {\n return;\n }\n\n var data = DomData.get(elem); // Remove the events of a particular type if there are none left\n\n if (data.handlers[type].length === 0) {\n delete data.handlers[type]; // data.handlers[type] = null;\n // Setting to null was causing an error with data.handlers\n // Remove the meta-handler from the element\n\n if (elem.removeEventListener) {\n elem.removeEventListener(type, data.dispatcher, false);\n } else if (elem.detachEvent) {\n elem.detachEvent('on' + type, data.dispatcher);\n }\n } // Remove the events object if there are no types left\n\n\n if (Object.getOwnPropertyNames(data.handlers).length <= 0) {\n delete data.handlers;\n delete data.dispatcher;\n delete data.disabled;\n } // Finally remove the element data if there is no data left\n\n\n if (Object.getOwnPropertyNames(data).length === 0) {\n DomData[\"delete\"](elem);\n }\n}\n/**\n * Loops through an array of event types and calls the requested method for each type.\n *\n * @param {Function} fn\n * The event method we want to use.\n *\n * @param {Element|Object} elem\n * Element or object to bind listeners to\n *\n * @param {string} type\n * Type of event to bind to.\n *\n * @param {EventTarget~EventListener} callback\n * Event listener.\n */\n\n\nfunction _handleMultipleEvents(fn, elem, types, callback) {\n types.forEach(function (type) {\n // Call the event method for each one of the types\n fn(elem, type, callback);\n });\n}\n/**\n * Fix a native event to have standard property values\n *\n * @param {Object} event\n * Event object to fix.\n *\n * @return {Object}\n * Fixed event object.\n */\n\n\nfunction fixEvent(event) {\n if (event.fixed_) {\n return event;\n }\n\n function returnTrue() {\n return true;\n }\n\n function returnFalse() {\n return false;\n } // Test if fixing up is needed\n // Used to check if !event.stopPropagation instead of isPropagationStopped\n // But native events return true for stopPropagation, but don't have\n // other expected methods like isPropagationStopped. Seems to be a problem\n // with the Javascript Ninja code. So we're just overriding all events now.\n\n\n if (!event || !event.isPropagationStopped) {\n var old = event || window$1.event;\n event = {}; // Clone the old object so that we can modify the values event = {};\n // IE8 Doesn't like when you mess with native event properties\n // Firefox returns false for event.hasOwnProperty('type') and other props\n // which makes copying more difficult.\n // TODO: Probably best to create a whitelist of event props\n\n for (var key in old) {\n // Safari 6.0.3 warns you if you try to copy deprecated layerX/Y\n // Chrome warns you if you try to copy deprecated keyboardEvent.keyLocation\n // and webkitMovementX/Y\n if (key !== 'layerX' && key !== 'layerY' && key !== 'keyLocation' && key !== 'webkitMovementX' && key !== 'webkitMovementY') {\n // Chrome 32+ warns if you try to copy deprecated returnValue, but\n // we still want to if preventDefault isn't supported (IE8).\n if (!(key === 'returnValue' && old.preventDefault)) {\n event[key] = old[key];\n }\n }\n } // The event occurred on this element\n\n\n if (!event.target) {\n event.target = event.srcElement || document;\n } // Handle which other element the event is related to\n\n\n if (!event.relatedTarget) {\n event.relatedTarget = event.fromElement === event.target ? event.toElement : event.fromElement;\n } // Stop the default browser action\n\n\n event.preventDefault = function () {\n if (old.preventDefault) {\n old.preventDefault();\n }\n\n event.returnValue = false;\n old.returnValue = false;\n event.defaultPrevented = true;\n };\n\n event.defaultPrevented = false; // Stop the event from bubbling\n\n event.stopPropagation = function () {\n if (old.stopPropagation) {\n old.stopPropagation();\n }\n\n event.cancelBubble = true;\n old.cancelBubble = true;\n event.isPropagationStopped = returnTrue;\n };\n\n event.isPropagationStopped = returnFalse; // Stop the event from bubbling and executing other handlers\n\n event.stopImmediatePropagation = function () {\n if (old.stopImmediatePropagation) {\n old.stopImmediatePropagation();\n }\n\n event.isImmediatePropagationStopped = returnTrue;\n event.stopPropagation();\n };\n\n event.isImmediatePropagationStopped = returnFalse; // Handle mouse position\n\n if (event.clientX !== null && event.clientX !== undefined) {\n var doc = document.documentElement;\n var body = document.body;\n event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);\n event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);\n } // Handle key presses\n\n\n event.which = event.charCode || event.keyCode; // Fix button for mouse clicks:\n // 0 == left; 1 == middle; 2 == right\n\n if (event.button !== null && event.button !== undefined) {\n // The following is disabled because it does not pass videojs-standard\n // and... yikes.\n\n /* eslint-disable */\n event.button = event.button & 1 ? 0 : event.button & 4 ? 1 : event.button & 2 ? 2 : 0;\n /* eslint-enable */\n }\n }\n\n event.fixed_ = true; // Returns fixed-up instance\n\n return event;\n}\n/**\n * Whether passive event listeners are supported\n */\n\nvar _supportsPassive;\n\nvar supportsPassive = function supportsPassive() {\n if (typeof _supportsPassive !== 'boolean') {\n _supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n _supportsPassive = true;\n }\n });\n window$1.addEventListener('test', null, opts);\n window$1.removeEventListener('test', null, opts);\n } catch (e) {// disregard\n }\n }\n\n return _supportsPassive;\n};\n/**\n * Touch events Chrome expects to be passive\n */\n\n\nvar passiveEvents = ['touchstart', 'touchmove'];\n/**\n * Add an event listener to element\n * It stores the handler function in a separate cache object\n * and adds a generic handler to the element's event,\n * along with a unique id (guid) to the element.\n *\n * @param {Element|Object} elem\n * Element or object to bind listeners to\n *\n * @param {string|string[]} type\n * Type of event to bind to.\n *\n * @param {EventTarget~EventListener} fn\n * Event listener.\n */\n\nfunction on(elem, type, fn) {\n if (Array.isArray(type)) {\n return _handleMultipleEvents(on, elem, type, fn);\n }\n\n if (!DomData.has(elem)) {\n DomData.set(elem, {});\n }\n\n var data = DomData.get(elem); // We need a place to store all our handler data\n\n if (!data.handlers) {\n data.handlers = {};\n }\n\n if (!data.handlers[type]) {\n data.handlers[type] = [];\n }\n\n if (!fn.guid) {\n fn.guid = newGUID();\n }\n\n data.handlers[type].push(fn);\n\n if (!data.dispatcher) {\n data.disabled = false;\n\n data.dispatcher = function (event, hash) {\n if (data.disabled) {\n return;\n }\n\n event = fixEvent(event);\n var handlers = data.handlers[event.type];\n\n if (handlers) {\n // Copy handlers so if handlers are added/removed during the process it doesn't throw everything off.\n var handlersCopy = handlers.slice(0);\n\n for (var m = 0, n = handlersCopy.length; m < n; m++) {\n if (event.isImmediatePropagationStopped()) {\n break;\n } else {\n try {\n handlersCopy[m].call(elem, event, hash);\n } catch (e) {\n log.error(e);\n }\n }\n }\n }\n };\n }\n\n if (data.handlers[type].length === 1) {\n if (elem.addEventListener) {\n var options = false;\n\n if (supportsPassive() && passiveEvents.indexOf(type) > -1) {\n options = {\n passive: true\n };\n }\n\n elem.addEventListener(type, data.dispatcher, options);\n } else if (elem.attachEvent) {\n elem.attachEvent('on' + type, data.dispatcher);\n }\n }\n}\n/**\n * Removes event listeners from an element\n *\n * @param {Element|Object} elem\n * Object to remove listeners from.\n *\n * @param {string|string[]} [type]\n * Type of listener to remove. Don't include to remove all events from element.\n *\n * @param {EventTarget~EventListener} [fn]\n * Specific listener to remove. Don't include to remove listeners for an event\n * type.\n */\n\nfunction off(elem, type, fn) {\n // Don't want to add a cache object through getElData if not needed\n if (!DomData.has(elem)) {\n return;\n }\n\n var data = DomData.get(elem); // If no events exist, nothing to unbind\n\n if (!data.handlers) {\n return;\n }\n\n if (Array.isArray(type)) {\n return _handleMultipleEvents(off, elem, type, fn);\n } // Utility function\n\n\n var removeType = function removeType(el, t) {\n data.handlers[t] = [];\n\n _cleanUpEvents(el, t);\n }; // Are we removing all bound events?\n\n\n if (type === undefined) {\n for (var t in data.handlers) {\n if (Object.prototype.hasOwnProperty.call(data.handlers || {}, t)) {\n removeType(elem, t);\n }\n }\n\n return;\n }\n\n var handlers = data.handlers[type]; // If no handlers exist, nothing to unbind\n\n if (!handlers) {\n return;\n } // If no listener was provided, remove all listeners for type\n\n\n if (!fn) {\n removeType(elem, type);\n return;\n } // We're only removing a single handler\n\n\n if (fn.guid) {\n for (var n = 0; n < handlers.length; n++) {\n if (handlers[n].guid === fn.guid) {\n handlers.splice(n--, 1);\n }\n }\n }\n\n _cleanUpEvents(elem, type);\n}\n/**\n * Trigger an event for an element\n *\n * @param {Element|Object} elem\n * Element to trigger an event on\n *\n * @param {EventTarget~Event|string} event\n * A string (the type) or an event object with a type attribute\n *\n * @param {Object} [hash]\n * data hash to pass along with the event\n *\n * @return {boolean|undefined}\n * Returns the opposite of `defaultPrevented` if default was\n * prevented. Otherwise, returns `undefined`\n */\n\nfunction trigger(elem, event, hash) {\n // Fetches element data and a reference to the parent (for bubbling).\n // Don't want to add a data object to cache for every parent,\n // so checking hasElData first.\n var elemData = DomData.has(elem) ? DomData.get(elem) : {};\n var parent = elem.parentNode || elem.ownerDocument; // type = event.type || event,\n // handler;\n // If an event name was passed as a string, creates an event out of it\n\n if (typeof event === 'string') {\n event = {\n type: event,\n target: elem\n };\n } else if (!event.target) {\n event.target = elem;\n } // Normalizes the event properties.\n\n\n event = fixEvent(event); // If the passed element has a dispatcher, executes the established handlers.\n\n if (elemData.dispatcher) {\n elemData.dispatcher.call(elem, event, hash);\n } // Unless explicitly stopped or the event does not bubble (e.g. media events)\n // recursively calls this function to bubble the event up the DOM.\n\n\n if (parent && !event.isPropagationStopped() && event.bubbles === true) {\n trigger.call(null, parent, event, hash); // If at the top of the DOM, triggers the default action unless disabled.\n } else if (!parent && !event.defaultPrevented && event.target && event.target[event.type]) {\n if (!DomData.has(event.target)) {\n DomData.set(event.target, {});\n }\n\n var targetData = DomData.get(event.target); // Checks if the target has a default action for this event.\n\n if (event.target[event.type]) {\n // Temporarily disables event dispatching on the target as we have already executed the handler.\n targetData.disabled = true; // Executes the default action.\n\n if (typeof event.target[event.type] === 'function') {\n event.target[event.type]();\n } // Re-enables event dispatching.\n\n\n targetData.disabled = false;\n }\n } // Inform the triggerer if the default was prevented by returning false\n\n\n return !event.defaultPrevented;\n}\n/**\n * Trigger a listener only once for an event.\n *\n * @param {Element|Object} elem\n * Element or object to bind to.\n *\n * @param {string|string[]} type\n * Name/type of event\n *\n * @param {Event~EventListener} fn\n * Event listener function\n */\n\nfunction one(elem, type, fn) {\n if (Array.isArray(type)) {\n return _handleMultipleEvents(one, elem, type, fn);\n }\n\n var func = function func() {\n off(elem, type, func);\n fn.apply(this, arguments);\n }; // copy the guid to the new function so it can removed using the original function's ID\n\n\n func.guid = fn.guid = fn.guid || newGUID();\n on(elem, type, func);\n}\n/**\n * Trigger a listener only once and then turn if off for all\n * configured events\n *\n * @param {Element|Object} elem\n * Element or object to bind to.\n *\n * @param {string|string[]} type\n * Name/type of event\n *\n * @param {Event~EventListener} fn\n * Event listener function\n */\n\nfunction any(elem, type, fn) {\n var func = function func() {\n off(elem, type, func);\n fn.apply(this, arguments);\n }; // copy the guid to the new function so it can removed using the original function's ID\n\n\n func.guid = fn.guid = fn.guid || newGUID(); // multiple ons, but one off for everything\n\n on(elem, type, func);\n}\n\nvar Events = /*#__PURE__*/Object.freeze({\n __proto__: null,\n fixEvent: fixEvent,\n on: on,\n off: off,\n trigger: trigger,\n one: one,\n any: any\n});\n\n/**\n * @file fn.js\n * @module fn\n */\nvar UPDATE_REFRESH_INTERVAL = 30;\n/**\n * Bind (a.k.a proxy or context). A simple method for changing the context of\n * a function.\n *\n * It also stores a unique id on the function so it can be easily removed from\n * events.\n *\n * @function\n * @param {Mixed} context\n * The object to bind as scope.\n *\n * @param {Function} fn\n * The function to be bound to a scope.\n *\n * @param {number} [uid]\n * An optional unique ID for the function to be set\n *\n * @return {Function}\n * The new function that will be bound into the context given\n */\n\nvar bind = function bind(context, fn, uid) {\n // Make sure the function has a unique ID\n if (!fn.guid) {\n fn.guid = newGUID();\n } // Create the new function that changes the context\n\n\n var bound = fn.bind(context); // Allow for the ability to individualize this function\n // Needed in the case where multiple objects might share the same prototype\n // IF both items add an event listener with the same function, then you try to remove just one\n // it will remove both because they both have the same guid.\n // when using this, you need to use the bind method when you remove the listener as well.\n // currently used in text tracks\n\n bound.guid = uid ? uid + '_' + fn.guid : fn.guid;\n return bound;\n};\n/**\n * Wraps the given function, `fn`, with a new function that only invokes `fn`\n * at most once per every `wait` milliseconds.\n *\n * @function\n * @param {Function} fn\n * The function to be throttled.\n *\n * @param {number} wait\n * The number of milliseconds by which to throttle.\n *\n * @return {Function}\n */\n\nvar throttle = function throttle(fn, wait) {\n var last = window$1.performance.now();\n\n var throttled = function throttled() {\n var now = window$1.performance.now();\n\n if (now - last >= wait) {\n fn.apply(void 0, arguments);\n last = now;\n }\n };\n\n return throttled;\n};\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked.\n *\n * Inspired by lodash and underscore implementations.\n *\n * @function\n * @param {Function} func\n * The function to wrap with debounce behavior.\n *\n * @param {number} wait\n * The number of milliseconds to wait after the last invocation.\n *\n * @param {boolean} [immediate]\n * Whether or not to invoke the function immediately upon creation.\n *\n * @param {Object} [context=window]\n * The \"context\" in which the debounced function should debounce. For\n * example, if this function should be tied to a Video.js player,\n * the player can be passed here. Alternatively, defaults to the\n * global `window` object.\n *\n * @return {Function}\n * A debounced function.\n */\n\nvar debounce = function debounce(func, wait, immediate, context) {\n if (context === void 0) {\n context = window$1;\n }\n\n var timeout;\n\n var cancel = function cancel() {\n context.clearTimeout(timeout);\n timeout = null;\n };\n /* eslint-disable consistent-this */\n\n\n var debounced = function debounced() {\n var self = this;\n var args = arguments;\n\n var _later = function later() {\n timeout = null;\n _later = null;\n\n if (!immediate) {\n func.apply(self, args);\n }\n };\n\n if (!timeout && immediate) {\n func.apply(self, args);\n }\n\n context.clearTimeout(timeout);\n timeout = context.setTimeout(_later, wait);\n };\n /* eslint-enable consistent-this */\n\n\n debounced.cancel = cancel;\n return debounced;\n};\n\n/**\n * @file src/js/event-target.js\n */\n/**\n * `EventTarget` is a class that can have the same API as the DOM `EventTarget`. It\n * adds shorthand functions that wrap around lengthy functions. For example:\n * the `on` function is a wrapper around `addEventListener`.\n *\n * @see [EventTarget Spec]{@link https://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-EventTarget}\n * @class EventTarget\n */\n\nvar EventTarget = function EventTarget() {};\n/**\n * A Custom DOM event.\n *\n * @typedef {Object} EventTarget~Event\n * @see [Properties]{@link https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent}\n */\n\n/**\n * All event listeners should follow the following format.\n *\n * @callback EventTarget~EventListener\n * @this {EventTarget}\n *\n * @param {EventTarget~Event} event\n * the event that triggered this function\n *\n * @param {Object} [hash]\n * hash of data sent during the event\n */\n\n/**\n * An object containing event names as keys and booleans as values.\n *\n * > NOTE: If an event name is set to a true value here {@link EventTarget#trigger}\n * will have extra functionality. See that function for more information.\n *\n * @property EventTarget.prototype.allowedEvents_\n * @private\n */\n\n\nEventTarget.prototype.allowedEvents_ = {};\n/**\n * Adds an `event listener` to an instance of an `EventTarget`. An `event listener` is a\n * function that will get called when an event with a certain name gets triggered.\n *\n * @param {string|string[]} type\n * An event name or an array of event names.\n *\n * @param {EventTarget~EventListener} fn\n * The function to call with `EventTarget`s\n */\n\nEventTarget.prototype.on = function (type, fn) {\n // Remove the addEventListener alias before calling Events.on\n // so we don't get into an infinite type loop\n var ael = this.addEventListener;\n\n this.addEventListener = function () {};\n\n on(this, type, fn);\n this.addEventListener = ael;\n};\n/**\n * An alias of {@link EventTarget#on}. Allows `EventTarget` to mimic\n * the standard DOM API.\n *\n * @function\n * @see {@link EventTarget#on}\n */\n\n\nEventTarget.prototype.addEventListener = EventTarget.prototype.on;\n/**\n * Removes an `event listener` for a specific event from an instance of `EventTarget`.\n * This makes it so that the `event listener` will no longer get called when the\n * named event happens.\n *\n * @param {string|string[]} type\n * An event name or an array of event names.\n *\n * @param {EventTarget~EventListener} fn\n * The function to remove.\n */\n\nEventTarget.prototype.off = function (type, fn) {\n off(this, type, fn);\n};\n/**\n * An alias of {@link EventTarget#off}. Allows `EventTarget` to mimic\n * the standard DOM API.\n *\n * @function\n * @see {@link EventTarget#off}\n */\n\n\nEventTarget.prototype.removeEventListener = EventTarget.prototype.off;\n/**\n * This function will add an `event listener` that gets triggered only once. After the\n * first trigger it will get removed. This is like adding an `event listener`\n * with {@link EventTarget#on} that calls {@link EventTarget#off} on itself.\n *\n * @param {string|string[]} type\n * An event name or an array of event names.\n *\n * @param {EventTarget~EventListener} fn\n * The function to be called once for each event name.\n */\n\nEventTarget.prototype.one = function (type, fn) {\n // Remove the addEventListener aliasing Events.on\n // so we don't get into an infinite type loop\n var ael = this.addEventListener;\n\n this.addEventListener = function () {};\n\n one(this, type, fn);\n this.addEventListener = ael;\n};\n\nEventTarget.prototype.any = function (type, fn) {\n // Remove the addEventListener aliasing Events.on\n // so we don't get into an infinite type loop\n var ael = this.addEventListener;\n\n this.addEventListener = function () {};\n\n any(this, type, fn);\n this.addEventListener = ael;\n};\n/**\n * This function causes an event to happen. This will then cause any `event listeners`\n * that are waiting for that event, to get called. If there are no `event listeners`\n * for an event then nothing will happen.\n *\n * If the name of the `Event` that is being triggered is in `EventTarget.allowedEvents_`.\n * Trigger will also call the `on` + `uppercaseEventName` function.\n *\n * Example:\n * 'click' is in `EventTarget.allowedEvents_`, so, trigger will attempt to call\n * `onClick` if it exists.\n *\n * @param {string|EventTarget~Event|Object} event\n * The name of the event, an `Event`, or an object with a key of type set to\n * an event name.\n */\n\n\nEventTarget.prototype.trigger = function (event) {\n var type = event.type || event; // deprecation\n // In a future version we should default target to `this`\n // similar to how we default the target to `elem` in\n // `Events.trigger`. Right now the default `target` will be\n // `document` due to the `Event.fixEvent` call.\n\n if (typeof event === 'string') {\n event = {\n type: type\n };\n }\n\n event = fixEvent(event);\n\n if (this.allowedEvents_[type] && this['on' + type]) {\n this['on' + type](event);\n }\n\n trigger(this, event);\n};\n/**\n * An alias of {@link EventTarget#trigger}. Allows `EventTarget` to mimic\n * the standard DOM API.\n *\n * @function\n * @see {@link EventTarget#trigger}\n */\n\n\nEventTarget.prototype.dispatchEvent = EventTarget.prototype.trigger;\nvar EVENT_MAP;\n\nEventTarget.prototype.queueTrigger = function (event) {\n var _this = this;\n\n // only set up EVENT_MAP if it'll be used\n if (!EVENT_MAP) {\n EVENT_MAP = new Map();\n }\n\n var type = event.type || event;\n var map = EVENT_MAP.get(this);\n\n if (!map) {\n map = new Map();\n EVENT_MAP.set(this, map);\n }\n\n var oldTimeout = map.get(type);\n map[\"delete\"](type);\n window$1.clearTimeout(oldTimeout);\n var timeout = window$1.setTimeout(function () {\n // if we cleared out all timeouts for the current target, delete its map\n if (map.size === 0) {\n map = null;\n EVENT_MAP[\"delete\"](_this);\n }\n\n _this.trigger(event);\n }, 0);\n map.set(type, timeout);\n};\n\n/**\n * @file mixins/evented.js\n * @module evented\n */\n\nvar objName = function objName(obj) {\n if (typeof obj.name === 'function') {\n return obj.name();\n }\n\n if (typeof obj.name === 'string') {\n return obj.name;\n }\n\n if (obj.name_) {\n return obj.name_;\n }\n\n if (obj.constructor && obj.constructor.name) {\n return obj.constructor.name;\n }\n\n return typeof obj;\n};\n/**\n * Returns whether or not an object has had the evented mixin applied.\n *\n * @param {Object} object\n * An object to test.\n *\n * @return {boolean}\n * Whether or not the object appears to be evented.\n */\n\n\nvar isEvented = function isEvented(object) {\n return object instanceof EventTarget || !!object.eventBusEl_ && ['on', 'one', 'off', 'trigger'].every(function (k) {\n return typeof object[k] === 'function';\n });\n};\n/**\n * Adds a callback to run after the evented mixin applied.\n *\n * @param {Object} object\n * An object to Add\n * @param {Function} callback\n * The callback to run.\n */\n\n\nvar addEventedCallback = function addEventedCallback(target, callback) {\n if (isEvented(target)) {\n callback();\n } else {\n if (!target.eventedCallbacks) {\n target.eventedCallbacks = [];\n }\n\n target.eventedCallbacks.push(callback);\n }\n};\n/**\n * Whether a value is a valid event type - non-empty string or array.\n *\n * @private\n * @param {string|Array} type\n * The type value to test.\n *\n * @return {boolean}\n * Whether or not the type is a valid event type.\n */\n\n\nvar isValidEventType = function isValidEventType(type) {\n return (// The regex here verifies that the `type` contains at least one non-\n // whitespace character.\n typeof type === 'string' && /\\S/.test(type) || Array.isArray(type) && !!type.length\n );\n};\n/**\n * Validates a value to determine if it is a valid event target. Throws if not.\n *\n * @private\n * @throws {Error}\n * If the target does not appear to be a valid event target.\n *\n * @param {Object} target\n * The object to test.\n *\n * @param {Object} obj\n * The evented object we are validating for\n *\n * @param {string} fnName\n * The name of the evented mixin function that called this.\n */\n\n\nvar validateTarget = function validateTarget(target, obj, fnName) {\n if (!target || !target.nodeName && !isEvented(target)) {\n throw new Error(\"Invalid target for \" + objName(obj) + \"#\" + fnName + \"; must be a DOM node or evented object.\");\n }\n};\n/**\n * Validates a value to determine if it is a valid event target. Throws if not.\n *\n * @private\n * @throws {Error}\n * If the type does not appear to be a valid event type.\n *\n * @param {string|Array} type\n * The type to test.\n *\n * @param {Object} obj\n* The evented object we are validating for\n *\n * @param {string} fnName\n * The name of the evented mixin function that called this.\n */\n\n\nvar validateEventType = function validateEventType(type, obj, fnName) {\n if (!isValidEventType(type)) {\n throw new Error(\"Invalid event type for \" + objName(obj) + \"#\" + fnName + \"; must be a non-empty string or array.\");\n }\n};\n/**\n * Validates a value to determine if it is a valid listener. Throws if not.\n *\n * @private\n * @throws {Error}\n * If the listener is not a function.\n *\n * @param {Function} listener\n * The listener to test.\n *\n * @param {Object} obj\n * The evented object we are validating for\n *\n * @param {string} fnName\n * The name of the evented mixin function that called this.\n */\n\n\nvar validateListener = function validateListener(listener, obj, fnName) {\n if (typeof listener !== 'function') {\n throw new Error(\"Invalid listener for \" + objName(obj) + \"#\" + fnName + \"; must be a function.\");\n }\n};\n/**\n * Takes an array of arguments given to `on()` or `one()`, validates them, and\n * normalizes them into an object.\n *\n * @private\n * @param {Object} self\n * The evented object on which `on()` or `one()` was called. This\n * object will be bound as the `this` value for the listener.\n *\n * @param {Array} args\n * An array of arguments passed to `on()` or `one()`.\n *\n * @param {string} fnName\n * The name of the evented mixin function that called this.\n *\n * @return {Object}\n * An object containing useful values for `on()` or `one()` calls.\n */\n\n\nvar normalizeListenArgs = function normalizeListenArgs(self, args, fnName) {\n // If the number of arguments is less than 3, the target is always the\n // evented object itself.\n var isTargetingSelf = args.length < 3 || args[0] === self || args[0] === self.eventBusEl_;\n var target;\n var type;\n var listener;\n\n if (isTargetingSelf) {\n target = self.eventBusEl_; // Deal with cases where we got 3 arguments, but we are still listening to\n // the evented object itself.\n\n if (args.length >= 3) {\n args.shift();\n }\n\n type = args[0];\n listener = args[1];\n } else {\n target = args[0];\n type = args[1];\n listener = args[2];\n }\n\n validateTarget(target, self, fnName);\n validateEventType(type, self, fnName);\n validateListener(listener, self, fnName);\n listener = bind(self, listener);\n return {\n isTargetingSelf: isTargetingSelf,\n target: target,\n type: type,\n listener: listener\n };\n};\n/**\n * Adds the listener to the event type(s) on the target, normalizing for\n * the type of target.\n *\n * @private\n * @param {Element|Object} target\n * A DOM node or evented object.\n *\n * @param {string} method\n * The event binding method to use (\"on\" or \"one\").\n *\n * @param {string|Array} type\n * One or more event type(s).\n *\n * @param {Function} listener\n * A listener function.\n */\n\n\nvar listen = function listen(target, method, type, listener) {\n validateTarget(target, target, method);\n\n if (target.nodeName) {\n Events[method](target, type, listener);\n } else {\n target[method](type, listener);\n }\n};\n/**\n * Contains methods that provide event capabilities to an object which is passed\n * to {@link module:evented|evented}.\n *\n * @mixin EventedMixin\n */\n\n\nvar EventedMixin = {\n /**\n * Add a listener to an event (or events) on this object or another evented\n * object.\n *\n * @param {string|Array|Element|Object} targetOrType\n * If this is a string or array, it represents the event type(s)\n * that will trigger the listener.\n *\n * Another evented object can be passed here instead, which will\n * cause the listener to listen for events on _that_ object.\n *\n * In either case, the listener's `this` value will be bound to\n * this object.\n *\n * @param {string|Array|Function} typeOrListener\n * If the first argument was a string or array, this should be the\n * listener function. Otherwise, this is a string or array of event\n * type(s).\n *\n * @param {Function} [listener]\n * If the first argument was another evented object, this will be\n * the listener function.\n */\n on: function on() {\n var _this = this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var _normalizeListenArgs = normalizeListenArgs(this, args, 'on'),\n isTargetingSelf = _normalizeListenArgs.isTargetingSelf,\n target = _normalizeListenArgs.target,\n type = _normalizeListenArgs.type,\n listener = _normalizeListenArgs.listener;\n\n listen(target, 'on', type, listener); // If this object is listening to another evented object.\n\n if (!isTargetingSelf) {\n // If this object is disposed, remove the listener.\n var removeListenerOnDispose = function removeListenerOnDispose() {\n return _this.off(target, type, listener);\n }; // Use the same function ID as the listener so we can remove it later it\n // using the ID of the original listener.\n\n\n removeListenerOnDispose.guid = listener.guid; // Add a listener to the target's dispose event as well. This ensures\n // that if the target is disposed BEFORE this object, we remove the\n // removal listener that was just added. Otherwise, we create a memory leak.\n\n var removeRemoverOnTargetDispose = function removeRemoverOnTargetDispose() {\n return _this.off('dispose', removeListenerOnDispose);\n }; // Use the same function ID as the listener so we can remove it later\n // it using the ID of the original listener.\n\n\n removeRemoverOnTargetDispose.guid = listener.guid;\n listen(this, 'on', 'dispose', removeListenerOnDispose);\n listen(target, 'on', 'dispose', removeRemoverOnTargetDispose);\n }\n },\n\n /**\n * Add a listener to an event (or events) on this object or another evented\n * object. The listener will be called once per event and then removed.\n *\n * @param {string|Array|Element|Object} targetOrType\n * If this is a string or array, it represents the event type(s)\n * that will trigger the listener.\n *\n * Another evented object can be passed here instead, which will\n * cause the listener to listen for events on _that_ object.\n *\n * In either case, the listener's `this` value will be bound to\n * this object.\n *\n * @param {string|Array|Function} typeOrListener\n * If the first argument was a string or array, this should be the\n * listener function. Otherwise, this is a string or array of event\n * type(s).\n *\n * @param {Function} [listener]\n * If the first argument was another evented object, this will be\n * the listener function.\n */\n one: function one() {\n var _this2 = this;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var _normalizeListenArgs2 = normalizeListenArgs(this, args, 'one'),\n isTargetingSelf = _normalizeListenArgs2.isTargetingSelf,\n target = _normalizeListenArgs2.target,\n type = _normalizeListenArgs2.type,\n listener = _normalizeListenArgs2.listener; // Targeting this evented object.\n\n\n if (isTargetingSelf) {\n listen(target, 'one', type, listener); // Targeting another evented object.\n } else {\n // TODO: This wrapper is incorrect! It should only\n // remove the wrapper for the event type that called it.\n // Instead all listners are removed on the first trigger!\n // see https://github.com/videojs/video.js/issues/5962\n var wrapper = function wrapper() {\n _this2.off(target, type, wrapper);\n\n for (var _len3 = arguments.length, largs = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n largs[_key3] = arguments[_key3];\n }\n\n listener.apply(null, largs);\n }; // Use the same function ID as the listener so we can remove it later\n // it using the ID of the original listener.\n\n\n wrapper.guid = listener.guid;\n listen(target, 'one', type, wrapper);\n }\n },\n\n /**\n * Add a listener to an event (or events) on this object or another evented\n * object. The listener will only be called once for the first event that is triggered\n * then removed.\n *\n * @param {string|Array|Element|Object} targetOrType\n * If this is a string or array, it represents the event type(s)\n * that will trigger the listener.\n *\n * Another evented object can be passed here instead, which will\n * cause the listener to listen for events on _that_ object.\n *\n * In either case, the listener's `this` value will be bound to\n * this object.\n *\n * @param {string|Array|Function} typeOrListener\n * If the first argument was a string or array, this should be the\n * listener function. Otherwise, this is a string or array of event\n * type(s).\n *\n * @param {Function} [listener]\n * If the first argument was another evented object, this will be\n * the listener function.\n */\n any: function any() {\n var _this3 = this;\n\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n var _normalizeListenArgs3 = normalizeListenArgs(this, args, 'any'),\n isTargetingSelf = _normalizeListenArgs3.isTargetingSelf,\n target = _normalizeListenArgs3.target,\n type = _normalizeListenArgs3.type,\n listener = _normalizeListenArgs3.listener; // Targeting this evented object.\n\n\n if (isTargetingSelf) {\n listen(target, 'any', type, listener); // Targeting another evented object.\n } else {\n var wrapper = function wrapper() {\n _this3.off(target, type, wrapper);\n\n for (var _len5 = arguments.length, largs = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n largs[_key5] = arguments[_key5];\n }\n\n listener.apply(null, largs);\n }; // Use the same function ID as the listener so we can remove it later\n // it using the ID of the original listener.\n\n\n wrapper.guid = listener.guid;\n listen(target, 'any', type, wrapper);\n }\n },\n\n /**\n * Removes listener(s) from event(s) on an evented object.\n *\n * @param {string|Array|Element|Object} [targetOrType]\n * If this is a string or array, it represents the event type(s).\n *\n * Another evented object can be passed here instead, in which case\n * ALL 3 arguments are _required_.\n *\n * @param {string|Array|Function} [typeOrListener]\n * If the first argument was a string or array, this may be the\n * listener function. Otherwise, this is a string or array of event\n * type(s).\n *\n * @param {Function} [listener]\n * If the first argument was another evented object, this will be\n * the listener function; otherwise, _all_ listeners bound to the\n * event type(s) will be removed.\n */\n off: function off$1(targetOrType, typeOrListener, listener) {\n // Targeting this evented object.\n if (!targetOrType || isValidEventType(targetOrType)) {\n off(this.eventBusEl_, targetOrType, typeOrListener); // Targeting another evented object.\n } else {\n var target = targetOrType;\n var type = typeOrListener; // Fail fast and in a meaningful way!\n\n validateTarget(target, this, 'off');\n validateEventType(type, this, 'off');\n validateListener(listener, this, 'off'); // Ensure there's at least a guid, even if the function hasn't been used\n\n listener = bind(this, listener); // Remove the dispose listener on this evented object, which was given\n // the same guid as the event listener in on().\n\n this.off('dispose', listener);\n\n if (target.nodeName) {\n off(target, type, listener);\n off(target, 'dispose', listener);\n } else if (isEvented(target)) {\n target.off(type, listener);\n target.off('dispose', listener);\n }\n }\n },\n\n /**\n * Fire an event on this evented object, causing its listeners to be called.\n *\n * @param {string|Object} event\n * An event type or an object with a type property.\n *\n * @param {Object} [hash]\n * An additional object to pass along to listeners.\n *\n * @return {boolean}\n * Whether or not the default behavior was prevented.\n */\n trigger: function trigger$1(event, hash) {\n validateTarget(this.eventBusEl_, this, 'trigger');\n var type = event && typeof event !== 'string' ? event.type : event;\n\n if (!isValidEventType(type)) {\n var error = \"Invalid event type for \" + objName(this) + \"#trigger; \" + 'must be a non-empty string or object with a type key that has a non-empty value.';\n\n if (event) {\n (this.log || log).error(error);\n } else {\n throw new Error(error);\n }\n }\n\n return trigger(this.eventBusEl_, event, hash);\n }\n};\n/**\n * Applies {@link module:evented~EventedMixin|EventedMixin} to a target object.\n *\n * @param {Object} target\n * The object to which to add event methods.\n *\n * @param {Object} [options={}]\n * Options for customizing the mixin behavior.\n *\n * @param {string} [options.eventBusKey]\n * By default, adds a `eventBusEl_` DOM element to the target object,\n * which is used as an event bus. If the target object already has a\n * DOM element that should be used, pass its key here.\n *\n * @return {Object}\n * The target object.\n */\n\nfunction evented(target, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n eventBusKey = _options.eventBusKey; // Set or create the eventBusEl_.\n\n if (eventBusKey) {\n if (!target[eventBusKey].nodeName) {\n throw new Error(\"The eventBusKey \\\"\" + eventBusKey + \"\\\" does not refer to an element.\");\n }\n\n target.eventBusEl_ = target[eventBusKey];\n } else {\n target.eventBusEl_ = createEl('span', {\n className: 'vjs-event-bus'\n });\n }\n\n assign(target, EventedMixin);\n\n if (target.eventedCallbacks) {\n target.eventedCallbacks.forEach(function (callback) {\n callback();\n });\n } // When any evented object is disposed, it removes all its listeners.\n\n\n target.on('dispose', function () {\n target.off();\n window$1.setTimeout(function () {\n target.eventBusEl_ = null;\n }, 0);\n });\n return target;\n}\n\n/**\n * @file mixins/stateful.js\n * @module stateful\n */\n/**\n * Contains methods that provide statefulness to an object which is passed\n * to {@link module:stateful}.\n *\n * @mixin StatefulMixin\n */\n\nvar StatefulMixin = {\n /**\n * A hash containing arbitrary keys and values representing the state of\n * the object.\n *\n * @type {Object}\n */\n state: {},\n\n /**\n * Set the state of an object by mutating its\n * {@link module:stateful~StatefulMixin.state|state} object in place.\n *\n * @fires module:stateful~StatefulMixin#statechanged\n * @param {Object|Function} stateUpdates\n * A new set of properties to shallow-merge into the plugin state.\n * Can be a plain object or a function returning a plain object.\n *\n * @return {Object|undefined}\n * An object containing changes that occurred. If no changes\n * occurred, returns `undefined`.\n */\n setState: function setState(stateUpdates) {\n var _this = this;\n\n // Support providing the `stateUpdates` state as a function.\n if (typeof stateUpdates === 'function') {\n stateUpdates = stateUpdates();\n }\n\n var changes;\n each(stateUpdates, function (value, key) {\n // Record the change if the value is different from what's in the\n // current state.\n if (_this.state[key] !== value) {\n changes = changes || {};\n changes[key] = {\n from: _this.state[key],\n to: value\n };\n }\n\n _this.state[key] = value;\n }); // Only trigger \"statechange\" if there were changes AND we have a trigger\n // function. This allows us to not require that the target object be an\n // evented object.\n\n if (changes && isEvented(this)) {\n /**\n * An event triggered on an object that is both\n * {@link module:stateful|stateful} and {@link module:evented|evented}\n * indicating that its state has changed.\n *\n * @event module:stateful~StatefulMixin#statechanged\n * @type {Object}\n * @property {Object} changes\n * A hash containing the properties that were changed and\n * the values they were changed `from` and `to`.\n */\n this.trigger({\n changes: changes,\n type: 'statechanged'\n });\n }\n\n return changes;\n }\n};\n/**\n * Applies {@link module:stateful~StatefulMixin|StatefulMixin} to a target\n * object.\n *\n * If the target object is {@link module:evented|evented} and has a\n * `handleStateChanged` method, that method will be automatically bound to the\n * `statechanged` event on itself.\n *\n * @param {Object} target\n * The object to be made stateful.\n *\n * @param {Object} [defaultState]\n * A default set of properties to populate the newly-stateful object's\n * `state` property.\n *\n * @return {Object}\n * Returns the `target`.\n */\n\nfunction stateful(target, defaultState) {\n assign(target, StatefulMixin); // This happens after the mixing-in because we need to replace the `state`\n // added in that step.\n\n target.state = assign({}, target.state, defaultState); // Auto-bind the `handleStateChanged` method of the target object if it exists.\n\n if (typeof target.handleStateChanged === 'function' && isEvented(target)) {\n target.on('statechanged', target.handleStateChanged);\n }\n\n return target;\n}\n\n/**\n * @file string-cases.js\n * @module to-lower-case\n */\n\n/**\n * Lowercase the first letter of a string.\n *\n * @param {string} string\n * String to be lowercased\n *\n * @return {string}\n * The string with a lowercased first letter\n */\nvar toLowerCase = function toLowerCase(string) {\n if (typeof string !== 'string') {\n return string;\n }\n\n return string.replace(/./, function (w) {\n return w.toLowerCase();\n });\n};\n/**\n * Uppercase the first letter of a string.\n *\n * @param {string} string\n * String to be uppercased\n *\n * @return {string}\n * The string with an uppercased first letter\n */\n\nvar toTitleCase = function toTitleCase(string) {\n if (typeof string !== 'string') {\n return string;\n }\n\n return string.replace(/./, function (w) {\n return w.toUpperCase();\n });\n};\n/**\n * Compares the TitleCase versions of the two strings for equality.\n *\n * @param {string} str1\n * The first string to compare\n *\n * @param {string} str2\n * The second string to compare\n *\n * @return {boolean}\n * Whether the TitleCase versions of the strings are equal\n */\n\nvar titleCaseEquals = function titleCaseEquals(str1, str2) {\n return toTitleCase(str1) === toTitleCase(str2);\n};\n\n/**\n * @file merge-options.js\n * @module merge-options\n */\n/**\n * Merge two objects recursively.\n *\n * Performs a deep merge like\n * {@link https://lodash.com/docs/4.17.10#merge|lodash.merge}, but only merges\n * plain objects (not arrays, elements, or anything else).\n *\n * Non-plain object values will be copied directly from the right-most\n * argument.\n *\n * @static\n * @param {Object[]} sources\n * One or more objects to merge into a new object.\n *\n * @return {Object}\n * A new object that is the merged result of all sources.\n */\n\nfunction mergeOptions() {\n var result = {};\n\n for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n\n sources.forEach(function (source) {\n if (!source) {\n return;\n }\n\n each(source, function (value, key) {\n if (!isPlain(value)) {\n result[key] = value;\n return;\n }\n\n if (!isPlain(result[key])) {\n result[key] = {};\n }\n\n result[key] = mergeOptions(result[key], value);\n });\n });\n return result;\n}\n\nvar MapSham = /*#__PURE__*/function () {\n function MapSham() {\n this.map_ = {};\n }\n\n var _proto = MapSham.prototype;\n\n _proto.has = function has(key) {\n return key in this.map_;\n };\n\n _proto[\"delete\"] = function _delete(key) {\n var has = this.has(key);\n delete this.map_[key];\n return has;\n };\n\n _proto.set = function set(key, value) {\n this.map_[key] = value;\n return this;\n };\n\n _proto.forEach = function forEach(callback, thisArg) {\n for (var key in this.map_) {\n callback.call(thisArg, this.map_[key], key, this);\n }\n };\n\n return MapSham;\n}();\n\nvar Map$1 = window$1.Map ? window$1.Map : MapSham;\n\nvar SetSham = /*#__PURE__*/function () {\n function SetSham() {\n this.set_ = {};\n }\n\n var _proto = SetSham.prototype;\n\n _proto.has = function has(key) {\n return key in this.set_;\n };\n\n _proto[\"delete\"] = function _delete(key) {\n var has = this.has(key);\n delete this.set_[key];\n return has;\n };\n\n _proto.add = function add(key) {\n this.set_[key] = 1;\n return this;\n };\n\n _proto.forEach = function forEach(callback, thisArg) {\n for (var key in this.set_) {\n callback.call(thisArg, key, key, this);\n }\n };\n\n return SetSham;\n}();\n\nvar Set = window$1.Set ? window$1.Set : SetSham;\n\n/**\n * Player Component - Base class for all UI objects\n *\n * @file component.js\n */\n/**\n * Base class for all UI Components.\n * Components are UI objects which represent both a javascript object and an element\n * in the DOM. They can be children of other components, and can have\n * children themselves.\n *\n * Components can also use methods from {@link EventTarget}\n */\n\nvar Component = /*#__PURE__*/function () {\n /**\n * A callback that is called when a component is ready. Does not have any\n * paramters and any callback value will be ignored.\n *\n * @callback Component~ReadyCallback\n * @this Component\n */\n\n /**\n * Creates an instance of this class.\n *\n * @param {Player} player\n * The `Player` that this class should be attached to.\n *\n * @param {Object} [options]\n * The key/value store of player options.\n *\n * @param {Object[]} [options.children]\n * An array of children objects to intialize this component with. Children objects have\n * a name property that will be used if more than one component of the same type needs to be\n * added.\n *\n * @param {Component~ReadyCallback} [ready]\n * Function that gets called when the `Component` is ready.\n */\n function Component(player, options, ready) {\n // The component might be the player itself and we can't pass `this` to super\n if (!player && this.play) {\n this.player_ = player = this; // eslint-disable-line\n } else {\n this.player_ = player;\n }\n\n this.isDisposed_ = false; // Hold the reference to the parent component via `addChild` method\n\n this.parentComponent_ = null; // Make a copy of prototype.options_ to protect against overriding defaults\n\n this.options_ = mergeOptions({}, this.options_); // Updated options with supplied options\n\n options = this.options_ = mergeOptions(this.options_, options); // Get ID from options or options element if one is supplied\n\n this.id_ = options.id || options.el && options.el.id; // If there was no ID from the options, generate one\n\n if (!this.id_) {\n // Don't require the player ID function in the case of mock players\n var id = player && player.id && player.id() || 'no_player';\n this.id_ = id + \"_component_\" + newGUID();\n }\n\n this.name_ = options.name || null; // Create element if one wasn't provided in options\n\n if (options.el) {\n this.el_ = options.el;\n } else if (options.createEl !== false) {\n this.el_ = this.createEl();\n } // if evented is anything except false, we want to mixin in evented\n\n\n if (options.evented !== false) {\n // Make this an evented object and use `el_`, if available, as its event bus\n evented(this, {\n eventBusKey: this.el_ ? 'el_' : null\n });\n this.handleLanguagechange = this.handleLanguagechange.bind(this);\n this.on(this.player_, 'languagechange', this.handleLanguagechange);\n }\n\n stateful(this, this.constructor.defaultState);\n this.children_ = [];\n this.childIndex_ = {};\n this.childNameIndex_ = {};\n this.setTimeoutIds_ = new Set();\n this.setIntervalIds_ = new Set();\n this.rafIds_ = new Set();\n this.namedRafs_ = new Map$1();\n this.clearingTimersOnDispose_ = false; // Add any child components in options\n\n if (options.initChildren !== false) {\n this.initChildren();\n }\n\n this.ready(ready); // Don't want to trigger ready here or it will before init is actually\n // finished for all children that run this constructor\n\n if (options.reportTouchActivity !== false) {\n this.enableTouchActivity();\n }\n }\n /**\n * Dispose of the `Component` and all child components.\n *\n * @fires Component#dispose\n */\n\n\n var _proto = Component.prototype;\n\n _proto.dispose = function dispose() {\n // Bail out if the component has already been disposed.\n if (this.isDisposed_) {\n return;\n }\n\n if (this.readyQueue_) {\n this.readyQueue_.length = 0;\n }\n /**\n * Triggered when a `Component` is disposed.\n *\n * @event Component#dispose\n * @type {EventTarget~Event}\n *\n * @property {boolean} [bubbles=false]\n * set to false so that the dispose event does not\n * bubble up\n */\n\n\n this.trigger({\n type: 'dispose',\n bubbles: false\n });\n this.isDisposed_ = true; // Dispose all children.\n\n if (this.children_) {\n for (var i = this.children_.length - 1; i >= 0; i--) {\n if (this.children_[i].dispose) {\n this.children_[i].dispose();\n }\n }\n } // Delete child references\n\n\n this.children_ = null;\n this.childIndex_ = null;\n this.childNameIndex_ = null;\n this.parentComponent_ = null;\n\n if (this.el_) {\n // Remove element from DOM\n if (this.el_.parentNode) {\n this.el_.parentNode.removeChild(this.el_);\n }\n\n if (DomData.has(this.el_)) {\n DomData[\"delete\"](this.el_);\n }\n\n this.el_ = null;\n } // remove reference to the player after disposing of the element\n\n\n this.player_ = null;\n }\n /**\n * Determine whether or not this component has been disposed.\n *\n * @return {boolean}\n * If the component has been disposed, will be `true`. Otherwise, `false`.\n */\n ;\n\n _proto.isDisposed = function isDisposed() {\n return Boolean(this.isDisposed_);\n }\n /**\n * Return the {@link Player} that the `Component` has attached to.\n *\n * @return {Player}\n * The player that this `Component` has attached to.\n */\n ;\n\n _proto.player = function player() {\n return this.player_;\n }\n /**\n * Deep merge of options objects with new options.\n * > Note: When both `obj` and `options` contain properties whose values are objects.\n * The two properties get merged using {@link module:mergeOptions}\n *\n * @param {Object} obj\n * The object that contains new options.\n *\n * @return {Object}\n * A new object of `this.options_` and `obj` merged together.\n */\n ;\n\n _proto.options = function options(obj) {\n if (!obj) {\n return this.options_;\n }\n\n this.options_ = mergeOptions(this.options_, obj);\n return this.options_;\n }\n /**\n * Get the `Component`s DOM element\n *\n * @return {Element}\n * The DOM element for this `Component`.\n */\n ;\n\n _proto.el = function el() {\n return this.el_;\n }\n /**\n * Create the `Component`s DOM element.\n *\n * @param {string} [tagName]\n * Element's DOM node type. e.g. 'div'\n *\n * @param {Object} [properties]\n * An object of properties that should be set.\n *\n * @param {Object} [attributes]\n * An object of attributes that should be set.\n *\n * @return {Element}\n * The element that gets created.\n */\n ;\n\n _proto.createEl = function createEl$1(tagName, properties, attributes) {\n return createEl(tagName, properties, attributes);\n }\n /**\n * Localize a string given the string in english.\n *\n * If tokens are provided, it'll try and run a simple token replacement on the provided string.\n * The tokens it looks for look like `{1}` with the index being 1-indexed into the tokens array.\n *\n * If a `defaultValue` is provided, it'll use that over `string`,\n * if a value isn't found in provided language files.\n * This is useful if you want to have a descriptive key for token replacement\n * but have a succinct localized string and not require `en.json` to be included.\n *\n * Currently, it is used for the progress bar timing.\n * ```js\n * {\n * \"progress bar timing: currentTime={1} duration={2}\": \"{1} of {2}\"\n * }\n * ```\n * It is then used like so:\n * ```js\n * this.localize('progress bar timing: currentTime={1} duration{2}',\n * [this.player_.currentTime(), this.player_.duration()],\n * '{1} of {2}');\n * ```\n *\n * Which outputs something like: `01:23 of 24:56`.\n *\n *\n * @param {string} string\n * The string to localize and the key to lookup in the language files.\n * @param {string[]} [tokens]\n * If the current item has token replacements, provide the tokens here.\n * @param {string} [defaultValue]\n * Defaults to `string`. Can be a default value to use for token replacement\n * if the lookup key is needed to be separate.\n *\n * @return {string}\n * The localized string or if no localization exists the english string.\n */\n ;\n\n _proto.localize = function localize(string, tokens, defaultValue) {\n if (defaultValue === void 0) {\n defaultValue = string;\n }\n\n var code = this.player_.language && this.player_.language();\n var languages = this.player_.languages && this.player_.languages();\n var language = languages && languages[code];\n var primaryCode = code && code.split('-')[0];\n var primaryLang = languages && languages[primaryCode];\n var localizedString = defaultValue;\n\n if (language && language[string]) {\n localizedString = language[string];\n } else if (primaryLang && primaryLang[string]) {\n localizedString = primaryLang[string];\n }\n\n if (tokens) {\n localizedString = localizedString.replace(/\\{(\\d+)\\}/g, function (match, index) {\n var value = tokens[index - 1];\n var ret = value;\n\n if (typeof value === 'undefined') {\n ret = match;\n }\n\n return ret;\n });\n }\n\n return localizedString;\n }\n /**\n * Handles language change for the player in components. Should be overriden by sub-components.\n *\n * @abstract\n */\n ;\n\n _proto.handleLanguagechange = function handleLanguagechange() {}\n /**\n * Return the `Component`s DOM element. This is where children get inserted.\n * This will usually be the the same as the element returned in {@link Component#el}.\n *\n * @return {Element}\n * The content element for this `Component`.\n */\n ;\n\n _proto.contentEl = function contentEl() {\n return this.contentEl_ || this.el_;\n }\n /**\n * Get this `Component`s ID\n *\n * @return {string}\n * The id of this `Component`\n */\n ;\n\n _proto.id = function id() {\n return this.id_;\n }\n /**\n * Get the `Component`s name. The name gets used to reference the `Component`\n * and is set during registration.\n *\n * @return {string}\n * The name of this `Component`.\n */\n ;\n\n _proto.name = function name() {\n return this.name_;\n }\n /**\n * Get an array of all child components\n *\n * @return {Array}\n * The children\n */\n ;\n\n _proto.children = function children() {\n return this.children_;\n }\n /**\n * Returns the child `Component` with the given `id`.\n *\n * @param {string} id\n * The id of the child `Component` to get.\n *\n * @return {Component|undefined}\n * The child `Component` with the given `id` or undefined.\n */\n ;\n\n _proto.getChildById = function getChildById(id) {\n return this.childIndex_[id];\n }\n /**\n * Returns the child `Component` with the given `name`.\n *\n * @param {string} name\n * The name of the child `Component` to get.\n *\n * @return {Component|undefined}\n * The child `Component` with the given `name` or undefined.\n */\n ;\n\n _proto.getChild = function getChild(name) {\n if (!name) {\n return;\n }\n\n return this.childNameIndex_[name];\n }\n /**\n * Returns the descendant `Component` following the givent\n * descendant `names`. For instance ['foo', 'bar', 'baz'] would\n * try to get 'foo' on the current component, 'bar' on the 'foo'\n * component and 'baz' on the 'bar' component and return undefined\n * if any of those don't exist.\n *\n * @param {...string[]|...string} names\n * The name of the child `Component` to get.\n *\n * @return {Component|undefined}\n * The descendant `Component` following the given descendant\n * `names` or undefined.\n */\n ;\n\n _proto.getDescendant = function getDescendant() {\n for (var _len = arguments.length, names = new Array(_len), _key = 0; _key < _len; _key++) {\n names[_key] = arguments[_key];\n }\n\n // flatten array argument into the main array\n names = names.reduce(function (acc, n) {\n return acc.concat(n);\n }, []);\n var currentChild = this;\n\n for (var i = 0; i < names.length; i++) {\n currentChild = currentChild.getChild(names[i]);\n\n if (!currentChild || !currentChild.getChild) {\n return;\n }\n }\n\n return currentChild;\n }\n /**\n * Add a child `Component` inside the current `Component`.\n *\n *\n * @param {string|Component} child\n * The name or instance of a child to add.\n *\n * @param {Object} [options={}]\n * The key/value store of options that will get passed to children of\n * the child.\n *\n * @param {number} [index=this.children_.length]\n * The index to attempt to add a child into.\n *\n * @return {Component}\n * The `Component` that gets added as a child. When using a string the\n * `Component` will get created by this process.\n */\n ;\n\n _proto.addChild = function addChild(child, options, index) {\n if (options === void 0) {\n options = {};\n }\n\n if (index === void 0) {\n index = this.children_.length;\n }\n\n var component;\n var componentName; // If child is a string, create component with options\n\n if (typeof child === 'string') {\n componentName = toTitleCase(child);\n var componentClassName = options.componentClass || componentName; // Set name through options\n\n options.name = componentName; // Create a new object & element for this controls set\n // If there's no .player_, this is a player\n\n var ComponentClass = Component.getComponent(componentClassName);\n\n if (!ComponentClass) {\n throw new Error(\"Component \" + componentClassName + \" does not exist\");\n } // data stored directly on the videojs object may be\n // misidentified as a component to retain\n // backwards-compatibility with 4.x. check to make sure the\n // component class can be instantiated.\n\n\n if (typeof ComponentClass !== 'function') {\n return null;\n }\n\n component = new ComponentClass(this.player_ || this, options); // child is a component instance\n } else {\n component = child;\n }\n\n if (component.parentComponent_) {\n component.parentComponent_.removeChild(component);\n }\n\n this.children_.splice(index, 0, component);\n component.parentComponent_ = this;\n\n if (typeof component.id === 'function') {\n this.childIndex_[component.id()] = component;\n } // If a name wasn't used to create the component, check if we can use the\n // name function of the component\n\n\n componentName = componentName || component.name && toTitleCase(component.name());\n\n if (componentName) {\n this.childNameIndex_[componentName] = component;\n this.childNameIndex_[toLowerCase(componentName)] = component;\n } // Add the UI object's element to the container div (box)\n // Having an element is not required\n\n\n if (typeof component.el === 'function' && component.el()) {\n // If inserting before a component, insert before that component's element\n var refNode = null;\n\n if (this.children_[index + 1]) {\n // Most children are components, but the video tech is an HTML element\n if (this.children_[index + 1].el_) {\n refNode = this.children_[index + 1].el_;\n } else if (isEl(this.children_[index + 1])) {\n refNode = this.children_[index + 1];\n }\n }\n\n this.contentEl().insertBefore(component.el(), refNode);\n } // Return so it can stored on parent object if desired.\n\n\n return component;\n }\n /**\n * Remove a child `Component` from this `Component`s list of children. Also removes\n * the child `Component`s element from this `Component`s element.\n *\n * @param {Component} component\n * The child `Component` to remove.\n */\n ;\n\n _proto.removeChild = function removeChild(component) {\n if (typeof component === 'string') {\n component = this.getChild(component);\n }\n\n if (!component || !this.children_) {\n return;\n }\n\n var childFound = false;\n\n for (var i = this.children_.length - 1; i >= 0; i--) {\n if (this.children_[i] === component) {\n childFound = true;\n this.children_.splice(i, 1);\n break;\n }\n }\n\n if (!childFound) {\n return;\n }\n\n component.parentComponent_ = null;\n this.childIndex_[component.id()] = null;\n this.childNameIndex_[toTitleCase(component.name())] = null;\n this.childNameIndex_[toLowerCase(component.name())] = null;\n var compEl = component.el();\n\n if (compEl && compEl.parentNode === this.contentEl()) {\n this.contentEl().removeChild(component.el());\n }\n }\n /**\n * Add and initialize default child `Component`s based upon options.\n */\n ;\n\n _proto.initChildren = function initChildren() {\n var _this = this;\n\n var children = this.options_.children;\n\n if (children) {\n // `this` is `parent`\n var parentOptions = this.options_;\n\n var handleAdd = function handleAdd(child) {\n var name = child.name;\n var opts = child.opts; // Allow options for children to be set at the parent options\n // e.g. videojs(id, { controlBar: false });\n // instead of videojs(id, { children: { controlBar: false });\n\n if (parentOptions[name] !== undefined) {\n opts = parentOptions[name];\n } // Allow for disabling default components\n // e.g. options['children']['posterImage'] = false\n\n\n if (opts === false) {\n return;\n } // Allow options to be passed as a simple boolean if no configuration\n // is necessary.\n\n\n if (opts === true) {\n opts = {};\n } // We also want to pass the original player options\n // to each component as well so they don't need to\n // reach back into the player for options later.\n\n\n opts.playerOptions = _this.options_.playerOptions; // Create and add the child component.\n // Add a direct reference to the child by name on the parent instance.\n // If two of the same component are used, different names should be supplied\n // for each\n\n var newChild = _this.addChild(name, opts);\n\n if (newChild) {\n _this[name] = newChild;\n }\n }; // Allow for an array of children details to passed in the options\n\n\n var workingChildren;\n var Tech = Component.getComponent('Tech');\n\n if (Array.isArray(children)) {\n workingChildren = children;\n } else {\n workingChildren = Object.keys(children);\n }\n\n workingChildren // children that are in this.options_ but also in workingChildren would\n // give us extra children we do not want. So, we want to filter them out.\n .concat(Object.keys(this.options_).filter(function (child) {\n return !workingChildren.some(function (wchild) {\n if (typeof wchild === 'string') {\n return child === wchild;\n }\n\n return child === wchild.name;\n });\n })).map(function (child) {\n var name;\n var opts;\n\n if (typeof child === 'string') {\n name = child;\n opts = children[name] || _this.options_[name] || {};\n } else {\n name = child.name;\n opts = child;\n }\n\n return {\n name: name,\n opts: opts\n };\n }).filter(function (child) {\n // we have to make sure that child.name isn't in the techOrder since\n // techs are registerd as Components but can't aren't compatible\n // See https://github.com/videojs/video.js/issues/2772\n var c = Component.getComponent(child.opts.componentClass || toTitleCase(child.name));\n return c && !Tech.isTech(c);\n }).forEach(handleAdd);\n }\n }\n /**\n * Builds the default DOM class name. Should be overriden by sub-components.\n *\n * @return {string}\n * The DOM class name for this object.\n *\n * @abstract\n */\n ;\n\n _proto.buildCSSClass = function buildCSSClass() {\n // Child classes can include a function that does:\n // return 'CLASS NAME' + this._super();\n return '';\n }\n /**\n * Bind a listener to the component's ready state.\n * Different from event listeners in that if the ready event has already happened\n * it will trigger the function immediately.\n *\n * @return {Component}\n * Returns itself; method can be chained.\n */\n ;\n\n _proto.ready = function ready(fn, sync) {\n if (sync === void 0) {\n sync = false;\n }\n\n if (!fn) {\n return;\n }\n\n if (!this.isReady_) {\n this.readyQueue_ = this.readyQueue_ || [];\n this.readyQueue_.push(fn);\n return;\n }\n\n if (sync) {\n fn.call(this);\n } else {\n // Call the function asynchronously by default for consistency\n this.setTimeout(fn, 1);\n }\n }\n /**\n * Trigger all the ready listeners for this `Component`.\n *\n * @fires Component#ready\n */\n ;\n\n _proto.triggerReady = function triggerReady() {\n this.isReady_ = true; // Ensure ready is triggered asynchronously\n\n this.setTimeout(function () {\n var readyQueue = this.readyQueue_; // Reset Ready Queue\n\n this.readyQueue_ = [];\n\n if (readyQueue && readyQueue.length > 0) {\n readyQueue.forEach(function (fn) {\n fn.call(this);\n }, this);\n } // Allow for using event listeners also\n\n /**\n * Triggered when a `Component` is ready.\n *\n * @event Component#ready\n * @type {EventTarget~Event}\n */\n\n\n this.trigger('ready');\n }, 1);\n }\n /**\n * Find a single DOM element matching a `selector`. This can be within the `Component`s\n * `contentEl()` or another custom context.\n *\n * @param {string} selector\n * A valid CSS selector, which will be passed to `querySelector`.\n *\n * @param {Element|string} [context=this.contentEl()]\n * A DOM element within which to query. Can also be a selector string in\n * which case the first matching element will get used as context. If\n * missing `this.contentEl()` gets used. If `this.contentEl()` returns\n * nothing it falls back to `document`.\n *\n * @return {Element|null}\n * the dom element that was found, or null\n *\n * @see [Information on CSS Selectors](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_Started/Selectors)\n */\n ;\n\n _proto.$ = function $$1(selector, context) {\n return $(selector, context || this.contentEl());\n }\n /**\n * Finds all DOM element matching a `selector`. This can be within the `Component`s\n * `contentEl()` or another custom context.\n *\n * @param {string} selector\n * A valid CSS selector, which will be passed to `querySelectorAll`.\n *\n * @param {Element|string} [context=this.contentEl()]\n * A DOM element within which to query. Can also be a selector string in\n * which case the first matching element will get used as context. If\n * missing `this.contentEl()` gets used. If `this.contentEl()` returns\n * nothing it falls back to `document`.\n *\n * @return {NodeList}\n * a list of dom elements that were found\n *\n * @see [Information on CSS Selectors](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_Started/Selectors)\n */\n ;\n\n _proto.$$ = function $$$1(selector, context) {\n return $$(selector, context || this.contentEl());\n }\n /**\n * Check if a component's element has a CSS class name.\n *\n * @param {string} classToCheck\n * CSS class name to check.\n *\n * @return {boolean}\n * - True if the `Component` has the class.\n * - False if the `Component` does not have the class`\n */\n ;\n\n _proto.hasClass = function hasClass$1(classToCheck) {\n return hasClass(this.el_, classToCheck);\n }\n /**\n * Add a CSS class name to the `Component`s element.\n *\n * @param {string} classToAdd\n * CSS class name to add\n */\n ;\n\n _proto.addClass = function addClass$1(classToAdd) {\n addClass(this.el_, classToAdd);\n }\n /**\n * Remove a CSS class name from the `Component`s element.\n *\n * @param {string} classToRemove\n * CSS class name to remove\n */\n ;\n\n _proto.removeClass = function removeClass$1(classToRemove) {\n removeClass(this.el_, classToRemove);\n }\n /**\n * Add or remove a CSS class name from the component's element.\n * - `classToToggle` gets added when {@link Component#hasClass} would return false.\n * - `classToToggle` gets removed when {@link Component#hasClass} would return true.\n *\n * @param {string} classToToggle\n * The class to add or remove based on (@link Component#hasClass}\n *\n * @param {boolean|Dom~predicate} [predicate]\n * An {@link Dom~predicate} function or a boolean\n */\n ;\n\n _proto.toggleClass = function toggleClass$1(classToToggle, predicate) {\n toggleClass(this.el_, classToToggle, predicate);\n }\n /**\n * Show the `Component`s element if it is hidden by removing the\n * 'vjs-hidden' class name from it.\n */\n ;\n\n _proto.show = function show() {\n this.removeClass('vjs-hidden');\n }\n /**\n * Hide the `Component`s element if it is currently showing by adding the\n * 'vjs-hidden` class name to it.\n */\n ;\n\n _proto.hide = function hide() {\n this.addClass('vjs-hidden');\n }\n /**\n * Lock a `Component`s element in its visible state by adding the 'vjs-lock-showing'\n * class name to it. Used during fadeIn/fadeOut.\n *\n * @private\n */\n ;\n\n _proto.lockShowing = function lockShowing() {\n this.addClass('vjs-lock-showing');\n }\n /**\n * Unlock a `Component`s element from its visible state by removing the 'vjs-lock-showing'\n * class name from it. Used during fadeIn/fadeOut.\n *\n * @private\n */\n ;\n\n _proto.unlockShowing = function unlockShowing() {\n this.removeClass('vjs-lock-showing');\n }\n /**\n * Get the value of an attribute on the `Component`s element.\n *\n * @param {string} attribute\n * Name of the attribute to get the value from.\n *\n * @return {string|null}\n * - The value of the attribute that was asked for.\n * - Can be an empty string on some browsers if the attribute does not exist\n * or has no value\n * - Most browsers will return null if the attibute does not exist or has\n * no value.\n *\n * @see [DOM API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Element/getAttribute}\n */\n ;\n\n _proto.getAttribute = function getAttribute$1(attribute) {\n return getAttribute(this.el_, attribute);\n }\n /**\n * Set the value of an attribute on the `Component`'s element\n *\n * @param {string} attribute\n * Name of the attribute to set.\n *\n * @param {string} value\n * Value to set the attribute to.\n *\n * @see [DOM API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Element/setAttribute}\n */\n ;\n\n _proto.setAttribute = function setAttribute$1(attribute, value) {\n setAttribute(this.el_, attribute, value);\n }\n /**\n * Remove an attribute from the `Component`s element.\n *\n * @param {string} attribute\n * Name of the attribute to remove.\n *\n * @see [DOM API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Element/removeAttribute}\n */\n ;\n\n _proto.removeAttribute = function removeAttribute$1(attribute) {\n removeAttribute(this.el_, attribute);\n }\n /**\n * Get or set the width of the component based upon the CSS styles.\n * See {@link Component#dimension} for more detailed information.\n *\n * @param {number|string} [num]\n * The width that you want to set postfixed with '%', 'px' or nothing.\n *\n * @param {boolean} [skipListeners]\n * Skip the componentresize event trigger\n *\n * @return {number|string}\n * The width when getting, zero if there is no width. Can be a string\n * postpixed with '%' or 'px'.\n */\n ;\n\n _proto.width = function width(num, skipListeners) {\n return this.dimension('width', num, skipListeners);\n }\n /**\n * Get or set the height of the component based upon the CSS styles.\n * See {@link Component#dimension} for more detailed information.\n *\n * @param {number|string} [num]\n * The height that you want to set postfixed with '%', 'px' or nothing.\n *\n * @param {boolean} [skipListeners]\n * Skip the componentresize event trigger\n *\n * @return {number|string}\n * The width when getting, zero if there is no width. Can be a string\n * postpixed with '%' or 'px'.\n */\n ;\n\n _proto.height = function height(num, skipListeners) {\n return this.dimension('height', num, skipListeners);\n }\n /**\n * Set both the width and height of the `Component` element at the same time.\n *\n * @param {number|string} width\n * Width to set the `Component`s element to.\n *\n * @param {number|string} height\n * Height to set the `Component`s element to.\n */\n ;\n\n _proto.dimensions = function dimensions(width, height) {\n // Skip componentresize listeners on width for optimization\n this.width(width, true);\n this.height(height);\n }\n /**\n * Get or set width or height of the `Component` element. This is the shared code\n * for the {@link Component#width} and {@link Component#height}.\n *\n * Things to know:\n * - If the width or height in an number this will return the number postfixed with 'px'.\n * - If the width/height is a percent this will return the percent postfixed with '%'\n * - Hidden elements have a width of 0 with `window.getComputedStyle`. This function\n * defaults to the `Component`s `style.width` and falls back to `window.getComputedStyle`.\n * See [this]{@link http://www.foliotek.com/devblog/getting-the-width-of-a-hidden-element-with-jquery-using-width/}\n * for more information\n * - If you want the computed style of the component, use {@link Component#currentWidth}\n * and {@link {Component#currentHeight}\n *\n * @fires Component#componentresize\n *\n * @param {string} widthOrHeight\n 8 'width' or 'height'\n *\n * @param {number|string} [num]\n 8 New dimension\n *\n * @param {boolean} [skipListeners]\n * Skip componentresize event trigger\n *\n * @return {number}\n * The dimension when getting or 0 if unset\n */\n ;\n\n _proto.dimension = function dimension(widthOrHeight, num, skipListeners) {\n if (num !== undefined) {\n // Set to zero if null or literally NaN (NaN !== NaN)\n if (num === null || num !== num) {\n num = 0;\n } // Check if using css width/height (% or px) and adjust\n\n\n if (('' + num).indexOf('%') !== -1 || ('' + num).indexOf('px') !== -1) {\n this.el_.style[widthOrHeight] = num;\n } else if (num === 'auto') {\n this.el_.style[widthOrHeight] = '';\n } else {\n this.el_.style[widthOrHeight] = num + 'px';\n } // skipListeners allows us to avoid triggering the resize event when setting both width and height\n\n\n if (!skipListeners) {\n /**\n * Triggered when a component is resized.\n *\n * @event Component#componentresize\n * @type {EventTarget~Event}\n */\n this.trigger('componentresize');\n }\n\n return;\n } // Not setting a value, so getting it\n // Make sure element exists\n\n\n if (!this.el_) {\n return 0;\n } // Get dimension value from style\n\n\n var val = this.el_.style[widthOrHeight];\n var pxIndex = val.indexOf('px');\n\n if (pxIndex !== -1) {\n // Return the pixel value with no 'px'\n return parseInt(val.slice(0, pxIndex), 10);\n } // No px so using % or no style was set, so falling back to offsetWidth/height\n // If component has display:none, offset will return 0\n // TODO: handle display:none and no dimension style using px\n\n\n return parseInt(this.el_['offset' + toTitleCase(widthOrHeight)], 10);\n }\n /**\n * Get the computed width or the height of the component's element.\n *\n * Uses `window.getComputedStyle`.\n *\n * @param {string} widthOrHeight\n * A string containing 'width' or 'height'. Whichever one you want to get.\n *\n * @return {number}\n * The dimension that gets asked for or 0 if nothing was set\n * for that dimension.\n */\n ;\n\n _proto.currentDimension = function currentDimension(widthOrHeight) {\n var computedWidthOrHeight = 0;\n\n if (widthOrHeight !== 'width' && widthOrHeight !== 'height') {\n throw new Error('currentDimension only accepts width or height value');\n }\n\n computedWidthOrHeight = computedStyle(this.el_, widthOrHeight); // remove 'px' from variable and parse as integer\n\n computedWidthOrHeight = parseFloat(computedWidthOrHeight); // if the computed value is still 0, it's possible that the browser is lying\n // and we want to check the offset values.\n // This code also runs wherever getComputedStyle doesn't exist.\n\n if (computedWidthOrHeight === 0 || isNaN(computedWidthOrHeight)) {\n var rule = \"offset\" + toTitleCase(widthOrHeight);\n computedWidthOrHeight = this.el_[rule];\n }\n\n return computedWidthOrHeight;\n }\n /**\n * An object that contains width and height values of the `Component`s\n * computed style. Uses `window.getComputedStyle`.\n *\n * @typedef {Object} Component~DimensionObject\n *\n * @property {number} width\n * The width of the `Component`s computed style.\n *\n * @property {number} height\n * The height of the `Component`s computed style.\n */\n\n /**\n * Get an object that contains computed width and height values of the\n * component's element.\n *\n * Uses `window.getComputedStyle`.\n *\n * @return {Component~DimensionObject}\n * The computed dimensions of the component's element.\n */\n ;\n\n _proto.currentDimensions = function currentDimensions() {\n return {\n width: this.currentDimension('width'),\n height: this.currentDimension('height')\n };\n }\n /**\n * Get the computed width of the component's element.\n *\n * Uses `window.getComputedStyle`.\n *\n * @return {number}\n * The computed width of the component's element.\n */\n ;\n\n _proto.currentWidth = function currentWidth() {\n return this.currentDimension('width');\n }\n /**\n * Get the computed height of the component's element.\n *\n * Uses `window.getComputedStyle`.\n *\n * @return {number}\n * The computed height of the component's element.\n */\n ;\n\n _proto.currentHeight = function currentHeight() {\n return this.currentDimension('height');\n }\n /**\n * Set the focus to this component\n */\n ;\n\n _proto.focus = function focus() {\n this.el_.focus();\n }\n /**\n * Remove the focus from this component\n */\n ;\n\n _proto.blur = function blur() {\n this.el_.blur();\n }\n /**\n * When this Component receives a `keydown` event which it does not process,\n * it passes the event to the Player for handling.\n *\n * @param {EventTarget~Event} event\n * The `keydown` event that caused this function to be called.\n */\n ;\n\n _proto.handleKeyDown = function handleKeyDown(event) {\n if (this.player_) {\n // We only stop propagation here because we want unhandled events to fall\n // back to the browser.\n event.stopPropagation();\n this.player_.handleKeyDown(event);\n }\n }\n /**\n * Many components used to have a `handleKeyPress` method, which was poorly\n * named because it listened to a `keydown` event. This method name now\n * delegates to `handleKeyDown`. This means anyone calling `handleKeyPress`\n * will not see their method calls stop working.\n *\n * @param {EventTarget~Event} event\n * The event that caused this function to be called.\n */\n ;\n\n _proto.handleKeyPress = function handleKeyPress(event) {\n this.handleKeyDown(event);\n }\n /**\n * Emit a 'tap' events when touch event support gets detected. This gets used to\n * support toggling the controls through a tap on the video. They get enabled\n * because every sub-component would have extra overhead otherwise.\n *\n * @private\n * @fires Component#tap\n * @listens Component#touchstart\n * @listens Component#touchmove\n * @listens Component#touchleave\n * @listens Component#touchcancel\n * @listens Component#touchend\n */\n ;\n\n _proto.emitTapEvents = function emitTapEvents() {\n // Track the start time so we can determine how long the touch lasted\n var touchStart = 0;\n var firstTouch = null; // Maximum movement allowed during a touch event to still be considered a tap\n // Other popular libs use anywhere from 2 (hammer.js) to 15,\n // so 10 seems like a nice, round number.\n\n var tapMovementThreshold = 10; // The maximum length a touch can be while still being considered a tap\n\n var touchTimeThreshold = 200;\n var couldBeTap;\n this.on('touchstart', function (event) {\n // If more than one finger, don't consider treating this as a click\n if (event.touches.length === 1) {\n // Copy pageX/pageY from the object\n firstTouch = {\n pageX: event.touches[0].pageX,\n pageY: event.touches[0].pageY\n }; // Record start time so we can detect a tap vs. \"touch and hold\"\n\n touchStart = window$1.performance.now(); // Reset couldBeTap tracking\n\n couldBeTap = true;\n }\n });\n this.on('touchmove', function (event) {\n // If more than one finger, don't consider treating this as a click\n if (event.touches.length > 1) {\n couldBeTap = false;\n } else if (firstTouch) {\n // Some devices will throw touchmoves for all but the slightest of taps.\n // So, if we moved only a small distance, this could still be a tap\n var xdiff = event.touches[0].pageX - firstTouch.pageX;\n var ydiff = event.touches[0].pageY - firstTouch.pageY;\n var touchDistance = Math.sqrt(xdiff * xdiff + ydiff * ydiff);\n\n if (touchDistance > tapMovementThreshold) {\n couldBeTap = false;\n }\n }\n });\n\n var noTap = function noTap() {\n couldBeTap = false;\n }; // TODO: Listen to the original target. http://youtu.be/DujfpXOKUp8?t=13m8s\n\n\n this.on('touchleave', noTap);\n this.on('touchcancel', noTap); // When the touch ends, measure how long it took and trigger the appropriate\n // event\n\n this.on('touchend', function (event) {\n firstTouch = null; // Proceed only if the touchmove/leave/cancel event didn't happen\n\n if (couldBeTap === true) {\n // Measure how long the touch lasted\n var touchTime = window$1.performance.now() - touchStart; // Make sure the touch was less than the threshold to be considered a tap\n\n if (touchTime < touchTimeThreshold) {\n // Don't let browser turn this into a click\n event.preventDefault();\n /**\n * Triggered when a `Component` is tapped.\n *\n * @event Component#tap\n * @type {EventTarget~Event}\n */\n\n this.trigger('tap'); // It may be good to copy the touchend event object and change the\n // type to tap, if the other event properties aren't exact after\n // Events.fixEvent runs (e.g. event.target)\n }\n }\n });\n }\n /**\n * This function reports user activity whenever touch events happen. This can get\n * turned off by any sub-components that wants touch events to act another way.\n *\n * Report user touch activity when touch events occur. User activity gets used to\n * determine when controls should show/hide. It is simple when it comes to mouse\n * events, because any mouse event should show the controls. So we capture mouse\n * events that bubble up to the player and report activity when that happens.\n * With touch events it isn't as easy as `touchstart` and `touchend` toggle player\n * controls. So touch events can't help us at the player level either.\n *\n * User activity gets checked asynchronously. So what could happen is a tap event\n * on the video turns the controls off. Then the `touchend` event bubbles up to\n * the player. Which, if it reported user activity, would turn the controls right\n * back on. We also don't want to completely block touch events from bubbling up.\n * Furthermore a `touchmove` event and anything other than a tap, should not turn\n * controls back on.\n *\n * @listens Component#touchstart\n * @listens Component#touchmove\n * @listens Component#touchend\n * @listens Component#touchcancel\n */\n ;\n\n _proto.enableTouchActivity = function enableTouchActivity() {\n // Don't continue if the root player doesn't support reporting user activity\n if (!this.player() || !this.player().reportUserActivity) {\n return;\n } // listener for reporting that the user is active\n\n\n var report = bind(this.player(), this.player().reportUserActivity);\n var touchHolding;\n this.on('touchstart', function () {\n report(); // For as long as the they are touching the device or have their mouse down,\n // we consider them active even if they're not moving their finger or mouse.\n // So we want to continue to update that they are active\n\n this.clearInterval(touchHolding); // report at the same interval as activityCheck\n\n touchHolding = this.setInterval(report, 250);\n });\n\n var touchEnd = function touchEnd(event) {\n report(); // stop the interval that maintains activity if the touch is holding\n\n this.clearInterval(touchHolding);\n };\n\n this.on('touchmove', report);\n this.on('touchend', touchEnd);\n this.on('touchcancel', touchEnd);\n }\n /**\n * A callback that has no parameters and is bound into `Component`s context.\n *\n * @callback Component~GenericCallback\n * @this Component\n */\n\n /**\n * Creates a function that runs after an `x` millisecond timeout. This function is a\n * wrapper around `window.setTimeout`. There are a few reasons to use this one\n * instead though:\n * 1. It gets cleared via {@link Component#clearTimeout} when\n * {@link Component#dispose} gets called.\n * 2. The function callback will gets turned into a {@link Component~GenericCallback}\n *\n * > Note: You can't use `window.clearTimeout` on the id returned by this function. This\n * will cause its dispose listener not to get cleaned up! Please use\n * {@link Component#clearTimeout} or {@link Component#dispose} instead.\n *\n * @param {Component~GenericCallback} fn\n * The function that will be run after `timeout`.\n *\n * @param {number} timeout\n * Timeout in milliseconds to delay before executing the specified function.\n *\n * @return {number}\n * Returns a timeout ID that gets used to identify the timeout. It can also\n * get used in {@link Component#clearTimeout} to clear the timeout that\n * was set.\n *\n * @listens Component#dispose\n * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setTimeout}\n */\n ;\n\n _proto.setTimeout = function setTimeout(fn, timeout) {\n var _this2 = this;\n\n // declare as variables so they are properly available in timeout function\n // eslint-disable-next-line\n var timeoutId;\n fn = bind(this, fn);\n this.clearTimersOnDispose_();\n timeoutId = window$1.setTimeout(function () {\n if (_this2.setTimeoutIds_.has(timeoutId)) {\n _this2.setTimeoutIds_[\"delete\"](timeoutId);\n }\n\n fn();\n }, timeout);\n this.setTimeoutIds_.add(timeoutId);\n return timeoutId;\n }\n /**\n * Clears a timeout that gets created via `window.setTimeout` or\n * {@link Component#setTimeout}. If you set a timeout via {@link Component#setTimeout}\n * use this function instead of `window.clearTimout`. If you don't your dispose\n * listener will not get cleaned up until {@link Component#dispose}!\n *\n * @param {number} timeoutId\n * The id of the timeout to clear. The return value of\n * {@link Component#setTimeout} or `window.setTimeout`.\n *\n * @return {number}\n * Returns the timeout id that was cleared.\n *\n * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/clearTimeout}\n */\n ;\n\n _proto.clearTimeout = function clearTimeout(timeoutId) {\n if (this.setTimeoutIds_.has(timeoutId)) {\n this.setTimeoutIds_[\"delete\"](timeoutId);\n window$1.clearTimeout(timeoutId);\n }\n\n return timeoutId;\n }\n /**\n * Creates a function that gets run every `x` milliseconds. This function is a wrapper\n * around `window.setInterval`. There are a few reasons to use this one instead though.\n * 1. It gets cleared via {@link Component#clearInterval} when\n * {@link Component#dispose} gets called.\n * 2. The function callback will be a {@link Component~GenericCallback}\n *\n * @param {Component~GenericCallback} fn\n * The function to run every `x` seconds.\n *\n * @param {number} interval\n * Execute the specified function every `x` milliseconds.\n *\n * @return {number}\n * Returns an id that can be used to identify the interval. It can also be be used in\n * {@link Component#clearInterval} to clear the interval.\n *\n * @listens Component#dispose\n * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setInterval}\n */\n ;\n\n _proto.setInterval = function setInterval(fn, interval) {\n fn = bind(this, fn);\n this.clearTimersOnDispose_();\n var intervalId = window$1.setInterval(fn, interval);\n this.setIntervalIds_.add(intervalId);\n return intervalId;\n }\n /**\n * Clears an interval that gets created via `window.setInterval` or\n * {@link Component#setInterval}. If you set an inteval via {@link Component#setInterval}\n * use this function instead of `window.clearInterval`. If you don't your dispose\n * listener will not get cleaned up until {@link Component#dispose}!\n *\n * @param {number} intervalId\n * The id of the interval to clear. The return value of\n * {@link Component#setInterval} or `window.setInterval`.\n *\n * @return {number}\n * Returns the interval id that was cleared.\n *\n * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/clearInterval}\n */\n ;\n\n _proto.clearInterval = function clearInterval(intervalId) {\n if (this.setIntervalIds_.has(intervalId)) {\n this.setIntervalIds_[\"delete\"](intervalId);\n window$1.clearInterval(intervalId);\n }\n\n return intervalId;\n }\n /**\n * Queues up a callback to be passed to requestAnimationFrame (rAF), but\n * with a few extra bonuses:\n *\n * - Supports browsers that do not support rAF by falling back to\n * {@link Component#setTimeout}.\n *\n * - The callback is turned into a {@link Component~GenericCallback} (i.e.\n * bound to the component).\n *\n * - Automatic cancellation of the rAF callback is handled if the component\n * is disposed before it is called.\n *\n * @param {Component~GenericCallback} fn\n * A function that will be bound to this component and executed just\n * before the browser's next repaint.\n *\n * @return {number}\n * Returns an rAF ID that gets used to identify the timeout. It can\n * also be used in {@link Component#cancelAnimationFrame} to cancel\n * the animation frame callback.\n *\n * @listens Component#dispose\n * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame}\n */\n ;\n\n _proto.requestAnimationFrame = function requestAnimationFrame(fn) {\n var _this3 = this;\n\n // Fall back to using a timer.\n if (!this.supportsRaf_) {\n return this.setTimeout(fn, 1000 / 60);\n }\n\n this.clearTimersOnDispose_(); // declare as variables so they are properly available in rAF function\n // eslint-disable-next-line\n\n var id;\n fn = bind(this, fn);\n id = window$1.requestAnimationFrame(function () {\n if (_this3.rafIds_.has(id)) {\n _this3.rafIds_[\"delete\"](id);\n }\n\n fn();\n });\n this.rafIds_.add(id);\n return id;\n }\n /**\n * Request an animation frame, but only one named animation\n * frame will be queued. Another will never be added until\n * the previous one finishes.\n *\n * @param {string} name\n * The name to give this requestAnimationFrame\n *\n * @param {Component~GenericCallback} fn\n * A function that will be bound to this component and executed just\n * before the browser's next repaint.\n */\n ;\n\n _proto.requestNamedAnimationFrame = function requestNamedAnimationFrame(name, fn) {\n var _this4 = this;\n\n if (this.namedRafs_.has(name)) {\n return;\n }\n\n this.clearTimersOnDispose_();\n fn = bind(this, fn);\n var id = this.requestAnimationFrame(function () {\n fn();\n\n if (_this4.namedRafs_.has(name)) {\n _this4.namedRafs_[\"delete\"](name);\n }\n });\n this.namedRafs_.set(name, id);\n return name;\n }\n /**\n * Cancels a current named animation frame if it exists.\n *\n * @param {string} name\n * The name of the requestAnimationFrame to cancel.\n */\n ;\n\n _proto.cancelNamedAnimationFrame = function cancelNamedAnimationFrame(name) {\n if (!this.namedRafs_.has(name)) {\n return;\n }\n\n this.cancelAnimationFrame(this.namedRafs_.get(name));\n this.namedRafs_[\"delete\"](name);\n }\n /**\n * Cancels a queued callback passed to {@link Component#requestAnimationFrame}\n * (rAF).\n *\n * If you queue an rAF callback via {@link Component#requestAnimationFrame},\n * use this function instead of `window.cancelAnimationFrame`. If you don't,\n * your dispose listener will not get cleaned up until {@link Component#dispose}!\n *\n * @param {number} id\n * The rAF ID to clear. The return value of {@link Component#requestAnimationFrame}.\n *\n * @return {number}\n * Returns the rAF ID that was cleared.\n *\n * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/window/cancelAnimationFrame}\n */\n ;\n\n _proto.cancelAnimationFrame = function cancelAnimationFrame(id) {\n // Fall back to using a timer.\n if (!this.supportsRaf_) {\n return this.clearTimeout(id);\n }\n\n if (this.rafIds_.has(id)) {\n this.rafIds_[\"delete\"](id);\n window$1.cancelAnimationFrame(id);\n }\n\n return id;\n }\n /**\n * A function to setup `requestAnimationFrame`, `setTimeout`,\n * and `setInterval`, clearing on dispose.\n *\n * > Previously each timer added and removed dispose listeners on it's own.\n * For better performance it was decided to batch them all, and use `Set`s\n * to track outstanding timer ids.\n *\n * @private\n */\n ;\n\n _proto.clearTimersOnDispose_ = function clearTimersOnDispose_() {\n var _this5 = this;\n\n if (this.clearingTimersOnDispose_) {\n return;\n }\n\n this.clearingTimersOnDispose_ = true;\n this.one('dispose', function () {\n [['namedRafs_', 'cancelNamedAnimationFrame'], ['rafIds_', 'cancelAnimationFrame'], ['setTimeoutIds_', 'clearTimeout'], ['setIntervalIds_', 'clearInterval']].forEach(function (_ref) {\n var idName = _ref[0],\n cancelName = _ref[1];\n\n // for a `Set` key will actually be the value again\n // so forEach((val, val) =>` but for maps we want to use\n // the key.\n _this5[idName].forEach(function (val, key) {\n return _this5[cancelName](key);\n });\n });\n _this5.clearingTimersOnDispose_ = false;\n });\n }\n /**\n * Register a `Component` with `videojs` given the name and the component.\n *\n * > NOTE: {@link Tech}s should not be registered as a `Component`. {@link Tech}s\n * should be registered using {@link Tech.registerTech} or\n * {@link videojs:videojs.registerTech}.\n *\n * > NOTE: This function can also be seen on videojs as\n * {@link videojs:videojs.registerComponent}.\n *\n * @param {string} name\n * The name of the `Component` to register.\n *\n * @param {Component} ComponentToRegister\n * The `Component` class to register.\n *\n * @return {Component}\n * The `Component` that was registered.\n */\n ;\n\n Component.registerComponent = function registerComponent(name, ComponentToRegister) {\n if (typeof name !== 'string' || !name) {\n throw new Error(\"Illegal component name, \\\"\" + name + \"\\\"; must be a non-empty string.\");\n }\n\n var Tech = Component.getComponent('Tech'); // We need to make sure this check is only done if Tech has been registered.\n\n var isTech = Tech && Tech.isTech(ComponentToRegister);\n var isComp = Component === ComponentToRegister || Component.prototype.isPrototypeOf(ComponentToRegister.prototype);\n\n if (isTech || !isComp) {\n var reason;\n\n if (isTech) {\n reason = 'techs must be registered using Tech.registerTech()';\n } else {\n reason = 'must be a Component subclass';\n }\n\n throw new Error(\"Illegal component, \\\"\" + name + \"\\\"; \" + reason + \".\");\n }\n\n name = toTitleCase(name);\n\n if (!Component.components_) {\n Component.components_ = {};\n }\n\n var Player = Component.getComponent('Player');\n\n if (name === 'Player' && Player && Player.players) {\n var players = Player.players;\n var playerNames = Object.keys(players); // If we have players that were disposed, then their name will still be\n // in Players.players. So, we must loop through and verify that the value\n // for each item is not null. This allows registration of the Player component\n // after all players have been disposed or before any were created.\n\n if (players && playerNames.length > 0 && playerNames.map(function (pname) {\n return players[pname];\n }).every(Boolean)) {\n throw new Error('Can not register Player component after player has been created.');\n }\n }\n\n Component.components_[name] = ComponentToRegister;\n Component.components_[toLowerCase(name)] = ComponentToRegister;\n return ComponentToRegister;\n }\n /**\n * Get a `Component` based on the name it was registered with.\n *\n * @param {string} name\n * The Name of the component to get.\n *\n * @return {Component}\n * The `Component` that got registered under the given name.\n *\n * @deprecated In `videojs` 6 this will not return `Component`s that were not\n * registered using {@link Component.registerComponent}. Currently we\n * check the global `videojs` object for a `Component` name and\n * return that if it exists.\n */\n ;\n\n Component.getComponent = function getComponent(name) {\n if (!name || !Component.components_) {\n return;\n }\n\n return Component.components_[name];\n };\n\n return Component;\n}();\n/**\n * Whether or not this component supports `requestAnimationFrame`.\n *\n * This is exposed primarily for testing purposes.\n *\n * @private\n * @type {Boolean}\n */\n\n\nComponent.prototype.supportsRaf_ = typeof window$1.requestAnimationFrame === 'function' && typeof window$1.cancelAnimationFrame === 'function';\nComponent.registerComponent('Component', Component);\n\n/**\n * @file browser.js\n * @module browser\n */\nvar USER_AGENT = window$1.navigator && window$1.navigator.userAgent || '';\nvar webkitVersionMap = /AppleWebKit\\/([\\d.]+)/i.exec(USER_AGENT);\nvar appleWebkitVersion = webkitVersionMap ? parseFloat(webkitVersionMap.pop()) : null;\n/**\n * Whether or not this device is an iPod.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_IPOD = /iPod/i.test(USER_AGENT);\n/**\n * The detected iOS version - or `null`.\n *\n * @static\n * @const\n * @type {string|null}\n */\n\nvar IOS_VERSION = function () {\n var match = USER_AGENT.match(/OS (\\d+)_/i);\n\n if (match && match[1]) {\n return match[1];\n }\n\n return null;\n}();\n/**\n * Whether or not this is an Android device.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_ANDROID = /Android/i.test(USER_AGENT);\n/**\n * The detected Android version - or `null`.\n *\n * @static\n * @const\n * @type {number|string|null}\n */\n\nvar ANDROID_VERSION = function () {\n // This matches Android Major.Minor.Patch versions\n // ANDROID_VERSION is Major.Minor as a Number, if Minor isn't available, then only Major is returned\n var match = USER_AGENT.match(/Android (\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))*/i);\n\n if (!match) {\n return null;\n }\n\n var major = match[1] && parseFloat(match[1]);\n var minor = match[2] && parseFloat(match[2]);\n\n if (major && minor) {\n return parseFloat(match[1] + '.' + match[2]);\n } else if (major) {\n return major;\n }\n\n return null;\n}();\n/**\n * Whether or not this is a native Android browser.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_NATIVE_ANDROID = IS_ANDROID && ANDROID_VERSION < 5 && appleWebkitVersion < 537;\n/**\n * Whether or not this is Mozilla Firefox.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_FIREFOX = /Firefox/i.test(USER_AGENT);\n/**\n * Whether or not this is Microsoft Edge.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_EDGE = /Edg/i.test(USER_AGENT);\n/**\n * Whether or not this is Google Chrome.\n *\n * This will also be `true` for Chrome on iOS, which will have different support\n * as it is actually Safari under the hood.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_CHROME = !IS_EDGE && (/Chrome/i.test(USER_AGENT) || /CriOS/i.test(USER_AGENT));\n/**\n * The detected Google Chrome version - or `null`.\n *\n * @static\n * @const\n * @type {number|null}\n */\n\nvar CHROME_VERSION = function () {\n var match = USER_AGENT.match(/(Chrome|CriOS)\\/(\\d+)/);\n\n if (match && match[2]) {\n return parseFloat(match[2]);\n }\n\n return null;\n}();\n/**\n * The detected Internet Explorer version - or `null`.\n *\n * @static\n * @const\n * @type {number|null}\n */\n\nvar IE_VERSION = function () {\n var result = /MSIE\\s(\\d+)\\.\\d/.exec(USER_AGENT);\n var version = result && parseFloat(result[1]);\n\n if (!version && /Trident\\/7.0/i.test(USER_AGENT) && /rv:11.0/.test(USER_AGENT)) {\n // IE 11 has a different user agent string than other IE versions\n version = 11.0;\n }\n\n return version;\n}();\n/**\n * Whether or not this is desktop Safari.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_SAFARI = /Safari/i.test(USER_AGENT) && !IS_CHROME && !IS_ANDROID && !IS_EDGE;\n/**\n * Whether or not this is a Windows machine.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_WINDOWS = /Windows/i.test(USER_AGENT);\n/**\n * Whether or not this device is touch-enabled.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar TOUCH_ENABLED = Boolean(isReal() && ('ontouchstart' in window$1 || window$1.navigator.maxTouchPoints || window$1.DocumentTouch && window$1.document instanceof window$1.DocumentTouch));\n/**\n * Whether or not this device is an iPad.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_IPAD = /iPad/i.test(USER_AGENT) || IS_SAFARI && TOUCH_ENABLED && !/iPhone/i.test(USER_AGENT);\n/**\n * Whether or not this device is an iPhone.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n// The Facebook app's UIWebView identifies as both an iPhone and iPad, so\n// to identify iPhones, we need to exclude iPads.\n// http://artsy.github.io/blog/2012/10/18/the-perils-of-ios-user-agent-sniffing/\n\nvar IS_IPHONE = /iPhone/i.test(USER_AGENT) && !IS_IPAD;\n/**\n * Whether or not this is an iOS device.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_IOS = IS_IPHONE || IS_IPAD || IS_IPOD;\n/**\n * Whether or not this is any flavor of Safari - including iOS.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_ANY_SAFARI = (IS_SAFARI || IS_IOS) && !IS_CHROME;\n\nvar browser = /*#__PURE__*/Object.freeze({\n __proto__: null,\n IS_IPOD: IS_IPOD,\n IOS_VERSION: IOS_VERSION,\n IS_ANDROID: IS_ANDROID,\n ANDROID_VERSION: ANDROID_VERSION,\n IS_NATIVE_ANDROID: IS_NATIVE_ANDROID,\n IS_FIREFOX: IS_FIREFOX,\n IS_EDGE: IS_EDGE,\n IS_CHROME: IS_CHROME,\n CHROME_VERSION: CHROME_VERSION,\n IE_VERSION: IE_VERSION,\n IS_SAFARI: IS_SAFARI,\n IS_WINDOWS: IS_WINDOWS,\n TOUCH_ENABLED: TOUCH_ENABLED,\n IS_IPAD: IS_IPAD,\n IS_IPHONE: IS_IPHONE,\n IS_IOS: IS_IOS,\n IS_ANY_SAFARI: IS_ANY_SAFARI\n});\n\n/**\n * @file time-ranges.js\n * @module time-ranges\n */\n\n/**\n * Returns the time for the specified index at the start or end\n * of a TimeRange object.\n *\n * @typedef {Function} TimeRangeIndex\n *\n * @param {number} [index=0]\n * The range number to return the time for.\n *\n * @return {number}\n * The time offset at the specified index.\n *\n * @deprecated The index argument must be provided.\n * In the future, leaving it out will throw an error.\n */\n\n/**\n * An object that contains ranges of time.\n *\n * @typedef {Object} TimeRange\n *\n * @property {number} length\n * The number of time ranges represented by this object.\n *\n * @property {module:time-ranges~TimeRangeIndex} start\n * Returns the time offset at which a specified time range begins.\n *\n * @property {module:time-ranges~TimeRangeIndex} end\n * Returns the time offset at which a specified time range ends.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/TimeRanges\n */\n\n/**\n * Check if any of the time ranges are over the maximum index.\n *\n * @private\n * @param {string} fnName\n * The function name to use for logging\n *\n * @param {number} index\n * The index to check\n *\n * @param {number} maxIndex\n * The maximum possible index\n *\n * @throws {Error} if the timeRanges provided are over the maxIndex\n */\nfunction rangeCheck(fnName, index, maxIndex) {\n if (typeof index !== 'number' || index < 0 || index > maxIndex) {\n throw new Error(\"Failed to execute '\" + fnName + \"' on 'TimeRanges': The index provided (\" + index + \") is non-numeric or out of bounds (0-\" + maxIndex + \").\");\n }\n}\n/**\n * Get the time for the specified index at the start or end\n * of a TimeRange object.\n *\n * @private\n * @param {string} fnName\n * The function name to use for logging\n *\n * @param {string} valueIndex\n * The property that should be used to get the time. should be\n * 'start' or 'end'\n *\n * @param {Array} ranges\n * An array of time ranges\n *\n * @param {Array} [rangeIndex=0]\n * The index to start the search at\n *\n * @return {number}\n * The time that offset at the specified index.\n *\n * @deprecated rangeIndex must be set to a value, in the future this will throw an error.\n * @throws {Error} if rangeIndex is more than the length of ranges\n */\n\n\nfunction getRange(fnName, valueIndex, ranges, rangeIndex) {\n rangeCheck(fnName, rangeIndex, ranges.length - 1);\n return ranges[rangeIndex][valueIndex];\n}\n/**\n * Create a time range object given ranges of time.\n *\n * @private\n * @param {Array} [ranges]\n * An array of time ranges.\n */\n\n\nfunction createTimeRangesObj(ranges) {\n if (ranges === undefined || ranges.length === 0) {\n return {\n length: 0,\n start: function start() {\n throw new Error('This TimeRanges object is empty');\n },\n end: function end() {\n throw new Error('This TimeRanges object is empty');\n }\n };\n }\n\n return {\n length: ranges.length,\n start: getRange.bind(null, 'start', 0, ranges),\n end: getRange.bind(null, 'end', 1, ranges)\n };\n}\n/**\n * Create a `TimeRange` object which mimics an\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/TimeRanges|HTML5 TimeRanges instance}.\n *\n * @param {number|Array[]} start\n * The start of a single range (a number) or an array of ranges (an\n * array of arrays of two numbers each).\n *\n * @param {number} end\n * The end of a single range. Cannot be used with the array form of\n * the `start` argument.\n */\n\n\nfunction createTimeRanges(start, end) {\n if (Array.isArray(start)) {\n return createTimeRangesObj(start);\n } else if (start === undefined || end === undefined) {\n return createTimeRangesObj();\n }\n\n return createTimeRangesObj([[start, end]]);\n}\n\n/**\n * @file buffer.js\n * @module buffer\n */\n/**\n * Compute the percentage of the media that has been buffered.\n *\n * @param {TimeRange} buffered\n * The current `TimeRange` object representing buffered time ranges\n *\n * @param {number} duration\n * Total duration of the media\n *\n * @return {number}\n * Percent buffered of the total duration in decimal form.\n */\n\nfunction bufferedPercent(buffered, duration) {\n var bufferedDuration = 0;\n var start;\n var end;\n\n if (!duration) {\n return 0;\n }\n\n if (!buffered || !buffered.length) {\n buffered = createTimeRanges(0, 0);\n }\n\n for (var i = 0; i < buffered.length; i++) {\n start = buffered.start(i);\n end = buffered.end(i); // buffered end can be bigger than duration by a very small fraction\n\n if (end > duration) {\n end = duration;\n }\n\n bufferedDuration += end - start;\n }\n\n return bufferedDuration / duration;\n}\n\n/**\n * @file fullscreen-api.js\n * @module fullscreen-api\n * @private\n */\n/**\n * Store the browser-specific methods for the fullscreen API.\n *\n * @type {Object}\n * @see [Specification]{@link https://fullscreen.spec.whatwg.org}\n * @see [Map Approach From Screenfull.js]{@link https://github.com/sindresorhus/screenfull.js}\n */\n\nvar FullscreenApi = {\n prefixed: true\n}; // browser API methods\n\nvar apiMap = [['requestFullscreen', 'exitFullscreen', 'fullscreenElement', 'fullscreenEnabled', 'fullscreenchange', 'fullscreenerror', 'fullscreen'], // WebKit\n['webkitRequestFullscreen', 'webkitExitFullscreen', 'webkitFullscreenElement', 'webkitFullscreenEnabled', 'webkitfullscreenchange', 'webkitfullscreenerror', '-webkit-full-screen'], // Mozilla\n['mozRequestFullScreen', 'mozCancelFullScreen', 'mozFullScreenElement', 'mozFullScreenEnabled', 'mozfullscreenchange', 'mozfullscreenerror', '-moz-full-screen'], // Microsoft\n['msRequestFullscreen', 'msExitFullscreen', 'msFullscreenElement', 'msFullscreenEnabled', 'MSFullscreenChange', 'MSFullscreenError', '-ms-fullscreen']];\nvar specApi = apiMap[0];\nvar browserApi; // determine the supported set of functions\n\nfor (var i = 0; i < apiMap.length; i++) {\n // check for exitFullscreen function\n if (apiMap[i][1] in document) {\n browserApi = apiMap[i];\n break;\n }\n} // map the browser API names to the spec API names\n\n\nif (browserApi) {\n for (var _i = 0; _i < browserApi.length; _i++) {\n FullscreenApi[specApi[_i]] = browserApi[_i];\n }\n\n FullscreenApi.prefixed = browserApi[0] !== specApi[0];\n}\n\n/**\n * @file media-error.js\n */\n/**\n * A Custom `MediaError` class which mimics the standard HTML5 `MediaError` class.\n *\n * @param {number|string|Object|MediaError} value\n * This can be of multiple types:\n * - number: should be a standard error code\n * - string: an error message (the code will be 0)\n * - Object: arbitrary properties\n * - `MediaError` (native): used to populate a video.js `MediaError` object\n * - `MediaError` (video.js): will return itself if it's already a\n * video.js `MediaError` object.\n *\n * @see [MediaError Spec]{@link https://dev.w3.org/html5/spec-author-view/video.html#mediaerror}\n * @see [Encrypted MediaError Spec]{@link https://www.w3.org/TR/2013/WD-encrypted-media-20130510/#error-codes}\n *\n * @class MediaError\n */\n\nfunction MediaError(value) {\n // Allow redundant calls to this constructor to avoid having `instanceof`\n // checks peppered around the code.\n if (value instanceof MediaError) {\n return value;\n }\n\n if (typeof value === 'number') {\n this.code = value;\n } else if (typeof value === 'string') {\n // default code is zero, so this is a custom error\n this.message = value;\n } else if (isObject(value)) {\n // We assign the `code` property manually because native `MediaError` objects\n // do not expose it as an own/enumerable property of the object.\n if (typeof value.code === 'number') {\n this.code = value.code;\n }\n\n assign(this, value);\n }\n\n if (!this.message) {\n this.message = MediaError.defaultMessages[this.code] || '';\n }\n}\n/**\n * The error code that refers two one of the defined `MediaError` types\n *\n * @type {Number}\n */\n\n\nMediaError.prototype.code = 0;\n/**\n * An optional message that to show with the error. Message is not part of the HTML5\n * video spec but allows for more informative custom errors.\n *\n * @type {String}\n */\n\nMediaError.prototype.message = '';\n/**\n * An optional status code that can be set by plugins to allow even more detail about\n * the error. For example a plugin might provide a specific HTTP status code and an\n * error message for that code. Then when the plugin gets that error this class will\n * know how to display an error message for it. This allows a custom message to show\n * up on the `Player` error overlay.\n *\n * @type {Array}\n */\n\nMediaError.prototype.status = null;\n/**\n * Errors indexed by the W3C standard. The order **CANNOT CHANGE**! See the\n * specification listed under {@link MediaError} for more information.\n *\n * @enum {array}\n * @readonly\n * @property {string} 0 - MEDIA_ERR_CUSTOM\n * @property {string} 1 - MEDIA_ERR_ABORTED\n * @property {string} 2 - MEDIA_ERR_NETWORK\n * @property {string} 3 - MEDIA_ERR_DECODE\n * @property {string} 4 - MEDIA_ERR_SRC_NOT_SUPPORTED\n * @property {string} 5 - MEDIA_ERR_ENCRYPTED\n */\n\nMediaError.errorTypes = ['MEDIA_ERR_CUSTOM', 'MEDIA_ERR_ABORTED', 'MEDIA_ERR_NETWORK', 'MEDIA_ERR_DECODE', 'MEDIA_ERR_SRC_NOT_SUPPORTED', 'MEDIA_ERR_ENCRYPTED'];\n/**\n * The default `MediaError` messages based on the {@link MediaError.errorTypes}.\n *\n * @type {Array}\n * @constant\n */\n\nMediaError.defaultMessages = {\n 1: 'You aborted the media playback',\n 2: 'A network error caused the media download to fail part-way.',\n 3: 'The media playback was aborted due to a corruption problem or because the media used features your browser did not support.',\n 4: 'The media could not be loaded, either because the server or network failed or because the format is not supported.',\n 5: 'The media is encrypted and we do not have the keys to decrypt it.'\n}; // Add types as properties on MediaError\n// e.g. MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED = 4;\n\nfor (var errNum = 0; errNum < MediaError.errorTypes.length; errNum++) {\n MediaError[MediaError.errorTypes[errNum]] = errNum; // values should be accessible on both the class and instance\n\n MediaError.prototype[MediaError.errorTypes[errNum]] = errNum;\n} // jsdocs for instance/static members added above\n\n/**\n * Returns whether an object is `Promise`-like (i.e. has a `then` method).\n *\n * @param {Object} value\n * An object that may or may not be `Promise`-like.\n *\n * @return {boolean}\n * Whether or not the object is `Promise`-like.\n */\nfunction isPromise(value) {\n return value !== undefined && value !== null && typeof value.then === 'function';\n}\n/**\n * Silence a Promise-like object.\n *\n * This is useful for avoiding non-harmful, but potentially confusing \"uncaught\n * play promise\" rejection error messages.\n *\n * @param {Object} value\n * An object that may or may not be `Promise`-like.\n */\n\nfunction silencePromise(value) {\n if (isPromise(value)) {\n value.then(null, function (e) {});\n }\n}\n\n/**\n * @file text-track-list-converter.js Utilities for capturing text track state and\n * re-creating tracks based on a capture.\n *\n * @module text-track-list-converter\n */\n\n/**\n * Examine a single {@link TextTrack} and return a JSON-compatible javascript object that\n * represents the {@link TextTrack}'s state.\n *\n * @param {TextTrack} track\n * The text track to query.\n *\n * @return {Object}\n * A serializable javascript representation of the TextTrack.\n * @private\n */\nvar trackToJson_ = function trackToJson_(track) {\n var ret = ['kind', 'label', 'language', 'id', 'inBandMetadataTrackDispatchType', 'mode', 'src'].reduce(function (acc, prop, i) {\n if (track[prop]) {\n acc[prop] = track[prop];\n }\n\n return acc;\n }, {\n cues: track.cues && Array.prototype.map.call(track.cues, function (cue) {\n return {\n startTime: cue.startTime,\n endTime: cue.endTime,\n text: cue.text,\n id: cue.id\n };\n })\n });\n return ret;\n};\n/**\n * Examine a {@link Tech} and return a JSON-compatible javascript array that represents the\n * state of all {@link TextTrack}s currently configured. The return array is compatible with\n * {@link text-track-list-converter:jsonToTextTracks}.\n *\n * @param {Tech} tech\n * The tech object to query\n *\n * @return {Array}\n * A serializable javascript representation of the {@link Tech}s\n * {@link TextTrackList}.\n */\n\n\nvar textTracksToJson = function textTracksToJson(tech) {\n var trackEls = tech.$$('track');\n var trackObjs = Array.prototype.map.call(trackEls, function (t) {\n return t.track;\n });\n var tracks = Array.prototype.map.call(trackEls, function (trackEl) {\n var json = trackToJson_(trackEl.track);\n\n if (trackEl.src) {\n json.src = trackEl.src;\n }\n\n return json;\n });\n return tracks.concat(Array.prototype.filter.call(tech.textTracks(), function (track) {\n return trackObjs.indexOf(track) === -1;\n }).map(trackToJson_));\n};\n/**\n * Create a set of remote {@link TextTrack}s on a {@link Tech} based on an array of javascript\n * object {@link TextTrack} representations.\n *\n * @param {Array} json\n * An array of `TextTrack` representation objects, like those that would be\n * produced by `textTracksToJson`.\n *\n * @param {Tech} tech\n * The `Tech` to create the `TextTrack`s on.\n */\n\n\nvar jsonToTextTracks = function jsonToTextTracks(json, tech) {\n json.forEach(function (track) {\n var addedTrack = tech.addRemoteTextTrack(track).track;\n\n if (!track.src && track.cues) {\n track.cues.forEach(function (cue) {\n return addedTrack.addCue(cue);\n });\n }\n });\n return tech.textTracks();\n};\n\nvar textTrackConverter = {\n textTracksToJson: textTracksToJson,\n jsonToTextTracks: jsonToTextTracks,\n trackToJson_: trackToJson_\n};\n\nvar MODAL_CLASS_NAME = 'vjs-modal-dialog';\n/**\n * The `ModalDialog` displays over the video and its controls, which blocks\n * interaction with the player until it is closed.\n *\n * Modal dialogs include a \"Close\" button and will close when that button\n * is activated - or when ESC is pressed anywhere.\n *\n * @extends Component\n */\n\nvar ModalDialog = /*#__PURE__*/function (_Component) {\n _inheritsLoose(ModalDialog, _Component);\n\n /**\n * Create an instance of this class.\n *\n * @param {Player} player\n * The `Player` that this class should be attached to.\n *\n * @param {Object} [options]\n * The key/value store of player options.\n *\n * @param {Mixed} [options.content=undefined]\n * Provide customized content for this modal.\n *\n * @param {string} [options.description]\n * A text description for the modal, primarily for accessibility.\n *\n * @param {boolean} [options.fillAlways=false]\n * Normally, modals are automatically filled only the first time\n * they open. This tells the modal to refresh its content\n * every time it opens.\n *\n * @param {string} [options.label]\n * A text label for the modal, primarily for accessibility.\n *\n * @param {boolean} [options.pauseOnOpen=true]\n * If `true`, playback will will be paused if playing when\n * the modal opens, and resumed when it closes.\n *\n * @param {boolean} [options.temporary=true]\n * If `true`, the modal can only be opened once; it will be\n * disposed as soon as it's closed.\n *\n * @param {boolean} [options.uncloseable=false]\n * If `true`, the user will not be able to close the modal\n * through the UI in the normal ways. Programmatic closing is\n * still possible.\n */\n function ModalDialog(player, options) {\n var _this;\n\n _this = _Component.call(this, player, options) || this;\n _this.opened_ = _this.hasBeenOpened_ = _this.hasBeenFilled_ = false;\n\n _this.closeable(!_this.options_.uncloseable);\n\n _this.content(_this.options_.content); // Make sure the contentEl is defined AFTER any children are initialized\n // because we only want the contents of the modal in the contentEl\n // (not the UI elements like the close button).\n\n\n _this.contentEl_ = createEl('div', {\n className: MODAL_CLASS_NAME + \"-content\"\n }, {\n role: 'document'\n });\n _this.descEl_ = createEl('p', {\n className: MODAL_CLASS_NAME + \"-description vjs-control-text\",\n id: _this.el().getAttribute('aria-describedby')\n });\n textContent(_this.descEl_, _this.description());\n\n _this.el_.appendChild(_this.descEl_);\n\n _this.el_.appendChild(_this.contentEl_);\n\n return _this;\n }\n /**\n * Create the `ModalDialog`'s DOM element\n *\n * @return {Element}\n * The DOM element that gets created.\n */\n\n\n var _proto = ModalDialog.prototype;\n\n _proto.createEl = function createEl() {\n return _Component.prototype.createEl.call(this, 'div', {\n className: this.buildCSSClass(),\n tabIndex: -1\n }, {\n 'aria-describedby': this.id() + \"_description\",\n 'aria-hidden': 'true',\n 'aria-label': this.label(),\n 'role': 'dialog'\n });\n };\n\n _proto.dispose = function dispose() {\n this.contentEl_ = null;\n this.descEl_ = null;\n this.previouslyActiveEl_ = null;\n\n _Component.prototype.dispose.call(this);\n }\n /**\n * Builds the default DOM `className`.\n *\n * @return {string}\n * The DOM `className` for this object.\n */\n ;\n\n _proto.buildCSSClass = function buildCSSClass() {\n return MODAL_CLASS_NAME + \" vjs-hidden \" + _Component.prototype.buildCSSClass.call(this);\n }\n /**\n * Returns the label string for this modal. Primarily used for accessibility.\n *\n * @return {string}\n * the localized or raw label of this modal.\n */\n ;\n\n _proto.label = function label() {\n return this.localize(this.options_.label || 'Modal Window');\n }\n /**\n * Returns the description string for this modal. Primarily used for\n * accessibility.\n *\n * @return {string}\n * The localized or raw description of this modal.\n */\n ;\n\n _proto.description = function description() {\n var desc = this.options_.description || this.localize('This is a modal window.'); // Append a universal closeability message if the modal is closeable.\n\n if (this.closeable()) {\n desc += ' ' + this.localize('This modal can be closed by pressing the Escape key or activating the close button.');\n }\n\n return desc;\n }\n /**\n * Opens the modal.\n *\n * @fires ModalDialog#beforemodalopen\n * @fires ModalDialog#modalopen\n */\n ;\n\n _proto.open = function open() {\n if (!this.opened_) {\n var player = this.player();\n /**\n * Fired just before a `ModalDialog` is opened.\n *\n * @event ModalDialog#beforemodalopen\n * @type {EventTarget~Event}\n */\n\n this.trigger('beforemodalopen');\n this.opened_ = true; // Fill content if the modal has never opened before and\n // never been filled.\n\n if (this.options_.fillAlways || !this.hasBeenOpened_ && !this.hasBeenFilled_) {\n this.fill();\n } // If the player was playing, pause it and take note of its previously\n // playing state.\n\n\n this.wasPlaying_ = !player.paused();\n\n if (this.options_.pauseOnOpen && this.wasPlaying_) {\n player.pause();\n }\n\n this.on('keydown', this.handleKeyDown); // Hide controls and note if they were enabled.\n\n this.hadControls_ = player.controls();\n player.controls(false);\n this.show();\n this.conditionalFocus_();\n this.el().setAttribute('aria-hidden', 'false');\n /**\n * Fired just after a `ModalDialog` is opened.\n *\n * @event ModalDialog#modalopen\n * @type {EventTarget~Event}\n */\n\n this.trigger('modalopen');\n this.hasBeenOpened_ = true;\n }\n }\n /**\n * If the `ModalDialog` is currently open or closed.\n *\n * @param {boolean} [value]\n * If given, it will open (`true`) or close (`false`) the modal.\n *\n * @return {boolean}\n * the current open state of the modaldialog\n */\n ;\n\n _proto.opened = function opened(value) {\n if (typeof value === 'boolean') {\n this[value ? 'open' : 'close']();\n }\n\n return this.opened_;\n }\n /**\n * Closes the modal, does nothing if the `ModalDialog` is\n * not open.\n *\n * @fires ModalDialog#beforemodalclose\n * @fires ModalDialog#modalclose\n */\n ;\n\n _proto.close = function close() {\n if (!this.opened_) {\n return;\n }\n\n var player = this.player();\n /**\n * Fired just before a `ModalDialog` is closed.\n *\n * @event ModalDialog#beforemodalclose\n * @type {EventTarget~Event}\n */\n\n this.trigger('beforemodalclose');\n this.opened_ = false;\n\n if (this.wasPlaying_ && this.options_.pauseOnOpen) {\n player.play();\n }\n\n this.off('keydown', this.handleKeyDown);\n\n if (this.hadControls_) {\n player.controls(true);\n }\n\n this.hide();\n this.el().setAttribute('aria-hidden', 'true');\n /**\n * Fired just after a `ModalDialog` is closed.\n *\n * @event ModalDialog#modalclose\n * @type {EventTarget~Event}\n */\n\n this.trigger('modalclose');\n this.conditionalBlur_();\n\n if (this.options_.temporary) {\n this.dispose();\n }\n }\n /**\n * Check to see if the `ModalDialog` is closeable via the UI.\n *\n * @param {boolean} [value]\n * If given as a boolean, it will set the `closeable` option.\n *\n * @return {boolean}\n * Returns the final value of the closable option.\n */\n ;\n\n _proto.closeable = function closeable(value) {\n if (typeof value === 'boolean') {\n var closeable = this.closeable_ = !!value;\n var close = this.getChild('closeButton'); // If this is being made closeable and has no close button, add one.\n\n if (closeable && !close) {\n // The close button should be a child of the modal - not its\n // content element, so temporarily change the content element.\n var temp = this.contentEl_;\n this.contentEl_ = this.el_;\n close = this.addChild('closeButton', {\n controlText: 'Close Modal Dialog'\n });\n this.contentEl_ = temp;\n this.on(close, 'close', this.close);\n } // If this is being made uncloseable and has a close button, remove it.\n\n\n if (!closeable && close) {\n this.off(close, 'close', this.close);\n this.removeChild(close);\n close.dispose();\n }\n }\n\n return this.closeable_;\n }\n /**\n * Fill the modal's content element with the modal's \"content\" option.\n * The content element will be emptied before this change takes place.\n */\n ;\n\n _proto.fill = function fill() {\n this.fillWith(this.content());\n }\n /**\n * Fill the modal's content element with arbitrary content.\n * The content element will be emptied before this change takes place.\n *\n * @fires ModalDialog#beforemodalfill\n * @fires ModalDialog#modalfill\n *\n * @param {Mixed} [content]\n * The same rules apply to this as apply to the `content` option.\n */\n ;\n\n _proto.fillWith = function fillWith(content) {\n var contentEl = this.contentEl();\n var parentEl = contentEl.parentNode;\n var nextSiblingEl = contentEl.nextSibling;\n /**\n * Fired just before a `ModalDialog` is filled with content.\n *\n * @event ModalDialog#beforemodalfill\n * @type {EventTarget~Event}\n */\n\n this.trigger('beforemodalfill');\n this.hasBeenFilled_ = true; // Detach the content element from the DOM before performing\n // manipulation to avoid modifying the live DOM multiple times.\n\n parentEl.removeChild(contentEl);\n this.empty();\n insertContent(contentEl, content);\n /**\n * Fired just after a `ModalDialog` is filled with content.\n *\n * @event ModalDialog#modalfill\n * @type {EventTarget~Event}\n */\n\n this.trigger('modalfill'); // Re-inject the re-filled content element.\n\n if (nextSiblingEl) {\n parentEl.insertBefore(contentEl, nextSiblingEl);\n } else {\n parentEl.appendChild(contentEl);\n } // make sure that the close button is last in the dialog DOM\n\n\n var closeButton = this.getChild('closeButton');\n\n if (closeButton) {\n parentEl.appendChild(closeButton.el_);\n }\n }\n /**\n * Empties the content element. This happens anytime the modal is filled.\n *\n * @fires ModalDialog#beforemodalempty\n * @fires ModalDialog#modalempty\n */\n ;\n\n _proto.empty = function empty() {\n /**\n * Fired just before a `ModalDialog` is emptied.\n *\n * @event ModalDialog#beforemodalempty\n * @type {EventTarget~Event}\n */\n this.trigger('beforemodalempty');\n emptyEl(this.contentEl());\n /**\n * Fired just after a `ModalDialog` is emptied.\n *\n * @event ModalDialog#modalempty\n * @type {EventTarget~Event}\n */\n\n this.trigger('modalempty');\n }\n /**\n * Gets or sets the modal content, which gets normalized before being\n * rendered into the DOM.\n *\n * This does not update the DOM or fill the modal, but it is called during\n * that process.\n *\n * @param {Mixed} [value]\n * If defined, sets the internal content value to be used on the\n * next call(s) to `fill`. This value is normalized before being\n * inserted. To \"clear\" the internal content value, pass `null`.\n *\n * @return {Mixed}\n * The current content of the modal dialog\n */\n ;\n\n _proto.content = function content(value) {\n if (typeof value !== 'undefined') {\n this.content_ = value;\n }\n\n return this.content_;\n }\n /**\n * conditionally focus the modal dialog if focus was previously on the player.\n *\n * @private\n */\n ;\n\n _proto.conditionalFocus_ = function conditionalFocus_() {\n var activeEl = document.activeElement;\n var playerEl = this.player_.el_;\n this.previouslyActiveEl_ = null;\n\n if (playerEl.contains(activeEl) || playerEl === activeEl) {\n this.previouslyActiveEl_ = activeEl;\n this.focus();\n }\n }\n /**\n * conditionally blur the element and refocus the last focused element\n *\n * @private\n */\n ;\n\n _proto.conditionalBlur_ = function conditionalBlur_() {\n if (this.previouslyActiveEl_) {\n this.previouslyActiveEl_.focus();\n this.previouslyActiveEl_ = null;\n }\n }\n /**\n * Keydown handler. Attached when modal is focused.\n *\n * @listens keydown\n */\n ;\n\n _proto.handleKeyDown = function handleKeyDown(event) {\n // Do not allow keydowns to reach out of the modal dialog.\n event.stopPropagation();\n\n if (keycode.isEventKey(event, 'Escape') && this.closeable()) {\n event.preventDefault();\n this.close();\n return;\n } // exit early if it isn't a tab key\n\n\n if (!keycode.isEventKey(event, 'Tab')) {\n return;\n }\n\n var focusableEls = this.focusableEls_();\n var activeEl = this.el_.querySelector(':focus');\n var focusIndex;\n\n for (var i = 0; i < focusableEls.length; i++) {\n if (activeEl === focusableEls[i]) {\n focusIndex = i;\n break;\n }\n }\n\n if (document.activeElement === this.el_) {\n focusIndex = 0;\n }\n\n if (event.shiftKey && focusIndex === 0) {\n focusableEls[focusableEls.length - 1].focus();\n event.preventDefault();\n } else if (!event.shiftKey && focusIndex === focusableEls.length - 1) {\n focusableEls[0].focus();\n event.preventDefault();\n }\n }\n /**\n * get all focusable elements\n *\n * @private\n */\n ;\n\n _proto.focusableEls_ = function focusableEls_() {\n var allChildren = this.el_.querySelectorAll('*');\n return Array.prototype.filter.call(allChildren, function (child) {\n return (child instanceof window$1.HTMLAnchorElement || child instanceof window$1.HTMLAreaElement) && child.hasAttribute('href') || (child instanceof window$1.HTMLInputElement || child instanceof window$1.HTMLSelectElement || child instanceof window$1.HTMLTextAreaElement || child instanceof window$1.HTMLButtonElement) && !child.hasAttribute('disabled') || child instanceof window$1.HTMLIFrameElement || child instanceof window$1.HTMLObjectElement || child instanceof window$1.HTMLEmbedElement || child.hasAttribute('tabindex') && child.getAttribute('tabindex') !== -1 || child.hasAttribute('contenteditable');\n });\n };\n\n return ModalDialog;\n}(Component);\n/**\n * Default options for `ModalDialog` default options.\n *\n * @type {Object}\n * @private\n */\n\n\nModalDialog.prototype.options_ = {\n pauseOnOpen: true,\n temporary: true\n};\nComponent.registerComponent('ModalDialog', ModalDialog);\n\n/**\n * Common functionaliy between {@link TextTrackList}, {@link AudioTrackList}, and\n * {@link VideoTrackList}\n *\n * @extends EventTarget\n */\n\nvar TrackList = /*#__PURE__*/function (_EventTarget) {\n _inheritsLoose(TrackList, _EventTarget);\n\n /**\n * Create an instance of this class\n *\n * @param {Track[]} tracks\n * A list of tracks to initialize the list with.\n *\n * @abstract\n */\n function TrackList(tracks) {\n var _this;\n\n if (tracks === void 0) {\n tracks = [];\n }\n\n _this = _EventTarget.call(this) || this;\n _this.tracks_ = [];\n /**\n * @memberof TrackList\n * @member {number} length\n * The current number of `Track`s in the this Trackist.\n * @instance\n */\n\n Object.defineProperty(_assertThisInitialized(_this), 'length', {\n get: function get() {\n return this.tracks_.length;\n }\n });\n\n for (var i = 0; i < tracks.length; i++) {\n _this.addTrack(tracks[i]);\n }\n\n return _this;\n }\n /**\n * Add a {@link Track} to the `TrackList`\n *\n * @param {Track} track\n * The audio, video, or text track to add to the list.\n *\n * @fires TrackList#addtrack\n */\n\n\n var _proto = TrackList.prototype;\n\n _proto.addTrack = function addTrack(track) {\n var _this2 = this;\n\n var index = this.tracks_.length;\n\n if (!('' + index in this)) {\n Object.defineProperty(this, index, {\n get: function get() {\n return this.tracks_[index];\n }\n });\n } // Do not add duplicate tracks\n\n\n if (this.tracks_.indexOf(track) === -1) {\n this.tracks_.push(track);\n /**\n * Triggered when a track is added to a track list.\n *\n * @event TrackList#addtrack\n * @type {EventTarget~Event}\n * @property {Track} track\n * A reference to track that was added.\n */\n\n this.trigger({\n track: track,\n type: 'addtrack',\n target: this\n });\n }\n /**\n * Triggered when a track label is changed.\n *\n * @event TrackList#addtrack\n * @type {EventTarget~Event}\n * @property {Track} track\n * A reference to track that was added.\n */\n\n\n track.labelchange_ = function () {\n _this2.trigger({\n track: track,\n type: 'labelchange',\n target: _this2\n });\n };\n\n if (isEvented(track)) {\n track.addEventListener('labelchange', track.labelchange_);\n }\n }\n /**\n * Remove a {@link Track} from the `TrackList`\n *\n * @param {Track} rtrack\n * The audio, video, or text track to remove from the list.\n *\n * @fires TrackList#removetrack\n */\n ;\n\n _proto.removeTrack = function removeTrack(rtrack) {\n var track;\n\n for (var i = 0, l = this.length; i < l; i++) {\n if (this[i] === rtrack) {\n track = this[i];\n\n if (track.off) {\n track.off();\n }\n\n this.tracks_.splice(i, 1);\n break;\n }\n }\n\n if (!track) {\n return;\n }\n /**\n * Triggered when a track is removed from track list.\n *\n * @event TrackList#removetrack\n * @type {EventTarget~Event}\n * @property {Track} track\n * A reference to track that was removed.\n */\n\n\n this.trigger({\n track: track,\n type: 'removetrack',\n target: this\n });\n }\n /**\n * Get a Track from the TrackList by a tracks id\n *\n * @param {string} id - the id of the track to get\n * @method getTrackById\n * @return {Track}\n * @private\n */\n ;\n\n _proto.getTrackById = function getTrackById(id) {\n var result = null;\n\n for (var i = 0, l = this.length; i < l; i++) {\n var track = this[i];\n\n if (track.id === id) {\n result = track;\n break;\n }\n }\n\n return result;\n };\n\n return TrackList;\n}(EventTarget);\n/**\n * Triggered when a different track is selected/enabled.\n *\n * @event TrackList#change\n * @type {EventTarget~Event}\n */\n\n/**\n * Events that can be called with on + eventName. See {@link EventHandler}.\n *\n * @property {Object} TrackList#allowedEvents_\n * @private\n */\n\n\nTrackList.prototype.allowedEvents_ = {\n change: 'change',\n addtrack: 'addtrack',\n removetrack: 'removetrack',\n labelchange: 'labelchange'\n}; // emulate attribute EventHandler support to allow for feature detection\n\nfor (var event in TrackList.prototype.allowedEvents_) {\n TrackList.prototype['on' + event] = null;\n}\n\n/**\n * Anywhere we call this function we diverge from the spec\n * as we only support one enabled audiotrack at a time\n *\n * @param {AudioTrackList} list\n * list to work on\n *\n * @param {AudioTrack} track\n * The track to skip\n *\n * @private\n */\n\nvar disableOthers = function disableOthers(list, track) {\n for (var i = 0; i < list.length; i++) {\n if (!Object.keys(list[i]).length || track.id === list[i].id) {\n continue;\n } // another audio track is enabled, disable it\n\n\n list[i].enabled = false;\n }\n};\n/**\n * The current list of {@link AudioTrack} for a media file.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#audiotracklist}\n * @extends TrackList\n */\n\n\nvar AudioTrackList = /*#__PURE__*/function (_TrackList) {\n _inheritsLoose(AudioTrackList, _TrackList);\n\n /**\n * Create an instance of this class.\n *\n * @param {AudioTrack[]} [tracks=[]]\n * A list of `AudioTrack` to instantiate the list with.\n */\n function AudioTrackList(tracks) {\n var _this;\n\n if (tracks === void 0) {\n tracks = [];\n }\n\n // make sure only 1 track is enabled\n // sorted from last index to first index\n for (var i = tracks.length - 1; i >= 0; i--) {\n if (tracks[i].enabled) {\n disableOthers(tracks, tracks[i]);\n break;\n }\n }\n\n _this = _TrackList.call(this, tracks) || this;\n _this.changing_ = false;\n return _this;\n }\n /**\n * Add an {@link AudioTrack} to the `AudioTrackList`.\n *\n * @param {AudioTrack} track\n * The AudioTrack to add to the list\n *\n * @fires TrackList#addtrack\n */\n\n\n var _proto = AudioTrackList.prototype;\n\n _proto.addTrack = function addTrack(track) {\n var _this2 = this;\n\n if (track.enabled) {\n disableOthers(this, track);\n }\n\n _TrackList.prototype.addTrack.call(this, track); // native tracks don't have this\n\n\n if (!track.addEventListener) {\n return;\n }\n\n track.enabledChange_ = function () {\n // when we are disabling other tracks (since we don't support\n // more than one track at a time) we will set changing_\n // to true so that we don't trigger additional change events\n if (_this2.changing_) {\n return;\n }\n\n _this2.changing_ = true;\n disableOthers(_this2, track);\n _this2.changing_ = false;\n\n _this2.trigger('change');\n };\n /**\n * @listens AudioTrack#enabledchange\n * @fires TrackList#change\n */\n\n\n track.addEventListener('enabledchange', track.enabledChange_);\n };\n\n _proto.removeTrack = function removeTrack(rtrack) {\n _TrackList.prototype.removeTrack.call(this, rtrack);\n\n if (rtrack.removeEventListener && rtrack.enabledChange_) {\n rtrack.removeEventListener('enabledchange', rtrack.enabledChange_);\n rtrack.enabledChange_ = null;\n }\n };\n\n return AudioTrackList;\n}(TrackList);\n\n/**\n * Un-select all other {@link VideoTrack}s that are selected.\n *\n * @param {VideoTrackList} list\n * list to work on\n *\n * @param {VideoTrack} track\n * The track to skip\n *\n * @private\n */\n\nvar disableOthers$1 = function disableOthers(list, track) {\n for (var i = 0; i < list.length; i++) {\n if (!Object.keys(list[i]).length || track.id === list[i].id) {\n continue;\n } // another video track is enabled, disable it\n\n\n list[i].selected = false;\n }\n};\n/**\n * The current list of {@link VideoTrack} for a video.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#videotracklist}\n * @extends TrackList\n */\n\n\nvar VideoTrackList = /*#__PURE__*/function (_TrackList) {\n _inheritsLoose(VideoTrackList, _TrackList);\n\n /**\n * Create an instance of this class.\n *\n * @param {VideoTrack[]} [tracks=[]]\n * A list of `VideoTrack` to instantiate the list with.\n */\n function VideoTrackList(tracks) {\n var _this;\n\n if (tracks === void 0) {\n tracks = [];\n }\n\n // make sure only 1 track is enabled\n // sorted from last index to first index\n for (var i = tracks.length - 1; i >= 0; i--) {\n if (tracks[i].selected) {\n disableOthers$1(tracks, tracks[i]);\n break;\n }\n }\n\n _this = _TrackList.call(this, tracks) || this;\n _this.changing_ = false;\n /**\n * @member {number} VideoTrackList#selectedIndex\n * The current index of the selected {@link VideoTrack`}.\n */\n\n Object.defineProperty(_assertThisInitialized(_this), 'selectedIndex', {\n get: function get() {\n for (var _i = 0; _i < this.length; _i++) {\n if (this[_i].selected) {\n return _i;\n }\n }\n\n return -1;\n },\n set: function set() {}\n });\n return _this;\n }\n /**\n * Add a {@link VideoTrack} to the `VideoTrackList`.\n *\n * @param {VideoTrack} track\n * The VideoTrack to add to the list\n *\n * @fires TrackList#addtrack\n */\n\n\n var _proto = VideoTrackList.prototype;\n\n _proto.addTrack = function addTrack(track) {\n var _this2 = this;\n\n if (track.selected) {\n disableOthers$1(this, track);\n }\n\n _TrackList.prototype.addTrack.call(this, track); // native tracks don't have this\n\n\n if (!track.addEventListener) {\n return;\n }\n\n track.selectedChange_ = function () {\n if (_this2.changing_) {\n return;\n }\n\n _this2.changing_ = true;\n disableOthers$1(_this2, track);\n _this2.changing_ = false;\n\n _this2.trigger('change');\n };\n /**\n * @listens VideoTrack#selectedchange\n * @fires TrackList#change\n */\n\n\n track.addEventListener('selectedchange', track.selectedChange_);\n };\n\n _proto.removeTrack = function removeTrack(rtrack) {\n _TrackList.prototype.removeTrack.call(this, rtrack);\n\n if (rtrack.removeEventListener && rtrack.selectedChange_) {\n rtrack.removeEventListener('selectedchange', rtrack.selectedChange_);\n rtrack.selectedChange_ = null;\n }\n };\n\n return VideoTrackList;\n}(TrackList);\n\n/**\n * The current list of {@link TextTrack} for a media file.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#texttracklist}\n * @extends TrackList\n */\n\nvar TextTrackList = /*#__PURE__*/function (_TrackList) {\n _inheritsLoose(TextTrackList, _TrackList);\n\n function TextTrackList() {\n return _TrackList.apply(this, arguments) || this;\n }\n\n var _proto = TextTrackList.prototype;\n\n /**\n * Add a {@link TextTrack} to the `TextTrackList`\n *\n * @param {TextTrack} track\n * The text track to add to the list.\n *\n * @fires TrackList#addtrack\n */\n _proto.addTrack = function addTrack(track) {\n var _this = this;\n\n _TrackList.prototype.addTrack.call(this, track);\n\n if (!this.queueChange_) {\n this.queueChange_ = function () {\n return _this.queueTrigger('change');\n };\n }\n\n if (!this.triggerSelectedlanguagechange) {\n this.triggerSelectedlanguagechange_ = function () {\n return _this.trigger('selectedlanguagechange');\n };\n }\n /**\n * @listens TextTrack#modechange\n * @fires TrackList#change\n */\n\n\n track.addEventListener('modechange', this.queueChange_);\n var nonLanguageTextTrackKind = ['metadata', 'chapters'];\n\n if (nonLanguageTextTrackKind.indexOf(track.kind) === -1) {\n track.addEventListener('modechange', this.triggerSelectedlanguagechange_);\n }\n };\n\n _proto.removeTrack = function removeTrack(rtrack) {\n _TrackList.prototype.removeTrack.call(this, rtrack); // manually remove the event handlers we added\n\n\n if (rtrack.removeEventListener) {\n if (this.queueChange_) {\n rtrack.removeEventListener('modechange', this.queueChange_);\n }\n\n if (this.selectedlanguagechange_) {\n rtrack.removeEventListener('modechange', this.triggerSelectedlanguagechange_);\n }\n }\n };\n\n return TextTrackList;\n}(TrackList);\n\n/**\n * @file html-track-element-list.js\n */\n\n/**\n * The current list of {@link HtmlTrackElement}s.\n */\nvar HtmlTrackElementList = /*#__PURE__*/function () {\n /**\n * Create an instance of this class.\n *\n * @param {HtmlTrackElement[]} [tracks=[]]\n * A list of `HtmlTrackElement` to instantiate the list with.\n */\n function HtmlTrackElementList(trackElements) {\n if (trackElements === void 0) {\n trackElements = [];\n }\n\n this.trackElements_ = [];\n /**\n * @memberof HtmlTrackElementList\n * @member {number} length\n * The current number of `Track`s in the this Trackist.\n * @instance\n */\n\n Object.defineProperty(this, 'length', {\n get: function get() {\n return this.trackElements_.length;\n }\n });\n\n for (var i = 0, length = trackElements.length; i < length; i++) {\n this.addTrackElement_(trackElements[i]);\n }\n }\n /**\n * Add an {@link HtmlTrackElement} to the `HtmlTrackElementList`\n *\n * @param {HtmlTrackElement} trackElement\n * The track element to add to the list.\n *\n * @private\n */\n\n\n var _proto = HtmlTrackElementList.prototype;\n\n _proto.addTrackElement_ = function addTrackElement_(trackElement) {\n var index = this.trackElements_.length;\n\n if (!('' + index in this)) {\n Object.defineProperty(this, index, {\n get: function get() {\n return this.trackElements_[index];\n }\n });\n } // Do not add duplicate elements\n\n\n if (this.trackElements_.indexOf(trackElement) === -1) {\n this.trackElements_.push(trackElement);\n }\n }\n /**\n * Get an {@link HtmlTrackElement} from the `HtmlTrackElementList` given an\n * {@link TextTrack}.\n *\n * @param {TextTrack} track\n * The track associated with a track element.\n *\n * @return {HtmlTrackElement|undefined}\n * The track element that was found or undefined.\n *\n * @private\n */\n ;\n\n _proto.getTrackElementByTrack_ = function getTrackElementByTrack_(track) {\n var trackElement_;\n\n for (var i = 0, length = this.trackElements_.length; i < length; i++) {\n if (track === this.trackElements_[i].track) {\n trackElement_ = this.trackElements_[i];\n break;\n }\n }\n\n return trackElement_;\n }\n /**\n * Remove a {@link HtmlTrackElement} from the `HtmlTrackElementList`\n *\n * @param {HtmlTrackElement} trackElement\n * The track element to remove from the list.\n *\n * @private\n */\n ;\n\n _proto.removeTrackElement_ = function removeTrackElement_(trackElement) {\n for (var i = 0, length = this.trackElements_.length; i < length; i++) {\n if (trackElement === this.trackElements_[i]) {\n if (this.trackElements_[i].track && typeof this.trackElements_[i].track.off === 'function') {\n this.trackElements_[i].track.off();\n }\n\n if (typeof this.trackElements_[i].off === 'function') {\n this.trackElements_[i].off();\n }\n\n this.trackElements_.splice(i, 1);\n break;\n }\n }\n };\n\n return HtmlTrackElementList;\n}();\n\n/**\n * @file text-track-cue-list.js\n */\n\n/**\n * @typedef {Object} TextTrackCueList~TextTrackCue\n *\n * @property {string} id\n * The unique id for this text track cue\n *\n * @property {number} startTime\n * The start time for this text track cue\n *\n * @property {number} endTime\n * The end time for this text track cue\n *\n * @property {boolean} pauseOnExit\n * Pause when the end time is reached if true.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcue}\n */\n\n/**\n * A List of TextTrackCues.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcuelist}\n */\nvar TextTrackCueList = /*#__PURE__*/function () {\n /**\n * Create an instance of this class..\n *\n * @param {Array} cues\n * A list of cues to be initialized with\n */\n function TextTrackCueList(cues) {\n TextTrackCueList.prototype.setCues_.call(this, cues);\n /**\n * @memberof TextTrackCueList\n * @member {number} length\n * The current number of `TextTrackCue`s in the TextTrackCueList.\n * @instance\n */\n\n Object.defineProperty(this, 'length', {\n get: function get() {\n return this.length_;\n }\n });\n }\n /**\n * A setter for cues in this list. Creates getters\n * an an index for the cues.\n *\n * @param {Array} cues\n * An array of cues to set\n *\n * @private\n */\n\n\n var _proto = TextTrackCueList.prototype;\n\n _proto.setCues_ = function setCues_(cues) {\n var oldLength = this.length || 0;\n var i = 0;\n var l = cues.length;\n this.cues_ = cues;\n this.length_ = cues.length;\n\n var defineProp = function defineProp(index) {\n if (!('' + index in this)) {\n Object.defineProperty(this, '' + index, {\n get: function get() {\n return this.cues_[index];\n }\n });\n }\n };\n\n if (oldLength < l) {\n i = oldLength;\n\n for (; i < l; i++) {\n defineProp.call(this, i);\n }\n }\n }\n /**\n * Get a `TextTrackCue` that is currently in the `TextTrackCueList` by id.\n *\n * @param {string} id\n * The id of the cue that should be searched for.\n *\n * @return {TextTrackCueList~TextTrackCue|null}\n * A single cue or null if none was found.\n */\n ;\n\n _proto.getCueById = function getCueById(id) {\n var result = null;\n\n for (var i = 0, l = this.length; i < l; i++) {\n var cue = this[i];\n\n if (cue.id === id) {\n result = cue;\n break;\n }\n }\n\n return result;\n };\n\n return TextTrackCueList;\n}();\n\n/**\n * @file track-kinds.js\n */\n\n/**\n * All possible `VideoTrackKind`s\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-videotrack-kind\n * @typedef VideoTrack~Kind\n * @enum\n */\nvar VideoTrackKind = {\n alternative: 'alternative',\n captions: 'captions',\n main: 'main',\n sign: 'sign',\n subtitles: 'subtitles',\n commentary: 'commentary'\n};\n/**\n * All possible `AudioTrackKind`s\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-audiotrack-kind\n * @typedef AudioTrack~Kind\n * @enum\n */\n\nvar AudioTrackKind = {\n 'alternative': 'alternative',\n 'descriptions': 'descriptions',\n 'main': 'main',\n 'main-desc': 'main-desc',\n 'translation': 'translation',\n 'commentary': 'commentary'\n};\n/**\n * All possible `TextTrackKind`s\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-texttrack-kind\n * @typedef TextTrack~Kind\n * @enum\n */\n\nvar TextTrackKind = {\n subtitles: 'subtitles',\n captions: 'captions',\n descriptions: 'descriptions',\n chapters: 'chapters',\n metadata: 'metadata'\n};\n/**\n * All possible `TextTrackMode`s\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackmode\n * @typedef TextTrack~Mode\n * @enum\n */\n\nvar TextTrackMode = {\n disabled: 'disabled',\n hidden: 'hidden',\n showing: 'showing'\n};\n\n/**\n * A Track class that contains all of the common functionality for {@link AudioTrack},\n * {@link VideoTrack}, and {@link TextTrack}.\n *\n * > Note: This class should not be used directly\n *\n * @see {@link https://html.spec.whatwg.org/multipage/embedded-content.html}\n * @extends EventTarget\n * @abstract\n */\n\nvar Track = /*#__PURE__*/function (_EventTarget) {\n _inheritsLoose(Track, _EventTarget);\n\n /**\n * Create an instance of this class.\n *\n * @param {Object} [options={}]\n * Object of option names and values\n *\n * @param {string} [options.kind='']\n * A valid kind for the track type you are creating.\n *\n * @param {string} [options.id='vjs_track_' + Guid.newGUID()]\n * A unique id for this AudioTrack.\n *\n * @param {string} [options.label='']\n * The menu label for this track.\n *\n * @param {string} [options.language='']\n * A valid two character language code.\n *\n * @abstract\n */\n function Track(options) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n _this = _EventTarget.call(this) || this;\n var trackProps = {\n id: options.id || 'vjs_track_' + newGUID(),\n kind: options.kind || '',\n language: options.language || ''\n };\n var label = options.label || '';\n /**\n * @memberof Track\n * @member {string} id\n * The id of this track. Cannot be changed after creation.\n * @instance\n *\n * @readonly\n */\n\n /**\n * @memberof Track\n * @member {string} kind\n * The kind of track that this is. Cannot be changed after creation.\n * @instance\n *\n * @readonly\n */\n\n /**\n * @memberof Track\n * @member {string} language\n * The two letter language code for this track. Cannot be changed after\n * creation.\n * @instance\n *\n * @readonly\n */\n\n var _loop = function _loop(key) {\n Object.defineProperty(_assertThisInitialized(_this), key, {\n get: function get() {\n return trackProps[key];\n },\n set: function set() {}\n });\n };\n\n for (var key in trackProps) {\n _loop(key);\n }\n /**\n * @memberof Track\n * @member {string} label\n * The label of this track. Cannot be changed after creation.\n * @instance\n *\n * @fires Track#labelchange\n */\n\n\n Object.defineProperty(_assertThisInitialized(_this), 'label', {\n get: function get() {\n return label;\n },\n set: function set(newLabel) {\n if (newLabel !== label) {\n label = newLabel;\n /**\n * An event that fires when label changes on this track.\n *\n * > Note: This is not part of the spec!\n *\n * @event Track#labelchange\n * @type {EventTarget~Event}\n */\n\n this.trigger('labelchange');\n }\n }\n });\n return _this;\n }\n\n return Track;\n}(EventTarget);\n\n/**\n * @file url.js\n * @module url\n */\n/**\n * @typedef {Object} url:URLObject\n *\n * @property {string} protocol\n * The protocol of the url that was parsed.\n *\n * @property {string} hostname\n * The hostname of the url that was parsed.\n *\n * @property {string} port\n * The port of the url that was parsed.\n *\n * @property {string} pathname\n * The pathname of the url that was parsed.\n *\n * @property {string} search\n * The search query of the url that was parsed.\n *\n * @property {string} hash\n * The hash of the url that was parsed.\n *\n * @property {string} host\n * The host of the url that was parsed.\n */\n\n/**\n * Resolve and parse the elements of a URL.\n *\n * @function\n * @param {String} url\n * The url to parse\n *\n * @return {url:URLObject}\n * An object of url details\n */\n\nvar parseUrl = function parseUrl(url) {\n var props = ['protocol', 'hostname', 'port', 'pathname', 'search', 'hash', 'host']; // add the url to an anchor and let the browser parse the URL\n\n var a = document.createElement('a');\n a.href = url; // IE8 (and 9?) Fix\n // ie8 doesn't parse the URL correctly until the anchor is actually\n // added to the body, and an innerHTML is needed to trigger the parsing\n\n var addToBody = a.host === '' && a.protocol !== 'file:';\n var div;\n\n if (addToBody) {\n div = document.createElement('div');\n div.innerHTML = \"\";\n a = div.firstChild; // prevent the div from affecting layout\n\n div.setAttribute('style', 'display:none; position:absolute;');\n document.body.appendChild(div);\n } // Copy the specific URL properties to a new object\n // This is also needed for IE8 because the anchor loses its\n // properties when it's removed from the dom\n\n\n var details = {};\n\n for (var i = 0; i < props.length; i++) {\n details[props[i]] = a[props[i]];\n } // IE9 adds the port to the host property unlike everyone else. If\n // a port identifier is added for standard ports, strip it.\n\n\n if (details.protocol === 'http:') {\n details.host = details.host.replace(/:80$/, '');\n }\n\n if (details.protocol === 'https:') {\n details.host = details.host.replace(/:443$/, '');\n }\n\n if (!details.protocol) {\n details.protocol = window$1.location.protocol;\n }\n\n if (addToBody) {\n document.body.removeChild(div);\n }\n\n return details;\n};\n/**\n * Get absolute version of relative URL. Used to tell Flash the correct URL.\n *\n * @function\n * @param {string} url\n * URL to make absolute\n *\n * @return {string}\n * Absolute URL\n *\n * @see http://stackoverflow.com/questions/470832/getting-an-absolute-url-from-a-relative-one-ie6-issue\n */\n\nvar getAbsoluteURL = function getAbsoluteURL(url) {\n // Check if absolute URL\n if (!url.match(/^https?:\\/\\//)) {\n // Convert to absolute URL. Flash hosted off-site needs an absolute URL.\n var div = document.createElement('div');\n div.innerHTML = \"x\";\n url = div.firstChild.href;\n }\n\n return url;\n};\n/**\n * Returns the extension of the passed file name. It will return an empty string\n * if passed an invalid path.\n *\n * @function\n * @param {string} path\n * The fileName path like '/path/to/file.mp4'\n *\n * @return {string}\n * The extension in lower case or an empty string if no\n * extension could be found.\n */\n\nvar getFileExtension = function getFileExtension(path) {\n if (typeof path === 'string') {\n var splitPathRe = /^(\\/?)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?)(\\.([^\\.\\/\\?]+)))(?:[\\/]*|[\\?].*)$/;\n var pathParts = splitPathRe.exec(path);\n\n if (pathParts) {\n return pathParts.pop().toLowerCase();\n }\n }\n\n return '';\n};\n/**\n * Returns whether the url passed is a cross domain request or not.\n *\n * @function\n * @param {string} url\n * The url to check.\n *\n * @param {Object} [winLoc]\n * the domain to check the url against, defaults to window.location\n *\n * @param {string} [winLoc.protocol]\n * The window location protocol defaults to window.location.protocol\n *\n * @param {string} [winLoc.host]\n * The window location host defaults to window.location.host\n *\n * @return {boolean}\n * Whether it is a cross domain request or not.\n */\n\nvar isCrossOrigin = function isCrossOrigin(url, winLoc) {\n if (winLoc === void 0) {\n winLoc = window$1.location;\n }\n\n var urlInfo = parseUrl(url); // IE8 protocol relative urls will return ':' for protocol\n\n var srcProtocol = urlInfo.protocol === ':' ? winLoc.protocol : urlInfo.protocol; // Check if url is for another domain/origin\n // IE8 doesn't know location.origin, so we won't rely on it here\n\n var crossOrigin = srcProtocol + urlInfo.host !== winLoc.protocol + winLoc.host;\n return crossOrigin;\n};\n\nvar Url = /*#__PURE__*/Object.freeze({\n __proto__: null,\n parseUrl: parseUrl,\n getAbsoluteURL: getAbsoluteURL,\n getFileExtension: getFileExtension,\n isCrossOrigin: isCrossOrigin\n});\n\n/**\n * Takes a webvtt file contents and parses it into cues\n *\n * @param {string} srcContent\n * webVTT file contents\n *\n * @param {TextTrack} track\n * TextTrack to add cues to. Cues come from the srcContent.\n *\n * @private\n */\n\nvar parseCues = function parseCues(srcContent, track) {\n var parser = new window$1.WebVTT.Parser(window$1, window$1.vttjs, window$1.WebVTT.StringDecoder());\n var errors = [];\n\n parser.oncue = function (cue) {\n track.addCue(cue);\n };\n\n parser.onparsingerror = function (error) {\n errors.push(error);\n };\n\n parser.onflush = function () {\n track.trigger({\n type: 'loadeddata',\n target: track\n });\n };\n\n parser.parse(srcContent);\n\n if (errors.length > 0) {\n if (window$1.console && window$1.console.groupCollapsed) {\n window$1.console.groupCollapsed(\"Text Track parsing errors for \" + track.src);\n }\n\n errors.forEach(function (error) {\n return log.error(error);\n });\n\n if (window$1.console && window$1.console.groupEnd) {\n window$1.console.groupEnd();\n }\n }\n\n parser.flush();\n};\n/**\n * Load a `TextTrack` from a specified url.\n *\n * @param {string} src\n * Url to load track from.\n *\n * @param {TextTrack} track\n * Track to add cues to. Comes from the content at the end of `url`.\n *\n * @private\n */\n\n\nvar loadTrack = function loadTrack(src, track) {\n var opts = {\n uri: src\n };\n var crossOrigin = isCrossOrigin(src);\n\n if (crossOrigin) {\n opts.cors = crossOrigin;\n }\n\n var withCredentials = track.tech_.crossOrigin() === 'use-credentials';\n\n if (withCredentials) {\n opts.withCredentials = withCredentials;\n }\n\n XHR(opts, bind(this, function (err, response, responseBody) {\n if (err) {\n return log.error(err, response);\n }\n\n track.loaded_ = true; // Make sure that vttjs has loaded, otherwise, wait till it finished loading\n // NOTE: this is only used for the alt/video.novtt.js build\n\n if (typeof window$1.WebVTT !== 'function') {\n if (track.tech_) {\n // to prevent use before define eslint error, we define loadHandler\n // as a let here\n track.tech_.any(['vttjsloaded', 'vttjserror'], function (event) {\n if (event.type === 'vttjserror') {\n log.error(\"vttjs failed to load, stopping trying to process \" + track.src);\n return;\n }\n\n return parseCues(responseBody, track);\n });\n }\n } else {\n parseCues(responseBody, track);\n }\n }));\n};\n/**\n * A representation of a single `TextTrack`.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#texttrack}\n * @extends Track\n */\n\n\nvar TextTrack = /*#__PURE__*/function (_Track) {\n _inheritsLoose(TextTrack, _Track);\n\n /**\n * Create an instance of this class.\n *\n * @param {Object} options={}\n * Object of option names and values\n *\n * @param {Tech} options.tech\n * A reference to the tech that owns this TextTrack.\n *\n * @param {TextTrack~Kind} [options.kind='subtitles']\n * A valid text track kind.\n *\n * @param {TextTrack~Mode} [options.mode='disabled']\n * A valid text track mode.\n *\n * @param {string} [options.id='vjs_track_' + Guid.newGUID()]\n * A unique id for this TextTrack.\n *\n * @param {string} [options.label='']\n * The menu label for this track.\n *\n * @param {string} [options.language='']\n * A valid two character language code.\n *\n * @param {string} [options.srclang='']\n * A valid two character language code. An alternative, but deprioritized\n * version of `options.language`\n *\n * @param {string} [options.src]\n * A url to TextTrack cues.\n *\n * @param {boolean} [options.default]\n * If this track should default to on or off.\n */\n function TextTrack(options) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n if (!options.tech) {\n throw new Error('A tech was not provided.');\n }\n\n var settings = mergeOptions(options, {\n kind: TextTrackKind[options.kind] || 'subtitles',\n language: options.language || options.srclang || ''\n });\n var mode = TextTrackMode[settings.mode] || 'disabled';\n var default_ = settings[\"default\"];\n\n if (settings.kind === 'metadata' || settings.kind === 'chapters') {\n mode = 'hidden';\n }\n\n _this = _Track.call(this, settings) || this;\n _this.tech_ = settings.tech;\n _this.cues_ = [];\n _this.activeCues_ = [];\n _this.preload_ = _this.tech_.preloadTextTracks !== false;\n var cues = new TextTrackCueList(_this.cues_);\n var activeCues = new TextTrackCueList(_this.activeCues_);\n var changed = false;\n var timeupdateHandler = bind(_assertThisInitialized(_this), function () {\n if (!this.tech_.isReady_ || this.tech_.isDisposed()) {\n return;\n } // Accessing this.activeCues for the side-effects of updating itself\n // due to its nature as a getter function. Do not remove or cues will\n // stop updating!\n // Use the setter to prevent deletion from uglify (pure_getters rule)\n\n\n this.activeCues = this.activeCues;\n\n if (changed) {\n this.trigger('cuechange');\n changed = false;\n }\n });\n\n var disposeHandler = function disposeHandler() {\n _this.tech_.off('timeupdate', timeupdateHandler);\n };\n\n _this.tech_.one('dispose', disposeHandler);\n\n if (mode !== 'disabled') {\n _this.tech_.on('timeupdate', timeupdateHandler);\n }\n\n Object.defineProperties(_assertThisInitialized(_this), {\n /**\n * @memberof TextTrack\n * @member {boolean} default\n * If this track was set to be on or off by default. Cannot be changed after\n * creation.\n * @instance\n *\n * @readonly\n */\n \"default\": {\n get: function get() {\n return default_;\n },\n set: function set() {}\n },\n\n /**\n * @memberof TextTrack\n * @member {string} mode\n * Set the mode of this TextTrack to a valid {@link TextTrack~Mode}. Will\n * not be set if setting to an invalid mode.\n * @instance\n *\n * @fires TextTrack#modechange\n */\n mode: {\n get: function get() {\n return mode;\n },\n set: function set(newMode) {\n if (!TextTrackMode[newMode]) {\n return;\n }\n\n if (mode === newMode) {\n return;\n }\n\n mode = newMode;\n\n if (!this.preload_ && mode !== 'disabled' && this.cues.length === 0) {\n // On-demand load.\n loadTrack(this.src, this);\n }\n\n this.tech_.off('timeupdate', timeupdateHandler);\n\n if (mode !== 'disabled') {\n this.tech_.on('timeupdate', timeupdateHandler);\n }\n /**\n * An event that fires when mode changes on this track. This allows\n * the TextTrackList that holds this track to act accordingly.\n *\n * > Note: This is not part of the spec!\n *\n * @event TextTrack#modechange\n * @type {EventTarget~Event}\n */\n\n\n this.trigger('modechange');\n }\n },\n\n /**\n * @memberof TextTrack\n * @member {TextTrackCueList} cues\n * The text track cue list for this TextTrack.\n * @instance\n */\n cues: {\n get: function get() {\n if (!this.loaded_) {\n return null;\n }\n\n return cues;\n },\n set: function set() {}\n },\n\n /**\n * @memberof TextTrack\n * @member {TextTrackCueList} activeCues\n * The list text track cues that are currently active for this TextTrack.\n * @instance\n */\n activeCues: {\n get: function get() {\n if (!this.loaded_) {\n return null;\n } // nothing to do\n\n\n if (this.cues.length === 0) {\n return activeCues;\n }\n\n var ct = this.tech_.currentTime();\n var active = [];\n\n for (var i = 0, l = this.cues.length; i < l; i++) {\n var cue = this.cues[i];\n\n if (cue.startTime <= ct && cue.endTime >= ct) {\n active.push(cue);\n } else if (cue.startTime === cue.endTime && cue.startTime <= ct && cue.startTime + 0.5 >= ct) {\n active.push(cue);\n }\n }\n\n changed = false;\n\n if (active.length !== this.activeCues_.length) {\n changed = true;\n } else {\n for (var _i = 0; _i < active.length; _i++) {\n if (this.activeCues_.indexOf(active[_i]) === -1) {\n changed = true;\n }\n }\n }\n\n this.activeCues_ = active;\n activeCues.setCues_(this.activeCues_);\n return activeCues;\n },\n // /!\\ Keep this setter empty (see the timeupdate handler above)\n set: function set() {}\n }\n });\n\n if (settings.src) {\n _this.src = settings.src;\n\n if (!_this.preload_) {\n // Tracks will load on-demand.\n // Act like we're loaded for other purposes.\n _this.loaded_ = true;\n }\n\n if (_this.preload_ || default_ || settings.kind !== 'subtitles' && settings.kind !== 'captions') {\n loadTrack(_this.src, _assertThisInitialized(_this));\n }\n } else {\n _this.loaded_ = true;\n }\n\n return _this;\n }\n /**\n * Add a cue to the internal list of cues.\n *\n * @param {TextTrack~Cue} cue\n * The cue to add to our internal list\n */\n\n\n var _proto = TextTrack.prototype;\n\n _proto.addCue = function addCue(originalCue) {\n var cue = originalCue;\n\n if (window$1.vttjs && !(originalCue instanceof window$1.vttjs.VTTCue)) {\n cue = new window$1.vttjs.VTTCue(originalCue.startTime, originalCue.endTime, originalCue.text);\n\n for (var prop in originalCue) {\n if (!(prop in cue)) {\n cue[prop] = originalCue[prop];\n }\n } // make sure that `id` is copied over\n\n\n cue.id = originalCue.id;\n cue.originalCue_ = originalCue;\n }\n\n var tracks = this.tech_.textTracks();\n\n for (var i = 0; i < tracks.length; i++) {\n if (tracks[i] !== this) {\n tracks[i].removeCue(cue);\n }\n }\n\n this.cues_.push(cue);\n this.cues.setCues_(this.cues_);\n }\n /**\n * Remove a cue from our internal list\n *\n * @param {TextTrack~Cue} removeCue\n * The cue to remove from our internal list\n */\n ;\n\n _proto.removeCue = function removeCue(_removeCue) {\n var i = this.cues_.length;\n\n while (i--) {\n var cue = this.cues_[i];\n\n if (cue === _removeCue || cue.originalCue_ && cue.originalCue_ === _removeCue) {\n this.cues_.splice(i, 1);\n this.cues.setCues_(this.cues_);\n break;\n }\n }\n };\n\n return TextTrack;\n}(Track);\n/**\n * cuechange - One or more cues in the track have become active or stopped being active.\n */\n\n\nTextTrack.prototype.allowedEvents_ = {\n cuechange: 'cuechange'\n};\n\n/**\n * A representation of a single `AudioTrack`. If it is part of an {@link AudioTrackList}\n * only one `AudioTrack` in the list will be enabled at a time.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#audiotrack}\n * @extends Track\n */\n\nvar AudioTrack = /*#__PURE__*/function (_Track) {\n _inheritsLoose(AudioTrack, _Track);\n\n /**\n * Create an instance of this class.\n *\n * @param {Object} [options={}]\n * Object of option names and values\n *\n * @param {AudioTrack~Kind} [options.kind='']\n * A valid audio track kind\n *\n * @param {string} [options.id='vjs_track_' + Guid.newGUID()]\n * A unique id for this AudioTrack.\n *\n * @param {string} [options.label='']\n * The menu label for this track.\n *\n * @param {string} [options.language='']\n * A valid two character language code.\n *\n * @param {boolean} [options.enabled]\n * If this track is the one that is currently playing. If this track is part of\n * an {@link AudioTrackList}, only one {@link AudioTrack} will be enabled.\n */\n function AudioTrack(options) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n var settings = mergeOptions(options, {\n kind: AudioTrackKind[options.kind] || ''\n });\n _this = _Track.call(this, settings) || this;\n var enabled = false;\n /**\n * @memberof AudioTrack\n * @member {boolean} enabled\n * If this `AudioTrack` is enabled or not. When setting this will\n * fire {@link AudioTrack#enabledchange} if the state of enabled is changed.\n * @instance\n *\n * @fires VideoTrack#selectedchange\n */\n\n Object.defineProperty(_assertThisInitialized(_this), 'enabled', {\n get: function get() {\n return enabled;\n },\n set: function set(newEnabled) {\n // an invalid or unchanged value\n if (typeof newEnabled !== 'boolean' || newEnabled === enabled) {\n return;\n }\n\n enabled = newEnabled;\n /**\n * An event that fires when enabled changes on this track. This allows\n * the AudioTrackList that holds this track to act accordingly.\n *\n * > Note: This is not part of the spec! Native tracks will do\n * this internally without an event.\n *\n * @event AudioTrack#enabledchange\n * @type {EventTarget~Event}\n */\n\n this.trigger('enabledchange');\n }\n }); // if the user sets this track to selected then\n // set selected to that true value otherwise\n // we keep it false\n\n if (settings.enabled) {\n _this.enabled = settings.enabled;\n }\n\n _this.loaded_ = true;\n return _this;\n }\n\n return AudioTrack;\n}(Track);\n\n/**\n * A representation of a single `VideoTrack`.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#videotrack}\n * @extends Track\n */\n\nvar VideoTrack = /*#__PURE__*/function (_Track) {\n _inheritsLoose(VideoTrack, _Track);\n\n /**\n * Create an instance of this class.\n *\n * @param {Object} [options={}]\n * Object of option names and values\n *\n * @param {string} [options.kind='']\n * A valid {@link VideoTrack~Kind}\n *\n * @param {string} [options.id='vjs_track_' + Guid.newGUID()]\n * A unique id for this AudioTrack.\n *\n * @param {string} [options.label='']\n * The menu label for this track.\n *\n * @param {string} [options.language='']\n * A valid two character language code.\n *\n * @param {boolean} [options.selected]\n * If this track is the one that is currently playing.\n */\n function VideoTrack(options) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n var settings = mergeOptions(options, {\n kind: VideoTrackKind[options.kind] || ''\n });\n _this = _Track.call(this, settings) || this;\n var selected = false;\n /**\n * @memberof VideoTrack\n * @member {boolean} selected\n * If this `VideoTrack` is selected or not. When setting this will\n * fire {@link VideoTrack#selectedchange} if the state of selected changed.\n * @instance\n *\n * @fires VideoTrack#selectedchange\n */\n\n Object.defineProperty(_assertThisInitialized(_this), 'selected', {\n get: function get() {\n return selected;\n },\n set: function set(newSelected) {\n // an invalid or unchanged value\n if (typeof newSelected !== 'boolean' || newSelected === selected) {\n return;\n }\n\n selected = newSelected;\n /**\n * An event that fires when selected changes on this track. This allows\n * the VideoTrackList that holds this track to act accordingly.\n *\n * > Note: This is not part of the spec! Native tracks will do\n * this internally without an event.\n *\n * @event VideoTrack#selectedchange\n * @type {EventTarget~Event}\n */\n\n this.trigger('selectedchange');\n }\n }); // if the user sets this track to selected then\n // set selected to that true value otherwise\n // we keep it false\n\n if (settings.selected) {\n _this.selected = settings.selected;\n }\n\n return _this;\n }\n\n return VideoTrack;\n}(Track);\n\n/**\n * @memberof HTMLTrackElement\n * @typedef {HTMLTrackElement~ReadyState}\n * @enum {number}\n */\n\nvar NONE = 0;\nvar LOADING = 1;\nvar LOADED = 2;\nvar ERROR = 3;\n/**\n * A single track represented in the DOM.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#htmltrackelement}\n * @extends EventTarget\n */\n\nvar HTMLTrackElement = /*#__PURE__*/function (_EventTarget) {\n _inheritsLoose(HTMLTrackElement, _EventTarget);\n\n /**\n * Create an instance of this class.\n *\n * @param {Object} options={}\n * Object of option names and values\n *\n * @param {Tech} options.tech\n * A reference to the tech that owns this HTMLTrackElement.\n *\n * @param {TextTrack~Kind} [options.kind='subtitles']\n * A valid text track kind.\n *\n * @param {TextTrack~Mode} [options.mode='disabled']\n * A valid text track mode.\n *\n * @param {string} [options.id='vjs_track_' + Guid.newGUID()]\n * A unique id for this TextTrack.\n *\n * @param {string} [options.label='']\n * The menu label for this track.\n *\n * @param {string} [options.language='']\n * A valid two character language code.\n *\n * @param {string} [options.srclang='']\n * A valid two character language code. An alternative, but deprioritized\n * vesion of `options.language`\n *\n * @param {string} [options.src]\n * A url to TextTrack cues.\n *\n * @param {boolean} [options.default]\n * If this track should default to on or off.\n */\n function HTMLTrackElement(options) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n _this = _EventTarget.call(this) || this;\n var readyState;\n var track = new TextTrack(options);\n _this.kind = track.kind;\n _this.src = track.src;\n _this.srclang = track.language;\n _this.label = track.label;\n _this[\"default\"] = track[\"default\"];\n Object.defineProperties(_assertThisInitialized(_this), {\n /**\n * @memberof HTMLTrackElement\n * @member {HTMLTrackElement~ReadyState} readyState\n * The current ready state of the track element.\n * @instance\n */\n readyState: {\n get: function get() {\n return readyState;\n }\n },\n\n /**\n * @memberof HTMLTrackElement\n * @member {TextTrack} track\n * The underlying TextTrack object.\n * @instance\n *\n */\n track: {\n get: function get() {\n return track;\n }\n }\n });\n readyState = NONE;\n /**\n * @listens TextTrack#loadeddata\n * @fires HTMLTrackElement#load\n */\n\n track.addEventListener('loadeddata', function () {\n readyState = LOADED;\n\n _this.trigger({\n type: 'load',\n target: _assertThisInitialized(_this)\n });\n });\n return _this;\n }\n\n return HTMLTrackElement;\n}(EventTarget);\n\nHTMLTrackElement.prototype.allowedEvents_ = {\n load: 'load'\n};\nHTMLTrackElement.NONE = NONE;\nHTMLTrackElement.LOADING = LOADING;\nHTMLTrackElement.LOADED = LOADED;\nHTMLTrackElement.ERROR = ERROR;\n\n/*\n * This file contains all track properties that are used in\n * player.js, tech.js, html5.js and possibly other techs in the future.\n */\n\nvar NORMAL = {\n audio: {\n ListClass: AudioTrackList,\n TrackClass: AudioTrack,\n capitalName: 'Audio'\n },\n video: {\n ListClass: VideoTrackList,\n TrackClass: VideoTrack,\n capitalName: 'Video'\n },\n text: {\n ListClass: TextTrackList,\n TrackClass: TextTrack,\n capitalName: 'Text'\n }\n};\nObject.keys(NORMAL).forEach(function (type) {\n NORMAL[type].getterName = type + \"Tracks\";\n NORMAL[type].privateName = type + \"Tracks_\";\n});\nvar REMOTE = {\n remoteText: {\n ListClass: TextTrackList,\n TrackClass: TextTrack,\n capitalName: 'RemoteText',\n getterName: 'remoteTextTracks',\n privateName: 'remoteTextTracks_'\n },\n remoteTextEl: {\n ListClass: HtmlTrackElementList,\n TrackClass: HTMLTrackElement,\n capitalName: 'RemoteTextTrackEls',\n getterName: 'remoteTextTrackEls',\n privateName: 'remoteTextTrackEls_'\n }\n};\n\nvar ALL = _extends({}, NORMAL, REMOTE);\n\nREMOTE.names = Object.keys(REMOTE);\nNORMAL.names = Object.keys(NORMAL);\nALL.names = [].concat(REMOTE.names).concat(NORMAL.names);\n\n/**\n * An Object containing a structure like: `{src: 'url', type: 'mimetype'}` or string\n * that just contains the src url alone.\n * * `var SourceObject = {src: 'http://ex.com/video.mp4', type: 'video/mp4'};`\n * `var SourceString = 'http://example.com/some-video.mp4';`\n *\n * @typedef {Object|string} Tech~SourceObject\n *\n * @property {string} src\n * The url to the source\n *\n * @property {string} type\n * The mime type of the source\n */\n\n/**\n * A function used by {@link Tech} to create a new {@link TextTrack}.\n *\n * @private\n *\n * @param {Tech} self\n * An instance of the Tech class.\n *\n * @param {string} kind\n * `TextTrack` kind (subtitles, captions, descriptions, chapters, or metadata)\n *\n * @param {string} [label]\n * Label to identify the text track\n *\n * @param {string} [language]\n * Two letter language abbreviation\n *\n * @param {Object} [options={}]\n * An object with additional text track options\n *\n * @return {TextTrack}\n * The text track that was created.\n */\n\nfunction createTrackHelper(self, kind, label, language, options) {\n if (options === void 0) {\n options = {};\n }\n\n var tracks = self.textTracks();\n options.kind = kind;\n\n if (label) {\n options.label = label;\n }\n\n if (language) {\n options.language = language;\n }\n\n options.tech = self;\n var track = new ALL.text.TrackClass(options);\n tracks.addTrack(track);\n return track;\n}\n/**\n * This is the base class for media playback technology controllers, such as\n * {@link HTML5}\n *\n * @extends Component\n */\n\n\nvar Tech = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Tech, _Component);\n\n /**\n * Create an instance of this Tech.\n *\n * @param {Object} [options]\n * The key/value store of player options.\n *\n * @param {Component~ReadyCallback} ready\n * Callback function to call when the `HTML5` Tech is ready.\n */\n function Tech(options, ready) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n if (ready === void 0) {\n ready = function ready() {};\n }\n\n // we don't want the tech to report user activity automatically.\n // This is done manually in addControlsListeners\n options.reportTouchActivity = false;\n _this = _Component.call(this, null, options, ready) || this; // keep track of whether the current source has played at all to\n // implement a very limited played()\n\n _this.hasStarted_ = false;\n\n _this.on('playing', function () {\n this.hasStarted_ = true;\n });\n\n _this.on('loadstart', function () {\n this.hasStarted_ = false;\n });\n\n ALL.names.forEach(function (name) {\n var props = ALL[name];\n\n if (options && options[props.getterName]) {\n _this[props.privateName] = options[props.getterName];\n }\n }); // Manually track progress in cases where the browser/tech doesn't report it.\n\n if (!_this.featuresProgressEvents) {\n _this.manualProgressOn();\n } // Manually track timeupdates in cases where the browser/tech doesn't report it.\n\n\n if (!_this.featuresTimeupdateEvents) {\n _this.manualTimeUpdatesOn();\n }\n\n ['Text', 'Audio', 'Video'].forEach(function (track) {\n if (options[\"native\" + track + \"Tracks\"] === false) {\n _this[\"featuresNative\" + track + \"Tracks\"] = false;\n }\n });\n\n if (options.nativeCaptions === false || options.nativeTextTracks === false) {\n _this.featuresNativeTextTracks = false;\n } else if (options.nativeCaptions === true || options.nativeTextTracks === true) {\n _this.featuresNativeTextTracks = true;\n }\n\n if (!_this.featuresNativeTextTracks) {\n _this.emulateTextTracks();\n }\n\n _this.preloadTextTracks = options.preloadTextTracks !== false;\n _this.autoRemoteTextTracks_ = new ALL.text.ListClass();\n\n _this.initTrackListeners(); // Turn on component tap events only if not using native controls\n\n\n if (!options.nativeControlsForTouch) {\n _this.emitTapEvents();\n }\n\n if (_this.constructor) {\n _this.name_ = _this.constructor.name || 'Unknown Tech';\n }\n\n return _this;\n }\n /**\n * A special function to trigger source set in a way that will allow player\n * to re-trigger if the player or tech are not ready yet.\n *\n * @fires Tech#sourceset\n * @param {string} src The source string at the time of the source changing.\n */\n\n\n var _proto = Tech.prototype;\n\n _proto.triggerSourceset = function triggerSourceset(src) {\n var _this2 = this;\n\n if (!this.isReady_) {\n // on initial ready we have to trigger source set\n // 1ms after ready so that player can watch for it.\n this.one('ready', function () {\n return _this2.setTimeout(function () {\n return _this2.triggerSourceset(src);\n }, 1);\n });\n }\n /**\n * Fired when the source is set on the tech causing the media element\n * to reload.\n *\n * @see {@link Player#event:sourceset}\n * @event Tech#sourceset\n * @type {EventTarget~Event}\n */\n\n\n this.trigger({\n src: src,\n type: 'sourceset'\n });\n }\n /* Fallbacks for unsupported event types\n ================================================================================ */\n\n /**\n * Polyfill the `progress` event for browsers that don't support it natively.\n *\n * @see {@link Tech#trackProgress}\n */\n ;\n\n _proto.manualProgressOn = function manualProgressOn() {\n this.on('durationchange', this.onDurationChange);\n this.manualProgress = true; // Trigger progress watching when a source begins loading\n\n this.one('ready', this.trackProgress);\n }\n /**\n * Turn off the polyfill for `progress` events that was created in\n * {@link Tech#manualProgressOn}\n */\n ;\n\n _proto.manualProgressOff = function manualProgressOff() {\n this.manualProgress = false;\n this.stopTrackingProgress();\n this.off('durationchange', this.onDurationChange);\n }\n /**\n * This is used to trigger a `progress` event when the buffered percent changes. It\n * sets an interval function that will be called every 500 milliseconds to check if the\n * buffer end percent has changed.\n *\n * > This function is called by {@link Tech#manualProgressOn}\n *\n * @param {EventTarget~Event} event\n * The `ready` event that caused this to run.\n *\n * @listens Tech#ready\n * @fires Tech#progress\n */\n ;\n\n _proto.trackProgress = function trackProgress(event) {\n this.stopTrackingProgress();\n this.progressInterval = this.setInterval(bind(this, function () {\n // Don't trigger unless buffered amount is greater than last time\n var numBufferedPercent = this.bufferedPercent();\n\n if (this.bufferedPercent_ !== numBufferedPercent) {\n /**\n * See {@link Player#progress}\n *\n * @event Tech#progress\n * @type {EventTarget~Event}\n */\n this.trigger('progress');\n }\n\n this.bufferedPercent_ = numBufferedPercent;\n\n if (numBufferedPercent === 1) {\n this.stopTrackingProgress();\n }\n }), 500);\n }\n /**\n * Update our internal duration on a `durationchange` event by calling\n * {@link Tech#duration}.\n *\n * @param {EventTarget~Event} event\n * The `durationchange` event that caused this to run.\n *\n * @listens Tech#durationchange\n */\n ;\n\n _proto.onDurationChange = function onDurationChange(event) {\n this.duration_ = this.duration();\n }\n /**\n * Get and create a `TimeRange` object for buffering.\n *\n * @return {TimeRange}\n * The time range object that was created.\n */\n ;\n\n _proto.buffered = function buffered() {\n return createTimeRanges(0, 0);\n }\n /**\n * Get the percentage of the current video that is currently buffered.\n *\n * @return {number}\n * A number from 0 to 1 that represents the decimal percentage of the\n * video that is buffered.\n *\n */\n ;\n\n _proto.bufferedPercent = function bufferedPercent$1() {\n return bufferedPercent(this.buffered(), this.duration_);\n }\n /**\n * Turn off the polyfill for `progress` events that was created in\n * {@link Tech#manualProgressOn}\n * Stop manually tracking progress events by clearing the interval that was set in\n * {@link Tech#trackProgress}.\n */\n ;\n\n _proto.stopTrackingProgress = function stopTrackingProgress() {\n this.clearInterval(this.progressInterval);\n }\n /**\n * Polyfill the `timeupdate` event for browsers that don't support it.\n *\n * @see {@link Tech#trackCurrentTime}\n */\n ;\n\n _proto.manualTimeUpdatesOn = function manualTimeUpdatesOn() {\n this.manualTimeUpdates = true;\n this.on('play', this.trackCurrentTime);\n this.on('pause', this.stopTrackingCurrentTime);\n }\n /**\n * Turn off the polyfill for `timeupdate` events that was created in\n * {@link Tech#manualTimeUpdatesOn}\n */\n ;\n\n _proto.manualTimeUpdatesOff = function manualTimeUpdatesOff() {\n this.manualTimeUpdates = false;\n this.stopTrackingCurrentTime();\n this.off('play', this.trackCurrentTime);\n this.off('pause', this.stopTrackingCurrentTime);\n }\n /**\n * Sets up an interval function to track current time and trigger `timeupdate` every\n * 250 milliseconds.\n *\n * @listens Tech#play\n * @triggers Tech#timeupdate\n */\n ;\n\n _proto.trackCurrentTime = function trackCurrentTime() {\n if (this.currentTimeInterval) {\n this.stopTrackingCurrentTime();\n }\n\n this.currentTimeInterval = this.setInterval(function () {\n /**\n * Triggered at an interval of 250ms to indicated that time is passing in the video.\n *\n * @event Tech#timeupdate\n * @type {EventTarget~Event}\n */\n this.trigger({\n type: 'timeupdate',\n target: this,\n manuallyTriggered: true\n }); // 42 = 24 fps // 250 is what Webkit uses // FF uses 15\n }, 250);\n }\n /**\n * Stop the interval function created in {@link Tech#trackCurrentTime} so that the\n * `timeupdate` event is no longer triggered.\n *\n * @listens {Tech#pause}\n */\n ;\n\n _proto.stopTrackingCurrentTime = function stopTrackingCurrentTime() {\n this.clearInterval(this.currentTimeInterval); // #1002 - if the video ends right before the next timeupdate would happen,\n // the progress bar won't make it all the way to the end\n\n this.trigger({\n type: 'timeupdate',\n target: this,\n manuallyTriggered: true\n });\n }\n /**\n * Turn off all event polyfills, clear the `Tech`s {@link AudioTrackList},\n * {@link VideoTrackList}, and {@link TextTrackList}, and dispose of this Tech.\n *\n * @fires Component#dispose\n */\n ;\n\n _proto.dispose = function dispose() {\n // clear out all tracks because we can't reuse them between techs\n this.clearTracks(NORMAL.names); // Turn off any manual progress or timeupdate tracking\n\n if (this.manualProgress) {\n this.manualProgressOff();\n }\n\n if (this.manualTimeUpdates) {\n this.manualTimeUpdatesOff();\n }\n\n _Component.prototype.dispose.call(this);\n }\n /**\n * Clear out a single `TrackList` or an array of `TrackLists` given their names.\n *\n * > Note: Techs without source handlers should call this between sources for `video`\n * & `audio` tracks. You don't want to use them between tracks!\n *\n * @param {string[]|string} types\n * TrackList names to clear, valid names are `video`, `audio`, and\n * `text`.\n */\n ;\n\n _proto.clearTracks = function clearTracks(types) {\n var _this3 = this;\n\n types = [].concat(types); // clear out all tracks because we can't reuse them between techs\n\n types.forEach(function (type) {\n var list = _this3[type + \"Tracks\"]() || [];\n var i = list.length;\n\n while (i--) {\n var track = list[i];\n\n if (type === 'text') {\n _this3.removeRemoteTextTrack(track);\n }\n\n list.removeTrack(track);\n }\n });\n }\n /**\n * Remove any TextTracks added via addRemoteTextTrack that are\n * flagged for automatic garbage collection\n */\n ;\n\n _proto.cleanupAutoTextTracks = function cleanupAutoTextTracks() {\n var list = this.autoRemoteTextTracks_ || [];\n var i = list.length;\n\n while (i--) {\n var track = list[i];\n this.removeRemoteTextTrack(track);\n }\n }\n /**\n * Reset the tech, which will removes all sources and reset the internal readyState.\n *\n * @abstract\n */\n ;\n\n _proto.reset = function reset() {}\n /**\n * Get the value of `crossOrigin` from the tech.\n *\n * @abstract\n *\n * @see {Html5#crossOrigin}\n */\n ;\n\n _proto.crossOrigin = function crossOrigin() {}\n /**\n * Set the value of `crossOrigin` on the tech.\n *\n * @abstract\n *\n * @param {string} crossOrigin the crossOrigin value\n * @see {Html5#setCrossOrigin}\n */\n ;\n\n _proto.setCrossOrigin = function setCrossOrigin() {}\n /**\n * Get or set an error on the Tech.\n *\n * @param {MediaError} [err]\n * Error to set on the Tech\n *\n * @return {MediaError|null}\n * The current error object on the tech, or null if there isn't one.\n */\n ;\n\n _proto.error = function error(err) {\n if (err !== undefined) {\n this.error_ = new MediaError(err);\n this.trigger('error');\n }\n\n return this.error_;\n }\n /**\n * Returns the `TimeRange`s that have been played through for the current source.\n *\n * > NOTE: This implementation is incomplete. It does not track the played `TimeRange`.\n * It only checks whether the source has played at all or not.\n *\n * @return {TimeRange}\n * - A single time range if this video has played\n * - An empty set of ranges if not.\n */\n ;\n\n _proto.played = function played() {\n if (this.hasStarted_) {\n return createTimeRanges(0, 0);\n }\n\n return createTimeRanges();\n }\n /**\n * Start playback\n *\n * @abstract\n *\n * @see {Html5#play}\n */\n ;\n\n _proto.play = function play() {}\n /**\n * Set whether we are scrubbing or not\n *\n * @abstract\n *\n * @see {Html5#setScrubbing}\n */\n ;\n\n _proto.setScrubbing = function setScrubbing() {}\n /**\n * Get whether we are scrubbing or not\n *\n * @abstract\n *\n * @see {Html5#scrubbing}\n */\n ;\n\n _proto.scrubbing = function scrubbing() {}\n /**\n * Causes a manual time update to occur if {@link Tech#manualTimeUpdatesOn} was\n * previously called.\n *\n * @fires Tech#timeupdate\n */\n ;\n\n _proto.setCurrentTime = function setCurrentTime() {\n // improve the accuracy of manual timeupdates\n if (this.manualTimeUpdates) {\n /**\n * A manual `timeupdate` event.\n *\n * @event Tech#timeupdate\n * @type {EventTarget~Event}\n */\n this.trigger({\n type: 'timeupdate',\n target: this,\n manuallyTriggered: true\n });\n }\n }\n /**\n * Turn on listeners for {@link VideoTrackList}, {@link {AudioTrackList}, and\n * {@link TextTrackList} events.\n *\n * This adds {@link EventTarget~EventListeners} for `addtrack`, and `removetrack`.\n *\n * @fires Tech#audiotrackchange\n * @fires Tech#videotrackchange\n * @fires Tech#texttrackchange\n */\n ;\n\n _proto.initTrackListeners = function initTrackListeners() {\n var _this4 = this;\n\n /**\n * Triggered when tracks are added or removed on the Tech {@link AudioTrackList}\n *\n * @event Tech#audiotrackchange\n * @type {EventTarget~Event}\n */\n\n /**\n * Triggered when tracks are added or removed on the Tech {@link VideoTrackList}\n *\n * @event Tech#videotrackchange\n * @type {EventTarget~Event}\n */\n\n /**\n * Triggered when tracks are added or removed on the Tech {@link TextTrackList}\n *\n * @event Tech#texttrackchange\n * @type {EventTarget~Event}\n */\n NORMAL.names.forEach(function (name) {\n var props = NORMAL[name];\n\n var trackListChanges = function trackListChanges() {\n _this4.trigger(name + \"trackchange\");\n };\n\n var tracks = _this4[props.getterName]();\n\n tracks.addEventListener('removetrack', trackListChanges);\n tracks.addEventListener('addtrack', trackListChanges);\n\n _this4.on('dispose', function () {\n tracks.removeEventListener('removetrack', trackListChanges);\n tracks.removeEventListener('addtrack', trackListChanges);\n });\n });\n }\n /**\n * Emulate TextTracks using vtt.js if necessary\n *\n * @fires Tech#vttjsloaded\n * @fires Tech#vttjserror\n */\n ;\n\n _proto.addWebVttScript_ = function addWebVttScript_() {\n var _this5 = this;\n\n if (window$1.WebVTT) {\n return;\n } // Initially, Tech.el_ is a child of a dummy-div wait until the Component system\n // signals that the Tech is ready at which point Tech.el_ is part of the DOM\n // before inserting the WebVTT script\n\n\n if (document.body.contains(this.el())) {\n // load via require if available and vtt.js script location was not passed in\n // as an option. novtt builds will turn the above require call into an empty object\n // which will cause this if check to always fail.\n if (!this.options_['vtt.js'] && isPlain(vtt) && Object.keys(vtt).length > 0) {\n this.trigger('vttjsloaded');\n return;\n } // load vtt.js via the script location option or the cdn of no location was\n // passed in\n\n\n var script = document.createElement('script');\n script.src = this.options_['vtt.js'] || 'https://vjs.zencdn.net/vttjs/0.14.1/vtt.min.js';\n\n script.onload = function () {\n /**\n * Fired when vtt.js is loaded.\n *\n * @event Tech#vttjsloaded\n * @type {EventTarget~Event}\n */\n _this5.trigger('vttjsloaded');\n };\n\n script.onerror = function () {\n /**\n * Fired when vtt.js was not loaded due to an error\n *\n * @event Tech#vttjsloaded\n * @type {EventTarget~Event}\n */\n _this5.trigger('vttjserror');\n };\n\n this.on('dispose', function () {\n script.onload = null;\n script.onerror = null;\n }); // but have not loaded yet and we set it to true before the inject so that\n // we don't overwrite the injected window.WebVTT if it loads right away\n\n window$1.WebVTT = true;\n this.el().parentNode.appendChild(script);\n } else {\n this.ready(this.addWebVttScript_);\n }\n }\n /**\n * Emulate texttracks\n *\n */\n ;\n\n _proto.emulateTextTracks = function emulateTextTracks() {\n var _this6 = this;\n\n var tracks = this.textTracks();\n var remoteTracks = this.remoteTextTracks();\n\n var handleAddTrack = function handleAddTrack(e) {\n return tracks.addTrack(e.track);\n };\n\n var handleRemoveTrack = function handleRemoveTrack(e) {\n return tracks.removeTrack(e.track);\n };\n\n remoteTracks.on('addtrack', handleAddTrack);\n remoteTracks.on('removetrack', handleRemoveTrack);\n this.addWebVttScript_();\n\n var updateDisplay = function updateDisplay() {\n return _this6.trigger('texttrackchange');\n };\n\n var textTracksChanges = function textTracksChanges() {\n updateDisplay();\n\n for (var i = 0; i < tracks.length; i++) {\n var track = tracks[i];\n track.removeEventListener('cuechange', updateDisplay);\n\n if (track.mode === 'showing') {\n track.addEventListener('cuechange', updateDisplay);\n }\n }\n };\n\n textTracksChanges();\n tracks.addEventListener('change', textTracksChanges);\n tracks.addEventListener('addtrack', textTracksChanges);\n tracks.addEventListener('removetrack', textTracksChanges);\n this.on('dispose', function () {\n remoteTracks.off('addtrack', handleAddTrack);\n remoteTracks.off('removetrack', handleRemoveTrack);\n tracks.removeEventListener('change', textTracksChanges);\n tracks.removeEventListener('addtrack', textTracksChanges);\n tracks.removeEventListener('removetrack', textTracksChanges);\n\n for (var i = 0; i < tracks.length; i++) {\n var track = tracks[i];\n track.removeEventListener('cuechange', updateDisplay);\n }\n });\n }\n /**\n * Create and returns a remote {@link TextTrack} object.\n *\n * @param {string} kind\n * `TextTrack` kind (subtitles, captions, descriptions, chapters, or metadata)\n *\n * @param {string} [label]\n * Label to identify the text track\n *\n * @param {string} [language]\n * Two letter language abbreviation\n *\n * @return {TextTrack}\n * The TextTrack that gets created.\n */\n ;\n\n _proto.addTextTrack = function addTextTrack(kind, label, language) {\n if (!kind) {\n throw new Error('TextTrack kind is required but was not provided');\n }\n\n return createTrackHelper(this, kind, label, language);\n }\n /**\n * Create an emulated TextTrack for use by addRemoteTextTrack\n *\n * This is intended to be overridden by classes that inherit from\n * Tech in order to create native or custom TextTracks.\n *\n * @param {Object} options\n * The object should contain the options to initialize the TextTrack with.\n *\n * @param {string} [options.kind]\n * `TextTrack` kind (subtitles, captions, descriptions, chapters, or metadata).\n *\n * @param {string} [options.label].\n * Label to identify the text track\n *\n * @param {string} [options.language]\n * Two letter language abbreviation.\n *\n * @return {HTMLTrackElement}\n * The track element that gets created.\n */\n ;\n\n _proto.createRemoteTextTrack = function createRemoteTextTrack(options) {\n var track = mergeOptions(options, {\n tech: this\n });\n return new REMOTE.remoteTextEl.TrackClass(track);\n }\n /**\n * Creates a remote text track object and returns an html track element.\n *\n * > Note: This can be an emulated {@link HTMLTrackElement} or a native one.\n *\n * @param {Object} options\n * See {@link Tech#createRemoteTextTrack} for more detailed properties.\n *\n * @param {boolean} [manualCleanup=true]\n * - When false: the TextTrack will be automatically removed from the video\n * element whenever the source changes\n * - When True: The TextTrack will have to be cleaned up manually\n *\n * @return {HTMLTrackElement}\n * An Html Track Element.\n *\n * @deprecated The default functionality for this function will be equivalent\n * to \"manualCleanup=false\" in the future. The manualCleanup parameter will\n * also be removed.\n */\n ;\n\n _proto.addRemoteTextTrack = function addRemoteTextTrack(options, manualCleanup) {\n var _this7 = this;\n\n if (options === void 0) {\n options = {};\n }\n\n var htmlTrackElement = this.createRemoteTextTrack(options);\n\n if (manualCleanup !== true && manualCleanup !== false) {\n // deprecation warning\n log.warn('Calling addRemoteTextTrack without explicitly setting the \"manualCleanup\" parameter to `true` is deprecated and default to `false` in future version of video.js');\n manualCleanup = true;\n } // store HTMLTrackElement and TextTrack to remote list\n\n\n this.remoteTextTrackEls().addTrackElement_(htmlTrackElement);\n this.remoteTextTracks().addTrack(htmlTrackElement.track);\n\n if (manualCleanup !== true) {\n // create the TextTrackList if it doesn't exist\n this.ready(function () {\n return _this7.autoRemoteTextTracks_.addTrack(htmlTrackElement.track);\n });\n }\n\n return htmlTrackElement;\n }\n /**\n * Remove a remote text track from the remote `TextTrackList`.\n *\n * @param {TextTrack} track\n * `TextTrack` to remove from the `TextTrackList`\n */\n ;\n\n _proto.removeRemoteTextTrack = function removeRemoteTextTrack(track) {\n var trackElement = this.remoteTextTrackEls().getTrackElementByTrack_(track); // remove HTMLTrackElement and TextTrack from remote list\n\n this.remoteTextTrackEls().removeTrackElement_(trackElement);\n this.remoteTextTracks().removeTrack(track);\n this.autoRemoteTextTracks_.removeTrack(track);\n }\n /**\n * Gets available media playback quality metrics as specified by the W3C's Media\n * Playback Quality API.\n *\n * @see [Spec]{@link https://wicg.github.io/media-playback-quality}\n *\n * @return {Object}\n * An object with supported media playback quality metrics\n *\n * @abstract\n */\n ;\n\n _proto.getVideoPlaybackQuality = function getVideoPlaybackQuality() {\n return {};\n }\n /**\n * Attempt to create a floating video window always on top of other windows\n * so that users may continue consuming media while they interact with other\n * content sites, or applications on their device.\n *\n * @see [Spec]{@link https://wicg.github.io/picture-in-picture}\n *\n * @return {Promise|undefined}\n * A promise with a Picture-in-Picture window if the browser supports\n * Promises (or one was passed in as an option). It returns undefined\n * otherwise.\n *\n * @abstract\n */\n ;\n\n _proto.requestPictureInPicture = function requestPictureInPicture() {\n var PromiseClass = this.options_.Promise || window$1.Promise;\n\n if (PromiseClass) {\n return PromiseClass.reject();\n }\n }\n /**\n * A method to check for the value of the 'disablePictureInPicture'