{"version":3,"sources":["webpack://blueprint-webpack-boilerplate/./node_modules/@babel/runtime/helpers/extends.js","webpack://blueprint-webpack-boilerplate/./node_modules/@videojs/xhr/lib/http-handler.js","webpack://blueprint-webpack-boilerplate/./node_modules/@videojs/xhr/lib/index.js","webpack://blueprint-webpack-boilerplate/./node_modules/@videojs/xhr/lib/interceptors.js","webpack://blueprint-webpack-boilerplate/./node_modules/@videojs/xhr/lib/retry.js","webpack://blueprint-webpack-boilerplate/./node_modules/@xmldom/xmldom/lib/conventions.js","webpack://blueprint-webpack-boilerplate/./node_modules/@xmldom/xmldom/lib/dom-parser.js","webpack://blueprint-webpack-boilerplate/./node_modules/@xmldom/xmldom/lib/dom.js","webpack://blueprint-webpack-boilerplate/./node_modules/@xmldom/xmldom/lib/entities.js","webpack://blueprint-webpack-boilerplate/./node_modules/@xmldom/xmldom/lib/index.js","webpack://blueprint-webpack-boilerplate/./node_modules/@xmldom/xmldom/lib/sax.js","webpack://blueprint-webpack-boilerplate/./node_modules/global/document.js","webpack://blueprint-webpack-boilerplate/./node_modules/global/window.js","webpack://blueprint-webpack-boilerplate/./node_modules/is-function/index.js","webpack://blueprint-webpack-boilerplate/./node_modules/jquery-validation/dist/jquery.validate.js","webpack://blueprint-webpack-boilerplate/./node_modules/jquery/dist/jquery.js","webpack://blueprint-webpack-boilerplate/./node_modules/mux.js/lib/tools/parse-sidx.js","webpack://blueprint-webpack-boilerplate/./node_modules/mux.js/lib/utils/clock.js","webpack://blueprint-webpack-boilerplate/./node_modules/mux.js/lib/utils/numbers.js","webpack://blueprint-webpack-boilerplate/./node_modules/select2/dist/js/select2.js","webpack://blueprint-webpack-boilerplate/./node_modules/videojs-vtt.js/lib/browser-index.js","webpack://blueprint-webpack-boilerplate/./node_modules/videojs-vtt.js/lib/vtt.js","webpack://blueprint-webpack-boilerplate/./node_modules/videojs-vtt.js/lib/vttcue.js","webpack://blueprint-webpack-boilerplate/./node_modules/videojs-vtt.js/lib/vttregion.js","webpack://blueprint-webpack-boilerplate/webpack/bootstrap","webpack://blueprint-webpack-boilerplate/webpack/runtime/compat get default export","webpack://blueprint-webpack-boilerplate/webpack/runtime/define property getters","webpack://blueprint-webpack-boilerplate/webpack/runtime/global","webpack://blueprint-webpack-boilerplate/webpack/runtime/hasOwnProperty shorthand","webpack://blueprint-webpack-boilerplate/./src/js/layouts/header.js","webpack://blueprint-webpack-boilerplate/./src/js/components/tabs.js","webpack://blueprint-webpack-boilerplate/./node_modules/ssr-window/ssr-window.esm.js","webpack://blueprint-webpack-boilerplate/./node_modules/dom7/dom7.esm.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/utils/dom.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/utils/get-support.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/utils/get-device.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/utils/get-browser.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/utils/utils.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/modules/resize/resize.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/modules/observer/observer.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/events/onTouchStart.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/events/onTouchMove.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/events/onTouchEnd.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/events/onResize.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/events/onClick.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/events/onScroll.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/events/index.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/check-overflow/index.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/defaults.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/core-class.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/modular.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/events-emitter.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/update/index.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/update/updateSize.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/update/updateSlides.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/update/updateAutoHeight.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/update/updateSlidesOffset.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/update/updateSlidesProgress.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/update/updateProgress.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/update/updateSlidesClasses.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/update/updateActiveIndex.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/update/updateClickedSlide.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/translate/index.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/translate/getTranslate.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/translate/setTranslate.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/translate/minTranslate.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/translate/maxTranslate.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/translate/translateTo.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/transition/index.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/transition/setTransition.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/transition/transitionStart.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/transition/transitionEnd.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/slide/index.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/slide/slideTo.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/slide/slideToLoop.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/slide/slideNext.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/slide/slidePrev.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/slide/slideReset.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/slide/slideToClosest.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/slide/slideToClickedSlide.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/loop/index.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/loop/loopCreate.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/loop/loopFix.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/loop/loopDestroy.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/grab-cursor/index.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/grab-cursor/setGrabCursor.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/grab-cursor/unsetGrabCursor.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/manipulation/index.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/manipulation/appendSlide.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/manipulation/prependSlide.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/manipulation/addSlide.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/manipulation/removeSlide.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/manipulation/removeAllSlides.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/breakpoints/index.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/breakpoints/setBreakpoint.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/breakpoints/getBreakpoint.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/classes/index.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/classes/addClasses.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/classes/removeClasses.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/images/index.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/images/loadImage.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/core/images/preloadImages.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/navigation/navigation.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/pagination/pagination.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/autoplay/autoplay.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/effect-fade/effect-fade.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/controller/controller.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/thumbs/thumbs.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/keyboard/keyboard.js","webpack://blueprint-webpack-boilerplate/./node_modules/swiper/esm/components/mousewheel/mousewheel.js","webpack://blueprint-webpack-boilerplate/./src/js/components/slider.js","webpack://blueprint-webpack-boilerplate/./src/js/components/accordion.js","webpack://blueprint-webpack-boilerplate/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://blueprint-webpack-boilerplate/./node_modules/@videojs/vhs-utils/es/resolve-url.js","webpack://blueprint-webpack-boilerplate/./node_modules/@videojs/vhs-utils/es/stream.js","webpack://blueprint-webpack-boilerplate/./node_modules/@videojs/vhs-utils/es/decode-b64-to-uint8-array.js","webpack://blueprint-webpack-boilerplate/./node_modules/m3u8-parser/dist/m3u8-parser.es.js","webpack://blueprint-webpack-boilerplate/./node_modules/@videojs/vhs-utils/es/codecs.js","webpack://blueprint-webpack-boilerplate/./node_modules/@videojs/vhs-utils/es/media-types.js","webpack://blueprint-webpack-boilerplate/./node_modules/@videojs/vhs-utils/es/byte-helpers.js","webpack://blueprint-webpack-boilerplate/./node_modules/mpd-parser/dist/mpd-parser.es.js","webpack://blueprint-webpack-boilerplate/./node_modules/@videojs/vhs-utils/es/media-groups.js","webpack://blueprint-webpack-boilerplate/./node_modules/@videojs/vhs-utils/es/mp4-helpers.js","webpack://blueprint-webpack-boilerplate/./node_modules/@videojs/vhs-utils/es/id3-helpers.js","webpack://blueprint-webpack-boilerplate/./node_modules/@videojs/vhs-utils/es/opus-helpers.js","webpack://blueprint-webpack-boilerplate/./node_modules/@videojs/vhs-utils/es/ebml-helpers.js","webpack://blueprint-webpack-boilerplate/./node_modules/@videojs/vhs-utils/es/nal-helpers.js","webpack://blueprint-webpack-boilerplate/./node_modules/@videojs/vhs-utils/es/containers.js","webpack://blueprint-webpack-boilerplate/./node_modules/video.js/dist/video.es.js","webpack://blueprint-webpack-boilerplate/./src/js/components/chartJs.js","webpack://blueprint-webpack-boilerplate/./node_modules/@fancyapps/ui/dist/index.esm.js","webpack://blueprint-webpack-boilerplate/./src/js/components/customSelect.js","webpack://blueprint-webpack-boilerplate/./src/js/utils/browser.js","webpack://blueprint-webpack-boilerplate/./src/js/components/inputMoney.js","webpack://blueprint-webpack-boilerplate/./src/js/components/tooltip.js","webpack://blueprint-webpack-boilerplate/./src/js/utils/constants.js","webpack://blueprint-webpack-boilerplate/./src/js/utils/loadPage.js","webpack://blueprint-webpack-boilerplate/./src/js/utils/validation.js","webpack://blueprint-webpack-boilerplate/./src/js/index.js"],"names":["_extends","module","exports","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","__esModule","apply","this","window","callback","decodeResponseBody","err","response","responseBody","statusCode","cause","TextDecoder","charset","contentTypeHeader","headers","toLowerCase","split","reduce","contentType","_contentType$split","type","value","trim","decode","e","String","fromCharCode","Uint8Array","isFunction","InterceptorsStorage","RetryManager","initParams","uri","options","params","createXHR","_createXHR","Error","requestType","requestInterceptorsStorage","getIsEnabled","requestInterceptorPayload","url","body","metadata","retry","timeout","updatedPayload","execute","called","getBody","undefined","xhr","responseText","responseType","responseXML","firefoxBugTakenEffect","documentElement","nodeName","getXml","isJson","JSON","parse","errorFunc","evt","clearTimeout","timeoutTimer","retryTimeout","aborted","retryManager","shouldRetry","responseInterceptorsStorage","responseInterceptorPayload","failureResponse","responseUrl","responseURL","_updatedPayload","setTimeout","moveToNextAttempt","getCurrentFuzzedDelay","loadFunc","status","useXDR","method","rawRequest","getAllResponseHeaders","result","forEach","row","index","indexOf","slice","Array","isArray","push","parseHeaders","_updatedPayload2","cors","XDomainRequest","XMLHttpRequest","data","sync","json","stringify","onreadystatechange","readyState","onload","onerror","onprogress","onabort","ontimeout","open","username","password","withCredentials","abort","code","setRequestHeader","obj","isEmpty","beforeSend","send","httpHandler","default","array","iterator","forEachArray","toUpperCase","_arrayLikeToArray","arr","len","arr2","typeToInterceptorsMap_","Map","enabled_","_proto","enable","disable","reset","addInterceptor","interceptor","has","set","Set","interceptorsSet","get","add","removeInterceptor","delete","clearInterceptorsByType","clear","size","getForType","payload","_step","_iterator","o","allowArrayLike","it","Symbol","next","minLen","n","toString","constructor","name","from","test","_unsupportedIterableToArray","done","TypeError","_createForOfIteratorHelperLoose","maxAttempts_","delayFactor_","fuzzFactor_","initialDelay_","getMaxAttempts","setMaxAttempts","maxAttempts","getDelayFactor","setDelayFactor","delayFactor","getFuzzFactor","setFuzzFactor","fuzzFactor","getInitialDelay","setInitialDelay","initialDelay","createRetry","_temp","_ref","Retry","currentDelay_","currentAttempt_","_proto2","delayDelta","getCurrentDelay","getCurrentMinPossibleDelay","getCurrentMaxPossibleDelay","lowValue","highValue","Math","random","freeze","object","oc","MIME_TYPE","HTML","isHTML","XML_APPLICATION","XML_TEXT","XML_XHTML_APPLICATION","XML_SVG_IMAGE","NAMESPACE","SVG","XML","XMLNS","find","list","predicate","ac","item","conventions","dom","entities","sax","DOMImplementation","ParseError","XMLReader","normalizeLineEndings","input","replace","DOMParser","locator","DOMHandler","cdata","position","node","lineNumber","columnNumber","_locator","l","systemId","_toString","chars","start","substr","java","lang","appendElement","hander","currentElement","appendChild","doc","parseFromString","mimeType","domBuilder","errorHandler","defaultNSMap","xmlns","entityMap","HTML_ENTITIES","XML_ENTITIES","setDocumentLocator","errorImpl","isCallback","Function","build","fn","msg","buildErrorHandler","xml","normalize","error","startDocument","createDocument","documentURI","startElement","namespaceURI","localName","qName","attrs","el","createElementNS","getURI","getValue","attr","getQName","createAttributeNS","getLocator","nodeValue","setAttributeNode","endElement","current","tagName","parentNode","startPrefixMapping","prefix","endPrefixMapping","processingInstruction","ins","createProcessingInstruction","ignorableWhitespace","ch","characters","charNode","createCDATASection","createTextNode","skippedEntity","endDocument","comment","comm","createComment","startCDATA","endCDATA","startDTD","publicId","impl","implementation","createDocumentType","dt","doctype","warning","console","warn","fatalError","notEmptyString","orderedSetReducer","element","toOrderedSet","filter","splitOnASCIIWhitespace","keys","copy","src","dest","p","Class","Super","pt","t","NodeType","ELEMENT_NODE","ATTRIBUTE_NODE","TEXT_NODE","CDATA_SECTION_NODE","ENTITY_REFERENCE_NODE","ENTITY_NODE","PROCESSING_INSTRUCTION_NODE","COMMENT_NODE","DOCUMENT_NODE","DOCUMENT_TYPE_NODE","DOCUMENT_FRAGMENT_NODE","NOTATION_NODE","ExceptionCode","ExceptionMessage","HIERARCHY_REQUEST_ERR","INDEX_SIZE_ERR","DOMSTRING_SIZE_ERR","NOT_FOUND_ERR","WRONG_DOCUMENT_ERR","INVALID_CHARACTER_ERR","NO_DATA_ALLOWED_ERR","NO_MODIFICATION_ALLOWED_ERR","INUSE_ATTRIBUTE_ERR","NOT_SUPPORTED_ERR","DOMException","message","captureStackTrace","NodeList","LiveNodeList","refresh","_node","_refresh","_updateLiveList","inc","_inc","ownerDocument","ls","__set__","$$length","NamedNodeMap","_findNodeIndex","_addNamedNode","newAttr","oldAttr","ownerElement","_onRemoveAttribute","_nsMap","_onAddAttribute","_removeNamedNode","lastIndex","Node","_xmlEncoder","c","charCodeAt","_visitNode","firstChild","nextSibling","Document","remove","_onUpdateChild","newChild","cs","childNodes","child","_removeChild","previous","previousSibling","lastChild","isDocTypeNode","nodeType","isElementNode","isTextNode","isElementInsertionPossible","parentChildNodes","docTypeNode","isElementReplacementPossible","assertPreInsertionValidityInDocument","parent","nodeChildNodes","nodeChildElements","parentElementChild","assertPreReplacementValidityInDocument","_insertBefore","_inDocumentAssertion","hasValidParentNodeType","hasInsertableNodeType","assertPreInsertionValidity1to5","cp","removeChild","newFirst","newLast","pre","Element","Attr","CharacterData","Text","Comment","CDATASection","DocumentType","Notation","Entity","EntityReference","DocumentFragment","ProcessingInstruction","XMLSerializer","nodeSerializeToString","isHtml","nodeFilter","buf","refNode","lookupPrefix","visibleNamespaces","namespace","serializeToString","join","needNamespaceDefine","ns","addSerializedAttribute","qualifiedName","attributes","prefixedNodeName","defaultNS","ai","nsi","pubid","sysid","sub","internalSubset","importNode","deep","node2","cloneNode","v","attrs2","_ownerElement","INVALID_STATE_ERR","SYNTAX_ERR","INVALID_MODIFICATION_ERR","NAMESPACE_ERR","INVALID_ACCESS_ERR","getNamedItem","setNamedItem","setNamedItemNS","getNamedItemNS","removeNamedItem","removeNamedItemNS","hasFeature","feature","version","root","insertBefore","refChild","replaceChild","oldChild","hasChildNodes","appendData","isSupported","hasAttributes","map","lookupNamespaceURI","isDefaultNamespace","importedNode","getElementById","id","rtv","getAttribute","getElementsByClassName","classNames","classNamesSet","base","nodeClassNames","matches","nodeClassNamesSet","every","createElement","createDocumentFragment","createAttribute","specified","createEntityReference","pl","hasAttribute","getAttributeNode","setAttribute","removeAttribute","removeAttributeNode","_appendSingleChild","setAttributeNodeNS","removeAttributeNS","old","getAttributeNodeNS","hasAttributeNS","getAttributeNS","setAttributeNS","getElementsByTagName","getElementsByTagNameNS","substringData","offset","count","substring","text","insertData","replaceData","deleteData","splitText","newText","newNode","defineProperty","getTextContent","amp","apos","gt","lt","quot","Aacute","aacute","Abreve","abreve","acd","acE","Acirc","acirc","acute","Acy","acy","AElig","aelig","af","Afr","afr","Agrave","agrave","alefsym","aleph","Alpha","alpha","Amacr","amacr","amalg","AMP","And","and","andand","andd","andslope","andv","ang","ange","angle","angmsd","angmsdaa","angmsdab","angmsdac","angmsdad","angmsdae","angmsdaf","angmsdag","angmsdah","angrt","angrtvb","angrtvbd","angsph","angst","angzarr","Aogon","aogon","Aopf","aopf","ap","apacir","apE","ape","apid","ApplyFunction","approx","approxeq","Aring","aring","Ascr","ascr","Assign","ast","asymp","asympeq","Atilde","atilde","Auml","auml","awconint","awint","backcong","backepsilon","backprime","backsim","backsimeq","Backslash","Barv","barvee","Barwed","barwed","barwedge","bbrk","bbrktbrk","bcong","Bcy","bcy","bdquo","becaus","Because","because","bemptyv","bepsi","bernou","Bernoullis","Beta","beta","beth","between","Bfr","bfr","bigcap","bigcirc","bigcup","bigodot","bigoplus","bigotimes","bigsqcup","bigstar","bigtriangledown","bigtriangleup","biguplus","bigvee","bigwedge","bkarow","blacklozenge","blacksquare","blacktriangle","blacktriangledown","blacktriangleleft","blacktriangleright","blank","blk12","blk14","blk34","block","bne","bnequiv","bNot","bnot","Bopf","bopf","bot","bottom","bowtie","boxbox","boxDL","boxDl","boxdL","boxdl","boxDR","boxDr","boxdR","boxdr","boxH","boxh","boxHD","boxHd","boxhD","boxhd","boxHU","boxHu","boxhU","boxhu","boxminus","boxplus","boxtimes","boxUL","boxUl","boxuL","boxul","boxUR","boxUr","boxuR","boxur","boxV","boxv","boxVH","boxVh","boxvH","boxvh","boxVL","boxVl","boxvL","boxvl","boxVR","boxVr","boxvR","boxvr","bprime","Breve","breve","brvbar","Bscr","bscr","bsemi","bsim","bsime","bsol","bsolb","bsolhsub","bull","bullet","bump","bumpE","bumpe","Bumpeq","bumpeq","Cacute","cacute","Cap","cap","capand","capbrcup","capcap","capcup","capdot","CapitalDifferentialD","caps","caret","caron","Cayleys","ccaps","Ccaron","ccaron","Ccedil","ccedil","Ccirc","ccirc","Cconint","ccups","ccupssm","Cdot","cdot","cedil","Cedilla","cemptyv","cent","CenterDot","centerdot","Cfr","cfr","CHcy","chcy","check","checkmark","Chi","chi","cir","circ","circeq","circlearrowleft","circlearrowright","circledast","circledcirc","circleddash","CircleDot","circledR","circledS","CircleMinus","CirclePlus","CircleTimes","cirE","cire","cirfnint","cirmid","cirscir","ClockwiseContourIntegral","CloseCurlyDoubleQuote","CloseCurlyQuote","clubs","clubsuit","Colon","colon","Colone","colone","coloneq","comma","commat","comp","compfn","complement","complexes","cong","congdot","Congruent","Conint","conint","ContourIntegral","Copf","copf","coprod","Coproduct","COPY","copysr","CounterClockwiseContourIntegral","crarr","Cross","cross","Cscr","cscr","csub","csube","csup","csupe","ctdot","cudarrl","cudarrr","cuepr","cuesc","cularr","cularrp","Cup","cup","cupbrcap","CupCap","cupcap","cupcup","cupdot","cupor","cups","curarr","curarrm","curlyeqprec","curlyeqsucc","curlyvee","curlywedge","curren","curvearrowleft","curvearrowright","cuvee","cuwed","cwconint","cwint","cylcty","Dagger","dagger","daleth","Darr","dArr","darr","dash","Dashv","dashv","dbkarow","dblac","Dcaron","dcaron","Dcy","dcy","DD","dd","ddagger","ddarr","DDotrahd","ddotseq","deg","Del","Delta","delta","demptyv","dfisht","Dfr","dfr","dHar","dharl","dharr","DiacriticalAcute","DiacriticalDot","DiacriticalDoubleAcute","DiacriticalGrave","DiacriticalTilde","diam","Diamond","diamond","diamondsuit","diams","die","DifferentialD","digamma","disin","div","divide","divideontimes","divonx","DJcy","djcy","dlcorn","dlcrop","dollar","Dopf","dopf","Dot","dot","DotDot","doteq","doteqdot","DotEqual","dotminus","dotplus","dotsquare","doublebarwedge","DoubleContourIntegral","DoubleDot","DoubleDownArrow","DoubleLeftArrow","DoubleLeftRightArrow","DoubleLeftTee","DoubleLongLeftArrow","DoubleLongLeftRightArrow","DoubleLongRightArrow","DoubleRightArrow","DoubleRightTee","DoubleUpArrow","DoubleUpDownArrow","DoubleVerticalBar","DownArrow","Downarrow","downarrow","DownArrowBar","DownArrowUpArrow","DownBreve","downdownarrows","downharpoonleft","downharpoonright","DownLeftRightVector","DownLeftTeeVector","DownLeftVector","DownLeftVectorBar","DownRightTeeVector","DownRightVector","DownRightVectorBar","DownTee","DownTeeArrow","drbkarow","drcorn","drcrop","Dscr","dscr","DScy","dscy","dsol","Dstrok","dstrok","dtdot","dtri","dtrif","duarr","duhar","dwangle","DZcy","dzcy","dzigrarr","Eacute","eacute","easter","Ecaron","ecaron","ecir","Ecirc","ecirc","ecolon","Ecy","ecy","eDDot","Edot","eDot","edot","ee","efDot","Efr","efr","eg","Egrave","egrave","egs","egsdot","elinters","ell","els","elsdot","Emacr","emacr","empty","emptyset","EmptySmallSquare","emptyv","EmptyVerySmallSquare","emsp","emsp13","emsp14","ENG","eng","ensp","Eogon","eogon","Eopf","eopf","epar","eparsl","eplus","epsi","Epsilon","epsilon","epsiv","eqcirc","eqcolon","eqsim","eqslantgtr","eqslantless","Equal","equals","EqualTilde","equest","Equilibrium","equiv","equivDD","eqvparsl","erarr","erDot","Escr","escr","esdot","Esim","esim","Eta","eta","ETH","eth","Euml","euml","euro","excl","exist","Exists","expectation","ExponentialE","exponentiale","fallingdotseq","Fcy","fcy","female","ffilig","fflig","ffllig","Ffr","ffr","filig","FilledSmallSquare","FilledVerySmallSquare","fjlig","flat","fllig","fltns","fnof","Fopf","fopf","ForAll","forall","fork","forkv","Fouriertrf","fpartint","frac12","frac13","frac14","frac15","frac16","frac18","frac23","frac25","frac34","frac35","frac38","frac45","frac56","frac58","frac78","frasl","frown","Fscr","fscr","gacute","Gamma","gamma","Gammad","gammad","gap","Gbreve","gbreve","Gcedil","Gcirc","gcirc","Gcy","gcy","Gdot","gdot","gE","ge","gEl","gel","geq","geqq","geqslant","ges","gescc","gesdot","gesdoto","gesdotol","gesl","gesles","Gfr","gfr","Gg","gg","ggg","gimel","GJcy","gjcy","gl","gla","glE","glj","gnap","gnapprox","gnE","gne","gneq","gneqq","gnsim","Gopf","gopf","grave","GreaterEqual","GreaterEqualLess","GreaterFullEqual","GreaterGreater","GreaterLess","GreaterSlantEqual","GreaterTilde","Gscr","gscr","gsim","gsime","gsiml","Gt","GT","gtcc","gtcir","gtdot","gtlPar","gtquest","gtrapprox","gtrarr","gtrdot","gtreqless","gtreqqless","gtrless","gtrsim","gvertneqq","gvnE","Hacek","hairsp","half","hamilt","HARDcy","hardcy","hArr","harr","harrcir","harrw","Hat","hbar","Hcirc","hcirc","hearts","heartsuit","hellip","hercon","Hfr","hfr","HilbertSpace","hksearow","hkswarow","hoarr","homtht","hookleftarrow","hookrightarrow","Hopf","hopf","horbar","HorizontalLine","Hscr","hscr","hslash","Hstrok","hstrok","HumpDownHump","HumpEqual","hybull","hyphen","Iacute","iacute","ic","Icirc","icirc","Icy","icy","Idot","IEcy","iecy","iexcl","iff","Ifr","ifr","Igrave","igrave","ii","iiiint","iiint","iinfin","iiota","IJlig","ijlig","Im","Imacr","imacr","image","ImaginaryI","imagline","imagpart","imath","imof","imped","Implies","in","incare","infin","infintie","inodot","Int","int","intcal","integers","Integral","intercal","Intersection","intlarhk","intprod","InvisibleComma","InvisibleTimes","IOcy","iocy","Iogon","iogon","Iopf","iopf","Iota","iota","iprod","iquest","Iscr","iscr","isin","isindot","isinE","isins","isinsv","isinv","Itilde","itilde","Iukcy","iukcy","Iuml","iuml","Jcirc","jcirc","Jcy","jcy","Jfr","jfr","jmath","Jopf","jopf","Jscr","jscr","Jsercy","jsercy","Jukcy","jukcy","Kappa","kappa","kappav","Kcedil","kcedil","Kcy","kcy","Kfr","kfr","kgreen","KHcy","khcy","KJcy","kjcy","Kopf","kopf","Kscr","kscr","lAarr","Lacute","lacute","laemptyv","lagran","Lambda","lambda","Lang","langd","langle","lap","Laplacetrf","laquo","Larr","lArr","larr","larrb","larrbfs","larrfs","larrhk","larrlp","larrpl","larrsim","larrtl","lat","lAtail","latail","late","lates","lBarr","lbarr","lbbrk","lbrace","lbrack","lbrke","lbrksld","lbrkslu","Lcaron","lcaron","Lcedil","lcedil","lceil","lcub","Lcy","lcy","ldca","ldquo","ldquor","ldrdhar","ldrushar","ldsh","lE","le","LeftAngleBracket","LeftArrow","Leftarrow","leftarrow","LeftArrowBar","LeftArrowRightArrow","leftarrowtail","LeftCeiling","LeftDoubleBracket","LeftDownTeeVector","LeftDownVector","LeftDownVectorBar","LeftFloor","leftharpoondown","leftharpoonup","leftleftarrows","LeftRightArrow","Leftrightarrow","leftrightarrow","leftrightarrows","leftrightharpoons","leftrightsquigarrow","LeftRightVector","LeftTee","LeftTeeArrow","LeftTeeVector","leftthreetimes","LeftTriangle","LeftTriangleBar","LeftTriangleEqual","LeftUpDownVector","LeftUpTeeVector","LeftUpVector","LeftUpVectorBar","LeftVector","LeftVectorBar","lEg","leg","leq","leqq","leqslant","les","lescc","lesdot","lesdoto","lesdotor","lesg","lesges","lessapprox","lessdot","lesseqgtr","lesseqqgtr","LessEqualGreater","LessFullEqual","LessGreater","lessgtr","LessLess","lesssim","LessSlantEqual","LessTilde","lfisht","lfloor","Lfr","lfr","lg","lgE","lHar","lhard","lharu","lharul","lhblk","LJcy","ljcy","Ll","ll","llarr","llcorner","Lleftarrow","llhard","lltri","Lmidot","lmidot","lmoust","lmoustache","lnap","lnapprox","lnE","lne","lneq","lneqq","lnsim","loang","loarr","lobrk","LongLeftArrow","Longleftarrow","longleftarrow","LongLeftRightArrow","Longleftrightarrow","longleftrightarrow","longmapsto","LongRightArrow","Longrightarrow","longrightarrow","looparrowleft","looparrowright","lopar","Lopf","lopf","loplus","lotimes","lowast","lowbar","LowerLeftArrow","LowerRightArrow","loz","lozenge","lozf","lpar","lparlt","lrarr","lrcorner","lrhar","lrhard","lrm","lrtri","lsaquo","Lscr","lscr","Lsh","lsh","lsim","lsime","lsimg","lsqb","lsquo","lsquor","Lstrok","lstrok","Lt","LT","ltcc","ltcir","ltdot","lthree","ltimes","ltlarr","ltquest","ltri","ltrie","ltrif","ltrPar","lurdshar","luruhar","lvertneqq","lvnE","macr","male","malt","maltese","mapsto","mapstodown","mapstoleft","mapstoup","marker","mcomma","Mcy","mcy","mdash","mDDot","measuredangle","MediumSpace","Mellintrf","Mfr","mfr","mho","micro","mid","midast","midcir","middot","minus","minusb","minusd","minusdu","MinusPlus","mlcp","mldr","mnplus","models","Mopf","mopf","mp","Mscr","mscr","mstpos","Mu","mu","multimap","mumap","nabla","Nacute","nacute","nang","nap","napE","napid","napos","napprox","natur","natural","naturals","nbsp","nbump","nbumpe","ncap","Ncaron","ncaron","Ncedil","ncedil","ncong","ncongdot","ncup","Ncy","ncy","ndash","ne","nearhk","neArr","nearr","nearrow","nedot","NegativeMediumSpace","NegativeThickSpace","NegativeThinSpace","NegativeVeryThinSpace","nequiv","nesear","nesim","NestedGreaterGreater","NestedLessLess","NewLine","nexist","nexists","Nfr","nfr","ngE","nge","ngeq","ngeqq","ngeqslant","nges","nGg","ngsim","nGt","ngt","ngtr","nGtv","nhArr","nharr","nhpar","ni","nis","nisd","niv","NJcy","njcy","nlArr","nlarr","nldr","nlE","nle","nLeftarrow","nleftarrow","nLeftrightarrow","nleftrightarrow","nleq","nleqq","nleqslant","nles","nless","nLl","nlsim","nLt","nlt","nltri","nltrie","nLtv","nmid","NoBreak","NonBreakingSpace","Nopf","nopf","Not","not","NotCongruent","NotCupCap","NotDoubleVerticalBar","NotElement","NotEqual","NotEqualTilde","NotExists","NotGreater","NotGreaterEqual","NotGreaterFullEqual","NotGreaterGreater","NotGreaterLess","NotGreaterSlantEqual","NotGreaterTilde","NotHumpDownHump","NotHumpEqual","notin","notindot","notinE","notinva","notinvb","notinvc","NotLeftTriangle","NotLeftTriangleBar","NotLeftTriangleEqual","NotLess","NotLessEqual","NotLessGreater","NotLessLess","NotLessSlantEqual","NotLessTilde","NotNestedGreaterGreater","NotNestedLessLess","notni","notniva","notnivb","notnivc","NotPrecedes","NotPrecedesEqual","NotPrecedesSlantEqual","NotReverseElement","NotRightTriangle","NotRightTriangleBar","NotRightTriangleEqual","NotSquareSubset","NotSquareSubsetEqual","NotSquareSuperset","NotSquareSupersetEqual","NotSubset","NotSubsetEqual","NotSucceeds","NotSucceedsEqual","NotSucceedsSlantEqual","NotSucceedsTilde","NotSuperset","NotSupersetEqual","NotTilde","NotTildeEqual","NotTildeFullEqual","NotTildeTilde","NotVerticalBar","npar","nparallel","nparsl","npart","npolint","npr","nprcue","npre","nprec","npreceq","nrArr","nrarr","nrarrc","nrarrw","nRightarrow","nrightarrow","nrtri","nrtrie","nsc","nsccue","nsce","Nscr","nscr","nshortmid","nshortparallel","nsim","nsime","nsimeq","nsmid","nspar","nsqsube","nsqsupe","nsub","nsubE","nsube","nsubset","nsubseteq","nsubseteqq","nsucc","nsucceq","nsup","nsupE","nsupe","nsupset","nsupseteq","nsupseteqq","ntgl","Ntilde","ntilde","ntlg","ntriangleleft","ntrianglelefteq","ntriangleright","ntrianglerighteq","Nu","nu","num","numero","numsp","nvap","nVDash","nVdash","nvDash","nvdash","nvge","nvgt","nvHarr","nvinfin","nvlArr","nvle","nvlt","nvltrie","nvrArr","nvrtrie","nvsim","nwarhk","nwArr","nwarr","nwarrow","nwnear","Oacute","oacute","oast","ocir","Ocirc","ocirc","Ocy","ocy","odash","Odblac","odblac","odiv","odot","odsold","OElig","oelig","ofcir","Ofr","ofr","ogon","Ograve","ograve","ogt","ohbar","ohm","oint","olarr","olcir","olcross","oline","olt","Omacr","omacr","Omega","omega","Omicron","omicron","omid","ominus","Oopf","oopf","opar","OpenCurlyDoubleQuote","OpenCurlyQuote","operp","oplus","Or","or","orarr","ord","order","orderof","ordf","ordm","origof","oror","orslope","orv","oS","Oscr","oscr","Oslash","oslash","osol","Otilde","otilde","Otimes","otimes","otimesas","Ouml","ouml","ovbar","OverBar","OverBrace","OverBracket","OverParenthesis","par","para","parallel","parsim","parsl","part","PartialD","Pcy","pcy","percnt","period","permil","perp","pertenk","Pfr","pfr","Phi","phi","phiv","phmmat","phone","Pi","pi","pitchfork","piv","planck","planckh","plankv","plus","plusacir","plusb","pluscir","plusdo","plusdu","pluse","PlusMinus","plusmn","plussim","plustwo","pm","Poincareplane","pointint","Popf","popf","pound","Pr","pr","prap","prcue","prE","prec","precapprox","preccurlyeq","Precedes","PrecedesEqual","PrecedesSlantEqual","PrecedesTilde","preceq","precnapprox","precneqq","precnsim","precsim","Prime","prime","primes","prnap","prnE","prnsim","prod","Product","profalar","profline","profsurf","prop","Proportion","Proportional","propto","prsim","prurel","Pscr","pscr","Psi","psi","puncsp","Qfr","qfr","qint","Qopf","qopf","qprime","Qscr","qscr","quaternions","quatint","quest","questeq","QUOT","rAarr","race","Racute","racute","radic","raemptyv","Rang","rang","rangd","range","rangle","raquo","Rarr","rArr","rarr","rarrap","rarrb","rarrbfs","rarrc","rarrfs","rarrhk","rarrlp","rarrpl","rarrsim","Rarrtl","rarrtl","rarrw","rAtail","ratail","ratio","rationals","RBarr","rBarr","rbarr","rbbrk","rbrace","rbrack","rbrke","rbrksld","rbrkslu","Rcaron","rcaron","Rcedil","rcedil","rceil","rcub","Rcy","rcy","rdca","rdldhar","rdquo","rdquor","rdsh","Re","real","realine","realpart","reals","rect","REG","reg","ReverseElement","ReverseEquilibrium","ReverseUpEquilibrium","rfisht","rfloor","Rfr","rfr","rHar","rhard","rharu","rharul","Rho","rho","rhov","RightAngleBracket","RightArrow","Rightarrow","rightarrow","RightArrowBar","RightArrowLeftArrow","rightarrowtail","RightCeiling","RightDoubleBracket","RightDownTeeVector","RightDownVector","RightDownVectorBar","RightFloor","rightharpoondown","rightharpoonup","rightleftarrows","rightleftharpoons","rightrightarrows","rightsquigarrow","RightTee","RightTeeArrow","RightTeeVector","rightthreetimes","RightTriangle","RightTriangleBar","RightTriangleEqual","RightUpDownVector","RightUpTeeVector","RightUpVector","RightUpVectorBar","RightVector","RightVectorBar","ring","risingdotseq","rlarr","rlhar","rlm","rmoust","rmoustache","rnmid","roang","roarr","robrk","ropar","Ropf","ropf","roplus","rotimes","RoundImplies","rpar","rpargt","rppolint","rrarr","Rrightarrow","rsaquo","Rscr","rscr","Rsh","rsh","rsqb","rsquo","rsquor","rthree","rtimes","rtri","rtrie","rtrif","rtriltri","RuleDelayed","ruluhar","rx","Sacute","sacute","sbquo","Sc","sc","scap","Scaron","scaron","sccue","scE","sce","Scedil","scedil","Scirc","scirc","scnap","scnE","scnsim","scpolint","scsim","Scy","scy","sdot","sdotb","sdote","searhk","seArr","searr","searrow","sect","semi","seswar","setminus","setmn","sext","Sfr","sfr","sfrown","sharp","SHCHcy","shchcy","SHcy","shcy","ShortDownArrow","ShortLeftArrow","shortmid","shortparallel","ShortRightArrow","ShortUpArrow","shy","Sigma","sigma","sigmaf","sigmav","sim","simdot","sime","simeq","simg","simgE","siml","simlE","simne","simplus","simrarr","slarr","SmallCircle","smallsetminus","smashp","smeparsl","smid","smile","smt","smte","smtes","SOFTcy","softcy","sol","solb","solbar","Sopf","sopf","spades","spadesuit","spar","sqcap","sqcaps","sqcup","sqcups","Sqrt","sqsub","sqsube","sqsubset","sqsubseteq","sqsup","sqsupe","sqsupset","sqsupseteq","squ","Square","square","SquareIntersection","SquareSubset","SquareSubsetEqual","SquareSuperset","SquareSupersetEqual","SquareUnion","squarf","squf","srarr","Sscr","sscr","ssetmn","ssmile","sstarf","Star","star","starf","straightepsilon","straightphi","strns","Sub","subdot","subE","sube","subedot","submult","subnE","subne","subplus","subrarr","Subset","subset","subseteq","subseteqq","SubsetEqual","subsetneq","subsetneqq","subsim","subsub","subsup","succ","succapprox","succcurlyeq","Succeeds","SucceedsEqual","SucceedsSlantEqual","SucceedsTilde","succeq","succnapprox","succneqq","succnsim","succsim","SuchThat","Sum","sum","sung","Sup","sup","sup1","sup2","sup3","supdot","supdsub","supE","supe","supedot","Superset","SupersetEqual","suphsol","suphsub","suplarr","supmult","supnE","supne","supplus","Supset","supset","supseteq","supseteqq","supsetneq","supsetneqq","supsim","supsub","supsup","swarhk","swArr","swarr","swarrow","swnwar","szlig","Tab","Tau","tau","tbrk","Tcaron","tcaron","Tcedil","tcedil","Tcy","tcy","tdot","telrec","Tfr","tfr","there4","Therefore","therefore","Theta","theta","thetasym","thetav","thickapprox","thicksim","ThickSpace","thinsp","ThinSpace","thkap","thksim","THORN","thorn","Tilde","tilde","TildeEqual","TildeFullEqual","TildeTilde","times","timesb","timesbar","timesd","tint","toea","top","topbot","topcir","Topf","topf","topfork","tosa","tprime","TRADE","trade","triangle","triangledown","triangleleft","trianglelefteq","triangleq","triangleright","trianglerighteq","tridot","trie","triminus","TripleDot","triplus","trisb","tritime","trpezium","Tscr","tscr","TScy","tscy","TSHcy","tshcy","Tstrok","tstrok","twixt","twoheadleftarrow","twoheadrightarrow","Uacute","uacute","Uarr","uArr","uarr","Uarrocir","Ubrcy","ubrcy","Ubreve","ubreve","Ucirc","ucirc","Ucy","ucy","udarr","Udblac","udblac","udhar","ufisht","Ufr","ufr","Ugrave","ugrave","uHar","uharl","uharr","uhblk","ulcorn","ulcorner","ulcrop","ultri","Umacr","umacr","uml","UnderBar","UnderBrace","UnderBracket","UnderParenthesis","Union","UnionPlus","Uogon","uogon","Uopf","uopf","UpArrow","Uparrow","uparrow","UpArrowBar","UpArrowDownArrow","UpDownArrow","Updownarrow","updownarrow","UpEquilibrium","upharpoonleft","upharpoonright","uplus","UpperLeftArrow","UpperRightArrow","Upsi","upsi","upsih","Upsilon","upsilon","UpTee","UpTeeArrow","upuparrows","urcorn","urcorner","urcrop","Uring","uring","urtri","Uscr","uscr","utdot","Utilde","utilde","utri","utrif","uuarr","Uuml","uuml","uwangle","vangrt","varepsilon","varkappa","varnothing","varphi","varpi","varpropto","vArr","varr","varrho","varsigma","varsubsetneq","varsubsetneqq","varsupsetneq","varsupsetneqq","vartheta","vartriangleleft","vartriangleright","Vbar","vBar","vBarv","Vcy","vcy","VDash","Vdash","vDash","vdash","Vdashl","Vee","vee","veebar","veeeq","vellip","Verbar","verbar","Vert","vert","VerticalBar","VerticalLine","VerticalSeparator","VerticalTilde","VeryThinSpace","Vfr","vfr","vltri","vnsub","vnsup","Vopf","vopf","vprop","vrtri","Vscr","vscr","vsubnE","vsubne","vsupnE","vsupne","Vvdash","vzigzag","Wcirc","wcirc","wedbar","Wedge","wedge","wedgeq","weierp","Wfr","wfr","Wopf","wopf","wp","wr","wreath","Wscr","wscr","xcap","xcirc","xcup","xdtri","Xfr","xfr","xhArr","xharr","Xi","xi","xlArr","xlarr","xmap","xnis","xodot","Xopf","xopf","xoplus","xotime","xrArr","xrarr","Xscr","xscr","xsqcup","xuplus","xutri","xvee","xwedge","Yacute","yacute","YAcy","yacy","Ycirc","ycirc","Ycy","ycy","yen","Yfr","yfr","YIcy","yicy","Yopf","yopf","Yscr","yscr","YUcy","yucy","Yuml","yuml","Zacute","zacute","Zcaron","zcaron","Zcy","zcy","Zdot","zdot","zeetrf","ZeroWidthSpace","Zeta","zeta","Zfr","zfr","ZHcy","zhcy","zigrarr","Zopf","zopf","Zscr","zscr","zwj","zwnj","nameStartChar","nameChar","RegExp","tagNamePattern","copyLocator","f","parseElementStartPart","currentNSMap","entityReplacer","addAttribute","qname","startIndex","attributeNames","addValue","attrName","s","charAt","setTagName","closed","match","localNSMap","a","nsp","nsPrefix","_copy","parseHtmlSpecialContent","elStartEnd","elEndStart","fixSelfClosed","closeMap","pos","lastIndexOf","parseDCC","end","matchs","exec","lastMatch","endDTD","parseInstruction","ElementAttributes","defaultNSMapCopy","k","surrogate1","surrogate2","fixedFromCharCode","parseInt","appendText","xt","m","lineEnd","linePattern","lineStart","parseStack","tagStart","config","pop","endMatch","locator2","max","getLocalName","doccy","topLevel","g","minDoc","document","win","self","string","alert","confirm","prompt","$","extend","validate","validator","settings","onsubmit","on","event","submitButton","currentTarget","hasClass","cancelSubmit","handle","hidden","submitHandler","formSubmitted","val","appendTo","currentForm","debug","preventDefault","form","pendingRequest","focusInvalid","valid","errorList","is","each","concat","rules","command","argument","staticRules","existingRules","param","filtered","isContentEditable","closest","normalizeRule","messages","normalizeRules","classRules","attributeRules","dataRules","required","remote","str","expr","pseudos","filled","unchecked","defaults","init","format","args","makeArray","unshift","groups","errorClass","pendingClass","validClass","errorElement","focusCleanup","errorContainer","errorLabelContainer","ignore","ignoreTitle","onfocusin","lastActive","unhighlight","hideThese","errorsFor","onfocusout","checkable","submitted","optional","onkeyup","which","elementValue","inArray","keyCode","invalid","onclick","highlight","findByName","addClass","removeClass","setDefaults","email","date","dateISO","number","digits","equalTo","maxlength","minlength","rangelength","min","step","autoCreateRanges","labelContainer","errorContext","containers","valueCache","pending","delegate","eventType","invalidHandler","checkForm","errorMap","triggerHandler","showErrors","prepareForm","elements","currentElements","rs","group","cleanElement","clean","checkElement","validationTargetFor","prepareElement","testgroup","numberOfInvalids","toHide","errors","successList","grep","defaultShowErrors","resetForm","hideErrors","removeData","removeAttr","resetElements","objectLength","addWrapper","hide","findLastActive","trigger","rulesCache","selector","resetInternals","toShow","idx","$element","validity","badInput","rule","normalizer","rulesCount","dependencyMismatch","abortRequest","parameters","methods","formatAndAdd","log","customDataMessage","customMessage","findDefined","defaultMessage","title","theregex","toToggle","wrapper","showLabel","success","validElements","show","invalidElements","place","errorID","elementID","idOrName","describedBy","escapeHtml","html","wrap","append","errorPlacement","insertAfter","parents","escapeCssMeta","describer","getLength","depend","dependTypes","elementAjaxPort","startRequest","stopRequest","port","ajaxAbort","previousValue","destroy","off","classRuleSettings","creditcard","addClassRules","className","classes","normalizeAttributeRule","Number","isNaN","depends","keepRule","parameter","parts","transformed","addMethod","Date","decimals","errorMessage","re","decimalPlaces","toInt","round","pow","optionDataString","originalMessage","ajax","mode","dataType","context","pendingRequests","ajaxPrefilter","_","ajaxSettings","global","factory","w","noGlobal","getProto","getPrototypeOf","class2type","hasOwn","fnToString","ObjectFunctionString","support","isWindow","preservedScriptAttributes","nonce","noModule","DOMEval","script","head","toType","rhtmlSuffix","jQuery","isArrayLike","elem","jquery","toArray","pushStack","elems","ret","merge","prevObject","first","eq","last","even","_elem","odd","j","sort","splice","copyIsArray","clone","isPlainObject","expando","isReady","noop","proto","Ctor","isEmptyObject","globalEval","textContent","results","isXMLDoc","docElem","second","invert","callbackExpect","arg","guid","_i","whitespace","rtrimCSS","contains","b","bup","compareDocumentPosition","rcssescape","fcssescape","asCodePoint","escapeSelector","sel","preferredDoc","pushNative","Expr","outermostContext","sortInput","hasDuplicate","documentIsHTML","rbuggyQSA","dirruns","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","booleans","identifier","rwhitespace","rcomma","rleadingCombinator","rdescend","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rquickExpr","rsibling","runescape","funescape","escape","nonHex","high","unloadHandler","setDocument","inDisabledFieldset","addCombinator","disabled","dir","seed","nid","newSelector","newContext","testContext","scope","tokenize","toSelector","querySelectorAll","qsaError","select","cache","cacheLength","shift","markFunction","assert","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","matchIndexes","subWindow","webkitMatchesSelector","msMatchesSelector","defaultView","addEventListener","getById","getElementsByName","disconnectedMatch","cssHas","querySelector","attrId","tag","innerHTML","compare","sortDetached","matchesSelector","attrHandle","uniqueSort","duplicates","sortStable","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","expectedNodeName","pattern","operator","what","_argument","simple","forward","ofType","_context","outerCache","nodeIndex","useCache","diff","pseudo","setFilters","matched","matcher","compile","unmatched","elemLang","hash","location","focus","activeElement","safeActiveElement","hasFocus","href","tabIndex","enabled","checked","selected","selectedIndex","header","button","_matchIndexes","nth","radio","checkbox","file","submit","parseOnly","tokens","soFar","preFilters","cached","combinator","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","matcherOut","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","token","compiled","filters","unique","getText","isXML","selectors","until","truncate","siblings","rneedsContext","rsingleTag","winnow","qualifier","rootjQuery","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","prev","sibling","cur","targets","prevAll","addBack","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","content","reverse","rnothtmlwhite","Identity","Thrower","ex","adoptValue","resolve","reject","noValue","promise","fail","then","Callbacks","flag","createOptions","firing","memory","fired","locked","queue","firingIndex","fire","once","stopOnFalse","lock","fireWith","Deferred","func","tuples","state","always","deferred","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","handler","special","that","mightThrow","notifyWith","resolveWith","process","exceptionHook","rejectWith","getErrorHook","getStackHook","stateString","when","singleValue","remaining","resolveContexts","resolveValues","primary","updateFunc","rerrorNames","asyncError","stack","readyException","readyList","completed","removeEventListener","catch","readyWait","wait","doScroll","access","chainable","emptyGet","raw","bulk","_key","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","camelCase","acceptData","owner","Data","uid","configurable","hasData","dataPriv","dataUser","rmultiDash","dataAttr","getData","_data","_removeData","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","tmp","defer","pnum","rcssNum","cssExpand","isAttached","composed","getRootNode","isHiddenWithinTree","style","display","css","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","showHide","values","toggle","rcheckableType","rtagName","rscriptType","checkClone","noCloneChecked","defaultValue","option","wrapMap","thead","col","tr","td","_default","getAll","setGlobalEval","refElements","tbody","tfoot","colgroup","caption","th","optgroup","rhtml","buildFragment","scripts","selection","ignored","attached","fragment","nodes","htmlPrefilter","rtypenamespace","returnTrue","returnFalse","types","one","origFn","leverageNative","isSetup","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","isImmediatePropagationStopped","handleObjIn","eventHandle","events","handleObj","handlers","namespaces","origType","elemData","create","triggered","dispatch","bindType","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","addProp","hook","Event","enumerable","originalEvent","writable","load","noBubble","click","beforeunload","returnValue","props","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","now","isSimulated","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","charCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","blur","focusMappedHandler","documentMode","simulate","attaches","dataHolder","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","valueIsFunction","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","prepend","before","after","replaceWith","prependTo","replaceAll","original","insert","rnumnonpx","rcustomProp","getStyles","opener","getComputedStyle","swap","rboxStyle","curCSS","computed","width","minWidth","maxWidth","isCustomProp","getPropertyValue","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","container","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","right","pixelBoxStylesVal","boxSizingReliableVal","scrollboxSizeVal","offsetWidth","measure","parseFloat","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","table","trChild","trStyle","height","borderTopWidth","borderBottomWidth","offsetHeight","cssPrefixes","emptyStyle","vendorProps","finalPropName","cssProps","capName","vendorPropName","rdisplayswap","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","marginDelta","ceil","getWidthOrHeight","valueIsBorderBox","offsetProp","getClientRects","Tween","easing","cssHooks","opacity","animationIterationCount","aspectRatio","borderImageSlice","columnCount","flexGrow","flexShrink","gridArea","gridColumn","gridColumnEnd","gridColumnStart","gridRow","gridRowEnd","gridRowStart","lineHeight","orphans","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeMiterlimit","strokeOpacity","origName","setProperty","isFinite","getBoundingClientRect","scrollboxSizeBuggy","left","margin","padding","border","suffix","expand","expanded","propHooks","run","percent","eased","duration","fx","scrollTop","scrollLeft","linear","swing","cos","PI","fxNow","inProgress","rfxtypes","rrun","schedule","requestAnimationFrame","interval","tick","createFxNow","genFx","includeWidth","createTween","animation","Animation","tweeners","properties","stopped","prefilters","currentTime","startTime","tweens","opts","specialEasing","originalProperties","originalOptions","gotoEnd","propFilter","complete","timer","anim","tweener","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","overflow","overflowX","overflowY","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","delay","time","checkOn","optSelected","radioValue","boolHook","nType","attrHooks","attrNames","getter","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","curValue","finalValue","toggleClass","stateVal","isValidValue","rreturn","valHooks","optionSet","rquery","parseXML","parserErrorElem","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","valueOrFunction","encodeURIComponent","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","active","lastModified","etag","isLocal","protocol","processData","async","accepts","responseFields","converters","ajaxSetup","ajaxTransport","transport","cacheURL","responseHeadersString","responseHeaders","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","overrideMimeType","statusText","finalText","crossDomain","host","hasContent","ifModified","nativeStatusText","responses","isSuccess","modified","ct","finalDataType","firstDataType","ajaxHandleResponses","conv2","conv","dataFilter","throws","ajaxConvert","getJSON","getScript","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","visible","xhrSuccessStatus","0","1223","xhrSupported","errorCallback","xhrFields","binary","scriptAttrs","scriptCharset","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","keepScripts","parsed","animated","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","unbind","undelegate","hover","fnOver","fnOut","rtrim","proxy","holdReady","hold","parseJSON","isNumeric","_jQuery","_$","noConflict","getUint64","DataView","buffer","byteOffset","byteLength","flags","subarray","references","referenceId","getUint32","timescale","earliestPresentationTime","firstOffset","referenceCount","getUint16","referenceType","referencedSize","subsegmentDuration","startsWithSap","sapType","sapDeltaTime","secondsToVideoTs","secondsToAudioTs","videoTsToSeconds","audioTsToSeconds","audioTsToVideoTs","videoTsToAudioTs","metadataTsToSeconds","ONE_SECOND_IN_TS","seconds","sampleRate","timestamp","timelineStartPts","keepOriginalTimestamps","MAX_UINT32","uint8","dv","getBigUint64","MAX_SAFE_INTEGER","S2","select2","amd","requirejs","require","define","undef","main","req","makeMap","defined","waiting","defining","aps","jsSuffixRegExp","hasProp","baseName","nameParts","nameSegment","mapValue","foundMap","foundI","foundStarMap","starI","baseParts","starMap","nodeIdCompat","makeRequire","relName","forceSync","makeLoad","depName","callDep","splitPrefix","makeRelParts","makeConfig","relParts","plugin","relResourceName","deps","cjsModule","usingExports","callbackType","alt","cfg","_defined","Utils","getMethods","theClass","methodName","Extend","ChildClass","SuperClass","__hasProp","BaseConstructor","__super__","Decorate","DecoratorClass","decoratedMethods","superMethods","DecoratedClass","argCount","calledConstructor","displayName","superMethod","calledMethod","originalMethod","decoratedMethod","d","Observable","listeners","_type","invoke","generateChars","floor","_convertData","originalKey","dataLevel","hasScroll","$el","innerHeight","scrollHeight","innerWidth","scrollWidth","escapeMarkup","markup","replaceMap","'","__cache","GetUniqueElementId","select2Id","StoreData","GetData","RemoveData","copyNonInternalCssClasses","destinationClasses","clazz","sourceClasses","replacements","Results","dataAdapter","render","$results","displayMessage","hideLoading","$message","hideMessages","$options","$option","$dropdown","sorter","highlightFirstItem","$selected","ensureHighlightVisible","setClasses","selectedIds","classList","showLoading","loading","loadingMore","$loading","_resultId","role","label","template","$children","$child","$childrenContainer","$container","isOpen","$highlighted","getHighlightedResults","currentIndex","nextIndex","$next","currentOffset","nextTop","nextOffset","outerHeight","nextBottom","mousewheel","deltaY","isAtTop","isAtBottom","$this","offsetDelta","BACKSPACE","TAB","ENTER","SHIFT","CTRL","ALT","ESC","SPACE","PAGE_UP","PAGE_DOWN","END","HOME","LEFT","UP","RIGHT","DOWN","DELETE","KEYS","BaseSelection","$selection","_tabindex","resultsId","_handleBlur","update","_attachCloseHandler","_detachCloseHandler","$select","isEnabled","SingleSelection","$rendered","selectionContainer","formatted","MultipleSelection","$selections","selectionIdPrefix","selectionId","removeItem","$remove","Placeholder","decorated","placeholder","normalizePlaceholder","createPlaceholder","$placeholder","placeholderTitle","singlePlaceholder","AllowClear","_handleClear","_handleKeyboardClear","$clear","previousVal","unselectData","prevented","removeAll","Search","searchLabel","$search","$searchContainer","_transferTabIndex","resizeSearch","_keyUpPrevented","$previousChoice","searchRemoveChoice","msie","disableInputEvents","handleSearch","searchHadFocus","term","SelectionCSS","selectionCssClass","EventRelay","relayEvents","preventableEvents","Translation","dict","all","translation","_cache","loadPath","path","translations","BaseAdapter","query","generateResultId","SelectAdapter","selectedElement","currentData","unselect","addOptions","innerText","normalizedData","_normalizeItem","ArrayAdapter","_dataToConvert","convertToOptions","elm","$existing","existingIds","onlyItem","$existingOption","existingData","newData","$newOption","AjaxAdapter","ajaxOptions","_applyDefaults","processResults","q","failure","$request","_request","request","_queryTimeout","Tags","tags","createTag","insertTag","_removeOldTags","page","checkChildren","Tokenizer","tokenizer","dropdown","tokenData","separators","termChar","MinimumInputLength","$e","minimumInputLength","minimum","MaximumInputLength","maximumInputLength","maximum","MaximumSelectionLength","maximumSelectionLength","_checkIfMaximumSelected","successCallback","Dropdown","showSearch","HidePlaceholder","removePlaceholder","modifiedData","InfiniteScroll","lastParams","$loadingMore","createLoadingMore","showLoadingMore","loadMoreIfNeeded","isLoadMoreVisible","loadMore","pagination","more","AttachBody","$dropdownParent","_showDropdown","_attachPositioningHandler","_bindContainerResultHandlers","_hideDropdown","_detachPositioningHandler","$dropdownContainer","_containerResultsHandlersBound","_positionDropdown","_resizeDropdown","scrollEvent","resizeEvent","orientationEvent","$watchers","x","y","ev","$window","isCurrentlyAbove","isCurrentlyBelow","newDirection","viewport","enoughRoomAbove","enoughRoomBelow","$offsetParent","isConnected","outerWidth","countResults","MinimumResultsForSearch","minimumResultsForSearch","Infinity","SelectOnClose","_handleSelectOnClose","originalSelect2Event","$highlightedResults","CloseOnSelect","_selectTriggered","DropdownCSS","dropdownCssClass","TagsSearchHighlight","$firstOption","firstElement","errorLoading","inputTooLong","overChars","inputTooShort","maximumSelected","noResults","searching","removeAllItems","search","ResultsList","SelectionSearch","DIACRITICS","SelectData","ArrayData","AjaxData","DropdownSearch","EnglishTranslation","Defaults","tokenSeparators","resultsAdapter","selectOnClose","dropdownAdapter","multiple","SearchableDropdown","closeOnSelect","selectionAdapter","allowClear","language","_resolveLanguage","uniqueLanguages","_processTranslations","stripDiacritics","amdLanguageBase","autocomplete","dropdownAutoWidth","scrollAfterSelect","templateResult","templateSelection","theme","applyFromElement","optionLanguage","defaultLanguage","elementLanguage","parentLanguage","languages","resolvedLanguages","baseLanguage","languageData","convertedData","Options","fromElement","excludedData","dataset","upperCaseLetter","attributeName","dataName","dataValue","Select2","_generateId","DataAdapter","_placeContainer","SelectionAdapter","DropdownAdapter","ResultsAdapter","_bindAdapters","_registerDomEvents","_registerDataEvents","_registerSelectionEvents","_registerDropdownEvents","_registerResultsEvents","_registerEvents","initialData","_syncAttributes","_resolveWidth","WIDTH","styleWidth","elementWidth","_syncA","_syncS","_syncSubtree","_observer","MutationObserver","mutations","observe","childList","subtree","nonRelayEvents","toggleDropdown","close","_isChangeMutation","addedNodes","removedNodes","some","mutation","changed","actualTrigger","preTriggerMap","preTriggerName","preTriggerArgs","newVal","disconnect","thisMethods","instanceOptions","instance","vttjs","WebVTT","VTTCue","VTTRegion","cueShim","regionShim","nativeVTTCue","nativeVTTRegion","shim","restore","_objCreate","F","ParsingError","errorData","parseTimeStamp","computeSeconds","h","Settings","parseOptions","keyValueDelim","groupDelim","kv","parseCue","cue","regionList","oInput","consumeTimeStamp","ts","Errors","BadTimeStamp","skipWhitespace","endTime","region","vals","vals0","integer","vertical","line","lineAlign","snapToLines","align","center","middle","positionAlign","consumeCueSettings","BadSignature","dflt","defaultKey","TEXTAREA_ELEMENT","TAG_NAME","u","ruby","rt","DEFAULT_COLOR_CLASS","white","lime","cyan","red","yellow","magenta","blue","black","TAG_ANNOTATION","NEEDS_PARENT","parseContent","nextToken","shouldAdd","annotation","rootDiv","tagStack","cl","bgColor","colorName","propName","propValue","strongRTLRanges","isStrongRTLChar","currentRange","determineBidi","cueDiv","nodeStack","pushNodes","nextTextNode","StyleBox","CueStyleBox","styleOptions","color","backgroundColor","writingMode","unicodeBidi","applyStyles","direction","textAlign","font","whiteSpace","textPos","formatStyle","move","BoxPosition","lh","offsetTop","rects","moveBoxToLinePosition","styleBox","containerBox","boxPositions","boxPosition","linePos","track","textTrackList","mediaElement","trackList","computeLinePos","axis","maxPosition","initialAxis","abs","calculatedPercentage","bestPosition","specifiedPosition","percentage","overlapsOppositeAxis","within","overlapsAny","intersectPercentage","findBestPosition","toCSSCompatValues","toMove","overlaps","b2","boxes","reference","getSimpleBoxPosition","StringDecoder","decodeURIComponent","convertCueToDOMTree","cuetext","processCues","cues","overlay","paddedOverlay","hasBeenReset","displayState","shouldCompute","fontSize","Parser","decoder","reportOrThrowError","onparsingerror","collectNextLine","stream","alreadyCollectedLine","ontimestampmap","parseTimestampMap","xy","anchor","lines","regionAnchorX","regionAnchorY","viewportAnchorX","viewportAnchorY","scroll","onregion","parseRegion","hasSubstring","oncue","flush","onflush","directionSetting","alignSetting","findAlignSetting","_id","_pauseOnExit","_startTime","_endTime","_text","_region","_vertical","_snapToLines","_line","_lineAlign","_position","_positionAlign","_size","_align","defineProperties","setting","findDirectionSetting","SyntaxError","getCueAsHTML","scrollSetting","isValidPercentValue","_width","_lines","_regionAnchorX","_regionAnchorY","_viewportAnchorX","_viewportAnchorY","_scroll","findScrollSetting","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","definition","globalThis","hoverElement","targetElement","handleHeaderScroll","headerHeight","fixedHeader","menuItem1","menuItem2","megaMenu","removeHoverClasses","menuLinks","menuItems","bgBackdrop","link","dataIndex","menuItemToShow","backdrop","searchInput","nextElementSibling","footerBottomMenu","footerBottomMenuClone","footerMid","moveFooterMenu","tabItem","tabContainer","containerTabItems","containerTabContents","clickedIndex","tabItems","tabContents","tabContent","isObject","ssrDocument","createEvent","initEvent","hostname","origin","pathname","getDocument","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","Image","screen","matchMedia","cancelAnimationFrame","_getPrototypeOf","setPrototypeOf","__proto__","_setPrototypeOf","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","_construct","Parent","_wrapNativeSuper","Wrapper","Dom7","_Array","subClass","superClass","items","_this","ReferenceError","_assertThisInitialized","arrayFlat","res","arrayFilter","toCreate","tempParent","qsa","uniqueArray","arrayUnique","noTrigger","shortcut","_len","Methods","_el$classList","_len2","_key2","_el$classList2","_len4","_key4","_len3","_key3","transform","transition","transitionDuration","_len5","_key5","targetSelector","listener","capture","handleLiveEvent","eventData","dom7EventData","_parents","handleEvent","_event","dom7LiveListeners","proxyListener","dom7Listeners","_len6","_key6","dom7proxy","_len9","_key9","dispatchEvent","transitionEnd","fireCallBack","includeMargins","_styles","_styles2","clientTop","clientLeft","scrollY","scrollX","_prop","compareWith","returnIndex","tempDiv","nextEls","_next","previousElementSibling","prevEls","_prev","_parent","foundElements","found","device","browser","nextTick","noExtend","nextSource","keysArray","nextKey","desc","getOwnPropertyDescriptor","__swiper__","bindModuleMethods","subKey","classesToSelector","createElementIfNotDefined","createElements","checkProps","auto","getSupport","touch","DocumentTouch","pointerEvents","PointerEvent","maxTouchPoints","observer","passiveListener","supportsPassive","gestures","calcSupport","getDevice","overrides","platform","ua","ios","android","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","isEdge","isSafari","isWebView","calcBrowser","swiper","resize","createObserver","destroyed","initialized","ResizeObserver","entries","newWidth","newHeight","contentBoxSize","contentRect","inlineSize","blockSize","resizeHandler","removeObserver","unobserve","emit","orientationChangeHandler","resizeObserver","Observer","attach","WebkitMutationObserver","observerUpdate","characterData","observers","observeParents","containerParents","observeSlideChildren","$wrapperEl","onTouchStart","touchEventsData","animating","preventInteractionOnTransition","$targetEl","touchEventsTarget","wrapperEl","isTouchEvent","isTouched","isMoved","noSwipingClass","shadowRoot","noSwiping","noSwipingSelector","allowClick","swipeHandler","currentX","currentY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","updateSize","swipeDirection","threshold","allowThresholdMove","formElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","onTouchMove","rtl","rtlTranslate","targetTouch","preventedByNestedSwiper","touchReleaseOnEdges","loop","isVertical","translate","maxTranslate","minTranslate","touchAngle","diffX","diffY","sqrt","isHorizontal","atan2","cssMode","touchMoveStopPropagation","nested","loopFix","startTranslate","getTranslate","setTransition","allowMomentumBounce","grabCursor","allowSlideNext","allowSlidePrev","setGrabCursor","touchRatio","currentTranslate","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","watchSlidesProgress","watchSlidesVisibility","updateActiveIndex","updateSlidesClasses","velocities","updateProgress","setTranslate","onTouchEnd","slidesGrid","snapGrid","currentPos","touchEndTime","timeDiff","updateClickedSlide","lastClickTime","slideTo","activeIndex","slides","freeModeMomentum","lastMoveEvent","velocityEvent","distance","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","afterBouncePosition","needsLoopFix","doBounce","bounceAmount","freeModeMomentumBounceRatio","freeModeMomentumBounce","centeredSlides","freeModeSticky","nextSlide","moveDistance","currentSlideSize","slidesSizesGrid","slideToClosest","transitionStart","longSwipesMs","stopIndex","groupSize","slidesPerGroupSkip","slidesPerGroup","_increment","increment","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","breakpoints","setBreakpoint","updateSlides","slidesPerView","isEnd","isBeginning","autoplay","running","paused","watchOverflow","checkOverflow","onClick","preventClicks","preventClicksPropagation","onScroll","previousTranslate","translatesDiff","dummyEventAttached","dummyEventListener","initialSlide","updateOnWindowResize","autoHeight","setWrapperSize","virtualTranslate","effect","breakpointsBase","spaceBetween","slidesPerColumn","slidesPerColumnFill","centeredSlidesBounds","slidesOffsetBefore","slidesOffsetAfter","normalizeSlideIndex","centerInsufficientSlides","roundLengths","simulateTouch","uniqueNavElements","slideToClickedSlide","preloadImages","updateOnImagesReady","loopAdditionalSlides","loopedSlides","loopFillGroupWithBlank","loopPreventsSlide","passiveListeners","containerModifierClass","slideClass","slideBlankClass","slideActiveClass","slideDuplicateActiveClass","slideVisibleClass","slideDuplicateClass","slideNextClass","slideDuplicateNextClass","slidePrevClass","slideDuplicatePrevClass","wrapperClass","runCallbacksOnInit","_emitClasses","_defineProperties","descriptor","prototypes","modular","useParams","instanceParams","modules","moduleName","useModules","modulesParams","moduleParams","moduleEventName","eventsEmitter","priority","eventsListeners","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","eventsArray","clientWidth","clientHeight","getDirectionLabel","property","getDirectionPropertyValue","swiperSize","wrongRTL","isVirtual","virtual","previousSlidesLength","slidesLength","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","slidesNumberEvenToRows","slideSize","virtualSize","marginTop","marginRight","marginBottom","newSlidesGrid","_$wrapperEl$css","_$wrapperEl$css2","slidesPerRow","numFullColumns","slide","newSlideOrderIndex","column","groupIndex","slideIndexInGroup","columnsInGroup","slideStyles","currentTransform","currentWebKitTransform","webkitTransform","paddingLeft","paddingRight","boxSizing","_slide$","swiperSlideSize","slidesGridItem","_i2","_slidesGridItem","_slides$filter$css","slideIndex","allSlidesSize","slideSizeValue","maxSnap","snap","_allSlidesSize","allSlidesOffset","snapIndex","updateSlidesOffset","updateAutoHeight","activeSlides","getSlideByIndex","visibleSlides","swiperSlideOffset","offsetLeft","updateSlidesProgress","offsetCenter","visibleSlidesIndexes","slideProgress","slideBefore","slideAfter","multiplier","wasBeginning","wasEnd","activeSlide","realIndex","prevSlide","emitSlidesClasses","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","slideFound","clickedSlide","matrix","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","m41","m42","byController","translateTo","runCallbacks","translateBounds","internal","newTranslate","_wrapperEl$scrollTo","isH","behavior","onTranslateToWrapperTransitionEnd","indexAsNumber","normalizedTranslate","normalizedGird","normalizedGridNext","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","slideNext","_clientLeft","slidePrev","prevIndex","normalizedSnapGrid","prevSnap","slideReset","currentSnap","slidesPerViewDynamic","slideToIndex","loopCreate","blankSlidesNum","blankNode","prependSlides","appendSlides","loopDestroy","moving","isLocked","cursor","unsetGrabCursor","manipulation","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","attachEvents","touchEvents","passive","cancel","detachEvents","_swiper$loopedSlides","breakpoint","getBreakpoint","currentBreakpoint","breakpointOnlyParams","paramValue","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","directionChanged","needsReLoop","changeDirection","containerEl","currentWidth","currentHeight","points","point","minRatio","_points$i","wasLocked","lastSlidePosition","addClasses","resultClasses","suffixes","removeClasses","images","loadImage","imageEl","srcset","sizes","checkForComplete","onReady","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","Swiper","swipers","newParams","moduleParamName","desktop","swiperParams","passedParams","eventName","touchEventsTouch","touchEventsDesktop","clickTimeout","Constructor","staticProps","setProgress","getSlideClasses","slideEl","updates","spv","breakLoop","translateValue","needUpdate","currentDirection","mount","mounted","getWrapper","deleteInstance","cleanStyles","extendDefaults","newDefaults","installModule","use","prototypeGroup","protoMethod","Navigation","toggleEl","disabledClass","_swiper$navigation","$nextEl","$prevEl","lockClass","onPrevClick","onNextClick","_swiper$navigation2","hideOnClick","hiddenClass","toEdge","fromEdge","_swiper$navigation3","_swiper$navigation4","targetEl","clickable","isHidden","Pagination","total","paginationType","bullets","firstIndex","midIndex","dynamicBullets","bulletSize","dynamicMainBullets","dynamicBulletIndex","bulletActiveClass","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","currentClass","formatFractionCurrent","totalClass","formatFractionTotal","progressbarDirection","progressbarOpposite","scaleX","scaleY","progressbarFillClass","renderCustom","paginationHTML","numberOfBullets","renderBullet","bulletClass","bulletElement","renderFraction","renderProgressbar","clickableClass","modifierClass","progressbarOppositeClass","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","Autoplay","$activeSlideEl","autoplayResult","reverseDirection","stopOnLastSlide","pause","waitForTransition","onTransitionEnd","onVisibilityChange","visibilityState","onMouseEnter","disableOnInteraction","onMouseLeave","attachMouseEvents","pauseOnMouseEnter","detachMouseEvents","beforeTransitionStart","sliderFirstMove","touchEnd","Fade","$slideEl","tx","ty","slideOpacity","fadeEffect","crossFade","eventTriggered","triggerEvents","beforeInit","overwriteParams","Controller","LinearSpline","maxIndex","minIndex","guess","i1","i3","interpolate","x2","binarySearch","getInterpolateFunction","controller","spline","_setTranslate","controlledTranslate","controlled","control","setControlledTranslate","by","inverse","setControlledTransition","Thumbs","thumbsParams","thumbs","SwiperClass","swiperCreated","thumbsContainerClass","onThumbClick","thumbsSwiper","slideThumbActiveClass","autoScrollOffset","useOffset","newThumbsIndex","currentThumbsIndex","prevThumbsIndex","nextThumbsIndex","thumbsToActivate","thumbActiveClass","multipleActiveThumbs","slideChange","beforeDestroy","Keyboard","kc","pageUpDown","keyboard","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","onlyInViewport","inView","swiperWidth","swiperHeight","windowWidth","windowHeight","swiperOffset","swiperCoord","Mousewheel","lastScrollTime","lastEventBeforeSnap","recentWheelEvents","isEventSupported","sX","sY","pX","pY","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","handleMouseEnter","mouseEntered","handleMouseLeave","eventsTarget","releaseOnEdges","rtlFactor","forceToAxis","positions","sensitivity","_newEvent","sign","ignoreWheelEvents","_recentWheelEvents","_prevEvent","firstEvent","snapToThreshold","autoplayDisableOnInteraction","newEvent","prevEvent","animateSlider","releaseScroll","thresholdDelta","thresholdTime","getTime","SwiperCore","EffectFade","hkScrollSlider","checkNavigationVisibility","checkAndInitScrolling","scrollingPg","anchorItem","scrollItem","scrollOffset","swiperNews","768","1024","1200","milestonesThumbSlider","milestonesSlider","fullSlider","992","activeThumbSlide","thSlide","thSlideArrow","thumbSlide","parentElement","680","checkEx1Slides","totalSlides","arrow","480","1100","homeExchangeSlider","accordionItem","defaultAccordion","accordionContent","accordionParentContent","parentClassAccordion","accordionTitles","allContents","allItems","DEFAULT_LOCATION","baseUrl","relativeUrl","protocolLess","removeLocation","newUrl","URL","Stream","callbacks","_length","dispose","destination","decodeB64ToUint8Array","b64Text","decodedString","Buffer","atob","LineStream","super","nextNewline","parseByterange","byterangeString","parseAttributes","parseResolution","resolution","ParseStream","customParsers","tagMappers","acc","mapper","mappedLine","newLine","tagType","playlistType","allowed","URI","BYTERANGE","byterange","RESOLUTION","BANDWIDTH","dateTimeString","dateTimeObject","IV","Uint32Array","PRECISE","subkey","clientAttributePattern","isHexaDecimal","isDecimalFloating","expression","customType","dataParser","segment","camelCaseKeys","setHoldBack","manifest","serverControl","targetDuration","partTargetDuration","hb","phb","minTargetDuration","minPartDuration","lineStream","parseStream","mainDefinitions","searchParams","lastProgramDateTime","uris","currentMap","currentUri","hasParts","defaultMediaGroups","currentTimeline","allowCache","discontinuityStarts","dateRanges","iFramePlaylists","segments","lastByterangeEnd","lastPartByterangeEnd","dateRangeTags","preloadHints","timeline","preloadSegment","entry","mediaGroup","rendition","definitions","def","endList","mediaSequence","discontinuitySequence","METHOD","KEYFORMAT","contentProtection","KEYID","schemeIdUri","keyId","pssh","iv","playlist","playlists","mediaGroups","TYPE","NAME","mediaGroupType","DEFAULT","autoselect","AUTOSELECT","LANGUAGE","instreamId","CHARACTERISTICS","characteristics","FORCED","forced","discontinuity","reduceRight","programDateTime","timeOffset","precise","cueOut","cueOutCont","cueIn","warnOnMissingAttributes_","segmentIndex","partIndex","renditionReports","r","canBlockReload","canSkipDateranges","hint","isPart","otherHint","report","partInf","partTarget","dateRange","endDate","startDate","plannedDuration","endOnNextYes","endOnNext","class","newDateInSeconds","attribute","dateRangeWithSameId","findIndex","dateRangeToFind","independentSegments","iFramesOnly","requiredCompatibilityversion","contentSteering","addDef","QUERYPARAM","VALUE","IMPORT","custom","currentVersion","targetVersion","missing","chunk","addParser","addTagMapper","regexs","mp4","webm","ogg","video","audio","muxerVideo","muxerAudio","muxerText","mediaTypes","upperMediaTypes","translateLegacyCodec","codec","profile","avcLevel","parseCodecs","codecString","codecs","codecType","details","mediaType","isAudioCodec","getMimeForCodec","browserSupportsCodec","withMMS","muxerSupportsCodec","DEFAULT_AUDIO_CODEC","MPEGURL_REGEX","DASH_REGEX","simpleTypeFromSourceType","isArrayBufferView","ArrayBuffer","isView","bytes","BigInt","BYTE_TABLE","Uint16Array","_ref$signed","signed","_ref$le","byte","exponent","stringToBytes","stringIsBytes","unescape","_temp3","_ref3","_ref3$offset","_ref3$mask","mask","bByte","objects","flatten","lists","urlTypeToSegment","indexRange","resolvedUri","ranges","startRange","endRange","parseEndNumber","endNumber","segmentRange","sourceDuration","periodDuration","segmentDuration","NOW","clientOffset","availabilityStartTime","periodStart","minimumUpdatePeriod","timeShiftBufferDepth","periodStartWC","segmentCount","availableStart","availableEnd","parseByDuration","startNumber","toSegments","sectionDuration","segmentsFromBase","initialization","presentationTime","initSegment","sourceURL","segmentTimeInfo","addSidxSegmentsToPlaylist$1","sidx","sidxByteRange","sidxEnd","mediaReferences","endIndex","SUPPORTED_MEDIA_TYPES","getUniqueTimelineStarts","timelineStarts","keyFunction","getMediaGroupPlaylists","mediaGroupPlaylists","master","groupKey","labelKey","mediaProperties","updateMediaSequenceForPlaylist","generateSidxKey","byteRangeToString","mergeDiscontiguousPlaylists","playlistsByBaseUrl","allPlaylists","playlistGroup","mergedPlaylists","findIndexes","addSidxSegmentsToPlaylist","sidxMapping","sidxKey","sidxMatch","addSidxSegmentsToPlaylists","formatVideoPlaylist","AUDIO","SUBTITLES","CODECS","bandwidth","frameRate","serviceLocation","videoOnly","audioOnly","vttOnly","flattenMediaGroupPlaylists","mediaGroupObject","labelContents","toM3u8","dashPlaylists","locations","previousManifest","eventStream","suggestedPresentationDelay","videoPlaylists","audioPlaylists","vttPlaylists","captions","captionServices","Boolean","VIDEO","isAudioOnly","organizedAudioGroup","mainPlaylist","formattedPlaylists","roleLabel","formatAudioPlaylist","organizeAudioPlaylists","organizedVttGroup","m3u8Attributes","vttPlaylist","formatVttPlaylist","organizeVttPlaylists","playlistTimelineStarts","subs","cc","svcObj","svc","service","channel","easyReader","oldManifest","newManifest","oldPlaylists","newPlaylists","oldPlaylist","findPlaylistWithName","firstNewSegment","oldMatchingSegmentIndex","oldSegment","updateSequenceNumbers","positionManifestOnTimeline","getLiveRValue","parseByTimeline","segmentTimeline","media","sIndex","S","repeat","segmentTime","nextS","identifierPattern","constructTemplateUrl","identifierReplacement","segmentsFromTemplate","templateValues","RepresentationID","Bandwidth","mapSegment","parseTemplateInfo","Time","presentationTimeOffset","segmentsFromList","segmentUrls","segmentUrlMap","segmentUrlObject","segmentUrl","mediaRange","SegmentURLToSegmentObject","generateSegments","segmentInfo","segmentAttributes","segmentsFn","segmentsInfo","findChildren","getContent","parseDuration","year","month","day","hour","minute","parsers","mediaPresentationDuration","parseDivisionValue","parsedValue","parseFn","keySystemsMap","buildBaseUrls","baseUrlElements","baseUrlElement","initialBaseUrl","resolvedBaseUrl","finalBaseUrl","getSegmentInformation","adaptationSet","segmentTemplate","segmentList","segmentBase","segmentTimelineParentNode","segmentInitializationParentNode","segmentInitialization","toEventStream","eventStreamAttributes","eventAttributes","messageData","contentEncoding","toAdaptationSets","mpdAttributes","mpdBaseUrls","periodBaseUrls","periodAttributes","adaptationSets","periodSegmentInfo","adaptationSetAttributes","adaptationSetBaseUrls","roleAttributes","accessibility","labelVal","keySystem","psshNode","representations","adaptationSetSegmentInfo","representation","repBaseUrlElements","repBaseUrls","representationSegmentInfo","inheritBaseUrls","toRepresentations","generateContentSteeringInformation","contentSteeringNodes","infoFromContentSteeringTag","serverURL","queryBeforeStart","stringToMpdXml","manifestString","parser","mpd","DESCRIPTORS","ID3","getId3Offset","returnSize","getId3Size","normalizePath","parseDescriptors","headerSize","z","_DESCRIPTORS$z","dependsOnEsId","ocrEsId","descriptors","oti","streamType","bufferSize","maxBitrate","avgBitrate","findBox","paths","normalizePaths","EBML_TAGS","EBML","DocType","Segment","SegmentInfo","Tracks","Track","TrackNumber","DefaultDuration","TrackEntry","TrackType","FlagDefault","CodecID","CodecPrivate","VideoTrack","AudioTrack","Cluster","Timestamp","TimestampScale","BlockGroup","BlockDuration","Block","SimpleBlock","LENGTH_TABLE","getvint","removeLength","valueBytes","_temp2","_ref2$le","byteCount","countBits","countBytes","byteIndex","numberToBytes","getInfinityDataSize","innerid","dataHeader","findEbml","dataStart","dataEnd","NAL_TYPE_ONE","NAL_TYPE_TWO","EMULATION_PREVENTION","discardEmulationPreventionBytes","newLength","sourceIndex","findNal","nalLimit","nalStart","nalsFound","nalOffset","nalType","CONSTANTS","_isLikely","aac","mp3","docType","mkv","matroska","mov","fmp4","moof","moov","ac3","flac","avi","riff","wav","findH264Nal","findH265Nal","isLikelyTypes","isLikelyFn","isLikely","detectContainerForBytes","version$6","hooks_","removeHook","FullscreenApi","prefixed","apiMap","specApi","browserApi","log$1","createLogger$1","delimiter","logByType","level","lvl","levels","lvlRegExp","resultName","LogByTypeFactory","createLogger","subName","subDelimiter","subStyles","resultDelimiter","createNewLogger","newName","newDelimiter","newStyles","info","fname","historyItem","accum","isPlain","merge$1","sources","defineLazyProperty","Obj","ANDROID_VERSION","IS_IPOD","IOS_VERSION","IS_ANDROID","IS_FIREFOX","IS_EDGE","IS_CHROMIUM","IS_CHROME","CHROMIUM_VERSION","CHROME_VERSION","IS_CHROMECAST_RECEIVER","IE_VERSION","IS_SAFARI","IS_WINDOWS","IS_IPAD","IS_IPHONE","IS_TIZEN","IS_WEBOS","IS_SMART_TV","TOUCH_ENABLED","isReal","UAD","brands","brand","USER_AGENT","major","minor","IS_IOS","IS_ANY_SAFARI","isNonBlankString","isEl","isInFrame","createQuerier","ctx","createEl","getOwnPropertyNames","appendContent","classToCheck","throwIfWhitespace","classesToAdd","classesToRemove","classToToggle","setAttributes","attrValue","getAttributes","knownBooleans","attrVal","includes","blockTextSelection","unblockTextSelection","computedStyle","findPosition","fullscreenElement","getPointerPosition","translated","assignedSlot","transformValue","boxTarget","boxW","emptyEl","normalizeContent","insertContent","isSingleLeftClick","$$","computedStyleValue","copyStyleSheetsToWindow","styleSheet","cssRules","rel","mediaText","Dom","videojs$1","_windowLoaded","autoSetup","vids","audios","divs","mediaEls","mediaEl","autoSetupTimeout","player","vjs","setWindowLoaded","createStyleElement","setTextContent","DomData","WeakMap","_supportsPassive","_guid","newGUID","_cleanUpEvents","dispatcher","detachEvent","_handleMultipleEvents","fixEvent","fixed_","deprecatedProps","srcElement","cancelBubble","passiveEvents","handlersCopy","attachEvent","removeType","targetData","any","Events","UPDATE_REFRESH_INTERVAL","bind_","bound","throttle","debounce$1","immediate","debounced","later","Fn","debounce","EVENT_MAP","EventTarget$2","ael","allowedEvents_","oldTimeout","objName","name_","isEvented","eventBusEl_","isValidEventType","validateTarget","fnName","validateEventType","validateListener","normalizeListenArgs","isTargetingSelf","listen","EventedMixin","removeListenerOnDispose","removeRemoverOnTargetDispose","largs","targetOrType","typeOrListener","evented","eventBusKey","eventedCallbacks","el_","StatefulMixin","stateUpdates","changes","stateful","defaultState","handleStateChanged","toTitleCase$1","titleCaseEquals","str1","str2","Str","toTitleCase","Component$1","play","player_","isDisposed_","parentComponent_","options_","id_","handleLanguagechange","children_","childIndex_","childNameIndex_","setTimeoutIds_","setIntervalIds_","rafIds_","namedRafs_","clearingTimersOnDispose_","initChildren","reportTouchActivity","enableTouchActivity","readyQueue_","restoreEl","primaryCode","primaryLang","localizedString","contentEl_","names","currentChild","getChild","iconName","experimentalSvgIcons","xmlnsURL","iconContainer","svgEl","useEl","iconIsSet_","component","componentName","componentClassName","componentClass","ComponentClass","getComponent","contentEl","childFound","compEl","parentOptions","handleAdd","playerOptions","addChild","workingChildren","Tech","wchild","isTech","isReady_","readyQueue","skipListeners","widthOrHeight","pxIndex","computedWidthOrHeight","currentDimension","boundingClientRect","spatialNavigation","handleKeyDown","couldBeTap","touchStart","firstTouch","xdiff","ydiff","noTap","reportUserActivity","touchHolding","clearInterval","setInterval","timeoutId","clearTimersOnDispose_","intervalId","cancelNamedAnimationFrame","idName","cancelName","inert","getIsDisabled","getIsExpresslyInert","isVisibleStyleProperty","elementStyle","thisVisibility","elementCenter","pointContainer","isVisible","ComponentToRegister","isComp","isPrototypeOf","reason","components_","Player","players","playerNames","pname","getRange","valueIndex","rangeIndex","rangeCheck","createTimeRangesObj","timeRangesObj","createTimeRanges$1","registerComponent","defaultImplementation","guide","gm","gh","setFormatTime","customImplementation","resetFormatTime","formatTime","createTimeRanges","createTimeRange","bufferedPercent","buffered","bufferedDuration","MediaError","defaultMessages","isPromise","silencePromise","errorTypes","1","2","3","4","5","MEDIA_ERR_CUSTOM","MEDIA_ERR_ABORTED","MEDIA_ERR_NETWORK","MEDIA_ERR_DECODE","MEDIA_ERR_SRC_NOT_SUPPORTED","MEDIA_ERR_ENCRYPTED","trackToJson_","ModalDialog","handleKeyDown_","close_","opened_","hasBeenOpened_","hasBeenFilled_","closeable","uncloseable","descEl_","description","buildCSSClass","previouslyActiveEl_","localize","fillAlways","fill","wasPlaying_","pauseOnOpen","hadControls_","controls","conditionalFocus_","conditionalBlur_","temporary","closeable_","controlText","fillWith","parentEl","nextSiblingEl","closeButton","content_","activeEl","playerEl","focusableEls","focusableEls_","focusIndex","allChildren","TrackList","tracks","tracks_","addTrack","labelchange_","rtrack","change","addtrack","removetrack","labelchange","disableOthers$1","disableOthers","TextTrackList","queueChange_","queueTrigger","triggerSelectedlanguagechange","triggerSelectedlanguagechange_","kind","removeTrack","selectedlanguagechange_","TextTrackCueList","setCues_","length_","oldLength","cues_","defineProp","VideoTrackKind","alternative","subtitles","commentary","AudioTrackKind","TextTrackKind","descriptions","chapters","TextTrackMode","showing","trackProps","newLabel","parseUrl","getAbsoluteURL","getFileExtension","pathParts","isCrossOrigin","winLoc","Url","parseCues","srcContent","addCue","loadTrack","crossOrigin","tech_","loaded_","TextTrack","tech","srclang","default_","activeCues_","preload_","preloadTextTracks","activeCues","timeupdateHandler","isDisposed","rvf_","requestVideoFrameCallback","stopTracking","startTracking","newMode","cancelVideoFrameCallback","originalCue","originalCue_","textTracks","removeCue","cuechange","newEnabled","newSelected","HTMLTrackElement","NONE","LOADED","LOADING","ERROR","NORMAL","ListClass","changing_","enabledChange_","TrackClass","capitalName","selectedChange_","getterName","privateName","REMOTE","remoteText","remoteTextEl","trackElements","trackElements_","addTrackElement_","trackElement","trackElement_","ALL","onDurationChange_","onDurationChange","trackProgress_","trackProgress","trackCurrentTime_","trackCurrentTime","stopTrackingCurrentTime_","stopTrackingCurrentTime","disposeSourceHandler_","disposeSourceHandler","queuedHanders_","hasStarted_","featuresProgressEvents","manualProgressOn","featuresTimeupdateEvents","manualTimeUpdatesOn","nativeCaptions","nativeTextTracks","featuresNativeTextTracks","emulateTextTracks","autoRemoteTextTracks_","initTrackListeners","nativeControlsForTouch","emitTapEvents","triggerSourceset","manualProgress","stopTrackingProgress","progressInterval","numBufferedPercent","bufferedPercent_","duration_","manualTimeUpdates","currentTimeInterval","manuallyTriggered","clearTracks","manualProgressOff","manualTimeUpdatesOff","removeRemoteTextTrack","error_","_isScrubbing","_seconds","trackListChanges","addWebVttScript_","remoteTracks","remoteTextTracks","handleAddTrack","handleRemoveTrack","updateDisplay","textTracksChanges","createTrackHelper","manualCleanup","htmlTrackElement","createRemoteTextTrack","remoteTextTrackEls","getTrackElementByTrack_","removeTrackElement_","Promise","cb","requestNamedAnimationFrame","override","srcObj","canPlayType","techs_","canPlaySource","defaultTechOrder_","featuresVolumeControl","featuresMuteControl","featuresFullscreenResize","featuresPlaybackRate","featuresSourceset","featuresVideoFrameCallback","withSourceHandlers","_Tech","registerSourceHandler","sourceHandlers","can","selectSourceHandler","canHandleSource","sh","originalFn","sourceHandler_","setSource","nativeSourceHandler","currentSource_","handleSource","cleanupAutoTextTracks","registerTech","middlewares","middlewareInstances","TERMINATOR","setSourceHelper","mediate","middleware","callMethod","middlewareValue","middlewareIterator","terminated","mws","mw","executeRight","allowedGetters","muted","played","seekable","volume","ended","allowedSetters","setCurrentTime","setMuted","setVolume","allowedMediators","lastRun","mwFactory","mwrest","mwf","mwi","getOrCreateFactory","_src","MimetypesKind","opus","ogv","m4v","m4a","caf","oga","m3u8","jpg","jpeg","gif","png","svg","webp","getMimetype","ext","filterSource","newsrc","srcobj","fixSource","mimetype","backKeyCode","SpatialNavKeyCodes","codes","ff","rw","415","19","417","412","keyName","SpatialNavigation","focusableComponents","isListening_","isPaused_","onKeyDown_","lastFocusedComponent_","updateFocusableComponents","refocusComponent","handlePlayerFocus_","handlePlayerBlur_","errorDisplay","actualEvent","isEventKey","action","getEventName","performMediaAction_","userSeek_","liveTracker","isLive","nextSeekedFromUser","nextFocusedElement","isChildrenOfPlayer","currentComponent","getCurrentComponent","searchForTrackSelect_","getIsFocusable","resume","searchForChildrenCandidates","componentsArray","getIsAvailableToBeFocused","findSuitableDOMChild","buttonContainer","getPositions","searchForSuitableChild","suitableChild","curComp","currentFocusedComponent","currentPositions","candidates","isInDirection_","bestCandidate","findBestCandidate_","focusedComponent","currentCenter","minDistance","candidate","candidateCenter","calculateDistance_","srcRect","targetRect","userActive","center1","center2","dx","dy","techOrder","techName","getTech","loadTech_","ClickableComponent","handleMouseOver_","handleMouseOver","handleMouseOut_","handleMouseOut","handleClick_","handleClick","tabIndex_","createControlTextEl","controlTextEl_","controlText_","localizedText","nonIconControl","noUITitleAttributes","clickHandler","PosterImage","update_","crossorigin","poster","setSrc","fontMap","monospace","sansSerif","serif","monospaceSansSerif","monospaceSerif","proportionalSansSerif","proportionalSerif","casual","smallcaps","constructColor","hex","tryUpdateStyle","getCSSPositionValue","updateDisplayHandler","updateDisplayOverlay","toggleDisplay","preselectTrack","screenOrientation","changeOrientationEvent","addRemoteTextTrack","modes","userPref","cache_","selectedLanguage","firstDesc","firstCaptions","preferredTrack","allowMultipleShowingTracks","clearDisplay","showingTracks","updateForTrack","descriptionsTrack","captionsSubtitlesTrack","textTrackDisplay","vjsTextTrackCues","controlBarHeight","controlBar","playerHeight","vjsTextTrackCue","inset","insetStyles","videoHeight","playerWidth","playerAspectRatio","videoAspectRatio","videoWidth","insetInlineMatch","insetBlockMatch","textTrackSettings","getValues","textOpacity","backgroundOpacity","windowColor","windowOpacity","edgeStyle","textShadow","fontPercent","fontFamily","fontVariant","cueEl","updateDisplayState","isAudio","playerType","Button","BigPlayButton","mouseused_","setIcon","handleMouseDown","playPromise","playToggle","playFocus","PlayToggle","replay","handlePlay","handlePause","handleEnded","handleSeeked","TimeDisplay","updateTextNode_","span","labelText_","textNode_","enableSmoothSeeking","updateContent","formattedTime_","oldNode","CurrentTimeDisplay","scrubbing","getCache","DurationDisplay","RemainingTimeDisplay","displayNegative","remainingTimeDisplay","remainingTime","updateShowing","SeekToLive","updateLiveEdgeStatus","updateLiveEdgeStatusHandler_","textEl_","atLiveEdge","seekToLiveEdge","clamp","Num","Slider","handleMouseDown_","handleMouseUp_","handleMouseUp","handleMouseMove_","handleMouseMove","bar","barName","playerEvent","getProgress","progress_","sizeKey","toFixed","getPercent","spatialNavOptions","spatialNavEnabled","horizontalSeek","stepBack","stepForward","vertical_","percentify","partEls_","loadedText","separator","percentageEl_","seekableEnd","bufferedEnd","percent_","seekBarRect","seekBarPoint","tooltipRect","playerRect","seekBarPointPx","spaceLeftOfPoint","spaceRightOfPoint","pullTooltipBy","write","liveWindow","secondsBehind","PlayProgressBar","timeTooltip","updateTime","MouseTimeDisplay","SeekBar","shouldDisableSeekWhileScrubbingOnMobile","disableSeekWhileScrubbingOnMobile","shouldDisableSeekWhileScrubbingOnMobile_","pendingSeekTime_","setEventHandlers_","updateInterval","enableIntervalHandler_","enableInterval_","disableIntervalHandler_","disableInterval_","toggleVisibility_","getCurrentTime_","liveCurrentTime","currentTime_","seekableStart","videoWasPlaying","mouseDown","newTime","calculateDistance","mouseTimeDisplay","handleAction","gotoFraction","STEP_SECONDS","ProgressControl","throttledHandleMouseSeek","handleMouseSeek","handleMouseUpHandler_","handleMouseDownHandler_","seekBar","playProgressBar","seekBarEl","removeListenersAddedOnMousedownAndTouchstart","PictureInPictureToggle","handlePictureInPictureChange","handlePictureInPictureEnabledChange","handlePictureInPictureAudioModeChange","currentType","audioPosterMode","audioOnlyMode","isInPictureInPicture","exitPictureInPicture","disablePictureInPicture","enableDocumentPictureInPicture","requestPictureInPicture","FullscreenToggle","handleFullscreenChange","fsApi_","fullscreenEnabled","isFullscreen","exitFullscreen","requestFullscreen","rangeBarRect","rangeBarPoint","volumeBarPointPx","MouseVolumeLevelDisplay","updateVolume","VolumeBar","updateLastVolume_","updateARIAAttributes","mouseVolumeLevelDisplay","volumeBarEl","volumeBarRect","volumeBarPoint","checkMuted","ariaValue","volumeAsPercentage_","volumeBeforeDrag","lastVolume_","VolumeControl","volumeBar","checkVolumeSupport","throttledHandleMouseMove","orientationClass","MuteToggle","checkMuteSupport","vol","lastVolume","volumeToSet","updateIcon_","updateControlText_","VolumePanel","inline","volumeControl","handleKeyPressHandler_","handleKeyPress","volumePanelState_","muteToggle","handleVolumeControlKeyUp","sliderActive_","sliderInactive_","SkipForward","validOptions","skipTime","getSkipForwardTime","toLocaleString","skipButtons","currentVideoTime","SkipBackward","getSkipBackwardTime","backward","Menu","menuButton_","menuButton","focusedChild_","boundHandleBlur_","handleBlur","boundHandleTapClick_","handleTapClick","removeEventListenerForItem","childComponent","addEventListenerForItem","contentElType","btn","buttonPressed_","unpressButton","childComponents","foundComponent","stepChild","MenuButton","buttonClass","handleMenuKeyUp_","handleMenuKeyUp","menu","handleSubmenuKeyDown","createMenu","hideThreshold_","titleEl","titleComponent","addItem","createItems","buildWrapperCSSClass","menuButtonClass","pressButton","lockShowing","unlockShowing","TrackButton","updateHandler","MenuItem","selectable","isSelected_","multiSelectable","menuItemEl","TextTrackMenuItem","kinds","changeHandler","handleTracksChange","selectedLanguageChangeHandler","handleSelectedLanguageChange","onchange","referenceTrack","shouldBeSelected","OffTextTrackMenuItem","allHidden","TextTrackButton","TrackMenuItem","label_","kinds_","kind_","ChaptersTrackMenuItem","ChaptersButton","selectCurrentItem_","track_","findChaptersTrack","setTrack","updateHandler_","remoteTextTrackEl","getMenuCaption","mi","DescriptionsButton","SubtitlesButton","CaptionSettingsMenuItem","CaptionsButton","SubsCapsMenuItem","parentSpan","SubsCapsButton","language_","AudioTrackMenuItem","audioTracks","featuresNativeAudioTracks","AudioTrackButton","PlaybackRateMenuItem","rate","playbackRate","PlaybackRateMenuButton","labelElId_","updateVisibility","updateLabel","handlePlaybackRateschange","labelEl_","rates","playbackRates","playbackRateSupported","Spacer","ControlBar","ErrorDisplay","TextTrackSelect","selectLabelledbyIds","legendId","labelId","SelectOptions","optionText","optionId","TextTrackFieldset","legendElement","legendText","selects","selectConfig","selectConfigs","selectClassName","textTrackSelect","TextTrackSettingsColors","textTrackComponentid","ElFgColorFieldset","fieldSets","ElBgColorFieldset","ElWinColorFieldset","TextTrackSettingsFont","TrackSettingsControls","defaultsDescription","resetButton","doneButton","LOCAL_STORAGE_KEY$1","COLOR_BLACK","COLOR_BLUE","COLOR_CYAN","COLOR_GREEN","COLOR_MAGENTA","COLOR_RED","COLOR_WHITE","COLOR_YELLOW","OPACITY_OPAQUE","OPACITY_SEMI","OPACITY_TRANS","parseOptionValue","renderModalComponents","endDialog","persistTextTrackSettings","bindFunctionsToSelectsAndButtons","restoreSettings","textTrackSettingsColors","textTrackSettingsFont","trackSettingsControls","saveSettings","setSelectedOption","setValues","ttDisplay","RESIZE_OBSERVER_AVAILABLE","loadListener_","resizeObserver_","debouncedHandler_","contentWindow","unloadListener_","defaults$1","trackingThreshold","liveTolerance","trackLiveHandler_","trackLive_","handlePlay_","handleFirstTimeupdate_","handleFirstTimeupdate","handleSeeked_","seekToLiveEdge_","reset_","handleDurationchange","toggleTracking","deltaTime","lastTime_","pastSeekEnd_","pastSeekEnd","isBehind","seekedBehindLive_","timeupdateSeen_","behindLiveEdge_","liveui","isTracking","hasStarted","trackingInterval_","nextSeekedFromUser_","lastSeekEnd_","seekableEnds","seekableStarts","behindLiveEdge","updateDom_","techEl","techAriaAttrs","techAriaAttr","setState","initialDisplay","takeFocus","preventScroll","forceDisplayTimeout","sourcesetLoad","srcUrls","innerHTMLDescriptorPolyfill","dummy","docFrag","getDescriptor","firstSourceWatch","resetSourceWatch_","innerDescriptor","getInnerHTMLDescriptor","appendWrapper","appendFn","retval","srcDescriptorPolyfill","Html5","crossoriginTracks","initNetworkState_","handleLateInit_","enableSourceset","setupSourcesetHandling_","isScrubbing_","nodesLength","removeNodes","proxyNativeTracks_","restoreMetadataTracksInIOSNativePlayer_","setControls","proxyWebkitFullscreen_","triggerReady","resetSourceset_","disposeMediaElement","srcDescriptor","getSrcDescriptor","oldSetAttribute","oldLoad","setupSourceset","metadataTracksPreFullscreenState","takeMetadataTrackSnapshot","storedMode","restoreTrackMode","storedTrack","lowerCaseType","proxyNativeTracksForType_","overrideNative_","elTracks","techTracks","removeOldTracks","removeTracks","playerElIngest","movingMediaElementInDOM","techId","playerId","preload","settingsAttrs","networkState","loadstartFired","setLoadstartFired","triggerLoadstart","eventsToTrigger","isScrubbing","fastSeek","checkProgress","NaN","endFn","beginFn","webkitPresentationMode","nativeIOSFullscreen","webkitEnterFullScreen","HAVE_METADATA","webkitDisplayingFullscreen","webkitExitFullScreen","webkitKeys","srcUrl","sourceAttributes","sourceElement","sourceElements","resetMediaElement","addTextTrack","getVideoPlaybackQuality","videoPlaybackQuality","webkitDroppedFrameCount","webkitDecodedFrameCount","droppedVideoFrames","totalVideoFrames","creationTime","TEST_VID","canControlVolume","canControl","canMuteVolume","canControlPlaybackRate","canOverrideAttributes","supportsNativeTextTracks","supportsNativeVideoTracks","videoTracks","supportsNativeAudioTracks","TECH_EVENTS_RETRIGGER","TECH_EVENTS_QUEUE","canplay","canplaythrough","playing","seeked","BREAKPOINT_ORDER","BREAKPOINT_CLASSES","DEFAULT_BREAKPOINTS","tiny","xsmall","small","medium","large","xlarge","huge","getTagSettings","boundDocumentFullscreenChange_","documentFullscreenChange_","boundFullWindowOnEscKey_","fullWindowOnEscKey","boundUpdateStyleEl_","updateStyleEl_","boundApplyInitTime_","applyInitTime_","boundUpdateCurrentBreakpoint_","updateCurrentBreakpoint_","boundHandleTechClick_","handleTechClick_","boundHandleTechDoubleClick_","handleTechDoubleClick_","boundHandleTechTouchStart_","handleTechTouchStart_","boundHandleTechTouchMove_","handleTechTouchMove_","boundHandleTechTouchEnd_","handleTechTouchEnd_","boundHandleTechTap_","handleTechTap_","boundUpdatePlayerHeightOnAudioOnlyMode_","updatePlayerHeightOnAudioOnlyMode_","isFullscreen_","isPosterFromTech_","queuedCallbacks_","userActive_","debugEnabled_","audioOnlyMode_","audioPosterMode_","audioOnlyCache_","hiddenChildren","tagAttributes","languagesToLower","languages_","resetCache_","poster_","controls_","changingSrc_","playCallbacks_","playTerminatedQueue_","plugins","scrubbing_","fullscreenchange","fluid_","playerOptionsCopy","middleware_","parsedSVG","sprite","majorVersion","listenForUserActivity_","responsive","styleEl_","playerElIngest_","divEmbed","deviceClassNames","defaultsStyleEl","fill_","fluid","links","linkEl","techGet_","techCall_","posterImage","privDimension","parsedVal","aspectRatio_","width_","height_","idClass","ratioParts","ratioMultiplier","unloadTech_","titleTechName","camelTechName","techName_","normalizeAutoplay","techOptions","playsinline","techCanOverridePoster","TechClass","handleTechReady_","textTracksJson_","addedTrack","eventObj","seeking","handleTechLoadStart_","handleTechSourceset_","handleTechWaiting_","handleTechEnded_","handleTechSeeking_","handleTechPlay_","handleTechPause_","handleTechDurationChange_","handleTechFullscreenChange_","handleTechFullscreenError_","handleTechEnterPictureInPicture_","handleTechLeavePictureInPicture_","handleTechError_","handleTechPosterChange_","handleTechTextData_","handleTechRateChange_","usingNativeControls","addTechControlsListeners_","trackEls","trackObjs","trackEl","textTrackConverter","safety","removeTechControlsListeners_","manualAutoplay_","resolveMuted","previouslyMuted","restoreMuted","mutedPromise","matchingSources","findMimetype","sourceElSources","sourceEls","matchingSourceEls","sourceObj","updateSourceCaches","updateSourceCaches_","playerSrc","currentSource","eventSrc","lastSource_","techSrc","lastPlaybackRate","queued","timeWhenWaiting","timeUpdateListener","userActions","doubleClick","userWasActive","targetPlayer","isFs","fullscreen","initTime","inactivityTimeout","defaultPlaybackRate","play_","isSrcReady","isSafariOrIOS","waitToPlay_","resetProgressBar_","runPlayTerminatedQueue_","runPlayCallbacks_","percentAsDecimal","defaultMuted","isFS","oldValue","toggleFullscreenClass_","fullscreenOptions","offHandler","requestFullscreenHelper_","fsOptions","supportsFullScreen","preferFullWindow","enterFullWindow","exitFullscreenHelper_","exitFullWindow","isFullWindow","docOrigOverflow","isPiP","isInPictureInPicture_","togglePictureInPictureClass_","pipContainer","titleBar","pipWindow","pipVideo","hotkeys","excludeElement","handleHotkeys","fullscreenKey","keydownEvent","muteKey","playPauseKey","FSToggle","techs","findFirstPassingTechSourcePair","outerArray","innerArray","tester","outerChoice","innerChoice","foundSourceAndTech","finder","sourceOrder","isRetry","resetRetryOnError_","middlewareSource","src_","handleSrc_","notSupportedMessage","setTech","stopListeningForErrors","sourceTech","selectSource","addSourceElement","removeSourceElement","vhs","doReset_","resetControlBarUI_","resetPlaybackRate_","resetVolumeBar_","currentTimeDisplay","durationDisplay","progressControl","loadProgressBar","techAutoplay","newPoster","usingNativeControls_","hookFunction","newErr","suppressNotSupportedError","triggerSuppressedError","userActivity_","mouseInProgress","lastMoveX","lastMoveY","handleActivity","handleMouseUpAndMouseLeave","isAudio_","playerChildren","exitPromises","enableAudioOnlyUI_","disableAudioOnlyUI_","enablePosterModeUI_","disablePosterModeUI_","modal","candidateBreakpoint","breakpoints_","breakpoint_","currentBreakpointClass","responsive_","removeCurrentBreakpoint_","artist","artwork","tt","currentSources","baseOptions","tagOptions","dataSetup","childName","previousLogLevel_","newRates","html5","userLanguage","navigationUI","BASE_PLUGIN_NAME","pluginStorage","pluginExists","getPlugin","markPluginAsActive","triggerSetupEvent","createPluginFactory","PluginSubClass","getEventHash","Plugin","VERSION","isBasic","basicPluginWrapper","createBasicPlugin","deprecateForMajor","oldName","warned","deprecate","registerPlugin","usingPlugin","hasPlugin","normalizeId","videojs","getPlayer","rootNode","PlayerComponent","hookOnce","getPlayers","nId","getAllPlayers","writeable","mergeOptions","deregisterPlugin","getPlugins","getPluginVersion","addLanguage","EventTarget","NetworkBadStatus","NetworkRequestFailed","NetworkRequestAborted","NetworkRequestTimeout","NetworkBodyParserFailed","StreamingHlsPlaylistParserError","StreamingDashManifestParserError","StreamingContentSteeringParserError","StreamingVttParserError","StreamingFailedToSelectNextSegment","StreamingFailedToDecryptSegment","StreamingFailedToTransmuxSegment","StreamingFailedToAppendSegment","StreamingCodecsChangeError","QualityLevel","bitrate","QualityLevelList","levels_","selectedIndex_","qualityLevel","getQualityLevelById","removed","addqualitylevel","removequalitylevel","version$5","qualityLevels","originalPluginFn","qualityLevelList","disposeHandler","initPlugin$1","resolveManifestRedirect","logger","TIME_FUDGE_FACTOR","SAFE_TIME_DELTA","filterRanges","timeRanges","findRange","findNextRange","printableRange","strArr","timeRangesToArray","timeRangesList","lastBufferedEnd","timeAheadOf","segmentDurationWithParts","getPartsAndSegments","si","getLastParts","lastSegment","getKnownPartCount","partCount","liveEdgeDelay","partHoldBack","holdBack","intervalDuration","endSequence","expired","backwardDuration","forwardDuration","totalDuration","sumDurations","defaultDuration","durationList","durations","playlistEnd","useSafeLiveEnd","liveEdgePadding","lastSegmentEndTime","isExcluded","excludeUntil","isIncompatible","excluded","isLowestEnabledRendition","currentBandwidth","MAX_VALUE","playlistMatch","someAudioVariant","groupName","variant","Playlist","getMediaInfoForTime","startingSegmentIndex","startingPartIndex","exactManifestTimings","partsAndSegments","partAndSegment","isExtremelyCloseToTheEnd","isAes","estimateSegmentRequestTime","bytesReceived","createPlaylistID","groupID","setupMediaPlaylist","playlistErrors_","addPropertiesToMain","createGroupID","phonyUri","audioOnlyMain","groupId","setupMediaPlaylists","resolveMediaGroupUris","DateRangesStorage","offset_","pendingDateRanges_","processedDateRanges_","firstSegment","trimProcessedDateRanges_","pendingDateRange","dateRangeClasses","dateRangesToProcess","processDateRange","classListIndex","getStreamingNetworkErrorMetadata","parseFailure","isBadStatus","isFailure","errorMetadata","isBadStatusOrParseFailure","errorType","timedout","erroType","EventTarget$1","updateSegment","skipped","resolveSegmentUris","baseUri","getAllSegments","isPlaylistUnchanged","updateMain$1","newMedia","unchangedCheck","oldMedia","mergedPlaylist","skippedSegments","oldSegments","newSegments","newSegment","updateSegments","refreshDelay","lastPart","lastDuration","playlistMetadataPayload","renditions","PlaylistLoader","logger_","vhs_","addDateRangesToTextTrack_","addDateRangesToTextTrack","vhsOptions","customTagParsers","customTagMappers","llhls","dateRangesStorage_","handleMediaupdatetimeout_","handleLoadedPlaylist_","mediaPlaylist","setPendingDateRanges","availableDateRanges","getDateRangesToProcess","nextMSN","nextPart","_HLS_part","_HLS_msn","canSkipUntil","_HLS_skip","parsedUri","addLLHLSQueryDirectives","playlistRequestError","haveMetadata","playlistString","startingState","onwarn","oninfo","customParser","parseManifest","playlistObject","playlistInfo","parseManifest_","lastRequest","pendingMedia_","media_","updateMediaUpdateTimeout_","parsedPlaylist","mediaUpdateTimeout","finalRenditionTimeout","oldRequest","shouldDelay","mediaChange","mainPlaylistRef","started","setupInitialPlaylist","srcUri","mainForMedia","isUpdate","pathway","oldPlaylistUri","oldPlaylistId","newPlaylistUri","createCloneURI_","newPlaylistId","createCloneAttributes_","updatedPlaylist","createClonePlaylist_","updateOrDeleteCloneMedia","oldMediaPlaylist","createClonedMediaGroups_","basePlaylist","playlistId","baseID","newUri","newPlaylistID","newMediaPlaylist","newProps","baseURI","HOST","PARAMS","oldAttributes","keyIds","keysystem","callbackWrapper","reqResponse","responseTime","roundTripTime","requestTime","xhrFactory","XhrFunction","beforeRequest","Vhs","_requestCallbackSet","_responseCallbackSet","xhrMethod","beforeRequestOptions","requestSet","newOptions","requestCallback","callAllRequestHooks","responseSet","responseCallback","callAllResponseHooks","originalAbort","segmentXhrHeaders","Range","byterangeEnd","byterangeStart","byterangeStr","textRange","formatHexString","formatAsciiString","createTransferableMessage","transferable","initSegmentId","segmentKeyId","hexDump","ascii","utils","tagDump","textRanges","seekToProgramTime","programTime","retryCount","seekTo","pauseAfterSeek","verifyProgramDateTimeTags","matchedSegment","lastSegmentStart","lastSegmentDuration","videoTimingInfo","transmuxedPresentationEnd","transmuxedPresentationStart","transmuxerPrependedSeconds","estimatedStart","findSegmentForProgramTime","mediaOffset","comparisonTimeStamp","segmentDateTime","segmentTimeEpoch","getOffsetFromTimestamp","seekToTime","callbackOnCompleted","dashPlaylistUnchanged","aSegment","bSegment","aByterange","bByterange","dashGroupId","equivalentSidx","compareSidxEntry","oldSidxMapping","newSidxMapping","currentSidxInfo","savedSidxInfo","sidxInfo","DashPlaylistLoader","srcUrlOrPlaylist","mainPlaylistLoader","mainPlaylistLoader_","isMain_","addMetadataToTextTrack","refreshXml_","refreshMedia_","loadedPlaylists_","sidxMapping_","childPlaylist_","mediaRequest_","fin","requestErrored_","id3Offset","finished","endRequestAndCallback","_bytes","progressListener","newPart","buffers","totalLen","tempBuffer","concatTypedArrays","loaded","containerRequest","sidxContainer","playlistExclusionDuration","minimumUpdatePeriodTimeout_","createMupOnMedia_","addSidxSegments_","sidxChanged","isFinalRendition","updateMinimumUpdatePeriodTimeout_","haveMain_","requestMain_","mainChanged","hasPendingRequest","manifestInfo","mainXml_","mainLoaded_","handleMain_","syncClientServerClock_","utcTiming","UTCTimingNode","parseUTCTimingScheme","clientOffset_","serverTime","oldMain","newMain","mainXml","parsedManifestInfo","manifestUri","periodNodes","periods","priorPeriod","priorPeriodAttributes","mpdType","getPeriodStart","contentSteeringInfo","representationInfo","inheritAttributes","parseMainXml","noChanges","playlistUpdate","removeOldMediaGroupLabels","updateMain","addEventStreamToMetadataTrack_","parsedManifest","mpl","mup","createMUPTimeout_","mediaGroupSidx","filterChangedSidxMappings","mediaID","mediaChanged","createMediaUpdateTimeout","metadataArray","eventStreamNode","cueTime","frames","defaultKID","Config","GOAL_BUFFER_LENGTH","MAX_GOAL_BUFFER_LENGTH","BACK_BUFFER_LENGTH","GOAL_BUFFER_LENGTH_RATE","INITIAL_BANDWIDTH","BANDWIDTH_VARIANCE","BUFFER_LOW_WATER_LINE","MAX_BUFFER_LOW_WATER_LINE","EXPERIMENTAL_MAX_BUFFER_LOW_WATER_LINE","BUFFER_LOW_WATER_LINE_RATE","BUFFER_HIGH_WATER_LINE","browserWorkerPolyFill","workerObj","objectUrl","createObjectURL","Blob","blob","BlobBuilder","getBlob","worker","Worker","objURL","terminate","revokeObjectURL","getWorkerString","TransmuxWorker","commonjsGlobal","Stream$8","flushSource","partialFlush","endTimeline","dinf","esds","ftyp","mfhd","minf","mvex","mvhd","trak","tkhd","mdia","mdhd","hdlr","sdtp","stbl","stsd","traf","trex","trun$1","MAJOR_BRAND","MINOR_VERSION","AVC1_BRAND","VIDEO_HDLR","AUDIO_HDLR","HDLR_TYPES","VMHD","SMHD","DREF","STCO","STSC","STSZ","STTS","videoSample","audioSample","audioTrun","videoTrun","trunHeader","MAX_UINT32$1","numbers","avc1","avcC","btrt","dref","mdat","mp4a","pasp","smhd","stco","stsc","stsz","stts","styp","tfdt","tfhd","trun","vmhd","setUint32","audioobjecttype","samplingfrequencyindex","channelcount","samplerate","sequenceNumber","trackFragments","samples","dependsOn","isDependedOn","hasRedundancy","avc1Box","sps","pps","sequenceParameterSets","pictureParameterSets","profileIdc","profileCompatibility","levelIdc","sarRatio","hSpacing","vSpacing","samplesize","trackFragmentHeader","trackFragmentDecodeTime","trackFragmentRun","sampleDependencyTable","upperWordBaseMediaDecodeTime","lowerWordBaseMediaDecodeTime","baseMediaDecodeTime","durationPresent","sizePresent","flagsPresent","compositionTimeOffset","bytesOffest","sample","isLeading","paddingValue","isNonSyncSample","degradationPriority","silence","mp4Generator","fileType","movie","sampleForFrame","frame","dataOffset","pts","dts","keyFrame","frameUtils$1","groupNalsIntoFrames","nalUnits","currentNal","currentFrame","nalCount","nalUnitType","groupFramesIntoGops","currentGop","gops","extendFirstKeyFrame","generateSampleTable","baseDataOffset","concatenateNalData","nalsByteLength","numberOfNals","generateSampleTableForFrame","concatenateNalDataForFrame","highPrefix","lowPrefix","zeroFill","ONE_SECOND_IN_TS$4","clock$2","clock$1","audioFrameUtils$1","prefixWithSilence","audioAppendStartTs","videoBaseMediaDecodeTime","baseMediaDecodeTimeTs","frameDuration","silentFrame","firstFrame","audioGapDuration","audioFillFrameCount","audioFillDuration","coneOfSilence","96000","88200","64000","48000","44100","32000","24000","16000","12000","11025","8000","metaTable","trimAdtsFramesByEarliestDts","adtsFrames","earliestAllowedDts","minSegmentDts","minSegmentPts","concatenateFrameData","sumFrameByteLengths","ONE_SECOND_IN_TS$3","trackDecodeInfo$1","clearDtsInfo","maxSegmentDts","maxSegmentPts","calculateTrackBaseMediaDecodeTime","timelineStartInfo","collectDtsInfo","captionPacketParser","parseSei","payloadType","payloadSize","parseUserData","sei","parseCaptionPackets","userData","ccData","emulationPreventionBytesPositions","USER_DATA_REGISTERED_ITU_T_T35","Stream$7","cea708Parser","CaptionStream$2","parse708captions_","parse708captions","captionPackets_","ccStreams_","Cea608Stream","cc708Stream_","Cea708Stream","newCaptionPackets","escapedRBSP","latestDts_","ignoreNextEqualDts_","numSameDts_","flushCCStreams","flushType","flushStream","presortIndex","packet","dispatchCea608Packet","dispatchCea708Packet","activeCea608Channel_","ccStream","setsTextOrXDSActive","setsChannel1Active","setsChannel2Active","CHARACTER_TRANSLATION_708","within708TextBlock","Cea708Window","windowNum","clearText","pendingNewLine","winAttr","penAttr","penLoc","penColor","rowLock","columnLock","relativePositioning","anchorVertical","anchorHorizontal","anchorPoint","rowCount","virtualRowCount","windowStyle","penStyle","rows","rowIdx","beforeRowOverflow","addText","backspace","Cea708Service","serviceNum","encoding","currentWindow","createTextDecoder","startPts","setCurrentWindow","textDecoder_","serviceProps","captionServiceEncodings","serviceName","serviceEncodings","current708Packet","services","new708Packet","add708Bytes","push708Packet","ptsVals","byte0","byte1","packet708","packetData","seq","sizeCode","pushServiceBlock","initService","handleText","multiByteCharacter","extendedCommands","defineWindow","clearWindows","deleteWindows","displayWindows","hideWindows","toggleWindows","setWindowAttributes","setPenAttributes","setPenColor","setPenLocation","isExtended","getPts","flushDisplayed","char","charCodeArray","newCode","isMultiByte","extended","currentByte","nextByte","unicode","firstByte","secondByte","fillRed","fillGreen","fillBlue","borderType","borderRed","borderGreen","borderBlue","wordWrap","printDirection","scrollDirection","justify","effectSpeed","effectDirection","displayEffect","displayedText","winId","endPts","pushCaption","textTag","penSize","italics","underline","edgeType","fontStyle","fgOpacity","fgRed","fgGreen","fgBlue","bgOpacity","bgRed","bgGreen","bgBlue","edgeRed","edgeGreen","edgeBlue","CHARACTER_TRANSLATION","getCharFromCode","ROWS","createDisplayBuffer","BOTTOM_ROW","indent","field","dataChannel","field_","dataChannel_","setConstants","char0","char1","lastControlCode_","PADDING_","RESUME_CAPTION_LOADING_","mode_","END_OF_CAPTION_","clearFormatting","displayed_","nonDisplayed_","startPts_","ROLL_UP_2_ROWS_","rollUpRows_","setRollUp","ROLL_UP_3_ROWS_","ROLL_UP_4_ROWS_","CARRIAGE_RETURN_","shiftRowsUp_","BACKSPACE_","row_","ERASE_DISPLAYED_MEMORY_","ERASE_NON_DISPLAYED_MEMORY_","RESUME_DIRECT_CAPTIONING_","isSpecialCharacter","column_","isExtCharacter","isMidRowCode","addFormatting","isOffsetControlCode","isPAC","formatting_","indentations","isColorPAC","isNormalChar","logWarning","topRow_","BASE_","EXT_","CONTROL_","OFFSET_","newBaseRow","popOn","baseRow","rollUp","paintOn","captionStream","CaptionStream","streamTypes","H264_STREAM_TYPE","ADTS_STREAM_TYPE","METADATA_STREAM_TYPE","Stream$6","TYPE_SHARED","handleRollover$1","TimestampRolloverStream$1","lastDTS","referenceDTS","type_","MetadataStream","timestampRolloverStream","TimestampRolloverStream","handleRollover","typedArrayIndexOf","typedArray","fromIndex","percentEncode$1","parseUtf8","parseIso88591$1","parseSyncSafeInteger$1","frameParsers","mimeTypeEndIndex","descriptionEndIndex","pictureType","pictureData","privateData","parseId3","parseId3Frames","frameSize","frameStart","tagSize","parseSyncSafeInteger","StreamTypes$3","id3","dispatchType","dataAlignmentIndicator","TransportPacketStream","TransportParseStream","ElementaryStream","metadataStream","Stream$4","CaptionStream$1","StreamTypes$2","MP2T_PACKET_LENGTH$1","bytesInBuffer","everything","parsePsi","parsePat","parsePmt","packetsWaitingForPmt","programMapTable","payloadUnitStartIndicator","pat","section_number","last_section_number","pmtPid","pmt","tableEnd","pid","processPes_","STREAM_TYPES","h264","adts","segmentHadPmt","timedMetadata","forceFlush","packetFlushable","trackId","pes","ptsDtsFlags","startPrefix","packetLength","parsePes","flushStreams_","m2ts$1","PAT_PID","MP2T_PACKET_LENGTH","AdtsStream$1","m2ts_1","ONE_SECOND_IN_TS$2","ADTS_SAMPLING_FREQUENCIES$1","handlePartialSegments","frameNum","skipWarn_","frameLength","protectionSkipBytes","oldBuffer","sampleCount","adtsFrameDuration","H264Stream$1","NalByteStream","PROFILES_WITH_OPTIONAL_SPS_DATA","Stream$2","ExpGolomb","workingData","workingBytesAvailable","workingWord","workingBitsAvailable","bitsAvailable","loadWord","workingBytes","availableBytes","skipBits","skipBytes","readBits","bits","valu","skipLeadingZeros","leadingZeroCount","skipUnsignedExpGolomb","skipExpGolomb","readUnsignedExpGolomb","clz","readExpGolomb","readBoolean","readUnsignedByte","syncPoint","swapBuffer","100","110","122","244","44","83","86","118","128","138","139","134","currentPts","currentDts","readSequenceParameterSet","skipScalingList","nalByteStream","nalUnitTypeCode","expGolombDecoder","lastScale","nextScale","chromaFormatIdc","picOrderCntType","numRefFramesInPicOrderCntCycle","picWidthInMbsMinus1","picHeightInMapUnitsMinus1","frameMbsOnlyFlag","scalingListCount","frameCropLeftOffset","frameCropRightOffset","frameCropTopOffset","frameCropBottomOffset","AacStream$1","H264Stream","ADTS_SAMPLING_FREQUENCIES","parseId3TagSize","isLikelyAacData","parseAdtsSize","lowThree","parseType","parseSampleRate","parseAacTimestamp","percentEncode","aacUtils","setTimestamp","bytesLeft","tempLength","VideoSegmentStream","AudioSegmentStream","Transmuxer","CoalesceStream","frameUtils","audioFrameUtils","trackDecodeInfo","m2ts","clock","AdtsStream","AacStream","ONE_SECOND_IN_TS$1","AUDIO_PROPERTIES","VIDEO_PROPERTIES","retriggerForStream","addPipelineLogRetriggers","transmuxer","pipeline","arrayEquals","generateSegmentTimingInfo","startDts","endDts","prependedContentDuration","firstSequenceNumber","setEarliestDts","earliestDts","setVideoBaseMediaDecodeTime","setAudioAppendStart","videoClockCyclesOfSilencePrefixed","gopsToAlignWith","minPTS","gopCache_","nalUnit","gopForFusion","firstGop","lastGop","resetStream_","getGopForFusion_","alignedGops","alignGopsAtEnd","alignGopsAtEnd_","alignGopsAtStart_","gop","dtsDistance","nearestGopObj","currentGopObj","nearestDistance","alignIndex","gopIndex","alignEndIndex","matchFound","trimIndex","alignGopsWith","newGopsToAlignWith","numberOfTracks","remux","remuxTracks","pendingTracks","videoTrack","pendingBoxes","pendingCaptions","pendingMetadata","pendingBytes","emittedTracks","output","audioTrack","captionStreams","setRemux","hasFlushed","transmuxPipeline_","setupAacPipeline","aacStream","audioTimestampRolloverStream","timedMetadataTimestampRolloverStream","adtsStream","coalesceStream","headOfPipeline","audioSegmentStream","getLogTrigger_","hasAudio","hasVideo","setupTsPipeline","packetStream","elementaryStream","h264Stream","videoSegmentStream","id3Frame","setBaseMediaDecodeTime","isAac","resetCaptions","inspectMp4","textifyMp4","compositionStartTime","getVideoTrackIds","getTracks","getTimescaleFromMediaHeader$1","getEmsgID3","bin","parseType_1","toUnsigned$2","parseType$3","findBox$5","subresults","findBox_1","toUnsigned$1","getUint64$4","parseTfdt$3","parseTfhd$2","baseDataOffsetPresent","sampleDescriptionIndexPresent","defaultSampleDurationPresent","defaultSampleSizePresent","defaultSampleFlagsPresent","durationIsEmpty","defaultBaseIsMoof","sampleDescriptionIndex","defaultSampleDuration","defaultSampleSize","defaultSampleFlags","baseDataOffsetIsMoof","getUint64$3","parseSampleFlags","parseTrun$2","dataOffsetPresent","firstSampleFlagsPresent","sampleDurationPresent","sampleSizePresent","sampleFlagsPresent","sampleCompositionTimeOffsetPresent","getInt32","getUint64$2","parseMp4Date","parseType$2","nalParse","avcStream","avcView","dataReferenceIndex","horizresolution","vertresolution","frameCount","numOfPictureParameterSets","nalSize","configurationVersion","avcProfileIndication","avcLevelIndication","lengthSizeMinusOne","numOfSequenceParameterSets","bufferSizeDB","edts","elst","getUint8","edits","entryCount","mediaTime","mediaRate","esId","streamPriority","decoderConfig","objectProfileIndication","decoderConfigDescriptor","audioObjectType","samplingFrequencyIndex","channelConfiguration","majorBrand","minorVersion","compatibleBrands","dataReferences","handlerType","nals","modificationTime","streamDescriptor","nextTrackId","pdin","balance","ctts","compositionOffsets","sampleOffset","stss","syncSamples","chunkOffsets","sampleToChunks","firstChunk","samplesPerChunk","sampleDescriptions","sampleSize","timeToSamples","sampleDelta","layer","alternateGroup","defaultSampleDescriptionIndex","sampleDependsOn","sampleIsDependedOn","sampleHasRedundancy","samplePaddingValue","sampleIsDifferenceSample","sampleDegradationPriority","graphicsmode","opcolor","mp4Inspector","ab","textify","inspectedMp4","parseTraf","parseTfdt","parseHdlr","parseTfhd","parseTrun","parseSidx","uint8ToCString","curChar","retString","getUint64$1","isDefined","window_1","toUnsigned","toHexString","findBox$3","parseType$1","emsg","boxData","scheme_id_uri","presentation_time","presentation_time_delta","event_duration","emsgBox","message_data","hasScheme","isValidV0Box","isValidV1Box","isValidEmsgBox","timeDelta","parseTfhd$1","parseTrun$1","parseTfdt$2","window$2","lowestTime","baseTime","timescales","trafBoxes","parsedTrun","traks","videoTrackIds","hdlrs","tkhds","tkhdVersion","codecConfig","codecBox","segmentData","parsedBox","parsedId3Frames","probe$2","getTimescaleFromMediaHeader","findBox$2","window$1","getMdatTrafPairs","trafs","mdats","mdatTrafPairs","matchingTraf","parseSamples","truns","allSamples","findBox$1","parseTfdt$1","getMdatTrafPairs$1","parseSamples$1","mapToSample","approximateOffset","captionParser","segmentCache","parsedCaptions","parsingPartial","isInitialized","isPartial","logs","isNewInit","parsedData","cachedSegment","trackNals","videoTrackId","captionNals","pair","headerInfo","seiNal","lastMatchedSample","seiNals","matchingSample","findSeiNals","parseCaptionNals","parseEmbeddedCaptions","pushNals","nal","clearParsedCaptions","resetCaptionStream","clearAllCaptions","webvttParser","parseSegment","vttCues","mdatBox","trafBox","tfdtBox","tfhdBox","trunBoxes","mdatOffset","textDecoder","sampleData","vttcBox","paylBox","sttgBox","cueText","StreamTypes$1","parsePid","parsePayloadUnitStartIndicator","parseAdaptionField","parseNalUnitType","probe$1","pusi","payloadOffset","parsePesType","parsePesTime","videoPacketContainsKeyFrame","frameBuffer","frameI","frameSyncPoint","foundKeyFrame","StreamTypes","probe","SYNC_BYTE","parseAudioPes_","pesType","endLoop","parseVideoPes_","firstKeyFrame","tsInspector","baseTimestamp","audioCount","audioTimescale","inspectAac_","parsePsi_","inspectTs_","audioBaseTimestamp","dtsTime","ptsTime","videoBaseTimestamp","adjustTimestamp_","MessageHandlers","initArray","postMessage","gopInfo","timingInfo","videoSegmentTimingInfo","presentation","audioSegmentTimingInfo","trackInfo","audioTimingInfo","wireTransmuxerEvents","trackIds","webVttParser","mp4VttCues","id3Frames","emsgData","baseStartTime","tsStartTime","timeInfo","videoStart","audioStart","timestampOffset","appendStart","onmessage","messageHandlers","processTransmux","audioAppendStart","onData","onTrackInfo","onAudioTimingInfo","onVideoTimingInfo","onVideoSegmentTimingInfo","onAudioSegmentTimingInfo","onId3","onCaptions","onDone","onEndedTimeline","onTransmuxerLog","isEndOfTimeline","triggerSegmentEventFn","transmuxedData","waitForEndedTimelineEvent","currentTransmux","videoFrameDtsTime","videoFramePtsTime","handleData_","handleGopInfo_","handleDone_","segmentInfoPayload","transmuxQueue","processAction","segmentTransmuxer","enqueueAction","workerCallback","endAction","listenForEndEvent","isArrayBuffer","transfers","REQUEST_ERRORS","WEB_VTT_CODEC","abortAll","activeXhrs","handleErrors","handleKeyResponse","finishProcessingFn","errorObj","keyInfo","parseInitSegment","initMp4Text","transmuxAndNotify","trackInfoFn","timingInfoFn","videoSegmentTimingInfoFn","audioSegmentTimingInfoFn","id3Fn","captionsFn","endedTimelineFn","dataFn","doneFn","fmp4Tracks","isMuxed","audioStartFn","audioEndFn","videoStartFn","videoEndFn","probeResult","transmux","handleSegmentBytes","bytesAsUint8Array","isLikelyFmp4MediaSegment","isFmp4","parseMp4TextSegment","audioCodec","videoCodec","finishLoading","decrypt","encryptedBytes","decryptionWorker","decryptionHandler","decrypted","keyBytes","decryptError","encrypted","mediaSegmentRequest","xhrOptions","abortFn","progressFn","didError","segmentFinish","requestId","decryptedBytes","decryptSegment","endOfAllRequests","parseError","waitForCompletion","keyRequestOptions","keyRequestCallback","keyXhr","mapKeyRequestOptions","mapKeyRequestCallback","mapKeyXhr","initSegmentOptions","initSegmentRequestCallback","handleInitSegmentResponse","initSegmentXhr","segmentRequestOptions","segmentRequestCallback","newBytes","stringToArrayBuffer","lastReachedChar","stats","getRequestStats","handleSegmentResponse","segmentXhr","progressEvent","getProgressStats","firstBytesReceivedAt","handleProgress","loadendState","activeXhr","calledAbortFn","handleLoadEnd","logFn$1","isMaat","mediaAttributes","unwrapCodecList","codecList","codecCount","codecObj","codecsForPlaylist","codecInfo","getCodecs","audioGroup","defaultCodecs","audioGroupId","audioType","codecsFromDefault","logFn","representationToString","safeGetComputedStyle","stableSort","sortFn","newArray","cmp","comparePlaylistBandwidth","leftBandwidth","rightBandwidth","simpleSelector","playerBandwidth","limitRenditionByPlayerDimensions","playlistController","getAudioTrackPlaylists_","sortedPlaylistReps","rep","enabledPlaylistReps","bandwidthPlaylistReps","highestRemainingBandwidthRep","bandwidthBestRep","chosenRep","haveResolution","resolutionBestRepList","resolutionBestRep","resolutionPlusOneList","resolutionPlusOneSmallest","resolutionPlusOneRep","leastPixelDiffRep","leastPixelDiffSelector","leastPixelDiffList","pixelDiff","lastBandwidthSelector","pixelRatio","useDevicePixelRatio","customPixelRatio","systemBandwidth","playlistController_","compactSegmentUrlDescription","dateRangeAttr","scte35Out","scte35In","dateRangeKeysToOmit","createMetadataTrackIfNotExists","inbandTextTracks","metadataTrack_","inBandMetadataTrackDispatchType","removeCuesFromTrack","finite","MIN_SEGMENT_DURATION_TO_SAVE_STATS","segmentInfoString","startOfSegment","mediaIndex","segmentLen","isSyncRequest","independent","hasPartIndex","zeroBasedPartCount","timingInfoPropertyForMedia","shouldWaitForTimelineChange","timelineChangeController","loaderType","audioDisabled","lastMainTimelineChange","lastTimelineChange","pendingAudioTimelineChange","pendingTimelineChange","checkAndFixTimelines","segmentLoader","pendingSegment_","timelineChangeController_","currentTimeline_","loaderType_","audioDisabled_","pendingMainTimelineChange","hasPendingTimelineChanges","differentPendingChanges","shouldFixBadTimelineChanges","isAudioTimelineBehind","segmentTooLong","maxDuration","isEncrypted","ke","isMediaInitialization","SegmentLoader","mediaSource","throughput","roundTrip","resetStats_","hasPlayed_","hasPlayed","seekable_","seeking_","mediaSource_","currentMediaInfo_","startingMediaInfo_","segmentMetadataTrack_","segmentMetadataTrack","goalBufferLength_","goalBufferLength","sourceType_","sourceType","sourceUpdater_","sourceUpdater","inbandTextTracks_","state_","shouldSaveSegmentTimingInfo_","useDtsForTimestampOffset_","useDtsForTimestampOffset","captionServices_","checkBufferTimeout_","shouldForceTimestampOffsetAfterResync_","xhrOptions_","pendingSegments_","isPendingTimestampOffset_","gopBuffer_","timeMapping_","safeAppend_","appendInitSegment_","playlistOfLastInitSegment_","callQueue_","loadQueue_","metadataQueue_","waitingOnRemove_","quotaExceededErrorRetryTimeout_","activeInitSegmentId_","initSegments_","cacheEncryptionKeys_","cacheEncryptionKeys","keyCache_","decrypter_","decrypter","syncController_","syncController","syncPoint_","transmuxer_","createTransmuxer_","triggerSyncInfoUpdate_","isEndOfStream_","ended_","fetchAtBuffer_","newState","hasEnoughInfoToAppend_","processCallQueue_","hasEnoughInfoToLoad_","processLoadQueue_","getMediaSequenceSync","mediaBytesTransferred","mediaRequests","mediaRequestsAborted","mediaRequestsTimedout","mediaRequestsErrored","mediaTransferDuration","mediaSecondsLoaded","mediaAppends","abort_","removeAudio","clearPendingTimelineChange","monitorBuffer_","abortRequests","getMediaInfo_","videoBuffered","audioBuffered","storedMap","storedKey","playlist_","couldBeginLoading_","init_","resetEverything","newPlaylist","syncInfo","setDateTimeMappingForStart","oldId","mediaSequenceSync_","buffered_","diagnostics","resyncLoader","resetLoader","mediaSequenceDiff","saveExpiredSegmentInfo","resetAppendedStatus","force","removesRemaining","removeFinished","mapping","updatedBuffer","removeGopBuffer","removeVideo","monitorBufferTick_","fillBuffer_","updating","chooseNextRequest_","loadSegment_","appendedLastSegment","appendedLastPart","bufferedTime","preloaded","haveEnoughBuffer","getSyncPoint","targetTime","timelineSegments","getSyncSegmentCandidate","isReliable","getSyncInfoFromMediaSequenceSync_","mediaInfoForTime","nextSegment","hasIndependentSegments","lastSegmentLastPart","forceTimestampOffset","generateSegmentInfo_","finalTargetTime","mediaSequenceSyncInfo","getSyncInfoForTime","isAppended","nextMediaSequenceSyncInfo","overrideCheck","timestampOffsetForSegment_","audioBufferedEnd","audioTimestampOffset","currentTimePts","gopsSafeToAlignWith","videoTimestampOffset","timestampOffsetForSegment","measuredBandwidth","requestTimeRemaining","timeUntilRebuffer$1","timeUntilRebuffer","switchCandidate","compatiblePlaylists","enabledPlaylists","rebufferingEstimates","numRequests","rebufferingImpact","noRebufferingPlaylists","estimate","minRebufferMaxBandwidthSelector","timeSavedBySwitching","minimumTimeSaving","simpleSegment","earlyAbortWhenNeeded_","checkForAbort_","checkForIllegalMediaSwitch","akeys","bkeys","shallowEqual","timeType","timingInfoProperty","captionData","hasAppendedData_","handleCaptions_","captionTracks","captionTrack","trackName","getTrackById","captionService","createCaptionsTrackIfNotExists","captionArray","Cue","addCaptionData","handleId3_","callQueue","fun","loadQueue","getCurrentMediaInfo_","setTimeMapping_","updateMediaSecondsLoaded_","initSegmentForMap","segmentKey","useVideoTimingInfo","firstVideoFrameTimeForData","trueSegmentStart_","currentStart","currentVideoTimestampOffset","updateAppendInitSegmentStatus","updateSourceBufferTimestampOffset_","updateTimingInfoEnd_","saveSegmentTimingInfo","shouldSaveTimelineMapping","processMetadataQueue_","appendData_","changedTimestampOffset","audioBufferStart","audioBufferEnd","videoBufferStart","videoBufferEnd","appendToSourceBuffer_","timeToRemoveUntil","MIN_BACK_BUFFER","handleQuotaExceededError_","segmentObj","concatSegments","appendBuffer","handleAppendError_","segmentTimingInfo","transmuxedDecodeStart","transmuxedDecodeEnd","getInitSegmentAndUpdateState_","trimBackBuffer_","updateTransmuxerAndRequestSegment_","shouldUpdateTransmuxerTimestampOffset_","createSimplifiedSegmentObj_","isEndOfStream","isWalkingForward","isDiscontinuity","handleAbort_","handleProgress_","handleTrackInfo_","handleTimingInfo_","handleSegmentTimingInfo_","segmentRequestFinished_","removeToTime","trimTime","maxTrimTime","safeBackBufferTrimTime","previousSegment","bandwidthInfo","saveTransferStats_","handleTimeout_","saveBandwidthRelatedStats_","updateGopBuffer","waitForAppendsToComplete_","timelineMapping","mappingForTimeline","waitForVideo","waitForAudio","waitingOnAppends","checkAppendsDone_","videoQueueCallback","audioQueueCallback","handleAppendsDone_","illegalMediaSwitchError","startingMedia","illegalMediaSwitch","didChange","getSegmentStartTimeForTimestampOffsetCalculation_","prioritizedTimingInfo","markAppended","segmentDurationMessage","timingInfos","typeTimingInfo","mediaDuration","isSegmentWayTooLong","isSegmentSlightlyTooLong","segmentTooLongMessage","severity","getTroublesomeSegmentDurationMessage","recordThroughput_","addSegmentMetadataCue_","badSegmentGuess","badPartGuess","endOfStream","segmentProcessingTime","segmentProcessingThroughput","bufferTypes","sourceBuffer","queuePending","shiftQueue","queueIndex","queueEntry","nextQueueIndexOfType","cleanupBuffer","titleType","inSourceBuffers","sourceBuffers","actions","onError","mime","addSourceBuffer","removeSourceBuffer","newCodecBase","oldCodec","codecsChangeInfo","changeType","pushQueue","onUpdateend","descriptiveString","bufferedRangesStr","bufferedRangesToString","SourceUpdater","sourceopenListener_","audioTimestampOffset_","videoTimestampOffset_","delayedAudioAppendQueue_","videoAppendQueued_","onVideoUpdateEnd_","onAudioUpdateEnd_","onVideoError_","videoError_","onAudioError_","audioError_","createdSourceBuffers_","initializedEme_","triggeredReady_","hasCreatedSourceBuffers","hasInitializedAnyEme","addOrChangeSourceBuffers","canRemoveSourceBuffer","canChangeType","processedAppend_","videoBuffer","que","audioBuffer","bufferA","bufferB","arity","extents","bufferIntersection","uint8ToUtf8","uintArray","VTT_LINE_TERMINATORS","NoVttJsError","VTTSegmentLoader","subtitlesTrack_","featuresNativeTextTracks_","loadVttJs","combinedByteLength","combinedSegment","timestampOffsetForTimeline","checkTimestampOffset","skipEmptySegments_","stopForError","isMp4WebVttSegmentWithCues","requested","parseVTTCues_","updateTimeMapping_","timelines","uniqueCues","cueKey","removeDuplicateCuesFromTrack","isVttType","isTextResult","vttCue","cueSetting","keyValString","decodeBytesToString","timestampmap","MPEGTS","LOCAL","parseMp4VttCues_","mapData","mappingObj","handleRollover_","firstStart","lastStart","valueIn90khz","referenceIn90khz","findAdCue","adStartTime","adEndTime","SyncInfo","appended","start_","end_","segmentIndex_","partIndex_","appended_","SyncInfoData","segmentSyncInfo","partsSyncInfo","segmentSyncInfo_","partsSyncInfo_","partSyncInfo","MediaSequenceSync","storage_","diagnostics_","isReliable_","syncInfoData","resetAppendStatus","isReliablePlaylist_","updateStorage_","calculateBaseTime_","isInRange","startingMediaSequence","startingTime","newStorage","newDiagnostics","currentMediaSequence","prevSyncInfoData","segmentStart","segmentEnd","segmentIsAppended","currentPartStart","partStart","partEnd","partIsAppended","fallback","minMediaSequenceFromStorage","DependantMediaSequenceSync","parent_","getSyncInfoForMediaSequence","syncPointStrategies","mediaSequenceSync","timelineToDatetimeMappings","lastDistance","datetimeMapping","discontinuitySync","discontinuities","SyncController","vtt","mediaSequenceStorage_","syncPoints","runStrategies_","syncPointInfo","strategy","selectSyncPoint_","bestSyncPoint","bestDistance","bestStrategy","newDistance","lastRemovedSegment","playlistTimestamp","didCalculateSegmentTimeMapping","calculateSegmentTimeMapping_","saveDiscontinuitySyncInfo_","dateTime","accuracy","mediaIndexDiff","TimelineChangeController","pendingTimelineChanges_","lastTimelineChanges_","timelineChangeInfo","Decrypter","aesTables","AES","tables","encTable","decTable","sbox","sboxInv","xInv","x4","x8","tEnc","tDec","precompute","_tables","keyLen","rcon","encKey","decKey","encrypted0","encrypted1","encrypted2","encrypted3","out","a2","c2","nInnerRounds","kIndex","table0","table1","table2","table3","AsyncStream","jobs","timeout_","processJob_","job","ntoh","word","initVector","STEP","encrypted32","Int32Array","asyncStream_","decryptChunk_","padded","decipher","decrypted32","init0","init1","init2","init3","wordIx","audioTrackKind_","stopLoaders","activePlaylistLoader","startLoaders","playlistLoader","excludePlaylist","activeTrack","activeGroup","defaultTrack","onTrackChanged","setupListeners","requestOptions","segmentLoaders","initialize","variantLabel","isMainPlaylist","useForcedSubtitles","groupMatch","SteeringManifest","priority_","pathwayClones_","version_","ttl_","reloadUri_","ContentSteeringController","currentPathway","defaultPathway","availablePathways_","steeringManifest","proxyServerUrl_","manifestType_","ttlTimeout_","request_","currentPathwayClones","nextPathwayClones","excludedSteeringManifestURLs","xhr_","getBandwidth_","steeringTag","serverUri","steeringUri","startsWith","decodeDataUriManifest_","reloadUri","pathwayId","defaultServiceLocation","proxyServerURL","getRequestURI","errorInfo","retrySeconds","startTTLTimeout_","steeringManifestJson","assignSteeringProperties_","parsedMetadata","contentSteeringManifest","steeringUrl","steeringUrlObject","proxyServerUrlObject","encodeURI","setSteeringParams_","dataUri","urlObject","getPathway","networkThroughput","pathwayKey","throughputKey","steeringJson","ttl","TTL","pathwayClones","nextPathway","pathwaysByPriority","chooseNextPathway","proxyURI","setProxyServerUrl_","steeringURI","ttlMS","requestSteeringManifest","clearTTLTimeout_","baseURL","newTag","Vhs$1","loaderStats","sumLoaderStat","stat","audioSegmentLoader_","mainSegmentLoader_","PlaylistController","fastQualityChange_","externVhs","useCueTags","enableLowInitialPlaylist","bufferBasedABR","experimentalUseMMS","maxPlaylistRetries","useCueTags_","usingManagedMediaSource_","cueTagsTrack_","requestOptions_","pauseLoading","mediaTypes_","getActiveGroup","onGroupChanged","lastTrack_","createMediaTypes","disableRemotePlayback","handleDurationChange_","handleSourceOpen_","handleSourceEnded_","keyStatusMap_","segmentLoaderSettings","setupMainPlaylistLoaderListeners_","subtitleSegmentLoader_","onLoad","contentSteeringController_","setupSegmentLoaderListeners_","startABRTimer_","stopABRTimer_","triggeredFmp4Usage","loadOnPlay_","timeToLoadedData__","mainAppendsToLoadedData__","audioAppendsToLoadedData__","timeToLoadedDataStart","mainAppendsToLoadedData_","audioAppendsToLoadedData_","nextPlaylist","selectPlaylist","shouldSwitchToMedia_","switchMedia_","newId","renditionInfo","dashMediaPlaylists","abrTimer_","checkABR_","defaultPlaylists","groupKeys","defaultGroup","requestTimeout","audioSegmentLoader","mainSegmentLoader","variants","groupPropertyList","previousActiveLoader","lastGroup","lastGroup_","onGroupChanging","lastTrack","pc","setAudio","activeTrack_","onAudioTrackChanged","setupMediaGroups","triggerPresenceUsage_","setupFirstPlay","selectedMedia","attachContentSteeringListeners_","initContentSteeringController_","excludeUnsupportedVariants_","selectInitialPlaylist","initialMedia_","handleUpdatedMediaPlaylist","playlistToExclude","isPaused","waitingForFastQualityPlaylistReceived_","runFastQualitySwitch_","lastExcludeReason_","stuckAtPlaylistEnd_","updateAdCues_","updateDuration","defaultDemuxed","audioGroupKeys","currentPlaylist","bufferLowWaterLine","bufferHighWaterLine","sharedLogLine","isBuffered","forwardBuffer","maxBufferLowWaterLine","nextBandwidth","currBandwidth","logLine","shouldSwitchToMedia","onSyncInfoUpdate_","onEndOfStream","delegateLoaders_","updateCodecs","tryToCreateSourceBuffers_","getCodecsOrExclude_","startPoint","mainMediaInfo","getExpiredTime","absolutePlaylistEnd","pathwayAttribute_","reIncludeDelay","excludePathway","excludeThenChangePathway_","addAvailablePathway","reincluded","delayDuration","fnNames","loaders","dontFilterPlaylist","loader","calculatedEnd","mainSeekable","audioSeekable","mainStart","mainEnd","audioEnd","getSeekableRange_","oldSeekable","computeFinalSeekable_","seekableRanges","updateDuration_","setDuration","usingAudioLoader","hasMainMediaInfo","hasAudioMediaInfo","getPendingSegmentPlaylist","playlistCodecs","supportFunction","unsupportedCodecs","unsupportedAudio","supporter","switchMessages","newCodec","areMediaTypesKnown_","createSourceBuffers","excludeIncompatibleVariants_","ids","unsupported","codecCount_","videoDetails","audioDetails","exclusionReasons","variantCodecs","variantCodecCount","variantVideoDetails","variantAudioDetails","adOffset","adTotal","updateAdCues","newMax","metadataTrack","addDateRangeMetadata","videoDuration","deprecateOldCue","cuesArray","cuesGroupedByStartTime","timeSlot","sortedStartTimes","cueGroup","finiteDuration","nextTime","addMetadata","assignTagProperties","clearAvailablePathways","didDASHTagChange","availablePathways","getAvailablePathways","newPathways","didPathwaysChange","resetContentSteeringController_","handlePathwayClones_","didEnablePlaylists","differentPathwayId","noExcludeUntil","changeSegmentPathway_","updateOrDeleteClone","oldClone","equalPathwayClones_","addClonePathway","aParams","bParams","switchMediaForDASHContentSteering_","nonUsableKeyStatusCount","NON_USABLE","keyIdSet","getKeyIdSet","hasUsableKeyStatus","nonUsableExclusion","isNonHD","excludedForNonUsableKey","formattedKeyIdString","uInt8Buffer","padStart","bufferToHexString","addKeyStatus_","excludeNonUsableThenChangePlaylist_","excludeNonUsablePlaylistsByKeyId_","Representation","vhsHandler","qualityChangeFunction","playlistID","changePlaylistFn","incompatible","currentlyEnabled","timerCancelEvents","PlaybackWatcher","allowSeeksWithinUnsafeLiveWindow","liveRangeSafeTimeDelta","playedRanges_","consecutiveUpdates","lastRecordedTime","checkCurrentTimeTimeout_","playHandler","monitorCurrentTime_","canPlayHandler","waitingHandler","techWaiting_","cancelTimerHandler","resetTimeUpdate_","loaderTypes","loaderChecks","resetSegmentDownloads_","updateend","checkSegmentDownloads_","setSeekingHandlers","seekingAppendCheck_","fixesBadSeeks_","clearSeekingAppendCheck_","watchForBadSeeking_","checkCurrentTime_","isBufferedDifferent","isRangeDifferent","bufferedRanges","waiting_","playedRanges","afterSeekableWindow_","beforeSeekableWindow_","minAppendedDuration","bufferedToCheck","nextRange","livePoint","videoUnderflow_","skipTheGap_","allowedEnd","isLLHLS","lastVideoRange","videoRange","audioRange","gapFromVideoUnderflow_","scheduledCurrentTime","gapInfo","gaps","findGaps","defaultOptions","errorInterval","IWillNotUseThisInPlugins","initPlugin","lastCalled","localOptions","loadedMetadataHandler","getSource","cleanupEvents","reloadSourceOnError","version$4","STANDARD_PLAYLIST_SELECTOR","INITIAL_PLAYLIST_SELECTOR","movingAverageBandwidthSelector","decay","average","lastSystemBandwidth","comparePlaylistResolution","leftWidth","rightWidth","LOCAL_STORAGE_KEY","handleVhsMediaChange","getVhsLocalStorage","storedObject","addOnRequestHook","addOnResponseHook","removeOnRequestHook","removeOnResponseHook","supportsNativeHls","canItPlay","supportsNativeDash","supportsTypeNatively","onRequest","onResponse","offRequest","offResponse","Component","VhsHandler","initialBandwidth","_player","source_","ignoreNextSeekingEvent_","setOptions_","overrideNative","overrideNativeAudioTracks","overrideNativeVideoTracks","featuresNativeVideoTracks","useBandwidthFromLocalStorage","useNetworkInformationApi","playbackWatcherOptions","playbackWatcher_","attachStreamingEventListeners_","defaultSelector","playerBandwidthEst","networkInformation","tenMbpsAsBitsPerSecond","networkInfoBandwidthEstBitsPerSec","downlink","invBandwidth","invThroughput","mediaRequests_","mediaRequestsAborted_","mediaRequestsTimedout_","mediaRequestsErrored_","mediaTransferDuration_","mediaBytesTransferred_","mediaSecondsLoaded_","mediaAppends_","mainAppendsToLoadedData","audioAppendsToLoadedData","appendsToLoadedData","appendsToLoadedData_","timeToLoadedData","timeToLoadedData_","currentTech","playerDimensions","currentDimensions","objectToStore","updateVhsLocalStorage","setupEme_","setupQualityLevels_","mediaSourceUrl_","audioPlaylistLoader","sourceKeySystems","audioMedia","mainPlaylists","eme","initializeMediaKeys","keySystemsOptionsArr","keySystems","keySystemsArr","keySystemsOptions","keySystemsObj","keySystemOptions","initializationFinishedPromises","keySessionCreatedPromises","waitForKeySessionCreation","initializedEme","createKeySessions_","didSetupEmeOptions","sourceOptions","audioPlaylist","videoContentType","audioContentType","keySystemContentTypes","emeKeySystems","setupEmeOptions","updatePlaylistByKeyStatus","handleWaitingForKey_","qualityLevels_","addQualityLevel","handleVhsLoadedMetadata","findSegmentForPlayerTime","seekTime","programTimeObject","mediaSeconds","playerTime","offsetFromSegmentStart","playerTimeToProgramTime","toISOString","getProgramTime","VhsSourceHandler","setupXhrHooks_","simpleType","getOverrideNative","defaultOverrideNative","videoElement","EPSILON","childElementCount","nativePointer","Touch","startCallback","moveCallback","endCallback","onPointerStart","onMove","currentPointers","triggerPointerStart","onPointerEnd","onWindowBlur","triggerPointerEnd","startPointers","setOptions","Init","Ready","Panning","Mousemove","Destroy","PANUP","PANDOWN","PANLEFT","PANRIGHT","ZOOMIN","ZOOMOUT","TOGGLEZOOM","TOGGLE1TO1","ITERATEZOOM","ROTATECCW","ROTATECW","FLIPX","FLIPY","FITX","FITY","RESET","TOGGLEFS","panMode","dragMinThreshold","lockAxis","mouseMoveFactor","mouseMoveFriction","pinchToZoom","panOnlyZoomed","minScale","maxScale","friction","dragFriction","decelFriction","dblClick","wheel","wheelLimit","spinner","bounds","infinite","rubberband","bounce","maxVelocity","transformParent","isLoading","canZoomIn","canZoomOut","isDraggable","isDragging","inFullscreen","htmlHasFullscreen","l10n","E","P","C","M","O","A","L","R","I","fitWidth","fitHeight","isTouchDevice","fullWidth","fullScale","containerRect","targetScale","isResting","HTMLImageElement","isBouncingX","isBouncingY","ignoreBounds","checkBounds","inBounds","fullHeight","initContent","attachPlugins","Plugins","isContentLoading","cn","HTMLPictureElement","queueMicrotask","updateMetrics","coverScale","updateTimer","isMobile","onWheel","pointerTracker","onPointerDown","onPointerMove","onPointerUp","onMouseMove","onKeydown","clickTimer","setTargetForce","isScaling","setTransform","setEdgeForce","rAF","getBounds","xDiff","yDiff","maxHeight","getMatrix","DOMPoint","matrixTransform","contentWidth","contentHeight","DOMMatrixReadOnly","attachObserver","dragOffset","trackingPoints","startDecelAnim","getSelection","panzoomChange","panzoomAction","applyChange","dragStart","clicks","pwt","composedPath","removeAllRanges","addTrackingPoint","lockedAxis","isInfinite","originX","originY","panX","panY","isTicking","visualViewport","zoomWithWheel","panWithMouse","toggleFS","requestTick","calculateContentDim","paddingTop","paddingBottom","naturalWidth","SVGElement","baseVal","naturalHeight","T","zoomTo","updateControls","calculateBounds","getNextScale","flipX","flipY","DOMMatrix","multiply","rotate","clampTargetBounds","pmme","cwd","detachObserver","detachPlugins","D","B","H","HTMLElement","thumb","thumbSrc","thumbEl","thumbElSrc","isDom","customClass","dim","N","W","pages","cleanup","isDynamic","createItem","onRefresh","hasDots","isBeforePrev","isPrev","isCurrent","isNext","isAfterNext","dotTpl","dynamicFrom","maxCount","minCount","X","Y","V","isRTL","addBtn","nextTpl","prevTpl","Z","nav","initialPage","onNavReady","onTargetReady","onNavCreateSlide","onNavClick","onNavTouch","onTargetChange","panzoom","getPageForSlide","Sync","markSelectedSlide","prevPage","addAsNavFor","addAsTargetFor","U","Dots","G","K","J","Q","contentDim","viewportDim","userOptions","userPlugins","processOptions","bp","initLayout","initSlides","setInitialPosition","initPanzoom","isLTR","setViewportHeight","onDecel","onBeforeTransform","onEndAnimation","onSlideTo","inTransition","getPageFromIndex","clearTransitions","createSlideEl","onAnimationEnd","onChange","getVisibleSlides","lazyLoadSlide","removeSlideEl","markSelectedSlides","repositionSlides","lazySrcset","lazySrc","backgroundImage","lazyLoadImg","animationName","setPageFromPosition","pageIndex","getPageFromPosition","carouselPage","carouselNext","carouselPrev","lp","flipInfiniteTrack","manageSlideVisiblity","transitionTo","panTo","getSlideMetrics","createPages","processPages","setInitialPage","slidesPerPage","Panzoom","dragFree","adaptiveHeight","isSelected","NEXT","PREV","GOTO","et","nt","st","ot","webkitFullscreenEnabled","ALLOW_KEYBOARD_INPUT","exit","at","autoFocus","backdropClick","Carousel","closeExisting","commonCaption","compact","contentClick","contentDblClick","defaultType","defaultDisplay","dragToClose","Fullscreen","autoStart","groupAll","groupAttr","hideClass","hideScrollbar","idle","Escape","Delete","Backspace","PageUp","PageDown","ArrowUp","ArrowDown","ArrowRight","ArrowLeft","CLOSE","MODAL","IMAGE_ERROR","ELEMENT_NOT_FOUND","AJAX_NOT_FOUND","AJAX_FORBIDDEN","IFRAME_ERROR","TOGGLE_ZOOM","TOGGLE_THUMBS","TOGGLE_SLIDESHOW","TOGGLE_FULLSCREEN","DOWNLOAD","placeFocusBack","showClass","tpl","trapFocus","Closing","CustomClosing","Loading","Opening","ht","ut","Oe","getInstance","carousel","getSlide","slug","triggerEl","fancybox","ft","mt","Hash","jumpTo","vt","bt","yt","wt","optionFor","setImage","getZoomInfo","isClosing","isOpeningSlide","zoomIn","revealContent","prevMouseMoveEvent","zoomToFull","zoomToCover","zoomToMax","setError","clearContent","draggable","fetchPriority","setContent","isCompact","onCreateSlide","onRemoveSlide","onClose","initialSize","protected","zoomOpacity","SuppressedError","Et","St","Pt","Ct","Tt","Mt","URLSearchParams","At","processType","iframeEl","placeholderEl","playVideo","poller","isCurrentSlide","resizeIframe","setAspectRatio","HTMLIFrameElement","DONE","autoSize","flex","nocookie","getOwnPropertySymbols","propertyIsEnumerable","videoId","videoFormat","setInlineContent","loadAjaxContent","setIframeContent","onBeforeInitSlide","onSelectSlide","onUnselectSlide","onClearContent","onMessage","iframeAttr","allow","scrolling","videoAutoplay","videoRatio","videoTpl","vimeo","byline","dnt","youtube","enablejsapi","fs","zt","Rt","kt","It","removeProgressBar","inHover","progressBar","createProgressBar","onTimerEnd","onSettle","pauseOnHover","progressParentEl","showProgress","Dt","endIdle","ref","onPrepare","playOnStart","Ft","hasThumbs","thumbTpl","jt","Hidden","Bt","Ht","Nt","_t","$t","thumbHeight","isModern","thumbGap","shiftModern","updateProps","resizeModernSlide","getThumb","thumbExtraGap","getSlides","setProps","carouselIndex","elementFromPoint","getShift","onInitSlide","onInitSlides","Wt","showOnStart","Xt","qt","Yt","footer","createSlide","onInit","Vt","panLeft","icon","panRight","panUp","panDown","zoomOut","toggle1to1","toggleZoom","iterateZoom","rotateCCW","rotateCW","fitX","fitY","Zt","Disabled","viewBox","Kt","Jt","Qt","createContainer","fancyboxToggleThumbs","fancyboxToggleFullscreen","toggleFullscreen","fancyboxToggleSlideshow","isActive","downloadSrc","removeContainer","absolute","infobar","download","slideshow","te","Html","Images","Slideshow","Toolbar","ie","se","oe","ae","ce","he","de","ue","pe","fe","ve","be","ye","we","xe","Ee","Se","Pe","Ce","Te","Me","userSlides","initCarousel","startedFs","manageCaption","idleTimer","setIdle","checkFocus","downloadFilename","onMousemove","onFocus","resetIdle","toggleIdle","isTopmost","clearIdle","closeBtnEl","captionEl","fancyboxCaption","ignoreFocusChange","origTabindex","lastFocus","manageCloseBtn","spinnerEl","proceedClose","openers","fromEvent","fancyboxTrigger","fancyboxIndex","fromNodes","nameOffset","verOffset","ix","nAgt","browserName","fullVersion","cookieModalClass","linkElement","targetLink","Fancybox","rateCheckbox","rateInput","rangeInput","startDiv","stopDiv","readOnly","tooltip","tooltipText","insertAdjacentHTML","appName","appVersion","getDetail","hasTouch","documentHtml","browserVersion","notificationType","identityNumber","kvkk","loadPage","slider","tabs","chartJs","accordion","customSelect","inputMoney","validation"],"mappings":"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,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV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","file":"assets/js/main.js","sourcesContent":["function _extends() {\n module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"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;","\"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() {}","\"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;","\"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;","'use strict'\n\n/**\n * Ponyfill for `Array.prototype.find` which is only available in ES6 runtimes.\n *\n * Works with anything that has a `length` property and index access properties, including NodeList.\n *\n * @template {unknown} T\n * @param {Array | ({length:number, [number]: T})} list\n * @param {function (item: T, index: number, list:Array | ({length:number, [number]: T})):boolean} predicate\n * @param {Partial>?} ac `Array.prototype` by default,\n * \t\t\t\tallows injecting a custom implementation in tests\n * @returns {T | undefined}\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find\n * @see https://tc39.es/ecma262/multipage/indexed-collections.html#sec-array.prototype.find\n */\nfunction find(list, predicate, ac) {\n\tif (ac === undefined) {\n\t\tac = Array.prototype;\n\t}\n\tif (list && typeof ac.find === 'function') {\n\t\treturn ac.find.call(list, predicate);\n\t}\n\tfor (var i = 0; i < list.length; i++) {\n\t\tif (Object.prototype.hasOwnProperty.call(list, i)) {\n\t\t\tvar item = list[i];\n\t\t\tif (predicate.call(undefined, item, i, list)) {\n\t\t\t\treturn item;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * \"Shallow freezes\" an object to render it immutable.\n * Uses `Object.freeze` if available,\n * otherwise the immutability is only in the type.\n *\n * Is used to create \"enum like\" objects.\n *\n * @template T\n * @param {T} object the object to freeze\n * @param {Pick = Object} oc `Object` by default,\n * \t\t\t\tallows to inject custom object constructor for tests\n * @returns {Readonly}\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze\n */\nfunction freeze(object, oc) {\n\tif (oc === undefined) {\n\t\toc = Object\n\t}\n\treturn oc && typeof oc.freeze === 'function' ? oc.freeze(object) : object\n}\n\n/**\n * Since we can not rely on `Object.assign` we provide a simplified version\n * that is sufficient for our needs.\n *\n * @param {Object} target\n * @param {Object | null | undefined} source\n *\n * @returns {Object} target\n * @throws TypeError if target is not an object\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n * @see https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-object.assign\n */\nfunction assign(target, source) {\n\tif (target === null || typeof target !== 'object') {\n\t\tthrow new TypeError('target is not an object')\n\t}\n\tfor (var key in source) {\n\t\tif (Object.prototype.hasOwnProperty.call(source, key)) {\n\t\t\ttarget[key] = source[key]\n\t\t}\n\t}\n\treturn target\n}\n\n/**\n * All mime types that are allowed as input to `DOMParser.parseFromString`\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString#Argument02 MDN\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#domparsersupportedtype WHATWG HTML Spec\n * @see DOMParser.prototype.parseFromString\n */\nvar MIME_TYPE = freeze({\n\t/**\n\t * `text/html`, the only mime type that triggers treating an XML document as HTML.\n\t *\n\t * @see DOMParser.SupportedType.isHTML\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring WHATWG HTML Spec\n\t */\n\tHTML: 'text/html',\n\n\t/**\n\t * Helper method to check a mime type if it indicates an HTML document\n\t *\n\t * @param {string} [value]\n\t * @returns {boolean}\n\t *\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring \t */\n\tisHTML: function (value) {\n\t\treturn value === MIME_TYPE.HTML\n\t},\n\n\t/**\n\t * `application/xml`, the standard mime type for XML documents.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xml IANA MimeType registration\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.1 RFC 7303\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */\n\tXML_APPLICATION: 'application/xml',\n\n\t/**\n\t * `text/html`, an alias for `application/xml`.\n\t *\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.2 RFC 7303\n\t * @see https://www.iana.org/assignments/media-types/text/xml IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */\n\tXML_TEXT: 'text/xml',\n\n\t/**\n\t * `application/xhtml+xml`, indicates an XML document that has the default HTML namespace,\n\t * but is parsed as an XML document.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xhtml+xml IANA MimeType registration\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument WHATWG DOM Spec\n\t * @see https://en.wikipedia.org/wiki/XHTML Wikipedia\n\t */\n\tXML_XHTML_APPLICATION: 'application/xhtml+xml',\n\n\t/**\n\t * `image/svg+xml`,\n\t *\n\t * @see https://www.iana.org/assignments/media-types/image/svg+xml IANA MimeType registration\n\t * @see https://www.w3.org/TR/SVG11/ W3C SVG 1.1\n\t * @see https://en.wikipedia.org/wiki/Scalable_Vector_Graphics Wikipedia\n\t */\n\tXML_SVG_IMAGE: 'image/svg+xml',\n})\n\n/**\n * Namespaces that are used in this code base.\n *\n * @see http://www.w3.org/TR/REC-xml-names\n */\nvar NAMESPACE = freeze({\n\t/**\n\t * The XHTML namespace.\n\t *\n\t * @see http://www.w3.org/1999/xhtml\n\t */\n\tHTML: 'http://www.w3.org/1999/xhtml',\n\n\t/**\n\t * Checks if `uri` equals `NAMESPACE.HTML`.\n\t *\n\t * @param {string} [uri]\n\t *\n\t * @see NAMESPACE.HTML\n\t */\n\tisHTML: function (uri) {\n\t\treturn uri === NAMESPACE.HTML\n\t},\n\n\t/**\n\t * The SVG namespace.\n\t *\n\t * @see http://www.w3.org/2000/svg\n\t */\n\tSVG: 'http://www.w3.org/2000/svg',\n\n\t/**\n\t * The `xml:` namespace.\n\t *\n\t * @see http://www.w3.org/XML/1998/namespace\n\t */\n\tXML: 'http://www.w3.org/XML/1998/namespace',\n\n\t/**\n\t * The `xmlns:` namespace\n\t *\n\t * @see https://www.w3.org/2000/xmlns/\n\t */\n\tXMLNS: 'http://www.w3.org/2000/xmlns/',\n})\n\nexports.assign = assign;\nexports.find = find;\nexports.freeze = freeze;\nexports.MIME_TYPE = MIME_TYPE;\nexports.NAMESPACE = NAMESPACE;\n","var conventions = require(\"./conventions\");\nvar dom = require('./dom')\nvar entities = require('./entities');\nvar sax = require('./sax');\n\nvar DOMImplementation = dom.DOMImplementation;\n\nvar NAMESPACE = conventions.NAMESPACE;\n\nvar ParseError = sax.ParseError;\nvar XMLReader = sax.XMLReader;\n\n/**\n * Normalizes line ending according to https://www.w3.org/TR/xml11/#sec-line-ends:\n *\n * > 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","var conventions = require(\"./conventions\");\n\nvar find = conventions.find;\nvar NAMESPACE = conventions.NAMESPACE;\n\n/**\n * A prerequisite for `[].filter`, to drop elements that are empty\n * @param {string} input\n * @returns {boolean}\n */\nfunction notEmptyString (input) {\n\treturn input !== ''\n}\n/**\n * @see https://infra.spec.whatwg.org/#split-on-ascii-whitespace\n * @see https://infra.spec.whatwg.org/#ascii-whitespace\n *\n * @param {string} input\n * @returns {string[]} (can be empty)\n */\nfunction splitOnASCIIWhitespace(input) {\n\t// U+0009 TAB, U+000A LF, U+000C FF, U+000D CR, U+0020 SPACE\n\treturn input ? input.split(/[\\t\\n\\f\\r ]+/).filter(notEmptyString) : []\n}\n\n/**\n * Adds element as a key to current if it is not already present.\n *\n * @param {Record} current\n * @param {string} element\n * @returns {Record}\n */\nfunction orderedSetReducer (current, element) {\n\tif (!current.hasOwnProperty(element)) {\n\t\tcurrent[element] = true;\n\t}\n\treturn current;\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#ordered-set\n * @param {string} input\n * @returns {string[]}\n */\nfunction toOrderedSet(input) {\n\tif (!input) return [];\n\tvar list = splitOnASCIIWhitespace(input);\n\treturn Object.keys(list.reduce(orderedSetReducer, {}))\n}\n\n/**\n * Uses `list.indexOf` to implement something like `Array.prototype.includes`,\n * which we can not rely on being available.\n *\n * @param {any[]} list\n * @returns {function(any): boolean}\n */\nfunction arrayIncludes (list) {\n\treturn function(element) {\n\t\treturn list && list.indexOf(element) !== -1;\n\t}\n}\n\nfunction copy(src,dest){\n\tfor(var p in src){\n\t\tif (Object.prototype.hasOwnProperty.call(src, p)) {\n\t\t\tdest[p] = src[p];\n\t\t}\n\t}\n}\n\n/**\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*((?:.*\\{\\s*?[\\r\\n][\\s\\S]*?^})|\\S.*?(?=[;\\r\\n]));?\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*(\\S.*?(?=[;\\r\\n]));?\n */\nfunction _extends(Class,Super){\n\tvar pt = Class.prototype;\n\tif(!(pt instanceof Super)){\n\t\tfunction t(){};\n\t\tt.prototype = Super.prototype;\n\t\tt = new t();\n\t\tcopy(pt,t);\n\t\tClass.prototype = pt = t;\n\t}\n\tif(pt.constructor != Class){\n\t\tif(typeof Class != 'function'){\n\t\t\tconsole.error(\"unknown Class:\"+Class)\n\t\t}\n\t\tpt.constructor = Class\n\t}\n}\n\n// Node Types\nvar NodeType = {}\nvar ELEMENT_NODE = NodeType.ELEMENT_NODE = 1;\nvar ATTRIBUTE_NODE = NodeType.ATTRIBUTE_NODE = 2;\nvar TEXT_NODE = NodeType.TEXT_NODE = 3;\nvar CDATA_SECTION_NODE = NodeType.CDATA_SECTION_NODE = 4;\nvar ENTITY_REFERENCE_NODE = NodeType.ENTITY_REFERENCE_NODE = 5;\nvar ENTITY_NODE = NodeType.ENTITY_NODE = 6;\nvar PROCESSING_INSTRUCTION_NODE = NodeType.PROCESSING_INSTRUCTION_NODE = 7;\nvar COMMENT_NODE = NodeType.COMMENT_NODE = 8;\nvar DOCUMENT_NODE = NodeType.DOCUMENT_NODE = 9;\nvar DOCUMENT_TYPE_NODE = NodeType.DOCUMENT_TYPE_NODE = 10;\nvar DOCUMENT_FRAGMENT_NODE = NodeType.DOCUMENT_FRAGMENT_NODE = 11;\nvar NOTATION_NODE = NodeType.NOTATION_NODE = 12;\n\n// ExceptionCode\nvar ExceptionCode = {}\nvar ExceptionMessage = {};\nvar INDEX_SIZE_ERR = ExceptionCode.INDEX_SIZE_ERR = ((ExceptionMessage[1]=\"Index size error\"),1);\nvar DOMSTRING_SIZE_ERR = ExceptionCode.DOMSTRING_SIZE_ERR = ((ExceptionMessage[2]=\"DOMString size error\"),2);\nvar HIERARCHY_REQUEST_ERR = ExceptionCode.HIERARCHY_REQUEST_ERR = ((ExceptionMessage[3]=\"Hierarchy request error\"),3);\nvar WRONG_DOCUMENT_ERR = ExceptionCode.WRONG_DOCUMENT_ERR = ((ExceptionMessage[4]=\"Wrong document\"),4);\nvar INVALID_CHARACTER_ERR = ExceptionCode.INVALID_CHARACTER_ERR = ((ExceptionMessage[5]=\"Invalid character\"),5);\nvar NO_DATA_ALLOWED_ERR = ExceptionCode.NO_DATA_ALLOWED_ERR = ((ExceptionMessage[6]=\"No data allowed\"),6);\nvar NO_MODIFICATION_ALLOWED_ERR = ExceptionCode.NO_MODIFICATION_ALLOWED_ERR = ((ExceptionMessage[7]=\"No modification allowed\"),7);\nvar NOT_FOUND_ERR = ExceptionCode.NOT_FOUND_ERR = ((ExceptionMessage[8]=\"Not found\"),8);\nvar NOT_SUPPORTED_ERR = ExceptionCode.NOT_SUPPORTED_ERR = ((ExceptionMessage[9]=\"Not supported\"),9);\nvar INUSE_ATTRIBUTE_ERR = ExceptionCode.INUSE_ATTRIBUTE_ERR = ((ExceptionMessage[10]=\"Attribute in use\"),10);\n//level2\nvar INVALID_STATE_ERR \t= ExceptionCode.INVALID_STATE_ERR \t= ((ExceptionMessage[11]=\"Invalid state\"),11);\nvar SYNTAX_ERR \t= ExceptionCode.SYNTAX_ERR \t= ((ExceptionMessage[12]=\"Syntax error\"),12);\nvar INVALID_MODIFICATION_ERR \t= ExceptionCode.INVALID_MODIFICATION_ERR \t= ((ExceptionMessage[13]=\"Invalid modification\"),13);\nvar NAMESPACE_ERR \t= ExceptionCode.NAMESPACE_ERR \t= ((ExceptionMessage[14]=\"Invalid namespace\"),14);\nvar INVALID_ACCESS_ERR \t= ExceptionCode.INVALID_ACCESS_ERR \t= ((ExceptionMessage[15]=\"Invalid access\"),15);\n\n/**\n * DOM Level 2\n * Object DOMException\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html\n * @see http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html\n */\nfunction DOMException(code, message) {\n\tif(message instanceof Error){\n\t\tvar error = message;\n\t}else{\n\t\terror = this;\n\t\tError.call(this, ExceptionMessage[code]);\n\t\tthis.message = ExceptionMessage[code];\n\t\tif(Error.captureStackTrace) Error.captureStackTrace(this, DOMException);\n\t}\n\terror.code = code;\n\tif(message) this.message = this.message + \": \" + message;\n\treturn error;\n};\nDOMException.prototype = Error.prototype;\ncopy(ExceptionCode,DOMException)\n\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177\n * The NodeList interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented. NodeList objects in the DOM are live.\n * The items in the NodeList are accessible via an integral index, starting from 0.\n */\nfunction NodeList() {\n};\nNodeList.prototype = {\n\t/**\n\t * The number of nodes in the list. The range of valid child node indices is 0 to length-1 inclusive.\n\t * @standard level1\n\t */\n\tlength:0,\n\t/**\n\t * Returns the indexth item in the collection. If index is greater than or equal to the number of nodes in the list, this returns null.\n\t * @standard level1\n\t * @param index unsigned long\n\t * Index into the collection.\n\t * @return Node\n\t * \tThe node at the indexth position in the NodeList, or null if that is not a valid index.\n\t */\n\titem: function(index) {\n\t\treturn index >= 0 && index < this.length ? this[index] : null;\n\t},\n\ttoString:function(isHTML,nodeFilter){\n\t\tfor(var buf = [], i = 0;i=0){\n\t\tvar lastIndex = list.length-1\n\t\twhile(i0 || key == 'xmlns'){\n//\t\t\treturn null;\n//\t\t}\n\t\t//console.log()\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar attr = this[i];\n\t\t\t//console.log(attr.nodeName,key)\n\t\t\tif(attr.nodeName == key){\n\t\t\t\treturn attr;\n\t\t\t}\n\t\t}\n\t},\n\tsetNamedItem: function(attr) {\n\t\tvar el = attr.ownerElement;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\tvar oldAttr = this.getNamedItem(attr.nodeName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\t/* returns Node */\n\tsetNamedItemNS: function(attr) {// raises: WRONG_DOCUMENT_ERR,NO_MODIFICATION_ALLOWED_ERR,INUSE_ATTRIBUTE_ERR\n\t\tvar el = attr.ownerElement, oldAttr;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\toldAttr = this.getNamedItemNS(attr.namespaceURI,attr.localName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\n\t/* returns Node */\n\tremoveNamedItem: function(key) {\n\t\tvar attr = this.getNamedItem(key);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\n\n\t},// raises: NOT_FOUND_ERR,NO_MODIFICATION_ALLOWED_ERR\n\n\t//for level2\n\tremoveNamedItemNS:function(namespaceURI,localName){\n\t\tvar attr = this.getNamedItemNS(namespaceURI,localName);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\t},\n\tgetNamedItemNS: function(namespaceURI, localName) {\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar node = this[i];\n\t\t\tif(node.localName == localName && node.namespaceURI == namespaceURI){\n\t\t\t\treturn node;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n};\n\n/**\n * The DOMImplementation interface represents an object providing methods\n * which are not dependent on any particular document.\n * Such an object is returned by the `Document.implementation` property.\n *\n * __The individual methods describe the differences compared to the specs.__\n *\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation MDN\n * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-102161490 DOM Level 1 Core (Initial)\n * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-102161490 DOM Level 2 Core\n * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-102161490 DOM Level 3 Core\n * @see https://dom.spec.whatwg.org/#domimplementation DOM Living Standard\n */\nfunction DOMImplementation() {\n}\n\nDOMImplementation.prototype = {\n\t/**\n\t * The DOMImplementation.hasFeature() method returns a Boolean flag indicating if a given feature is supported.\n\t * The different implementations fairly diverged in what kind of features were reported.\n\t * The latest version of the spec settled to force this method to always return true, where the functionality was accurate and in use.\n\t *\n\t * @deprecated It is deprecated and modern browsers return true in all cases.\n\t *\n\t * @param {string} feature\n\t * @param {string} [version]\n\t * @returns {boolean} always true\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/hasFeature MDN\n\t * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-5CED94D7 DOM Level 1 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-hasfeature DOM Living Standard\n\t */\n\thasFeature: function(feature, version) {\n\t\t\treturn true;\n\t},\n\t/**\n\t * Creates an XML Document object of the specified type with its document element.\n\t *\n\t * __It behaves slightly different from the description in the living standard__:\n\t * - There is no interface/class `XMLDocument`, it returns a `Document` instance.\n\t * - `contentType`, `encoding`, `mode`, `origin`, `url` fields are currently not declared.\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string|null} namespaceURI\n\t * @param {string} qualifiedName\n\t * @param {DocumentType=null} doctype\n\t * @returns {Document}\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocument MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocument DOM Level 2 Core (initial)\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument DOM Level 2 Core\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */\n\tcreateDocument: function(namespaceURI, qualifiedName, doctype){\n\t\tvar doc = new Document();\n\t\tdoc.implementation = this;\n\t\tdoc.childNodes = new NodeList();\n\t\tdoc.doctype = doctype || null;\n\t\tif (doctype){\n\t\t\tdoc.appendChild(doctype);\n\t\t}\n\t\tif (qualifiedName){\n\t\t\tvar root = doc.createElementNS(namespaceURI, qualifiedName);\n\t\t\tdoc.appendChild(root);\n\t\t}\n\t\treturn doc;\n\t},\n\t/**\n\t * Returns a doctype, with the given `qualifiedName`, `publicId`, and `systemId`.\n\t *\n\t * __This behavior is slightly different from the in the specs__:\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string} qualifiedName\n\t * @param {string} [publicId]\n\t * @param {string} [systemId]\n\t * @returns {DocumentType} which can either be used with `DOMImplementation.createDocument` upon document creation\n\t * \t\t\t\t or can be put into the document via methods like `Node.insertBefore()` or `Node.replaceChild()`\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocumentType MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocType DOM Level 2 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocumenttype DOM Living Standard\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */\n\tcreateDocumentType: function(qualifiedName, publicId, systemId){\n\t\tvar node = new DocumentType();\n\t\tnode.name = qualifiedName;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.publicId = publicId || '';\n\t\tnode.systemId = systemId || '';\n\n\t\treturn node;\n\t}\n};\n\n\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247\n */\n\nfunction Node() {\n};\n\nNode.prototype = {\n\tfirstChild : null,\n\tlastChild : null,\n\tpreviousSibling : null,\n\tnextSibling : null,\n\tattributes : null,\n\tparentNode : null,\n\tchildNodes : null,\n\townerDocument : null,\n\tnodeValue : null,\n\tnamespaceURI : null,\n\tprefix : null,\n\tlocalName : null,\n\t// Modified in DOM Level 2:\n\tinsertBefore:function(newChild, refChild){//raises\n\t\treturn _insertBefore(this,newChild,refChild);\n\t},\n\treplaceChild:function(newChild, oldChild){//raises\n\t\t_insertBefore(this, newChild,oldChild, assertPreReplacementValidityInDocument);\n\t\tif(oldChild){\n\t\t\tthis.removeChild(oldChild);\n\t\t}\n\t},\n\tremoveChild:function(oldChild){\n\t\treturn _removeChild(this,oldChild);\n\t},\n\tappendChild:function(newChild){\n\t\treturn this.insertBefore(newChild,null);\n\t},\n\thasChildNodes:function(){\n\t\treturn this.firstChild != null;\n\t},\n\tcloneNode:function(deep){\n\t\treturn cloneNode(this.ownerDocument||this,this,deep);\n\t},\n\t// Modified in DOM Level 2:\n\tnormalize:function(){\n\t\tvar child = this.firstChild;\n\t\twhile(child){\n\t\t\tvar next = child.nextSibling;\n\t\t\tif(next && next.nodeType == TEXT_NODE && child.nodeType == TEXT_NODE){\n\t\t\t\tthis.removeChild(next);\n\t\t\t\tchild.appendData(next.data);\n\t\t\t}else{\n\t\t\t\tchild.normalize();\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t}\n\t},\n \t// Introduced in DOM Level 2:\n\tisSupported:function(feature, version){\n\t\treturn this.ownerDocument.implementation.hasFeature(feature,version);\n\t},\n // Introduced in DOM Level 2:\n hasAttributes:function(){\n \treturn this.attributes.length>0;\n },\n\t/**\n\t * Look up the prefix associated to the given namespace URI, starting from this node.\n\t * **The default namespace declarations are ignored by this method.**\n\t * See Namespace Prefix Lookup for details on the algorithm used by this method.\n\t *\n\t * _Note: The implementation seems to be incomplete when compared to the algorithm described in the specs._\n\t *\n\t * @param {string | null} namespaceURI\n\t * @returns {string | null}\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-lookupNamespacePrefix\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/namespaces-algorithms.html#lookupNamespacePrefixAlgo\n\t * @see https://dom.spec.whatwg.org/#dom-node-lookupprefix\n\t * @see https://github.com/xmldom/xmldom/issues/322\n\t */\n lookupPrefix:function(namespaceURI){\n \tvar el = this;\n \twhile(el){\n \t\tvar map = el._nsMap;\n \t\t//console.dir(map)\n \t\tif(map){\n \t\t\tfor(var n in map){\n\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(map, n) && map[n] === namespaceURI) {\n\t\t\t\t\t\t\treturn n;\n\t\t\t\t\t\t}\n \t\t\t}\n \t\t}\n \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n \t}\n \treturn null;\n },\n // Introduced in DOM Level 3:\n lookupNamespaceURI:function(prefix){\n \tvar el = this;\n \twhile(el){\n \t\tvar map = el._nsMap;\n \t\t//console.dir(map)\n \t\tif(map){\n \t\t\tif(Object.prototype.hasOwnProperty.call(map, prefix)){\n \t\t\t\treturn map[prefix] ;\n \t\t\t}\n \t\t}\n \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n \t}\n \treturn null;\n },\n // Introduced in DOM Level 3:\n isDefaultNamespace:function(namespaceURI){\n \tvar prefix = this.lookupPrefix(namespaceURI);\n \treturn prefix == null;\n }\n};\n\n\nfunction _xmlEncoder(c){\n\treturn c == '<' && '<' ||\n c == '>' && '>' ||\n c == '&' && '&' ||\n c == '\"' && '"' ||\n '&#'+c.charCodeAt()+';'\n}\n\n\ncopy(NodeType,Node);\ncopy(NodeType,Node.prototype);\n\n/**\n * @param callback return true for continue,false for break\n * @return boolean true: break visit;\n */\nfunction _visitNode(node,callback){\n\tif(callback(node)){\n\t\treturn true;\n\t}\n\tif(node = node.firstChild){\n\t\tdo{\n\t\t\tif(_visitNode(node,callback)){return true}\n }while(node=node.nextSibling)\n }\n}\n\n\n\nfunction Document(){\n\tthis.ownerDocument = this;\n}\n\nfunction _onAddAttribute(doc,el,newAttr){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns === NAMESPACE.XMLNS){\n\t\t//update namespace\n\t\tel._nsMap[newAttr.prefix?newAttr.localName:''] = newAttr.value\n\t}\n}\n\nfunction _onRemoveAttribute(doc,el,newAttr,remove){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns === NAMESPACE.XMLNS){\n\t\t//update namespace\n\t\tdelete el._nsMap[newAttr.prefix?newAttr.localName:'']\n\t}\n}\n\n/**\n * Updates `el.childNodes`, updating the indexed items and it's `length`.\n * Passing `newChild` means it will be appended.\n * Otherwise it's assumed that an item has been removed,\n * and `el.firstNode` and it's `.nextSibling` are used\n * to walk the current list of child nodes.\n *\n * @param {Document} doc\n * @param {Node} el\n * @param {Node} [newChild]\n * @private\n */\nfunction _onUpdateChild (doc, el, newChild) {\n\tif(doc && doc._inc){\n\t\tdoc._inc++;\n\t\t//update childNodes\n\t\tvar cs = el.childNodes;\n\t\tif (newChild) {\n\t\t\tcs[cs.length++] = newChild;\n\t\t} else {\n\t\t\tvar child = el.firstChild;\n\t\t\tvar i = 0;\n\t\t\twhile (child) {\n\t\t\t\tcs[i++] = child;\n\t\t\t\tchild = child.nextSibling;\n\t\t\t}\n\t\t\tcs.length = i;\n\t\t\tdelete cs[cs.length];\n\t\t}\n\t}\n}\n\n/**\n * Removes the connections between `parentNode` and `child`\n * and any existing `child.previousSibling` or `child.nextSibling`.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n *\n * @param {Node} parentNode\n * @param {Node} child\n * @returns {Node} the child that was removed.\n * @private\n */\nfunction _removeChild (parentNode, child) {\n\tvar previous = child.previousSibling;\n\tvar next = child.nextSibling;\n\tif (previous) {\n\t\tprevious.nextSibling = next;\n\t} else {\n\t\tparentNode.firstChild = next;\n\t}\n\tif (next) {\n\t\tnext.previousSibling = previous;\n\t} else {\n\t\tparentNode.lastChild = previous;\n\t}\n\tchild.parentNode = null;\n\tchild.previousSibling = null;\n\tchild.nextSibling = null;\n\t_onUpdateChild(parentNode.ownerDocument, parentNode);\n\treturn child;\n}\n\n/**\n * Returns `true` if `node` can be a parent for insertion.\n * @param {Node} node\n * @returns {boolean}\n */\nfunction hasValidParentNodeType(node) {\n\treturn (\n\t\tnode &&\n\t\t(node.nodeType === Node.DOCUMENT_NODE || node.nodeType === Node.DOCUMENT_FRAGMENT_NODE || node.nodeType === Node.ELEMENT_NODE)\n\t);\n}\n\n/**\n * Returns `true` if `node` can be inserted according to it's `nodeType`.\n * @param {Node} node\n * @returns {boolean}\n */\nfunction hasInsertableNodeType(node) {\n\treturn (\n\t\tnode &&\n\t\t(isElementNode(node) ||\n\t\t\tisTextNode(node) ||\n\t\t\tisDocTypeNode(node) ||\n\t\t\tnode.nodeType === Node.DOCUMENT_FRAGMENT_NODE ||\n\t\t\tnode.nodeType === Node.COMMENT_NODE ||\n\t\t\tnode.nodeType === Node.PROCESSING_INSTRUCTION_NODE)\n\t);\n}\n\n/**\n * Returns true if `node` is a DOCTYPE node\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isDocTypeNode(node) {\n\treturn node && node.nodeType === Node.DOCUMENT_TYPE_NODE;\n}\n\n/**\n * Returns true if the node is an element\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isElementNode(node) {\n\treturn node && node.nodeType === Node.ELEMENT_NODE;\n}\n/**\n * Returns true if `node` is a text node\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isTextNode(node) {\n\treturn node && node.nodeType === Node.TEXT_NODE;\n}\n\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Document} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction isElementInsertionPossible(doc, child) {\n\tvar parentChildNodes = doc.childNodes || [];\n\tif (find(parentChildNodes, isElementNode) || isDocTypeNode(child)) {\n\t\treturn false;\n\t}\n\tvar docTypeNode = find(parentChildNodes, isDocTypeNode);\n\treturn !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Node} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction isElementReplacementPossible(doc, child) {\n\tvar parentChildNodes = doc.childNodes || [];\n\n\tfunction hasElementChildThatIsNotChild(node) {\n\t\treturn isElementNode(node) && node !== child;\n\t}\n\n\tif (find(parentChildNodes, hasElementChildThatIsNotChild)) {\n\t\treturn false;\n\t}\n\tvar docTypeNode = find(parentChildNodes, isDocTypeNode);\n\treturn !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n\n/**\n * @private\n * Steps 1-5 of the checks before inserting and before replacing a child are the same.\n *\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreInsertionValidity1to5(parent, node, child) {\n\t// 1. If `parent` is not a Document, DocumentFragment, or Element node, then throw a \"HierarchyRequestError\" DOMException.\n\tif (!hasValidParentNodeType(parent)) {\n\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Unexpected parent node type ' + parent.nodeType);\n\t}\n\t// 2. If `node` is a host-including inclusive ancestor of `parent`, then throw a \"HierarchyRequestError\" DOMException.\n\t// not implemented!\n\t// 3. If `child` is non-null and its parent is not `parent`, then throw a \"NotFoundError\" DOMException.\n\tif (child && child.parentNode !== parent) {\n\t\tthrow new DOMException(NOT_FOUND_ERR, 'child not in parent');\n\t}\n\tif (\n\t\t// 4. If `node` is not a DocumentFragment, DocumentType, Element, or CharacterData node, then throw a \"HierarchyRequestError\" DOMException.\n\t\t!hasInsertableNodeType(node) ||\n\t\t// 5. If either `node` is a Text node and `parent` is a document,\n\t\t// the sax parser currently adds top level text nodes, this will be fixed in 0.9.0\n\t\t// || (node.nodeType === Node.TEXT_NODE && parent.nodeType === Node.DOCUMENT_NODE)\n\t\t// or `node` is a doctype and `parent` is not a document, then throw a \"HierarchyRequestError\" DOMException.\n\t\t(isDocTypeNode(node) && parent.nodeType !== Node.DOCUMENT_NODE)\n\t) {\n\t\tthrow new DOMException(\n\t\t\tHIERARCHY_REQUEST_ERR,\n\t\t\t'Unexpected node type ' + node.nodeType + ' for parent node type ' + parent.nodeType\n\t\t);\n\t}\n}\n\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreInsertionValidityInDocument(parent, node, child) {\n\tvar parentChildNodes = parent.childNodes || [];\n\tvar nodeChildNodes = node.childNodes || [];\n\n\t// DocumentFragment\n\tif (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n\t\tvar nodeChildElements = nodeChildNodes.filter(isElementNode);\n\t\t// If node has more than one element child or has a Text node child.\n\t\tif (nodeChildElements.length > 1 || find(nodeChildNodes, isTextNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'More than one element or text in fragment');\n\t\t}\n\t\t// Otherwise, if `node` has one element child and either `parent` has an element child,\n\t\t// `child` is a doctype, or `child` is non-null and a doctype is following `child`.\n\t\tif (nodeChildElements.length === 1 && !isElementInsertionPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Element in fragment can not be inserted before doctype');\n\t\t}\n\t}\n\t// Element\n\tif (isElementNode(node)) {\n\t\t// `parent` has an element child, `child` is a doctype,\n\t\t// or `child` is non-null and a doctype is following `child`.\n\t\tif (!isElementInsertionPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one element can be added and only after doctype');\n\t\t}\n\t}\n\t// DocumentType\n\tif (isDocTypeNode(node)) {\n\t\t// `parent` has a doctype child,\n\t\tif (find(parentChildNodes, isDocTypeNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one doctype is allowed');\n\t\t}\n\t\tvar parentElementChild = find(parentChildNodes, isElementNode);\n\t\t// `child` is non-null and an element is preceding `child`,\n\t\tif (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can only be inserted before an element');\n\t\t}\n\t\t// or `child` is null and `parent` has an element child.\n\t\tif (!child && parentElementChild) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can not be appended since element is present');\n\t\t}\n\t}\n}\n\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreReplacementValidityInDocument(parent, node, child) {\n\tvar parentChildNodes = parent.childNodes || [];\n\tvar nodeChildNodes = node.childNodes || [];\n\n\t// DocumentFragment\n\tif (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n\t\tvar nodeChildElements = nodeChildNodes.filter(isElementNode);\n\t\t// If `node` has more than one element child or has a Text node child.\n\t\tif (nodeChildElements.length > 1 || find(nodeChildNodes, isTextNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'More than one element or text in fragment');\n\t\t}\n\t\t// Otherwise, if `node` has one element child and either `parent` has an element child that is not `child` or a doctype is following `child`.\n\t\tif (nodeChildElements.length === 1 && !isElementReplacementPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Element in fragment can not be inserted before doctype');\n\t\t}\n\t}\n\t// Element\n\tif (isElementNode(node)) {\n\t\t// `parent` has an element child that is not `child` or a doctype is following `child`.\n\t\tif (!isElementReplacementPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one element can be added and only after doctype');\n\t\t}\n\t}\n\t// DocumentType\n\tif (isDocTypeNode(node)) {\n\t\tfunction hasDoctypeChildThatIsNotChild(node) {\n\t\t\treturn isDocTypeNode(node) && node !== child;\n\t\t}\n\n\t\t// `parent` has a doctype child that is not `child`,\n\t\tif (find(parentChildNodes, hasDoctypeChildThatIsNotChild)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one doctype is allowed');\n\t\t}\n\t\tvar parentElementChild = find(parentChildNodes, isElementNode);\n\t\t// or an element is preceding `child`.\n\t\tif (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can only be inserted before an element');\n\t\t}\n\t}\n}\n\n/**\n * @private\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction _insertBefore(parent, node, child, _inDocumentAssertion) {\n\t// To ensure pre-insertion validity of a node into a parent before a child, run these steps:\n\tassertPreInsertionValidity1to5(parent, node, child);\n\n\t// If parent is a document, and any of the statements below, switched on the interface node implements,\n\t// are true, then throw a \"HierarchyRequestError\" DOMException.\n\tif (parent.nodeType === Node.DOCUMENT_NODE) {\n\t\t(_inDocumentAssertion || assertPreInsertionValidityInDocument)(parent, node, child);\n\t}\n\n\tvar cp = node.parentNode;\n\tif(cp){\n\t\tcp.removeChild(node);//remove and update\n\t}\n\tif(node.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\tvar newFirst = node.firstChild;\n\t\tif (newFirst == null) {\n\t\t\treturn node;\n\t\t}\n\t\tvar newLast = node.lastChild;\n\t}else{\n\t\tnewFirst = newLast = node;\n\t}\n\tvar pre = child ? child.previousSibling : parent.lastChild;\n\n\tnewFirst.previousSibling = pre;\n\tnewLast.nextSibling = child;\n\n\n\tif(pre){\n\t\tpre.nextSibling = newFirst;\n\t}else{\n\t\tparent.firstChild = newFirst;\n\t}\n\tif(child == null){\n\t\tparent.lastChild = newLast;\n\t}else{\n\t\tchild.previousSibling = newLast;\n\t}\n\tdo{\n\t\tnewFirst.parentNode = parent;\n\t}while(newFirst !== newLast && (newFirst= newFirst.nextSibling))\n\t_onUpdateChild(parent.ownerDocument||parent, parent);\n\t//console.log(parent.lastChild.nextSibling == null)\n\tif (node.nodeType == DOCUMENT_FRAGMENT_NODE) {\n\t\tnode.firstChild = node.lastChild = null;\n\t}\n\treturn node;\n}\n\n/**\n * Appends `newChild` to `parentNode`.\n * If `newChild` is already connected to a `parentNode` it is first removed from it.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n * @param {Node} parentNode\n * @param {Node} newChild\n * @returns {Node}\n * @private\n */\nfunction _appendSingleChild (parentNode, newChild) {\n\tif (newChild.parentNode) {\n\t\tnewChild.parentNode.removeChild(newChild);\n\t}\n\tnewChild.parentNode = parentNode;\n\tnewChild.previousSibling = parentNode.lastChild;\n\tnewChild.nextSibling = null;\n\tif (newChild.previousSibling) {\n\t\tnewChild.previousSibling.nextSibling = newChild;\n\t} else {\n\t\tparentNode.firstChild = newChild;\n\t}\n\tparentNode.lastChild = newChild;\n\t_onUpdateChild(parentNode.ownerDocument, parentNode, newChild);\n\treturn newChild;\n}\n\nDocument.prototype = {\n\t//implementation : null,\n\tnodeName : '#document',\n\tnodeType : DOCUMENT_NODE,\n\t/**\n\t * The DocumentType node of the document.\n\t *\n\t * @readonly\n\t * @type DocumentType\n\t */\n\tdoctype : null,\n\tdocumentElement : null,\n\t_inc : 1,\n\n\tinsertBefore : function(newChild, refChild){//raises\n\t\tif(newChild.nodeType == DOCUMENT_FRAGMENT_NODE){\n\t\t\tvar child = newChild.firstChild;\n\t\t\twhile(child){\n\t\t\t\tvar next = child.nextSibling;\n\t\t\t\tthis.insertBefore(child,refChild);\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t\treturn newChild;\n\t\t}\n\t\t_insertBefore(this, newChild, refChild);\n\t\tnewChild.ownerDocument = this;\n\t\tif (this.documentElement === null && newChild.nodeType === ELEMENT_NODE) {\n\t\t\tthis.documentElement = newChild;\n\t\t}\n\n\t\treturn newChild;\n\t},\n\tremoveChild : function(oldChild){\n\t\tif(this.documentElement == oldChild){\n\t\t\tthis.documentElement = null;\n\t\t}\n\t\treturn _removeChild(this,oldChild);\n\t},\n\treplaceChild: function (newChild, oldChild) {\n\t\t//raises\n\t\t_insertBefore(this, newChild, oldChild, assertPreReplacementValidityInDocument);\n\t\tnewChild.ownerDocument = this;\n\t\tif (oldChild) {\n\t\t\tthis.removeChild(oldChild);\n\t\t}\n\t\tif (isElementNode(newChild)) {\n\t\t\tthis.documentElement = newChild;\n\t\t}\n\t},\n\t// Introduced in DOM Level 2:\n\timportNode : function(importedNode,deep){\n\t\treturn importNode(this,importedNode,deep);\n\t},\n\t// Introduced in DOM Level 2:\n\tgetElementById :\tfunction(id){\n\t\tvar rtv = null;\n\t\t_visitNode(this.documentElement,function(node){\n\t\t\tif(node.nodeType == ELEMENT_NODE){\n\t\t\t\tif(node.getAttribute('id') == id){\n\t\t\t\t\trtv = node;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\treturn rtv;\n\t},\n\n\t/**\n\t * The `getElementsByClassName` method of `Document` interface returns an array-like object\n\t * of all child elements which have **all** of the given class name(s).\n\t *\n\t * Returns an empty list if `classeNames` is an empty string or only contains HTML white space characters.\n\t *\n\t *\n\t * Warning: This is a live LiveNodeList.\n\t * Changes in the DOM will reflect in the array as the changes occur.\n\t * If an element selected by this array no longer qualifies for the selector,\n\t * it will automatically be removed. Be aware of this for iteration purposes.\n\t *\n\t * @param {string} classNames is a string representing the class name(s) to match; multiple class names are separated by (ASCII-)whitespace\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName\n\t * @see https://dom.spec.whatwg.org/#concept-getelementsbyclassname\n\t */\n\tgetElementsByClassName: function(classNames) {\n\t\tvar classNamesSet = toOrderedSet(classNames)\n\t\treturn new LiveNodeList(this, function(base) {\n\t\t\tvar ls = [];\n\t\t\tif (classNamesSet.length > 0) {\n\t\t\t\t_visitNode(base.documentElement, function(node) {\n\t\t\t\t\tif(node !== base && node.nodeType === ELEMENT_NODE) {\n\t\t\t\t\t\tvar nodeClassNames = node.getAttribute('class')\n\t\t\t\t\t\t// can be null if the attribute does not exist\n\t\t\t\t\t\tif (nodeClassNames) {\n\t\t\t\t\t\t\t// before splitting and iterating just compare them for the most common case\n\t\t\t\t\t\t\tvar matches = classNames === nodeClassNames;\n\t\t\t\t\t\t\tif (!matches) {\n\t\t\t\t\t\t\t\tvar nodeClassNamesSet = toOrderedSet(nodeClassNames)\n\t\t\t\t\t\t\t\tmatches = classNamesSet.every(arrayIncludes(nodeClassNamesSet))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(matches) {\n\t\t\t\t\t\t\t\tls.push(node);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn ls;\n\t\t});\n\t},\n\n\t//document factory method:\n\tcreateElement :\tfunction(tagName){\n\t\tvar node = new Element();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = tagName;\n\t\tnode.tagName = tagName;\n\t\tnode.localName = tagName;\n\t\tnode.childNodes = new NodeList();\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\tcreateDocumentFragment :\tfunction(){\n\t\tvar node = new DocumentFragment();\n\t\tnode.ownerDocument = this;\n\t\tnode.childNodes = new NodeList();\n\t\treturn node;\n\t},\n\tcreateTextNode :\tfunction(data){\n\t\tvar node = new Text();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateComment :\tfunction(data){\n\t\tvar node = new Comment();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateCDATASection :\tfunction(data){\n\t\tvar node = new CDATASection();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateProcessingInstruction :\tfunction(target,data){\n\t\tvar node = new ProcessingInstruction();\n\t\tnode.ownerDocument = this;\n\t\tnode.tagName = node.nodeName = node.target = target;\n\t\tnode.nodeValue = node.data = data;\n\t\treturn node;\n\t},\n\tcreateAttribute :\tfunction(name){\n\t\tvar node = new Attr();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.name = name;\n\t\tnode.nodeName\t= name;\n\t\tnode.localName = name;\n\t\tnode.specified = true;\n\t\treturn node;\n\t},\n\tcreateEntityReference :\tfunction(name){\n\t\tvar node = new EntityReference();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.nodeName\t= name;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateElementNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Element();\n\t\tvar pl = qualifiedName.split(':');\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tnode.childNodes = new NodeList();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.tagName = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateAttributeNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Attr();\n\t\tvar pl = qualifiedName.split(':');\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.name = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tnode.specified = true;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\treturn node;\n\t}\n};\n_extends(Document,Node);\n\n\nfunction Element() {\n\tthis._nsMap = {};\n};\nElement.prototype = {\n\tnodeType : ELEMENT_NODE,\n\thasAttribute : function(name){\n\t\treturn this.getAttributeNode(name)!=null;\n\t},\n\tgetAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name);\n\t\treturn attr && attr.value || '';\n\t},\n\tgetAttributeNode : function(name){\n\t\treturn this.attributes.getNamedItem(name);\n\t},\n\tsetAttribute : function(name, value){\n\t\tvar attr = this.ownerDocument.createAttribute(name);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tremoveAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name)\n\t\tattr && this.removeAttributeNode(attr);\n\t},\n\n\t//four real opeartion method\n\tappendChild:function(newChild){\n\t\tif(newChild.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\t\treturn this.insertBefore(newChild,null);\n\t\t}else{\n\t\t\treturn _appendSingleChild(this,newChild);\n\t\t}\n\t},\n\tsetAttributeNode : function(newAttr){\n\t\treturn this.attributes.setNamedItem(newAttr);\n\t},\n\tsetAttributeNodeNS : function(newAttr){\n\t\treturn this.attributes.setNamedItemNS(newAttr);\n\t},\n\tremoveAttributeNode : function(oldAttr){\n\t\t//console.log(this == oldAttr.ownerElement)\n\t\treturn this.attributes.removeNamedItem(oldAttr.nodeName);\n\t},\n\t//get real attribute name,and remove it by removeAttributeNode\n\tremoveAttributeNS : function(namespaceURI, localName){\n\t\tvar old = this.getAttributeNodeNS(namespaceURI, localName);\n\t\told && this.removeAttributeNode(old);\n\t},\n\n\thasAttributeNS : function(namespaceURI, localName){\n\t\treturn this.getAttributeNodeNS(namespaceURI, localName)!=null;\n\t},\n\tgetAttributeNS : function(namespaceURI, localName){\n\t\tvar attr = this.getAttributeNodeNS(namespaceURI, localName);\n\t\treturn attr && attr.value || '';\n\t},\n\tsetAttributeNS : function(namespaceURI, qualifiedName, value){\n\t\tvar attr = this.ownerDocument.createAttributeNS(namespaceURI, qualifiedName);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tgetAttributeNodeNS : function(namespaceURI, localName){\n\t\treturn this.attributes.getNamedItemNS(namespaceURI, localName);\n\t},\n\n\tgetElementsByTagName : function(tagName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType == ELEMENT_NODE && (tagName === '*' || node.tagName == tagName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\t\t});\n\t},\n\tgetElementsByTagNameNS : function(namespaceURI, localName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType === ELEMENT_NODE && (namespaceURI === '*' || node.namespaceURI === namespaceURI) && (localName === '*' || node.localName == localName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\n\t\t});\n\t}\n};\nDocument.prototype.getElementsByTagName = Element.prototype.getElementsByTagName;\nDocument.prototype.getElementsByTagNameNS = Element.prototype.getElementsByTagNameNS;\n\n\n_extends(Element,Node);\nfunction Attr() {\n};\nAttr.prototype.nodeType = ATTRIBUTE_NODE;\n_extends(Attr,Node);\n\n\nfunction CharacterData() {\n};\nCharacterData.prototype = {\n\tdata : '',\n\tsubstringData : function(offset, count) {\n\t\treturn this.data.substring(offset, offset+count);\n\t},\n\tappendData: function(text) {\n\t\ttext = this.data+text;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t},\n\tinsertData: function(offset,text) {\n\t\tthis.replaceData(offset,0,text);\n\n\t},\n\tappendChild:function(newChild){\n\t\tthrow new Error(ExceptionMessage[HIERARCHY_REQUEST_ERR])\n\t},\n\tdeleteData: function(offset, count) {\n\t\tthis.replaceData(offset,count,\"\");\n\t},\n\treplaceData: function(offset, count, text) {\n\t\tvar start = this.data.substring(0,offset);\n\t\tvar end = this.data.substring(offset+count);\n\t\ttext = start + text + end;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t}\n}\n_extends(CharacterData,Node);\nfunction Text() {\n};\nText.prototype = {\n\tnodeName : \"#text\",\n\tnodeType : TEXT_NODE,\n\tsplitText : function(offset) {\n\t\tvar text = this.data;\n\t\tvar newText = text.substring(offset);\n\t\ttext = text.substring(0, offset);\n\t\tthis.data = this.nodeValue = text;\n\t\tthis.length = text.length;\n\t\tvar newNode = this.ownerDocument.createTextNode(newText);\n\t\tif(this.parentNode){\n\t\t\tthis.parentNode.insertBefore(newNode, this.nextSibling);\n\t\t}\n\t\treturn newNode;\n\t}\n}\n_extends(Text,CharacterData);\nfunction Comment() {\n};\nComment.prototype = {\n\tnodeName : \"#comment\",\n\tnodeType : COMMENT_NODE\n}\n_extends(Comment,CharacterData);\n\nfunction CDATASection() {\n};\nCDATASection.prototype = {\n\tnodeName : \"#cdata-section\",\n\tnodeType : CDATA_SECTION_NODE\n}\n_extends(CDATASection,CharacterData);\n\n\nfunction DocumentType() {\n};\nDocumentType.prototype.nodeType = DOCUMENT_TYPE_NODE;\n_extends(DocumentType,Node);\n\nfunction Notation() {\n};\nNotation.prototype.nodeType = NOTATION_NODE;\n_extends(Notation,Node);\n\nfunction Entity() {\n};\nEntity.prototype.nodeType = ENTITY_NODE;\n_extends(Entity,Node);\n\nfunction EntityReference() {\n};\nEntityReference.prototype.nodeType = ENTITY_REFERENCE_NODE;\n_extends(EntityReference,Node);\n\nfunction DocumentFragment() {\n};\nDocumentFragment.prototype.nodeName =\t\"#document-fragment\";\nDocumentFragment.prototype.nodeType =\tDOCUMENT_FRAGMENT_NODE;\n_extends(DocumentFragment,Node);\n\n\nfunction ProcessingInstruction() {\n}\nProcessingInstruction.prototype.nodeType = PROCESSING_INSTRUCTION_NODE;\n_extends(ProcessingInstruction,Node);\nfunction XMLSerializer(){}\nXMLSerializer.prototype.serializeToString = function(node,isHtml,nodeFilter){\n\treturn nodeSerializeToString.call(node,isHtml,nodeFilter);\n}\nNode.prototype.toString = nodeSerializeToString;\nfunction nodeSerializeToString(isHtml,nodeFilter){\n\tvar buf = [];\n\tvar refNode = this.nodeType == 9 && this.documentElement || this;\n\tvar prefix = refNode.prefix;\n\tvar uri = refNode.namespaceURI;\n\n\tif(uri && prefix == null){\n\t\t//console.log(prefix)\n\t\tvar prefix = refNode.lookupPrefix(uri);\n\t\tif(prefix == null){\n\t\t\t//isHTML = true;\n\t\t\tvar visibleNamespaces=[\n\t\t\t{namespace:uri,prefix:null}\n\t\t\t//{namespace:uri,prefix:''}\n\t\t\t]\n\t\t}\n\t}\n\tserializeToString(this,buf,isHtml,nodeFilter,visibleNamespaces);\n\t//console.log('###',this.nodeType,uri,prefix,buf.join(''))\n\treturn buf.join('');\n}\n\nfunction needNamespaceDefine(node, isHTML, visibleNamespaces) {\n\tvar prefix = node.prefix || '';\n\tvar uri = node.namespaceURI;\n\t// According to [Namespaces in XML 1.0](https://www.w3.org/TR/REC-xml-names/#ns-using) ,\n\t// and more specifically https://www.w3.org/TR/REC-xml-names/#nsc-NoPrefixUndecl :\n\t// > In a namespace declaration for a prefix [...], the attribute value MUST NOT be empty.\n\t// in a similar manner [Namespaces in XML 1.1](https://www.w3.org/TR/xml-names11/#ns-using)\n\t// and more specifically https://www.w3.org/TR/xml-names11/#nsc-NSDeclared :\n\t// > [...] Furthermore, the attribute value [...] must not be an empty string.\n\t// so serializing empty namespace value like xmlns:ds=\"\" would produce an invalid XML document.\n\tif (!uri) {\n\t\treturn false;\n\t}\n\tif (prefix === \"xml\" && uri === NAMESPACE.XML || uri === NAMESPACE.XMLNS) {\n\t\treturn false;\n\t}\n\n\tvar i = visibleNamespaces.length\n\twhile (i--) {\n\t\tvar ns = visibleNamespaces[i];\n\t\t// get namespace prefix\n\t\tif (ns.prefix === prefix) {\n\t\t\treturn ns.namespace !== uri;\n\t\t}\n\t}\n\treturn true;\n}\n/**\n * Well-formed constraint: No < in Attribute Values\n * > The replacement text of any entity referred to directly or indirectly\n * > in an attribute value must not contain a <.\n * @see https://www.w3.org/TR/xml11/#CleanAttrVals\n * @see https://www.w3.org/TR/xml11/#NT-AttValue\n *\n * Literal whitespace other than space that appear in attribute values\n * are serialized as their entity references, so they will be preserved.\n * (In contrast to whitespace literals in the input which are normalized to spaces)\n * @see https://www.w3.org/TR/xml11/#AVNormalize\n * @see https://w3c.github.io/DOM-Parsing/#serializing-an-element-s-attributes\n */\nfunction addSerializedAttribute(buf, qualifiedName, value) {\n\tbuf.push(' ', qualifiedName, '=\"', value.replace(/[<>&\"\\t\\n\\r]/g, _xmlEncoder), '\"')\n}\n\nfunction serializeToString(node,buf,isHTML,nodeFilter,visibleNamespaces){\n\tif (!visibleNamespaces) {\n\t\tvisibleNamespaces = [];\n\t}\n\n\tif(nodeFilter){\n\t\tnode = nodeFilter(node);\n\t\tif(node){\n\t\t\tif(typeof node == 'string'){\n\t\t\t\tbuf.push(node);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}else{\n\t\t\treturn;\n\t\t}\n\t\t//buf.sort.apply(attrs, attributeSorter);\n\t}\n\n\tswitch(node.nodeType){\n\tcase ELEMENT_NODE:\n\t\tvar attrs = node.attributes;\n\t\tvar len = attrs.length;\n\t\tvar child = node.firstChild;\n\t\tvar nodeName = node.tagName;\n\n\t\tisHTML = NAMESPACE.isHTML(node.namespaceURI) || isHTML\n\n\t\tvar prefixedNodeName = nodeName\n\t\tif (!isHTML && !node.prefix && node.namespaceURI) {\n\t\t\tvar defaultNS\n\t\t\t// lookup current default ns from `xmlns` attribute\n\t\t\tfor (var ai = 0; ai < attrs.length; ai++) {\n\t\t\t\tif (attrs.item(ai).name === 'xmlns') {\n\t\t\t\t\tdefaultNS = attrs.item(ai).value\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!defaultNS) {\n\t\t\t\t// lookup current default ns in visibleNamespaces\n\t\t\t\tfor (var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--) {\n\t\t\t\t\tvar namespace = visibleNamespaces[nsi]\n\t\t\t\t\tif (namespace.prefix === '' && namespace.namespace === node.namespaceURI) {\n\t\t\t\t\t\tdefaultNS = namespace.namespace\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (defaultNS !== node.namespaceURI) {\n\t\t\t\tfor (var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--) {\n\t\t\t\t\tvar namespace = visibleNamespaces[nsi]\n\t\t\t\t\tif (namespace.namespace === node.namespaceURI) {\n\t\t\t\t\t\tif (namespace.prefix) {\n\t\t\t\t\t\t\tprefixedNodeName = namespace.prefix + ':' + nodeName\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tbuf.push('<', prefixedNodeName);\n\n\t\tfor(var i=0;i');\n\t\t\t//if is cdata child node\n\t\t\tif(isHTML && /^script$/i.test(nodeName)){\n\t\t\t\twhile(child){\n\t\t\t\t\tif(child.data){\n\t\t\t\t\t\tbuf.push(child.data);\n\t\t\t\t\t}else{\n\t\t\t\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\t\t\t}\n\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t}\n\t\t\t}else\n\t\t\t{\n\t\t\t\twhile(child){\n\t\t\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbuf.push('');\n\t\t}else{\n\t\t\tbuf.push('/>');\n\t\t}\n\t\t// remove added visible namespaces\n\t\t//visibleNamespaces.length = startVisibleNamespaces;\n\t\treturn;\n\tcase DOCUMENT_NODE:\n\tcase DOCUMENT_FRAGMENT_NODE:\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t\treturn;\n\tcase ATTRIBUTE_NODE:\n\t\treturn addSerializedAttribute(buf, node.name, node.value);\n\tcase TEXT_NODE:\n\t\t/**\n\t\t * The ampersand character (&) and the left angle bracket (<) must not appear in their literal form,\n\t\t * except when used as markup delimiters, or within a comment, a processing instruction, or a CDATA section.\n\t\t * If they are needed elsewhere, they must be escaped using either numeric character references or the strings\n\t\t * `&` and `<` respectively.\n\t\t * The right angle bracket (>) may be represented using the string \" > \", and must, for compatibility,\n\t\t * be escaped using either `>` or a character reference when it appears in the string `]]>` in content,\n\t\t * when that string is not marking the end of a CDATA section.\n\t\t *\n\t\t * In the content of elements, character data is any string of characters\n\t\t * which does not contain the start-delimiter of any markup\n\t\t * and does not include the CDATA-section-close delimiter, `]]>`.\n\t\t *\n\t\t * @see https://www.w3.org/TR/xml/#NT-CharData\n\t\t * @see https://w3c.github.io/DOM-Parsing/#xml-serializing-a-text-node\n\t\t */\n\t\treturn buf.push(node.data\n\t\t\t.replace(/[<&>]/g,_xmlEncoder)\n\t\t);\n\tcase CDATA_SECTION_NODE:\n\t\treturn buf.push( '');\n\tcase COMMENT_NODE:\n\t\treturn buf.push( \"\");\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',\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","var dom = require('./dom')\nexports.DOMImplementation = dom.DOMImplementation\nexports.XMLSerializer = dom.XMLSerializer\nexports.DOMParser = require('./dom-parser').DOMParser\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)//\") { // (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","/**\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","/**\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","// 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 = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(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 = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","/**\r\n * Header Layout\r\n *\r\n * @file header.js\r\n */\r\n\r\nimport $ from \"jquery\";\r\n\r\nconst header = (() => {\r\n const fixedHeader = () => {\r\n function handleHeaderScroll() {\r\n var header = document.querySelector('header');\r\n var headerHeight = header.offsetHeight;\r\n \r\n // Header'ın sabitlenip sabitlenmediğini kontrol edin\r\n if (window.pageYOffset > headerHeight) {\r\n header.classList.add('sticky');\r\n } else {\r\n header.classList.remove('sticky');\r\n }\r\n }\r\n \r\n // Sayfa yüklendiğinde fonksiyonu çağırın\r\n document.addEventListener('DOMContentLoaded', function() {\r\n handleHeaderScroll();\r\n });\r\n \r\n // Sayfa yüklendiğinde veya yenilendiğinde ve scroll edildiğinde fonksiyonu çağırın\r\n window.addEventListener('scroll', function() {\r\n handleHeaderScroll();\r\n });\r\n };\r\n\r\n \r\n const headerMenu = () => {\r\n /* arka plan rengi*/\r\n var hoverElement = document.querySelector(\"header\");\r\n var targetElement = document.querySelector(\".o-header\");\r\n hoverElement.addEventListener(\"mouseover\", function() {\r\n targetElement.classList.add(\"header-open-menu\");\r\n });\r\n\r\n hoverElement.addEventListener(\"mouseout\", function() {\r\n targetElement.classList.remove(\"header-open-menu\");\r\n });\r\n\r\n document.addEventListener(\"DOMContentLoaded\", function() {\r\n var menuItem1 = document.querySelector(\".mega-menu-item-1\");\r\n var menuItem2 = document.querySelector(\".mega-menu-item-2\");\r\n var megaMenu = document.querySelector(\".mega-menu\");\r\n\r\n menuItem1.addEventListener(\"mouseover\", function() {\r\n megaMenu.classList.add(\"item-1-active\");\r\n megaMenu.classList.remove(\"item-2-active\");\r\n });\r\n\r\n menuItem2.addEventListener(\"mouseover\", function() {\r\n megaMenu.classList.add(\"item-2-active\");\r\n megaMenu.classList.remove(\"item-1-active\");\r\n });\r\n\r\n menuItem1.addEventListener(\"mouseout\", removeHoverClasses);\r\n menuItem2.addEventListener(\"mouseout\", removeHoverClasses);\r\n\r\n function removeHoverClasses() {\r\n megaMenu.classList.remove(\"item-1-active\", \"item-2-active\");\r\n }\r\n\r\n const megaContainers = document.querySelectorAll('.mega-menu-container');\r\n\r\n megaContainers.forEach(container => {\r\n container.addEventListener('mouseleave', function() {\r\n const activeElements = container.querySelectorAll('.active');\r\n \r\n activeElements.forEach(element => {\r\n element.classList.remove('active');\r\n });\r\n });\r\n });\r\n });\r\n\r\n \r\n document.addEventListener(\"DOMContentLoaded\", function() {\r\n var menuLinks = document.querySelectorAll(\".first-menu a\");\r\n var menuItems = document.querySelectorAll(\".second-menu .menu-item\");\r\n var bgBackdrop = document.querySelectorAll(\".mega-menu-backdrop-bg\");\r\n menuLinks.forEach(function(link) {\r\n link.addEventListener(\"mouseenter\", function(event) {\r\n event.preventDefault();\r\n menuLinks.forEach(function(link) {\r\n link.classList.remove(\"active\");\r\n });\r\n link.classList.add(\"active\");\r\n\r\n var dataIndex = link.getAttribute(\"data-index\");\r\n\r\n // console.log(\"Data Index:\", dataIndex);\r\n menuItems.forEach(function(item) {\r\n item.classList.remove(\"active\");\r\n });\r\n\r\n var menuItemToShow = document.querySelector(\".second-menu .menu-item[data-id='\" + dataIndex + \"']\");\r\n if (menuItemToShow) {\r\n menuItemToShow.classList.add(\"active\");\r\n } else {\r\n // console.log(\"MenuItem not found for Data Index:\", dataIndex); \r\n }\r\n });\r\n bgBackdrop.forEach(function(backdrop) {\r\n backdrop.addEventListener(\"mouseenter\", function(event) {\r\n menuLinks.forEach(function(link) {\r\n link.classList.remove(\"active\");\r\n });\r\n menuItems.forEach(function(item) {\r\n item.classList.remove(\"active\");\r\n });\r\n });\r\n });\r\n });\r\n\r\n });\r\n };\r\n\r\n\r\n const headerSearch = () => {\r\n document.addEventListener(\"DOMContentLoaded\", function() {\r\n document.querySelector(\".header-search .inp button\").addEventListener(\"click\", function() {\r\n document.querySelector(\".full-search\").classList.add(\"active\");\r\n document.querySelector(\".mega-menu-backdrop-bg\").classList.add(\"active\");\r\n setTimeout(function() {\r\n var searchInput = document.querySelector(\".full-search input[type='text']\");\r\n if (searchInput) {\r\n searchInput.focus();\r\n }\r\n }, 500);\r\n });\r\n });\r\n // Event listeners for closing full search\r\n document.querySelector(\".mega-menu-backdrop-bg\").addEventListener(\"click\", function() {\r\n document.querySelector(\".full-search\").classList.remove(\"active\");\r\n document.querySelector(\".mega-menu-backdrop-bg\").classList.remove(\"active\");\r\n });\r\n\r\n document.querySelector(\".full-search-close\").addEventListener(\"click\", function() {\r\n document.querySelector(\".full-search\").classList.remove(\"active\");\r\n document.querySelector(\".mega-menu-backdrop-bg\").classList.remove(\"active\");\r\n });\r\n\r\n // Event listener for focusing on mobile search input\r\n document.querySelector(\".mobile-search input\").addEventListener(\"focus\", function() {\r\n document.querySelector(\".mobile-search-result\").classList.add(\"active\");\r\n });\r\n\r\n // Event listener for closing mobile search\r\n document.querySelector(\".mobile-search-close\").addEventListener(\"click\", function() {\r\n document.querySelector(\".mobile-search-result\").classList.remove(\"active\");\r\n });\r\n };\r\n\r\n\r\n const mobileHEader = () => {\r\n // Event listener for mobile menu hamburger icon\r\n document.querySelector(\".mobile-menu-hamburger\").addEventListener(\"click\", function() {\r\n document.querySelector(\"html,body\").classList.toggle(\"u-noscroll\");\r\n this.classList.toggle(\"active\");\r\n document.querySelector(\".mobile-menu\").classList.toggle(\"mobile-menu-active\");\r\n });\r\n\r\n // Event listener for main menu item accordion\r\n document.querySelectorAll(\".main-menu-item-accordion .menu-item-title\").forEach(function(item) {\r\n item.addEventListener(\"click\", function() {\r\n // document.querySelectorAll(\".main-menu-item-accordion .menu-item-title\").forEach(function(element) {\r\n // element.classList.remove(\"active\");\r\n // });\r\n this.classList.toggle(\"active\");\r\n // document.querySelectorAll(\".menu-item-content\").forEach(function(content) {\r\n // content.classList.remove(\"open-menu\");\r\n // });\r\n // this.nextElementSibling.classList.add(\"open-menu\");\r\n });\r\n });\r\n\r\n // Event listener for menu sub dropdown\r\n document.querySelectorAll(\".menu-item-content .menu-sub-dropdown\").forEach(function(item) {\r\n item.addEventListener(\"click\", function() {\r\n this.nextElementSibling.classList.add(\"active\");\r\n });\r\n });\r\n\r\n document.querySelectorAll(\".m-sub-menu-header\").forEach(function(item) {\r\n item.addEventListener(\"click\", function() {\r\n this.parentNode.classList.remove(\"active\");\r\n });\r\n });\r\n\r\n // Event listener for submenu header\r\n document.querySelectorAll(\".m-sub-menu .item-s a\").forEach(function(item) {\r\n item.addEventListener(\"click\", function() {\r\n document.querySelector(\"html,body\").classList.remove(\"u-noscroll\");\r\n document.querySelector(\".mobile-menu-hamburger\").classList.remove(\"active\");\r\n document.querySelector(\".mobile-menu\").classList.remove(\"mobile-menu-active\");\r\n });\r\n });\r\n };\r\n\r\n\r\n const moveFooterMenu = () => {\r\n if (window.innerWidth <= 992) {\r\n const footerBottomMenu = document.querySelector('.footer-bottom .footer-bottom-menu');\r\n \r\n if (footerBottomMenu) {\r\n const footerBottomMenuClone = footerBottomMenu.cloneNode(true);\r\n const footerMid = document.querySelector('.footer-mid');\r\n \r\n if (footerMid) {\r\n footerMid.appendChild(footerBottomMenuClone);\r\n }\r\n }\r\n }\r\n };\r\n\r\n const init = () => {\r\n fixedHeader();\r\n headerMenu();\r\n headerSearch();\r\n mobileHEader();\r\n moveFooterMenu();\r\n };\r\n\r\n return {\r\n init,\r\n };\r\n})();\r\n\r\nexport default header;\r\n","/**\r\n * Tab Component\r\n *\r\n * @file tab.js\r\n */\r\nimport $ from \"jquery\";\r\nconst tabs = (() => {\r\n /**\r\n * Default Tab\r\n * Project default tab style\r\n */\r\n const calculateTab = () => {\r\n // Tüm tab item'ları seç\r\n window.onload = function() {\r\n var loadingDivs = document.querySelectorAll('.calculate-loading');\r\n loadingDivs.forEach(function(div) {\r\n div.remove();\r\n });\r\n };\r\n const tabItems = document.querySelectorAll('.calculate-tab-item');\r\n\r\n // Her tab item'a click event listener ekle\r\n tabItems.forEach(tabItem => {\r\n tabItem.addEventListener('click', () => {\r\n // İlgili tab container'ı bul\r\n const tabContainer = tabItem.closest('.calculate-tab');\r\n\r\n // Tüm tab item'ları ve içerikleri tab container içinde ara\r\n const containerTabItems = tabContainer.querySelectorAll('.calculate-tab-item');\r\n const containerTabContents = tabContainer.querySelectorAll('.calculate-tab-content');\r\n\r\n // Tıklanan tab item'ı bul\r\n const clickedIndex = Array.from(containerTabItems).indexOf(tabItem);\r\n\r\n // Tüm tab item'lardan active class'ı kaldır\r\n containerTabItems.forEach(item => {\r\n item.classList.remove('tab-active');\r\n });\r\n // Tıklanan tab item'a active class'ı ekle\r\n tabItem.classList.add('tab-active');\r\n\r\n // Tüm tab içeriklerini gizle\r\n containerTabContents.forEach(content => {\r\n content.classList.remove('tab-content-active');\r\n });\r\n // Tıklanan tab item'a karşılık gelen tab içeriğini göster\r\n containerTabContents[clickedIndex].classList.add('tab-content-active');\r\n });\r\n });\r\n };\r\n const calculateTabInTab = () => {\r\n // Tüm tab item'ları seç\r\n $(\".calculate-tab-in-tab .item\").on(\"click\", function(){\r\n $(this).parents(\".calculate-content\").find(\".calculate-tab-in-tab .item\").removeClass(\"tab-active\");\r\n $(this).addClass(\"tab-active\");\r\n $(this).parents(\".calculate-content\").find(\".calculate-tab-in-tab-content\").removeClass(\"tab-active\");\r\n $(this).parents(\".calculate-content\").find(\".calculate-tab-in-tab-content\").eq($(this).index()).addClass(\"tab-active\");\r\n });\r\n };\r\n\r\n const cookieTab = () => {\r\n // Tüm tab item'ları seç\r\n $(\".cookie-modal-tab .modal-tab-item\").on(\"click\", function(){\r\n $(\".cookie-modal-tab .modal-tab-item\").removeClass(\"active\");\r\n $(this).addClass(\"active\");\r\n $(\".modal-tab-content\").removeClass(\"tab-active\");\r\n $(\".modal-tab-content\").eq($(this).index()).addClass(\"tab-active\");\r\n });\r\n };\r\n\r\n const boardTab = () => {\r\n document.addEventListener(\"DOMContentLoaded\", function() {\r\n var tabItems = document.querySelectorAll(\".board-member-tab .item\");\r\n var tabContents = document.querySelectorAll(\".board-member-tab-content\");\r\n \r\n tabItems.forEach(function(item, index) {\r\n item.addEventListener(\"click\", function() {\r\n tabItems.forEach(function(tabItem) {\r\n tabItem.classList.remove(\"active\");\r\n });\r\n this.classList.add(\"active\");\r\n \r\n tabContents.forEach(function(tabContent) {\r\n tabContent.classList.remove(\"tab-active\");\r\n });\r\n tabContents[index].classList.add(\"tab-active\");\r\n });\r\n });\r\n });\r\n\r\n $(\"#cookie-all-cancel\").on(\"click\", function(){\r\n $(\".footer-cookie-policy\").remove();\r\n });\r\n\r\n $(\".mobile-filter-toggle\").on(\"click\", function(){\r\n $(\"body\").addClass(\"hide-scrollbar\");\r\n $(\".left-filter\").show();\r\n });\r\n $(\".filter-close\").on(\"click\", function(){\r\n $(\"body\").removeClass(\"hide-scrollbar\");\r\n $(\".left-filter\").hide();\r\n });\r\n };\r\n\r\n\r\n const init = () => {\r\n calculateTab();\r\n calculateTabInTab();\r\n cookieTab();\r\n boardTab();\r\n };\r\n\r\n return {\r\n init,\r\n };\r\n})();\r\n\r\nexport default tabs;\r\n","/**\n * SSR Window 3.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target, src) {\n if (target === void 0) { target = {}; }\n if (src === void 0) { src = {}; }\n Object.keys(src).forEach(function (key) {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nvar ssrDocument = {\n body: {},\n addEventListener: function () { },\n removeEventListener: function () { },\n activeElement: {\n blur: function () { },\n nodeName: '',\n },\n querySelector: function () {\n return null;\n },\n querySelectorAll: function () {\n return [];\n },\n getElementById: function () {\n return null;\n },\n createEvent: function () {\n return {\n initEvent: function () { },\n };\n },\n createElement: function () {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function () { },\n getElementsByTagName: function () {\n return [];\n },\n };\n },\n createElementNS: function () {\n return {};\n },\n importNode: function () {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n var doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nvar ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState: function () { },\n pushState: function () { },\n go: function () { },\n back: function () { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function () { },\n removeEventListener: function () { },\n getComputedStyle: function () {\n return {\n getPropertyValue: function () {\n return '';\n },\n };\n },\n Image: function () { },\n Date: function () { },\n screen: {},\n setTimeout: function () { },\n clearTimeout: function () { },\n matchMedia: function () {\n return {};\n },\n requestAnimationFrame: function (callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame: function (id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n var win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","/**\n * Dom7 3.0.0\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n var proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get: function get() {\n return proto;\n },\n set: function set(value) {\n proto.__proto__ = value;\n }\n });\n}\n\nvar Dom7 = /*#__PURE__*/function (_Array) {\n _inheritsLoose(Dom7, _Array);\n\n function Dom7(items) {\n var _this;\n\n _this = _Array.call.apply(_Array, [this].concat(items)) || this;\n makeReactive(_assertThisInitialized(_this));\n return _this;\n }\n\n return Dom7;\n}( /*#__PURE__*/_wrapNativeSuper(Array));\n\nfunction arrayFlat(arr) {\n if (arr === void 0) {\n arr = [];\n }\n\n var res = [];\n arr.forEach(function (el) {\n if (Array.isArray(el)) {\n res.push.apply(res, arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n var uniqueArray = [];\n\n for (var i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, function (match, group) {\n return group.toUpperCase();\n });\n}\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n var a = [];\n var res = context.querySelectorAll(selector);\n\n for (var i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n var window = getWindow();\n var document = getDocument();\n var arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n var html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n var toCreate = 'div';\n if (html.indexOf(' 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (var attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (var propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n var el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n var dataKey = el.getAttribute(\"data-\" + key);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (var i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n var el = this[0];\n if (!el) return undefined;\n var dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (var dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (var i = 0; i < el.attributes.length; i += 1) {\n var _attr = el.attributes[i];\n\n if (_attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(_attr.name.split('data-')[1])] = _attr.value;\n }\n }\n }\n\n for (var key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n var el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n var values = [];\n\n for (var i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (var _i = 0; _i < this.length; _i += 1) {\n var _el = this[_i];\n\n if (Array.isArray(value) && _el.multiple && _el.nodeName.toLowerCase() === 'select') {\n for (var j = 0; j < _el.options.length; j += 1) {\n _el.options[j].selected = value.indexOf(_el.options[j].value) >= 0;\n }\n } else {\n _el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? duration + \"ms\" : duration;\n }\n\n return this;\n}\n\nfunction on() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n var target = e.target;\n if (!target) return;\n var eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n var _parents = $(target).parents(); // eslint-disable-line\n\n\n for (var k = 0; k < _parents.length; k += 1) {\n if ($(_parents[k]).is(targetSelector)) listener.apply(_parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n var eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n var events = eventType.split(' ');\n var j;\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n var event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener: listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n var _event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[_event]) el.dom7LiveListeners[_event] = [];\n\n el.dom7LiveListeners[_event].push({\n listener: listener,\n proxyListener: handleLiveEvent\n });\n\n el.addEventListener(_event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n var events = eventType.split(' ');\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n var handlers = void 0;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (var k = handlers.length - 1; k >= 0; k -= 1) {\n var handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once() {\n var dom = this;\n\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n var eventName = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventName = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n function onceHandler() {\n for (var _len8 = arguments.length, eventArgs = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n eventArgs[_key8] = arguments[_key8];\n }\n\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger() {\n var window = getWindow();\n\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n\n var events = args[0].split(' ');\n var eventData = args[1];\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n\n if (window.CustomEvent) {\n var evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter(function (data, dataIndex) {\n return dataIndex > 0;\n });\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles = this.styles();\n\n return this[0].offsetWidth + parseFloat(_styles.getPropertyValue('margin-right')) + parseFloat(_styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles2 = this.styles();\n\n return this[0].offsetHeight + parseFloat(_styles2.getPropertyValue('margin-top')) + parseFloat(_styles2.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var box = el.getBoundingClientRect();\n var body = document.body;\n var clientTop = el.clientTop || body.clientTop || 0;\n var clientLeft = el.clientLeft || body.clientLeft || 0;\n var scrollTop = el === window ? window.scrollY : el.scrollTop;\n var scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n var window = getWindow();\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n var window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n var window = getWindow();\n var i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (var _prop in props) {\n this[i].style[_prop] = props[_prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach(function (el, index) {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n var result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var compareWith;\n var i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n var child = this[0];\n var i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n var length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n var returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append() {\n var newChild;\n var document = getDocument();\n\n for (var k = 0; k < arguments.length; k += 1) {\n newChild = k < 0 || arguments.length <= k ? undefined : arguments[k];\n\n for (var i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (var j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n var document = getDocument();\n var i;\n var j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n var before = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (var j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n var after = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (var j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n var nextEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n var _next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_next).is(selector)) nextEls.push(_next);\n } else nextEls.push(_next);\n\n el = _next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n var el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n var prevEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n var _prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_prev).is(selector)) prevEls.push(_prev);\n } else prevEls.push(_prev);\n\n el = _prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var _parent = this[i].parentNode; // eslint-disable-line\n\n while (_parent) {\n if (selector) {\n if ($(_parent).is(selector)) parents.push(_parent);\n } else {\n parents.push(_parent);\n }\n\n _parent = _parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n var closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n var foundElements = [];\n\n for (var i = 0; i < this.length; i += 1) {\n var found = this[i].querySelectorAll(selector);\n\n for (var j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n var children = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var childNodes = this[i].children;\n\n for (var j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add() {\n var dom = this;\n var i;\n var j;\n\n for (var _len10 = arguments.length, els = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n els[_key10] = arguments[_key10];\n }\n\n for (i = 0; i < els.length; i += 1) {\n var toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.nodeType === 1) {\n for (var j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\nfunction scrollTo() {\n var window = getWindow();\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var left = args[0],\n top = args[1],\n duration = args[2],\n easing = args[3],\n callback = args[4];\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n left = args[0];\n top = args[1];\n duration = args[2];\n callback = args[3];\n easing = args[4];\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n var el = this;\n var currentTop;\n var currentLeft;\n var maxTop;\n var maxLeft;\n var newTop;\n var newLeft;\n var scrollTop; // eslint-disable-line\n\n var scrollLeft; // eslint-disable-line\n\n var animateTop = top > 0 || top === 0;\n var animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n var startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time) {\n if (time === void 0) {\n time = new Date().getTime();\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n var progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n var easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n var done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var top = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n top = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var left = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n left = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\nfunction animate(initialProps, initialParams) {\n var window = getWindow();\n var els = this;\n var a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n easingProgress: function easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n stop: function stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done: function done(complete) {\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n var que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate: function animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n var elements = []; // Define & Cache Initials & Units\n\n a.elements.each(function (el, index) {\n var initialFullValue;\n var initialValue;\n var unit;\n var finalValue;\n var finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(function (prop) {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue: initialFullValue,\n initialValue: initialValue,\n unit: unit,\n finalValue: finalValue,\n finalFullValue: finalFullValue,\n currentValue: initialValue\n };\n });\n });\n var startTime = null;\n var time;\n var elementsDone = 0;\n var propsDone = 0;\n var done;\n var began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n var progress;\n var easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(function (element) {\n var el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(function (prop) {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n var _el$prop = el[prop],\n initialValue = _el$prop.initialValue,\n finalValue = _el$prop.finalValue,\n unit = _el$prop.unit;\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n var currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n var animateInstance;\n\n for (var i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n var els = this;\n\n for (var i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nvar noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'undefined') {\n for (var i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on.apply(this, [name].concat(args));\n }\n\n return eventHandler;\n}\n\nvar click = shortcut('click');\nvar blur = shortcut('blur');\nvar focus = shortcut('focus');\nvar focusin = shortcut('focusin');\nvar focusout = shortcut('focusout');\nvar keyup = shortcut('keyup');\nvar keydown = shortcut('keydown');\nvar keypress = shortcut('keypress');\nvar submit = shortcut('submit');\nvar change = shortcut('change');\nvar mousedown = shortcut('mousedown');\nvar mousemove = shortcut('mousemove');\nvar mouseup = shortcut('mouseup');\nvar mouseenter = shortcut('mouseenter');\nvar mouseleave = shortcut('mouseleave');\nvar mouseout = shortcut('mouseout');\nvar mouseover = shortcut('mouseover');\nvar touchstart = shortcut('touchstart');\nvar touchend = shortcut('touchend');\nvar touchmove = shortcut('touchmove');\nvar resize = shortcut('resize');\nvar scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };\n","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nvar Methods = {\n addClass: addClass,\n removeClass: removeClass,\n hasClass: hasClass,\n toggleClass: toggleClass,\n attr: attr,\n removeAttr: removeAttr,\n transform: transform,\n transition: transition,\n on: on,\n off: off,\n trigger: trigger,\n transitionEnd: transitionEnd,\n outerWidth: outerWidth,\n outerHeight: outerHeight,\n styles: styles,\n offset: offset,\n css: css,\n each: each,\n html: html,\n text: text,\n is: is,\n index: index,\n eq: eq,\n append: append,\n prepend: prepend,\n next: next,\n nextAll: nextAll,\n prev: prev,\n prevAll: prevAll,\n parent: parent,\n parents: parents,\n closest: closest,\n find: find,\n children: children,\n filter: filter,\n remove: remove\n};\nObject.keys(Methods).forEach(function (methodName) {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","import { getWindow, getDocument } from 'ssr-window';\nvar support;\n\nfunction calcSupport() {\n var window = getWindow();\n var document = getDocument();\n return {\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n pointerEvents: !!window.PointerEvent && 'maxTouchPoints' in window.navigator && window.navigator.maxTouchPoints >= 0,\n observer: function checkObserver() {\n return 'MutationObserver' in window || 'WebkitMutationObserver' in window;\n }(),\n passiveListener: function checkPassiveListener() {\n var supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support';\nvar device;\n\nfunction calcDevice(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n userAgent = _ref.userAgent;\n\n var support = getSupport();\n var window = getWindow();\n var platform = window.navigator.platform;\n var ua = userAgent || window.navigator.userAgent;\n var device = {\n ios: false,\n android: false\n };\n var screenWidth = window.screen.width;\n var screenHeight = window.screen.height;\n var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n var iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n var windows = platform === 'Win32';\n var macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n var iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(screenWidth + \"x\" + screenHeight) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n\n if (!device) {\n device = calcDevice(overrides);\n }\n\n return device;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nvar browser;\n\nfunction calcBrowser() {\n var window = getWindow();\n\n function isSafari() {\n var ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isEdge: !!window.navigator.userAgent.match(/Edge/g),\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","import { getDocument, getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n var object = obj;\n Object.keys(object).forEach(function (key) {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getComputedStyle(el) {\n var window = getWindow();\n var style;\n\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n\n if (!style) {\n style = el.style;\n }\n\n return style;\n}\n\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n\n var window = getWindow();\n var matrix;\n var curTransform;\n var transformMatrix;\n var curStyle = getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(function (a) {\n return a.replace(',', '.');\n }).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction extend() {\n var to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n var noExtend = ['__proto__', 'constructor', 'prototype'];\n\n for (var i = 1; i < arguments.length; i += 1) {\n var nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n\n if (nextSource !== undefined && nextSource !== null) {\n var keysArray = Object.keys(Object(nextSource)).filter(function (key) {\n return noExtend.indexOf(key) < 0;\n });\n\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n}\n\nfunction bindModuleMethods(instance, obj) {\n Object.keys(obj).forEach(function (key) {\n if (isObject(obj[key])) {\n Object.keys(obj[key]).forEach(function (subKey) {\n if (typeof obj[key][subKey] === 'function') {\n obj[key][subKey] = obj[key][subKey].bind(instance);\n }\n });\n }\n\n instance[key] = obj[key];\n });\n}\n\nfunction classesToSelector(classes) {\n if (classes === void 0) {\n classes = '';\n }\n\n return \".\" + classes.trim().replace(/([\\.:\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.');\n}\n\nfunction createElementIfNotDefined($container, params, createElements, checkProps) {\n var document = getDocument();\n\n if (createElements) {\n Object.keys(checkProps).forEach(function (key) {\n if (!params[key] && params.auto === true) {\n var element = document.createElement('div');\n element.className = checkProps[key];\n $container.append(element);\n params[key] = element;\n }\n });\n }\n\n return params;\n}\n\nexport { deleteProps, nextTick, now, getTranslate, isObject, extend, bindModuleMethods, getComputedStyle, classesToSelector, createElementIfNotDefined };","import { getWindow } from 'ssr-window';\nimport { extend } from '../../utils/utils';\n\nvar supportsResizeObserver = function supportsResizeObserver() {\n var window = getWindow();\n return typeof window.ResizeObserver !== 'undefined';\n};\n\nexport default {\n name: 'resize',\n create: function create() {\n var swiper = this;\n extend(swiper, {\n resize: {\n observer: null,\n createObserver: function createObserver() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.resize.observer = new ResizeObserver(function (entries) {\n var width = swiper.width,\n height = swiper.height;\n var newWidth = width;\n var newHeight = height;\n entries.forEach(function (_ref) {\n var contentBoxSize = _ref.contentBoxSize,\n contentRect = _ref.contentRect,\n target = _ref.target;\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n\n if (newWidth !== width || newHeight !== height) {\n swiper.resize.resizeHandler();\n }\n });\n swiper.resize.observer.observe(swiper.el);\n },\n removeObserver: function removeObserver() {\n if (swiper.resize.observer && swiper.resize.observer.unobserve && swiper.el) {\n swiper.resize.observer.unobserve(swiper.el);\n swiper.resize.observer = null;\n }\n },\n resizeHandler: function resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler: function orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('orientationchange');\n }\n }\n });\n },\n on: {\n init: function init(swiper) {\n var window = getWindow();\n\n if (swiper.params.resizeObserver && supportsResizeObserver()) {\n swiper.resize.createObserver();\n return;\n } // Emit resize\n\n\n window.addEventListener('resize', swiper.resize.resizeHandler); // Emit orientationchange\n\n window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy: function destroy(swiper) {\n var window = getWindow();\n swiper.resize.removeObserver();\n window.removeEventListener('resize', swiper.resize.resizeHandler);\n window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { getWindow } from 'ssr-window';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Observer = {\n attach: function attach(target, options) {\n if (options === void 0) {\n options = {};\n }\n\n var window = getWindow();\n var swiper = this;\n var ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n var observer = new ObserverFunc(function (mutations) {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n swiper.emit('observerUpdate', mutations[0]);\n return;\n }\n\n var observerUpdate = function observerUpdate() {\n swiper.emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n swiper.observer.observers.push(observer);\n },\n init: function init() {\n var swiper = this;\n if (!swiper.support.observer || !swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n var containerParents = swiper.$el.parents();\n\n for (var i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n } // Observe container\n\n\n swiper.observer.attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n swiper.observer.attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.observer.observers.forEach(function (observer) {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n }\n};\nexport default {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n observer: _extends({}, Observer, {\n observers: []\n })\n });\n },\n on: {\n init: function init(swiper) {\n swiper.observer.init();\n },\n destroy: function destroy(swiper) {\n swiper.observer.destroy();\n }\n }\n};","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\nexport default function onTouchStart(event) {\n var swiper = this;\n var document = getDocument();\n var window = getWindow();\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n enabled = swiper.enabled;\n if (!enabled) return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n var $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root componenet\n\n var swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {\n $targetEl = $(event.path[0]);\n }\n\n if (params.noSwiping && $targetEl.closest(params.noSwipingSelector ? params.noSwipingSelector : \".\" + params.noSwipingClass)[0]) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n var startX = touches.currentX;\n var startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n var edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n var edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n\n extend(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n var preventDefault = true;\n if ($targetEl.is(data.formElements)) preventDefault = false;\n\n if (document.activeElement && $(document.activeElement).is(data.formElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n var shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\nexport default function onTouchMove(event) {\n var document = getDocument();\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n enabled = swiper.enabled;\n if (!enabled) return;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\n\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n var targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n var pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n var pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n\n if (data.isTouched) {\n extend(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.formElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n var diffX = touches.currentX - touches.startX;\n var diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(Math.pow(diffX, 2) + Math.pow(diffY, 2)) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n var touchAngle;\n\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n var diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n var disableParentSwiper = true;\n var resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + Math.pow(-swiper.minTranslate() + data.startTranslate + diff, resistanceRatio);\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - Math.pow(swiper.maxTranslate() - data.startTranslate - diff, resistanceRatio);\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (params.freeMode) {\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../../utils/utils';\nexport default function onTouchEnd(event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n $wrapperEl = swiper.$wrapperEl,\n slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid,\n enabled = swiper.enabled;\n if (!enabled) return;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n var touchEndTime = now();\n var timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(function () {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n var currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n\n return;\n }\n\n if (params.freeModeMomentum) {\n if (data.velocities.length > 1) {\n var lastMoveEvent = data.velocities.pop();\n var velocityEvent = data.velocities.pop();\n var distance = lastMoveEvent.position - velocityEvent.position;\n var time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n swiper.velocity = 0;\n } // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n\n\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\n data.velocities.length = 0;\n var momentumDuration = 1000 * params.freeModeMomentumRatio;\n var momentumDistance = swiper.velocity * momentumDuration;\n var newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n var doBounce = false;\n var afterBouncePosition;\n var bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n var needsLoopFix;\n\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeModeSticky) {\n var nextSlide;\n\n for (var j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n\n newPosition = -newPosition;\n }\n\n if (needsLoopFix) {\n swiper.once('transitionEnd', function () {\n swiper.loopFix();\n });\n } // Fix duration\n\n\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n\n if (params.freeModeSticky) {\n // If freeModeSticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n var moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n var currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeModeMomentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n swiper.emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(function () {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n swiper.emit('_freeModeNoMomentumRelease');\n }\n\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n return;\n } // Find current slide\n\n\n var stopIndex = 0;\n var groupSize = swiper.slidesSizesGrid[0];\n\n for (var i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n var _increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (typeof slidesGrid[i + _increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + _increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + _increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n } // Find current slide size\n\n\n var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n var increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n var isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n var swiper = this;\n var params = swiper.params,\n el = swiper.el;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n var allowSlideNext = swiper.allowSlideNext,\n allowSlidePrev = swiper.allowSlidePrev,\n snapGrid = swiper.snapGrid; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n var swiper = this;\n if (!swiper.enabled) return;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n var swiper = this;\n var wrapperEl = swiper.wrapperEl,\n rtlTranslate = swiper.rtlTranslate,\n enabled = swiper.enabled;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n if (rtlTranslate) {\n swiper.translate = wrapperEl.scrollWidth - wrapperEl.offsetWidth - wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollLeft;\n }\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === -0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart';\nimport onTouchMove from './onTouchMove';\nimport onTouchEnd from './onTouchEnd';\nimport onResize from './onResize';\nimport onClick from './onClick';\nimport onScroll from './onScroll';\nvar dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nfunction attachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.addEventListener(touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture: capture\n } : capture);\n el.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.addEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n\n if (!dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.addEventListener('mousedown', swiper.onTouchStart, false);\n document.addEventListener('mousemove', swiper.onTouchMove, capture);\n document.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.addEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.addEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper.on(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper.on('observerUpdate', onResize, true);\n }\n}\n\nfunction detachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'onTouchStart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n el.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.removeEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.removeEventListener('mousedown', swiper.onTouchStart, false);\n document.removeEventListener('mousemove', swiper.onTouchMove, capture);\n document.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.removeEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.removeEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n swiper.off(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize);\n}\n\nexport default {\n attachEvents: attachEvents,\n detachEvents: detachEvents\n};","function checkOverflow() {\n var swiper = this;\n var params = swiper.params;\n var wasLocked = swiper.isLocked;\n var lastSlidePosition = swiper.slides.length > 0 && params.slidesOffsetBefore + params.spaceBetween * (swiper.slides.length - 1) + swiper.slides[0].offsetWidth * swiper.slides.length;\n\n if (params.slidesOffsetBefore && params.slidesOffsetAfter && lastSlidePosition) {\n swiper.isLocked = lastSlidePosition <= swiper.size;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n swiper.allowSlideNext = !swiper.isLocked;\n swiper.allowSlidePrev = !swiper.isLocked; // events\n\n if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n if (swiper.navigation) swiper.navigation.update();\n }\n}\n\nexport default {\n checkOverflow: checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: false,\n nested: false,\n createElements: false,\n enabled: true,\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Free mode\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: false,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n // NS\n containerModifierClass: 'swiper-container-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { extend, now, deleteProps } from '../../utils/utils';\nimport { getSupport } from '../../utils/get-support';\nimport { getDevice } from '../../utils/get-device';\nimport { getBrowser } from '../../utils/get-browser';\nimport Resize from '../../modules/resize/resize';\nimport Observer from '../../modules/observer/observer';\nimport modular from './modular';\nimport eventsEmitter from './events-emitter';\nimport update from './update/index';\nimport translate from './translate/index';\nimport transition from './transition/index';\nimport slide from './slide/index';\nimport loop from './loop/index';\nimport grabCursor from './grab-cursor/index';\nimport manipulation from './manipulation/index';\nimport events from './events/index';\nimport breakpoints from './breakpoints/index';\nimport classes from './classes/index';\nimport images from './images/index';\nimport checkOverflow from './check-overflow/index';\nimport defaults from './defaults';\nvar prototypes = {\n modular: modular,\n eventsEmitter: eventsEmitter,\n update: update,\n translate: translate,\n transition: transition,\n slide: slide,\n loop: loop,\n grabCursor: grabCursor,\n manipulation: manipulation,\n events: events,\n breakpoints: breakpoints,\n checkOverflow: checkOverflow,\n classes: classes,\n images: images\n};\nvar extendedDefaults = {};\n\nvar Swiper = /*#__PURE__*/function () {\n function Swiper() {\n var el;\n var params;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n el = args[0];\n params = args[1];\n }\n\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n\n if (params.el && $(params.el).length > 1) {\n var swipers = [];\n $(params.el).each(function (containerEl) {\n var newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n } // Swiper Instance\n\n\n var swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n\n Object.keys(swiper.modules).forEach(function (moduleName) {\n var module = swiper.modules[moduleName];\n\n if (module.params) {\n var moduleParamName = Object.keys(module.params)[0];\n var moduleParams = module.params[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) return;\n\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n\n if (!(moduleParamName in params && 'enabled' in moduleParams)) return;\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n }\n }); // Extend defaults with modules params\n\n var swiperParams = extend({}, defaults);\n swiper.useParams(swiperParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(function (eventName) {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Extend Swiper\n\n extend(swiper, {\n enabled: swiper.params.enabled,\n el: el,\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal: function isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical: function isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n var touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n var desktop = ['mousedown', 'mousemove', 'mouseup'];\n\n if (swiper.support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n }\n\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n formElements: 'input, select, option, textarea, button, video, label',\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n }); // Install Modules\n\n swiper.useModules();\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n\n\n return swiper;\n }\n\n var _proto = Swiper.prototype;\n\n _proto.enable = function enable() {\n var swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n swiper.emit('enable');\n };\n\n _proto.disable = function disable() {\n var swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n\n swiper.emit('disable');\n };\n\n _proto.setProgress = function setProgress(progress, speed) {\n var swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n var min = swiper.minTranslate();\n var max = swiper.maxTranslate();\n var current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n };\n\n _proto.emitContainerClasses = function emitContainerClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var classes = swiper.el.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-container') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', classes.join(' '));\n };\n\n _proto.getSlideClasses = function getSlideClasses(slideEl) {\n var swiper = this;\n return slideEl.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n };\n\n _proto.emitSlidesClasses = function emitSlidesClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var updates = [];\n swiper.slides.each(function (slideEl) {\n var classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl: slideEl,\n classNames: classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n };\n\n _proto.slidesPerViewDynamic = function slidesPerViewDynamic() {\n var swiper = this;\n var params = swiper.params,\n slides = swiper.slides,\n slidesGrid = swiper.slidesGrid,\n swiperSize = swiper.size,\n activeIndex = swiper.activeIndex;\n var spv = 1;\n\n if (params.centeredSlides) {\n var slideSize = slides[activeIndex].swiperSlideSize;\n var breakLoop;\n\n for (var i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n\n for (var _i = activeIndex - 1; _i >= 0; _i -= 1) {\n if (slides[_i] && !breakLoop) {\n slideSize += slides[_i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n for (var _i2 = activeIndex + 1; _i2 < slides.length; _i2 += 1) {\n if (slidesGrid[_i2] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n\n return spv;\n };\n\n _proto.update = function update() {\n var swiper = this;\n if (!swiper || swiper.destroyed) return;\n var snapGrid = swiper.snapGrid,\n params = swiper.params; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n var translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n var newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n var translated;\n\n if (swiper.params.freeMode) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n };\n\n _proto.changeDirection = function changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n\n var swiper = this;\n var currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(\"\" + swiper.params.containerModifierClass + currentDirection).addClass(\"\" + swiper.params.containerModifierClass + newDirection);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(function (slideEl) {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n };\n\n _proto.mount = function mount(el) {\n var swiper = this;\n if (swiper.mounted) return true; // Find el\n\n var $el = $(el || swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return false;\n }\n\n el.swiper = swiper;\n\n var getWrapper = function getWrapper() {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n var res = $(el.shadowRoot.querySelector(\".\" + swiper.params.wrapperClass)); // Children needs to return slot items\n\n res.children = function (options) {\n return $el.children(options);\n };\n\n return res;\n }\n\n return $el.children(\".\" + swiper.params.wrapperClass);\n }; // Find Wrapper\n\n\n var $wrapperEl = getWrapper();\n\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n var document = getDocument();\n var wrapper = document.createElement('div');\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(\".\" + swiper.params.slideClass).each(function (slideEl) {\n $wrapperEl.append(slideEl);\n });\n }\n\n extend(swiper, {\n $el: $el,\n el: el,\n $wrapperEl: $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n });\n return true;\n };\n\n _proto.init = function init(el) {\n var swiper = this;\n if (swiper.initialized) return swiper;\n var mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n };\n\n _proto.destroy = function destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n $el = swiper.$el,\n $wrapperEl = swiper.$wrapperEl,\n slides = swiper.slides;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(function (eventName) {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n };\n\n Swiper.extendDefaults = function extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n };\n\n Swiper.installModule = function installModule(module) {\n if (!Swiper.prototype.modules) Swiper.prototype.modules = {};\n var name = module.name || Object.keys(Swiper.prototype.modules).length + \"_\" + now();\n Swiper.prototype.modules[name] = module;\n };\n\n Swiper.use = function use(module) {\n if (Array.isArray(module)) {\n module.forEach(function (m) {\n return Swiper.installModule(m);\n });\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n };\n\n _createClass(Swiper, null, [{\n key: \"extendedDefaults\",\n get: function get() {\n return extendedDefaults;\n }\n }, {\n key: \"defaults\",\n get: function get() {\n return defaults;\n }\n }]);\n\n return Swiper;\n}();\n\nObject.keys(prototypes).forEach(function (prototypeGroup) {\n Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import { extend } from '../../utils/utils';\nexport default {\n useParams: function useParams(instanceParams) {\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName]; // Extend params\n\n if (module.params) {\n extend(instanceParams, module.params);\n }\n });\n },\n useModules: function useModules(modulesParams) {\n if (modulesParams === void 0) {\n modulesParams = {};\n }\n\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName];\n var moduleParams = modulesParams[moduleName] || {}; // Add event listeners\n\n if (module.on && instance.on) {\n Object.keys(module.on).forEach(function (moduleEventName) {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n } // Module create callback\n\n\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n }\n};","/* eslint-disable no-underscore-dangle */\nexport default {\n on: function on(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(function (event) {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once: function once(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n\n function onceHandler() {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny: function onAny(handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n offAny: function offAny(handler) {\n var self = this;\n if (!self.eventsAnyListeners) return self;\n var index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n off: function off(events, handler) {\n var self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(function (event) {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (eventHandler, index) {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit: function emit() {\n var self = this;\n if (!self.eventsListeners) return self;\n var events;\n var data;\n var context;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n\n data.unshift(context);\n var eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(function (event) {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(function (eventHandler) {\n eventHandler.apply(context, [event].concat(data));\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (eventHandler) {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};","import updateSize from './updateSize';\nimport updateSlides from './updateSlides';\nimport updateAutoHeight from './updateAutoHeight';\nimport updateSlidesOffset from './updateSlidesOffset';\nimport updateSlidesProgress from './updateSlidesProgress';\nimport updateProgress from './updateProgress';\nimport updateSlidesClasses from './updateSlidesClasses';\nimport updateActiveIndex from './updateActiveIndex';\nimport updateClickedSlide from './updateClickedSlide';\nexport default {\n updateSize: updateSize,\n updateSlides: updateSlides,\n updateAutoHeight: updateAutoHeight,\n updateSlidesOffset: updateSlidesOffset,\n updateSlidesProgress: updateSlidesProgress,\n updateProgress: updateProgress,\n updateSlidesClasses: updateSlidesClasses,\n updateActiveIndex: updateActiveIndex,\n updateClickedSlide: updateClickedSlide\n};","import { extend } from '../../../utils/utils';\nexport default function updateSize() {\n var swiper = this;\n var width;\n var height;\n var $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n extend(swiper, {\n width: width,\n height: height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { extend } from '../../../utils/utils';\nexport default function updateSlides() {\n var swiper = this;\n\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\n\n\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl,\n swiperSize = swiper.size,\n rtl = swiper.rtlTranslate,\n wrongRTL = swiper.wrongRTL;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n var previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n var slides = $wrapperEl.children(\".\" + swiper.params.slideClass);\n var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n var snapGrid = [];\n var slidesGrid = [];\n var slidesSizesGrid = [];\n var offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n var offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n var previousSnapGridLength = swiper.snapGrid.length;\n var previousSlidesGridLength = swiper.slidesGrid.length;\n var spaceBetween = params.spaceBetween;\n var slidePosition = -offsetBefore;\n var prevSlideSize = 0;\n var index = 0;\n\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: ''\n });\n var slidesNumberEvenToRows;\n\n if (params.slidesPerColumn > 1) {\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n }\n } // Calc slides\n\n\n var slideSize;\n var slidesPerColumn = params.slidesPerColumn;\n var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n var numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n\n for (var i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n var slide = slides.eq(i);\n\n if (params.slidesPerColumn > 1) {\n // Set slides order\n var newSlideOrderIndex = void 0;\n var column = void 0;\n var row = void 0;\n\n if (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) {\n var groupIndex = Math.floor(i / (params.slidesPerGroup * params.slidesPerColumn));\n var slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex;\n var columnsInGroup = groupIndex === 0 ? params.slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup) / slidesPerColumn), params.slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * params.slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / slidesPerColumn;\n slide.css({\n '-webkit-box-ordinal-group': newSlideOrderIndex,\n '-moz-box-ordinal-group': newSlideOrderIndex,\n '-ms-flex-order': newSlideOrderIndex,\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex\n });\n } else if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - column * slidesPerColumn;\n\n if (column > numFullColumns || column === numFullColumns && row === slidesPerColumn - 1) {\n row += 1;\n\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n\n slide.css(getDirectionLabel('margin-top'), row !== 0 && params.spaceBetween && params.spaceBetween + \"px\");\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n var slideStyles = getComputedStyle(slide[0]);\n var currentTransform = slide[0].style.transform;\n var currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n var width = getDirectionPropertyValue(slideStyles, 'width');\n var paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n var paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n var marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n var marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n var boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n var _slide$ = slide[0],\n clientWidth = _slide$.clientWidth,\n offsetWidth = _slide$.offsetWidth;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = slideSize + \"px\";\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n var newSlidesGrid;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: swiper.virtualSize + params.spaceBetween + \"px\"\n });\n }\n\n if (params.setWrapperSize) {\n var _$wrapperEl$css;\n\n $wrapperEl.css((_$wrapperEl$css = {}, _$wrapperEl$css[getDirectionLabel('width')] = swiper.virtualSize + params.spaceBetween + \"px\", _$wrapperEl$css));\n }\n\n if (params.slidesPerColumn > 1) {\n var _$wrapperEl$css2;\n\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n $wrapperEl.css((_$wrapperEl$css2 = {}, _$wrapperEl$css2[getDirectionLabel('width')] = swiper.virtualSize + params.spaceBetween + \"px\", _$wrapperEl$css2));\n\n if (params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i = 0; _i < snapGrid.length; _i += 1) {\n var slidesGridItem = snapGrid[_i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[_i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n\n snapGrid = newSlidesGrid;\n }\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i2 = 0; _i2 < snapGrid.length; _i2 += 1) {\n var _slidesGridItem = snapGrid[_i2];\n if (params.roundLengths) _slidesGridItem = Math.floor(_slidesGridItem);\n\n if (snapGrid[_i2] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(_slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n var _slides$filter$css;\n\n var key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter(function (_, slideIndex) {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }).css((_slides$filter$css = {}, _slides$filter$css[key] = spaceBetween + \"px\", _slides$filter$css));\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n var allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n var maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(function (snap) {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n var _allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n _allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n _allSlidesSize -= params.spaceBetween;\n\n if (_allSlidesSize < swiperSize) {\n var allSlidesOffset = (swiperSize - _allSlidesSize) / 2;\n snapGrid.forEach(function (snap, snapIndex) {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach(function (snap, snapIndex) {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n extend(swiper, {\n slides: slides,\n snapGrid: snapGrid,\n slidesGrid: slidesGrid,\n slidesSizesGrid: slidesSizesGrid\n });\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n}","export default function updateAutoHeight(speed) {\n var swiper = this;\n var activeSlides = [];\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n var newHeight = 0;\n var i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n\n var getSlideByIndex = function getSlideByIndex(index) {\n if (isVirtual) {\n return swiper.slides.filter(function (el) {\n return parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index;\n })[0];\n }\n\n return swiper.slides.eq(index)[0];\n }; // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each(function (slide) {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n var index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n } // Find new height from highest slide in view\n\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n var height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight) swiper.$wrapperEl.css('height', newHeight + \"px\");\n}","export default function updateSlidesOffset() {\n var swiper = this;\n var slides = swiper.slides;\n\n for (var i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../../utils/dom';\nexport default function updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n\n var swiper = this;\n var params = swiper.params;\n var slides = swiper.slides,\n rtl = swiper.rtlTranslate;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n var offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (var i = 0; i < slides.length; i += 1) {\n var slide = slides[i];\n var slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slide.swiperSlideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n\n if (params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) {\n var slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n var slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n var isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","import { extend } from '../../../utils/utils';\nexport default function updateProgress(translate) {\n var swiper = this;\n\n if (typeof translate === 'undefined') {\n var multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n var params = swiper.params;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n var progress = swiper.progress,\n isBeginning = swiper.isBeginning,\n isEnd = swiper.isEnd;\n var wasBeginning = isBeginning;\n var wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n extend(swiper, {\n progress: progress,\n isBeginning: isBeginning,\n isEnd: isEnd\n });\n if (params.watchSlidesProgress || params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n var swiper = this;\n var slides = swiper.slides,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex,\n realIndex = swiper.realIndex;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(params.slideActiveClass + \" \" + params.slideNextClass + \" \" + params.slidePrevClass + \" \" + params.slideDuplicateActiveClass + \" \" + params.slideDuplicateNextClass + \" \" + params.slideDuplicatePrevClass);\n var activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + activeIndex + \"\\\"]\");\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n var nextSlide = activeSlide.nextAll(\".\" + params.slideClass).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n var prevSlide = activeSlide.prevAll(\".\" + params.slideClass).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","import { extend } from '../../../utils/utils';\nexport default function updateActiveIndex(newActiveIndex) {\n var swiper = this;\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n var slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid,\n params = swiper.params,\n previousIndex = swiper.activeIndex,\n previousRealIndex = swiper.realIndex,\n previousSnapIndex = swiper.snapIndex;\n var activeIndex = newActiveIndex;\n var snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n var skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n var realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n extend(swiper, {\n snapIndex: snapIndex,\n realIndex: realIndex,\n previousIndex: previousIndex,\n activeIndex: activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../../utils/dom';\nexport default function updateClickedSlide(e) {\n var swiper = this;\n var params = swiper.params;\n var slide = $(e.target).closest(\".\" + params.slideClass)[0];\n var slideFound = false;\n var slideIndex;\n\n if (slide) {\n for (var i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","import getTranslate from './getTranslate';\nimport setTranslate from './setTranslate';\nimport minTranslate from './minTranslate';\nimport maxTranslate from './maxTranslate';\nimport translateTo from './translateTo';\nexport default {\n getTranslate: getTranslate,\n setTranslate: setTranslate,\n minTranslate: minTranslate,\n maxTranslate: maxTranslate,\n translateTo: translateTo\n};","import { getTranslate } from '../../../utils/utils';\nexport default function getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n\n var swiper = this;\n var params = swiper.params,\n rtl = swiper.rtlTranslate,\n translate = swiper.translate,\n $wrapperEl = swiper.$wrapperEl;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n var currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n var swiper = this;\n var rtl = swiper.rtlTranslate,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n wrapperEl = swiper.wrapperEl,\n progress = swiper.progress;\n var x = 0;\n var y = 0;\n var z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(\"translate3d(\" + x + \"px, \" + y + \"px, \" + z + \"px)\");\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","export default function translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n wrapperEl = swiper.wrapperEl;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n var minTranslate = swiper.minTranslate();\n var maxTranslate = swiper.maxTranslate();\n var newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = -newTranslate, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n }\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","import setTransition from './setTransition';\nimport transitionStart from './transitionStart';\nimport transitionEnd from './transitionEnd';\nexport default {\n setTransition: setTransition,\n transitionStart: transitionStart,\n transitionEnd: transitionEnd\n};","export default function setTransition(duration, byController) {\n var swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","export default function transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n params = swiper.params,\n previousIndex = swiper.previousIndex;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n var dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit('transitionStart');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n\n swiper.emit('slideChangeTransitionStart');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n}","export default function transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n previousIndex = swiper.previousIndex,\n params = swiper.params;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n var dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit('transitionEnd');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n\n swiper.emit('slideChangeTransitionEnd');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n}","import slideTo from './slideTo';\nimport slideToLoop from './slideToLoop';\nimport slideNext from './slideNext';\nimport slidePrev from './slidePrev';\nimport slideReset from './slideReset';\nimport slideToClosest from './slideToClosest';\nimport slideToClickedSlide from './slideToClickedSlide';\nexport default {\n slideTo: slideTo,\n slideToLoop: slideToLoop,\n slideNext: slideNext,\n slidePrev: slidePrev,\n slideReset: slideReset,\n slideToClosest: slideToClosest,\n slideToClickedSlide: slideToClickedSlide\n};","export default function slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(\"The 'index' argument cannot have type other than 'number' or 'string'. [\" + typeof index + \"] given.\");\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n var indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n var isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(\"The passed-in 'index' (string) couldn't be converted to 'number'. [\" + index + \"] given.\");\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n var swiper = this;\n var slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n var params = swiper.params,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n previousIndex = swiper.previousIndex,\n activeIndex = swiper.activeIndex,\n rtl = swiper.rtlTranslate,\n wrapperEl = swiper.wrapperEl,\n enabled = swiper.enabled;\n\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n\n var skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n var snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n var translate = -snapGrid[snapIndex]; // Update progress\n\n swiper.updateProgress(translate); // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n var normalizedTranslate = -Math.floor(translate * 100);\n var normalizedGird = Math.floor(slidesGrid[i] * 100);\n var normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGird && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGird) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGird && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGird) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n var direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n var t = -translate;\n\n if (rtl) {\n t = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t;\n }\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = t, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","export default function slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating,\n enabled = swiper.enabled;\n if (!enabled) return swiper;\n var increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n rtlTranslate = swiper.rtlTranslate,\n enabled = swiper.enabled;\n if (!enabled) return swiper;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n var translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n var normalizedTranslate = normalize(translate);\n var normalizedSnapGrid = snapGrid.map(function (val) {\n return normalize(val);\n });\n var currentSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)];\n var prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n snapGrid.forEach(function (snap) {\n if (!prevSnap && normalizedTranslate >= snap) prevSnap = snap;\n });\n }\n\n var prevIndex;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed, runCallbacks, internal, threshold) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (threshold === void 0) {\n threshold = 0.5;\n }\n\n var swiper = this;\n var index = swiper.activeIndex;\n var skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n var snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n var currentSnap = swiper.snapGrid[snapIndex];\n var nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n var prevSnap = swiper.snapGrid[snapIndex - 1];\n var _currentSnap = swiper.snapGrid[snapIndex];\n\n if (translate - prevSnap <= (_currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import $ from '../../../utils/dom';\nimport { nextTick } from '../../../utils/utils';\nexport default function slideToClickedSlide() {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl;\n var slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n var slideToIndex = swiper.clickedIndex;\n var realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import loopCreate from './loopCreate';\nimport loopFix from './loopFix';\nimport loopDestroy from './loopDestroy';\nexport default {\n loopCreate: loopCreate,\n loopFix: loopFix,\n loopDestroy: loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loopCreate() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl; // Remove duplicated slides\n\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass).remove();\n var slides = $wrapperEl.children(\".\" + params.slideClass);\n\n if (params.loopFillGroupWithBlank) {\n var blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankNode = $(document.createElement('div')).addClass(params.slideClass + \" \" + params.slideBlankClass);\n $wrapperEl.append(blankNode);\n }\n\n slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n var prependSlides = [];\n var appendSlides = [];\n slides.each(function (el, index) {\n var slide = $(el);\n\n if (index < swiper.loopedSlides) {\n appendSlides.push(el);\n }\n\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\n prependSlides.push(el);\n }\n\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (var _i = 0; _i < appendSlides.length; _i += 1) {\n $wrapperEl.append($(appendSlides[_i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (var _i2 = prependSlides.length - 1; _i2 >= 0; _i2 -= 1) {\n $wrapperEl.prepend($(prependSlides[_i2].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n var swiper = this;\n swiper.emit('beforeLoopFix');\n var activeIndex = swiper.activeIndex,\n slides = swiper.slides,\n loopedSlides = swiper.loopedSlides,\n allowSlidePrev = swiper.allowSlidePrev,\n allowSlideNext = swiper.allowSlideNext,\n snapGrid = swiper.snapGrid,\n rtl = swiper.rtlTranslate;\n var newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n var snapTranslate = -snapGrid[activeIndex];\n var diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n var slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n\n var _slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (_slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n slides = swiper.slides;\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \",.\" + params.slideClass + \".\" + params.slideBlankClass).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import setGrabCursor from './setGrabCursor';\nimport unsetGrabCursor from './unsetGrabCursor';\nexport default {\n setGrabCursor: setGrabCursor,\n unsetGrabCursor: unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n var swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n var el = swiper.el;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n var swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper.el.style.cursor = '';\n}","import appendSlide from './appendSlide';\nimport prependSlide from './prependSlide';\nimport addSlide from './addSlide';\nimport removeSlide from './removeSlide';\nimport removeAllSlides from './removeAllSlides';\nexport default {\n appendSlide: appendSlide,\n prependSlide: prependSlide,\n addSlide: addSlide,\n removeSlide: removeSlide,\n removeAllSlides: removeAllSlides\n};","export default function appendSlide(slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n } else {\n $wrapperEl.append(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n}","export default function prependSlide(slides) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n var newActiveIndex = activeIndex + 1;\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.prepend(slides[i]);\n }\n\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n swiper.slideTo(newActiveIndex, 0, false);\n}","export default function addSlide(index, slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var baseLength = swiper.slides.length;\n\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n\n var newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n var slidesBuffer = [];\n\n for (var i = baseLength - 1; i >= index; i -= 1) {\n var currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var _i = 0; _i < slides.length; _i += 1) {\n if (slides[_i]) $wrapperEl.append(slides[_i]);\n }\n\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n\n for (var _i2 = 0; _i2 < slidesBuffer.length; _i2 += 1) {\n $wrapperEl.append(slidesBuffer[_i2]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","export default function removeSlide(slidesIndexes) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var newActiveIndex = activeIndexBuffer;\n var indexToRemove;\n\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (var i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","export default function removeAllSlides() {\n var swiper = this;\n var slidesIndexes = [];\n\n for (var i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n\n swiper.removeSlide(slidesIndexes);\n}","import setBreakpoint from './setBreakpoint';\nimport getBreakpoint from './getBreakpoint';\nexport default {\n setBreakpoint: setBreakpoint,\n getBreakpoint: getBreakpoint\n};","import { extend } from '../../../utils/utils';\nexport default function setBreakpoint() {\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n initialized = swiper.initialized,\n _swiper$loopedSlides = swiper.loopedSlides,\n loopedSlides = _swiper$loopedSlides === void 0 ? 0 : _swiper$loopedSlides,\n params = swiper.params,\n $el = swiper.$el;\n var breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n var breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams) {\n ['slidesPerView', 'spaceBetween', 'slidesPerGroup', 'slidesPerGroupSkip', 'slidesPerColumn'].forEach(function (param) {\n var paramValue = breakpointOnlyParams[param];\n if (typeof paramValue === 'undefined') return;\n\n if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n breakpointOnlyParams[param] = 'auto';\n } else if (param === 'slidesPerView') {\n breakpointOnlyParams[param] = parseFloat(paramValue);\n } else {\n breakpointOnlyParams[param] = parseInt(paramValue, 10);\n }\n });\n }\n\n var breakpointParams = breakpointOnlyParams || swiper.originalParams;\n var wasMultiRow = params.slidesPerColumn > 1;\n var isMultiRow = breakpointParams.slidesPerColumn > 1;\n var wasEnabled = params.enabled;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(params.containerModifierClass + \"multirow \" + params.containerModifierClass + \"multirow-column\");\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(params.containerModifierClass + \"multirow\");\n\n if (breakpointParams.slidesPerColumnFill === 'column') {\n $el.addClass(params.containerModifierClass + \"multirow-column\");\n }\n\n swiper.emitContainerClasses();\n }\n\n var directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n var needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n var isEnabled = swiper.params.enabled;\n extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n}","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\n\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n var breakpoint = false;\n var window = getWindow();\n var currentWidth = base === 'window' ? window.innerWidth : containerEl.clientWidth;\n var currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n var points = Object.keys(breakpoints).map(function (point) {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n var minRatio = parseFloat(point.substr(1));\n var value = currentHeight * minRatio;\n return {\n value: value,\n point: point\n };\n }\n\n return {\n value: point,\n point: point\n };\n });\n points.sort(function (a, b) {\n return parseInt(a.value, 10) - parseInt(b.value, 10);\n });\n\n for (var i = 0; i < points.length; i += 1) {\n var _points$i = points[i],\n point = _points$i.point,\n value = _points$i.value;\n\n if (value <= currentWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","import addClasses from './addClasses';\nimport removeClasses from './removeClasses';\nexport default {\n addClasses: addClasses,\n removeClasses: removeClasses\n};","function prepareClasses(entries, prefix) {\n var resultClasses = [];\n entries.forEach(function (item) {\n if (typeof item === 'object') {\n Object.keys(item).forEach(function (classNames) {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\n\nexport default function addClasses() {\n var swiper = this;\n var classNames = swiper.classNames,\n params = swiper.params,\n rtl = swiper.rtl,\n $el = swiper.$el,\n device = swiper.device,\n support = swiper.support; // prettier-ignore\n\n var suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': support.pointerEvents && !support.touch\n }, {\n 'free-mode': params.freeMode\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'multirow': params.slidesPerColumn > 1\n }, {\n 'multirow-column': params.slidesPerColumn > 1 && params.slidesPerColumnFill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }], params.containerModifierClass);\n classNames.push.apply(classNames, suffixes);\n $el.addClass([].concat(classNames).join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n var swiper = this;\n var $el = swiper.$el,\n classNames = swiper.classNames;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","import loadImage from './loadImage';\nimport preloadImages from './preloadImages';\nexport default {\n loadImage: loadImage,\n preloadImages: preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n var window = getWindow();\n var image;\n\n function onReady() {\n if (callback) callback();\n }\n\n var isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n var swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (var i = 0; i < swiper.imagesToLoad.length; i += 1) {\n var imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods, createElementIfNotDefined } from '../../utils/utils';\nvar Navigation = {\n toggleEl: function toggleEl($el, disabled) {\n $el[disabled ? 'addClass' : 'removeClass'](this.params.navigation.disabledClass);\n if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\n },\n update: function update() {\n // Update Navigation Buttons\n var swiper = this;\n var params = swiper.params.navigation;\n var toggleEl = swiper.navigation.toggleEl;\n if (swiper.params.loop) return;\n var _swiper$navigation = swiper.navigation,\n $nextEl = _swiper$navigation.$nextEl,\n $prevEl = _swiper$navigation.$prevEl;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n toggleEl($prevEl, true);\n } else {\n toggleEl($prevEl, false);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $prevEl[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n toggleEl($nextEl, true);\n } else {\n toggleEl($nextEl, false);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $nextEl[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n },\n onPrevClick: function onPrevClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop) return;\n swiper.slidePrev();\n },\n onNextClick: function onNextClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop) return;\n swiper.slideNext();\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper.$el, swiper.params.navigation, swiper.params.createElements, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n var $nextEl;\n var $prevEl;\n\n if (params.nextEl) {\n $nextEl = $(params.nextEl);\n\n if (swiper.params.uniqueNavElements && typeof params.nextEl === 'string' && $nextEl.length > 1 && swiper.$el.find(params.nextEl).length === 1) {\n $nextEl = swiper.$el.find(params.nextEl);\n }\n }\n\n if (params.prevEl) {\n $prevEl = $(params.prevEl);\n\n if (swiper.params.uniqueNavElements && typeof params.prevEl === 'string' && $prevEl.length > 1 && swiper.$el.find(params.prevEl).length === 1) {\n $prevEl = swiper.$el.find(params.prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', swiper.navigation.onNextClick);\n }\n\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', swiper.navigation.onPrevClick);\n }\n\n extend(swiper.navigation, {\n $nextEl: $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl: $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n\n if (!swiper.enabled) {\n if ($nextEl) $nextEl.addClass(params.lockClass);\n if ($prevEl) $prevEl.addClass(params.lockClass);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n var _swiper$navigation2 = swiper.navigation,\n $nextEl = _swiper$navigation2.$nextEl,\n $prevEl = _swiper$navigation2.$prevEl;\n\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', swiper.navigation.onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', swiper.navigation.onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n};\nexport default {\n name: 'navigation',\n params: {\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n navigation: _extends({}, Navigation)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.navigation.init();\n swiper.navigation.update();\n },\n toEdge: function toEdge(swiper) {\n swiper.navigation.update();\n },\n fromEdge: function fromEdge(swiper) {\n swiper.navigation.update();\n },\n destroy: function destroy(swiper) {\n swiper.navigation.destroy();\n },\n 'enable disable': function enableDisable(swiper) {\n var _swiper$navigation3 = swiper.navigation,\n $nextEl = _swiper$navigation3.$nextEl,\n $prevEl = _swiper$navigation3.$prevEl;\n\n if ($nextEl) {\n $nextEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n\n if ($prevEl) {\n $prevEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n },\n click: function click(swiper, e) {\n var _swiper$navigation4 = swiper.navigation,\n $nextEl = _swiper$navigation4.$nextEl,\n $prevEl = _swiper$navigation4.$prevEl;\n var targetEl = e.target;\n\n if (swiper.params.navigation.hideOnClick && !$(targetEl).is($prevEl) && !$(targetEl).is($nextEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n var isHidden;\n\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n\n if (isHidden === true) {\n swiper.emit('navigationShow');\n } else {\n swiper.emit('navigationHide');\n }\n\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods, classesToSelector, createElementIfNotDefined } from '../../utils/utils';\nvar Pagination = {\n update: function update() {\n // Render || Update Pagination bullets/items\n var swiper = this;\n var rtl = swiper.rtl;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el; // Current/Total\n\n var current;\n var total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n } // Types\n\n\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n var bullets = swiper.pagination.bullets;\n var firstIndex;\n var lastIndex;\n var midIndex;\n\n if (params.dynamicBullets) {\n swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', swiper.pagination.bulletSize * (params.dynamicMainBullets + 4) + \"px\");\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n swiper.pagination.dynamicBulletIndex += current - swiper.previousIndex;\n\n if (swiper.pagination.dynamicBulletIndex > params.dynamicMainBullets - 1) {\n swiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (swiper.pagination.dynamicBulletIndex < 0) {\n swiper.pagination.dynamicBulletIndex = 0;\n }\n }\n\n firstIndex = current - swiper.pagination.dynamicBulletIndex;\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n\n bullets.removeClass(params.bulletActiveClass + \" \" + params.bulletActiveClass + \"-next \" + params.bulletActiveClass + \"-next-next \" + params.bulletActiveClass + \"-prev \" + params.bulletActiveClass + \"-prev-prev \" + params.bulletActiveClass + \"-main\");\n\n if ($el.length > 1) {\n bullets.each(function (bullet) {\n var $bullet = $(bullet);\n var bulletIndex = $bullet.index();\n\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(params.bulletActiveClass + \"-main\");\n }\n\n if (bulletIndex === firstIndex) {\n $bullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n }\n\n if (bulletIndex === lastIndex) {\n $bullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n }\n });\n } else {\n var $bullet = bullets.eq(current);\n var bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n\n if (params.dynamicBullets) {\n var $firstDisplayedBullet = bullets.eq(firstIndex);\n var $lastDisplayedBullet = bullets.eq(lastIndex);\n\n for (var i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(params.bulletActiveClass + \"-main\");\n }\n\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length - params.dynamicMainBullets) {\n for (var _i = params.dynamicMainBullets; _i >= 0; _i -= 1) {\n bullets.eq(bullets.length - _i).addClass(params.bulletActiveClass + \"-main\");\n }\n\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(params.bulletActiveClass + \"-prev\");\n } else {\n $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n $lastDisplayedBullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n } else {\n $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n $lastDisplayedBullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n }\n }\n\n if (params.dynamicBullets) {\n var dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n var bulletsOffset = (swiper.pagination.bulletSize * dynamicBulletsLength - swiper.pagination.bulletSize) / 2 - midIndex * swiper.pagination.bulletSize;\n var offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', bulletsOffset + \"px\");\n }\n }\n\n if (params.type === 'fraction') {\n $el.find(classesToSelector(params.currentClass)).text(params.formatFractionCurrent(current + 1));\n $el.find(classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));\n }\n\n if (params.type === 'progressbar') {\n var progressbarDirection;\n\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n\n var scale = (current + 1) / total;\n var scaleX = 1;\n var scaleY = 1;\n\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n\n $el.find(classesToSelector(params.progressbarFillClass)).transform(\"translate3d(0,0,0) scaleX(\" + scaleX + \") scaleY(\" + scaleY + \")\").transition(swiper.params.speed);\n }\n\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n swiper.emit('paginationRender', $el[0]);\n } else {\n swiper.emit('paginationUpdate', $el[0]);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n },\n render: function render() {\n // Render Container\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el;\n var paginationHTML = '';\n\n if (params.type === 'bullets') {\n var numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.freeMode && !swiper.params.loop && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n\n for (var i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += \"<\" + params.bulletElement + \" class=\\\"\" + params.bulletClass + \"\\\">\";\n }\n }\n\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(classesToSelector(params.bulletClass));\n }\n\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = \"\" + ' / ' + (\"\");\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = \"\";\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type !== 'custom') {\n swiper.emit('paginationRender', swiper.pagination.$el[0]);\n }\n },\n init: function init() {\n var swiper = this;\n swiper.params.pagination = createElementIfNotDefined(swiper.$el, swiper.params.pagination, swiper.params.createElements, {\n el: 'swiper-pagination'\n });\n var params = swiper.params.pagination;\n if (!params.el) return;\n var $el = $(params.el);\n if ($el.length === 0) return;\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n $el = swiper.$el.find(params.el);\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(\"\" + params.modifierClass + params.type + \"-dynamic\");\n swiper.pagination.dynamicBulletIndex = 0;\n\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', classesToSelector(params.bulletClass), function onClick(e) {\n e.preventDefault();\n var index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n extend(swiper.pagination, {\n $el: $el,\n el: $el[0]\n });\n\n if (!swiper.enabled) {\n $el.addClass(params.lockClass);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n if (swiper.pagination.bullets) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', classesToSelector(params.bulletClass));\n }\n }\n};\nexport default {\n name: 'pagination',\n params: {\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: function formatFractionCurrent(number) {\n return number;\n },\n formatFractionTotal: function formatFractionTotal(number) {\n return number;\n },\n bulletClass: 'swiper-pagination-bullet',\n bulletActiveClass: 'swiper-pagination-bullet-active',\n modifierClass: 'swiper-pagination-',\n // NEW\n currentClass: 'swiper-pagination-current',\n totalClass: 'swiper-pagination-total',\n hiddenClass: 'swiper-pagination-hidden',\n progressbarFillClass: 'swiper-pagination-progressbar-fill',\n progressbarOppositeClass: 'swiper-pagination-progressbar-opposite',\n clickableClass: 'swiper-pagination-clickable',\n // NEW\n lockClass: 'swiper-pagination-lock'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n pagination: _extends({\n dynamicBulletIndex: 0\n }, Pagination)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.pagination.init();\n swiper.pagination.render();\n swiper.pagination.update();\n },\n activeIndexChange: function activeIndexChange(swiper) {\n if (swiper.params.loop) {\n swiper.pagination.update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n swiper.pagination.update();\n }\n },\n snapIndexChange: function snapIndexChange(swiper) {\n if (!swiper.params.loop) {\n swiper.pagination.update();\n }\n },\n slidesLengthChange: function slidesLengthChange(swiper) {\n if (swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n snapGridLengthChange: function snapGridLengthChange(swiper) {\n if (!swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n destroy: function destroy(swiper) {\n swiper.pagination.destroy();\n },\n 'enable disable': function enableDisable(swiper) {\n var $el = swiper.pagination.$el;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n }\n },\n click: function click(swiper, e) {\n var targetEl = e.target;\n\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && swiper.pagination.$el.length > 0 && !$(targetEl).hasClass(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n var isHidden = swiper.pagination.$el.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n swiper.emit('paginationShow');\n } else {\n swiper.emit('paginationHide');\n }\n\n swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/* eslint no-underscore-dangle: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { nextTick, bindModuleMethods } from '../../utils/utils';\nvar Autoplay = {\n run: function run() {\n var swiper = this;\n var $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n var delay = swiper.params.autoplay.delay;\n\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = nextTick(function () {\n var autoplayResult;\n\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isBeginning) {\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isEnd) {\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n\n if (swiper.params.cssMode && swiper.autoplay.running) swiper.autoplay.run();else if (autoplayResult === false) {\n swiper.autoplay.run();\n }\n }, delay);\n },\n start: function start() {\n var swiper = this;\n if (typeof swiper.autoplay.timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n swiper.emit('autoplayStart');\n swiper.autoplay.run();\n return true;\n },\n stop: function stop() {\n var swiper = this;\n if (!swiper.autoplay.running) return false;\n if (typeof swiper.autoplay.timeout === 'undefined') return false;\n\n if (swiper.autoplay.timeout) {\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = undefined;\n }\n\n swiper.autoplay.running = false;\n swiper.emit('autoplayStop');\n return true;\n },\n pause: function pause(speed) {\n var swiper = this;\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (swiper.autoplay.timeout) clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.paused = true;\n\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n } else {\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].addEventListener(event, swiper.autoplay.onTransitionEnd);\n });\n }\n },\n onVisibilityChange: function onVisibilityChange() {\n var swiper = this;\n var document = getDocument();\n\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n swiper.autoplay.pause();\n }\n\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n swiper.autoplay.run();\n swiper.autoplay.paused = false;\n }\n },\n onTransitionEnd: function onTransitionEnd(e) {\n var swiper = this;\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== swiper.$wrapperEl[0]) return;\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].removeEventListener(event, swiper.autoplay.onTransitionEnd);\n });\n swiper.autoplay.paused = false;\n\n if (!swiper.autoplay.running) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.run();\n }\n },\n onMouseEnter: function onMouseEnter() {\n var swiper = this;\n\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].removeEventListener(event, swiper.autoplay.onTransitionEnd);\n });\n },\n onMouseLeave: function onMouseLeave() {\n var swiper = this;\n\n if (swiper.params.autoplay.disableOnInteraction) {\n return;\n }\n\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n },\n attachMouseEvents: function attachMouseEvents() {\n var swiper = this;\n\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.$el.on('mouseenter', swiper.autoplay.onMouseEnter);\n swiper.$el.on('mouseleave', swiper.autoplay.onMouseLeave);\n }\n },\n detachMouseEvents: function detachMouseEvents() {\n var swiper = this;\n swiper.$el.off('mouseenter', swiper.autoplay.onMouseEnter);\n swiper.$el.off('mouseleave', swiper.autoplay.onMouseLeave);\n }\n};\nexport default {\n name: 'autoplay',\n params: {\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n autoplay: _extends({}, Autoplay, {\n running: false,\n paused: false\n })\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.autoplay.enabled) {\n swiper.autoplay.start();\n var document = getDocument();\n document.addEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n swiper.autoplay.attachMouseEvents();\n }\n },\n beforeTransitionStart: function beforeTransitionStart(swiper, speed, internal) {\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n swiper.autoplay.stop();\n }\n }\n },\n sliderFirstMove: function sliderFirstMove(swiper) {\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n }\n },\n touchEnd: function touchEnd(swiper) {\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.run();\n }\n },\n destroy: function destroy(swiper) {\n swiper.autoplay.detachMouseEvents();\n\n if (swiper.autoplay.running) {\n swiper.autoplay.stop();\n }\n\n var document = getDocument();\n document.removeEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { extend, bindModuleMethods } from '../../utils/utils';\nvar Fade = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var slides = swiper.slides;\n\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = swiper.slides.eq(i);\n var offset = $slideEl[0].swiperSlideOffset;\n var tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n var ty = 0;\n\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n\n var slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs($slideEl[0].progress), 0) : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\n $slideEl.css({\n opacity: slideOpacity\n }).transform(\"translate3d(\" + tx + \"px, \" + ty + \"px, 0px)\");\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n var slides = swiper.slides,\n $wrapperEl = swiper.$wrapperEl;\n slides.transition(duration);\n\n if (swiper.params.virtualTranslate && duration !== 0) {\n var eventTriggered = false;\n slides.transitionEnd(function () {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n var triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n\n for (var i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n }\n};\nexport default {\n name: 'effect-fade',\n params: {\n fadeEffect: {\n crossFade: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n fadeEffect: _extends({}, Fade)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (swiper.params.effect !== 'fade') return;\n swiper.classNames.push(swiper.params.containerModifierClass + \"fade\");\n var overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true\n };\n extend(swiper.params, overwriteParams);\n extend(swiper.originalParams, overwriteParams);\n },\n setTranslate: function setTranslate(swiper) {\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTransition(duration);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\nimport { nextTick, bindModuleMethods } from '../../utils/utils';\nvar Controller = {\n LinearSpline: function LinearSpline(x, y) {\n var binarySearch = function search() {\n var maxIndex;\n var minIndex;\n var guess;\n return function (array, val) {\n minIndex = -1;\n maxIndex = array.length;\n\n while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n\n return maxIndex;\n };\n }();\n\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1; // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n\n var i1;\n var i3;\n\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0; // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1; // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n\n return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];\n };\n\n return this;\n },\n // xxx: for now i will just save one spline function to to\n getInterpolateFunction: function getInterpolateFunction(c) {\n var swiper = this;\n\n if (!swiper.controller.spline) {\n swiper.controller.spline = swiper.params.loop ? new Controller.LinearSpline(swiper.slidesGrid, c.slidesGrid) : new Controller.LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n },\n setTranslate: function setTranslate(_setTranslate, byController) {\n var swiper = this;\n var controlled = swiper.controller.control;\n var multiplier;\n var controlledTranslate;\n var Swiper = swiper.constructor;\n\n function setControlledTranslate(c) {\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n var translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n\n if (swiper.params.controller.by === 'slide') {\n swiper.controller.getInterpolateFunction(c); // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();\n }\n\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n\n if (Array.isArray(controlled)) {\n for (var i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n },\n setTransition: function setTransition(duration, byController) {\n var swiper = this;\n var Swiper = swiper.constructor;\n var controlled = swiper.controller.control;\n var i;\n\n function setControlledTransition(c) {\n c.setTransition(duration, swiper);\n\n if (duration !== 0) {\n c.transitionStart();\n\n if (c.params.autoHeight) {\n nextTick(function () {\n c.updateAutoHeight();\n });\n }\n\n c.$wrapperEl.transitionEnd(function () {\n if (!controlled) return;\n\n if (c.params.loop && swiper.params.controller.by === 'slide') {\n c.loopFix();\n }\n\n c.transitionEnd();\n });\n }\n }\n\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTransition(controlled);\n }\n }\n};\nexport default {\n name: 'controller',\n params: {\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide' // or 'container'\n\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n controller: _extends({\n control: swiper.params.controller.control\n }, Controller)\n });\n },\n on: {\n update: function update(swiper) {\n if (!swiper.controller.control) return;\n\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n resize: function resize(swiper) {\n if (!swiper.controller.control) return;\n\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n observerUpdate: function observerUpdate(swiper) {\n if (!swiper.controller.control) return;\n\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n setTranslate: function setTranslate(swiper, translate, byController) {\n if (!swiper.controller.control) return;\n swiper.controller.setTranslate(translate, byController);\n },\n setTransition: function setTransition(swiper, duration, byController) {\n if (!swiper.controller.control) return;\n swiper.controller.setTransition(duration, byController);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { extend, isObject, bindModuleMethods } from '../../utils/utils';\nimport $ from '../../utils/dom';\nvar Thumbs = {\n init: function init() {\n var swiper = this;\n var thumbsParams = swiper.params.thumbs;\n if (swiper.thumbs.initialized) return false;\n swiper.thumbs.initialized = true;\n var SwiperClass = swiper.constructor;\n\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n extend(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n extend(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n } else if (isObject(thumbsParams.swiper)) {\n swiper.thumbs.swiper = new SwiperClass(extend({}, thumbsParams.swiper, {\n watchSlidesVisibility: true,\n watchSlidesProgress: true,\n slideToClickedSlide: false\n }));\n swiper.thumbs.swiperCreated = true;\n }\n\n swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', swiper.thumbs.onThumbClick);\n return true;\n },\n onThumbClick: function onThumbClick() {\n var swiper = this;\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n var clickedIndex = thumbsSwiper.clickedIndex;\n var clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && $(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n var slideToIndex;\n\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt($(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n\n if (swiper.params.loop) {\n var currentIndex = swiper.activeIndex;\n\n if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n currentIndex = swiper.activeIndex;\n }\n\n var prevIndex = swiper.slides.eq(currentIndex).prevAll(\"[data-swiper-slide-index=\\\"\" + slideToIndex + \"\\\"]\").eq(0).index();\n var nextIndex = swiper.slides.eq(currentIndex).nextAll(\"[data-swiper-slide-index=\\\"\" + slideToIndex + \"\\\"]\").eq(0).index();\n if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;else slideToIndex = prevIndex;\n }\n\n swiper.slideTo(slideToIndex);\n },\n update: function update(initial) {\n var swiper = this;\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n var slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;\n var autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n var useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n var currentThumbsIndex = thumbsSwiper.activeIndex;\n var newThumbsIndex;\n var direction;\n\n if (thumbsSwiper.params.loop) {\n if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) {\n thumbsSwiper.loopFix(); // eslint-disable-next-line\n\n thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\n currentThumbsIndex = thumbsSwiper.activeIndex;\n } // Find actual thumbs index to slide to\n\n\n var prevThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).prevAll(\"[data-swiper-slide-index=\\\"\" + swiper.realIndex + \"\\\"]\").eq(0).index();\n var nextThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).nextAll(\"[data-swiper-slide-index=\\\"\" + swiper.realIndex + \"\\\"]\").eq(0).index();\n\n if (typeof prevThumbsIndex === 'undefined') {\n newThumbsIndex = nextThumbsIndex;\n } else if (typeof nextThumbsIndex === 'undefined') {\n newThumbsIndex = prevThumbsIndex;\n } else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) {\n newThumbsIndex = thumbsSwiper.params.slidesPerGroup > 1 ? nextThumbsIndex : currentThumbsIndex;\n } else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) {\n newThumbsIndex = nextThumbsIndex;\n } else {\n newThumbsIndex = prevThumbsIndex;\n }\n\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n }\n\n if (useOffset) {\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n }\n\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) {// newThumbsIndex = newThumbsIndex - slidesPerView + 1;\n }\n\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n } // Activate thumbs\n\n\n var thumbsToActivate = 1;\n var thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n\n if (!swiper.params.thumbs.multipleActiveThumbs) {\n thumbsToActivate = 1;\n }\n\n thumbsToActivate = Math.floor(thumbsToActivate);\n thumbsSwiper.slides.removeClass(thumbActiveClass);\n\n if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {\n for (var i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.$wrapperEl.children(\"[data-swiper-slide-index=\\\"\" + (swiper.realIndex + i) + \"\\\"]\").addClass(thumbActiveClass);\n }\n } else {\n for (var _i = 0; _i < thumbsToActivate; _i += 1) {\n thumbsSwiper.slides.eq(swiper.realIndex + _i).addClass(thumbActiveClass);\n }\n }\n }\n};\nexport default {\n name: 'thumbs',\n params: {\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-container-thumbs'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n thumbs: _extends({\n swiper: null,\n initialized: false\n }, Thumbs)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n var thumbs = swiper.params.thumbs;\n if (!thumbs || !thumbs.swiper) return;\n swiper.thumbs.init();\n swiper.thumbs.update(true);\n },\n slideChange: function slideChange(swiper) {\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n update: function update(swiper) {\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n resize: function resize(swiper) {\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n observerUpdate: function observerUpdate(swiper) {\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n setTransition: function setTransition(swiper, duration) {\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n thumbsSwiper.setTransition(duration);\n },\n beforeDestroy: function beforeDestroy(swiper) {\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n\n if (swiper.thumbs.swiperCreated && thumbsSwiper) {\n thumbsSwiper.destroy();\n }\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/* eslint-disable consistent-return */\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Keyboard = {\n handle: function handle(event) {\n var swiper = this;\n if (!swiper.enabled) return;\n var window = getWindow();\n var document = getDocument();\n var rtl = swiper.rtlTranslate;\n var e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n\n var kc = e.keyCode || e.charCode;\n var pageUpDown = swiper.params.keyboard.pageUpDown;\n var isPageUp = pageUpDown && kc === 33;\n var isPageDown = pageUpDown && kc === 34;\n var isArrowLeft = kc === 37;\n var isArrowRight = kc === 39;\n var isArrowUp = kc === 38;\n var isArrowDown = kc === 40; // Directions locks\n\n if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {\n return false;\n }\n\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n\n if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n\n if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\n var inView = false; // Check that swiper should be inside of visible area of window\n\n if (swiper.$el.parents(\".\" + swiper.params.slideClass).length > 0 && swiper.$el.parents(\".\" + swiper.params.slideActiveClass).length === 0) {\n return undefined;\n }\n\n var $el = swiper.$el;\n var swiperWidth = $el[0].clientWidth;\n var swiperHeight = $el[0].clientHeight;\n var windowWidth = window.innerWidth;\n var windowHeight = window.innerHeight;\n var swiperOffset = swiper.$el.offset();\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n var swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]];\n\n for (var i = 0; i < swiperCoord.length; i += 1) {\n var point = swiperCoord[i];\n\n if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n\n inView = true;\n }\n }\n\n if (!inView) return undefined;\n }\n\n if (swiper.isHorizontal()) {\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n\n if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext();\n if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev();\n } else {\n if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n\n if (isPageDown || isArrowDown) swiper.slideNext();\n if (isPageUp || isArrowUp) swiper.slidePrev();\n }\n\n swiper.emit('keyPress', kc);\n return undefined;\n },\n enable: function enable() {\n var swiper = this;\n var document = getDocument();\n if (swiper.keyboard.enabled) return;\n $(document).on('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = true;\n },\n disable: function disable() {\n var swiper = this;\n var document = getDocument();\n if (!swiper.keyboard.enabled) return;\n $(document).off('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = false;\n }\n};\nexport default {\n name: 'keyboard',\n params: {\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n pageUpDown: true\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n keyboard: _extends({\n enabled: false\n }, Keyboard)\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.keyboard.enabled) {\n swiper.keyboard.enable();\n }\n },\n destroy: function destroy(swiper) {\n if (swiper.keyboard.enabled) {\n swiper.keyboard.disable();\n }\n }\n }\n};","/* eslint-disable consistent-return */\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { now, nextTick, bindModuleMethods } from '../../utils/utils';\n\nfunction isEventSupported() {\n var document = getDocument();\n var eventName = 'onwheel';\n var isSupported = (eventName in document);\n\n if (!isSupported) {\n var element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported && document.implementation && document.implementation.hasFeature && // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n document.implementation.hasFeature('', '') !== true) {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\n\nvar Mousewheel = {\n lastScrollTime: now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n event: function event() {\n var window = getWindow();\n if (window.navigator.userAgent.indexOf('firefox') > -1) return 'DOMMouseScroll';\n return isEventSupported() ? 'wheel' : 'mousewheel';\n },\n normalize: function normalize(e) {\n // Reasonable defaults\n var PIXEL_STEP = 10;\n var LINE_HEIGHT = 40;\n var PAGE_HEIGHT = 800;\n var sX = 0;\n var sY = 0; // spinX, spinY\n\n var pX = 0;\n var pY = 0; // pixelX, pixelY\n // Legacy\n\n if ('detail' in e) {\n sY = e.detail;\n }\n\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n } // side scrolling on FF with DOMMouseScroll\n\n\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n\n if (e.shiftKey && !pX) {\n // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n } // Fall-back if spin cannot be determined\n\n\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n },\n handleMouseEnter: function handleMouseEnter() {\n var swiper = this;\n if (!swiper.enabled) return;\n swiper.mouseEntered = true;\n },\n handleMouseLeave: function handleMouseLeave() {\n var swiper = this;\n if (!swiper.enabled) return;\n swiper.mouseEntered = false;\n },\n handle: function handle(event) {\n var e = event;\n var disableParentSwiper = true;\n var swiper = this;\n if (!swiper.enabled) return;\n var params = swiper.params.mousewheel;\n\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n\n var target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n if (!swiper.mouseEntered && !target[0].contains(e.target) && !params.releaseOnEdges) return true;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n\n var delta = 0;\n var rtlFactor = swiper.rtlTranslate ? -1 : 1;\n var data = Mousewheel.normalize(e);\n\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n\n if (delta === 0) return true;\n if (params.invert) delta = -delta; // Get the scroll positions\n\n var positions = swiper.getTranslate() + delta * params.sensitivity;\n if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate(); // When loop is true:\n // the disableParentSwiper will be true.\n // When loop is false:\n // if the scroll positions is not on edge,\n // then the disableParentSwiper will be true.\n // if the scroll on edge positions,\n // then the disableParentSwiper will be false.\n\n disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n\n if (!swiper.params.freeMode) {\n // Register the new event in a variable which stores the relevant data\n var newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event\n }; // Keep the most recent events\n\n var recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n var prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent); // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n swiper.mousewheel.animateSlider(newEvent);\n }\n } else {\n swiper.mousewheel.animateSlider(newEvent);\n } // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n\n\n if (swiper.mousewheel.releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n var _newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta)\n };\n var lastEventBeforeSnap = swiper.mousewheel.lastEventBeforeSnap;\n var ignoreWheelEvents = lastEventBeforeSnap && _newEvent.time < lastEventBeforeSnap.time + 500 && _newEvent.delta <= lastEventBeforeSnap.delta && _newEvent.direction === lastEventBeforeSnap.direction;\n\n if (!ignoreWheelEvents) {\n swiper.mousewheel.lastEventBeforeSnap = undefined;\n\n if (swiper.params.loop) {\n swiper.loopFix();\n }\n\n var position = swiper.getTranslate() + delta * params.sensitivity;\n var wasBeginning = swiper.isBeginning;\n var wasEnd = swiper.isEnd;\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeModeSticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(swiper.mousewheel.timeout);\n swiper.mousewheel.timeout = undefined;\n var _recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n\n if (_recentWheelEvents.length >= 15) {\n _recentWheelEvents.shift(); // only store the last N events\n\n }\n\n var _prevEvent = _recentWheelEvents.length ? _recentWheelEvents[_recentWheelEvents.length - 1] : undefined;\n\n var firstEvent = _recentWheelEvents[0];\n\n _recentWheelEvents.push(_newEvent);\n\n if (_prevEvent && (_newEvent.delta > _prevEvent.delta || _newEvent.direction !== _prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n _recentWheelEvents.splice(0);\n } else if (_recentWheelEvents.length >= 15 && _newEvent.time - firstEvent.time < 500 && firstEvent.delta - _newEvent.delta >= 1 && _newEvent.delta <= 6) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n var snapToThreshold = delta > 0 ? 0.8 : 0.2;\n swiper.mousewheel.lastEventBeforeSnap = _newEvent;\n\n _recentWheelEvents.splice(0);\n\n swiper.mousewheel.timeout = nextTick(function () {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n\n if (!swiper.mousewheel.timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n swiper.mousewheel.timeout = nextTick(function () {\n var snapToThreshold = 0.5;\n swiper.mousewheel.lastEventBeforeSnap = _newEvent;\n\n _recentWheelEvents.splice(0);\n\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n } // Emit event\n\n\n if (!ignoreWheelEvents) swiper.emit('scroll', e); // Stop autoplay\n\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop(); // Return page scroll on edge positions\n\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n }\n }\n\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n return false;\n },\n animateSlider: function animateSlider(newEvent) {\n var swiper = this;\n var window = getWindow();\n\n if (this.params.mousewheel.thresholdDelta && newEvent.delta < this.params.mousewheel.thresholdDelta) {\n // Prevent if delta of wheel scroll delta is below configured threshold\n return false;\n }\n\n if (this.params.mousewheel.thresholdTime && now() - swiper.mousewheel.lastScrollTime < this.params.mousewheel.thresholdTime) {\n // Prevent if time between scrolls is below configured threshold\n return false;\n } // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n\n\n if (newEvent.delta >= 6 && now() - swiper.mousewheel.lastScrollTime < 60) {\n // Return false as a default\n return true;\n } // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n\n\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n swiper.emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n swiper.emit('scroll', newEvent.raw);\n } // If you got here is because an animation has been triggered so store the current time\n\n\n swiper.mousewheel.lastScrollTime = new window.Date().getTime(); // Return false as a default\n\n return false;\n },\n releaseScroll: function releaseScroll(newEvent) {\n var swiper = this;\n var params = swiper.params.mousewheel;\n\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n\n return false;\n },\n enable: function enable() {\n var swiper = this;\n var event = Mousewheel.event();\n\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n\n if (!event) return false;\n if (swiper.mousewheel.enabled) return false;\n var target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n target.on('mouseenter', swiper.mousewheel.handleMouseEnter);\n target.on('mouseleave', swiper.mousewheel.handleMouseLeave);\n target.on(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = true;\n return true;\n },\n disable: function disable() {\n var swiper = this;\n var event = Mousewheel.event();\n\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n\n if (!event) return false;\n if (!swiper.mousewheel.enabled) return false;\n var target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n target.off(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = false;\n return true;\n }\n};\nexport default {\n name: 'mousewheel',\n params: {\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarget: 'container',\n thresholdDelta: null,\n thresholdTime: null\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n mousewheel: {\n enabled: false,\n lastScrollTime: now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n enable: Mousewheel.enable,\n disable: Mousewheel.disable,\n handle: Mousewheel.handle,\n handleMouseEnter: Mousewheel.handleMouseEnter,\n handleMouseLeave: Mousewheel.handleMouseLeave,\n animateSlider: Mousewheel.animateSlider,\n releaseScroll: Mousewheel.releaseScroll\n }\n });\n },\n on: {\n init: function init(swiper) {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n swiper.mousewheel.disable();\n }\n\n if (swiper.params.mousewheel.enabled) swiper.mousewheel.enable();\n },\n destroy: function destroy(swiper) {\n if (swiper.params.cssMode) {\n swiper.mousewheel.enable();\n }\n\n if (swiper.mousewheel.enabled) swiper.mousewheel.disable();\n }\n }\n};","/**\r\n * Slider Component\r\n *\r\n * @file slider.js\r\n */\r\n\r\nimport $ from \"jquery\";\r\nimport Swiper from 'swiper';\r\nimport SwiperCore, { Navigation, Pagination, Autoplay, EffectFade, Controller, Thumbs, Keyboard, Mousewheel } from 'swiper/core';\r\nSwiperCore.use([Navigation, Pagination, Autoplay, EffectFade, Controller, Thumbs, Keyboard, Mousewheel]);\r\n\r\nimport 'swiper/swiper-bundle.css';\r\n\r\nconst slider = (() => {\r\n /**\r\n * fullSlider\r\n * Full width slider settings\r\n */\r\n const fullSlider = () => {\r\n // window.onload = function () {\r\n // const header = document.querySelector('header');\r\n // const firstSlide = document.querySelector('.full-slider .swiper-slide');\r\n // if (firstSlide.classList.contains('slide-white-text')) {\r\n // header.classList.add('header-white');\r\n // } else {\r\n // header.classList.add('header-black');\r\n // }\r\n // };\r\n const fullSlider = new Swiper('.full-slider', {\r\n loop:true,\r\n navigation: {\r\n nextEl: \".full-slide-next\",\r\n prevEl: \".full-slide-prev\",\r\n },\r\n pagination: {\r\n el: \".full-slide-mobile-navigation\",\r\n },\r\n breakpoints: {\r\n 0: {\r\n autoHeight: true,\r\n },\r\n 992: {\r\n autoHeight: false,\r\n },\r\n },\r\n on: {\r\n slideChange: function () {\r\n document.querySelectorAll(\".full-slide-thumb .thumb-slide\").forEach(function(element) {\r\n element.classList.remove(\"thumb-active\");\r\n });\r\n \r\n // Aktif slaydın bir sonraki indeksine karşılık gelen .thumb-slide öğesine active sınıfını ekle\r\n var activeThumbSlide = document.querySelectorAll(\".full-slide-thumb .thumb-slide\")[this.realIndex ];\r\n if (activeThumbSlide) {\r\n activeThumbSlide.classList.add(\"thumb-active\");\r\n }\r\n // Aktif slayt değiştiğinde çalışacak kod\r\n var activeSlide = this.slides[this.realIndex + 1];\r\n var header = document.querySelector('header');\r\n var thSlide = document.querySelector('.full-slide-thumb');\r\n var thSlideArrow = document.querySelector('.full-slide-arrow');\r\n if (activeSlide.classList.contains('slide-white-text')) {\r\n // Eğer aktif slayt belirli bir sınıfa sahipse yapılacak işlemler\r\n header.classList.remove(\"header-black\");\r\n header.classList.add(\"header-white\");\r\n thSlide.classList.remove(\"slide-black\");\r\n thSlide.classList.add(\"slide-white\");\r\n thSlideArrow.classList.remove(\"slide-black\");\r\n thSlideArrow.classList.add(\"slide-white\");\r\n \r\n } else {\r\n header.classList.remove(\"header-white\");\r\n header.classList.add(\"header-black\");\r\n thSlide.classList.remove(\"slide-white\");\r\n thSlide.classList.add(\"slide-black\");\r\n thSlideArrow.classList.remove(\"slide-white\");\r\n thSlideArrow.classList.add(\"slide-black\");\r\n }\r\n },\r\n init: function () {\r\n var activeSlide = this.slides[this.realIndex + 1];\r\n var header = document.querySelector('header');\r\n var thSlide = document.querySelector('.full-slide-thumb');\r\n var thSlideArrow = document.querySelector('.full-slide-arrow');\r\n if (activeSlide.classList.contains('slide-white-text')) {\r\n // Eğer aktif slayt belirli bir sınıfa sahipse yapılacak işlemler\r\n // header.classList.remove(\"header-black\");\r\n // header.classList.add(\"header-white\");\r\n thSlide.classList.remove(\"slide-black\");\r\n thSlide.classList.add(\"slide-white\");\r\n thSlideArrow.classList.remove(\"slide-black\");\r\n thSlideArrow.classList.add(\"slide-white\");\r\n \r\n } else {\r\n // header.classList.remove(\"header-white\");\r\n // header.classList.add(\"header-black\");\r\n thSlide.classList.remove(\"slide-white\");\r\n thSlide.classList.add(\"slide-black\");\r\n thSlideArrow.classList.remove(\"slide-white\");\r\n thSlideArrow.classList.add(\"slide-black\");\r\n }\r\n },\r\n },\r\n });\r\n document.querySelectorAll(\".full-slide-thumb .thumb-slide\").forEach(function(thumbSlide) {\r\n thumbSlide.addEventListener(\"click\", function() {\r\n document.querySelectorAll(\".full-slide-thumb .thumb-slide\").forEach(function(element) {\r\n element.classList.remove(\"thumb-active\");\r\n });\r\n this.classList.add(\"thumb-active\");\r\n var index = Array.prototype.indexOf.call(this.parentElement.children, this);\r\n fullSlider.slideTo(index+1);\r\n });\r\n });\r\n \r\n };\r\n\r\n const homeNewsSlider = () => {\r\n const homeNewsSlider = new Swiper('.news-list', {\r\n slidesPerView: 3,\r\n spaceBetween: 30,\r\n autoHeight:false,\r\n navigation: {\r\n nextEl: \".h-news-next\",\r\n prevEl: \".h-news-prev\",\r\n },\r\n pagination: {\r\n el: \".home-news-mobile-navigation\",\r\n },\r\n breakpoints: {\r\n 0: {\r\n slidesPerView: 1,\r\n spaceBetween: 0,\r\n },\r\n 680: {\r\n slidesPerView: 2,\r\n spaceBetween: 15,\r\n },\r\n 992: {\r\n slidesPerView: 3,\r\n spaceBetween: 15,\r\n },\r\n },\r\n });\r\n };\r\n\r\n const homeExchangeSlider = () => {\r\n const homeExchangeSlider = new Swiper('.cp-form-slide', {\r\n slidesPerView: 3,\r\n spaceBetween: 15,\r\n autoHeight:false,\r\n navigation: {\r\n nextEl: \".ex1-next\",\r\n prevEl: \".ex1-prev\",\r\n },\r\n breakpoints: {\r\n 0: {\r\n slidesPerView: 1,\r\n spaceBetween: 15,\r\n },\r\n 480: {\r\n slidesPerView: 2,\r\n spaceBetween: 15,\r\n },\r\n 680: {\r\n slidesPerView: 3,\r\n spaceBetween: 15,\r\n },\r\n 992: {\r\n slidesPerView: 2,\r\n spaceBetween: 15,\r\n },\r\n 1100: {\r\n slidesPerView: 3,\r\n spaceBetween: 15,\r\n },\r\n },\r\n on: {\r\n init: function (swiper) {\r\n checkEx1Slides(swiper);\r\n },\r\n resize: function (swiper) {\r\n checkEx1Slides(swiper);\r\n },\r\n },\r\n });\r\n function checkEx1Slides(swiper) {\r\n const currentBreakpoint = swiper.currentBreakpoint;\r\n const slidesPerView = swiper.params.breakpoints[currentBreakpoint].slidesPerView || swiper.params.slidesPerView;\r\n const totalSlides = swiper.slides.length;\r\n const arrows = document.querySelectorAll('.exchange-arrow-fs');\r\n\r\n arrows.forEach(arrow => {\r\n if (totalSlides < slidesPerView) {\r\n arrow.classList.add('hide');\r\n } else {\r\n arrow.classList.remove('hide');\r\n }\r\n });\r\n }\r\n };\r\n\r\n const hkScrollSlider = () => {\r\n if($(\".category-scroll-container\").is(\":visible\")){\r\n const swiperNews = new Swiper('.category-scroll-container', {\r\n slidesPerView: 5,\r\n spaceBetween: 0,\r\n watchSlidesProgress:true,\r\n // centeredSlides:true,\r\n allowTouchMove: false,\r\n pagination: {\r\n el: \".swiper-pagination\",\r\n clickable: true,\r\n },\r\n // navigation: {\r\n // nextEl: \".sp-n-next\",\r\n // prevEl: \".sp-n-prev\",\r\n // },\r\n breakpoints: {\r\n 0: {\r\n slidesPerView: 2,\r\n spaceBetween: 0,\r\n centeredSlides: true,\r\n allowTouchMove: true,\r\n },\r\n 768: {\r\n slidesPerView: 3,\r\n spaceBetween: 0,\r\n centeredSlides: true,\r\n },\r\n 1024: {\r\n slidesPerView: 4,\r\n spaceBetween: 0,\r\n centeredSlides: false,\r\n },\r\n 1200: {\r\n slidesPerView: 5,\r\n spaceBetween: 0,\r\n },\r\n },\r\n on: {\r\n transitionEnd: function() {\r\n var activeIndex = this.activeIndex;\r\n $(\".category-scroll-container .scroll-item\").eq(activeIndex).find(\"a\").trigger(\"click\");\r\n // window.scrollTo({\r\n // top: $($(\".category-scroll-container .scroll-item\").eq(activeIndex).find(\"a\").attr(\"href\")).offset().top,\r\n // behavior: 'smooth'\r\n // });\r\n },\r\n init: function() {\r\n checkNavigationVisibility(this);\r\n },\r\n resize: function() {\r\n checkNavigationVisibility(this);\r\n },\r\n }\r\n });\r\n function checkNavigationVisibility(swiper) {\r\n const totalSlides = swiper.slides.length;\r\n const slidesPerView = swiper.params.slidesPerView;\r\n \r\n if (totalSlides > slidesPerView) {\r\n document.querySelector('.sp-n-prev').style.display = 'flex';\r\n document.querySelector('.sp-n-next').style.display = 'flex';\r\n } else {\r\n document.querySelector('.sp-n-prev').style.display = 'none';\r\n document.querySelector('.sp-n-next').style.display = 'none';\r\n }\r\n }\r\n if (window.innerWidth < 992) {\r\n document.querySelectorAll('.category-scroll-container .scroll-item a').forEach((link, index) => {\r\n link.addEventListener('click', (event) => {\r\n event.preventDefault(); // Varsayılan tıklama davranışını engelle\r\n swiperNews.slideTo(index); // İlgili indekse kaydır\r\n });\r\n });\r\n // window.addEventListener('load', () => {\r\n // const hash = window.location.hash.substring(1); \r\n // if (hash) {\r\n // const targetLink = Array.from(document.querySelectorAll('.category-scroll-container .scroll-item a')).find(link => link.href.includes(`#${hash}`));\r\n // if (targetLink) {\r\n // // İlgili a etiketine tıklat\r\n // targetLink.click();\r\n // }\r\n // }\r\n // });\r\n }\r\n $(\".category-scroll-arrow .sp-n-next\").on(\"click\", function(){\r\n swiperNews.slideNext();\r\n setTimeout(function(){\r\n window.scrollTo({\r\n top: $($(\".category-scroll-container .scroll-item.swiper-slide-active\").find(\"a\").attr(\"href\")).offset().top + 1,\r\n behavior: 'smooth'\r\n });\r\n }, 500);\r\n });\r\n $(\".category-scroll-arrow .sp-n-prev\").on(\"click\", function(){\r\n swiperNews.slidePrev();\r\n setTimeout(function(){\r\n window.scrollTo({\r\n top: $($(\".category-scroll-container .scroll-item.swiper-slide-active\").find(\"a\").attr(\"href\")).offset().top + 1,\r\n behavior: 'smooth'\r\n });\r\n }, 500);\r\n });\r\n $(document).ready(function() {\r\n checkAndInitScrolling();\r\n \r\n $(window).on('resize', function() {\r\n checkAndInitScrolling();\r\n });\r\n });\r\n \r\n function checkAndInitScrolling() {\r\n if ($(\".category-scroll-container .scroll-item\").is(\":visible\")) {\r\n scrollingPg();\r\n }\r\n }\r\n \r\n function scrollingPg() {\r\n $(window).off('scroll');\r\n $(window).on('scroll', function() {\r\n var scroll = $(window).scrollTop();\r\n var anchorItem = $(\".category-scroll-container .scroll-item\");\r\n \r\n $(\".participation-list.scroll-list\").each(function() {\r\n var scrollItem = $(this);\r\n var scrollOffset = scrollItem.offset().top;\r\n \r\n if (scroll >= scrollOffset) {\r\n scrollItem.addClass(\"active\");\r\n swiperNews.slideTo(scrollItem.index());\r\n anchorItem.removeClass(\"swiper-slide-active\");\r\n anchorItem.eq(scrollItem.index()).addClass(\"swiper-slide-active\");\r\n } else {\r\n scrollItem.removeClass(\"active\");\r\n anchorItem.eq(scrollItem.index()).removeClass(\"swiper-slide-active\");\r\n }\r\n });\r\n \r\n if (scroll <= $(\".participation-list.scroll-list\").eq(0).offset().top) {\r\n anchorItem.eq(0).addClass(\"swiper-slide-active\");\r\n }\r\n });\r\n }\r\n }\r\n function smoothScroll(target) {\r\n const element = document.getElementById(target);\r\n if (element) {\r\n window.scrollTo({\r\n top: element.offsetTop + 1,\r\n behavior: 'smooth'\r\n });\r\n }\r\n }\r\n document.addEventListener('DOMContentLoaded', function() {\r\n const anchors = document.querySelectorAll('a[href^=\"#\"]');\r\n anchors.forEach(function(anchor) {\r\n anchor.addEventListener('click', function(event) {\r\n event.preventDefault();\r\n const target = anchor.getAttribute('href').substring(1);\r\n smoothScroll(target);\r\n });\r\n });\r\n });\r\n }\r\n\r\n const milestonesSlider = () => {\r\n\r\n const milestonesThumbSlider = new Swiper('.milestones-slide-thumb', {\r\n slidesPerView: 1,\r\n spaceBetween: 0,\r\n watchSlidesProgress:true,\r\n on: {\r\n slideChange:function(){\r\n let slideCurrentIndex = this.realIndex;\r\n milestonesSlider.slideTo(this.realIndex);\r\n }\r\n }\r\n });\r\n\r\n const milestonesSlider = new Swiper('.milestones-slide', {\r\n slidesPerView: 6,\r\n spaceBetween: 0,\r\n // centeredSlides:true,\r\n // allowTouchMove: false,\r\n centeredSlidesBounds: true,\r\n navigation: {\r\n nextEl: \".ml-n-next\",\r\n prevEl: \".ml-n-prev\",\r\n },\r\n breakpoints: {\r\n 0: {\r\n slidesPerView: 2,\r\n spaceBetween: 0,\r\n },\r\n 768: {\r\n slidesPerView: 4,\r\n spaceBetween: 0,\r\n },\r\n 1024: {\r\n slidesPerView: 6,\r\n spaceBetween: 0,\r\n },\r\n },\r\n thumbs: {\r\n swiper: milestonesThumbSlider,\r\n },\r\n on: {\r\n snapGridLengthChange:function(){\r\n if( this.snapGrid.length != this.slidesGrid.length ){\r\n this.snapGrid = this.slidesGrid.slice(0);\r\n }\r\n }\r\n }\r\n });\r\n \r\n };\r\n\r\n const blogSlider = () => {\r\n\r\n const blogSlider = new Swiper('.blog-slide', {\r\n slidesPerView: 1,\r\n spaceBetween: 0,\r\n // centeredSlides:true,\r\n // allowTouchMove: false,\r\n centeredSlidesBounds: true,\r\n navigation: {\r\n nextEl: \".blog-slide-next\",\r\n prevEl: \".blog-slide-prev\",\r\n }\r\n });\r\n \r\n };\r\n\r\n const init = () => {\r\n fullSlider();\r\n homeNewsSlider();\r\n homeExchangeSlider();\r\n hkScrollSlider();\r\n milestonesSlider();\r\n blogSlider();\r\n };\r\n\r\n return {\r\n init,\r\n };\r\n})();\r\n\r\nexport default slider;\r\n","\r\nimport $ from \"jquery\";\r\n\r\n\r\nconst accordion = (() => {\r\n const defaultAccordion = () => {\r\n const accordionItem = document.getElementsByClassName('js-trigger-accordion');\r\n\r\n for (let i = 0; i < accordionItem.length; i += 1) {\r\n accordionItem[i].addEventListener('click', function (event) {\r\n event.currentTarget.classList.toggle('js-active');\r\n const accordionContent = this.nextElementSibling;\r\n accordionContent.classList.toggle('js-active');\r\n });\r\n }\r\n };\r\n\r\n const parentClassAccordion = () => {\r\n const accordionItem = document.getElementsByClassName('js-trigger-accordion-parents');\r\n\r\n for (let i = 0; i < accordionItem.length; i += 1) {\r\n accordionItem[i].addEventListener('click', function (event) {\r\n event.currentTarget.classList.toggle('js-active');\r\n const accordionContent = this.nextElementSibling;\r\n const accordionParentContent = this.closest(\".accordion-item\");\r\n console.log(accordionParentContent);\r\n accordionContent.classList.toggle('js-active');\r\n accordionParentContent.classList.toggle('js-active');\r\n });\r\n }\r\n };\r\n \r\n const scrollAnchor = () => {\r\n // window.addEventListener('scroll', function() {\r\n // const participationLists = document.querySelectorAll('.participation-list.scroll-list');\r\n\r\n // participationLists.forEach(function(participationList, index) {\r\n // const offsetTop = participationList.offsetTop;\r\n \r\n // if (window.scrollY >= offsetTop) {\r\n // participationList.classList.add('active');\r\n // console.log(\"Index:\", index);\r\n // } else {\r\n // participationList.classList.remove('active');\r\n // }\r\n // });\r\n // });\r\n \r\n };\r\n\r\n const cmkAccordion = () => {\r\n // Tüm tab item'ları seç\r\n document.addEventListener(\"DOMContentLoaded\", function() {\r\n const accordionTitles = document.querySelectorAll(\".become-customer-accordion .accordion-title\");\r\n \r\n accordionTitles.forEach(title => {\r\n title.addEventListener(\"click\", function() {\r\n const content = this.nextElementSibling;\r\n const allContents = document.querySelectorAll(\".become-customer-accordion .accordion-content\");\r\n const allItems = document.querySelectorAll(\".become-customer-accordion .accordion-item\");\r\n \r\n // Tüm akordion içeriklerine, başlıklara ve parent itemlere js-active sınıfını kaldır\r\n allContents.forEach(item => {\r\n item.classList.remove(\"js-active\");\r\n });\r\n \r\n accordionTitles.forEach(item => {\r\n item.classList.remove(\"js-active\");\r\n });\r\n \r\n allItems.forEach(item => {\r\n item.classList.remove(\"js-active\");\r\n });\r\n \r\n // Tıklanan akordion içeriğine, başlığına ve parent iteme js-active sınıfını ekle\r\n content.classList.add(\"js-active\");\r\n this.classList.add(\"js-active\");\r\n this.closest(\".accordion-item\").classList.add(\"js-active\");\r\n });\r\n });\r\n });\r\n\r\n };\r\n\r\n const init = () => {\r\n defaultAccordion();\r\n parentClassAccordion();\r\n scrollAnchor();\r\n cmkAccordion();\r\n };\r\n\r\n return {\r\n init,\r\n };\r\n})();\r\n\r\nexport default accordion;\r\n","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","import window from 'global/window';\nvar DEFAULT_LOCATION = 'https://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 }\n\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 baseUrl = new window.URL(baseUrl, window.location || DEFAULT_LOCATION);\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\nexport default resolveUrl;","/**\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';","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 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};","/*! @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 { 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.21.0 \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.21.0\";\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 {Component} component\n * The child `Component` 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 not 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 && playerNames.map(pname => players[pname]).every(Boolean)) {\n throw new Error('Can not register Player component after player has been created.');\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/**\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 splitPathRe = /^(\\/?)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?)(\\.([^\\.\\/\\?]+)))(?:[\\/]*|[\\?].*)$/;\n const pathParts = splitPathRe.exec(path);\n if (pathParts) {\n return pathParts.pop().toLowerCase();\n }\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 * 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'