{"version":3,"file":"video_player.js","mappings":"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","sources":["webpack://cndtattend/./node_modules/videojs-vtt.js/lib/vttcue.js","webpack://cndtattend/./node_modules/@videojs/xhr/lib/index.js","webpack://cndtattend/./node_modules/mux.js/lib/utils/numbers.js","webpack://cndtattend/./node_modules/@xmldom/xmldom/lib/sax.js","webpack://cndtattend/./node_modules/@xmldom/xmldom/lib/conventions.js","webpack://cndtattend/./node_modules/@babel/runtime/helpers/extends.js","webpack://cndtattend/./node_modules/@xmldom/xmldom/lib/dom.js","webpack://cndtattend/./node_modules/videojs-vtt.js/lib/browser-index.js","webpack://cndtattend/./node_modules/@xmldom/xmldom/lib/dom-parser.js","webpack://cndtattend/./node_modules/videojs-vtt.js/lib/vttregion.js","webpack://cndtattend/./node_modules/@videojs/xhr/lib/interceptors.js","webpack://cndtattend/./node_modules/videojs-vtt.js/lib/vtt.js","webpack://cndtattend/./node_modules/@xmldom/xmldom/lib/entities.js","webpack://cndtattend/./node_modules/is-function/index.js","webpack://cndtattend/./node_modules/@videojs/xhr/lib/http-handler.js","webpack://cndtattend/./node_modules/url-toolkit/src/url-toolkit.js","webpack://cndtattend/./node_modules/@videojs/xhr/lib/retry.js","webpack://cndtattend/./node_modules/mux.js/lib/tools/parse-sidx.js","webpack://cndtattend/./node_modules/@xmldom/xmldom/lib/index.js","webpack://cndtattend/./node_modules/mux.js/lib/utils/clock.js","webpack://cndtattend/./node_modules/global/document.js","webpack://cndtattend/./node_modules/global/window.js","webpack://cndtattend/webpack/bootstrap","webpack://cndtattend/webpack/runtime/compat get default export","webpack://cndtattend/webpack/runtime/define property getters","webpack://cndtattend/webpack/runtime/global","webpack://cndtattend/webpack/runtime/hasOwnProperty shorthand","webpack://cndtattend/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://cndtattend/./node_modules/@videojs/vhs-utils/es/stream.js","webpack://cndtattend/./node_modules/@videojs/vhs-utils/es/decode-b64-to-uint8-array.js","webpack://cndtattend/./node_modules/m3u8-parser/dist/m3u8-parser.es.js","webpack://cndtattend/./node_modules/@videojs/vhs-utils/es/codecs.js","webpack://cndtattend/./node_modules/@videojs/vhs-utils/es/byte-helpers.js","webpack://cndtattend/./node_modules/@videojs/vhs-utils/es/media-types.js","webpack://cndtattend/./node_modules/mpd-parser/node_modules/@videojs/vhs-utils/es/resolve-url.js","webpack://cndtattend/./node_modules/mpd-parser/dist/mpd-parser.es.js","webpack://cndtattend/./node_modules/mpd-parser/node_modules/@videojs/vhs-utils/es/media-groups.js","webpack://cndtattend/./node_modules/mpd-parser/node_modules/@videojs/vhs-utils/es/decode-b64-to-uint8-array.js","webpack://cndtattend/./node_modules/@videojs/vhs-utils/es/mp4-helpers.js","webpack://cndtattend/./node_modules/@videojs/vhs-utils/es/id3-helpers.js","webpack://cndtattend/./node_modules/@videojs/vhs-utils/es/opus-helpers.js","webpack://cndtattend/./node_modules/@videojs/vhs-utils/es/ebml-helpers.js","webpack://cndtattend/./node_modules/@videojs/vhs-utils/es/nal-helpers.js","webpack://cndtattend/./node_modules/@videojs/vhs-utils/es/containers.js","webpack://cndtattend/./node_modules/video.js/dist/video.es.js","webpack://cndtattend/./node_modules/@videojs/vhs-utils/es/resolve-url.js","webpack://cndtattend/./app/javascript/packs/video_player.js"],"sourcesContent":["/**\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\nvar autoKeyword = \"auto\";\nvar directionSetting = {\n \"\": 1,\n \"lr\": 1,\n \"rl\": 1\n};\nvar alignSetting = {\n \"start\": 1,\n \"center\": 1,\n \"end\": 1,\n \"left\": 1,\n \"right\": 1,\n \"auto\": 1,\n \"line-left\": 1,\n \"line-right\": 1\n};\n\nfunction findDirectionSetting(value) {\n if (typeof value !== \"string\") {\n return false;\n }\n var dir = directionSetting[value.toLowerCase()];\n return dir ? value.toLowerCase() : false;\n}\n\nfunction findAlignSetting(value) {\n if (typeof value !== \"string\") {\n return false;\n }\n var align = alignSetting[value.toLowerCase()];\n return align ? value.toLowerCase() : false;\n}\n\nfunction VTTCue(startTime, endTime, text) {\n /**\n * Shim implementation specific properties. These properties are not in\n * the spec.\n */\n\n // Lets us know when the VTTCue's data has changed in such a way that we need\n // to recompute its display state. This lets us compute its display state\n // lazily.\n this.hasBeenReset = false;\n\n /**\n * VTTCue and TextTrackCue properties\n * http://dev.w3.org/html5/webvtt/#vttcue-interface\n */\n\n var _id = \"\";\n var _pauseOnExit = false;\n var _startTime = startTime;\n var _endTime = endTime;\n var _text = text;\n var _region = null;\n var _vertical = \"\";\n var _snapToLines = true;\n var _line = \"auto\";\n var _lineAlign = \"start\";\n var _position = \"auto\";\n var _positionAlign = \"auto\";\n var _size = 100;\n var _align = \"center\";\n\n Object.defineProperties(this, {\n \"id\": {\n enumerable: true,\n get: function() {\n return _id;\n },\n set: function(value) {\n _id = \"\" + value;\n }\n },\n\n \"pauseOnExit\": {\n enumerable: true,\n get: function() {\n return _pauseOnExit;\n },\n set: function(value) {\n _pauseOnExit = !!value;\n }\n },\n\n \"startTime\": {\n enumerable: true,\n get: function() {\n return _startTime;\n },\n set: function(value) {\n if (typeof value !== \"number\") {\n throw new TypeError(\"Start time must be set to a number.\");\n }\n _startTime = value;\n this.hasBeenReset = true;\n }\n },\n\n \"endTime\": {\n enumerable: true,\n get: function() {\n return _endTime;\n },\n set: function(value) {\n if (typeof value !== \"number\") {\n throw new TypeError(\"End time must be set to a number.\");\n }\n _endTime = value;\n this.hasBeenReset = true;\n }\n },\n\n \"text\": {\n enumerable: true,\n get: function() {\n return _text;\n },\n set: function(value) {\n _text = \"\" + value;\n this.hasBeenReset = true;\n }\n },\n\n \"region\": {\n enumerable: true,\n get: function() {\n return _region;\n },\n set: function(value) {\n _region = value;\n this.hasBeenReset = true;\n }\n },\n\n \"vertical\": {\n enumerable: true,\n get: function() {\n return _vertical;\n },\n set: function(value) {\n var setting = findDirectionSetting(value);\n // Have to check for false because the setting an be an empty string.\n if (setting === false) {\n throw new SyntaxError(\"Vertical: an invalid or illegal direction string was specified.\");\n }\n _vertical = setting;\n this.hasBeenReset = true;\n }\n },\n\n \"snapToLines\": {\n enumerable: true,\n get: function() {\n return _snapToLines;\n },\n set: function(value) {\n _snapToLines = !!value;\n this.hasBeenReset = true;\n }\n },\n\n \"line\": {\n enumerable: true,\n get: function() {\n return _line;\n },\n set: function(value) {\n if (typeof value !== \"number\" && value !== autoKeyword) {\n throw new SyntaxError(\"Line: an invalid number or illegal string was specified.\");\n }\n _line = value;\n this.hasBeenReset = true;\n }\n },\n\n \"lineAlign\": {\n enumerable: true,\n get: function() {\n return _lineAlign;\n },\n set: function(value) {\n var setting = findAlignSetting(value);\n if (!setting) {\n console.warn(\"lineAlign: an invalid or illegal string was specified.\");\n } else {\n _lineAlign = setting;\n this.hasBeenReset = true;\n }\n }\n },\n\n \"position\": {\n enumerable: true,\n get: function() {\n return _position;\n },\n set: function(value) {\n if (value < 0 || value > 100) {\n throw new Error(\"Position must be between 0 and 100.\");\n }\n _position = value;\n this.hasBeenReset = true;\n }\n },\n\n \"positionAlign\": {\n enumerable: true,\n get: function() {\n return _positionAlign;\n },\n set: function(value) {\n var setting = findAlignSetting(value);\n if (!setting) {\n console.warn(\"positionAlign: an invalid or illegal string was specified.\");\n } else {\n _positionAlign = setting;\n this.hasBeenReset = true;\n }\n }\n },\n\n \"size\": {\n enumerable: true,\n get: function() {\n return _size;\n },\n set: function(value) {\n if (value < 0 || value > 100) {\n throw new Error(\"Size must be between 0 and 100.\");\n }\n _size = value;\n this.hasBeenReset = true;\n }\n },\n\n \"align\": {\n enumerable: true,\n get: function() {\n return _align;\n },\n set: function(value) {\n var setting = findAlignSetting(value);\n if (!setting) {\n throw new SyntaxError(\"align: an invalid or illegal alignment string was specified.\");\n }\n _align = setting;\n this.hasBeenReset = true;\n }\n }\n });\n\n /**\n * Other spec defined properties\n */\n\n // http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#text-track-cue-display-state\n this.displayState = undefined;\n}\n\n/**\n * VTTCue methods\n */\n\nVTTCue.prototype.getCueAsHTML = function() {\n // Assume WebVTT.convertCueToDOMTree is on the global.\n return WebVTT.convertCueToDOMTree(window, this.text);\n};\n\nmodule.exports = VTTCue;\n","\"use strict\";\n\nvar window = require(\"global/window\");\n\nvar _extends = require(\"@babel/runtime/helpers/extends\");\n\nvar isFunction = require('is-function');\n\nvar InterceptorsStorage = require('./interceptors.js');\n\nvar RetryManager = require(\"./retry.js\");\n\ncreateXHR.httpHandler = require('./http-handler.js');\ncreateXHR.requestInterceptorsStorage = new InterceptorsStorage();\ncreateXHR.responseInterceptorsStorage = new InterceptorsStorage();\ncreateXHR.retryManager = new RetryManager();\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 parseHeaders(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 return result;\n};\n\nmodule.exports = createXHR; // Allow use of default import syntax in TypeScript\n\nmodule.exports.default = createXHR;\ncreateXHR.XMLHttpRequest = window.XMLHttpRequest || noop;\ncreateXHR.XDomainRequest = \"withCredentials\" in new createXHR.XMLHttpRequest() ? createXHR.XMLHttpRequest : window.XDomainRequest;\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\n return true;\n}\n\nfunction initParams(uri, options, callback) {\n var params = uri;\n\n if (isFunction(options)) {\n callback = options;\n\n if (typeof uri === \"string\") {\n params = {\n uri: uri\n };\n }\n } else {\n params = _extends({}, options, {\n uri: uri\n });\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 } // call all registered request interceptors for a given request type:\n\n\n if (options.requestType && createXHR.requestInterceptorsStorage.getIsEnabled()) {\n var requestInterceptorPayload = {\n uri: options.uri || options.url,\n headers: options.headers || {},\n body: options.body,\n metadata: options.metadata || {},\n retry: options.retry,\n timeout: options.timeout\n };\n var updatedPayload = createXHR.requestInterceptorsStorage.execute(options.requestType, requestInterceptorPayload);\n options.uri = updatedPayload.uri;\n options.headers = updatedPayload.headers;\n options.body = updatedPayload.body;\n options.metadata = updatedPayload.metadata;\n options.retry = updatedPayload.retry;\n options.timeout = updatedPayload.timeout;\n }\n\n var called = false;\n\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 // do not call load 2 times when response interceptors are enabled\n // why do we even need this 2nd load?\n if (xhr.readyState === 4 && !createXHR.responseInterceptorsStorage.getIsEnabled()) {\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 clearTimeout(options.retryTimeout);\n\n if (!(evt instanceof Error)) {\n evt = new Error(\"\" + (evt || \"Unknown XMLHttpRequest Error\"));\n }\n\n evt.statusCode = 0; // we would like to retry on error:\n\n if (!aborted && createXHR.retryManager.getIsEnabled() && options.retry && options.retry.shouldRetry()) {\n options.retryTimeout = setTimeout(function () {\n options.retry.moveToNextAttempt(); // we want to re-use the same options and the same xhr object:\n\n options.xhr = xhr;\n\n _createXHR(options);\n }, options.retry.getCurrentFuzzedDelay());\n return;\n } // call all registered response interceptors for a given request type:\n\n\n if (options.requestType && createXHR.responseInterceptorsStorage.getIsEnabled()) {\n var responseInterceptorPayload = {\n headers: failureResponse.headers || {},\n body: failureResponse.body,\n responseUrl: xhr.responseURL,\n responseType: xhr.responseType\n };\n\n var _updatedPayload = createXHR.responseInterceptorsStorage.execute(options.requestType, responseInterceptorPayload);\n\n failureResponse.body = _updatedPayload.body;\n failureResponse.headers = _updatedPayload.headers;\n }\n\n return callback(evt, failureResponse);\n } // will load the data & process the response in a special response object\n\n\n function loadFunc() {\n if (aborted) return;\n var status;\n clearTimeout(timeoutTimer);\n clearTimeout(options.retryTimeout);\n\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\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\n if (xhr.getAllResponseHeaders) {\n //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 } // call all registered response interceptors for a given request type:\n\n\n if (options.requestType && createXHR.responseInterceptorsStorage.getIsEnabled()) {\n var responseInterceptorPayload = {\n headers: response.headers || {},\n body: response.body,\n responseUrl: xhr.responseURL,\n responseType: xhr.responseType\n };\n\n var _updatedPayload2 = createXHR.responseInterceptorsStorage.execute(options.requestType, responseInterceptorPayload);\n\n response.body = _updatedPayload2.body;\n response.headers = _updatedPayload2.headers;\n }\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\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\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; // IE9 must have onprogress be set to a unique function.\n\n xhr.onprogress = function () {// IE must die\n };\n\n xhr.onabort = function () {\n aborted = true;\n clearTimeout(options.retryTimeout);\n };\n\n xhr.ontimeout = errorFunc;\n xhr.open(method, uri, !sync, options.username, options.password); //has to be after open\n\n if (!sync) {\n xhr.withCredentials = !!options.withCredentials;\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\n\n if (!sync && options.timeout > 0) {\n timeoutTimer = setTimeout(function () {\n if (aborted) return;\n aborted = true; //IE9 may still call readystatechange\n\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 && typeof options.beforeSend === \"function\") {\n options.beforeSend(xhr);\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\n\n xhr.send(body || null);\n return xhr;\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\n var firefoxBugTakenEffect = xhr.responseXML && xhr.responseXML.documentElement.nodeName === \"parsererror\";\n\n if (xhr.responseType === \"\" && !firefoxBugTakenEffect) {\n return xhr.responseXML;\n }\n } catch (e) {}\n\n return null;\n}\n\nfunction noop() {}","var MAX_UINT32 = Math.pow(2, 32);\n\nvar getUint64 = function(uint8) {\n var dv = new DataView(uint8.buffer, uint8.byteOffset, uint8.byteLength);\n var value;\n\n if (dv.getBigUint64) {\n value = dv.getBigUint64(0);\n\n if (value < Number.MAX_SAFE_INTEGER) {\n return Number(value);\n }\n\n return value;\n }\n\n return (dv.getUint32(0) * MAX_UINT32) + dv.getUint32(4);\n};\n\nmodule.exports = {\n getUint64: getUint64,\n MAX_UINT32: MAX_UINT32\n};\n","var NAMESPACE = require(\"./conventions\").NAMESPACE;\n\n//[4] \tNameStartChar\t ::= \t\":\" | [A-Z] | \"_\" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n//[4a] \tNameChar\t ::= \tNameStartChar | \"-\" | \".\" | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]\n//[5] \tName\t ::= \tNameStartChar (NameChar)*\nvar nameStartChar = /[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]///\\u10000-\\uEFFFF\nvar nameChar = new RegExp(\"[\\\\-\\\\.0-9\"+nameStartChar.source.slice(1,-1)+\"\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]\");\nvar tagNamePattern = new RegExp('^'+nameStartChar.source+nameChar.source+'*(?:\\:'+nameStartChar.source+nameChar.source+'*)?$');\n//var tagNamePattern = /^[a-zA-Z_][\\w\\-\\.]*(?:\\:[a-zA-Z_][\\w\\-\\.]*)?$/\n//var handlers = 'resolveEntity,getExternalSubset,characters,endDocument,endElement,endPrefixMapping,ignorableWhitespace,processingInstruction,setDocumentLocator,skippedEntity,startDocument,startElement,startPrefixMapping,notationDecl,unparsedEntityDecl,error,fatalError,warning,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,comment,endCDATA,endDTD,endEntity,startCDATA,startDTD,startEntity'.split(',')\n\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\nvar S_TAG = 0;//tag name offerring\nvar S_ATTR = 1;//attr name offerring\nvar S_ATTR_SPACE=2;//attr name end and space offer\nvar S_EQ = 3;//=space?\nvar S_ATTR_NOQUOT_VALUE = 4;//attr value(no quot value only)\nvar S_ATTR_END = 5;//attr value end and no space(quot end)\nvar S_TAG_SPACE = 6;//(attr value end || tag end ) && (space offer)\nvar S_TAG_CLOSE = 7;//closed el\n\n/**\n * Creates an error that will not be caught by XMLReader aka the SAX parser.\n *\n * @param {string} message\n * @param {any?} locator Optional, can provide details about the location in the source\n * @constructor\n */\nfunction ParseError(message, locator) {\n\tthis.message = message\n\tthis.locator = locator\n\tif(Error.captureStackTrace) Error.captureStackTrace(this, ParseError);\n}\nParseError.prototype = new Error();\nParseError.prototype.name = ParseError.name\n\nfunction XMLReader(){\n\n}\n\nXMLReader.prototype = {\n\tparse:function(source,defaultNSMap,entityMap){\n\t\tvar domBuilder = this.domBuilder;\n\t\tdomBuilder.startDocument();\n\t\t_copy(defaultNSMap ,defaultNSMap = {})\n\t\tparse(source,defaultNSMap,entityMap,\n\t\t\t\tdomBuilder,this.errorHandler);\n\t\tdomBuilder.endDocument();\n\t}\n}\nfunction parse(source,defaultNSMapCopy,entityMap,domBuilder,errorHandler){\n\tfunction fixedFromCharCode(code) {\n\t\t// String.prototype.fromCharCode does not supports\n\t\t// > 2 bytes unicode chars directly\n\t\tif (code > 0xffff) {\n\t\t\tcode -= 0x10000;\n\t\t\tvar surrogate1 = 0xd800 + (code >> 10)\n\t\t\t\t, surrogate2 = 0xdc00 + (code & 0x3ff);\n\n\t\t\treturn String.fromCharCode(surrogate1, surrogate2);\n\t\t} else {\n\t\t\treturn String.fromCharCode(code);\n\t\t}\n\t}\n\tfunction entityReplacer(a){\n\t\tvar k = a.slice(1,-1);\n\t\tif (Object.hasOwnProperty.call(entityMap, k)) {\n\t\t\treturn entityMap[k];\n\t\t}else if(k.charAt(0) === '#'){\n\t\t\treturn fixedFromCharCode(parseInt(k.substr(1).replace('x','0x')))\n\t\t}else{\n\t\t\terrorHandler.error('entity not found:'+a);\n\t\t\treturn a;\n\t\t}\n\t}\n\tfunction appendText(end){//has some bugs\n\t\tif(end>start){\n\t\t\tvar xt = source.substring(start,end).replace(/&#?\\w+;/g,entityReplacer);\n\t\t\tlocator&&position(start);\n\t\t\tdomBuilder.characters(xt,0,end-start);\n\t\t\tstart = end\n\t\t}\n\t}\n\tfunction position(p,m){\n\t\twhile(p>=lineEnd && (m = linePattern.exec(source))){\n\t\t\tlineStart = m.index;\n\t\t\tlineEnd = lineStart + m[0].length;\n\t\t\tlocator.lineNumber++;\n\t\t\t//console.log('line++:',locator,startPos,endPos)\n\t\t}\n\t\tlocator.columnNumber = p-lineStart+1;\n\t}\n\tvar lineStart = 0;\n\tvar lineEnd = 0;\n\tvar linePattern = /.*(?:\\r\\n?|\\n)|.*$/g\n\tvar locator = domBuilder.locator;\n\n\tvar parseStack = [{currentNSMap:defaultNSMapCopy}]\n\tvar closeMap = {};\n\tvar start = 0;\n\twhile(true){\n\t\ttry{\n\t\t\tvar tagStart = source.indexOf('<',start);\n\t\t\tif(tagStart<0){\n\t\t\t\tif(!source.substr(start).match(/^\\s*$/)){\n\t\t\t\t\tvar doc = domBuilder.doc;\n\t \t\t\tvar text = doc.createTextNode(source.substr(start));\n\t \t\t\tdoc.appendChild(text);\n\t \t\t\tdomBuilder.currentElement = text;\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif(tagStart>start){\n\t\t\t\tappendText(tagStart);\n\t\t\t}\n\t\t\tswitch(source.charAt(tagStart+1)){\n\t\t\tcase '/':\n\t\t\t\tvar end = source.indexOf('>',tagStart+3);\n\t\t\t\tvar tagName = source.substring(tagStart + 2, end).replace(/[ \\t\\n\\r]+$/g, '');\n\t\t\t\tvar config = parseStack.pop();\n\t\t\t\tif(end<0){\n\n\t \t\ttagName = source.substring(tagStart+2).replace(/[\\s<].*/,'');\n\t \t\terrorHandler.error(\"end tag name: \"+tagName+' is not complete:'+config.tagName);\n\t \t\tend = tagStart+1+tagName.length;\n\t \t}else if(tagName.match(/\\s\n\t\t\t\tlocator&&position(tagStart);\n\t\t\t\tend = parseInstruction(source,tagStart,domBuilder);\n\t\t\t\tbreak;\n\t\t\tcase '!':// start){\n\t\t\tstart = end;\n\t\t}else{\n\t\t\t//TODO: 这里有可能sax回退,有位置错误风险\n\t\t\tappendText(Math.max(tagStart,start)+1);\n\t\t}\n\t}\n}\nfunction copyLocator(f,t){\n\tt.lineNumber = f.lineNumber;\n\tt.columnNumber = f.columnNumber;\n\treturn t;\n}\n\n/**\n * @see #appendElement(source,elStartEnd,el,selfClosed,entityReplacer,domBuilder,parseStack);\n * @return end of the elementStartPart(end of elementEndPart for selfClosed el)\n */\nfunction parseElementStartPart(source,start,el,currentNSMap,entityReplacer,errorHandler){\n\n\t/**\n\t * @param {string} qname\n\t * @param {string} value\n\t * @param {number} startIndex\n\t */\n\tfunction addAttribute(qname, value, startIndex) {\n\t\tif (el.attributeNames.hasOwnProperty(qname)) {\n\t\t\terrorHandler.fatalError('Attribute ' + qname + ' redefined')\n\t\t}\n\t\tel.addValue(\n\t\t\tqname,\n\t\t\t// @see https://www.w3.org/TR/xml/#AVNormalize\n\t\t\t// since the xmldom sax parser does not \"interpret\" DTD the following is not implemented:\n\t\t\t// - recursive replacement of (DTD) entity references\n\t\t\t// - trimming and collapsing multiple spaces into a single one for attributes that are not of type CDATA\n\t\t\tvalue.replace(/[\\t\\n\\r]/g, ' ').replace(/&#?\\w+;/g, entityReplacer),\n\t\t\tstartIndex\n\t\t)\n\t}\n\tvar attrName;\n\tvar value;\n\tvar p = ++start;\n\tvar s = S_TAG;//status\n\twhile(true){\n\t\tvar c = source.charAt(p);\n\t\tswitch(c){\n\t\tcase '=':\n\t\t\tif(s === S_ATTR){//attrName\n\t\t\t\tattrName = source.slice(start,p);\n\t\t\t\ts = S_EQ;\n\t\t\t}else if(s === S_ATTR_SPACE){\n\t\t\t\ts = S_EQ;\n\t\t\t}else{\n\t\t\t\t//fatalError: equal must after attrName or space after attrName\n\t\t\t\tthrow new Error('attribute equal must after attrName'); // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase '\\'':\n\t\tcase '\"':\n\t\t\tif(s === S_EQ || s === S_ATTR //|| s == S_ATTR_SPACE\n\t\t\t\t){//equal\n\t\t\t\tif(s === S_ATTR){\n\t\t\t\t\terrorHandler.warning('attribute value must after \"=\"')\n\t\t\t\t\tattrName = source.slice(start,p)\n\t\t\t\t}\n\t\t\t\tstart = p+1;\n\t\t\t\tp = source.indexOf(c,start)\n\t\t\t\tif(p>0){\n\t\t\t\t\tvalue = source.slice(start, p);\n\t\t\t\t\taddAttribute(attrName, value, start-1);\n\t\t\t\t\ts = S_ATTR_END;\n\t\t\t\t}else{\n\t\t\t\t\t//fatalError: no end quot match\n\t\t\t\t\tthrow new Error('attribute value no end \\''+c+'\\' match');\n\t\t\t\t}\n\t\t\t}else if(s == S_ATTR_NOQUOT_VALUE){\n\t\t\t\tvalue = source.slice(start, p);\n\t\t\t\taddAttribute(attrName, value, start);\n\t\t\t\terrorHandler.warning('attribute \"'+attrName+'\" missed start quot('+c+')!!');\n\t\t\t\tstart = p+1;\n\t\t\t\ts = S_ATTR_END\n\t\t\t}else{\n\t\t\t\t//fatalError: no equal before\n\t\t\t\tthrow new Error('attribute value must after \"=\"'); // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase '/':\n\t\t\tswitch(s){\n\t\t\tcase S_TAG:\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\tcase S_ATTR_END:\n\t\t\tcase S_TAG_SPACE:\n\t\t\tcase S_TAG_CLOSE:\n\t\t\t\ts =S_TAG_CLOSE;\n\t\t\t\tel.closed = true;\n\t\t\tcase S_ATTR_NOQUOT_VALUE:\n\t\t\tcase S_ATTR:\n\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR_SPACE:\n\t\t\t\t\tel.closed = true;\n\t\t\t\tbreak;\n\t\t\t//case S_EQ:\n\t\t\tdefault:\n\t\t\t\tthrow new Error(\"attribute invalid close char('/')\") // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase ''://end document\n\t\t\terrorHandler.error('unexpected end of input');\n\t\t\tif(s == S_TAG){\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\t}\n\t\t\treturn p;\n\t\tcase '>':\n\t\t\tswitch(s){\n\t\t\tcase S_TAG:\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\tcase S_ATTR_END:\n\t\t\tcase S_TAG_SPACE:\n\t\t\tcase S_TAG_CLOSE:\n\t\t\t\tbreak;//normal\n\t\t\tcase S_ATTR_NOQUOT_VALUE://Compatible state\n\t\t\tcase S_ATTR:\n\t\t\t\tvalue = source.slice(start,p);\n\t\t\t\tif(value.slice(-1) === '/'){\n\t\t\t\t\tel.closed = true;\n\t\t\t\t\tvalue = value.slice(0,-1)\n\t\t\t\t}\n\t\t\tcase S_ATTR_SPACE:\n\t\t\t\tif(s === S_ATTR_SPACE){\n\t\t\t\t\tvalue = attrName;\n\t\t\t\t}\n\t\t\t\tif(s == S_ATTR_NOQUOT_VALUE){\n\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed quot(\")!');\n\t\t\t\t\taddAttribute(attrName, value, start)\n\t\t\t\t}else{\n\t\t\t\t\tif(!NAMESPACE.isHTML(currentNSMap['']) || !value.match(/^(?:disabled|checked|selected)$/i)){\n\t\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed value!! \"'+value+'\" instead!!')\n\t\t\t\t\t}\n\t\t\t\t\taddAttribute(value, value, start)\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase S_EQ:\n\t\t\t\tthrow new Error('attribute value missed!!');\n\t\t\t}\n//\t\t\tconsole.log(tagName,tagNamePattern,tagNamePattern.test(tagName))\n\t\t\treturn p;\n\t\t/*xml space '\\x20' | #x9 | #xD | #xA; */\n\t\tcase '\\u0080':\n\t\t\tc = ' ';\n\t\tdefault:\n\t\t\tif(c<= ' '){//space\n\t\t\t\tswitch(s){\n\t\t\t\tcase S_TAG:\n\t\t\t\t\tel.setTagName(source.slice(start,p));//tagName\n\t\t\t\t\ts = S_TAG_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR:\n\t\t\t\t\tattrName = source.slice(start,p)\n\t\t\t\t\ts = S_ATTR_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR_NOQUOT_VALUE:\n\t\t\t\t\tvar value = source.slice(start, p);\n\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed quot(\")!!');\n\t\t\t\t\taddAttribute(attrName, value, start)\n\t\t\t\tcase S_ATTR_END:\n\t\t\t\t\ts = S_TAG_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\t//case S_TAG_SPACE:\n\t\t\t\t//case S_EQ:\n\t\t\t\t//case S_ATTR_SPACE:\n\t\t\t\t//\tvoid();break;\n\t\t\t\t//case S_TAG_CLOSE:\n\t\t\t\t\t//ignore warning\n\t\t\t\t}\n\t\t\t}else{//not space\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\n\t\t\t\tswitch(s){\n\t\t\t\t//case S_TAG:void();break;\n\t\t\t\t//case S_ATTR:void();break;\n\t\t\t\t//case S_ATTR_NOQUOT_VALUE:void();break;\n\t\t\t\tcase S_ATTR_SPACE:\n\t\t\t\t\tvar tagName = el.tagName;\n\t\t\t\t\tif (!NAMESPACE.isHTML(currentNSMap['']) || !attrName.match(/^(?:disabled|checked|selected)$/i)) {\n\t\t\t\t\t\terrorHandler.warning('attribute \"'+attrName+'\" missed value!! \"'+attrName+'\" instead2!!')\n\t\t\t\t\t}\n\t\t\t\t\taddAttribute(attrName, attrName, start);\n\t\t\t\t\tstart = p;\n\t\t\t\t\ts = S_ATTR;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR_END:\n\t\t\t\t\terrorHandler.warning('attribute space is required\"'+attrName+'\"!!')\n\t\t\t\tcase S_TAG_SPACE:\n\t\t\t\t\ts = S_ATTR;\n\t\t\t\t\tstart = p;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_EQ:\n\t\t\t\t\ts = S_ATTR_NOQUOT_VALUE;\n\t\t\t\t\tstart = p;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_TAG_CLOSE:\n\t\t\t\t\tthrow new Error(\"elements closed character '/' and '>' must be connected to\");\n\t\t\t\t}\n\t\t\t}\n\t\t}//end outer switch\n\t\t//console.log('p++',p)\n\t\tp++;\n\t}\n}\n/**\n * @return true if has new namespace define\n */\nfunction appendElement(el,domBuilder,currentNSMap){\n\tvar tagName = el.tagName;\n\tvar localNSMap = null;\n\t//var currentNSMap = parseStack[parseStack.length-1].currentNSMap;\n\tvar i = el.length;\n\twhile(i--){\n\t\tvar a = el[i];\n\t\tvar qName = a.qName;\n\t\tvar value = a.value;\n\t\tvar nsp = qName.indexOf(':');\n\t\tif(nsp>0){\n\t\t\tvar prefix = a.prefix = qName.slice(0,nsp);\n\t\t\tvar localName = qName.slice(nsp+1);\n\t\t\tvar nsPrefix = prefix === 'xmlns' && localName\n\t\t}else{\n\t\t\tlocalName = qName;\n\t\t\tprefix = null\n\t\t\tnsPrefix = qName === 'xmlns' && ''\n\t\t}\n\t\t//can not set prefix,because prefix !== ''\n\t\ta.localName = localName ;\n\t\t//prefix == null for no ns prefix attribute\n\t\tif(nsPrefix !== false){//hack!!\n\t\t\tif(localNSMap == null){\n\t\t\t\tlocalNSMap = {}\n\t\t\t\t//console.log(currentNSMap,0)\n\t\t\t\t_copy(currentNSMap,currentNSMap={})\n\t\t\t\t//console.log(currentNSMap,1)\n\t\t\t}\n\t\t\tcurrentNSMap[nsPrefix] = localNSMap[nsPrefix] = value;\n\t\t\ta.uri = NAMESPACE.XMLNS\n\t\t\tdomBuilder.startPrefixMapping(nsPrefix, value)\n\t\t}\n\t}\n\tvar i = el.length;\n\twhile(i--){\n\t\ta = el[i];\n\t\tvar prefix = a.prefix;\n\t\tif(prefix){//no prefix attribute has no namespace\n\t\t\tif(prefix === 'xml'){\n\t\t\t\ta.uri = NAMESPACE.XML;\n\t\t\t}if(prefix !== 'xmlns'){\n\t\t\t\ta.uri = currentNSMap[prefix || '']\n\n\t\t\t\t//{console.log('###'+a.qName,domBuilder.locator.systemId+'',currentNSMap,a.uri)}\n\t\t\t}\n\t\t}\n\t}\n\tvar nsp = tagName.indexOf(':');\n\tif(nsp>0){\n\t\tprefix = el.prefix = tagName.slice(0,nsp);\n\t\tlocalName = el.localName = tagName.slice(nsp+1);\n\t}else{\n\t\tprefix = null;//important!!\n\t\tlocalName = el.localName = tagName;\n\t}\n\t//no prefix element has default namespace\n\tvar ns = el.uri = currentNSMap[prefix || ''];\n\tdomBuilder.startElement(ns,localName,tagName,el);\n\t//endPrefixMapping and startPrefixMapping have not any help for dom builder\n\t//localNSMap = null\n\tif(el.closed){\n\t\tdomBuilder.endElement(ns,localName,tagName);\n\t\tif(localNSMap){\n\t\t\tfor (prefix in localNSMap) {\n\t\t\t\tif (Object.prototype.hasOwnProperty.call(localNSMap, prefix)) {\n\t\t\t\t\tdomBuilder.endPrefixMapping(prefix);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}else{\n\t\tel.currentNSMap = currentNSMap;\n\t\tel.localNSMap = localNSMap;\n\t\t//parseStack.push(el);\n\t\treturn true;\n\t}\n}\nfunction parseHtmlSpecialContent(source,elStartEnd,tagName,entityReplacer,domBuilder){\n\tif(/^(?:script|textarea)$/i.test(tagName)){\n\t\tvar elEndStart = source.indexOf('',elStartEnd);\n\t\tvar text = source.substring(elStartEnd+1,elEndStart);\n\t\tif(/[&<]/.test(text)){\n\t\t\tif(/^script$/i.test(tagName)){\n\t\t\t\t//if(!/\\]\\]>/.test(text)){\n\t\t\t\t\t//lexHandler.startCDATA();\n\t\t\t\t\tdomBuilder.characters(text,0,text.length);\n\t\t\t\t\t//lexHandler.endCDATA();\n\t\t\t\t\treturn elEndStart;\n\t\t\t\t//}\n\t\t\t}//}else{//text area\n\t\t\t\ttext = text.replace(/&#?\\w+;/g,entityReplacer);\n\t\t\t\tdomBuilder.characters(text,0,text.length);\n\t\t\t\treturn elEndStart;\n\t\t\t//}\n\n\t\t}\n\t}\n\treturn elStartEnd+1;\n}\nfunction fixSelfClosed(source,elStartEnd,tagName,closeMap){\n\t//if(tagName in closeMap){\n\tvar pos = closeMap[tagName];\n\tif(pos == null){\n\t\t//console.log(tagName)\n\t\tpos = source.lastIndexOf('')\n\t\tif(pos',start+4);\n\t\t\t//append comment source.substring(4,end)//\");\n\tcase DOCUMENT_TYPE_NODE:\n\t\tvar pubid = node.publicId;\n\t\tvar sysid = node.systemId;\n\t\tbuf.push('');\n\t\t}else if(sysid && sysid!='.'){\n\t\t\tbuf.push(' SYSTEM ', sysid, '>');\n\t\t}else{\n\t\t\tvar sub = node.internalSubset;\n\t\t\tif(sub){\n\t\t\t\tbuf.push(\" [\",sub,\"]\");\n\t\t\t}\n\t\t\tbuf.push(\">\");\n\t\t}\n\t\treturn;\n\tcase PROCESSING_INSTRUCTION_NODE:\n\t\treturn buf.push( \"\");\n\tcase ENTITY_REFERENCE_NODE:\n\t\treturn buf.push( '&',node.nodeName,';');\n\t//case ENTITY_NODE:\n\t//case NOTATION_NODE:\n\tdefault:\n\t\tbuf.push('??',node.nodeName);\n\t}\n}\nfunction importNode(doc,node,deep){\n\tvar node2;\n\tswitch (node.nodeType) {\n\tcase ELEMENT_NODE:\n\t\tnode2 = node.cloneNode(false);\n\t\tnode2.ownerDocument = doc;\n\t\t//var attrs = node2.attributes;\n\t\t//var len = attrs.length;\n\t\t//for(var i=0;i XML parsed entities are often stored in computer files which,\n * > for editing convenience, are organized into lines.\n * > These lines are typically separated by some combination\n * > of the characters CARRIAGE RETURN (#xD) and LINE FEED (#xA).\n * >\n * > To simplify the tasks of applications, the XML processor must behave\n * > as if it normalized all line breaks in external parsed entities (including the document entity)\n * > on input, before parsing, by translating all of the following to a single #xA character:\n * >\n * > 1. the two-character sequence #xD #xA\n * > 2. the two-character sequence #xD #x85\n * > 3. the single character #x85\n * > 4. the single character #x2028\n * > 5. any #xD character that is not immediately followed by #xA or #x85.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction normalizeLineEndings(input) {\n\treturn input\n\t\t.replace(/\\r[\\n\\u0085]/g, '\\n')\n\t\t.replace(/[\\r\\u0085\\u2028]/g, '\\n')\n}\n\n/**\n * @typedef Locator\n * @property {number} [columnNumber]\n * @property {number} [lineNumber]\n */\n\n/**\n * @typedef DOMParserOptions\n * @property {DOMHandler} [domBuilder]\n * @property {Function} [errorHandler]\n * @property {(string) => string} [normalizeLineEndings] used to replace line endings before parsing\n * \t\t\t\t\t\tdefaults to `normalizeLineEndings`\n * @property {Locator} [locator]\n * @property {Record} [xmlns]\n *\n * @see normalizeLineEndings\n */\n\n/**\n * The DOMParser interface provides the ability to parse XML or HTML source code\n * from a string into a DOM `Document`.\n *\n * _xmldom is different from the spec in that it allows an `options` parameter,\n * to override the default behavior._\n *\n * @param {DOMParserOptions} [options]\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-parsing-and-serialization\n */\nfunction DOMParser(options){\n\tthis.options = options ||{locator:{}};\n}\n\nDOMParser.prototype.parseFromString = function(source,mimeType){\n\tvar options = this.options;\n\tvar sax = new XMLReader();\n\tvar domBuilder = options.domBuilder || new DOMHandler();//contentHandler and LexicalHandler\n\tvar errorHandler = options.errorHandler;\n\tvar locator = options.locator;\n\tvar defaultNSMap = options.xmlns||{};\n\tvar isHTML = /\\/x?html?$/.test(mimeType);//mimeType.toLowerCase().indexOf('html') > -1;\n \tvar entityMap = isHTML ? entities.HTML_ENTITIES : entities.XML_ENTITIES;\n\tif(locator){\n\t\tdomBuilder.setDocumentLocator(locator)\n\t}\n\n\tsax.errorHandler = buildErrorHandler(errorHandler,domBuilder,locator);\n\tsax.domBuilder = options.domBuilder || domBuilder;\n\tif(isHTML){\n\t\tdefaultNSMap[''] = NAMESPACE.HTML;\n\t}\n\tdefaultNSMap.xml = defaultNSMap.xml || NAMESPACE.XML;\n\tvar normalize = options.normalizeLineEndings || normalizeLineEndings;\n\tif (source && typeof source === 'string') {\n\t\tsax.parse(\n\t\t\tnormalize(source),\n\t\t\tdefaultNSMap,\n\t\t\tentityMap\n\t\t)\n\t} else {\n\t\tsax.errorHandler.error('invalid doc source')\n\t}\n\treturn domBuilder.doc;\n}\nfunction buildErrorHandler(errorImpl,domBuilder,locator){\n\tif(!errorImpl){\n\t\tif(domBuilder instanceof DOMHandler){\n\t\t\treturn domBuilder;\n\t\t}\n\t\terrorImpl = domBuilder ;\n\t}\n\tvar errorHandler = {}\n\tvar isCallback = errorImpl instanceof Function;\n\tlocator = locator||{}\n\tfunction build(key){\n\t\tvar fn = errorImpl[key];\n\t\tif(!fn && isCallback){\n\t\t\tfn = errorImpl.length == 2?function(msg){errorImpl(key,msg)}:errorImpl;\n\t\t}\n\t\terrorHandler[key] = fn && function(msg){\n\t\t\tfn('[xmldom '+key+']\\t'+msg+_locator(locator));\n\t\t}||function(){};\n\t}\n\tbuild('warning');\n\tbuild('error');\n\tbuild('fatalError');\n\treturn errorHandler;\n}\n\n//console.log('#\\n\\n\\n\\n\\n\\n\\n####')\n/**\n * +ContentHandler+ErrorHandler\n * +LexicalHandler+EntityResolver2\n * -DeclHandler-DTDHandler\n *\n * DefaultHandler:EntityResolver, DTDHandler, ContentHandler, ErrorHandler\n * DefaultHandler2:DefaultHandler,LexicalHandler, DeclHandler, EntityResolver2\n * @link http://www.saxproject.org/apidoc/org/xml/sax/helpers/DefaultHandler.html\n */\nfunction DOMHandler() {\n this.cdata = false;\n}\nfunction position(locator,node){\n\tnode.lineNumber = locator.lineNumber;\n\tnode.columnNumber = locator.columnNumber;\n}\n/**\n * @see org.xml.sax.ContentHandler#startDocument\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ContentHandler.html\n */\nDOMHandler.prototype = {\n\tstartDocument : function() {\n \tthis.doc = new DOMImplementation().createDocument(null, null, null);\n \tif (this.locator) {\n \tthis.doc.documentURI = this.locator.systemId;\n \t}\n\t},\n\tstartElement:function(namespaceURI, localName, qName, attrs) {\n\t\tvar doc = this.doc;\n\t var el = doc.createElementNS(namespaceURI, qName||localName);\n\t var len = attrs.length;\n\t appendElement(this, el);\n\t this.currentElement = el;\n\n\t\tthis.locator && position(this.locator,el)\n\t for (var i = 0 ; i < len; i++) {\n\t var namespaceURI = attrs.getURI(i);\n\t var value = attrs.getValue(i);\n\t var qName = attrs.getQName(i);\n\t\t\tvar attr = doc.createAttributeNS(namespaceURI, qName);\n\t\t\tthis.locator &&position(attrs.getLocator(i),attr);\n\t\t\tattr.value = attr.nodeValue = value;\n\t\t\tel.setAttributeNode(attr)\n\t }\n\t},\n\tendElement:function(namespaceURI, localName, qName) {\n\t\tvar current = this.currentElement\n\t\tvar tagName = current.tagName;\n\t\tthis.currentElement = current.parentNode;\n\t},\n\tstartPrefixMapping:function(prefix, uri) {\n\t},\n\tendPrefixMapping:function(prefix) {\n\t},\n\tprocessingInstruction:function(target, data) {\n\t var ins = this.doc.createProcessingInstruction(target, data);\n\t this.locator && position(this.locator,ins)\n\t appendElement(this, ins);\n\t},\n\tignorableWhitespace:function(ch, start, length) {\n\t},\n\tcharacters:function(chars, start, length) {\n\t\tchars = _toString.apply(this,arguments)\n\t\t//console.log(chars)\n\t\tif(chars){\n\t\t\tif (this.cdata) {\n\t\t\t\tvar charNode = this.doc.createCDATASection(chars);\n\t\t\t} else {\n\t\t\t\tvar charNode = this.doc.createTextNode(chars);\n\t\t\t}\n\t\t\tif(this.currentElement){\n\t\t\t\tthis.currentElement.appendChild(charNode);\n\t\t\t}else if(/^\\s*$/.test(chars)){\n\t\t\t\tthis.doc.appendChild(charNode);\n\t\t\t\t//process xml\n\t\t\t}\n\t\t\tthis.locator && position(this.locator,charNode)\n\t\t}\n\t},\n\tskippedEntity:function(name) {\n\t},\n\tendDocument:function() {\n\t\tthis.doc.normalize();\n\t},\n\tsetDocumentLocator:function (locator) {\n\t if(this.locator = locator){// && !('lineNumber' in locator)){\n\t \tlocator.lineNumber = 0;\n\t }\n\t},\n\t//LexicalHandler\n\tcomment:function(chars, start, length) {\n\t\tchars = _toString.apply(this,arguments)\n\t var comm = this.doc.createComment(chars);\n\t this.locator && position(this.locator,comm)\n\t appendElement(this, comm);\n\t},\n\n\tstartCDATA:function() {\n\t //used in characters() methods\n\t this.cdata = true;\n\t},\n\tendCDATA:function() {\n\t this.cdata = false;\n\t},\n\n\tstartDTD:function(name, publicId, systemId) {\n\t\tvar impl = this.doc.implementation;\n\t if (impl && impl.createDocumentType) {\n\t var dt = impl.createDocumentType(name, publicId, systemId);\n\t this.locator && position(this.locator,dt)\n\t appendElement(this, dt);\n\t\t\t\t\tthis.doc.doctype = dt;\n\t }\n\t},\n\t/**\n\t * @see org.xml.sax.ErrorHandler\n\t * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html\n\t */\n\twarning:function(error) {\n\t\tconsole.warn('[xmldom warning]\\t'+error,_locator(this.locator));\n\t},\n\terror:function(error) {\n\t\tconsole.error('[xmldom error]\\t'+error,_locator(this.locator));\n\t},\n\tfatalError:function(error) {\n\t\tthrow new ParseError(error, this.locator);\n\t}\n}\nfunction _locator(l){\n\tif(l){\n\t\treturn '\\n@'+(l.systemId ||'')+'#[line:'+l.lineNumber+',col:'+l.columnNumber+']'\n\t}\n}\nfunction _toString(chars,start,length){\n\tif(typeof chars == 'string'){\n\t\treturn chars.substr(start,length)\n\t}else{//java sax connect width xmldom on rhino(what about: \"? && !(chars instanceof String)\")\n\t\tif(chars.length >= start+length || start){\n\t\t\treturn new java.lang.String(chars,start,length)+'';\n\t\t}\n\t\treturn chars;\n\t}\n}\n\n/*\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/LexicalHandler.html\n * used method of org.xml.sax.ext.LexicalHandler:\n * #comment(chars, start, length)\n * #startCDATA()\n * #endCDATA()\n * #startDTD(name, publicId, systemId)\n *\n *\n * IGNORED method of org.xml.sax.ext.LexicalHandler:\n * #endDTD()\n * #startEntity(name)\n * #endEntity(name)\n *\n *\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/DeclHandler.html\n * IGNORED method of org.xml.sax.ext.DeclHandler\n * \t#attributeDecl(eName, aName, type, mode, value)\n * #elementDecl(name, model)\n * #externalEntityDecl(name, publicId, systemId)\n * #internalEntityDecl(name, value)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/EntityResolver2.html\n * IGNORED method of org.xml.sax.EntityResolver2\n * #resolveEntity(String name,String publicId,String baseURI,String systemId)\n * #resolveEntity(publicId, systemId)\n * #getExternalSubset(name, baseURI)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/DTDHandler.html\n * IGNORED method of org.xml.sax.DTDHandler\n * #notationDecl(name, publicId, systemId) {};\n * #unparsedEntityDecl(name, publicId, systemId, notationName) {};\n */\n\"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl\".replace(/\\w+/g,function(key){\n\tDOMHandler.prototype[key] = function(){return null}\n})\n\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 */\nfunction appendElement (hander,node) {\n if (!hander.currentElement) {\n hander.doc.appendChild(node);\n } else {\n hander.currentElement.appendChild(node);\n }\n}//appendChild and setAttributeNS are preformance key\n\nexports.__DOMHandler = DOMHandler;\nexports.normalizeLineEndings = normalizeLineEndings;\nexports.DOMParser = DOMParser;\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\nvar scrollSetting = {\n \"\": true,\n \"up\": true\n};\n\nfunction findScrollSetting(value) {\n if (typeof value !== \"string\") {\n return false;\n }\n var scroll = scrollSetting[value.toLowerCase()];\n return scroll ? value.toLowerCase() : false;\n}\n\nfunction isValidPercentValue(value) {\n return typeof value === \"number\" && (value >= 0 && value <= 100);\n}\n\n// VTTRegion shim http://dev.w3.org/html5/webvtt/#vttregion-interface\nfunction VTTRegion() {\n var _width = 100;\n var _lines = 3;\n var _regionAnchorX = 0;\n var _regionAnchorY = 100;\n var _viewportAnchorX = 0;\n var _viewportAnchorY = 100;\n var _scroll = \"\";\n\n Object.defineProperties(this, {\n \"width\": {\n enumerable: true,\n get: function() {\n return _width;\n },\n set: function(value) {\n if (!isValidPercentValue(value)) {\n throw new Error(\"Width must be between 0 and 100.\");\n }\n _width = value;\n }\n },\n \"lines\": {\n enumerable: true,\n get: function() {\n return _lines;\n },\n set: function(value) {\n if (typeof value !== \"number\") {\n throw new TypeError(\"Lines must be set to a number.\");\n }\n _lines = value;\n }\n },\n \"regionAnchorY\": {\n enumerable: true,\n get: function() {\n return _regionAnchorY;\n },\n set: function(value) {\n if (!isValidPercentValue(value)) {\n throw new Error(\"RegionAnchorX must be between 0 and 100.\");\n }\n _regionAnchorY = value;\n }\n },\n \"regionAnchorX\": {\n enumerable: true,\n get: function() {\n return _regionAnchorX;\n },\n set: function(value) {\n if(!isValidPercentValue(value)) {\n throw new Error(\"RegionAnchorY must be between 0 and 100.\");\n }\n _regionAnchorX = value;\n }\n },\n \"viewportAnchorY\": {\n enumerable: true,\n get: function() {\n return _viewportAnchorY;\n },\n set: function(value) {\n if (!isValidPercentValue(value)) {\n throw new Error(\"ViewportAnchorY must be between 0 and 100.\");\n }\n _viewportAnchorY = value;\n }\n },\n \"viewportAnchorX\": {\n enumerable: true,\n get: function() {\n return _viewportAnchorX;\n },\n set: function(value) {\n if (!isValidPercentValue(value)) {\n throw new Error(\"ViewportAnchorX must be between 0 and 100.\");\n }\n _viewportAnchorX = value;\n }\n },\n \"scroll\": {\n enumerable: true,\n get: function() {\n return _scroll;\n },\n set: function(value) {\n var setting = findScrollSetting(value);\n // Have to check for false as an empty string is a legal value.\n if (setting === false) {\n console.warn(\"Scroll: an invalid or illegal string was specified.\");\n } else {\n _scroll = setting;\n }\n }\n }\n });\n}\n\nmodule.exports = VTTRegion;\n","\"use strict\";\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar InterceptorsStorage = /*#__PURE__*/function () {\n function InterceptorsStorage() {\n this.typeToInterceptorsMap_ = new Map();\n this.enabled_ = false;\n }\n\n var _proto = InterceptorsStorage.prototype;\n\n _proto.getIsEnabled = function getIsEnabled() {\n return this.enabled_;\n };\n\n _proto.enable = function enable() {\n this.enabled_ = true;\n };\n\n _proto.disable = function disable() {\n this.enabled_ = false;\n };\n\n _proto.reset = function reset() {\n this.typeToInterceptorsMap_ = new Map();\n this.enabled_ = false;\n };\n\n _proto.addInterceptor = function addInterceptor(type, interceptor) {\n if (!this.typeToInterceptorsMap_.has(type)) {\n this.typeToInterceptorsMap_.set(type, new Set());\n }\n\n var interceptorsSet = this.typeToInterceptorsMap_.get(type);\n\n if (interceptorsSet.has(interceptor)) {\n // already have this interceptor\n return false;\n }\n\n interceptorsSet.add(interceptor);\n return true;\n };\n\n _proto.removeInterceptor = function removeInterceptor(type, interceptor) {\n var interceptorsSet = this.typeToInterceptorsMap_.get(type);\n\n if (interceptorsSet && interceptorsSet.has(interceptor)) {\n interceptorsSet.delete(interceptor);\n return true;\n }\n\n return false;\n };\n\n _proto.clearInterceptorsByType = function clearInterceptorsByType(type) {\n var interceptorsSet = this.typeToInterceptorsMap_.get(type);\n\n if (!interceptorsSet) {\n return false;\n }\n\n this.typeToInterceptorsMap_.delete(type);\n this.typeToInterceptorsMap_.set(type, new Set());\n return true;\n };\n\n _proto.clear = function clear() {\n if (!this.typeToInterceptorsMap_.size) {\n return false;\n }\n\n this.typeToInterceptorsMap_ = new Map();\n return true;\n };\n\n _proto.getForType = function getForType(type) {\n return this.typeToInterceptorsMap_.get(type) || new Set();\n };\n\n _proto.execute = function execute(type, payload) {\n var interceptors = this.getForType(type);\n\n for (var _iterator = _createForOfIteratorHelperLoose(interceptors), _step; !(_step = _iterator()).done;) {\n var interceptor = _step.value;\n\n try {\n payload = interceptor(payload);\n } catch (e) {//ignore\n }\n }\n\n return payload;\n };\n\n return InterceptorsStorage;\n}();\n\nmodule.exports = InterceptorsStorage;","/**\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/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\nvar document = require('global/document');\n\nvar _objCreate = Object.create || (function() {\n function F() {}\n return function(o) {\n if (arguments.length !== 1) {\n throw new Error('Object.create shim only accepts one parameter.');\n }\n F.prototype = o;\n return new F();\n };\n})();\n\n// Creates a new ParserError object from an errorData object. The errorData\n// object should have default code and message properties. The default message\n// property can be overriden by passing in a message parameter.\n// See ParsingError.Errors below for acceptable errors.\nfunction ParsingError(errorData, message) {\n this.name = \"ParsingError\";\n this.code = errorData.code;\n this.message = message || errorData.message;\n}\nParsingError.prototype = _objCreate(Error.prototype);\nParsingError.prototype.constructor = ParsingError;\n\n// ParsingError metadata for acceptable ParsingErrors.\nParsingError.Errors = {\n BadSignature: {\n code: 0,\n message: \"Malformed WebVTT signature.\"\n },\n BadTimeStamp: {\n code: 1,\n message: \"Malformed time stamp.\"\n }\n};\n\n// Try to parse input as a time stamp.\nfunction parseTimeStamp(input) {\n\n function computeSeconds(h, m, s, f) {\n return (h | 0) * 3600 + (m | 0) * 60 + (s | 0) + (f | 0) / 1000;\n }\n\n var m = input.match(/^(\\d+):(\\d{1,2})(:\\d{1,2})?\\.(\\d{3})/);\n if (!m) {\n return null;\n }\n\n if (m[3]) {\n // Timestamp takes the form of [hours]:[minutes]:[seconds].[milliseconds]\n return computeSeconds(m[1], m[2], m[3].replace(\":\", \"\"), m[4]);\n } else if (m[1] > 59) {\n // Timestamp takes the form of [hours]:[minutes].[milliseconds]\n // First position is hours as it's over 59.\n return computeSeconds(m[1], m[2], 0, m[4]);\n } else {\n // Timestamp takes the form of [minutes]:[seconds].[milliseconds]\n return computeSeconds(0, m[1], m[2], m[4]);\n }\n}\n\n// A settings object holds key/value pairs and will ignore anything but the first\n// assignment to a specific key.\nfunction Settings() {\n this.values = _objCreate(null);\n}\n\nSettings.prototype = {\n // Only accept the first assignment to any key.\n set: function(k, v) {\n if (!this.get(k) && v !== \"\") {\n this.values[k] = v;\n }\n },\n // Return the value for a key, or a default value.\n // If 'defaultKey' is passed then 'dflt' is assumed to be an object with\n // a number of possible default values as properties where 'defaultKey' is\n // the key of the property that will be chosen; otherwise it's assumed to be\n // a single value.\n get: function(k, dflt, defaultKey) {\n if (defaultKey) {\n return this.has(k) ? this.values[k] : dflt[defaultKey];\n }\n return this.has(k) ? this.values[k] : dflt;\n },\n // Check whether we have a value for a key.\n has: function(k) {\n return k in this.values;\n },\n // Accept a setting if its one of the given alternatives.\n alt: function(k, v, a) {\n for (var n = 0; n < a.length; ++n) {\n if (v === a[n]) {\n this.set(k, v);\n break;\n }\n }\n },\n // Accept a setting if its a valid (signed) integer.\n integer: function(k, v) {\n if (/^-?\\d+$/.test(v)) { // integer\n this.set(k, parseInt(v, 10));\n }\n },\n // Accept a setting if its a valid percentage.\n percent: function(k, v) {\n var m;\n if ((m = v.match(/^([\\d]{1,3})(\\.[\\d]*)?%$/))) {\n v = parseFloat(v);\n if (v >= 0 && v <= 100) {\n this.set(k, v);\n return true;\n }\n }\n return false;\n }\n};\n\n// Helper function to parse input into groups separated by 'groupDelim', and\n// interprete each group as a key/value pair separated by 'keyValueDelim'.\nfunction parseOptions(input, callback, keyValueDelim, groupDelim) {\n var groups = groupDelim ? input.split(groupDelim) : [input];\n for (var i in groups) {\n if (typeof groups[i] !== \"string\") {\n continue;\n }\n var kv = groups[i].split(keyValueDelim);\n if (kv.length !== 2) {\n continue;\n }\n var k = kv[0].trim();\n var v = kv[1].trim();\n callback(k, v);\n }\n}\n\nfunction parseCue(input, cue, regionList) {\n // Remember the original input if we need to throw an error.\n var oInput = input;\n // 4.1 WebVTT timestamp\n function consumeTimeStamp() {\n var ts = parseTimeStamp(input);\n if (ts === null) {\n throw new ParsingError(ParsingError.Errors.BadTimeStamp,\n \"Malformed timestamp: \" + oInput);\n }\n // Remove time stamp from input.\n input = input.replace(/^[^\\sa-zA-Z-]+/, \"\");\n return ts;\n }\n\n // 4.4.2 WebVTT cue settings\n function consumeCueSettings(input, cue) {\n var settings = new Settings();\n\n parseOptions(input, function (k, v) {\n switch (k) {\n case \"region\":\n // Find the last region we parsed with the same region id.\n for (var i = regionList.length - 1; i >= 0; i--) {\n if (regionList[i].id === v) {\n settings.set(k, regionList[i].region);\n break;\n }\n }\n break;\n case \"vertical\":\n settings.alt(k, v, [\"rl\", \"lr\"]);\n break;\n case \"line\":\n var vals = v.split(\",\"),\n vals0 = vals[0];\n settings.integer(k, vals0);\n settings.percent(k, vals0) ? settings.set(\"snapToLines\", false) : null;\n settings.alt(k, vals0, [\"auto\"]);\n if (vals.length === 2) {\n settings.alt(\"lineAlign\", vals[1], [\"start\", \"center\", \"end\"]);\n }\n break;\n case \"position\":\n vals = v.split(\",\");\n settings.percent(k, vals[0]);\n if (vals.length === 2) {\n settings.alt(\"positionAlign\", vals[1], [\"start\", \"center\", \"end\"]);\n }\n break;\n case \"size\":\n settings.percent(k, v);\n break;\n case \"align\":\n settings.alt(k, v, [\"start\", \"center\", \"end\", \"left\", \"right\"]);\n break;\n }\n }, /:/, /\\s/);\n\n // Apply default values for any missing fields.\n cue.region = settings.get(\"region\", null);\n cue.vertical = settings.get(\"vertical\", \"\");\n try {\n cue.line = settings.get(\"line\", \"auto\");\n } catch (e) {}\n cue.lineAlign = settings.get(\"lineAlign\", \"start\");\n cue.snapToLines = settings.get(\"snapToLines\", true);\n cue.size = settings.get(\"size\", 100);\n // Safari still uses the old middle value and won't accept center\n try {\n cue.align = settings.get(\"align\", \"center\");\n } catch (e) {\n cue.align = settings.get(\"align\", \"middle\");\n }\n try {\n cue.position = settings.get(\"position\", \"auto\");\n } catch (e) {\n cue.position = settings.get(\"position\", {\n start: 0,\n left: 0,\n center: 50,\n middle: 50,\n end: 100,\n right: 100\n }, cue.align);\n }\n\n\n cue.positionAlign = settings.get(\"positionAlign\", {\n start: \"start\",\n left: \"start\",\n center: \"center\",\n middle: \"center\",\n end: \"end\",\n right: \"end\"\n }, cue.align);\n }\n\n function skipWhitespace() {\n input = input.replace(/^\\s+/, \"\");\n }\n\n // 4.1 WebVTT cue timings.\n skipWhitespace();\n cue.startTime = consumeTimeStamp(); // (1) collect cue start time\n skipWhitespace();\n if (input.substr(0, 3) !== \"-->\") { // (3) next characters must match \"-->\"\n throw new ParsingError(ParsingError.Errors.BadTimeStamp,\n \"Malformed time stamp (time stamps must be separated by '-->'): \" +\n oInput);\n }\n input = input.substr(3);\n skipWhitespace();\n cue.endTime = consumeTimeStamp(); // (5) collect cue end time\n\n // 4.1 WebVTT cue settings list.\n skipWhitespace();\n consumeCueSettings(input, cue);\n}\n\n// When evaluating this file as part of a Webpack bundle for server\n// side rendering, `document` is an empty object.\nvar TEXTAREA_ELEMENT = document.createElement && document.createElement(\"textarea\");\n\nvar TAG_NAME = {\n c: \"span\",\n i: \"i\",\n b: \"b\",\n u: \"u\",\n ruby: \"ruby\",\n rt: \"rt\",\n v: \"span\",\n lang: \"span\"\n};\n\n// 5.1 default text color\n// 5.2 default text background color is equivalent to text color with bg_ prefix\nvar DEFAULT_COLOR_CLASS = {\n white: 'rgba(255,255,255,1)',\n lime: 'rgba(0,255,0,1)',\n cyan: 'rgba(0,255,255,1)',\n red: 'rgba(255,0,0,1)',\n yellow: 'rgba(255,255,0,1)',\n magenta: 'rgba(255,0,255,1)',\n blue: 'rgba(0,0,255,1)',\n black: 'rgba(0,0,0,1)'\n};\n\nvar TAG_ANNOTATION = {\n v: \"title\",\n lang: \"lang\"\n};\n\nvar NEEDS_PARENT = {\n rt: \"ruby\"\n};\n\n// Parse content into a document fragment.\nfunction parseContent(window, input) {\n function nextToken() {\n // Check for end-of-string.\n if (!input) {\n return null;\n }\n\n // Consume 'n' characters from the input.\n function consume(result) {\n input = input.substr(result.length);\n return result;\n }\n\n var m = input.match(/^([^<]*)(<[^>]*>?)?/);\n // If there is some text before the next tag, return it, otherwise return\n // the tag.\n return consume(m[1] ? m[1] : m[2]);\n }\n\n function unescape(s) {\n TEXTAREA_ELEMENT.innerHTML = s;\n s = TEXTAREA_ELEMENT.textContent;\n TEXTAREA_ELEMENT.textContent = \"\";\n return s;\n }\n\n function shouldAdd(current, element) {\n return !NEEDS_PARENT[element.localName] ||\n NEEDS_PARENT[element.localName] === current.localName;\n }\n\n // Create an element for this tag.\n function createElement(type, annotation) {\n var tagName = TAG_NAME[type];\n if (!tagName) {\n return null;\n }\n var element = window.document.createElement(tagName);\n var name = TAG_ANNOTATION[type];\n if (name && annotation) {\n element[name] = annotation.trim();\n }\n return element;\n }\n\n var rootDiv = window.document.createElement(\"div\"),\n current = rootDiv,\n t,\n tagStack = [];\n\n while ((t = nextToken()) !== null) {\n if (t[0] === '<') {\n if (t[1] === \"/\") {\n // If the closing tag matches, move back up to the parent node.\n if (tagStack.length &&\n tagStack[tagStack.length - 1] === t.substr(2).replace(\">\", \"\")) {\n tagStack.pop();\n current = current.parentNode;\n }\n // Otherwise just ignore the end tag.\n continue;\n }\n var ts = parseTimeStamp(t.substr(1, t.length - 2));\n var node;\n if (ts) {\n // Timestamps are lead nodes as well.\n node = window.document.createProcessingInstruction(\"timestamp\", ts);\n current.appendChild(node);\n continue;\n }\n var m = t.match(/^<([^.\\s/0-9>]+)(\\.[^\\s\\\\>]+)?([^>\\\\]+)?(\\\\?)>?$/);\n // If we can't parse the tag, skip to the next tag.\n if (!m) {\n continue;\n }\n // Try to construct an element, and ignore the tag if we couldn't.\n node = createElement(m[1], m[3]);\n if (!node) {\n continue;\n }\n // Determine if the tag should be added based on the context of where it\n // is placed in the cuetext.\n if (!shouldAdd(current, node)) {\n continue;\n }\n // Set the class list (as a list of classes, separated by space).\n if (m[2]) {\n var classes = m[2].split('.');\n\n classes.forEach(function(cl) {\n var bgColor = /^bg_/.test(cl);\n // slice out `bg_` if it's a background color\n var colorName = bgColor ? cl.slice(3) : cl;\n\n if (DEFAULT_COLOR_CLASS.hasOwnProperty(colorName)) {\n var propName = bgColor ? 'background-color' : 'color';\n var propValue = DEFAULT_COLOR_CLASS[colorName];\n\n node.style[propName] = propValue;\n }\n });\n\n node.className = classes.join(' ');\n }\n // Append the node to the current node, and enter the scope of the new\n // node.\n tagStack.push(m[1]);\n current.appendChild(node);\n current = node;\n continue;\n }\n\n // Text nodes are leaf nodes.\n current.appendChild(window.document.createTextNode(unescape(t)));\n }\n\n return rootDiv;\n}\n\n// This is a list of all the Unicode characters that have a strong\n// right-to-left category. What this means is that these characters are\n// written right-to-left for sure. It was generated by pulling all the strong\n// right-to-left characters out of the Unicode data table. That table can\n// found at: http://www.unicode.org/Public/UNIDATA/UnicodeData.txt\nvar strongRTLRanges = [[0x5be, 0x5be], [0x5c0, 0x5c0], [0x5c3, 0x5c3], [0x5c6, 0x5c6],\n [0x5d0, 0x5ea], [0x5f0, 0x5f4], [0x608, 0x608], [0x60b, 0x60b], [0x60d, 0x60d],\n [0x61b, 0x61b], [0x61e, 0x64a], [0x66d, 0x66f], [0x671, 0x6d5], [0x6e5, 0x6e6],\n [0x6ee, 0x6ef], [0x6fa, 0x70d], [0x70f, 0x710], [0x712, 0x72f], [0x74d, 0x7a5],\n [0x7b1, 0x7b1], [0x7c0, 0x7ea], [0x7f4, 0x7f5], [0x7fa, 0x7fa], [0x800, 0x815],\n [0x81a, 0x81a], [0x824, 0x824], [0x828, 0x828], [0x830, 0x83e], [0x840, 0x858],\n [0x85e, 0x85e], [0x8a0, 0x8a0], [0x8a2, 0x8ac], [0x200f, 0x200f],\n [0xfb1d, 0xfb1d], [0xfb1f, 0xfb28], [0xfb2a, 0xfb36], [0xfb38, 0xfb3c],\n [0xfb3e, 0xfb3e], [0xfb40, 0xfb41], [0xfb43, 0xfb44], [0xfb46, 0xfbc1],\n [0xfbd3, 0xfd3d], [0xfd50, 0xfd8f], [0xfd92, 0xfdc7], [0xfdf0, 0xfdfc],\n [0xfe70, 0xfe74], [0xfe76, 0xfefc], [0x10800, 0x10805], [0x10808, 0x10808],\n [0x1080a, 0x10835], [0x10837, 0x10838], [0x1083c, 0x1083c], [0x1083f, 0x10855],\n [0x10857, 0x1085f], [0x10900, 0x1091b], [0x10920, 0x10939], [0x1093f, 0x1093f],\n [0x10980, 0x109b7], [0x109be, 0x109bf], [0x10a00, 0x10a00], [0x10a10, 0x10a13],\n [0x10a15, 0x10a17], [0x10a19, 0x10a33], [0x10a40, 0x10a47], [0x10a50, 0x10a58],\n [0x10a60, 0x10a7f], [0x10b00, 0x10b35], [0x10b40, 0x10b55], [0x10b58, 0x10b72],\n [0x10b78, 0x10b7f], [0x10c00, 0x10c48], [0x1ee00, 0x1ee03], [0x1ee05, 0x1ee1f],\n [0x1ee21, 0x1ee22], [0x1ee24, 0x1ee24], [0x1ee27, 0x1ee27], [0x1ee29, 0x1ee32],\n [0x1ee34, 0x1ee37], [0x1ee39, 0x1ee39], [0x1ee3b, 0x1ee3b], [0x1ee42, 0x1ee42],\n [0x1ee47, 0x1ee47], [0x1ee49, 0x1ee49], [0x1ee4b, 0x1ee4b], [0x1ee4d, 0x1ee4f],\n [0x1ee51, 0x1ee52], [0x1ee54, 0x1ee54], [0x1ee57, 0x1ee57], [0x1ee59, 0x1ee59],\n [0x1ee5b, 0x1ee5b], [0x1ee5d, 0x1ee5d], [0x1ee5f, 0x1ee5f], [0x1ee61, 0x1ee62],\n [0x1ee64, 0x1ee64], [0x1ee67, 0x1ee6a], [0x1ee6c, 0x1ee72], [0x1ee74, 0x1ee77],\n [0x1ee79, 0x1ee7c], [0x1ee7e, 0x1ee7e], [0x1ee80, 0x1ee89], [0x1ee8b, 0x1ee9b],\n [0x1eea1, 0x1eea3], [0x1eea5, 0x1eea9], [0x1eeab, 0x1eebb], [0x10fffd, 0x10fffd]];\n\nfunction isStrongRTLChar(charCode) {\n for (var i = 0; i < strongRTLRanges.length; i++) {\n var currentRange = strongRTLRanges[i];\n if (charCode >= currentRange[0] && charCode <= currentRange[1]) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction determineBidi(cueDiv) {\n var nodeStack = [],\n text = \"\",\n charCode;\n\n if (!cueDiv || !cueDiv.childNodes) {\n return \"ltr\";\n }\n\n function pushNodes(nodeStack, node) {\n for (var i = node.childNodes.length - 1; i >= 0; i--) {\n nodeStack.push(node.childNodes[i]);\n }\n }\n\n function nextTextNode(nodeStack) {\n if (!nodeStack || !nodeStack.length) {\n return null;\n }\n\n var node = nodeStack.pop(),\n text = node.textContent || node.innerText;\n if (text) {\n // TODO: This should match all unicode type B characters (paragraph\n // separator characters). See issue #115.\n var m = text.match(/^.*(\\n|\\r)/);\n if (m) {\n nodeStack.length = 0;\n return m[0];\n }\n return text;\n }\n if (node.tagName === \"ruby\") {\n return nextTextNode(nodeStack);\n }\n if (node.childNodes) {\n pushNodes(nodeStack, node);\n return nextTextNode(nodeStack);\n }\n }\n\n pushNodes(nodeStack, cueDiv);\n while ((text = nextTextNode(nodeStack))) {\n for (var i = 0; i < text.length; i++) {\n charCode = text.charCodeAt(i);\n if (isStrongRTLChar(charCode)) {\n return \"rtl\";\n }\n }\n }\n return \"ltr\";\n}\n\nfunction computeLinePos(cue) {\n if (typeof cue.line === \"number\" &&\n (cue.snapToLines || (cue.line >= 0 && cue.line <= 100))) {\n return cue.line;\n }\n if (!cue.track || !cue.track.textTrackList ||\n !cue.track.textTrackList.mediaElement) {\n return -1;\n }\n var track = cue.track,\n trackList = track.textTrackList,\n count = 0;\n for (var i = 0; i < trackList.length && trackList[i] !== track; i++) {\n if (trackList[i].mode === \"showing\") {\n count++;\n }\n }\n return ++count * -1;\n}\n\nfunction StyleBox() {\n}\n\n// Apply styles to a div. If there is no div passed then it defaults to the\n// div on 'this'.\nStyleBox.prototype.applyStyles = function(styles, div) {\n div = div || this.div;\n for (var prop in styles) {\n if (styles.hasOwnProperty(prop)) {\n div.style[prop] = styles[prop];\n }\n }\n};\n\nStyleBox.prototype.formatStyle = function(val, unit) {\n return val === 0 ? 0 : val + unit;\n};\n\n// Constructs the computed display state of the cue (a div). Places the div\n// into the overlay which should be a block level element (usually a div).\nfunction CueStyleBox(window, cue, styleOptions) {\n StyleBox.call(this);\n this.cue = cue;\n\n // Parse our cue's text into a DOM tree rooted at 'cueDiv'. This div will\n // have inline positioning and will function as the cue background box.\n this.cueDiv = parseContent(window, cue.text);\n var styles = {\n color: \"rgba(255, 255, 255, 1)\",\n backgroundColor: \"rgba(0, 0, 0, 0.8)\",\n position: \"relative\",\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n display: \"inline\",\n writingMode: cue.vertical === \"\" ? \"horizontal-tb\"\n : cue.vertical === \"lr\" ? \"vertical-lr\"\n : \"vertical-rl\",\n unicodeBidi: \"plaintext\"\n };\n\n this.applyStyles(styles, this.cueDiv);\n\n // Create an absolutely positioned div that will be used to position the cue\n // div. Note, all WebVTT cue-setting alignments are equivalent to the CSS\n // mirrors of them except middle instead of center on Safari.\n this.div = window.document.createElement(\"div\");\n styles = {\n direction: determineBidi(this.cueDiv),\n writingMode: cue.vertical === \"\" ? \"horizontal-tb\"\n : cue.vertical === \"lr\" ? \"vertical-lr\"\n : \"vertical-rl\",\n unicodeBidi: \"plaintext\",\n textAlign: cue.align === \"middle\" ? \"center\" : cue.align,\n font: styleOptions.font,\n whiteSpace: \"pre-line\",\n position: \"absolute\"\n };\n\n this.applyStyles(styles);\n this.div.appendChild(this.cueDiv);\n\n // Calculate the distance from the reference edge of the viewport to the text\n // position of the cue box. The reference edge will be resolved later when\n // the box orientation styles are applied.\n var textPos = 0;\n switch (cue.positionAlign) {\n case \"start\":\n case \"line-left\":\n textPos = cue.position;\n break;\n case \"center\":\n textPos = cue.position - (cue.size / 2);\n break;\n case \"end\":\n case \"line-right\":\n textPos = cue.position - cue.size;\n break;\n }\n\n // Horizontal box orientation; textPos is the distance from the left edge of the\n // area to the left edge of the box and cue.size is the distance extending to\n // the right from there.\n if (cue.vertical === \"\") {\n this.applyStyles({\n left: this.formatStyle(textPos, \"%\"),\n width: this.formatStyle(cue.size, \"%\")\n });\n // Vertical box orientation; textPos is the distance from the top edge of the\n // area to the top edge of the box and cue.size is the height extending\n // downwards from there.\n } else {\n this.applyStyles({\n top: this.formatStyle(textPos, \"%\"),\n height: this.formatStyle(cue.size, \"%\")\n });\n }\n\n this.move = function(box) {\n this.applyStyles({\n top: this.formatStyle(box.top, \"px\"),\n bottom: this.formatStyle(box.bottom, \"px\"),\n left: this.formatStyle(box.left, \"px\"),\n right: this.formatStyle(box.right, \"px\"),\n height: this.formatStyle(box.height, \"px\"),\n width: this.formatStyle(box.width, \"px\")\n });\n };\n}\nCueStyleBox.prototype = _objCreate(StyleBox.prototype);\nCueStyleBox.prototype.constructor = CueStyleBox;\n\n// Represents the co-ordinates of an Element in a way that we can easily\n// compute things with such as if it overlaps or intersects with another Element.\n// Can initialize it with either a StyleBox or another BoxPosition.\nfunction BoxPosition(obj) {\n // Either a BoxPosition was passed in and we need to copy it, or a StyleBox\n // was passed in and we need to copy the results of 'getBoundingClientRect'\n // as the object returned is readonly. All co-ordinate values are in reference\n // to the viewport origin (top left).\n var lh, height, width, top;\n if (obj.div) {\n height = obj.div.offsetHeight;\n width = obj.div.offsetWidth;\n top = obj.div.offsetTop;\n\n var rects = (rects = obj.div.childNodes) && (rects = rects[0]) &&\n rects.getClientRects && rects.getClientRects();\n obj = obj.div.getBoundingClientRect();\n // In certain cases the outter div will be slightly larger then the sum of\n // the inner div's lines. This could be due to bold text, etc, on some platforms.\n // In this case we should get the average line height and use that. This will\n // result in the desired behaviour.\n lh = rects ? Math.max((rects[0] && rects[0].height) || 0, obj.height / rects.length)\n : 0;\n\n }\n this.left = obj.left;\n this.right = obj.right;\n this.top = obj.top || top;\n this.height = obj.height || height;\n this.bottom = obj.bottom || (top + (obj.height || height));\n this.width = obj.width || width;\n this.lineHeight = lh !== undefined ? lh : obj.lineHeight;\n}\n\n// Move the box along a particular axis. Optionally pass in an amount to move\n// the box. If no amount is passed then the default is the line height of the\n// box.\nBoxPosition.prototype.move = function(axis, toMove) {\n toMove = toMove !== undefined ? toMove : this.lineHeight;\n switch (axis) {\n case \"+x\":\n this.left += toMove;\n this.right += toMove;\n break;\n case \"-x\":\n this.left -= toMove;\n this.right -= toMove;\n break;\n case \"+y\":\n this.top += toMove;\n this.bottom += toMove;\n break;\n case \"-y\":\n this.top -= toMove;\n this.bottom -= toMove;\n break;\n }\n};\n\n// Check if this box overlaps another box, b2.\nBoxPosition.prototype.overlaps = function(b2) {\n return this.left < b2.right &&\n this.right > b2.left &&\n this.top < b2.bottom &&\n this.bottom > b2.top;\n};\n\n// Check if this box overlaps any other boxes in boxes.\nBoxPosition.prototype.overlapsAny = function(boxes) {\n for (var i = 0; i < boxes.length; i++) {\n if (this.overlaps(boxes[i])) {\n return true;\n }\n }\n return false;\n};\n\n// Check if this box is within another box.\nBoxPosition.prototype.within = function(container) {\n return this.top >= container.top &&\n this.bottom <= container.bottom &&\n this.left >= container.left &&\n this.right <= container.right;\n};\n\n// Check if this box is entirely within the container or it is overlapping\n// on the edge opposite of the axis direction passed. For example, if \"+x\" is\n// passed and the box is overlapping on the left edge of the container, then\n// return true.\nBoxPosition.prototype.overlapsOppositeAxis = function(container, axis) {\n switch (axis) {\n case \"+x\":\n return this.left < container.left;\n case \"-x\":\n return this.right > container.right;\n case \"+y\":\n return this.top < container.top;\n case \"-y\":\n return this.bottom > container.bottom;\n }\n};\n\n// Find the percentage of the area that this box is overlapping with another\n// box.\nBoxPosition.prototype.intersectPercentage = function(b2) {\n var x = Math.max(0, Math.min(this.right, b2.right) - Math.max(this.left, b2.left)),\n y = Math.max(0, Math.min(this.bottom, b2.bottom) - Math.max(this.top, b2.top)),\n intersectArea = x * y;\n return intersectArea / (this.height * this.width);\n};\n\n// Convert the positions from this box to CSS compatible positions using\n// the reference container's positions. This has to be done because this\n// box's positions are in reference to the viewport origin, whereas, CSS\n// values are in referecne to their respective edges.\nBoxPosition.prototype.toCSSCompatValues = function(reference) {\n return {\n top: this.top - reference.top,\n bottom: reference.bottom - this.bottom,\n left: this.left - reference.left,\n right: reference.right - this.right,\n height: this.height,\n width: this.width\n };\n};\n\n// Get an object that represents the box's position without anything extra.\n// Can pass a StyleBox, HTMLElement, or another BoxPositon.\nBoxPosition.getSimpleBoxPosition = function(obj) {\n var height = obj.div ? obj.div.offsetHeight : obj.tagName ? obj.offsetHeight : 0;\n var width = obj.div ? obj.div.offsetWidth : obj.tagName ? obj.offsetWidth : 0;\n var top = obj.div ? obj.div.offsetTop : obj.tagName ? obj.offsetTop : 0;\n\n obj = obj.div ? obj.div.getBoundingClientRect() :\n obj.tagName ? obj.getBoundingClientRect() : obj;\n var ret = {\n left: obj.left,\n right: obj.right,\n top: obj.top || top,\n height: obj.height || height,\n bottom: obj.bottom || (top + (obj.height || height)),\n width: obj.width || width\n };\n return ret;\n};\n\n// Move a StyleBox to its specified, or next best, position. The containerBox\n// is the box that contains the StyleBox, such as a div. boxPositions are\n// a list of other boxes that the styleBox can't overlap with.\nfunction moveBoxToLinePosition(window, styleBox, containerBox, boxPositions) {\n\n // Find the best position for a cue box, b, on the video. The axis parameter\n // is a list of axis, the order of which, it will move the box along. For example:\n // Passing [\"+x\", \"-x\"] will move the box first along the x axis in the positive\n // direction. If it doesn't find a good position for it there it will then move\n // it along the x axis in the negative direction.\n function findBestPosition(b, axis) {\n var bestPosition,\n specifiedPosition = new BoxPosition(b),\n percentage = 1; // Highest possible so the first thing we get is better.\n\n for (var i = 0; i < axis.length; i++) {\n while (b.overlapsOppositeAxis(containerBox, axis[i]) ||\n (b.within(containerBox) && b.overlapsAny(boxPositions))) {\n b.move(axis[i]);\n }\n // We found a spot where we aren't overlapping anything. This is our\n // best position.\n if (b.within(containerBox)) {\n return b;\n }\n var p = b.intersectPercentage(containerBox);\n // If we're outside the container box less then we were on our last try\n // then remember this position as the best position.\n if (percentage > p) {\n bestPosition = new BoxPosition(b);\n percentage = p;\n }\n // Reset the box position to the specified position.\n b = new BoxPosition(specifiedPosition);\n }\n return bestPosition || specifiedPosition;\n }\n\n var boxPosition = new BoxPosition(styleBox),\n cue = styleBox.cue,\n linePos = computeLinePos(cue),\n axis = [];\n\n // If we have a line number to align the cue to.\n if (cue.snapToLines) {\n var size;\n switch (cue.vertical) {\n case \"\":\n axis = [ \"+y\", \"-y\" ];\n size = \"height\";\n break;\n case \"rl\":\n axis = [ \"+x\", \"-x\" ];\n size = \"width\";\n break;\n case \"lr\":\n axis = [ \"-x\", \"+x\" ];\n size = \"width\";\n break;\n }\n\n var step = boxPosition.lineHeight,\n position = step * Math.round(linePos),\n maxPosition = containerBox[size] + step,\n initialAxis = axis[0];\n\n // If the specified intial position is greater then the max position then\n // clamp the box to the amount of steps it would take for the box to\n // reach the max position.\n if (Math.abs(position) > maxPosition) {\n position = position < 0 ? -1 : 1;\n position *= Math.ceil(maxPosition / step) * step;\n }\n\n // If computed line position returns negative then line numbers are\n // relative to the bottom of the video instead of the top. Therefore, we\n // need to increase our initial position by the length or width of the\n // video, depending on the writing direction, and reverse our axis directions.\n if (linePos < 0) {\n position += cue.vertical === \"\" ? containerBox.height : containerBox.width;\n axis = axis.reverse();\n }\n\n // Move the box to the specified position. This may not be its best\n // position.\n boxPosition.move(initialAxis, position);\n\n } else {\n // If we have a percentage line value for the cue.\n var calculatedPercentage = (boxPosition.lineHeight / containerBox.height) * 100;\n\n switch (cue.lineAlign) {\n case \"center\":\n linePos -= (calculatedPercentage / 2);\n break;\n case \"end\":\n linePos -= calculatedPercentage;\n break;\n }\n\n // Apply initial line position to the cue box.\n switch (cue.vertical) {\n case \"\":\n styleBox.applyStyles({\n top: styleBox.formatStyle(linePos, \"%\")\n });\n break;\n case \"rl\":\n styleBox.applyStyles({\n left: styleBox.formatStyle(linePos, \"%\")\n });\n break;\n case \"lr\":\n styleBox.applyStyles({\n right: styleBox.formatStyle(linePos, \"%\")\n });\n break;\n }\n\n axis = [ \"+y\", \"-x\", \"+x\", \"-y\" ];\n\n // Get the box position again after we've applied the specified positioning\n // to it.\n boxPosition = new BoxPosition(styleBox);\n }\n\n var bestPosition = findBestPosition(boxPosition, axis);\n styleBox.move(bestPosition.toCSSCompatValues(containerBox));\n}\n\nfunction WebVTT() {\n // Nothing\n}\n\n// Helper to allow strings to be decoded instead of the default binary utf8 data.\nWebVTT.StringDecoder = function() {\n return {\n decode: function(data) {\n if (!data) {\n return \"\";\n }\n if (typeof data !== \"string\") {\n throw new Error(\"Error - expected string data.\");\n }\n return decodeURIComponent(encodeURIComponent(data));\n }\n };\n};\n\nWebVTT.convertCueToDOMTree = function(window, cuetext) {\n if (!window || !cuetext) {\n return null;\n }\n return parseContent(window, cuetext);\n};\n\nvar FONT_SIZE_PERCENT = 0.05;\nvar FONT_STYLE = \"sans-serif\";\nvar CUE_BACKGROUND_PADDING = \"1.5%\";\n\n// Runs the processing model over the cues and regions passed to it.\n// @param overlay A block level element (usually a div) that the computed cues\n// and regions will be placed into.\nWebVTT.processCues = function(window, cues, overlay) {\n if (!window || !cues || !overlay) {\n return null;\n }\n\n // Remove all previous children.\n while (overlay.firstChild) {\n overlay.removeChild(overlay.firstChild);\n }\n\n var paddedOverlay = window.document.createElement(\"div\");\n paddedOverlay.style.position = \"absolute\";\n paddedOverlay.style.left = \"0\";\n paddedOverlay.style.right = \"0\";\n paddedOverlay.style.top = \"0\";\n paddedOverlay.style.bottom = \"0\";\n paddedOverlay.style.margin = CUE_BACKGROUND_PADDING;\n overlay.appendChild(paddedOverlay);\n\n // Determine if we need to compute the display states of the cues. This could\n // be the case if a cue's state has been changed since the last computation or\n // if it has not been computed yet.\n function shouldCompute(cues) {\n for (var i = 0; i < cues.length; i++) {\n if (cues[i].hasBeenReset || !cues[i].displayState) {\n return true;\n }\n }\n return false;\n }\n\n // We don't need to recompute the cues' display states. Just reuse them.\n if (!shouldCompute(cues)) {\n for (var i = 0; i < cues.length; i++) {\n paddedOverlay.appendChild(cues[i].displayState);\n }\n return;\n }\n\n var boxPositions = [],\n containerBox = BoxPosition.getSimpleBoxPosition(paddedOverlay),\n fontSize = Math.round(containerBox.height * FONT_SIZE_PERCENT * 100) / 100;\n var styleOptions = {\n font: fontSize + \"px \" + FONT_STYLE\n };\n\n (function() {\n var styleBox, cue;\n\n for (var i = 0; i < cues.length; i++) {\n cue = cues[i];\n\n // Compute the intial position and styles of the cue div.\n styleBox = new CueStyleBox(window, cue, styleOptions);\n paddedOverlay.appendChild(styleBox.div);\n\n // Move the cue div to it's correct line position.\n moveBoxToLinePosition(window, styleBox, containerBox, boxPositions);\n\n // Remember the computed div so that we don't have to recompute it later\n // if we don't have too.\n cue.displayState = styleBox.div;\n\n boxPositions.push(BoxPosition.getSimpleBoxPosition(styleBox));\n }\n })();\n};\n\nWebVTT.Parser = function(window, vttjs, decoder) {\n if (!decoder) {\n decoder = vttjs;\n vttjs = {};\n }\n if (!vttjs) {\n vttjs = {};\n }\n\n this.window = window;\n this.vttjs = vttjs;\n this.state = \"INITIAL\";\n this.buffer = \"\";\n this.decoder = decoder || new TextDecoder(\"utf8\");\n this.regionList = [];\n};\n\nWebVTT.Parser.prototype = {\n // If the error is a ParsingError then report it to the consumer if\n // possible. If it's not a ParsingError then throw it like normal.\n reportOrThrowError: function(e) {\n if (e instanceof ParsingError) {\n this.onparsingerror && this.onparsingerror(e);\n } else {\n throw e;\n }\n },\n parse: function (data) {\n var self = this;\n\n // If there is no data then we won't decode it, but will just try to parse\n // whatever is in buffer already. This may occur in circumstances, for\n // example when flush() is called.\n if (data) {\n // Try to decode the data that we received.\n self.buffer += self.decoder.decode(data, {stream: true});\n }\n\n function collectNextLine() {\n var buffer = self.buffer;\n var pos = 0;\n while (pos < buffer.length && buffer[pos] !== '\\r' && buffer[pos] !== '\\n') {\n ++pos;\n }\n var line = buffer.substr(0, pos);\n // Advance the buffer early in case we fail below.\n if (buffer[pos] === '\\r') {\n ++pos;\n }\n if (buffer[pos] === '\\n') {\n ++pos;\n }\n self.buffer = buffer.substr(pos);\n return line;\n }\n\n // 3.4 WebVTT region and WebVTT region settings syntax\n function parseRegion(input) {\n var settings = new Settings();\n\n parseOptions(input, function (k, v) {\n switch (k) {\n case \"id\":\n settings.set(k, v);\n break;\n case \"width\":\n settings.percent(k, v);\n break;\n case \"lines\":\n settings.integer(k, v);\n break;\n case \"regionanchor\":\n case \"viewportanchor\":\n var xy = v.split(',');\n if (xy.length !== 2) {\n break;\n }\n // We have to make sure both x and y parse, so use a temporary\n // settings object here.\n var anchor = new Settings();\n anchor.percent(\"x\", xy[0]);\n anchor.percent(\"y\", xy[1]);\n if (!anchor.has(\"x\") || !anchor.has(\"y\")) {\n break;\n }\n settings.set(k + \"X\", anchor.get(\"x\"));\n settings.set(k + \"Y\", anchor.get(\"y\"));\n break;\n case \"scroll\":\n settings.alt(k, v, [\"up\"]);\n break;\n }\n }, /=/, /\\s/);\n\n // Create the region, using default values for any values that were not\n // specified.\n if (settings.has(\"id\")) {\n var region = new (self.vttjs.VTTRegion || self.window.VTTRegion)();\n region.width = settings.get(\"width\", 100);\n region.lines = settings.get(\"lines\", 3);\n region.regionAnchorX = settings.get(\"regionanchorX\", 0);\n region.regionAnchorY = settings.get(\"regionanchorY\", 100);\n region.viewportAnchorX = settings.get(\"viewportanchorX\", 0);\n region.viewportAnchorY = settings.get(\"viewportanchorY\", 100);\n region.scroll = settings.get(\"scroll\", \"\");\n // Register the region.\n self.onregion && self.onregion(region);\n // Remember the VTTRegion for later in case we parse any VTTCues that\n // reference it.\n self.regionList.push({\n id: settings.get(\"id\"),\n region: region\n });\n }\n }\n\n // draft-pantos-http-live-streaming-20\n // https://tools.ietf.org/html/draft-pantos-http-live-streaming-20#section-3.5\n // 3.5 WebVTT\n function parseTimestampMap(input) {\n var settings = new Settings();\n\n parseOptions(input, function(k, v) {\n switch(k) {\n case \"MPEGT\":\n settings.integer(k + 'S', v);\n break;\n case \"LOCA\":\n settings.set(k + 'L', parseTimeStamp(v));\n break;\n }\n }, /[^\\d]:/, /,/);\n\n self.ontimestampmap && self.ontimestampmap({\n \"MPEGTS\": settings.get(\"MPEGTS\"),\n \"LOCAL\": settings.get(\"LOCAL\")\n });\n }\n\n // 3.2 WebVTT metadata header syntax\n function parseHeader(input) {\n if (input.match(/X-TIMESTAMP-MAP/)) {\n // This line contains HLS X-TIMESTAMP-MAP metadata\n parseOptions(input, function(k, v) {\n switch(k) {\n case \"X-TIMESTAMP-MAP\":\n parseTimestampMap(v);\n break;\n }\n }, /=/);\n } else {\n parseOptions(input, function (k, v) {\n switch (k) {\n case \"Region\":\n // 3.3 WebVTT region metadata header syntax\n parseRegion(v);\n break;\n }\n }, /:/);\n }\n\n }\n\n // 5.1 WebVTT file parsing.\n try {\n var line;\n if (self.state === \"INITIAL\") {\n // We can't start parsing until we have the first line.\n if (!/\\r\\n|\\n/.test(self.buffer)) {\n return this;\n }\n\n line = collectNextLine();\n\n var m = line.match(/^WEBVTT([ \\t].*)?$/);\n if (!m || !m[0]) {\n throw new ParsingError(ParsingError.Errors.BadSignature);\n }\n\n self.state = \"HEADER\";\n }\n\n var alreadyCollectedLine = false;\n while (self.buffer) {\n // We can't parse a line until we have the full line.\n if (!/\\r\\n|\\n/.test(self.buffer)) {\n return this;\n }\n\n if (!alreadyCollectedLine) {\n line = collectNextLine();\n } else {\n alreadyCollectedLine = false;\n }\n\n switch (self.state) {\n case \"HEADER\":\n // 13-18 - Allow a header (metadata) under the WEBVTT line.\n if (/:/.test(line)) {\n parseHeader(line);\n } else if (!line) {\n // An empty line terminates the header and starts the body (cues).\n self.state = \"ID\";\n }\n continue;\n case \"NOTE\":\n // Ignore NOTE blocks.\n if (!line) {\n self.state = \"ID\";\n }\n continue;\n case \"ID\":\n // Check for the start of NOTE blocks.\n if (/^NOTE($|[ \\t])/.test(line)) {\n self.state = \"NOTE\";\n break;\n }\n // 19-29 - Allow any number of line terminators, then initialize new cue values.\n if (!line) {\n continue;\n }\n self.cue = new (self.vttjs.VTTCue || self.window.VTTCue)(0, 0, \"\");\n // Safari still uses the old middle value and won't accept center\n try {\n self.cue.align = \"center\";\n } catch (e) {\n self.cue.align = \"middle\";\n }\n self.state = \"CUE\";\n // 30-39 - Check if self line contains an optional identifier or timing data.\n if (line.indexOf(\"-->\") === -1) {\n self.cue.id = line;\n continue;\n }\n // Process line as start of a cue.\n /*falls through*/\n case \"CUE\":\n // 40 - Collect cue timings and settings.\n try {\n parseCue(line, self.cue, self.regionList);\n } catch (e) {\n self.reportOrThrowError(e);\n // In case of an error ignore rest of the cue.\n self.cue = null;\n self.state = \"BADCUE\";\n continue;\n }\n self.state = \"CUETEXT\";\n continue;\n case \"CUETEXT\":\n var hasSubstring = line.indexOf(\"-->\") !== -1;\n // 34 - If we have an empty line then report the cue.\n // 35 - If we have the special substring '-->' then report the cue,\n // but do not collect the line as we need to process the current\n // one as a new cue.\n if (!line || hasSubstring && (alreadyCollectedLine = true)) {\n // We are done parsing self cue.\n self.oncue && self.oncue(self.cue);\n self.cue = null;\n self.state = \"ID\";\n continue;\n }\n if (self.cue.text) {\n self.cue.text += \"\\n\";\n }\n self.cue.text += line.replace(/\\u2028/g, '\\n').replace(/u2029/g, '\\n');\n continue;\n case \"BADCUE\": // BADCUE\n // 54-62 - Collect and discard the remaining cue.\n if (!line) {\n self.state = \"ID\";\n }\n continue;\n }\n }\n } catch (e) {\n self.reportOrThrowError(e);\n\n // If we are currently parsing a cue, report what we have.\n if (self.state === \"CUETEXT\" && self.cue && self.oncue) {\n self.oncue(self.cue);\n }\n self.cue = null;\n // Enter BADWEBVTT state if header was not parsed correctly otherwise\n // another exception occurred so enter BADCUE state.\n self.state = self.state === \"INITIAL\" ? \"BADWEBVTT\" : \"BADCUE\";\n }\n return this;\n },\n flush: function () {\n var self = this;\n try {\n // Finish decoding the stream.\n self.buffer += self.decoder.decode();\n // Synthesize the end of the current cue or region.\n if (self.cue || self.state === \"HEADER\") {\n self.buffer += \"\\n\\n\";\n self.parse();\n }\n // If we've flushed, parsed, and we're still on the INITIAL state then\n // that means we don't have enough of the stream to parse the first\n // line.\n if (self.state === \"INITIAL\") {\n throw new ParsingError(ParsingError.Errors.BadSignature);\n }\n } catch(e) {\n self.reportOrThrowError(e);\n }\n self.onflush && self.onflush();\n return this;\n }\n};\n\nmodule.exports = WebVTT;\n","'use strict';\n\nvar freeze = require('./conventions').freeze;\n\n/**\n * The entities that are predefined in every XML document.\n *\n * @see https://www.w3.org/TR/2006/REC-xml11-20060816/#sec-predefined-ent W3C XML 1.1\n * @see https://www.w3.org/TR/2008/REC-xml-20081126/#sec-predefined-ent W3C XML 1.0\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Predefined_entities_in_XML Wikipedia\n */\nexports.XML_ENTITIES = freeze({\n\tamp: '&',\n\tapos: \"'\",\n\tgt: '>',\n\tlt: '<',\n\tquot: '\"',\n});\n\n/**\n * A map of all entities that are detected in an HTML document.\n * They contain all entries from `XML_ENTITIES`.\n *\n * @see XML_ENTITIES\n * @see DOMParser.parseFromString\n * @see DOMImplementation.prototype.createHTMLDocument\n * @see https://html.spec.whatwg.org/#named-character-references WHATWG HTML(5) Spec\n * @see https://html.spec.whatwg.org/entities.json JSON\n * @see https://www.w3.org/TR/xml-entity-names/ W3C XML Entity Names\n * @see https://www.w3.org/TR/html4/sgml/entities.html W3C HTML4/SGML\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Character_entity_references_in_HTML Wikipedia (HTML)\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Entities_representing_special_characters_in_XHTML Wikpedia (XHTML)\n */\nexports.HTML_ENTITIES = freeze({\n\tAacute: '\\u00C1',\n\taacute: '\\u00E1',\n\tAbreve: '\\u0102',\n\tabreve: '\\u0103',\n\tac: '\\u223E',\n\tacd: '\\u223F',\n\tacE: '\\u223E\\u0333',\n\tAcirc: '\\u00C2',\n\tacirc: '\\u00E2',\n\tacute: '\\u00B4',\n\tAcy: '\\u0410',\n\tacy: '\\u0430',\n\tAElig: '\\u00C6',\n\taelig: '\\u00E6',\n\taf: '\\u2061',\n\tAfr: '\\uD835\\uDD04',\n\tafr: '\\uD835\\uDD1E',\n\tAgrave: '\\u00C0',\n\tagrave: '\\u00E0',\n\talefsym: '\\u2135',\n\taleph: '\\u2135',\n\tAlpha: '\\u0391',\n\talpha: '\\u03B1',\n\tAmacr: '\\u0100',\n\tamacr: '\\u0101',\n\tamalg: '\\u2A3F',\n\tAMP: '\\u0026',\n\tamp: '\\u0026',\n\tAnd: '\\u2A53',\n\tand: '\\u2227',\n\tandand: '\\u2A55',\n\tandd: '\\u2A5C',\n\tandslope: '\\u2A58',\n\tandv: '\\u2A5A',\n\tang: '\\u2220',\n\tange: '\\u29A4',\n\tangle: '\\u2220',\n\tangmsd: '\\u2221',\n\tangmsdaa: '\\u29A8',\n\tangmsdab: '\\u29A9',\n\tangmsdac: '\\u29AA',\n\tangmsdad: '\\u29AB',\n\tangmsdae: '\\u29AC',\n\tangmsdaf: '\\u29AD',\n\tangmsdag: '\\u29AE',\n\tangmsdah: '\\u29AF',\n\tangrt: '\\u221F',\n\tangrtvb: '\\u22BE',\n\tangrtvbd: '\\u299D',\n\tangsph: '\\u2222',\n\tangst: '\\u00C5',\n\tangzarr: '\\u237C',\n\tAogon: '\\u0104',\n\taogon: '\\u0105',\n\tAopf: '\\uD835\\uDD38',\n\taopf: '\\uD835\\uDD52',\n\tap: '\\u2248',\n\tapacir: '\\u2A6F',\n\tapE: '\\u2A70',\n\tape: '\\u224A',\n\tapid: '\\u224B',\n\tapos: '\\u0027',\n\tApplyFunction: '\\u2061',\n\tapprox: '\\u2248',\n\tapproxeq: '\\u224A',\n\tAring: '\\u00C5',\n\taring: '\\u00E5',\n\tAscr: '\\uD835\\uDC9C',\n\tascr: '\\uD835\\uDCB6',\n\tAssign: '\\u2254',\n\tast: '\\u002A',\n\tasymp: '\\u2248',\n\tasympeq: '\\u224D',\n\tAtilde: '\\u00C3',\n\tatilde: '\\u00E3',\n\tAuml: '\\u00C4',\n\tauml: '\\u00E4',\n\tawconint: '\\u2233',\n\tawint: '\\u2A11',\n\tbackcong: '\\u224C',\n\tbackepsilon: '\\u03F6',\n\tbackprime: '\\u2035',\n\tbacksim: '\\u223D',\n\tbacksimeq: '\\u22CD',\n\tBackslash: '\\u2216',\n\tBarv: '\\u2AE7',\n\tbarvee: '\\u22BD',\n\tBarwed: '\\u2306',\n\tbarwed: '\\u2305',\n\tbarwedge: '\\u2305',\n\tbbrk: '\\u23B5',\n\tbbrktbrk: '\\u23B6',\n\tbcong: '\\u224C',\n\tBcy: '\\u0411',\n\tbcy: '\\u0431',\n\tbdquo: '\\u201E',\n\tbecaus: '\\u2235',\n\tBecause: '\\u2235',\n\tbecause: '\\u2235',\n\tbemptyv: '\\u29B0',\n\tbepsi: '\\u03F6',\n\tbernou: '\\u212C',\n\tBernoullis: '\\u212C',\n\tBeta: '\\u0392',\n\tbeta: '\\u03B2',\n\tbeth: '\\u2136',\n\tbetween: '\\u226C',\n\tBfr: '\\uD835\\uDD05',\n\tbfr: '\\uD835\\uDD1F',\n\tbigcap: '\\u22C2',\n\tbigcirc: '\\u25EF',\n\tbigcup: '\\u22C3',\n\tbigodot: '\\u2A00',\n\tbigoplus: '\\u2A01',\n\tbigotimes: '\\u2A02',\n\tbigsqcup: '\\u2A06',\n\tbigstar: '\\u2605',\n\tbigtriangledown: '\\u25BD',\n\tbigtriangleup: '\\u25B3',\n\tbiguplus: '\\u2A04',\n\tbigvee: '\\u22C1',\n\tbigwedge: '\\u22C0',\n\tbkarow: '\\u290D',\n\tblacklozenge: '\\u29EB',\n\tblacksquare: '\\u25AA',\n\tblacktriangle: '\\u25B4',\n\tblacktriangledown: '\\u25BE',\n\tblacktriangleleft: '\\u25C2',\n\tblacktriangleright: '\\u25B8',\n\tblank: '\\u2423',\n\tblk12: '\\u2592',\n\tblk14: '\\u2591',\n\tblk34: '\\u2593',\n\tblock: '\\u2588',\n\tbne: '\\u003D\\u20E5',\n\tbnequiv: '\\u2261\\u20E5',\n\tbNot: '\\u2AED',\n\tbnot: '\\u2310',\n\tBopf: '\\uD835\\uDD39',\n\tbopf: '\\uD835\\uDD53',\n\tbot: '\\u22A5',\n\tbottom: '\\u22A5',\n\tbowtie: '\\u22C8',\n\tboxbox: '\\u29C9',\n\tboxDL: '\\u2557',\n\tboxDl: '\\u2556',\n\tboxdL: '\\u2555',\n\tboxdl: '\\u2510',\n\tboxDR: '\\u2554',\n\tboxDr: '\\u2553',\n\tboxdR: '\\u2552',\n\tboxdr: '\\u250C',\n\tboxH: '\\u2550',\n\tboxh: '\\u2500',\n\tboxHD: '\\u2566',\n\tboxHd: '\\u2564',\n\tboxhD: '\\u2565',\n\tboxhd: '\\u252C',\n\tboxHU: '\\u2569',\n\tboxHu: '\\u2567',\n\tboxhU: '\\u2568',\n\tboxhu: '\\u2534',\n\tboxminus: '\\u229F',\n\tboxplus: '\\u229E',\n\tboxtimes: '\\u22A0',\n\tboxUL: '\\u255D',\n\tboxUl: '\\u255C',\n\tboxuL: '\\u255B',\n\tboxul: '\\u2518',\n\tboxUR: '\\u255A',\n\tboxUr: '\\u2559',\n\tboxuR: '\\u2558',\n\tboxur: '\\u2514',\n\tboxV: '\\u2551',\n\tboxv: '\\u2502',\n\tboxVH: '\\u256C',\n\tboxVh: '\\u256B',\n\tboxvH: '\\u256A',\n\tboxvh: '\\u253C',\n\tboxVL: '\\u2563',\n\tboxVl: '\\u2562',\n\tboxvL: '\\u2561',\n\tboxvl: '\\u2524',\n\tboxVR: '\\u2560',\n\tboxVr: '\\u255F',\n\tboxvR: '\\u255E',\n\tboxvr: '\\u251C',\n\tbprime: '\\u2035',\n\tBreve: '\\u02D8',\n\tbreve: '\\u02D8',\n\tbrvbar: '\\u00A6',\n\tBscr: '\\u212C',\n\tbscr: '\\uD835\\uDCB7',\n\tbsemi: '\\u204F',\n\tbsim: '\\u223D',\n\tbsime: '\\u22CD',\n\tbsol: '\\u005C',\n\tbsolb: '\\u29C5',\n\tbsolhsub: '\\u27C8',\n\tbull: '\\u2022',\n\tbullet: '\\u2022',\n\tbump: '\\u224E',\n\tbumpE: '\\u2AAE',\n\tbumpe: '\\u224F',\n\tBumpeq: '\\u224E',\n\tbumpeq: '\\u224F',\n\tCacute: '\\u0106',\n\tcacute: '\\u0107',\n\tCap: '\\u22D2',\n\tcap: '\\u2229',\n\tcapand: '\\u2A44',\n\tcapbrcup: '\\u2A49',\n\tcapcap: '\\u2A4B',\n\tcapcup: '\\u2A47',\n\tcapdot: '\\u2A40',\n\tCapitalDifferentialD: '\\u2145',\n\tcaps: '\\u2229\\uFE00',\n\tcaret: '\\u2041',\n\tcaron: '\\u02C7',\n\tCayleys: '\\u212D',\n\tccaps: '\\u2A4D',\n\tCcaron: '\\u010C',\n\tccaron: '\\u010D',\n\tCcedil: '\\u00C7',\n\tccedil: '\\u00E7',\n\tCcirc: '\\u0108',\n\tccirc: '\\u0109',\n\tCconint: '\\u2230',\n\tccups: '\\u2A4C',\n\tccupssm: '\\u2A50',\n\tCdot: '\\u010A',\n\tcdot: '\\u010B',\n\tcedil: '\\u00B8',\n\tCedilla: '\\u00B8',\n\tcemptyv: '\\u29B2',\n\tcent: '\\u00A2',\n\tCenterDot: '\\u00B7',\n\tcenterdot: '\\u00B7',\n\tCfr: '\\u212D',\n\tcfr: '\\uD835\\uDD20',\n\tCHcy: '\\u0427',\n\tchcy: '\\u0447',\n\tcheck: '\\u2713',\n\tcheckmark: '\\u2713',\n\tChi: '\\u03A7',\n\tchi: '\\u03C7',\n\tcir: '\\u25CB',\n\tcirc: '\\u02C6',\n\tcirceq: '\\u2257',\n\tcirclearrowleft: '\\u21BA',\n\tcirclearrowright: '\\u21BB',\n\tcircledast: '\\u229B',\n\tcircledcirc: '\\u229A',\n\tcircleddash: '\\u229D',\n\tCircleDot: '\\u2299',\n\tcircledR: '\\u00AE',\n\tcircledS: '\\u24C8',\n\tCircleMinus: '\\u2296',\n\tCirclePlus: '\\u2295',\n\tCircleTimes: '\\u2297',\n\tcirE: '\\u29C3',\n\tcire: '\\u2257',\n\tcirfnint: '\\u2A10',\n\tcirmid: '\\u2AEF',\n\tcirscir: '\\u29C2',\n\tClockwiseContourIntegral: '\\u2232',\n\tCloseCurlyDoubleQuote: '\\u201D',\n\tCloseCurlyQuote: '\\u2019',\n\tclubs: '\\u2663',\n\tclubsuit: '\\u2663',\n\tColon: '\\u2237',\n\tcolon: '\\u003A',\n\tColone: '\\u2A74',\n\tcolone: '\\u2254',\n\tcoloneq: '\\u2254',\n\tcomma: '\\u002C',\n\tcommat: '\\u0040',\n\tcomp: '\\u2201',\n\tcompfn: '\\u2218',\n\tcomplement: '\\u2201',\n\tcomplexes: '\\u2102',\n\tcong: '\\u2245',\n\tcongdot: '\\u2A6D',\n\tCongruent: '\\u2261',\n\tConint: '\\u222F',\n\tconint: '\\u222E',\n\tContourIntegral: '\\u222E',\n\tCopf: '\\u2102',\n\tcopf: '\\uD835\\uDD54',\n\tcoprod: '\\u2210',\n\tCoproduct: '\\u2210',\n\tCOPY: '\\u00A9',\n\tcopy: '\\u00A9',\n\tcopysr: '\\u2117',\n\tCounterClockwiseContourIntegral: '\\u2233',\n\tcrarr: '\\u21B5',\n\tCross: '\\u2A2F',\n\tcross: '\\u2717',\n\tCscr: '\\uD835\\uDC9E',\n\tcscr: '\\uD835\\uDCB8',\n\tcsub: '\\u2ACF',\n\tcsube: '\\u2AD1',\n\tcsup: '\\u2AD0',\n\tcsupe: '\\u2AD2',\n\tctdot: '\\u22EF',\n\tcudarrl: '\\u2938',\n\tcudarrr: '\\u2935',\n\tcuepr: '\\u22DE',\n\tcuesc: '\\u22DF',\n\tcularr: '\\u21B6',\n\tcularrp: '\\u293D',\n\tCup: '\\u22D3',\n\tcup: '\\u222A',\n\tcupbrcap: '\\u2A48',\n\tCupCap: '\\u224D',\n\tcupcap: '\\u2A46',\n\tcupcup: '\\u2A4A',\n\tcupdot: '\\u228D',\n\tcupor: '\\u2A45',\n\tcups: '\\u222A\\uFE00',\n\tcurarr: '\\u21B7',\n\tcurarrm: '\\u293C',\n\tcurlyeqprec: '\\u22DE',\n\tcurlyeqsucc: '\\u22DF',\n\tcurlyvee: '\\u22CE',\n\tcurlywedge: '\\u22CF',\n\tcurren: '\\u00A4',\n\tcurvearrowleft: '\\u21B6',\n\tcurvearrowright: '\\u21B7',\n\tcuvee: '\\u22CE',\n\tcuwed: '\\u22CF',\n\tcwconint: '\\u2232',\n\tcwint: '\\u2231',\n\tcylcty: '\\u232D',\n\tDagger: '\\u2021',\n\tdagger: '\\u2020',\n\tdaleth: '\\u2138',\n\tDarr: '\\u21A1',\n\tdArr: '\\u21D3',\n\tdarr: '\\u2193',\n\tdash: '\\u2010',\n\tDashv: '\\u2AE4',\n\tdashv: '\\u22A3',\n\tdbkarow: '\\u290F',\n\tdblac: '\\u02DD',\n\tDcaron: '\\u010E',\n\tdcaron: '\\u010F',\n\tDcy: '\\u0414',\n\tdcy: '\\u0434',\n\tDD: '\\u2145',\n\tdd: '\\u2146',\n\tddagger: '\\u2021',\n\tddarr: '\\u21CA',\n\tDDotrahd: '\\u2911',\n\tddotseq: '\\u2A77',\n\tdeg: '\\u00B0',\n\tDel: '\\u2207',\n\tDelta: '\\u0394',\n\tdelta: '\\u03B4',\n\tdemptyv: '\\u29B1',\n\tdfisht: '\\u297F',\n\tDfr: '\\uD835\\uDD07',\n\tdfr: '\\uD835\\uDD21',\n\tdHar: '\\u2965',\n\tdharl: '\\u21C3',\n\tdharr: '\\u21C2',\n\tDiacriticalAcute: '\\u00B4',\n\tDiacriticalDot: '\\u02D9',\n\tDiacriticalDoubleAcute: '\\u02DD',\n\tDiacriticalGrave: '\\u0060',\n\tDiacriticalTilde: '\\u02DC',\n\tdiam: '\\u22C4',\n\tDiamond: '\\u22C4',\n\tdiamond: '\\u22C4',\n\tdiamondsuit: '\\u2666',\n\tdiams: '\\u2666',\n\tdie: '\\u00A8',\n\tDifferentialD: '\\u2146',\n\tdigamma: '\\u03DD',\n\tdisin: '\\u22F2',\n\tdiv: '\\u00F7',\n\tdivide: '\\u00F7',\n\tdivideontimes: '\\u22C7',\n\tdivonx: '\\u22C7',\n\tDJcy: '\\u0402',\n\tdjcy: '\\u0452',\n\tdlcorn: '\\u231E',\n\tdlcrop: '\\u230D',\n\tdollar: '\\u0024',\n\tDopf: '\\uD835\\uDD3B',\n\tdopf: '\\uD835\\uDD55',\n\tDot: '\\u00A8',\n\tdot: '\\u02D9',\n\tDotDot: '\\u20DC',\n\tdoteq: '\\u2250',\n\tdoteqdot: '\\u2251',\n\tDotEqual: '\\u2250',\n\tdotminus: '\\u2238',\n\tdotplus: '\\u2214',\n\tdotsquare: '\\u22A1',\n\tdoublebarwedge: '\\u2306',\n\tDoubleContourIntegral: '\\u222F',\n\tDoubleDot: '\\u00A8',\n\tDoubleDownArrow: '\\u21D3',\n\tDoubleLeftArrow: '\\u21D0',\n\tDoubleLeftRightArrow: '\\u21D4',\n\tDoubleLeftTee: '\\u2AE4',\n\tDoubleLongLeftArrow: '\\u27F8',\n\tDoubleLongLeftRightArrow: '\\u27FA',\n\tDoubleLongRightArrow: '\\u27F9',\n\tDoubleRightArrow: '\\u21D2',\n\tDoubleRightTee: '\\u22A8',\n\tDoubleUpArrow: '\\u21D1',\n\tDoubleUpDownArrow: '\\u21D5',\n\tDoubleVerticalBar: '\\u2225',\n\tDownArrow: '\\u2193',\n\tDownarrow: '\\u21D3',\n\tdownarrow: '\\u2193',\n\tDownArrowBar: '\\u2913',\n\tDownArrowUpArrow: '\\u21F5',\n\tDownBreve: '\\u0311',\n\tdowndownarrows: '\\u21CA',\n\tdownharpoonleft: '\\u21C3',\n\tdownharpoonright: '\\u21C2',\n\tDownLeftRightVector: '\\u2950',\n\tDownLeftTeeVector: '\\u295E',\n\tDownLeftVector: '\\u21BD',\n\tDownLeftVectorBar: '\\u2956',\n\tDownRightTeeVector: '\\u295F',\n\tDownRightVector: '\\u21C1',\n\tDownRightVectorBar: '\\u2957',\n\tDownTee: '\\u22A4',\n\tDownTeeArrow: '\\u21A7',\n\tdrbkarow: '\\u2910',\n\tdrcorn: '\\u231F',\n\tdrcrop: '\\u230C',\n\tDscr: '\\uD835\\uDC9F',\n\tdscr: '\\uD835\\uDCB9',\n\tDScy: '\\u0405',\n\tdscy: '\\u0455',\n\tdsol: '\\u29F6',\n\tDstrok: '\\u0110',\n\tdstrok: '\\u0111',\n\tdtdot: '\\u22F1',\n\tdtri: '\\u25BF',\n\tdtrif: '\\u25BE',\n\tduarr: '\\u21F5',\n\tduhar: '\\u296F',\n\tdwangle: '\\u29A6',\n\tDZcy: '\\u040F',\n\tdzcy: '\\u045F',\n\tdzigrarr: '\\u27FF',\n\tEacute: '\\u00C9',\n\teacute: '\\u00E9',\n\teaster: '\\u2A6E',\n\tEcaron: '\\u011A',\n\tecaron: '\\u011B',\n\tecir: '\\u2256',\n\tEcirc: '\\u00CA',\n\tecirc: '\\u00EA',\n\tecolon: '\\u2255',\n\tEcy: '\\u042D',\n\tecy: '\\u044D',\n\teDDot: '\\u2A77',\n\tEdot: '\\u0116',\n\teDot: '\\u2251',\n\tedot: '\\u0117',\n\tee: '\\u2147',\n\tefDot: '\\u2252',\n\tEfr: '\\uD835\\uDD08',\n\tefr: '\\uD835\\uDD22',\n\teg: '\\u2A9A',\n\tEgrave: '\\u00C8',\n\tegrave: '\\u00E8',\n\tegs: '\\u2A96',\n\tegsdot: '\\u2A98',\n\tel: '\\u2A99',\n\tElement: '\\u2208',\n\telinters: '\\u23E7',\n\tell: '\\u2113',\n\tels: '\\u2A95',\n\telsdot: '\\u2A97',\n\tEmacr: '\\u0112',\n\temacr: '\\u0113',\n\tempty: '\\u2205',\n\temptyset: '\\u2205',\n\tEmptySmallSquare: '\\u25FB',\n\temptyv: '\\u2205',\n\tEmptyVerySmallSquare: '\\u25AB',\n\temsp: '\\u2003',\n\temsp13: '\\u2004',\n\temsp14: '\\u2005',\n\tENG: '\\u014A',\n\teng: '\\u014B',\n\tensp: '\\u2002',\n\tEogon: '\\u0118',\n\teogon: '\\u0119',\n\tEopf: '\\uD835\\uDD3C',\n\teopf: '\\uD835\\uDD56',\n\tepar: '\\u22D5',\n\teparsl: '\\u29E3',\n\teplus: '\\u2A71',\n\tepsi: '\\u03B5',\n\tEpsilon: '\\u0395',\n\tepsilon: '\\u03B5',\n\tepsiv: '\\u03F5',\n\teqcirc: '\\u2256',\n\teqcolon: '\\u2255',\n\teqsim: '\\u2242',\n\teqslantgtr: '\\u2A96',\n\teqslantless: '\\u2A95',\n\tEqual: '\\u2A75',\n\tequals: '\\u003D',\n\tEqualTilde: '\\u2242',\n\tequest: '\\u225F',\n\tEquilibrium: '\\u21CC',\n\tequiv: '\\u2261',\n\tequivDD: '\\u2A78',\n\teqvparsl: '\\u29E5',\n\terarr: '\\u2971',\n\terDot: '\\u2253',\n\tEscr: '\\u2130',\n\tescr: '\\u212F',\n\tesdot: '\\u2250',\n\tEsim: '\\u2A73',\n\tesim: '\\u2242',\n\tEta: '\\u0397',\n\teta: '\\u03B7',\n\tETH: '\\u00D0',\n\teth: '\\u00F0',\n\tEuml: '\\u00CB',\n\teuml: '\\u00EB',\n\teuro: '\\u20AC',\n\texcl: '\\u0021',\n\texist: '\\u2203',\n\tExists: '\\u2203',\n\texpectation: '\\u2130',\n\tExponentialE: '\\u2147',\n\texponentiale: '\\u2147',\n\tfallingdotseq: '\\u2252',\n\tFcy: '\\u0424',\n\tfcy: '\\u0444',\n\tfemale: '\\u2640',\n\tffilig: '\\uFB03',\n\tfflig: '\\uFB00',\n\tffllig: '\\uFB04',\n\tFfr: '\\uD835\\uDD09',\n\tffr: '\\uD835\\uDD23',\n\tfilig: '\\uFB01',\n\tFilledSmallSquare: '\\u25FC',\n\tFilledVerySmallSquare: '\\u25AA',\n\tfjlig: '\\u0066\\u006A',\n\tflat: '\\u266D',\n\tfllig: '\\uFB02',\n\tfltns: '\\u25B1',\n\tfnof: '\\u0192',\n\tFopf: '\\uD835\\uDD3D',\n\tfopf: '\\uD835\\uDD57',\n\tForAll: '\\u2200',\n\tforall: '\\u2200',\n\tfork: '\\u22D4',\n\tforkv: '\\u2AD9',\n\tFouriertrf: '\\u2131',\n\tfpartint: '\\u2A0D',\n\tfrac12: '\\u00BD',\n\tfrac13: '\\u2153',\n\tfrac14: '\\u00BC',\n\tfrac15: '\\u2155',\n\tfrac16: '\\u2159',\n\tfrac18: '\\u215B',\n\tfrac23: '\\u2154',\n\tfrac25: '\\u2156',\n\tfrac34: '\\u00BE',\n\tfrac35: '\\u2157',\n\tfrac38: '\\u215C',\n\tfrac45: '\\u2158',\n\tfrac56: '\\u215A',\n\tfrac58: '\\u215D',\n\tfrac78: '\\u215E',\n\tfrasl: '\\u2044',\n\tfrown: '\\u2322',\n\tFscr: '\\u2131',\n\tfscr: '\\uD835\\uDCBB',\n\tgacute: '\\u01F5',\n\tGamma: '\\u0393',\n\tgamma: '\\u03B3',\n\tGammad: '\\u03DC',\n\tgammad: '\\u03DD',\n\tgap: '\\u2A86',\n\tGbreve: '\\u011E',\n\tgbreve: '\\u011F',\n\tGcedil: '\\u0122',\n\tGcirc: '\\u011C',\n\tgcirc: '\\u011D',\n\tGcy: '\\u0413',\n\tgcy: '\\u0433',\n\tGdot: '\\u0120',\n\tgdot: '\\u0121',\n\tgE: '\\u2267',\n\tge: '\\u2265',\n\tgEl: '\\u2A8C',\n\tgel: '\\u22DB',\n\tgeq: '\\u2265',\n\tgeqq: '\\u2267',\n\tgeqslant: '\\u2A7E',\n\tges: '\\u2A7E',\n\tgescc: '\\u2AA9',\n\tgesdot: '\\u2A80',\n\tgesdoto: '\\u2A82',\n\tgesdotol: '\\u2A84',\n\tgesl: '\\u22DB\\uFE00',\n\tgesles: '\\u2A94',\n\tGfr: '\\uD835\\uDD0A',\n\tgfr: '\\uD835\\uDD24',\n\tGg: '\\u22D9',\n\tgg: '\\u226B',\n\tggg: '\\u22D9',\n\tgimel: '\\u2137',\n\tGJcy: '\\u0403',\n\tgjcy: '\\u0453',\n\tgl: '\\u2277',\n\tgla: '\\u2AA5',\n\tglE: '\\u2A92',\n\tglj: '\\u2AA4',\n\tgnap: '\\u2A8A',\n\tgnapprox: '\\u2A8A',\n\tgnE: '\\u2269',\n\tgne: '\\u2A88',\n\tgneq: '\\u2A88',\n\tgneqq: '\\u2269',\n\tgnsim: '\\u22E7',\n\tGopf: '\\uD835\\uDD3E',\n\tgopf: '\\uD835\\uDD58',\n\tgrave: '\\u0060',\n\tGreaterEqual: '\\u2265',\n\tGreaterEqualLess: '\\u22DB',\n\tGreaterFullEqual: '\\u2267',\n\tGreaterGreater: '\\u2AA2',\n\tGreaterLess: '\\u2277',\n\tGreaterSlantEqual: '\\u2A7E',\n\tGreaterTilde: '\\u2273',\n\tGscr: '\\uD835\\uDCA2',\n\tgscr: '\\u210A',\n\tgsim: '\\u2273',\n\tgsime: '\\u2A8E',\n\tgsiml: '\\u2A90',\n\tGt: '\\u226B',\n\tGT: '\\u003E',\n\tgt: '\\u003E',\n\tgtcc: '\\u2AA7',\n\tgtcir: '\\u2A7A',\n\tgtdot: '\\u22D7',\n\tgtlPar: '\\u2995',\n\tgtquest: '\\u2A7C',\n\tgtrapprox: '\\u2A86',\n\tgtrarr: '\\u2978',\n\tgtrdot: '\\u22D7',\n\tgtreqless: '\\u22DB',\n\tgtreqqless: '\\u2A8C',\n\tgtrless: '\\u2277',\n\tgtrsim: '\\u2273',\n\tgvertneqq: '\\u2269\\uFE00',\n\tgvnE: '\\u2269\\uFE00',\n\tHacek: '\\u02C7',\n\thairsp: '\\u200A',\n\thalf: '\\u00BD',\n\thamilt: '\\u210B',\n\tHARDcy: '\\u042A',\n\thardcy: '\\u044A',\n\thArr: '\\u21D4',\n\tharr: '\\u2194',\n\tharrcir: '\\u2948',\n\tharrw: '\\u21AD',\n\tHat: '\\u005E',\n\thbar: '\\u210F',\n\tHcirc: '\\u0124',\n\thcirc: '\\u0125',\n\thearts: '\\u2665',\n\theartsuit: '\\u2665',\n\thellip: '\\u2026',\n\thercon: '\\u22B9',\n\tHfr: '\\u210C',\n\thfr: '\\uD835\\uDD25',\n\tHilbertSpace: '\\u210B',\n\thksearow: '\\u2925',\n\thkswarow: '\\u2926',\n\thoarr: '\\u21FF',\n\thomtht: '\\u223B',\n\thookleftarrow: '\\u21A9',\n\thookrightarrow: '\\u21AA',\n\tHopf: '\\u210D',\n\thopf: '\\uD835\\uDD59',\n\thorbar: '\\u2015',\n\tHorizontalLine: '\\u2500',\n\tHscr: '\\u210B',\n\thscr: '\\uD835\\uDCBD',\n\thslash: '\\u210F',\n\tHstrok: '\\u0126',\n\thstrok: '\\u0127',\n\tHumpDownHump: '\\u224E',\n\tHumpEqual: '\\u224F',\n\thybull: '\\u2043',\n\thyphen: '\\u2010',\n\tIacute: '\\u00CD',\n\tiacute: '\\u00ED',\n\tic: '\\u2063',\n\tIcirc: '\\u00CE',\n\ticirc: '\\u00EE',\n\tIcy: '\\u0418',\n\ticy: '\\u0438',\n\tIdot: '\\u0130',\n\tIEcy: '\\u0415',\n\tiecy: '\\u0435',\n\tiexcl: '\\u00A1',\n\tiff: '\\u21D4',\n\tIfr: '\\u2111',\n\tifr: '\\uD835\\uDD26',\n\tIgrave: '\\u00CC',\n\tigrave: '\\u00EC',\n\tii: '\\u2148',\n\tiiiint: '\\u2A0C',\n\tiiint: '\\u222D',\n\tiinfin: '\\u29DC',\n\tiiota: '\\u2129',\n\tIJlig: '\\u0132',\n\tijlig: '\\u0133',\n\tIm: '\\u2111',\n\tImacr: '\\u012A',\n\timacr: '\\u012B',\n\timage: '\\u2111',\n\tImaginaryI: '\\u2148',\n\timagline: '\\u2110',\n\timagpart: '\\u2111',\n\timath: '\\u0131',\n\timof: '\\u22B7',\n\timped: '\\u01B5',\n\tImplies: '\\u21D2',\n\tin: '\\u2208',\n\tincare: '\\u2105',\n\tinfin: '\\u221E',\n\tinfintie: '\\u29DD',\n\tinodot: '\\u0131',\n\tInt: '\\u222C',\n\tint: '\\u222B',\n\tintcal: '\\u22BA',\n\tintegers: '\\u2124',\n\tIntegral: '\\u222B',\n\tintercal: '\\u22BA',\n\tIntersection: '\\u22C2',\n\tintlarhk: '\\u2A17',\n\tintprod: '\\u2A3C',\n\tInvisibleComma: '\\u2063',\n\tInvisibleTimes: '\\u2062',\n\tIOcy: '\\u0401',\n\tiocy: '\\u0451',\n\tIogon: '\\u012E',\n\tiogon: '\\u012F',\n\tIopf: '\\uD835\\uDD40',\n\tiopf: '\\uD835\\uDD5A',\n\tIota: '\\u0399',\n\tiota: '\\u03B9',\n\tiprod: '\\u2A3C',\n\tiquest: '\\u00BF',\n\tIscr: '\\u2110',\n\tiscr: '\\uD835\\uDCBE',\n\tisin: '\\u2208',\n\tisindot: '\\u22F5',\n\tisinE: '\\u22F9',\n\tisins: '\\u22F4',\n\tisinsv: '\\u22F3',\n\tisinv: '\\u2208',\n\tit: '\\u2062',\n\tItilde: '\\u0128',\n\titilde: '\\u0129',\n\tIukcy: '\\u0406',\n\tiukcy: '\\u0456',\n\tIuml: '\\u00CF',\n\tiuml: '\\u00EF',\n\tJcirc: '\\u0134',\n\tjcirc: '\\u0135',\n\tJcy: '\\u0419',\n\tjcy: '\\u0439',\n\tJfr: '\\uD835\\uDD0D',\n\tjfr: '\\uD835\\uDD27',\n\tjmath: '\\u0237',\n\tJopf: '\\uD835\\uDD41',\n\tjopf: '\\uD835\\uDD5B',\n\tJscr: '\\uD835\\uDCA5',\n\tjscr: '\\uD835\\uDCBF',\n\tJsercy: '\\u0408',\n\tjsercy: '\\u0458',\n\tJukcy: '\\u0404',\n\tjukcy: '\\u0454',\n\tKappa: '\\u039A',\n\tkappa: '\\u03BA',\n\tkappav: '\\u03F0',\n\tKcedil: '\\u0136',\n\tkcedil: '\\u0137',\n\tKcy: '\\u041A',\n\tkcy: '\\u043A',\n\tKfr: '\\uD835\\uDD0E',\n\tkfr: '\\uD835\\uDD28',\n\tkgreen: '\\u0138',\n\tKHcy: '\\u0425',\n\tkhcy: '\\u0445',\n\tKJcy: '\\u040C',\n\tkjcy: '\\u045C',\n\tKopf: '\\uD835\\uDD42',\n\tkopf: '\\uD835\\uDD5C',\n\tKscr: '\\uD835\\uDCA6',\n\tkscr: '\\uD835\\uDCC0',\n\tlAarr: '\\u21DA',\n\tLacute: '\\u0139',\n\tlacute: '\\u013A',\n\tlaemptyv: '\\u29B4',\n\tlagran: '\\u2112',\n\tLambda: '\\u039B',\n\tlambda: '\\u03BB',\n\tLang: '\\u27EA',\n\tlang: '\\u27E8',\n\tlangd: '\\u2991',\n\tlangle: '\\u27E8',\n\tlap: '\\u2A85',\n\tLaplacetrf: '\\u2112',\n\tlaquo: '\\u00AB',\n\tLarr: '\\u219E',\n\tlArr: '\\u21D0',\n\tlarr: '\\u2190',\n\tlarrb: '\\u21E4',\n\tlarrbfs: '\\u291F',\n\tlarrfs: '\\u291D',\n\tlarrhk: '\\u21A9',\n\tlarrlp: '\\u21AB',\n\tlarrpl: '\\u2939',\n\tlarrsim: '\\u2973',\n\tlarrtl: '\\u21A2',\n\tlat: '\\u2AAB',\n\tlAtail: '\\u291B',\n\tlatail: '\\u2919',\n\tlate: '\\u2AAD',\n\tlates: '\\u2AAD\\uFE00',\n\tlBarr: '\\u290E',\n\tlbarr: '\\u290C',\n\tlbbrk: '\\u2772',\n\tlbrace: '\\u007B',\n\tlbrack: '\\u005B',\n\tlbrke: '\\u298B',\n\tlbrksld: '\\u298F',\n\tlbrkslu: '\\u298D',\n\tLcaron: '\\u013D',\n\tlcaron: '\\u013E',\n\tLcedil: '\\u013B',\n\tlcedil: '\\u013C',\n\tlceil: '\\u2308',\n\tlcub: '\\u007B',\n\tLcy: '\\u041B',\n\tlcy: '\\u043B',\n\tldca: '\\u2936',\n\tldquo: '\\u201C',\n\tldquor: '\\u201E',\n\tldrdhar: '\\u2967',\n\tldrushar: '\\u294B',\n\tldsh: '\\u21B2',\n\tlE: '\\u2266',\n\tle: '\\u2264',\n\tLeftAngleBracket: '\\u27E8',\n\tLeftArrow: '\\u2190',\n\tLeftarrow: '\\u21D0',\n\tleftarrow: '\\u2190',\n\tLeftArrowBar: '\\u21E4',\n\tLeftArrowRightArrow: '\\u21C6',\n\tleftarrowtail: '\\u21A2',\n\tLeftCeiling: '\\u2308',\n\tLeftDoubleBracket: '\\u27E6',\n\tLeftDownTeeVector: '\\u2961',\n\tLeftDownVector: '\\u21C3',\n\tLeftDownVectorBar: '\\u2959',\n\tLeftFloor: '\\u230A',\n\tleftharpoondown: '\\u21BD',\n\tleftharpoonup: '\\u21BC',\n\tleftleftarrows: '\\u21C7',\n\tLeftRightArrow: '\\u2194',\n\tLeftrightarrow: '\\u21D4',\n\tleftrightarrow: '\\u2194',\n\tleftrightarrows: '\\u21C6',\n\tleftrightharpoons: '\\u21CB',\n\tleftrightsquigarrow: '\\u21AD',\n\tLeftRightVector: '\\u294E',\n\tLeftTee: '\\u22A3',\n\tLeftTeeArrow: '\\u21A4',\n\tLeftTeeVector: '\\u295A',\n\tleftthreetimes: '\\u22CB',\n\tLeftTriangle: '\\u22B2',\n\tLeftTriangleBar: '\\u29CF',\n\tLeftTriangleEqual: '\\u22B4',\n\tLeftUpDownVector: '\\u2951',\n\tLeftUpTeeVector: '\\u2960',\n\tLeftUpVector: '\\u21BF',\n\tLeftUpVectorBar: '\\u2958',\n\tLeftVector: '\\u21BC',\n\tLeftVectorBar: '\\u2952',\n\tlEg: '\\u2A8B',\n\tleg: '\\u22DA',\n\tleq: '\\u2264',\n\tleqq: '\\u2266',\n\tleqslant: '\\u2A7D',\n\tles: '\\u2A7D',\n\tlescc: '\\u2AA8',\n\tlesdot: '\\u2A7F',\n\tlesdoto: '\\u2A81',\n\tlesdotor: '\\u2A83',\n\tlesg: '\\u22DA\\uFE00',\n\tlesges: '\\u2A93',\n\tlessapprox: '\\u2A85',\n\tlessdot: '\\u22D6',\n\tlesseqgtr: '\\u22DA',\n\tlesseqqgtr: '\\u2A8B',\n\tLessEqualGreater: '\\u22DA',\n\tLessFullEqual: '\\u2266',\n\tLessGreater: '\\u2276',\n\tlessgtr: '\\u2276',\n\tLessLess: '\\u2AA1',\n\tlesssim: '\\u2272',\n\tLessSlantEqual: '\\u2A7D',\n\tLessTilde: '\\u2272',\n\tlfisht: '\\u297C',\n\tlfloor: '\\u230A',\n\tLfr: '\\uD835\\uDD0F',\n\tlfr: '\\uD835\\uDD29',\n\tlg: '\\u2276',\n\tlgE: '\\u2A91',\n\tlHar: '\\u2962',\n\tlhard: '\\u21BD',\n\tlharu: '\\u21BC',\n\tlharul: '\\u296A',\n\tlhblk: '\\u2584',\n\tLJcy: '\\u0409',\n\tljcy: '\\u0459',\n\tLl: '\\u22D8',\n\tll: '\\u226A',\n\tllarr: '\\u21C7',\n\tllcorner: '\\u231E',\n\tLleftarrow: '\\u21DA',\n\tllhard: '\\u296B',\n\tlltri: '\\u25FA',\n\tLmidot: '\\u013F',\n\tlmidot: '\\u0140',\n\tlmoust: '\\u23B0',\n\tlmoustache: '\\u23B0',\n\tlnap: '\\u2A89',\n\tlnapprox: '\\u2A89',\n\tlnE: '\\u2268',\n\tlne: '\\u2A87',\n\tlneq: '\\u2A87',\n\tlneqq: '\\u2268',\n\tlnsim: '\\u22E6',\n\tloang: '\\u27EC',\n\tloarr: '\\u21FD',\n\tlobrk: '\\u27E6',\n\tLongLeftArrow: '\\u27F5',\n\tLongleftarrow: '\\u27F8',\n\tlongleftarrow: '\\u27F5',\n\tLongLeftRightArrow: '\\u27F7',\n\tLongleftrightarrow: '\\u27FA',\n\tlongleftrightarrow: '\\u27F7',\n\tlongmapsto: '\\u27FC',\n\tLongRightArrow: '\\u27F6',\n\tLongrightarrow: '\\u27F9',\n\tlongrightarrow: '\\u27F6',\n\tlooparrowleft: '\\u21AB',\n\tlooparrowright: '\\u21AC',\n\tlopar: '\\u2985',\n\tLopf: '\\uD835\\uDD43',\n\tlopf: '\\uD835\\uDD5D',\n\tloplus: '\\u2A2D',\n\tlotimes: '\\u2A34',\n\tlowast: '\\u2217',\n\tlowbar: '\\u005F',\n\tLowerLeftArrow: '\\u2199',\n\tLowerRightArrow: '\\u2198',\n\tloz: '\\u25CA',\n\tlozenge: '\\u25CA',\n\tlozf: '\\u29EB',\n\tlpar: '\\u0028',\n\tlparlt: '\\u2993',\n\tlrarr: '\\u21C6',\n\tlrcorner: '\\u231F',\n\tlrhar: '\\u21CB',\n\tlrhard: '\\u296D',\n\tlrm: '\\u200E',\n\tlrtri: '\\u22BF',\n\tlsaquo: '\\u2039',\n\tLscr: '\\u2112',\n\tlscr: '\\uD835\\uDCC1',\n\tLsh: '\\u21B0',\n\tlsh: '\\u21B0',\n\tlsim: '\\u2272',\n\tlsime: '\\u2A8D',\n\tlsimg: '\\u2A8F',\n\tlsqb: '\\u005B',\n\tlsquo: '\\u2018',\n\tlsquor: '\\u201A',\n\tLstrok: '\\u0141',\n\tlstrok: '\\u0142',\n\tLt: '\\u226A',\n\tLT: '\\u003C',\n\tlt: '\\u003C',\n\tltcc: '\\u2AA6',\n\tltcir: '\\u2A79',\n\tltdot: '\\u22D6',\n\tlthree: '\\u22CB',\n\tltimes: '\\u22C9',\n\tltlarr: '\\u2976',\n\tltquest: '\\u2A7B',\n\tltri: '\\u25C3',\n\tltrie: '\\u22B4',\n\tltrif: '\\u25C2',\n\tltrPar: '\\u2996',\n\tlurdshar: '\\u294A',\n\tluruhar: '\\u2966',\n\tlvertneqq: '\\u2268\\uFE00',\n\tlvnE: '\\u2268\\uFE00',\n\tmacr: '\\u00AF',\n\tmale: '\\u2642',\n\tmalt: '\\u2720',\n\tmaltese: '\\u2720',\n\tMap: '\\u2905',\n\tmap: '\\u21A6',\n\tmapsto: '\\u21A6',\n\tmapstodown: '\\u21A7',\n\tmapstoleft: '\\u21A4',\n\tmapstoup: '\\u21A5',\n\tmarker: '\\u25AE',\n\tmcomma: '\\u2A29',\n\tMcy: '\\u041C',\n\tmcy: '\\u043C',\n\tmdash: '\\u2014',\n\tmDDot: '\\u223A',\n\tmeasuredangle: '\\u2221',\n\tMediumSpace: '\\u205F',\n\tMellintrf: '\\u2133',\n\tMfr: '\\uD835\\uDD10',\n\tmfr: '\\uD835\\uDD2A',\n\tmho: '\\u2127',\n\tmicro: '\\u00B5',\n\tmid: '\\u2223',\n\tmidast: '\\u002A',\n\tmidcir: '\\u2AF0',\n\tmiddot: '\\u00B7',\n\tminus: '\\u2212',\n\tminusb: '\\u229F',\n\tminusd: '\\u2238',\n\tminusdu: '\\u2A2A',\n\tMinusPlus: '\\u2213',\n\tmlcp: '\\u2ADB',\n\tmldr: '\\u2026',\n\tmnplus: '\\u2213',\n\tmodels: '\\u22A7',\n\tMopf: '\\uD835\\uDD44',\n\tmopf: '\\uD835\\uDD5E',\n\tmp: '\\u2213',\n\tMscr: '\\u2133',\n\tmscr: '\\uD835\\uDCC2',\n\tmstpos: '\\u223E',\n\tMu: '\\u039C',\n\tmu: '\\u03BC',\n\tmultimap: '\\u22B8',\n\tmumap: '\\u22B8',\n\tnabla: '\\u2207',\n\tNacute: '\\u0143',\n\tnacute: '\\u0144',\n\tnang: '\\u2220\\u20D2',\n\tnap: '\\u2249',\n\tnapE: '\\u2A70\\u0338',\n\tnapid: '\\u224B\\u0338',\n\tnapos: '\\u0149',\n\tnapprox: '\\u2249',\n\tnatur: '\\u266E',\n\tnatural: '\\u266E',\n\tnaturals: '\\u2115',\n\tnbsp: '\\u00A0',\n\tnbump: '\\u224E\\u0338',\n\tnbumpe: '\\u224F\\u0338',\n\tncap: '\\u2A43',\n\tNcaron: '\\u0147',\n\tncaron: '\\u0148',\n\tNcedil: '\\u0145',\n\tncedil: '\\u0146',\n\tncong: '\\u2247',\n\tncongdot: '\\u2A6D\\u0338',\n\tncup: '\\u2A42',\n\tNcy: '\\u041D',\n\tncy: '\\u043D',\n\tndash: '\\u2013',\n\tne: '\\u2260',\n\tnearhk: '\\u2924',\n\tneArr: '\\u21D7',\n\tnearr: '\\u2197',\n\tnearrow: '\\u2197',\n\tnedot: '\\u2250\\u0338',\n\tNegativeMediumSpace: '\\u200B',\n\tNegativeThickSpace: '\\u200B',\n\tNegativeThinSpace: '\\u200B',\n\tNegativeVeryThinSpace: '\\u200B',\n\tnequiv: '\\u2262',\n\tnesear: '\\u2928',\n\tnesim: '\\u2242\\u0338',\n\tNestedGreaterGreater: '\\u226B',\n\tNestedLessLess: '\\u226A',\n\tNewLine: '\\u000A',\n\tnexist: '\\u2204',\n\tnexists: '\\u2204',\n\tNfr: '\\uD835\\uDD11',\n\tnfr: '\\uD835\\uDD2B',\n\tngE: '\\u2267\\u0338',\n\tnge: '\\u2271',\n\tngeq: '\\u2271',\n\tngeqq: '\\u2267\\u0338',\n\tngeqslant: '\\u2A7E\\u0338',\n\tnges: '\\u2A7E\\u0338',\n\tnGg: '\\u22D9\\u0338',\n\tngsim: '\\u2275',\n\tnGt: '\\u226B\\u20D2',\n\tngt: '\\u226F',\n\tngtr: '\\u226F',\n\tnGtv: '\\u226B\\u0338',\n\tnhArr: '\\u21CE',\n\tnharr: '\\u21AE',\n\tnhpar: '\\u2AF2',\n\tni: '\\u220B',\n\tnis: '\\u22FC',\n\tnisd: '\\u22FA',\n\tniv: '\\u220B',\n\tNJcy: '\\u040A',\n\tnjcy: '\\u045A',\n\tnlArr: '\\u21CD',\n\tnlarr: '\\u219A',\n\tnldr: '\\u2025',\n\tnlE: '\\u2266\\u0338',\n\tnle: '\\u2270',\n\tnLeftarrow: '\\u21CD',\n\tnleftarrow: '\\u219A',\n\tnLeftrightarrow: '\\u21CE',\n\tnleftrightarrow: '\\u21AE',\n\tnleq: '\\u2270',\n\tnleqq: '\\u2266\\u0338',\n\tnleqslant: '\\u2A7D\\u0338',\n\tnles: '\\u2A7D\\u0338',\n\tnless: '\\u226E',\n\tnLl: '\\u22D8\\u0338',\n\tnlsim: '\\u2274',\n\tnLt: '\\u226A\\u20D2',\n\tnlt: '\\u226E',\n\tnltri: '\\u22EA',\n\tnltrie: '\\u22EC',\n\tnLtv: '\\u226A\\u0338',\n\tnmid: '\\u2224',\n\tNoBreak: '\\u2060',\n\tNonBreakingSpace: '\\u00A0',\n\tNopf: '\\u2115',\n\tnopf: '\\uD835\\uDD5F',\n\tNot: '\\u2AEC',\n\tnot: '\\u00AC',\n\tNotCongruent: '\\u2262',\n\tNotCupCap: '\\u226D',\n\tNotDoubleVerticalBar: '\\u2226',\n\tNotElement: '\\u2209',\n\tNotEqual: '\\u2260',\n\tNotEqualTilde: '\\u2242\\u0338',\n\tNotExists: '\\u2204',\n\tNotGreater: '\\u226F',\n\tNotGreaterEqual: '\\u2271',\n\tNotGreaterFullEqual: '\\u2267\\u0338',\n\tNotGreaterGreater: '\\u226B\\u0338',\n\tNotGreaterLess: '\\u2279',\n\tNotGreaterSlantEqual: '\\u2A7E\\u0338',\n\tNotGreaterTilde: '\\u2275',\n\tNotHumpDownHump: '\\u224E\\u0338',\n\tNotHumpEqual: '\\u224F\\u0338',\n\tnotin: '\\u2209',\n\tnotindot: '\\u22F5\\u0338',\n\tnotinE: '\\u22F9\\u0338',\n\tnotinva: '\\u2209',\n\tnotinvb: '\\u22F7',\n\tnotinvc: '\\u22F6',\n\tNotLeftTriangle: '\\u22EA',\n\tNotLeftTriangleBar: '\\u29CF\\u0338',\n\tNotLeftTriangleEqual: '\\u22EC',\n\tNotLess: '\\u226E',\n\tNotLessEqual: '\\u2270',\n\tNotLessGreater: '\\u2278',\n\tNotLessLess: '\\u226A\\u0338',\n\tNotLessSlantEqual: '\\u2A7D\\u0338',\n\tNotLessTilde: '\\u2274',\n\tNotNestedGreaterGreater: '\\u2AA2\\u0338',\n\tNotNestedLessLess: '\\u2AA1\\u0338',\n\tnotni: '\\u220C',\n\tnotniva: '\\u220C',\n\tnotnivb: '\\u22FE',\n\tnotnivc: '\\u22FD',\n\tNotPrecedes: '\\u2280',\n\tNotPrecedesEqual: '\\u2AAF\\u0338',\n\tNotPrecedesSlantEqual: '\\u22E0',\n\tNotReverseElement: '\\u220C',\n\tNotRightTriangle: '\\u22EB',\n\tNotRightTriangleBar: '\\u29D0\\u0338',\n\tNotRightTriangleEqual: '\\u22ED',\n\tNotSquareSubset: '\\u228F\\u0338',\n\tNotSquareSubsetEqual: '\\u22E2',\n\tNotSquareSuperset: '\\u2290\\u0338',\n\tNotSquareSupersetEqual: '\\u22E3',\n\tNotSubset: '\\u2282\\u20D2',\n\tNotSubsetEqual: '\\u2288',\n\tNotSucceeds: '\\u2281',\n\tNotSucceedsEqual: '\\u2AB0\\u0338',\n\tNotSucceedsSlantEqual: '\\u22E1',\n\tNotSucceedsTilde: '\\u227F\\u0338',\n\tNotSuperset: '\\u2283\\u20D2',\n\tNotSupersetEqual: '\\u2289',\n\tNotTilde: '\\u2241',\n\tNotTildeEqual: '\\u2244',\n\tNotTildeFullEqual: '\\u2247',\n\tNotTildeTilde: '\\u2249',\n\tNotVerticalBar: '\\u2224',\n\tnpar: '\\u2226',\n\tnparallel: '\\u2226',\n\tnparsl: '\\u2AFD\\u20E5',\n\tnpart: '\\u2202\\u0338',\n\tnpolint: '\\u2A14',\n\tnpr: '\\u2280',\n\tnprcue: '\\u22E0',\n\tnpre: '\\u2AAF\\u0338',\n\tnprec: '\\u2280',\n\tnpreceq: '\\u2AAF\\u0338',\n\tnrArr: '\\u21CF',\n\tnrarr: '\\u219B',\n\tnrarrc: '\\u2933\\u0338',\n\tnrarrw: '\\u219D\\u0338',\n\tnRightarrow: '\\u21CF',\n\tnrightarrow: '\\u219B',\n\tnrtri: '\\u22EB',\n\tnrtrie: '\\u22ED',\n\tnsc: '\\u2281',\n\tnsccue: '\\u22E1',\n\tnsce: '\\u2AB0\\u0338',\n\tNscr: '\\uD835\\uDCA9',\n\tnscr: '\\uD835\\uDCC3',\n\tnshortmid: '\\u2224',\n\tnshortparallel: '\\u2226',\n\tnsim: '\\u2241',\n\tnsime: '\\u2244',\n\tnsimeq: '\\u2244',\n\tnsmid: '\\u2224',\n\tnspar: '\\u2226',\n\tnsqsube: '\\u22E2',\n\tnsqsupe: '\\u22E3',\n\tnsub: '\\u2284',\n\tnsubE: '\\u2AC5\\u0338',\n\tnsube: '\\u2288',\n\tnsubset: '\\u2282\\u20D2',\n\tnsubseteq: '\\u2288',\n\tnsubseteqq: '\\u2AC5\\u0338',\n\tnsucc: '\\u2281',\n\tnsucceq: '\\u2AB0\\u0338',\n\tnsup: '\\u2285',\n\tnsupE: '\\u2AC6\\u0338',\n\tnsupe: '\\u2289',\n\tnsupset: '\\u2283\\u20D2',\n\tnsupseteq: '\\u2289',\n\tnsupseteqq: '\\u2AC6\\u0338',\n\tntgl: '\\u2279',\n\tNtilde: '\\u00D1',\n\tntilde: '\\u00F1',\n\tntlg: '\\u2278',\n\tntriangleleft: '\\u22EA',\n\tntrianglelefteq: '\\u22EC',\n\tntriangleright: '\\u22EB',\n\tntrianglerighteq: '\\u22ED',\n\tNu: '\\u039D',\n\tnu: '\\u03BD',\n\tnum: '\\u0023',\n\tnumero: '\\u2116',\n\tnumsp: '\\u2007',\n\tnvap: '\\u224D\\u20D2',\n\tnVDash: '\\u22AF',\n\tnVdash: '\\u22AE',\n\tnvDash: '\\u22AD',\n\tnvdash: '\\u22AC',\n\tnvge: '\\u2265\\u20D2',\n\tnvgt: '\\u003E\\u20D2',\n\tnvHarr: '\\u2904',\n\tnvinfin: '\\u29DE',\n\tnvlArr: '\\u2902',\n\tnvle: '\\u2264\\u20D2',\n\tnvlt: '\\u003C\\u20D2',\n\tnvltrie: '\\u22B4\\u20D2',\n\tnvrArr: '\\u2903',\n\tnvrtrie: '\\u22B5\\u20D2',\n\tnvsim: '\\u223C\\u20D2',\n\tnwarhk: '\\u2923',\n\tnwArr: '\\u21D6',\n\tnwarr: '\\u2196',\n\tnwarrow: '\\u2196',\n\tnwnear: '\\u2927',\n\tOacute: '\\u00D3',\n\toacute: '\\u00F3',\n\toast: '\\u229B',\n\tocir: '\\u229A',\n\tOcirc: '\\u00D4',\n\tocirc: '\\u00F4',\n\tOcy: '\\u041E',\n\tocy: '\\u043E',\n\todash: '\\u229D',\n\tOdblac: '\\u0150',\n\todblac: '\\u0151',\n\todiv: '\\u2A38',\n\todot: '\\u2299',\n\todsold: '\\u29BC',\n\tOElig: '\\u0152',\n\toelig: '\\u0153',\n\tofcir: '\\u29BF',\n\tOfr: '\\uD835\\uDD12',\n\tofr: '\\uD835\\uDD2C',\n\togon: '\\u02DB',\n\tOgrave: '\\u00D2',\n\tograve: '\\u00F2',\n\togt: '\\u29C1',\n\tohbar: '\\u29B5',\n\tohm: '\\u03A9',\n\toint: '\\u222E',\n\tolarr: '\\u21BA',\n\tolcir: '\\u29BE',\n\tolcross: '\\u29BB',\n\toline: '\\u203E',\n\tolt: '\\u29C0',\n\tOmacr: '\\u014C',\n\tomacr: '\\u014D',\n\tOmega: '\\u03A9',\n\tomega: '\\u03C9',\n\tOmicron: '\\u039F',\n\tomicron: '\\u03BF',\n\tomid: '\\u29B6',\n\tominus: '\\u2296',\n\tOopf: '\\uD835\\uDD46',\n\toopf: '\\uD835\\uDD60',\n\topar: '\\u29B7',\n\tOpenCurlyDoubleQuote: '\\u201C',\n\tOpenCurlyQuote: '\\u2018',\n\toperp: '\\u29B9',\n\toplus: '\\u2295',\n\tOr: '\\u2A54',\n\tor: '\\u2228',\n\torarr: '\\u21BB',\n\tord: '\\u2A5D',\n\torder: '\\u2134',\n\torderof: '\\u2134',\n\tordf: '\\u00AA',\n\tordm: '\\u00BA',\n\torigof: '\\u22B6',\n\toror: '\\u2A56',\n\torslope: '\\u2A57',\n\torv: '\\u2A5B',\n\toS: '\\u24C8',\n\tOscr: '\\uD835\\uDCAA',\n\toscr: '\\u2134',\n\tOslash: '\\u00D8',\n\toslash: '\\u00F8',\n\tosol: '\\u2298',\n\tOtilde: '\\u00D5',\n\totilde: '\\u00F5',\n\tOtimes: '\\u2A37',\n\totimes: '\\u2297',\n\totimesas: '\\u2A36',\n\tOuml: '\\u00D6',\n\touml: '\\u00F6',\n\tovbar: '\\u233D',\n\tOverBar: '\\u203E',\n\tOverBrace: '\\u23DE',\n\tOverBracket: '\\u23B4',\n\tOverParenthesis: '\\u23DC',\n\tpar: '\\u2225',\n\tpara: '\\u00B6',\n\tparallel: '\\u2225',\n\tparsim: '\\u2AF3',\n\tparsl: '\\u2AFD',\n\tpart: '\\u2202',\n\tPartialD: '\\u2202',\n\tPcy: '\\u041F',\n\tpcy: '\\u043F',\n\tpercnt: '\\u0025',\n\tperiod: '\\u002E',\n\tpermil: '\\u2030',\n\tperp: '\\u22A5',\n\tpertenk: '\\u2031',\n\tPfr: '\\uD835\\uDD13',\n\tpfr: '\\uD835\\uDD2D',\n\tPhi: '\\u03A6',\n\tphi: '\\u03C6',\n\tphiv: '\\u03D5',\n\tphmmat: '\\u2133',\n\tphone: '\\u260E',\n\tPi: '\\u03A0',\n\tpi: '\\u03C0',\n\tpitchfork: '\\u22D4',\n\tpiv: '\\u03D6',\n\tplanck: '\\u210F',\n\tplanckh: '\\u210E',\n\tplankv: '\\u210F',\n\tplus: '\\u002B',\n\tplusacir: '\\u2A23',\n\tplusb: '\\u229E',\n\tpluscir: '\\u2A22',\n\tplusdo: '\\u2214',\n\tplusdu: '\\u2A25',\n\tpluse: '\\u2A72',\n\tPlusMinus: '\\u00B1',\n\tplusmn: '\\u00B1',\n\tplussim: '\\u2A26',\n\tplustwo: '\\u2A27',\n\tpm: '\\u00B1',\n\tPoincareplane: '\\u210C',\n\tpointint: '\\u2A15',\n\tPopf: '\\u2119',\n\tpopf: '\\uD835\\uDD61',\n\tpound: '\\u00A3',\n\tPr: '\\u2ABB',\n\tpr: '\\u227A',\n\tprap: '\\u2AB7',\n\tprcue: '\\u227C',\n\tprE: '\\u2AB3',\n\tpre: '\\u2AAF',\n\tprec: '\\u227A',\n\tprecapprox: '\\u2AB7',\n\tpreccurlyeq: '\\u227C',\n\tPrecedes: '\\u227A',\n\tPrecedesEqual: '\\u2AAF',\n\tPrecedesSlantEqual: '\\u227C',\n\tPrecedesTilde: '\\u227E',\n\tpreceq: '\\u2AAF',\n\tprecnapprox: '\\u2AB9',\n\tprecneqq: '\\u2AB5',\n\tprecnsim: '\\u22E8',\n\tprecsim: '\\u227E',\n\tPrime: '\\u2033',\n\tprime: '\\u2032',\n\tprimes: '\\u2119',\n\tprnap: '\\u2AB9',\n\tprnE: '\\u2AB5',\n\tprnsim: '\\u22E8',\n\tprod: '\\u220F',\n\tProduct: '\\u220F',\n\tprofalar: '\\u232E',\n\tprofline: '\\u2312',\n\tprofsurf: '\\u2313',\n\tprop: '\\u221D',\n\tProportion: '\\u2237',\n\tProportional: '\\u221D',\n\tpropto: '\\u221D',\n\tprsim: '\\u227E',\n\tprurel: '\\u22B0',\n\tPscr: '\\uD835\\uDCAB',\n\tpscr: '\\uD835\\uDCC5',\n\tPsi: '\\u03A8',\n\tpsi: '\\u03C8',\n\tpuncsp: '\\u2008',\n\tQfr: '\\uD835\\uDD14',\n\tqfr: '\\uD835\\uDD2E',\n\tqint: '\\u2A0C',\n\tQopf: '\\u211A',\n\tqopf: '\\uD835\\uDD62',\n\tqprime: '\\u2057',\n\tQscr: '\\uD835\\uDCAC',\n\tqscr: '\\uD835\\uDCC6',\n\tquaternions: '\\u210D',\n\tquatint: '\\u2A16',\n\tquest: '\\u003F',\n\tquesteq: '\\u225F',\n\tQUOT: '\\u0022',\n\tquot: '\\u0022',\n\trAarr: '\\u21DB',\n\trace: '\\u223D\\u0331',\n\tRacute: '\\u0154',\n\tracute: '\\u0155',\n\tradic: '\\u221A',\n\traemptyv: '\\u29B3',\n\tRang: '\\u27EB',\n\trang: '\\u27E9',\n\trangd: '\\u2992',\n\trange: '\\u29A5',\n\trangle: '\\u27E9',\n\traquo: '\\u00BB',\n\tRarr: '\\u21A0',\n\trArr: '\\u21D2',\n\trarr: '\\u2192',\n\trarrap: '\\u2975',\n\trarrb: '\\u21E5',\n\trarrbfs: '\\u2920',\n\trarrc: '\\u2933',\n\trarrfs: '\\u291E',\n\trarrhk: '\\u21AA',\n\trarrlp: '\\u21AC',\n\trarrpl: '\\u2945',\n\trarrsim: '\\u2974',\n\tRarrtl: '\\u2916',\n\trarrtl: '\\u21A3',\n\trarrw: '\\u219D',\n\trAtail: '\\u291C',\n\tratail: '\\u291A',\n\tratio: '\\u2236',\n\trationals: '\\u211A',\n\tRBarr: '\\u2910',\n\trBarr: '\\u290F',\n\trbarr: '\\u290D',\n\trbbrk: '\\u2773',\n\trbrace: '\\u007D',\n\trbrack: '\\u005D',\n\trbrke: '\\u298C',\n\trbrksld: '\\u298E',\n\trbrkslu: '\\u2990',\n\tRcaron: '\\u0158',\n\trcaron: '\\u0159',\n\tRcedil: '\\u0156',\n\trcedil: '\\u0157',\n\trceil: '\\u2309',\n\trcub: '\\u007D',\n\tRcy: '\\u0420',\n\trcy: '\\u0440',\n\trdca: '\\u2937',\n\trdldhar: '\\u2969',\n\trdquo: '\\u201D',\n\trdquor: '\\u201D',\n\trdsh: '\\u21B3',\n\tRe: '\\u211C',\n\treal: '\\u211C',\n\trealine: '\\u211B',\n\trealpart: '\\u211C',\n\treals: '\\u211D',\n\trect: '\\u25AD',\n\tREG: '\\u00AE',\n\treg: '\\u00AE',\n\tReverseElement: '\\u220B',\n\tReverseEquilibrium: '\\u21CB',\n\tReverseUpEquilibrium: '\\u296F',\n\trfisht: '\\u297D',\n\trfloor: '\\u230B',\n\tRfr: '\\u211C',\n\trfr: '\\uD835\\uDD2F',\n\trHar: '\\u2964',\n\trhard: '\\u21C1',\n\trharu: '\\u21C0',\n\trharul: '\\u296C',\n\tRho: '\\u03A1',\n\trho: '\\u03C1',\n\trhov: '\\u03F1',\n\tRightAngleBracket: '\\u27E9',\n\tRightArrow: '\\u2192',\n\tRightarrow: '\\u21D2',\n\trightarrow: '\\u2192',\n\tRightArrowBar: '\\u21E5',\n\tRightArrowLeftArrow: '\\u21C4',\n\trightarrowtail: '\\u21A3',\n\tRightCeiling: '\\u2309',\n\tRightDoubleBracket: '\\u27E7',\n\tRightDownTeeVector: '\\u295D',\n\tRightDownVector: '\\u21C2',\n\tRightDownVectorBar: '\\u2955',\n\tRightFloor: '\\u230B',\n\trightharpoondown: '\\u21C1',\n\trightharpoonup: '\\u21C0',\n\trightleftarrows: '\\u21C4',\n\trightleftharpoons: '\\u21CC',\n\trightrightarrows: '\\u21C9',\n\trightsquigarrow: '\\u219D',\n\tRightTee: '\\u22A2',\n\tRightTeeArrow: '\\u21A6',\n\tRightTeeVector: '\\u295B',\n\trightthreetimes: '\\u22CC',\n\tRightTriangle: '\\u22B3',\n\tRightTriangleBar: '\\u29D0',\n\tRightTriangleEqual: '\\u22B5',\n\tRightUpDownVector: '\\u294F',\n\tRightUpTeeVector: '\\u295C',\n\tRightUpVector: '\\u21BE',\n\tRightUpVectorBar: '\\u2954',\n\tRightVector: '\\u21C0',\n\tRightVectorBar: '\\u2953',\n\tring: '\\u02DA',\n\trisingdotseq: '\\u2253',\n\trlarr: '\\u21C4',\n\trlhar: '\\u21CC',\n\trlm: '\\u200F',\n\trmoust: '\\u23B1',\n\trmoustache: '\\u23B1',\n\trnmid: '\\u2AEE',\n\troang: '\\u27ED',\n\troarr: '\\u21FE',\n\trobrk: '\\u27E7',\n\tropar: '\\u2986',\n\tRopf: '\\u211D',\n\tropf: '\\uD835\\uDD63',\n\troplus: '\\u2A2E',\n\trotimes: '\\u2A35',\n\tRoundImplies: '\\u2970',\n\trpar: '\\u0029',\n\trpargt: '\\u2994',\n\trppolint: '\\u2A12',\n\trrarr: '\\u21C9',\n\tRrightarrow: '\\u21DB',\n\trsaquo: '\\u203A',\n\tRscr: '\\u211B',\n\trscr: '\\uD835\\uDCC7',\n\tRsh: '\\u21B1',\n\trsh: '\\u21B1',\n\trsqb: '\\u005D',\n\trsquo: '\\u2019',\n\trsquor: '\\u2019',\n\trthree: '\\u22CC',\n\trtimes: '\\u22CA',\n\trtri: '\\u25B9',\n\trtrie: '\\u22B5',\n\trtrif: '\\u25B8',\n\trtriltri: '\\u29CE',\n\tRuleDelayed: '\\u29F4',\n\truluhar: '\\u2968',\n\trx: '\\u211E',\n\tSacute: '\\u015A',\n\tsacute: '\\u015B',\n\tsbquo: '\\u201A',\n\tSc: '\\u2ABC',\n\tsc: '\\u227B',\n\tscap: '\\u2AB8',\n\tScaron: '\\u0160',\n\tscaron: '\\u0161',\n\tsccue: '\\u227D',\n\tscE: '\\u2AB4',\n\tsce: '\\u2AB0',\n\tScedil: '\\u015E',\n\tscedil: '\\u015F',\n\tScirc: '\\u015C',\n\tscirc: '\\u015D',\n\tscnap: '\\u2ABA',\n\tscnE: '\\u2AB6',\n\tscnsim: '\\u22E9',\n\tscpolint: '\\u2A13',\n\tscsim: '\\u227F',\n\tScy: '\\u0421',\n\tscy: '\\u0441',\n\tsdot: '\\u22C5',\n\tsdotb: '\\u22A1',\n\tsdote: '\\u2A66',\n\tsearhk: '\\u2925',\n\tseArr: '\\u21D8',\n\tsearr: '\\u2198',\n\tsearrow: '\\u2198',\n\tsect: '\\u00A7',\n\tsemi: '\\u003B',\n\tseswar: '\\u2929',\n\tsetminus: '\\u2216',\n\tsetmn: '\\u2216',\n\tsext: '\\u2736',\n\tSfr: '\\uD835\\uDD16',\n\tsfr: '\\uD835\\uDD30',\n\tsfrown: '\\u2322',\n\tsharp: '\\u266F',\n\tSHCHcy: '\\u0429',\n\tshchcy: '\\u0449',\n\tSHcy: '\\u0428',\n\tshcy: '\\u0448',\n\tShortDownArrow: '\\u2193',\n\tShortLeftArrow: '\\u2190',\n\tshortmid: '\\u2223',\n\tshortparallel: '\\u2225',\n\tShortRightArrow: '\\u2192',\n\tShortUpArrow: '\\u2191',\n\tshy: '\\u00AD',\n\tSigma: '\\u03A3',\n\tsigma: '\\u03C3',\n\tsigmaf: '\\u03C2',\n\tsigmav: '\\u03C2',\n\tsim: '\\u223C',\n\tsimdot: '\\u2A6A',\n\tsime: '\\u2243',\n\tsimeq: '\\u2243',\n\tsimg: '\\u2A9E',\n\tsimgE: '\\u2AA0',\n\tsiml: '\\u2A9D',\n\tsimlE: '\\u2A9F',\n\tsimne: '\\u2246',\n\tsimplus: '\\u2A24',\n\tsimrarr: '\\u2972',\n\tslarr: '\\u2190',\n\tSmallCircle: '\\u2218',\n\tsmallsetminus: '\\u2216',\n\tsmashp: '\\u2A33',\n\tsmeparsl: '\\u29E4',\n\tsmid: '\\u2223',\n\tsmile: '\\u2323',\n\tsmt: '\\u2AAA',\n\tsmte: '\\u2AAC',\n\tsmtes: '\\u2AAC\\uFE00',\n\tSOFTcy: '\\u042C',\n\tsoftcy: '\\u044C',\n\tsol: '\\u002F',\n\tsolb: '\\u29C4',\n\tsolbar: '\\u233F',\n\tSopf: '\\uD835\\uDD4A',\n\tsopf: '\\uD835\\uDD64',\n\tspades: '\\u2660',\n\tspadesuit: '\\u2660',\n\tspar: '\\u2225',\n\tsqcap: '\\u2293',\n\tsqcaps: '\\u2293\\uFE00',\n\tsqcup: '\\u2294',\n\tsqcups: '\\u2294\\uFE00',\n\tSqrt: '\\u221A',\n\tsqsub: '\\u228F',\n\tsqsube: '\\u2291',\n\tsqsubset: '\\u228F',\n\tsqsubseteq: '\\u2291',\n\tsqsup: '\\u2290',\n\tsqsupe: '\\u2292',\n\tsqsupset: '\\u2290',\n\tsqsupseteq: '\\u2292',\n\tsqu: '\\u25A1',\n\tSquare: '\\u25A1',\n\tsquare: '\\u25A1',\n\tSquareIntersection: '\\u2293',\n\tSquareSubset: '\\u228F',\n\tSquareSubsetEqual: '\\u2291',\n\tSquareSuperset: '\\u2290',\n\tSquareSupersetEqual: '\\u2292',\n\tSquareUnion: '\\u2294',\n\tsquarf: '\\u25AA',\n\tsquf: '\\u25AA',\n\tsrarr: '\\u2192',\n\tSscr: '\\uD835\\uDCAE',\n\tsscr: '\\uD835\\uDCC8',\n\tssetmn: '\\u2216',\n\tssmile: '\\u2323',\n\tsstarf: '\\u22C6',\n\tStar: '\\u22C6',\n\tstar: '\\u2606',\n\tstarf: '\\u2605',\n\tstraightepsilon: '\\u03F5',\n\tstraightphi: '\\u03D5',\n\tstrns: '\\u00AF',\n\tSub: '\\u22D0',\n\tsub: '\\u2282',\n\tsubdot: '\\u2ABD',\n\tsubE: '\\u2AC5',\n\tsube: '\\u2286',\n\tsubedot: '\\u2AC3',\n\tsubmult: '\\u2AC1',\n\tsubnE: '\\u2ACB',\n\tsubne: '\\u228A',\n\tsubplus: '\\u2ABF',\n\tsubrarr: '\\u2979',\n\tSubset: '\\u22D0',\n\tsubset: '\\u2282',\n\tsubseteq: '\\u2286',\n\tsubseteqq: '\\u2AC5',\n\tSubsetEqual: '\\u2286',\n\tsubsetneq: '\\u228A',\n\tsubsetneqq: '\\u2ACB',\n\tsubsim: '\\u2AC7',\n\tsubsub: '\\u2AD5',\n\tsubsup: '\\u2AD3',\n\tsucc: '\\u227B',\n\tsuccapprox: '\\u2AB8',\n\tsucccurlyeq: '\\u227D',\n\tSucceeds: '\\u227B',\n\tSucceedsEqual: '\\u2AB0',\n\tSucceedsSlantEqual: '\\u227D',\n\tSucceedsTilde: '\\u227F',\n\tsucceq: '\\u2AB0',\n\tsuccnapprox: '\\u2ABA',\n\tsuccneqq: '\\u2AB6',\n\tsuccnsim: '\\u22E9',\n\tsuccsim: '\\u227F',\n\tSuchThat: '\\u220B',\n\tSum: '\\u2211',\n\tsum: '\\u2211',\n\tsung: '\\u266A',\n\tSup: '\\u22D1',\n\tsup: '\\u2283',\n\tsup1: '\\u00B9',\n\tsup2: '\\u00B2',\n\tsup3: '\\u00B3',\n\tsupdot: '\\u2ABE',\n\tsupdsub: '\\u2AD8',\n\tsupE: '\\u2AC6',\n\tsupe: '\\u2287',\n\tsupedot: '\\u2AC4',\n\tSuperset: '\\u2283',\n\tSupersetEqual: '\\u2287',\n\tsuphsol: '\\u27C9',\n\tsuphsub: '\\u2AD7',\n\tsuplarr: '\\u297B',\n\tsupmult: '\\u2AC2',\n\tsupnE: '\\u2ACC',\n\tsupne: '\\u228B',\n\tsupplus: '\\u2AC0',\n\tSupset: '\\u22D1',\n\tsupset: '\\u2283',\n\tsupseteq: '\\u2287',\n\tsupseteqq: '\\u2AC6',\n\tsupsetneq: '\\u228B',\n\tsupsetneqq: '\\u2ACC',\n\tsupsim: '\\u2AC8',\n\tsupsub: '\\u2AD4',\n\tsupsup: '\\u2AD6',\n\tswarhk: '\\u2926',\n\tswArr: '\\u21D9',\n\tswarr: '\\u2199',\n\tswarrow: '\\u2199',\n\tswnwar: '\\u292A',\n\tszlig: '\\u00DF',\n\tTab: '\\u0009',\n\ttarget: '\\u2316',\n\tTau: '\\u03A4',\n\ttau: '\\u03C4',\n\ttbrk: '\\u23B4',\n\tTcaron: '\\u0164',\n\ttcaron: '\\u0165',\n\tTcedil: '\\u0162',\n\ttcedil: '\\u0163',\n\tTcy: '\\u0422',\n\ttcy: '\\u0442',\n\ttdot: '\\u20DB',\n\ttelrec: '\\u2315',\n\tTfr: '\\uD835\\uDD17',\n\ttfr: '\\uD835\\uDD31',\n\tthere4: '\\u2234',\n\tTherefore: '\\u2234',\n\ttherefore: '\\u2234',\n\tTheta: '\\u0398',\n\ttheta: '\\u03B8',\n\tthetasym: '\\u03D1',\n\tthetav: '\\u03D1',\n\tthickapprox: '\\u2248',\n\tthicksim: '\\u223C',\n\tThickSpace: '\\u205F\\u200A',\n\tthinsp: '\\u2009',\n\tThinSpace: '\\u2009',\n\tthkap: '\\u2248',\n\tthksim: '\\u223C',\n\tTHORN: '\\u00DE',\n\tthorn: '\\u00FE',\n\tTilde: '\\u223C',\n\ttilde: '\\u02DC',\n\tTildeEqual: '\\u2243',\n\tTildeFullEqual: '\\u2245',\n\tTildeTilde: '\\u2248',\n\ttimes: '\\u00D7',\n\ttimesb: '\\u22A0',\n\ttimesbar: '\\u2A31',\n\ttimesd: '\\u2A30',\n\ttint: '\\u222D',\n\ttoea: '\\u2928',\n\ttop: '\\u22A4',\n\ttopbot: '\\u2336',\n\ttopcir: '\\u2AF1',\n\tTopf: '\\uD835\\uDD4B',\n\ttopf: '\\uD835\\uDD65',\n\ttopfork: '\\u2ADA',\n\ttosa: '\\u2929',\n\ttprime: '\\u2034',\n\tTRADE: '\\u2122',\n\ttrade: '\\u2122',\n\ttriangle: '\\u25B5',\n\ttriangledown: '\\u25BF',\n\ttriangleleft: '\\u25C3',\n\ttrianglelefteq: '\\u22B4',\n\ttriangleq: '\\u225C',\n\ttriangleright: '\\u25B9',\n\ttrianglerighteq: '\\u22B5',\n\ttridot: '\\u25EC',\n\ttrie: '\\u225C',\n\ttriminus: '\\u2A3A',\n\tTripleDot: '\\u20DB',\n\ttriplus: '\\u2A39',\n\ttrisb: '\\u29CD',\n\ttritime: '\\u2A3B',\n\ttrpezium: '\\u23E2',\n\tTscr: '\\uD835\\uDCAF',\n\ttscr: '\\uD835\\uDCC9',\n\tTScy: '\\u0426',\n\ttscy: '\\u0446',\n\tTSHcy: '\\u040B',\n\ttshcy: '\\u045B',\n\tTstrok: '\\u0166',\n\ttstrok: '\\u0167',\n\ttwixt: '\\u226C',\n\ttwoheadleftarrow: '\\u219E',\n\ttwoheadrightarrow: '\\u21A0',\n\tUacute: '\\u00DA',\n\tuacute: '\\u00FA',\n\tUarr: '\\u219F',\n\tuArr: '\\u21D1',\n\tuarr: '\\u2191',\n\tUarrocir: '\\u2949',\n\tUbrcy: '\\u040E',\n\tubrcy: '\\u045E',\n\tUbreve: '\\u016C',\n\tubreve: '\\u016D',\n\tUcirc: '\\u00DB',\n\tucirc: '\\u00FB',\n\tUcy: '\\u0423',\n\tucy: '\\u0443',\n\tudarr: '\\u21C5',\n\tUdblac: '\\u0170',\n\tudblac: '\\u0171',\n\tudhar: '\\u296E',\n\tufisht: '\\u297E',\n\tUfr: '\\uD835\\uDD18',\n\tufr: '\\uD835\\uDD32',\n\tUgrave: '\\u00D9',\n\tugrave: '\\u00F9',\n\tuHar: '\\u2963',\n\tuharl: '\\u21BF',\n\tuharr: '\\u21BE',\n\tuhblk: '\\u2580',\n\tulcorn: '\\u231C',\n\tulcorner: '\\u231C',\n\tulcrop: '\\u230F',\n\tultri: '\\u25F8',\n\tUmacr: '\\u016A',\n\tumacr: '\\u016B',\n\tuml: '\\u00A8',\n\tUnderBar: '\\u005F',\n\tUnderBrace: '\\u23DF',\n\tUnderBracket: '\\u23B5',\n\tUnderParenthesis: '\\u23DD',\n\tUnion: '\\u22C3',\n\tUnionPlus: '\\u228E',\n\tUogon: '\\u0172',\n\tuogon: '\\u0173',\n\tUopf: '\\uD835\\uDD4C',\n\tuopf: '\\uD835\\uDD66',\n\tUpArrow: '\\u2191',\n\tUparrow: '\\u21D1',\n\tuparrow: '\\u2191',\n\tUpArrowBar: '\\u2912',\n\tUpArrowDownArrow: '\\u21C5',\n\tUpDownArrow: '\\u2195',\n\tUpdownarrow: '\\u21D5',\n\tupdownarrow: '\\u2195',\n\tUpEquilibrium: '\\u296E',\n\tupharpoonleft: '\\u21BF',\n\tupharpoonright: '\\u21BE',\n\tuplus: '\\u228E',\n\tUpperLeftArrow: '\\u2196',\n\tUpperRightArrow: '\\u2197',\n\tUpsi: '\\u03D2',\n\tupsi: '\\u03C5',\n\tupsih: '\\u03D2',\n\tUpsilon: '\\u03A5',\n\tupsilon: '\\u03C5',\n\tUpTee: '\\u22A5',\n\tUpTeeArrow: '\\u21A5',\n\tupuparrows: '\\u21C8',\n\turcorn: '\\u231D',\n\turcorner: '\\u231D',\n\turcrop: '\\u230E',\n\tUring: '\\u016E',\n\turing: '\\u016F',\n\turtri: '\\u25F9',\n\tUscr: '\\uD835\\uDCB0',\n\tuscr: '\\uD835\\uDCCA',\n\tutdot: '\\u22F0',\n\tUtilde: '\\u0168',\n\tutilde: '\\u0169',\n\tutri: '\\u25B5',\n\tutrif: '\\u25B4',\n\tuuarr: '\\u21C8',\n\tUuml: '\\u00DC',\n\tuuml: '\\u00FC',\n\tuwangle: '\\u29A7',\n\tvangrt: '\\u299C',\n\tvarepsilon: '\\u03F5',\n\tvarkappa: '\\u03F0',\n\tvarnothing: '\\u2205',\n\tvarphi: '\\u03D5',\n\tvarpi: '\\u03D6',\n\tvarpropto: '\\u221D',\n\tvArr: '\\u21D5',\n\tvarr: '\\u2195',\n\tvarrho: '\\u03F1',\n\tvarsigma: '\\u03C2',\n\tvarsubsetneq: '\\u228A\\uFE00',\n\tvarsubsetneqq: '\\u2ACB\\uFE00',\n\tvarsupsetneq: '\\u228B\\uFE00',\n\tvarsupsetneqq: '\\u2ACC\\uFE00',\n\tvartheta: '\\u03D1',\n\tvartriangleleft: '\\u22B2',\n\tvartriangleright: '\\u22B3',\n\tVbar: '\\u2AEB',\n\tvBar: '\\u2AE8',\n\tvBarv: '\\u2AE9',\n\tVcy: '\\u0412',\n\tvcy: '\\u0432',\n\tVDash: '\\u22AB',\n\tVdash: '\\u22A9',\n\tvDash: '\\u22A8',\n\tvdash: '\\u22A2',\n\tVdashl: '\\u2AE6',\n\tVee: '\\u22C1',\n\tvee: '\\u2228',\n\tveebar: '\\u22BB',\n\tveeeq: '\\u225A',\n\tvellip: '\\u22EE',\n\tVerbar: '\\u2016',\n\tverbar: '\\u007C',\n\tVert: '\\u2016',\n\tvert: '\\u007C',\n\tVerticalBar: '\\u2223',\n\tVerticalLine: '\\u007C',\n\tVerticalSeparator: '\\u2758',\n\tVerticalTilde: '\\u2240',\n\tVeryThinSpace: '\\u200A',\n\tVfr: '\\uD835\\uDD19',\n\tvfr: '\\uD835\\uDD33',\n\tvltri: '\\u22B2',\n\tvnsub: '\\u2282\\u20D2',\n\tvnsup: '\\u2283\\u20D2',\n\tVopf: '\\uD835\\uDD4D',\n\tvopf: '\\uD835\\uDD67',\n\tvprop: '\\u221D',\n\tvrtri: '\\u22B3',\n\tVscr: '\\uD835\\uDCB1',\n\tvscr: '\\uD835\\uDCCB',\n\tvsubnE: '\\u2ACB\\uFE00',\n\tvsubne: '\\u228A\\uFE00',\n\tvsupnE: '\\u2ACC\\uFE00',\n\tvsupne: '\\u228B\\uFE00',\n\tVvdash: '\\u22AA',\n\tvzigzag: '\\u299A',\n\tWcirc: '\\u0174',\n\twcirc: '\\u0175',\n\twedbar: '\\u2A5F',\n\tWedge: '\\u22C0',\n\twedge: '\\u2227',\n\twedgeq: '\\u2259',\n\tweierp: '\\u2118',\n\tWfr: '\\uD835\\uDD1A',\n\twfr: '\\uD835\\uDD34',\n\tWopf: '\\uD835\\uDD4E',\n\twopf: '\\uD835\\uDD68',\n\twp: '\\u2118',\n\twr: '\\u2240',\n\twreath: '\\u2240',\n\tWscr: '\\uD835\\uDCB2',\n\twscr: '\\uD835\\uDCCC',\n\txcap: '\\u22C2',\n\txcirc: '\\u25EF',\n\txcup: '\\u22C3',\n\txdtri: '\\u25BD',\n\tXfr: '\\uD835\\uDD1B',\n\txfr: '\\uD835\\uDD35',\n\txhArr: '\\u27FA',\n\txharr: '\\u27F7',\n\tXi: '\\u039E',\n\txi: '\\u03BE',\n\txlArr: '\\u27F8',\n\txlarr: '\\u27F5',\n\txmap: '\\u27FC',\n\txnis: '\\u22FB',\n\txodot: '\\u2A00',\n\tXopf: '\\uD835\\uDD4F',\n\txopf: '\\uD835\\uDD69',\n\txoplus: '\\u2A01',\n\txotime: '\\u2A02',\n\txrArr: '\\u27F9',\n\txrarr: '\\u27F6',\n\tXscr: '\\uD835\\uDCB3',\n\txscr: '\\uD835\\uDCCD',\n\txsqcup: '\\u2A06',\n\txuplus: '\\u2A04',\n\txutri: '\\u25B3',\n\txvee: '\\u22C1',\n\txwedge: '\\u22C0',\n\tYacute: '\\u00DD',\n\tyacute: '\\u00FD',\n\tYAcy: '\\u042F',\n\tyacy: '\\u044F',\n\tYcirc: '\\u0176',\n\tycirc: '\\u0177',\n\tYcy: '\\u042B',\n\tycy: '\\u044B',\n\tyen: '\\u00A5',\n\tYfr: '\\uD835\\uDD1C',\n\tyfr: '\\uD835\\uDD36',\n\tYIcy: '\\u0407',\n\tyicy: '\\u0457',\n\tYopf: '\\uD835\\uDD50',\n\tyopf: '\\uD835\\uDD6A',\n\tYscr: '\\uD835\\uDCB4',\n\tyscr: '\\uD835\\uDCCE',\n\tYUcy: '\\u042E',\n\tyucy: '\\u044E',\n\tYuml: '\\u0178',\n\tyuml: '\\u00FF',\n\tZacute: '\\u0179',\n\tzacute: '\\u017A',\n\tZcaron: '\\u017D',\n\tzcaron: '\\u017E',\n\tZcy: '\\u0417',\n\tzcy: '\\u0437',\n\tZdot: '\\u017B',\n\tzdot: '\\u017C',\n\tzeetrf: '\\u2128',\n\tZeroWidthSpace: '\\u200B',\n\tZeta: '\\u0396',\n\tzeta: '\\u03B6',\n\tZfr: '\\u2128',\n\tzfr: '\\uD835\\uDD37',\n\tZHcy: '\\u0416',\n\tzhcy: '\\u0436',\n\tzigrarr: '\\u21DD',\n\tZopf: '\\u2124',\n\tzopf: '\\uD835\\uDD6B',\n\tZscr: '\\uD835\\uDCB5',\n\tzscr: '\\uD835\\uDCCF',\n\tzwj: '\\u200D',\n\tzwnj: '\\u200C',\n});\n\n/**\n * @deprecated use `HTML_ENTITIES` instead\n * @see HTML_ENTITIES\n */\nexports.entityMap = exports.HTML_ENTITIES;\n","module.exports = isFunction\n\nvar toString = Object.prototype.toString\n\nfunction isFunction (fn) {\n if (!fn) {\n return false\n }\n var string = toString.call(fn)\n return string === '[object Function]' ||\n (typeof fn === 'function' && string !== '[object RegExp]') ||\n (typeof window !== 'undefined' &&\n // IE8 and below\n (fn === window.setTimeout ||\n fn === window.alert ||\n fn === window.confirm ||\n fn === window.prompt))\n};\n","\"use strict\";\n\nvar window = require('global/window');\n\nvar httpResponseHandler = function httpResponseHandler(callback, decodeResponseBody) {\n if (decodeResponseBody === void 0) {\n decodeResponseBody = false;\n }\n\n return function (err, response, responseBody) {\n // if the XHR failed, return that error\n if (err) {\n callback(err);\n return;\n } // if the HTTP status code is 4xx or 5xx, the request also failed\n\n\n if (response.statusCode >= 400 && response.statusCode <= 599) {\n var cause = responseBody;\n\n if (decodeResponseBody) {\n if (window.TextDecoder) {\n var charset = getCharset(response.headers && response.headers['content-type']);\n\n try {\n cause = new TextDecoder(charset).decode(responseBody);\n } catch (e) {}\n } else {\n cause = String.fromCharCode.apply(null, new Uint8Array(responseBody));\n }\n }\n\n callback({\n cause: cause\n });\n return;\n } // otherwise, request succeeded\n\n\n callback(null, responseBody);\n };\n};\n\nfunction getCharset(contentTypeHeader) {\n if (contentTypeHeader === void 0) {\n contentTypeHeader = '';\n }\n\n return contentTypeHeader.toLowerCase().split(';').reduce(function (charset, contentType) {\n var _contentType$split = contentType.split('='),\n type = _contentType$split[0],\n value = _contentType$split[1];\n\n if (type.trim() === 'charset') {\n return value.trim();\n }\n\n return charset;\n }, 'utf-8');\n}\n\nmodule.exports = httpResponseHandler;","// see https://tools.ietf.org/html/rfc1808\n\n(function (root) {\n var URL_REGEX =\n /^(?=((?:[a-zA-Z0-9+\\-.]+:)?))\\1(?=((?:\\/\\/[^\\/?#]*)?))\\2(?=((?:(?:[^?#\\/]*\\/)*[^;?#\\/]*)?))\\3((?:;[^?#]*)?)(\\?[^#]*)?(#[^]*)?$/;\n var FIRST_SEGMENT_REGEX = /^(?=([^\\/?#]*))\\1([^]*)$/;\n var SLASH_DOT_REGEX = /(?:\\/|^)\\.(?=\\/)/g;\n var SLASH_DOT_DOT_REGEX = /(?:\\/|^)\\.\\.\\/(?!\\.\\.\\/)[^\\/]*(?=\\/)/g;\n\n var URLToolkit = {\n // If opts.alwaysNormalize is true then the path will always be normalized even when it starts with / or //\n // E.g\n // With opts.alwaysNormalize = false (default, spec compliant)\n // http://a.com/b/cd + /e/f/../g => http://a.com/e/f/../g\n // With opts.alwaysNormalize = true (not spec compliant)\n // http://a.com/b/cd + /e/f/../g => http://a.com/e/g\n buildAbsoluteURL: function (baseURL, relativeURL, opts) {\n opts = opts || {};\n // remove any remaining space and CRLF\n baseURL = baseURL.trim();\n relativeURL = relativeURL.trim();\n if (!relativeURL) {\n // 2a) If the embedded URL is entirely empty, it inherits the\n // entire base URL (i.e., is set equal to the base URL)\n // and we are done.\n if (!opts.alwaysNormalize) {\n return baseURL;\n }\n var basePartsForNormalise = URLToolkit.parseURL(baseURL);\n if (!basePartsForNormalise) {\n throw new Error('Error trying to parse base URL.');\n }\n basePartsForNormalise.path = URLToolkit.normalizePath(\n basePartsForNormalise.path\n );\n return URLToolkit.buildURLFromParts(basePartsForNormalise);\n }\n var relativeParts = URLToolkit.parseURL(relativeURL);\n if (!relativeParts) {\n throw new Error('Error trying to parse relative URL.');\n }\n if (relativeParts.scheme) {\n // 2b) If the embedded URL starts with a scheme name, it is\n // interpreted as an absolute URL and we are done.\n if (!opts.alwaysNormalize) {\n return relativeURL;\n }\n relativeParts.path = URLToolkit.normalizePath(relativeParts.path);\n return URLToolkit.buildURLFromParts(relativeParts);\n }\n var baseParts = URLToolkit.parseURL(baseURL);\n if (!baseParts) {\n throw new Error('Error trying to parse base URL.');\n }\n if (!baseParts.netLoc && baseParts.path && baseParts.path[0] !== '/') {\n // If netLoc missing and path doesn't start with '/', assume everthing before the first '/' is the netLoc\n // This causes 'example.com/a' to be handled as '//example.com/a' instead of '/example.com/a'\n var pathParts = FIRST_SEGMENT_REGEX.exec(baseParts.path);\n baseParts.netLoc = pathParts[1];\n baseParts.path = pathParts[2];\n }\n if (baseParts.netLoc && !baseParts.path) {\n baseParts.path = '/';\n }\n var builtParts = {\n // 2c) Otherwise, the embedded URL inherits the scheme of\n // the base URL.\n scheme: baseParts.scheme,\n netLoc: relativeParts.netLoc,\n path: null,\n params: relativeParts.params,\n query: relativeParts.query,\n fragment: relativeParts.fragment,\n };\n if (!relativeParts.netLoc) {\n // 3) If the embedded URL's is non-empty, we skip to\n // Step 7. Otherwise, the embedded URL inherits the \n // (if any) of the base URL.\n builtParts.netLoc = baseParts.netLoc;\n // 4) If the embedded URL path is preceded by a slash \"/\", the\n // path is not relative and we skip to Step 7.\n if (relativeParts.path[0] !== '/') {\n if (!relativeParts.path) {\n // 5) If the embedded URL path is empty (and not preceded by a\n // slash), then the embedded URL inherits the base URL path\n builtParts.path = baseParts.path;\n // 5a) if the embedded URL's is non-empty, we skip to\n // step 7; otherwise, it inherits the of the base\n // URL (if any) and\n if (!relativeParts.params) {\n builtParts.params = baseParts.params;\n // 5b) if the embedded URL's is non-empty, we skip to\n // step 7; otherwise, it inherits the of the base\n // URL (if any) and we skip to step 7.\n if (!relativeParts.query) {\n builtParts.query = baseParts.query;\n }\n }\n } else {\n // 6) The last segment of the base URL's path (anything\n // following the rightmost slash \"/\", or the entire path if no\n // slash is present) is removed and the embedded URL's path is\n // appended in its place.\n var baseURLPath = baseParts.path;\n var newPath =\n baseURLPath.substring(0, baseURLPath.lastIndexOf('/') + 1) +\n relativeParts.path;\n builtParts.path = URLToolkit.normalizePath(newPath);\n }\n }\n }\n if (builtParts.path === null) {\n builtParts.path = opts.alwaysNormalize\n ? URLToolkit.normalizePath(relativeParts.path)\n : relativeParts.path;\n }\n return URLToolkit.buildURLFromParts(builtParts);\n },\n parseURL: function (url) {\n var parts = URL_REGEX.exec(url);\n if (!parts) {\n return null;\n }\n return {\n scheme: parts[1] || '',\n netLoc: parts[2] || '',\n path: parts[3] || '',\n params: parts[4] || '',\n query: parts[5] || '',\n fragment: parts[6] || '',\n };\n },\n normalizePath: function (path) {\n // The following operations are\n // then applied, in order, to the new path:\n // 6a) All occurrences of \"./\", where \".\" is a complete path\n // segment, are removed.\n // 6b) If the path ends with \".\" as a complete path segment,\n // that \".\" is removed.\n path = path.split('').reverse().join('').replace(SLASH_DOT_REGEX, '');\n // 6c) All occurrences of \"/../\", where is a\n // complete path segment not equal to \"..\", are removed.\n // Removal of these path segments is performed iteratively,\n // removing the leftmost matching pattern on each iteration,\n // until no matching pattern remains.\n // 6d) If the path ends with \"/..\", where is a\n // complete path segment not equal to \"..\", that\n // \"/..\" is removed.\n while (\n path.length !== (path = path.replace(SLASH_DOT_DOT_REGEX, '')).length\n ) {}\n return path.split('').reverse().join('');\n },\n buildURLFromParts: function (parts) {\n return (\n parts.scheme +\n parts.netLoc +\n parts.path +\n parts.params +\n parts.query +\n parts.fragment\n );\n },\n };\n\n if (typeof exports === 'object' && typeof module === 'object')\n module.exports = URLToolkit;\n else if (typeof define === 'function' && define.amd)\n define([], function () {\n return URLToolkit;\n });\n else if (typeof exports === 'object') exports['URLToolkit'] = URLToolkit;\n else root['URLToolkit'] = URLToolkit;\n})(this);\n","\"use strict\";\n\nvar RetryManager = /*#__PURE__*/function () {\n function RetryManager() {\n this.maxAttempts_ = 1;\n this.delayFactor_ = 0.1;\n this.fuzzFactor_ = 0.1;\n this.initialDelay_ = 1000;\n this.enabled_ = false;\n }\n\n var _proto = RetryManager.prototype;\n\n _proto.getIsEnabled = function getIsEnabled() {\n return this.enabled_;\n };\n\n _proto.enable = function enable() {\n this.enabled_ = true;\n };\n\n _proto.disable = function disable() {\n this.enabled_ = false;\n };\n\n _proto.reset = function reset() {\n this.maxAttempts_ = 1;\n this.delayFactor_ = 0.1;\n this.fuzzFactor_ = 0.1;\n this.initialDelay_ = 1000;\n this.enabled_ = false;\n };\n\n _proto.getMaxAttempts = function getMaxAttempts() {\n return this.maxAttempts_;\n };\n\n _proto.setMaxAttempts = function setMaxAttempts(maxAttempts) {\n this.maxAttempts_ = maxAttempts;\n };\n\n _proto.getDelayFactor = function getDelayFactor() {\n return this.delayFactor_;\n };\n\n _proto.setDelayFactor = function setDelayFactor(delayFactor) {\n this.delayFactor_ = delayFactor;\n };\n\n _proto.getFuzzFactor = function getFuzzFactor() {\n return this.fuzzFactor_;\n };\n\n _proto.setFuzzFactor = function setFuzzFactor(fuzzFactor) {\n this.fuzzFactor_ = fuzzFactor;\n };\n\n _proto.getInitialDelay = function getInitialDelay() {\n return this.initialDelay_;\n };\n\n _proto.setInitialDelay = function setInitialDelay(initialDelay) {\n this.initialDelay_ = initialDelay;\n };\n\n _proto.createRetry = function createRetry(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n maxAttempts = _ref.maxAttempts,\n delayFactor = _ref.delayFactor,\n fuzzFactor = _ref.fuzzFactor,\n initialDelay = _ref.initialDelay;\n\n return new Retry({\n maxAttempts: maxAttempts || this.maxAttempts_,\n delayFactor: delayFactor || this.delayFactor_,\n fuzzFactor: fuzzFactor || this.fuzzFactor_,\n initialDelay: initialDelay || this.initialDelay_\n });\n };\n\n return RetryManager;\n}();\n\nvar Retry = /*#__PURE__*/function () {\n function Retry(options) {\n this.maxAttempts_ = options.maxAttempts;\n this.delayFactor_ = options.delayFactor;\n this.fuzzFactor_ = options.fuzzFactor;\n this.currentDelay_ = options.initialDelay;\n this.currentAttempt_ = 1;\n }\n\n var _proto2 = Retry.prototype;\n\n _proto2.moveToNextAttempt = function moveToNextAttempt() {\n this.currentAttempt_++;\n var delayDelta = this.currentDelay_ * this.delayFactor_;\n this.currentDelay_ = this.currentDelay_ + delayDelta;\n };\n\n _proto2.shouldRetry = function shouldRetry() {\n return this.currentAttempt_ < this.maxAttempts_;\n };\n\n _proto2.getCurrentDelay = function getCurrentDelay() {\n return this.currentDelay_;\n };\n\n _proto2.getCurrentMinPossibleDelay = function getCurrentMinPossibleDelay() {\n return (1 - this.fuzzFactor_) * this.currentDelay_;\n };\n\n _proto2.getCurrentMaxPossibleDelay = function getCurrentMaxPossibleDelay() {\n return (1 + this.fuzzFactor_) * this.currentDelay_;\n }\n /**\n * For example fuzzFactor is 0.1\n * This means ±10% deviation\n * So if we have delay as 1000\n * This function can generate any value from 900 to 1100\n */\n ;\n\n _proto2.getCurrentFuzzedDelay = function getCurrentFuzzedDelay() {\n var lowValue = this.getCurrentMinPossibleDelay();\n var highValue = this.getCurrentMaxPossibleDelay();\n return lowValue + Math.random() * (highValue - lowValue);\n };\n\n return Retry;\n}();\n\nmodule.exports = RetryManager;","var getUint64 = require('../utils/numbers.js').getUint64;\n\nvar parseSidx = function(data) {\n var view = new DataView(data.buffer, data.byteOffset, data.byteLength),\n result = {\n version: data[0],\n flags: new Uint8Array(data.subarray(1, 4)),\n references: [],\n referenceId: view.getUint32(4),\n timescale: view.getUint32(8)\n },\n i = 12;\n\n if (result.version === 0) {\n result.earliestPresentationTime = view.getUint32(i);\n result.firstOffset = view.getUint32(i + 4);\n i += 8;\n } else {\n // read 64 bits\n result.earliestPresentationTime = getUint64(data.subarray(i));\n result.firstOffset = getUint64(data.subarray(i + 8));\n i += 16;\n }\n\n i += 2; // reserved\n\n var referenceCount = view.getUint16(i);\n\n i += 2; // start of references\n\n for (; referenceCount > 0; i += 12, referenceCount--) {\n result.references.push({\n referenceType: (data[i] & 0x80) >>> 7,\n referencedSize: view.getUint32(i) & 0x7FFFFFFF,\n subsegmentDuration: view.getUint32(i + 4),\n startsWithSap: !!(data[i + 8] & 0x80),\n sapType: (data[i + 8] & 0x70) >>> 4,\n sapDeltaTime: view.getUint32(i + 8) & 0x0FFFFFFF\n });\n }\n\n return result;\n};\n\n\nmodule.exports = parseSidx;\n","var dom = require('./dom')\nexports.DOMImplementation = dom.DOMImplementation\nexports.XMLSerializer = dom.XMLSerializer\nexports.DOMParser = require('./dom-parser').DOMParser\n","/**\n * mux.js\n *\n * Copyright (c) Brightcove\n * Licensed Apache-2.0 https://github.com/videojs/mux.js/blob/master/LICENSE\n */\nvar\n ONE_SECOND_IN_TS = 90000, // 90kHz clock\n secondsToVideoTs,\n secondsToAudioTs,\n videoTsToSeconds,\n audioTsToSeconds,\n audioTsToVideoTs,\n videoTsToAudioTs,\n metadataTsToSeconds;\n\nsecondsToVideoTs = function(seconds) {\n return seconds * ONE_SECOND_IN_TS;\n};\n\nsecondsToAudioTs = function(seconds, sampleRate) {\n return seconds * sampleRate;\n};\n\nvideoTsToSeconds = function(timestamp) {\n return timestamp / ONE_SECOND_IN_TS;\n};\n\naudioTsToSeconds = function(timestamp, sampleRate) {\n return timestamp / sampleRate;\n};\n\naudioTsToVideoTs = function(timestamp, sampleRate) {\n return secondsToVideoTs(audioTsToSeconds(timestamp, sampleRate));\n};\n\nvideoTsToAudioTs = function(timestamp, sampleRate) {\n return secondsToAudioTs(videoTsToSeconds(timestamp), sampleRate);\n};\n\n/**\n * Adjust ID3 tag or caption timing information by the timeline pts values\n * (if keepOriginalTimestamps is false) and convert to seconds\n */\nmetadataTsToSeconds = function(timestamp, timelineStartPts, keepOriginalTimestamps) {\n return videoTsToSeconds(keepOriginalTimestamps ? timestamp : timestamp - timelineStartPts);\n};\n\nmodule.exports = {\n ONE_SECOND_IN_TS: ONE_SECOND_IN_TS,\n secondsToVideoTs: secondsToVideoTs,\n secondsToAudioTs: secondsToAudioTs,\n videoTsToSeconds: videoTsToSeconds,\n audioTsToSeconds: audioTsToSeconds,\n audioTsToVideoTs: audioTsToVideoTs,\n videoTsToAudioTs: videoTsToAudioTs,\n metadataTsToSeconds: metadataTsToSeconds\n};\n","var topLevel = typeof global !== 'undefined' ? global :\n typeof window !== 'undefined' ? window : {}\nvar minDoc = require('min-document');\n\nvar doccy;\n\nif (typeof document !== 'undefined') {\n doccy = document;\n} else {\n doccy = topLevel['__GLOBAL_DOCUMENT_CACHE@4'];\n\n if (!doccy) {\n doccy = topLevel['__GLOBAL_DOCUMENT_CACHE@4'] = minDoc;\n }\n}\n\nmodule.exports = doccy;\n","var win;\n\nif (typeof window !== \"undefined\") {\n win = window;\n} else if (typeof global !== \"undefined\") {\n win = global;\n} else if (typeof self !== \"undefined\"){\n win = self;\n} else {\n win = {};\n}\n\nmodule.exports = win;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","/**\n * @file stream.js\n */\n\n/**\n * A lightweight readable stream implemention that handles event dispatching.\n *\n * @class Stream\n */\nvar Stream = /*#__PURE__*/function () {\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\nexport { Stream as default };","import window from 'global/window';\n\nvar atob = function atob(s) {\n return window.atob ? window.atob(s) : Buffer.from(s, 'base64').toString('binary');\n};\n\nexport default function decodeB64ToUint8Array(b64Text) {\n var decodedString = atob(b64Text);\n var array = new Uint8Array(decodedString.length);\n\n for (var i = 0; i < decodedString.length; i++) {\n array[i] = decodedString.charCodeAt(i);\n }\n\n return array;\n}","/*! @name m3u8-parser @version 7.2.0 @license Apache-2.0 */\nimport Stream from '@videojs/vhs-utils/es/stream.js';\nimport _extends from '@babel/runtime/helpers/extends';\nimport decodeB64ToUint8Array from '@videojs/vhs-utils/es/decode-b64-to-uint8-array.js';\n\n/**\n * @file m3u8/line-stream.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\nclass LineStream extends Stream {\n constructor() {\n super();\n this.buffer = '';\n }\n /**\n * Add new data to be parsed.\n *\n * @param {string} data the text to process\n */\n\n\n push(data) {\n let 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}\n\nconst TAB = String.fromCharCode(0x09);\n\nconst parseByterange = function (byterangeString) {\n // optionally match and capture 0+ digits before `@`\n // optionally match and capture 0+ digits after `@`\n const match = /([0-9.]*)?@?([0-9.]*)?/.exec(byterangeString || '');\n const result = {};\n\n if (match[1]) {\n result.length = parseInt(match[1], 10);\n }\n\n if (match[2]) {\n result.offset = parseInt(match[2], 10);\n }\n\n return result;\n};\n/**\n * \"forgiving\" attribute list psuedo-grammar:\n * attributes -> keyvalue (',' keyvalue)*\n * keyvalue -> key '=' value\n * key -> [^=]*\n * value -> '\"' [^\"]* '\"' | [^,]*\n */\n\n\nconst attributeSeparator = function () {\n const key = '[^=]*';\n const value = '\"[^\"]*\"|[^,]*';\n const 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\nconst parseAttributes = function (attributes) {\n const result = {};\n\n if (!attributes) {\n return result;\n } // split the string using attributes as the separator\n\n\n const attrs = attributes.split(attributeSeparator());\n let i = attrs.length;\n let 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 * Converts a string into a resolution object\n *\n * @param {string} resolution a string such as 3840x2160\n *\n * @return {Object} An object representing the resolution\n *\n */\n\n\nconst parseResolution = resolution => {\n const split = resolution.split('x');\n const result = {};\n\n if (split[0]) {\n result.width = parseInt(split[0], 10);\n }\n\n if (split[1]) {\n result.height = parseInt(split[1], 10);\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\nclass ParseStream extends Stream {\n constructor() {\n super();\n this.customParsers = [];\n this.tagMappers = [];\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 push(line) {\n let match;\n let 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 const newLines = this.tagMappers.reduce((acc, mapper) => {\n const 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(newLine => {\n for (let i = 0; i < this.customParsers.length; i++) {\n if (this.customParsers[i].call(this, newLine)) {\n return;\n }\n } // Comments\n\n\n if (newLine.indexOf('#EXT') !== 0) {\n this.trigger('data', {\n type: 'comment',\n text: newLine.slice(1)\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 this.trigger('data', {\n type: 'tag',\n tagType: 'm3u'\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 this.trigger('data', event);\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 this.trigger('data', event);\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 this.trigger('data', event);\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 this.trigger('data', event);\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 this.trigger('data', event);\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 this.trigger('data', event);\n return;\n }\n\n match = /^#EXT-X-BYTERANGE:(.*)?$/.exec(newLine);\n\n if (match) {\n event = _extends(parseByterange(match[1]), {\n type: 'tag',\n tagType: 'byterange'\n });\n this.trigger('data', event);\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 this.trigger('data', event);\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 const attributes = parseAttributes(match[1]);\n\n if (attributes.URI) {\n event.uri = attributes.URI;\n }\n\n if (attributes.BYTERANGE) {\n event.byterange = parseByterange(attributes.BYTERANGE);\n }\n }\n\n this.trigger('data', event);\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 event.attributes.RESOLUTION = parseResolution(event.attributes.RESOLUTION);\n }\n\n if (event.attributes.BANDWIDTH) {\n event.attributes.BANDWIDTH = parseInt(event.attributes.BANDWIDTH, 10);\n }\n\n if (event.attributes['FRAME-RATE']) {\n event.attributes['FRAME-RATE'] = parseFloat(event.attributes['FRAME-RATE']);\n }\n\n if (event.attributes['PROGRAM-ID']) {\n event.attributes['PROGRAM-ID'] = parseInt(event.attributes['PROGRAM-ID'], 10);\n }\n }\n\n this.trigger('data', event);\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 this.trigger('data', event);\n return;\n }\n\n match = /^#EXT-X-ENDLIST/.exec(newLine);\n\n if (match) {\n this.trigger('data', {\n type: 'tag',\n tagType: 'endlist'\n });\n return;\n }\n\n match = /^#EXT-X-DISCONTINUITY/.exec(newLine);\n\n if (match) {\n this.trigger('data', {\n type: 'tag',\n tagType: 'discontinuity'\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 this.trigger('data', event);\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 this.trigger('data', event);\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 this.trigger('data', event);\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 this.trigger('data', event);\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 this.trigger('data', event);\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 this.trigger('data', event);\n return;\n }\n\n match = /^#EXT-X-SKIP:(.*)$/.exec(newLine);\n\n if (match && match[1]) {\n event = {\n type: 'tag',\n tagType: 'skip'\n };\n event.attributes = parseAttributes(match[1]);\n\n if (event.attributes.hasOwnProperty('SKIPPED-SEGMENTS')) {\n event.attributes['SKIPPED-SEGMENTS'] = parseInt(event.attributes['SKIPPED-SEGMENTS'], 10);\n }\n\n if (event.attributes.hasOwnProperty('RECENTLY-REMOVED-DATERANGES')) {\n event.attributes['RECENTLY-REMOVED-DATERANGES'] = event.attributes['RECENTLY-REMOVED-DATERANGES'].split(TAB);\n }\n\n this.trigger('data', event);\n return;\n }\n\n match = /^#EXT-X-PART:(.*)$/.exec(newLine);\n\n if (match && match[1]) {\n event = {\n type: 'tag',\n tagType: 'part'\n };\n event.attributes = parseAttributes(match[1]);\n ['DURATION'].forEach(function (key) {\n if (event.attributes.hasOwnProperty(key)) {\n event.attributes[key] = parseFloat(event.attributes[key]);\n }\n });\n ['INDEPENDENT', 'GAP'].forEach(function (key) {\n if (event.attributes.hasOwnProperty(key)) {\n event.attributes[key] = /YES/.test(event.attributes[key]);\n }\n });\n\n if (event.attributes.hasOwnProperty('BYTERANGE')) {\n event.attributes.byterange = parseByterange(event.attributes.BYTERANGE);\n }\n\n this.trigger('data', event);\n return;\n }\n\n match = /^#EXT-X-SERVER-CONTROL:(.*)$/.exec(newLine);\n\n if (match && match[1]) {\n event = {\n type: 'tag',\n tagType: 'server-control'\n };\n event.attributes = parseAttributes(match[1]);\n ['CAN-SKIP-UNTIL', 'PART-HOLD-BACK', 'HOLD-BACK'].forEach(function (key) {\n if (event.attributes.hasOwnProperty(key)) {\n event.attributes[key] = parseFloat(event.attributes[key]);\n }\n });\n ['CAN-SKIP-DATERANGES', 'CAN-BLOCK-RELOAD'].forEach(function (key) {\n if (event.attributes.hasOwnProperty(key)) {\n event.attributes[key] = /YES/.test(event.attributes[key]);\n }\n });\n this.trigger('data', event);\n return;\n }\n\n match = /^#EXT-X-PART-INF:(.*)$/.exec(newLine);\n\n if (match && match[1]) {\n event = {\n type: 'tag',\n tagType: 'part-inf'\n };\n event.attributes = parseAttributes(match[1]);\n ['PART-TARGET'].forEach(function (key) {\n if (event.attributes.hasOwnProperty(key)) {\n event.attributes[key] = parseFloat(event.attributes[key]);\n }\n });\n this.trigger('data', event);\n return;\n }\n\n match = /^#EXT-X-PRELOAD-HINT:(.*)$/.exec(newLine);\n\n if (match && match[1]) {\n event = {\n type: 'tag',\n tagType: 'preload-hint'\n };\n event.attributes = parseAttributes(match[1]);\n ['BYTERANGE-START', 'BYTERANGE-LENGTH'].forEach(function (key) {\n if (event.attributes.hasOwnProperty(key)) {\n event.attributes[key] = parseInt(event.attributes[key], 10);\n const subkey = key === 'BYTERANGE-LENGTH' ? 'length' : 'offset';\n event.attributes.byterange = event.attributes.byterange || {};\n event.attributes.byterange[subkey] = event.attributes[key]; // only keep the parsed byterange object.\n\n delete event.attributes[key];\n }\n });\n this.trigger('data', event);\n return;\n }\n\n match = /^#EXT-X-RENDITION-REPORT:(.*)$/.exec(newLine);\n\n if (match && match[1]) {\n event = {\n type: 'tag',\n tagType: 'rendition-report'\n };\n event.attributes = parseAttributes(match[1]);\n ['LAST-MSN', 'LAST-PART'].forEach(function (key) {\n if (event.attributes.hasOwnProperty(key)) {\n event.attributes[key] = parseInt(event.attributes[key], 10);\n }\n });\n this.trigger('data', event);\n return;\n }\n\n match = /^#EXT-X-DATERANGE:(.*)$/.exec(newLine);\n\n if (match && match[1]) {\n event = {\n type: 'tag',\n tagType: 'daterange'\n };\n event.attributes = parseAttributes(match[1]);\n ['ID', 'CLASS'].forEach(function (key) {\n if (event.attributes.hasOwnProperty(key)) {\n event.attributes[key] = String(event.attributes[key]);\n }\n });\n ['START-DATE', 'END-DATE'].forEach(function (key) {\n if (event.attributes.hasOwnProperty(key)) {\n event.attributes[key] = new Date(event.attributes[key]);\n }\n });\n ['DURATION', 'PLANNED-DURATION'].forEach(function (key) {\n if (event.attributes.hasOwnProperty(key)) {\n event.attributes[key] = parseFloat(event.attributes[key]);\n }\n });\n ['END-ON-NEXT'].forEach(function (key) {\n if (event.attributes.hasOwnProperty(key)) {\n event.attributes[key] = /YES/i.test(event.attributes[key]);\n }\n });\n ['SCTE35-CMD', ' SCTE35-OUT', 'SCTE35-IN'].forEach(function (key) {\n if (event.attributes.hasOwnProperty(key)) {\n event.attributes[key] = event.attributes[key].toString(16);\n }\n });\n const clientAttributePattern = /^X-([A-Z]+-)+[A-Z]+$/;\n\n for (const key in event.attributes) {\n if (!clientAttributePattern.test(key)) {\n continue;\n }\n\n const isHexaDecimal = /[0-9A-Fa-f]{6}/g.test(event.attributes[key]);\n const isDecimalFloating = /^\\d+(\\.\\d+)?$/.test(event.attributes[key]);\n event.attributes[key] = isHexaDecimal ? event.attributes[key].toString(16) : isDecimalFloating ? parseFloat(event.attributes[key]) : String(event.attributes[key]);\n }\n\n this.trigger('data', event);\n return;\n }\n\n match = /^#EXT-X-INDEPENDENT-SEGMENTS/.exec(newLine);\n\n if (match) {\n this.trigger('data', {\n type: 'tag',\n tagType: 'independent-segments'\n });\n return;\n }\n\n match = /^#EXT-X-I-FRAMES-ONLY/.exec(newLine);\n\n if (match) {\n this.trigger('data', {\n type: 'tag',\n tagType: 'i-frames-only'\n });\n return;\n }\n\n match = /^#EXT-X-CONTENT-STEERING:(.*)$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'content-steering'\n };\n event.attributes = parseAttributes(match[1]);\n this.trigger('data', event);\n return;\n }\n\n match = /^#EXT-X-I-FRAME-STREAM-INF:(.*)$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'i-frame-playlist'\n };\n event.attributes = parseAttributes(match[1]);\n\n if (event.attributes.URI) {\n event.uri = event.attributes.URI;\n }\n\n if (event.attributes.BANDWIDTH) {\n event.attributes.BANDWIDTH = parseInt(event.attributes.BANDWIDTH, 10);\n }\n\n if (event.attributes.RESOLUTION) {\n event.attributes.RESOLUTION = parseResolution(event.attributes.RESOLUTION);\n }\n\n if (event.attributes['AVERAGE-BANDWIDTH']) {\n event.attributes['AVERAGE-BANDWIDTH'] = parseInt(event.attributes['AVERAGE-BANDWIDTH'], 10);\n }\n\n if (event.attributes['FRAME-RATE']) {\n event.attributes['FRAME-RATE'] = parseFloat(event.attributes['FRAME-RATE']);\n }\n\n this.trigger('data', event);\n return;\n }\n\n match = /^#EXT-X-DEFINE:(.*)$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'define'\n };\n event.attributes = parseAttributes(match[1]);\n this.trigger('data', event);\n return;\n } // unknown tag type\n\n\n this.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 addParser({\n expression,\n customType,\n dataParser,\n segment\n }) {\n if (typeof dataParser !== 'function') {\n dataParser = line => line;\n }\n\n this.customParsers.push(line => {\n const match = expression.exec(line);\n\n if (match) {\n this.trigger('data', {\n type: 'custom',\n data: dataParser(line),\n customType,\n segment\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 addTagMapper({\n expression,\n map\n }) {\n const 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}\n\nconst camelCase = str => str.toLowerCase().replace(/-(\\w)/g, a => a[1].toUpperCase());\n\nconst camelCaseKeys = function (attributes) {\n const result = {};\n Object.keys(attributes).forEach(function (key) {\n result[camelCase(key)] = attributes[key];\n });\n return result;\n}; // set SERVER-CONTROL hold back based upon targetDuration and partTargetDuration\n// we need this helper because defaults are based upon targetDuration and\n// partTargetDuration being set, but they may not be if SERVER-CONTROL appears before\n// target durations are set.\n\n\nconst setHoldBack = function (manifest) {\n const {\n serverControl,\n targetDuration,\n partTargetDuration\n } = manifest;\n\n if (!serverControl) {\n return;\n }\n\n const tag = '#EXT-X-SERVER-CONTROL';\n const hb = 'holdBack';\n const phb = 'partHoldBack';\n const minTargetDuration = targetDuration && targetDuration * 3;\n const minPartDuration = partTargetDuration && partTargetDuration * 2;\n\n if (targetDuration && !serverControl.hasOwnProperty(hb)) {\n serverControl[hb] = minTargetDuration;\n this.trigger('info', {\n message: `${tag} defaulting HOLD-BACK to targetDuration * 3 (${minTargetDuration}).`\n });\n }\n\n if (minTargetDuration && serverControl[hb] < minTargetDuration) {\n this.trigger('warn', {\n message: `${tag} clamping HOLD-BACK (${serverControl[hb]}) to targetDuration * 3 (${minTargetDuration})`\n });\n serverControl[hb] = minTargetDuration;\n } // default no part hold back to part target duration * 3\n\n\n if (partTargetDuration && !serverControl.hasOwnProperty(phb)) {\n serverControl[phb] = partTargetDuration * 3;\n this.trigger('info', {\n message: `${tag} defaulting PART-HOLD-BACK to partTargetDuration * 3 (${serverControl[phb]}).`\n });\n } // if part hold back is too small default it to part target duration * 2\n\n\n if (partTargetDuration && serverControl[phb] < minPartDuration) {\n this.trigger('warn', {\n message: `${tag} clamping PART-HOLD-BACK (${serverControl[phb]}) to partTargetDuration * 2 (${minPartDuration}).`\n });\n serverControl[phb] = minPartDuration;\n }\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 * @param {Object} [opts] Options for the constructor, needed for substitutions\n * @param {string} [opts.uri] URL to check for query params\n * @param {Object} [opts.mainDefinitions] Definitions on main playlist that can be imported\n * @extends Stream\n */\n\n\nclass Parser extends Stream {\n constructor(opts = {}) {\n super();\n this.lineStream = new LineStream();\n this.parseStream = new ParseStream();\n this.lineStream.pipe(this.parseStream);\n this.mainDefinitions = opts.mainDefinitions || {};\n this.params = new URL(opts.uri, 'https://a.com').searchParams;\n this.lastProgramDateTime = null;\n /* eslint-disable consistent-this */\n\n const self = this;\n /* eslint-enable consistent-this */\n\n const uris = [];\n let currentUri = {}; // if specified, the active EXT-X-MAP definition\n\n let currentMap; // if specified, the active decryption key\n\n let key;\n let hasParts = false;\n\n const noop = function () {};\n\n const 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 const widevineUuid = 'urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed'; // group segments into numbered timelines delineated by discontinuities\n\n let currentTimeline = 0; // the manifest is empty until the parse stream begins delivering data\n\n this.manifest = {\n allowCache: true,\n discontinuityStarts: [],\n dateRanges: [],\n iFramePlaylists: [],\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 let lastByterangeEnd = 0; // keep track of the last seen part's byte range end.\n\n let lastPartByterangeEnd = 0;\n const dateRangeTags = {};\n this.on('end', () => {\n // only add preloadSegment if we don't yet have a uri for it.\n // and we actually have parts/preloadHints\n if (currentUri.uri || !currentUri.parts && !currentUri.preloadHints) {\n return;\n }\n\n if (!currentUri.map && currentMap) {\n currentUri.map = currentMap;\n }\n\n if (!currentUri.key && key) {\n currentUri.key = key;\n }\n\n if (!currentUri.timeline && typeof currentTimeline === 'number') {\n currentUri.timeline = currentTimeline;\n }\n\n this.manifest.preloadSegment = currentUri;\n }); // update the manifest with the m3u8 entry from the parse stream\n\n this.parseStream.on('data', function (entry) {\n let mediaGroup;\n let rendition; // Replace variables in uris and attributes as defined in #EXT-X-DEFINE tags\n\n if (self.manifest.definitions) {\n for (const def in self.manifest.definitions) {\n if (entry.uri) {\n entry.uri = entry.uri.replace(`{$${def}}`, self.manifest.definitions[def]);\n }\n\n if (entry.attributes) {\n for (const attr in entry.attributes) {\n if (typeof entry.attributes[attr] === 'string') {\n entry.attributes[attr] = entry.attributes[attr].replace(`{$${def}}`, self.manifest.definitions[def]);\n }\n }\n }\n }\n }\n\n ({\n tag() {\n // switch based on the tag type\n (({\n version() {\n if (entry.version) {\n this.manifest.version = entry.version;\n }\n },\n\n 'allow-cache'() {\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\n byterange() {\n const 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\n endlist() {\n this.manifest.endList = true;\n },\n\n 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.title) {\n currentUri.title = entry.title;\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\n 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 }\n\n if (entry.attributes.KEYFORMAT === 'com.apple.streamingkeydelivery') {\n this.manifest.contentProtection = this.manifest.contentProtection || {}; // TODO: add full support for this.\n\n this.manifest.contentProtection['com.apple.fps.1_0'] = {\n attributes: entry.attributes\n };\n return;\n }\n\n if (entry.attributes.KEYFORMAT === 'com.microsoft.playready') {\n this.manifest.contentProtection = this.manifest.contentProtection || {}; // TODO: add full support for this.\n\n this.manifest.contentProtection['com.microsoft.playready'] = {\n uri: entry.attributes.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 const 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 = this.manifest.contentProtection || {};\n this.manifest.contentProtection['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 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\n 'media-sequence'() {\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\n 'discontinuity-sequence'() {\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\n 'playlist-type'() {\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\n 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 if (key) {\n currentMap.key = key;\n }\n },\n\n 'stream-inf'() {\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\n 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 const 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\n discontinuity() {\n currentTimeline += 1;\n currentUri.discontinuity = true;\n this.manifest.discontinuityStarts.push(uris.length);\n },\n\n 'program-date-time'() {\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 const {\n lastProgramDateTime\n } = this;\n this.lastProgramDateTime = new Date(entry.dateTimeString).getTime(); // We should extrapolate Program Date Time backward only during first program date time occurrence.\n // Once we have at least one program date time point, we can always extrapolate it forward using lastProgramDateTime reference.\n\n if (lastProgramDateTime === null) {\n // Extrapolate Program Date Time backward\n // Since it is first program date time occurrence we're assuming that\n // all this.manifest.segments have no program date time info\n this.manifest.segments.reduceRight((programDateTime, segment) => {\n segment.programDateTime = programDateTime - segment.duration * 1000;\n return segment.programDateTime;\n }, this.lastProgramDateTime);\n }\n },\n\n 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 setHoldBack.call(this, this.manifest);\n },\n\n 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\n 'cue-out'() {\n currentUri.cueOut = entry.data;\n },\n\n 'cue-out-cont'() {\n currentUri.cueOutCont = entry.data;\n },\n\n 'cue-in'() {\n currentUri.cueIn = entry.data;\n },\n\n 'skip'() {\n this.manifest.skip = camelCaseKeys(entry.attributes);\n this.warnOnMissingAttributes_('#EXT-X-SKIP', entry.attributes, ['SKIPPED-SEGMENTS']);\n },\n\n 'part'() {\n hasParts = true; // parts are always specifed before a segment\n\n const segmentIndex = this.manifest.segments.length;\n const part = camelCaseKeys(entry.attributes);\n currentUri.parts = currentUri.parts || [];\n currentUri.parts.push(part);\n\n if (part.byterange) {\n if (!part.byterange.hasOwnProperty('offset')) {\n part.byterange.offset = lastPartByterangeEnd;\n }\n\n lastPartByterangeEnd = part.byterange.offset + part.byterange.length;\n }\n\n const partIndex = currentUri.parts.length - 1;\n this.warnOnMissingAttributes_(`#EXT-X-PART #${partIndex} for segment #${segmentIndex}`, entry.attributes, ['URI', 'DURATION']);\n\n if (this.manifest.renditionReports) {\n this.manifest.renditionReports.forEach((r, i) => {\n if (!r.hasOwnProperty('lastPart')) {\n this.trigger('warn', {\n message: `#EXT-X-RENDITION-REPORT #${i} lacks required attribute(s): LAST-PART`\n });\n }\n });\n }\n },\n\n 'server-control'() {\n const attrs = this.manifest.serverControl = camelCaseKeys(entry.attributes);\n\n if (!attrs.hasOwnProperty('canBlockReload')) {\n attrs.canBlockReload = false;\n this.trigger('info', {\n message: '#EXT-X-SERVER-CONTROL defaulting CAN-BLOCK-RELOAD to false'\n });\n }\n\n setHoldBack.call(this, this.manifest);\n\n if (attrs.canSkipDateranges && !attrs.hasOwnProperty('canSkipUntil')) {\n this.trigger('warn', {\n message: '#EXT-X-SERVER-CONTROL lacks required attribute CAN-SKIP-UNTIL which is required when CAN-SKIP-DATERANGES is set'\n });\n }\n },\n\n 'preload-hint'() {\n // parts are always specifed before a segment\n const segmentIndex = this.manifest.segments.length;\n const hint = camelCaseKeys(entry.attributes);\n const isPart = hint.type && hint.type === 'PART';\n currentUri.preloadHints = currentUri.preloadHints || [];\n currentUri.preloadHints.push(hint);\n\n if (hint.byterange) {\n if (!hint.byterange.hasOwnProperty('offset')) {\n // use last part byterange end or zero if not a part.\n hint.byterange.offset = isPart ? lastPartByterangeEnd : 0;\n\n if (isPart) {\n lastPartByterangeEnd = hint.byterange.offset + hint.byterange.length;\n }\n }\n }\n\n const index = currentUri.preloadHints.length - 1;\n this.warnOnMissingAttributes_(`#EXT-X-PRELOAD-HINT #${index} for segment #${segmentIndex}`, entry.attributes, ['TYPE', 'URI']);\n\n if (!hint.type) {\n return;\n } // search through all preload hints except for the current one for\n // a duplicate type.\n\n\n for (let i = 0; i < currentUri.preloadHints.length - 1; i++) {\n const otherHint = currentUri.preloadHints[i];\n\n if (!otherHint.type) {\n continue;\n }\n\n if (otherHint.type === hint.type) {\n this.trigger('warn', {\n message: `#EXT-X-PRELOAD-HINT #${index} for segment #${segmentIndex} has the same TYPE ${hint.type} as preload hint #${i}`\n });\n }\n }\n },\n\n 'rendition-report'() {\n const report = camelCaseKeys(entry.attributes);\n this.manifest.renditionReports = this.manifest.renditionReports || [];\n this.manifest.renditionReports.push(report);\n const index = this.manifest.renditionReports.length - 1;\n const required = ['LAST-MSN', 'URI'];\n\n if (hasParts) {\n required.push('LAST-PART');\n }\n\n this.warnOnMissingAttributes_(`#EXT-X-RENDITION-REPORT #${index}`, entry.attributes, required);\n },\n\n 'part-inf'() {\n this.manifest.partInf = camelCaseKeys(entry.attributes);\n this.warnOnMissingAttributes_('#EXT-X-PART-INF', entry.attributes, ['PART-TARGET']);\n\n if (this.manifest.partInf.partTarget) {\n this.manifest.partTargetDuration = this.manifest.partInf.partTarget;\n }\n\n setHoldBack.call(this, this.manifest);\n },\n\n 'daterange'() {\n this.manifest.dateRanges.push(camelCaseKeys(entry.attributes));\n const index = this.manifest.dateRanges.length - 1;\n this.warnOnMissingAttributes_(`#EXT-X-DATERANGE #${index}`, entry.attributes, ['ID', 'START-DATE']);\n const dateRange = this.manifest.dateRanges[index];\n\n if (dateRange.endDate && dateRange.startDate && new Date(dateRange.endDate) < new Date(dateRange.startDate)) {\n this.trigger('warn', {\n message: 'EXT-X-DATERANGE END-DATE must be equal to or later than the value of the START-DATE'\n });\n }\n\n if (dateRange.duration && dateRange.duration < 0) {\n this.trigger('warn', {\n message: 'EXT-X-DATERANGE DURATION must not be negative'\n });\n }\n\n if (dateRange.plannedDuration && dateRange.plannedDuration < 0) {\n this.trigger('warn', {\n message: 'EXT-X-DATERANGE PLANNED-DURATION must not be negative'\n });\n }\n\n const endOnNextYes = !!dateRange.endOnNext;\n\n if (endOnNextYes && !dateRange.class) {\n this.trigger('warn', {\n message: 'EXT-X-DATERANGE with an END-ON-NEXT=YES attribute must have a CLASS attribute'\n });\n }\n\n if (endOnNextYes && (dateRange.duration || dateRange.endDate)) {\n this.trigger('warn', {\n message: 'EXT-X-DATERANGE with an END-ON-NEXT=YES attribute must not contain DURATION or END-DATE attributes'\n });\n }\n\n if (dateRange.duration && dateRange.endDate) {\n const startDate = dateRange.startDate;\n const newDateInSeconds = startDate.getTime() + dateRange.duration * 1000;\n this.manifest.dateRanges[index].endDate = new Date(newDateInSeconds);\n }\n\n if (!dateRangeTags[dateRange.id]) {\n dateRangeTags[dateRange.id] = dateRange;\n } else {\n for (const attribute in dateRangeTags[dateRange.id]) {\n if (!!dateRange[attribute] && JSON.stringify(dateRangeTags[dateRange.id][attribute]) !== JSON.stringify(dateRange[attribute])) {\n this.trigger('warn', {\n message: 'EXT-X-DATERANGE tags with the same ID in a playlist must have the same attributes values'\n });\n break;\n }\n } // if tags with the same ID do not have conflicting attributes, merge them\n\n\n const dateRangeWithSameId = this.manifest.dateRanges.findIndex(dateRangeToFind => dateRangeToFind.id === dateRange.id);\n this.manifest.dateRanges[dateRangeWithSameId] = _extends(this.manifest.dateRanges[dateRangeWithSameId], dateRange);\n dateRangeTags[dateRange.id] = _extends(dateRangeTags[dateRange.id], dateRange); // after merging, delete the duplicate dateRange that was added last\n\n this.manifest.dateRanges.pop();\n }\n },\n\n 'independent-segments'() {\n this.manifest.independentSegments = true;\n },\n\n 'i-frames-only'() {\n this.manifest.iFramesOnly = true;\n this.requiredCompatibilityversion(this.manifest.version, 4);\n },\n\n 'content-steering'() {\n this.manifest.contentSteering = camelCaseKeys(entry.attributes);\n this.warnOnMissingAttributes_('#EXT-X-CONTENT-STEERING', entry.attributes, ['SERVER-URI']);\n },\n\n /** @this {Parser} */\n define() {\n this.manifest.definitions = this.manifest.definitions || {};\n\n const addDef = (n, v) => {\n if (n in this.manifest.definitions) {\n // An EXT-X-DEFINE tag MUST NOT specify the same Variable Name as any other\n // EXT-X-DEFINE tag in the same Playlist. Parsers that encounter duplicate\n // Variable Name declarations MUST fail to parse the Playlist.\n this.trigger('error', {\n message: `EXT-X-DEFINE: Duplicate name ${n}`\n });\n return;\n }\n\n this.manifest.definitions[n] = v;\n };\n\n if ('QUERYPARAM' in entry.attributes) {\n if ('NAME' in entry.attributes || 'IMPORT' in entry.attributes) {\n // An EXT-X-DEFINE tag MUST contain either a NAME, an IMPORT, or a\n // QUERYPARAM attribute, but only one of the three. Otherwise, the\n // client MUST fail to parse the Playlist.\n this.trigger('error', {\n message: 'EXT-X-DEFINE: Invalid attributes'\n });\n return;\n }\n\n const val = this.params.get(entry.attributes.QUERYPARAM);\n\n if (!val) {\n // If the QUERYPARAM attribute value does not match any query parameter in\n // the URI or the matching parameter has no associated value, the parser\n // MUST fail to parse the Playlist. If more than one parameter matches,\n // any of the associated values MAY be used.\n this.trigger('error', {\n message: `EXT-X-DEFINE: No query param ${entry.attributes.QUERYPARAM}`\n });\n return;\n }\n\n addDef(entry.attributes.QUERYPARAM, decodeURIComponent(val));\n return;\n }\n\n if ('NAME' in entry.attributes) {\n if ('IMPORT' in entry.attributes) {\n // An EXT-X-DEFINE tag MUST contain either a NAME, an IMPORT, or a\n // QUERYPARAM attribute, but only one of the three. Otherwise, the\n // client MUST fail to parse the Playlist.\n this.trigger('error', {\n message: 'EXT-X-DEFINE: Invalid attributes'\n });\n return;\n }\n\n if (!('VALUE' in entry.attributes) || typeof entry.attributes.VALUE !== 'string') {\n // This attribute is REQUIRED if the EXT-X-DEFINE tag has a NAME attribute.\n // The quoted-string MAY be empty.\n this.trigger('error', {\n message: `EXT-X-DEFINE: No value for ${entry.attributes.NAME}`\n });\n return;\n }\n\n addDef(entry.attributes.NAME, entry.attributes.VALUE);\n return;\n }\n\n if ('IMPORT' in entry.attributes) {\n if (!this.mainDefinitions[entry.attributes.IMPORT]) {\n // Covers two conditions, as mainDefinitions will always be empty on main\n //\n // EXT-X-DEFINE tags containing the IMPORT attribute MUST NOT occur in\n // Multivariant Playlists; they are only allowed in Media Playlists.\n //\n // If the IMPORT attribute value does not match any Variable Name in the\n // Multivariant Playlist, or if the Media Playlist loaded from a\n // Multivariant Playlist, the parser MUST fail the Playlist.\n this.trigger('error', {\n message: `EXT-X-DEFINE: No value ${entry.attributes.IMPORT} to import, or IMPORT used on main playlist`\n });\n return;\n }\n\n addDef(entry.attributes.IMPORT, this.mainDefinitions[entry.attributes.IMPORT]);\n return;\n } // An EXT-X-DEFINE tag MUST contain either a NAME, an IMPORT, or a QUERYPARAM\n // attribute, but only one of the three. Otherwise, the client MUST fail to\n // parse the Playlist.\n\n\n this.trigger('error', {\n message: 'EXT-X-DEFINE: No attribute'\n });\n },\n\n 'i-frame-playlist'() {\n this.manifest.iFramePlaylists.push({\n attributes: entry.attributes,\n uri: entry.uri,\n timeline: currentTimeline\n });\n this.warnOnMissingAttributes_('#EXT-X-I-FRAME-STREAM-INF', entry.attributes, ['BANDWIDTH', 'URI']);\n }\n\n })[entry.tagType] || noop).call(self);\n },\n\n 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 } // reset the last byterange end as it needs to be 0 between parts\n\n\n lastPartByterangeEnd = 0; // Once we have at least one program date time we can always extrapolate it forward\n\n if (this.lastProgramDateTime !== null) {\n currentUri.programDateTime = this.lastProgramDateTime;\n this.lastProgramDateTime += currentUri.duration * 1000;\n } // prepare for the next URI\n\n\n currentUri = {};\n },\n\n comment() {// comments are not important for playback\n },\n\n 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\n })[entry.type].call(self);\n });\n }\n\n requiredCompatibilityversion(currentVersion, targetVersion) {\n if (currentVersion < targetVersion || !currentVersion) {\n this.trigger('warn', {\n message: `manifest must be at least version ${targetVersion}`\n });\n }\n }\n\n warnOnMissingAttributes_(identifier, attributes, required) {\n const missing = [];\n required.forEach(function (key) {\n if (!attributes.hasOwnProperty(key)) {\n missing.push(key);\n }\n });\n\n if (missing.length) {\n this.trigger('warn', {\n message: `${identifier} lacks required attribute(s): ${missing.join(', ')}`\n });\n }\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 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 end() {\n // flush any buffered input\n this.lineStream.push('\\n');\n\n if (this.manifest.dateRanges.length && this.lastProgramDateTime === null) {\n this.trigger('warn', {\n message: 'A playlist with EXT-X-DATERANGE tag must contain atleast one EXT-X-PROGRAM-DATE-TIME tag'\n });\n }\n\n this.lastProgramDateTime = null;\n this.trigger('end');\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.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 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 addTagMapper(options) {\n this.parseStream.addTagMapper(options);\n }\n\n}\n\nexport { LineStream, ParseStream, Parser };\n","import window from 'global/window';\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|speex|aac)/,\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\nexport var 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\nexport var 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\nexport var 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\nexport var parseCodecs = function parseCodecs(codecString) {\n if (codecString === void 0) {\n codecString = '';\n }\n\n var codecs = codecString.split(',');\n var result = [];\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.push({\n type: type,\n details: details,\n mediaType: name\n });\n });\n\n if (!codecType) {\n result.push({\n type: codec,\n details: '',\n mediaType: 'unknown'\n });\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\nexport var 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};\nexport var isVideoCodec = function isVideoCodec(codec) {\n if (codec === void 0) {\n codec = '';\n }\n\n return regexs.video.test(codec.trim().toLowerCase());\n};\nexport var isAudioCodec = function isAudioCodec(codec) {\n if (codec === void 0) {\n codec = '';\n }\n\n return regexs.audio.test(codec.trim().toLowerCase());\n};\nexport var isTextCodec = function isTextCodec(codec) {\n if (codec === void 0) {\n codec = '';\n }\n\n return regexs.text.test(codec.trim().toLowerCase());\n};\nexport var 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};\n/**\n * Tests whether the codec is supported by MediaSource. Optionally also tests ManagedMediaSource.\n *\n * @param {string} codecString\n * Codec to test\n * @param {boolean} [withMMS]\n * Whether to check if ManagedMediaSource supports it\n * @return {boolean}\n * Codec is supported\n */\n\nexport var browserSupportsCodec = function browserSupportsCodec(codecString, withMMS) {\n if (codecString === void 0) {\n codecString = '';\n }\n\n if (withMMS === void 0) {\n withMMS = false;\n }\n\n return window.MediaSource && window.MediaSource.isTypeSupported && window.MediaSource.isTypeSupported(getMimeForCodec(codecString)) || withMMS && window.ManagedMediaSource && window.ManagedMediaSource.isTypeSupported && window.ManagedMediaSource.isTypeSupported(getMimeForCodec(codecString)) || false;\n};\nexport var 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};\nexport var DEFAULT_AUDIO_CODEC = 'mp4a.40.2';\nexport var DEFAULT_VIDEO_CODEC = 'avc1.4d400d';","import window from 'global/window'; // const log2 = Math.log2 ? Math.log2 : (x) => (Math.log(x) / Math.log(2));\n\nvar repeat = function repeat(str, len) {\n var acc = '';\n\n while (len--) {\n acc += str;\n }\n\n return acc;\n}; // count the number of bits it would take to represent a number\n// we used to do this with log2 but BigInt does not support builtin math\n// Math.ceil(log2(x));\n\n\nexport var countBits = function countBits(x) {\n return x.toString(2).length;\n}; // count the number of whole bytes it would take to represent a number\n\nexport var countBytes = function countBytes(x) {\n return Math.ceil(countBits(x) / 8);\n};\nexport var padStart = function padStart(b, len, str) {\n if (str === void 0) {\n str = ' ';\n }\n\n return (repeat(str, len) + b.toString()).slice(-len);\n};\nexport var isArrayBufferView = function isArrayBufferView(obj) {\n if (ArrayBuffer.isView === 'function') {\n return ArrayBuffer.isView(obj);\n }\n\n return obj && obj.buffer instanceof ArrayBuffer;\n};\nexport var isTypedArray = function isTypedArray(obj) {\n return isArrayBufferView(obj);\n};\nexport var toUint8 = function toUint8(bytes) {\n if (bytes instanceof Uint8Array) {\n return bytes;\n }\n\n if (!Array.isArray(bytes) && !isTypedArray(bytes) && !(bytes instanceof ArrayBuffer)) {\n // any non-number or NaN leads to empty uint8array\n // eslint-disable-next-line\n if (typeof bytes !== 'number' || typeof bytes === 'number' && bytes !== bytes) {\n bytes = 0;\n } else {\n bytes = [bytes];\n }\n }\n\n return new Uint8Array(bytes && bytes.buffer || bytes, bytes && bytes.byteOffset || 0, bytes && bytes.byteLength || 0);\n};\nexport var toHexString = function toHexString(bytes) {\n bytes = toUint8(bytes);\n var str = '';\n\n for (var i = 0; i < bytes.length; i++) {\n str += padStart(bytes[i].toString(16), 2, '0');\n }\n\n return str;\n};\nexport var toBinaryString = function toBinaryString(bytes) {\n bytes = toUint8(bytes);\n var str = '';\n\n for (var i = 0; i < bytes.length; i++) {\n str += padStart(bytes[i].toString(2), 8, '0');\n }\n\n return str;\n};\nvar BigInt = window.BigInt || Number;\nvar BYTE_TABLE = [BigInt('0x1'), BigInt('0x100'), BigInt('0x10000'), BigInt('0x1000000'), BigInt('0x100000000'), BigInt('0x10000000000'), BigInt('0x1000000000000'), BigInt('0x100000000000000'), BigInt('0x10000000000000000')];\nexport var ENDIANNESS = function () {\n var a = new Uint16Array([0xFFCC]);\n var b = new Uint8Array(a.buffer, a.byteOffset, a.byteLength);\n\n if (b[0] === 0xFF) {\n return 'big';\n }\n\n if (b[0] === 0xCC) {\n return 'little';\n }\n\n return 'unknown';\n}();\nexport var IS_BIG_ENDIAN = ENDIANNESS === 'big';\nexport var IS_LITTLE_ENDIAN = ENDIANNESS === 'little';\nexport var bytesToNumber = function bytesToNumber(bytes, _temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$signed = _ref.signed,\n signed = _ref$signed === void 0 ? false : _ref$signed,\n _ref$le = _ref.le,\n le = _ref$le === void 0 ? false : _ref$le;\n\n bytes = toUint8(bytes);\n var fn = le ? 'reduce' : 'reduceRight';\n var obj = bytes[fn] ? bytes[fn] : Array.prototype[fn];\n var number = obj.call(bytes, function (total, byte, i) {\n var exponent = le ? i : Math.abs(i + 1 - bytes.length);\n return total + BigInt(byte) * BYTE_TABLE[exponent];\n }, BigInt(0));\n\n if (signed) {\n var max = BYTE_TABLE[bytes.length] / BigInt(2) - BigInt(1);\n number = BigInt(number);\n\n if (number > max) {\n number -= max;\n number -= max;\n number -= BigInt(2);\n }\n }\n\n return Number(number);\n};\nexport var numberToBytes = function numberToBytes(number, _temp2) {\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n _ref2$le = _ref2.le,\n le = _ref2$le === void 0 ? false : _ref2$le;\n\n // eslint-disable-next-line\n if (typeof number !== 'bigint' && typeof number !== 'number' || typeof number === 'number' && number !== number) {\n number = 0;\n }\n\n number = BigInt(number);\n var byteCount = countBytes(number);\n var bytes = new Uint8Array(new ArrayBuffer(byteCount));\n\n for (var i = 0; i < byteCount; i++) {\n var byteIndex = le ? i : Math.abs(i + 1 - bytes.length);\n bytes[byteIndex] = Number(number / BYTE_TABLE[i] & BigInt(0xFF));\n\n if (number < 0) {\n bytes[byteIndex] = Math.abs(~bytes[byteIndex]);\n bytes[byteIndex] -= i === 0 ? 1 : 2;\n }\n }\n\n return bytes;\n};\nexport var bytesToString = function bytesToString(bytes) {\n if (!bytes) {\n return '';\n } // TODO: should toUint8 handle cases where we only have 8 bytes\n // but report more since this is a Uint16+ Array?\n\n\n bytes = Array.prototype.slice.call(bytes);\n var string = String.fromCharCode.apply(null, toUint8(bytes));\n\n try {\n return decodeURIComponent(escape(string));\n } catch (e) {// if decodeURIComponent/escape fails, we are dealing with partial\n // or full non string data. Just return the potentially garbled string.\n }\n\n return string;\n};\nexport var stringToBytes = function stringToBytes(string, stringIsBytes) {\n if (typeof string !== 'string' && string && typeof string.toString === 'function') {\n string = string.toString();\n }\n\n if (typeof string !== 'string') {\n return new Uint8Array();\n } // If the string already is bytes, we don't have to do this\n // otherwise we do this so that we split multi length characters\n // into individual bytes\n\n\n if (!stringIsBytes) {\n string = unescape(encodeURIComponent(string));\n }\n\n var view = new Uint8Array(string.length);\n\n for (var i = 0; i < string.length; i++) {\n view[i] = string.charCodeAt(i);\n }\n\n return view;\n};\nexport var concatTypedArrays = function concatTypedArrays() {\n for (var _len = arguments.length, buffers = new Array(_len), _key = 0; _key < _len; _key++) {\n buffers[_key] = arguments[_key];\n }\n\n buffers = buffers.filter(function (b) {\n return b && (b.byteLength || b.length) && typeof b !== 'string';\n });\n\n if (buffers.length <= 1) {\n // for 0 length we will return empty uint8\n // for 1 length we return the first uint8\n return toUint8(buffers[0]);\n }\n\n var totalLen = buffers.reduce(function (total, buf, i) {\n return total + (buf.byteLength || buf.length);\n }, 0);\n var tempBuffer = new Uint8Array(totalLen);\n var offset = 0;\n buffers.forEach(function (buf) {\n buf = toUint8(buf);\n tempBuffer.set(buf, offset);\n offset += buf.byteLength;\n });\n return tempBuffer;\n};\n/**\n * Check if the bytes \"b\" are contained within bytes \"a\".\n *\n * @param {Uint8Array|Array} a\n * Bytes to check in\n *\n * @param {Uint8Array|Array} b\n * Bytes to check for\n *\n * @param {Object} options\n * options\n *\n * @param {Array|Uint8Array} [offset=0]\n * offset to use when looking at bytes in a\n *\n * @param {Array|Uint8Array} [mask=[]]\n * mask to use on bytes before comparison.\n *\n * @return {boolean}\n * If all bytes in b are inside of a, taking into account\n * bit masks.\n */\n\nexport var bytesMatch = function bytesMatch(a, b, _temp3) {\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n _ref3$offset = _ref3.offset,\n offset = _ref3$offset === void 0 ? 0 : _ref3$offset,\n _ref3$mask = _ref3.mask,\n mask = _ref3$mask === void 0 ? [] : _ref3$mask;\n\n a = toUint8(a);\n b = toUint8(b); // ie 11 does not support uint8 every\n\n var fn = b.every ? b.every : Array.prototype.every;\n return b.length && a.length - offset >= b.length && // ie 11 doesn't support every on uin8\n fn.call(b, function (bByte, i) {\n var aByte = mask[i] ? mask[i] & a[offset + i] : a[offset + i];\n return bByte === aByte;\n });\n};\nexport var sliceBytes = function sliceBytes(src, start, end) {\n if (Uint8Array.prototype.slice) {\n return Uint8Array.prototype.slice.call(src, start, end);\n }\n\n return new Uint8Array(Array.prototype.slice.call(src, start, end));\n};\nexport var reverseBytes = function reverseBytes(src) {\n if (src.reverse) {\n return src.reverse();\n }\n\n return Array.prototype.reverse.call(src);\n};","var MPEGURL_REGEX = /^(audio|video|application)\\/(x-|vnd\\.apple\\.)?mpegurl/i;\nvar DASH_REGEX = /^application\\/dash\\+xml/i;\n/**\n * Returns a string that describes the type of source based on a video source object's\n * media type.\n *\n * @see {@link https://dev.w3.org/html5/pf-summary/video.html#dom-source-type|Source Type}\n *\n * @param {string} type\n * Video source object media type\n * @return {('hls'|'dash'|'vhs-json'|null)}\n * VHS source type string\n */\n\nexport var simpleTypeFromSourceType = function simpleTypeFromSourceType(type) {\n if (MPEGURL_REGEX.test(type)) {\n return 'hls';\n }\n\n if (DASH_REGEX.test(type)) {\n return 'dash';\n } // Denotes the special case of a manifest object passed to http-streaming instead of a\n // source URL.\n //\n // See https://en.wikipedia.org/wiki/Media_type for details on specifying media types.\n //\n // In this case, vnd stands for vendor, video.js for the organization, VHS for this\n // project, and the +json suffix identifies the structure of the media type.\n\n\n if (type === 'application/vnd.videojs.vhs+json') {\n return 'vhs-json';\n }\n\n return null;\n};","import URLToolkit from 'url-toolkit';\nimport window from 'global/window';\nvar DEFAULT_LOCATION = 'http://example.com';\n\nvar resolveUrl = function resolveUrl(baseUrl, relativeUrl) {\n // return early if we don't need to resolve\n if (/^[a-z]+:/i.test(relativeUrl)) {\n return relativeUrl;\n } // if baseUrl is a data URI, ignore it and resolve everything relative to window.location\n\n\n if (/^data:/.test(baseUrl)) {\n baseUrl = window.location && window.location.href || '';\n } // IE11 supports URL but not the URL constructor\n // feature detect the behavior we want\n\n\n var nativeURL = typeof window.URL === 'function';\n var protocolLess = /^\\/\\//.test(baseUrl); // remove location if window.location isn't available (i.e. we're in node)\n // and if baseUrl isn't an absolute url\n\n var removeLocation = !window.location && !/\\/\\//i.test(baseUrl); // if the base URL is relative then combine with the current location\n\n if (nativeURL) {\n baseUrl = new window.URL(baseUrl, window.location || DEFAULT_LOCATION);\n } else if (!/\\/\\//i.test(baseUrl)) {\n baseUrl = URLToolkit.buildAbsoluteURL(window.location && window.location.href || '', baseUrl);\n }\n\n if (nativeURL) {\n var newUrl = new URL(relativeUrl, baseUrl); // if we're a protocol-less url, remove the protocol\n // and if we're location-less, remove the location\n // otherwise, return the url unmodified\n\n if (removeLocation) {\n return newUrl.href.slice(DEFAULT_LOCATION.length);\n } else if (protocolLess) {\n return newUrl.href.slice(newUrl.protocol.length);\n }\n\n return newUrl.href;\n }\n\n return URLToolkit.buildAbsoluteURL(baseUrl, relativeUrl);\n};\n\nexport default resolveUrl;","/*! @name mpd-parser @version 1.3.1 @license Apache-2.0 */\nimport resolveUrl from '@videojs/vhs-utils/es/resolve-url';\nimport window from 'global/window';\nimport { forEachMediaGroup } from '@videojs/vhs-utils/es/media-groups';\nimport decodeB64ToUint8Array from '@videojs/vhs-utils/es/decode-b64-to-uint8-array';\nimport { DOMParser } from '@xmldom/xmldom';\n\nvar version = \"1.3.1\";\n\nconst isObject = obj => {\n return !!obj && typeof obj === 'object';\n};\n\nconst merge = (...objects) => {\n return objects.reduce((result, source) => {\n if (typeof source !== 'object') {\n return result;\n }\n\n Object.keys(source).forEach(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};\nconst values = o => Object.keys(o).map(k => o[k]);\n\nconst range = (start, end) => {\n const result = [];\n\n for (let i = start; i < end; i++) {\n result.push(i);\n }\n\n return result;\n};\nconst flatten = lists => lists.reduce((x, y) => x.concat(y), []);\nconst from = list => {\n if (!list.length) {\n return [];\n }\n\n const result = [];\n\n for (let i = 0; i < list.length; i++) {\n result.push(list[i]);\n }\n\n return result;\n};\nconst findIndexes = (l, key) => l.reduce((a, e, i) => {\n if (e[key]) {\n a.push(i);\n }\n\n return a;\n}, []);\n/**\n * Returns a union of the included lists provided each element can be identified by a key.\n *\n * @param {Array} list - list of lists to get the union of\n * @param {Function} keyFunction - the function to use as a key for each element\n *\n * @return {Array} the union of the arrays\n */\n\nconst union = (lists, keyFunction) => {\n return values(lists.reduce((acc, list) => {\n list.forEach(el => {\n acc[keyFunction(el)] = el;\n });\n return acc;\n }, {}));\n};\n\nvar errors = {\n INVALID_NUMBER_OF_PERIOD: 'INVALID_NUMBER_OF_PERIOD',\n INVALID_NUMBER_OF_CONTENT_STEERING: 'INVALID_NUMBER_OF_CONTENT_STEERING',\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\nconst urlTypeToSegment = ({\n baseUrl = '',\n source = '',\n range = '',\n indexRange = ''\n}) => {\n const segment = {\n uri: source,\n resolvedUri: resolveUrl(baseUrl || '', source)\n };\n\n if (range || indexRange) {\n const rangeStr = range ? range : indexRange;\n const ranges = rangeStr.split('-'); // default to parsing this as a BigInt if possible\n\n let startRange = window.BigInt ? window.BigInt(ranges[0]) : parseInt(ranges[0], 10);\n let endRange = window.BigInt ? window.BigInt(ranges[1]) : parseInt(ranges[1], 10); // convert back to a number if less than MAX_SAFE_INTEGER\n\n if (startRange < Number.MAX_SAFE_INTEGER && typeof startRange === 'bigint') {\n startRange = Number(startRange);\n }\n\n if (endRange < Number.MAX_SAFE_INTEGER && typeof endRange === 'bigint') {\n endRange = Number(endRange);\n }\n\n let length;\n\n if (typeof endRange === 'bigint' || typeof startRange === 'bigint') {\n length = window.BigInt(endRange) - window.BigInt(startRange) + window.BigInt(1);\n } else {\n length = endRange - startRange + 1;\n }\n\n if (typeof length === 'bigint' && length < Number.MAX_SAFE_INTEGER) {\n length = Number(length);\n } // byterange should be inclusive according to\n // RFC 2616, Clause 14.35.1\n\n\n segment.byterange = {\n length,\n offset: startRange\n };\n }\n\n return segment;\n};\nconst byteRangeToString = byterange => {\n // `endRange` is one less than `offset + length` because the HTTP range\n // header uses inclusive ranges\n let endRange;\n\n if (typeof byterange.offset === 'bigint' || typeof byterange.length === 'bigint') {\n endRange = window.BigInt(byterange.offset) + window.BigInt(byterange.length) - window.BigInt(1);\n } else {\n endRange = byterange.offset + byterange.length - 1;\n }\n\n return `${byterange.offset}-${endRange}`;\n};\n\n/**\n * parse the end number attribue that can be a string\n * number, or undefined.\n *\n * @param {string|number|undefined} endNumber\n * The end number attribute.\n *\n * @return {number|null}\n * The result of parsing the end number.\n */\n\nconst parseEndNumber = endNumber => {\n if (endNumber && typeof endNumber !== 'number') {\n endNumber = parseInt(endNumber, 10);\n }\n\n if (isNaN(endNumber)) {\n return null;\n }\n\n return endNumber;\n};\n/**\n * Functions for calculating the range of available segments in static and dynamic\n * manifests.\n */\n\n\nconst 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(attributes) {\n const {\n duration,\n timescale = 1,\n sourceDuration,\n periodDuration\n } = attributes;\n const endNumber = parseEndNumber(attributes.endNumber);\n const segmentDuration = duration / timescale;\n\n if (typeof endNumber === 'number') {\n return {\n start: 0,\n end: endNumber\n };\n }\n\n if (typeof periodDuration === 'number') {\n return {\n start: 0,\n end: periodDuration / segmentDuration\n };\n }\n\n return {\n start: 0,\n end: sourceDuration / segmentDuration\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(attributes) {\n const {\n NOW,\n clientOffset,\n availabilityStartTime,\n timescale = 1,\n duration,\n periodStart = 0,\n minimumUpdatePeriod = 0,\n timeShiftBufferDepth = Infinity\n } = attributes;\n const endNumber = parseEndNumber(attributes.endNumber); // clientOffset is passed in at the top level of mpd-parser and is an offset calculated\n // after retrieving UTC server time.\n\n const now = (NOW + clientOffset) / 1000; // WC stands for Wall Clock.\n // Convert the period start time to EPOCH.\n\n const periodStartWC = availabilityStartTime + periodStart; // Period end in EPOCH is manifest's retrieval time + time until next update.\n\n const periodEndWC = now + minimumUpdatePeriod;\n const periodDuration = periodEndWC - periodStartWC;\n const segmentCount = Math.ceil(periodDuration * timescale / duration);\n const availableStart = Math.floor((now - periodStartWC - timeShiftBufferDepth) * timescale / duration);\n const availableEnd = Math.floor((now - periodStartWC) * timescale / duration);\n return {\n start: Math.max(0, availableStart),\n end: typeof endNumber === 'number' ? endNumber : Math.min(segmentCount, availableEnd)\n };\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\nconst toSegments = attributes => number => {\n const {\n duration,\n timescale = 1,\n periodStart,\n startNumber = 1\n } = attributes;\n return {\n number: startNumber + number,\n duration: duration / timescale,\n timeline: periodStart,\n time: number * duration\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\nconst parseByDuration = attributes => {\n const {\n type,\n duration,\n timescale = 1,\n periodDuration,\n sourceDuration\n } = attributes;\n const {\n start,\n end\n } = segmentRange[type](attributes);\n const segments = range(start, end).map(toSegments(attributes));\n\n if (type === 'static') {\n const index = segments.length - 1; // section is either a period or the full source\n\n const sectionDuration = typeof periodDuration === 'number' ? periodDuration : sourceDuration; // final segment may be less than full segment duration\n\n segments[index].duration = sectionDuration - 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\nconst segmentsFromBase = attributes => {\n const {\n baseUrl,\n initialization = {},\n sourceDuration,\n indexRange = '',\n periodStart,\n presentationTime,\n number = 0,\n duration\n } = attributes; // 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 const initSegment = urlTypeToSegment({\n baseUrl,\n source: initialization.sourceURL,\n range: initialization.range\n });\n const segment = urlTypeToSegment({\n baseUrl,\n source: baseUrl,\n 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 const 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 = periodStart;\n } // If presentation time is provided, these segments are being generated by SIDX\n // references, and should use the time provided. For the general case of SegmentBase,\n // there should only be one segment in the period, so its presentation time is the same\n // as its period start.\n\n\n segment.presentationTime = presentationTime || periodStart;\n segment.number = number;\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\nconst addSidxSegmentsToPlaylist$1 = (playlist, sidx, baseUrl) => {\n // Retain init segment information\n const initSegment = playlist.sidx.map ? playlist.sidx.map : null; // Retain source duration from initial main manifest parsing\n\n const sourceDuration = playlist.sidx.duration; // Retain source timeline\n\n const timeline = playlist.timeline || 0;\n const sidxByteRange = playlist.sidx.byterange;\n const sidxEnd = sidxByteRange.offset + sidxByteRange.length; // Retain timescale of the parsed sidx\n\n const timescale = sidx.timescale; // referenceType 1 refers to other sidx boxes\n\n const mediaReferences = sidx.references.filter(r => r.referenceType !== 1);\n const segments = [];\n const type = playlist.endList ? 'static' : 'dynamic';\n const periodStart = playlist.sidx.timeline;\n let presentationTime = periodStart;\n let number = playlist.mediaSequence || 0; // firstOffset is the offset from the end of the sidx box\n\n let startIndex; // eslint-disable-next-line\n\n if (typeof sidx.firstOffset === 'bigint') {\n startIndex = window.BigInt(sidxEnd) + sidx.firstOffset;\n } else {\n startIndex = sidxEnd + sidx.firstOffset;\n }\n\n for (let i = 0; i < mediaReferences.length; i++) {\n const reference = sidx.references[i]; // size of the referenced (sub)segment\n\n const size = reference.referencedSize; // duration of the referenced (sub)segment, in the timescale\n // this will be converted to seconds when generating segments\n\n const duration = reference.subsegmentDuration; // should be an inclusive range\n\n let endIndex; // eslint-disable-next-line\n\n if (typeof startIndex === 'bigint') {\n endIndex = startIndex + window.BigInt(size) - window.BigInt(1);\n } else {\n endIndex = startIndex + size - 1;\n }\n\n const indexRange = `${startIndex}-${endIndex}`;\n const attributes = {\n baseUrl,\n timescale,\n timeline,\n periodStart,\n presentationTime,\n number,\n duration,\n sourceDuration,\n indexRange,\n type\n };\n const segment = segmentsFromBase(attributes)[0];\n\n if (initSegment) {\n segment.map = initSegment;\n }\n\n segments.push(segment);\n\n if (typeof startIndex === 'bigint') {\n startIndex += window.BigInt(size);\n } else {\n startIndex += size;\n }\n\n presentationTime += duration / timescale;\n number++;\n }\n\n playlist.segments = segments;\n return playlist;\n};\n\nconst SUPPORTED_MEDIA_TYPES = ['AUDIO', 'SUBTITLES']; // allow one 60fps frame as leniency (arbitrarily chosen)\n\nconst TIME_FUDGE = 1 / 60;\n/**\n * Given a list of timelineStarts, combines, dedupes, and sorts them.\n *\n * @param {TimelineStart[]} timelineStarts - list of timeline starts\n *\n * @return {TimelineStart[]} the combined and deduped timeline starts\n */\n\nconst getUniqueTimelineStarts = timelineStarts => {\n return union(timelineStarts, ({\n timeline\n }) => timeline).sort((a, b) => a.timeline > b.timeline ? 1 : -1);\n};\n/**\n * Finds the playlist with the matching NAME attribute.\n *\n * @param {Array} playlists - playlists to search through\n * @param {string} name - the NAME attribute to search for\n *\n * @return {Object|null} the matching playlist object, or null\n */\n\nconst findPlaylistWithName = (playlists, name) => {\n for (let i = 0; i < playlists.length; i++) {\n if (playlists[i].attributes.NAME === name) {\n return playlists[i];\n }\n }\n\n return null;\n};\n/**\n * Gets a flattened array of media group playlists.\n *\n * @param {Object} manifest - the main manifest object\n *\n * @return {Array} the media group playlists\n */\n\nconst getMediaGroupPlaylists = manifest => {\n let mediaGroupPlaylists = [];\n forEachMediaGroup(manifest, SUPPORTED_MEDIA_TYPES, (properties, type, group, label) => {\n mediaGroupPlaylists = mediaGroupPlaylists.concat(properties.playlists || []);\n });\n return mediaGroupPlaylists;\n};\n/**\n * Updates the playlist's media sequence numbers.\n *\n * @param {Object} config - options object\n * @param {Object} config.playlist - the playlist to update\n * @param {number} config.mediaSequence - the mediaSequence number to start with\n */\n\nconst updateMediaSequenceForPlaylist = ({\n playlist,\n mediaSequence\n}) => {\n playlist.mediaSequence = mediaSequence;\n playlist.segments.forEach((segment, index) => {\n segment.number = playlist.mediaSequence + index;\n });\n};\n/**\n * Updates the media and discontinuity sequence numbers of newPlaylists given oldPlaylists\n * and a complete list of timeline starts.\n *\n * If no matching playlist is found, only the discontinuity sequence number of the playlist\n * will be updated.\n *\n * Since early available timelines are not supported, at least one segment must be present.\n *\n * @param {Object} config - options object\n * @param {Object[]} oldPlaylists - the old playlists to use as a reference\n * @param {Object[]} newPlaylists - the new playlists to update\n * @param {Object} timelineStarts - all timelineStarts seen in the stream to this point\n */\n\nconst updateSequenceNumbers = ({\n oldPlaylists,\n newPlaylists,\n timelineStarts\n}) => {\n newPlaylists.forEach(playlist => {\n playlist.discontinuitySequence = timelineStarts.findIndex(function ({\n timeline\n }) {\n return timeline === playlist.timeline;\n }); // Playlists NAMEs come from DASH Representation IDs, which are mandatory\n // (see ISO_23009-1-2012 5.3.5.2).\n //\n // If the same Representation existed in a prior Period, it will retain the same NAME.\n\n const oldPlaylist = findPlaylistWithName(oldPlaylists, playlist.attributes.NAME);\n\n if (!oldPlaylist) {\n // Since this is a new playlist, the media sequence values can start from 0 without\n // consequence.\n return;\n } // TODO better support for live SIDX\n //\n // As of this writing, mpd-parser does not support multiperiod SIDX (in live or VOD).\n // This is evident by a playlist only having a single SIDX reference. In a multiperiod\n // playlist there would need to be multiple SIDX references. In addition, live SIDX is\n // not supported when the SIDX properties change on refreshes.\n //\n // In the future, if support needs to be added, the merging logic here can be called\n // after SIDX references are resolved. For now, exit early to prevent exceptions being\n // thrown due to undefined references.\n\n\n if (playlist.sidx) {\n return;\n } // Since we don't yet support early available timelines, we don't need to support\n // playlists with no segments.\n\n\n const firstNewSegment = playlist.segments[0];\n const oldMatchingSegmentIndex = oldPlaylist.segments.findIndex(function (oldSegment) {\n return Math.abs(oldSegment.presentationTime - firstNewSegment.presentationTime) < TIME_FUDGE;\n }); // No matching segment from the old playlist means the entire playlist was refreshed.\n // In this case the media sequence should account for this update, and the new segments\n // should be marked as discontinuous from the prior content, since the last prior\n // timeline was removed.\n\n if (oldMatchingSegmentIndex === -1) {\n updateMediaSequenceForPlaylist({\n playlist,\n mediaSequence: oldPlaylist.mediaSequence + oldPlaylist.segments.length\n });\n playlist.segments[0].discontinuity = true;\n playlist.discontinuityStarts.unshift(0); // No matching segment does not necessarily mean there's missing content.\n //\n // If the new playlist's timeline is the same as the last seen segment's timeline,\n // then a discontinuity can be added to identify that there's potentially missing\n // content. If there's no missing content, the discontinuity should still be rather\n // harmless. It's possible that if segment durations are accurate enough, that the\n // existence of a gap can be determined using the presentation times and durations,\n // but if the segment timing info is off, it may introduce more problems than simply\n // adding the discontinuity.\n //\n // If the new playlist's timeline is different from the last seen segment's timeline,\n // then a discontinuity can be added to identify that this is the first seen segment\n // of a new timeline. However, the logic at the start of this function that\n // determined the disconinuity sequence by timeline index is now off by one (the\n // discontinuity of the newest timeline hasn't yet fallen off the manifest...since\n // we added it), so the disconinuity sequence must be decremented.\n //\n // A period may also have a duration of zero, so the case of no segments is handled\n // here even though we don't yet support early available periods.\n\n if (!oldPlaylist.segments.length && playlist.timeline > oldPlaylist.timeline || oldPlaylist.segments.length && playlist.timeline > oldPlaylist.segments[oldPlaylist.segments.length - 1].timeline) {\n playlist.discontinuitySequence--;\n }\n\n return;\n } // If the first segment matched with a prior segment on a discontinuity (it's matching\n // on the first segment of a period), then the discontinuitySequence shouldn't be the\n // timeline's matching one, but instead should be the one prior, and the first segment\n // of the new manifest should be marked with a discontinuity.\n //\n // The reason for this special case is that discontinuity sequence shows how many\n // discontinuities have fallen off of the playlist, and discontinuities are marked on\n // the first segment of a new \"timeline.\" Because of this, while DASH will retain that\n // Period while the \"timeline\" exists, HLS keeps track of it via the discontinuity\n // sequence, and that first segment is an indicator, but can be removed before that\n // timeline is gone.\n\n\n const oldMatchingSegment = oldPlaylist.segments[oldMatchingSegmentIndex];\n\n if (oldMatchingSegment.discontinuity && !firstNewSegment.discontinuity) {\n firstNewSegment.discontinuity = true;\n playlist.discontinuityStarts.unshift(0);\n playlist.discontinuitySequence--;\n }\n\n updateMediaSequenceForPlaylist({\n playlist,\n mediaSequence: oldPlaylist.segments[oldMatchingSegmentIndex].number\n });\n });\n};\n/**\n * Given an old parsed manifest object and a new parsed manifest object, updates the\n * sequence and timing values within the new manifest to ensure that it lines up with the\n * old.\n *\n * @param {Array} oldManifest - the old main manifest object\n * @param {Array} newManifest - the new main manifest object\n *\n * @return {Object} the updated new manifest object\n */\n\nconst positionManifestOnTimeline = ({\n oldManifest,\n newManifest\n}) => {\n // Starting from v4.1.2 of the IOP, section 4.4.3.3 states:\n //\n // \"MPD@availabilityStartTime and Period@start shall not be changed over MPD updates.\"\n //\n // This was added from https://github.com/Dash-Industry-Forum/DASH-IF-IOP/issues/160\n //\n // Because of this change, and the difficulty of supporting periods with changing start\n // times, periods with changing start times are not supported. This makes the logic much\n // simpler, since periods with the same start time can be considerred the same period\n // across refreshes.\n //\n // To give an example as to the difficulty of handling periods where the start time may\n // change, if a single period manifest is refreshed with another manifest with a single\n // period, and both the start and end times are increased, then the only way to determine\n // if it's a new period or an old one that has changed is to look through the segments of\n // each playlist and determine the presentation time bounds to find a match. In addition,\n // if the period start changed to exceed the old period end, then there would be no\n // match, and it would not be possible to determine whether the refreshed period is a new\n // one or the old one.\n const oldPlaylists = oldManifest.playlists.concat(getMediaGroupPlaylists(oldManifest));\n const newPlaylists = newManifest.playlists.concat(getMediaGroupPlaylists(newManifest)); // Save all seen timelineStarts to the new manifest. Although this potentially means that\n // there's a \"memory leak\" in that it will never stop growing, in reality, only a couple\n // of properties are saved for each seen Period. Even long running live streams won't\n // generate too many Periods, unless the stream is watched for decades. In the future,\n // this can be optimized by mapping to discontinuity sequence numbers for each timeline,\n // but it may not become an issue, and the additional info can be useful for debugging.\n\n newManifest.timelineStarts = getUniqueTimelineStarts([oldManifest.timelineStarts, newManifest.timelineStarts]);\n updateSequenceNumbers({\n oldPlaylists,\n newPlaylists,\n timelineStarts: newManifest.timelineStarts\n });\n return newManifest;\n};\n\nconst generateSidxKey = sidx => sidx && sidx.uri + '-' + byteRangeToString(sidx.byterange);\n\nconst mergeDiscontiguousPlaylists = playlists => {\n // Break out playlists into groups based on their baseUrl\n const playlistsByBaseUrl = playlists.reduce(function (acc, cur) {\n if (!acc[cur.attributes.baseUrl]) {\n acc[cur.attributes.baseUrl] = [];\n }\n\n acc[cur.attributes.baseUrl].push(cur);\n return acc;\n }, {});\n let allPlaylists = [];\n Object.values(playlistsByBaseUrl).forEach(playlistGroup => {\n const mergedPlaylists = values(playlistGroup.reduce((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 const name = playlist.attributes.id + (playlist.attributes.lang || '');\n\n if (!acc[name]) {\n // First Period\n acc[name] = playlist;\n acc[name].attributes.timelineStarts = [];\n } else {\n // Subsequent Periods\n if (playlist.segments) {\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.push(...playlist.segments);\n } // 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 }\n\n acc[name].attributes.timelineStarts.push({\n // Although they represent the same number, it's important to have both to make it\n // compatible with HLS potentially having a similar attribute.\n start: playlist.attributes.periodStart,\n timeline: playlist.attributes.periodStart\n });\n return acc;\n }, {}));\n allPlaylists = allPlaylists.concat(mergedPlaylists);\n });\n return allPlaylists.map(playlist => {\n playlist.discontinuityStarts = findIndexes(playlist.segments || [], 'discontinuity');\n return playlist;\n });\n};\n\nconst addSidxSegmentsToPlaylist = (playlist, sidxMapping) => {\n const sidxKey = generateSidxKey(playlist.sidx);\n const sidxMatch = sidxKey && sidxMapping[sidxKey] && sidxMapping[sidxKey].sidx;\n\n if (sidxMatch) {\n addSidxSegmentsToPlaylist$1(playlist, sidxMatch, playlist.sidx.resolvedUri);\n }\n\n return playlist;\n};\nconst addSidxSegmentsToPlaylists = (playlists, sidxMapping = {}) => {\n if (!Object.keys(sidxMapping).length) {\n return playlists;\n }\n\n for (const i in playlists) {\n playlists[i] = addSidxSegmentsToPlaylist(playlists[i], sidxMapping);\n }\n\n return playlists;\n};\nconst formatAudioPlaylist = ({\n attributes,\n segments,\n sidx,\n mediaSequence,\n discontinuitySequence,\n discontinuityStarts\n}, isAudioOnly) => {\n const playlist = {\n attributes: {\n NAME: attributes.id,\n BANDWIDTH: attributes.bandwidth,\n CODECS: attributes.codecs,\n ['PROGRAM-ID']: 1\n },\n uri: '',\n endList: attributes.type === 'static',\n timeline: attributes.periodStart,\n resolvedUri: attributes.baseUrl || '',\n targetDuration: attributes.duration,\n discontinuitySequence,\n discontinuityStarts,\n timelineStarts: attributes.timelineStarts,\n mediaSequence,\n segments\n };\n\n if (attributes.contentProtection) {\n playlist.contentProtection = attributes.contentProtection;\n }\n\n if (attributes.serviceLocation) {\n playlist.attributes.serviceLocation = attributes.serviceLocation;\n }\n\n if (sidx) {\n playlist.sidx = sidx;\n }\n\n if (isAudioOnly) {\n playlist.attributes.AUDIO = 'audio';\n playlist.attributes.SUBTITLES = 'subs';\n }\n\n return playlist;\n};\nconst formatVttPlaylist = ({\n attributes,\n segments,\n mediaSequence,\n discontinuityStarts,\n discontinuitySequence\n}) => {\n if (typeof segments === 'undefined') {\n // vtt tracks may use single file in BaseURL\n segments = [{\n uri: attributes.baseUrl,\n timeline: attributes.periodStart,\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 const m3u8Attributes = {\n NAME: attributes.id,\n BANDWIDTH: attributes.bandwidth,\n ['PROGRAM-ID']: 1\n };\n\n if (attributes.codecs) {\n m3u8Attributes.CODECS = attributes.codecs;\n }\n\n const vttPlaylist = {\n attributes: m3u8Attributes,\n uri: '',\n endList: attributes.type === 'static',\n timeline: attributes.periodStart,\n resolvedUri: attributes.baseUrl || '',\n targetDuration: attributes.duration,\n timelineStarts: attributes.timelineStarts,\n discontinuityStarts,\n discontinuitySequence,\n mediaSequence,\n segments\n };\n\n if (attributes.serviceLocation) {\n vttPlaylist.attributes.serviceLocation = attributes.serviceLocation;\n }\n\n return vttPlaylist;\n};\nconst organizeAudioPlaylists = (playlists, sidxMapping = {}, isAudioOnly = false) => {\n let mainPlaylist;\n const formattedPlaylists = playlists.reduce((a, playlist) => {\n const role = playlist.attributes.role && playlist.attributes.role.value || '';\n const language = playlist.attributes.lang || '';\n let label = playlist.attributes.label || 'main';\n\n if (language && !playlist.attributes.label) {\n const roleLabel = role ? ` (${role})` : '';\n label = `${playlist.attributes.lang}${roleLabel}`;\n }\n\n if (!a[label]) {\n a[label] = {\n language,\n autoselect: true,\n default: role === 'main',\n playlists: [],\n uri: ''\n };\n }\n\n const formatted = addSidxSegmentsToPlaylist(formatAudioPlaylist(playlist, isAudioOnly), sidxMapping);\n a[label].playlists.push(formatted);\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 const firstLabel = Object.keys(formattedPlaylists)[0];\n formattedPlaylists[firstLabel].default = true;\n }\n\n return formattedPlaylists;\n};\nconst organizeVttPlaylists = (playlists, sidxMapping = {}) => {\n return playlists.reduce((a, playlist) => {\n const label = playlist.attributes.label || playlist.attributes.lang || 'text';\n const language = playlist.attributes.lang || 'und';\n\n if (!a[label]) {\n a[label] = {\n language,\n default: false,\n autoselect: false,\n playlists: [],\n uri: ''\n };\n }\n\n a[label].playlists.push(addSidxSegmentsToPlaylist(formatVttPlaylist(playlist), sidxMapping));\n return a;\n }, {});\n};\n\nconst organizeCaptionServices = captionServices => captionServices.reduce((svcObj, svc) => {\n if (!svc) {\n return svcObj;\n }\n\n svc.forEach(service => {\n const {\n channel,\n language\n } = service;\n svcObj[language] = {\n autoselect: false,\n default: false,\n instreamId: channel,\n language\n };\n\n if (service.hasOwnProperty('aspectRatio')) {\n svcObj[language].aspectRatio = service.aspectRatio;\n }\n\n if (service.hasOwnProperty('easyReader')) {\n svcObj[language].easyReader = service.easyReader;\n }\n\n if (service.hasOwnProperty('3D')) {\n svcObj[language]['3D'] = service['3D'];\n }\n });\n return svcObj;\n}, {});\n\nconst formatVideoPlaylist = ({\n attributes,\n segments,\n sidx,\n discontinuityStarts\n}) => {\n const playlist = {\n attributes: {\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 ['PROGRAM-ID']: 1\n },\n uri: '',\n endList: attributes.type === 'static',\n timeline: attributes.periodStart,\n resolvedUri: attributes.baseUrl || '',\n targetDuration: attributes.duration,\n discontinuityStarts,\n timelineStarts: attributes.timelineStarts,\n segments\n };\n\n if (attributes.frameRate) {\n playlist.attributes['FRAME-RATE'] = attributes.frameRate;\n }\n\n if (attributes.contentProtection) {\n playlist.contentProtection = attributes.contentProtection;\n }\n\n if (attributes.serviceLocation) {\n playlist.attributes.serviceLocation = attributes.serviceLocation;\n }\n\n if (sidx) {\n playlist.sidx = sidx;\n }\n\n return playlist;\n};\n\nconst videoOnly = ({\n attributes\n}) => attributes.mimeType === 'video/mp4' || attributes.mimeType === 'video/webm' || attributes.contentType === 'video';\n\nconst audioOnly = ({\n attributes\n}) => attributes.mimeType === 'audio/mp4' || attributes.mimeType === 'audio/webm' || attributes.contentType === 'audio';\n\nconst vttOnly = ({\n attributes\n}) => attributes.mimeType === 'text/vtt' || attributes.contentType === 'text';\n/**\n * Contains start and timeline properties denoting a timeline start. For DASH, these will\n * be the same number.\n *\n * @typedef {Object} TimelineStart\n * @property {number} start - the start time of the timeline\n * @property {number} timeline - the timeline number\n */\n\n/**\n * Adds appropriate media and discontinuity sequence values to the segments and playlists.\n *\n * Throughout mpd-parser, the `number` attribute is used in relation to `startNumber`, a\n * DASH specific attribute used in constructing segment URI's from templates. However, from\n * an HLS perspective, the `number` attribute on a segment would be its `mediaSequence`\n * value, which should start at the original media sequence value (or 0) and increment by 1\n * for each segment thereafter. Since DASH's `startNumber` values are independent per\n * period, it doesn't make sense to use it for `number`. Instead, assume everything starts\n * from a 0 mediaSequence value and increment from there.\n *\n * Note that VHS currently doesn't use the `number` property, but it can be helpful for\n * debugging and making sense of the manifest.\n *\n * For live playlists, to account for values increasing in manifests when periods are\n * removed on refreshes, merging logic should be used to update the numbers to their\n * appropriate values (to ensure they're sequential and increasing).\n *\n * @param {Object[]} playlists - the playlists to update\n * @param {TimelineStart[]} timelineStarts - the timeline starts for the manifest\n */\n\n\nconst addMediaSequenceValues = (playlists, timelineStarts) => {\n // increment all segments sequentially\n playlists.forEach(playlist => {\n playlist.mediaSequence = 0;\n playlist.discontinuitySequence = timelineStarts.findIndex(function ({\n timeline\n }) {\n return timeline === playlist.timeline;\n });\n\n if (!playlist.segments) {\n return;\n }\n\n playlist.segments.forEach((segment, index) => {\n segment.number = index;\n });\n });\n};\n/**\n * Given a media group object, flattens all playlists within the media group into a single\n * array.\n *\n * @param {Object} mediaGroupObject - the media group object\n *\n * @return {Object[]}\n * The media group playlists\n */\n\nconst flattenMediaGroupPlaylists = mediaGroupObject => {\n if (!mediaGroupObject) {\n return [];\n }\n\n return Object.keys(mediaGroupObject).reduce((acc, label) => {\n const labelContents = mediaGroupObject[label];\n return acc.concat(labelContents.playlists);\n }, []);\n};\nconst toM3u8 = ({\n dashPlaylists,\n locations,\n contentSteering,\n sidxMapping = {},\n previousManifest,\n eventStream\n}) => {\n if (!dashPlaylists.length) {\n return {};\n } // grab all main manifest attributes\n\n\n const {\n sourceDuration: duration,\n type,\n suggestedPresentationDelay,\n minimumUpdatePeriod\n } = dashPlaylists[0].attributes;\n const videoPlaylists = mergeDiscontiguousPlaylists(dashPlaylists.filter(videoOnly)).map(formatVideoPlaylist);\n const audioPlaylists = mergeDiscontiguousPlaylists(dashPlaylists.filter(audioOnly));\n const vttPlaylists = mergeDiscontiguousPlaylists(dashPlaylists.filter(vttOnly));\n const captions = dashPlaylists.map(playlist => playlist.attributes.captionServices).filter(Boolean);\n const manifest = {\n allowCache: true,\n discontinuityStarts: [],\n segments: [],\n endList: true,\n mediaGroups: {\n AUDIO: {},\n VIDEO: {},\n ['CLOSED-CAPTIONS']: {},\n SUBTITLES: {}\n },\n uri: '',\n duration,\n playlists: addSidxSegmentsToPlaylists(videoPlaylists, sidxMapping)\n };\n\n if (minimumUpdatePeriod >= 0) {\n manifest.minimumUpdatePeriod = minimumUpdatePeriod * 1000;\n }\n\n if (locations) {\n manifest.locations = locations;\n }\n\n if (contentSteering) {\n manifest.contentSteering = contentSteering;\n }\n\n if (type === 'dynamic') {\n manifest.suggestedPresentationDelay = suggestedPresentationDelay;\n }\n\n if (eventStream && eventStream.length > 0) {\n manifest.eventStream = eventStream;\n }\n\n const isAudioOnly = manifest.playlists.length === 0;\n const organizedAudioGroup = audioPlaylists.length ? organizeAudioPlaylists(audioPlaylists, sidxMapping, isAudioOnly) : null;\n const organizedVttGroup = vttPlaylists.length ? organizeVttPlaylists(vttPlaylists, sidxMapping) : null;\n const formattedPlaylists = videoPlaylists.concat(flattenMediaGroupPlaylists(organizedAudioGroup), flattenMediaGroupPlaylists(organizedVttGroup));\n const playlistTimelineStarts = formattedPlaylists.map(({\n timelineStarts\n }) => timelineStarts);\n manifest.timelineStarts = getUniqueTimelineStarts(playlistTimelineStarts);\n addMediaSequenceValues(formattedPlaylists, manifest.timelineStarts);\n\n if (organizedAudioGroup) {\n manifest.mediaGroups.AUDIO.audio = organizedAudioGroup;\n }\n\n if (organizedVttGroup) {\n manifest.mediaGroups.SUBTITLES.subs = organizedVttGroup;\n }\n\n if (captions.length) {\n manifest.mediaGroups['CLOSED-CAPTIONS'].cc = organizeCaptionServices(captions);\n }\n\n if (previousManifest) {\n return positionManifestOnTimeline({\n oldManifest: previousManifest,\n newManifest: manifest\n });\n }\n\n return manifest;\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 */\nconst getLiveRValue = (attributes, time, duration) => {\n const {\n NOW,\n clientOffset,\n availabilityStartTime,\n timescale = 1,\n periodStart = 0,\n minimumUpdatePeriod = 0\n } = attributes;\n const now = (NOW + clientOffset) / 1000;\n const periodStartWC = availabilityStartTime + periodStart;\n const periodEndWC = now + minimumUpdatePeriod;\n const 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\nconst parseByTimeline = (attributes, segmentTimeline) => {\n const {\n type,\n minimumUpdatePeriod = 0,\n media = '',\n sourceDuration,\n timescale = 1,\n startNumber = 1,\n periodStart: timeline\n } = attributes;\n const segments = [];\n let time = -1;\n\n for (let sIndex = 0; sIndex < segmentTimeline.length; sIndex++) {\n const S = segmentTimeline[sIndex];\n const duration = S.d;\n const repeat = S.r || 0;\n const 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 let count;\n\n if (repeat < 0) {\n const 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 const end = startNumber + segments.length + count;\n let number = startNumber + segments.length;\n\n while (number < end) {\n segments.push({\n number,\n duration: duration / timescale,\n time,\n timeline\n });\n time += duration;\n number++;\n }\n }\n\n return segments;\n};\n\nconst 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\nconst identifierReplacement = values => (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 const 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 * 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\nconst constructTemplateUrl = (url, values) => url.replace(identifierPattern, identifierReplacement(values));\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\nconst 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.periodStart\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\nconst segmentsFromTemplate = (attributes, segmentTimeline) => {\n const templateValues = {\n RepresentationID: attributes.id,\n Bandwidth: attributes.bandwidth || 0\n };\n const {\n initialization = {\n sourceURL: '',\n range: ''\n }\n } = attributes;\n const mapSegment = urlTypeToSegment({\n baseUrl: attributes.baseUrl,\n source: constructTemplateUrl(initialization.sourceURL, templateValues),\n range: initialization.range\n });\n const segments = parseTemplateInfo(attributes, segmentTimeline);\n return segments.map(segment => {\n templateValues.Number = segment.number;\n templateValues.Time = segment.time;\n const uri = constructTemplateUrl(attributes.media || '', templateValues); // See DASH spec section 5.3.9.2.2\n // - if timescale isn't present on any level, default to 1.\n\n const timescale = attributes.timescale || 1; // - if presentationTimeOffset isn't present on any level, default to 0\n\n const presentationTimeOffset = attributes.presentationTimeOffset || 0;\n const presentationTime = // Even if the @t attribute is not specified for the segment, segment.time is\n // calculated in mpd-parser prior to this, so it's assumed to be available.\n attributes.periodStart + (segment.time - presentationTimeOffset) / timescale;\n const map = {\n uri,\n timeline: segment.timeline,\n duration: segment.duration,\n resolvedUri: resolveUrl(attributes.baseUrl || '', uri),\n map: mapSegment,\n number: segment.number,\n presentationTime\n };\n return map;\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\nconst SegmentURLToSegmentObject = (attributes, segmentUrl) => {\n const {\n baseUrl,\n initialization = {}\n } = attributes;\n const initSegment = urlTypeToSegment({\n baseUrl,\n source: initialization.sourceURL,\n range: initialization.range\n });\n const segment = urlTypeToSegment({\n 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\nconst segmentsFromList = (attributes, segmentTimeline) => {\n const {\n duration,\n segmentUrls = [],\n periodStart\n } = attributes; // 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 const segmentUrlMap = segmentUrls.map(segmentUrlObject => SegmentURLToSegmentObject(attributes, segmentUrlObject));\n let segmentTimeInfo;\n\n if (duration) {\n segmentTimeInfo = parseByDuration(attributes);\n }\n\n if (segmentTimeline) {\n segmentTimeInfo = parseByTimeline(attributes, segmentTimeline);\n }\n\n const segments = segmentTimeInfo.map((segmentTime, index) => {\n if (segmentUrlMap[index]) {\n const segment = segmentUrlMap[index]; // See DASH spec section 5.3.9.2.2\n // - if timescale isn't present on any level, default to 1.\n\n const timescale = attributes.timescale || 1; // - if presentationTimeOffset isn't present on any level, default to 0\n\n const presentationTimeOffset = attributes.presentationTimeOffset || 0;\n segment.timeline = segmentTime.timeline;\n segment.duration = segmentTime.duration;\n segment.number = segmentTime.number;\n segment.presentationTime = periodStart + (segmentTime.time - presentationTimeOffset) / timescale;\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(segment => segment);\n return segments;\n};\n\nconst generateSegments = ({\n attributes,\n segmentInfo\n}) => {\n let segmentAttributes;\n let 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 const segmentsInfo = {\n attributes\n };\n\n if (!segmentsFn) {\n return segmentsInfo;\n }\n\n const segments = segmentsFn(segmentAttributes, segmentInfo.segmentTimeline); // 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 const {\n duration,\n timescale = 1\n } = segmentAttributes;\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((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};\nconst toPlaylists = representations => representations.map(generateSegments);\n\nconst findChildren = (element, name) => from(element.childNodes).filter(({\n tagName\n}) => tagName === name);\nconst getContent = element => element.textContent.trim();\n\n/**\n * Converts the provided string that may contain a division operation to a number.\n *\n * @param {string} value - the provided string value\n *\n * @return {number} the parsed string value\n */\nconst parseDivisionValue = value => {\n return parseFloat(value.split('/').reduce((prev, current) => prev / current));\n};\n\nconst parseDuration = str => {\n const SECONDS_IN_YEAR = 365 * 24 * 60 * 60;\n const SECONDS_IN_MONTH = 30 * 24 * 60 * 60;\n const SECONDS_IN_DAY = 24 * 60 * 60;\n const SECONDS_IN_HOUR = 60 * 60;\n const SECONDS_IN_MIN = 60; // P10Y10M10DT10H10M10.1S\n\n const durationRegex = /P(?:(\\d*)Y)?(?:(\\d*)M)?(?:(\\d*)D)?(?:T(?:(\\d*)H)?(?:(\\d*)M)?(?:([\\d.]*)S)?)?/;\n const match = durationRegex.exec(str);\n\n if (!match) {\n return 0;\n }\n\n const [year, month, day, hour, minute, second] = match.slice(1);\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};\nconst parseDate = str => {\n // Date format without timezone according to ISO 8601\n // YYY-MM-DDThh:mm:ss.ssssss\n const 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\nconst 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(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(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(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(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(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(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(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(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(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(value) {\n return parseInt(value, 10);\n },\n\n /**\n * Specifies the frame rate of the representation\n *\n * @param {string} value\n * value of attribute as a string\n * @return {number}\n * The parsed frame rate\n */\n frameRate(value) {\n return parseDivisionValue(value);\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(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 parsed timescale\n */\n timescale(value) {\n return parseInt(value, 10);\n },\n\n /**\n * Specifies the presentationTimeOffset.\n *\n * @param {string} value\n * value of the attribute as a string\n *\n * @return {number}\n * The parsed presentationTimeOffset\n */\n presentationTimeOffset(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(value) {\n const 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(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(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(value) {\n return parseInt(value, 10);\n },\n\n /**\n * Specifies the presentationTime.\n *\n * @param {string} value\n * value of the attribute as a string\n *\n * @return {number}\n * The parsed presentationTime\n */\n presentationTime(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(value) {\n return value;\n }\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\nconst parseAttributes = el => {\n if (!(el && el.attributes)) {\n return {};\n }\n\n return from(el.attributes).reduce((a, e) => {\n const parseFn = parsers[e.name] || parsers.DEFAULT;\n a[e.name] = parseFn(e.value);\n return a;\n }, {});\n};\n\nconst 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 // ISO_IEC 23009-1_2022 5.8.5.2.2 The mp4 Protection Scheme\n 'urn:mpeg:dash:mp4protection:2011': 'mp4protection'\n};\n/**\n * Builds a list of urls that is the product of the reference urls and BaseURL values\n *\n * @param {Object[]} references\n * List of objects containing the reference URL as well as its attributes\n * @param {Node[]} baseUrlElements\n * List of BaseURL nodes from the mpd\n * @return {Object[]}\n * List of objects with resolved urls and attributes\n */\n\nconst buildBaseUrls = (references, baseUrlElements) => {\n if (!baseUrlElements.length) {\n return references;\n }\n\n return flatten(references.map(function (reference) {\n return baseUrlElements.map(function (baseUrlElement) {\n const initialBaseUrl = getContent(baseUrlElement);\n const resolvedBaseUrl = resolveUrl(reference.baseUrl, initialBaseUrl);\n const finalBaseUrl = merge(parseAttributes(baseUrlElement), {\n baseUrl: resolvedBaseUrl\n }); // If the URL is resolved, we want to get the serviceLocation from the reference\n // assuming there is no serviceLocation on the initialBaseUrl\n\n if (resolvedBaseUrl !== initialBaseUrl && !finalBaseUrl.serviceLocation && reference.serviceLocation) {\n finalBaseUrl.serviceLocation = reference.serviceLocation;\n }\n\n return finalBaseUrl;\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} segmentTimeline\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\nconst getSegmentInformation = adaptationSet => {\n const segmentTemplate = findChildren(adaptationSet, 'SegmentTemplate')[0];\n const segmentList = findChildren(adaptationSet, 'SegmentList')[0];\n const segmentUrls = segmentList && findChildren(segmentList, 'SegmentURL').map(s => merge({\n tag: 'SegmentURL'\n }, parseAttributes(s)));\n const segmentBase = findChildren(adaptationSet, 'SegmentBase')[0];\n const segmentTimelineParentNode = segmentList || segmentTemplate;\n const segmentTimeline = segmentTimelineParentNode && findChildren(segmentTimelineParentNode, 'SegmentTimeline')[0];\n const segmentInitializationParentNode = segmentList || segmentBase || segmentTemplate;\n const 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 const 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 const segmentInfo = {\n template,\n segmentTimeline: segmentTimeline && findChildren(segmentTimeline, 'S').map(s => parseAttributes(s)),\n list: segmentList && merge(parseAttributes(segmentList), {\n segmentUrls,\n initialization: parseAttributes(segmentInitialization)\n }),\n base: segmentBase && merge(parseAttributes(segmentBase), {\n initialization: parseAttributes(segmentInitialization)\n })\n };\n Object.keys(segmentInfo).forEach(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 {Object[]} adaptationSetBaseUrls\n * List of objects containing resolved base URLs and attributes\n * inherited by the AdaptationSet\n * @param {SegmentInformation} adaptationSetSegmentInfo\n * Contains Segment information for the AdaptationSet\n * @return {inheritBaseUrlsCallback}\n * Callback map function\n */\n\nconst inheritBaseUrls = (adaptationSetAttributes, adaptationSetBaseUrls, adaptationSetSegmentInfo) => representation => {\n const repBaseUrlElements = findChildren(representation, 'BaseURL');\n const repBaseUrls = buildBaseUrls(adaptationSetBaseUrls, repBaseUrlElements);\n const attributes = merge(adaptationSetAttributes, parseAttributes(representation));\n const representationSegmentInfo = getSegmentInformation(representation);\n return repBaseUrls.map(baseUrl => {\n return {\n segmentInfo: merge(adaptationSetSegmentInfo, representationSegmentInfo),\n attributes: merge(attributes, baseUrl)\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\nconst generateKeySystemInformation = contentProtectionNodes => {\n return contentProtectionNodes.reduce((acc, node) => {\n const attributes = parseAttributes(node); // Although it could be argued that according to the UUID RFC spec the UUID string (a-f chars) should be generated\n // as a lowercase string it also mentions it should be treated as case-insensitive on input. Since the key system\n // UUIDs in the keySystemsMap are hardcoded as lowercase in the codebase there isn't any reason not to do\n // .toLowerCase() on the input UUID string from the manifest (at least I could not think of one).\n\n if (attributes.schemeIdUri) {\n attributes.schemeIdUri = attributes.schemeIdUri.toLowerCase();\n }\n\n const keySystem = keySystemsMap[attributes.schemeIdUri];\n\n if (keySystem) {\n acc[keySystem] = {\n attributes\n };\n const psshNode = findChildren(node, 'cenc:pssh')[0];\n\n if (psshNode) {\n const pssh = getContent(psshNode);\n acc[keySystem].pssh = pssh && decodeB64ToUint8Array(pssh);\n }\n }\n\n return acc;\n }, {});\n}; // defined in ANSI_SCTE 214-1 2016\n\n\nconst parseCaptionServiceMetadata = service => {\n // 608 captions\n if (service.schemeIdUri === 'urn:scte:dash:cc:cea-608:2015') {\n const values = typeof service.value !== 'string' ? [] : service.value.split(';');\n return values.map(value => {\n let channel;\n let language; // default language to value\n\n language = value;\n\n if (/^CC\\d=/.test(value)) {\n [channel, language] = value.split('=');\n } else if (/^CC\\d$/.test(value)) {\n channel = value;\n }\n\n return {\n channel,\n language\n };\n });\n } else if (service.schemeIdUri === 'urn:scte:dash:cc:cea-708:2015') {\n const values = typeof service.value !== 'string' ? [] : service.value.split(';');\n return values.map(value => {\n const flags = {\n // service or channel number 1-63\n 'channel': undefined,\n // language is a 3ALPHA per ISO 639.2/B\n // field is required\n 'language': undefined,\n // BIT 1/0 or ?\n // default value is 1, meaning 16:9 aspect ratio, 0 is 4:3, ? is unknown\n 'aspectRatio': 1,\n // BIT 1/0\n // easy reader flag indicated the text is tailed to the needs of beginning readers\n // default 0, or off\n 'easyReader': 0,\n // BIT 1/0\n // If 3d metadata is present (CEA-708.1) then 1\n // default 0\n '3D': 0\n };\n\n if (/=/.test(value)) {\n const [channel, opts = ''] = value.split('=');\n flags.channel = channel;\n flags.language = value;\n opts.split(',').forEach(opt => {\n const [name, val] = opt.split(':');\n\n if (name === 'lang') {\n flags.language = val; // er for easyReadery\n } else if (name === 'er') {\n flags.easyReader = Number(val); // war for wide aspect ratio\n } else if (name === 'war') {\n flags.aspectRatio = Number(val);\n } else if (name === '3D') {\n flags['3D'] = Number(val);\n }\n });\n } else {\n flags.language = value;\n }\n\n if (flags.channel) {\n flags.channel = 'SERVICE' + flags.channel;\n }\n\n return flags;\n });\n }\n};\n/**\n * A map callback that will parse all event stream data for a collection of periods\n * DASH ISO_IEC_23009 5.10.2.2\n * https://dashif-documents.azurewebsites.net/Events/master/event.html#mpd-event-timing\n *\n * @param {PeriodInformation} period object containing necessary period information\n * @return a collection of parsed eventstream event objects\n */\n\nconst toEventStream = period => {\n // get and flatten all EventStreams tags and parse attributes and children\n return flatten(findChildren(period.node, 'EventStream').map(eventStream => {\n const eventStreamAttributes = parseAttributes(eventStream);\n const schemeIdUri = eventStreamAttributes.schemeIdUri; // find all Events per EventStream tag and map to return objects\n\n return findChildren(eventStream, 'Event').map(event => {\n const eventAttributes = parseAttributes(event);\n const presentationTime = eventAttributes.presentationTime || 0;\n const timescale = eventStreamAttributes.timescale || 1;\n const duration = eventAttributes.duration || 0;\n const start = presentationTime / timescale + period.attributes.start;\n return {\n schemeIdUri,\n value: eventStreamAttributes.value,\n id: eventAttributes.id,\n start,\n end: start + duration / timescale,\n messageData: getContent(event) || eventAttributes.messageData,\n contentEncoding: eventStreamAttributes.contentEncoding,\n presentationTimeOffset: eventStreamAttributes.presentationTimeOffset || 0\n };\n });\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 {Object[]} periodBaseUrls\n * Contains list of objects with resolved base urls and attributes\n * 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\nconst toRepresentations = (periodAttributes, periodBaseUrls, periodSegmentInfo) => adaptationSet => {\n const adaptationSetAttributes = parseAttributes(adaptationSet);\n const adaptationSetBaseUrls = buildBaseUrls(periodBaseUrls, findChildren(adaptationSet, 'BaseURL'));\n const role = findChildren(adaptationSet, 'Role')[0];\n const roleAttributes = {\n role: parseAttributes(role)\n };\n let attrs = merge(periodAttributes, adaptationSetAttributes, roleAttributes);\n const accessibility = findChildren(adaptationSet, 'Accessibility')[0];\n const captionServices = parseCaptionServiceMetadata(parseAttributes(accessibility));\n\n if (captionServices) {\n attrs = merge(attrs, {\n captionServices\n });\n }\n\n const label = findChildren(adaptationSet, 'Label')[0];\n\n if (label && label.childNodes.length) {\n const labelVal = label.childNodes[0].nodeValue.trim();\n attrs = merge(attrs, {\n label: labelVal\n });\n }\n\n const contentProtection = generateKeySystemInformation(findChildren(adaptationSet, 'ContentProtection'));\n\n if (Object.keys(contentProtection).length) {\n attrs = merge(attrs, {\n contentProtection\n });\n }\n\n const segmentInfo = getSegmentInformation(adaptationSet);\n const representations = findChildren(adaptationSet, 'Representation');\n const adaptationSetSegmentInfo = merge(periodSegmentInfo, segmentInfo);\n return flatten(representations.map(inheritBaseUrls(attrs, adaptationSetBaseUrls, adaptationSetSegmentInfo)));\n};\n/**\n * Contains all period information for mapping nodes onto adaptation sets.\n *\n * @typedef {Object} PeriodInformation\n * @property {Node} period.node\n * Period node from the mpd\n * @property {Object} period.attributes\n * Parsed period attributes from node plus any added\n */\n\n/**\n * Maps a PeriodInformation object to a list of Representation information objects for all\n * AdaptationSet nodes contained within the Period.\n *\n * @name toAdaptationSetsCallback\n * @function\n * @param {PeriodInformation} period\n * Period object containing necessary period information\n * @param {number} periodStart\n * Start time 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 {Object[]} mpdBaseUrls\n * Contains list of objects with resolved base urls and attributes\n * inherited by the mpd\n * @return {toAdaptationSetsCallback}\n * Callback map function\n */\n\nconst toAdaptationSets = (mpdAttributes, mpdBaseUrls) => (period, index) => {\n const periodBaseUrls = buildBaseUrls(mpdBaseUrls, findChildren(period.node, 'BaseURL'));\n const periodAttributes = merge(mpdAttributes, {\n periodStart: period.attributes.start\n });\n\n if (typeof period.attributes.duration === 'number') {\n periodAttributes.periodDuration = period.attributes.duration;\n }\n\n const adaptationSets = findChildren(period.node, 'AdaptationSet');\n const periodSegmentInfo = getSegmentInformation(period.node);\n return flatten(adaptationSets.map(toRepresentations(periodAttributes, periodBaseUrls, periodSegmentInfo)));\n};\n/**\n * Tranforms an array of content steering nodes into an object\n * containing CDN content steering information from the MPD manifest.\n *\n * For more information on the DASH spec for Content Steering parsing, see:\n * https://dashif.org/docs/DASH-IF-CTS-00XX-Content-Steering-Community-Review.pdf\n *\n * @param {Node[]} contentSteeringNodes\n * Content steering nodes\n * @param {Function} eventHandler\n * The event handler passed into the parser options to handle warnings\n * @return {Object}\n * Object containing content steering data\n */\n\nconst generateContentSteeringInformation = (contentSteeringNodes, eventHandler) => {\n // If there are more than one ContentSteering tags, throw an error\n if (contentSteeringNodes.length > 1) {\n eventHandler({\n type: 'warn',\n message: 'The MPD manifest should contain no more than one ContentSteering tag'\n });\n } // Return a null value if there are no ContentSteering tags\n\n\n if (!contentSteeringNodes.length) {\n return null;\n }\n\n const infoFromContentSteeringTag = merge({\n serverURL: getContent(contentSteeringNodes[0])\n }, parseAttributes(contentSteeringNodes[0])); // Converts `queryBeforeStart` to a boolean, as well as setting the default value\n // to `false` if it doesn't exist\n\n infoFromContentSteeringTag.queryBeforeStart = infoFromContentSteeringTag.queryBeforeStart === 'true';\n return infoFromContentSteeringTag;\n};\n/**\n * Gets Period@start property for a given period.\n *\n * @param {Object} options\n * Options object\n * @param {Object} options.attributes\n * Period attributes\n * @param {Object} [options.priorPeriodAttributes]\n * Prior period attributes (if prior period is available)\n * @param {string} options.mpdType\n * The MPD@type these periods came from\n * @return {number|null}\n * The period start, or null if it's an early available period or error\n */\n\nconst getPeriodStart = ({\n attributes,\n priorPeriodAttributes,\n mpdType\n}) => {\n // Summary of period start time calculation from DASH spec section 5.3.2.1\n //\n // A period's start is the first period's start + time elapsed after playing all\n // prior periods to this one. Periods continue one after the other in time (without\n // gaps) until the end of the presentation.\n //\n // The value of Period@start should be:\n // 1. if Period@start is present: value of Period@start\n // 2. if previous period exists and it has @duration: previous Period@start +\n // previous Period@duration\n // 3. if this is first period and MPD@type is 'static': 0\n // 4. in all other cases, consider the period an \"early available period\" (note: not\n // currently supported)\n // (1)\n if (typeof attributes.start === 'number') {\n return attributes.start;\n } // (2)\n\n\n if (priorPeriodAttributes && typeof priorPeriodAttributes.start === 'number' && typeof priorPeriodAttributes.duration === 'number') {\n return priorPeriodAttributes.start + priorPeriodAttributes.duration;\n } // (3)\n\n\n if (!priorPeriodAttributes && mpdType === 'static') {\n return 0;\n } // (4)\n // There is currently no logic for calculating the Period@start value if there is\n // no Period@start or prior Period@start and Period@duration available. This is not made\n // explicit by the DASH interop guidelines or the DASH spec, however, since there's\n // nothing about any other resolution strategies, it's implied. Thus, this case should\n // be considered an early available period, or error, and null should suffice for both\n // of those cases.\n\n\n return null;\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\nconst inheritAttributes = (mpd, options = {}) => {\n const {\n manifestUri = '',\n NOW = Date.now(),\n clientOffset = 0,\n // TODO: For now, we are expecting an eventHandler callback function\n // to be passed into the mpd parser as an option.\n // In the future, we should enable stream parsing by using the Stream class from vhs-utils.\n // This will support new features including a standardized event handler.\n // See the m3u8 parser for examples of how stream parsing is currently used for HLS parsing.\n // https://github.com/videojs/vhs-utils/blob/88d6e10c631e57a5af02c5a62bc7376cd456b4f5/src/stream.js#L9\n eventHandler = function () {}\n } = options;\n const periodNodes = findChildren(mpd, 'Period');\n\n if (!periodNodes.length) {\n throw new Error(errors.INVALID_NUMBER_OF_PERIOD);\n }\n\n const locations = findChildren(mpd, 'Location');\n const mpdAttributes = parseAttributes(mpd);\n const mpdBaseUrls = buildBaseUrls([{\n baseUrl: manifestUri\n }], findChildren(mpd, 'BaseURL'));\n const contentSteeringNodes = findChildren(mpd, 'ContentSteering'); // See DASH spec section 5.3.1.2, Semantics of MPD element. Default type to 'static'.\n\n mpdAttributes.type = mpdAttributes.type || 'static';\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 const periods = []; // Since toAdaptationSets acts on individual periods right now, the simplest approach to\n // adding properties that require looking at prior periods is to parse attributes and add\n // missing ones before toAdaptationSets is called. If more such properties are added, it\n // may be better to refactor toAdaptationSets.\n\n periodNodes.forEach((node, index) => {\n const attributes = parseAttributes(node); // Use the last modified prior period, as it may contain added information necessary\n // for this period.\n\n const priorPeriod = periods[index - 1];\n attributes.start = getPeriodStart({\n attributes,\n priorPeriodAttributes: priorPeriod ? priorPeriod.attributes : null,\n mpdType: mpdAttributes.type\n });\n periods.push({\n node,\n attributes\n });\n });\n return {\n locations: mpdAttributes.locations,\n contentSteeringInfo: generateContentSteeringInformation(contentSteeringNodes, eventHandler),\n // TODO: There are occurences where this `representationInfo` array contains undesired\n // duplicates. This generally occurs when there are multiple BaseURL nodes that are\n // direct children of the MPD node. When we attempt to resolve URLs from a combination of the\n // parent BaseURL and a child BaseURL, and the value does not resolve,\n // we end up returning the child BaseURL multiple times.\n // We need to determine a way to remove these duplicates in a safe way.\n // See: https://github.com/videojs/mpd-parser/pull/17#discussion_r162750527\n representationInfo: flatten(periods.map(toAdaptationSets(mpdAttributes, mpdBaseUrls))),\n eventStream: flatten(periods.map(toEventStream))\n };\n};\n\nconst stringToMpdXml = manifestString => {\n if (manifestString === '') {\n throw new Error(errors.DASH_EMPTY_MANIFEST);\n }\n\n const parser = new DOMParser();\n let xml;\n let 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 throws 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\nconst parseUTCTimingScheme = mpd => {\n const UTCTimingNode = findChildren(mpd, 'UTCTiming')[0];\n\n if (!UTCTimingNode) {\n return null;\n }\n\n const 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\nconst VERSION = version;\n/*\n * Given a DASH manifest string and options, parses the DASH manifest into an object in the\n * form outputed by m3u8-parser and accepted by videojs/http-streaming.\n *\n * For live DASH manifests, if `previousManifest` is provided in options, then the newly\n * parsed DASH manifest will have its media sequence and discontinuity sequence values\n * updated to reflect its position relative to the prior manifest.\n *\n * @param {string} manifestString - the DASH manifest as a string\n * @param {options} [options] - any options\n *\n * @return {Object} the manifest object\n */\n\nconst parse = (manifestString, options = {}) => {\n const parsedManifestInfo = inheritAttributes(stringToMpdXml(manifestString), options);\n const playlists = toPlaylists(parsedManifestInfo.representationInfo);\n return toM3u8({\n dashPlaylists: playlists,\n locations: parsedManifestInfo.locations,\n contentSteering: parsedManifestInfo.contentSteeringInfo,\n sidxMapping: options.sidxMapping,\n previousManifest: options.previousManifest,\n eventStream: parsedManifestInfo.eventStream\n });\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\nconst parseUTCTiming = manifestString => parseUTCTimingScheme(stringToMpdXml(manifestString));\n\nexport { VERSION, addSidxSegmentsToPlaylist$1 as addSidxSegmentsToPlaylist, generateSidxKey, inheritAttributes, parse, parseUTCTiming, stringToMpdXml, toM3u8, toPlaylists };\n","/**\n * Loops through all supported media groups in master and calls the provided\n * callback for each group\n *\n * @param {Object} master\n * The parsed master manifest object\n * @param {string[]} groups\n * The media groups to call the callback for\n * @param {Function} callback\n * Callback to call for each media group\n */\nexport var forEachMediaGroup = function forEachMediaGroup(master, groups, callback) {\n groups.forEach(function (mediaType) {\n for (var groupKey in master.mediaGroups[mediaType]) {\n for (var labelKey in master.mediaGroups[mediaType][groupKey]) {\n var mediaProperties = master.mediaGroups[mediaType][groupKey][labelKey];\n callback(mediaProperties, mediaType, groupKey, labelKey);\n }\n }\n });\n};","import window from 'global/window';\n\nvar atob = function atob(s) {\n return window.atob ? window.atob(s) : Buffer.from(s, 'base64').toString('binary');\n};\n\nexport default function decodeB64ToUint8Array(b64Text) {\n var decodedString = atob(b64Text);\n var array = new Uint8Array(decodedString.length);\n\n for (var i = 0; i < decodedString.length; i++) {\n array[i] = decodedString.charCodeAt(i);\n }\n\n return array;\n}","import { stringToBytes, toUint8, bytesMatch, bytesToString, toHexString, padStart, bytesToNumber } from './byte-helpers.js';\nimport { getAvcCodec, getHvcCodec, getAv1Codec } from './codec-helpers.js';\nimport { parseOpusHead } from './opus-helpers.js';\n\nvar normalizePath = function normalizePath(path) {\n if (typeof path === 'string') {\n return stringToBytes(path);\n }\n\n if (typeof path === 'number') {\n return path;\n }\n\n return path;\n};\n\nvar normalizePaths = function normalizePaths(paths) {\n if (!Array.isArray(paths)) {\n return [normalizePath(paths)];\n }\n\n return paths.map(function (p) {\n return normalizePath(p);\n });\n};\n\nvar DESCRIPTORS;\nexport var parseDescriptors = function parseDescriptors(bytes) {\n bytes = toUint8(bytes);\n var results = [];\n var i = 0;\n\n while (bytes.length > i) {\n var tag = bytes[i];\n var size = 0;\n var headerSize = 0; // tag\n\n headerSize++;\n var byte = bytes[headerSize]; // first byte\n\n headerSize++;\n\n while (byte & 0x80) {\n size = (byte & 0x7F) << 7;\n byte = bytes[headerSize];\n headerSize++;\n }\n\n size += byte & 0x7F;\n\n for (var z = 0; z < DESCRIPTORS.length; z++) {\n var _DESCRIPTORS$z = DESCRIPTORS[z],\n id = _DESCRIPTORS$z.id,\n parser = _DESCRIPTORS$z.parser;\n\n if (tag === id) {\n results.push(parser(bytes.subarray(headerSize, headerSize + size)));\n break;\n }\n }\n\n i += size + headerSize;\n }\n\n return results;\n};\nDESCRIPTORS = [{\n id: 0x03,\n parser: function parser(bytes) {\n var desc = {\n tag: 0x03,\n id: bytes[0] << 8 | bytes[1],\n flags: bytes[2],\n size: 3,\n dependsOnEsId: 0,\n ocrEsId: 0,\n descriptors: [],\n url: ''\n }; // depends on es id\n\n if (desc.flags & 0x80) {\n desc.dependsOnEsId = bytes[desc.size] << 8 | bytes[desc.size + 1];\n desc.size += 2;\n } // url\n\n\n if (desc.flags & 0x40) {\n var len = bytes[desc.size];\n desc.url = bytesToString(bytes.subarray(desc.size + 1, desc.size + 1 + len));\n desc.size += len;\n } // ocr es id\n\n\n if (desc.flags & 0x20) {\n desc.ocrEsId = bytes[desc.size] << 8 | bytes[desc.size + 1];\n desc.size += 2;\n }\n\n desc.descriptors = parseDescriptors(bytes.subarray(desc.size)) || [];\n return desc;\n }\n}, {\n id: 0x04,\n parser: function parser(bytes) {\n // DecoderConfigDescriptor\n var desc = {\n tag: 0x04,\n oti: bytes[0],\n streamType: bytes[1],\n bufferSize: bytes[2] << 16 | bytes[3] << 8 | bytes[4],\n maxBitrate: bytes[5] << 24 | bytes[6] << 16 | bytes[7] << 8 | bytes[8],\n avgBitrate: bytes[9] << 24 | bytes[10] << 16 | bytes[11] << 8 | bytes[12],\n descriptors: parseDescriptors(bytes.subarray(13))\n };\n return desc;\n }\n}, {\n id: 0x05,\n parser: function parser(bytes) {\n // DecoderSpecificInfo\n return {\n tag: 0x05,\n bytes: bytes\n };\n }\n}, {\n id: 0x06,\n parser: function parser(bytes) {\n // SLConfigDescriptor\n return {\n tag: 0x06,\n bytes: bytes\n };\n }\n}];\n/**\n * find any number of boxes by name given a path to it in an iso bmff\n * such as mp4.\n *\n * @param {TypedArray} bytes\n * bytes for the iso bmff to search for boxes in\n *\n * @param {Uint8Array[]|string[]|string|Uint8Array} name\n * An array of paths or a single path representing the name\n * of boxes to search through in bytes. Paths may be\n * uint8 (character codes) or strings.\n *\n * @param {boolean} [complete=false]\n * Should we search only for complete boxes on the final path.\n * This is very useful when you do not want to get back partial boxes\n * in the case of streaming files.\n *\n * @return {Uint8Array[]}\n * An array of the end paths that we found.\n */\n\nexport var findBox = function findBox(bytes, paths, complete) {\n if (complete === void 0) {\n complete = false;\n }\n\n paths = normalizePaths(paths);\n bytes = toUint8(bytes);\n var results = [];\n\n if (!paths.length) {\n // short-circuit the search for empty paths\n return results;\n }\n\n var i = 0;\n\n while (i < bytes.length) {\n var size = (bytes[i] << 24 | bytes[i + 1] << 16 | bytes[i + 2] << 8 | bytes[i + 3]) >>> 0;\n var type = bytes.subarray(i + 4, i + 8); // invalid box format.\n\n if (size === 0) {\n break;\n }\n\n var end = i + size;\n\n if (end > bytes.length) {\n // this box is bigger than the number of bytes we have\n // and complete is set, we cannot find any more boxes.\n if (complete) {\n break;\n }\n\n end = bytes.length;\n }\n\n var data = bytes.subarray(i + 8, end);\n\n if (bytesMatch(type, paths[0])) {\n if (paths.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);\n } else {\n // recursively search for the next box along the path\n results.push.apply(results, findBox(data, paths.slice(1), complete));\n }\n }\n\n i = end;\n } // we've finished searching all of bytes\n\n\n return results;\n};\n/**\n * Search for a single matching box by name in an iso bmff format like\n * mp4. This function is useful for finding codec boxes which\n * can be placed arbitrarily in sample descriptions depending\n * on the version of the file or file type.\n *\n * @param {TypedArray} bytes\n * bytes for the iso bmff to search for boxes in\n *\n * @param {string|Uint8Array} name\n * The name of the box to find.\n *\n * @return {Uint8Array[]}\n * a subarray of bytes representing the name boxed we found.\n */\n\nexport var findNamedBox = function findNamedBox(bytes, name) {\n name = normalizePath(name);\n\n if (!name.length) {\n // short-circuit the search for empty paths\n return bytes.subarray(bytes.length);\n }\n\n var i = 0;\n\n while (i < bytes.length) {\n if (bytesMatch(bytes.subarray(i, i + name.length), name)) {\n var size = (bytes[i - 4] << 24 | bytes[i - 3] << 16 | bytes[i - 2] << 8 | bytes[i - 1]) >>> 0;\n var end = size > 1 ? i + size : bytes.byteLength;\n return bytes.subarray(i + 4, end);\n }\n\n i++;\n } // we've finished searching all of bytes\n\n\n return bytes.subarray(bytes.length);\n};\n\nvar parseSamples = function parseSamples(data, entrySize, parseEntry) {\n if (entrySize === void 0) {\n entrySize = 4;\n }\n\n if (parseEntry === void 0) {\n parseEntry = function parseEntry(d) {\n return bytesToNumber(d);\n };\n }\n\n var entries = [];\n\n if (!data || !data.length) {\n return entries;\n }\n\n var entryCount = bytesToNumber(data.subarray(4, 8));\n\n for (var i = 8; entryCount; i += entrySize, entryCount--) {\n entries.push(parseEntry(data.subarray(i, i + entrySize)));\n }\n\n return entries;\n};\n\nexport var buildFrameTable = function buildFrameTable(stbl, timescale) {\n var keySamples = parseSamples(findBox(stbl, ['stss'])[0]);\n var chunkOffsets = parseSamples(findBox(stbl, ['stco'])[0]);\n var timeToSamples = parseSamples(findBox(stbl, ['stts'])[0], 8, function (entry) {\n return {\n sampleCount: bytesToNumber(entry.subarray(0, 4)),\n sampleDelta: bytesToNumber(entry.subarray(4, 8))\n };\n });\n var samplesToChunks = parseSamples(findBox(stbl, ['stsc'])[0], 12, function (entry) {\n return {\n firstChunk: bytesToNumber(entry.subarray(0, 4)),\n samplesPerChunk: bytesToNumber(entry.subarray(4, 8)),\n sampleDescriptionIndex: bytesToNumber(entry.subarray(8, 12))\n };\n });\n var stsz = findBox(stbl, ['stsz'])[0]; // stsz starts with a 4 byte sampleSize which we don't need\n\n var sampleSizes = parseSamples(stsz && stsz.length && stsz.subarray(4) || null);\n var frames = [];\n\n for (var chunkIndex = 0; chunkIndex < chunkOffsets.length; chunkIndex++) {\n var samplesInChunk = void 0;\n\n for (var i = 0; i < samplesToChunks.length; i++) {\n var sampleToChunk = samplesToChunks[i];\n var isThisOne = chunkIndex + 1 >= sampleToChunk.firstChunk && (i + 1 >= samplesToChunks.length || chunkIndex + 1 < samplesToChunks[i + 1].firstChunk);\n\n if (isThisOne) {\n samplesInChunk = sampleToChunk.samplesPerChunk;\n break;\n }\n }\n\n var chunkOffset = chunkOffsets[chunkIndex];\n\n for (var _i = 0; _i < samplesInChunk; _i++) {\n var frameEnd = sampleSizes[frames.length]; // if we don't have key samples every frame is a keyframe\n\n var keyframe = !keySamples.length;\n\n if (keySamples.length && keySamples.indexOf(frames.length + 1) !== -1) {\n keyframe = true;\n }\n\n var frame = {\n keyframe: keyframe,\n start: chunkOffset,\n end: chunkOffset + frameEnd\n };\n\n for (var k = 0; k < timeToSamples.length; k++) {\n var _timeToSamples$k = timeToSamples[k],\n sampleCount = _timeToSamples$k.sampleCount,\n sampleDelta = _timeToSamples$k.sampleDelta;\n\n if (frames.length <= sampleCount) {\n // ms to ns\n var lastTimestamp = frames.length ? frames[frames.length - 1].timestamp : 0;\n frame.timestamp = lastTimestamp + sampleDelta / timescale * 1000;\n frame.duration = sampleDelta;\n break;\n }\n }\n\n frames.push(frame);\n chunkOffset += frameEnd;\n }\n }\n\n return frames;\n};\nexport var addSampleDescription = function addSampleDescription(track, bytes) {\n var codec = bytesToString(bytes.subarray(0, 4));\n\n if (track.type === 'video') {\n track.info = track.info || {};\n track.info.width = bytes[28] << 8 | bytes[29];\n track.info.height = bytes[30] << 8 | bytes[31];\n } else if (track.type === 'audio') {\n track.info = track.info || {};\n track.info.channels = bytes[20] << 8 | bytes[21];\n track.info.bitDepth = bytes[22] << 8 | bytes[23];\n track.info.sampleRate = bytes[28] << 8 | bytes[29];\n }\n\n if (codec === 'avc1') {\n var avcC = findNamedBox(bytes, 'avcC'); // AVCDecoderConfigurationRecord\n\n codec += \".\" + getAvcCodec(avcC);\n track.info.avcC = avcC; // TODO: do we need to parse all this?\n\n /* {\n configurationVersion: avcC[0],\n profile: avcC[1],\n profileCompatibility: avcC[2],\n level: avcC[3],\n lengthSizeMinusOne: avcC[4] & 0x3\n };\n let spsNalUnitCount = avcC[5] & 0x1F;\n const spsNalUnits = track.info.avc.spsNalUnits = [];\n // past spsNalUnitCount\n let offset = 6;\n while (spsNalUnitCount--) {\n const nalLen = avcC[offset] << 8 | avcC[offset + 1];\n spsNalUnits.push(avcC.subarray(offset + 2, offset + 2 + nalLen));\n offset += nalLen + 2;\n }\n let ppsNalUnitCount = avcC[offset];\n const ppsNalUnits = track.info.avc.ppsNalUnits = [];\n // past ppsNalUnitCount\n offset += 1;\n while (ppsNalUnitCount--) {\n const nalLen = avcC[offset] << 8 | avcC[offset + 1];\n ppsNalUnits.push(avcC.subarray(offset + 2, offset + 2 + nalLen));\n offset += nalLen + 2;\n }*/\n // HEVCDecoderConfigurationRecord\n } else if (codec === 'hvc1' || codec === 'hev1') {\n codec += \".\" + getHvcCodec(findNamedBox(bytes, 'hvcC'));\n } else if (codec === 'mp4a' || codec === 'mp4v') {\n var esds = findNamedBox(bytes, 'esds');\n var esDescriptor = parseDescriptors(esds.subarray(4))[0];\n var decoderConfig = esDescriptor && esDescriptor.descriptors.filter(function (_ref) {\n var tag = _ref.tag;\n return tag === 0x04;\n })[0];\n\n if (decoderConfig) {\n // most codecs do not have a further '.'\n // such as 0xa5 for ac-3 and 0xa6 for e-ac-3\n codec += '.' + toHexString(decoderConfig.oti);\n\n if (decoderConfig.oti === 0x40) {\n codec += '.' + (decoderConfig.descriptors[0].bytes[0] >> 3).toString();\n } else if (decoderConfig.oti === 0x20) {\n codec += '.' + decoderConfig.descriptors[0].bytes[4].toString();\n } else if (decoderConfig.oti === 0xdd) {\n codec = 'vorbis';\n }\n } else if (track.type === 'audio') {\n codec += '.40.2';\n } else {\n codec += '.20.9';\n }\n } else if (codec === 'av01') {\n // AV1DecoderConfigurationRecord\n codec += \".\" + getAv1Codec(findNamedBox(bytes, 'av1C'));\n } else if (codec === 'vp09') {\n // VPCodecConfigurationRecord\n var vpcC = findNamedBox(bytes, 'vpcC'); // https://www.webmproject.org/vp9/mp4/\n\n var profile = vpcC[0];\n var level = vpcC[1];\n var bitDepth = vpcC[2] >> 4;\n var chromaSubsampling = (vpcC[2] & 0x0F) >> 1;\n var videoFullRangeFlag = (vpcC[2] & 0x0F) >> 3;\n var colourPrimaries = vpcC[3];\n var transferCharacteristics = vpcC[4];\n var matrixCoefficients = vpcC[5];\n codec += \".\" + padStart(profile, 2, '0');\n codec += \".\" + padStart(level, 2, '0');\n codec += \".\" + padStart(bitDepth, 2, '0');\n codec += \".\" + padStart(chromaSubsampling, 2, '0');\n codec += \".\" + padStart(colourPrimaries, 2, '0');\n codec += \".\" + padStart(transferCharacteristics, 2, '0');\n codec += \".\" + padStart(matrixCoefficients, 2, '0');\n codec += \".\" + padStart(videoFullRangeFlag, 2, '0');\n } else if (codec === 'theo') {\n codec = 'theora';\n } else if (codec === 'spex') {\n codec = 'speex';\n } else if (codec === '.mp3') {\n codec = 'mp4a.40.34';\n } else if (codec === 'msVo') {\n codec = 'vorbis';\n } else if (codec === 'Opus') {\n codec = 'opus';\n var dOps = findNamedBox(bytes, 'dOps');\n track.info.opus = parseOpusHead(dOps); // TODO: should this go into the webm code??\n // Firefox requires a codecDelay for opus playback\n // see https://bugzilla.mozilla.org/show_bug.cgi?id=1276238\n\n track.info.codecDelay = 6500000;\n } else {\n codec = codec.toLowerCase();\n }\n /* eslint-enable */\n // flac, ac-3, ec-3, opus\n\n\n track.codec = codec;\n};\nexport var parseTracks = function parseTracks(bytes, frameTable) {\n if (frameTable === void 0) {\n frameTable = true;\n }\n\n bytes = toUint8(bytes);\n var traks = findBox(bytes, ['moov', 'trak'], true);\n var tracks = [];\n traks.forEach(function (trak) {\n var track = {\n bytes: trak\n };\n var mdia = findBox(trak, ['mdia'])[0];\n var hdlr = findBox(mdia, ['hdlr'])[0];\n var trakType = bytesToString(hdlr.subarray(8, 12));\n\n if (trakType === 'soun') {\n track.type = 'audio';\n } else if (trakType === 'vide') {\n track.type = 'video';\n } else {\n track.type = trakType;\n }\n\n var tkhd = findBox(trak, ['tkhd'])[0];\n\n if (tkhd) {\n var view = new DataView(tkhd.buffer, tkhd.byteOffset, tkhd.byteLength);\n var tkhdVersion = view.getUint8(0);\n track.number = tkhdVersion === 0 ? view.getUint32(12) : view.getUint32(20);\n }\n\n var mdhd = findBox(mdia, ['mdhd'])[0];\n\n if (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 track.timescale = (mdhd[index] << 24 | mdhd[index + 1] << 16 | mdhd[index + 2] << 8 | mdhd[index + 3]) >>> 0;\n }\n\n var stbl = findBox(mdia, ['minf', 'stbl'])[0];\n var stsd = findBox(stbl, ['stsd'])[0];\n var descriptionCount = bytesToNumber(stsd.subarray(4, 8));\n var offset = 8; // add codec and codec info\n\n while (descriptionCount--) {\n var len = bytesToNumber(stsd.subarray(offset, offset + 4));\n var sampleDescriptor = stsd.subarray(offset + 4, offset + 4 + len);\n addSampleDescription(track, sampleDescriptor);\n offset += 4 + len;\n }\n\n if (frameTable) {\n track.frameTable = buildFrameTable(stbl, track.timescale);\n } // codec has no sub parameters\n\n\n tracks.push(track);\n });\n return tracks;\n};\nexport var parseMediaInfo = function parseMediaInfo(bytes) {\n var mvhd = findBox(bytes, ['moov', 'mvhd'], true)[0];\n\n if (!mvhd || !mvhd.length) {\n return;\n }\n\n var info = {}; // ms to ns\n // mvhd v1 has 8 byte duration and other fields too\n\n if (mvhd[0] === 1) {\n info.timestampScale = bytesToNumber(mvhd.subarray(20, 24));\n info.duration = bytesToNumber(mvhd.subarray(24, 32));\n } else {\n info.timestampScale = bytesToNumber(mvhd.subarray(12, 16));\n info.duration = bytesToNumber(mvhd.subarray(16, 20));\n }\n\n info.bytes = mvhd;\n return info;\n};","import { toUint8, bytesMatch } from './byte-helpers.js';\nvar ID3 = toUint8([0x49, 0x44, 0x33]);\nexport var getId3Size = function getId3Size(bytes, offset) {\n if (offset === void 0) {\n offset = 0;\n }\n\n bytes = toUint8(bytes);\n var flags = bytes[offset + 5];\n var returnSize = bytes[offset + 6] << 21 | bytes[offset + 7] << 14 | bytes[offset + 8] << 7 | bytes[offset + 9];\n var footerPresent = (flags & 16) >> 4;\n\n if (footerPresent) {\n return returnSize + 20;\n }\n\n return returnSize + 10;\n};\nexport var getId3Offset = function getId3Offset(bytes, offset) {\n if (offset === void 0) {\n offset = 0;\n }\n\n bytes = toUint8(bytes);\n\n if (bytes.length - offset < 10 || !bytesMatch(bytes, ID3, {\n offset: offset\n })) {\n return offset;\n }\n\n offset += getId3Size(bytes, offset); // recursive check for id3 tags as some files\n // have multiple ID3 tag sections even though\n // they should not.\n\n return getId3Offset(bytes, offset);\n};","export var OPUS_HEAD = new Uint8Array([// O, p, u, s\n0x4f, 0x70, 0x75, 0x73, // H, e, a, d\n0x48, 0x65, 0x61, 0x64]); // https://wiki.xiph.org/OggOpus\n// https://vfrmaniac.fushizen.eu/contents/opus_in_isobmff.html\n// https://opus-codec.org/docs/opusfile_api-0.7/structOpusHead.html\n\nexport var parseOpusHead = function parseOpusHead(bytes) {\n var view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n var version = view.getUint8(0); // version 0, from mp4, does not use littleEndian.\n\n var littleEndian = version !== 0;\n var config = {\n version: version,\n channels: view.getUint8(1),\n preSkip: view.getUint16(2, littleEndian),\n sampleRate: view.getUint32(4, littleEndian),\n outputGain: view.getUint16(8, littleEndian),\n channelMappingFamily: view.getUint8(10)\n };\n\n if (config.channelMappingFamily > 0 && bytes.length > 10) {\n config.streamCount = view.getUint8(11);\n config.twoChannelStreamCount = view.getUint8(12);\n config.channelMapping = [];\n\n for (var c = 0; c < config.channels; c++) {\n config.channelMapping.push(view.getUint8(13 + c));\n }\n }\n\n return config;\n};\nexport var setOpusHead = function setOpusHead(config) {\n var size = config.channelMappingFamily <= 0 ? 11 : 12 + config.channels;\n var view = new DataView(new ArrayBuffer(size));\n var littleEndian = config.version !== 0;\n view.setUint8(0, config.version);\n view.setUint8(1, config.channels);\n view.setUint16(2, config.preSkip, littleEndian);\n view.setUint32(4, config.sampleRate, littleEndian);\n view.setUint16(8, config.outputGain, littleEndian);\n view.setUint8(10, config.channelMappingFamily);\n\n if (config.channelMappingFamily > 0) {\n view.setUint8(11, config.streamCount);\n config.channelMapping.foreach(function (cm, i) {\n view.setUint8(12 + i, cm);\n });\n }\n\n return new Uint8Array(view.buffer);\n};","import { toUint8, bytesToNumber, bytesMatch, bytesToString, numberToBytes, padStart } from './byte-helpers';\nimport { getAvcCodec, getHvcCodec, getAv1Codec } from './codec-helpers.js'; // relevant specs for this parser:\n// https://matroska-org.github.io/libebml/specs.html\n// https://www.matroska.org/technical/elements.html\n// https://www.webmproject.org/docs/container/\n\nexport var EBML_TAGS = {\n EBML: toUint8([0x1A, 0x45, 0xDF, 0xA3]),\n DocType: toUint8([0x42, 0x82]),\n Segment: toUint8([0x18, 0x53, 0x80, 0x67]),\n SegmentInfo: toUint8([0x15, 0x49, 0xA9, 0x66]),\n Tracks: toUint8([0x16, 0x54, 0xAE, 0x6B]),\n Track: toUint8([0xAE]),\n TrackNumber: toUint8([0xd7]),\n DefaultDuration: toUint8([0x23, 0xe3, 0x83]),\n TrackEntry: toUint8([0xAE]),\n TrackType: toUint8([0x83]),\n FlagDefault: toUint8([0x88]),\n CodecID: toUint8([0x86]),\n CodecPrivate: toUint8([0x63, 0xA2]),\n VideoTrack: toUint8([0xe0]),\n AudioTrack: toUint8([0xe1]),\n // Not used yet, but will be used for live webm/mkv\n // see https://www.matroska.org/technical/basics.html#block-structure\n // see https://www.matroska.org/technical/basics.html#simpleblock-structure\n Cluster: toUint8([0x1F, 0x43, 0xB6, 0x75]),\n Timestamp: toUint8([0xE7]),\n TimestampScale: toUint8([0x2A, 0xD7, 0xB1]),\n BlockGroup: toUint8([0xA0]),\n BlockDuration: toUint8([0x9B]),\n Block: toUint8([0xA1]),\n SimpleBlock: toUint8([0xA3])\n};\n/**\n * This is a simple table to determine the length\n * of things in ebml. The length is one based (starts at 1,\n * rather than zero) and for every zero bit before a one bit\n * we add one to length. We also need this table because in some\n * case we have to xor all the length bits from another value.\n */\n\nvar LENGTH_TABLE = [128, 64, 32, 16, 8, 4, 2, 1];\n\nvar getLength = function getLength(byte) {\n var len = 1;\n\n for (var i = 0; i < LENGTH_TABLE.length; i++) {\n if (byte & LENGTH_TABLE[i]) {\n break;\n }\n\n len++;\n }\n\n return len;\n}; // length in ebml is stored in the first 4 to 8 bits\n// of the first byte. 4 for the id length and 8 for the\n// data size length. Length is measured by converting the number to binary\n// then 1 + the number of zeros before a 1 is encountered starting\n// from the left.\n\n\nvar getvint = function getvint(bytes, offset, removeLength, signed) {\n if (removeLength === void 0) {\n removeLength = true;\n }\n\n if (signed === void 0) {\n signed = false;\n }\n\n var length = getLength(bytes[offset]);\n var valueBytes = bytes.subarray(offset, offset + length); // NOTE that we do **not** subarray here because we need to copy these bytes\n // as they will be modified below to remove the dataSizeLen bits and we do not\n // want to modify the original data. normally we could just call slice on\n // uint8array but ie 11 does not support that...\n\n if (removeLength) {\n valueBytes = Array.prototype.slice.call(bytes, offset, offset + length);\n valueBytes[0] ^= LENGTH_TABLE[length - 1];\n }\n\n return {\n length: length,\n value: bytesToNumber(valueBytes, {\n signed: signed\n }),\n bytes: valueBytes\n };\n};\n\nvar normalizePath = function normalizePath(path) {\n if (typeof path === 'string') {\n return path.match(/.{1,2}/g).map(function (p) {\n return normalizePath(p);\n });\n }\n\n if (typeof path === 'number') {\n return numberToBytes(path);\n }\n\n return path;\n};\n\nvar normalizePaths = function normalizePaths(paths) {\n if (!Array.isArray(paths)) {\n return [normalizePath(paths)];\n }\n\n return paths.map(function (p) {\n return normalizePath(p);\n });\n};\n\nvar getInfinityDataSize = function getInfinityDataSize(id, bytes, offset) {\n if (offset >= bytes.length) {\n return bytes.length;\n }\n\n var innerid = getvint(bytes, offset, false);\n\n if (bytesMatch(id.bytes, innerid.bytes)) {\n return offset;\n }\n\n var dataHeader = getvint(bytes, offset + innerid.length);\n return getInfinityDataSize(id, bytes, offset + dataHeader.length + dataHeader.value + innerid.length);\n};\n/**\n * Notes on the EBLM format.\n *\n * EBLM uses \"vints\" tags. Every vint tag contains\n * two parts\n *\n * 1. The length from the first byte. You get this by\n * converting the byte to binary and counting the zeros\n * before a 1. Then you add 1 to that. Examples\n * 00011111 = length 4 because there are 3 zeros before a 1.\n * 00100000 = length 3 because there are 2 zeros before a 1.\n * 00000011 = length 7 because there are 6 zeros before a 1.\n *\n * 2. The bits used for length are removed from the first byte\n * Then all the bytes are merged into a value. NOTE: this\n * is not the case for id ebml tags as there id includes\n * length bits.\n *\n */\n\n\nexport var findEbml = function findEbml(bytes, paths) {\n paths = normalizePaths(paths);\n bytes = toUint8(bytes);\n var results = [];\n\n if (!paths.length) {\n return results;\n }\n\n var i = 0;\n\n while (i < bytes.length) {\n var id = getvint(bytes, i, false);\n var dataHeader = getvint(bytes, i + id.length);\n var dataStart = i + id.length + dataHeader.length; // dataSize is unknown or this is a live stream\n\n if (dataHeader.value === 0x7f) {\n dataHeader.value = getInfinityDataSize(id, bytes, dataStart);\n\n if (dataHeader.value !== bytes.length) {\n dataHeader.value -= dataStart;\n }\n }\n\n var dataEnd = dataStart + dataHeader.value > bytes.length ? bytes.length : dataStart + dataHeader.value;\n var data = bytes.subarray(dataStart, dataEnd);\n\n if (bytesMatch(paths[0], id.bytes)) {\n if (paths.length === 1) {\n // this is the end of the paths and we've found the tag we were\n // looking for\n results.push(data);\n } else {\n // recursively search for the next tag inside of the data\n // of this one\n results = results.concat(findEbml(data, paths.slice(1)));\n }\n }\n\n var totalLength = id.length + dataHeader.length + data.length; // move past this tag entirely, we are not looking for it\n\n i += totalLength;\n }\n\n return results;\n}; // see https://www.matroska.org/technical/basics.html#block-structure\n\nexport var decodeBlock = function decodeBlock(block, type, timestampScale, clusterTimestamp) {\n var duration;\n\n if (type === 'group') {\n duration = findEbml(block, [EBML_TAGS.BlockDuration])[0];\n\n if (duration) {\n duration = bytesToNumber(duration);\n duration = 1 / timestampScale * duration * timestampScale / 1000;\n }\n\n block = findEbml(block, [EBML_TAGS.Block])[0];\n type = 'block'; // treat data as a block after this point\n }\n\n var dv = new DataView(block.buffer, block.byteOffset, block.byteLength);\n var trackNumber = getvint(block, 0);\n var timestamp = dv.getInt16(trackNumber.length, false);\n var flags = block[trackNumber.length + 2];\n var data = block.subarray(trackNumber.length + 3); // pts/dts in seconds\n\n var ptsdts = 1 / timestampScale * (clusterTimestamp + timestamp) * timestampScale / 1000; // return the frame\n\n var parsed = {\n duration: duration,\n trackNumber: trackNumber.value,\n keyframe: type === 'simple' && flags >> 7 === 1,\n invisible: (flags & 0x08) >> 3 === 1,\n lacing: (flags & 0x06) >> 1,\n discardable: type === 'simple' && (flags & 0x01) === 1,\n frames: [],\n pts: ptsdts,\n dts: ptsdts,\n timestamp: timestamp\n };\n\n if (!parsed.lacing) {\n parsed.frames.push(data);\n return parsed;\n }\n\n var numberOfFrames = data[0] + 1;\n var frameSizes = [];\n var offset = 1; // Fixed\n\n if (parsed.lacing === 2) {\n var sizeOfFrame = (data.length - offset) / numberOfFrames;\n\n for (var i = 0; i < numberOfFrames; i++) {\n frameSizes.push(sizeOfFrame);\n }\n } // xiph\n\n\n if (parsed.lacing === 1) {\n for (var _i = 0; _i < numberOfFrames - 1; _i++) {\n var size = 0;\n\n do {\n size += data[offset];\n offset++;\n } while (data[offset - 1] === 0xFF);\n\n frameSizes.push(size);\n }\n } // ebml\n\n\n if (parsed.lacing === 3) {\n // first vint is unsinged\n // after that vints are singed and\n // based on a compounding size\n var _size = 0;\n\n for (var _i2 = 0; _i2 < numberOfFrames - 1; _i2++) {\n var vint = _i2 === 0 ? getvint(data, offset) : getvint(data, offset, true, true);\n _size += vint.value;\n frameSizes.push(_size);\n offset += vint.length;\n }\n }\n\n frameSizes.forEach(function (size) {\n parsed.frames.push(data.subarray(offset, offset + size));\n offset += size;\n });\n return parsed;\n}; // VP9 Codec Feature Metadata (CodecPrivate)\n// https://www.webmproject.org/docs/container/\n\nvar parseVp9Private = function parseVp9Private(bytes) {\n var i = 0;\n var params = {};\n\n while (i < bytes.length) {\n var id = bytes[i] & 0x7f;\n var len = bytes[i + 1];\n var val = void 0;\n\n if (len === 1) {\n val = bytes[i + 2];\n } else {\n val = bytes.subarray(i + 2, i + 2 + len);\n }\n\n if (id === 1) {\n params.profile = val;\n } else if (id === 2) {\n params.level = val;\n } else if (id === 3) {\n params.bitDepth = val;\n } else if (id === 4) {\n params.chromaSubsampling = val;\n } else {\n params[id] = val;\n }\n\n i += 2 + len;\n }\n\n return params;\n};\n\nexport var parseTracks = function parseTracks(bytes) {\n bytes = toUint8(bytes);\n var decodedTracks = [];\n var tracks = findEbml(bytes, [EBML_TAGS.Segment, EBML_TAGS.Tracks, EBML_TAGS.Track]);\n\n if (!tracks.length) {\n tracks = findEbml(bytes, [EBML_TAGS.Tracks, EBML_TAGS.Track]);\n }\n\n if (!tracks.length) {\n tracks = findEbml(bytes, [EBML_TAGS.Track]);\n }\n\n if (!tracks.length) {\n return decodedTracks;\n }\n\n tracks.forEach(function (track) {\n var trackType = findEbml(track, EBML_TAGS.TrackType)[0];\n\n if (!trackType || !trackType.length) {\n return;\n } // 1 is video, 2 is audio, 17 is subtitle\n // other values are unimportant in this context\n\n\n if (trackType[0] === 1) {\n trackType = 'video';\n } else if (trackType[0] === 2) {\n trackType = 'audio';\n } else if (trackType[0] === 17) {\n trackType = 'subtitle';\n } else {\n return;\n } // todo parse language\n\n\n var decodedTrack = {\n rawCodec: bytesToString(findEbml(track, [EBML_TAGS.CodecID])[0]),\n type: trackType,\n codecPrivate: findEbml(track, [EBML_TAGS.CodecPrivate])[0],\n number: bytesToNumber(findEbml(track, [EBML_TAGS.TrackNumber])[0]),\n defaultDuration: bytesToNumber(findEbml(track, [EBML_TAGS.DefaultDuration])[0]),\n default: findEbml(track, [EBML_TAGS.FlagDefault])[0],\n rawData: track\n };\n var codec = '';\n\n if (/V_MPEG4\\/ISO\\/AVC/.test(decodedTrack.rawCodec)) {\n codec = \"avc1.\" + getAvcCodec(decodedTrack.codecPrivate);\n } else if (/V_MPEGH\\/ISO\\/HEVC/.test(decodedTrack.rawCodec)) {\n codec = \"hev1.\" + getHvcCodec(decodedTrack.codecPrivate);\n } else if (/V_MPEG4\\/ISO\\/ASP/.test(decodedTrack.rawCodec)) {\n if (decodedTrack.codecPrivate) {\n codec = 'mp4v.20.' + decodedTrack.codecPrivate[4].toString();\n } else {\n codec = 'mp4v.20.9';\n }\n } else if (/^V_THEORA/.test(decodedTrack.rawCodec)) {\n codec = 'theora';\n } else if (/^V_VP8/.test(decodedTrack.rawCodec)) {\n codec = 'vp8';\n } else if (/^V_VP9/.test(decodedTrack.rawCodec)) {\n if (decodedTrack.codecPrivate) {\n var _parseVp9Private = parseVp9Private(decodedTrack.codecPrivate),\n profile = _parseVp9Private.profile,\n level = _parseVp9Private.level,\n bitDepth = _parseVp9Private.bitDepth,\n chromaSubsampling = _parseVp9Private.chromaSubsampling;\n\n codec = 'vp09.';\n codec += padStart(profile, 2, '0') + \".\";\n codec += padStart(level, 2, '0') + \".\";\n codec += padStart(bitDepth, 2, '0') + \".\";\n codec += \"\" + padStart(chromaSubsampling, 2, '0'); // Video -> Colour -> Ebml name\n\n var matrixCoefficients = findEbml(track, [0xE0, [0x55, 0xB0], [0x55, 0xB1]])[0] || [];\n var videoFullRangeFlag = findEbml(track, [0xE0, [0x55, 0xB0], [0x55, 0xB9]])[0] || [];\n var transferCharacteristics = findEbml(track, [0xE0, [0x55, 0xB0], [0x55, 0xBA]])[0] || [];\n var colourPrimaries = findEbml(track, [0xE0, [0x55, 0xB0], [0x55, 0xBB]])[0] || []; // if we find any optional codec parameter specify them all.\n\n if (matrixCoefficients.length || videoFullRangeFlag.length || transferCharacteristics.length || colourPrimaries.length) {\n codec += \".\" + padStart(colourPrimaries[0], 2, '0');\n codec += \".\" + padStart(transferCharacteristics[0], 2, '0');\n codec += \".\" + padStart(matrixCoefficients[0], 2, '0');\n codec += \".\" + padStart(videoFullRangeFlag[0], 2, '0');\n }\n } else {\n codec = 'vp9';\n }\n } else if (/^V_AV1/.test(decodedTrack.rawCodec)) {\n codec = \"av01.\" + getAv1Codec(decodedTrack.codecPrivate);\n } else if (/A_ALAC/.test(decodedTrack.rawCodec)) {\n codec = 'alac';\n } else if (/A_MPEG\\/L2/.test(decodedTrack.rawCodec)) {\n codec = 'mp2';\n } else if (/A_MPEG\\/L3/.test(decodedTrack.rawCodec)) {\n codec = 'mp3';\n } else if (/^A_AAC/.test(decodedTrack.rawCodec)) {\n if (decodedTrack.codecPrivate) {\n codec = 'mp4a.40.' + (decodedTrack.codecPrivate[0] >>> 3).toString();\n } else {\n codec = 'mp4a.40.2';\n }\n } else if (/^A_AC3/.test(decodedTrack.rawCodec)) {\n codec = 'ac-3';\n } else if (/^A_PCM/.test(decodedTrack.rawCodec)) {\n codec = 'pcm';\n } else if (/^A_MS\\/ACM/.test(decodedTrack.rawCodec)) {\n codec = 'speex';\n } else if (/^A_EAC3/.test(decodedTrack.rawCodec)) {\n codec = 'ec-3';\n } else if (/^A_VORBIS/.test(decodedTrack.rawCodec)) {\n codec = 'vorbis';\n } else if (/^A_FLAC/.test(decodedTrack.rawCodec)) {\n codec = 'flac';\n } else if (/^A_OPUS/.test(decodedTrack.rawCodec)) {\n codec = 'opus';\n }\n\n decodedTrack.codec = codec;\n decodedTracks.push(decodedTrack);\n });\n return decodedTracks.sort(function (a, b) {\n return a.number - b.number;\n });\n};\nexport var parseData = function parseData(data, tracks) {\n var allBlocks = [];\n var segment = findEbml(data, [EBML_TAGS.Segment])[0];\n var timestampScale = findEbml(segment, [EBML_TAGS.SegmentInfo, EBML_TAGS.TimestampScale])[0]; // in nanoseconds, defaults to 1ms\n\n if (timestampScale && timestampScale.length) {\n timestampScale = bytesToNumber(timestampScale);\n } else {\n timestampScale = 1000000;\n }\n\n var clusters = findEbml(segment, [EBML_TAGS.Cluster]);\n\n if (!tracks) {\n tracks = parseTracks(segment);\n }\n\n clusters.forEach(function (cluster, ci) {\n var simpleBlocks = findEbml(cluster, [EBML_TAGS.SimpleBlock]).map(function (b) {\n return {\n type: 'simple',\n data: b\n };\n });\n var blockGroups = findEbml(cluster, [EBML_TAGS.BlockGroup]).map(function (b) {\n return {\n type: 'group',\n data: b\n };\n });\n var timestamp = findEbml(cluster, [EBML_TAGS.Timestamp])[0] || 0;\n\n if (timestamp && timestamp.length) {\n timestamp = bytesToNumber(timestamp);\n } // get all blocks then sort them into the correct order\n\n\n var blocks = simpleBlocks.concat(blockGroups).sort(function (a, b) {\n return a.data.byteOffset - b.data.byteOffset;\n });\n blocks.forEach(function (block, bi) {\n var decoded = decodeBlock(block.data, block.type, timestampScale, timestamp);\n allBlocks.push(decoded);\n });\n });\n return {\n tracks: tracks,\n blocks: allBlocks\n };\n};","import { bytesMatch, toUint8 } from './byte-helpers.js';\nexport var NAL_TYPE_ONE = toUint8([0x00, 0x00, 0x00, 0x01]);\nexport var NAL_TYPE_TWO = toUint8([0x00, 0x00, 0x01]);\nexport var EMULATION_PREVENTION = toUint8([0x00, 0x00, 0x03]);\n/**\n * Expunge any \"Emulation Prevention\" bytes from a \"Raw Byte\n * Sequence Payload\"\n *\n * @param data {Uint8Array} the bytes of a RBSP from a NAL\n * unit\n * @return {Uint8Array} the RBSP without any Emulation\n * Prevention Bytes\n */\n\nexport var discardEmulationPreventionBytes = function discardEmulationPreventionBytes(bytes) {\n var positions = [];\n var i = 1; // Find all `Emulation Prevention Bytes`\n\n while (i < bytes.length - 2) {\n if (bytesMatch(bytes.subarray(i, i + 3), EMULATION_PREVENTION)) {\n positions.push(i + 2);\n i++;\n }\n\n i++;\n } // If no Emulation Prevention Bytes were found just return the original\n // array\n\n\n if (positions.length === 0) {\n return bytes;\n } // Create a new array to hold the NAL unit data\n\n\n var newLength = bytes.length - positions.length;\n var newData = new Uint8Array(newLength);\n var sourceIndex = 0;\n\n for (i = 0; i < newLength; sourceIndex++, i++) {\n if (sourceIndex === positions[0]) {\n // Skip this byte\n sourceIndex++; // Remove this position index\n\n positions.shift();\n }\n\n newData[i] = bytes[sourceIndex];\n }\n\n return newData;\n};\nexport var findNal = function findNal(bytes, dataType, types, nalLimit) {\n if (nalLimit === void 0) {\n nalLimit = Infinity;\n }\n\n bytes = toUint8(bytes);\n types = [].concat(types);\n var i = 0;\n var nalStart;\n var nalsFound = 0; // keep searching until:\n // we reach the end of bytes\n // we reach the maximum number of nals they want to seach\n // NOTE: that we disregard nalLimit when we have found the start\n // of the nal we want so that we can find the end of the nal we want.\n\n while (i < bytes.length && (nalsFound < nalLimit || nalStart)) {\n var nalOffset = void 0;\n\n if (bytesMatch(bytes.subarray(i), NAL_TYPE_ONE)) {\n nalOffset = 4;\n } else if (bytesMatch(bytes.subarray(i), NAL_TYPE_TWO)) {\n nalOffset = 3;\n } // we are unsynced,\n // find the next nal unit\n\n\n if (!nalOffset) {\n i++;\n continue;\n }\n\n nalsFound++;\n\n if (nalStart) {\n return discardEmulationPreventionBytes(bytes.subarray(nalStart, i));\n }\n\n var nalType = void 0;\n\n if (dataType === 'h264') {\n nalType = bytes[i + nalOffset] & 0x1f;\n } else if (dataType === 'h265') {\n nalType = bytes[i + nalOffset] >> 1 & 0x3f;\n }\n\n if (types.indexOf(nalType) !== -1) {\n nalStart = i + nalOffset;\n } // nal header is 1 length for h264, and 2 for h265\n\n\n i += nalOffset + (dataType === 'h264' ? 1 : 2);\n }\n\n return bytes.subarray(0, 0);\n};\nexport var findH264Nal = function findH264Nal(bytes, type, nalLimit) {\n return findNal(bytes, 'h264', type, nalLimit);\n};\nexport var findH265Nal = function findH265Nal(bytes, type, nalLimit) {\n return findNal(bytes, 'h265', type, nalLimit);\n};","import { toUint8, bytesMatch } from './byte-helpers.js';\nimport { findBox } from './mp4-helpers.js';\nimport { findEbml, EBML_TAGS } from './ebml-helpers.js';\nimport { getId3Offset } from './id3-helpers.js';\nimport { findH264Nal, findH265Nal } from './nal-helpers.js';\nvar CONSTANTS = {\n // \"webm\" string literal in hex\n 'webm': toUint8([0x77, 0x65, 0x62, 0x6d]),\n // \"matroska\" string literal in hex\n 'matroska': toUint8([0x6d, 0x61, 0x74, 0x72, 0x6f, 0x73, 0x6b, 0x61]),\n // \"fLaC\" string literal in hex\n 'flac': toUint8([0x66, 0x4c, 0x61, 0x43]),\n // \"OggS\" string literal in hex\n 'ogg': toUint8([0x4f, 0x67, 0x67, 0x53]),\n // ac-3 sync byte, also works for ec-3 as that is simply a codec\n // of ac-3\n 'ac3': toUint8([0x0b, 0x77]),\n // \"RIFF\" string literal in hex used for wav and avi\n 'riff': toUint8([0x52, 0x49, 0x46, 0x46]),\n // \"AVI\" string literal in hex\n 'avi': toUint8([0x41, 0x56, 0x49]),\n // \"WAVE\" string literal in hex\n 'wav': toUint8([0x57, 0x41, 0x56, 0x45]),\n // \"ftyp3g\" string literal in hex\n '3gp': toUint8([0x66, 0x74, 0x79, 0x70, 0x33, 0x67]),\n // \"ftyp\" string literal in hex\n 'mp4': toUint8([0x66, 0x74, 0x79, 0x70]),\n // \"styp\" string literal in hex\n 'fmp4': toUint8([0x73, 0x74, 0x79, 0x70]),\n // \"ftypqt\" string literal in hex\n 'mov': toUint8([0x66, 0x74, 0x79, 0x70, 0x71, 0x74]),\n // moov string literal in hex\n 'moov': toUint8([0x6D, 0x6F, 0x6F, 0x76]),\n // moof string literal in hex\n 'moof': toUint8([0x6D, 0x6F, 0x6F, 0x66])\n};\nvar _isLikely = {\n aac: function aac(bytes) {\n var offset = getId3Offset(bytes);\n return bytesMatch(bytes, [0xFF, 0x10], {\n offset: offset,\n mask: [0xFF, 0x16]\n });\n },\n mp3: function mp3(bytes) {\n var offset = getId3Offset(bytes);\n return bytesMatch(bytes, [0xFF, 0x02], {\n offset: offset,\n mask: [0xFF, 0x06]\n });\n },\n webm: function webm(bytes) {\n var docType = findEbml(bytes, [EBML_TAGS.EBML, EBML_TAGS.DocType])[0]; // check if DocType EBML tag is webm\n\n return bytesMatch(docType, CONSTANTS.webm);\n },\n mkv: function mkv(bytes) {\n var docType = findEbml(bytes, [EBML_TAGS.EBML, EBML_TAGS.DocType])[0]; // check if DocType EBML tag is matroska\n\n return bytesMatch(docType, CONSTANTS.matroska);\n },\n mp4: function mp4(bytes) {\n // if this file is another base media file format, it is not mp4\n if (_isLikely['3gp'](bytes) || _isLikely.mov(bytes)) {\n return false;\n } // if this file starts with a ftyp or styp box its mp4\n\n\n if (bytesMatch(bytes, CONSTANTS.mp4, {\n offset: 4\n }) || bytesMatch(bytes, CONSTANTS.fmp4, {\n offset: 4\n })) {\n return true;\n } // if this file starts with a moof/moov box its mp4\n\n\n if (bytesMatch(bytes, CONSTANTS.moof, {\n offset: 4\n }) || bytesMatch(bytes, CONSTANTS.moov, {\n offset: 4\n })) {\n return true;\n }\n },\n mov: function mov(bytes) {\n return bytesMatch(bytes, CONSTANTS.mov, {\n offset: 4\n });\n },\n '3gp': function gp(bytes) {\n return bytesMatch(bytes, CONSTANTS['3gp'], {\n offset: 4\n });\n },\n ac3: function ac3(bytes) {\n var offset = getId3Offset(bytes);\n return bytesMatch(bytes, CONSTANTS.ac3, {\n offset: offset\n });\n },\n ts: function ts(bytes) {\n if (bytes.length < 189 && bytes.length >= 1) {\n return bytes[0] === 0x47;\n }\n\n var i = 0; // check the first 376 bytes for two matching sync bytes\n\n while (i + 188 < bytes.length && i < 188) {\n if (bytes[i] === 0x47 && bytes[i + 188] === 0x47) {\n return true;\n }\n\n i += 1;\n }\n\n return false;\n },\n flac: function flac(bytes) {\n var offset = getId3Offset(bytes);\n return bytesMatch(bytes, CONSTANTS.flac, {\n offset: offset\n });\n },\n ogg: function ogg(bytes) {\n return bytesMatch(bytes, CONSTANTS.ogg);\n },\n avi: function avi(bytes) {\n return bytesMatch(bytes, CONSTANTS.riff) && bytesMatch(bytes, CONSTANTS.avi, {\n offset: 8\n });\n },\n wav: function wav(bytes) {\n return bytesMatch(bytes, CONSTANTS.riff) && bytesMatch(bytes, CONSTANTS.wav, {\n offset: 8\n });\n },\n 'h264': function h264(bytes) {\n // find seq_parameter_set_rbsp\n return findH264Nal(bytes, 7, 3).length;\n },\n 'h265': function h265(bytes) {\n // find video_parameter_set_rbsp or seq_parameter_set_rbsp\n return findH265Nal(bytes, [32, 33], 3).length;\n }\n}; // get all the isLikely functions\n// but make sure 'ts' is above h264 and h265\n// but below everything else as it is the least specific\n\nvar isLikelyTypes = Object.keys(_isLikely) // remove ts, h264, h265\n.filter(function (t) {\n return t !== 'ts' && t !== 'h264' && t !== 'h265';\n}) // add it back to the bottom\n.concat(['ts', 'h264', 'h265']); // make sure we are dealing with uint8 data.\n\nisLikelyTypes.forEach(function (type) {\n var isLikelyFn = _isLikely[type];\n\n _isLikely[type] = function (bytes) {\n return isLikelyFn(toUint8(bytes));\n };\n}); // export after wrapping\n\nexport var isLikely = _isLikely; // A useful list of file signatures can be found here\n// https://en.wikipedia.org/wiki/List_of_file_signatures\n\nexport var detectContainerForBytes = function detectContainerForBytes(bytes) {\n bytes = toUint8(bytes);\n\n for (var i = 0; i < isLikelyTypes.length; i++) {\n var type = isLikelyTypes[i];\n\n if (isLikely[type](bytes)) {\n return type;\n }\n }\n\n return '';\n}; // fmp4 is not a container\n\nexport var isLikelyFmp4MediaSegment = function isLikelyFmp4MediaSegment(bytes) {\n return findBox(bytes, ['moof']).length > 0;\n};","/**\n * @license\n * Video.js 8.23.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$1 from 'global/document';\nimport XHR from '@videojs/xhr';\nimport vtt from 'videojs-vtt.js';\nimport _extends from '@babel/runtime/helpers/extends';\nimport _resolveUrl from '@videojs/vhs-utils/es/resolve-url.js';\nimport { Parser } from 'm3u8-parser';\nimport { DEFAULT_VIDEO_CODEC, DEFAULT_AUDIO_CODEC, parseCodecs, muxerSupportsCodec, browserSupportsCodec, translateLegacyCodec, codecsFromDefault, isAudioCodec, getMimeForCodec } from '@videojs/vhs-utils/es/codecs.js';\nimport { simpleTypeFromSourceType } from '@videojs/vhs-utils/es/media-types.js';\nimport { isArrayBufferView, concatTypedArrays, stringToBytes, toUint8 } from '@videojs/vhs-utils/es/byte-helpers';\nimport { generateSidxKey, parseUTCTiming, parse, addSidxSegmentsToPlaylist } from 'mpd-parser';\nimport parseSidx from 'mux.js/lib/tools/parse-sidx';\nimport { getId3Offset } from '@videojs/vhs-utils/es/id3-helpers';\nimport { detectContainerForBytes, isLikelyFmp4MediaSegment } from '@videojs/vhs-utils/es/containers';\nimport { ONE_SECOND_IN_TS } from 'mux.js/lib/utils/clock';\n\nvar version$6 = \"8.23.4\";\n\n/**\n * An Object that contains lifecycle hooks as keys which point to an array\n * of functions that are run when a lifecycle is triggered\n *\n * @private\n */\nconst hooks_ = {};\n\n/**\n * Get a list of hooks for a specific lifecycle\n *\n * @param {string} type\n * the lifecycle to get hooks from\n *\n * @param {Function|Function[]} [fn]\n * Optionally add a hook (or hooks) to the lifecycle that your are getting.\n *\n * @return {Array}\n * an array of hooks, or an empty array if there are none.\n */\nconst hooks = function (type, fn) {\n hooks_[type] = hooks_[type] || [];\n if (fn) {\n hooks_[type] = hooks_[type].concat(fn);\n }\n return hooks_[type];\n};\n\n/**\n * Add a function hook to a specific videojs lifecycle.\n *\n * @param {string} type\n * the lifecycle to hook the function to.\n *\n * @param {Function|Function[]}\n * The function or array of functions to attach.\n */\nconst hook = function (type, fn) {\n hooks(type, fn);\n};\n\n/**\n * Remove a hook from a specific videojs lifecycle.\n *\n * @param {string} type\n * the lifecycle that the function hooked to\n *\n * @param {Function} fn\n * The hooked function to remove\n *\n * @return {boolean}\n * The function that was removed or undef\n */\nconst removeHook = function (type, fn) {\n const index = hooks(type).indexOf(fn);\n if (index <= -1) {\n return false;\n }\n hooks_[type] = hooks_[type].slice();\n hooks_[type].splice(index, 1);\n return true;\n};\n\n/**\n * Add a function hook that will only run once to a specific videojs lifecycle.\n *\n * @param {string} type\n * the lifecycle to hook the function to.\n *\n * @param {Function|Function[]}\n * The function or array of functions to attach.\n */\nconst hookOnce = function (type, fn) {\n hooks(type, [].concat(fn).map(original => {\n const wrapper = (...args) => {\n removeHook(type, wrapper);\n return original(...args);\n };\n return wrapper;\n }));\n};\n\n/**\n * @file fullscreen-api.js\n * @module fullscreen-api\n */\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 */\nconst FullscreenApi = {\n prefixed: true\n};\n\n// browser API methods\nconst apiMap = [['requestFullscreen', 'exitFullscreen', 'fullscreenElement', 'fullscreenEnabled', 'fullscreenchange', 'fullscreenerror', 'fullscreen'],\n// WebKit\n['webkitRequestFullscreen', 'webkitExitFullscreen', 'webkitFullscreenElement', 'webkitFullscreenEnabled', 'webkitfullscreenchange', 'webkitfullscreenerror', '-webkit-full-screen']];\nconst specApi = apiMap[0];\nlet browserApi;\n\n// determine the supported set of functions\nfor (let i = 0; i < apiMap.length; i++) {\n // check for exitFullscreen function\n if (apiMap[i][1] in document$1) {\n browserApi = apiMap[i];\n break;\n }\n}\n\n// map the browser API names to the spec API names\nif (browserApi) {\n for (let i = 0; i < browserApi.length; i++) {\n FullscreenApi[specApi[i]] = browserApi[i];\n }\n FullscreenApi.prefixed = browserApi[0] !== specApi[0];\n}\n\n/**\n * @file create-logger.js\n * @module create-logger\n */\n\n// This is the private tracking variable for the logging history.\nlet history = [];\n\n/**\n * Log messages to the console and history based on the type of message\n *\n * @private\n * @param {string} name\n * The name of the console method to use.\n *\n * @param {Object} log\n * The arguments to be passed to the matching console method.\n *\n * @param {string} [styles]\n * styles for name\n */\nconst LogByTypeFactory = (name, log, styles) => (type, level, args) => {\n const lvl = log.levels[level];\n const lvlRegExp = new RegExp(`^(${lvl})$`);\n let resultName = name;\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 }\n if (styles) {\n resultName = `%c${name}`;\n args.unshift(styles);\n }\n\n // Add console prefix after adding to history.\n args.unshift(resultName + ':');\n\n // Add a clone of the args at this point to history.\n if (history) {\n history.push([].concat(args));\n\n // only store 1000 history entries\n const splice = history.length - 1000;\n history.splice(0, splice > 0 ? splice : 0);\n }\n\n // If there's no console then don't try to output messages, but they will\n // still be stored in history.\n if (!window$1.console) {\n return;\n }\n\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 let fn = window$1.console[type];\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 }\n\n // Bail out if there's no console or if this type is not allowed by the\n // current logging level.\n if (!fn || !lvl || !lvlRegExp.test(type)) {\n return;\n }\n fn[Array.isArray(args) ? 'apply' : 'call'](window$1.console, args);\n};\nfunction createLogger$1(name, delimiter = ':', styles = '') {\n // This is the private tracking variable for logging level.\n let level = 'info';\n\n // the curried logByType bound to the specific log and history\n let logByType;\n\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 * *[]\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 {...*} args\n * One or more messages or objects that should be logged.\n */\n function log(...args) {\n logByType('log', level, args);\n }\n\n // This is the logByType helper that the logging methods below use\n logByType = LogByTypeFactory(name, log, styles);\n\n /**\n * Create a new subLogger which chains the old name to the new name.\n *\n * For example, doing `mylogger = 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} subName\n * The name to add call the new logger\n * @param {string} [subDelimiter]\n * Optional delimiter\n * @param {string} [subStyles]\n * Optional styles\n * @return {Object}\n */\n log.createLogger = (subName, subDelimiter, subStyles) => {\n const resultDelimiter = subDelimiter !== undefined ? subDelimiter : delimiter;\n const resultStyles = subStyles !== undefined ? subStyles : styles;\n const resultName = `${name} ${resultDelimiter} ${subName}`;\n return createLogger$1(resultName, resultDelimiter, resultStyles);\n };\n\n /**\n * Create a new logger.\n *\n * @param {string} newName\n * The name for the new logger\n * @param {string} [newDelimiter]\n * Optional delimiter\n * @param {string} [newStyles]\n * Optional styles\n * @return {Object}\n */\n log.createNewLogger = (newName, newDelimiter, newStyles) => {\n return createLogger$1(newName, newDelimiter, newStyles);\n };\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 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 /**\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 {'all'|'debug'|'info'|'warn'|'error'|'off'} [lvl]\n * Pass a valid level to set a new logging level.\n *\n * @return {string}\n * The current logging level.\n */\n log.level = 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 level = lvl;\n }\n return level;\n };\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 log.history = () => 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 log.history.filter = fname => {\n return (history || []).filter(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 /**\n * Clears the internal history tracking, but does not prevent further history\n * tracking.\n */\n log.history.clear = () => {\n if (history) {\n history.length = 0;\n }\n };\n\n /**\n * Disable history tracking if it is currently enabled.\n */\n log.history.disable = () => {\n if (history !== null) {\n history.length = 0;\n history = null;\n }\n };\n\n /**\n * Enable history tracking if it is currently disabled.\n */\n log.history.enable = () => {\n if (history === null) {\n history = [];\n }\n };\n\n /**\n * Logs error messages. Similar to `console.error`.\n *\n * @param {...*} args\n * One or more messages or objects that should be logged as an error\n */\n log.error = (...args) => logByType('error', level, args);\n\n /**\n * Logs warning messages. Similar to `console.warn`.\n *\n * @param {...*} args\n * One or more messages or objects that should be logged as a warning.\n */\n log.warn = (...args) => 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 {...*} args\n * One or more messages or objects that should be logged as debug.\n */\n log.debug = (...args) => logByType('debug', level, args);\n return log;\n}\n\n/**\n * @file log.js\n * @module log\n */\nconst log$1 = createLogger$1('VIDEOJS');\nconst createLogger = log$1.createLogger;\n\n/**\n * @file obj.js\n * @module obj\n */\n\n/**\n * @callback obj:EachCallback\n *\n * @param {*} 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 {*} accum\n * The value that is accumulating over the reduce loop.\n *\n * @param {*} 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 {*}\n * The new accumulated value.\n */\nconst toString = Object.prototype.toString;\n\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 */\nconst keys = function (object) {\n return isObject(object) ? Object.keys(object) : [];\n};\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 */\nfunction each(object, fn) {\n keys(object).forEach(key => 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 {*} [initial = 0]\n * Starting value\n *\n * @return {*}\n * The final accumulated value.\n */\nfunction reduce(object, fn, initial = 0) {\n return keys(object).reduce((accum, key) => fn(accum, object[key], key), initial);\n}\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 */\nfunction isObject(value) {\n return !!value && typeof value === 'object';\n}\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 */\nfunction isPlain(value) {\n return isObject(value) && toString.call(value) === '[object Object]' && value.constructor === Object;\n}\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 * @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 */\nfunction merge$1(...sources) {\n const result = {};\n sources.forEach(source => {\n if (!source) {\n return;\n }\n each(source, (value, key) => {\n if (!isPlain(value)) {\n result[key] = value;\n return;\n }\n if (!isPlain(result[key])) {\n result[key] = {};\n }\n result[key] = merge$1(result[key], value);\n });\n });\n return result;\n}\n\n/**\n * Returns an array of values for a given object\n *\n * @param {Object} source - target object\n * @return {Array} - object values\n */\nfunction values(source = {}) {\n const result = [];\n for (const key in source) {\n if (source.hasOwnProperty(key)) {\n const value = source[key];\n result.push(value);\n }\n }\n return result;\n}\n\n/**\n * Object.defineProperty but \"lazy\", which means that the value is only set after\n * it is retrieved the first time, rather than being set right away.\n *\n * @param {Object} obj the object to set the property on\n * @param {string} key the key for the property to set\n * @param {Function} getValue the function used to get the value when it is needed.\n * @param {boolean} setter whether a setter should be allowed or not\n */\nfunction defineLazyProperty(obj, key, getValue, setter = true) {\n const set = value => Object.defineProperty(obj, key, {\n value,\n enumerable: true,\n writable: true\n });\n const options = {\n configurable: true,\n enumerable: true,\n get() {\n const value = getValue();\n set(value);\n return value;\n }\n };\n if (setter) {\n options.set = set;\n }\n return Object.defineProperty(obj, key, options);\n}\n\nvar Obj = /*#__PURE__*/Object.freeze({\n __proto__: null,\n each: each,\n reduce: reduce,\n isObject: isObject,\n isPlain: isPlain,\n merge: merge$1,\n values: values,\n defineLazyProperty: defineLazyProperty\n});\n\n/**\n * @file browser.js\n * @module browser\n */\n\n/**\n * Whether or not this device is an iPod.\n *\n * @static\n * @type {Boolean}\n */\nlet IS_IPOD = false;\n\n/**\n * The detected iOS version - or `null`.\n *\n * @static\n * @type {string|null}\n */\nlet IOS_VERSION = null;\n\n/**\n * Whether or not this is an Android device.\n *\n * @static\n * @type {Boolean}\n */\nlet IS_ANDROID = false;\n\n/**\n * The detected Android version - or `null` if not Android or indeterminable.\n *\n * @static\n * @type {number|string|null}\n */\nlet ANDROID_VERSION;\n\n/**\n * Whether or not this is Mozilla Firefox.\n *\n * @static\n * @type {Boolean}\n */\nlet IS_FIREFOX = false;\n\n/**\n * Whether or not this is Microsoft Edge.\n *\n * @static\n * @type {Boolean}\n */\nlet IS_EDGE = false;\n\n/**\n * Whether or not this is any Chromium Browser\n *\n * @static\n * @type {Boolean}\n */\nlet IS_CHROMIUM = false;\n\n/**\n * Whether or not this is any Chromium browser that is not Edge.\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 * Deprecated, as the behaviour to not match Edge was to prevent Legacy Edge's UA matching.\n * IS_CHROMIUM should be used instead.\n * \"Chromium but not Edge\" could be explicitly tested with IS_CHROMIUM && !IS_EDGE\n *\n * @static\n * @deprecated\n * @type {Boolean}\n */\nlet IS_CHROME = false;\n\n/**\n * The detected Chromium version - or `null`.\n *\n * @static\n * @type {number|null}\n */\nlet CHROMIUM_VERSION = null;\n\n/**\n * The detected Google Chrome version - or `null`.\n * This has always been the _Chromium_ version, i.e. would return on Chromium Edge.\n * Deprecated, use CHROMIUM_VERSION instead.\n *\n * @static\n * @deprecated\n * @type {number|null}\n */\nlet CHROME_VERSION = null;\n\n/**\n * Whether or not this is a Chromecast receiver application.\n *\n * @static\n * @type {Boolean}\n */\nconst IS_CHROMECAST_RECEIVER = Boolean(window$1.cast && window$1.cast.framework && window$1.cast.framework.CastReceiverContext);\n\n/**\n * The detected Internet Explorer version - or `null`.\n *\n * @static\n * @deprecated\n * @type {number|null}\n */\nlet IE_VERSION = null;\n\n/**\n * Whether or not this is desktop Safari.\n *\n * @static\n * @type {Boolean}\n */\nlet IS_SAFARI = false;\n\n/**\n * Whether or not this is a Windows machine.\n *\n * @static\n * @type {Boolean}\n */\nlet IS_WINDOWS = false;\n\n/**\n * Whether or not this device is an iPad.\n *\n * @static\n * @type {Boolean}\n */\nlet IS_IPAD = false;\n\n/**\n * Whether or not this device is an iPhone.\n *\n * @static\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/\nlet IS_IPHONE = false;\n\n/**\n * Whether or not this is a Tizen device.\n *\n * @static\n * @type {Boolean}\n */\nlet IS_TIZEN = false;\n\n/**\n * Whether or not this is a WebOS device.\n *\n * @static\n * @type {Boolean}\n */\nlet IS_WEBOS = false;\n\n/**\n * Whether or not this is a Smart TV (Tizen or WebOS) device.\n *\n * @static\n * @type {Boolean}\n */\nlet IS_SMART_TV = false;\n\n/**\n * Whether or not this device is touch-enabled.\n *\n * @static\n * @const\n * @type {Boolean}\n */\nconst TOUCH_ENABLED = Boolean(isReal() && ('ontouchstart' in window$1 || window$1.navigator.maxTouchPoints || window$1.DocumentTouch && window$1.document instanceof window$1.DocumentTouch));\nconst UAD = window$1.navigator && window$1.navigator.userAgentData;\nif (UAD && UAD.platform && UAD.brands) {\n // If userAgentData is present, use it instead of userAgent to avoid warnings\n // Currently only implemented on Chromium\n // userAgentData does not expose Android version, so ANDROID_VERSION remains `null`\n\n IS_ANDROID = UAD.platform === 'Android';\n IS_EDGE = Boolean(UAD.brands.find(b => b.brand === 'Microsoft Edge'));\n IS_CHROMIUM = Boolean(UAD.brands.find(b => b.brand === 'Chromium'));\n IS_CHROME = !IS_EDGE && IS_CHROMIUM;\n CHROMIUM_VERSION = CHROME_VERSION = (UAD.brands.find(b => b.brand === 'Chromium') || {}).version || null;\n IS_WINDOWS = UAD.platform === 'Windows';\n}\n\n// If the browser is not Chromium, either userAgentData is not present which could be an old Chromium browser,\n// or it's a browser that has added userAgentData since that we don't have tests for yet. In either case,\n// the checks need to be made agiainst the regular userAgent string.\nif (!IS_CHROMIUM) {\n const USER_AGENT = window$1.navigator && window$1.navigator.userAgent || '';\n IS_IPOD = /iPod/i.test(USER_AGENT);\n IOS_VERSION = function () {\n const match = USER_AGENT.match(/OS (\\d+)_/i);\n if (match && match[1]) {\n return match[1];\n }\n return null;\n }();\n IS_ANDROID = /Android/i.test(USER_AGENT);\n 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 const match = USER_AGENT.match(/Android (\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))*/i);\n if (!match) {\n return null;\n }\n const major = match[1] && parseFloat(match[1]);\n const minor = match[2] && parseFloat(match[2]);\n if (major && minor) {\n return parseFloat(match[1] + '.' + match[2]);\n } else if (major) {\n return major;\n }\n return null;\n }();\n IS_FIREFOX = /Firefox/i.test(USER_AGENT);\n IS_EDGE = /Edg/i.test(USER_AGENT);\n IS_CHROMIUM = /Chrome/i.test(USER_AGENT) || /CriOS/i.test(USER_AGENT);\n IS_CHROME = !IS_EDGE && IS_CHROMIUM;\n CHROMIUM_VERSION = CHROME_VERSION = function () {\n const match = USER_AGENT.match(/(Chrome|CriOS)\\/(\\d+)/);\n if (match && match[2]) {\n return parseFloat(match[2]);\n }\n return null;\n }();\n IE_VERSION = function () {\n const result = /MSIE\\s(\\d+)\\.\\d/.exec(USER_AGENT);\n let version = result && parseFloat(result[1]);\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 return version;\n }();\n IS_TIZEN = /Tizen/i.test(USER_AGENT);\n IS_WEBOS = /Web0S/i.test(USER_AGENT);\n IS_SMART_TV = IS_TIZEN || IS_WEBOS;\n IS_SAFARI = /Safari/i.test(USER_AGENT) && !IS_CHROME && !IS_ANDROID && !IS_EDGE && !IS_SMART_TV;\n IS_WINDOWS = /Windows/i.test(USER_AGENT);\n IS_IPAD = /iPad/i.test(USER_AGENT) || IS_SAFARI && TOUCH_ENABLED && !/iPhone/i.test(USER_AGENT);\n IS_IPHONE = /iPhone/i.test(USER_AGENT) && !IS_IPAD;\n}\n\n/**\n * Whether or not this is an iOS device.\n *\n * @static\n * @const\n * @type {Boolean}\n */\nconst IS_IOS = IS_IPHONE || IS_IPAD || IS_IPOD;\n\n/**\n * Whether or not this is any flavor of Safari - including iOS.\n *\n * @static\n * @const\n * @type {Boolean}\n */\nconst IS_ANY_SAFARI = (IS_SAFARI || IS_IOS) && !IS_CHROME;\n\nvar browser = /*#__PURE__*/Object.freeze({\n __proto__: null,\n get IS_IPOD () { return IS_IPOD; },\n get IOS_VERSION () { return IOS_VERSION; },\n get IS_ANDROID () { return IS_ANDROID; },\n get ANDROID_VERSION () { return ANDROID_VERSION; },\n get IS_FIREFOX () { return IS_FIREFOX; },\n get IS_EDGE () { return IS_EDGE; },\n get IS_CHROMIUM () { return IS_CHROMIUM; },\n get IS_CHROME () { return IS_CHROME; },\n get CHROMIUM_VERSION () { return CHROMIUM_VERSION; },\n get CHROME_VERSION () { return CHROME_VERSION; },\n IS_CHROMECAST_RECEIVER: IS_CHROMECAST_RECEIVER,\n get IE_VERSION () { return IE_VERSION; },\n get IS_SAFARI () { return IS_SAFARI; },\n get IS_WINDOWS () { return IS_WINDOWS; },\n get IS_IPAD () { return IS_IPAD; },\n get IS_IPHONE () { return IS_IPHONE; },\n get IS_TIZEN () { return IS_TIZEN; },\n get IS_WEBOS () { return IS_WEBOS; },\n get IS_SMART_TV () { return IS_SMART_TV; },\n TOUCH_ENABLED: TOUCH_ENABLED,\n IS_IOS: IS_IOS,\n IS_ANY_SAFARI: IS_ANY_SAFARI\n});\n\n/**\n * @file dom.js\n * @module dom\n */\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 */\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/**\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 */\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/**\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 */\nfunction isReal() {\n // Both document and window will never be undefined thanks to `global`.\n return document$1 === window$1.document;\n}\n\n/**\n * Determines, via duck typing, whether or not a value is a DOM element.\n *\n * @param {*} value\n * The value to check.\n *\n * @return {boolean}\n * Will be `true` if the value is a DOM element, `false` otherwise.\n */\nfunction isEl(value) {\n return isObject(value) && value.nodeType === 1;\n}\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 */\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/**\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 */\nfunction createQuerier(method) {\n return function (selector, context) {\n if (!isNonBlankString(selector)) {\n return document$1[method](null);\n }\n if (isNonBlankString(context)) {\n context = document$1.querySelector(context);\n }\n const ctx = isEl(context) ? context : document$1;\n return ctx[method] && ctx[method](selector);\n };\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 {ContentDescriptor} [content]\n * A content descriptor object.\n *\n * @return {Element}\n * The element that was created.\n */\nfunction createEl(tagName = 'div', properties = {}, attributes = {}, content) {\n const el = document$1.createElement(tagName);\n Object.getOwnPropertyNames(properties).forEach(function (propName) {\n const val = properties[propName];\n\n // Handle textContent since it's not supported everywhere and we have a\n // method for it.\n 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 if (content) {\n appendContent(el, content);\n }\n return el;\n}\n\n/**\n * Injects text into an element, replacing any existing contents entirely.\n *\n * @param {HTMLElement} 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 */\nfunction textContent(el, text) {\n if (typeof el.textContent === 'undefined') {\n el.innerText = text;\n } else {\n el.textContent = text;\n }\n return el;\n}\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 */\nfunction prependTo(child, parent) {\n if (parent.firstChild) {\n parent.insertBefore(child, parent.firstChild);\n } else {\n parent.appendChild(child);\n }\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 */\nfunction hasClass(element, classToCheck) {\n throwIfWhitespace(classToCheck);\n return element.classList.contains(classToCheck);\n}\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} classesToAdd\n * One or more class name to add.\n *\n * @return {Element}\n * The DOM element with the added class name.\n */\nfunction addClass(element, ...classesToAdd) {\n element.classList.add(...classesToAdd.reduce((prev, current) => prev.concat(current.split(/\\s+/)), []));\n return element;\n}\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} classesToRemove\n * One or more class name to remove.\n *\n * @return {Element}\n * The DOM element with class name removed.\n */\nfunction removeClass(element, ...classesToRemove) {\n // Protect in case the player gets disposed\n if (!element) {\n log$1.warn(\"removeClass was called with an element that doesn't exist\");\n return null;\n }\n element.classList.remove(...classesToRemove.reduce((prev, current) => prev.concat(current.split(/\\s+/)), []));\n return element;\n}\n\n/**\n * The callback definition for toggleClass.\n *\n * @callback 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`, but not removed. If `false`, the `classToToggle` will be removed from\n * the `element`, but not added. If `undefined`, the callback will be ignored.\n *\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|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 */\nfunction toggleClass(element, classToToggle, predicate) {\n if (typeof predicate === 'function') {\n predicate = predicate(element, classToToggle);\n }\n if (typeof predicate !== 'boolean') {\n predicate = undefined;\n }\n classToToggle.split(/\\s+/).forEach(className => element.classList.toggle(className, predicate));\n return element;\n}\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 */\nfunction setAttributes(el, attributes) {\n Object.getOwnPropertyNames(attributes).forEach(function (attrName) {\n const attrValue = attributes[attrName];\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/**\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 */\nfunction getAttributes(tag) {\n const obj = {};\n\n // 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 const knownBooleans = ['autoplay', 'controls', 'playsinline', 'loop', 'muted', 'default', 'defaultMuted'];\n if (tag && tag.attributes && tag.attributes.length > 0) {\n const attrs = tag.attributes;\n for (let i = attrs.length - 1; i >= 0; i--) {\n const attrName = attrs[i].name;\n /** @type {boolean|string} */\n let attrVal = attrs[i].value;\n\n // check for known booleans\n // the matching element property will return a value for typeof\n if (knownBooleans.includes(attrName)) {\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 obj[attrName] = attrVal;\n }\n }\n return obj;\n}\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 */\nfunction getAttribute(el, attribute) {\n return el.getAttribute(attribute);\n}\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 */\nfunction setAttribute(el, attribute, value) {\n el.setAttribute(attribute, value);\n}\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 */\nfunction removeAttribute(el, attribute) {\n el.removeAttribute(attribute);\n}\n\n/**\n * Attempt to block the ability to select text.\n */\nfunction blockTextSelection() {\n document$1.body.focus();\n document$1.onselectstart = function () {\n return false;\n };\n}\n\n/**\n * Turn off text selection blocking.\n */\nfunction unblockTextSelection() {\n document$1.onselectstart = function () {\n return true;\n };\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 */\nfunction getBoundingClientRect(el) {\n if (el && el.getBoundingClientRect && el.parentNode) {\n const rect = el.getBoundingClientRect();\n const result = {};\n ['bottom', 'height', 'left', 'right', 'top', 'width'].forEach(k => {\n if (rect[k] !== undefined) {\n result[k] = rect[k];\n }\n });\n if (!result.height) {\n result.height = parseFloat(computedStyle(el, 'height'));\n }\n if (!result.width) {\n result.width = parseFloat(computedStyle(el, 'width'));\n }\n return result;\n }\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 */\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 const width = el.offsetWidth;\n const height = el.offsetHeight;\n let left = 0;\n let top = 0;\n while (el.offsetParent && el !== document$1[FullscreenApi.fullscreenElement]) {\n left += el.offsetLeft;\n top += el.offsetTop;\n el = el.offsetParent;\n }\n return {\n left,\n top,\n width,\n height\n };\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 {Event} event\n * Event object.\n *\n * @return {module:dom~Coordinates}\n * A coordinates object corresponding to the mouse position.\n *\n */\nfunction getPointerPosition(el, event) {\n const translated = {\n x: 0,\n y: 0\n };\n if (IS_IOS) {\n let item = el;\n while (item && item.nodeName.toLowerCase() !== 'html') {\n const transform = computedStyle(item, 'transform');\n if (/^matrix/.test(transform)) {\n const values = transform.slice(7, -1).split(/,\\s/).map(Number);\n translated.x += values[4];\n translated.y += values[5];\n } else if (/^matrix3d/.test(transform)) {\n const values = transform.slice(9, -1).split(/,\\s/).map(Number);\n translated.x += values[12];\n translated.y += values[13];\n }\n if (item.assignedSlot && item.assignedSlot.parentElement && window$1.WebKitCSSMatrix) {\n const transformValue = window$1.getComputedStyle(item.assignedSlot.parentElement).transform;\n const matrix = new window$1.WebKitCSSMatrix(transformValue);\n translated.x += matrix.m41;\n translated.y += matrix.m42;\n }\n item = item.parentNode || item.host;\n }\n }\n const position = {};\n const boxTarget = findPosition(event.target);\n const box = findPosition(el);\n const boxW = box.width;\n const boxH = box.height;\n let offsetY = event.offsetY - (box.top - boxTarget.top);\n let offsetX = event.offsetX - (box.left - boxTarget.left);\n if (event.changedTouches) {\n offsetX = event.changedTouches[0].pageX - box.left;\n offsetY = event.changedTouches[0].pageY + box.top;\n if (IS_IOS) {\n offsetX -= translated.x;\n offsetY -= translated.y;\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/**\n * Determines, via duck typing, whether or not a value is a text node.\n *\n * @param {*} 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 */\nfunction isTextNode(value) {\n return isObject(value) && value.nodeType === 3;\n}\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 */\nfunction emptyEl(el) {\n while (el.firstChild) {\n el.removeChild(el.firstChild);\n }\n return el;\n}\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 * `Text` | A 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|Text|Array|Function} 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 {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 */\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 }\n\n // Next up, normalize to an array, so one or many items can be normalized,\n // filtered, and returned.\n return (Array.isArray(content) ? content : [content]).map(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 if (isEl(value) || isTextNode(value)) {\n return value;\n }\n if (typeof value === 'string' && /\\S/.test(value)) {\n return document$1.createTextNode(value);\n }\n }).filter(value => 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 {ContentDescriptor} content\n * A content descriptor value.\n *\n * @return {Element}\n * The element with appended normalized content.\n */\nfunction appendContent(el, content) {\n normalizeContent(content).forEach(node => el.appendChild(node));\n return el;\n}\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 {ContentDescriptor} content\n * A content descriptor value.\n *\n * @return {Element}\n * The element with inserted normalized content.\n */\nfunction insertContent(el, content) {\n return appendContent(emptyEl(el), content);\n}\n\n/**\n * Check if an event was a single left click.\n *\n * @param {MouseEvent} event\n * Event object.\n *\n * @return {boolean}\n * Will be `true` if a single left click, `false` otherwise.\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\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\n // Alright, then what this block does ?\n // this is for chrome `simulate mobile devices`\n // I want to support this as well\n\n return true;\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\n return true;\n }\n\n // `mouseup` event on a single left click has\n // `button` and `buttons` equal to 0\n if (event.type === 'mouseup' && event.button === 0 && event.buttons === 0) {\n return true;\n }\n\n // MacOS Sonoma trackpad when \"tap to click enabled\"\n if (event.type === 'mousedown' && event.button === 0 && event.buttons === 0) {\n return true;\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\n return false;\n }\n return true;\n}\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 */\nconst $ = createQuerier('querySelector');\n\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 */\nconst $$ = createQuerier('querySelectorAll');\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 * @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 */\nfunction computedStyle(el, prop) {\n if (!el || !prop) {\n return '';\n }\n if (typeof window$1.getComputedStyle === 'function') {\n let computedStyleValue;\n try {\n computedStyleValue = window$1.getComputedStyle(el);\n } catch (e) {\n return '';\n }\n return computedStyleValue ? computedStyleValue.getPropertyValue(prop) || computedStyleValue[prop] : '';\n }\n return '';\n}\n\n/**\n * Copy document style sheets to another window.\n *\n * @param {Window} win\n * The window element you want to copy the document style sheets to.\n *\n */\nfunction copyStyleSheetsToWindow(win) {\n [...document$1.styleSheets].forEach(styleSheet => {\n try {\n const cssRules = [...styleSheet.cssRules].map(rule => rule.cssText).join('');\n const style = document$1.createElement('style');\n style.textContent = cssRules;\n win.document.head.appendChild(style);\n } catch (e) {\n const link = document$1.createElement('link');\n link.rel = 'stylesheet';\n link.type = styleSheet.type;\n // For older Safari this has to be the string; on other browsers setting the MediaList works\n link.media = styleSheet.media.mediaText;\n link.href = styleSheet.href;\n win.document.head.appendChild(link);\n }\n });\n}\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 computedStyle: computedStyle,\n copyStyleSheetsToWindow: copyStyleSheetsToWindow\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 */\nlet _windowLoaded = false;\nlet videojs$1;\n\n/**\n * Set up any tags that have a data-setup `attribute` when the player is started.\n */\nconst autoSetup = function () {\n if (videojs$1.options.autoSetup === false) {\n return;\n }\n const vids = Array.prototype.slice.call(document$1.getElementsByTagName('video'));\n const audios = Array.prototype.slice.call(document$1.getElementsByTagName('audio'));\n const divs = Array.prototype.slice.call(document$1.getElementsByTagName('video-js'));\n const mediaEls = vids.concat(audios, divs);\n\n // Check if any media elements exist\n if (mediaEls && mediaEls.length > 0) {\n for (let i = 0, e = mediaEls.length; i < e; i++) {\n const mediaEl = mediaEls[i];\n\n // Check if element exists, has getAttribute func.\n if (mediaEl && mediaEl.getAttribute) {\n // Make sure this player hasn't already been set up.\n if (mediaEl.player === undefined) {\n const options = mediaEl.getAttribute('data-setup');\n\n // Check if data-setup attr exists.\n // We only auto-setup if they've added the data-setup attr.\n if (options !== null) {\n // Create new video.js instance.\n videojs$1(mediaEl);\n }\n }\n\n // If getAttribute isn't defined, we need to wait for the DOM.\n } else {\n autoSetupTimeout(1);\n break;\n }\n }\n\n // No videos were found, so keep looping unless page is finished loading.\n } else if (!_windowLoaded) {\n autoSetupTimeout(1);\n }\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 */\nfunction autoSetupTimeout(wait, vjs) {\n // Protect against breakage in non-browser environments\n if (!isReal()) {\n return;\n }\n if (vjs) {\n videojs$1 = vjs;\n }\n window$1.setTimeout(autoSetup, wait);\n}\n\n/**\n * Used to set the internal tracking of window loaded state to true.\n *\n * @private\n */\nfunction setWindowLoaded() {\n _windowLoaded = true;\n window$1.removeEventListener('load', setWindowLoaded);\n}\nif (isReal()) {\n if (document$1.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/**\n * Create a DOM style 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 */\nconst createStyleElement = function (className) {\n const style = document$1.createElement('style');\n style.className = className;\n return style;\n};\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 */\nconst setTextContent = function (el, content) {\n if (el.styleSheet) {\n el.styleSheet.cssText = content;\n } else {\n el.textContent = content;\n }\n};\n\n/**\n * @file dom-data.js\n * @module dom-data\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 */\nvar DomData = new WeakMap();\n\n/**\n * @file guid.js\n * @module guid\n */\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\nconst _initialGuid = 3;\n\n/**\n * Unique ID for an element or function\n *\n * @type {Number}\n */\nlet _guid = _initialGuid;\n\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 */\nfunction newGUID() {\n return _guid++;\n}\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/**\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 */\nfunction _cleanUpEvents(elem, type) {\n if (!DomData.has(elem)) {\n return;\n }\n const data = DomData.get(elem);\n\n // Remove the events of a particular type if there are none left\n if (data.handlers[type].length === 0) {\n delete data.handlers[type];\n // data.handlers[type] = null;\n // Setting to null was causing an error with data.handlers\n\n // Remove the meta-handler from the element\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 }\n\n // Remove the events object if there are no types left\n if (Object.getOwnPropertyNames(data.handlers).length <= 0) {\n delete data.handlers;\n delete data.dispatcher;\n delete data.disabled;\n }\n\n // Finally remove the element data if there is no data left\n if (Object.getOwnPropertyNames(data).length === 0) {\n DomData.delete(elem);\n }\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[]} types\n * Type of event to bind to.\n *\n * @param {Function} callback\n * Event listener.\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/**\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 */\nfunction fixEvent(event) {\n if (event.fixed_) {\n return event;\n }\n function returnTrue() {\n return true;\n }\n function returnFalse() {\n return false;\n }\n\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 if (!event || !event.isPropagationStopped || !event.isImmediatePropagationStopped) {\n const old = event || window$1.event;\n event = {};\n // 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\n // TODO: Probably best to create an allowlist of event props\n const deprecatedProps = ['layerX', 'layerY', 'keyLocation', 'path', 'webkitMovementX', 'webkitMovementY', 'mozPressure', 'mozInputSource'];\n for (const 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 // Lighthouse complains if Event.path is copied\n if (!deprecatedProps.includes(key)) {\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 }\n\n // The event occurred on this element\n if (!event.target) {\n event.target = event.srcElement || document$1;\n }\n\n // Handle which other element the event is related to\n if (!event.relatedTarget) {\n event.relatedTarget = event.fromElement === event.target ? event.toElement : event.fromElement;\n }\n\n // Stop the default browser action\n event.preventDefault = function () {\n if (old.preventDefault) {\n old.preventDefault();\n }\n event.returnValue = false;\n old.returnValue = false;\n event.defaultPrevented = true;\n };\n event.defaultPrevented = false;\n\n // Stop the event from bubbling\n event.stopPropagation = function () {\n if (old.stopPropagation) {\n old.stopPropagation();\n }\n event.cancelBubble = true;\n old.cancelBubble = true;\n event.isPropagationStopped = returnTrue;\n };\n event.isPropagationStopped = returnFalse;\n\n // Stop the event from bubbling and executing other handlers\n event.stopImmediatePropagation = function () {\n if (old.stopImmediatePropagation) {\n old.stopImmediatePropagation();\n }\n event.isImmediatePropagationStopped = returnTrue;\n event.stopPropagation();\n };\n event.isImmediatePropagationStopped = returnFalse;\n\n // Handle mouse position\n if (event.clientX !== null && event.clientX !== undefined) {\n const doc = document$1.documentElement;\n const body = document$1.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 }\n\n // Handle key presses\n event.which = event.charCode || event.keyCode;\n\n // Fix button for mouse clicks:\n // 0 == left; 1 == middle; 2 == right\n if (event.button !== null && event.button !== undefined) {\n // The following is disabled because it does not pass videojs-standard\n // and... yikes.\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 event.fixed_ = true;\n // Returns fixed-up instance\n return event;\n}\n\n/**\n * Whether passive event listeners are supported\n */\nlet _supportsPassive;\nconst supportsPassive = function () {\n if (typeof _supportsPassive !== 'boolean') {\n _supportsPassive = false;\n try {\n const opts = Object.defineProperty({}, 'passive', {\n get() {\n _supportsPassive = true;\n }\n });\n window$1.addEventListener('test', null, opts);\n window$1.removeEventListener('test', null, opts);\n } catch (e) {\n // disregard\n }\n }\n return _supportsPassive;\n};\n\n/**\n * Touch events Chrome expects to be passive\n */\nconst passiveEvents = ['touchstart', 'touchmove'];\n\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 {Function} fn\n * Event listener.\n */\nfunction on(elem, type, fn) {\n if (Array.isArray(type)) {\n return _handleMultipleEvents(on, elem, type, fn);\n }\n if (!DomData.has(elem)) {\n DomData.set(elem, {});\n }\n const data = DomData.get(elem);\n\n // We need a place to store all our handler data\n if (!data.handlers) {\n data.handlers = {};\n }\n if (!data.handlers[type]) {\n data.handlers[type] = [];\n }\n if (!fn.guid) {\n fn.guid = newGUID();\n }\n data.handlers[type].push(fn);\n if (!data.dispatcher) {\n data.disabled = false;\n data.dispatcher = function (event, hash) {\n if (data.disabled) {\n return;\n }\n event = fixEvent(event);\n const handlers = data.handlers[event.type];\n if (handlers) {\n // Copy handlers so if handlers are added/removed during the process it doesn't throw everything off.\n const handlersCopy = handlers.slice(0);\n for (let 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$1.error(e);\n }\n }\n }\n }\n };\n }\n if (data.handlers[type].length === 1) {\n if (elem.addEventListener) {\n let options = false;\n if (supportsPassive() && passiveEvents.indexOf(type) > -1) {\n options = {\n passive: true\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/**\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 {Function} [fn]\n * Specific listener to remove. Don't include to remove listeners for an event\n * type.\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 const data = DomData.get(elem);\n\n // If no events exist, nothing to unbind\n if (!data.handlers) {\n return;\n }\n if (Array.isArray(type)) {\n return _handleMultipleEvents(off, elem, type, fn);\n }\n\n // Utility function\n const removeType = function (el, t) {\n data.handlers[t] = [];\n _cleanUpEvents(el, t);\n };\n\n // Are we removing all bound events?\n if (type === undefined) {\n for (const t in data.handlers) {\n if (Object.prototype.hasOwnProperty.call(data.handlers || {}, t)) {\n removeType(elem, t);\n }\n }\n return;\n }\n const handlers = data.handlers[type];\n\n // If no handlers exist, nothing to unbind\n if (!handlers) {\n return;\n }\n\n // If no listener was provided, remove all listeners for type\n if (!fn) {\n removeType(elem, type);\n return;\n }\n\n // We're only removing a single handler\n if (fn.guid) {\n for (let n = 0; n < handlers.length; n++) {\n if (handlers[n].guid === fn.guid) {\n handlers.splice(n--, 1);\n }\n }\n }\n _cleanUpEvents(elem, type);\n}\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 */\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 const elemData = DomData.has(elem) ? DomData.get(elem) : {};\n const parent = elem.parentNode || elem.ownerDocument;\n // type = event.type || event,\n // handler;\n\n // If an event name was passed as a string, creates an event out of it\n if (typeof event === 'string') {\n event = {\n type: event,\n target: elem\n };\n } else if (!event.target) {\n event.target = elem;\n }\n\n // Normalizes the event properties.\n event = fixEvent(event);\n\n // If the passed element has a dispatcher, executes the established handlers.\n if (elemData.dispatcher) {\n elemData.dispatcher.call(elem, event, hash);\n }\n\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 if (parent && !event.isPropagationStopped() && event.bubbles === true) {\n trigger.call(null, parent, event, hash);\n\n // 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 const targetData = DomData.get(event.target);\n\n // Checks if the target has a default action for this event.\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;\n // Executes the default action.\n if (typeof event.target[event.type] === 'function') {\n event.target[event.type]();\n }\n // Re-enables event dispatching.\n targetData.disabled = false;\n }\n }\n\n // Inform the triggerer if the default was prevented by returning false\n return !event.defaultPrevented;\n}\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 */\nfunction one(elem, type, fn) {\n if (Array.isArray(type)) {\n return _handleMultipleEvents(one, elem, type, fn);\n }\n const func = function () {\n off(elem, type, func);\n fn.apply(this, arguments);\n };\n\n // copy the guid to the new function so it can removed using the original function's ID\n func.guid = fn.guid = fn.guid || newGUID();\n on(elem, type, func);\n}\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 */\nfunction any(elem, type, fn) {\n const func = function () {\n off(elem, type, func);\n fn.apply(this, arguments);\n };\n\n // copy the guid to the new function so it can removed using the original function's ID\n func.guid = fn.guid = fn.guid || newGUID();\n\n // multiple ons, but one off for everything\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 */\nconst UPDATE_REFRESH_INTERVAL = 30;\n\n/**\n * A private, internal-only function for changing the context of a function.\n *\n * It also stores a unique id on the function so it can be easily removed from\n * events.\n *\n * @private\n * @function\n * @param {*} 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 */\nconst bind_ = function (context, fn, uid) {\n // Make sure the function has a unique ID\n if (!fn.guid) {\n fn.guid = newGUID();\n }\n\n // Create the new function that changes the context\n const bound = fn.bind(context);\n\n // 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 bound.guid = uid ? uid + '_' + fn.guid : fn.guid;\n return bound;\n};\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 */\nconst throttle = function (fn, wait) {\n let last = window$1.performance.now();\n const throttled = function (...args) {\n const now = window$1.performance.now();\n if (now - last >= wait) {\n fn(...args);\n last = now;\n }\n };\n return throttled;\n};\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 */\nconst debounce$1 = function (func, wait, immediate, context = window$1) {\n let timeout;\n const cancel = () => {\n context.clearTimeout(timeout);\n timeout = null;\n };\n\n /* eslint-disable consistent-this */\n const debounced = function () {\n const self = this;\n const args = arguments;\n let later = function () {\n timeout = null;\n later = null;\n if (!immediate) {\n func.apply(self, args);\n }\n };\n if (!timeout && immediate) {\n func.apply(self, args);\n }\n context.clearTimeout(timeout);\n timeout = context.setTimeout(later, wait);\n };\n /* eslint-enable consistent-this */\n\n debounced.cancel = cancel;\n return debounced;\n};\n\nvar Fn = /*#__PURE__*/Object.freeze({\n __proto__: null,\n UPDATE_REFRESH_INTERVAL: UPDATE_REFRESH_INTERVAL,\n bind_: bind_,\n throttle: throttle,\n debounce: debounce$1\n});\n\n/**\n * @file src/js/event-target.js\n */\nlet EVENT_MAP;\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 */\nclass EventTarget$2 {\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 {Function} fn\n * The function to call with `EventTarget`s\n */\n on(type, fn) {\n // Remove the addEventListener alias before calling Events.on\n // so we don't get into an infinite type loop\n const ael = this.addEventListener;\n this.addEventListener = () => {};\n on(this, type, fn);\n this.addEventListener = ael;\n }\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 {Function} fn\n * The function to remove.\n */\n off(type, fn) {\n off(this, type, fn);\n }\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 {Function} fn\n * The function to be called once for each event name.\n */\n one(type, fn) {\n // Remove the addEventListener aliasing Events.on\n // so we don't get into an infinite type loop\n const ael = this.addEventListener;\n this.addEventListener = () => {};\n one(this, type, fn);\n this.addEventListener = ael;\n }\n /**\n * This function will add an `event listener` that gets triggered only once and is\n * removed from all events. This is like adding an array of `event listener`s\n * with {@link EventTarget#on} that calls {@link EventTarget#off} on all events the\n * first time it is triggered.\n *\n * @param {string|string[]} type\n * An event name or an array of event names.\n *\n * @param {Function} fn\n * The function to be called once for each event name.\n */\n any(type, fn) {\n // Remove the addEventListener aliasing Events.on\n // so we don't get into an infinite type loop\n const ael = this.addEventListener;\n this.addEventListener = () => {};\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 trigger(event) {\n const type = event.type || event;\n\n // 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 if (typeof event === 'string') {\n event = {\n type\n };\n }\n event = fixEvent(event);\n if (this.allowedEvents_[type] && this['on' + type]) {\n this['on' + type](event);\n }\n trigger(this, event);\n }\n queueTrigger(event) {\n // only set up EVENT_MAP if it'll be used\n if (!EVENT_MAP) {\n EVENT_MAP = new Map();\n }\n const type = event.type || event;\n let map = EVENT_MAP.get(this);\n if (!map) {\n map = new Map();\n EVENT_MAP.set(this, map);\n }\n const oldTimeout = map.get(type);\n map.delete(type);\n window$1.clearTimeout(oldTimeout);\n const timeout = window$1.setTimeout(() => {\n map.delete(type);\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 this.trigger(event);\n }, 0);\n map.set(type, timeout);\n }\n}\n\n/**\n * A Custom DOM event.\n *\n * @typedef {CustomEvent} 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 EventListener\n * @this {EventTarget}\n *\n * @param {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 * @protected\n */\nEventTarget$2.prototype.allowedEvents_ = {};\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 */\nEventTarget$2.prototype.addEventListener = EventTarget$2.prototype.on;\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 */\nEventTarget$2.prototype.removeEventListener = EventTarget$2.prototype.off;\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 */\nEventTarget$2.prototype.dispatchEvent = EventTarget$2.prototype.trigger;\n\n/**\n * @file mixins/evented.js\n * @module evented\n */\nconst objName = obj => {\n if (typeof obj.name === 'function') {\n return obj.name();\n }\n if (typeof obj.name === 'string') {\n return obj.name;\n }\n if (obj.name_) {\n return obj.name_;\n }\n if (obj.constructor && obj.constructor.name) {\n return obj.constructor.name;\n }\n return typeof obj;\n};\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 */\nconst isEvented = object => object instanceof EventTarget$2 || !!object.eventBusEl_ && ['on', 'one', 'off', 'trigger'].every(k => typeof object[k] === 'function');\n\n/**\n * Adds a callback to run after the evented mixin applied.\n *\n * @param {Object} target\n * An object to Add\n * @param {Function} callback\n * The callback to run.\n */\nconst addEventedCallback = (target, callback) => {\n if (isEvented(target)) {\n callback();\n } else {\n if (!target.eventedCallbacks) {\n target.eventedCallbacks = [];\n }\n target.eventedCallbacks.push(callback);\n }\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 */\nconst isValidEventType = type =>\n// The regex here verifies that the `type` contains at least one non-\n// whitespace character.\ntypeof type === 'string' && /\\S/.test(type) || Array.isArray(type) && !!type.length;\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 */\nconst 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/**\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 */\nconst 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/**\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 */\nconst 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/**\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 */\nconst normalizeListenArgs = (self, args, fnName) => {\n // If the number of arguments is less than 3, the target is always the\n // evented object itself.\n const isTargetingSelf = args.length < 3 || args[0] === self || args[0] === self.eventBusEl_;\n let target;\n let type;\n let listener;\n if (isTargetingSelf) {\n target = self.eventBusEl_;\n\n // Deal with cases where we got 3 arguments, but we are still listening to\n // the evented object itself.\n if (args.length >= 3) {\n args.shift();\n }\n [type, listener] = args;\n } else {\n // This was `[target, type, listener] = args;` but this block needs more than\n // one statement to produce minified output compatible with Chrome 53.\n // See https://github.com/videojs/video.js/pull/8810\n target = args[0];\n type = args[1];\n listener = args[2];\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,\n target,\n type,\n listener\n };\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 */\nconst listen = (target, method, type, listener) => {\n validateTarget(target, target, method);\n if (target.nodeName) {\n Events[method](target, type, listener);\n } else {\n target[method](type, listener);\n }\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 */\nconst 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(...args) {\n const {\n isTargetingSelf,\n target,\n type,\n listener\n } = normalizeListenArgs(this, args, 'on');\n listen(target, 'on', type, listener);\n\n // If this object is listening to another evented object.\n if (!isTargetingSelf) {\n // If this object is disposed, remove the listener.\n const removeListenerOnDispose = () => this.off(target, type, listener);\n\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 removeListenerOnDispose.guid = listener.guid;\n\n // 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 const removeRemoverOnTargetDispose = () => this.off('dispose', removeListenerOnDispose);\n\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 removeRemoverOnTargetDispose.guid = listener.guid;\n listen(this, 'on', 'dispose', removeListenerOnDispose);\n listen(target, 'on', 'dispose', removeRemoverOnTargetDispose);\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(...args) {\n const {\n isTargetingSelf,\n target,\n type,\n listener\n } = normalizeListenArgs(this, args, 'one');\n\n // Targeting this evented object.\n if (isTargetingSelf) {\n listen(target, 'one', type, listener);\n\n // 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 listeners are removed on the first trigger!\n // see https://github.com/videojs/video.js/issues/5962\n const wrapper = (...largs) => {\n this.off(target, type, wrapper);\n listener.apply(null, largs);\n };\n\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 wrapper.guid = listener.guid;\n listen(target, 'one', type, wrapper);\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(...args) {\n const {\n isTargetingSelf,\n target,\n type,\n listener\n } = normalizeListenArgs(this, args, 'any');\n\n // Targeting this evented object.\n if (isTargetingSelf) {\n listen(target, 'any', type, listener);\n\n // Targeting another evented object.\n } else {\n const wrapper = (...largs) => {\n this.off(target, type, wrapper);\n listener.apply(null, largs);\n };\n\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 wrapper.guid = listener.guid;\n listen(target, 'any', type, wrapper);\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(targetOrType, typeOrListener, listener) {\n // Targeting this evented object.\n if (!targetOrType || isValidEventType(targetOrType)) {\n off(this.eventBusEl_, targetOrType, typeOrListener);\n\n // Targeting another evented object.\n } else {\n const target = targetOrType;\n const type = typeOrListener;\n\n // Fail fast and in a meaningful way!\n validateTarget(target, this, 'off');\n validateEventType(type, this, 'off');\n validateListener(listener, this, 'off');\n\n // Ensure there's at least a guid, even if the function hasn't been used\n listener = bind_(this, listener);\n\n // Remove the dispose listener on this evented object, which was given\n // the same guid as the event listener in on().\n this.off('dispose', listener);\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 * 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(event, hash) {\n validateTarget(this.eventBusEl_, this, 'trigger');\n const type = event && typeof event !== 'string' ? event.type : event;\n if (!isValidEventType(type)) {\n throw new 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 return trigger(this.eventBusEl_, event, hash);\n }\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 */\nfunction evented(target, options = {}) {\n const {\n eventBusKey\n } = options;\n\n // Set or create the eventBusEl_.\n if (eventBusKey) {\n if (!target[eventBusKey].nodeName) {\n throw new Error(`The eventBusKey \"${eventBusKey}\" does not refer to an element.`);\n }\n target.eventBusEl_ = target[eventBusKey];\n } else {\n target.eventBusEl_ = createEl('span', {\n className: 'vjs-event-bus'\n });\n }\n Object.assign(target, EventedMixin);\n if (target.eventedCallbacks) {\n target.eventedCallbacks.forEach(callback => {\n callback();\n });\n }\n\n // When any evented object is disposed, it removes all its listeners.\n target.on('dispose', () => {\n target.off();\n [target, target.el_, target.eventBusEl_].forEach(function (val) {\n if (val && DomData.has(val)) {\n DomData.delete(val);\n }\n });\n window$1.setTimeout(() => {\n target.eventBusEl_ = null;\n }, 0);\n });\n return target;\n}\n\n/**\n * @file mixins/stateful.js\n * @module stateful\n */\n\n/**\n * Contains methods that provide statefulness to an object which is passed\n * to {@link module:stateful}.\n *\n * @mixin StatefulMixin\n */\nconst 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 * 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(stateUpdates) {\n // Support providing the `stateUpdates` state as a function.\n if (typeof stateUpdates === 'function') {\n stateUpdates = stateUpdates();\n }\n let changes;\n each(stateUpdates, (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 this.state[key] = value;\n });\n\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 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,\n type: 'statechanged'\n });\n }\n return changes;\n }\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 */\nfunction stateful(target, defaultState) {\n Object.assign(target, StatefulMixin);\n\n // This happens after the mixing-in because we need to replace the `state`\n // added in that step.\n target.state = Object.assign({}, target.state, defaultState);\n\n // Auto-bind the `handleStateChanged` method of the target object if it exists.\n if (typeof target.handleStateChanged === 'function' && isEvented(target)) {\n target.on('statechanged', target.handleStateChanged);\n }\n return target;\n}\n\n/**\n * @file str.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 */\nconst toLowerCase = function (string) {\n if (typeof string !== 'string') {\n return string;\n }\n return string.replace(/./, w => 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 */\nconst toTitleCase$1 = function (string) {\n if (typeof string !== 'string') {\n return string;\n }\n return string.replace(/./, w => 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 */\nconst titleCaseEquals = function (str1, str2) {\n return toTitleCase$1(str1) === toTitleCase$1(str2);\n};\n\nvar Str = /*#__PURE__*/Object.freeze({\n __proto__: null,\n toLowerCase: toLowerCase,\n toTitleCase: toTitleCase$1,\n titleCaseEquals: titleCaseEquals\n});\n\n/**\n * Player Component - Base class for all UI objects\n *\n * @file component.js\n */\n\n/** @import Player from './player' */\n\n/**\n * A callback to be called if and when the component is ready.\n * `this` will be the Component instance.\n *\n * @callback ReadyCallback\n * @returns {void}\n */\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 */\nclass Component$1 {\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 component options.\n *\n * @param {Object[]} [options.children]\n * An array of children objects to initialize 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 {string} [options.className]\n * A class or space separated list of classes to add the component\n *\n * @param {ReadyCallback} [ready]\n * Function that gets called when the `Component` is ready.\n */\n constructor(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 this.isDisposed_ = false;\n\n // Hold the reference to the parent component via `addChild` method\n this.parentComponent_ = null;\n\n // Make a copy of prototype.options_ to protect against overriding defaults\n this.options_ = merge$1({}, this.options_);\n\n // Updated options with supplied options\n options = this.options_ = merge$1(this.options_, options);\n\n // Get ID from options or options element if one is supplied\n this.id_ = options.id || options.el && options.el.id;\n\n // If there was no ID from the options, generate one\n if (!this.id_) {\n // Don't require the player ID function in the case of mock players\n const id = player && player.id && player.id() || 'no_player';\n this.id_ = `${id}_component_${newGUID()}`;\n }\n this.name_ = options.name || null;\n\n // Create element if one wasn't provided in options\n if (options.el) {\n this.el_ = options.el;\n } else if (options.createEl !== false) {\n this.el_ = this.createEl();\n }\n if (options.className && this.el_) {\n options.className.split(' ').forEach(c => this.addClass(c));\n }\n\n // Remove the placeholder event methods. If the component is evented, the\n // real methods are added next\n ['on', 'off', 'one', 'any', 'trigger'].forEach(fn => {\n this[fn] = undefined;\n });\n\n // if evented is anything except false, we want to mixin in evented\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 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();\n this.clearingTimersOnDispose_ = false;\n\n // Add any child components in options\n if (options.initChildren !== false) {\n this.initChildren();\n }\n\n // Don't want to trigger ready here or it will go before init is actually\n // finished for all children that run this constructor\n this.ready(ready);\n if (options.reportTouchActivity !== false) {\n this.enableTouchActivity();\n }\n }\n\n // `on`, `off`, `one`, `any` and `trigger` are here so tsc includes them in definitions.\n // They are replaced or removed in the constructor\n\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 {Function} fn\n * The function to call with `EventTarget`s\n */\n\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 {Function} [fn]\n * The function to remove. If not specified, all listeners managed by Video.js will be removed.\n */\n\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 {Function} fn\n * The function to be called once for each event name.\n */\n\n /**\n * This function will add an `event listener` that gets triggered only once and is\n * removed from all events. This is like adding an array of `event listener`s\n * with {@link EventTarget#on} that calls {@link EventTarget#off} on all events the\n * first time it is triggered.\n *\n * @param {string|string[]} type\n * An event name or an array of event names.\n *\n * @param {Function} fn\n * The function to be called once for each event name.\n */\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|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 * @param {Object} [hash]\n * Optionally extra argument to pass through to an event listener\n */\n\n /**\n * Dispose of the `Component` and all child components.\n *\n * @fires Component#dispose\n *\n * @param {Object} options\n * @param {Element} options.originalEl element with which to replace player element\n */\n dispose(options = {}) {\n // Bail out if the component has already been disposed.\n if (this.isDisposed_) {\n return;\n }\n if (this.readyQueue_) {\n this.readyQueue_.length = 0;\n }\n\n /**\n * Triggered when a `Component` is disposed.\n *\n * @event Component#dispose\n * @type {Event}\n *\n * @property {boolean} [bubbles=false]\n * set to false so that the dispose event does not\n * bubble up\n */\n this.trigger({\n type: 'dispose',\n bubbles: false\n });\n this.isDisposed_ = true;\n\n // Dispose all children.\n if (this.children_) {\n for (let i = this.children_.length - 1; i >= 0; i--) {\n if (this.children_[i].dispose) {\n this.children_[i].dispose();\n }\n }\n }\n\n // Delete child references\n this.children_ = null;\n this.childIndex_ = null;\n this.childNameIndex_ = null;\n this.parentComponent_ = null;\n if (this.el_) {\n // Remove element from DOM\n if (this.el_.parentNode) {\n if (options.restoreEl) {\n this.el_.parentNode.replaceChild(options.restoreEl, this.el_);\n } else {\n this.el_.parentNode.removeChild(this.el_);\n }\n }\n this.el_ = null;\n }\n\n // remove reference to the player after disposing of the element\n this.player_ = null;\n }\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 isDisposed() {\n return Boolean(this.isDisposed_);\n }\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 player() {\n return this.player_;\n }\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:obj.merge}\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 options(obj) {\n if (!obj) {\n return this.options_;\n }\n this.options_ = merge$1(this.options_, obj);\n return this.options_;\n }\n\n /**\n * Get the `Component`s DOM element\n *\n * @return {Element}\n * The DOM element for this `Component`.\n */\n el() {\n return this.el_;\n }\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 createEl(tagName, properties, attributes) {\n return createEl(tagName, properties, attributes);\n }\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 localize(string, tokens, defaultValue = string) {\n const code = this.player_.language && this.player_.language();\n const languages = this.player_.languages && this.player_.languages();\n const language = languages && languages[code];\n const primaryCode = code && code.split('-')[0];\n const primaryLang = languages && languages[primaryCode];\n let localizedString = defaultValue;\n if (language && language[string]) {\n localizedString = language[string];\n } else if (primaryLang && primaryLang[string]) {\n localizedString = primaryLang[string];\n }\n if (tokens) {\n localizedString = localizedString.replace(/\\{(\\d+)\\}/g, function (match, index) {\n const value = tokens[index - 1];\n let ret = value;\n if (typeof value === 'undefined') {\n ret = match;\n }\n return ret;\n });\n }\n return localizedString;\n }\n\n /**\n * Handles language change for the player in components. Should be overridden by sub-components.\n *\n * @abstract\n */\n handleLanguagechange() {}\n\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 contentEl() {\n return this.contentEl_ || this.el_;\n }\n\n /**\n * Get this `Component`s ID\n *\n * @return {string}\n * The id of this `Component`\n */\n id() {\n return this.id_;\n }\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 name() {\n return this.name_;\n }\n\n /**\n * Get an array of all child components\n *\n * @return {Array}\n * The children\n */\n children() {\n return this.children_;\n }\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 getChildById(id) {\n return this.childIndex_[id];\n }\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 getChild(name) {\n if (!name) {\n return;\n }\n return this.childNameIndex_[name];\n }\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 getDescendant(...names) {\n // flatten array argument into the main array\n names = names.reduce((acc, n) => acc.concat(n), []);\n let currentChild = this;\n for (let i = 0; i < names.length; i++) {\n currentChild = currentChild.getChild(names[i]);\n if (!currentChild || !currentChild.getChild) {\n return;\n }\n }\n return currentChild;\n }\n\n /**\n * Adds an SVG icon element to another element or component.\n *\n * @param {string} iconName\n * The name of icon. A list of all the icon names can be found at 'sandbox/svg-icons.html'\n *\n * @param {Element} [el=this.el()]\n * Element to set the title on. Defaults to the current Component's element.\n *\n * @return {Element}\n * The newly created icon element.\n */\n setIcon(iconName, el = this.el()) {\n // TODO: In v9 of video.js, we will want to remove font icons entirely.\n // This means this check, as well as the others throughout the code, and\n // the unecessary CSS for font icons, will need to be removed.\n // See https://github.com/videojs/video.js/pull/8260 as to which components\n // need updating.\n if (!this.player_.options_.experimentalSvgIcons) {\n return;\n }\n const xmlnsURL = 'http://www.w3.org/2000/svg';\n\n // The below creates an element in the format of:\n // ....\n const iconContainer = createEl('span', {\n className: 'vjs-icon-placeholder vjs-svg-icon'\n }, {\n 'aria-hidden': 'true'\n });\n const svgEl = document$1.createElementNS(xmlnsURL, 'svg');\n svgEl.setAttributeNS(null, 'viewBox', '0 0 512 512');\n const useEl = document$1.createElementNS(xmlnsURL, 'use');\n svgEl.appendChild(useEl);\n useEl.setAttributeNS(null, 'href', `#vjs-icon-${iconName}`);\n iconContainer.appendChild(svgEl);\n\n // Replace a pre-existing icon if one exists.\n if (this.iconIsSet_) {\n el.replaceChild(iconContainer, el.querySelector('.vjs-icon-placeholder'));\n } else {\n el.appendChild(iconContainer);\n }\n this.iconIsSet_ = true;\n return iconContainer;\n }\n\n /**\n * Add a child `Component` inside the current `Component`.\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 *\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 addChild(child, options = {}, index = this.children_.length) {\n let component;\n let componentName;\n\n // If child is a string, create component with options\n if (typeof child === 'string') {\n componentName = toTitleCase$1(child);\n const componentClassName = options.componentClass || componentName;\n\n // Set name through options\n options.name = componentName;\n\n // Create a new object & element for this controls set\n // If there's no .player_, this is a player\n const ComponentClass = Component$1.getComponent(componentClassName);\n if (!ComponentClass) {\n throw new Error(`Component ${componentClassName} does not exist`);\n }\n\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 if (typeof ComponentClass !== 'function') {\n return null;\n }\n component = new ComponentClass(this.player_ || this, options);\n\n // child is a component instance\n } else {\n component = child;\n }\n if (component.parentComponent_) {\n component.parentComponent_.removeChild(component);\n }\n this.children_.splice(index, 0, component);\n component.parentComponent_ = this;\n if (typeof component.id === 'function') {\n this.childIndex_[component.id()] = component;\n }\n\n // If a name wasn't used to create the component, check if we can use the\n // name function of the component\n componentName = componentName || component.name && toTitleCase$1(component.name());\n if (componentName) {\n this.childNameIndex_[componentName] = component;\n this.childNameIndex_[toLowerCase(componentName)] = component;\n }\n\n // Add the UI object's element to the container div (box)\n // Having an element is not required\n if (typeof component.el === 'function' && component.el()) {\n // If inserting before a component, insert before that component's element\n let refNode = null;\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 this.contentEl().insertBefore(component.el(), refNode);\n }\n\n // Return so it can stored on parent object if desired.\n return component;\n }\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 {string|Component} component\n * The name or instance of a child to remove.\n */\n removeChild(component) {\n if (typeof component === 'string') {\n component = this.getChild(component);\n }\n if (!component || !this.children_) {\n return;\n }\n let childFound = false;\n for (let 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 if (!childFound) {\n return;\n }\n component.parentComponent_ = null;\n this.childIndex_[component.id()] = null;\n this.childNameIndex_[toTitleCase$1(component.name())] = null;\n this.childNameIndex_[toLowerCase(component.name())] = null;\n const compEl = component.el();\n if (compEl && compEl.parentNode === this.contentEl()) {\n this.contentEl().removeChild(component.el());\n }\n }\n\n /**\n * Add and initialize default child `Component`s based upon options.\n */\n initChildren() {\n const children = this.options_.children;\n if (children) {\n // `this` is `parent`\n const parentOptions = this.options_;\n const handleAdd = child => {\n const name = child.name;\n let opts = child.opts;\n\n // 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 if (parentOptions[name] !== undefined) {\n opts = parentOptions[name];\n }\n\n // Allow for disabling default components\n // e.g. options['children']['posterImage'] = false\n if (opts === false) {\n return;\n }\n\n // Allow options to be passed as a simple boolean if no configuration\n // is necessary.\n if (opts === true) {\n opts = {};\n }\n\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 opts.playerOptions = this.options_.playerOptions;\n\n // 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 const newChild = this.addChild(name, opts);\n if (newChild) {\n this[name] = newChild;\n }\n };\n\n // Allow for an array of children details to passed in the options\n let workingChildren;\n const Tech = Component$1.getComponent('Tech');\n if (Array.isArray(children)) {\n workingChildren = children;\n } else {\n workingChildren = Object.keys(children);\n }\n workingChildren\n // 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 return child === wchild.name;\n });\n })).map(child => {\n let name;\n let opts;\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 return {\n name,\n opts\n };\n }).filter(child => {\n // we have to make sure that child.name isn't in the techOrder since\n // techs are registered as Components but can't aren't compatible\n // See https://github.com/videojs/video.js/issues/2772\n const c = Component$1.getComponent(child.opts.componentClass || toTitleCase$1(child.name));\n return c && !Tech.isTech(c);\n }).forEach(handleAdd);\n }\n }\n\n /**\n * Builds the default DOM class name. Should be overridden by sub-components.\n *\n * @return {string}\n * The DOM class name for this object.\n *\n * @abstract\n */\n buildCSSClass() {\n // Child classes can include a function that does:\n // return 'CLASS NAME' + this._super();\n return '';\n }\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 * @param {ReadyCallback} fn\n * Function that gets called when the `Component` is ready.\n */\n ready(fn, sync = false) {\n if (!fn) {\n return;\n }\n if (!this.isReady_) {\n this.readyQueue_ = this.readyQueue_ || [];\n this.readyQueue_.push(fn);\n return;\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 /**\n * Trigger all the ready listeners for this `Component`.\n *\n * @fires Component#ready\n */\n triggerReady() {\n this.isReady_ = true;\n\n // Ensure ready is triggered asynchronously\n this.setTimeout(function () {\n const readyQueue = this.readyQueue_;\n\n // Reset Ready Queue\n this.readyQueue_ = [];\n if (readyQueue && readyQueue.length > 0) {\n readyQueue.forEach(function (fn) {\n fn.call(this);\n }, this);\n }\n\n // Allow for using event listeners also\n /**\n * Triggered when a `Component` is ready.\n *\n * @event Component#ready\n * @type {Event}\n */\n this.trigger('ready');\n }, 1);\n }\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 $(selector, context) {\n return $(selector, context || this.contentEl());\n }\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 $$(selector, context) {\n return $$(selector, context || this.contentEl());\n }\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 hasClass(classToCheck) {\n return hasClass(this.el_, classToCheck);\n }\n\n /**\n * Add a CSS class name to the `Component`s element.\n *\n * @param {...string} classesToAdd\n * One or more CSS class name to add.\n */\n addClass(...classesToAdd) {\n addClass(this.el_, ...classesToAdd);\n }\n\n /**\n * Remove a CSS class name from the `Component`s element.\n *\n * @param {...string} classesToRemove\n * One or more CSS class name to remove.\n */\n removeClass(...classesToRemove) {\n removeClass(this.el_, ...classesToRemove);\n }\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. Passed to DOMTokenList's toggle()\n *\n * @param {boolean|Dom.PredicateCallback} [predicate]\n * A boolean or function that returns a boolean. Passed to DOMTokenList's toggle().\n */\n toggleClass(classToToggle, predicate) {\n toggleClass(this.el_, classToToggle, predicate);\n }\n\n /**\n * Show the `Component`s element if it is hidden by removing the\n * 'vjs-hidden' class name from it.\n */\n show() {\n this.removeClass('vjs-hidden');\n }\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 hide() {\n this.addClass('vjs-hidden');\n }\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 lockShowing() {\n this.addClass('vjs-lock-showing');\n }\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 unlockShowing() {\n this.removeClass('vjs-lock-showing');\n }\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 attribute 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 getAttribute(attribute) {\n return getAttribute(this.el_, attribute);\n }\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 setAttribute(attribute, value) {\n setAttribute(this.el_, attribute, value);\n }\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 removeAttribute(attribute) {\n removeAttribute(this.el_, attribute);\n }\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|undefined}\n * The width when getting, zero if there is no width\n */\n width(num, skipListeners) {\n return this.dimension('width', num, skipListeners);\n }\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|undefined}\n * The height when getting, zero if there is no height\n */\n height(num, skipListeners) {\n return this.dimension('height', num, skipListeners);\n }\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 dimensions(width, height) {\n // Skip componentresize listeners on width for optimization\n this.width(width, true);\n this.height(height);\n }\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|undefined}\n * The dimension when getting or 0 if unset\n */\n 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 }\n\n // Check if using css width/height (% or px) and adjust\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 }\n\n // skipListeners allows us to avoid triggering the resize event when setting both width and height\n if (!skipListeners) {\n /**\n * Triggered when a component is resized.\n *\n * @event Component#componentresize\n * @type {Event}\n */\n this.trigger('componentresize');\n }\n return;\n }\n\n // Not setting a value, so getting it\n // Make sure element exists\n if (!this.el_) {\n return 0;\n }\n\n // Get dimension value from style\n const val = this.el_.style[widthOrHeight];\n const pxIndex = val.indexOf('px');\n if (pxIndex !== -1) {\n // Return the pixel value with no 'px'\n return parseInt(val.slice(0, pxIndex), 10);\n }\n\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 return parseInt(this.el_['offset' + toTitleCase$1(widthOrHeight)], 10);\n }\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 currentDimension(widthOrHeight) {\n let computedWidthOrHeight = 0;\n if (widthOrHeight !== 'width' && widthOrHeight !== 'height') {\n throw new Error('currentDimension only accepts width or height value');\n }\n computedWidthOrHeight = computedStyle(this.el_, widthOrHeight);\n\n // remove 'px' from variable and parse as integer\n computedWidthOrHeight = parseFloat(computedWidthOrHeight);\n\n // 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 if (computedWidthOrHeight === 0 || isNaN(computedWidthOrHeight)) {\n const rule = `offset${toTitleCase$1(widthOrHeight)}`;\n computedWidthOrHeight = this.el_[rule];\n }\n return computedWidthOrHeight;\n }\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 currentDimensions() {\n return {\n width: this.currentDimension('width'),\n height: this.currentDimension('height')\n };\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 currentWidth() {\n return this.currentDimension('width');\n }\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 currentHeight() {\n return this.currentDimension('height');\n }\n\n /**\n * Retrieves the position and size information of the component's element.\n *\n * @return {Object} An object with `boundingClientRect` and `center` properties.\n * - `boundingClientRect`: An object with properties `x`, `y`, `width`,\n * `height`, `top`, `right`, `bottom`, and `left`, representing\n * the bounding rectangle of the element.\n * - `center`: An object with properties `x` and `y`, representing\n * the center point of the element. `width` and `height` are set to 0.\n */\n getPositions() {\n const rect = this.el_.getBoundingClientRect();\n\n // Creating objects that mirror DOMRectReadOnly for boundingClientRect and center\n const boundingClientRect = {\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height,\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left\n };\n\n // Calculating the center position\n const center = {\n x: rect.left + rect.width / 2,\n y: rect.top + rect.height / 2,\n width: 0,\n height: 0,\n top: rect.top + rect.height / 2,\n right: rect.left + rect.width / 2,\n bottom: rect.top + rect.height / 2,\n left: rect.left + rect.width / 2\n };\n return {\n boundingClientRect,\n center\n };\n }\n\n /**\n * Set the focus to this component\n */\n focus() {\n this.el_.focus();\n }\n\n /**\n * Remove the focus from this component\n */\n blur() {\n this.el_.blur();\n }\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 {KeyboardEvent} event\n * The `keydown` event that caused this function to be called.\n */\n handleKeyDown(event) {\n if (this.player_) {\n // We only stop propagation here because we want unhandled events to fall\n // back to the browser. Exclude Tab for focus trapping, exclude also when spatialNavigation is enabled.\n if (event.key !== 'Tab' && !(this.player_.options_.playerOptions.spatialNavigation && this.player_.options_.playerOptions.spatialNavigation.enabled)) {\n event.stopPropagation();\n }\n this.player_.handleKeyDown(event);\n }\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 {KeyboardEvent} event\n * The event that caused this function to be called.\n */\n handleKeyPress(event) {\n this.handleKeyDown(event);\n }\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 * @protected\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 emitTapEvents() {\n // Track the start time so we can determine how long the touch lasted\n let touchStart = 0;\n let firstTouch = null;\n\n // 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 const tapMovementThreshold = 10;\n\n // The maximum length a touch can be while still being considered a tap\n const touchTimeThreshold = 200;\n let 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 };\n // Record start time so we can detect a tap vs. \"touch and hold\"\n touchStart = window$1.performance.now();\n // Reset couldBeTap tracking\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 const xdiff = event.touches[0].pageX - firstTouch.pageX;\n const ydiff = event.touches[0].pageY - firstTouch.pageY;\n const touchDistance = Math.sqrt(xdiff * xdiff + ydiff * ydiff);\n if (touchDistance > tapMovementThreshold) {\n couldBeTap = false;\n }\n }\n });\n const noTap = function () {\n couldBeTap = false;\n };\n\n // TODO: Listen to the original target. http://youtu.be/DujfpXOKUp8?t=13m8s\n this.on('touchleave', noTap);\n this.on('touchcancel', noTap);\n\n // When the touch ends, measure how long it took and trigger the appropriate\n // event\n this.on('touchend', function (event) {\n firstTouch = null;\n // Proceed only if the touchmove/leave/cancel event didn't happen\n if (couldBeTap === true) {\n // Measure how long the touch lasted\n const touchTime = window$1.performance.now() - touchStart;\n\n // Make sure the touch was less than the threshold to be considered a tap\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 {MouseEvent}\n */\n this.trigger('tap');\n // 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 /**\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 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 }\n\n // listener for reporting that the user is active\n const report = bind_(this.player(), this.player().reportUserActivity);\n let touchHolding;\n this.on('touchstart', function () {\n report();\n // 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 this.clearInterval(touchHolding);\n // report at the same interval as activityCheck\n touchHolding = this.setInterval(report, 250);\n });\n const touchEnd = function (event) {\n report();\n // stop the interval that maintains activity if the touch is holding\n this.clearInterval(touchHolding);\n };\n this.on('touchmove', report);\n this.on('touchend', touchEnd);\n this.on('touchcancel', touchEnd);\n }\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 setTimeout(fn, timeout) {\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(() => {\n if (this.setTimeoutIds_.has(timeoutId)) {\n this.setTimeoutIds_.delete(timeoutId);\n }\n fn();\n }, timeout);\n this.setTimeoutIds_.add(timeoutId);\n return timeoutId;\n }\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 clearTimeout(timeoutId) {\n if (this.setTimeoutIds_.has(timeoutId)) {\n this.setTimeoutIds_.delete(timeoutId);\n window$1.clearTimeout(timeoutId);\n }\n return timeoutId;\n }\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 setInterval(fn, interval) {\n fn = bind_(this, fn);\n this.clearTimersOnDispose_();\n const intervalId = window$1.setInterval(fn, interval);\n this.setIntervalIds_.add(intervalId);\n return intervalId;\n }\n\n /**\n * Clears an interval that gets created via `window.setInterval` or\n * {@link Component#setInterval}. If you set an interval 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 clearInterval(intervalId) {\n if (this.setIntervalIds_.has(intervalId)) {\n this.setIntervalIds_.delete(intervalId);\n window$1.clearInterval(intervalId);\n }\n return intervalId;\n }\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 requestAnimationFrame(fn) {\n this.clearTimersOnDispose_();\n\n // declare as variables so they are properly available in rAF function\n // eslint-disable-next-line\n var id;\n fn = bind_(this, fn);\n id = window$1.requestAnimationFrame(() => {\n if (this.rafIds_.has(id)) {\n this.rafIds_.delete(id);\n }\n fn();\n });\n this.rafIds_.add(id);\n return id;\n }\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 requestNamedAnimationFrame(name, fn) {\n if (this.namedRafs_.has(name)) {\n this.cancelNamedAnimationFrame(name);\n }\n this.clearTimersOnDispose_();\n fn = bind_(this, fn);\n const id = this.requestAnimationFrame(() => {\n fn();\n if (this.namedRafs_.has(name)) {\n this.namedRafs_.delete(name);\n }\n });\n this.namedRafs_.set(name, id);\n return name;\n }\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 cancelNamedAnimationFrame(name) {\n if (!this.namedRafs_.has(name)) {\n return;\n }\n this.cancelAnimationFrame(this.namedRafs_.get(name));\n this.namedRafs_.delete(name);\n }\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 cancelAnimationFrame(id) {\n if (this.rafIds_.has(id)) {\n this.rafIds_.delete(id);\n window$1.cancelAnimationFrame(id);\n }\n return id;\n }\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 clearTimersOnDispose_() {\n if (this.clearingTimersOnDispose_) {\n return;\n }\n this.clearingTimersOnDispose_ = true;\n this.one('dispose', () => {\n [['namedRafs_', 'cancelNamedAnimationFrame'], ['rafIds_', 'cancelAnimationFrame'], ['setTimeoutIds_', 'clearTimeout'], ['setIntervalIds_', 'clearInterval']].forEach(([idName, cancelName]) => {\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 this[idName].forEach((val, key) => this[cancelName](key));\n });\n this.clearingTimersOnDispose_ = false;\n });\n }\n\n /**\n * Decide whether an element is actually disabled or not.\n *\n * @function isActuallyDisabled\n * @param element {Node}\n * @return {boolean}\n *\n * @see {@link https://html.spec.whatwg.org/multipage/semantics-other.html#concept-element-disabled}\n */\n getIsDisabled() {\n return Boolean(this.el_.disabled);\n }\n\n /**\n * Decide whether the element is expressly inert or not.\n *\n * @see {@link https://html.spec.whatwg.org/multipage/interaction.html#expressly-inert}\n * @function isExpresslyInert\n * @param element {Node}\n * @return {boolean}\n */\n getIsExpresslyInert() {\n return this.el_.inert && !this.el_.ownerDocument.documentElement.inert;\n }\n\n /**\n * Determine whether or not this component can be considered as focusable component.\n *\n * @param {HTMLElement} el - The HTML element representing the component.\n * @return {boolean}\n * If the component can be focused, will be `true`. Otherwise, `false`.\n */\n getIsFocusable(el) {\n const element = el || this.el_;\n return element.tabIndex >= 0 && !(this.getIsDisabled() || this.getIsExpresslyInert());\n }\n\n /**\n * Determine whether or not this component is currently visible/enabled/etc...\n *\n * @param {HTMLElement} el - The HTML element representing the component.\n * @return {boolean}\n * If the component can is currently visible & enabled, will be `true`. Otherwise, `false`.\n */\n getIsAvailableToBeFocused(el) {\n /**\n * Decide the style property of this element is specified whether it's visible or not.\n *\n * @function isVisibleStyleProperty\n * @param element {CSSStyleDeclaration}\n * @return {boolean}\n */\n function isVisibleStyleProperty(element) {\n const elementStyle = window$1.getComputedStyle(element, null);\n const thisVisibility = elementStyle.getPropertyValue('visibility');\n const thisDisplay = elementStyle.getPropertyValue('display');\n const invisibleStyle = ['hidden', 'collapse'];\n return thisDisplay !== 'none' && !invisibleStyle.includes(thisVisibility);\n }\n\n /**\n * Decide whether the element is being rendered or not.\n * 1. If an element has the style as \"visibility: hidden | collapse\" or \"display: none\", it is not being rendered.\n * 2. If an element has the style as \"opacity: 0\", it is not being rendered.(that is, invisible).\n * 3. If width and height of an element are explicitly set to 0, it is not being rendered.\n * 4. If a parent element is hidden, an element itself is not being rendered.\n * (CSS visibility property and display property are inherited.)\n *\n * @see {@link https://html.spec.whatwg.org/multipage/rendering.html#being-rendered}\n * @function isBeingRendered\n * @param element {Node}\n * @return {boolean}\n */\n function isBeingRendered(element) {\n if (!isVisibleStyleProperty(element.parentElement)) {\n return false;\n }\n if (!isVisibleStyleProperty(element) || element.style.opacity === '0' || window$1.getComputedStyle(element).height === '0px' || window$1.getComputedStyle(element).width === '0px') {\n return false;\n }\n return true;\n }\n\n /**\n * Determine if the element is visible for the user or not.\n * 1. If an element sum of its offsetWidth, offsetHeight, height and width is less than 1 is not visible.\n * 2. If elementCenter.x is less than is not visible.\n * 3. If elementCenter.x is more than the document's width is not visible.\n * 4. If elementCenter.y is less than 0 is not visible.\n * 5. If elementCenter.y is the document's height is not visible.\n *\n * @function isVisible\n * @param element {Node}\n * @return {boolean}\n */\n function isVisible(element) {\n if (element.offsetWidth + element.offsetHeight + element.getBoundingClientRect().height + element.getBoundingClientRect().width === 0) {\n return false;\n }\n\n // Define elementCenter object with props of x and y\n // x: Left position relative to the viewport plus element's width (no margin) divided between 2.\n // y: Top position relative to the viewport plus element's height (no margin) divided between 2.\n const elementCenter = {\n x: element.getBoundingClientRect().left + element.offsetWidth / 2,\n y: element.getBoundingClientRect().top + element.offsetHeight / 2\n };\n if (elementCenter.x < 0) {\n return false;\n }\n if (elementCenter.x > (document$1.documentElement.clientWidth || window$1.innerWidth)) {\n return false;\n }\n if (elementCenter.y < 0) {\n return false;\n }\n if (elementCenter.y > (document$1.documentElement.clientHeight || window$1.innerHeight)) {\n return false;\n }\n let pointContainer = document$1.elementFromPoint(elementCenter.x, elementCenter.y);\n while (pointContainer) {\n if (pointContainer === element) {\n return true;\n }\n if (pointContainer.parentNode) {\n pointContainer = pointContainer.parentNode;\n } else {\n return false;\n }\n }\n }\n\n // If no DOM element was passed as argument use this component's element.\n if (!el) {\n el = this.el();\n }\n\n // If element is visible, is being rendered & either does not have a parent element or its tabIndex is not negative.\n if (isVisible(el) && isBeingRendered(el) && (!el.parentElement || el.tabIndex >= 0)) {\n return true;\n }\n return 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 static 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 const Tech = Component$1.getComponent('Tech');\n\n // We need to make sure this check is only done if Tech has been registered.\n const isTech = Tech && Tech.isTech(ComponentToRegister);\n const isComp = Component$1 === ComponentToRegister || Component$1.prototype.isPrototypeOf(ComponentToRegister.prototype);\n if (isTech || !isComp) {\n let reason;\n if (isTech) {\n reason = 'techs must be registered using Tech.registerTech()';\n } else {\n reason = 'must be a Component subclass';\n }\n throw new Error(`Illegal component, \"${name}\"; ${reason}.`);\n }\n name = toTitleCase$1(name);\n if (!Component$1.components_) {\n Component$1.components_ = {};\n }\n const Player = Component$1.getComponent('Player');\n if (name === 'Player' && Player && Player.players) {\n const players = Player.players;\n const playerNames = Object.keys(players);\n\n // 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 null. This allows registration of the Player component\n // after all players have been disposed or before any were created.\n if (players && playerNames.length > 0) {\n for (let i = 0; i < playerNames.length; i++) {\n if (players[playerNames[i]] !== null) {\n throw new Error('Can not register Player component after player has been created.');\n }\n }\n }\n }\n Component$1.components_[name] = ComponentToRegister;\n Component$1.components_[toLowerCase(name)] = ComponentToRegister;\n return ComponentToRegister;\n }\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 {typeof Component}\n * The `Component` that got registered under the given name.\n */\n static getComponent(name) {\n if (!name || !Component$1.components_) {\n return;\n }\n return Component$1.components_[name];\n }\n}\nComponent$1.registerComponent('Component', Component$1);\n\n/**\n * @file time.js\n * @module time\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, which mimics {@link TimeRanges}.\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~TimeRangeIndex} start\n * Returns the time offset at which a specified time range begins.\n *\n * @property {module:time~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/**\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 */\nfunction getRange(fnName, valueIndex, ranges, rangeIndex) {\n rangeCheck(fnName, rangeIndex, ranges.length - 1);\n return ranges[rangeIndex][valueIndex];\n}\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 * @return {TimeRange}\n */\nfunction createTimeRangesObj(ranges) {\n let timeRangesObj;\n if (ranges === undefined || ranges.length === 0) {\n timeRangesObj = {\n length: 0,\n start() {\n throw new Error('This TimeRanges object is empty');\n },\n end() {\n throw new Error('This TimeRanges object is empty');\n }\n };\n } else {\n timeRangesObj = {\n length: ranges.length,\n start: getRange.bind(null, 'start', 0, ranges),\n end: getRange.bind(null, 'end', 1, ranges)\n };\n }\n if (window$1.Symbol && window$1.Symbol.iterator) {\n timeRangesObj[window$1.Symbol.iterator] = () => (ranges || []).values();\n }\n return timeRangesObj;\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 * @return {TimeRange}\n */\nfunction createTimeRanges$1(start, end) {\n if (Array.isArray(start)) {\n return createTimeRangesObj(start);\n } else if (start === undefined || end === undefined) {\n return createTimeRangesObj();\n }\n return createTimeRangesObj([[start, end]]);\n}\n\n/**\n * Format seconds as a time string, H:MM:SS or M:SS. Supplying a guide (in\n * seconds) will force a number of leading zeros to cover the length of the\n * guide.\n *\n * @private\n * @param {number} seconds\n * Number of seconds to be turned into a string\n *\n * @param {number} guide\n * Number (in seconds) to model the string after\n *\n * @return {string}\n * Time formatted as H:MM:SS or M:SS\n */\nconst defaultImplementation = function (seconds, guide) {\n seconds = seconds < 0 ? 0 : seconds;\n let s = Math.floor(seconds % 60);\n let m = Math.floor(seconds / 60 % 60);\n let h = Math.floor(seconds / 3600);\n const gm = Math.floor(guide / 60 % 60);\n const gh = Math.floor(guide / 3600);\n\n // handle invalid times\n if (isNaN(seconds) || seconds === Infinity) {\n // '-' is false for all relational operators (e.g. <, >=) so this setting\n // will add the minimum number of fields specified by the guide\n h = m = s = '-';\n }\n\n // Check if we need to show hours\n h = h > 0 || gh > 0 ? h + ':' : '';\n\n // If hours are showing, we may need to add a leading zero.\n // Always show at least one digit of minutes.\n m = ((h || gm >= 10) && m < 10 ? '0' + m : m) + ':';\n\n // Check if leading zero is need for seconds\n s = s < 10 ? '0' + s : s;\n return h + m + s;\n};\n\n// Internal pointer to the current implementation.\nlet implementation = defaultImplementation;\n\n/**\n * Replaces the default formatTime implementation with a custom implementation.\n *\n * @param {Function} customImplementation\n * A function which will be used in place of the default formatTime\n * implementation. Will receive the current time in seconds and the\n * guide (in seconds) as arguments.\n */\nfunction setFormatTime(customImplementation) {\n implementation = customImplementation;\n}\n\n/**\n * Resets formatTime to the default implementation.\n */\nfunction resetFormatTime() {\n implementation = defaultImplementation;\n}\n\n/**\n * Delegates to either the default time formatting function or a custom\n * function supplied via `setFormatTime`.\n *\n * Formats seconds as a time string (H:MM:SS or M:SS). Supplying a\n * guide (in seconds) will force a number of leading zeros to cover the\n * length of the guide.\n *\n * @example formatTime(125, 600) === \"02:05\"\n * @param {number} seconds\n * Number of seconds to be turned into a string\n *\n * @param {number} guide\n * Number (in seconds) to model the string after\n *\n * @return {string}\n * Time formatted as H:MM:SS or M:SS\n */\nfunction formatTime(seconds, guide = seconds) {\n return implementation(seconds, guide);\n}\n\nvar Time = /*#__PURE__*/Object.freeze({\n __proto__: null,\n createTimeRanges: createTimeRanges$1,\n createTimeRange: createTimeRanges$1,\n setFormatTime: setFormatTime,\n resetFormatTime: resetFormatTime,\n formatTime: formatTime\n});\n\n/**\n * @file buffer.js\n * @module buffer\n */\n\n/** @import { TimeRange } from './time' */\n\n/**\n * Compute the percentage of the media that has been buffered.\n *\n * @param {TimeRange} buffered\n * The current `TimeRanges` 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 */\nfunction bufferedPercent(buffered, duration) {\n let bufferedDuration = 0;\n let start;\n let end;\n if (!duration) {\n return 0;\n }\n if (!buffered || !buffered.length) {\n buffered = createTimeRanges$1(0, 0);\n }\n for (let i = 0; i < buffered.length; i++) {\n start = buffered.start(i);\n end = buffered.end(i);\n\n // buffered end can be bigger than duration by a very small fraction\n if (end > duration) {\n end = duration;\n }\n bufferedDuration += end - start;\n }\n return bufferedDuration / duration;\n}\n\n/**\n * @file media-error.js\n */\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 */\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 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 Object.assign(this, value);\n }\n if (!this.message) {\n this.message = MediaError.defaultMessages[this.code] || '';\n }\n}\n\n/**\n * The error code that refers two one of the defined `MediaError` types\n *\n * @type {Number}\n */\nMediaError.prototype.code = 0;\n\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 */\nMediaError.prototype.message = '';\n\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 */\nMediaError.prototype.status = null;\n\n/**\n * An object containing an error type, as well as other information regarding the error.\n *\n * @typedef {{errorType: string, [key: string]: any}} ErrorMetadata\n */\n\n/**\n * An optional object to give more detail about the error. This can be used to give\n * a higher level of specificity to an error versus the more generic MediaError codes.\n * `metadata` expects an `errorType` string that should align with the values from videojs.Error.\n *\n * @type {ErrorMetadata}\n */\nMediaError.prototype.metadata = null;\n\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 */\nMediaError.errorTypes = ['MEDIA_ERR_CUSTOM', 'MEDIA_ERR_ABORTED', 'MEDIA_ERR_NETWORK', 'MEDIA_ERR_DECODE', 'MEDIA_ERR_SRC_NOT_SUPPORTED', 'MEDIA_ERR_ENCRYPTED'];\n\n/**\n * The default `MediaError` messages based on the {@link MediaError.errorTypes}.\n *\n * @type {Array}\n * @constant\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};\n\n/**\n * W3C error code for any custom error.\n *\n * @member MediaError#MEDIA_ERR_CUSTOM\n * @constant {number}\n * @default 0\n */\nMediaError.MEDIA_ERR_CUSTOM = 0;\n\n/**\n * W3C error code for any custom error.\n *\n * @member MediaError.MEDIA_ERR_CUSTOM\n * @constant {number}\n * @default 0\n */\nMediaError.prototype.MEDIA_ERR_CUSTOM = 0;\n\n/**\n * W3C error code for media error aborted.\n *\n * @member MediaError#MEDIA_ERR_ABORTED\n * @constant {number}\n * @default 1\n */\nMediaError.MEDIA_ERR_ABORTED = 1;\n\n/**\n * W3C error code for media error aborted.\n *\n * @member MediaError.MEDIA_ERR_ABORTED\n * @constant {number}\n * @default 1\n */\nMediaError.prototype.MEDIA_ERR_ABORTED = 1;\n\n/**\n * W3C error code for any network error.\n *\n * @member MediaError#MEDIA_ERR_NETWORK\n * @constant {number}\n * @default 2\n */\nMediaError.MEDIA_ERR_NETWORK = 2;\n\n/**\n * W3C error code for any network error.\n *\n * @member MediaError.MEDIA_ERR_NETWORK\n * @constant {number}\n * @default 2\n */\nMediaError.prototype.MEDIA_ERR_NETWORK = 2;\n\n/**\n * W3C error code for any decoding error.\n *\n * @member MediaError#MEDIA_ERR_DECODE\n * @constant {number}\n * @default 3\n */\nMediaError.MEDIA_ERR_DECODE = 3;\n\n/**\n * W3C error code for any decoding error.\n *\n * @member MediaError.MEDIA_ERR_DECODE\n * @constant {number}\n * @default 3\n */\nMediaError.prototype.MEDIA_ERR_DECODE = 3;\n\n/**\n * W3C error code for any time that a source is not supported.\n *\n * @member MediaError#MEDIA_ERR_SRC_NOT_SUPPORTED\n * @constant {number}\n * @default 4\n */\nMediaError.MEDIA_ERR_SRC_NOT_SUPPORTED = 4;\n\n/**\n * W3C error code for any time that a source is not supported.\n *\n * @member MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED\n * @constant {number}\n * @default 4\n */\nMediaError.prototype.MEDIA_ERR_SRC_NOT_SUPPORTED = 4;\n\n/**\n * W3C error code for any time that a source is encrypted.\n *\n * @member MediaError#MEDIA_ERR_ENCRYPTED\n * @constant {number}\n * @default 5\n */\nMediaError.MEDIA_ERR_ENCRYPTED = 5;\n\n/**\n * W3C error code for any time that a source is encrypted.\n *\n * @member MediaError.MEDIA_ERR_ENCRYPTED\n * @constant {number}\n * @default 5\n */\nMediaError.prototype.MEDIA_ERR_ENCRYPTED = 5;\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/**\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 */\nfunction silencePromise(value) {\n if (isPromise(value)) {\n value.then(null, 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/** @import Tech from '../tech/tech' */\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 */\nconst trackToJson = function (track) {\n const ret = ['kind', 'label', 'language', 'id', 'inBandMetadataTrackDispatchType', 'mode', 'src'].reduce((acc, prop, i) => {\n if (track[prop]) {\n acc[prop] = track[prop];\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/**\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 */\nconst textTracksToJson = function (tech) {\n const trackEls = tech.$$('track');\n const trackObjs = Array.prototype.map.call(trackEls, t => t.track);\n const tracks = Array.prototype.map.call(trackEls, function (trackEl) {\n const json = trackToJson(trackEl.track);\n if (trackEl.src) {\n json.src = trackEl.src;\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/**\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 */\nconst jsonToTextTracks = function (json, tech) {\n json.forEach(function (track) {\n const addedTrack = tech.addRemoteTextTrack(track).track;\n if (!track.src && track.cues) {\n track.cues.forEach(cue => addedTrack.addCue(cue));\n }\n });\n return tech.textTracks();\n};\nvar textTrackConverter = {\n textTracksToJson,\n jsonToTextTracks,\n trackToJson\n};\n\n/**\n * @file modal-dialog.js\n */\n\n/** @import Player from './player' */\n/** @import { ContentDescriptor } from './utils/dom' */\n\nconst MODAL_CLASS_NAME = 'vjs-modal-dialog';\n\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 */\nclass ModalDialog extends Component$1 {\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 {ContentDescriptor} [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 constructor(player, options) {\n super(player, options);\n this.handleKeyDown_ = e => this.handleKeyDown(e);\n this.close_ = e => this.close(e);\n this.opened_ = this.hasBeenOpened_ = this.hasBeenFilled_ = false;\n this.closeable(!this.options_.uncloseable);\n this.content(this.options_.content);\n\n // 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 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 this.el_.appendChild(this.descEl_);\n this.el_.appendChild(this.contentEl_);\n }\n\n /**\n * Create the `ModalDialog`'s DOM element\n *\n * @return {Element}\n * The DOM element that gets created.\n */\n createEl() {\n return super.createEl('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 'aria-live': 'polite'\n });\n }\n dispose() {\n this.contentEl_ = null;\n this.descEl_ = null;\n this.previouslyActiveEl_ = null;\n super.dispose();\n }\n\n /**\n * Builds the default DOM `className`.\n *\n * @return {string}\n * The DOM `className` for this object.\n */\n buildCSSClass() {\n return `${MODAL_CLASS_NAME} vjs-hidden ${super.buildCSSClass()}`;\n }\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 label() {\n return this.localize(this.options_.label || 'Modal Window');\n }\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 description() {\n let desc = this.options_.description || this.localize('This is a modal window.');\n\n // Append a universal closeability message if the modal is closeable.\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 return desc;\n }\n\n /**\n * Opens the modal.\n *\n * @fires ModalDialog#beforemodalopen\n * @fires ModalDialog#modalopen\n */\n open() {\n if (this.opened_) {\n if (this.options_.fillAlways) {\n this.fill();\n }\n return;\n }\n const player = this.player();\n\n /**\n * Fired just before a `ModalDialog` is opened.\n *\n * @event ModalDialog#beforemodalopen\n * @type {Event}\n */\n this.trigger('beforemodalopen');\n this.opened_ = true;\n\n // Fill content if the modal has never opened before and\n // never been filled.\n if (this.options_.fillAlways || !this.hasBeenOpened_ && !this.hasBeenFilled_) {\n this.fill();\n }\n\n // If the player was playing, pause it and take note of its previously\n // playing state.\n this.wasPlaying_ = !player.paused();\n if (this.options_.pauseOnOpen && this.wasPlaying_) {\n player.pause();\n }\n this.on('keydown', this.handleKeyDown_);\n\n // Hide controls and note if they were enabled.\n this.hadControls_ = player.controls();\n player.controls(false);\n this.show();\n this.conditionalFocus_();\n this.el().setAttribute('aria-hidden', 'false');\n\n /**\n * Fired just after a `ModalDialog` is opened.\n *\n * @event ModalDialog#modalopen\n * @type {Event}\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 opened(value) {\n if (typeof value === 'boolean') {\n this[value ? 'open' : 'close']();\n }\n return this.opened_;\n }\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 close() {\n if (!this.opened_) {\n return;\n }\n const player = this.player();\n\n /**\n * Fired just before a `ModalDialog` is closed.\n *\n * @event ModalDialog#beforemodalclose\n * @type {Event}\n */\n this.trigger('beforemodalclose');\n this.opened_ = false;\n if (this.wasPlaying_ && this.options_.pauseOnOpen) {\n player.play();\n }\n this.off('keydown', this.handleKeyDown_);\n if (this.hadControls_) {\n player.controls(true);\n }\n this.hide();\n this.el().setAttribute('aria-hidden', 'true');\n\n /**\n * Fired just after a `ModalDialog` is closed.\n *\n * @event ModalDialog#modalclose\n * @type {Event}\n *\n * @property {boolean} [bubbles=true]\n */\n this.trigger({\n type: 'modalclose',\n bubbles: true\n });\n this.conditionalBlur_();\n if (this.options_.temporary) {\n this.dispose();\n }\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 closeable(value) {\n if (typeof value === 'boolean') {\n const closeable = this.closeable_ = !!value;\n let close = this.getChild('closeButton');\n\n // If this is being made closeable and has no close button, add one.\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 const 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 }\n\n // If this is being made uncloseable and has a close button, remove it.\n if (!closeable && close) {\n this.off(close, 'close', this.close_);\n this.removeChild(close);\n close.dispose();\n }\n }\n return this.closeable_;\n }\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 fill() {\n this.fillWith(this.content());\n }\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 {ContentDescriptor} [content]\n * The same rules apply to this as apply to the `content` option.\n */\n fillWith(content) {\n const contentEl = this.contentEl();\n const parentEl = contentEl.parentNode;\n const nextSiblingEl = contentEl.nextSibling;\n\n /**\n * Fired just before a `ModalDialog` is filled with content.\n *\n * @event ModalDialog#beforemodalfill\n * @type {Event}\n */\n this.trigger('beforemodalfill');\n this.hasBeenFilled_ = true;\n\n // Detach the content element from the DOM before performing\n // manipulation to avoid modifying the live DOM multiple times.\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 {Event}\n */\n this.trigger('modalfill');\n\n // Re-inject the re-filled content element.\n if (nextSiblingEl) {\n parentEl.insertBefore(contentEl, nextSiblingEl);\n } else {\n parentEl.appendChild(contentEl);\n }\n\n // make sure that the close button is last in the dialog DOM\n const closeButton = this.getChild('closeButton');\n if (closeButton) {\n parentEl.appendChild(closeButton.el_);\n }\n\n /**\n * Fired after `ModalDialog` is re-filled with content & close button is appended.\n *\n * @event ModalDialog#aftermodalfill\n * @type {Event}\n */\n this.trigger('aftermodalfill');\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 empty() {\n /**\n * Fired just before a `ModalDialog` is emptied.\n *\n * @event ModalDialog#beforemodalempty\n * @type {Event}\n */\n this.trigger('beforemodalempty');\n emptyEl(this.contentEl());\n\n /**\n * Fired just after a `ModalDialog` is emptied.\n *\n * @event ModalDialog#modalempty\n * @type {Event}\n */\n this.trigger('modalempty');\n }\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 {ContentDescriptor} [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 {ContentDescriptor}\n * The current content of the modal dialog\n */\n content(value) {\n if (typeof value !== 'undefined') {\n this.content_ = value;\n }\n return this.content_;\n }\n\n /**\n * conditionally focus the modal dialog if focus was previously on the player.\n *\n * @private\n */\n conditionalFocus_() {\n const activeEl = document$1.activeElement;\n const playerEl = this.player_.el_;\n this.previouslyActiveEl_ = null;\n if (playerEl.contains(activeEl) || playerEl === activeEl) {\n this.previouslyActiveEl_ = activeEl;\n this.focus();\n }\n }\n\n /**\n * conditionally blur the element and refocus the last focused element\n *\n * @private\n */\n conditionalBlur_() {\n if (this.previouslyActiveEl_) {\n this.previouslyActiveEl_.focus();\n this.previouslyActiveEl_ = null;\n }\n }\n\n /**\n * Keydown handler. Attached when modal is focused.\n *\n * @listens keydown\n */\n handleKeyDown(event) {\n /**\n * Fired a custom keyDown event that bubbles.\n *\n * @event ModalDialog#modalKeydown\n * @type {Event}\n */\n this.trigger({\n type: 'modalKeydown',\n originalEvent: event,\n target: this,\n bubbles: true\n });\n // Do not allow keydowns to reach out of the modal dialog.\n event.stopPropagation();\n if (event.key === 'Escape' && this.closeable()) {\n event.preventDefault();\n this.close();\n return;\n }\n\n // exit early if it isn't a tab key\n if (event.key !== 'Tab') {\n return;\n }\n const focusableEls = this.focusableEls_();\n const activeEl = this.el_.querySelector(':focus');\n let focusIndex;\n for (let i = 0; i < focusableEls.length; i++) {\n if (activeEl === focusableEls[i]) {\n focusIndex = i;\n break;\n }\n }\n if (document$1.activeElement === this.el_) {\n focusIndex = 0;\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 /**\n * get all focusable elements\n *\n * @private\n */\n focusableEls_() {\n const allChildren = this.el_.querySelectorAll('*');\n return Array.prototype.filter.call(allChildren, 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\n/**\n * Default options for `ModalDialog` default options.\n *\n * @type {Object}\n * @private\n */\nModalDialog.prototype.options_ = {\n pauseOnOpen: true,\n temporary: true\n};\nComponent$1.registerComponent('ModalDialog', ModalDialog);\n\n/**\n * @file track-list.js\n */\n\n/** @import Track from './track' */\n\n/**\n * Common functionaliy between {@link TextTrackList}, {@link AudioTrackList}, and\n * {@link VideoTrackList}\n *\n * @extends EventTarget\n */\nclass TrackList extends EventTarget$2 {\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 constructor(tracks = []) {\n super();\n this.tracks_ = [];\n\n /**\n * @memberof TrackList\n * @member {number} length\n * The current number of `Track`s in the this Trackist.\n * @instance\n */\n Object.defineProperty(this, 'length', {\n get() {\n return this.tracks_.length;\n }\n });\n for (let i = 0; i < tracks.length; i++) {\n this.addTrack(tracks[i]);\n }\n }\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 addTrack(track) {\n const index = this.tracks_.length;\n if (!('' + index in this)) {\n Object.defineProperty(this, index, {\n get() {\n return this.tracks_[index];\n }\n });\n }\n\n // Do not add duplicate tracks\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 {Event}\n * @property {Track} track\n * A reference to track that was added.\n */\n this.trigger({\n track,\n type: 'addtrack',\n target: this\n });\n }\n\n /**\n * Triggered when a track label is changed.\n *\n * @event TrackList#addtrack\n * @type {Event}\n * @property {Track} track\n * A reference to track that was added.\n */\n track.labelchange_ = () => {\n this.trigger({\n track,\n type: 'labelchange',\n target: this\n });\n };\n if (isEvented(track)) {\n track.addEventListener('labelchange', track.labelchange_);\n }\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 removeTrack(rtrack) {\n let track;\n for (let i = 0, l = this.length; i < l; i++) {\n if (this[i] === rtrack) {\n track = this[i];\n if (track.off) {\n track.off();\n }\n this.tracks_.splice(i, 1);\n break;\n }\n }\n if (!track) {\n return;\n }\n\n /**\n * Triggered when a track is removed from track list.\n *\n * @event TrackList#removetrack\n * @type {Event}\n * @property {Track} track\n * A reference to track that was removed.\n */\n this.trigger({\n track,\n type: 'removetrack',\n target: this\n });\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 getTrackById(id) {\n let result = null;\n for (let i = 0, l = this.length; i < l; i++) {\n const track = this[i];\n if (track.id === id) {\n result = track;\n break;\n }\n }\n return result;\n }\n}\n\n/**\n * Triggered when a different track is selected/enabled.\n *\n * @event TrackList#change\n * @type {Event}\n */\n\n/**\n * Events that can be called with on + eventName. See {@link EventHandler}.\n *\n * @property {Object} TrackList#allowedEvents_\n * @protected\n */\nTrackList.prototype.allowedEvents_ = {\n change: 'change',\n addtrack: 'addtrack',\n removetrack: 'removetrack',\n labelchange: 'labelchange'\n};\n\n// emulate attribute EventHandler support to allow for feature detection\nfor (const event in TrackList.prototype.allowedEvents_) {\n TrackList.prototype['on' + event] = null;\n}\n\n/**\n * @file audio-track-list.js\n */\n\n/** @import AudioTrack from './audio-track' */\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 */\nconst disableOthers$1 = function (list, track) {\n for (let i = 0; i < list.length; i++) {\n if (!Object.keys(list[i]).length || track.id === list[i].id) {\n continue;\n }\n // another audio track is enabled, disable it\n list[i].enabled = false;\n }\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 */\nclass AudioTrackList extends TrackList {\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 constructor(tracks = []) {\n // make sure only 1 track is enabled\n // sorted from last index to first index\n for (let i = tracks.length - 1; i >= 0; i--) {\n if (tracks[i].enabled) {\n disableOthers$1(tracks, tracks[i]);\n break;\n }\n }\n super(tracks);\n this.changing_ = false;\n }\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 addTrack(track) {\n if (track.enabled) {\n disableOthers$1(this, track);\n }\n super.addTrack(track);\n // native tracks don't have this\n if (!track.addEventListener) {\n return;\n }\n track.enabledChange_ = () => {\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 (this.changing_) {\n return;\n }\n this.changing_ = true;\n disableOthers$1(this, track);\n this.changing_ = false;\n this.trigger('change');\n };\n\n /**\n * @listens AudioTrack#enabledchange\n * @fires TrackList#change\n */\n track.addEventListener('enabledchange', track.enabledChange_);\n }\n removeTrack(rtrack) {\n super.removeTrack(rtrack);\n if (rtrack.removeEventListener && rtrack.enabledChange_) {\n rtrack.removeEventListener('enabledchange', rtrack.enabledChange_);\n rtrack.enabledChange_ = null;\n }\n }\n}\n\n/**\n * @file video-track-list.js\n */\n\n/** @import VideoTrack from './video-track' */\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 */\nconst disableOthers = function (list, track) {\n for (let i = 0; i < list.length; i++) {\n if (!Object.keys(list[i]).length || track.id === list[i].id) {\n continue;\n }\n // another video track is enabled, disable it\n list[i].selected = false;\n }\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 */\nclass VideoTrackList extends TrackList {\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 constructor(tracks = []) {\n // make sure only 1 track is enabled\n // sorted from last index to first index\n for (let i = tracks.length - 1; i >= 0; i--) {\n if (tracks[i].selected) {\n disableOthers(tracks, tracks[i]);\n break;\n }\n }\n super(tracks);\n this.changing_ = false;\n\n /**\n * @member {number} VideoTrackList#selectedIndex\n * The current index of the selected {@link VideoTrack`}.\n */\n Object.defineProperty(this, 'selectedIndex', {\n get() {\n for (let i = 0; i < this.length; i++) {\n if (this[i].selected) {\n return i;\n }\n }\n return -1;\n },\n set() {}\n });\n }\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 addTrack(track) {\n if (track.selected) {\n disableOthers(this, track);\n }\n super.addTrack(track);\n // native tracks don't have this\n if (!track.addEventListener) {\n return;\n }\n track.selectedChange_ = () => {\n if (this.changing_) {\n return;\n }\n this.changing_ = true;\n disableOthers(this, track);\n this.changing_ = false;\n this.trigger('change');\n };\n\n /**\n * @listens VideoTrack#selectedchange\n * @fires TrackList#change\n */\n track.addEventListener('selectedchange', track.selectedChange_);\n }\n removeTrack(rtrack) {\n super.removeTrack(rtrack);\n if (rtrack.removeEventListener && rtrack.selectedChange_) {\n rtrack.removeEventListener('selectedchange', rtrack.selectedChange_);\n rtrack.selectedChange_ = null;\n }\n }\n}\n\n/**\n * @file text-track-list.js\n */\n\n/** @import TextTrack from './text-track' */\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 */\nclass TextTrackList extends TrackList {\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 addTrack(track) {\n super.addTrack(track);\n if (!this.queueChange_) {\n this.queueChange_ = () => this.queueTrigger('change');\n }\n if (!this.triggerSelectedlanguagechange) {\n this.triggerSelectedlanguagechange_ = () => this.trigger('selectedlanguagechange');\n }\n\n /**\n * @listens TextTrack#modechange\n * @fires TrackList#change\n */\n track.addEventListener('modechange', this.queueChange_);\n const nonLanguageTextTrackKind = ['metadata', 'chapters'];\n if (nonLanguageTextTrackKind.indexOf(track.kind) === -1) {\n track.addEventListener('modechange', this.triggerSelectedlanguagechange_);\n }\n }\n removeTrack(rtrack) {\n super.removeTrack(rtrack);\n\n // manually remove the event handlers we added\n if (rtrack.removeEventListener) {\n if (this.queueChange_) {\n rtrack.removeEventListener('modechange', this.queueChange_);\n }\n if (this.selectedlanguagechange_) {\n rtrack.removeEventListener('modechange', this.triggerSelectedlanguagechange_);\n }\n }\n }\n\n /**\n * Creates a serializable array of objects that contains serialized copies\n * of each text track.\n *\n * @return {Object[]} A serializable list of objects for the text track list\n */\n toJSON() {\n return this.tracks_.map(track => track.toJSON());\n }\n}\n\n/**\n * @file html-track-element-list.js\n */\n\n/**\n * The current list of {@link HtmlTrackElement}s.\n */\nclass HtmlTrackElementList {\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 constructor(trackElements = []) {\n this.trackElements_ = [];\n\n /**\n * @memberof HtmlTrackElementList\n * @member {number} length\n * The current number of `Track`s in the this Trackist.\n * @instance\n */\n Object.defineProperty(this, 'length', {\n get() {\n return this.trackElements_.length;\n }\n });\n for (let i = 0, length = trackElements.length; i < length; i++) {\n this.addTrackElement_(trackElements[i]);\n }\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 addTrackElement_(trackElement) {\n const index = this.trackElements_.length;\n if (!('' + index in this)) {\n Object.defineProperty(this, index, {\n get() {\n return this.trackElements_[index];\n }\n });\n }\n\n // Do not add duplicate elements\n if (this.trackElements_.indexOf(trackElement) === -1) {\n this.trackElements_.push(trackElement);\n }\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 getTrackElementByTrack_(track) {\n let trackElement_;\n for (let 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 return trackElement_;\n }\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 removeTrackElement_(trackElement) {\n for (let 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 if (typeof this.trackElements_[i].off === 'function') {\n this.trackElements_[i].off();\n }\n this.trackElements_.splice(i, 1);\n break;\n }\n }\n }\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 */\nclass TextTrackCueList {\n /**\n * Create an instance of this class..\n *\n * @param {Array} cues\n * A list of cues to be initialized with\n */\n constructor(cues) {\n TextTrackCueList.prototype.setCues_.call(this, cues);\n\n /**\n * @memberof TextTrackCueList\n * @member {number} length\n * The current number of `TextTrackCue`s in the TextTrackCueList.\n * @instance\n */\n Object.defineProperty(this, 'length', {\n get() {\n return this.length_;\n }\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 setCues_(cues) {\n const oldLength = this.length || 0;\n let i = 0;\n const l = cues.length;\n this.cues_ = cues;\n this.length_ = cues.length;\n const defineProp = function (index) {\n if (!('' + index in this)) {\n Object.defineProperty(this, '' + index, {\n get() {\n return this.cues_[index];\n }\n });\n }\n };\n if (oldLength < l) {\n i = oldLength;\n for (; i < l; i++) {\n defineProp.call(this, i);\n }\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 getCueById(id) {\n let result = null;\n for (let i = 0, l = this.length; i < l; i++) {\n const cue = this[i];\n if (cue.id === id) {\n result = cue;\n break;\n }\n }\n return result;\n }\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 */\nconst VideoTrackKind = {\n alternative: 'alternative',\n captions: 'captions',\n main: 'main',\n sign: 'sign',\n subtitles: 'subtitles',\n commentary: 'commentary'\n};\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 */\nconst AudioTrackKind = {\n 'alternative': 'alternative',\n 'descriptions': 'descriptions',\n 'main': 'main',\n 'main-desc': 'main-desc',\n 'translation': 'translation',\n 'commentary': 'commentary'\n};\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 */\nconst TextTrackKind = {\n subtitles: 'subtitles',\n captions: 'captions',\n descriptions: 'descriptions',\n chapters: 'chapters',\n metadata: 'metadata'\n};\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 */\nconst TextTrackMode = {\n disabled: 'disabled',\n hidden: 'hidden',\n showing: 'showing'\n};\n\n/**\n * @file track.js\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 */\nclass Track extends EventTarget$2 {\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 constructor(options = {}) {\n super();\n const trackProps = {\n id: options.id || 'vjs_track_' + newGUID(),\n kind: options.kind || '',\n language: options.language || ''\n };\n let label = options.label || '';\n\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 for (const key in trackProps) {\n Object.defineProperty(this, key, {\n get() {\n return trackProps[key];\n },\n set() {}\n });\n }\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 Object.defineProperty(this, 'label', {\n get() {\n return label;\n },\n set(newLabel) {\n if (newLabel !== label) {\n label = newLabel;\n\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 {Event}\n */\n this.trigger('labelchange');\n }\n }\n });\n }\n}\n\n/**\n * @file url.js\n * @module url\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}\n * An object of url details\n */\nconst parseUrl = function (url) {\n return new URL(url, document$1.baseURI);\n};\n\n/**\n * Get absolute version of relative URL.\n *\n * @function\n * @param {string} url\n * URL to make absolute\n *\n * @return {string}\n * Absolute URL\n */\nconst getAbsoluteURL = function (url) {\n return new URL(url, document$1.baseURI).href;\n};\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 */\nconst getFileExtension = function (path) {\n if (typeof path === 'string') {\n const cleanPath = path.split('?')[0].replace(/\\/+$/, '');\n const match = cleanPath.match(/\\.([^.\\/]+)$/);\n return match ? match[1].toLowerCase() : '';\n }\n return '';\n};\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 {URL} [winLoc]\n * the domain to check the url against, defaults to window.location\n *\n * @return {boolean}\n * Whether it is a cross domain request or not.\n */\nconst isCrossOrigin = function (url, winLoc = window$1.location) {\n return parseUrl(url).origin !== winLoc.origin;\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 * @file text-track.js\n */\n\n/** @import Tech from '../tech/tech' */\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 */\nconst parseCues = function (srcContent, track) {\n const parser = new window$1.WebVTT.Parser(window$1, window$1.vttjs, window$1.WebVTT.StringDecoder());\n const errors = [];\n parser.oncue = function (cue) {\n track.addCue(cue);\n };\n parser.onparsingerror = function (error) {\n errors.push(error);\n };\n parser.onflush = function () {\n track.trigger({\n type: 'loadeddata',\n target: track\n });\n };\n parser.parse(srcContent);\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 errors.forEach(error => log$1.error(error));\n if (window$1.console && window$1.console.groupEnd) {\n window$1.console.groupEnd();\n }\n }\n parser.flush();\n};\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 */\nconst loadTrack = function (src, track) {\n const opts = {\n uri: src\n };\n const crossOrigin = isCrossOrigin(src);\n if (crossOrigin) {\n opts.cors = crossOrigin;\n }\n const withCredentials = track.tech_.crossOrigin() === 'use-credentials';\n if (withCredentials) {\n opts.withCredentials = withCredentials;\n }\n XHR(opts, bind_(this, function (err, response, responseBody) {\n if (err) {\n return log$1.error(err, response);\n }\n track.loaded_ = true;\n\n // 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 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'], event => {\n if (event.type === 'vttjserror') {\n log$1.error(`vttjs failed to load, stopping trying to process ${track.src}`);\n return;\n }\n return parseCues(responseBody, track);\n });\n }\n } else {\n parseCues(responseBody, track);\n }\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 */\nclass TextTrack extends Track {\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 constructor(options = {}) {\n if (!options.tech) {\n throw new Error('A tech was not provided.');\n }\n const settings = merge$1(options, {\n kind: TextTrackKind[options.kind] || 'subtitles',\n language: options.language || options.srclang || ''\n });\n let mode = TextTrackMode[settings.mode] || 'disabled';\n const default_ = settings.default;\n if (settings.kind === 'metadata' || settings.kind === 'chapters') {\n mode = 'hidden';\n }\n super(settings);\n this.tech_ = settings.tech;\n this.cues_ = [];\n this.activeCues_ = [];\n this.preload_ = this.tech_.preloadTextTracks !== false;\n const cues = new TextTrackCueList(this.cues_);\n const activeCues = new TextTrackCueList(this.activeCues_);\n let changed = false;\n this.timeupdateHandler = bind_(this, function (event = {}) {\n if (this.tech_.isDisposed()) {\n return;\n }\n if (!this.tech_.isReady_) {\n if (event.type !== 'timeupdate') {\n this.rvf_ = this.tech_.requestVideoFrameCallback(this.timeupdateHandler);\n }\n return;\n }\n\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 this.activeCues = this.activeCues;\n if (changed) {\n this.trigger('cuechange');\n changed = false;\n }\n if (event.type !== 'timeupdate') {\n this.rvf_ = this.tech_.requestVideoFrameCallback(this.timeupdateHandler);\n }\n });\n const disposeHandler = () => {\n this.stopTracking();\n };\n this.tech_.one('dispose', disposeHandler);\n if (mode !== 'disabled') {\n this.startTracking();\n }\n Object.defineProperties(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() {\n return default_;\n },\n set() {}\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() {\n return mode;\n },\n set(newMode) {\n if (!TextTrackMode[newMode]) {\n return;\n }\n if (mode === newMode) {\n return;\n }\n mode = newMode;\n if (!this.preload_ && mode !== 'disabled' && this.cues.length === 0) {\n // On-demand load.\n loadTrack(this.src, this);\n }\n this.stopTracking();\n if (mode !== 'disabled') {\n this.startTracking();\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 {Event}\n */\n this.trigger('modechange');\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() {\n if (!this.loaded_) {\n return null;\n }\n return cues;\n },\n set() {}\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() {\n if (!this.loaded_) {\n return null;\n }\n\n // nothing to do\n if (this.cues.length === 0) {\n return activeCues;\n }\n const ct = this.tech_.currentTime();\n const active = [];\n for (let i = 0, l = this.cues.length; i < l; i++) {\n const cue = this.cues[i];\n if (cue.startTime <= ct && cue.endTime >= ct) {\n active.push(cue);\n }\n }\n changed = false;\n if (active.length !== this.activeCues_.length) {\n changed = true;\n } else {\n for (let i = 0; i < active.length; i++) {\n if (this.activeCues_.indexOf(active[i]) === -1) {\n changed = true;\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() {}\n }\n });\n if (settings.src) {\n this.src = settings.src;\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 if (this.preload_ || settings.kind !== 'subtitles' && settings.kind !== 'captions') {\n loadTrack(this.src, this);\n }\n } else {\n this.loaded_ = true;\n }\n }\n startTracking() {\n // More precise cues based on requestVideoFrameCallback with a requestAnimationFram fallback\n this.rvf_ = this.tech_.requestVideoFrameCallback(this.timeupdateHandler);\n // Also listen to timeupdate in case rVFC/rAF stops (window in background, audio in video el)\n this.tech_.on('timeupdate', this.timeupdateHandler);\n }\n stopTracking() {\n if (this.rvf_) {\n this.tech_.cancelVideoFrameCallback(this.rvf_);\n this.rvf_ = undefined;\n }\n this.tech_.off('timeupdate', this.timeupdateHandler);\n }\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 addCue(originalCue) {\n let cue = originalCue;\n\n // Testing if the cue is a VTTCue in a way that survives minification\n if (!('getCueAsHTML' in cue)) {\n cue = new window$1.vttjs.VTTCue(originalCue.startTime, originalCue.endTime, originalCue.text);\n for (const prop in originalCue) {\n if (!(prop in cue)) {\n cue[prop] = originalCue[prop];\n }\n }\n\n // make sure that `id` is copied over\n cue.id = originalCue.id;\n cue.originalCue_ = originalCue;\n }\n const tracks = this.tech_.textTracks();\n for (let i = 0; i < tracks.length; i++) {\n if (tracks[i] !== this) {\n tracks[i].removeCue(cue);\n }\n }\n this.cues_.push(cue);\n this.cues.setCues_(this.cues_);\n }\n\n /**\n * Creates a copy of the text track and makes it serializable\n * by removing circular dependencies.\n *\n * @return {Object} The track information as a serializable object\n */\n toJSON() {\n return textTrackConverter.trackToJson(this);\n }\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 removeCue(removeCue) {\n let i = this.cues_.length;\n while (i--) {\n const cue = this.cues_[i];\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\n/**\n * cuechange - One or more cues in the track have become active or stopped being active.\n *\n * @protected\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 */\nclass AudioTrack extends Track {\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 constructor(options = {}) {\n const settings = merge$1(options, {\n kind: AudioTrackKind[options.kind] || ''\n });\n super(settings);\n let enabled = false;\n\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 Object.defineProperty(this, 'enabled', {\n get() {\n return enabled;\n },\n set(newEnabled) {\n // an invalid or unchanged value\n if (typeof newEnabled !== 'boolean' || newEnabled === enabled) {\n return;\n }\n enabled = newEnabled;\n\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 {Event}\n */\n this.trigger('enabledchange');\n }\n });\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 if (settings.enabled) {\n this.enabled = settings.enabled;\n }\n this.loaded_ = true;\n }\n}\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 */\nclass VideoTrack extends Track {\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 constructor(options = {}) {\n const settings = merge$1(options, {\n kind: VideoTrackKind[options.kind] || ''\n });\n super(settings);\n let selected = false;\n\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 Object.defineProperty(this, 'selected', {\n get() {\n return selected;\n },\n set(newSelected) {\n // an invalid or unchanged value\n if (typeof newSelected !== 'boolean' || newSelected === selected) {\n return;\n }\n selected = newSelected;\n\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 {Event}\n */\n this.trigger('selectedchange');\n }\n });\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 if (settings.selected) {\n this.selected = settings.selected;\n }\n }\n}\n\n/**\n * @file html-track-element.js\n */\n\n/** @import Tech from '../tech/tech' */\n\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 */\nclass HTMLTrackElement extends EventTarget$2 {\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 * 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 constructor(options = {}) {\n super();\n let readyState;\n const 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(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() {\n return readyState;\n }\n },\n /**\n * @memberof HTMLTrackElement\n * @member {TextTrack} track\n * The underlying TextTrack object.\n * @instance\n *\n */\n track: {\n get() {\n return track;\n }\n }\n });\n readyState = HTMLTrackElement.NONE;\n\n /**\n * @listens TextTrack#loadeddata\n * @fires HTMLTrackElement#load\n */\n track.addEventListener('loadeddata', () => {\n readyState = HTMLTrackElement.LOADED;\n this.trigger({\n type: 'load',\n target: this\n });\n });\n }\n}\n\n/**\n * @protected\n */\nHTMLTrackElement.prototype.allowedEvents_ = {\n load: 'load'\n};\n\n/**\n * The text track not loaded state.\n *\n * @type {number}\n * @static\n */\nHTMLTrackElement.NONE = 0;\n\n/**\n * The text track loading state.\n *\n * @type {number}\n * @static\n */\nHTMLTrackElement.LOADING = 1;\n\n/**\n * The text track loaded state.\n *\n * @type {number}\n * @static\n */\nHTMLTrackElement.LOADED = 2;\n\n/**\n * The text track failed to load state.\n *\n * @type {number}\n * @static\n */\nHTMLTrackElement.ERROR = 3;\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\nconst 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});\nconst 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};\nconst ALL = Object.assign({}, NORMAL, REMOTE);\nREMOTE.names = Object.keys(REMOTE);\nNORMAL.names = Object.keys(NORMAL);\nALL.names = [].concat(REMOTE.names).concat(NORMAL.names);\n\n/**\n * @file tech.js\n */\n\n/** @import { TimeRange } from '../utils/time' */\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} 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 */\nfunction createTrackHelper(self, kind, label, language, options = {}) {\n const tracks = self.textTracks();\n options.kind = kind;\n if (label) {\n options.label = label;\n }\n if (language) {\n options.language = language;\n }\n options.tech = self;\n const track = new ALL.text.TrackClass(options);\n tracks.addTrack(track);\n return track;\n}\n\n/**\n * This is the base class for media playback technology controllers, such as\n * {@link HTML5}\n *\n * @extends Component\n */\nclass Tech extends Component$1 {\n /**\n * Create an instance of this Tech.\n *\n * @param {Object} [options]\n * The key/value store of player options.\n *\n * @param {Function} [ready]\n * Callback function to call when the `HTML5` Tech is ready.\n */\n constructor(options = {}, ready = function () {}) {\n // we don't want the tech to report user activity automatically.\n // This is done manually in addControlsListeners\n options.reportTouchActivity = false;\n super(null, options, ready);\n this.onDurationChange_ = e => this.onDurationChange(e);\n this.trackProgress_ = e => this.trackProgress(e);\n this.trackCurrentTime_ = e => this.trackCurrentTime(e);\n this.stopTrackingCurrentTime_ = e => this.stopTrackingCurrentTime(e);\n this.disposeSourceHandler_ = e => this.disposeSourceHandler(e);\n this.queuedHanders_ = new Set();\n\n // keep track of whether the current source has played at all to\n // implement a very limited played()\n this.hasStarted_ = false;\n this.on('playing', function () {\n this.hasStarted_ = true;\n });\n this.on('loadstart', function () {\n this.hasStarted_ = false;\n });\n ALL.names.forEach(name => {\n const props = ALL[name];\n if (options && options[props.getterName]) {\n this[props.privateName] = options[props.getterName];\n }\n });\n\n // Manually track progress in cases where the browser/tech doesn't report it.\n if (!this.featuresProgressEvents) {\n this.manualProgressOn();\n }\n\n // Manually track timeupdates in cases where the browser/tech doesn't report it.\n if (!this.featuresTimeupdateEvents) {\n this.manualTimeUpdatesOn();\n }\n ['Text', 'Audio', 'Video'].forEach(track => {\n if (options[`native${track}Tracks`] === false) {\n this[`featuresNative${track}Tracks`] = false;\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 if (!this.featuresNativeTextTracks) {\n this.emulateTextTracks();\n }\n this.preloadTextTracks = options.preloadTextTracks !== false;\n this.autoRemoteTextTracks_ = new ALL.text.ListClass();\n this.initTrackListeners();\n\n // Turn on component tap events only if not using native controls\n if (!options.nativeControlsForTouch) {\n this.emitTapEvents();\n }\n if (this.constructor) {\n this.name_ = this.constructor.name || 'Unknown Tech';\n }\n }\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 triggerSourceset(src) {\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', () => this.setTimeout(() => this.triggerSourceset(src), 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 {Event}\n */\n this.trigger({\n src,\n type: 'sourceset'\n });\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 manualProgressOn() {\n this.on('durationchange', this.onDurationChange_);\n this.manualProgress = true;\n\n // Trigger progress watching when a source begins loading\n this.one('ready', this.trackProgress_);\n }\n\n /**\n * Turn off the polyfill for `progress` events that was created in\n * {@link Tech#manualProgressOn}\n */\n manualProgressOff() {\n this.manualProgress = false;\n this.stopTrackingProgress();\n this.off('durationchange', this.onDurationChange_);\n }\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 {Event} event\n * The `ready` event that caused this to run.\n *\n * @listens Tech#ready\n * @fires Tech#progress\n */\n 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\n const numBufferedPercent = this.bufferedPercent();\n if (this.bufferedPercent_ !== numBufferedPercent) {\n /**\n * See {@link Player#progress}\n *\n * @event Tech#progress\n * @type {Event}\n */\n this.trigger('progress');\n }\n this.bufferedPercent_ = numBufferedPercent;\n if (numBufferedPercent === 1) {\n this.stopTrackingProgress();\n }\n }), 500);\n }\n\n /**\n * Update our internal duration on a `durationchange` event by calling\n * {@link Tech#duration}.\n *\n * @param {Event} event\n * The `durationchange` event that caused this to run.\n *\n * @listens Tech#durationchange\n */\n onDurationChange(event) {\n this.duration_ = this.duration();\n }\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 buffered() {\n return createTimeRanges$1(0, 0);\n }\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 bufferedPercent() {\n return bufferedPercent(this.buffered(), this.duration_);\n }\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 stopTrackingProgress() {\n this.clearInterval(this.progressInterval);\n }\n\n /**\n * Polyfill the `timeupdate` event for browsers that don't support it.\n *\n * @see {@link Tech#trackCurrentTime}\n */\n manualTimeUpdatesOn() {\n this.manualTimeUpdates = true;\n this.on('play', this.trackCurrentTime_);\n this.on('pause', this.stopTrackingCurrentTime_);\n }\n\n /**\n * Turn off the polyfill for `timeupdate` events that was created in\n * {@link Tech#manualTimeUpdatesOn}\n */\n manualTimeUpdatesOff() {\n this.manualTimeUpdates = false;\n this.stopTrackingCurrentTime();\n this.off('play', this.trackCurrentTime_);\n this.off('pause', this.stopTrackingCurrentTime_);\n }\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 trackCurrentTime() {\n if (this.currentTimeInterval) {\n this.stopTrackingCurrentTime();\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 {Event}\n */\n this.trigger({\n type: 'timeupdate',\n target: this,\n manuallyTriggered: true\n });\n\n // 42 = 24 fps // 250 is what Webkit uses // FF uses 15\n }, 250);\n }\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 stopTrackingCurrentTime() {\n this.clearInterval(this.currentTimeInterval);\n\n // #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 this.trigger({\n type: 'timeupdate',\n target: this,\n manuallyTriggered: true\n });\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 dispose() {\n // clear out all tracks because we can't reuse them between techs\n this.clearTracks(NORMAL.names);\n\n // Turn off any manual progress or timeupdate tracking\n if (this.manualProgress) {\n this.manualProgressOff();\n }\n if (this.manualTimeUpdates) {\n this.manualTimeUpdatesOff();\n }\n super.dispose();\n }\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 clearTracks(types) {\n types = [].concat(types);\n // clear out all tracks because we can't reuse them between techs\n types.forEach(type => {\n const list = this[`${type}Tracks`]() || [];\n let i = list.length;\n while (i--) {\n const track = list[i];\n if (type === 'text') {\n this.removeRemoteTextTrack(track);\n }\n list.removeTrack(track);\n }\n });\n }\n\n /**\n * Remove any TextTracks added via addRemoteTextTrack that are\n * flagged for automatic garbage collection\n */\n cleanupAutoTextTracks() {\n const list = this.autoRemoteTextTracks_ || [];\n let i = list.length;\n while (i--) {\n const track = list[i];\n this.removeRemoteTextTrack(track);\n }\n }\n\n /**\n * Reset the tech, which will removes all sources and reset the internal readyState.\n *\n * @abstract\n */\n reset() {}\n\n /**\n * Get the value of `crossOrigin` from the tech.\n *\n * @abstract\n *\n * @see {Html5#crossOrigin}\n */\n crossOrigin() {}\n\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 setCrossOrigin() {}\n\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 error(err) {\n if (err !== undefined) {\n this.error_ = new MediaError(err);\n this.trigger('error');\n }\n return this.error_;\n }\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 played() {\n if (this.hasStarted_) {\n return createTimeRanges$1(0, 0);\n }\n return createTimeRanges$1();\n }\n\n /**\n * Start playback\n *\n * @abstract\n *\n * @see {Html5#play}\n */\n play() {}\n\n /**\n * Set whether we are scrubbing or not\n *\n * @abstract\n * @param {boolean} _isScrubbing\n * - true for we are currently scrubbing\n * - false for we are no longer scrubbing\n *\n * @see {Html5#setScrubbing}\n */\n setScrubbing(_isScrubbing) {}\n\n /**\n * Get whether we are scrubbing or not\n *\n * @abstract\n *\n * @see {Html5#scrubbing}\n */\n scrubbing() {}\n\n /**\n * Causes a manual time update to occur if {@link Tech#manualTimeUpdatesOn} was\n * previously called.\n *\n * @param {number} _seconds\n * Set the current time of the media to this.\n * @fires Tech#timeupdate\n */\n setCurrentTime(_seconds) {\n // improve the accuracy of manual timeupdates\n if (this.manualTimeUpdates) {\n /**\n * A manual `timeupdate` event.\n *\n * @event Tech#timeupdate\n * @type {Event}\n */\n this.trigger({\n type: 'timeupdate',\n target: this,\n manuallyTriggered: true\n });\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 initTrackListeners() {\n /**\n * Triggered when tracks are added or removed on the Tech {@link AudioTrackList}\n *\n * @event Tech#audiotrackchange\n * @type {Event}\n */\n\n /**\n * Triggered when tracks are added or removed on the Tech {@link VideoTrackList}\n *\n * @event Tech#videotrackchange\n * @type {Event}\n */\n\n /**\n * Triggered when tracks are added or removed on the Tech {@link TextTrackList}\n *\n * @event Tech#texttrackchange\n * @type {Event}\n */\n NORMAL.names.forEach(name => {\n const props = NORMAL[name];\n const trackListChanges = () => {\n this.trigger(`${name}trackchange`);\n };\n const tracks = this[props.getterName]();\n tracks.addEventListener('removetrack', trackListChanges);\n tracks.addEventListener('addtrack', trackListChanges);\n this.on('dispose', () => {\n tracks.removeEventListener('removetrack', trackListChanges);\n tracks.removeEventListener('addtrack', trackListChanges);\n });\n });\n }\n\n /**\n * Emulate TextTracks using vtt.js if necessary\n *\n * @fires Tech#vttjsloaded\n * @fires Tech#vttjserror\n */\n addWebVttScript_() {\n if (window$1.WebVTT) {\n return;\n }\n\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 if (document$1.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 }\n\n // load vtt.js via the script location option or the cdn of no location was\n // passed in\n const script = document$1.createElement('script');\n script.src = this.options_['vtt.js'] || 'https://vjs.zencdn.net/vttjs/0.14.1/vtt.min.js';\n script.onload = () => {\n /**\n * Fired when vtt.js is loaded.\n *\n * @event Tech#vttjsloaded\n * @type {Event}\n */\n this.trigger('vttjsloaded');\n };\n script.onerror = () => {\n /**\n * Fired when vtt.js was not loaded due to an error\n *\n * @event Tech#vttjsloaded\n * @type {Event}\n */\n this.trigger('vttjserror');\n };\n this.on('dispose', () => {\n script.onload = null;\n script.onerror = null;\n });\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 window$1.WebVTT = true;\n this.el().parentNode.appendChild(script);\n } else {\n this.ready(this.addWebVttScript_);\n }\n }\n\n /**\n * Emulate texttracks\n *\n */\n emulateTextTracks() {\n const tracks = this.textTracks();\n const remoteTracks = this.remoteTextTracks();\n const handleAddTrack = e => tracks.addTrack(e.track);\n const handleRemoveTrack = e => tracks.removeTrack(e.track);\n remoteTracks.on('addtrack', handleAddTrack);\n remoteTracks.on('removetrack', handleRemoveTrack);\n this.addWebVttScript_();\n const updateDisplay = () => this.trigger('texttrackchange');\n const textTracksChanges = () => {\n updateDisplay();\n for (let i = 0; i < tracks.length; i++) {\n const track = tracks[i];\n track.removeEventListener('cuechange', updateDisplay);\n if (track.mode === 'showing') {\n track.addEventListener('cuechange', updateDisplay);\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 for (let i = 0; i < tracks.length; i++) {\n const track = tracks[i];\n track.removeEventListener('cuechange', updateDisplay);\n }\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 addTextTrack(kind, label, language) {\n if (!kind) {\n throw new Error('TextTrack kind is required but was not provided');\n }\n return createTrackHelper(this, kind, label, language);\n }\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 createRemoteTextTrack(options) {\n const track = merge$1(options, {\n tech: this\n });\n return new REMOTE.remoteTextEl.TrackClass(track);\n }\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=false]\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 */\n addRemoteTextTrack(options = {}, manualCleanup) {\n const htmlTrackElement = this.createRemoteTextTrack(options);\n if (typeof manualCleanup !== 'boolean') {\n manualCleanup = false;\n }\n\n // store HTMLTrackElement and TextTrack to remote list\n this.remoteTextTrackEls().addTrackElement_(htmlTrackElement);\n this.remoteTextTracks().addTrack(htmlTrackElement.track);\n if (manualCleanup === false) {\n // create the TextTrackList if it doesn't exist\n this.ready(() => this.autoRemoteTextTracks_.addTrack(htmlTrackElement.track));\n }\n return htmlTrackElement;\n }\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 removeRemoteTextTrack(track) {\n const trackElement = this.remoteTextTrackEls().getTrackElementByTrack_(track);\n\n // remove HTMLTrackElement and TextTrack from remote list\n this.remoteTextTrackEls().removeTrackElement_(trackElement);\n this.remoteTextTracks().removeTrack(track);\n this.autoRemoteTextTracks_.removeTrack(track);\n }\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 getVideoPlaybackQuality() {\n return {};\n }\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 requestPictureInPicture() {\n return Promise.reject();\n }\n\n /**\n * A method to check for the value of the 'disablePictureInPicture'