/
clappr.plainhtml5.js.map
1 lines (1 loc) · 679 KB
/
clappr.plainhtml5.js.map
1
{"version":3,"sources":["webpack://Clappr/webpack/universalModuleDefinition","webpack://Clappr/webpack/bootstrap","webpack://Clappr/./node_modules/babel-runtime/helpers/classCallCheck.js","webpack://Clappr/./node_modules/babel-runtime/helpers/possibleConstructorReturn.js","webpack://Clappr/./node_modules/babel-runtime/helpers/inherits.js","webpack://Clappr/./node_modules/babel-runtime/helpers/createClass.js","webpack://Clappr/./src/base/events.js","webpack://Clappr/./src/base/utils.js","webpack://Clappr/./node_modules/clappr-zepto/zepto.js","webpack://Clappr/./node_modules/core-js/library/modules/_core.js","webpack://Clappr/./node_modules/css-loader/lib/css-base.js","webpack://Clappr/./node_modules/style-loader/lib/addStyles.js","webpack://Clappr/./src/base/template.js","webpack://Clappr/./node_modules/babel-runtime/core-js/object/assign.js","webpack://Clappr/./node_modules/core-js/library/modules/_wks.js","webpack://Clappr/./src/base/playback.js","webpack://Clappr/./src/base/base_object.js","webpack://Clappr/./node_modules/core-js/library/modules/_export.js","webpack://Clappr/./node_modules/core-js/library/modules/_global.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-dp.js","webpack://Clappr/./node_modules/core-js/library/modules/_to-iobject.js","webpack://Clappr/./src/base/error_mixin.js","webpack://Clappr/./node_modules/core-js/library/modules/_an-object.js","webpack://Clappr/./node_modules/core-js/library/modules/_descriptors.js","webpack://Clappr/./node_modules/core-js/library/modules/_has.js","webpack://Clappr/./src/base/ui_core_plugin.js","webpack://Clappr/./src/base/void.js","webpack://Clappr/./node_modules/core-js/library/modules/_hide.js","webpack://Clappr/./node_modules/core-js/library/modules/_fails.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-keys.js","webpack://Clappr/./src/components/browser/index.js","webpack://Clappr/./src/base/ui_object.js","webpack://Clappr/./node_modules/core-js/library/modules/_is-object.js","webpack://Clappr/./node_modules/core-js/library/modules/_property-desc.js","webpack://Clappr/./node_modules/core-js/library/modules/_iterators.js","webpack://Clappr/./src/plugins/log/index.js","webpack://Clappr/./src/components/error/index.js","webpack://Clappr/./src/base/core_plugin.js","webpack://Clappr/./node_modules/core-js/library/modules/_uid.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-pie.js","webpack://Clappr/./node_modules/core-js/library/modules/_to-object.js","webpack://Clappr/./node_modules/babel-runtime/helpers/typeof.js","webpack://Clappr/./src/components/player_info.js","webpack://Clappr/./src/base/ui_container_plugin.js","webpack://Clappr/./src/base/container_plugin.js","webpack://Clappr/./node_modules/core-js/library/modules/_ctx.js","webpack://Clappr/./node_modules/core-js/library/modules/_to-primitive.js","webpack://Clappr/./node_modules/core-js/library/modules/_cof.js","webpack://Clappr/./node_modules/core-js/library/modules/_defined.js","webpack://Clappr/./node_modules/core-js/library/modules/_to-integer.js","webpack://Clappr/./node_modules/core-js/library/modules/_shared-key.js","webpack://Clappr/./node_modules/core-js/library/modules/_shared.js","webpack://Clappr/./node_modules/core-js/library/modules/_enum-bug-keys.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-gops.js","webpack://Clappr/./node_modules/babel-runtime/core-js/object/keys.js","webpack://Clappr/./node_modules/core-js/library/modules/es6.string.iterator.js","webpack://Clappr/./node_modules/core-js/library/modules/_library.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-create.js","webpack://Clappr/./node_modules/core-js/library/modules/_set-to-string-tag.js","webpack://Clappr/./node_modules/core-js/library/modules/_wks-ext.js","webpack://Clappr/./node_modules/core-js/library/modules/_wks-define.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-gopd.js","webpack://Clappr/./src/vendor/index.js","webpack://Clappr/./src/components/mediator.js","webpack://Clappr/./src/playbacks/html5_video/index.js","webpack://Clappr/./node_modules/node-libs-browser/node_modules/process/browser.js","webpack://Clappr/./node_modules/core-js/library/modules/_ie8-dom-define.js","webpack://Clappr/./node_modules/core-js/library/modules/_dom-create.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-keys-internal.js","webpack://Clappr/./node_modules/core-js/library/modules/_iobject.js","webpack://Clappr/./node_modules/core-js/library/modules/_to-length.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-sap.js","webpack://Clappr/./node_modules/core-js/library/modules/_iter-define.js","webpack://Clappr/./node_modules/core-js/library/modules/_redefine.js","webpack://Clappr/./node_modules/core-js/library/modules/web.dom.iterable.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-gopn.js","webpack://Clappr/./node_modules/babel-runtime/core-js/object/define-property.js","webpack://Clappr/./node_modules/babel-runtime/core-js/object/create.js","webpack://Clappr/./node_modules/core-js/library/modules/core.get-iterator-method.js","webpack://Clappr/./src/components/core/index.js","webpack://Clappr/./src/base/styler.js","webpack://Clappr/./src/components/error/error.js","webpack://Clappr/./src/components/container/index.js","webpack://Clappr/./node_modules/css-loader/lib/url/escape.js","webpack://Clappr/./src/components/loader/index.js","webpack://Clappr/./node_modules/babel-runtime/helpers/toConsumableArray.js","webpack://Clappr/./node_modules/babel-runtime/core-js/array/from.js","webpack://Clappr/./src/playbacks/html5_audio/index.js","webpack://Clappr/./src/playbacks/html_img/index.js","webpack://Clappr/./src/playbacks/no_op/index.js","webpack://Clappr/./src/plugins/spinner_three_bounce/index.js","webpack://Clappr/./src/plugins/watermark/index.js","webpack://Clappr/./src/plugins/poster/index.js","webpack://Clappr/./src/plugins/click_to_pause/index.js","webpack://Clappr/./src/plugins/media_control/index.js","webpack://Clappr/./src/plugins/media_control/public/closed-hand.cur","webpack://Clappr/./src/plugins/dvr_controls/index.js","webpack://Clappr/./src/plugins/favicon/index.js","webpack://Clappr/./src/main.js","webpack://Clappr/./src/components/player.js","webpack://Clappr/./node_modules/core-js/library/fn/object/assign.js","webpack://Clappr/./node_modules/core-js/library/modules/es6.object.assign.js","webpack://Clappr/./node_modules/core-js/library/modules/_a-function.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-assign.js","webpack://Clappr/./node_modules/core-js/library/modules/_array-includes.js","webpack://Clappr/./node_modules/core-js/library/modules/_to-index.js","webpack://Clappr/./node_modules/core-js/library/fn/object/keys.js","webpack://Clappr/./node_modules/core-js/library/modules/es6.object.keys.js","webpack://Clappr/./node_modules/babel-runtime/core-js/symbol/iterator.js","webpack://Clappr/./node_modules/core-js/library/fn/symbol/iterator.js","webpack://Clappr/./node_modules/core-js/library/modules/_string-at.js","webpack://Clappr/./node_modules/core-js/library/modules/_iter-create.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-dps.js","webpack://Clappr/./node_modules/core-js/library/modules/_html.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-gpo.js","webpack://Clappr/./node_modules/core-js/library/modules/es6.array.iterator.js","webpack://Clappr/./node_modules/core-js/library/modules/_add-to-unscopables.js","webpack://Clappr/./node_modules/core-js/library/modules/_iter-step.js","webpack://Clappr/./node_modules/babel-runtime/core-js/symbol.js","webpack://Clappr/./node_modules/core-js/library/fn/symbol/index.js","webpack://Clappr/./node_modules/core-js/library/modules/es6.symbol.js","webpack://Clappr/./node_modules/core-js/library/modules/_meta.js","webpack://Clappr/./node_modules/core-js/library/modules/_keyof.js","webpack://Clappr/./node_modules/core-js/library/modules/_enum-keys.js","webpack://Clappr/./node_modules/core-js/library/modules/_is-array.js","webpack://Clappr/./node_modules/core-js/library/modules/_object-gopn-ext.js","webpack://Clappr/./node_modules/core-js/library/modules/es7.symbol.async-iterator.js","webpack://Clappr/./node_modules/core-js/library/modules/es7.symbol.observable.js","webpack://Clappr/./node_modules/core-js/library/fn/object/define-property.js","webpack://Clappr/./node_modules/core-js/library/modules/es6.object.define-property.js","webpack://Clappr/./node_modules/babel-runtime/core-js/object/set-prototype-of.js","webpack://Clappr/./node_modules/core-js/library/fn/object/set-prototype-of.js","webpack://Clappr/./node_modules/core-js/library/modules/es6.object.set-prototype-of.js","webpack://Clappr/./node_modules/core-js/library/modules/_set-proto.js","webpack://Clappr/./node_modules/core-js/library/fn/object/create.js","webpack://Clappr/./node_modules/core-js/library/modules/es6.object.create.js","webpack://Clappr/./node_modules/babel-runtime/core-js/object/get-own-property-descriptor.js","webpack://Clappr/./node_modules/core-js/library/fn/object/get-own-property-descriptor.js","webpack://Clappr/./node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js","webpack://Clappr/./src/base/polyfills.js","webpack://Clappr/./src/components/browser/browser.js","webpack://Clappr/./node_modules/babel-runtime/core-js/get-iterator.js","webpack://Clappr/./node_modules/core-js/library/fn/get-iterator.js","webpack://Clappr/./node_modules/core-js/library/modules/core.get-iterator.js","webpack://Clappr/./node_modules/core-js/library/modules/_classof.js","webpack://Clappr/./src/components/browser/browser_data.js","webpack://Clappr/./src/components/browser/os_data.js","webpack://Clappr/./src/base/media.js","webpack://Clappr/./src/base/svg_icons.js","webpack://Clappr/./src/icons/01-play.svg","webpack://Clappr/./src/icons/02-pause.svg","webpack://Clappr/./src/icons/03-stop.svg","webpack://Clappr/./src/icons/04-volume.svg","webpack://Clappr/./src/icons/05-mute.svg","webpack://Clappr/./src/icons/06-expand.svg","webpack://Clappr/./src/icons/07-shrink.svg","webpack://Clappr/./src/icons/08-hd.svg","webpack://Clappr/./src/icons/09-cc.svg","webpack://Clappr/./src/icons/10-reload.svg","webpack://Clappr/./src/plugins/log/log.js","webpack://Clappr/./src/vendor/kibo.js","webpack://Clappr/./src/components/core_factory/index.js","webpack://Clappr/./src/components/core_factory/core_factory.js","webpack://Clappr/./src/components/core/core.js","webpack://Clappr/./src/components/container_factory/index.js","webpack://Clappr/./src/components/container_factory/container_factory.js","webpack://Clappr/./src/components/container/container.js","webpack://Clappr/./src/components/container/public/style.scss?95d1","webpack://Clappr/./src/components/container/public/style.scss","webpack://Clappr/./node_modules/style-loader/lib/urls.js","webpack://Clappr/./src/components/core/public/style.scss?8953","webpack://Clappr/./src/components/core/public/style.scss","webpack://Clappr/./src/components/core/public/fonts.css","webpack://Clappr/./src/components/core/public/Roboto.ttf","webpack://Clappr/./src/components/loader/loader.js","webpack://Clappr/./node_modules/core-js/library/fn/array/from.js","webpack://Clappr/./node_modules/core-js/library/modules/es6.array.from.js","webpack://Clappr/./node_modules/core-js/library/modules/_iter-call.js","webpack://Clappr/./node_modules/core-js/library/modules/_is-array-iter.js","webpack://Clappr/./node_modules/core-js/library/modules/_create-property.js","webpack://Clappr/./node_modules/core-js/library/modules/_iter-detect.js","webpack://Clappr/./src/playbacks/html5_video/html5_video.js","webpack://Clappr/./src/playbacks/html5_video/public/tracks.html","webpack://Clappr/./src/playbacks/html5_video/public/style.scss?2192","webpack://Clappr/./src/playbacks/html5_video/public/style.scss","webpack://Clappr/./src/playbacks/html5_audio/html5_audio.js","webpack://Clappr/./src/playbacks/html_img/html_img.js","webpack://Clappr/./src/playbacks/html_img/public/style.scss?714a","webpack://Clappr/./src/playbacks/html_img/public/style.scss","webpack://Clappr/./src/playbacks/no_op/no_op.js","webpack://Clappr/./src/playbacks/no_op/public/error.html","webpack://Clappr/./src/playbacks/no_op/public/style.scss?94d5","webpack://Clappr/./src/playbacks/no_op/public/style.scss","webpack://Clappr/./src/plugins/spinner_three_bounce/spinner_three_bounce.js","webpack://Clappr/./src/plugins/spinner_three_bounce/public/spinner.html","webpack://Clappr/./src/plugins/spinner_three_bounce/public/spinner.scss?9c79","webpack://Clappr/./src/plugins/spinner_three_bounce/public/spinner.scss","webpack://Clappr/./src/plugins/stats/index.js","webpack://Clappr/./src/plugins/stats/stats.js","webpack://Clappr/./src/plugins/watermark/watermark.js","webpack://Clappr/./src/plugins/watermark/public/watermark.html","webpack://Clappr/./src/plugins/watermark/public/watermark.scss?093c","webpack://Clappr/./src/plugins/watermark/public/watermark.scss","webpack://Clappr/./src/plugins/poster/poster.js","webpack://Clappr/./src/plugins/poster/public/poster.html","webpack://Clappr/./src/plugins/poster/public/poster.scss?0aad","webpack://Clappr/./src/plugins/poster/public/poster.scss","webpack://Clappr/./src/plugins/google_analytics/index.js","webpack://Clappr/./src/plugins/google_analytics/google_analytics.js","webpack://Clappr/./src/plugins/click_to_pause/click_to_pause.js","webpack://Clappr/./src/plugins/media_control/media_control.js","webpack://Clappr/./node_modules/babel-runtime/core-js/json/stringify.js","webpack://Clappr/./node_modules/core-js/library/fn/json/stringify.js","webpack://Clappr/./src/plugins/media_control/public/media-control.scss?c915","webpack://Clappr/./src/plugins/media_control/public/media-control.scss","webpack://Clappr/./src/plugins/media_control/public/media-control.html","webpack://Clappr/./src/plugins/dvr_controls/dvr_controls.js","webpack://Clappr/./src/plugins/dvr_controls/public/index.html","webpack://Clappr/./src/plugins/dvr_controls/public/dvr_controls.scss?4e38","webpack://Clappr/./src/plugins/dvr_controls/public/dvr_controls.scss","webpack://Clappr/./src/plugins/closed_captions/index.js","webpack://Clappr/./src/plugins/closed_captions/closed_captions.js","webpack://Clappr/./src/plugins/closed_captions/public/closed_captions.html","webpack://Clappr/./src/plugins/closed_captions/public/closed_captions.scss?7ec4","webpack://Clappr/./src/plugins/closed_captions/public/closed_captions.scss","webpack://Clappr/./src/plugins/favicon/favicon.js","webpack://Clappr/./src/plugins/seek_time/index.js","webpack://Clappr/./src/plugins/seek_time/seek_time.js","webpack://Clappr/./src/plugins/seek_time/public/seek_time.html","webpack://Clappr/./src/plugins/seek_time/public/seek_time.scss?97b9","webpack://Clappr/./src/plugins/seek_time/public/seek_time.scss","webpack://Clappr/./src/plugins/sources.js","webpack://Clappr/./src/plugins/end_video.js","webpack://Clappr/./src/plugins/strings.js","webpack://Clappr/./src/plugins/error_screen/index.js","webpack://Clappr/./src/plugins/error_screen/error_screen.js","webpack://Clappr/./src/plugins/error_screen/public/error_screen.html","webpack://Clappr/./src/plugins/error_screen/public/error_screen.scss?538d","webpack://Clappr/./src/plugins/error_screen/public/error_screen.scss"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","default","instance","Constructor","TypeError","obj","_typeof2","_typeof3","self","ReferenceError","_setPrototypeOf2","_interopRequireDefault","_create2","subClass","superClass","constructor","writable","configurable","__proto__","_defineProperty","_defineProperty2","defineProperties","target","props","length","descriptor","protoProps","staticProps","_utils","slice","Array","eventSplitter","eventsApi","action","rest","apply","concat","test","names","split","triggerEvents","events","args","klass","ev","a1","a2","a3","run","callback","ctx","exception","_log2","error","Events","on","context","this","_events","push","once","_this","off","arguments","retain","j","k","_keys2","_callback","trigger","debug","allEvents","all","stopListening","listeningTo","_listeningTo","remove","id","_listenId","register","eventName","Custom","toUpperCase","trim","toLowerCase","map","index","join","listAvailableCustomEvents","filter","listenMethods","listenTo","listenToOnce","forEach","method","uniqueId","PLAYER_READY","PLAYER_RESIZE","PLAYER_FULLSCREEN","PLAYER_PLAY","PLAYER_PAUSE","PLAYER_STOP","PLAYER_ENDED","PLAYER_SEEK","PLAYER_ERROR","ERROR","PLAYER_TIMEUPDATE","PLAYER_VOLUMEUPDATE","PLAYER_SUBTITLE_AVAILABLE","PLAYBACK_PROGRESS","PLAYBACK_TIMEUPDATE","PLAYBACK_READY","PLAYBACK_BUFFERING","PLAYBACK_BUFFERFULL","PLAYBACK_SETTINGSUPDATE","PLAYBACK_LOADEDMETADATA","PLAYBACK_HIGHDEFINITIONUPDATE","PLAYBACK_BITRATE","PLAYBACK_LEVELS_AVAILABLE","PLAYBACK_LEVEL_SWITCH_START","PLAYBACK_LEVEL_SWITCH_END","PLAYBACK_PLAYBACKSTATE","PLAYBACK_DVR","PLAYBACK_MEDIACONTROL_DISABLE","PLAYBACK_MEDIACONTROL_ENABLE","PLAYBACK_ENDED","PLAYBACK_PLAY_INTENT","PLAYBACK_PLAY","PLAYBACK_PAUSE","PLAYBACK_SEEK","PLAYBACK_SEEKED","PLAYBACK_STOP","PLAYBACK_ERROR","PLAYBACK_STATS_ADD","PLAYBACK_FRAGMENT_LOADED","PLAYBACK_LEVEL_SWITCH","PLAYBACK_SUBTITLE_AVAILABLE","PLAYBACK_SUBTITLE_CHANGED","CORE_CONTAINERS_CREATED","CORE_ACTIVE_CONTAINER_CHANGED","CORE_OPTIONS_CHANGE","CORE_READY","CORE_FULLSCREEN","CORE_RESIZE","CORE_SCREEN_ORIENTATION_CHANGED","CORE_MOUSE_MOVE","CORE_MOUSE_LEAVE","CONTAINER_PLAYBACKSTATE","CONTAINER_PLAYBACKDVRSTATECHANGED","CONTAINER_BITRATE","CONTAINER_STATS_REPORT","CONTAINER_DESTROYED","CONTAINER_READY","CONTAINER_ERROR","CONTAINER_LOADEDMETADATA","CONTAINER_SUBTITLE_AVAILABLE","CONTAINER_SUBTITLE_CHANGED","CONTAINER_TIMEUPDATE","CONTAINER_PROGRESS","CONTAINER_PLAY","CONTAINER_STOP","CONTAINER_PAUSE","CONTAINER_ENDED","CONTAINER_CLICK","CONTAINER_DBLCLICK","CONTAINER_CONTEXTMENU","CONTAINER_MOUSE_ENTER","CONTAINER_MOUSE_LEAVE","CONTAINER_SEEK","CONTAINER_SEEKED","CONTAINER_VOLUME","CONTAINER_FULLSCREEN","CONTAINER_STATE_BUFFERING","CONTAINER_STATE_BUFFERFULL","CONTAINER_SETTINGSUPDATE","CONTAINER_HIGHDEFINITIONUPDATE","CONTAINER_MEDIACONTROL_SHOW","CONTAINER_MEDIACONTROL_HIDE","CONTAINER_MEDIACONTROL_DISABLE","CONTAINER_MEDIACONTROL_ENABLE","CONTAINER_STATS_ADD","CONTAINER_OPTIONS_CHANGE","MEDIACONTROL_RENDERED","MEDIACONTROL_FULLSCREEN","MEDIACONTROL_SHOW","MEDIACONTROL_HIDE","MEDIACONTROL_MOUSEMOVE_SEEKBAR","MEDIACONTROL_MOUSELEAVE_SEEKBAR","MEDIACONTROL_PLAYING","MEDIACONTROL_NOTPLAYING","MEDIACONTROL_CONTAINERCHANGED","MEDIACONTROL_OPTIONS_CHANGE","assign","extend","formatTime","seekStringToSeconds","isNumber","currentScriptUrl","getBrowserLanguage","now","removeArrayItem","listContainsIgnoreCase","item","items","undefined","find","itemEach","canAutoPlayMedia","source","prop","propDescriptor","_getOwnPropertyDescriptor2","parent","properties","Surrogate","_parent","_classCallCheck3","_len","_key","_possibleConstructorReturn3","initialize","_inherits3","time","paddedHours","isFinite","seconds","parseInt","minutes","hours","days","out","Fullscreen","fullscreenElement","document","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","requestFullscreen","el","webkitRequestFullscreen","mozRequestFullScreen","msRequestFullscreen","querySelector","webkitEnterFullScreen","cancelFullscreen","exitFullscreen","webkitCancelFullScreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","Config","_defaultConfig","volume","parse","_defaultValueFor","e","_createKeyspace","domain","restore","_browser2","hasLocalstorage","localStorage","persist","QueryString","paramsString","match","pl","search","decode","decodeURIComponent","replace","params","exec","query","location","substring","_urlParams","hash","_hashParams","paramName","seekString","hashParams","parts","factor","h","suffix","idsCounter","prefix","parseFloat","scripts","getElementsByTagName","src","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","fn","setTimeout","cancelAnimationFrame","mozCancelAnimationFrame","webkitCancelAnimationFrame","clearTimeout","navigator","language","performance","Date","arr","indexOf","splice","cb","options","element","_assign2","inline","muted","timeout","type","_media2","mp4","createElement","setAttribute","promise","play","timeoutId","setResult","Error","result","then","catch","err","videoStack","DomRecycler","configure","_clapprZepto2","recycleVideo","shift","garbage","$el","tagName","children","DoubleEventHandler","delay","lastTime","handle","event","prevented","currentTime","getTime","diffTime","preventDefault","SvgIcons","Media","$","Zepto","classList","camelize","uniq","emptyArray","elementDisplay","classCache","cssNumber","column-count","columns","font-weight","line-height","opacity","z-index","zoom","fragmentRE","singleTagRE","tagExpanderRE","rootNodeRE","capitalRE","methodAttributes","table","tableRow","containers","tr","tbody","thead","tfoot","td","th","*","readyRE","simpleSelectorRE","class2type","toString","zepto","tempParent","propMap","tabindex","readonly","for","class","maxlength","cellspacing","cellpadding","rowspan","colspan","usemap","frameborder","contenteditable","isArray","String","isFunction","isWindow","isDocument","nodeType","DOCUMENT_NODE","isObject","isPlainObject","getPrototypeOf","likeArray","dasherize","str","classRE","RegExp","maybeAddPx","childNodes","node","Z","dom","selector","len","filtered","nodes","funcArg","arg","idx","payload","removeAttribute","className","svg","baseVal","deserializeValue","parseJSON","matches","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","parentNode","temp","appendChild","qsa","removeChild","chr","array","fragment","html","container","$1","innerHTML","each","attr","isZ","init","ready","deep","found","maybeID","maybeClass","nameOnly","isSimple","getElementById","getElementsByClassName","querySelectorAll","contains","documentElement","isEmptyObject","isNumeric","val","num","Number","isNaN","inArray","elem","camelCase","uuid","support","expr","noop","elements","values","grep","JSON","reduce","sort","toArray","readyState","body","addEventListener","size","every","not","add","is","excludes","has","eq","first","last","$this","some","closest","collection","_","parents","ancestors","pluck","contents","contentDocument","siblings","child","empty","show","nodeName","display","style","getComputedStyle","getPropertyValue","replaceWith","newContent","before","wrap","structure","func","clone","wrapAll","cloneNode","append","wrapInner","unwrap","hide","css","toggle","setting","prev","next","originHtml","text","newText","textContent","getAttribute","removeAttr","attribute","removeProp","data","attrName","multiple","selected","offset","coordinates","coords","parentOffset","offsetParent","top","left","getBoundingClientRect","pageXOffset","pageYOffset","width","Math","round","height","computedStyle","removeProperty","cssText","hasClass","addClass","cls","removeClass","toggleClass","when","scrollTop","hasScrollTop","scrollTo","scrollX","scrollLeft","hasScrollLeft","scrollY","position","detach","dimension","dimensionProperty","operator","operatorIndex","inside","argType","copyByClone","nextSibling","firstChild","parentInDocument","insertBefore","traverseNode","fun","ownerDocument","defaultView","jsonpID","rscript","scriptTypeRE","xmlTypeRE","jsonType","htmlType","blankRE","originAnchor","triggerGlobal","settings","global","Event","isDefaultPrevented","triggerAndReturn","ajaxBeforeSend","xhr","beforeSend","ajaxSuccess","deferred","success","resolveWith","ajaxComplete","ajaxError","rejectWith","status","complete","active","ajaxStop","appendQuery","url","parseArguments","dataType","href","ajaxJSONP","ajax","responseData","abortTimeout","_callbackName","jsonpCallback","callbackName","script","originalCallback","abort","errorType","triggerHandler","head","ajaxSettings","XMLHttpRequest","accepts","json","xml","crossDomain","processData","cache","dataFilter","urlAnchor","hashIndex","Deferred","ajaxStart","protocol","host","param","traditional","serializeData","hasPlaceholder","jsonp","mime","headers","setHeader","nativeSetHeader","setRequestHeader","mimeType","overrideMimeType","contentType","onreadystatechange","getResponseHeader","responseType","response","responseText","ajaxDataFilter","eval","responseXML","statusText","async","open","username","password","xhrFields","send","post","getJSON","load","escape","encodeURIComponent","serialize","scope","Callbacks","memory","fired","firing","firingStart","firingLength","firingIndex","list","stack","fire","stopOnFalse","disable","start","unique","disabled","lock","locked","fireWith","tuples","state","always","done","fail","fns","defer","tuple","returned","resolve","reject","progress","notify","stateString","sub","progressValues","progressContexts","resolveContexts","resolveValues","remain","updateFn","notifyWith","_zid","isString","handlers","specialEvents","focusinSupported","focus","blur","hover","mouseenter","mouseleave","zid","findHandlers","matcher","handler","sel","eventCapture","captureSetting","del","realEvent","delegator","capture","set","related","relatedTarget","proxy","compatible","isImmediatePropagationStopped","_args","stopPropagation","removeEventListener","click","mousedown","mouseup","mousemove","proxyFn","unshift","unbind","one","returnTrue","returnFalse","ignoreProperties","eventMethods","stopImmediatePropagation","predicate","sourceMethod","timeStamp","defaultPrevented","returnValue","getPreventDefault","createProxy","originalEvent","delegate","undelegate","live","die","autoRemove","evt","currentTarget","liveFired","dispatchEvent","createEvent","bubbles","initEvent","nativeGetComputedStyle","pseudoElement","oldQsa","oldMatches","visible","filters","hidden","checked","filterRe","childRe","classTag","process","taggedParent","console","core","version","__e","useSourceMap","content","cssMapping","btoa","sourceMapping","sourceMap","unescape","stringify","sourceURLs","sources","sourceRoot","cssWithMappingToString","mediaQuery","alreadyImportedModules","memo","stylesInDom","isOldIE","atob","getElement","styleTarget","HTMLIFrameElement","singleton","singletonCounter","stylesInsertedAtTop","fixUrls","addStylesToDom","styles","domStyle","refs","addStyle","listToStyles","newStyles","base","part","media","insertStyleElement","insertInto","lastStyleElementInsertedAtTop","insertAt","removeStyleElement","createStyleElement","attrs","addAttrs","keys","update","transform","styleIndex","applyToSingletonTag","URL","createObjectURL","revokeObjectURL","Blob","link","rel","createLinkElement","autoFixUrls","convertToAbsoluteUrls","blob","oldSrc","styleSheet","createTextNode","newObj","DEBUG","newList","mayRemove","textStore","replaceText","replacement","Boolean","cssNode","evaluate","interpolate","noMatch","escapes","'","\\","\r","\n","\t","
","
","escaper","htmlEntities","&","<",">","\"","entityRe","escapeExpr","string","counter","tmpl","render","variable","Function","template","store","uid","USE_SYMBOL","Playback","i18n","playerError","_UIObject","_i18n","_consented","consent","pause","stop","seek","seekPercentage","percentage","getStartTimeOffset","getDuration","isPlaying","getPlaybackType","NO_OP","isHighDefinitionInUse","_options","attemptAutoPlay","_this2","canAutoPlay","closedCaptionsTracks","trackId","_error_mixin2","canPlay","VOD","AOD","LIVE","BaseObject","_Events","$export","own","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","P","IS_BIND","B","IS_WRAP","W","expProto","C","a","b","virtual","R","U","__g","anObject","IE8_DOM_DEFINE","toPrimitive","dP","f","O","Attributes","IObject","defined","it","ErrorMixin","createError","useCodePrefix","origin","prefixedCode","code","defaultError","description","level","_error2","Levels","FATAL","raw","errorData","UI","defaultUI","title","message","warn","UICorePlugin","enabled","bindEvents","getExternalInterface","enable","createDesc","$keys","enumBugKeys","_browser","delegateEventSplitter","UIObject","_BaseObject","cid","_ensureElement","delegateEvents","destroy","undelegateEvents","setElement","attributes","bitmap","_log","_error","CorePlugin","px","random","propertyIsEnumerable","_iterator2","_symbol2","_typeof","PlayerInfo","playbackPlugins","currentSize","_players","getInstance","playerId","UIContainerPlugin","ContainerPlugin","aFunction","that","valueOf","ceil","floor","shared","getOwnPropertySymbols","$at","iterated","_t","_i","point","dPs","IE_PROTO","Empty","createDict","iframeDocument","iframe","contentWindow","write","lt","close","Properties","def","TAG","tag","stat","LIBRARY","wksExt","$Symbol","charAt","pIE","toIObject","gOPD","getOwnPropertyDescriptor","_kibo","Kibo","Mediator","opts","_html5_video","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","nextTick","browser","env","argv","versions","addListener","removeListener","removeAllListeners","emit","binding","cwd","chdir","dir","umask","arrayIndexOf","cof","toInteger","min","fails","KEY","exp","redefine","Iterators","$iterCreate","setToStringTag","ITERATOR","BUGGY","returnThis","Base","NAME","DEFAULT","IS_SET","FORCED","methods","IteratorPrototype","getMethod","kind","proto","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","TO_STRING_TAG","collections","Collection","hiddenKeys","getOwnPropertyNames","classof","getIteratorMethod","_core","Styler","getStyleFor","baseUrl","_template2","PlayerError","WARN","INFO","_events2","_container","_loader","_from","_from2","arr2","_html5_audio","_html_img","_no_op","_spinner_three_bounce","_watermark","_poster","_click_to_pause","_media_control","_dvr_controls","_favicon","Player","Browser","MediaControl","Container","Core","Loader","Utils","BaseFlashPlayback","Flash","FlasHLS","HLS","HTML5Audio","HTML5Video","HTMLImg","NoOp","ClickToPausePlugin","DVRControls","Favicon","Log","Poster","SpinnerThreeBouncePlugin","WaterMarkPlugin","Vendor","VERSION","defaultOptions","persistConfig","allowUserInteraction","isMobile","playback","_normalizeSources","chromeless","disableKeyboardShortcuts","_registerOptionEventListeners","_coreFactory","_core_factory2","playerInfo","_player_info2","parentId","setParentId","attachTo","loader","_loader2","plugins","activeContainer","ended","buffering","_ready","onReady","onResize","onPlay","onPause","onStop","onEnded","onSeek","onError","onTimeUpdate","onVolumeUpdate","onSubtitleAvailable","parentElement","_addEventListeners","isReady","_onReady","_containerChanged","_onFullscreenChange","_onResize","_addContainerEventListeners","_onPlay","_onPause","_onStop","_onEnded","_onSeek","_onError","_onTimeUpdate","_onVolumeUpdate","_onSubtitleAvailable","newEvents","userEvent","eventType","eventsMapping","eventFunction","fullscreen","getCurrentTime","timeProgress","resize","autoPlay","getCurrentPlayback","mute","_mutedVolume","getVolume","setVolume","unmute","isDvrEnabled","isDvrInUse","getPlugin","plugin","getKeys","gOPS","toObject","$assign","A","K","T","aLen","getSymbols","isEnum","toLength","toIndex","IS_INCLUDES","fromIndex","max","TO_STRING","pos","charCodeAt","ObjectProto","addToUnscopables","step","_k","Arguments","DESCRIPTORS","META","$fails","wks","wksDefine","keyOf","enumKeys","_create","gOPNExt","$GOPD","$DP","gOPN","$JSON","_stringify","HIDDEN","TO_PRIMITIVE","SymbolRegistry","AllSymbols","OPSymbols","USE_NATIVE","QObject","setter","findChild","setSymbolDesc","D","protoDesc","sym","isSymbol","iterator","$defineProperty","$defineProperties","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","$set","symbols","keyFor","useSetter","useSimple","replacer","$replacer","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","w","meta","NEED","fastKey","getWeak","onFreeze","windowNames","getWindowNames","$Object","desc","setPrototypeOf","check","buggy","thisArg","kValue","getBrowserInfo","ua","extra","appName","appVersion","getBrowserData","browserObject","userAgent","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_getIterator3","_browser_data2","browserRegExpResult","identifier","group","versionIdentifier","versionRegExpResult","setBrowserVersion","return","splitVersion","fullVersion","majorVersion","minorVersion","getOsData","osObject","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_os_data2","os","osRegExpResult","setOsVersion","versionSeparator","separator","finalSeparator","substr","getViewportSize","viewportObject","getDevice","browserInfo","isEdge","isChrome","isSafari","isFirefox","isLegacyIE","ActiveXObject","isIE","isIE11","isChromecast","isiOS","isAndroid","isWindowsPhone","isWin8App","isWiiU","isPS4","setItem","removeItem","hasFlash","mimeTypes","enabledPlugin","viewport","device","orientation","setViewportOrientation","getIterator","iterFn","ARG","tryGet","callee","cc","hd","reload","volumeMute","_vendor","BOLD","LEVEL_INFO","LEVEL_DISABLED","COLORS","DESCRIPTIONS","offLevel","kibo","down","onOff","BLACKLIST","log","info","previousLevel","newLevel","color","klassDescription","LEVEL_DEBUG","LEVEL_WARN","LEVEL_ERROR","_instance","setLevel","KEY_NAMES_BY_CODE","8","9","13","16","17","18","20","27","32","37","38","39","40","48","49","50","51","52","53","54","55","56","57","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","112","113","114","115","116","117","118","119","120","121","122","123","KEY_CODES_BY_NAME","MODIFIERS","registerEvent","attachEvent","unregisterEvent","detachEvent","stringContains","neatString","capitalize","what","arrayIncludes","haystack","needle","extractModifiers","keyCombination","modifiers","extractKey","modifiersAndKey","keyName","keyCode","lastKeyCode","lastModifiers","keysDown","any","keysUp","downHandler","upHandler","unloader","upOrDown","registeredKeys","lastModifiersAndKey","registerKeys","newKeys","unregisterKeys","up","lastKey","modifier","_core_factory","CoreFactory","player","_core2","addCorePlugins","createContainers","corePlugins","Plugin","addPlugin","setupExternalInterface","externalFunctions","configureDomRecycler","firstResize","_boundFullscreenHandler","handleFullscreenChange","handleWindowResize","webkitfullscreenchange","data-player","dummyMediaControl","_dummyMediaControl","_ui_core_plugin2","_activeContainer","containerFactory","_container_factory2","prepareContainers","setupContainers","resolveOnContainersReady","updateSize","isFullscreen","setFullscreen","setPlayerSize","previousSize","triggerResize","enableResizeObserver","_this3","resizeObserverInterval","setInterval","clientWidth","clientHeight","newSize","oldHeight","oldWidth","computedSize","_mediator2","disableResizeObserver","clearInterval","_this4","hasPlugin","innerWidth","innerHeight","_screenOrientation","removeContainer","setupContainer","renderContainers","appendToParent","_this5","createContainer","getCurrentContainer","activePlayback","toggleFullscreen","onMouseMove","onMouseLeave","_this6","appendTo","_styler2","_fonts2","_container_factory","ContainerFactory","findPlaybackPlugin","resolvedSource","_container2","addContainerPlugins","containerPlugins","mediaControlDisabled","dblTapHandler","clickTimer","clickDelay","data-container","dblclick","touchend","contextmenu","hasClosedCaptionsTracks","closedCaptionsTrackId","onProgress","timeUpdated","onBuffering","bufferfull","settingsUpdate","loadedMetadata","highDefinitionUpdate","updateBitrate","playbackStateChanged","playbackDvrStateChanged","disableMediaControl","enableMediaControl","onSeeked","playing","paused","stopped","subtitleAvailable","subtitleChanged","track","dvrInUse","newBitrate","statsReport","metrics","dvrEnabled","setStyle","animate","duration","metadata","current","clicked","cancelClicked","dblClicked","dblTap","onContextMenu","mouseEnter","mouseLeave","isHD","updateStyle","hmr","locals","currentDir","pathname","fullMatch","origUrl","newUrl","unquotedOrigUrl","externalPlugins","useOnlyPlainHtml5Plugins","_toConsumableArray3","_hls2","_html5_video2","_html5_audio2","_flash2","_flashls2","_html_img2","_no_op2","_spinner_three_bounce2","_watermark2","_poster2","_stats2","_google_analytics2","_click_to_pause2","_media_control2","_dvr_controls2","_closed_captions2","_favicon2","_seek_time2","_sources2","_end_video2","_error_screen2","_strings2","validateExternalPluginsType","addExternalPlugins","groupPluginsByType","removeDups","pluginsMap","reduceRight","errorMessage","from","isArrayIter","createProperty","getIterFn","iter","arrayLike","mapfn","mapping","ret","ArrayProto","SAFE_CLOSING","riter","skipClosing","safe","MIMETYPES","codec","ogg","3gpp","webm","mkv","m3u8","AUDIO_MIMETYPES","wav","mp3","aac","oga","KNOWN_AUDIO_MIMETYPES","acc","UNKNOWN_ERROR","_Playback","_destroyed","_loadStarted","_isBuffering","_playheadMoving","_playheadMovingTimer","_stopped","_ccTrackId","_setupSrc","disableContextMenu","disableVideoTagContextMenu","playbackConfig","preload","posterUrl","poster","defaultMuted","loop","controls","useVideoTagDefaultControls","crossOrigin","x-webkit-playsinline","playInline","playsinline","crossorigin","right","externalTracks","_setupExternalTracks","isAudioOnly","resourceUrl","_mimeTypesForUrl","audioOnly","data-html5-video","canplay","canplaythrough","durationchange","loadeddata","loadedmetadata","seeking","seeked","stalled","timeupdate","waiting","disableCanAutoPlay","autoPlayTimeout","tracks","_externalTracks","label","lang","srcUrl","_ccIsSetup","_src","_onLoadedMetadata","_handleBufferingEvents","_updateSettings","autoSeekFromUrl","_playback2","_checkInitialSeek","_onDurationChange","_onProgress","seekEnabled","isSeekEnabled","onDemandType","Infinity","_stopPlayheadMovingChecks","isMuted","_startPlayheadMovingChecks","_playheadMovingTimeOnCheck","_determineIfPlayheadMoving","_onWaiting","_onLoadedData","_onCanPlay","_onPlaying","_checkForClosedCaptions","_onSeeking","_onSeeked","playheadShouldBeMoving","HAVE_FUTURE_DATA","_ref","isUnknownError","formattedError","handleTextTrackChange","textTracks","seekTime","total","buffered","bufferedPos","end","_typeFor","_isReadyState","isHTML5Video","_handleTextTrackChange","showingTrack","_tracks2","mimeTypesByExtension","extension","_canPlay","mediaType","canPlayType","updateSettings","data-html-img","_onLoad","resource","_noiseFrameNum","data-no-op","playbackNotSupported","playbackNotSupportedMessage","showForNoOp","_animate","_noise","idata","createImageData","canvas","buffer32","Uint32Array","buffer","pow","putImageData","_loop","_stop","_animationHandle","getContext","_UIContainerPlugin","_spinner2","showTimeout","onBufferFull","data-spinner","_stats","StatsPlugin","_ContainerPlugin","setInitialAttrs","reportInterval","onStatsAdd","firstPlay","startupTime","rebufferingTime","watchingTime","rebuffers","externalMetrics","watchingTimeInit","intervalId","report","startupTimeInit","rebufferingTimeInit","getRebufferingTime","getWatchingTime","isRebuffering","metric","getStats","watermark","imageUrl","imageLink","watermarkLink","templateOptions","PosterPlugin","hasStartedPlaying","playRequested","data-poster","showOnVideoEnd","hasFatalError","showPlayButton","updatePlayButton","hidePlayButton","disableErrorScreen","$playButton","shouldHideOnPlay","shouldRender","updatePoster","hidePoster","showPoster","custom","background-image","background","$playWrapper","buttonsColor","mediacontrol","buttons","_google_analytics","GoogleAnalytics","gaAccount","account","trackerName","gaTrackerName","domainName","gaDomainName","currentHDState","embedScript","_gat","addEventListeners","onload","onPlaybackChanged","onVolumeChanged","CONTAINER_FULL_SCREEN","onFullscreen","onHD","onDVR","_gaq","playbackState","res","pointerEnabled","_UICorePlugin","currentPositionValue","currentDurationValue","keepVisible","fullScreenOnVideoTagSupported","setInitialVolume","focusElement","bindKeyEvents","userDisabled","stopDragHandler","stopDrag","updateDragHandler","updateDrag","playbackIsNOOP","data-media-control","click [data-play]","click [data-pause]","click [data-playpause]","click [data-stop]","click [data-playstop]","click [data-fullscreen]","click .bar-container[data-seekbar]","click .bar-container[data-volume]","click .drawer-icon[data-volume]","mouseenter .drawer-container[data-volume]","mouseleave .drawer-container[data-volume]","mousedown .bar-container[data-volume]","mousemove .bar-container[data-volume]","mousedown .bar-scrubber[data-seekbar]","mousemove .bar-container[data-seekbar]","mouseleave .bar-container[data-seekbar]","mouseenter .media-control-layer[data-controls]","mouseleave .media-control-layer[data-controls]","_mediaControl2","intendedVolume","onActiveContainerChanged","hideMediaControlDelay","playerResize","bindContainerEvents","changeTogglePlay","updateProgressBar","onLoadedMetadataOnVideoTag","unbindKeyEvents","initialVolume","updateVolumeUI","video","webkitSupportsFullscreen","rendered","$volumeBarContainer","containerWidth","barWidth","$volumeBarBackground","$volumeBarFill","$volumeBarScrubber","$volumeIcon","applyButtonStyle","$playPauseToggle","$playStopToggle","mousemoveOnSeekBar","offsetX","pageX","$seekBarContainer","$seekBarHover","mouseleaveOnSeekBar","onVolumeClick","getVolumeFromUIEvent","mousemoveOnVolumeBar","draggingVolumeBar","$fullscreenToggle","icon","hideVolumeBar","togglePlayPause","togglePlayStop","startSeekDrag","draggingSeekBar","$seekBarLoaded","$seekBarPosition","$seekBarScrubber","startVolumeDrag","setSeekPercentage","toggleMute","isInitialVolume","setWhenContainerReady","resetUserKeepVisible","showVolumeBar","hideVolumeId","loadedStart","loadedEnd","renderSeekBar","currentSeekBarPercentage","newPosition","newDuration","displayedPosition","$position","displayedDuration","$duration","setKeepVisible","resetKeepVisible","setUserKeepVisible","userKeepVisible","isVisible","mousePointerMoved","clientX","lastMouseX","clientY","lastMouseY","hideId","updateCursorStyle","_this7","hideMediaControl","hasKeepVisibleRequested","hasDraggingAction","showing","newSettings","getSettings","_stringify2","$hdIndicator","createCachedElements","$layer","$volumeContainer","resetIndicators","initializeIcons","displayedSeekBarPercentage","seekRelative","delta","bindKeyAndShow","_this8","_this9","parseColors","seekbarColor","seekbar","_this10","previousSeekPercentage","_index2","click .live-button","data-dvr-controls","mediaControl","containerChanged","dvrChanged","useDvrControls","backToLive","_closed_captions","ClosedCaptions","config","closedCaptionsConfig","_title","_ariaLabel","ariaLabel","_labelCb","labelCallback","click [data-cc-button]","click [data-cc-select]","data-cc-controls","hideContextMenu","onSubtitleChanged","onContainerStop","ccAvailable","renderCcButton","setCurrentContextMenuElement","onTrackSelect","dataset","ccSelect","hasCC","toggleContextMenu","contextMenuElement","_trackId","$ccButton","disabledLabel","$fullscreen","insertAfter","prepend","oldIcon","_CorePlugin","changeFavicon","setPlayIcon","setPauseIcon","resetIcon","createIcon","fillStyle","path","Path2D","fill","toDataURL","playIcon","changeIcon","pauseIcon","_seek_time","SeekTime","hoveringOverSeekBar","hoverPosition","firstFragDateTime","actualLiveTime","actualLiveServerTime","actualLiveServerTimeDiff","data-seek-time","mediaControlContainer","isLiveStreamWithDvr","showTime","hideTime","onContainerChanged","updateDuration","calculateHoverPosition","getSeekTime","secondsSinceMidnight","useActualLiveTime","setHours","shouldBeVisible","currentSeekTime","displayedSeekTime","$seekTimeEl","durationShown","$durationEl","currentDuration","elWidth","elLeftPos","SourcesPlugin","onContainersCreated","firstValidSource","EndVideo","exitFullscreenOnEnd","Strings","_initializeMessages","_language","fallbackLang","_messages","en","back_to_live","playback_not_supported","default_error_title","default_error_message","pt","es","ru","fr","et","ar","strings","_error_screen","ErrorScreen","_ret","data-error-screen","bindReload","reloadButton","unbindReload","reloadIcon"],"mappings":"CAAA,SAAAA,EAAAC,GACA,iBAAAC,SAAA,iBAAAC,OACAA,OAAAD,QAAAD,IACA,mBAAAG,eAAAC,IACAD,OAAA,GAAAH,GACA,iBAAAC,QACAA,QAAA,OAAAD,IAEAD,EAAA,OAAAC,IARA,CASCK,OAAA,WACD,mBCTA,IAAAC,EAAA,GAGA,SAAAC,EAAAC,GAGA,GAAAF,EAAAE,GACA,OAAAF,EAAAE,GAAAP,QAGA,IAAAC,EAAAI,EAAAE,GAAA,CACAC,EAAAD,EACAE,GAAA,EACAT,QAAA,IAUA,OANAU,EAAAH,GAAAI,KAAAV,EAAAD,QAAAC,IAAAD,QAAAM,GAGAL,EAAAQ,GAAA,EAGAR,EAAAD,QA0DA,OArDAM,EAAAM,EAAAF,EAGAJ,EAAAO,EAAAR,EAGAC,EAAAQ,EAAA,SAAAd,EAAAe,EAAAC,GACAV,EAAAW,EAAAjB,EAAAe,IACAG,OAAAC,eAAAnB,EAAAe,EAAA,CAA0CK,YAAA,EAAAC,IAAAL,KAK1CV,EAAAgB,EAAA,SAAAtB,GACA,oBAAAuB,eAAAC,aACAN,OAAAC,eAAAnB,EAAAuB,OAAAC,YAAA,CAAwDC,MAAA,WAExDP,OAAAC,eAAAnB,EAAA,cAAiDyB,OAAA,KAQjDnB,EAAAoB,EAAA,SAAAD,EAAAE,GAEA,GADA,EAAAA,IAAAF,EAAAnB,EAAAmB,IACA,EAAAE,EAAA,OAAAF,EACA,KAAAE,GAAA,iBAAAF,QAAAG,WAAA,OAAAH,EACA,IAAAI,EAAAX,OAAAY,OAAA,MAGA,GAFAxB,EAAAgB,EAAAO,GACAX,OAAAC,eAAAU,EAAA,WAAyCT,YAAA,EAAAK,UACzC,EAAAE,GAAA,iBAAAF,EAAA,QAAAM,KAAAN,EAAAnB,EAAAQ,EAAAe,EAAAE,EAAA,SAAAA,GAAgH,OAAAN,EAAAM,IAAqBC,KAAA,KAAAD,IACrI,OAAAF,GAIAvB,EAAA2B,EAAA,SAAAhC,GACA,IAAAe,EAAAf,KAAA2B,WACA,WAA2B,OAAA3B,EAAA,SAC3B,WAAiC,OAAAA,GAEjC,OADAK,EAAAQ,EAAAE,EAAA,IAAAA,GACAA,GAIAV,EAAAW,EAAA,SAAAiB,EAAAC,GAAsD,OAAAjB,OAAAkB,UAAAC,eAAA1B,KAAAuB,EAAAC,IAGtD7B,EAAAgC,EAAA,QAIAhC,IAAAiC,EAAA,mCChFAvC,EAAA4B,YAAA,EAEA5B,EAAAwC,QAAA,SAAAC,EAAAC,GACA,KAAAD,aAAAC,GACA,UAAAC,UAAA,oECJA3C,EAAA4B,YAAA,EAEA,IAIAgB,EAJAC,EAAevC,EAAQ,IAEvBwC,GAEAF,EAFAC,IAEsCD,EAAAhB,WAAAgB,EAAA,CAAuCJ,QAAAI,GAE7E5C,EAAAwC,QAAA,SAAAO,EAAApC,GACA,IAAAoC,EACA,UAAAC,eAAA,6DAGA,OAAArC,GAAA,qBAAAA,EAAA,eAAAmC,EAAAN,SAAA7B,KAAA,mBAAAA,EAAAoC,EAAApC,iCCbAX,EAAA4B,YAAA,EAEA,IAEAqB,EAAAC,EAFsB5C,EAAQ,MAM9B6C,EAAAD,EAFc5C,EAAQ,KAMtBwC,EAAAI,EAFe5C,EAAQ,KAIvB,SAAA4C,EAAAN,GAAsC,OAAAA,KAAAhB,WAAAgB,EAAA,CAAuCJ,QAAAI,GAE7E5C,EAAAwC,QAAA,SAAAY,EAAAC,GACA,sBAAAA,GAAA,OAAAA,EACA,UAAAV,UAAA,qEAAAU,EAAA,eAAAP,EAAAN,SAAAa,KAGAD,EAAAhB,WAAA,EAAAe,EAAAX,SAAAa,KAAAjB,UAAA,CACAkB,YAAA,CACA7B,MAAA2B,EACAhC,YAAA,EACAmC,UAAA,EACAC,cAAA,KAGAH,IAAAJ,EAAAT,SAAA,EAAAS,EAAAT,SAAAY,EAAAC,GAAAD,EAAAK,UAAAJ,kCC7BArD,EAAA4B,YAAA,EAEA,IAIAgB,EAJAc,EAAsBpD,EAAQ,IAE9BqD,GAEAf,EAFAc,IAEsCd,EAAAhB,WAAAgB,EAAA,CAAuCJ,QAAAI,GAE7E5C,EAAAwC,QAAA,WACA,SAAAoB,EAAAC,EAAAC,GACA,QAAAtD,EAAA,EAAmBA,EAAAsD,EAAAC,OAAkBvD,IAAA,CACrC,IAAAwD,EAAAF,EAAAtD,GACAwD,EAAA5C,WAAA4C,EAAA5C,aAAA,EACA4C,EAAAR,cAAA,EACA,UAAAQ,MAAAT,UAAA,IACA,EAAAI,EAAAnB,SAAAqB,EAAAG,EAAAjC,IAAAiC,IAIA,gBAAAtB,EAAAuB,EAAAC,GAGA,OAFAD,GAAAL,EAAAlB,EAAAN,UAAA6B,GACAC,GAAAN,EAAAlB,EAAAwB,GACAxB,GAdA,0HCNApC,EAAA,KACA6D,EAAA7D,EAAA,sDAEA,IAAM8D,EAAQC,MAAMjC,UAAUgC,MAExBE,EAAgB,MAEhBC,EAAY,SAAS3B,EAAK4B,EAAQzD,EAAM0D,GAC5C,IAAK1D,EAAM,OAAO,EAGlB,GAAoB,iBAAhB,IAAOA,EAAP,eAAA+B,EAAAN,SAAOzB,IAAmB,CAC5B,IAAK,IAAMgB,KAAOhB,EAChB6B,EAAI4B,GAAQE,MAAM9B,EAAK,CAACb,EAAKhB,EAAKgB,IAAM4C,OAAOF,IAEjD,OAAO,EAIT,GAAIH,EAAcM,KAAK7D,GAAO,CAE5B,IADA,IAAM8D,EAAQ9D,EAAK+D,MAAMR,GAChB9D,EAAI,EAAGC,EAAIoE,EAAMd,OAAQvD,EAAIC,EAAGD,IACvCoC,EAAI4B,GAAQE,MAAM9B,EAAK,CAACiC,EAAMrE,IAAImE,OAAOF,IAE3C,OAAO,EAGT,OAAO,GAGHM,EAAgB,SAASC,EAAQC,EAAMC,EAAOnE,GAClD,IAAIoE,SAAI3E,GAAK,EACPC,EAAIuE,EAAOjB,OAAQqB,EAAKH,EAAK,GAAII,EAAKJ,EAAK,GAAIK,EAAKL,EAAK,IAG/D,SAASM,IACP,IACE,OAAQN,EAAKlB,QAEb,KAAK,EAAG,OAASvD,EAAIC,IAAM0E,EAAKH,EAAOxE,IAAIgF,SAAS7E,KAAKwE,EAAGM,KAAO,OACnE,KAAK,EAAG,OAASjF,EAAIC,IAAM0E,EAAKH,EAAOxE,IAAIgF,SAAS7E,KAAKwE,EAAGM,IAAKL,GAAM,OACvE,KAAK,EAAG,OAAS5E,EAAIC,IAAM0E,EAAKH,EAAOxE,IAAIgF,SAAS7E,KAAKwE,EAAGM,IAAKL,EAAIC,GAAM,OAC3E,KAAK,EAAG,OAAS7E,EAAIC,IAAM0E,EAAKH,EAAOxE,IAAIgF,SAAS7E,KAAKwE,EAAGM,IAAKL,EAAIC,EAAIC,GAAM,OAC/E,QAAS,OAAS9E,EAAIC,IAAM0E,EAAKH,EAAOxE,IAAIgF,SAASd,MAAMS,EAAGM,IAAKR,GAAQ,QAE3E,MAAOS,GACPC,EAAAnD,QAAIoD,MAAMlB,MAAViB,EAAAnD,QAAqB,CAAC0C,EAAO,iBAAkBnE,EAAM,UAAU,IAAK2E,IACpEH,KAdJA,IAwBmBM,mEAQnBC,YAAG/E,EAAMyE,EAAUO,GACjB,OAAKxB,EAAUyB,KAAM,KAAMjF,EAAM,CAACyE,EAAUO,KAAcP,GAC1DQ,KAAKC,UAAYD,KAAKC,QAAU,KACjBD,KAAKC,QAAQlF,KAAUiF,KAAKC,QAAQlF,GAAQ,KACpDmF,KAAK,CAAEV,SAAUA,EAAUO,QAASA,EAASN,IAAKM,GAAWC,OAC7DA,MAJoEA,kBAc7EG,cAAKpF,EAAMyE,EAAUO,GAAS,IAAAK,EAAAJ,KACxBG,SACJ,IAAK5B,EAAUyB,KAAM,OAAQjF,EAAM,CAACyE,EAAUO,MAAcP,EAAU,OAAOQ,KAM7E,OAJAG,EAAO,WADWC,EAAKC,IAAItF,EAAMoF,GAG/BX,EAASd,MAAMsB,KAAMM,YAEhBN,KAAKF,GAAG/E,EAAMoF,EAAMJ,gBAU7BM,aAAItF,EAAMyE,EAAUO,GAClB,IAAwBlB,EAAUpE,EAA9B8F,SAAQpB,SAAIH,SAAexE,SAAMgG,SAAGC,SACxC,IAAKT,KAAKC,UAAY1B,EAAUyB,KAAM,MAAOjF,EAAM,CAACyE,EAAUO,IAAW,OAAOC,KAChF,IAAKjF,IAASyE,IAAaO,EAEzB,OADAC,KAAKC,aAAU,EACRD,KAIT,IAAKxF,EAAI,EAAGC,GAFZoE,EAAQ9D,EAAO,CAACA,IAAQ,EAAA2F,EAAAlE,SAAYwD,KAAKC,UAEnBlC,OAAQvD,EAAIC,EAAGD,IAGnC,GAFAO,EAAO8D,EAAMrE,GACbwE,EAASgB,KAAKC,QAAQlF,GACV,CAEV,GADAiF,KAAKC,QAAQlF,GAAQwF,EAAS,GAC1Bf,GAAYO,EACd,IAAKS,EAAI,EAAGC,EAAIzB,EAAOjB,OAAQyC,EAAIC,EAAGD,IACpCrB,EAAKH,EAAOwB,IACPhB,GAAYA,IAAaL,EAAGK,UAAYA,IAAaL,EAAGK,SAASmB,WACjEZ,GAAWA,IAAYZ,EAAGY,UAC7BQ,EAAOL,KAAKf,GAIboB,EAAOxC,eAAeiC,KAAKC,QAAQlF,GAG5C,OAAOiF,kBAQTY,iBAAQ7F,GACN,IAAMmE,EAAQc,KAAKjF,MAAQiF,KAAK1C,YAAYvC,KAE5C,GADA4E,EAAAnD,QAAIqE,MAAMnC,MAAViB,EAAAnD,QAAqB,CAAC0C,GAAOP,OAAON,MAAMjC,UAAUgC,MAAMzD,KAAK2F,cAC1DN,KAAKC,QAAS,OAAOD,KAC1B,IAAMf,EAAOb,EAAMzD,KAAK2F,UAAW,GACnC,IAAK/B,EAAUyB,KAAM,UAAWjF,EAAMkE,GAAO,OAAOe,KACpD,IAAMhB,EAASgB,KAAKC,QAAQlF,GACtB+F,EAAYd,KAAKC,QAAQc,IAG/B,OAFI/B,GAAQD,EAAcC,EAAQC,EAAMC,EAAOnE,GAC3C+F,GAAW/B,EAAc+B,EAAWR,UAAWpB,EAAOnE,GACnDiF,kBAUTgB,uBAAcpE,EAAK7B,EAAMyE,GACvB,IAAIyB,EAAcjB,KAAKkB,aACvB,IAAKD,EAAa,OAAOjB,KACzB,IAAMmB,GAAUpG,IAASyE,EAGzB,IAAK,IAAM4B,KAFN5B,GAA4B,iBAAhB,IAAOzE,EAAP,eAAA+B,EAAAN,SAAOzB,MAAmByE,EAAWQ,MAClDpD,KAAMqE,EAAc,IAAIrE,EAAIyE,WAAazE,GAC5BqE,GACfrE,EAAMqE,EAAYG,IACdf,IAAItF,EAAMyE,EAAUQ,OACpBmB,GAA8C,KAApC,EAAAT,EAAAlE,SAAYI,EAAIqD,SAASlC,gBAAqBiC,KAAKkB,aAAaE,GAEhF,OAAOpB,QAGFsB,kBAASC,GACd1B,EAAO2B,SAAW3B,EAAO2B,OAAS,IAClC,IAAIrF,EAAgC,iBAAdoF,GAA0BA,EAAUE,cAAcC,OAEpEvF,IAAa0D,EAAO2B,OAAOrF,GAC7B0D,EAAO2B,OAAOrF,GAAYA,EAASwF,cAAc7C,MAAM,KAAK8C,IAC1D,SAACnG,EAAOoG,GAAR,OAA4B,IAAVA,EAAcpG,EAAQA,EAASA,EAAM,GAAGgG,cAAgBhG,EAAM2C,MAAM,KACtF0D,KAAK,IAEPnC,EAAAnD,QAAIoD,MAAM,SAAU,8BAAgC2B,MAIjDQ,qCAEL,OADAlC,EAAO2B,SAAW3B,EAAO2B,OAAS,KAC3B,EAAAd,EAAAlE,SAAYqD,EAAO2B,QAAQQ,OAAO,SAAC7F,GAAD,MAAiD,iBAA5B0D,EAAO2B,OAAOrF,qBA5H3D0D,EAwJrB,IAAMoC,EAAgB,CAAEC,SAAU,KAAMC,aAAc,SAEtD,EAAAzB,EAAAlE,SAAYyF,GAAeG,QAAQ,SAASC,GAC1CxC,EAAOzD,UAAUiG,GAAU,SAASzF,EAAK7B,EAAMyE,GAM7C,OALoBQ,KAAKkB,eAAiBlB,KAAKkB,aAAe,KACnDtE,EAAIyE,YAAczE,EAAIyE,WAAY,EAAAlD,EAAAmE,UAAS,OACpC1F,EACb4C,GAA4B,iBAAhB,IAAOzE,EAAP,eAAA+B,EAAAN,SAAOzB,MAAmByE,EAAWQ,MACtDpD,EAAIqF,EAAcI,IAAStH,EAAMyE,EAAUQ,MACpCA,QAUXH,EAAO0C,aAAe,QAOtB1C,EAAO2C,cAAgB,SAOvB3C,EAAO4C,kBAAoB,aAM3B5C,EAAO6C,YAAc,OAMrB7C,EAAO8C,aAAe,QAMtB9C,EAAO+C,YAAc,OAMrB/C,EAAOgD,aAAe,QAOtBhD,EAAOiD,YAAc,OAOrBjD,EAAOkD,aAAe,cAoBtBlD,EAAOmD,MAAQ,QAYfnD,EAAOoD,kBAAoB,aAO3BpD,EAAOqD,oBAAsB,eAO7BrD,EAAOsD,0BAA4B,oBAkBnCtD,EAAOuD,kBAAoB,oBAY3BvD,EAAOwD,oBAAsB,sBAM7BxD,EAAOyD,eAAiB,iBAUxBzD,EAAO0D,mBAAqB,qBAW5B1D,EAAO2D,oBAAsB,sBAM7B3D,EAAO4D,wBAA0B,0BAYjC5D,EAAO6D,wBAA0B,0BAQjC7D,EAAO8D,8BAAgC,gCAgBvC9D,EAAO+D,iBAAmB,mBAU1B/D,EAAOgE,0BAA4B,4BAOnChE,EAAOiE,4BAA8B,+BAOrCjE,EAAOkE,0BAA4B,6BAWnClE,EAAOmE,uBAAyB,yBAOhCnE,EAAOoE,aAAe,eAEtBpE,EAAOqE,8BAAgC,gCAEvCrE,EAAOsE,6BAA+B,+BAOtCtE,EAAOuE,eAAiB,iBAMxBvE,EAAOwE,qBAAuB,uBAU9BxE,EAAOyE,cAAgB,gBAMvBzE,EAAO0E,eAAiB,iBAMxB1E,EAAO2E,cAAgB,gBAMvB3E,EAAO4E,gBAAkB,kBAMzB5E,EAAO6E,cAAgB,gBAQvB7E,EAAO8E,eAAiB,iBAExB9E,EAAO+E,mBAAqB,qBAE5B/E,EAAOgF,yBAA2B,2BAElChF,EAAOiF,sBAAwB,wBAM/BjF,EAAOkF,4BAA8B,8BAUrClF,EAAOmF,0BAA4B,4BAQnCnF,EAAOoF,wBAA0B,0BAMjCpF,EAAOqF,8BAAgC,gCAOvCrF,EAAOsF,oBAAsB,sBAM7BtF,EAAOuF,WAAa,aAOpBvF,EAAOwF,gBAAkB,kBAOzBxF,EAAOyF,YAAc,cAarBzF,EAAO0F,gCAAkC,kCAOzC1F,EAAO2F,gBAAkB,iBAOzB3F,EAAO4F,iBAAmB,kBAY1B5F,EAAO6F,wBAA0B,0BACjC7F,EAAO8F,kCAAoC,gBAgB3C9F,EAAO+F,kBAAoB,oBAC3B/F,EAAOgG,uBAAyB,yBAChChG,EAAOiG,oBAAsB,sBAM7BjG,EAAOkG,gBAAkB,kBACzBlG,EAAOmG,gBAAkB,kBAYzBnG,EAAOoG,yBAA2B,2BAOlCpG,EAAOqG,6BAA+B,+BAUtCrG,EAAOsG,2BAA6B,6BAapCtG,EAAOuG,qBAAuB,uBAc9BvG,EAAOwG,mBAAqB,qBAC5BxG,EAAOyG,eAAiB,iBACxBzG,EAAO0G,eAAiB,iBACxB1G,EAAO2G,gBAAkB,kBACzB3G,EAAO4G,gBAAkB,kBACzB5G,EAAO6G,gBAAkB,kBACzB7G,EAAO8G,mBAAqB,qBAC5B9G,EAAO+G,sBAAwB,wBAC/B/G,EAAOgH,sBAAwB,uBAC/BhH,EAAOiH,sBAAwB,uBAO/BjH,EAAOkH,eAAiB,iBAOxBlH,EAAOmH,iBAAmB,mBAC1BnH,EAAOoH,iBAAmB,mBAC1BpH,EAAOqH,qBAAuB,uBAM9BrH,EAAOsH,0BAA4B,4BAMnCtH,EAAOuH,2BAA6B,6BAMpCvH,EAAOwH,yBAA2B,2BAQlCxH,EAAOyH,+BAAiC,iCAOxCzH,EAAO0H,4BAA8B,8BAMrC1H,EAAO2H,4BAA8B,8BAErC3H,EAAO4H,+BAAiC,iCACxC5H,EAAO6H,8BAAgC,gCACvC7H,EAAO8H,oBAAsB,sBAM7B9H,EAAO+H,yBAA2B,2BAGlC/H,EAAOgI,sBAAwB,wBAM/BhI,EAAOiI,wBAA0B,0BAMjCjI,EAAOkI,kBAAoB,oBAM3BlI,EAAOmI,kBAAoB,oBAQ3BnI,EAAOoI,+BAAiC,iCAQxCpI,EAAOqI,gCAAkC,kCAMzCrI,EAAOsI,qBAAuB,uBAM9BtI,EAAOuI,wBAA0B,0BAMjCvI,EAAOwI,8BAAgC,gCAMvCxI,EAAOyI,4BAA8B,yVCt0BrBC,WAUAC,WAaAC,eA8IAC,wBAoBApG,aAMAqG,aAIAC,qBAeAC,uBAIAC,QAQAC,oBAQAC,uBAAT,SAAgCC,EAAMC,GAC3C,YAAaC,IAATF,QAAgCE,IAAVD,QACyDC,IAA5ED,EAAME,KAAK,SAACC,GAAD,OAAcJ,EAAKtH,gBAAkB0H,EAAS1H,mBAIlD2H,mBAlPhBhP,EAAA,KACA,QAAAA,EAAA,SACAA,EAAA,QACAA,EAAA,UACAA,EAAA,yDAEO,SAASiO,EAAO3L,EAAK2M,GAC1B,GAAIA,EACF,IAAK,IAAMC,KAAQD,EAAQ,CACzB,IAAME,GAAiB,EAAAC,EAAAlN,SAAgC+M,EAAQC,GAC/DC,GAAiB,EAAA9L,EAAAnB,SAAsBI,EAAK4M,EAAMC,GAAkB7M,EAAI4M,GAAQD,EAAOC,GAG3F,OAAO5M,EAGF,SAAS4L,EAAOmB,EAAQC,GAAY,IACnCC,EADmC,SAAAC,GAEvC,SAAAD,KAAqB,EAAAE,EAAAvN,SAAAwD,KAAA6J,GAAA,QAAAG,EAAA1J,UAAAvC,OAANkB,EAAMZ,MAAA2L,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAANhL,EAAMgL,GAAA3J,UAAA2J,GAAA,IAAA7J,GAAA,EAAA8J,EAAA1N,SAAAwD,KACnB8J,EAAAnP,KAAA+D,MAAAoL,EAAA,CAAA9J,MAAArB,OAASM,KADU,OAEf2K,EAAWO,YACbP,EAAWO,WAAWzL,MAAtB0B,EAAkCnB,GAHjBmB,EAFkB,SAAAgK,EAAA5N,SAAAqN,EAAAC,GAAAD,EAAA,CACjBF,GASxB,OADApB,EAAOsB,EAAUzN,UAAWwN,GACrBC,EAGF,SAASpB,EAAW4B,EAAMC,GAC/B,IAAKC,SAASF,GACZ,MAAO,QAETA,GAAc,IAEd,IAAMG,GADNH,EAAOI,SAASJ,EAAK,MACE,GAEjBK,GADNL,EAAOI,SAASJ,EAAK,KACE,GAEjBM,GADNN,EAAOI,SAASJ,EAAK,KACA,GACfO,EAAOH,SAASJ,EAAK,IACvBQ,EAAM,GAQV,OAPID,GAAQA,EAAO,IACjBC,GAAOD,EAAO,IACVD,EAAQ,IAAGE,GAAO,SAEpBF,GAASA,EAAQ,GAAKL,KAAaO,IAAQ,IAAMF,GAAOvM,OAAO,GAAK,KACxEyM,IAAQ,IAAMH,GAAStM,OAAO,GAAK,KACnCyM,IAAQ,IAAML,GAASpM,OAAO,IACnBsD,OAGN,IAAMoJ,eAAa,CACxBC,kBAAmB,WACjB,OAAOC,SAASD,mBACdC,SAASC,yBACTD,SAASE,sBACTF,SAASG,qBAEbC,kBAAmB,SAASC,GACtBA,EAAGD,kBACLC,EAAGD,oBACIC,EAAGC,wBACVD,EAAGC,0BACID,EAAGE,qBACVF,EAAGE,uBACIF,EAAGG,oBACVH,EAAGG,sBACIH,EAAGI,eAAiBJ,EAAGI,cAAc,UAAYJ,EAAGI,cAAc,SAASC,sBAClFL,EAAGI,cAAc,SAASC,wBACnBL,EAAGK,uBACVL,EAAGK,yBAGPC,iBAAkB,WAAsB,IAAbN,EAAa/K,UAAAvC,OAAA,QAAAoL,IAAA7I,UAAA,GAAAA,UAAA,GAAV0K,SACxBK,EAAGO,eACLP,EAAGO,iBACIP,EAAGQ,uBACVR,EAAGQ,yBACIR,EAAGS,qBACVT,EAAGS,uBACIT,EAAGU,oBACVV,EAAGU,sBACIV,EAAGW,kBACVX,EAAGW,oBAGPC,kBAAmB,WACjB,SACEjB,SAASiB,mBACTjB,SAASkB,yBACTlB,SAASmB,sBACTnB,SAASoB,uBAKFC,kEAEJC,0BACL,MAAO,CACLC,OAAQ,CACN9Q,MAAO,IACP+Q,MAAO/B,cAKNgC,0BAAiB1Q,GACtB,IACE,OAAOiE,KAAKsM,iBAAiBvQ,GAAKyQ,MAAMxM,KAAKsM,iBAAiBvQ,GAAKN,OACnE,MAAOiR,GACP,WAIGC,yBAAgB5Q,GACrB,gBAAiBiP,SAAS4B,OAA1B,IAAoC7Q,KAG/B8Q,iBAAQ9Q,GACb,OAAI+Q,EAAAtQ,QAAQuQ,iBAAmBC,aAAahN,KAAK2M,gBAAgB5Q,IACxDiE,KAAKsM,iBAAiBvQ,GAAKyQ,MAAMQ,aAAahN,KAAK2M,gBAAgB5Q,KAErEiE,KAAKyM,iBAAiB1Q,MAGxBkR,iBAAQlR,EAAKN,GAClB,GAAIqR,EAAAtQ,QAAQuQ,gBACV,IAEE,OADAC,aAAahN,KAAK2M,gBAAgB5Q,IAAQN,GACnC,EACP,MAAOiR,GACP,OAAO,SAMFQ,uEAmBJV,eAAMW,GAMX,IALA,IAAIC,SACEC,EAAK,MACTC,EAAS,qBACTC,EAAS,SAAChR,GAAD,OAAOiR,mBAAmBjR,EAAEkR,QAAQJ,EAAI,OACjDK,EAAS,GACJN,EAAQE,EAAOK,KAAKR,IACzBO,EAAOH,EAAOH,EAAM,IAAIzL,eAAiB4L,EAAOH,EAAM,IAExD,OAAOM,sDA1BP,IAAME,EAAQxT,OAAOyT,SAASP,OAAOQ,UAAU,GAK/C,OAJIF,IAAU5N,KAAK4N,QACjB5N,KAAK+N,WAAa/N,KAAKwM,MAAMoB,GAC7B5N,KAAK4N,MAAQA,GAER5N,KAAK+N,8CAIZ,IAAMC,EAAO5T,OAAOyT,SAASG,KAAKF,UAAU,GAK5C,OAJIE,IAAShO,KAAKgO,OAChBhO,KAAKiO,YAAcjO,KAAKwM,MAAMwB,GAC9BhO,KAAKgO,KAAOA,GAEPhO,KAAKiO,qBAgBT,SAASvF,IAAqC,IAAjBwF,EAAiB5N,UAAAvC,OAAA,QAAAoL,IAAA7I,UAAA,GAAAA,UAAA,GAAL,IAC1CkK,EAAU,EACR2D,EAAajB,EAAYQ,OAAOQ,IAAchB,EAAYkB,WAAWF,IAAc,GACnFG,EAAQF,EAAWf,MAAM,kBAAoB,GACnD,GAAIiB,EAAMtQ,OAAS,EAAG,CACpB,IAAMuQ,EAAS,CAAEC,EAAK,KAAM3T,EAAK,GAAI2B,EAAK,GAC1C8R,EAAMjM,QAAQ,SAASiJ,GACrB,GAAIA,EAAI,CACN,IAAMmD,EAASnD,EAAGA,EAAGtN,OAAS,GACxBsM,EAAOI,SAASY,EAAGjN,MAAM,EAAGiN,EAAGtN,OAAS,GAAI,IAClDyM,GAAWH,EAAQiE,EAAOE,WAGrBL,IAAc3D,EAAUC,SAAS0D,EAAY,KAExD,OAAO3D,EAGT,IAAMiE,EAAa,GAEZ,SAASnM,EAASoM,GAGvB,OAFAD,EAAWC,KAAYD,EAAWC,GAAU,GAErCA,KADMD,EAAWC,GAInB,SAAS/F,EAASlN,GACvB,OAAOA,EAAQkT,WAAWlT,GAAS,GAAK,EAGnC,SAASmN,IACd,IAAMgG,EAAU5D,SAAS6D,qBAAqB,UAC9C,OAAOD,EAAQ7Q,OAAS6Q,EAAQA,EAAQ7Q,OAAS,GAAG+Q,IAAM,GAGrD,IAAMC,2BAAyB3U,OAAO2U,uBACjB3U,OAAO4U,0BACP5U,OAAO6U,6BACP,SAASC,GAAM9U,OAAO+U,WAAWD,EAAI,IAAK,MAAOlT,KAAK5B,QAErEgV,0BAAwBhV,OAAOgV,sBACjBhV,OAAOiV,yBACPjV,OAAOkV,4BACPlV,OAAOmV,cAAcvT,KAAK5B,QAE9C,SAASyO,IACd,OAAOzO,OAAOoV,WAAapV,OAAOoV,UAAUC,SAGvC,SAAS3G,IACd,OAAI1O,OAAOsV,aAAetV,OAAOsV,YAAY5G,IACpC4G,YAAY5G,MAEd6G,KAAK7G,MAIP,SAASC,EAAgB6G,EAAK3G,GACnC,IAAMzO,EAAIoV,EAAIC,QAAQ5G,GAClBzO,GAAK,GACPoV,EAAIE,OAAOtV,EAAG,GAWX,SAAS8O,EAAiByG,EAAIC,GAUnC,IAAIC,GATJD,GAAU,EAAAE,EAAA1T,SAAc,CACtB2T,QAAQ,EACRC,OAAO,EACPC,QAAS,IACTC,KAAM,QACN/G,OAAQgH,EAAA/T,QAAMgU,IACdP,QAAS,MACRD,IAEmBC,QAAUD,EAAQC,QAAUjF,SAASyF,cAAcT,EAAQM,MAEjFL,EAAQG,MAAQJ,EAAQI,OACF,IAAlBJ,EAAQI,OACVH,EAAQS,aAAa,QAAS,UAET,IAAnBV,EAAQG,QACVF,EAAQS,aAAa,cAAe,eAEtCT,EAAQnB,IAAMkB,EAAQzG,OAEtB,IAAIoH,EAAUV,EAAQW,OAElBC,EAAY1B,WAAW,WACzB2B,GAAU,EAAO,IAAIC,MAAJ,WAAqBf,EAAQK,QAA7B,0BAChBL,EAAQK,SAEPS,EAAY,SAACE,GAAyB,IAAjBpR,EAAiBU,UAAAvC,OAAA,QAAAoL,IAAA7I,UAAA,GAAAA,UAAA,GAAT,KAC/BiP,aAAasB,GACbd,EAAGiB,EAAQpR,SAGGuJ,IAAZwH,EACFA,EACGM,KAAK,kBAAMH,GAAU,KACrBI,MAAM,SAAAC,GAAA,OAAOL,GAAU,EAAOK,KAEjCL,GAAU,GAKd,IAAMM,EAAa,GAENC,uEACJC,mBAAUtB,GACfhQ,KAAKgQ,QAAUuB,EAAA/U,QAAEgM,OAAOxI,KAAKgQ,QAASA,MAGjClU,gBAAOf,GACZ,OAAIiF,KAAKgQ,QAAQwB,cAAyB,UAATzW,GAAoBqW,EAAWrT,OAAS,EAChEqT,EAAWK,SAEb,EAAAF,EAAA/U,SAAE,IAAMzB,EAAO,QAGjB2W,iBAAQC,GAER3R,KAAKgQ,QAAQwB,cAAiD,UAAjCG,EAAI,GAAGC,QAAQnQ,gBACjDkQ,EAAIE,WAAW1Q,SACfiQ,EAAWlR,KAAKyR,UAIpBN,EAAYrB,QAAU,CAAEwB,cAAc,OAEzBM,kCACX,SAAAA,IAAyB,IAAbC,EAAazR,UAAAvC,OAAA,QAAAoL,IAAA7I,UAAA,GAAAA,UAAA,GAAL,KAAK,EAAAyJ,EAAAvN,SAAAwD,KAAA8R,GACvB9R,KAAK+R,MAAQA,EACb/R,KAAKgS,SAAW,qBAGlBC,gBAAOC,EAAOnC,GAAsB,IAAlBoC,IAAkB7R,UAAAvC,OAAA,QAAAoL,IAAA7I,UAAA,KAAAA,UAAA,GAE9B8R,GAAc,IAAIzC,MAAO0C,UACzBC,EAAWF,EAAcpS,KAAKgS,SAE9BM,EAAWtS,KAAK+R,OAASO,EAAW,IACtCvC,IACAoC,GAAaD,EAAMK,kBAGrBvS,KAAKgS,SAAWI,QAITI,+BAEI,CACbnG,SACAvB,aACAoC,cACAmE,cACA7I,SACAC,aACAC,sBACApG,WACAsG,mBACAD,WACAoG,wBACAK,uBACAvG,qBACAC,MACAC,kBACAO,mBACAmJ,gBACAX,qBACAU,mCC/VF,IAoyCCE,EApyCDC,EAAA,WACA,IAAAxJ,EAAApN,EAAA2W,EAAAE,EA2BAC,EAAAC,EA3BAC,EAAA,GAAApU,EAAAoU,EAAApU,OAAAqD,EAAA+Q,EAAA/Q,OAAA5D,EAAA2U,EAAA3U,MACA4M,EAAA5Q,OAAA4Q,SACAgI,EAAA,GAAuBC,EAAA,GACvBC,EAAA,CAAiBC,eAAA,EAAAC,QAAA,EAAAC,cAAA,EAAAC,cAAA,EAAAC,QAAA,EAAAC,UAAA,EAAAC,KAAA,GACjBC,EAAA,qBACAC,EAAA,6BACAC,EAAA,0EACAC,EAAA,mBACAC,EAAA,WAGAC,EAAA,6DAGAC,EAAAhJ,EAAAyF,cAAA,SACAwD,EAAAjJ,EAAAyF,cAAA,MACAyD,EAAA,CACAC,GAAAnJ,EAAAyF,cAAA,SACA2D,MAAAJ,EAAAK,MAAAL,EAAAM,MAAAN,EACAO,GAAAN,EAAAO,GAAAP,EACAQ,IAAAzJ,EAAAyF,cAAA,QAEAiE,EAAA,8BACAC,EAAA,WACAC,EAAA,GACAC,EAAAD,EAAAC,SACAC,EAAA,GAEAC,EAAA/J,EAAAyF,cAAA,OACAuE,EAAA,CACAC,SAAA,WACAC,SAAA,WACAC,IAAA,UACAC,MAAA,YACAC,UAAA,YACAC,YAAA,cACAC,YAAA,cACAC,QAAA,UACAC,QAAA,UACAC,OAAA,SACAC,YAAA,cACAC,gBAAA,mBAEAC,EAAAxX,MAAAwX,SACA,SAAA3Z,GAAuB,OAAAA,aAAAmC,OAgBvB,SAAAiS,EAAA1T,GACA,aAAAA,EAAAkZ,OAAAlZ,GACAgY,EAAAC,EAAAla,KAAAiC,KAAA,SAGA,SAAAmZ,EAAAta,GAA8B,kBAAA6U,EAAA7U,GAC9B,SAAAua,EAAApZ,GAA8B,aAAAA,QAAAxC,OAC9B,SAAA6b,EAAArZ,GAA8B,aAAAA,KAAAsZ,UAAAtZ,EAAAuZ,cAC9B,SAAAC,EAAAxZ,GAA8B,gBAAA0T,EAAA1T,GAC9B,SAAAyZ,EAAAzZ,GACA,OAAAwZ,EAAAxZ,KAAAoZ,EAAApZ,IAAA1B,OAAAob,eAAA1Z,IAAA1B,OAAAkB,UAGA,SAAAma,EAAA3Z,GACA,IAAAmB,IAAAnB,GAAA,WAAAA,KAAAmB,OACAuS,EAAAoC,EAAApC,KAAA1T,GAEA,kBAAA0T,IAAA0F,EAAApZ,KACA,SAAA0T,GAAA,IAAAvS,GACA,iBAAAA,KAAA,GAAAA,EAAA,KAAAnB,GAOA,SAAA4Z,EAAAC,GACA,OAAAA,EAAAhJ,QAAA,WACAA,QAAA,iCACAA,QAAA,6BACAA,QAAA,UACA9L,cAIA,SAAA+U,EAAA3b,GACA,OAAAA,KAAAkY,EACAA,EAAAlY,GAAAkY,EAAAlY,GAAA,IAAA4b,OAAA,UAAA5b,EAAA,WAGA,SAAA6b,EAAA7b,EAAAU,GACA,uBAAAA,GAAAyX,EAAAsD,EAAAzb,IAAAU,IAAA,KAgBA,SAAAoW,EAAA5B,GACA,mBAAAA,EACA7R,EAAAzD,KAAAsV,EAAA4B,UACAa,EAAA9Q,IAAAqO,EAAA4G,WAAA,SAAAC,GAA+C,MAAAA,EAAAZ,SAAA,OAAAY,IAG/C,SAAAC,EAAAC,EAAAC,GACA,IAAAzc,EAAA0c,EAAAF,IAAAjZ,OAAA,EACA,IAAAvD,EAAA,EAAeA,EAAA0c,EAAS1c,IAAAwF,KAAAxF,GAAAwc,EAAAxc,GACxBwF,KAAAjC,OAAAmZ,EACAlX,KAAAiX,YAAA,GAmJA,SAAAE,EAAAC,EAAAH,GACA,aAAAA,EAAAvE,EAAA0E,GAAA1E,EAAA0E,GAAApV,OAAAiV,GAaA,SAAAI,EAAAtX,EAAAuX,EAAAC,EAAAC,GACA,OAAAzB,EAAAuB,KAAA3c,KAAAoF,EAAAwX,EAAAC,GAAAF,EAGA,SAAA5G,EAAAoG,EAAA/b,EAAAU,GACA,MAAAA,EAAAqb,EAAAW,gBAAA1c,GAAA+b,EAAApG,aAAA3V,EAAAU,GAIA,SAAAic,EAAAZ,EAAArb,GACA,IAAAyD,EAAA4X,EAAAY,WAAA,GACAC,EAAAzY,KAAA0Y,UAAAzO,EAEA,GAAA1N,IAAA0N,EAAA,OAAAwO,EAAAzY,EAAA0Y,QAAA1Y,EACAyY,EAAAzY,EAAA0Y,QAAAnc,EAAAqb,EAAAY,UAAAjc,EAWA,SAAAoc,EAAApc,GACA,IACA,OAAAA,EACA,QAAAA,GACA,SAAAA,IACA,QAAAA,EAAA,MACAA,EAAA,IAAAA,KACA,UAAiBmD,KAAAnD,GAAAiX,EAAAoF,UAAArc,GACjBA,GACAA,EACK,MAAAiR,GACL,OAAAjR,GA6lBA,OAn3BAqZ,EAAAiD,QAAA,SAAA9H,EAAAgH,GACA,IAAAA,IAAAhH,GAAA,IAAAA,EAAAiG,SAAA,SACA,IAAA8B,EAAA/H,EAAA8H,SAAA9H,EAAAgI,uBACAhI,EAAAiI,oBAAAjI,EAAAkI,kBACAlI,EAAA+H,gBACA,GAAAA,EAAA,OAAAA,EAAArd,KAAAsV,EAAAgH,GAEA,IAAA7J,EAAAzD,EAAAsG,EAAAmI,WAAAC,GAAA1O,EAIA,OAHA0O,IAAA1O,EAAAoL,GAAAuD,YAAArI,GACA7C,GAAA0H,EAAAyD,IAAA5O,EAAAsN,GAAApH,QAAAI,GACAoI,GAAAtD,EAAAyD,YAAAvI,GACA7C,GA4BAyF,EAAA,SAAA4D,GAA2B,OAAAA,EAAAhJ,QAAA,mBAAAL,EAAAqL,GAAoD,OAAAA,IAAAhX,cAAA,MAQ/EqR,EAAA,SAAA4F,GAAyB,OAAA1W,EAAArH,KAAA+d,EAAA,SAAAzP,EAAAsO,GAA+C,OAAAmB,EAAA7I,QAAA5G,IAAAsO,KA0CxEzC,EAAA6D,SAAA,SAAAC,EAAA7d,EAAA6O,GACA,IAAAoN,EAAAI,EAAAyB,EAyBA,OAtBAlF,EAAA/U,KAAAga,KAAA5B,EAAAtE,EAAA1H,EAAAyF,cAAAkG,OAAAmC,MAEA9B,IACA4B,EAAAnL,UAAAmL,IAAAnL,QAAAmG,EAAA,cACA7Y,IAAAoO,IAAApO,EAAA2Y,EAAA9U,KAAAga,IAAAjC,OAAAmC,IACA/d,KAAAmZ,IAAAnZ,EAAA,MAEA8d,EAAA3E,EAAAnZ,IACAge,UAAA,GAAAH,EACA5B,EAAAtE,EAAAsG,KAAA5a,EAAAzD,KAAAke,EAAAhC,YAAA,WACAgC,EAAAL,YAAAxY,SAIAqW,EAAAzM,KACAwN,EAAA1E,EAAAsE,GACAtE,EAAAsG,KAAApP,EAAA,SAAA7N,EAAAN,GACAsY,EAAAlE,QAAA9T,IAAA,EAAAqb,EAAArb,GAAAN,GACA2b,EAAA6B,KAAAld,EAAAN,MAIAub,GAMAlC,EAAAiC,EAAA,SAAAC,EAAAC,GACA,WAAAF,EAAAC,EAAAC,IAKAnC,EAAAoE,IAAA,SAAAhd,GACA,OAAAA,aAAA4Y,EAAAiC,GAOAjC,EAAAqE,KAAA,SAAAlC,EAAAlX,GACA,IAAAiX,EAnGA0B,EAqGA,IAAAzB,EAAA,OAAAnC,EAAAiC,IAEA,oBAAAE,EAKA,SAJAA,IAAAvV,QAIA,IAAAgS,EAAA9U,KAAAqY,GACAD,EAAAlC,EAAA6D,SAAA1B,EAAAN,OAAAmC,GAAA/Y,GAAAkX,EAAA,SAGA,IAAAlX,IAAAoJ,EAAA,OAAAuJ,EAAA3S,GAAAqJ,KAAA6N,GAEAD,EAAAlC,EAAAyD,IAAAvN,EAAAiM,OAGA,IAAAlB,EAAAkB,GAAA,OAAAvE,EAAA1H,GAAAoO,MAAAnC,GAEA,GAAAnC,EAAAoE,IAAAjC,GAAA,OAAAA,EAGA,GAAApB,EAAAoB,GA1HAyB,EA0HAzB,EAAAD,EA1H2BhV,EAAArH,KAAA+d,EAAA,SAAAzP,GAA0C,aAAAA,SA4HrE,GAAAmN,EAAAa,GACAD,EAAA,CAAAC,KAAA,UAEA,GAAAvD,EAAA9U,KAAAqY,GACAD,EAAAlC,EAAA6D,SAAA1B,EAAAvV,OAAAiV,OAAAmC,GAAA/Y,GAAAkX,EAAA,SAGA,IAAAlX,IAAAoJ,EAAA,OAAAuJ,EAAA3S,GAAAqJ,KAAA6N,GAEAD,EAAAlC,EAAAyD,IAAAvN,EAAAiM,IAGA,OAAAnC,EAAAiC,EAAAC,EAAAC,KAOAvE,EAAA,SAAAuE,EAAAlX,GACA,OAAA+U,EAAAqE,KAAAlC,EAAAlX,KAiBAyI,OAAA,SAAA3K,GACA,IAAAwb,EAAApa,EAAAb,EAAAzD,KAAA2F,UAAA,GAMA,MALA,kBAAAzC,IACAwb,EAAAxb,EACAA,EAAAoB,EAAAwS,SAEAxS,EAAAmD,QAAA,SAAAkV,IApBA,SAAA9O,EAAA3K,EAAA0L,EAAA8P,GACA,IAAAtd,KAAAwN,EACA8P,IAAAhD,EAAA9M,EAAAxN,KAAA8Z,EAAAtM,EAAAxN,MACAsa,EAAA9M,EAAAxN,MAAAsa,EAAAxY,EAAA9B,MACA8B,EAAA9B,GAAA,IACA8Z,EAAAtM,EAAAxN,MAAA8Z,EAAAhY,EAAA9B,MACA8B,EAAA9B,GAAA,IACAyM,EAAA3K,EAAA9B,GAAAwN,EAAAxN,GAAAsd,IAEA9P,EAAAxN,KAAAoN,IAAAtL,EAAA9B,GAAAwN,EAAAxN,IAW+ByM,CAAA3K,EAAAyZ,EAAA+B,KAC/Bxb,GAMAiX,EAAAyD,IAAA,SAAAtI,EAAAgH,GACA,IAAAqC,EACAC,EAAA,KAAAtC,EAAA,GACAuC,GAAAD,GAAA,KAAAtC,EAAA,GACAwC,EAAAF,GAAAC,EAAAvC,EAAA7Y,MAAA,GAAA6Y,EACAyC,EAAA/E,EAAA/V,KAAA6a,GACA,OAAAxJ,EAAA0J,gBAAAD,GAAAH,GACAD,EAAArJ,EAAA0J,eAAAF,IAAA,CAAAH,GAAA,GACA,IAAArJ,EAAAiG,UAAA,IAAAjG,EAAAiG,UAAA,KAAAjG,EAAAiG,SAAA,GACA9X,EAAAzD,KACA+e,IAAAH,GAAAtJ,EAAA2J,uBACAJ,EAAAvJ,EAAA2J,uBAAAH,GACAxJ,EAAApB,qBAAAoI,GACAhH,EAAA4J,iBAAA5C,KAQAvE,EAAAoH,SAAA9O,EAAA+O,gBAAAD,SACA,SAAAnQ,EAAAmN,GACA,OAAAnN,IAAAmN,GAAAnN,EAAAmQ,SAAAhD,IAEA,SAAAnN,EAAAmN,GACA,KAAAA,QAAAsB,aACA,GAAAtB,IAAAnN,EAAA,SACA,UA2CA+I,EAAApC,OACAoC,EAAAqD,aACArD,EAAAsD,WACAtD,EAAAmD,UACAnD,EAAA2D,gBAEA3D,EAAAsH,cAAA,SAAApd,GACA,IAAA7B,EACA,IAAAA,KAAA6B,EAAA,SACA,UAGA8V,EAAAuH,UAAA,SAAAC,GACA,IAAAC,EAAAC,OAAAF,GAAA5J,SAAA4J,EACA,aAAAA,GAAA,WAAA5J,IACA,UAAAA,GAAA4J,EAAAnc,UACAsc,MAAAF,IAAA5P,SAAA4P,KAAA,GAGAzH,EAAA4H,QAAA,SAAAC,EAAA7B,EAAAle,GACA,OAAAuY,EAAAlD,QAAAlV,KAAA+d,EAAA6B,EAAA/f,IAGAkY,EAAA8H,UAAA3H,EACAH,EAAAhR,KAAA,SAAA+U,GACA,aAAAA,EAAA,GAAAX,OAAA1Z,UAAAsF,KAAA/G,KAAA8b,IAIA/D,EAAA+H,KAAA,EACA/H,EAAAgI,QAAA,GACAhI,EAAAiI,KAAA,GACAjI,EAAAkI,KAAA,aAEAlI,EAAA9Q,IAAA,SAAAiZ,EAAArb,GACA,IAAA/D,EAAAjB,EAAAuB,EAvRA2c,EAuRAoC,EAAA,GACA,GAAAvE,EAAAsE,GACA,IAAArgB,EAAA,EAAiBA,EAAAqgB,EAAA9c,OAAqBvD,IAEtC,OADAiB,EAAA+D,EAAAqb,EAAArgB,QACAsgB,EAAA5a,KAAAzE,QAGA,IAAAM,KAAA8e,EAEA,OADApf,EAAA+D,EAAAqb,EAAA9e,QACA+e,EAAA5a,KAAAzE,GAEA,OAlSAid,EAkSAoC,GAlS2B/c,OAAA,EAAA2U,EAAAxD,GAAAvQ,OAAAD,MAAA,GAAAga,MAqS3BhG,EAAAsG,KAAA,SAAA6B,EAAArb,GACA,IAAAhF,EAAAuB,EACA,GAAAwa,EAAAsE,IACA,IAAArgB,EAAA,EAAiBA,EAAAqgB,EAAA9c,OAAqBvD,IACtC,QAAAgF,EAAA7E,KAAAkgB,EAAArgB,KAAAqgB,EAAArgB,IAAA,OAAAqgB,OAEA,IAAA9e,KAAA8e,EACA,QAAArb,EAAA7E,KAAAkgB,EAAA9e,KAAA8e,EAAA9e,IAAA,OAAA8e,EAGA,OAAAA,GAGAnI,EAAAqI,KAAA,SAAAF,EAAArb,GACA,OAAAwC,EAAArH,KAAAkgB,EAAArb,IAGApF,OAAA4gB,OAAAtI,EAAAoF,UAAAkD,KAAAxO,OAGAkG,EAAAsG,KAAA,gEAAAla,MAAA,cAAAtE,EAAAO,GACA6Z,EAAA,WAAA7Z,EAAA,KAAAA,EAAA4G,gBAKA+Q,EAAAxD,GAAA,CACA5R,YAAAwX,EAAAiC,EACAhZ,OAAA,EAIAqE,QAAA2Q,EAAA3Q,QACA6Y,OAAAlI,EAAAkI,OACA/a,KAAA6S,EAAA7S,KACAgb,KAAAnI,EAAAmI,KACApL,OAAAiD,EAAAjD,OACAD,QAAAkD,EAAAlD,QACAlR,OAAA,WACA,IAAAnE,EAAAiB,EAAAwD,EAAA,GACA,IAAAzE,EAAA,EAAiBA,EAAA8F,UAAAvC,OAAsBvD,IACvCiB,EAAA6E,UAAA9F,GACAyE,EAAAzE,GAAAsa,EAAAoE,IAAAzd,KAAA0f,UAAA1f,EAEA,OAAAkD,EAAAD,MAAAoW,EAAAoE,IAAAlZ,WAAAmb,UAAAnb,KAAAf,IAKA2C,IAAA,SAAAsN,GACA,OAAAwD,IAAA9Q,IAAA5B,KAAA,SAAAqL,EAAA7Q,GAA2C,OAAA0U,EAAAvU,KAAA0Q,EAAA7Q,EAAA6Q,OAE3CjN,MAAA,WACA,OAAAsU,EAAAtU,EAAAM,MAAAsB,KAAAM,aAGA8Y,MAAA,SAAA5Z,GAKA,OAFAkV,EAAA9V,KAAAoM,EAAAoQ,aAAApQ,EAAAqQ,KAAA7b,EAAAkT,GACA1H,EAAAsQ,iBAAA,8BAAoE9b,EAAAkT,KAAc,GAClF1S,MAEA3E,IAAA,SAAAkc,GACA,OAAAA,IAAApO,EAAA/K,EAAAzD,KAAAqF,WAAAuX,GAAA,EAAAA,IAAAvX,KAAAjC,SAEAod,QAAA,WAAwB,OAAAnb,KAAA3E,OACxBkgB,KAAA,WACA,OAAAvb,KAAAjC,QAEAoD,OAAA,WACA,OAAAnB,KAAAgZ,KAAA,WACA,MAAAhZ,KAAAoY,YACApY,KAAAoY,WAAAI,YAAAxY,SAGAgZ,KAAA,SAAAxZ,GAIA,OAHAuT,EAAAyI,MAAA7gB,KAAAqF,KAAA,SAAAqL,EAAAkM,GACA,WAAA/X,EAAA7E,KAAA0Q,EAAAkM,EAAAlM,KAEArL,MAEAgC,OAAA,SAAAiV,GACA,OAAAlB,EAAAkB,GAAAjX,KAAAyb,IAAAzb,KAAAyb,IAAAxE,IACAvE,EAAA1Q,EAAArH,KAAAqF,KAAA,SAAAiQ,GACA,OAAA6E,EAAAiD,QAAA9H,EAAAgH,OAGAyE,IAAA,SAAAzE,EAAAlX,GACA,OAAA2S,EAAAI,EAAA9S,KAAArB,OAAA+T,EAAAuE,EAAAlX,OAEA4b,GAAA,SAAA1E,GACA,OAAAjX,KAAAjC,OAAA,GAAA+W,EAAAiD,QAAA/X,KAAA,GAAAiX,IAEAwE,IAAA,SAAAxE,GACA,IAAAG,EAAA,GACA,GAAArB,EAAAkB,MAAAtc,OAAAwO,EACAnJ,KAAAgZ,KAAA,SAAAzB,GACAN,EAAAtc,KAAAqF,KAAAuX,IAAAH,EAAAlX,KAAAF,YAEA,CACA,IAAA4b,EAAA,iBAAA3E,EAAAjX,KAAAgC,OAAAiV,GACAV,EAAAU,IAAAlB,EAAAkB,EAAAhO,MAAA7K,EAAAzD,KAAAsc,GAAAvE,EAAAuE,GACAjX,KAAAoC,QAAA,SAAAiJ,GACAuQ,EAAA/L,QAAAxE,GAAA,GAAA+L,EAAAlX,KAAAmL,KAGA,OAAAqH,EAAA0E,IAEAyE,IAAA,SAAA5E,GACA,OAAAjX,KAAAgC,OAAA,WACA,OAAAoU,EAAAa,GACAvE,EAAAoH,SAAA9Z,KAAAiX,GACAvE,EAAA1S,MAAAoJ,KAAA6N,GAAAsE,UAGAO,GAAA,SAAAvE,GACA,WAAAA,EAAAvX,KAAA5B,MAAAmZ,GAAAvX,KAAA5B,MAAAmZ,KAAA,IAEAwE,MAAA,WACA,IAAA1Q,EAAArL,KAAA,GACA,OAAAqL,IAAA+K,EAAA/K,KAAAqH,EAAArH,IAEA2Q,KAAA,WACA,IAAA3Q,EAAArL,UAAAjC,OAAA,GACA,OAAAsN,IAAA+K,EAAA/K,KAAAqH,EAAArH,IAEAjC,KAAA,SAAA6N,GACA,IAAAgF,EAAAjc,KAWA,OAVAiX,EACA,iBAAAA,EACAvE,EAAAuE,GAAAjV,OAAA,WACA,IAAA8U,EAAA9W,KACA,OAAA+S,EAAAmJ,KAAAvhB,KAAAshB,EAAA,SAAAtS,GACA,OAAA+I,EAAAoH,SAAAnQ,EAAAmN,OAGA,GAAA9W,KAAAjC,OAAA2U,EAAAoC,EAAAyD,IAAAvY,KAAA,GAAAiX,IACAjX,KAAA4B,IAAA,WAAwC,OAAAkT,EAAAyD,IAAAvY,KAAAiX,KATxCvE,KAYAyJ,QAAA,SAAAlF,EAAAlX,GACA,IAAAqX,EAAA,GAAAgF,EAAA,iBAAAnF,GAAAvE,EAAAuE,GAMA,OALAjX,KAAAgZ,KAAA,SAAAqD,EAAAvF,GACA,KAAAA,KAAAsF,IAAAvM,QAAAiH,IAAA,EAAAhC,EAAAiD,QAAAjB,EAAAG,KACAH,MAAA/W,IAAAkW,EAAAa,MAAAsB,WACAtB,GAAAM,EAAAvH,QAAAiH,GAAA,GAAAM,EAAAlX,KAAA4W,KAEApE,EAAA0E,IAEAkF,QAAA,SAAArF,GAEA,IADA,IAAAsF,EAAA,GAAAnF,EAAApX,KACAoX,EAAArZ,OAAA,GACAqZ,EAAA1E,EAAA9Q,IAAAwV,EAAA,SAAAN,GACA,IAAAA,IAAAsB,cAAAnC,EAAAa,IAAAyF,EAAA1M,QAAAiH,GAAA,EAEA,OADAyF,EAAArc,KAAA4W,GACAA,IAGA,OAAAK,EAAAoF,EAAAtF,IAEAtN,OAAA,SAAAsN,GACA,OAAAE,EAAArE,EAAA9S,KAAAwc,MAAA,eAAAvF,IAEApF,SAAA,SAAAoF,GACA,OAAAE,EAAAnX,KAAA4B,IAAA,WAA0C,OAAAiQ,EAAA7R,QAAwBiX,IAElEwF,SAAA,WACA,OAAAzc,KAAA4B,IAAA,WAAkC,OAAA5B,KAAA0c,iBAAAte,EAAAzD,KAAAqF,KAAA6W,eAElC8F,SAAA,SAAA1F,GACA,OAAAE,EAAAnX,KAAA4B,IAAA,SAAApH,EAAA6Q,GACA,OAAArJ,EAAArH,KAAAkX,EAAAxG,EAAA+M,YAAA,SAAAwE,GAAoE,OAAAA,IAAAvR,MAC7D4L,IAEP4F,MAAA,WACA,OAAA7c,KAAAgZ,KAAA,WAAkChZ,KAAA+Y,UAAA,MAGlCyD,MAAA,SAAArgB,GACA,OAAAuW,EAAA9Q,IAAA5B,KAAA,SAAAqL,GAAsC,OAAAA,EAAAlP,MAEtC2gB,KAAA,WACA,OAAA9c,KAAAgZ,KAAA,WAxcA,IAAA+D,EACA9M,EAAA+M,EAwcA,QAAAhd,KAAAid,MAAAD,UAAAhd,KAAAid,MAAAD,QAAA,IACA,QAAAE,iBAAAld,KAAA,IAAAmd,iBAAA,aACAnd,KAAAid,MAAAD,SA3cAD,EA2cA/c,KAAA+c,SAzcA/J,EAAA+J,KACA9M,EAAAjF,EAAAyF,cAAAsM,GACA/R,EAAAqQ,KAAA/C,YAAArI,GACA+M,EAAAE,iBAAAjN,EAAA,IAAAkN,iBAAA,WACAlN,EAAAmI,WAAAI,YAAAvI,GACA,QAAA+M,MAAA,SACAhK,EAAA+J,GAAAC,GAEAhK,EAAA+J,QAocAK,YAAA,SAAAC,GACA,OAAArd,KAAAsd,OAAAD,GAAAlc,UAEAoc,KAAA,SAAAC,GACA,IAAAC,EAAA1H,EAAAyH,GACA,GAAAxd,KAAA,KAAAyd,EACA,IAAAzG,EAAAtE,EAAA8K,GAAAniB,IAAA,GACAqiB,EAAA1G,EAAAoB,YAAApY,KAAAjC,OAAA,EAEA,OAAAiC,KAAAgZ,KAAA,SAAAnX,GACA6Q,EAAA1S,MAAA2d,QACAF,EAAAD,EAAA7iB,KAAAqF,KAAA6B,GACA6b,EAAA1G,EAAA4G,WAAA,GAAA5G,MAIA2G,QAAA,SAAAH,GACA,GAAAxd,KAAA,IAEA,IAAA6R,EAEA,IAHAa,EAAA1S,KAAA,IAAAsd,OAAAE,EAAA9K,EAAA8K,KAGA3L,EAAA2L,EAAA3L,YAAA9T,QAAAyf,EAAA3L,EAAAkK,QACArJ,EAAA8K,GAAAK,OAAA7d,MAEA,OAAAA,MAEA8d,UAAA,SAAAN,GACA,IAAAC,EAAA1H,EAAAyH,GACA,OAAAxd,KAAAgZ,KAAA,SAAAnX,GACA,IAAA9E,EAAA2V,EAAA1S,MAAAyc,EAAA1f,EAAA0f,WACAzF,EAAAyG,EAAAD,EAAA7iB,KAAAqF,KAAA6B,GAAA2b,EACAf,EAAA1e,OAAA0e,EAAAkB,QAAA3G,GAAAja,EAAA8gB,OAAA7G,MAGA+G,OAAA,WAIA,OAHA/d,KAAA2J,SAAAqP,KAAA,WACAtG,EAAA1S,MAAAod,YAAA1K,EAAA1S,MAAA6R,cAEA7R,MAEA0d,MAAA,WACA,OAAA1d,KAAA4B,IAAA,WAAiC,OAAA5B,KAAA4d,WAAA,MAEjCI,KAAA,WACA,OAAAhe,KAAAie,IAAA,mBAEAC,OAAA,SAAAC,GACA,OAAAne,KAAAgZ,KAAA,WACA,IAAA3N,EAAAqH,EAAA1S,OACSme,IAAAhV,EAAA,QAAAkC,EAAA4S,IAAA,WAAAE,GAAA9S,EAAAyR,OAAAzR,EAAA2S,UAGTI,KAAA,SAAAnH,GAA6B,OAAAvE,EAAA1S,KAAAwc,MAAA,2BAAAxa,OAAAiV,GAAA,MAC7BoH,KAAA,SAAApH,GAA6B,OAAAvE,EAAA1S,KAAAwc,MAAA,uBAAAxa,OAAAiV,GAAA,MAC7B2B,KAAA,SAAAA,GACA,YAAAtY,UACAN,KAAAgZ,KAAA,SAAAzB,GACA,IAAA+G,EAAAte,KAAA+Y,UACArG,EAAA1S,MAAA6c,QAAAgB,OAAAxG,EAAArX,KAAA4Y,EAAArB,EAAA+G,MAEA,KAAAte,UAAA,GAAA+Y,UAAA,MAEAwF,KAAA,SAAAA,GACA,YAAAje,UACAN,KAAAgZ,KAAA,SAAAzB,GACA,IAAAiH,EAAAnH,EAAArX,KAAAue,EAAAhH,EAAAvX,KAAAye,aACAze,KAAAye,YAAA,MAAAD,EAAA,MAAAA,IAEA,KAAAxe,UAAAwc,MAAA,eAAA1a,KAAA,UAEAmX,KAAA,SAAAle,EAAAU,GACA,IAAAuV,EACA,uBAAAjW,GAAA,KAAAuF,UAEAN,KAAAgZ,KAAA,SAAAzB,GACA,OAAAvX,KAAAkW,SACA,GAAAE,EAAArb,GAAA,IAAAgB,KAAAhB,EAAA2V,EAAA1Q,KAAAjE,EAAAhB,EAAAgB,SACA2U,EAAA1Q,KAAAjF,EAAAsc,EAAArX,KAAAvE,EAAA8b,EAAAvX,KAAA0e,aAAA3jB,OAJA,KAAAiF,MAAA,GAAAA,KAAA,GAAAkW,UAAA,OAAAlF,EAAAhR,KAAA,GAAA0e,aAAA3jB,IAAAiW,EAAA7H,GAOAwV,WAAA,SAAA5jB,GACA,OAAAiF,KAAAgZ,KAAA,WAAkC,IAAAhZ,KAAAkW,UAAAnb,EAAA+D,MAAA,KAAAsD,QAAA,SAAAwc,GAClClO,EAAA1Q,KAAA4e,IACO5e,SAEPwJ,KAAA,SAAAzO,EAAAU,GAEA,OADAV,EAAAia,EAAAja,MACA,KAAAuF,UACAN,KAAAgZ,KAAA,SAAAzB,GACAvX,KAAAjF,GAAAsc,EAAArX,KAAAvE,EAAA8b,EAAAvX,KAAAjF,MAEAiF,KAAA,IAAAA,KAAA,GAAAjF,IAEA8jB,WAAA,SAAA9jB,GAEA,OADAA,EAAAia,EAAAja,MACAiF,KAAAgZ,KAAA,kBAAkChZ,KAAAjF,MAElC+jB,KAAA,SAAA/jB,EAAAU,GACA,IAAAsjB,EAAA,QAAAhkB,EAAA0S,QAAAqG,EAAA,OAAAnS,cAEAmd,EAAA,KAAAxe,UACAN,KAAAiZ,KAAA8F,EAAAtjB,GACAuE,KAAAiZ,KAAA8F,GAEA,cAAAD,EAAAjH,EAAAiH,GAAA3V,GAEA+Q,IAAA,SAAAze,GACA,YAAA6E,WACA,MAAA7E,MAAA,IACAuE,KAAAgZ,KAAA,SAAAzB,GACAvX,KAAAvE,MAAA4b,EAAArX,KAAAvE,EAAA8b,EAAAvX,KAAAvE,UAGAuE,KAAA,KAAAA,KAAA,GAAAgf,SACAtM,EAAA1S,KAAA,IAAAoJ,KAAA,UAAApH,OAAA,WAAuD,OAAAhC,KAAAif,WAAuBzC,MAAA,SAC9Exc,KAAA,GAAAvE,QAGAyjB,OAAA,SAAAC,GACA,GAAAA,EAAA,OAAAnf,KAAAgZ,KAAA,SAAAnX,GACA,IAAAoa,EAAAvJ,EAAA1S,MACAof,EAAA/H,EAAArX,KAAAmf,EAAAtd,EAAAoa,EAAAiD,UACAG,EAAApD,EAAAqD,eAAAJ,SACAphB,EAAA,CACAyhB,IAAAH,EAAAG,IAAAF,EAAAE,IACAC,KAAAJ,EAAAI,KAAAH,EAAAG,MAGA,UAAAvD,EAAAgC,IAAA,cAAAngB,EAAA,qBACAme,EAAAgC,IAAAngB,KAEA,IAAAkC,KAAAjC,OAAA,YACA,GAAAiN,EAAA+O,kBAAA/Z,KAAA,KAAA0S,EAAAoH,SAAA9O,EAAA+O,gBAAA/Z,KAAA,IACA,OAAgBuf,IAAA,EAAAC,KAAA,GAChB,IAAA5iB,EAAAoD,KAAA,GAAAyf,wBACA,OACAD,KAAA5iB,EAAA4iB,KAAAplB,OAAAslB,YACAH,IAAA3iB,EAAA2iB,IAAAnlB,OAAAulB,YACAC,MAAAC,KAAAC,MAAAljB,EAAAgjB,OACAG,OAAAF,KAAAC,MAAAljB,EAAAmjB,UAGA9B,IAAA,SAAA9hB,EAAAV,GACA,GAAA6E,UAAAvC,OAAA,GACA,IAAAkS,EAAAjQ,KAAA,GACA,oBAAA7D,EAAA,CACA,IAAA8T,EAAA,OACA,OAAAA,EAAAgN,MAAApK,EAAA1W,KAAA+gB,iBAAAjN,EAAA,IAAAkN,iBAAAhhB,GACS,GAAA0Z,EAAA1Z,GAAA,CACT,IAAA8T,EAAA,OACA,IAAAnS,EAAA,GACAkiB,EAAA9C,iBAAAjN,EAAA,IAIA,OAHAyC,EAAAsG,KAAA7c,EAAA,SAAAkgB,EAAA7S,GACA1L,EAAA0L,GAAAyG,EAAAgN,MAAApK,EAAArJ,KAAAwW,EAAA7C,iBAAA3T,KAEA1L,GAIA,IAAAmgB,EAAA,GACA,aAAA3N,EAAAnU,GACAV,GAAA,IAAAA,EAGAwiB,EAAAzH,EAAAra,GAAA,IAAAya,EAAAza,EAAAV,GAFAuE,KAAAgZ,KAAA,WAA+BhZ,KAAAid,MAAAgD,eAAAzJ,EAAAra,WAI/B,IAAAJ,KAAAI,EACAA,EAAAJ,IAAA,IAAAI,EAAAJ,GAGAkiB,GAAAzH,EAAAza,GAAA,IAAA6a,EAAA7a,EAAAI,EAAAJ,IAAA,IAFAiE,KAAAgZ,KAAA,WAAiChZ,KAAAid,MAAAgD,eAAAzJ,EAAAza,MAKjC,OAAAiE,KAAAgZ,KAAA,WAAkChZ,KAAAid,MAAAiD,SAAA,IAAyBjC,KAE3Dpc,MAAA,SAAAoO,GACA,OAAAA,EAAAjQ,KAAA6P,QAAA6C,EAAAzC,GAAA,IAAAjQ,KAAA2J,SAAAkI,WAAAhC,QAAA7P,KAAA,KAEAmgB,SAAA,SAAAplB,GACA,QAAAA,GACAgY,EAAAmJ,KAAAvhB,KAAAqF,KAAA,SAAAqL,GACA,OAAArL,KAAApB,KAAA8Y,EAAArM,KACOqL,EAAA3b,KAEPqlB,SAAA,SAAArlB,GACA,OAAAA,EACAiF,KAAAgZ,KAAA,SAAAzB,GACA,iBAAAvX,KAAA,CACA4S,EAAA,GACA,IAAAyN,EAAA3I,EAAA1X,MAAAqX,EAAArX,KAAAjF,EAAAwc,EAAA8I,GACAvhB,MAAA,QAAAsD,QAAA,SAAAlD,GACAwT,EAAA1S,MAAAmgB,SAAAjhB,IAAA0T,EAAA1S,KAAAhB,IACSc,MACT4S,EAAA7U,QAAA2Z,EAAA1X,KAAAqgB,KAAA,QAAAzN,EAAA9Q,KAAA,SARA9B,MAWAsgB,YAAA,SAAAvlB,GACA,OAAAiF,KAAAgZ,KAAA,SAAAzB,GACA,iBAAAvX,KAAA,CACA,GAAAjF,IAAAoO,EAAA,OAAAuO,EAAA1X,KAAA,IACA4S,EAAA8E,EAAA1X,MACAqX,EAAArX,KAAAjF,EAAAwc,EAAA3E,GAAA9T,MAAA,QAAAsD,QAAA,SAAAlD,GACA0T,IAAAnF,QAAAiJ,EAAAxX,GAAA,OAEAwY,EAAA1X,KAAA4S,EAAAlR,YAGA6e,YAAA,SAAAxlB,EAAAylB,GACA,OAAAzlB,EACAiF,KAAAgZ,KAAA,SAAAzB,GACA,IAAA0E,EAAAvJ,EAAA1S,MAAAqX,EAAArX,KAAAjF,EAAAwc,EAAAG,EAAA1X,OACAlB,MAAA,QAAAsD,QAAA,SAAAlD,IACAshB,IAAArX,GAAA8S,EAAAkE,SAAAjhB,GAAAshB,GACAvE,EAAAmE,SAAAlhB,GAAA+c,EAAAqE,YAAAphB,OALAc,MASAygB,UAAA,SAAAhlB,GACA,GAAAuE,KAAAjC,OAAA,CACA,IAAA2iB,EAAA,cAAA1gB,KAAA,GACA,OAAAvE,IAAA0N,EAAAuX,EAAA1gB,KAAA,GAAAygB,UAAAzgB,KAAA,GAAA2f,YACA3f,KAAAgZ,KAAA0H,EACA,WAAmB1gB,KAAAygB,UAAAhlB,GACnB,WAAmBuE,KAAA2gB,SAAA3gB,KAAA4gB,QAAAnlB,OAEnBolB,WAAA,SAAAplB,GACA,GAAAuE,KAAAjC,OAAA,CACA,IAAA+iB,EAAA,eAAA9gB,KAAA,GACA,OAAAvE,IAAA0N,EAAA2X,EAAA9gB,KAAA,GAAA6gB,WAAA7gB,KAAA,GAAA0f,YACA1f,KAAAgZ,KAAA8H,EACA,WAAmB9gB,KAAA6gB,WAAAplB,GACnB,WAAmBuE,KAAA2gB,SAAAllB,EAAAuE,KAAA+gB,aAEnBC,SAAA,WACA,GAAAhhB,KAAAjC,OAAA,CAEA,IAAAwc,EAAAva,KAAA,GAEAsf,EAAAtf,KAAAsf,eAEAJ,EAAAlf,KAAAkf,SACAG,EAAAxL,EAAAjV,KAAA0gB,EAAA,GAAAvC,UAAA,CAAoEwC,IAAA,EAAAC,KAAA,GAAkBF,EAAAJ,SAatF,OARAA,EAAAK,KAAA5Q,WAAA+D,EAAA6H,GAAA0D,IAAA,kBACAiB,EAAAM,MAAA7Q,WAAA+D,EAAA6H,GAAA0D,IAAA,mBAGAoB,EAAAE,KAAA5Q,WAAA+D,EAAA4M,EAAA,IAAArB,IAAA,wBACAoB,EAAAG,MAAA7Q,WAAA+D,EAAA4M,EAAA,IAAArB,IAAA,yBAGA,CACAsB,IAAAL,EAAAK,IAAAF,EAAAE,IACAC,KAAAN,EAAAM,KAAAH,EAAAG,QAGAF,aAAA,WACA,OAAAtf,KAAA4B,IAAA,WAEA,IADA,IAAA+H,EAAA3J,KAAAsf,cAAAtU,EAAAqQ,KACA1R,IAAAkK,EAAAjV,KAAA+K,EAAAoT,WAAA,UAAArK,EAAA/I,GAAAsU,IAAA,aACAtU,IAAA2V,aACA,OAAA3V,MAMA+I,EAAAxD,GAAA+R,OAAAvO,EAAAxD,GAAA/N,OAGG,mBAAAiB,QAAA,SAAA8e,GACH,IAAAC,EACAD,EAAAzT,QAAA,aAAA7S,GAAyC,OAAAA,EAAA,GAAA6G,gBAEzCiR,EAAAxD,GAAAgS,GAAA,SAAAzlB,GACA,IAAAyjB,EAAA7T,EAAArL,KAAA,GACA,OAAAvE,IAAA0N,EAAA6M,EAAA3K,KAAA,QAAA8V,GACAlL,EAAA5K,KAAA0O,gBAAA,SAAAoH,IACAjC,EAAAlf,KAAAkf,aAAAgC,GACAlhB,KAAAgZ,KAAA,SAAAzB,IACAlM,EAAAqH,EAAA1S,OACAie,IAAAiD,EAAA7J,EAAArX,KAAAvE,EAAA8b,EAAAlM,EAAA6V,YAr0BA,sCAk1BA9e,QAAA,SAAAgf,EAAAC,GACA,IAAAC,EAAAD,EAAA,EAEA3O,EAAAxD,GAAAkS,GAAA,WAEA,IAAAG,EAcA5X,EAdAyN,EAAA1E,EAAA9Q,IAAAtB,UAAA,SAAAgX,GACA,IAAA1H,EAAA,GAEA,gBADA2R,EAAAjR,EAAAgH,KAEAA,EAAAlV,QAAA,SAAAiJ,GACA,OAAAA,EAAA6K,WAAA/M,EAAAyG,EAAA1P,KAAAmL,GACAqH,EAAAoC,MAAAoE,IAAA7N,GAAAuE,IAAAjR,OAAA0M,EAAAhQ,YACAuU,IAAAjR,OAAAmW,EAAA6D,SAAAtN,OAEAuE,GAEA,UAAA2R,GAAA,MAAAjK,EACAA,EAAAxC,EAAA6D,SAAArB,KAEAkK,EAAAxhB,KAAAjC,OAAA,EACA,OAAAqZ,EAAArZ,OAAA,EAAAiC,KAEAA,KAAAgZ,KAAA,SAAAqD,EAAAxe,GACA8L,EAAA2X,EAAAzjB,IAAAua,WAGAva,EAAA,GAAAwjB,EAAAxjB,EAAA4jB,YACA,GAAAJ,EAAAxjB,EAAA6jB,WACA,GAAAL,EAAAxjB,EACA,KAEA,IAAA8jB,EAAAjP,EAAAoH,SAAA9O,EAAA+O,gBAAApQ,GAEAyN,EAAAhV,QAAA,SAAA0U,GACA,GAAA0K,EAAA1K,IAAA8G,WAAA,QACA,IAAAjU,EAAA,OAAA+I,EAAAoE,GAAA3V,SAEAwI,EAAAiY,aAAA9K,EAAAjZ,GACA8jB,GA9CA,SAAAE,EAAA/K,EAAAgL,GACAA,EAAAhL,GACA,QAAAtc,EAAA,EAAA0c,EAAAJ,EAAAD,WAAA9Y,OAAiDvD,EAAA0c,EAAS1c,IAC1DqnB,EAAA/K,EAAAD,WAAArc,GAAAsnB,GA2CAD,CAAA/K,EAAA,SAAAzL,GACA,WAAAA,EAAA0R,UAAA,WAAA1R,EAAA0R,SAAAtb,eACA4J,EAAAiF,MAAA,oBAAAjF,EAAAiF,MAAAjF,EAAAyD,KAAA,CACA,IAAAjR,EAAAwN,EAAA0W,cAAA1W,EAAA0W,cAAAC,YAAA5nB,OACAyD,EAAA,KAAAlD,KAAAkD,EAAAwN,EAAA0N,mBAWArG,EAAAxD,GAAAoS,EAAAF,EAAA,eAAAC,EAAA,4BAAAzI,GAEA,OADAlG,EAAAkG,GAAAwI,GAAAphB,MACAA,QAIA8U,EAAAiC,EAAA3a,UAAA2a,EAAA3a,UAAAsW,EAAAxD,GAGA4F,EAAAhC,OACAgC,EAAA+C,mBACAnF,EAAAoC,QAEApC,EAl6BA,GAq6BAtY,OAAAuY,aACAxJ,IAAA/O,OAAAsY,IAAAtY,OAAAsY,EAAAC,GAEC,SAAAD,GACD,IAEA3W,EACAhB,EAHAknB,GAAA,IAAAtS,KACA3E,EAAA5Q,OAAA4Q,SAGAkX,EAAA,sDACAC,EAAA,qCACAC,EAAA,8BACAC,EAAA,mBACAC,EAAA,YACAC,EAAA,QACAC,EAAAxX,EAAAyF,cAAA,KAYA,SAAAgS,EAAAC,EAAA3iB,EAAAwB,EAAAud,GACA,GAAA4D,EAAAC,OAAA,OARA,SAAA5iB,EAAAwB,EAAAud,GACA,IAAA5M,EAAAQ,EAAAkQ,MAAArhB,GAEA,OADAmR,EAAA3S,GAAAa,QAAAsR,EAAA4M,IACA5M,EAAA2Q,qBAKAC,CAAA/iB,GAAAiL,EAAAzJ,EAAAud,GAcA,SAAAiE,EAAAC,EAAAN,GACA,IAAA3iB,EAAA2iB,EAAA3iB,QACA,QAAA2iB,EAAAO,WAAAtoB,KAAAoF,EAAAijB,EAAAN,KACA,IAAAD,EAAAC,EAAA3iB,EAAA,kBAAAijB,EAAAN,IACA,SAEAD,EAAAC,EAAA3iB,EAAA,YAAAijB,EAAAN,IAEA,SAAAQ,EAAApE,EAAAkE,EAAAN,EAAAS,GACA,IAAApjB,EAAA2iB,EAAA3iB,QACA2iB,EAAAU,QAAAzoB,KAAAoF,EAAA+e,EADA,UACAkE,GACAG,KAAAE,YAAAtjB,EAAA,CAAA+e,EAFA,UAEAkE,IACAP,EAAAC,EAAA3iB,EAAA,eAAAijB,EAAAN,EAAA5D,IACAwE,EAJA,UAIAN,EAAAN,GAGA,SAAAa,EAAA3jB,EAAA0Q,EAAA0S,EAAAN,EAAAS,GACA,IAAApjB,EAAA2iB,EAAA3iB,QACA2iB,EAAA9iB,MAAAjF,KAAAoF,EAAAijB,EAAA1S,EAAA1Q,GACAujB,KAAAK,WAAAzjB,EAAA,CAAAijB,EAAA1S,EAAA1Q,IACA6iB,EAAAC,EAAA3iB,EAAA,aAAAijB,EAAAN,EAAA9iB,GAAA0Q,IACAgT,EAAAhT,EAAA0S,EAAAN,GAGA,SAAAY,EAAAG,EAAAT,EAAAN,GACA,IAAA3iB,EAAA2iB,EAAA3iB,QACA2iB,EAAAgB,SAAA/oB,KAAAoF,EAAAijB,EAAAS,GACAhB,EAAAC,EAAA3iB,EAAA,gBAAAijB,EAAAN,IAhCA,SAAAA,GACAA,EAAAC,WAAAjQ,EAAAiR,QAAAlB,EAAAC,EAAA,iBAgCAkB,CAAAlB,GAUA,SAAA7F,KAwGA,SAAAgH,EAAAC,EAAAlW,GACA,UAAAA,EAAAkW,GACAA,EAAA,IAAAlW,GAAAH,QAAA,YAAiD,KA8HjD,SAAAsW,EAAAD,EAAAhF,EAAAsE,EAAAY,GAGA,OAFAtR,EAAAqD,WAAA+I,KAAAkF,EAAAZ,IAAAtE,SAAA3V,GACAuJ,EAAAqD,WAAAqN,KAAAY,EAAAZ,SAAAja,GACA,CACA2a,MACAhF,OACAsE,UACAY,YA9SAxB,EAAAyB,KAAA7pB,OAAAyT,SAAAoW,KAeAvR,EAAAiR,OAAA,EAkDAjR,EAAAwR,UAAA,SAAAlU,EAAAmT,GACA,cAAAnT,GAAA,OAAA0C,EAAAyR,KAAAnU,GAEA,IAKAoU,EAI4BC,EAT5BC,EAAAtU,EAAAuU,cACAC,GAAA9R,EAAAqD,WAAAuO,GACAA,QAAA,QAAArC,IACAwC,EAAAzZ,EAAAyF,cAAA,UACAiU,EAAAtqB,OAAAoqB,GAEAG,EAAA,SAAAC,GACAlS,EAAA+R,GAAAI,eAAA,QAAAD,GAAA,UAEA5B,EAAA,CAAa2B,SAqBb,OAnBAxB,KAAAxS,QAAAqS,GAEAtQ,EAAA+R,GAAA3kB,GAAA,sBAAA4M,EAAAkY,GACArV,aAAA8U,GACA3R,EAAA+R,GAAApkB,MAAAc,SAEA,SAAAuL,EAAA4D,MAAA8T,EAGAlB,EAAAkB,EAAA,GAAApB,EAAAhT,EAAAmT,GAFAI,EAAA,KAAAqB,GAAA,QAAA5B,EAAAhT,EAAAmT,GAKA/oB,OAAAoqB,GAAAE,EACAN,GAAA1R,EAAAqD,WAAA2O,IACAA,EAAAN,EAAA,IAEAM,EAAAN,OAAAjb,KAGA,IAAA4Z,EAAAC,EAAAhT,IACA2U,EAAA,SACA3B,IAGA5oB,OAAAoqB,GAAA,WACAJ,EAAA9jB,WAGAmkB,EAAA3V,IAAAkB,EAAA8T,IAAArW,QAAA,mBAAA+W,GACAxZ,EAAA8Z,KAAAxM,YAAAmM,GAEAzU,EAAAK,QAAA,IAAAgU,EAAAlV,WAAA,WACAwV,EAAA,YACK3U,EAAAK,UAEL2S,IAGAtQ,EAAAqS,aAAA,CAEAzU,KAAA,MAEA2S,WAAApG,EAEAuG,QAAAvG,EAEAjd,MAAAid,EAEA6G,SAAA7G,EAEA9c,QAAA,KAEA4iB,QAAA,EAEAK,IAAA,WACA,WAAA5oB,OAAA4qB,gBAIAC,QAAA,CACAR,OAAA,oEACAS,KAAA7C,EACA8C,IAAA,4BACAvM,KAAA0J,EACA/D,KAAA,cAGA6G,aAAA,EAEA/U,QAAA,EAEAgV,aAAA,EAEAC,OAAA,EAIAC,WAAA1I,GAwBAnK,EAAAyR,KAAA,SAAAnU,GACA,IAEAwV,EAAAC,EAFA/C,EAAAhQ,EAAAlK,OAAA,GAA8BwH,GAAA,IAC9BmT,EAAAzQ,EAAAgT,UAAAhT,EAAAgT,WAEA,IAAA3pB,KAAA2W,EAAAqS,kBAAA5b,IAAAuZ,EAAA3mB,KAAA2mB,EAAA3mB,GAAA2W,EAAAqS,aAAAhpB,KAvKA,SAAA2mB,GACAA,EAAAC,QAAA,GAAAjQ,EAAAiR,UAAAlB,EAAAC,EAAA,kBAwKAiD,CAAAjD,GAEAA,EAAA0C,eACAI,EAAAxa,EAAAyF,cAAA,MACAwT,KAAAvB,EAAAoB,IAEA0B,EAAAvB,KAAAuB,EAAAvB,KACAvB,EAAA0C,YAAA5C,EAAAoD,SAAA,KAAApD,EAAAqD,MAAAL,EAAAI,SAAA,KAAAJ,EAAAK,MAGAnD,EAAAoB,MAAApB,EAAAoB,IAAA1pB,OAAAyT,SAAAgH,aACA4Q,EAAA/C,EAAAoB,IAAAjU,QAAA,WAAA6S,EAAAoB,IAAApB,EAAAoB,IAAA1lB,MAAA,EAAAqnB,IAxBA,SAAAzV,GACAA,EAAAqV,aAAArV,EAAA8O,MAAA,UAAApM,EAAApC,KAAAN,EAAA8O,QACA9O,EAAA8O,KAAApM,EAAAoT,MAAA9V,EAAA8O,KAAA9O,EAAA+V,eACA/V,EAAA8O,MAAA9O,EAAAM,MAAA,OAAAN,EAAAM,KAAA7O,eAAA,SAAAuO,EAAAgU,WACAhU,EAAA8T,IAAAD,EAAA7T,EAAA8T,IAAA9T,EAAA8O,MAAA9O,EAAA8O,UAAA3V,GAqBA6c,CAAAtD,GAEA,IAAAsB,EAAAtB,EAAAsB,SAAAiC,EAAA,UAAArnB,KAAA8jB,EAAAoB,KASA,GARAmC,IAAAjC,EAAA,UAEA,IAAAtB,EAAA4C,QACAtV,IAAA,IAAAA,EAAAsV,OACA,UAAAtB,GAAA,SAAAA,KAEAtB,EAAAoB,IAAAD,EAAAnB,EAAAoB,IAAA,KAAAnU,KAAA7G,QAEA,SAAAkb,EAIA,OAHAiC,IACAvD,EAAAoB,IAAAD,EAAAnB,EAAAoB,IACApB,EAAAwD,MAAAxD,EAAAwD,MAAA,UAAAxD,EAAAwD,MAAA,kBACAxT,EAAAwR,UAAAxB,EAAAS,GAGA,IAMAkB,EANA8B,EAAAzD,EAAAuC,QAAAjB,GACAoC,EAAA,GACAC,EAAA,SAAAtrB,EAAAU,GAA2C2qB,EAAArrB,EAAA4G,eAAA,CAAA5G,EAAAU,IAC3CmqB,EAAA,iBAAAhnB,KAAA8jB,EAAAoB,KAAAnN,OAAAmC,GAAA1e,OAAAyT,SAAA+X,SACA5C,EAAAN,EAAAM,MACAsD,EAAAtD,EAAAuD,iBAcA,GAXApD,KAAAxS,QAAAqS,GAEAN,EAAA0C,aAAAiB,EAAA,qCACAA,EAAA,SAAAF,GAAA,QACAA,EAAAzD,EAAA8D,UAAAL,KACAA,EAAAtW,QAAA,UAAAsW,IAAArnB,MAAA,WACAkkB,EAAAyD,kBAAAzD,EAAAyD,iBAAAN,KAEAzD,EAAAgE,cAAA,IAAAhE,EAAAgE,aAAAhE,EAAA5D,MAAA,OAAA4D,EAAApS,KAAA7O,gBACA4kB,EAAA,eAAA3D,EAAAgE,aAAA,qCAEAhE,EAAA0D,QAAA,IAAArrB,KAAA2nB,EAAA0D,QAAAC,EAAAtrB,EAAA2nB,EAAA0D,QAAArrB,IAmCA,GAlCAioB,EAAAuD,iBAAAF,EAEArD,EAAA2D,mBAAA,WACA,MAAA3D,EAAA5H,WAAA,CACA4H,EAAA2D,mBAAA9J,EACAtN,aAAA8U,GACA,IAAArT,EAAApR,GAAA,EACA,GAAAojB,EAAAS,QAAA,KAAAT,EAAAS,OAAA,UAAAT,EAAAS,QAAA,GAAAT,EAAAS,QAAA,SAAAmC,EAAA,CAGA,GAFA5B,OArFAmC,EAqFAzD,EAAA8D,UAAAxD,EAAA4D,kBAAA,mBApFAT,IAAArnB,MAAA,IAAkC,OAClCqnB,OAAA7D,EAAA,OACA6D,GAAA9D,EAAA,OACAF,EAAAvjB,KAAAunB,GAAA,SACA/D,EAAAxjB,KAAAunB,IAAA,gBAkFA,eAAAnD,EAAA6D,cAAA,QAAA7D,EAAA6D,aACA7V,EAAAgS,EAAA8D,aACA,CACA9V,EAAAgS,EAAA+D,aAEA,IAGA/V,EAtMA,SAAA8N,EAAAxO,EAAAoS,GACA,GAAAA,EAAA6C,YAAA1I,EAAA,OAAAiC,EACA,IAAA/e,EAAA2iB,EAAA3iB,QACA,OAAA2iB,EAAA6C,WAAA5qB,KAAAoF,EAAA+e,EAAAxO,GAmMA0W,CAAAhW,EAAAgT,EAAAtB,GACA,UAAAsB,GAAA,EAAAiD,MAAAjW,GACA,OAAAgT,EAAAhT,EAAAgS,EAAAkE,YACA,QAAAlD,IAAAhT,EAAAuR,EAAA3jB,KAAAoS,GAAA,KAAA0B,EAAAoF,UAAA9G,IACa,MAAAtE,GAAY9M,EAAA8M,EAEzB,GAAA9M,EAAA,OAAA2jB,EAAA3jB,EAAA,cAAAojB,EAAAN,EAAAS,GAGAD,EAAAlS,EAAAgS,EAAAN,EAAAS,QAEAI,EAAAP,EAAAmE,YAAA,KAAAnE,EAAAS,OAAA,gBAAAT,EAAAN,EAAAS,GA1GA,IAAAgD,IA+GA,IAAApD,EAAAC,EAAAN,GAGA,OAFAM,EAAA2B,QACApB,EAAA,aAAAP,EAAAN,EAAAS,GACAH,EAGA,IAAAoE,IAAA,UAAA1E,MAAA0E,MAGA,GAFApE,EAAAqE,KAAA3E,EAAApS,KAAAoS,EAAAoB,IAAAsD,EAAA1E,EAAA4E,SAAA5E,EAAA6E,UAEA7E,EAAA8E,UAAA,IAAAzsB,KAAA2nB,EAAA8E,UAAAxE,EAAAjoB,GAAA2nB,EAAA8E,UAAAzsB,GAEA,IAAAA,KAAAqrB,EAAAE,EAAA5nB,MAAAskB,EAAAoD,EAAArrB,IAUA,OARA2nB,EAAArS,QAAA,IAAAgU,EAAAlV,WAAA,WACA6T,EAAA2D,mBAAA9J,EACAmG,EAAA2B,QACApB,EAAA,eAAAP,EAAAN,EAAAS,IACOT,EAAArS,UAGP2S,EAAAyE,KAAA/E,EAAA5D,KAAA4D,EAAA5D,KAAA,MACAkE,GAeAtQ,EAAArX,IAAA,WACA,OAAAqX,EAAAyR,KAAAJ,EAAArlB,MAAA,KAAA4B,aAGAoS,EAAAgV,KAAA,WACA,IAAA1X,EAAA+T,EAAArlB,MAAA,KAAA4B,WAEA,OADA0P,EAAAM,KAAA,OACAoC,EAAAyR,KAAAnU,IAGA0C,EAAAiV,QAAA,WACA,IAAA3X,EAAA+T,EAAArlB,MAAA,KAAA4B,WAEA,OADA0P,EAAAgU,SAAA,OACAtR,EAAAyR,KAAAnU,IAGA0C,EAAAxD,GAAA0Y,KAAA,SAAA9D,EAAAhF,EAAAsE,GACA,IAAApjB,KAAAjC,OAAA,OAAAiC,KACA,IAAAiX,EAAAla,EAAAiD,KAAAqO,EAAAyV,EAAAhlB,MAAA,MACAkR,EAAA+T,EAAAD,EAAAhF,EAAAsE,GACA5jB,EAAAwQ,EAAAoT,QASA,OARA/U,EAAAtQ,OAAA,IAAAiS,EAAA8T,IAAAzV,EAAA,GAAA4I,EAAA5I,EAAA,IACA2B,EAAAoT,QAAA,SAAA0D,GACA/pB,EAAA6b,KAAA3B,EACAvE,EAAA,SAAAkG,KAAAkO,EAAArZ,QAAAyU,EAAA,KAAA9Y,KAAA6N,GACA6P,GACAtnB,KAAAd,MAAA3B,EAAAuD,YAEAoS,EAAAyR,KAAAnU,GACAhQ,MAGA,IAAA6nB,EAAAC,mBAiBApV,EAAAoT,MAAA,SAAAlpB,EAAAmpB,GACA,IAAArY,EAAA,GAOA,OANAA,EAAAgO,IAAA,SAAA3f,EAAAN,GACAiX,EAAAqD,WAAAta,YACA,MAAAA,MAAA,IACAuE,KAAAE,KAAA2nB,EAAA9rB,GAAA,IAAA8rB,EAAApsB,KApBA,SAAAssB,EAAAra,EAAA9Q,EAAAmpB,EAAAiC,GACA,IAAA1X,EAAAoI,EAAAhG,EAAAmD,QAAAjZ,GAAAoR,EAAA0E,EAAA2D,cAAAzZ,GACA8V,EAAAsG,KAAApc,EAAA,SAAAb,EAAAN,GACA6U,EAAAoC,EAAApC,KAAA7U,GACAusB,IAAAjsB,EAAAgqB,EAAAiC,EACAA,EAAA,KAAAha,GAAA,UAAAsC,GAAA,SAAAA,EAAAvU,EAAA,UAEAisB,GAAAtP,EAAAhL,EAAAgO,IAAAjgB,EAAAV,KAAAU,SAEA,SAAA6U,IAAAyV,GAAA,UAAAzV,EACAyX,EAAAra,EAAAjS,EAAAsqB,EAAAhqB,GACA2R,EAAAgO,IAAA3f,EAAAN,KAWAssB,CAAAra,EAAA9Q,EAAAmpB,GACArY,EAAA5L,KAAA,KAAA2L,QAAA,aAxXC,CA0XAkF,IAEAD,EAqHAC,GA9GDsV,UAAA,SAAAjY,GACAA,EAAA0C,EAAAlK,OAAA,GAAyBwH,GAEzB,IAAAkY,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAAA,GACAC,GAAAzY,EAAA7P,MAAA,GACAuoB,EAAA,SAAA5J,GAOA,IANAoJ,EAAAlY,EAAAkY,QAAApJ,EACAqJ,GAAA,EACAI,EAAAF,GAAA,EACAA,EAAA,EACAC,EAAAE,EAAAzqB,OACAqqB,GAAA,EACiBI,GAAAD,EAAAD,IAAqCC,EACtD,QAAAC,EAAAD,GAAA7pB,MAAAogB,EAAA,GAAAA,EAAA,KAAA9O,EAAA2Y,YAAA,CACAT,GAAA,EACA,MAGAE,GAAA,EACAI,IACAC,IAAA1qB,QAAA2qB,EAAAD,EAAAhX,SACAyW,EAAAM,EAAAzqB,OAAA,EACAkqB,EAAAW,YAIAX,EAAA,CACAvM,IAAA,WACA,GAAA8M,EAAA,CACA,IAAAK,EAAAL,EAAAzqB,OACA2d,EAAA,SAAAzc,GACAyT,EAAAsG,KAAA/Z,EAAA,SAAAod,EAAA/E,GACA,mBAAAA,EACAtH,EAAA8Y,QAAAb,EAAApM,IAAAvE,IAAAkR,EAAAtoB,KAAAoX,GAEAA,KAAAvZ,QAAA,iBAAAuZ,GAAAoE,EAAApE,MAGAoE,EAAApb,WACA8nB,EAAAE,EAAAE,EAAAzqB,OACAmqB,IACAG,EAAAQ,EACAH,EAAAR,IAGA,OAAAloB,MAEAmB,OAAA,WAcA,OAbAqnB,GACA9V,EAAAsG,KAAA1Y,UAAA,SAAA+b,EAAA/E,GAEA,IADA,IAAAzV,GACAA,EAAA6Q,EAAA4H,QAAAhD,EAAAkR,EAAA3mB,KAAA,GACA2mB,EAAA1Y,OAAAjO,EAAA,GAEAumB,IACAvmB,GAAAymB,OACAzmB,GAAA0mB,UAKAvoB,MAEA6b,IAAA,SAAA3M,GACA,SAAAsZ,KAAAtZ,EAAAwD,EAAA4H,QAAApL,EAAAsZ,IAAA,EAAAA,EAAAzqB,UAEA8e,MAAA,WAEA,OADAyL,EAAAE,EAAAzqB,OAAA,EACAiC,MAEA4oB,QAAA,WAEA,OADAJ,EAAAC,EAAAP,OAAA/e,EACAnJ,MAEA+oB,SAAA,WACA,OAAAP,GAEAQ,KAAA,WAGA,OAFAP,OAAAtf,EACA+e,GAAAD,EAAAW,UACA5oB,MAEAipB,OAAA,WACA,OAAAR,GAEAS,SAAA,SAAAnpB,EAAAd,GAOA,OANAupB,GAAAL,IAAAM,IAEAxpB,EAAA,CAAAc,GADAd,KAAA,IACAb,MAAAa,EAAAb,QAAAa,GACAmpB,EAAAK,EAAAvoB,KAAAjB,GACAypB,EAAAzpB,IAEAe,MAEA0oB,KAAA,WACA,OAAAT,EAAAiB,SAAAlpB,KAAAM,YAEA6nB,MAAA,WACA,QAAAA,IAIA,OAAAF,GAIC,SAAAvV,GACD,IAAAtU,EAAAC,MAAAjC,UAAAgC,MAEA,SAAAsnB,EAAAjI,GACA,IAAA0L,EAAA,CAEA,kBAAAzW,EAAAuV,UAAA,CAA4C9nB,KAAA,EAAA+nB,OAAA,IAAiB,YAC7D,iBAAAxV,EAAAuV,UAAA,CAA2C9nB,KAAA,EAAA+nB,OAAA,IAAiB,YAC5D,qBAAAxV,EAAAuV,UAAA,CAA+CC,OAAA,MAE/CkB,EAAA,UACAzY,EAAA,CACAyY,MAAA,WACA,OAAAA,GAEAC,OAAA,WAEA,OADAlG,EAAAmG,KAAAhpB,WAAAipB,KAAAjpB,WACAN,MAEAiR,KAAA,WACA,IAAAuY,EAAAlpB,UACA,OAAAolB,EAAA,SAAA+D,GACA/W,EAAAsG,KAAAmQ,EAAA,SAAA3uB,EAAAkvB,GACA,IAAAxa,EAAAwD,EAAAqD,WAAAyT,EAAAhvB,KAAAgvB,EAAAhvB,GACA2oB,EAAAuG,EAAA,eACA,IAAAC,EAAAza,KAAAxQ,MAAAsB,KAAAM,WACA,GAAAqpB,GAAAjX,EAAAqD,WAAA4T,EAAAhZ,SACAgZ,EAAAhZ,UACA2Y,KAAAG,EAAAG,SACAL,KAAAE,EAAAI,QACAC,SAAAL,EAAAM,YACmB,CACnB,IAAAhqB,EAAAC,OAAA2Q,EAAA8Y,EAAA9Y,UAAA3Q,KACA8a,EAAA5L,EAAA,CAAAya,GAAArpB,UACAmpB,EAAAC,EAAA,WAAA3pB,EAAA+a,QAIA0O,EAAA,OACa7Y,WAGbA,QAAA,SAAA/T,GACA,aAAAA,EAAA8V,EAAAlK,OAAA5L,EAAA+T,OAGAwS,EAAA,GAuBA,OArBAzQ,EAAAsG,KAAAmQ,EAAA,SAAA3uB,EAAAkvB,GACA,IAAAlB,EAAAkB,EAAA,GACAM,EAAAN,EAAA,GAEA/Y,EAAA+Y,EAAA,IAAAlB,EAAA9M,IAEAsO,GACAxB,EAAA9M,IAAA,WACA0N,EAAAY,GACSb,EAAA,EAAA3uB,GAAA,GAAAouB,QAAAO,EAAA,MAAAH,MAGT7F,EAAAuG,EAAA,eAEA,OADAvG,EAAAuG,EAAA,WAAA1pB,OAAAmjB,EAAAxS,EAAA3Q,KAAAM,WACAN,MAEAmjB,EAAAuG,EAAA,WAAAlB,EAAAU,WAGAvY,UAAAwS,GACA1F,KAAA9iB,KAAAwoB,KACAA,EAGAzQ,EAAA8N,KAAA,SAAAyJ,GACA,IAKAC,EAAAC,EAAAC,EALAC,EAAAjsB,EAAAzD,KAAA2F,WACA4W,EAAAmT,EAAAtsB,OACAvD,EAAA,EACA8vB,EAAA,IAAApT,GAAA+S,GAAAvX,EAAAqD,WAAAkU,EAAAtZ,SAAAuG,EAAA,EACAiM,EAAA,IAAAmH,EAAAL,EAAAvE,IAEA6E,EAAA,SAAA/vB,EAAAiF,EAAAya,GACA,gBAAAze,GACAgE,EAAAjF,GAAAwF,KACAka,EAAA1f,GAAA8F,UAAAvC,OAAA,EAAAK,EAAAzD,KAAA2F,WAAA7E,EACAye,IAAAgQ,EACA/G,EAAAqH,WAAA/qB,EAAAya,KACaoQ,GACbnH,EAAAE,YAAA5jB,EAAAya,KAKA,GAAAhD,EAAA,EAIA,IAHAgT,EAAA,IAAA7rB,MAAA6Y,GACAiT,EAAA,IAAA9rB,MAAA6Y,GACAkT,EAAA,IAAA/rB,MAAA6Y,GACa1c,EAAA0c,IAAS1c,EACtB6vB,EAAA7vB,IAAAkY,EAAAqD,WAAAsU,EAAA7vB,GAAAmW,SACA0Z,EAAA7vB,GAAAmW,UACA2Y,KAAAiB,EAAA/vB,EAAA4vB,EAAAC,IACAd,KAAApG,EAAA0G,QACAC,SAAAS,EAAA/vB,EAAA2vB,EAAAD,MAEAI,EAKA,OADAA,GAAAnH,EAAAE,YAAA+G,EAAAC,GACAlH,EAAAxS,WAGA+B,EAAAgT,WA9GC,CA+GA/S,GAEA,SAAAD,GACD,IAAAvJ,EAAAshB,EAAA,EACArsB,EAAAC,MAAAjC,UAAAgC,MACA2X,EAAArD,EAAAqD,WACA2U,EAAA,SAAA9tB,GAA+B,uBAAAA,GAC/B+tB,EAAA,GACAC,EAAA,GACAC,EAAA,cAAAzwB,OACA0wB,EAAA,CAAeA,MAAA,UAAAC,KAAA,YACfC,EAAA,CAAeC,WAAA,YAAAC,WAAA,YAIf,SAAAC,EAAAlb,GACA,OAAAA,EAAAwa,OAAAxa,EAAAwa,UAEA,SAAAW,EAAAnb,EAAAiC,EAAAhD,EAAA+H,GAEA,IADA/E,EAAA1F,EAAA0F,IACArW,GAAA,IAAAwvB,GAaAxvB,EAbAqW,EAAArW,GAcA,IAAA8a,OAAA,UAAA9a,EAAA4R,QAAA,yBADA,IAAA5R,EAZA,OAAA8uB,EAAAQ,EAAAlb,KAAA,IAAAjO,OAAA,SAAAspB,GACA,OAAAA,KACApZ,EAAAxF,GAAA4e,EAAA5e,GAAAwF,EAAAxF,MACAwF,EAAArW,IAAAwvB,EAAAzsB,KAAA0sB,EAAAzvB,QACAqT,GAAAic,EAAAG,EAAApc,MAAAic,EAAAjc,OACA+H,GAAAqU,EAAAC,KAAAtU,KAGA,SAAAzK,EAAA0F,GACA,IAAA7D,GAAA,GAAA6D,GAAApT,MAAA,KACA,OAAY4N,EAAA2B,EAAA,GAAAxS,GAAAwS,EAAAjQ,MAAA,GAAA8c,OAAApZ,KAAA,MAMZ,SAAA0pB,EAAAF,EAAAG,GACA,OAAAH,EAAAI,MACAb,GAAAS,EAAA5e,KAAAoe,KACAW,EAGA,SAAAE,EAAArb,GACA,OAAA0a,EAAA1a,IAAAua,GAAAC,EAAAxa,MAGA,SAAAoL,EAAAzL,EAAAjR,EAAAkQ,EAAA4P,EAAA7H,EAAA2U,EAAAC,GACA,IAAAzqB,EAAA+pB,EAAAlb,GAAA6b,EAAAnB,EAAAvpB,KAAAupB,EAAAvpB,GAAA,IACApC,EAAAF,MAAA,MAAAsD,QAAA,SAAA8P,GACA,YAAAA,EAAA,OAAAQ,EAAA1H,UAAAoO,MAAAlK,GACA,IAAAoc,EAAA9e,EAAA0F,GACAoZ,EAAApc,KACAoc,EAAAC,IAAAtU,EAEAqU,EAAA5e,KAAAse,IAAA9b,EAAA,SAAAxC,GACA,IAAAqf,EAAArf,EAAAsf,cACA,IAAAD,OAAA/rB,OAAA0S,EAAAoH,SAAA9Z,KAAA+rB,GACA,OAAAT,EAAApc,GAAAxQ,MAAAsB,KAAAM,aAEAgrB,EAAAI,IAAAE,EACA,IAAApsB,EAAAosB,GAAA1c,EACAoc,EAAAW,MAAA,SAAAvf,GAEA,KADAA,EAAAwf,EAAAxf,IACAyf,gCAAA,CACAzf,EAAAoS,OACA,IAAA9N,EAAAxR,EAAAd,MAAAuR,EAAAvD,EAAA0f,OAAAjjB,EAAA,CAAAuD,GAAA,CAAAA,GAAA/N,OAAA+N,EAAA0f,QAEA,OADA,IAAApb,IAAAtE,EAAA6F,iBAAA7F,EAAA2f,mBACArb,IAEAsa,EAAA9wB,EAAAsxB,EAAA/tB,OACA+tB,EAAA5rB,KAAAorB,GACA,qBAAArb,GACAA,EAAAqL,iBAAAqQ,EAAAL,EAAA5e,GAAA4e,EAAAW,MAAAT,EAAAF,EAAAO,MAGA,SAAA1qB,EAAA8O,EAAAjR,EAAAkQ,EAAA+H,EAAA4U,GACA,IAAAzqB,EAAA+pB,EAAAlb,IACKjR,GAAA,IAAAF,MAAA,MAAAsD,QAAA,SAAA8P,GACLkZ,EAAAnb,EAAAiC,EAAAhD,EAAA+H,GAAA7U,QAAA,SAAAkpB,UACAX,EAAAvpB,GAAAkqB,EAAA9wB,GACA,wBAAAyV,GACAA,EAAAqc,oBAAAX,EAAAL,EAAA5e,GAAA4e,EAAAW,MAAAT,EAAAF,EAAAO,QArEAjB,EAAA2B,MAAA3B,EAAA4B,UAAA5B,EAAA6B,QAAA7B,EAAA8B,UAAA,cA0EAha,EAAAR,MAAA,CAAawJ,MAAAva,UAEbuR,EAAAuZ,MAAA,SAAA/c,EAAAnP,GACA,IAAAd,EAAA,KAAAqB,WAAAlC,EAAAzD,KAAA2F,UAAA,GACA,GAAAyV,EAAA7G,GAAA,CACA,IAAAyd,EAAA,WAA+B,OAAAzd,EAAAxQ,MAAAqB,EAAAd,IAAAN,OAAAP,EAAAzD,KAAA2F,wBAE/B,OADAqsB,EAAAlC,KAAAU,EAAAjc,GACAyd,EACK,GAAAjC,EAAA3qB,GACL,OAAAd,GACAA,EAAA2tB,QAAA1d,EAAAnP,GAAAmP,GACAwD,EAAAuZ,MAAAvtB,MAAA,KAAAO,IAEAyT,EAAAuZ,MAAA/c,EAAAnP,GAAAmP,GAGA,UAAAvS,UAAA,sBAIA+V,EAAAxD,GAAAlT,KAAA,SAAAkW,EAAA4M,EAAAtf,GACA,OAAAQ,KAAAF,GAAAoS,EAAA4M,EAAAtf,IAEAkT,EAAAxD,GAAA2d,OAAA,SAAA3a,EAAA1S,GACA,OAAAQ,KAAAK,IAAA6R,EAAA1S,IAEAkT,EAAAxD,GAAA4d,IAAA,SAAA5a,EAAA+E,EAAA6H,EAAAtf,GACA,OAAAQ,KAAAF,GAAAoS,EAAA+E,EAAA6H,EAAAtf,EAAA,IAGA,IAAAutB,EAAA,WAA8B,UAC9BC,EAAA,WAA+B,UAC/BC,EAAA,uDACAC,EAAA,CACA3a,eAAA,qBACA4a,yBAAA,gCACAd,gBAAA,wBAGA,SAAAH,EAAAha,EAAA3I,GAoBA,OAnBAA,GAAA2I,EAAA2Q,qBACAtZ,MAAA2I,GAEAQ,EAAAsG,KAAAkU,EAAA,SAAAnyB,EAAAqyB,GACA,IAAAC,EAAA9jB,EAAAxO,GACAmX,EAAAnX,GAAA,WAEA,OADAiF,KAAAotB,GAAAL,EACAM,KAAA3uB,MAAA6K,EAAAjJ,YAEA4R,EAAAkb,GAAAJ,IAGA9a,EAAAob,YAAApb,EAAAob,UAAA3d,KAAA7G,QAEAS,EAAAgkB,mBAAApkB,EAAAI,EAAAgkB,iBACA,gBAAAhkB,GAAA,IAAAA,EAAAikB,YACAjkB,EAAAkkB,mBAAAlkB,EAAAkkB,uBACAvb,EAAA2Q,mBAAAkK,IAEA7a,EAGA,SAAAwb,EAAAxb,GACA,IAAAnW,EAAAkwB,EAAA,CAAsB0B,cAAAzb,GACtB,IAAAnW,KAAAmW,EACA+a,EAAAruB,KAAA7C,IAAAmW,EAAAnW,KAAAoN,IAAA8iB,EAAAlwB,GAAAmW,EAAAnW,IAEA,OAAAmwB,EAAAD,EAAA/Z,GAGAQ,EAAAxD,GAAA0e,SAAA,SAAA3W,EAAA/E,EAAA1S,GACA,OAAAQ,KAAAF,GAAAoS,EAAA+E,EAAAzX,IAEAkT,EAAAxD,GAAA2e,WAAA,SAAA5W,EAAA/E,EAAA1S,GACA,OAAAQ,KAAAK,IAAA6R,EAAA+E,EAAAzX,IAGAkT,EAAAxD,GAAA4e,KAAA,SAAA5b,EAAA1S,GAEA,OADAkT,EAAA1H,SAAAqQ,MAAAuS,SAAA5tB,KAAAiX,SAAA/E,EAAA1S,GACAQ,MAEA0S,EAAAxD,GAAA6e,IAAA,SAAA7b,EAAA1S,GAEA,OADAkT,EAAA1H,SAAAqQ,MAAAwS,WAAA7tB,KAAAiX,SAAA/E,EAAA1S,GACAQ,MAGA0S,EAAAxD,GAAApP,GAAA,SAAAoS,EAAA+E,EAAA6H,EAAAtf,EAAAstB,GACA,IAAAkB,EAAApC,EAAA3P,EAAAjc,KACA,OAAAkS,IAAAwY,EAAAxY,IACAQ,EAAAsG,KAAA9G,EAAA,SAAA5B,EAAApB,GACA+M,EAAAnc,GAAAwQ,EAAA2G,EAAA6H,EAAA5P,EAAA4d,KAEA7Q,IAGAyO,EAAAzT,IAAAlB,EAAAvW,KAAA,IAAAA,IACAA,EAAAsf,IAAA7H,IAAA9N,GACA3J,IAAA2J,IAAA,IAAA2V,IACAtf,EAAAsf,IAAA3V,IAEA,IAAA3J,MAAAwtB,GAEA/Q,EAAAjD,KAAA,SAAAqD,EAAApM,GACA6c,IAAAkB,EAAA,SAAAthB,GAEA,OADAvL,EAAA8O,EAAAvD,EAAA4D,KAAA9Q,GACAA,EAAAd,MAAAsB,KAAAM,aAGA2W,IAAA2U,EAAA,SAAAlf,GACA,IAAAuhB,EAAA7gB,EAAAsF,EAAAhG,EAAA7O,QAAAse,QAAAlF,EAAAhH,GAAA5U,IAAA,GACA,GAAA+R,OAAA6C,EAEA,OADAge,EAAAvb,EAAAlK,OAAAklB,EAAAhhB,GAAA,CAA0CwhB,cAAA9gB,EAAA+gB,UAAAle,KAC1C+d,GAAAxuB,GAAAd,MAAA0O,EAAA,CAAA6gB,GAAAtvB,OAAAP,EAAAzD,KAAA2F,UAAA,OAIAob,EAAAzL,EAAAiC,EAAA1S,EAAAsf,EAAA7H,EAAA2U,GAAAoC,OAGAtb,EAAAxD,GAAA7O,IAAA,SAAA6R,EAAA+E,EAAAzX,GACA,IAAAyc,EAAAjc,KACA,OAAAkS,IAAAwY,EAAAxY,IACAQ,EAAAsG,KAAA9G,EAAA,SAAA5B,EAAApB,GACA+M,EAAA5b,IAAAiQ,EAAA2G,EAAA/H,KAEA+M,IAGAyO,EAAAzT,IAAAlB,EAAAvW,KAAA,IAAAA,IACAA,EAAAyX,IAAA9N,IAEA,IAAA3J,MAAAwtB,GAEA/Q,EAAAjD,KAAA,WACA7X,EAAAnB,KAAAkS,EAAA1S,EAAAyX,OAIAvE,EAAAxD,GAAAtO,QAAA,SAAAsR,EAAAjT,GAGA,OAFAiT,EAAAwY,EAAAxY,IAAAQ,EAAA2D,cAAAnE,GAAAQ,EAAAkQ,MAAA1Q,GAAAga,EAAAha,IACAka,MAAAntB,EACAe,KAAAgZ,KAAA,WAEA9G,EAAA5B,QAAAwa,GAAA,mBAAA9qB,KAAAkS,EAAA5B,MAAAtQ,KAAAkS,EAAA5B,QAEA,kBAAAtQ,UAAAouB,cAAAlc,GACAQ,EAAA1S,MAAA6kB,eAAA3S,EAAAjT,MAMAyT,EAAAxD,GAAA2V,eAAA,SAAA3S,EAAAjT,GACA,IAAAyN,EAAAsE,EAUA,OATAhR,KAAAgZ,KAAA,SAAAxe,EAAAyV,IACAvD,EAAAghB,EAAAhD,EAAAxY,GAAAQ,EAAAkQ,MAAA1Q,OACAka,MAAAntB,EACAyN,EAAA7O,OAAAoS,EACAyC,EAAAsG,KAAAoS,EAAAnb,EAAAiC,EAAA5B,MAAA4B,GAAA,SAAA1X,EAAA8wB,GAEA,GADAta,EAAAsa,EAAAW,MAAAvf,GACAA,EAAAyf,gCAAA,aAGAnb,GAIG,uLAEHlS,MAAA,KAAAsD,QAAA,SAAA8P,GACAQ,EAAAxD,GAAAgD,GAAA,SAAA1S,GACA,YAAAc,UACAN,KAAAhE,KAAAkW,EAAA1S,GACAQ,KAAAY,QAAAsR,MAIAQ,EAAAkQ,MAAA,SAAAtS,EAAAxS,GACA4sB,EAAApa,QAAAxS,EAAAwS,SACA,IAAA4B,EAAAlH,SAAAqjB,YAAAzD,EAAAta,IAAA,UAAAge,GAAA,EACA,GAAAxwB,EAAA,QAAA/C,KAAA+C,EAAA,WAAA/C,EAAAuzB,IAAAxwB,EAAA/C,GAAAmX,EAAAnX,GAAA+C,EAAA/C,GAEA,OADAmX,EAAAqc,UAAAje,EAAAge,GAAA,GACApC,EAAAha,IA3QC,CA8QAS,GAEA,WAGD,IACAuK,sBAAA/T,GACG,MAAAuD,GACH,IAAA8hB,EAAAtR,iBACA9iB,OAAA8iB,iBAAA,SAAAjN,EAAAwe,GACA,IACA,OAAAD,EAAAve,EAAAwe,GACO,MAAA/hB,GACP,eAXC,GAiBA,SAAAgG,GACD,IAAAoC,EAAApC,EAAAoC,MAAA4Z,EAAA5Z,EAAAyD,IAAAoW,EAAA7Z,EAAAiD,QAEA,SAAA6W,EAAArU,GAEA,UADAA,EAAA7H,EAAA6H,IACAqF,UAAArF,EAAAwF,WAAA,SAAAxF,EAAA0D,IAAA,WAcA,IAAA4Q,EAAAnc,EAAAiI,KAAA,MACAiU,QAAA,WAAyB,GAAAA,EAAA5uB,MAAA,OAAAA,MACzB8uB,OAAA,WAAyB,IAAAF,EAAA5uB,MAAA,OAAAA,MACzBif,SAAA,WAAyB,GAAAjf,KAAAif,SAAA,OAAAjf,MACzB+uB,QAAA,WAAyB,GAAA/uB,KAAA+uB,QAAA,OAAA/uB,MACzB2J,OAAA,WAAyB,OAAA3J,KAAAoY,YACzB2D,MAAA,SAAAxE,GAA4B,OAAAA,EAAA,OAAAvX,MAC5Bgc,KAAA,SAAAzE,EAAAH,GAAmC,GAAAG,IAAAH,EAAArZ,OAAA,SAAAiC,MACnC8b,GAAA,SAAAvE,EAAA8E,EAAA5gB,GAAsC,GAAA8b,IAAA9b,EAAA,OAAAuE,MACtC8Z,SAAA,SAAAvC,EAAA8E,EAAAkC,GAAqC,GAAA7L,EAAA1S,MAAAue,OAAA1O,QAAA0O,IAAA,SAAAve,MACrC6b,IAAA,SAAAtE,EAAA8E,EAAAkP,GAAoC,GAAAzW,EAAAyD,IAAAvY,KAAAurB,GAAAxtB,OAAA,OAAAiC,OAGpCgvB,EAAA,IAAArY,OAAA,sCACAsY,EAAA,QACAC,EAAA,cAAAvf,KAEA,SAAAwf,EAAA5D,EAAArc,GAEAqc,IAAA9d,QAAA,iBACA,IAAAzL,EAAAsV,EAAAlK,EAAA4hB,EAAArhB,KAAA4d,GACA,GAAAne,KAAA,KAAAyhB,IACA7sB,EAAA6sB,EAAAzhB,EAAA,IAAAkK,EAAAlK,EAAA,GACAme,EAAAne,EAAA,GACAkK,GAAA,CACA,IAAA6C,EAAAC,OAAA9C,GACAA,EAAA+C,MAAAF,GAAA7C,EAAA7J,QAAA,mBACA0M,EAGA,OAAAjL,EAAAqc,EAAAvpB,EAAAsV,GAGAxC,EAAAyD,IAAA,SAAAzB,EAAAG,GACA,OAAAkY,EAAAlY,EAAA,SAAAsU,EAAAvpB,EAAAsV,GACA,IACA,IAAA8X,GACA7D,GAAAvpB,EAAAupB,EAAA,IACA0D,EAAArwB,KAAA2sB,KAGA6D,EAAA1c,EAAAoE,GAAAsJ,SAAA8O,GAAA3D,EAAA,IAAA2D,EAAA,IAAA3D,GAEA,IAAAnU,EAAAsX,EAAA5X,EAAAyU,GACO,MAAA7e,GAEP,MADA2iB,QAAAzvB,MAAA,gCAAAqX,GACAvK,EACO,QACP0iB,KAAA9O,YAAA4O,GAEA,OAAAltB,EACA8S,EAAAhC,KAAAJ,EAAA9Q,IAAAwV,EAAA,SAAAnb,EAAAzB,GAA+C,OAAAwH,EAAArH,KAAAsB,EAAAzB,EAAA4c,EAAAE,MAD/CF,KAKAtC,EAAAiD,QAAA,SAAAjB,EAAAG,GACA,OAAAkY,EAAAlY,EAAA,SAAAsU,EAAAvpB,EAAAsV,GACA,QAAAiU,GAAAoD,EAAA7X,EAAAyU,OACAvpB,KAAArH,KAAAmc,EAAA,KAAAQ,KAAAR,MA7EC,CAgFAnE,GACD1Y,EAAAD,QAAA2Y,iBCj4DA,IAAA2c,EAAAr1B,EAAAD,QAAA,CAA6Bu1B,QAAA,SAC7B,iBAAAC,UAAAF,kBCIAr1B,EAAAD,QAAA,SAAAy1B,GACA,IAAAjH,EAAA,GAwCA,OArCAA,EAAA3T,SAAA,WACA,OAAA7U,KAAA4B,IAAA,SAAAqH,GACA,IAAAymB,EAsCA,SAAAzmB,EAAAwmB,GACA,IAAAC,EAAAzmB,EAAA,OACA0mB,EAAA1mB,EAAA,GACA,IAAA0mB,EACA,OAAAD,EAGA,GAAAD,GAAA,mBAAAG,KAAA,CACA,IAAAC,GAYAC,EAZAH,EAiBA,mEAHAC,KAAAG,SAAAjI,mBAAA9M,KAAAgV,UAAAF,MAGA,OAhBAG,EAAAN,EAAAO,QAAAtuB,IAAA,SAAA2H,GACA,uBAAAomB,EAAAQ,WAAA5mB,EAAA,QAGA,OAAAmmB,GAAA/wB,OAAAsxB,GAAAtxB,OAAA,CAAAkxB,IAAA/tB,KAAA,MAOA,IAAAguB,EAJA,OAAAJ,GAAA5tB,KAAA,MAtDAsuB,CAAAnnB,EAAAwmB,GACA,OAAAxmB,EAAA,GACA,UAAAA,EAAA,OAAmCymB,EAAA,IAEnCA,IAEG5tB,KAAA,KAIH0mB,EAAAhuB,EAAA,SAAAE,EAAA21B,GACA,iBAAA31B,IACAA,EAAA,OAAAA,EAAA,MAEA,IADA,IAAA41B,EAAA,GACA91B,EAAA,EAAgBA,EAAAwF,KAAAjC,OAAiBvD,IAAA,CACjC,IAAA4G,EAAApB,KAAAxF,GAAA,GACA,iBAAA4G,IACAkvB,EAAAlvB,IAAA,GAEA,IAAA5G,EAAA,EAAYA,EAAAE,EAAAqD,OAAoBvD,IAAA,CAChC,IAAAyO,EAAAvO,EAAAF,GAKA,iBAAAyO,EAAA,IAAAqnB,EAAArnB,EAAA,MACAonB,IAAApnB,EAAA,GACAA,EAAA,GAAAonB,EACKA,IACLpnB,EAAA,OAAAA,EAAA,aAAAonB,EAAA,KAEA7H,EAAAtoB,KAAA+I,MAIAuf,oBCzCA,IAEAtZ,EACAqhB,EAHAC,EAAA,GAWAC,GATAvhB,EASA,WAMA,OAAA9U,QAAA4Q,mBAAAjK,MAAA3G,OAAAs2B,MAZA,WAEA,YADA,IAAAH,MAAArhB,EAAAxQ,MAAAsB,KAAAM,YACAiwB,IAiBAI,EAAA,SAAAzhB,GACA,IAAAqhB,EAAA,GAEA,gBAAA1yB,GAMA,sBAAAA,EACA,OAAAA,IAEA,YAAA0yB,EAAA1yB,GAAA,CACA,IAAA+yB,EAjBA,SAAA/yB,GACA,OAAAmN,SAAAS,cAAA5N,IAgBAlD,KAAAqF,KAAAnC,GAEA,GAAAzD,OAAAy2B,mBAAAD,aAAAx2B,OAAAy2B,kBACA,IAGAD,IAAAlU,gBAAAoI,KACK,MAAApY,GACLkkB,EAAA,KAGAL,EAAA1yB,GAAA+yB,EAEA,OAAAL,EAAA1yB,IA1BA,GA8BAizB,EAAA,KACAC,EAAA,EACAC,EAAA,GAEAC,EAAc32B,EAAQ,KAqDtB,SAAA42B,EAAAC,EAAAnhB,GACA,QAAAxV,EAAA,EAAgBA,EAAA22B,EAAApzB,OAAmBvD,IAAA,CACnC,IAAAyO,EAAAkoB,EAAA32B,GACA42B,EAAAZ,EAAAvnB,EAAA7H,IAEA,GAAAgwB,EAAA,CACAA,EAAAC,OAEA,QAAA7wB,EAAA,EAAiBA,EAAA4wB,EAAA/iB,MAAAtQ,OAA2ByC,IAC5C4wB,EAAA/iB,MAAA7N,GAAAyI,EAAAoF,MAAA7N,IAGA,KAAQA,EAAAyI,EAAAoF,MAAAtQ,OAAuByC,IAC/B4wB,EAAA/iB,MAAAnO,KAAAoxB,EAAAroB,EAAAoF,MAAA7N,GAAAwP,QAEG,CACH,IAAA3B,EAAA,GAEA,IAAA7N,EAAA,EAAiBA,EAAAyI,EAAAoF,MAAAtQ,OAAuByC,IACxC6N,EAAAnO,KAAAoxB,EAAAroB,EAAAoF,MAAA7N,GAAAwP,IAGAwgB,EAAAvnB,EAAA7H,IAAA,CAA2BA,GAAA6H,EAAA7H,GAAAiwB,KAAA,EAAAhjB,WAK3B,SAAAkjB,EAAA/I,EAAAxY,GAIA,IAHA,IAAAmhB,EAAA,GACAK,EAAA,GAEAh3B,EAAA,EAAgBA,EAAAguB,EAAAzqB,OAAiBvD,IAAA,CACjC,IAAAyO,EAAAuf,EAAAhuB,GACA4G,EAAA4O,EAAAyhB,KAAAxoB,EAAA,GAAA+G,EAAAyhB,KAAAxoB,EAAA,GAIAyoB,EAAA,CAAczT,IAHdhV,EAAA,GAGc0oB,MAFd1oB,EAAA,GAEc6mB,UADd7mB,EAAA,IAGAuoB,EAAApwB,GACAowB,EAAApwB,GAAAiN,MAAAnO,KAAAwxB,GADAP,EAAAjxB,KAAAsxB,EAAApwB,GAAA,CAAkDA,KAAAiN,MAAA,CAAAqjB,KAIlD,OAAAP,EAGA,SAAAS,EAAA5hB,EAAAiN,GACA,IAAApf,EAAA8yB,EAAA3gB,EAAA6hB,YAEA,IAAAh0B,EACA,UAAAkT,MAAA,+GAGA,IAAA+gB,EAAAd,IAAAjzB,OAAA,GAEA,WAAAiS,EAAA+hB,SACAD,EAEGA,EAAArQ,YACH5jB,EAAA+jB,aAAA3E,EAAA6U,EAAArQ,aAEA5jB,EAAAya,YAAA2E,GAJApf,EAAA+jB,aAAA3E,EAAApf,EAAA6jB,YAMAsP,EAAA9wB,KAAA+c,QACE,cAAAjN,EAAA+hB,SACFl0B,EAAAya,YAAA2E,OACE,qBAAAjN,EAAA+hB,WAAA/hB,EAAA+hB,SAAAzU,OAIF,UAAAvM,MAAA,8LAHA,IAAA0Q,EAAAkP,EAAA3gB,EAAA6hB,WAAA,IAAA7hB,EAAA+hB,SAAAzU,QACAzf,EAAA+jB,aAAA3E,EAAAwE,IAMA,SAAAuQ,EAAA/U,GACA,UAAAA,EAAA7E,WAAA,SACA6E,EAAA7E,WAAAI,YAAAyE,GAEA,IAAA1F,EAAAyZ,EAAAnhB,QAAAoN,GACA1F,GAAA,GACAyZ,EAAAlhB,OAAAyH,EAAA,GAIA,SAAA0a,EAAAjiB,GACA,IAAAiN,EAAAjS,SAAAyF,cAAA,SAOA,OALAT,EAAAkiB,MAAA5hB,KAAA,WAEA6hB,EAAAlV,EAAAjN,EAAAkiB,OACAN,EAAA5hB,EAAAiN,GAEAA,EAeA,SAAAkV,EAAA9mB,EAAA6mB,GACAh3B,OAAAk3B,KAAAF,GAAA9vB,QAAA,SAAArG,GACAsP,EAAAqF,aAAA3U,EAAAm2B,EAAAn2B,MAIA,SAAAu1B,EAAA10B,EAAAoT,GACA,IAAAiN,EAAAoV,EAAAlxB,EAAA6P,EAGA,GAAAhB,EAAAsiB,WAAA11B,EAAAqhB,IAAA,CAGA,KAFAjN,EAAAhB,EAAAsiB,UAAA11B,EAAAqhB,MASA,oBAJArhB,EAAAqhB,IAAAjN,EAUA,GAAAhB,EAAA8gB,UAAA,CACA,IAAAyB,EAAAxB,IAEA9T,EAAA6T,MAAAmB,EAAAjiB,IAEAqiB,EAAAG,EAAAx2B,KAAA,KAAAihB,EAAAsV,GAAA,GACApxB,EAAAqxB,EAAAx2B,KAAA,KAAAihB,EAAAsV,GAAA,QAGA31B,EAAAkzB,WACA,mBAAA2C,KACA,mBAAAA,IAAAC,iBACA,mBAAAD,IAAAE,iBACA,mBAAAC,MACA,mBAAAhD,MAEA3S,EAtDA,SAAAjN,GACA,IAAA6iB,EAAA7nB,SAAAyF,cAAA,QAQA,OANAT,EAAAkiB,MAAA5hB,KAAA,WACAN,EAAAkiB,MAAAY,IAAA,aAEAX,EAAAU,EAAA7iB,EAAAkiB,OACAN,EAAA5hB,EAAA6iB,GAEAA,EA6CAE,CAAA/iB,GACAqiB,EAiFA,SAAAQ,EAAA7iB,EAAApT,GACA,IAAAqhB,EAAArhB,EAAAqhB,IACA6R,EAAAlzB,EAAAkzB,UAQAkD,OAAA7pB,IAAA6G,EAAAijB,uBAAAnD,GAEA9f,EAAAijB,uBAAAD,KACA/U,EAAAgT,EAAAhT,IAGA6R,IAEA7R,GAAA,uDAAuD2R,KAAAG,SAAAjI,mBAAA9M,KAAAgV,UAAAF,MAAA,OAGvD,IAAAoD,EAAA,IAAAN,KAAA,CAAA3U,GAAA,CAA6B3N,KAAA,aAE7B6iB,EAAAN,EAAA5O,KAEA4O,EAAA5O,KAAAwO,IAAAC,gBAAAQ,GAEAC,GAAAV,IAAAE,gBAAAQ,IA5GAn3B,KAAA,KAAAihB,EAAAjN,GACA7O,EAAA,WACA6wB,EAAA/U,GAEAA,EAAAgH,MAAAwO,IAAAE,gBAAA1V,EAAAgH,SAGAhH,EAAAgV,EAAAjiB,GACAqiB,EAsDA,SAAApV,EAAArgB,GACA,IAAAqhB,EAAArhB,EAAAqhB,IACA0T,EAAA/0B,EAAA+0B,MAEAA,GACA1U,EAAAvM,aAAA,QAAAihB,GAGA,GAAA1U,EAAAmW,WACAnW,EAAAmW,WAAAlT,QAAAjC,MACE,CACF,KAAAhB,EAAAyE,YACAzE,EAAAzE,YAAAyE,EAAAyE,YAGAzE,EAAA3E,YAAAtN,SAAAqoB,eAAApV,MArEAjiB,KAAA,KAAAihB,GACA9b,EAAA,WACA6wB,EAAA/U,KAMA,OAFAoV,EAAAz1B,GAEA,SAAA02B,GACA,GAAAA,EAAA,CACA,GACAA,EAAArV,MAAArhB,EAAAqhB,KACAqV,EAAA3B,QAAA/0B,EAAA+0B,OACA2B,EAAAxD,YAAAlzB,EAAAkzB,UAEA,OAGAuC,EAAAz1B,EAAA02B,QAEAnyB,KArOAlH,EAAAD,QAAA,SAAAwuB,EAAAxY,GACA,uBAAAujB,cACA,iBAAAvoB,SAAA,UAAA+F,MAAA,iEAGAf,KAAA,IAEAkiB,MAAA,iBAAAliB,EAAAkiB,MAAAliB,EAAAkiB,MAAA,GAIAliB,EAAA8gB,WAAA,kBAAA9gB,EAAA8gB,YAAA9gB,EAAA8gB,UAAAL,KAGAzgB,EAAA6hB,aAAA7hB,EAAA6hB,WAAA,QAGA7hB,EAAA+hB,WAAA/hB,EAAA+hB,SAAA,UAEA,IAAAZ,EAAAI,EAAA/I,EAAAxY,GAIA,OAFAkhB,EAAAC,EAAAnhB,GAEA,SAAAwjB,GAGA,IAFA,IAAAC,EAAA,GAEAj5B,EAAA,EAAiBA,EAAA22B,EAAApzB,OAAmBvD,IAAA,CACpC,IAAAyO,EAAAkoB,EAAA32B,IACA42B,EAAAZ,EAAAvnB,EAAA7H,KAEAiwB,OACAoC,EAAAvzB,KAAAkxB,GAGAoC,GAEAtC,EADAK,EAAAiC,EAAAxjB,GACAA,GAGA,IAAAxV,EAAA,EAAiBA,EAAAi5B,EAAA11B,OAAsBvD,IAAA,CACvC,IAAA42B,EAEA,QAFAA,EAAAqC,EAAAj5B,IAEA62B,KAAA,CACA,QAAA7wB,EAAA,EAAmBA,EAAA4wB,EAAA/iB,MAAAtQ,OAA2ByC,IAAA4wB,EAAA/iB,MAAA7N,YAE9CgwB,EAAAY,EAAAhwB,QA6LA,IACAsyB,EADAC,GACAD,EAAA,GAEA,SAAA7xB,EAAA+xB,GAGA,OAFAF,EAAA7xB,GAAA+xB,EAEAF,EAAA1xB,OAAA6xB,SAAA/xB,KAAA,QAIA,SAAA0wB,EAAAvV,EAAApb,EAAAV,EAAAvE,GACA,IAAAqhB,EAAA9c,EAAA,GAAAvE,EAAAqhB,IAEA,GAAAhB,EAAAmW,WACAnW,EAAAmW,WAAAlT,QAAAyT,EAAA9xB,EAAAoc,OACE,CACF,IAAA6V,EAAA9oB,SAAAqoB,eAAApV,GACApH,EAAAoG,EAAApG,WAEAA,EAAAhV,IAAAob,EAAAzE,YAAA3B,EAAAhV,IAEAgV,EAAA9Y,OACAkf,EAAA2E,aAAAkS,EAAAjd,EAAAhV,IAEAob,EAAA3E,YAAAwb,oFC3TA,IAAIpR,EAAW,CACbqR,SAAc,kBACdC,YAAc,mBACdnM,OAAc,oBAMZoM,EAAU,OAIVC,EAAU,CACZC,IAAW,IACXC,KAAU,KACVC,KAAU,IACVC,KAAU,IACVC,KAAU,IACVC,SAAU,QACVC,SAAU,SAGRC,EAAU,+BAGVC,EAAe,CACjBC,IAAK,QACLC,IAAK,OACLC,IAAK,OACLC,IAAK,SACLZ,IAAM,UAGJa,EAAW,IAAIre,OAAO,WAAY,KAElCse,EAAa,SAASC,GACxB,OAAe,OAAXA,EAAwB,IACpB,GAAKA,GAAQznB,QAAQunB,EAAU,SAAS5nB,GAC9C,OAAOunB,EAAavnB,MAIpB+nB,EAAU,EAKVC,EAAO,SAAS7W,EAAMO,GACxB,IAAIuW,EAGAhK,EAAU,IAAI1U,OAAO,EACtB+L,EAASmF,QAAUoM,GAAS1qB,QAC5BmZ,EAASsR,aAAeC,GAAS1qB,QACjCmZ,EAASqR,UAAYE,GAAS1qB,QAC/BzH,KAAK,KAAO,KAAM,KAGhBD,EAAQ,EACR0H,EAAS,SACbgV,EAAK9Q,QAAQ4d,EAAS,SAASje,EAAOya,EAAQmM,EAAaD,EAAU7U,GAcnE,OAbA3V,GAAUgV,EAAKngB,MAAMyD,EAAOqd,GACzBzR,QAAQinB,EAAS,SAAStnB,GAAS,MAAO,KAAO8mB,EAAQ9mB,KAExDya,IACFte,GAAU,cAAiBse,EAAS,oCAElCmM,IACFzqB,GAAU,cAAiByqB,EAAc,wBAEvCD,IACFxqB,GAAU,OAAUwqB,EAAW,YAEjClyB,EAAQqd,EAAS9R,EAAMrP,OAChBqP,IAET7D,GAAU,OAGLmZ,EAAS4S,WAAU/rB,EAAS,mBAAqBA,EAAS,OAE/DA,EAAS,4FAEPA,EAAS,qDAAuD4rB,IAAY,IAE9E,IAGEE,EAAS,IAAIE,SAAS7S,EAAS4S,UAAY,MAAO,aAAc/rB,GAChE,MAAOmD,GAEP,MADAA,EAAEnD,OAASA,EACLmD,EAGR,GAAIoS,EAAM,OAAOuW,EAAOvW,EAAMmW,GAC9B,IAAIO,EAAW,SAAS1W,GACtB,OAAOuW,EAAO16B,KAAKqF,KAAM8e,EAAMmW,IAMjC,OAFAO,EAASjsB,OAAS,aAAemZ,EAAS4S,UAAY,OAAS,OAAS/rB,EAAS,IAE1EisB,GAETJ,EAAK1S,SAAWA,YAED0S,uCCnHfn7B,EAAAD,QAAA,CAAkBwC,QAAYlC,EAAQ,IAAkCsB,YAAA,oBCAxE,IAAA65B,EAAiBn7B,EAAQ,GAARA,CAAmB,OACpCo7B,EAAiBp7B,EAAQ,IACzBiB,EAAiBjB,EAAQ,IAAWiB,OACpCo6B,EAAA,mBAAAp6B,GAEAtB,EAAAD,QAAA,SAAAe,GACA,OAAA06B,EAAA16B,KAAA06B,EAAA16B,GACA46B,GAAAp6B,EAAAR,KAAA46B,EAAAp6B,EAAAm6B,GAAA,UAAA36B,MAGA06B,8ICVAt3B,EAAA7D,EAAA,OACAA,EAAA,SACAA,EAAA,SAEAA,EAAA,2DASqBs7B,cAyDnB,SAAAA,EAAY5lB,EAAS6lB,EAAMC,IAAa,EAAA/rB,EAAAvN,SAAAwD,KAAA41B,GAAA,IAAAx1B,GAAA,EAAA8J,EAAA1N,SAAAwD,KACtC+1B,EAAAp7B,KAAAqF,KAAMgQ,IADgC,OAEtC5P,EAAKsiB,SAAW,GAChBtiB,EAAK41B,MAAQH,EACbz1B,EAAK01B,YAAcA,EACnB11B,EAAK61B,YAAa,EALoB71B,8EAlDtC,OAAO,qCAIP,OAAO,gCASP,OAAO,+BASP,OAAOJ,KAAKg2B,wCAWZ,OAAO,oCASP,OAAOh2B,KAAKi2B,2BAoBdC,mBACEl2B,KAAKi2B,YAAa,eAOpBrlB,8BAMAulB,+BAMAC,8BAOAC,cAAKhsB,iBAOLisB,wBAAeC,iBASfC,8BAAuB,OAAO,eAO9BC,uBAAgB,OAAO,eAOvBC,qBACE,OAAO,eA0DTC,2BACE,OAAOf,EAASgB,mBAQlBC,iCACE,OAAO,eAQTtqB,gBAAO9Q,iBAOP6V,mBAAUtB,GACRhQ,KAAK82B,SAAWvlB,EAAA/U,QAAEgM,OAAOxI,KAAK82B,SAAU9mB,gBAO1C+mB,2BAAkB,IAAAC,EAAAh3B,KAChBA,KAAKi3B,YAAY,SAACjmB,EAAQpR,GACxBoR,GAAUgmB,EAAKpmB,sBASnBqmB,qBAAYlnB,GACVA,GAAG,EAAM,sDA9FT,OAAO,kDASP,OAAO/P,KAAKk3B,qBAAqBn5B,OAAS,+CAS1C,MAAO,iDASP,OAAQ,gBAQgBo5B,gCA3KPvB,GA0OrB,EAAA1lB,EAAA1T,SAAco5B,EAASx5B,UAAvBg7B,EAAA56B,SAEAo5B,EAASptB,OAAS,SAASoB,GACzB,OAAO,EAAAzL,EAAAqK,QAAOotB,EAAUhsB,IAa1BgsB,EAASyB,QAAU,SAAC9tB,EAAQid,GAC1B,OAAO,GAUToP,EAAS0B,IAAM,MAQf1B,EAAS2B,IAAM,MAQf3B,EAAS4B,KAAO,OAQhB5B,EAASgB,MAAQ,QAQjBhB,EAAStlB,KAAO,0JC9ShBnS,EAAA7D,EAAA,0DASqBm9B,cAYnB,SAAAA,IAAwB,IAAZznB,EAAY1P,UAAAvC,OAAA,QAAAoL,IAAA7I,UAAA,GAAAA,UAAA,GAAJ,IAAI,EAAAyJ,EAAAvN,SAAAwD,KAAAy3B,GAAA,IAAAr3B,GAAA,EAAA8J,EAAA1N,SAAAwD,KACtB03B,EAAA/8B,KAAAqF,KAAMgQ,IADgB,OAEtB5P,EAAK02B,SAAW9mB,EAChB5P,EAAKkC,UAAW,EAAAnE,EAAAmE,UAAS,KAHHlC,0EANR,OAAOJ,KAAK82B,kBAd9Bx8B,EAAA,uBAQqBm9B,uCCbrB,IAAA9U,EAAgBroB,EAAQ,IACxBg1B,EAAgBh1B,EAAQ,GACxBmF,EAAgBnF,EAAQ,IACxB0jB,EAAgB1jB,EAAQ,IAGxBq9B,EAAA,SAAArnB,EAAAvV,EAAAwO,GACA,IASAxN,EAAA67B,EAAA/sB,EATAgtB,EAAAvnB,EAAAqnB,EAAAG,EACAC,EAAAznB,EAAAqnB,EAAAK,EACAC,EAAA3nB,EAAAqnB,EAAAO,EACAC,EAAA7nB,EAAAqnB,EAAAS,EACAC,EAAA/nB,EAAAqnB,EAAAW,EACAC,EAAAjoB,EAAAqnB,EAAAa,EACAx+B,EAAA+9B,EAAAzI,IAAAv0B,KAAAu0B,EAAAv0B,GAAA,IACA09B,EAAAz+B,EAAA,UACA6D,EAAAk6B,EAAApV,EAAAsV,EAAAtV,EAAA5nB,IAAA4nB,EAAA5nB,IAAA,IAAqF,UAGrF,IAAAgB,KADAg8B,IAAAxuB,EAAAxO,GACAwO,GAEAquB,GAAAC,GAAAh6B,QAAAsL,IAAAtL,EAAA9B,KACAA,KAAA/B,IAEA6Q,EAAA+sB,EAAA/5B,EAAA9B,GAAAwN,EAAAxN,GAEA/B,EAAA+B,GAAAg8B,GAAA,mBAAAl6B,EAAA9B,GAAAwN,EAAAxN,GAEAs8B,GAAAT,EAAAn4B,EAAAoL,EAAA8X,GAEA4V,GAAA16B,EAAA9B,IAAA8O,EAAA,SAAA6tB,GACA,IAAAZ,EAAA,SAAAa,EAAAC,EAAA/9B,GACA,GAAAmF,gBAAA04B,EAAA,CACA,OAAAp4B,UAAAvC,QACA,kBAAA26B,EACA,kBAAAA,EAAAC,GACA,kBAAAD,EAAAC,EAAAC,GACW,WAAAF,EAAAC,EAAAC,EAAA/9B,GACF,OAAA69B,EAAAh6B,MAAAsB,KAAAM,YAGT,OADAw3B,EAAA,UAAAY,EAAA,UACAZ,EAXA,CAaKjtB,GAAAstB,GAAA,mBAAAttB,EAAApL,EAAA81B,SAAA56B,KAAAkQ,KAELstB,KACAn+B,EAAA6+B,UAAA7+B,EAAA6+B,QAAA,KAA+C98B,GAAA8O,EAE/CyF,EAAAqnB,EAAAmB,GAAAL,MAAA18B,IAAAiiB,EAAAya,EAAA18B,EAAA8O,MAKA8sB,EAAAG,EAAA,EACAH,EAAAK,EAAA,EACAL,EAAAO,EAAA,EACAP,EAAAS,EAAA,EACAT,EAAAW,EAAA,GACAX,EAAAa,EAAA,GACAb,EAAAoB,EAAA,GACApB,EAAAmB,EAAA,IACA7+B,EAAAD,QAAA29B,iBC3DA,IAAAhV,EAAA1oB,EAAAD,QAAA,oBAAAI,eAAAylB,WACAzlB,OAAA,oBAAA2C,WAAA8iB,WAAA9iB,KAAAw4B,SAAA,cAAAA,GACA,iBAAAyD,UAAArW,oBCHA,IAAAsW,EAAqB3+B,EAAQ,IAC7B4+B,EAAqB5+B,EAAQ,IAC7B6+B,EAAqB7+B,EAAQ,IAC7B8+B,EAAAl+B,OAAAC,eAEAnB,EAAAq/B,EAAY/+B,EAAQ,IAAgBY,OAAAC,eAAA,SAAAm+B,EAAAlB,EAAAmB,GAIpC,GAHAN,EAAAK,GACAlB,EAAAe,EAAAf,GAAA,GACAa,EAAAM,GACAL,EAAA,IACA,OAAAE,EAAAE,EAAAlB,EAAAmB,GACG,MAAA7sB,IACH,WAAA6sB,GAAA,QAAAA,EAAA,MAAA58B,UAAA,4BAEA,MADA,UAAA48B,IAAAD,EAAAlB,GAAAmB,EAAA99B,OACA69B,oBCbA,IAAAE,EAAcl/B,EAAQ,IACtBm/B,EAAcn/B,EAAQ,IACtBL,EAAAD,QAAA,SAAA0/B,GACA,OAAAF,EAAAC,EAAAC,uGCJAp/B,EAAA,SACAA,EAAA,wDAEA,IAAMq/B,EAAa,CAOjBC,YAPiB,SAOLh6B,GAA0C,IAAnCoQ,EAAmC1P,UAAAvC,OAAA,QAAAoL,IAAA7I,UAAA,GAAAA,UAAA,GAAzB,CAAEu5B,eAAe,GACtC7R,EAAQhoB,KAAK1C,aAAe0C,KAAK1C,YAAYgT,MAAQ,GACrDwpB,EAAS95B,KAAKjF,MAAQitB,EACtB6N,EAAO71B,KAAK61B,MAAQ71B,KAAKsvB,MAAQtvB,KAAKsvB,KAAKuG,MAAQ71B,KAAK6Y,WAAa7Y,KAAK6Y,UAAUgd,KAEpFkE,EAAkBD,EAAlB,KAA4Bl6B,GAASA,EAAMo6B,MAAQ,WACnDC,EAAe,CACnBC,YAAa,GACbC,MAAOC,EAAA59B,QAAY69B,OAAOC,MAC1BR,SACA9R,QACAuS,IAAK,IAGDC,GAAY,EAAAtqB,EAAA1T,SAAc,GAAIy9B,EAAcr6B,EAAO,CACvDo6B,KAAMhqB,EAAQ6pB,cAAgBE,EAAen6B,EAAMo6B,OAGrD,GAAInE,GAAQ2E,EAAUL,OAASC,EAAA59B,QAAY69B,OAAOC,QAAUE,EAAUC,GAAI,CACxE,IAAMC,EAAY,CAChBC,MAAO9E,EAAKn6B,EAAE,uBACdk/B,QAAS/E,EAAKn6B,EAAE,0BAElB8+B,EAAUC,GAAKC,EAQjB,OALI16B,KAAK81B,YACP91B,KAAK81B,YAAY8D,YAAYY,GAE7B76B,EAAAnD,QAAIq+B,KAAKf,EAAQ,sCAAuCU,GAEnDA,cAIIb,uCC7Cf,IAAAvjB,EAAe9b,EAAQ,IACvBL,EAAAD,QAAA,SAAA0/B,GACA,IAAAtjB,EAAAsjB,GAAA,MAAA/8B,UAAA+8B,EAAA,sBACA,OAAAA,oBCFAz/B,EAAAD,SAAkBM,EAAQ,GAARA,CAAkB,WACpC,OAAsE,GAAtEY,OAAAC,eAAA,GAAiC,KAAQE,IAAA,WAAgB,YAAas9B,mBCFtE,IAAAt8B,EAAA,GAAuBA,eACvBpC,EAAAD,QAAA,SAAA0/B,EAAA39B,GACA,OAAAM,EAAA1B,KAAA++B,EAAA39B,0ICFAoC,EAAA7D,EAAA,OACAA,EAAA,SACAA,EAAA,4DAEqBwgC,cAGnB,SAAAA,EAAYxL,IAAM,EAAAvlB,EAAAvN,SAAAwD,KAAA86B,GAAA,IAAA16B,GAAA,EAAA8J,EAAA1N,SAAAwD,KAChB+1B,EAAAp7B,KAAAqF,KAAMsvB,EAAKtf,UADK,OAEhB5P,EAAKkvB,KAAOA,EACZlvB,EAAK26B,SAAU,EACf36B,EAAK46B,aACL56B,EAAKi1B,SALWj1B,8EAFE,OAAOJ,KAAKsvB,KAAKwG,4BAUrCkF,oCAEAC,gCAAyB,MAAO,gBAEhCC,kBACOl7B,KAAK+6B,UACR/6B,KAAKg7B,aACLh7B,KAAK2R,IAAImL,OACT9c,KAAK+6B,SAAU,gBAInBnS,mBACE5oB,KAAKgB,gBACLhB,KAAK2R,IAAIqM,OACThe,KAAK+6B,SAAU,eAGjB1F,kBACE,OAAOr1B,8BA9BU86B,GAkCrB,EAAA5qB,EAAA1T,SAAcs+B,EAAa1+B,UAA3Bg7B,EAAA56B,SAEAs+B,EAAatyB,OAAS,SAASoB,GAC7B,OAAO,EAAAzL,EAAAqK,QAAOsyB,EAAclxB,IAG9BkxB,EAAaxqB,KAAO,yDC5CpBrW,EAAOD,aAAU,mBCAjB,IAAAo/B,EAAiB9+B,EAAQ,IACzB6gC,EAAiB7gC,EAAQ,IACzBL,EAAAD,QAAiBM,EAAQ,IAAgB,SAAA4B,EAAAH,EAAAN,GACzC,OAAA29B,EAAAC,EAAAn9B,EAAAH,EAAAo/B,EAAA,EAAA1/B,KACC,SAAAS,EAAAH,EAAAN,GAED,OADAS,EAAAH,GAAAN,EACAS,kBCNAjC,EAAAD,QAAA,SAAA2T,GACA,IACA,QAAAA,IACG,MAAAjB,GACH,4BCHA,IAAA0uB,EAAkB9gC,EAAQ,IAC1B+gC,EAAkB/gC,EAAQ,IAE1BL,EAAAD,QAAAkB,OAAAk3B,MAAA,SAAAkH,GACA,OAAA8B,EAAA9B,EAAA+B,mFCLA,MAAAC,EAAAhhC,EAAA,gNCIAA,EAAA,IACA6D,EAAA7D,EAAA,OACAA,EAAA,wDAEA,IAAMihC,EAAwB,iBASTC,cA2EnB,SAAAA,EAAYxrB,IAAS,EAAAjG,EAAAvN,SAAAwD,KAAAw7B,GAAA,IAAAp7B,GAAA,EAAA8J,EAAA1N,SAAAwD,KACnBy7B,EAAA9gC,KAAAqF,KAAMgQ,IADa,OAEnB5P,EAAKs7B,KAAM,EAAAv9B,EAAAmE,UAAS,KACpBlC,EAAKu7B,iBACLv7B,EAAKw7B,iBAJcx7B,0EAjDL,MAAO,qCAqBR,MAAO,sCAkBH,MAAO,mBA2B1BsS,WAAEuE,GACA,OAAOjX,KAAK2R,IAAIvI,KAAK6N,gBAQvBoe,kBACE,OAAOr1B,kBAQT67B,mBAIE,OAHA77B,KAAK2R,IAAIxQ,SACTnB,KAAKgB,gBACLhB,KAAK87B,mBACE97B,kBAUT+7B,oBAAW9rB,EAAS2d,GAKlB,OAJI5tB,KAAK2R,KAAK3R,KAAK87B,mBACnB97B,KAAK2R,IAAMJ,EAAA/U,QAAEsY,MAAMoE,IAAIjJ,GAAWA,GAAU,EAAAsB,EAAA/U,SAAEyT,GAC9CjQ,KAAKqL,GAAKrL,KAAK2R,IAAI,IACF,IAAbic,GAAoB5tB,KAAK47B,iBACtB57B,kBAST47B,wBAAe58B,GACb,IAAMA,KAAWA,EAASgB,KAAKhB,QAAU,OAAOgB,KAEhD,IAAK,IAAMjE,KADXiE,KAAK87B,mBACa98B,EAAQ,CACxB,IAAIqD,EAASrD,EAAOjD,GAEpB,GADKsG,GAAUA,EAAO/E,cAAgBi4B,WAAWlzB,EAASrC,KAAKhB,EAAOjD,KACjEsG,EAAL,CAEA,IAAM+K,EAAQrR,EAAIqR,MAAMmuB,GACpBh6B,EAAY6L,EAAM,GAAI6J,EAAW7J,EAAM,GAC3C7L,GAAa,kBAAoBvB,KAAK07B,IACrB,KAAbzkB,EACFjX,KAAK2R,IAAI7R,GAAGyB,EAAWc,EAAOrG,KAAKgE,OAEnCA,KAAK2R,IAAI7R,GAAGyB,EAAW0V,EAAU5U,EAAOrG,KAAKgE,QAGjD,OAAOA,kBAQT87B,4BAEE,OADA97B,KAAK2R,IAAItR,IAAI,kBAAoBL,KAAK07B,KAC/B17B,kBAQT27B,0BACE,GAAK37B,KAAKqL,GAMDrL,KAAK+7B,WAAW/7B,KAAKqL,IAAI,OANpB,CACZ,IAAM6mB,EAAQ3gB,EAAA/U,QAAEgM,OAAO,GAAIxI,KAAKg8B,YAC5Bh8B,KAAKoB,KAAI8wB,EAAM9wB,GAAKpB,KAAKoB,IACzBpB,KAAK0X,YAAWwa,EAAA,MAAiBlyB,KAAK0X,WAC1C,IAAM/F,EAAMxT,EAAAkT,YAAYvV,OAAOkE,KAAK4R,SAASqH,KAAKiZ,GAClDlyB,KAAK+7B,WAAWpqB,GAAK,6BAnLN6pB,qCCjBrBvhC,EAAAD,QAAA,SAAA0/B,GACA,uBAAAA,EAAA,OAAAA,EAAA,mBAAAA,kBCDAz/B,EAAAD,QAAA,SAAAiiC,EAAAxgC,GACA,OACAL,aAAA,EAAA6gC,GACAz+B,eAAA,EAAAy+B,GACA1+B,WAAA,EAAA0+B,GACAxgC,yBCLAxB,EAAAD,QAAA,kFCAA,MAAAkiC,EAAA5hC,EAAA,gKCAA,MAAA6hC,EAAA7hC,EAAA,sNCAA6D,EAAA7D,EAAA,OACAA,EAAA,SACAA,EAAA,4DAEqB8hC,cAGnB,SAAAA,EAAY9M,IAAM,EAAAvlB,EAAAvN,SAAAwD,KAAAo8B,GAAA,IAAAh8B,GAAA,EAAA8J,EAAA1N,SAAAwD,KAChBy7B,EAAA9gC,KAAAqF,KAAMsvB,EAAKtf,UADK,OAEhB5P,EAAKkvB,KAAOA,EACZlvB,EAAK26B,SAAU,EACf36B,EAAK46B,aAJW56B,8EAFE,OAAOJ,KAAKsvB,KAAKwG,4BASrCkF,oCAEAE,kBACOl7B,KAAK+6B,UACR/6B,KAAKg7B,aACLh7B,KAAK+6B,SAAU,gBAInBnS,mBACM5oB,KAAK+6B,UACP/6B,KAAKgB,gBACLhB,KAAK+6B,SAAU,gBAInBE,gCAAyB,MAAO,gBAEhCY,mBACE77B,KAAKgB,yCA7BYo7B,GAiCrB,EAAAlsB,EAAA1T,SAAc4/B,EAAWhgC,UAAzBg7B,EAAA56B,SAEA4/B,EAAW5zB,OAAS,SAASoB,GAC3B,OAAO,EAAAzL,EAAAqK,QAAO4zB,EAAYxyB,IAG5BwyB,EAAW9rB,KAAO,0CC3ClB,IAAAlP,EAAA,EACAi7B,EAAAxc,KAAAyc,SACAriC,EAAAD,QAAA,SAAA+B,GACA,gBAAA4C,YAAAwK,IAAApN,EAAA,GAAAA,EAAA,QAAAqF,EAAAi7B,GAAAxnB,SAAA,qBCHA7a,EAAAq/B,EAAA,GAAckD,sCCCd,IAAA9C,EAAcn/B,EAAQ,IACtBL,EAAAD,QAAA,SAAA0/B,GACA,OAAAx+B,OAAAu+B,EAAAC,mCCDA1/B,EAAA4B,YAAA,EAEA,IAEA4gC,EAAAt/B,EAFgB5C,EAAQ,MAMxBmiC,EAAAv/B,EAFc5C,EAAQ,MAItBoiC,EAAA,mBAAAD,EAAAjgC,SAAA,iBAAAggC,EAAAhgC,QAAA,SAAAI,GAAiH,cAAAA,GAAqB,SAAAA,GAAmB,OAAAA,GAAA,mBAAA6/B,EAAAjgC,SAAAI,EAAAU,cAAAm/B,EAAAjgC,SAAAI,IAAA6/B,EAAAjgC,QAAAJ,UAAA,gBAAAQ,GAEzJ,SAAAM,EAAAN,GAAsC,OAAAA,KAAAhB,WAAAgB,EAAA,CAAuCJ,QAAAI,GAE7E5C,EAAAwC,QAAA,mBAAAigC,EAAAjgC,SAAA,WAAAkgC,EAAAF,EAAAhgC,SAAA,SAAAI,GACA,gBAAAA,EAAA,YAAA8/B,EAAA9/B,IACC,SAAAA,GACD,OAAAA,GAAA,mBAAA6/B,EAAAjgC,SAAAI,EAAAU,cAAAm/B,EAAAjgC,SAAAI,IAAA6/B,EAAAjgC,QAAAJ,UAAA,kBAAAQ,EAAA,YAAA8/B,EAAA9/B,wICfM+/B,EACJ,SAAAA,KAAc,EAAA5yB,EAAAvN,SAAAwD,KAAA28B,GACZ38B,KAAKgQ,QAAU,GACfhQ,KAAK48B,gBAAkB,GACvB58B,KAAK68B,YAAc,CAAEjd,MAAO,EAAGG,OAAQ,IAI3C4c,EAAWG,SAAW,GAEtBH,EAAWI,YAAc,SAACC,GACxB,OAAOL,EAAWG,SAASE,KAAcL,EAAWG,SAASE,GAAY,IAAIL,cAGhEA,4JCdfx+B,EAAA7D,EAAA,OACAA,EAAA,SACAA,EAAA,4DASqB2iC,cAGnB,SAAAA,EAAYpkB,IAAW,EAAA9O,EAAAvN,SAAAwD,KAAAi9B,GAAA,IAAA78B,GAAA,EAAA8J,EAAA1N,SAAAwD,KACrB+1B,EAAAp7B,KAAAqF,KAAM6Y,EAAU7I,UADK,OAErB5P,EAAKyY,UAAYA,EACjBzY,EAAK26B,SAAU,EACf36B,EAAK46B,aAJgB56B,8EAFH,OAAOJ,KAAK6Y,UAAUid,4BAS1CoF,kBACOl7B,KAAK+6B,UACR/6B,KAAKg7B,aACLh7B,KAAK2R,IAAImL,OACT9c,KAAK+6B,SAAU,gBAInBnS,mBACE5oB,KAAKgB,gBACLhB,KAAK2R,IAAIqM,OACThe,KAAK+6B,SAAU,eAGjBC,gDAxBmBiC,GA4BrB,EAAA/sB,EAAA1T,SAAcygC,EAAkB7gC,UAAhCg7B,EAAA56B,SAEAygC,EAAkBz0B,OAAS,SAASoB,GAClC,OAAO,EAAAzL,EAAAqK,QAAOy0B,EAAmBrzB,IAGnCqzB,EAAkB3sB,KAAO,0KCjDzBhW,EAAA,KACA6D,EAAA7D,EAAA,OACAA,EAAA,4DASqB4iC,cAGnB,SAAAA,EAAYrkB,IAAW,EAAA9O,EAAAvN,SAAAwD,KAAAk9B,GAAA,IAAA98B,GAAA,EAAA8J,EAAA1N,SAAAwD,KACrBy7B,EAAA9gC,KAAAqF,KAAM6Y,EAAU7I,UADK,OAErB5P,EAAKyY,UAAYA,EACjBzY,EAAK26B,SAAU,EACf36B,EAAK46B,aAJgB56B,8EAFH,OAAOJ,KAAK6Y,UAAUid,4BAS1CoF,kBACOl7B,KAAK+6B,UACR/6B,KAAKg7B,aACLh7B,KAAK+6B,SAAU,gBAInBnS,mBACM5oB,KAAK+6B,UACP/6B,KAAKgB,gBACLhB,KAAK+6B,SAAU,gBAInBC,oCAEAa,mBACE77B,KAAKgB,yCA3BYk8B,GA+BrB,EAAAhtB,EAAA1T,SAAc0gC,EAAgB9gC,UAA9Bg7B,EAAA56B,SAEA0gC,EAAgB10B,OAAS,SAASoB,GAChC,OAAO,EAAAzL,EAAAqK,QAAO00B,EAAiBtzB,IAGjCszB,EAAgB5sB,KAAO,iDC/CvB,IAAA6sB,EAAgB7iC,EAAQ,KACxBL,EAAAD,QAAA,SAAAkV,EAAAkuB,EAAAr/B,GAEA,GADAo/B,EAAAjuB,QACA/F,IAAAi0B,EAAA,OAAAluB,EACA,OAAAnR,GACA,uBAAA46B,GACA,OAAAzpB,EAAAvU,KAAAyiC,EAAAzE,IAEA,uBAAAA,EAAAC,GACA,OAAA1pB,EAAAvU,KAAAyiC,EAAAzE,EAAAC,IAEA,uBAAAD,EAAAC,EAAA/9B,GACA,OAAAqU,EAAAvU,KAAAyiC,EAAAzE,EAAAC,EAAA/9B,IAGA,kBACA,OAAAqU,EAAAxQ,MAAA0+B,EAAA98B,8BChBA,IAAA8V,EAAe9b,EAAQ,IAGvBL,EAAAD,QAAA,SAAA0/B,EAAAxB,GACA,IAAA9hB,EAAAsjB,GAAA,OAAAA,EACA,IAAAxqB,EAAAgL,EACA,GAAAge,GAAA,mBAAAhpB,EAAAwqB,EAAA7kB,YAAAuB,EAAA8D,EAAAhL,EAAAvU,KAAA++B,IAAA,OAAAxf,EACA,sBAAAhL,EAAAwqB,EAAA2D,WAAAjnB,EAAA8D,EAAAhL,EAAAvU,KAAA++B,IAAA,OAAAxf,EACA,IAAAge,GAAA,mBAAAhpB,EAAAwqB,EAAA7kB,YAAAuB,EAAA8D,EAAAhL,EAAAvU,KAAA++B,IAAA,OAAAxf,EACA,MAAAvd,UAAA,2DCVA,IAAAkY,EAAA,GAAiBA,SAEjB5a,EAAAD,QAAA,SAAA0/B,GACA,OAAA7kB,EAAAla,KAAA++B,GAAAt7B,MAAA,sBCFAnE,EAAAD,QAAA,SAAA0/B,GACA,GAAAvwB,MAAAuwB,EAAA,MAAA/8B,UAAA,yBAAA+8B,GACA,OAAAA,kBCFA,IAAA4D,EAAAzd,KAAAyd,KACAC,EAAA1d,KAAA0d,MACAtjC,EAAAD,QAAA,SAAA0/B,GACA,OAAArf,MAAAqf,MAAA,GAAAA,EAAA,EAAA6D,EAAAD,GAAA5D,qBCJA,IAAA8D,EAAaljC,EAAQ,GAARA,CAAmB,QAChCo7B,EAAap7B,EAAQ,IACrBL,EAAAD,QAAA,SAAA+B,GACA,OAAAyhC,EAAAzhC,KAAAyhC,EAAAzhC,GAAA25B,EAAA35B,sBCHA,IAAA4mB,EAAaroB,EAAQ,IAErBm7B,EAAA9S,EADA,wBACAA,EADA,sBACA,IACA1oB,EAAAD,QAAA,SAAA+B,GACA,OAAA05B,EAAA15B,KAAA05B,EAAA15B,GAAA,oBCHA9B,EAAAD,QAAA,gGAEA8E,MAAA,oBCHA9E,EAAAq/B,EAAAn+B,OAAAuiC,uCCAAxjC,EAAAD,QAAA,CAAkBwC,QAAYlC,EAAQ,KAAgCsB,YAAA,iCCCtE,IAAA8hC,EAAWpjC,EAAQ,IAARA,EAAsB,GAGjCA,EAAQ,GAARA,CAAwBwb,OAAA,kBAAA6nB,GACxB39B,KAAA49B,GAAA9nB,OAAA6nB,GACA39B,KAAA69B,GAAA,GAEC,WACD,IAEAC,EAFAxE,EAAAt5B,KAAA49B,GACA/7B,EAAA7B,KAAA69B,GAEA,OAAAh8B,GAAAy3B,EAAAv7B,OAAA,CAA+BtC,WAAA0N,EAAAmgB,MAAA,IAC/BwU,EAAAJ,EAAApE,EAAAz3B,GACA7B,KAAA69B,IAAAC,EAAA//B,OACA,CAAUtC,MAAAqiC,EAAAxU,MAAA,qBCfVrvB,EAAAD,SAAA,mBCCA,IAAAi/B,EAAkB3+B,EAAQ,IAC1ByjC,EAAkBzjC,EAAQ,KAC1B+gC,EAAkB/gC,EAAQ,IAC1B0jC,EAAkB1jC,EAAQ,GAARA,CAAuB,YACzC2jC,EAAA,aAIAC,EAAA,WAEA,IAIAC,EAJAC,EAAe9jC,EAAQ,GAARA,CAAuB,UACtCE,EAAA6gC,EAAAt9B,OAcA,IAVAqgC,EAAAnhB,MAAAD,QAAA,OACE1iB,EAAQ,KAASge,YAAA8lB,GACnBA,EAAAtvB,IAAA,eAGAqvB,EAAAC,EAAAC,cAAArzB,UACAqc,OACA8W,EAAAG,MAAAC,uCACAJ,EAAAK,QACAN,EAAAC,EAAArG,EACAt9B,YAAA0jC,EAAA,UAAA7C,EAAA7gC,IACA,OAAA0jC,KAGAjkC,EAAAD,QAAAkB,OAAAY,QAAA,SAAAw9B,EAAAmF,GACA,IAAAztB,EAQA,OAPA,OAAAsoB,GACA2E,EAAA,UAAAhF,EAAAK,GACAtoB,EAAA,IAAAitB,EACAA,EAAA,eAEAjtB,EAAAgtB,GAAA1E,GACGtoB,EAAAktB,SACH/0B,IAAAs1B,EAAAztB,EAAA+sB,EAAA/sB,EAAAytB,qBCvCA,IAAAC,EAAUpkC,EAAQ,IAAc++B,EAChCxd,EAAUvhB,EAAQ,IAClBqkC,EAAUrkC,EAAQ,GAARA,CAAgB,eAE1BL,EAAAD,QAAA,SAAA0/B,EAAAkF,EAAAC,GACAnF,IAAA7d,EAAA6d,EAAAmF,EAAAnF,IAAAt9B,UAAAuiC,IAAAD,EAAAhF,EAAAiF,EAAA,CAAkEnhC,cAAA,EAAA/B,MAAAmjC,sBCLlE5kC,EAAAq/B,EAAY/+B,EAAQ,qBCApB,IAAAqoB,EAAqBroB,EAAQ,IAC7Bg1B,EAAqBh1B,EAAQ,GAC7BwkC,EAAqBxkC,EAAQ,IAC7BykC,EAAqBzkC,EAAQ,IAC7Ba,EAAqBb,EAAQ,IAAc++B,EAC3Cp/B,EAAAD,QAAA,SAAAe,GACA,IAAAikC,EAAA1P,EAAA/zB,SAAA+zB,EAAA/zB,OAAAujC,EAAA,GAA0Dnc,EAAApnB,QAAA,IAC1D,KAAAR,EAAAkkC,OAAA,IAAAlkC,KAAAikC,GAAA7jC,EAAA6jC,EAAAjkC,EAAA,CAAgFU,MAAAsjC,EAAA1F,EAAAt+B,uBCPhF,IAAAmkC,EAAqB5kC,EAAQ,IAC7B6gC,EAAqB7gC,EAAQ,IAC7B6kC,EAAqB7kC,EAAQ,IAC7B6+B,EAAqB7+B,EAAQ,IAC7BuhB,EAAqBvhB,EAAQ,IAC7B4+B,EAAqB5+B,EAAQ,IAC7B8kC,EAAAlkC,OAAAmkC,yBAEArlC,EAAAq/B,EAAY/+B,EAAQ,IAAgB8kC,EAAA,SAAA9F,EAAAlB,GAGpC,GAFAkB,EAAA6F,EAAA7F,GACAlB,EAAAe,EAAAf,GAAA,GACAc,EAAA,IACA,OAAAkG,EAAA9F,EAAAlB,GACG,MAAA1rB,IACH,GAAAmP,EAAAyd,EAAAlB,GAAA,OAAA+C,GAAA+D,EAAA7F,EAAA1+B,KAAA2+B,EAAAlB,GAAAkB,EAAAlB,oFCdA,MAAAkH,EAAAhlC,EAAA,mDAEe,CAAEilC,oLCQjB,IAAMvgC,EAAS,MAFf1E,EAAA,IAEekC,SAEMgjC,kDAGrBA,EAAS1/B,GAAK,SAAS/E,EAAMyE,EAAUO,GACrCf,EAAOc,GAAG/E,EAAMyE,EAAUO,IAI5By/B,EAASr/B,KAAO,SAASpF,EAAMyE,EAAUO,GACvCf,EAAOmB,KAAKpF,EAAMyE,EAAUO,IAI9By/B,EAASn/B,IAAM,SAAStF,EAAMyE,EAAUO,GACtCf,EAAOqB,IAAItF,EAAMyE,EAAUO,IAI7By/B,EAAS5+B,QAAU,SAAS7F,GAAe,QAAAiP,EAAA1J,UAAAvC,OAAN0hC,EAAMphC,MAAA2L,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAANw1B,EAAMx1B,EAAA,GAAA3J,UAAA2J,GACzCjL,EAAO4B,QAAQlC,MAAMM,EAArB,CAA8BjE,GAA9B4D,OAAuC8gC,KAIzCD,EAASx+B,cAAgB,SAASpE,EAAK7B,EAAMyE,GAC3CR,EAAOgC,cAAcpE,EAAK7B,EAAMyE,uGCpClC,MAAAkgC,EAAAplC,EAAA,gGCCA,IAOAqlC,EACAC,EARAzQ,EAAAl1B,EAAAD,QAAA,GAUA,SAAA6lC,IACA,UAAA9uB,MAAA,mCAEA,SAAA+uB,IACA,UAAA/uB,MAAA,qCAsBA,SAAAgvB,EAAAje,GACA,GAAA6d,IAAAxwB,WAEA,OAAAA,WAAA2S,EAAA,GAGA,IAAA6d,IAAAE,IAAAF,IAAAxwB,WAEA,OADAwwB,EAAAxwB,WACAA,WAAA2S,EAAA,GAEA,IAEA,OAAA6d,EAAA7d,EAAA,GACK,MAAApV,GACL,IAEA,OAAAizB,EAAAhlC,KAAA,KAAAmnB,EAAA,GACS,MAAApV,GAET,OAAAizB,EAAAhlC,KAAAqF,KAAA8hB,EAAA,MAvCA,WACA,IAEA6d,EADA,mBAAAxwB,WACAA,WAEA0wB,EAEK,MAAAnzB,GACLizB,EAAAE,EAEA,IAEAD,EADA,mBAAArwB,aACAA,aAEAuwB,EAEK,MAAApzB,GACLkzB,EAAAE,GAjBA,GAwEA,IAEAE,EAFAC,EAAA,GACAC,GAAA,EAEAC,GAAA,EAEA,SAAAC,IACAF,GAAAF,IAGAE,GAAA,EACAF,EAAAjiC,OACAkiC,EAAAD,EAAArhC,OAAAshC,GAEAE,GAAA,EAEAF,EAAAliC,QACAsiC,KAIA,SAAAA,IACA,IAAAH,EAAA,CAGA,IAAA7vB,EAAA0vB,EAAAK,GACAF,GAAA,EAGA,IADA,IAAAhpB,EAAA+oB,EAAAliC,OACAmZ,GAAA,CAGA,IAFA8oB,EAAAC,EACAA,EAAA,KACAE,EAAAjpB,GACA8oB,GACAA,EAAAG,GAAA5gC,MAGA4gC,GAAA,EACAjpB,EAAA+oB,EAAAliC,OAEAiiC,EAAA,KACAE,GAAA,EAnEA,SAAAI,GACA,GAAAV,IAAArwB,aAEA,OAAAA,aAAA+wB,GAGA,IAAAV,IAAAE,IAAAF,IAAArwB,aAEA,OADAqwB,EAAArwB,aACAA,aAAA+wB,GAEA,IAEAV,EAAAU,GACK,MAAA5zB,GACL,IAEA,OAAAkzB,EAAAjlC,KAAA,KAAA2lC,GACS,MAAA5zB,GAGT,OAAAkzB,EAAAjlC,KAAAqF,KAAAsgC,KAgDAC,CAAAlwB,IAiBA,SAAAmwB,EAAA1e,EAAApJ,GACA1Y,KAAA8hB,MACA9hB,KAAA0Y,QAYA,SAAAkC,KA5BAuU,EAAAsR,SAAA,SAAA3e,GACA,IAAA7iB,EAAA,IAAAZ,MAAAiC,UAAAvC,OAAA,GACA,GAAAuC,UAAAvC,OAAA,EACA,QAAAvD,EAAA,EAAuBA,EAAA8F,UAAAvC,OAAsBvD,IAC7CyE,EAAAzE,EAAA,GAAA8F,UAAA9F,GAGAylC,EAAA//B,KAAA,IAAAsgC,EAAA1e,EAAA7iB,IACA,IAAAghC,EAAAliC,QAAAmiC,GACAH,EAAAM,IASAG,EAAApkC,UAAAmD,IAAA,WACAS,KAAA8hB,IAAApjB,MAAA,KAAAsB,KAAA0Y,QAEAyW,EAAAwL,MAAA,UACAxL,EAAAuR,SAAA,EACAvR,EAAAwR,IAAA,GACAxR,EAAAyR,KAAA,GACAzR,EAAAI,QAAA,GACAJ,EAAA0R,SAAA,GAIA1R,EAAArvB,GAAA8a,EACAuU,EAAA2R,YAAAlmB,EACAuU,EAAAhvB,KAAAya,EACAuU,EAAA9uB,IAAAua,EACAuU,EAAA4R,eAAAnmB,EACAuU,EAAA6R,mBAAApmB,EACAuU,EAAA8R,KAAArmB,EAEAuU,EAAA+R,QAAA,SAAAnmC,GACA,UAAAgW,MAAA,qCAGAoe,EAAAgS,IAAA,WAA2B,WAC3BhS,EAAAiS,MAAA,SAAAC,GACA,UAAAtwB,MAAA,mCAEAoe,EAAAmS,MAAA,WAA4B,2BCnL5BrnC,EAAAD,SAAkBM,EAAQ,MAAsBA,EAAQ,GAARA,CAAkB,WAClE,OAAmG,GAAnGY,OAAAC,eAA+Bb,EAAQ,GAARA,CAAuB,YAAgBe,IAAA,WAAgB,YAAas9B,qBCDnG,IAAAviB,EAAe9b,EAAQ,IACvB0Q,EAAe1Q,EAAQ,IAAW0Q,SAElC2Q,EAAAvF,EAAApL,IAAAoL,EAAApL,EAAAyF,eACAxW,EAAAD,QAAA,SAAA0/B,GACA,OAAA/d,EAAA3Q,EAAAyF,cAAAipB,GAAA,qBCLA,IAAA7d,EAAmBvhB,EAAQ,IAC3B6kC,EAAmB7kC,EAAQ,IAC3BinC,EAAmBjnC,EAAQ,IAARA,EAA2B,GAC9C0jC,EAAmB1jC,EAAQ,GAARA,CAAuB,YAE1CL,EAAAD,QAAA,SAAAkC,EAAA2C,GACA,IAGA9C,EAHAu9B,EAAA6F,EAAAjjC,GACA1B,EAAA,EACAwW,EAAA,GAEA,IAAAjV,KAAAu9B,EAAAv9B,GAAAiiC,GAAAniB,EAAAyd,EAAAv9B,IAAAiV,EAAA9Q,KAAAnE,GAEA,KAAA8C,EAAAd,OAAAvD,GAAAqhB,EAAAyd,EAAAv9B,EAAA8C,EAAArE,SACA+mC,EAAAvwB,EAAAjV,IAAAiV,EAAA9Q,KAAAnE,IAEA,OAAAiV,oBCdA,IAAAwwB,EAAUlnC,EAAQ,IAClBL,EAAAD,QAAAkB,OAAA,KAAAqhC,qBAAA,GAAArhC,OAAA,SAAAw+B,GACA,gBAAA8H,EAAA9H,KAAA56B,MAAA,IAAA5D,OAAAw+B,qBCFA,IAAA+H,EAAgBnnC,EAAQ,IACxBonC,EAAA7hB,KAAA6hB,IACAznC,EAAAD,QAAA,SAAA0/B,GACA,OAAAA,EAAA,EAAAgI,EAAAD,EAAA/H,GAAA,sCCHA,IAAA/B,EAAcr9B,EAAQ,IACtBg1B,EAAch1B,EAAQ,GACtBqnC,EAAcrnC,EAAQ,IACtBL,EAAAD,QAAA,SAAA4nC,EAAAj0B,GACA,IAAAuB,GAAAogB,EAAAp0B,QAAA,IAA8B0mC,IAAA1mC,OAAA0mC,GAC9BC,EAAA,GACAA,EAAAD,GAAAj0B,EAAAuB,GACAyoB,IAAAO,EAAAP,EAAAG,EAAA6J,EAAA,WAAmDzyB,EAAA,KAAS,SAAA2yB,kCCP5D,IAAA/C,EAAqBxkC,EAAQ,IAC7Bq9B,EAAqBr9B,EAAQ,IAC7BwnC,EAAqBxnC,EAAQ,IAC7B0jB,EAAqB1jB,EAAQ,IAC7BuhB,EAAqBvhB,EAAQ,IAC7BynC,EAAqBznC,EAAQ,IAC7B0nC,EAAqB1nC,EAAQ,KAC7B2nC,EAAqB3nC,EAAQ,IAC7Bgc,EAAqBhc,EAAQ,KAC7B4nC,EAAqB5nC,EAAQ,GAARA,CAAgB,YACrC6nC,IAAA,GAAA/P,MAAA,WAAAA,QAKAgQ,EAAA,WAA4B,OAAApiC,MAE5B/F,EAAAD,QAAA,SAAAqoC,EAAAC,EAAA5lC,EAAA2hB,EAAAkkB,EAAAC,EAAAC,GACAT,EAAAtlC,EAAA4lC,EAAAjkB,GACA,IAeAqkB,EAAA3mC,EAAA4mC,EAfAC,EAAA,SAAAC,GACA,IAAAV,GAAAU,KAAAC,EAAA,OAAAA,EAAAD,GACA,OAAAA,GACA,IAVA,OAWA,IAVA,SAUA,kBAA4C,WAAAnmC,EAAAsD,KAAA6iC,IACvC,kBAA2B,WAAAnmC,EAAAsD,KAAA6iC,KAEhClE,EAAA2D,EAAA,YACAS,EAdA,UAcAR,EACAS,GAAA,EACAF,EAAAT,EAAAjmC,UACA6mC,EAAAH,EAAAZ,IAAAY,EAnBA,eAmBAP,GAAAO,EAAAP,GACAW,EAAAD,GAAAL,EAAAL,GACAY,EAAAZ,EAAAQ,EAAAH,EAAA,WAAAM,OAAA/5B,EACAi6B,EAAA,SAAAd,GAAAQ,EAAAO,SAAAJ,EAwBA,GArBAG,IACAT,EAAArsB,EAAA8sB,EAAAzoC,KAAA,IAAA0nC,OACAnnC,OAAAkB,YAEA6lC,EAAAU,EAAAhE,GAAA,GAEAG,GAAAjjB,EAAA8mB,EAAAT,IAAAlkB,EAAA2kB,EAAAT,EAAAE,IAIAW,GAAAE,GAjCA,WAiCAA,EAAAloC,OACAioC,GAAA,EACAE,EAAA,WAAiC,OAAAD,EAAAtoC,KAAAqF,QAGjC8+B,IAAA2D,IAAAN,IAAAa,GAAAF,EAAAZ,IACAlkB,EAAA8kB,EAAAZ,EAAAgB,GAGAnB,EAAAO,GAAAY,EACAnB,EAAApD,GAAAyD,EACAG,EAMA,GALAG,EAAA,CACA5nB,OAAAioB,EAAAG,EAAAN,EA9CA,UA+CAxQ,KAAAoQ,EAAAU,EAAAN,EAhDA,QAiDAS,QAAAF,GAEAV,EAAA,IAAA1mC,KAAA2mC,EACA3mC,KAAA+mC,GAAAhB,EAAAgB,EAAA/mC,EAAA2mC,EAAA3mC,SACK47B,IAAAS,EAAAT,EAAAG,GAAAqK,GAAAa,GAAAV,EAAAI,GAEL,OAAAA,oBCpEAzoC,EAAAD,QAAiBM,EAAQ,qBCAzBA,EAAQ,KAMR,IALA,IAAAqoB,EAAoBroB,EAAQ,IAC5B0jB,EAAoB1jB,EAAQ,IAC5BynC,EAAoBznC,EAAQ,IAC5BgpC,EAAoBhpC,EAAQ,GAARA,CAAgB,eAEpCipC,EAAA,uEAAA/oC,EAAA,EAAwGA,EAAA,EAAOA,IAAA,CAC/G,IAAA8nC,EAAAiB,EAAA/oC,GACAgpC,EAAA7gB,EAAA2f,GACAQ,EAAAU,KAAApnC,UACA0mC,MAAAQ,IAAAtlB,EAAA8kB,EAAAQ,EAAAhB,GACAP,EAAAO,GAAAP,EAAA1jC,wBCVA,IAAA+8B,EAAiB9gC,EAAQ,IACzBmpC,EAAiBnpC,EAAQ,IAAkBqE,OAAA,sBAE3C3E,EAAAq/B,EAAAn+B,OAAAwoC,qBAAA,SAAApK,GACA,OAAA8B,EAAA9B,EAAAmK,qBCLAxpC,EAAAD,QAAA,CAAkBwC,QAAYlC,EAAQ,KAA2CsB,YAAA,oBCAjF3B,EAAAD,QAAA,CAAkBwC,QAAYlC,EAAQ,KAAkCsB,YAAA,oBCAxE,IAAA+nC,EAAgBrpC,EAAQ,KACxB4nC,EAAgB5nC,EAAQ,GAARA,CAAgB,YAChCynC,EAAgBznC,EAAQ,IACxBL,EAAAD,QAAiBM,EAAQ,GAASspC,kBAAA,SAAAlK,GAClC,GAAAvwB,MAAAuwB,EAAA,OAAAA,EAAAwI,IACAxI,EAAA,eACAqI,EAAA4B,EAAAjK,oFCNA,MAAAmK,EAAAvpC,EAAA,gKCIA,QAAAA,EAAA,QACAA,EAAA,wDAEA,IAAMwpC,EAAS,CACbC,YAAa,SAAS9mB,GAAgC,IAAzBjN,EAAyB1P,UAAAvC,OAAA,QAAAoL,IAAA7I,UAAA,GAAAA,UAAA,GAAjB,CAAE0jC,QAAS,IAC9C,OAAO,EAAAzyB,EAAA/U,SAAE,wCAAwCoc,MAAK,EAAAqrB,EAAAznC,SAASygB,EAAMpI,WAAf,CAA2B7E,gBAItE8zB,qJCbfxpC,EAAA,QACAA,EAAA,SACAA,EAAA,4DASM4pC,cAeJ,SAAAA,IAA8B,IAAlBl0B,EAAkB1P,UAAAvC,OAAA,QAAAoL,IAAA7I,UAAA,GAAAA,UAAA,GAAV,GAAIgvB,EAAMhvB,UAAA,MAAAyJ,EAAAvN,SAAAwD,KAAAkkC,GAAA,IAAA9jC,GAAA,EAAA8J,EAAA1N,SAAAwD,KAC5By7B,EAAA9gC,KAAAqF,KAAMgQ,IADsB,OAE5B5P,EAAKkvB,KAAOA,EAFgBlvB,uEAdjB,MAAO,yCAOlB,MAAO,CACLk6B,MAAO,QACP6J,KAAM,OACNC,KAAM,wBAcVxK,qBAAYzoB,GACLnR,KAAKsvB,KAIVtvB,KAAKsvB,KAAK1uB,QAAQyjC,EAAA7nC,QAAOwG,MAAOmO,GAH9BxR,EAAAnD,QAAIq+B,KAAK76B,KAAKjF,KAAM,2BAA4BoW,4BAOvC+yB,qGC7Cf,MAAAI,EAAAhqC,EAAA,gGCAAL,EAAAD,QAAA,SAAA8pB,GACA,uBAAAA,EACAA,GAGA,eAAAllB,KAAAklB,KACAA,IAAA1lB,MAAA,OAIA,cAAAQ,KAAAklB,GACA,IAAAA,EAAArW,QAAA,YAAAA,QAAA,iBAGAqW,mFCdA,MAAAygB,EAAAjqC,EAAA,+GCEAN,EAAA4B,YAAA,EAEA,IAIAgB,EAJA4nC,EAAYlqC,EAAQ,IAEpBmqC,GAEA7nC,EAFA4nC,IAEsC5nC,EAAAhB,WAAAgB,EAAA,CAAuCJ,QAAAI,GAE7E5C,EAAAwC,QAAA,SAAAoT,GACA,GAAAvR,MAAAwX,QAAAjG,GAAA,CACA,QAAApV,EAAA,EAAAkqC,EAAArmC,MAAAuR,EAAA7R,QAA6CvD,EAAAoV,EAAA7R,OAAgBvD,IAC7DkqC,EAAAlqC,GAAAoV,EAAApV,GAGA,OAAAkqC,EAEA,SAAAD,EAAAjoC,SAAAoT,qBClBA3V,EAAAD,QAAA,CAAkBwC,QAAYlC,EAAQ,KAA+BsB,YAAA,kFCArE,MAAA+oC,EAAArqC,EAAA,gKCAA,MAAAsqC,EAAAtqC,EAAA,gKCAA,MAAAuqC,EAAAvqC,EAAA,gKCAA,MAAAwqC,EAAAxqC,EAAA,gKCAA,MAAAyqC,EAAAzqC,EAAA,gKCAA,MAAA0qC,EAAA1qC,EAAA,gKCAA,MAAA2qC,EAAA3qC,EAAA,gKCAA,MAAA4qC,EAAA5qC,EAAA,gGCAAL,EAAAD,QAAA,mICAA,MAAAmrC,EAAA7qC,EAAA,gKCAA,MAAA8qC,EAAA9qC,EAAA,gKCIA,QAAAA,EAAA,SACAA,EAAA,QACAA,EAAA,QACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SAEAA,EAAA,iEAIe,CACb+qC,iBACA7F,mBACA3/B,iBACAylC,kBACA3I,qBACA4I,uBACArI,0BACAD,4BACAb,qBACAtB,uBACAlF,mBACA4P,oBACAC,eACAvB,sBACAwB,iBACAjO,qBACA+D,mBACAmK,gBACAC,4BACAC,gBACAC,kBACAC,cACAC,qBACAC,qBACAC,kBACAC,eACAC,6BACAC,sBACAC,kBACAC,cACAC,iBACAC,mCACAC,0BACA5C,iBACA6C,iBACApX,QAtCcqX,SAuCdpR,mBACA9iB,kLC/EFvU,EAAA7D,EAAA,OAEAA,EAAA,SACAA,EAAA,QACAA,EAAA,SACAA,EAAA,UACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,uDAEA,IAAM0pC,GAAU,EAAA7lC,EAAAyK,oBAAmB6E,QAAQ,YAAY,IA0BlC43B,cA4LnB,SAAAA,EAAYr1B,IAAS,EAAAjG,EAAAvN,SAAAwD,KAAAqlC,GAAA,IAAAjlC,GAAA,EAAA8J,EAAA1N,SAAAwD,KACnBy7B,EAAA9gC,KAAAqF,KAAMgQ,IAEA62B,EAAiB,CACrB7J,UAAU,EAAA7+B,EAAAmE,UAAS,IACnBwkC,eAAe,EACflnB,MAAO,IACPG,OAAQ,IACRikB,QAASA,EACT+C,qBAAsBj6B,EAAAtQ,QAAQwqC,SAC9BC,SAR6B,CAAEz1B,cAAe,IAF7B,OAYnBpR,EAAK02B,SAAWvlB,EAAA/U,QAAEgM,OAAOq+B,EAAgB72B,GACzC5P,EAAK4P,QAAQkgB,QAAU9vB,EAAK8mC,kBAAkBl3B,GACzC5P,EAAK4P,QAAQm3B,aAEhB/mC,EAAK4P,QAAQ+2B,sBAAuB,GAEjC3mC,EAAK4P,QAAQ+2B,uBAEhB3mC,EAAK4P,QAAQo3B,0BAA2B,GAE1ChnC,EAAKinC,8BAA8BjnC,EAAK4P,QAAQhR,QAChDoB,EAAKknC,aAAe,IAAAC,EAAA/qC,QAAA4D,GACpBA,EAAKonC,WAAaC,EAAAjrC,QAAWugC,YAAY38B,EAAK4P,QAAQgtB,UACtD58B,EAAKonC,WAAW3K,YAAc,CAAEjd,MAAO5P,EAAQ4P,MAAOG,OAAQ/P,EAAQ+P,QACtE3f,EAAKonC,WAAWx3B,QAAU5P,EAAK4P,QAC3B5P,EAAK4P,QAAQ03B,SACftnC,EAAKunC,YAAYvnC,EAAK4P,QAAQ03B,UAEvBtnC,EAAK4P,QAAQrG,QACpBvJ,EAAKwnC,SAASxnC,EAAK4P,QAAQrG,QA/BVvJ,uEA1LVynC,GAAU7nC,KAAKukC,QAAUsD,kBAKlC,OAHK7nC,KAAKukC,UACRvkC,KAAKukC,QAAU,IAAAuD,EAAAtrC,QAAWwD,KAAKgQ,QAAQ+3B,SAAW,GAAI/nC,KAAKgQ,QAAQgtB,WAE9Dh9B,KAAKukC,sCASZ,OAAOvkC,KAAKsvB,KAAK0Y,gBAAgBC,wCAWjC,OAAOjoC,KAAKsvB,KAAK0Y,gBAAgBE,0CASjC,QAASloC,KAAKmoC,6CASd,MAAO,CACLC,QAAS/D,EAAA7nC,QAAO+F,aAChB8lC,SAAUhE,EAAA7nC,QAAOgG,cACjB8lC,OAAQjE,EAAA7nC,QAAOkG,YACf6lC,QAASlE,EAAA7nC,QAAOmG,aAChB6lC,OAAQnE,EAAA7nC,QAAOoG,YACf6lC,QAASpE,EAAA7nC,QAAOqG,aAChB6lC,OAAQrE,EAAA7nC,QAAOsG,YACf6lC,QAAStE,EAAA7nC,QAAOuG,aAChB6lC,aAAcvE,EAAA7nC,QAAOyG,kBACrB4lC,eAAgBxE,EAAA7nC,QAAO0G,oBACvB4lC,oBAAqBzE,EAAA7nC,QAAO2G,2CA6KhCwkC,qBAAYD,GACV,IAAMr8B,EAAKL,SAASS,cAAci8B,GAIlC,OAHIr8B,GACFrL,KAAK4nC,SAASv8B,GAETrL,kBAST4nC,kBAAS33B,GAIP,OAHAjQ,KAAKgQ,QAAQ+4B,cAAgB94B,EAC7BjQ,KAAKsvB,KAAOtvB,KAAKsnC,aAAaxrC,SAC9BkE,KAAKgpC,qBACEhpC,kBAGTgpC,8BASE,OARKhpC,KAAKsvB,KAAK2Z,QAGbjpC,KAAKkpC,WAFLlpC,KAAKmC,aAAanC,KAAKsvB,KAAM+U,EAAA7nC,QAAO4I,WAAYpF,KAAKkpC,UAIvDlpC,KAAKkC,SAASlC,KAAKsvB,KAAM+U,EAAA7nC,QAAO0I,8BAA+BlF,KAAKmpC,mBACpEnpC,KAAKkC,SAASlC,KAAKsvB,KAAM+U,EAAA7nC,QAAO6I,gBAAiBrF,KAAKopC,qBACtDppC,KAAKkC,SAASlC,KAAKsvB,KAAM+U,EAAA7nC,QAAO8I,YAAatF,KAAKqpC,WAC3CrpC,kBAGTspC,uCACE,IAAMzwB,EAAY7Y,KAAKsvB,KAAK0Y,gBAY5B,OAXInvB,IACF7Y,KAAKkC,SAAS2W,EAAWwrB,EAAA7nC,QAAO8J,eAAgBtG,KAAKupC,SACrDvpC,KAAKkC,SAAS2W,EAAWwrB,EAAA7nC,QAAOgK,gBAAiBxG,KAAKwpC,UACtDxpC,KAAKkC,SAAS2W,EAAWwrB,EAAA7nC,QAAO+J,eAAgBvG,KAAKypC,SACrDzpC,KAAKkC,SAAS2W,EAAWwrB,EAAA7nC,QAAOiK,gBAAiBzG,KAAK0pC,UACtD1pC,KAAKkC,SAAS2W,EAAWwrB,EAAA7nC,QAAOuK,eAAgB/G,KAAK2pC,SACrD3pC,KAAKkC,SAAS2W,EAAWwrB,EAAA7nC,QAAOwJ,gBAAiBhG,KAAK4pC,UACtD5pC,KAAKkC,SAAS2W,EAAWwrB,EAAA7nC,QAAO4J,qBAAsBpG,KAAK6pC,eAC3D7pC,KAAKkC,SAAS2W,EAAWwrB,EAAA7nC,QAAOyK,iBAAkBjH,KAAK8pC,iBACvD9pC,KAAKkC,SAAS2W,EAAWwrB,EAAA7nC,QAAO0J,6BAA8BlG,KAAK+pC,uBAE9D/pC,kBAGTqnC,yCAA2D,IAAArQ,EAAAh3B,KAA7BgqC,EAA6B1pC,UAAAvC,OAAA,QAAAoL,IAAA7I,UAAA,GAAAA,UAAA,GAAjB,GAAItB,EAAasB,UAAAvC,OAAA,QAAAoL,IAAA7I,UAAA,GAAAA,UAAA,GAAJ,GAerD,OAdqB,EAAAI,EAAAlE,SAAYwtC,GAAWjsC,OAAS,IACrC,EAAA2C,EAAAlE,SAAYwC,GAAQoD,QAAQ,SAAC6nC,GAC3C,IAAMC,EAAYlT,EAAKmT,cAAcF,GACrCC,GAAalT,EAAK32B,IAAI6pC,EAAWlrC,EAAOirC,OAG1C,EAAAvpC,EAAAlE,SAAYwtC,GAAW5nC,QAAQ,SAAC6nC,GAC9B,IAAMC,EAAYlT,EAAKmT,cAAcF,GACrC,GAAIC,EAAW,CACb,IAAIE,EAAgBJ,EAAUC,IAC9BG,EAAyC,mBAAlBA,GAAgCA,IACtCpT,EAAKl3B,GAAGoqC,EAAWE,MAGjCpqC,kBAGTmpC,6BACEnpC,KAAKgB,gBACLhB,KAAKgpC,kCAGPE,oBACElpC,KAAKmoC,QAAS,EACdnoC,KAAKspC,8BACLtpC,KAAKY,QAAQyjC,EAAA7nC,QAAO+F,2BAGtB6mC,6BAAoBiB,GAClBrqC,KAAKY,QAAQyjC,EAAA7nC,QAAOiG,kBAAmB4nC,gBAGzCP,yBAAgBv9B,GACdvM,KAAKY,QAAQyjC,EAAA7nC,QAAO0G,oBAAqBqJ,gBAG3Cw9B,gCACE/pC,KAAKY,QAAQyjC,EAAA7nC,QAAO2G,wCAGtBkmC,mBAAU9tB,GACRvb,KAAKY,QAAQyjC,EAAA7nC,QAAOgG,cAAe+Y,gBAGrCguB,mBACEvpC,KAAKY,QAAQyjC,EAAA7nC,QAAOkG,0BAGtB8mC,oBACExpC,KAAKY,QAAQyjC,EAAA7nC,QAAOmG,2BAGtB8mC,mBACEzpC,KAAKY,QAAQyjC,EAAA7nC,QAAOoG,YAAa5C,KAAKsqC,+BAGxCZ,oBACE1pC,KAAKY,QAAQyjC,EAAA7nC,QAAOqG,2BAGtB8mC,iBAAQt/B,GACNrK,KAAKY,QAAQyjC,EAAA7nC,QAAOsG,YAAauH,gBAGnCw/B,uBAAcU,GACZvqC,KAAKY,QAAQyjC,EAAA7nC,QAAOyG,kBAAmBsnC,gBAGzCX,kBAAShqC,GACPI,KAAKY,QAAQyjC,EAAA7nC,QAAOuG,aAAcnD,gBAGpCsnC,2BAAkBl3B,GAChB,IAAMkgB,EAAUlgB,EAAQkgB,eAA+B/mB,IAAnB6G,EAAQzG,OAAsB,CAACyG,EAAQzG,QAAU,IACrF,OAA0B,IAAnB2mB,EAAQnyB,OAAe,CAAC,CAAEwL,OAAO,GAAIid,SAAS,KAAQ0J,eAa/Dsa,gBAAOjvB,GAEL,OADAvb,KAAKsvB,KAAKkb,OAAOjvB,GACVvb,kBAYT4nB,cAAKsI,EAAS1J,EAAUikB,GAKtB,YAJiBthC,IAAbshC,GACFzqC,KAAKsR,UAAU,CAAEm5B,WAAYA,IAE/BzqC,KAAKsvB,KAAK1H,KAAKsI,EAAS1J,GACjBxmB,kBAQT67B,mBAGE,OAFA77B,KAAKgB,gBACLhB,KAAKsvB,KAAKuM,UACH77B,kBAQTk2B,mBAEE,OADAl2B,KAAKsvB,KAAKob,qBAAqBxU,UACxBl2B,kBAQT4Q,gBAEE,OADA5Q,KAAKsvB,KAAK0Y,gBAAgBp3B,OACnB5Q,kBAQTm2B,iBAEE,OADAn2B,KAAKsvB,KAAK0Y,gBAAgB7R,QACnBn2B,kBAQTo2B,gBAEE,OADAp2B,KAAKsvB,KAAK0Y,gBAAgB5R,OACnBp2B,kBAUTq2B,cAAKhsB,GAEH,OADArK,KAAKsvB,KAAK0Y,gBAAgB3R,KAAKhsB,GACxBrK,kBASTs2B,wBAAeC,GAEb,OADAv2B,KAAKsvB,KAAK0Y,gBAAgB1R,eAAeC,GAClCv2B,kBAQT2qC,gBAGE,OAFA3qC,KAAK4qC,aAAe5qC,KAAK6qC,YACzB7qC,KAAK8qC,UAAU,GACR9qC,kBAQT+qC,kBAGE,OAFA/qC,KAAK8qC,UAAuC,iBAAtB9qC,KAAK4qC,aAA4B5qC,KAAK4qC,aAAe,KAC3E5qC,KAAK4qC,aAAe,KACb5qC,kBAQT02B,qBACE,OAAO12B,KAAKsvB,KAAK0Y,gBAAgBtR,yBAQnCsU,wBACE,OAAOhrC,KAAKsvB,KAAK0Y,gBAAgBgD,4BAQnCC,sBACE,OAAOjrC,KAAKsvB,KAAK0Y,gBAAgBiD,0BASnC35B,qBAAwB,IAAdtB,EAAc1P,UAAAvC,OAAA,QAAAoL,IAAA7I,UAAA,GAAAA,UAAA,GAAJ,GAGlB,OAFAN,KAAKqnC,8BAA8Br3B,EAAQhR,OAAQgB,KAAKgQ,QAAQhR,QAChEgB,KAAKsvB,KAAKhe,UAAUtB,GACbhQ,kBAcTkrC,mBAAUnwC,GAER,OADgBiF,KAAKsvB,KAAKyY,QAAQppC,OAAOqB,KAAKsvB,KAAK0Y,gBAAgBD,SACpD/lC,OAAO,SAAAmpC,GAAA,OAAUA,EAAOpwC,OAASA,IAAM,gBAQxDuvC,0BACE,OAAOtqC,KAAKsvB,KAAK0Y,gBAAgBsC,8BAUnC9T,8BACE,OAAOx2B,KAAKsvB,KAAK0Y,gBAAgBxR,kCAQnCC,uBACE,OAAOz2B,KAAKsvB,KAAK0Y,gBAAgBvR,uCArjBhB4O,GAyjBrB,EAAAn1B,EAAA1T,SAAc6oC,EAAOjpC,UAArBg7B,EAAA56B,8CClmBAlC,EAAQ,IACRL,EAAAD,QAAiBM,EAAQ,GAAqBY,OAAAqN,wBCA9C,IAAAovB,EAAcr9B,EAAQ,IAEtBq9B,IAAAO,EAAAP,EAAAG,EAAA,UAA0CvvB,OAAQjO,EAAQ,sBCH1DL,EAAAD,QAAA,SAAA0/B,GACA,sBAAAA,EAAA,MAAA/8B,UAAA+8B,EAAA,uBACA,OAAAA,iCCAA,IAAA0R,EAAe9wC,EAAQ,IACvB+wC,EAAe/wC,EAAQ,IACvB4kC,EAAe5kC,EAAQ,IACvBgxC,EAAehxC,EAAQ,IACvBk/B,EAAel/B,EAAQ,IACvBixC,EAAArwC,OAAAqN,OAGAtO,EAAAD,SAAAuxC,GAA6BjxC,EAAQ,GAARA,CAAkB,WAC/C,IAAAkxC,EAAA,GACAlT,EAAA,GACAJ,EAAA38B,SACAkwC,EAAA,uBAGA,OAFAD,EAAAtT,GAAA,EACAuT,EAAA3sC,MAAA,IAAAsD,QAAA,SAAA3B,GAAkC63B,EAAA73B,OACf,GAAnB8qC,EAAA,GAAmBC,GAAAtT,IAAAh9B,OAAAk3B,KAAAmZ,EAAA,GAAsCjT,IAAAx2B,KAAA,KAAA2pC,IACxD,SAAA5tC,EAAA0L,GAMD,IALA,IAAAmiC,EAAAJ,EAAAztC,GACA8tC,EAAArrC,UAAAvC,OACA8D,EAAA,EACA+pC,EAAAP,EAAAhS,EACAwS,EAAA3M,EAAA7F,EACAsS,EAAA9pC,GAMA,IALA,IAIA9F,EAJAm8B,EAAAsB,EAAAl5B,UAAAuB,MACAuwB,EAAAwZ,EAAAR,EAAAlT,GAAAv5B,OAAAitC,EAAA1T,IAAAkT,EAAAlT,GACAn6B,EAAAq0B,EAAAr0B,OACAyC,EAAA,EAEAzC,EAAAyC,GAAAqrC,EAAAlxC,KAAAu9B,EAAAn8B,EAAAq2B,EAAA5xB,QAAAkrC,EAAA3vC,GAAAm8B,EAAAn8B,IACG,OAAA2vC,GACFH,mBC9BD,IAAApM,EAAgB7kC,EAAQ,IACxBwxC,EAAgBxxC,EAAQ,IACxByxC,EAAgBzxC,EAAQ,KACxBL,EAAAD,QAAA,SAAAgyC,GACA,gBAAA/vB,EAAA5Q,EAAA4gC,GACA,IAGAxwC,EAHA69B,EAAA6F,EAAAljB,GACAle,EAAA+tC,EAAAxS,EAAAv7B,QACA8D,EAAAkqC,EAAAE,EAAAluC,GAGA,GAAAiuC,GAAA3gC,MAAA,KAAAtN,EAAA8D,GAEA,IADApG,EAAA69B,EAAAz3B,OACApG,EAAA,cAEK,KAAWsC,EAAA8D,EAAeA,IAAA,IAAAmqC,GAAAnqC,KAAAy3B,IAC/BA,EAAAz3B,KAAAwJ,EAAA,OAAA2gC,GAAAnqC,GAAA,EACK,OAAAmqC,IAAA,qBClBL,IAAAvK,EAAgBnnC,EAAQ,IACxB4xC,EAAArsB,KAAAqsB,IACAxK,EAAA7hB,KAAA6hB,IACAznC,EAAAD,QAAA,SAAA6H,EAAA9D,GAEA,OADA8D,EAAA4/B,EAAA5/B,IACA,EAAAqqC,EAAArqC,EAAA9D,EAAA,GAAA2jC,EAAA7/B,EAAA9D,qBCLAzD,EAAQ,KACRL,EAAAD,QAAiBM,EAAQ,GAAqBY,OAAAk3B,sBCA9C,IAAAkZ,EAAehxC,EAAQ,IACvB8gC,EAAe9gC,EAAQ,IAEvBA,EAAQ,GAARA,CAAuB,kBACvB,gBAAAo/B,GACA,OAAA0B,EAAAkQ,EAAA5R,wBCNAz/B,EAAAD,QAAA,CAAkBwC,QAAYlC,EAAQ,KAAoCsB,YAAA,oBCA1EtB,EAAQ,IACRA,EAAQ,IACRL,EAAAD,QAAiBM,EAAQ,IAAwB++B,EAAA,6BCFjD,IAAAoI,EAAgBnnC,EAAQ,IACxBm/B,EAAgBn/B,EAAQ,IAGxBL,EAAAD,QAAA,SAAAmyC,GACA,gBAAA/O,EAAAgP,GACA,IAGAzT,EAAAC,EAHAr8B,EAAAuZ,OAAA2jB,EAAA2D,IACA5iC,EAAAinC,EAAA2K,GACA3xC,EAAA8B,EAAAwB,OAEA,OAAAvD,EAAA,GAAAA,GAAAC,EAAA0xC,EAAA,QAAAhjC,GACAwvB,EAAAp8B,EAAA8vC,WAAA7xC,IACA,OAAAm+B,EAAA,OAAAn+B,EAAA,IAAAC,IAAAm+B,EAAAr8B,EAAA8vC,WAAA7xC,EAAA,WAAAo+B,EAAA,MACAuT,EAAA5vC,EAAA0iC,OAAAzkC,GAAAm+B,EACAwT,EAAA5vC,EAAA6B,MAAA5D,IAAA,GAAAo+B,EAAA,OAAAD,EAAA,iDCbA,IAAA78B,EAAqBxB,EAAQ,IAC7B0D,EAAqB1D,EAAQ,IAC7B2nC,EAAqB3nC,EAAQ,IAC7BqoC,EAAA,GAGAroC,EAAQ,GAARA,CAAiBqoC,EAAqBroC,EAAQ,GAARA,CAAgB,uBAA0B,OAAA0F,OAEhF/F,EAAAD,QAAA,SAAA0C,EAAA4lC,EAAAjkB,GACA3hB,EAAAN,UAAAN,EAAA6mC,EAAA,CAAqDtkB,KAAArgB,EAAA,EAAAqgB,KACrD4jB,EAAAvlC,EAAA4lC,EAAA,+BCXA,IAAAlJ,EAAe9+B,EAAQ,IACvB2+B,EAAe3+B,EAAQ,IACvB8wC,EAAe9wC,EAAQ,IAEvBL,EAAAD,QAAiBM,EAAQ,IAAgBY,OAAA0C,iBAAA,SAAA07B,EAAAmF,GACzCxF,EAAAK,GAKA,IAJA,IAGAlB,EAHAhG,EAAAgZ,EAAA3M,GACA1gC,EAAAq0B,EAAAr0B,OACAvD,EAAA,EAEAuD,EAAAvD,GAAA4+B,EAAAC,EAAAC,EAAAlB,EAAAhG,EAAA53B,KAAAikC,EAAArG,IACA,OAAAkB,oBCXAr/B,EAAAD,QAAiBM,EAAQ,IAAW0Q,mBAAA+O,iCCCpC,IAAA8B,EAAkBvhB,EAAQ,IAC1BgxC,EAAkBhxC,EAAQ,IAC1B0jC,EAAkB1jC,EAAQ,GAARA,CAAuB,YACzCgyC,EAAApxC,OAAAkB,UAEAnC,EAAAD,QAAAkB,OAAAob,gBAAA,SAAAgjB,GAEA,OADAA,EAAAgS,EAAAhS,GACAzd,EAAAyd,EAAA0E,GAAA1E,EAAA0E,GACA,mBAAA1E,EAAAh8B,aAAAg8B,eAAAh8B,YACAg8B,EAAAh8B,YAAAlB,UACGk9B,aAAAp+B,OAAAoxC,EAAA,oCCVH,IAAAC,EAAuBjyC,EAAQ,KAC/BkyC,EAAuBlyC,EAAQ,KAC/BynC,EAAuBznC,EAAQ,IAC/B6kC,EAAuB7kC,EAAQ,IAM/BL,EAAAD,QAAiBM,EAAQ,GAARA,CAAwB+D,MAAA,iBAAAs/B,EAAAkF,GACzC7iC,KAAA49B,GAAAuB,EAAAxB,GACA39B,KAAA69B,GAAA,EACA79B,KAAAysC,GAAA5J,GAEC,WACD,IAAAvJ,EAAAt5B,KAAA49B,GACAiF,EAAA7iC,KAAAysC,GACA5qC,EAAA7B,KAAA69B,KACA,OAAAvE,GAAAz3B,GAAAy3B,EAAAv7B,QACAiC,KAAA49B,QAAAz0B,EACAqjC,EAAA,IAEAA,EAAA,UAAA3J,EAAAhhC,EACA,UAAAghC,EAAAvJ,EAAAz3B,GACA,CAAAA,EAAAy3B,EAAAz3B,MACC,UAGDkgC,EAAA2K,UAAA3K,EAAA1jC,MAEAkuC,EAAA,QACAA,EAAA,UACAA,EAAA,0BCjCAtyC,EAAAD,QAAA,4BCAAC,EAAAD,QAAA,SAAAsvB,EAAA7tB,GACA,OAAUA,QAAA6tB,4BCDVrvB,EAAAD,QAAA,CAAkBwC,QAAYlC,EAAQ,KAA2BsB,YAAA,oBCAjEtB,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRL,EAAAD,QAAiBM,EAAQ,GAAqBiB,qCCF9C,IAAAonB,EAAqBroB,EAAQ,IAC7BuhB,EAAqBvhB,EAAQ,IAC7BqyC,EAAqBryC,EAAQ,IAC7Bq9B,EAAqBr9B,EAAQ,IAC7BwnC,EAAqBxnC,EAAQ,IAC7BsyC,EAAqBtyC,EAAQ,KAASsnC,IACtCiL,EAAqBvyC,EAAQ,IAC7BkjC,EAAqBljC,EAAQ,IAC7B2nC,EAAqB3nC,EAAQ,IAC7Bo7B,EAAqBp7B,EAAQ,IAC7BwyC,EAAqBxyC,EAAQ,IAC7BykC,EAAqBzkC,EAAQ,IAC7ByyC,EAAqBzyC,EAAQ,IAC7B0yC,EAAqB1yC,EAAQ,KAC7B2yC,EAAqB3yC,EAAQ,KAC7Bub,EAAqBvb,EAAQ,KAC7B2+B,EAAqB3+B,EAAQ,IAC7B6kC,EAAqB7kC,EAAQ,IAC7B6+B,EAAqB7+B,EAAQ,IAC7B6gC,EAAqB7gC,EAAQ,IAC7B4yC,EAAqB5yC,EAAQ,IAC7B6yC,EAAqB7yC,EAAQ,KAC7B8yC,EAAqB9yC,EAAQ,IAC7B+yC,EAAqB/yC,EAAQ,IAC7B8gC,EAAqB9gC,EAAQ,IAC7B8kC,EAAAgO,EAAA/T,EACAD,EAAAiU,EAAAhU,EACAiU,EAAAH,EAAA9T,EACA2F,EAAArc,EAAApnB,OACAgyC,EAAA5qB,EAAA3H,KACAwyB,EAAAD,KAAAvd,UAEAyd,EAAAX,EAAA,WACAY,EAAAZ,EAAA,eACAjB,EAAA,GAAuBtP,qBACvBoR,EAAAnQ,EAAA,mBACAoQ,EAAApQ,EAAA,WACAqQ,EAAArQ,EAAA,cACA8O,EAAApxC,OAAA,UACA4yC,EAAA,mBAAA9O,EACA+O,EAAAprB,EAAAorB,QAEAC,GAAAD,MAAA,YAAAA,EAAA,UAAAE,UAGAC,EAAAvB,GAAAE,EAAA,WACA,OAEG,GAFHK,EAAA9T,EAAA,GAAsB,KACtB/9B,IAAA,WAAoB,OAAA+9B,EAAAp5B,KAAA,KAAuBvE,MAAA,IAASk9B,MACjDA,IACF,SAAAe,EAAA39B,EAAAoyC,GACD,IAAAC,EAAAhP,EAAAkN,EAAAvwC,GACAqyC,UAAA9B,EAAAvwC,GACAq9B,EAAAM,EAAA39B,EAAAoyC,GACAC,GAAA1U,IAAA4S,GAAAlT,EAAAkT,EAAAvwC,EAAAqyC,IACChV,EAED7b,EAAA,SAAAqhB,GACA,IAAAyP,EAAAT,EAAAhP,GAAAsO,EAAAlO,EAAA,WAEA,OADAqP,EAAA5B,GAAA7N,EACAyP,GAGAC,EAAAR,GAAA,iBAAA9O,EAAAuP,SAAA,SAAA7U,GACA,uBAAAA,GACC,SAAAA,GACD,OAAAA,aAAAsF,GAGAwP,EAAA,SAAA9U,EAAA39B,EAAAoyC,GAKA,OAJAzU,IAAA4S,GAAAkC,EAAAX,EAAA9xC,EAAAoyC,GACAlV,EAAAS,GACA39B,EAAAo9B,EAAAp9B,GAAA,GACAk9B,EAAAkV,GACAtyB,EAAA+xB,EAAA7xC,IACAoyC,EAAA/yC,YAIAygB,EAAA6d,EAAA+T,IAAA/T,EAAA+T,GAAA1xC,KAAA29B,EAAA+T,GAAA1xC,IAAA,GACAoyC,EAAAjB,EAAAiB,EAAA,CAAsB/yC,WAAA+/B,EAAA,UAJtBtf,EAAA6d,EAAA+T,IAAArU,EAAAM,EAAA+T,EAAAtS,EAAA,OACAzB,EAAA+T,GAAA1xC,IAAA,GAIKmyC,EAAAxU,EAAA39B,EAAAoyC,IACF/U,EAAAM,EAAA39B,EAAAoyC,IAEHM,EAAA,SAAA/U,EAAAtB,GACAa,EAAAS,GAKA,IAJA,IAGA39B,EAHAq2B,EAAA6a,EAAA7U,EAAA+G,EAAA/G,IACA59B,EAAA,EACAC,EAAA23B,EAAAr0B,OAEAtD,EAAAD,GAAAg0C,EAAA9U,EAAA39B,EAAAq2B,EAAA53B,KAAA49B,EAAAr8B,IACA,OAAA29B,GAKAgV,EAAA,SAAA3yC,GACA,IAAA4yC,EAAA9C,EAAAlxC,KAAAqF,KAAAjE,EAAAo9B,EAAAp9B,GAAA,IACA,QAAAiE,OAAAssC,GAAAzwB,EAAA+xB,EAAA7xC,KAAA8f,EAAAgyB,EAAA9xC,QACA4yC,IAAA9yB,EAAA7b,KAAAjE,KAAA8f,EAAA+xB,EAAA7xC,IAAA8f,EAAA7b,KAAAytC,IAAAztC,KAAAytC,GAAA1xC,KAAA4yC,IAEAC,EAAA,SAAAlV,EAAA39B,GAGA,GAFA29B,EAAAyF,EAAAzF,GACA39B,EAAAo9B,EAAAp9B,GAAA,GACA29B,IAAA4S,IAAAzwB,EAAA+xB,EAAA7xC,IAAA8f,EAAAgyB,EAAA9xC,GAAA,CACA,IAAAoyC,EAAA/O,EAAA1F,EAAA39B,GAEA,OADAoyC,IAAAtyB,EAAA+xB,EAAA7xC,IAAA8f,EAAA6d,EAAA+T,IAAA/T,EAAA+T,GAAA1xC,KAAAoyC,EAAA/yC,YAAA,GACA+yC,IAEAU,EAAA,SAAAnV,GAKA,IAJA,IAGA39B,EAHA8C,EAAAyuC,EAAAnO,EAAAzF,IACA1oB,EAAA,GACAxW,EAAA,EAEAqE,EAAAd,OAAAvD,GACAqhB,EAAA+xB,EAAA7xC,EAAA8C,EAAArE,OAAAuB,GAAA0xC,GAAA1xC,GAAA6wC,GAAA57B,EAAA9Q,KAAAnE,GACG,OAAAiV,GAEH89B,EAAA,SAAApV,GAMA,IALA,IAIA39B,EAJAgzC,EAAArV,IAAA4S,EACAztC,EAAAyuC,EAAAyB,EAAAlB,EAAA1O,EAAAzF,IACA1oB,EAAA,GACAxW,EAAA,EAEAqE,EAAAd,OAAAvD,IACAqhB,EAAA+xB,EAAA7xC,EAAA8C,EAAArE,OAAAu0C,IAAAlzB,EAAAywB,EAAAvwC,IAAAiV,EAAA9Q,KAAA0tC,EAAA7xC,IACG,OAAAiV,GAIH88B,IAYAhM,GAXA9C,EAAA,WACA,GAAAh/B,gBAAAg/B,EAAA,MAAAriC,UAAA,gCACA,IAAAiiC,EAAAlJ,EAAAp1B,UAAAvC,OAAA,EAAAuC,UAAA,QAAA6I,GACA6lC,EAAA,SAAAvzC,GACAuE,OAAAssC,GAAA0C,EAAAr0C,KAAAkzC,EAAApyC,GACAogB,EAAA7b,KAAAytC,IAAA5xB,EAAA7b,KAAAytC,GAAA7O,KAAA5+B,KAAAytC,GAAA7O,IAAA,GACAsP,EAAAluC,KAAA4+B,EAAAzD,EAAA,EAAA1/B,KAGA,OADAkxC,GAAAqB,GAAAE,EAAA5B,EAAA1N,EAAA,CAA8DphC,cAAA,EAAAsuB,IAAAkjB,IAC9DzxB,EAAAqhB,KAEA,gCACA,OAAA5+B,KAAAysC,KAGAW,EAAA/T,EAAAuV,EACAvB,EAAAhU,EAAAmV,EACEl0C,EAAQ,IAAgB++B,EAAA8T,EAAA9T,EAAAwV,EACxBv0C,EAAQ,IAAe++B,EAAAqV,EACvBp0C,EAAQ,IAAgB++B,EAAAyV,EAE1BnC,IAAqBryC,EAAQ,KAC7BwnC,EAAAwK,EAAA,uBAAAoC,GAAA,GAGA3P,EAAA1F,EAAA,SAAAt+B,GACA,OAAAwiB,EAAAuvB,EAAA/xC,MAIA48B,IAAAK,EAAAL,EAAAa,EAAAb,EAAAG,GAAAgW,EAAA,CAA0DvyC,OAAAyjC,IAE1D,QAAAiQ,EAAA,iHAGAnwC,MAAA,KAAAtE,GAAA,EAAoBy0C,EAAAlxC,OAAAvD,IAAoBsyC,EAAAmC,EAAAz0C,OAExC,IAAAy0C,EAAA7T,EAAA0R,EAAArX,OAAAj7B,GAAA,EAA0Cy0C,EAAAlxC,OAAAvD,IAAoBuyC,EAAAkC,EAAAz0C,OAE9Dm9B,IAAAO,EAAAP,EAAAG,GAAAgW,EAAA,UAEA34B,IAAA,SAAApZ,GACA,OAAA8f,EAAA8xB,EAAA5xC,GAAA,IACA4xC,EAAA5xC,GACA4xC,EAAA5xC,GAAAijC,EAAAjjC,IAGAmzC,OAAA,SAAAnzC,GACA,GAAAuyC,EAAAvyC,GAAA,OAAAixC,EAAAW,EAAA5xC,GACA,MAAAY,UAAAZ,EAAA,sBAEAozC,UAAA,WAAwBnB,GAAA,GACxBoB,UAAA,WAAwBpB,GAAA,KAGxBrW,IAAAO,EAAAP,EAAAG,GAAAgW,EAAA,UAEAhyC,OA/FA,SAAA49B,EAAAtB,GACA,YAAAjvB,IAAAivB,EAAA8U,EAAAxT,GAAA+U,EAAAvB,EAAAxT,GAAAtB,IAgGAj9B,eAAAqzC,EAEA5wC,iBAAA6wC,EAEApP,yBAAAuP,EAEAlL,oBAAAmL,EAEApR,sBAAAqR,IAIAvB,GAAA5V,IAAAO,EAAAP,EAAAG,IAAAgW,GAAAjB,EAAA,WACA,IAAA3U,EAAA8G,IAIA,gBAAAwO,EAAA,CAAAtV,KAAyD,MAAzDsV,EAAA,CAAoD7U,EAAAT,KAAa,MAAAsV,EAAAtyC,OAAAg9B,OAChE,QACDlI,UAAA,SAAA0J,GACA,QAAAvwB,IAAAuwB,IAAA4U,EAAA5U,GAAA,CAIA,IAHA,IAEA2V,EAAAC,EAFArwC,EAAA,CAAAy6B,GACAl/B,EAAA,EAEA8F,UAAAvC,OAAAvD,GAAAyE,EAAAiB,KAAAI,UAAA9F,MAQA,MANA,mBADA60C,EAAApwC,EAAA,MACAqwC,EAAAD,IACAC,GAAAz5B,EAAAw5B,OAAA,SAAAtzC,EAAAN,GAEA,GADA6zC,IAAA7zC,EAAA6zC,EAAA30C,KAAAqF,KAAAjE,EAAAN,KACA6yC,EAAA7yC,GAAA,OAAAA,IAEAwD,EAAA,GAAAowC,EACA7B,EAAA9uC,MAAA6uC,EAAAtuC,OAKA+/B,EAAA,UAAA0O,IAAoCpzC,EAAQ,GAARA,CAAiB0kC,EAAA,UAAA0O,EAAA1O,EAAA,UAAA3B,SAErD4E,EAAAjD,EAAA,UAEAiD,EAAApiB,KAAA,WAEAoiB,EAAAtf,EAAA3H,KAAA,4BC1OA,IAAA4xB,EAAetyC,EAAQ,GAARA,CAAgB,QAC/B8b,EAAe9b,EAAQ,IACvBuhB,EAAevhB,EAAQ,IACvBi1C,EAAej1C,EAAQ,IAAc++B,EACrCj4B,EAAA,EACAouC,EAAAt0C,OAAAs0C,cAAA,WACA,UAEAC,GAAcn1C,EAAQ,GAARA,CAAkB,WAChC,OAAAk1C,EAAAt0C,OAAAw0C,kBAAA,OAEAC,EAAA,SAAAjW,GACA6V,EAAA7V,EAAAkT,EAAA,CAAqBnxC,MAAA,CACrBjB,EAAA,OAAA4G,EACAwuC,EAAA,OAgCAC,EAAA51C,EAAAD,QAAA,CACA4nC,IAAAgL,EACAkD,MAAA,EACAC,QAhCA,SAAArW,EAAA59B,GAEA,IAAAsa,EAAAsjB,GAAA,uBAAAA,KAAA,iBAAAA,EAAA,SAAAA,EACA,IAAA7d,EAAA6d,EAAAkT,GAAA,CAEA,IAAA4C,EAAA9V,GAAA,UAEA,IAAA59B,EAAA,UAEA6zC,EAAAjW,GAEG,OAAAA,EAAAkT,GAAApyC,GAsBHw1C,QApBA,SAAAtW,EAAA59B,GACA,IAAA+f,EAAA6d,EAAAkT,GAAA,CAEA,IAAA4C,EAAA9V,GAAA,SAEA,IAAA59B,EAAA,SAEA6zC,EAAAjW,GAEG,OAAAA,EAAAkT,GAAAgD,GAYHK,SATA,SAAAvW,GAEA,OADA+V,GAAAI,EAAAC,MAAAN,EAAA9V,KAAA7d,EAAA6d,EAAAkT,IAAA+C,EAAAjW,GACAA,qBC5CA,IAAA0R,EAAgB9wC,EAAQ,IACxB6kC,EAAgB7kC,EAAQ,IACxBL,EAAAD,QAAA,SAAAkC,EAAAmP,GAMA,IALA,IAIAtP,EAJAu9B,EAAA6F,EAAAjjC,GACAk2B,EAAAgZ,EAAA9R,GACAv7B,EAAAq0B,EAAAr0B,OACA8D,EAAA,EAEA9D,EAAA8D,GAAA,GAAAy3B,EAAAv9B,EAAAq2B,EAAAvwB,QAAAwJ,EAAA,OAAAtP,oBCPA,IAAAqvC,EAAc9wC,EAAQ,IACtB+wC,EAAc/wC,EAAQ,IACtB4kC,EAAc5kC,EAAQ,IACtBL,EAAAD,QAAA,SAAA0/B,GACA,IAAA1oB,EAAAo6B,EAAA1R,GACAkS,EAAAP,EAAAhS,EACA,GAAAuS,EAKA,IAJA,IAGA7vC,EAHAkzC,EAAArD,EAAAlS,GACAmS,EAAA3M,EAAA7F,EACA7+B,EAAA,EAEAy0C,EAAAlxC,OAAAvD,GAAAqxC,EAAAlxC,KAAA++B,EAAA39B,EAAAkzC,EAAAz0C,OAAAwW,EAAA9Q,KAAAnE,GACG,OAAAiV,oBCZH,IAAAwwB,EAAUlnC,EAAQ,IAClBL,EAAAD,QAAAqE,MAAAwX,SAAA,SAAAyB,GACA,eAAAkqB,EAAAlqB,qBCFA,IAAA6nB,EAAgB7kC,EAAQ,IACxBgzC,EAAgBhzC,EAAQ,IAAgB++B,EACxCxkB,EAAA,GAAkBA,SAElBq7B,EAAA,iBAAA91C,gBAAAc,OAAAwoC,oBACAxoC,OAAAwoC,oBAAAtpC,QAAA,GAUAH,EAAAD,QAAAq/B,EAAA,SAAAK,GACA,OAAAwW,GAAA,mBAAAr7B,EAAAla,KAAA++B,GATA,SAAAA,GACA,IACA,OAAA4T,EAAA5T,GACG,MAAAhtB,GACH,OAAAwjC,EAAA9xC,SAKA+xC,CAAAzW,GAAA4T,EAAAnO,EAAAzF,sCCjBAp/B,EAAQ,GAARA,CAAuB,kCCAvBA,EAAQ,GAARA,CAAuB,+BCAvBA,EAAQ,KACR,IAAA81C,EAAc91C,EAAQ,GAAqBY,OAC3CjB,EAAAD,QAAA,SAAA0/B,EAAA39B,EAAAs0C,GACA,OAAAD,EAAAj1C,eAAAu+B,EAAA39B,EAAAs0C,qBCHA,IAAA1Y,EAAcr9B,EAAQ,IAEtBq9B,IAAAO,EAAAP,EAAAG,GAAiCx9B,EAAQ,IAAgB,UAAca,eAAgBb,EAAQ,IAAc++B,qBCF7Gp/B,EAAAD,QAAA,CAAkBwC,QAAYlC,EAAQ,KAA4CsB,YAAA,oBCAlFtB,EAAQ,KACRL,EAAAD,QAAiBM,EAAQ,GAAqBY,OAAAo1C,gCCA9C,IAAA3Y,EAAcr9B,EAAQ,IACtBq9B,IAAAO,EAAA,UAA8BoY,eAAgBh2C,EAAQ,KAAcwxB,uBCApE,IAAA1V,EAAe9b,EAAQ,IACvB2+B,EAAe3+B,EAAQ,IACvBi2C,EAAA,SAAAjX,EAAAwJ,GAEA,GADA7J,EAAAK,IACAljB,EAAA0sB,IAAA,OAAAA,EAAA,MAAAnmC,UAAAmmC,EAAA,8BAEA7oC,EAAAD,QAAA,CACA8xB,IAAA5wB,OAAAo1C,iBAAA,gBACA,SAAA1xC,EAAA4xC,EAAA1kB,GACA,KACAA,EAAcxxB,EAAQ,GAARA,CAAgBi7B,SAAA56B,KAAiBL,EAAQ,IAAgB++B,EAAAn+B,OAAAkB,UAAA,aAAA0vB,IAAA,IACvEltB,EAAA,IACA4xC,IAAA5xC,aAAAP,OACO,MAAAqO,GAAU8jC,GAAA,EACjB,gBAAAlX,EAAAwJ,GAIA,OAHAyN,EAAAjX,EAAAwJ,GACA0N,EAAAlX,EAAA77B,UAAAqlC,EACAhX,EAAAwN,EAAAwJ,GACAxJ,GAVA,CAYK,IAAG,QAAAnwB,GACRonC,0BCvBAj2C,EAAQ,KACR,IAAA81C,EAAc91C,EAAQ,GAAqBY,OAC3CjB,EAAAD,QAAA,SAAAo+B,EAAA+V,GACA,OAAAiC,EAAAt0C,OAAAs8B,EAAA+V,qBCHA,IAAAxW,EAAcr9B,EAAQ,IAEtBq9B,IAAAO,EAAA,UAA8Bp8B,OAAQxB,EAAQ,uBCF9CL,EAAAD,QAAA,CAAkBwC,QAAYlC,EAAQ,KAAuDsB,YAAA,oBCA7FtB,EAAQ,KACR,IAAA81C,EAAc91C,EAAQ,GAAqBY,OAC3CjB,EAAAD,QAAA,SAAA0/B,EAAA39B,GACA,OAAAq0C,EAAA/Q,yBAAA3F,EAAA39B,qBCFA,IAAAojC,EAAgC7kC,EAAQ,IACxCs0C,EAAgCt0C,EAAQ,IAAgB++B,EAExD/+B,EAAQ,GAARA,CAAuB,sCACvB,gBAAAo/B,EAAA39B,GACA,OAAA6yC,EAAAzP,EAAAzF,GAAA39B,oCCIKsC,MAAMjC,UAAUgN,MAEnBlO,OAAOC,eAAekD,MAAMjC,UAAW,OAAQ,CAE7CX,MAAO,SAAS2xB,GAEd,GAAY,MAARptB,KACF,MAAM,IAAIrD,UAAU,iCAGtB,IAAI1B,EAAIC,OAAO8E,MAGXkX,EAAMjc,EAAE8C,SAAW,EAGvB,GAAyB,mBAAdqvB,EACT,MAAM,IAAIzwB,UAAU,gCAUtB,IANA,IAAI8zC,EAAUnwC,UAAU,GAGpBG,EAAI,EAGDA,EAAIyW,GAAK,CAKd,IAAIw5B,EAASz1C,EAAEwF,GACf,GAAI2sB,EAAUzyB,KAAK81C,EAASC,EAAQjwC,EAAGxF,GACrC,OAAOy1C,EAGTjwC,8LC/CRnG,EAAA,QACAA,EAAA,UACAA,EAAA,yDAEA,IAAMgrC,EAAU,GAsBHqL,mBAAiB,SAASC,GACrC,IAAIviC,EAAQuiC,EAAGxjC,MAAM,oFAAsF,GACzGyjC,SACF,GAAI,WAAWjyC,KAAKyP,EAAM,IAExB,OADAwiC,EAAQ,kBAAkBljC,KAAKijC,IAAO,GAC/B,CACL71C,KAAM,KACNw0B,QAAS9kB,SAASomC,EAAM,IAAM,KAE3B,GAAiB,WAAbxiC,EAAM,GAAiB,CAEhC,GAAa,OADbwiC,EAAQD,EAAGxjC,MAAM,iBACE,MAAO,CAAErS,KAAM,QAASw0B,QAAS9kB,SAASomC,EAAM,KAGnE,GAAa,OADbA,EAAQD,EAAGxjC,MAAM,kBACE,MAAO,CAAErS,KAAM,OAAQw0B,QAAS9kB,SAASomC,EAAM,SAEzD,WAAWjyC,KAAKgyC,KAAQC,EAAQD,EAAGxjC,MAAM,sBAClDiB,EAAMyB,OAAO,EAAG,EAAG,mBACnBzB,EAAMyB,OAAO,EAAG,EAAG+gC,EAAM,KAI3B,MAAO,CACL91C,MAHFsT,EAAQA,EAAM,GAAK,CAACA,EAAM,GAAIA,EAAM,IAAM,CAACmB,UAAUshC,QAASthC,UAAUuhC,WAAY,OAGtE,GACZxhB,QAAS9kB,SAAS4D,EAAM,MAKf2iC,mBAAiB,WAC5B,IAAIC,EAAgB,GAChBC,EAAY5L,EAAQ4L,UAAUvvC,cAFKwvC,GAAA,EAAAC,GAAA,EAAAC,OAAAloC,EAAA,IAKvC,QAAAmoC,EAAAC,GAAA,EAAAC,EAAAh1C,SAAAi1C,EAAAj1C,WAAA20C,GAAAG,EAAAC,EAAAlzB,QAAAiL,MAAA6nB,GAAA,EAAkC,KAAzBzQ,EAAyB4Q,EAAA71C,MAE5Bi2C,EADgB,IAAI/6B,OAAO+pB,EAAQiR,WAAWhwC,eACVgM,KAAKujC,GAE7C,GAA2B,MAAvBQ,GAA+BA,EAAoB,GAAI,CAKzD,GAJAT,EAAcl2C,KAAO2lC,EAAQ3lC,KAC7Bk2C,EAAcW,MAAQlR,EAAQkR,MAG1BlR,EAAQmR,kBAAmB,CAC7B,IACIC,EADgB,IAAIn7B,OAAO+pB,EAAQmR,kBAAkBlwC,eACjBgM,KAAKujC,GAElB,MAAvBY,GAA+BA,EAAoB,IACrDC,EAAkBD,EAAoB,GAAIb,QAG5Cc,EAAkBL,EAAoB,GAAIT,GAE5C,QAxBmC,MAAA9/B,GAAAigC,GAAA,EAAAC,EAAAlgC,EAAA,aAAAggC,GAAAI,EAAAS,QAAAT,EAAAS,SAAA,WAAAZ,EAAA,MAAAC,GA2BvC,OAAOJ,GAIHc,EAAoB,SAASxiB,EAAS0hB,GAC1C,IAAIgB,EAAe1iB,EAAQzwB,MAAM,IAAK,GACtCmyC,EAAciB,YAAc3iB,EAGxB0iB,EAAa,KAAIhB,EAAckB,aAAe1nC,SAASwnC,EAAa,KAGpEA,EAAa,KAAIhB,EAAcmB,aAAe3nC,SAASwnC,EAAa,MAI7DI,cAAY,WACvB,IAAIC,EAAW,GACXpB,EAAY5L,EAAQ4L,UAAUvvC,cAFA4wC,GAAA,EAAAC,GAAA,EAAAC,OAAAtpC,EAAA,IAKlC,QAAAupC,EAAAlW,GAAA,EAAAgV,EAAAh1C,SAAAm2C,EAAAn2C,WAAA+1C,GAAAG,EAAAlW,EAAAne,QAAAiL,MAAAipB,GAAA,EAAwB,KAAfK,EAAeF,EAAAj3C,MAElBo3C,EADW,IAAIl8B,OAAOi8B,EAAGjB,WAAWhwC,eACVgM,KAAKujC,GAEnC,GAAsB,MAAlB2B,EAAwB,CAK1B,GAJAP,EAASv3C,KAAO63C,EAAG73C,KACnBu3C,EAASV,MAAQgB,EAAGhB,MAGhBgB,EAAGrjB,QACLujB,EAAaF,EAAGrjB,QAAUqjB,EAAGG,iBAAoBH,EAAGG,iBAAmB,IAAKT,QAGvE,GAAIO,EAAe,GACxBC,EAAaD,EAAe,GAAKD,EAAGG,iBAAoBH,EAAGG,iBAAmB,IAAKT,QAG9E,GAAIM,EAAGf,kBAAmB,CAC/B,IACIC,EADgB,IAAIn7B,OAAOi8B,EAAGf,kBAAkBlwC,eACZgM,KAAKujC,GAElB,MAAvBY,GAA+BA,EAAoB,IACrDgB,EAAahB,EAAoB,GAAKc,EAAGG,iBAAoBH,EAAGG,iBAAmB,IAAKT,GAG5F,QA9B8B,MAAAnhC,GAAAqhC,GAAA,EAAAC,EAAAthC,EAAA,aAAAohC,GAAA/V,EAAAwV,QAAAxV,EAAAwV,SAAA,WAAAQ,EAAA,MAAAC,GAiClC,OAAOH,GAIHQ,EAAe,SAASvjB,EAASyjB,EAAWV,GAChD,IAAIW,EAA2C,KAA1BD,EAAUE,OAAO,EAAG,GAAY,IAAIv8B,OAAOq8B,EAAW,KAAOA,EAC5Ef,EAAe1iB,EAAQzwB,MAAMm0C,EAAgB,GAElC,KAAbD,IAAkBzjB,EAAUA,EAAQ9hB,QAAQ,IAAIkJ,OAAOq8B,EAAW,KAAM,MAE5EV,EAASJ,YAAc3iB,EAGnB0iB,GAAgBA,EAAa,KAC/BK,EAASH,aAAe1nC,SAASwnC,EAAa,KAG5CA,GAAgBA,EAAa,KAC/BK,EAASF,aAAe3nC,SAASwnC,EAAa,MAIrCkB,oBAAkB,WAC7B,IAAIC,EAAiB,GAKrB,OAHAA,EAAexzB,OAAQ,EAAArO,EAAA/U,SAAEpC,QAAQwlB,QACjCwzB,EAAerzB,QAAS,EAAAxO,EAAA/U,SAAEpC,QAAQ2lB,SAE3BqzB,GAgBIC,cAAY,SAASzC,GAChC,IACI74B,EADiB,qDACQpK,KAAKijC,GAElC,OADa74B,IAAYA,EAAQ,IAAMA,EAAQ,KAAO,IAIlDu7B,EAAc3C,EAAenhC,UAAU0hC,WAE7C5L,EAAQiO,OAAS,QAAQ30C,KAAK4Q,UAAU0hC,WACxC5L,EAAQkO,SAAW,gBAAgB50C,KAAK4Q,UAAU0hC,aAAe5L,EAAQiO,OACzEjO,EAAQmO,SAAW,UAAU70C,KAAK4Q,UAAU0hC,aAAe5L,EAAQkO,WAAalO,EAAQiO,OACxFjO,EAAQoO,UAAY,WAAW90C,KAAK4Q,UAAU0hC,WAC9C5L,EAAQqO,aAAgBv5C,OAAOw5C,cAC/BtO,EAAQuO,KAAOvO,EAAQqO,YAAc,mBAAmB/0C,KAAK4Q,UAAU0hC,WACvE5L,EAAQwO,OAAS,kBAAkBl1C,KAAK4Q,UAAU0hC,WAClD5L,EAAQyO,aAAezO,EAAQkO,UAAY,SAAS50C,KAAK4Q,UAAU0hC,WACnE5L,EAAQ0B,SAAW,6FAA6FpoC,KAAK4Q,UAAU0hC,WAC/H5L,EAAQ0O,MAAQ,oBAAoBp1C,KAAK4Q,UAAU0hC,WACnD5L,EAAQ2O,UAAY,WAAWr1C,KAAK4Q,UAAU0hC,WAC9C5L,EAAQ4O,eAAiB,iBAAiBt1C,KAAK4Q,UAAU0hC,WACzD5L,EAAQ6O,UAAY,aAAav1C,KAAK4Q,UAAU0hC,WAChD5L,EAAQ8O,OAAS,QAAQx1C,KAAK4Q,UAAU0hC,WACxC5L,EAAQ+O,MAAQ,iBAAiBz1C,KAAK4Q,UAAU0hC,WAChD5L,EAAQv4B,gBAjMgB,WACtB,IAGE,OAFAC,aAAasnC,QAAQ,SAAU,UAC/BtnC,aAAaunC,WAAW,WACjB,EACP,MAAO7nC,GACP,OAAO,GA2LeK,GAC1Bu4B,EAAQkP,SAxLS,WACf,IAEE,QADW,IAAIZ,cAAc,iCAE7B,MAAOlnC,GACP,SAAU8C,UAAUilC,gBAAsEtrC,IAAzDqG,UAAUilC,UAAU,mCACnDjlC,UAAUilC,UAAU,iCAAiCC,gBAkLxCF,GAOnBlP,EAAQvqC,KAAOu4C,EAAYv4C,KAO3BuqC,EAAQ/V,QAAU+jB,EAAY/jB,QAE9B+V,EAAQ4L,UAAY1hC,UAAU0hC,UAC9B5L,EAAQxmB,KAAOkyB,IACf1L,EAAQsN,GAAKP,IACb/M,EAAQqP,SAAWxB,IACnB7N,EAAQsP,OAASvB,EAAU/N,EAAQ4L,gBACL,IAAvB92C,OAAOy6C,aA1DiB,WAC7B,OAAQz6C,OAAOy6C,aACf,KAAM,GACN,KAAK,GACHvP,EAAQqP,SAASE,YAAc,YAC/B,MACF,QACEvP,EAAQqP,SAASE,YAAc,YAmDUC,aAE9BxP,mBC/NfrrC,EAAAD,QAAA,CAAkBwC,QAAYlC,EAAQ,KAAiCsB,YAAA,oBCAvEtB,EAAQ,IACRA,EAAQ,IACRL,EAAAD,QAAiBM,EAAQ,sBCFzB,IAAA2+B,EAAe3+B,EAAQ,IACvBe,EAAef,EAAQ,IACvBL,EAAAD,QAAiBM,EAAQ,GAASy6C,YAAA,SAAArb,GAClC,IAAAsb,EAAA35C,EAAAq+B,GACA,sBAAAsb,EAAA,MAAAr4C,UAAA+8B,EAAA,qBACA,OAAAT,EAAA+b,EAAAr6C,KAAA++B,sBCJA,IAAA8H,EAAUlnC,EAAQ,IAClBqkC,EAAUrkC,EAAQ,GAARA,CAAgB,eAE1B26C,EAA6C,aAA7CzT,EAAA,WAAyB,OAAAlhC,UAAzB,IASArG,EAAAD,QAAA,SAAA0/B,GACA,IAAAJ,EAAAoS,EAAApT,EACA,YAAAnvB,IAAAuwB,EAAA,mBAAAA,EAAA,OAEA,iBAAAgS,EAVA,SAAAhS,EAAA39B,GACA,IACA,OAAA29B,EAAA39B,GACG,MAAA2Q,KAOHwoC,CAAA5b,EAAAp+B,OAAAw+B,GAAAiF,IAAA+M,EAEAuJ,EAAAzT,EAAAlI,GAEA,WAAAhB,EAAAkJ,EAAAlI,KAAA,mBAAAA,EAAA6b,OAAA,YAAA7c,4FClBqB,CAAC,CACpBv9B,KAAM,WACN62C,MAAO,SACPD,WAAY,sBACX,CACD52C,KAAM,gBACN62C,MAAO,SACPD,WAAY,0BACZE,kBAAmB,oBAClB,CACD92C,KAAM,SACN62C,MAAO,SACPD,WAAY,oBACX,CACD52C,KAAM,iBACN62C,MAAO,SACPD,WAAY,mBACX,CACD52C,KAAM,kBACN62C,MAAO,SACPD,WAAY,kBACX,CACD52C,KAAM,UACN62C,MAAO,UACPD,WAAY,qBACX,CACD52C,KAAM,aACN62C,MAAO,QACPD,WAAY,wBACX,CACD52C,KAAM,QACN62C,MAAO,QACPD,WAAY,mBACX,CACD52C,KAAM,QACN62C,MAAO,QACPD,WAAY,kBACZE,kBAAmB,qBAClB,CACD92C,KAAM,WACN62C,MAAO,WACPD,WAAY,sBACX,CACD52C,KAAM,oBACN62C,MAAO,WACPD,WAAY,wBACX,CACD52C,KAAM,oBACN62C,MAAO,WACPD,WAAY,oBACZE,kBAAmB,gBAClB,CACD92C,KAAM,UACN62C,MAAO,UACPD,WAAY,iBACZE,kBAAmB,kBAClB,CACD92C,KAAM,SACN62C,MAAO,SACPD,WAAY,mBACZE,kBAAmB,mIC5DL,CAAC,CACf92C,KAAM,eACN62C,MAAO,UACPD,WAAY,iBACZpiB,QAAS,OACR,CACDx0B,KAAM,aACN62C,MAAO,UACPD,WAAY,iBACZpiB,QAAS,OACR,CACDx0B,KAAM,gBACN62C,MAAO,UACPD,WAAY,iBACZpiB,QAAS,OACR,CACDx0B,KAAM,YACN62C,MAAO,UACPD,WAAY,iBACZpiB,QAAS,OACR,CACDx0B,KAAM,YACN62C,MAAO,UACPD,WAAY,iBACZpiB,QAAS,OACR,CACDx0B,KAAM,cACN62C,MAAO,UACPD,WAAY,iBACZpiB,QAAS,OACR,CACDx0B,KAAM,aACN62C,MAAO,UACPD,WAAY,kBACZpiB,QAAS,QACR,CACDx0B,KAAM,gBACN62C,MAAO,gBACPD,WAAY,2BACX,CACD52C,KAAM,gBACN62C,MAAO,gBACPD,WAAY,8BACX,CACD52C,KAAM,UACN62C,MAAO,UACPD,WAAY,WACX,CACD52C,KAAM,YACN62C,MAAO,YACPD,WAAY,QACX,CACD52C,KAAM,UACN62C,MAAO,UACPD,WAAY,UACZE,kBAAmB,4BAClB,CACD92C,KAAM,OACN62C,MAAO,MACPD,WAAY,OACZE,kBAAmB,eACnBkB,iBAAkB,SACjB,CACDh4C,KAAM,OACN62C,MAAO,MACPD,WAAY,OACZE,kBAAmB,eACnBkB,iBAAkB,SACjB,CACDh4C,KAAM,SACN62C,MAAO,MACPD,WAAY,YACZE,kBAAmB,eACnBkB,iBAAkB,SACjB,CACDh4C,KAAM,uBACN62C,MAAO,SACPD,WAAY,mCACZoB,iBAAkB,SACjB,CACDh4C,KAAM,kBACN62C,MAAO,SACPD,WAAY,mCACZoB,iBAAkB,SACjB,CACDh4C,KAAM,sBACN62C,MAAO,SACPD,WAAY,mCACZoB,iBAAkB,SACjB,CACDh4C,KAAM,oBACN62C,MAAO,SACPD,WAAY,mCACZoB,iBAAkB,SACjB,CACDh4C,KAAM,qBACN62C,MAAO,SACPD,WAAY,kCACZoB,iBAAkB,SACjB,CACDh4C,KAAM,yBACN62C,MAAO,SACPD,WAAY,kCACZoB,iBAAkB,SACjB,CACDh4C,KAAM,gBACN62C,MAAO,SACPD,WAAY,kCACZoB,iBAAkB,SACjB,CACDh4C,KAAM,wBACN62C,MAAO,SACPD,WAAY,kCACZoB,iBAAkB,SACjB,CACDh4C,KAAM,mBACN62C,MAAO,SACPD,WAAY,kCACZoB,iBAAkB,SACjB,CACDh4C,KAAM,iBACN62C,MAAO,SACPD,WAAY,kCACZoB,iBAAkB,SACjB,CACDh4C,KAAM,mBACN62C,MAAO,SACPD,WAAY,kCACZoB,iBAAkB,SACjB,CACDh4C,KAAM,kBACN62C,MAAO,SACPD,WAAY,kCACZoB,iBAAkB,SACjB,CACDh4C,KAAM,gBACN62C,MAAO,SACPD,WAAY,kCACZoB,iBAAkB,SACjB,CACDh4C,KAAM,mBACN62C,MAAO,SACPD,WAAY,kCACZoB,iBAAkB,SACjB,CACDh4C,KAAM,SACN62C,MAAO,SACPD,WAAY,UACX,CACD52C,KAAM,SACN62C,MAAO,QACPD,WAAY,SACZE,kBAAmB,oBAClB,CACD92C,KAAM,SACN62C,MAAO,QACPD,WAAY,UACX,CACD52C,KAAM,SACN62C,MAAO,QACPD,WAAY,UACX,CACD52C,KAAM,QACN62C,MAAO,QACPD,WAAY,SACX,CACD52C,KAAM,aACN62C,MAAO,aACPD,WAAY,kHC1KP,IAAMnhC,QAAM,2+DAEJ,CACbA,IAAKA,sLCAP,QAAAlW,EAAA,UACAA,EAAA,UACAA,EAAA,UACAA,EAAA,UACAA,EAAA,UACAA,EAAA,UACAA,EAAA,UACAA,EAAA,UACAA,EAAA,UACAA,EAAA,yDAEW8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","file":"clappr.plainhtml5.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Clappr\"] = factory();\n\telse\n\t\troot[\"Clappr\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"dist/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 96);\n","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport Log from '../plugins/log'\nimport { uniqueId } from './utils'\n\nconst slice = Array.prototype.slice\n\nconst eventSplitter = /\\s+/\n\nconst eventsApi = function(obj, action, name, rest) {\n if (!name) return true\n\n // Handle event maps.\n if (typeof name === 'object') {\n for (const key in name)\n obj[action].apply(obj, [key, name[key]].concat(rest))\n\n return false\n }\n\n // Handle space separated event names.\n if (eventSplitter.test(name)) {\n const names = name.split(eventSplitter)\n for (let i = 0, l = names.length; i < l; i++)\n obj[action].apply(obj, [names[i]].concat(rest))\n\n return false\n }\n\n return true\n}\n\nconst triggerEvents = function(events, args, klass, name) {\n let ev, i = -1\n const l = events.length, a1 = args[0], a2 = args[1], a3 = args[2]\n run()\n\n function run() {\n try {\n switch (args.length) {\n /* eslint-disable curly */\n case 0: while (++i < l) { (ev = events[i]).callback.call(ev.ctx) } return\n case 1: while (++i < l) { (ev = events[i]).callback.call(ev.ctx, a1) } return\n case 2: while (++i < l) { (ev = events[i]).callback.call(ev.ctx, a1, a2) } return\n case 3: while (++i < l) { (ev = events[i]).callback.call(ev.ctx, a1, a2, a3) } return\n default: while (++i < l) { (ev = events[i]).callback.apply(ev.ctx, args) } return\n }\n } catch (exception) {\n Log.error.apply(Log, [klass, 'error on event', name, 'trigger','-', exception])\n run()\n }\n }\n}\n\n/**\n * @class Events\n * @constructor\n * @module base\n */\nexport default class Events {\n /**\n * listen to an event indefinitely, if you want to stop you need to call `off`\n * @method on\n * @param {String} name\n * @param {Function} callback\n * @param {Object} context\n */\n on(name, callback, context) {\n if (!eventsApi(this, 'on', name, [callback, context]) || !callback) return this\n this._events || (this._events = {})\n const events = this._events[name] || (this._events[name] = [])\n events.push({ callback: callback, context: context, ctx: context || this })\n return this\n }\n\n /**\n * listen to an event only once\n * @method once\n * @param {String} name\n * @param {Function} callback\n * @param {Object} context\n */\n once(name, callback, context) {\n let once\n if (!eventsApi(this, 'once', name, [callback, context]) || !callback) return this\n const off = () => this.off(name, once)\n once = function() {\n off(name, once)\n callback.apply(this, arguments)\n }\n return this.on(name, once, context)\n }\n\n /**\n * stop listening to an event\n * @method off\n * @param {String} name\n * @param {Function} callback\n * @param {Object} context\n */\n off(name, callback, context) {\n let retain, ev, events, names, i, l, j, k\n if (!this._events || !eventsApi(this, 'off', name, [callback, context])) return this\n if (!name && !callback && !context) {\n this._events = void 0\n return this\n }\n names = name ? [name] : Object.keys(this._events)\n // jshint maxdepth:5\n for (i = 0, l = names.length; i < l; i++) {\n name = names[i]\n events = this._events[name]\n if (events) {\n this._events[name] = retain = []\n if (callback || context) {\n for (j = 0, k = events.length; j < k; j++) {\n ev = events[j]\n if ((callback && callback !== ev.callback && callback !== ev.callback._callback) ||\n (context && context !== ev.context))\n retain.push(ev)\n\n }\n }\n if (!retain.length) delete this._events[name]\n }\n }\n return this\n }\n\n /**\n * triggers an event given its `name`\n * @method trigger\n * @param {String} name\n */\n trigger(name) {\n const klass = this.name || this.constructor.name\n Log.debug.apply(Log, [klass].concat(Array.prototype.slice.call(arguments)))\n if (!this._events) return this\n const args = slice.call(arguments, 1)\n if (!eventsApi(this, 'trigger', name, args)) return this\n const events = this._events[name]\n const allEvents = this._events.all\n if (events) triggerEvents(events, args, klass, name)\n if (allEvents) triggerEvents(allEvents, arguments, klass, name)\n return this\n }\n\n /**\n * stop listening an event for a given object\n * @method stopListening\n * @param {Object} obj\n * @param {String} name\n * @param {Function} callback\n */\n stopListening(obj, name, callback) {\n let listeningTo = this._listeningTo\n if (!listeningTo) return this\n const remove = !name && !callback\n if (!callback && typeof name === 'object') callback = this\n if (obj) (listeningTo = {})[obj._listenId] = obj\n for (const id in listeningTo) {\n obj = listeningTo[id]\n obj.off(name, callback, this)\n if (remove || Object.keys(obj._events).length === 0) delete this._listeningTo[id]\n }\n return this\n }\n\n static register(eventName) {\n Events.Custom || (Events.Custom = {})\n let property = typeof eventName === 'string' && eventName.toUpperCase().trim()\n\n if (property && !Events.Custom[property]) {\n Events.Custom[property] = property.toLowerCase().split('_').map(\n (value, index) => index === 0 ? value : value = (value[0].toUpperCase() + value.slice(1))\n ).join('')\n } else\n Log.error('Events', 'Error when register event: ' + eventName)\n\n }\n\n static listAvailableCustomEvents() {\n Events.Custom || (Events.Custom = {})\n return Object.keys(Events.Custom).filter((property) => typeof Events.Custom[property] === 'string')\n }\n}\n\n/**\n * listen to an event indefinitely for a given `obj`\n * @method listenTo\n * @param {Object} obj\n * @param {String} name\n * @param {Function} callback\n * @param {Object} context\n * @example\n * ```javascript\n * this.listenTo(this.core.playback, Events.PLAYBACK_PAUSE, this.callback)\n * ```\n */\n/**\n * listen to an event once for a given `obj`\n * @method listenToOnce\n * @param {Object} obj\n * @param {String} name\n * @param {Function} callback\n * @param {Object} context\n * @example\n * ```javascript\n * this.listenToOnce(this.core.playback, Events.PLAYBACK_PAUSE, this.callback)\n * ```\n */\nconst listenMethods = { listenTo: 'on', listenToOnce: 'once' }\n\nObject.keys(listenMethods).forEach(function(method) {\n Events.prototype[method] = function(obj, name, callback) {\n const listeningTo = this._listeningTo || (this._listeningTo = {})\n const id = obj._listenId || (obj._listenId = uniqueId('l'))\n listeningTo[id] = obj\n if (!callback && typeof name === 'object') callback = this\n obj[listenMethods[method]](name, callback, this)\n return this\n }\n})\n\n// PLAYER EVENTS\n/**\n * Fired when the player is ready on startup\n *\n * @event PLAYER_READY\n */\nEvents.PLAYER_READY = 'ready'\n/**\n * Fired when player resizes\n *\n * @event PLAYER_RESIZE\n * @param {Object} currentSize an object with the current size\n */\nEvents.PLAYER_RESIZE = 'resize'\n/**\n * Fired when player changes its fullscreen state\n *\n * @event PLAYER_FULLSCREEN\n * @param {Boolean} whether or not the player is on fullscreen mode\n */\nEvents.PLAYER_FULLSCREEN = 'fullscreen'\n/**\n * Fired when player starts to play\n *\n * @event PLAYER_PLAY\n */\nEvents.PLAYER_PLAY = 'play'\n/**\n * Fired when player pauses\n *\n * @event PLAYER_PAUSE\n */\nEvents.PLAYER_PAUSE = 'pause'\n/**\n * Fired when player stops\n *\n * @event PLAYER_STOP\n */\nEvents.PLAYER_STOP = 'stop'\n/**\n * Fired when player ends the video\n *\n * @event PLAYER_ENDED\n */\nEvents.PLAYER_ENDED = 'ended'\n/**\n * Fired when player seeks the video\n *\n * @event PLAYER_SEEK\n * @param {Number} time the current time in seconds\n */\nEvents.PLAYER_SEEK = 'seek'\n/**\n * Fired when player receives an error\n *\n * @event PLAYER_ERROR\n * @param {Object} error the error\n */\nEvents.PLAYER_ERROR = 'playererror'\n/**\n * Fired when there is an error\n *\n * @event ERROR\n * @param {Object} error\n * the error with the following format `{code, description, level, raw, origin, scope}`\n * @param {String} [options.code]\n * error's code: code to identify error in the following format: origin:code\n * @param {String} [options.description]\n * error's description: description of the error\n * @param {String} [options.level]\n * error's level: FATAL or WARN.\n * @param {String} [options.origin]\n * error's origin. Example: hls, html5, etc\n * @param {String} [options.scope]\n * error's scope. Example: playback, container, etc\n * @param {String} [options.raw]\n * raw error: the initial error received\n */\nEvents.ERROR = 'error'\n/**\n * Fired when the time is updated on player\n *\n * @event PLAYER_TIMEUPDATE\n * @param {Object} progress Data\n * progress object\n * @param {Number} [progress.current]\n * current time (in seconds)\n * @param {Number} [progress.total]\n * total time (in seconds)\n */\nEvents.PLAYER_TIMEUPDATE = 'timeupdate'\n/**\n * Fired when player updates its volume\n *\n * @event PLAYER_VOLUMEUPDATE\n * @param {Number} volume the current volume\n */\nEvents.PLAYER_VOLUMEUPDATE = 'volumeupdate'\n\n/**\n * Fired when subtitle is available\n *\n * @event PLAYER_SUBTITLE_AVAILABLE\n */\nEvents.PLAYER_SUBTITLE_AVAILABLE = 'subtitleavailable'\n\n// Playback Events\n/**\n * Fired when the playback is downloading the media\n *\n * @event PLAYBACK_PROGRESS\n * @param progress {Object}\n * Data progress object\n * @param [progress.start] {Number}\n * start position of buffered content at current position\n * @param [progress.current] {Number}\n * end position of buffered content at current position\n * @param [progress.total] {Number}\n * total content to be downloaded\n * @param buffered {Array}\n * array of buffered segments ({start, end}). [Only for supported playbacks]\n */\nEvents.PLAYBACK_PROGRESS = 'playback:progress'\n/**\n * Fired when the time is updated on playback\n *\n * @event PLAYBACK_TIMEUPDATE\n * @param {Object} progress Data\n * progress object\n * @param {Number} [progress.current]\n * current time (in seconds)\n * @param {Number} [progress.total]\n * total time (in seconds)\n */\nEvents.PLAYBACK_TIMEUPDATE = 'playback:timeupdate'\n/**\n * Fired when playback is ready\n *\n * @event PLAYBACK_READY\n */\nEvents.PLAYBACK_READY = 'playback:ready'\n/**\n * Fired when the playback starts having to buffer because\n * playback can currently not be smooth.\n *\n * This corresponds to the playback `buffering` property being\n * `true`.\n *\n * @event PLAYBACK_BUFFERING\n */\nEvents.PLAYBACK_BUFFERING = 'playback:buffering'\n/**\n * Fired when the playback has enough in the buffer to be\n * able to play smoothly, after previously being unable to\n * do this.\n *\n * This corresponds to the playback `buffering` property being\n * `false`.\n *\n * @event PLAYBACK_BUFFERFULL\n */\nEvents.PLAYBACK_BUFFERFULL = 'playback:bufferfull'\n/**\n * Fired when playback changes any settings (volume, seek and etc)\n *\n * @event PLAYBACK_SETTINGSUPDATE\n */\nEvents.PLAYBACK_SETTINGSUPDATE = 'playback:settingsupdate'\n/**\n * Fired when playback loaded its metadata\n *\n * @event PLAYBACK_LOADEDMETADATA\n * @param {Object} metadata Data\n * settings object\n * @param {Number} [metadata.duration]\n * the playback duration\n * @param {Object} [metadata.data]\n * extra meta data\n */\nEvents.PLAYBACK_LOADEDMETADATA = 'playback:loadedmetadata'\n/**\n * Fired when playback updates its video quality\n *\n * @event PLAYBACK_HIGHDEFINITIONUPDATE\n * @param {Boolean} isHD\n * true when is on HD, false otherwise\n */\nEvents.PLAYBACK_HIGHDEFINITIONUPDATE = 'playback:highdefinitionupdate'\n/**\n * Fired when playback updates its bitrate\n *\n * @event PLAYBACK_BITRATE\n * @param {Object} bitrate Data\n * bitrate object\n * @param {Number} [bitrate.bandwidth]\n * bitrate bandwidth when it's available\n * @param {Number} [bitrate.width]\n * playback width (ex: 720, 640, 1080)\n * @param {Number} [bitrate.height]\n * playback height (ex: 240, 480, 720)\n * @param {Number} [bitrate.level]\n * playback level when it's available, it could be just a map for width (0 => 240, 1 => 480, 2 => 720)\n */\nEvents.PLAYBACK_BITRATE = 'playback:bitrate'\n/**\n * Fired when the playback has its levels\n *\n * @event PLAYBACK_LEVELS_AVAILABLE\n * @param {Array} levels\n * the ordered levels, each one with the following format `{id: 1, label: '500kbps'}` ps: id should be a number >= 0\n * @param {Number} initial\n * the initial level otherwise -1 (AUTO)\n */\nEvents.PLAYBACK_LEVELS_AVAILABLE = 'playback:levels:available'\n/**\n * Fired when the playback starts to switch level\n *\n * @event PLAYBACK_LEVEL_SWITCH_START\n *\n */\nEvents.PLAYBACK_LEVEL_SWITCH_START = 'playback:levels:switch:start'\n/**\n * Fired when the playback ends the level switch\n *\n * @event PLAYBACK_LEVEL_SWITCH_END\n *\n */\nEvents.PLAYBACK_LEVEL_SWITCH_END = 'playback:levels:switch:end'\n\n/**\n * Fired when playback internal state changes\n *\n * @event PLAYBACK_PLAYBACKSTATE\n * @param {Object} state Data\n * state object\n * @param {String} [state.type]\n * the playback type\n */\nEvents.PLAYBACK_PLAYBACKSTATE = 'playback:playbackstate'\n/**\n * Fired when DVR becomes enabled/disabled.\n *\n * @event PLAYBACK_DVR\n * @param {boolean} state true if dvr enabled\n */\nEvents.PLAYBACK_DVR = 'playback:dvr'\n// TODO doc\nEvents.PLAYBACK_MEDIACONTROL_DISABLE = 'playback:mediacontrol:disable'\n// TODO doc\nEvents.PLAYBACK_MEDIACONTROL_ENABLE = 'playback:mediacontrol:enable'\n/**\n * Fired when the media for a playback ends.\n *\n * @event PLAYBACK_ENDED\n * @param {String} name the name of the playback\n */\nEvents.PLAYBACK_ENDED = 'playback:ended'\n/**\n * Fired when user requests `play()`\n *\n * @event PLAYBACK_PLAY_INTENT\n */\nEvents.PLAYBACK_PLAY_INTENT = 'playback:play:intent'\n/**\n * Fired when the media for a playback starts playing.\n * This is not necessarily when the user requests `play()`\n * The media may have to buffer first.\n * I.e. `isPlaying()` might return `true` before this event is fired,\n * because `isPlaying()` represents the intended state.\n *\n * @event PLAYBACK_PLAY\n */\nEvents.PLAYBACK_PLAY = 'playback:play'\n/**\n * Fired when the media for a playback pauses.\n *\n * @event PLAYBACK_PAUSE\n */\nEvents.PLAYBACK_PAUSE = 'playback:pause'\n/**\n * Fired when the media for a playback is seeking.\n *\n * @event PLAYBACK_SEEK\n */\nEvents.PLAYBACK_SEEK = 'playback:seek'\n/**\n * Fired when the media for a playback is seeked.\n *\n * @event PLAYBACK_SEEKED\n */\nEvents.PLAYBACK_SEEKED = 'playback:seeked'\n/**\n * Fired when the media for a playback is stopped.\n *\n * @event PLAYBACK_STOP\n */\nEvents.PLAYBACK_STOP = 'playback:stop'\n/**\n * Fired if an error occurs in the playback.\n *\n * @event PLAYBACK_ERROR\n * @param {Object} error An object containing the error details\n * @param {String} name Playback name\n */\nEvents.PLAYBACK_ERROR = 'playback:error'\n// TODO doc\nEvents.PLAYBACK_STATS_ADD = 'playback:stats:add'\n// TODO doc\nEvents.PLAYBACK_FRAGMENT_LOADED = 'playback:fragment:loaded'\n// TODO doc\nEvents.PLAYBACK_LEVEL_SWITCH = 'playback:level:switch'\n/**\n * Fired when subtitle is available on playback for display\n *\n * @event PLAYBACK_SUBTITLE_AVAILABLE\n */\nEvents.PLAYBACK_SUBTITLE_AVAILABLE = 'playback:subtitle:available'\n/**\n * Fired when playback subtitle track has changed\n *\n * @event CONTAINER_SUBTITLE_CHANGED\n * @param {Object} track Data\n * track object\n * @param {Number} [track.id]\n * selected track id\n */\nEvents.PLAYBACK_SUBTITLE_CHANGED = 'playback:subtitle:changed'\n\n// Core Events\n/**\n * Fired when the containers are created\n *\n * @event CORE_CONTAINERS_CREATED\n */\nEvents.CORE_CONTAINERS_CREATED = 'core:containers:created'\n/**\n * Fired when the active container changed\n *\n * @event CORE_ACTIVE_CONTAINER_CHANGED\n */\nEvents.CORE_ACTIVE_CONTAINER_CHANGED = 'core:active:container:changed'\n/**\n * Fired when the options were changed for the core\n *\n * @event CORE_OPTIONS_CHANGE\n * @param {Object} new options provided to configure() method\n */\nEvents.CORE_OPTIONS_CHANGE = 'core:options:change'\n/**\n * Fired after creating containers, when the core is ready\n *\n * @event CORE_READY\n */\nEvents.CORE_READY = 'core:ready'\n/**\n * Fired when the fullscreen state change\n *\n * @event CORE_FULLSCREEN\n * @param {Boolean} whether or not the player is on fullscreen mode\n */\nEvents.CORE_FULLSCREEN = 'core:fullscreen'\n/**\n * Fired when core updates size\n *\n * @event CORE_RESIZE\n * @param {Object} currentSize an object with the current size\n */\nEvents.CORE_RESIZE = 'core:resize'\n/**\n * Fired when the screen orientation has changed.\n * This event is trigger only for mobile devices.\n *\n * @event CORE_SCREEN_ORIENTATION_CHANGED\n * @param {Object} screen An object with screen orientation\n * screen object\n * @param {Object} [screen.event]\n * window resize event object\n * @param {String} [screen.orientation]\n * screen orientation (ie: 'landscape' or 'portrait')\n */\nEvents.CORE_SCREEN_ORIENTATION_CHANGED = 'core:screen:orientation:changed'\n/**\n * Fired when occurs mouse move event on core element\n *\n * @event CORE_MOUSE_MOVE\n * @param {Object} event a DOM event\n */\nEvents.CORE_MOUSE_MOVE = 'core:mousemove'\n/**\n * Fired when occurs mouse leave event on core element\n *\n * @event CORE_MOUSE_LEAVE\n * @param {Object} event a DOM event\n */\nEvents.CORE_MOUSE_LEAVE = 'core:mouseleave'\n\n// Container Events\n/**\n * Fired when the container internal state changes\n *\n * @event CONTAINER_PLAYBACKSTATE\n * @param {Object} state Data\n * state object\n * @param {String} [state.type]\n * the playback type\n */\nEvents.CONTAINER_PLAYBACKSTATE = 'container:playbackstate'\nEvents.CONTAINER_PLAYBACKDVRSTATECHANGED = 'container:dvr'\n/**\n * Fired when the container updates its bitrate\n *\n * @event CONTAINER_BITRATE\n * @param {Object} bitrate Data\n * bitrate object\n * @param {Number} [bitrate.bandwidth]\n * bitrate bandwidth when it's available\n * @param {Number} [bitrate.width]\n * playback width (ex: 720, 640, 1080)\n * @param {Number} [bitrate.height]\n * playback height (ex: 240, 480, 720)\n * @param {Number} [bitrate.level]\n * playback level when it's available, it could be just a map for width (0 => 240, 1 => 480, 2 => 720)\n */\nEvents.CONTAINER_BITRATE = 'container:bitrate'\nEvents.CONTAINER_STATS_REPORT = 'container:stats:report'\nEvents.CONTAINER_DESTROYED = 'container:destroyed'\n/**\n * Fired when the container is ready\n *\n * @event CONTAINER_READY\n */\nEvents.CONTAINER_READY = 'container:ready'\nEvents.CONTAINER_ERROR = 'container:error'\n/**\n * Fired when the container loaded its metadata\n *\n * @event CONTAINER_LOADEDMETADATA\n * @param {Object} metadata Data\n * settings object\n * @param {Number} [metadata.duration]\n * the playback duration\n * @param {Object} [metadata.data]\n * extra meta data\n */\nEvents.CONTAINER_LOADEDMETADATA = 'container:loadedmetadata'\n\n/**\n * Fired when subtitle is available on container for display\n *\n * @event CONTAINER_SUBTITLE_AVAILABLE\n */\nEvents.CONTAINER_SUBTITLE_AVAILABLE = 'container:subtitle:available'\n/**\n * Fired when subtitle track has changed\n *\n * @event CONTAINER_SUBTITLE_CHANGED\n * @param {Object} track Data\n * track object\n * @param {Number} [track.id]\n * selected track id\n */\nEvents.CONTAINER_SUBTITLE_CHANGED = 'container:subtitle:changed'\n\n/**\n * Fired when the time is updated on container\n *\n * @event CONTAINER_TIMEUPDATE\n * @param {Object} progress Data\n * progress object\n * @param {Number} [progress.current]\n * current time (in seconds)\n * @param {Number} [progress.total]\n * total time (in seconds)\n */\nEvents.CONTAINER_TIMEUPDATE = 'container:timeupdate'\n/**\n * Fired when the container is downloading the media\n *\n * @event CONTAINER_PROGRESS\n * @param {Object} progress Data\n * progress object\n * @param {Number} [progress.start]\n * initial downloaded content\n * @param {Number} [progress.current]\n * current dowloaded content\n * @param {Number} [progress.total]\n * total content to be downloaded\n */\nEvents.CONTAINER_PROGRESS = 'container:progress'\nEvents.CONTAINER_PLAY = 'container:play'\nEvents.CONTAINER_STOP = 'container:stop'\nEvents.CONTAINER_PAUSE = 'container:pause'\nEvents.CONTAINER_ENDED = 'container:ended'\nEvents.CONTAINER_CLICK = 'container:click'\nEvents.CONTAINER_DBLCLICK = 'container:dblclick'\nEvents.CONTAINER_CONTEXTMENU = 'container:contextmenu'\nEvents.CONTAINER_MOUSE_ENTER = 'container:mouseenter'\nEvents.CONTAINER_MOUSE_LEAVE = 'container:mouseleave'\n/**\n * Fired when the container seeks the video\n *\n * @event CONTAINER_SEEK\n * @param {Number} time the current time in seconds\n */\nEvents.CONTAINER_SEEK = 'container:seek'\n/**\n * Fired when the container was finished the seek video\n *\n * @event CONTAINER_SEEKED\n * @param {Number} time the current time in seconds\n */\nEvents.CONTAINER_SEEKED = 'container:seeked'\nEvents.CONTAINER_VOLUME = 'container:volume'\nEvents.CONTAINER_FULLSCREEN = 'container:fullscreen'\n/**\n * Fired when container is buffering\n *\n * @event CONTAINER_STATE_BUFFERING\n */\nEvents.CONTAINER_STATE_BUFFERING = 'container:state:buffering'\n/**\n * Fired when the container filled the buffer\n *\n * @event CONTAINER_STATE_BUFFERFULL\n */\nEvents.CONTAINER_STATE_BUFFERFULL = 'container:state:bufferfull'\n/**\n * Fired when the container changes any settings (volume, seek and etc)\n *\n * @event CONTAINER_SETTINGSUPDATE\n */\nEvents.CONTAINER_SETTINGSUPDATE = 'container:settingsupdate'\n/**\n * Fired when container updates its video quality\n *\n * @event CONTAINER_HIGHDEFINITIONUPDATE\n * @param {Boolean} isHD\n * true when is on HD, false otherwise\n */\nEvents.CONTAINER_HIGHDEFINITIONUPDATE = 'container:highdefinitionupdate'\n\n/**\n * Fired when the media control shows\n *\n * @event CONTAINER_MEDIACONTROL_SHOW\n */\nEvents.CONTAINER_MEDIACONTROL_SHOW = 'container:mediacontrol:show'\n/**\n * Fired when the media control hides\n *\n * @event CONTAINER_MEDIACONTROL_HIDE\n */\nEvents.CONTAINER_MEDIACONTROL_HIDE = 'container:mediacontrol:hide'\n\nEvents.CONTAINER_MEDIACONTROL_DISABLE = 'container:mediacontrol:disable'\nEvents.CONTAINER_MEDIACONTROL_ENABLE = 'container:mediacontrol:enable'\nEvents.CONTAINER_STATS_ADD = 'container:stats:add'\n/**\n * Fired when the options were changed for the container\n *\n * @event CONTAINER_OPTIONS_CHANGE\n */\nEvents.CONTAINER_OPTIONS_CHANGE = 'container:options:change'\n\n// MediaControl Events\nEvents.MEDIACONTROL_RENDERED = 'mediacontrol:rendered'\n/**\n * Fired when the player enters/exit on fullscreen\n *\n * @event MEDIACONTROL_FULLSCREEN\n */\nEvents.MEDIACONTROL_FULLSCREEN = 'mediacontrol:fullscreen'\n/**\n * Fired when the media control shows\n *\n * @event MEDIACONTROL_SHOW\n */\nEvents.MEDIACONTROL_SHOW = 'mediacontrol:show'\n/**\n * Fired when the media control hides\n *\n * @event MEDIACONTROL_HIDE\n */\nEvents.MEDIACONTROL_HIDE = 'mediacontrol:hide'\n/**\n * Fired when mouse enters on the seekbar\n *\n * @event MEDIACONTROL_MOUSEMOVE_SEEKBAR\n * @param {Object} event\n * the javascript event\n */\nEvents.MEDIACONTROL_MOUSEMOVE_SEEKBAR = 'mediacontrol:mousemove:seekbar'\n/**\n * Fired when mouse leaves the seekbar\n *\n * @event MEDIACONTROL_MOUSELEAVE_SEEKBAR\n * @param {Object} event\n * the javascript event\n */\nEvents.MEDIACONTROL_MOUSELEAVE_SEEKBAR = 'mediacontrol:mouseleave:seekbar'\n/**\n * Fired when the media is being played\n *\n * @event MEDIACONTROL_PLAYING\n */\nEvents.MEDIACONTROL_PLAYING = 'mediacontrol:playing'\n/**\n * Fired when the media is not being played\n *\n * @event MEDIACONTROL_NOTPLAYING\n */\nEvents.MEDIACONTROL_NOTPLAYING = 'mediacontrol:notplaying'\n/**\n * Fired when the container was changed\n *\n * @event MEDIACONTROL_CONTAINERCHANGED\n */\nEvents.MEDIACONTROL_CONTAINERCHANGED = 'mediacontrol:containerchanged'\n/**\n * Fired when the options were changed for the mediacontrol\n *\n * @event MEDIACONTROL_OPTIONS_CHANGE\n */\nEvents.MEDIACONTROL_OPTIONS_CHANGE = 'mediacontrol:options:change'\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n/*jshint -W079 */\n\nimport './polyfills'\nimport Browser from '../components/browser'\nimport $ from 'clappr-zepto'\nimport Media from './media'\nimport Icons from './svg_icons'\n\nexport function assign(obj, source) {\n if (source) {\n for (const prop in source) {\n const propDescriptor = Object.getOwnPropertyDescriptor(source, prop)\n propDescriptor ? Object.defineProperty(obj, prop, propDescriptor) : obj[prop] = source[prop]\n }\n }\n return obj\n}\n\nexport function extend(parent, properties) {\n class Surrogate extends parent {\n constructor(...args) {\n super(...args)\n if (properties.initialize)\n properties.initialize.apply(this, args)\n\n }\n }\n assign(Surrogate.prototype, properties)\n return Surrogate\n}\n\nexport function formatTime(time, paddedHours) {\n if (!isFinite(time))\n return '--:--'\n\n time = time * 1000\n time = parseInt(time/1000)\n const seconds = time % 60\n time = parseInt(time/60)\n const minutes = time % 60\n time = parseInt(time/60)\n const hours = time % 24\n const days = parseInt(time/24)\n let out = ''\n if (days && days > 0) {\n out += days + ':'\n if (hours < 1) out += '00:'\n }\n if (hours && hours > 0 || paddedHours) out += ('0' + hours).slice(-2) + ':'\n out += ('0' + minutes).slice(-2) + ':'\n out += ('0' + seconds).slice(-2)\n return out.trim()\n}\n\nexport const Fullscreen = {\n fullscreenElement: function() {\n return document.fullscreenElement ||\n document.webkitFullscreenElement ||\n document.mozFullScreenElement ||\n document.msFullscreenElement\n },\n requestFullscreen: function(el) {\n if (el.requestFullscreen)\n el.requestFullscreen()\n else if (el.webkitRequestFullscreen)\n el.webkitRequestFullscreen()\n else if (el.mozRequestFullScreen)\n el.mozRequestFullScreen()\n else if (el.msRequestFullscreen)\n el.msRequestFullscreen()\n else if (el.querySelector && el.querySelector('video') && el.querySelector('video').webkitEnterFullScreen)\n el.querySelector('video').webkitEnterFullScreen()\n else if (el.webkitEnterFullScreen)\n el.webkitEnterFullScreen()\n\n },\n cancelFullscreen: function(el=document) {\n if (el.exitFullscreen)\n el.exitFullscreen()\n else if (el.webkitCancelFullScreen)\n el.webkitCancelFullScreen()\n else if (el.webkitExitFullscreen)\n el.webkitExitFullscreen()\n else if (el.mozCancelFullScreen)\n el.mozCancelFullScreen()\n else if (el.msExitFullscreen)\n el.msExitFullscreen()\n\n },\n fullscreenEnabled: function() {\n return !!(\n document.fullscreenEnabled ||\n document.webkitFullscreenEnabled ||\n document.mozFullScreenEnabled ||\n document.msFullscreenEnabled\n )\n }\n}\n\nexport class Config {\n\n static _defaultConfig() {\n return {\n volume: {\n value: 100,\n parse: parseInt\n }\n }\n }\n\n static _defaultValueFor(key) {\n try {\n return this._defaultConfig()[key].parse(this._defaultConfig()[key].value)\n } catch (e) {\n return undefined\n }\n }\n\n static _createKeyspace(key) {\n return `clappr.${document.domain}.${key}`\n }\n\n static restore(key) {\n if (Browser.hasLocalstorage && localStorage[this._createKeyspace(key)])\n return this._defaultConfig()[key].parse(localStorage[this._createKeyspace(key)])\n\n return this._defaultValueFor(key)\n }\n\n static persist(key, value) {\n if (Browser.hasLocalstorage) {\n try {\n localStorage[this._createKeyspace(key)] = value\n return true\n } catch (e) {\n return false\n }\n }\n }\n}\n\nexport class QueryString {\n static get params() {\n const query = window.location.search.substring(1)\n if (query !== this.query) {\n this._urlParams = this.parse(query)\n this.query = query\n }\n return this._urlParams\n }\n\n static get hashParams() {\n const hash = window.location.hash.substring(1)\n if (hash !== this.hash) {\n this._hashParams = this.parse(hash)\n this.hash = hash\n }\n return this._hashParams\n }\n\n static parse(paramsString) {\n let match\n const pl = /\\+/g, // Regex for replacing addition symbol with a space\n search = /([^&=]+)=?([^&]*)/g,\n decode = (s) => decodeURIComponent(s.replace(pl, ' ')),\n params = {}\n while (match = search.exec(paramsString)) { // eslint-disable-line no-cond-assign\n params[decode(match[1]).toLowerCase()] = decode(match[2])\n }\n return params\n }\n}\n\nexport function seekStringToSeconds(paramName = 't') {\n let seconds = 0\n const seekString = QueryString.params[paramName] || QueryString.hashParams[paramName] || ''\n const parts = seekString.match(/[0-9]+[hms]+/g) || []\n if (parts.length > 0) {\n const factor = { 'h': 3600, 'm': 60, 's': 1 }\n parts.forEach(function(el) {\n if (el) {\n const suffix = el[el.length - 1]\n const time = parseInt(el.slice(0, el.length - 1), 10)\n seconds += time * (factor[suffix])\n }\n })\n } else if (seekString) { seconds = parseInt(seekString, 10) }\n\n return seconds\n}\n\nconst idsCounter = {}\n\nexport function uniqueId(prefix) {\n idsCounter[prefix] || (idsCounter[prefix] = 0)\n const id = ++idsCounter[prefix]\n return prefix + id\n}\n\nexport function isNumber(value) {\n return value - parseFloat(value) + 1 >= 0\n}\n\nexport function currentScriptUrl() {\n const scripts = document.getElementsByTagName('script')\n return scripts.length ? scripts[scripts.length - 1].src : ''\n}\n\nexport const requestAnimationFrame = (window.requestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n function(fn) { window.setTimeout(fn, 1000/60) }).bind(window)\n\nexport const cancelAnimationFrame = (window.cancelAnimationFrame ||\n window.mozCancelAnimationFrame ||\n window.webkitCancelAnimationFrame ||\n window.clearTimeout).bind(window)\n\nexport function getBrowserLanguage() {\n return window.navigator && window.navigator.language\n}\n\nexport function now() {\n if (window.performance && window.performance.now)\n return performance.now()\n\n return Date.now()\n}\n\n// remove the item from the array if it exists in the array\nexport function removeArrayItem(arr, item) {\n const i = arr.indexOf(item)\n if (i >= 0)\n arr.splice(i, 1)\n\n}\n\n// find an item regardless of its letter case\nexport function listContainsIgnoreCase(item, items) {\n if (item === undefined || items === undefined) return false\n return items.find((itemEach) => item.toLowerCase() === itemEach.toLowerCase()) !== undefined\n}\n\n// https://github.com/video-dev/can-autoplay\nexport function canAutoPlayMedia(cb, options) {\n options = Object.assign({\n inline: false,\n muted: false,\n timeout: 250,\n type: 'video',\n source: Media.mp4,\n element: null\n }, options)\n\n let element = options.element ? options.element : document.createElement(options.type)\n\n element.muted = options.muted\n if (options.muted === true)\n element.setAttribute('muted', 'muted')\n\n if (options.inline === true)\n element.setAttribute('playsinline', 'playsinline')\n\n element.src = options.source\n\n let promise = element.play()\n\n let timeoutId = setTimeout(() => {\n setResult(false, new Error(`Timeout ${options.timeout} ms has been reached`))\n }, options.timeout)\n\n let setResult = (result, error = null) => {\n clearTimeout(timeoutId)\n cb(result, error)\n }\n\n if (promise !== undefined) {\n promise\n .then(() => setResult(true))\n .catch(err => setResult(false, err))\n } else {\n setResult(true)\n }\n}\n\n// Simple Zepto element factory with video recycle feature.\nconst videoStack = []\n\nexport class DomRecycler {\n static configure(options) {\n this.options = $.extend(this.options, options)\n }\n\n static create(name) {\n if (this.options.recycleVideo && name === 'video' && videoStack.length > 0)\n return videoStack.shift()\n\n return $('<' + name + '>')\n }\n\n static garbage($el) {\n // Expect Zepto collection with single element (does not iterate!)\n if (!this.options.recycleVideo || $el[0].tagName.toUpperCase() !== 'VIDEO') return\n $el.children().remove()\n videoStack.push($el)\n }\n}\n\nDomRecycler.options = { recycleVideo: false }\n\nexport class DoubleEventHandler {\n constructor(delay = 500) {\n this.delay = delay\n this.lastTime = 0\n }\n\n handle(event, cb, prevented = true) {\n // Based on http://jsfiddle.net/brettwp/J4djY/\n let currentTime = new Date().getTime()\n let diffTime = currentTime - this.lastTime\n\n if (diffTime < this.delay && diffTime > 0) {\n cb()\n prevented && event.preventDefault()\n }\n\n this.lastTime = currentTime\n }\n}\n\nexport let SvgIcons = Icons\n\nexport default {\n Config,\n Fullscreen,\n QueryString,\n DomRecycler,\n extend,\n formatTime,\n seekStringToSeconds,\n uniqueId,\n currentScriptUrl,\n isNumber,\n requestAnimationFrame,\n cancelAnimationFrame,\n getBrowserLanguage,\n now,\n removeArrayItem,\n canAutoPlayMedia,\n Media,\n DoubleEventHandler,\n SvgIcons: Icons,\n}\n","/* Zepto v1.2.0 - zepto ajax callbacks deferred event ie selector - zeptojs.com/license */\n\n\nvar Zepto = (function() {\n var undefined, key, $, classList, emptyArray = [], concat = emptyArray.concat, filter = emptyArray.filter, slice = emptyArray.slice,\n document = window.document,\n elementDisplay = {}, classCache = {},\n cssNumber = { 'column-count': 1, 'columns': 1, 'font-weight': 1, 'line-height': 1,'opacity': 1, 'z-index': 1, 'zoom': 1 },\n fragmentRE = /^\\s*<(\\w+|!)[^>]*>/,\n singleTagRE = /^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/,\n tagExpanderRE = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/ig,\n rootNodeRE = /^(?:body|html)$/i,\n capitalRE = /([A-Z])/g,\n\n // special attributes that should be get/set via method calls\n methodAttributes = ['val', 'css', 'html', 'text', 'data', 'width', 'height', 'offset'],\n\n adjacencyOperators = [ 'after', 'prepend', 'before', 'append' ],\n table = document.createElement('table'),\n tableRow = document.createElement('tr'),\n containers = {\n 'tr': document.createElement('tbody'),\n 'tbody': table, 'thead': table, 'tfoot': table,\n 'td': tableRow, 'th': tableRow,\n '*': document.createElement('div')\n },\n readyRE = /complete|loaded|interactive/,\n simpleSelectorRE = /^[\\w-]*$/,\n class2type = {},\n toString = class2type.toString,\n zepto = {},\n camelize, uniq,\n tempParent = document.createElement('div'),\n propMap = {\n 'tabindex': 'tabIndex',\n 'readonly': 'readOnly',\n 'for': 'htmlFor',\n 'class': 'className',\n 'maxlength': 'maxLength',\n 'cellspacing': 'cellSpacing',\n 'cellpadding': 'cellPadding',\n 'rowspan': 'rowSpan',\n 'colspan': 'colSpan',\n 'usemap': 'useMap',\n 'frameborder': 'frameBorder',\n 'contenteditable': 'contentEditable'\n },\n isArray = Array.isArray ||\n function(object){ return object instanceof Array }\n\n zepto.matches = function(element, selector) {\n if (!selector || !element || element.nodeType !== 1) return false\n var matchesSelector = element.matches || element.webkitMatchesSelector ||\n element.mozMatchesSelector || element.oMatchesSelector ||\n element.matchesSelector\n if (matchesSelector) return matchesSelector.call(element, selector)\n // fall back to performing a selector:\n var match, parent = element.parentNode, temp = !parent\n if (temp) (parent = tempParent).appendChild(element)\n match = ~zepto.qsa(parent, selector).indexOf(element)\n temp && tempParent.removeChild(element)\n return match\n }\n\n function type(obj) {\n return obj == null ? String(obj) :\n class2type[toString.call(obj)] || \"object\"\n }\n\n function isFunction(value) { return type(value) == \"function\" }\n function isWindow(obj) { return obj != null && obj == obj.window }\n function isDocument(obj) { return obj != null && obj.nodeType == obj.DOCUMENT_NODE }\n function isObject(obj) { return type(obj) == \"object\" }\n function isPlainObject(obj) {\n return isObject(obj) && !isWindow(obj) && Object.getPrototypeOf(obj) == Object.prototype\n }\n\n function likeArray(obj) {\n var length = !!obj && 'length' in obj && obj.length,\n type = $.type(obj)\n\n return 'function' != type && !isWindow(obj) && (\n 'array' == type || length === 0 ||\n (typeof length == 'number' && length > 0 && (length - 1) in obj)\n )\n }\n\n function compact(array) { return filter.call(array, function(item){ return item != null }) }\n function flatten(array) { return array.length > 0 ? $.fn.concat.apply([], array) : array }\n camelize = function(str){ return str.replace(/-+(.)?/g, function(match, chr){ return chr ? chr.toUpperCase() : '' }) }\n function dasherize(str) {\n return str.replace(/::/g, '/')\n .replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2')\n .replace(/([a-z\\d])([A-Z])/g, '$1_$2')\n .replace(/_/g, '-')\n .toLowerCase()\n }\n uniq = function(array){ return filter.call(array, function(item, idx){ return array.indexOf(item) == idx }) }\n\n function classRE(name) {\n return name in classCache ?\n classCache[name] : (classCache[name] = new RegExp('(^|\\\\s)' + name + '(\\\\s|$)'))\n }\n\n function maybeAddPx(name, value) {\n return (typeof value == \"number\" && !cssNumber[dasherize(name)]) ? value + \"px\" : value\n }\n\n function defaultDisplay(nodeName) {\n var element, display\n if (!elementDisplay[nodeName]) {\n element = document.createElement(nodeName)\n document.body.appendChild(element)\n display = getComputedStyle(element, '').getPropertyValue(\"display\")\n element.parentNode.removeChild(element)\n display == \"none\" && (display = \"block\")\n elementDisplay[nodeName] = display\n }\n return elementDisplay[nodeName]\n }\n\n function children(element) {\n return 'children' in element ?\n slice.call(element.children) :\n $.map(element.childNodes, function(node){ if (node.nodeType == 1) return node })\n }\n\n function Z(dom, selector) {\n var i, len = dom ? dom.length : 0\n for (i = 0; i < len; i++) this[i] = dom[i]\n this.length = len\n this.selector = selector || ''\n }\n\n // `$.zepto.fragment` takes a html string and an optional tag name\n // to generate DOM nodes from the given html string.\n // The generated DOM nodes are returned as an array.\n // This function can be overridden in plugins for example to make\n // it compatible with browsers that don't support the DOM fully.\n zepto.fragment = function(html, name, properties) {\n var dom, nodes, container\n\n // A special case optimization for a single tag\n if (singleTagRE.test(html)) dom = $(document.createElement(RegExp.$1))\n\n if (!dom) {\n if (html.replace) html = html.replace(tagExpanderRE, \"<$1></$2>\")\n if (name === undefined) name = fragmentRE.test(html) && RegExp.$1\n if (!(name in containers)) name = '*'\n\n container = containers[name]\n container.innerHTML = '' + html\n dom = $.each(slice.call(container.childNodes), function(){\n container.removeChild(this)\n })\n }\n\n if (isPlainObject(properties)) {\n nodes = $(dom)\n $.each(properties, function(key, value) {\n if (methodAttributes.indexOf(key) > -1) nodes[key](value)\n else nodes.attr(key, value)\n })\n }\n\n return dom\n }\n\n // `$.zepto.Z` swaps out the prototype of the given `dom` array\n // of nodes with `$.fn` and thus supplying all the Zepto functions\n // to the array. This method can be overridden in plugins.\n zepto.Z = function(dom, selector) {\n return new Z(dom, selector)\n }\n\n // `$.zepto.isZ` should return `true` if the given object is a Zepto\n // collection. This method can be overridden in plugins.\n zepto.isZ = function(object) {\n return object instanceof zepto.Z\n }\n\n // `$.zepto.init` is Zepto's counterpart to jQuery's `$.fn.init` and\n // takes a CSS selector and an optional context (and handles various\n // special cases).\n // This method can be overridden in plugins.\n zepto.init = function(selector, context) {\n var dom\n // If nothing given, return an empty Zepto collection\n if (!selector) return zepto.Z()\n // Optimize for string selectors\n else if (typeof selector == 'string') {\n selector = selector.trim()\n // If it's a html fragment, create nodes from it\n // Note: In both Chrome 21 and Firefox 15, DOM error 12\n // is thrown if the fragment doesn't begin with <\n if (selector[0] == '<' && fragmentRE.test(selector))\n dom = zepto.fragment(selector, RegExp.$1, context), selector = null\n // If there's a context, create a collection on that context first, and select\n // nodes from there\n else if (context !== undefined) return $(context).find(selector)\n // If it's a CSS selector, use it to select nodes.\n else dom = zepto.qsa(document, selector)\n }\n // If a function is given, call it when the DOM is ready\n else if (isFunction(selector)) return $(document).ready(selector)\n // If a Zepto collection is given, just return it\n else if (zepto.isZ(selector)) return selector\n else {\n // normalize array if an array of nodes is given\n if (isArray(selector)) dom = compact(selector)\n // Wrap DOM nodes.\n else if (isObject(selector))\n dom = [selector], selector = null\n // If it's a html fragment, create nodes from it\n else if (fragmentRE.test(selector))\n dom = zepto.fragment(selector.trim(), RegExp.$1, context), selector = null\n // If there's a context, create a collection on that context first, and select\n // nodes from there\n else if (context !== undefined) return $(context).find(selector)\n // And last but no least, if it's a CSS selector, use it to select nodes.\n else dom = zepto.qsa(document, selector)\n }\n // create a new Zepto collection from the nodes found\n return zepto.Z(dom, selector)\n }\n\n // `$` will be the base `Zepto` object. When calling this\n // function just call `$.zepto.init, which makes the implementation\n // details of selecting nodes and creating Zepto collections\n // patchable in plugins.\n $ = function(selector, context){\n return zepto.init(selector, context)\n }\n\n function extend(target, source, deep) {\n for (key in source)\n if (deep && (isPlainObject(source[key]) || isArray(source[key]))) {\n if (isPlainObject(source[key]) && !isPlainObject(target[key]))\n target[key] = {}\n if (isArray(source[key]) && !isArray(target[key]))\n target[key] = []\n extend(target[key], source[key], deep)\n }\n else if (source[key] !== undefined) target[key] = source[key]\n }\n\n // Copy all but undefined properties from one or more\n // objects to the `target` object.\n $.extend = function(target){\n var deep, args = slice.call(arguments, 1)\n if (typeof target == 'boolean') {\n deep = target\n target = args.shift()\n }\n args.forEach(function(arg){ extend(target, arg, deep) })\n return target\n }\n\n // `$.zepto.qsa` is Zepto's CSS selector implementation which\n // uses `document.querySelectorAll` and optimizes for some special cases, like `#id`.\n // This method can be overridden in plugins.\n zepto.qsa = function(element, selector){\n var found,\n maybeID = selector[0] == '#',\n maybeClass = !maybeID && selector[0] == '.',\n nameOnly = maybeID || maybeClass ? selector.slice(1) : selector, // Ensure that a 1 char tag name still gets checked\n isSimple = simpleSelectorRE.test(nameOnly)\n return (element.getElementById && isSimple && maybeID) ? // Safari DocumentFragment doesn't have getElementById\n ( (found = element.getElementById(nameOnly)) ? [found] : [] ) :\n (element.nodeType !== 1 && element.nodeType !== 9 && element.nodeType !== 11) ? [] :\n slice.call(\n isSimple && !maybeID && element.getElementsByClassName ? // DocumentFragment doesn't have getElementsByClassName/TagName\n maybeClass ? element.getElementsByClassName(nameOnly) : // If it's simple, it could be a class\n element.getElementsByTagName(selector) : // Or a tag\n element.querySelectorAll(selector) // Or it's not simple, and we need to query all\n )\n }\n\n function filtered(nodes, selector) {\n return selector == null ? $(nodes) : $(nodes).filter(selector)\n }\n\n $.contains = document.documentElement.contains ?\n function(parent, node) {\n return parent !== node && parent.contains(node)\n } :\n function(parent, node) {\n while (node && (node = node.parentNode))\n if (node === parent) return true\n return false\n }\n\n function funcArg(context, arg, idx, payload) {\n return isFunction(arg) ? arg.call(context, idx, payload) : arg\n }\n\n function setAttribute(node, name, value) {\n value == null ? node.removeAttribute(name) : node.setAttribute(name, value)\n }\n\n // access className property while respecting SVGAnimatedString\n function className(node, value){\n var klass = node.className || '',\n svg = klass && klass.baseVal !== undefined\n\n if (value === undefined) return svg ? klass.baseVal : klass\n svg ? (klass.baseVal = value) : (node.className = value)\n }\n\n // \"true\" => true\n // \"false\" => false\n // \"null\" => null\n // \"42\" => 42\n // \"42.5\" => 42.5\n // \"08\" => \"08\"\n // JSON => parse if valid\n // String => self\n function deserializeValue(value) {\n try {\n return value ?\n value == \"true\" ||\n ( value == \"false\" ? false :\n value == \"null\" ? null :\n +value + \"\" == value ? +value :\n /^[\\[\\{]/.test(value) ? $.parseJSON(value) :\n value )\n : value\n } catch(e) {\n return value\n }\n }\n\n $.type = type\n $.isFunction = isFunction\n $.isWindow = isWindow\n $.isArray = isArray\n $.isPlainObject = isPlainObject\n\n $.isEmptyObject = function(obj) {\n var name\n for (name in obj) return false\n return true\n }\n\n $.isNumeric = function(val) {\n var num = Number(val), type = typeof val\n return val != null && type != 'boolean' &&\n (type != 'string' || val.length) &&\n !isNaN(num) && isFinite(num) || false\n }\n\n $.inArray = function(elem, array, i){\n return emptyArray.indexOf.call(array, elem, i)\n }\n\n $.camelCase = camelize\n $.trim = function(str) {\n return str == null ? \"\" : String.prototype.trim.call(str)\n }\n\n // plugin compatibility\n $.uuid = 0\n $.support = { }\n $.expr = { }\n $.noop = function() {}\n\n $.map = function(elements, callback){\n var value, values = [], i, key\n if (likeArray(elements))\n for (i = 0; i < elements.length; i++) {\n value = callback(elements[i], i)\n if (value != null) values.push(value)\n }\n else\n for (key in elements) {\n value = callback(elements[key], key)\n if (value != null) values.push(value)\n }\n return flatten(values)\n }\n\n $.each = function(elements, callback){\n var i, key\n if (likeArray(elements)) {\n for (i = 0; i < elements.length; i++)\n if (callback.call(elements[i], i, elements[i]) === false) return elements\n } else {\n for (key in elements)\n if (callback.call(elements[key], key, elements[key]) === false) return elements\n }\n\n return elements\n }\n\n $.grep = function(elements, callback){\n return filter.call(elements, callback)\n }\n\n if (window.JSON) $.parseJSON = JSON.parse\n\n // Populate the class2type map\n $.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"), function(i, name) {\n class2type[ \"[object \" + name + \"]\" ] = name.toLowerCase()\n })\n\n // Define methods that will be available on all\n // Zepto collections\n $.fn = {\n constructor: zepto.Z,\n length: 0,\n\n // Because a collection acts like an array\n // copy over these useful array functions.\n forEach: emptyArray.forEach,\n reduce: emptyArray.reduce,\n push: emptyArray.push,\n sort: emptyArray.sort,\n splice: emptyArray.splice,\n indexOf: emptyArray.indexOf,\n concat: function(){\n var i, value, args = []\n for (i = 0; i < arguments.length; i++) {\n value = arguments[i]\n args[i] = zepto.isZ(value) ? value.toArray() : value\n }\n return concat.apply(zepto.isZ(this) ? this.toArray() : this, args)\n },\n\n // `map` and `slice` in the jQuery API work differently\n // from their array counterparts\n map: function(fn){\n return $($.map(this, function(el, i){ return fn.call(el, i, el) }))\n },\n slice: function(){\n return $(slice.apply(this, arguments))\n },\n\n ready: function(callback){\n // need to check if document.body exists for IE as that browser reports\n // document ready when it hasn't yet created the body element\n if (readyRE.test(document.readyState) && document.body) callback($)\n else document.addEventListener('DOMContentLoaded', function(){ callback($) }, false)\n return this\n },\n get: function(idx){\n return idx === undefined ? slice.call(this) : this[idx >= 0 ? idx : idx + this.length]\n },\n toArray: function(){ return this.get() },\n size: function(){\n return this.length\n },\n remove: function(){\n return this.each(function(){\n if (this.parentNode != null)\n this.parentNode.removeChild(this)\n })\n },\n each: function(callback){\n emptyArray.every.call(this, function(el, idx){\n return callback.call(el, idx, el) !== false\n })\n return this\n },\n filter: function(selector){\n if (isFunction(selector)) return this.not(this.not(selector))\n return $(filter.call(this, function(element){\n return zepto.matches(element, selector)\n }))\n },\n add: function(selector,context){\n return $(uniq(this.concat($(selector,context))))\n },\n is: function(selector){\n return this.length > 0 && zepto.matches(this[0], selector)\n },\n not: function(selector){\n var nodes=[]\n if (isFunction(selector) && selector.call !== undefined)\n this.each(function(idx){\n if (!selector.call(this,idx)) nodes.push(this)\n })\n else {\n var excludes = typeof selector == 'string' ? this.filter(selector) :\n (likeArray(selector) && isFunction(selector.item)) ? slice.call(selector) : $(selector)\n this.forEach(function(el){\n if (excludes.indexOf(el) < 0) nodes.push(el)\n })\n }\n return $(nodes)\n },\n has: function(selector){\n return this.filter(function(){\n return isObject(selector) ?\n $.contains(this, selector) :\n $(this).find(selector).size()\n })\n },\n eq: function(idx){\n return idx === -1 ? this.slice(idx) : this.slice(idx, + idx + 1)\n },\n first: function(){\n var el = this[0]\n return el && !isObject(el) ? el : $(el)\n },\n last: function(){\n var el = this[this.length - 1]\n return el && !isObject(el) ? el : $(el)\n },\n find: function(selector){\n var result, $this = this\n if (!selector) result = $()\n else if (typeof selector == 'object')\n result = $(selector).filter(function(){\n var node = this\n return emptyArray.some.call($this, function(parent){\n return $.contains(parent, node)\n })\n })\n else if (this.length == 1) result = $(zepto.qsa(this[0], selector))\n else result = this.map(function(){ return zepto.qsa(this, selector) })\n return result\n },\n closest: function(selector, context){\n var nodes = [], collection = typeof selector == 'object' && $(selector)\n this.each(function(_, node){\n while (node && !(collection ? collection.indexOf(node) >= 0 : zepto.matches(node, selector)))\n node = node !== context && !isDocument(node) && node.parentNode\n if (node && nodes.indexOf(node) < 0) nodes.push(node)\n })\n return $(nodes)\n },\n parents: function(selector){\n var ancestors = [], nodes = this\n while (nodes.length > 0)\n nodes = $.map(nodes, function(node){\n if ((node = node.parentNode) && !isDocument(node) && ancestors.indexOf(node) < 0) {\n ancestors.push(node)\n return node\n }\n })\n return filtered(ancestors, selector)\n },\n parent: function(selector){\n return filtered(uniq(this.pluck('parentNode')), selector)\n },\n children: function(selector){\n return filtered(this.map(function(){ return children(this) }), selector)\n },\n contents: function() {\n return this.map(function() { return this.contentDocument || slice.call(this.childNodes) })\n },\n siblings: function(selector){\n return filtered(this.map(function(i, el){\n return filter.call(children(el.parentNode), function(child){ return child!==el })\n }), selector)\n },\n empty: function(){\n return this.each(function(){ this.innerHTML = '' })\n },\n // `pluck` is borrowed from Prototype.js\n pluck: function(property){\n return $.map(this, function(el){ return el[property] })\n },\n show: function(){\n return this.each(function(){\n this.style.display == \"none\" && (this.style.display = '')\n if (getComputedStyle(this, '').getPropertyValue(\"display\") == \"none\")\n this.style.display = defaultDisplay(this.nodeName)\n })\n },\n replaceWith: function(newContent){\n return this.before(newContent).remove()\n },\n wrap: function(structure){\n var func = isFunction(structure)\n if (this[0] && !func)\n var dom = $(structure).get(0),\n clone = dom.parentNode || this.length > 1\n\n return this.each(function(index){\n $(this).wrapAll(\n func ? structure.call(this, index) :\n clone ? dom.cloneNode(true) : dom\n )\n })\n },\n wrapAll: function(structure){\n if (this[0]) {\n $(this[0]).before(structure = $(structure))\n var children\n // drill down to the inmost element\n while ((children = structure.children()).length) structure = children.first()\n $(structure).append(this)\n }\n return this\n },\n wrapInner: function(structure){\n var func = isFunction(structure)\n return this.each(function(index){\n var self = $(this), contents = self.contents(),\n dom = func ? structure.call(this, index) : structure\n contents.length ? contents.wrapAll(dom) : self.append(dom)\n })\n },\n unwrap: function(){\n this.parent().each(function(){\n $(this).replaceWith($(this).children())\n })\n return this\n },\n clone: function(){\n return this.map(function(){ return this.cloneNode(true) })\n },\n hide: function(){\n return this.css(\"display\", \"none\")\n },\n toggle: function(setting){\n return this.each(function(){\n var el = $(this)\n ;(setting === undefined ? el.css(\"display\") == \"none\" : setting) ? el.show() : el.hide()\n })\n },\n prev: function(selector){ return $(this.pluck('previousElementSibling')).filter(selector || '*') },\n next: function(selector){ return $(this.pluck('nextElementSibling')).filter(selector || '*') },\n html: function(html){\n return 0 in arguments ?\n this.each(function(idx){\n var originHtml = this.innerHTML\n $(this).empty().append( funcArg(this, html, idx, originHtml) )\n }) :\n (0 in this ? this[0].innerHTML : null)\n },\n text: function(text){\n return 0 in arguments ?\n this.each(function(idx){\n var newText = funcArg(this, text, idx, this.textContent)\n this.textContent = newText == null ? '' : ''+newText\n }) :\n (0 in this ? this.pluck('textContent').join(\"\") : null)\n },\n attr: function(name, value){\n var result\n return (typeof name == 'string' && !(1 in arguments)) ?\n (0 in this && this[0].nodeType == 1 && (result = this[0].getAttribute(name)) != null ? result : undefined) :\n this.each(function(idx){\n if (this.nodeType !== 1) return\n if (isObject(name)) for (key in name) setAttribute(this, key, name[key])\n else setAttribute(this, name, funcArg(this, value, idx, this.getAttribute(name)))\n })\n },\n removeAttr: function(name){\n return this.each(function(){ this.nodeType === 1 && name.split(' ').forEach(function(attribute){\n setAttribute(this, attribute)\n }, this)})\n },\n prop: function(name, value){\n name = propMap[name] || name\n return (1 in arguments) ?\n this.each(function(idx){\n this[name] = funcArg(this, value, idx, this[name])\n }) :\n (this[0] && this[0][name])\n },\n removeProp: function(name){\n name = propMap[name] || name\n return this.each(function(){ delete this[name] })\n },\n data: function(name, value){\n var attrName = 'data-' + name.replace(capitalRE, '-$1').toLowerCase()\n\n var data = (1 in arguments) ?\n this.attr(attrName, value) :\n this.attr(attrName)\n\n return data !== null ? deserializeValue(data) : undefined\n },\n val: function(value){\n if (0 in arguments) {\n if (value == null) value = \"\"\n return this.each(function(idx){\n this.value = funcArg(this, value, idx, this.value)\n })\n } else {\n return this[0] && (this[0].multiple ?\n $(this[0]).find('option').filter(function(){ return this.selected }).pluck('value') :\n this[0].value)\n }\n },\n offset: function(coordinates){\n if (coordinates) return this.each(function(index){\n var $this = $(this),\n coords = funcArg(this, coordinates, index, $this.offset()),\n parentOffset = $this.offsetParent().offset(),\n props = {\n top: coords.top - parentOffset.top,\n left: coords.left - parentOffset.left\n }\n\n if ($this.css('position') == 'static') props['position'] = 'relative'\n $this.css(props)\n })\n if (!this.length) return null\n if (document.documentElement !== this[0] && !$.contains(document.documentElement, this[0]))\n return {top: 0, left: 0}\n var obj = this[0].getBoundingClientRect()\n return {\n left: obj.left + window.pageXOffset,\n top: obj.top + window.pageYOffset,\n width: Math.round(obj.width),\n height: Math.round(obj.height)\n }\n },\n css: function(property, value){\n if (arguments.length < 2) {\n var element = this[0]\n if (typeof property == 'string') {\n if (!element) return\n return element.style[camelize(property)] || getComputedStyle(element, '').getPropertyValue(property)\n } else if (isArray(property)) {\n if (!element) return\n var props = {}\n var computedStyle = getComputedStyle(element, '')\n $.each(property, function(_, prop){\n props[prop] = (element.style[camelize(prop)] || computedStyle.getPropertyValue(prop))\n })\n return props\n }\n }\n\n var css = ''\n if (type(property) == 'string') {\n if (!value && value !== 0)\n this.each(function(){ this.style.removeProperty(dasherize(property)) })\n else\n css = dasherize(property) + \":\" + maybeAddPx(property, value)\n } else {\n for (key in property)\n if (!property[key] && property[key] !== 0)\n this.each(function(){ this.style.removeProperty(dasherize(key)) })\n else\n css += dasherize(key) + ':' + maybeAddPx(key, property[key]) + ';'\n }\n\n return this.each(function(){ this.style.cssText += ';' + css })\n },\n index: function(element){\n return element ? this.indexOf($(element)[0]) : this.parent().children().indexOf(this[0])\n },\n hasClass: function(name){\n if (!name) return false\n return emptyArray.some.call(this, function(el){\n return this.test(className(el))\n }, classRE(name))\n },\n addClass: function(name){\n if (!name) return this\n return this.each(function(idx){\n if (!('className' in this)) return\n classList = []\n var cls = className(this), newName = funcArg(this, name, idx, cls)\n newName.split(/\\s+/g).forEach(function(klass){\n if (!$(this).hasClass(klass)) classList.push(klass)\n }, this)\n classList.length && className(this, cls + (cls ? \" \" : \"\") + classList.join(\" \"))\n })\n },\n removeClass: function(name){\n return this.each(function(idx){\n if (!('className' in this)) return\n if (name === undefined) return className(this, '')\n classList = className(this)\n funcArg(this, name, idx, classList).split(/\\s+/g).forEach(function(klass){\n classList = classList.replace(classRE(klass), \" \")\n })\n className(this, classList.trim())\n })\n },\n toggleClass: function(name, when){\n if (!name) return this\n return this.each(function(idx){\n var $this = $(this), names = funcArg(this, name, idx, className(this))\n names.split(/\\s+/g).forEach(function(klass){\n (when === undefined ? !$this.hasClass(klass) : when) ?\n $this.addClass(klass) : $this.removeClass(klass)\n })\n })\n },\n scrollTop: function(value){\n if (!this.length) return\n var hasScrollTop = 'scrollTop' in this[0]\n if (value === undefined) return hasScrollTop ? this[0].scrollTop : this[0].pageYOffset\n return this.each(hasScrollTop ?\n function(){ this.scrollTop = value } :\n function(){ this.scrollTo(this.scrollX, value) })\n },\n scrollLeft: function(value){\n if (!this.length) return\n var hasScrollLeft = 'scrollLeft' in this[0]\n if (value === undefined) return hasScrollLeft ? this[0].scrollLeft : this[0].pageXOffset\n return this.each(hasScrollLeft ?\n function(){ this.scrollLeft = value } :\n function(){ this.scrollTo(value, this.scrollY) })\n },\n position: function() {\n if (!this.length) return\n\n var elem = this[0],\n // Get *real* offsetParent\n offsetParent = this.offsetParent(),\n // Get correct offsets\n offset = this.offset(),\n parentOffset = rootNodeRE.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset()\n\n // Subtract element margins\n // note: when an element has margin: auto the offsetLeft and marginLeft\n // are the same in Safari causing offset.left to incorrectly be 0\n offset.top -= parseFloat( $(elem).css('margin-top') ) || 0\n offset.left -= parseFloat( $(elem).css('margin-left') ) || 0\n\n // Add offsetParent borders\n parentOffset.top += parseFloat( $(offsetParent[0]).css('border-top-width') ) || 0\n parentOffset.left += parseFloat( $(offsetParent[0]).css('border-left-width') ) || 0\n\n // Subtract the two offsets\n return {\n top: offset.top - parentOffset.top,\n left: offset.left - parentOffset.left\n }\n },\n offsetParent: function() {\n return this.map(function(){\n var parent = this.offsetParent || document.body\n while (parent && !rootNodeRE.test(parent.nodeName) && $(parent).css(\"position\") == \"static\")\n parent = parent.offsetParent\n return parent\n })\n }\n }\n\n // for now\n $.fn.detach = $.fn.remove\n\n // Generate the `width` and `height` functions\n ;['width', 'height'].forEach(function(dimension){\n var dimensionProperty =\n dimension.replace(/./, function(m){ return m[0].toUpperCase() })\n\n $.fn[dimension] = function(value){\n var offset, el = this[0]\n if (value === undefined) return isWindow(el) ? el['inner' + dimensionProperty] :\n isDocument(el) ? el.documentElement['scroll' + dimensionProperty] :\n (offset = this.offset()) && offset[dimension]\n else return this.each(function(idx){\n el = $(this)\n el.css(dimension, funcArg(this, value, idx, el[dimension]()))\n })\n }\n })\n\n function traverseNode(node, fun) {\n fun(node)\n for (var i = 0, len = node.childNodes.length; i < len; i++)\n traverseNode(node.childNodes[i], fun)\n }\n\n // Generate the `after`, `prepend`, `before`, `append`,\n // `insertAfter`, `insertBefore`, `appendTo`, and `prependTo` methods.\n adjacencyOperators.forEach(function(operator, operatorIndex) {\n var inside = operatorIndex % 2 //=> prepend, append\n\n $.fn[operator] = function(){\n // arguments can be nodes, arrays of nodes, Zepto objects and HTML strings\n var argType, nodes = $.map(arguments, function(arg) {\n var arr = []\n argType = type(arg)\n if (argType == \"array\") {\n arg.forEach(function(el) {\n if (el.nodeType !== undefined) return arr.push(el)\n else if ($.zepto.isZ(el)) return arr = arr.concat(el.get())\n arr = arr.concat(zepto.fragment(el))\n })\n return arr\n }\n return argType == \"object\" || arg == null ?\n arg : zepto.fragment(arg)\n }),\n parent, copyByClone = this.length > 1\n if (nodes.length < 1) return this\n\n return this.each(function(_, target){\n parent = inside ? target : target.parentNode\n\n // convert all methods to a \"before\" operation\n target = operatorIndex == 0 ? target.nextSibling :\n operatorIndex == 1 ? target.firstChild :\n operatorIndex == 2 ? target :\n null\n\n var parentInDocument = $.contains(document.documentElement, parent)\n\n nodes.forEach(function(node){\n if (copyByClone) node = node.cloneNode(true)\n else if (!parent) return $(node).remove()\n\n parent.insertBefore(node, target)\n if (parentInDocument) traverseNode(node, function(el){\n if (el.nodeName != null && el.nodeName.toUpperCase() === 'SCRIPT' &&\n (!el.type || el.type === 'text/javascript') && !el.src){\n var target = el.ownerDocument ? el.ownerDocument.defaultView : window\n target['eval'].call(target, el.innerHTML)\n }\n })\n })\n })\n }\n\n // after => insertAfter\n // prepend => prependTo\n // before => insertBefore\n // append => appendTo\n $.fn[inside ? operator+'To' : 'insert'+(operatorIndex ? 'Before' : 'After')] = function(html){\n $(html)[operator](this)\n return this\n }\n })\n\n zepto.Z.prototype = Z.prototype = $.fn\n\n // Export internal API functions in the `$.zepto` namespace\n zepto.uniq = uniq\n zepto.deserializeValue = deserializeValue\n $.zepto = zepto\n\n return $\n})()\n\nwindow.Zepto = Zepto\nwindow.$ === undefined && (window.$ = Zepto)\n\n;(function($){\n var jsonpID = +new Date(),\n document = window.document,\n key,\n name,\n rscript = /<script\\b[^<]*(?:(?!<\\/script>)<[^<]*)*<\\/script>/gi,\n scriptTypeRE = /^(?:text|application)\\/javascript/i,\n xmlTypeRE = /^(?:text|application)\\/xml/i,\n jsonType = 'application/json',\n htmlType = 'text/html',\n blankRE = /^\\s*$/,\n originAnchor = document.createElement('a')\n\n originAnchor.href = window.location.href\n\n // trigger a custom event and return false if it was cancelled\n function triggerAndReturn(context, eventName, data) {\n var event = $.Event(eventName)\n $(context).trigger(event, data)\n return !event.isDefaultPrevented()\n }\n\n // trigger an Ajax \"global\" event\n function triggerGlobal(settings, context, eventName, data) {\n if (settings.global) return triggerAndReturn(context || document, eventName, data)\n }\n\n // Number of active Ajax requests\n $.active = 0\n\n function ajaxStart(settings) {\n if (settings.global && $.active++ === 0) triggerGlobal(settings, null, 'ajaxStart')\n }\n function ajaxStop(settings) {\n if (settings.global && !(--$.active)) triggerGlobal(settings, null, 'ajaxStop')\n }\n\n // triggers an extra global event \"ajaxBeforeSend\" that's like \"ajaxSend\" but cancelable\n function ajaxBeforeSend(xhr, settings) {\n var context = settings.context\n if (settings.beforeSend.call(context, xhr, settings) === false ||\n triggerGlobal(settings, context, 'ajaxBeforeSend', [xhr, settings]) === false)\n return false\n\n triggerGlobal(settings, context, 'ajaxSend', [xhr, settings])\n }\n function ajaxSuccess(data, xhr, settings, deferred) {\n var context = settings.context, status = 'success'\n settings.success.call(context, data, status, xhr)\n if (deferred) deferred.resolveWith(context, [data, status, xhr])\n triggerGlobal(settings, context, 'ajaxSuccess', [xhr, settings, data])\n ajaxComplete(status, xhr, settings)\n }\n // type: \"timeout\", \"error\", \"abort\", \"parsererror\"\n function ajaxError(error, type, xhr, settings, deferred) {\n var context = settings.context\n settings.error.call(context, xhr, type, error)\n if (deferred) deferred.rejectWith(context, [xhr, type, error])\n triggerGlobal(settings, context, 'ajaxError', [xhr, settings, error || type])\n ajaxComplete(type, xhr, settings)\n }\n // status: \"success\", \"notmodified\", \"error\", \"timeout\", \"abort\", \"parsererror\"\n function ajaxComplete(status, xhr, settings) {\n var context = settings.context\n settings.complete.call(context, xhr, status)\n triggerGlobal(settings, context, 'ajaxComplete', [xhr, settings])\n ajaxStop(settings)\n }\n\n function ajaxDataFilter(data, type, settings) {\n if (settings.dataFilter == empty) return data\n var context = settings.context\n return settings.dataFilter.call(context, data, type)\n }\n\n // Empty function, used as default callback\n function empty() {}\n\n $.ajaxJSONP = function(options, deferred){\n if (!('type' in options)) return $.ajax(options)\n\n var _callbackName = options.jsonpCallback,\n callbackName = ($.isFunction(_callbackName) ?\n _callbackName() : _callbackName) || ('Zepto' + (jsonpID++)),\n script = document.createElement('script'),\n originalCallback = window[callbackName],\n responseData,\n abort = function(errorType) {\n $(script).triggerHandler('error', errorType || 'abort')\n },\n xhr = { abort: abort }, abortTimeout\n\n if (deferred) deferred.promise(xhr)\n\n $(script).on('load error', function(e, errorType){\n clearTimeout(abortTimeout)\n $(script).off().remove()\n\n if (e.type == 'error' || !responseData) {\n ajaxError(null, errorType || 'error', xhr, options, deferred)\n } else {\n ajaxSuccess(responseData[0], xhr, options, deferred)\n }\n\n window[callbackName] = originalCallback\n if (responseData && $.isFunction(originalCallback))\n originalCallback(responseData[0])\n\n originalCallback = responseData = undefined\n })\n\n if (ajaxBeforeSend(xhr, options) === false) {\n abort('abort')\n return xhr\n }\n\n window[callbackName] = function(){\n responseData = arguments\n }\n\n script.src = options.url.replace(/\\?(.+)=\\?/, '?$1=' + callbackName)\n document.head.appendChild(script)\n\n if (options.timeout > 0) abortTimeout = setTimeout(function(){\n abort('timeout')\n }, options.timeout)\n\n return xhr\n }\n\n $.ajaxSettings = {\n // Default type of request\n type: 'GET',\n // Callback that is executed before request\n beforeSend: empty,\n // Callback that is executed if the request succeeds\n success: empty,\n // Callback that is executed the the server drops error\n error: empty,\n // Callback that is executed on request complete (both: error and success)\n complete: empty,\n // The context for the callbacks\n context: null,\n // Whether to trigger \"global\" Ajax events\n global: true,\n // Transport\n xhr: function () {\n return new window.XMLHttpRequest()\n },\n // MIME types mapping\n // IIS returns Javascript as \"application/x-javascript\"\n accepts: {\n script: 'text/javascript, application/javascript, application/x-javascript',\n json: jsonType,\n xml: 'application/xml, text/xml',\n html: htmlType,\n text: 'text/plain'\n },\n // Whether the request is to another domain\n crossDomain: false,\n // Default timeout\n timeout: 0,\n // Whether data should be serialized to string\n processData: true,\n // Whether the browser should be allowed to cache GET responses\n cache: true,\n //Used to handle the raw response data of XMLHttpRequest.\n //This is a pre-filtering function to sanitize the response.\n //The sanitized response should be returned\n dataFilter: empty\n }\n\n function mimeToDataType(mime) {\n if (mime) mime = mime.split(';', 2)[0]\n return mime && ( mime == htmlType ? 'html' :\n mime == jsonType ? 'json' :\n scriptTypeRE.test(mime) ? 'script' :\n xmlTypeRE.test(mime) && 'xml' ) || 'text'\n }\n\n function appendQuery(url, query) {\n if (query == '') return url\n return (url + '&' + query).replace(/[&?]{1,2}/, '?')\n }\n\n // serialize payload and append it to the URL for GET requests\n function serializeData(options) {\n if (options.processData && options.data && $.type(options.data) != \"string\")\n options.data = $.param(options.data, options.traditional)\n if (options.data && (!options.type || options.type.toUpperCase() == 'GET' || 'jsonp' == options.dataType))\n options.url = appendQuery(options.url, options.data), options.data = undefined\n }\n\n $.ajax = function(options){\n var settings = $.extend({}, options || {}),\n deferred = $.Deferred && $.Deferred(),\n urlAnchor, hashIndex\n for (key in $.ajaxSettings) if (settings[key] === undefined) settings[key] = $.ajaxSettings[key]\n\n ajaxStart(settings)\n\n if (!settings.crossDomain) {\n urlAnchor = document.createElement('a')\n urlAnchor.href = settings.url\n // cleans up URL for .href (IE only), see https://github.com/madrobby/zepto/pull/1049\n urlAnchor.href = urlAnchor.href\n settings.crossDomain = (originAnchor.protocol + '//' + originAnchor.host) !== (urlAnchor.protocol + '//' + urlAnchor.host)\n }\n\n if (!settings.url) settings.url = window.location.toString()\n if ((hashIndex = settings.url.indexOf('#')) > -1) settings.url = settings.url.slice(0, hashIndex)\n serializeData(settings)\n\n var dataType = settings.dataType, hasPlaceholder = /\\?.+=\\?/.test(settings.url)\n if (hasPlaceholder) dataType = 'jsonp'\n\n if (settings.cache === false || (\n (!options || options.cache !== true) &&\n ('script' == dataType || 'jsonp' == dataType)\n ))\n settings.url = appendQuery(settings.url, '_=' + Date.now())\n\n if ('jsonp' == dataType) {\n if (!hasPlaceholder)\n settings.url = appendQuery(settings.url,\n settings.jsonp ? (settings.jsonp + '=?') : settings.jsonp === false ? '' : 'callback=?')\n return $.ajaxJSONP(settings, deferred)\n }\n\n var mime = settings.accepts[dataType],\n headers = { },\n setHeader = function(name, value) { headers[name.toLowerCase()] = [name, value] },\n protocol = /^([\\w-]+:)\\/\\//.test(settings.url) ? RegExp.$1 : window.location.protocol,\n xhr = settings.xhr(),\n nativeSetHeader = xhr.setRequestHeader,\n abortTimeout\n\n if (deferred) deferred.promise(xhr)\n\n if (!settings.crossDomain) setHeader('X-Requested-With', 'XMLHttpRequest')\n setHeader('Accept', mime || '*/*')\n if (mime = settings.mimeType || mime) {\n if (mime.indexOf(',') > -1) mime = mime.split(',', 2)[0]\n xhr.overrideMimeType && xhr.overrideMimeType(mime)\n }\n if (settings.contentType || (settings.contentType !== false && settings.data && settings.type.toUpperCase() != 'GET'))\n setHeader('Content-Type', settings.contentType || 'application/x-www-form-urlencoded')\n\n if (settings.headers) for (name in settings.headers) setHeader(name, settings.headers[name])\n xhr.setRequestHeader = setHeader\n\n xhr.onreadystatechange = function(){\n if (xhr.readyState == 4) {\n xhr.onreadystatechange = empty\n clearTimeout(abortTimeout)\n var result, error = false\n if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304 || (xhr.status == 0 && protocol == 'file:')) {\n dataType = dataType || mimeToDataType(settings.mimeType || xhr.getResponseHeader('content-type'))\n\n if (xhr.responseType == 'arraybuffer' || xhr.responseType == 'blob')\n result = xhr.response\n else {\n result = xhr.responseText\n\n try {\n // http://perfectionkills.com/global-eval-what-are-the-options/\n // sanitize response accordingly if data filter callback provided\n result = ajaxDataFilter(result, dataType, settings)\n if (dataType == 'script') (1,eval)(result)\n else if (dataType == 'xml') result = xhr.responseXML\n else if (dataType == 'json') result = blankRE.test(result) ? null : $.parseJSON(result)\n } catch (e) { error = e }\n\n if (error) return ajaxError(error, 'parsererror', xhr, settings, deferred)\n }\n\n ajaxSuccess(result, xhr, settings, deferred)\n } else {\n ajaxError(xhr.statusText || null, xhr.status ? 'error' : 'abort', xhr, settings, deferred)\n }\n }\n }\n\n if (ajaxBeforeSend(xhr, settings) === false) {\n xhr.abort()\n ajaxError(null, 'abort', xhr, settings, deferred)\n return xhr\n }\n\n var async = 'async' in settings ? settings.async : true\n xhr.open(settings.type, settings.url, async, settings.username, settings.password)\n\n if (settings.xhrFields) for (name in settings.xhrFields) xhr[name] = settings.xhrFields[name]\n\n for (name in headers) nativeSetHeader.apply(xhr, headers[name])\n\n if (settings.timeout > 0) abortTimeout = setTimeout(function(){\n xhr.onreadystatechange = empty\n xhr.abort()\n ajaxError(null, 'timeout', xhr, settings, deferred)\n }, settings.timeout)\n\n // avoid sending empty string (#319)\n xhr.send(settings.data ? settings.data : null)\n return xhr\n }\n\n // handle optional data/success arguments\n function parseArguments(url, data, success, dataType) {\n if ($.isFunction(data)) dataType = success, success = data, data = undefined\n if (!$.isFunction(success)) dataType = success, success = undefined\n return {\n url: url\n , data: data\n , success: success\n , dataType: dataType\n }\n }\n\n $.get = function(/* url, data, success, dataType */){\n return $.ajax(parseArguments.apply(null, arguments))\n }\n\n $.post = function(/* url, data, success, dataType */){\n var options = parseArguments.apply(null, arguments)\n options.type = 'POST'\n return $.ajax(options)\n }\n\n $.getJSON = function(/* url, data, success */){\n var options = parseArguments.apply(null, arguments)\n options.dataType = 'json'\n return $.ajax(options)\n }\n\n $.fn.load = function(url, data, success){\n if (!this.length) return this\n var self = this, parts = url.split(/\\s/), selector,\n options = parseArguments(url, data, success),\n callback = options.success\n if (parts.length > 1) options.url = parts[0], selector = parts[1]\n options.success = function(response){\n self.html(selector ?\n $('<div>').html(response.replace(rscript, \"\")).find(selector)\n : response)\n callback && callback.apply(self, arguments)\n }\n $.ajax(options)\n return this\n }\n\n var escape = encodeURIComponent\n\n function serialize(params, obj, traditional, scope){\n var type, array = $.isArray(obj), hash = $.isPlainObject(obj)\n $.each(obj, function(key, value) {\n type = $.type(value)\n if (scope) key = traditional ? scope :\n scope + '[' + (hash || type == 'object' || type == 'array' ? key : '') + ']'\n // handle data in serializeArray() format\n if (!scope && array) params.add(value.name, value.value)\n // recurse into nested objects\n else if (type == \"array\" || (!traditional && type == \"object\"))\n serialize(params, value, traditional, key)\n else params.add(key, value)\n })\n }\n\n $.param = function(obj, traditional){\n var params = []\n params.add = function(key, value) {\n if ($.isFunction(value)) value = value()\n if (value == null) value = \"\"\n this.push(escape(key) + '=' + escape(value))\n }\n serialize(params, obj, traditional)\n return params.join('&').replace(/%20/g, '+')\n }\n})(Zepto)\n\n;(function($){\n // Create a collection of callbacks to be fired in a sequence, with configurable behaviour\n // Option flags:\n // - once: Callbacks fired at most one time.\n // - memory: Remember the most recent context and arguments\n // - stopOnFalse: Cease iterating over callback list\n // - unique: Permit adding at most one instance of the same callback\n $.Callbacks = function(options) {\n options = $.extend({}, options)\n\n var memory, // Last fire value (for non-forgettable lists)\n fired, // Flag to know if list was already fired\n firing, // Flag to know if list is currently firing\n firingStart, // First callback to fire (used internally by add and fireWith)\n firingLength, // End of the loop when firing\n firingIndex, // Index of currently firing callback (modified by remove if needed)\n list = [], // Actual callback list\n stack = !options.once && [], // Stack of fire calls for repeatable lists\n fire = function(data) {\n memory = options.memory && data\n fired = true\n firingIndex = firingStart || 0\n firingStart = 0\n firingLength = list.length\n firing = true\n for ( ; list && firingIndex < firingLength ; ++firingIndex ) {\n if (list[firingIndex].apply(data[0], data[1]) === false && options.stopOnFalse) {\n memory = false\n break\n }\n }\n firing = false\n if (list) {\n if (stack) stack.length && fire(stack.shift())\n else if (memory) list.length = 0\n else Callbacks.disable()\n }\n },\n\n Callbacks = {\n add: function() {\n if (list) {\n var start = list.length,\n add = function(args) {\n $.each(args, function(_, arg){\n if (typeof arg === \"function\") {\n if (!options.unique || !Callbacks.has(arg)) list.push(arg)\n }\n else if (arg && arg.length && typeof arg !== 'string') add(arg)\n })\n }\n add(arguments)\n if (firing) firingLength = list.length\n else if (memory) {\n firingStart = start\n fire(memory)\n }\n }\n return this\n },\n remove: function() {\n if (list) {\n $.each(arguments, function(_, arg){\n var index\n while ((index = $.inArray(arg, list, index)) > -1) {\n list.splice(index, 1)\n // Handle firing indexes\n if (firing) {\n if (index <= firingLength) --firingLength\n if (index <= firingIndex) --firingIndex\n }\n }\n })\n }\n return this\n },\n has: function(fn) {\n return !!(list && (fn ? $.inArray(fn, list) > -1 : list.length))\n },\n empty: function() {\n firingLength = list.length = 0\n return this\n },\n disable: function() {\n list = stack = memory = undefined\n return this\n },\n disabled: function() {\n return !list\n },\n lock: function() {\n stack = undefined\n if (!memory) Callbacks.disable()\n return this\n },\n locked: function() {\n return !stack\n },\n fireWith: function(context, args) {\n if (list && (!fired || stack)) {\n args = args || []\n args = [context, args.slice ? args.slice() : args]\n if (firing) stack.push(args)\n else fire(args)\n }\n return this\n },\n fire: function() {\n return Callbacks.fireWith(this, arguments)\n },\n fired: function() {\n return !!fired\n }\n }\n\n return Callbacks\n }\n})(Zepto)\n\n;(function($){\n var slice = Array.prototype.slice\n\n function Deferred(func) {\n var tuples = [\n // action, add listener, listener list, final state\n [ \"resolve\", \"done\", $.Callbacks({once:1, memory:1}), \"resolved\" ],\n [ \"reject\", \"fail\", $.Callbacks({once:1, memory:1}), \"rejected\" ],\n [ \"notify\", \"progress\", $.Callbacks({memory:1}) ]\n ],\n state = \"pending\",\n promise = {\n state: function() {\n return state\n },\n always: function() {\n deferred.done(arguments).fail(arguments)\n return this\n },\n then: function(/* fnDone [, fnFailed [, fnProgress]] */) {\n var fns = arguments\n return Deferred(function(defer){\n $.each(tuples, function(i, tuple){\n var fn = $.isFunction(fns[i]) && fns[i]\n deferred[tuple[1]](function(){\n var returned = fn && fn.apply(this, arguments)\n if (returned && $.isFunction(returned.promise)) {\n returned.promise()\n .done(defer.resolve)\n .fail(defer.reject)\n .progress(defer.notify)\n } else {\n var context = this === promise ? defer.promise() : this,\n values = fn ? [returned] : arguments\n defer[tuple[0] + \"With\"](context, values)\n }\n })\n })\n fns = null\n }).promise()\n },\n\n promise: function(obj) {\n return obj != null ? $.extend( obj, promise ) : promise\n }\n },\n deferred = {}\n\n $.each(tuples, function(i, tuple){\n var list = tuple[2],\n stateString = tuple[3]\n\n promise[tuple[1]] = list.add\n\n if (stateString) {\n list.add(function(){\n state = stateString\n }, tuples[i^1][2].disable, tuples[2][2].lock)\n }\n\n deferred[tuple[0]] = function(){\n deferred[tuple[0] + \"With\"](this === deferred ? promise : this, arguments)\n return this\n }\n deferred[tuple[0] + \"With\"] = list.fireWith\n })\n\n promise.promise(deferred)\n if (func) func.call(deferred, deferred)\n return deferred\n }\n\n $.when = function(sub) {\n var resolveValues = slice.call(arguments),\n len = resolveValues.length,\n i = 0,\n remain = len !== 1 || (sub && $.isFunction(sub.promise)) ? len : 0,\n deferred = remain === 1 ? sub : Deferred(),\n progressValues, progressContexts, resolveContexts,\n updateFn = function(i, ctx, val){\n return function(value){\n ctx[i] = this\n val[i] = arguments.length > 1 ? slice.call(arguments) : value\n if (val === progressValues) {\n deferred.notifyWith(ctx, val)\n } else if (!(--remain)) {\n deferred.resolveWith(ctx, val)\n }\n }\n }\n\n if (len > 1) {\n progressValues = new Array(len)\n progressContexts = new Array(len)\n resolveContexts = new Array(len)\n for ( ; i < len; ++i ) {\n if (resolveValues[i] && $.isFunction(resolveValues[i].promise)) {\n resolveValues[i].promise()\n .done(updateFn(i, resolveContexts, resolveValues))\n .fail(deferred.reject)\n .progress(updateFn(i, progressContexts, progressValues))\n } else {\n --remain\n }\n }\n }\n if (!remain) deferred.resolveWith(resolveContexts, resolveValues)\n return deferred.promise()\n }\n\n $.Deferred = Deferred\n})(Zepto)\n\n;(function($){\n var _zid = 1, undefined,\n slice = Array.prototype.slice,\n isFunction = $.isFunction,\n isString = function(obj){ return typeof obj == 'string' },\n handlers = {},\n specialEvents={},\n focusinSupported = 'onfocusin' in window,\n focus = { focus: 'focusin', blur: 'focusout' },\n hover = { mouseenter: 'mouseover', mouseleave: 'mouseout' }\n\n specialEvents.click = specialEvents.mousedown = specialEvents.mouseup = specialEvents.mousemove = 'MouseEvents'\n\n function zid(element) {\n return element._zid || (element._zid = _zid++)\n }\n function findHandlers(element, event, fn, selector) {\n event = parse(event)\n if (event.ns) var matcher = matcherFor(event.ns)\n return (handlers[zid(element)] || []).filter(function(handler) {\n return handler\n && (!event.e || handler.e == event.e)\n && (!event.ns || matcher.test(handler.ns))\n && (!fn || zid(handler.fn) === zid(fn))\n && (!selector || handler.sel == selector)\n })\n }\n function parse(event) {\n var parts = ('' + event).split('.')\n return {e: parts[0], ns: parts.slice(1).sort().join(' ')}\n }\n function matcherFor(ns) {\n return new RegExp('(?:^| )' + ns.replace(' ', ' .* ?') + '(?: |$)')\n }\n\n function eventCapture(handler, captureSetting) {\n return handler.del &&\n (!focusinSupported && (handler.e in focus)) ||\n !!captureSetting\n }\n\n function realEvent(type) {\n return hover[type] || (focusinSupported && focus[type]) || type\n }\n\n function add(element, events, fn, data, selector, delegator, capture){\n var id = zid(element), set = (handlers[id] || (handlers[id] = []))\n events.split(/\\s/).forEach(function(event){\n if (event == 'ready') return $(document).ready(fn)\n var handler = parse(event)\n handler.fn = fn\n handler.sel = selector\n // emulate mouseenter, mouseleave\n if (handler.e in hover) fn = function(e){\n var related = e.relatedTarget\n if (!related || (related !== this && !$.contains(this, related)))\n return handler.fn.apply(this, arguments)\n }\n handler.del = delegator\n var callback = delegator || fn\n handler.proxy = function(e){\n e = compatible(e)\n if (e.isImmediatePropagationStopped()) return\n e.data = data\n var result = callback.apply(element, e._args == undefined ? [e] : [e].concat(e._args))\n if (result === false) e.preventDefault(), e.stopPropagation()\n return result\n }\n handler.i = set.length\n set.push(handler)\n if ('addEventListener' in element)\n element.addEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture))\n })\n }\n function remove(element, events, fn, selector, capture){\n var id = zid(element)\n ;(events || '').split(/\\s/).forEach(function(event){\n findHandlers(element, event, fn, selector).forEach(function(handler){\n delete handlers[id][handler.i]\n if ('removeEventListener' in element)\n element.removeEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture))\n })\n })\n }\n\n $.event = { add: add, remove: remove }\n\n $.proxy = function(fn, context) {\n var args = (2 in arguments) && slice.call(arguments, 2)\n if (isFunction(fn)) {\n var proxyFn = function(){ return fn.apply(context, args ? args.concat(slice.call(arguments)) : arguments) }\n proxyFn._zid = zid(fn)\n return proxyFn\n } else if (isString(context)) {\n if (args) {\n args.unshift(fn[context], fn)\n return $.proxy.apply(null, args)\n } else {\n return $.proxy(fn[context], fn)\n }\n } else {\n throw new TypeError(\"expected function\")\n }\n }\n\n $.fn.bind = function(event, data, callback){\n return this.on(event, data, callback)\n }\n $.fn.unbind = function(event, callback){\n return this.off(event, callback)\n }\n $.fn.one = function(event, selector, data, callback){\n return this.on(event, selector, data, callback, 1)\n }\n\n var returnTrue = function(){return true},\n returnFalse = function(){return false},\n ignoreProperties = /^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/,\n eventMethods = {\n preventDefault: 'isDefaultPrevented',\n stopImmediatePropagation: 'isImmediatePropagationStopped',\n stopPropagation: 'isPropagationStopped'\n }\n\n function compatible(event, source) {\n if (source || !event.isDefaultPrevented) {\n source || (source = event)\n\n $.each(eventMethods, function(name, predicate) {\n var sourceMethod = source[name]\n event[name] = function(){\n this[predicate] = returnTrue\n return sourceMethod && sourceMethod.apply(source, arguments)\n }\n event[predicate] = returnFalse\n })\n\n event.timeStamp || (event.timeStamp = Date.now())\n\n if (source.defaultPrevented !== undefined ? source.defaultPrevented :\n 'returnValue' in source ? source.returnValue === false :\n source.getPreventDefault && source.getPreventDefault())\n event.isDefaultPrevented = returnTrue\n }\n return event\n }\n\n function createProxy(event) {\n var key, proxy = { originalEvent: event }\n for (key in event)\n if (!ignoreProperties.test(key) && event[key] !== undefined) proxy[key] = event[key]\n\n return compatible(proxy, event)\n }\n\n $.fn.delegate = function(selector, event, callback){\n return this.on(event, selector, callback)\n }\n $.fn.undelegate = function(selector, event, callback){\n return this.off(event, selector, callback)\n }\n\n $.fn.live = function(event, callback){\n $(document.body).delegate(this.selector, event, callback)\n return this\n }\n $.fn.die = function(event, callback){\n $(document.body).undelegate(this.selector, event, callback)\n return this\n }\n\n $.fn.on = function(event, selector, data, callback, one){\n var autoRemove, delegator, $this = this\n if (event && !isString(event)) {\n $.each(event, function(type, fn){\n $this.on(type, selector, data, fn, one)\n })\n return $this\n }\n\n if (!isString(selector) && !isFunction(callback) && callback !== false)\n callback = data, data = selector, selector = undefined\n if (callback === undefined || data === false)\n callback = data, data = undefined\n\n if (callback === false) callback = returnFalse\n\n return $this.each(function(_, element){\n if (one) autoRemove = function(e){\n remove(element, e.type, callback)\n return callback.apply(this, arguments)\n }\n\n if (selector) delegator = function(e){\n var evt, match = $(e.target).closest(selector, element).get(0)\n if (match && match !== element) {\n evt = $.extend(createProxy(e), {currentTarget: match, liveFired: element})\n return (autoRemove || callback).apply(match, [evt].concat(slice.call(arguments, 1)))\n }\n }\n\n add(element, event, callback, data, selector, delegator || autoRemove)\n })\n }\n $.fn.off = function(event, selector, callback){\n var $this = this\n if (event && !isString(event)) {\n $.each(event, function(type, fn){\n $this.off(type, selector, fn)\n })\n return $this\n }\n\n if (!isString(selector) && !isFunction(callback) && callback !== false)\n callback = selector, selector = undefined\n\n if (callback === false) callback = returnFalse\n\n return $this.each(function(){\n remove(this, event, callback, selector)\n })\n }\n\n $.fn.trigger = function(event, args){\n event = (isString(event) || $.isPlainObject(event)) ? $.Event(event) : compatible(event)\n event._args = args\n return this.each(function(){\n // handle focus(), blur() by calling them directly\n if (event.type in focus && typeof this[event.type] == \"function\") this[event.type]()\n // items in the collection might not be DOM elements\n else if ('dispatchEvent' in this) this.dispatchEvent(event)\n else $(this).triggerHandler(event, args)\n })\n }\n\n // triggers event handlers on current element just as if an event occurred,\n // doesn't trigger an actual event, doesn't bubble\n $.fn.triggerHandler = function(event, args){\n var e, result\n this.each(function(i, element){\n e = createProxy(isString(event) ? $.Event(event) : event)\n e._args = args\n e.target = element\n $.each(findHandlers(element, event.type || event), function(i, handler){\n result = handler.proxy(e)\n if (e.isImmediatePropagationStopped()) return false\n })\n })\n return result\n }\n\n // shortcut methods for `.bind(event, fn)` for each event type\n ;('focusin focusout focus blur load resize scroll unload click dblclick '+\n 'mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave '+\n 'change select keydown keypress keyup error').split(' ').forEach(function(event) {\n $.fn[event] = function(callback) {\n return (0 in arguments) ?\n this.bind(event, callback) :\n this.trigger(event)\n }\n })\n\n $.Event = function(type, props) {\n if (!isString(type)) props = type, type = props.type\n var event = document.createEvent(specialEvents[type] || 'Events'), bubbles = true\n if (props) for (var name in props) (name == 'bubbles') ? (bubbles = !!props[name]) : (event[name] = props[name])\n event.initEvent(type, bubbles, true)\n return compatible(event)\n }\n\n})(Zepto)\n\n;(function(){\n // getComputedStyle shouldn't freak out when called\n // without a valid element as argument\n try {\n getComputedStyle(undefined)\n } catch(e) {\n var nativeGetComputedStyle = getComputedStyle\n window.getComputedStyle = function(element, pseudoElement){\n try {\n return nativeGetComputedStyle(element, pseudoElement)\n } catch(e) {\n return null\n }\n }\n }\n})()\n\n;(function($){\n var zepto = $.zepto, oldQsa = zepto.qsa, oldMatches = zepto.matches\n\n function visible(elem){\n elem = $(elem)\n return !!(elem.width() || elem.height()) && elem.css(\"display\") !== \"none\"\n }\n\n // Implements a subset from:\n // http://api.jquery.com/category/selectors/jquery-selector-extensions/\n //\n // Each filter function receives the current index, all nodes in the\n // considered set, and a value if there were parentheses. The value\n // of `this` is the node currently being considered. The function returns the\n // resulting node(s), null, or undefined.\n //\n // Complex selectors are not supported:\n // li:has(label:contains(\"foo\")) + li:has(label:contains(\"bar\"))\n // ul.inner:first > li\n var filters = $.expr[':'] = {\n visible: function(){ if (visible(this)) return this },\n hidden: function(){ if (!visible(this)) return this },\n selected: function(){ if (this.selected) return this },\n checked: function(){ if (this.checked) return this },\n parent: function(){ return this.parentNode },\n first: function(idx){ if (idx === 0) return this },\n last: function(idx, nodes){ if (idx === nodes.length - 1) return this },\n eq: function(idx, _, value){ if (idx === value) return this },\n contains: function(idx, _, text){ if ($(this).text().indexOf(text) > -1) return this },\n has: function(idx, _, sel){ if (zepto.qsa(this, sel).length) return this }\n }\n\n var filterRe = new RegExp('(.*):(\\\\w+)(?:\\\\(([^)]+)\\\\))?$\\\\s*'),\n childRe = /^\\s*>/,\n classTag = 'Zepto' + (+new Date())\n\n function process(sel, fn) {\n // quote the hash in `a[href^=#]` expression\n sel = sel.replace(/=#\\]/g, '=\"#\"]')\n var filter, arg, match = filterRe.exec(sel)\n if (match && match[2] in filters) {\n filter = filters[match[2]], arg = match[3]\n sel = match[1]\n if (arg) {\n var num = Number(arg)\n if (isNaN(num)) arg = arg.replace(/^[\"']|[\"']$/g, '')\n else arg = num\n }\n }\n return fn(sel, filter, arg)\n }\n\n zepto.qsa = function(node, selector) {\n return process(selector, function(sel, filter, arg){\n try {\n var taggedParent\n if (!sel && filter) sel = '*'\n else if (childRe.test(sel))\n // support \"> *\" child queries by tagging the parent node with a\n // unique class and prepending that classname onto the selector\n taggedParent = $(node).addClass(classTag), sel = '.'+classTag+' '+sel\n\n var nodes = oldQsa(node, sel)\n } catch(e) {\n console.error('error performing selector: %o', selector)\n throw e\n } finally {\n if (taggedParent) taggedParent.removeClass(classTag)\n }\n return !filter ? nodes :\n zepto.uniq($.map(nodes, function(n, i){ return filter.call(n, i, nodes, arg) }))\n })\n }\n\n zepto.matches = function(node, selector){\n return process(selector, function(sel, filter, arg){\n return (!sel || oldMatches(node, sel)) &&\n (!filter || filter.call(node, null, arg) === node)\n })\n }\n})(Zepto)\nmodule.exports = Zepto\n","var core = module.exports = {version: '2.4.0'};\nif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\nvar stylesInDom = {};\n\nvar\tmemoize = function (fn) {\n\tvar memo;\n\n\treturn function () {\n\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\treturn memo;\n\t};\n};\n\nvar isOldIE = memoize(function () {\n\t// Test for IE <= 9 as proposed by Browserhacks\n\t// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n\t// Tests for existence of standard globals is to allow style-loader\n\t// to operate correctly into non-standard environments\n\t// @see https://github.com/webpack-contrib/style-loader/issues/177\n\treturn window && document && document.all && !window.atob;\n});\n\nvar getTarget = function (target) {\n return document.querySelector(target);\n};\n\nvar getElement = (function (fn) {\n\tvar memo = {};\n\n\treturn function(target) {\n // If passing function in options, then use it for resolve \"head\" element.\n // Useful for Shadow Root style i.e\n // {\n // insertInto: function () { return document.querySelector(\"#foo\").shadowRoot }\n // }\n if (typeof target === 'function') {\n return target();\n }\n if (typeof memo[target] === \"undefined\") {\n\t\t\tvar styleTarget = getTarget.call(this, target);\n\t\t\t// Special case to return head of iframe instead of iframe itself\n\t\t\tif (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n\t\t\t\ttry {\n\t\t\t\t\t// This will throw an exception if access to iframe is blocked\n\t\t\t\t\t// due to cross-origin restrictions\n\t\t\t\t\tstyleTarget = styleTarget.contentDocument.head;\n\t\t\t\t} catch(e) {\n\t\t\t\t\tstyleTarget = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmemo[target] = styleTarget;\n\t\t}\n\t\treturn memo[target]\n\t};\n})();\n\nvar singleton = null;\nvar\tsingletonCounter = 0;\nvar\tstylesInsertedAtTop = [];\n\nvar\tfixUrls = require(\"./urls\");\n\nmodule.exports = function(list, options) {\n\tif (typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif (typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\n\toptions.attrs = typeof options.attrs === \"object\" ? options.attrs : {};\n\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n\t// tags it will allow on a page\n\tif (!options.singleton && typeof options.singleton !== \"boolean\") options.singleton = isOldIE();\n\n\t// By default, add <style> tags to the <head> element\n if (!options.insertInto) options.insertInto = \"head\";\n\n\t// By default, add <style> tags to the bottom of the target\n\tif (!options.insertAt) options.insertAt = \"bottom\";\n\n\tvar styles = listToStyles(list, options);\n\n\taddStylesToDom(styles, options);\n\n\treturn function update (newList) {\n\t\tvar mayRemove = [];\n\n\t\tfor (var i = 0; i < styles.length; i++) {\n\t\t\tvar item = styles[i];\n\t\t\tvar domStyle = stylesInDom[item.id];\n\n\t\t\tdomStyle.refs--;\n\t\t\tmayRemove.push(domStyle);\n\t\t}\n\n\t\tif(newList) {\n\t\t\tvar newStyles = listToStyles(newList, options);\n\t\t\taddStylesToDom(newStyles, options);\n\t\t}\n\n\t\tfor (var i = 0; i < mayRemove.length; i++) {\n\t\t\tvar domStyle = mayRemove[i];\n\n\t\t\tif(domStyle.refs === 0) {\n\t\t\t\tfor (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j]();\n\n\t\t\t\tdelete stylesInDom[domStyle.id];\n\t\t\t}\n\t\t}\n\t};\n};\n\nfunction addStylesToDom (styles, options) {\n\tfor (var i = 0; i < styles.length; i++) {\n\t\tvar item = styles[i];\n\t\tvar domStyle = stylesInDom[item.id];\n\n\t\tif(domStyle) {\n\t\t\tdomStyle.refs++;\n\n\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\n\t\t\t\tdomStyle.parts[j](item.parts[j]);\n\t\t\t}\n\n\t\t\tfor(; j < item.parts.length; j++) {\n\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\t\t} else {\n\t\t\tvar parts = [];\n\n\t\t\tfor(var j = 0; j < item.parts.length; j++) {\n\t\t\t\tparts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\n\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\n\t\t}\n\t}\n}\n\nfunction listToStyles (list, options) {\n\tvar styles = [];\n\tvar newStyles = {};\n\n\tfor (var i = 0; i < list.length; i++) {\n\t\tvar item = list[i];\n\t\tvar id = options.base ? item[0] + options.base : item[0];\n\t\tvar css = item[1];\n\t\tvar media = item[2];\n\t\tvar sourceMap = item[3];\n\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\n\n\t\tif(!newStyles[id]) styles.push(newStyles[id] = {id: id, parts: [part]});\n\t\telse newStyles[id].parts.push(part);\n\t}\n\n\treturn styles;\n}\n\nfunction insertStyleElement (options, style) {\n\tvar target = getElement(options.insertInto)\n\n\tif (!target) {\n\t\tthrow new Error(\"Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.\");\n\t}\n\n\tvar lastStyleElementInsertedAtTop = stylesInsertedAtTop[stylesInsertedAtTop.length - 1];\n\n\tif (options.insertAt === \"top\") {\n\t\tif (!lastStyleElementInsertedAtTop) {\n\t\t\ttarget.insertBefore(style, target.firstChild);\n\t\t} else if (lastStyleElementInsertedAtTop.nextSibling) {\n\t\t\ttarget.insertBefore(style, lastStyleElementInsertedAtTop.nextSibling);\n\t\t} else {\n\t\t\ttarget.appendChild(style);\n\t\t}\n\t\tstylesInsertedAtTop.push(style);\n\t} else if (options.insertAt === \"bottom\") {\n\t\ttarget.appendChild(style);\n\t} else if (typeof options.insertAt === \"object\" && options.insertAt.before) {\n\t\tvar nextSibling = getElement(options.insertInto + \" \" + options.insertAt.before);\n\t\ttarget.insertBefore(style, nextSibling);\n\t} else {\n\t\tthrow new Error(\"[Style Loader]\\n\\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\\n Must be 'top', 'bottom', or Object.\\n (https://github.com/webpack-contrib/style-loader#insertat)\\n\");\n\t}\n}\n\nfunction removeStyleElement (style) {\n\tif (style.parentNode === null) return false;\n\tstyle.parentNode.removeChild(style);\n\n\tvar idx = stylesInsertedAtTop.indexOf(style);\n\tif(idx >= 0) {\n\t\tstylesInsertedAtTop.splice(idx, 1);\n\t}\n}\n\nfunction createStyleElement (options) {\n\tvar style = document.createElement(\"style\");\n\n\toptions.attrs.type = \"text/css\";\n\n\taddAttrs(style, options.attrs);\n\tinsertStyleElement(options, style);\n\n\treturn style;\n}\n\nfunction createLinkElement (options) {\n\tvar link = document.createElement(\"link\");\n\n\toptions.attrs.type = \"text/css\";\n\toptions.attrs.rel = \"stylesheet\";\n\n\taddAttrs(link, options.attrs);\n\tinsertStyleElement(options, link);\n\n\treturn link;\n}\n\nfunction addAttrs (el, attrs) {\n\tObject.keys(attrs).forEach(function (key) {\n\t\tel.setAttribute(key, attrs[key]);\n\t});\n}\n\nfunction addStyle (obj, options) {\n\tvar style, update, remove, result;\n\n\t// If a transform function was defined, run it on the css\n\tif (options.transform && obj.css) {\n\t result = options.transform(obj.css);\n\n\t if (result) {\n\t \t// If transform returns a value, use that instead of the original css.\n\t \t// This allows running runtime transformations on the css.\n\t \tobj.css = result;\n\t } else {\n\t \t// If the transform function returns a falsy value, don't add this css.\n\t \t// This allows conditional loading of css\n\t \treturn function() {\n\t \t\t// noop\n\t \t};\n\t }\n\t}\n\n\tif (options.singleton) {\n\t\tvar styleIndex = singletonCounter++;\n\n\t\tstyle = singleton || (singleton = createStyleElement(options));\n\n\t\tupdate = applyToSingletonTag.bind(null, style, styleIndex, false);\n\t\tremove = applyToSingletonTag.bind(null, style, styleIndex, true);\n\n\t} else if (\n\t\tobj.sourceMap &&\n\t\ttypeof URL === \"function\" &&\n\t\ttypeof URL.createObjectURL === \"function\" &&\n\t\ttypeof URL.revokeObjectURL === \"function\" &&\n\t\ttypeof Blob === \"function\" &&\n\t\ttypeof btoa === \"function\"\n\t) {\n\t\tstyle = createLinkElement(options);\n\t\tupdate = updateLink.bind(null, style, options);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\n\t\t\tif(style.href) URL.revokeObjectURL(style.href);\n\t\t};\n\t} else {\n\t\tstyle = createStyleElement(options);\n\t\tupdate = applyToTag.bind(null, style);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\t\t};\n\t}\n\n\tupdate(obj);\n\n\treturn function updateStyle (newObj) {\n\t\tif (newObj) {\n\t\t\tif (\n\t\t\t\tnewObj.css === obj.css &&\n\t\t\t\tnewObj.media === obj.media &&\n\t\t\t\tnewObj.sourceMap === obj.sourceMap\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tupdate(obj = newObj);\n\t\t} else {\n\t\t\tremove();\n\t\t}\n\t};\n}\n\nvar replaceText = (function () {\n\tvar textStore = [];\n\n\treturn function (index, replacement) {\n\t\ttextStore[index] = replacement;\n\n\t\treturn textStore.filter(Boolean).join('\\n');\n\t};\n})();\n\nfunction applyToSingletonTag (style, index, remove, obj) {\n\tvar css = remove ? \"\" : obj.css;\n\n\tif (style.styleSheet) {\n\t\tstyle.styleSheet.cssText = replaceText(index, css);\n\t} else {\n\t\tvar cssNode = document.createTextNode(css);\n\t\tvar childNodes = style.childNodes;\n\n\t\tif (childNodes[index]) style.removeChild(childNodes[index]);\n\n\t\tif (childNodes.length) {\n\t\t\tstyle.insertBefore(cssNode, childNodes[index]);\n\t\t} else {\n\t\t\tstyle.appendChild(cssNode);\n\t\t}\n\t}\n}\n\nfunction applyToTag (style, obj) {\n\tvar css = obj.css;\n\tvar media = obj.media;\n\n\tif(media) {\n\t\tstyle.setAttribute(\"media\", media)\n\t}\n\n\tif(style.styleSheet) {\n\t\tstyle.styleSheet.cssText = css;\n\t} else {\n\t\twhile(style.firstChild) {\n\t\t\tstyle.removeChild(style.firstChild);\n\t\t}\n\n\t\tstyle.appendChild(document.createTextNode(css));\n\t}\n}\n\nfunction updateLink (link, options, obj) {\n\tvar css = obj.css;\n\tvar sourceMap = obj.sourceMap;\n\n\t/*\n\t\tIf convertToAbsoluteUrls isn't defined, but sourcemaps are enabled\n\t\tand there is no publicPath defined then lets turn convertToAbsoluteUrls\n\t\ton by default. Otherwise default to the convertToAbsoluteUrls option\n\t\tdirectly\n\t*/\n\tvar autoFixUrls = options.convertToAbsoluteUrls === undefined && sourceMap;\n\n\tif (options.convertToAbsoluteUrls || autoFixUrls) {\n\t\tcss = fixUrls(css);\n\t}\n\n\tif (sourceMap) {\n\t\t// http://stackoverflow.com/a/26603875\n\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\n\t}\n\n\tvar blob = new Blob([css], { type: \"text/css\" });\n\n\tvar oldSrc = link.href;\n\n\tlink.href = URL.createObjectURL(blob);\n\n\tif(oldSrc) URL.revokeObjectURL(oldSrc);\n}\n","/* eslint-disable no-var */\n// Simple JavaScript Templating\n// Paul Miller (http://paulmillr.com)\n// http://underscorejs.org\n// (c) 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\n// By default, Underscore uses ERB-style template delimiters, change the\n// following template settings to use alternative delimiters.\nvar settings = {\n evaluate : /<%([\\s\\S]+?)%>/g,\n interpolate : /<%=([\\s\\S]+?)%>/g,\n escape : /<%-([\\s\\S]+?)%>/g\n}\n\n// When customizing `templateSettings`, if you don't want to define an\n// interpolation, evaluation or escaping regex, we need one that is\n// guaranteed not to match.\nvar noMatch = /(.)^/\n\n// Certain characters need to be escaped so that they can be put into a\n// string literal.\nvar escapes = {\n '\\'': '\\'',\n '\\\\': '\\\\',\n '\\r': 'r',\n '\\n': 'n',\n '\\t': 't',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n}\n\nvar escaper = /\\\\|'|\\r|\\n|\\t|\\u2028|\\u2029/g\n\n// List of HTML entities for escaping.\nvar htmlEntities = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n '\\'': '''\n}\n\nvar entityRe = new RegExp('[&<>\"\\']', 'g')\n\nvar escapeExpr = function(string) {\n if (string === null) return ''\n return ('' + string).replace(entityRe, function(match) {\n return htmlEntities[match]\n })\n}\n\nvar counter = 0\n\n// JavaScript micro-templating, similar to John Resig's implementation.\n// Underscore templating handles arbitrary delimiters, preserves whitespace,\n// and correctly escapes quotes within interpolated code.\nvar tmpl = function(text, data) {\n var render\n\n // Combine delimiters into one regular expression via alternation.\n var matcher = new RegExp([\n (settings.escape || noMatch).source,\n (settings.interpolate || noMatch).source,\n (settings.evaluate || noMatch).source\n ].join('|') + '|$', 'g')\n\n // Compile the template source, escaping string literals appropriately.\n var index = 0\n var source = '__p+=\\''\n text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {\n source += text.slice(index, offset)\n .replace(escaper, function(match) { return '\\\\' + escapes[match] })\n\n if (escape)\n source += '\\'+\\n((__t=(' + escape + '))==null?\\'\\':escapeExpr(__t))+\\n\\''\n\n if (interpolate)\n source += '\\'+\\n((__t=(' + interpolate + '))==null?\\'\\':__t)+\\n\\''\n\n if (evaluate)\n source += '\\';\\n' + evaluate + '\\n__p+=\\''\n\n index = offset + match.length\n return match\n })\n source += '\\';\\n'\n\n // If a variable is not specified, place data values in local scope.\n if (!settings.variable) source = 'with(obj||{}){\\n' + source + '}\\n'\n\n source = 'var __t,__p=\\'\\',__j=Array.prototype.join,' +\n 'print=function(){__p+=__j.call(arguments,\\'\\');};\\n' +\n source + 'return __p;\\n//# sourceURL=/microtemplates/source[' + counter++ + ']'\n\n try {\n /*jshint -W054 */\n // TODO: find a way to avoid eval\n render = new Function(settings.variable || 'obj', 'escapeExpr', source)\n } catch (e) {\n e.source = source\n throw e\n }\n\n if (data) return render(data, escapeExpr)\n var template = function(data) {\n return render.call(this, data, escapeExpr)\n }\n\n // Provide the compiled function source as a convenience for precompilation.\n template.source = 'function(' + (settings.variable || 'obj') + '){\\n' + source + '}'\n\n return template\n}\ntmpl.settings = settings\n\nexport default tmpl\n","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };","var store = require('./_shared')('wks')\n , uid = require('./_uid')\n , Symbol = require('./_global').Symbol\n , USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function(name){\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;","import { extend } from './utils'\nimport UIObject from './ui_object'\nimport ErrorMixin from './error_mixin'\n\nimport $ from 'clappr-zepto'\n\n/**\n * An abstraction to represent a generic playback, it's like an interface to be implemented by subclasses.\n * @class Playback\n * @constructor\n * @extends UIObject\n * @module base\n */\nexport default class Playback extends UIObject {\n /**\n * Determine if the playback does not contain video/has video but video should be ignored.\n * @property isAudioOnly\n * @type Boolean\n */\n get isAudioOnly() {\n return false\n }\n\n get isAdaptive() {\n return false\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n get ended() {\n return false\n }\n\n /**\n * The internationalization plugin.\n * @property i18n\n * @type {Strings}\n */\n get i18n() {\n return this._i18n\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * (i.e if a live stream is playing smoothly, this will be false)\n * @property buffering\n * @type Boolean\n */\n get buffering() {\n return false\n }\n\n /**\n * Determine if the playback has user consent.\n * @property consented\n * @type Boolean\n */\n get consented() {\n return this._consented\n }\n\n /**\n * @method constructor\n * @param {Object} options the options object\n * @param {Strings} i18n the internationalization component\n */\n constructor(options, i18n, playerError) {\n super(options)\n this.settings = {}\n this._i18n = i18n\n this.playerError = playerError\n this._consented = false\n }\n\n /**\n * Gives user consent to playback (mobile devices).\n * @method consent\n */\n consent() {\n this._consented = true\n }\n\n /**\n * plays the playback.\n * @method play\n */\n play() {}\n\n /**\n * pauses the playback.\n * @method pause\n */\n pause() {}\n\n /**\n * stops the playback.\n * @method stop\n */\n stop() {}\n\n /**\n * seeks the playback to a given `time` in seconds\n * @method seek\n * @param {Number} time should be a number between 0 and the video duration\n */\n seek(time) {} // eslint-disable-line no-unused-vars\n\n /**\n * seeks the playback to a given `percentage` in percentage\n * @method seekPercentage\n * @param {Number} time should be a number between 0 and 100\n */\n seekPercentage(percentage) {} // eslint-disable-line no-unused-vars\n\n /**\n * The time that \"0\" now represents relative to when playback started.\n * For a stream with a sliding window this will increase as content is\n * removed from the beginning.\n * @method getStartTimeOffset\n * @return {Number} time (in seconds) that time \"0\" represents.\n */\n getStartTimeOffset() { return 0 }\n\n /**\n * gets the duration in seconds\n * @method getDuration\n * @return {Number} duration (in seconds) of the current source\n */\n getDuration() { return 0 }\n\n /**\n * checks if the playback is playing.\n * @method isPlaying\n * @return {Boolean} `true` if the current playback is playing, otherwise `false`\n */\n isPlaying() {\n return false\n }\n\n /**\n * checks if the playback is ready.\n * @property isReady\n * @type {Boolean} `true` if the current playback is ready, otherwise `false`\n */\n get isReady() {\n return false\n }\n\n /**\n * checks if the playback has closed caption tracks.\n * @property hasClosedCaptionsTracks\n * @type {Boolean}\n */\n get hasClosedCaptionsTracks() {\n return this.closedCaptionsTracks.length > 0\n }\n\n /**\n * gets the playback available closed caption tracks.\n * @property closedCaptionsTracks\n * @type {Array} an array of objects with at least 'id' and 'name' properties\n */\n get closedCaptionsTracks() {\n return []\n }\n\n /**\n * gets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n get closedCaptionsTrackId() {\n return -1\n }\n\n /**\n * sets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n set closedCaptionsTrackId(trackId) {} // eslint-disable-line no-unused-vars\n\n /**\n * gets the playback type (`'vod', 'live', 'aod'`)\n * @method getPlaybackType\n * @return {String} you should write the playback type otherwise it'll assume `'no_op'`\n * @example\n * ```javascript\n * html5VideoPlayback.getPlaybackType() //vod\n * html5AudioPlayback.getPlaybackType() //aod\n * html5VideoPlayback.getPlaybackType() //live\n * flashHlsPlayback.getPlaybackType() //live\n * ```\n */\n getPlaybackType() {\n return Playback.NO_OP\n }\n\n /**\n * checks if the playback is in HD.\n * @method isHighDefinitionInUse\n * @return {Boolean} `true` if the playback is playing in HD, otherwise `false`\n */\n isHighDefinitionInUse() {\n return false\n }\n\n /**\n * sets the volume for the playback\n * @method volume\n * @param {Number} value a number between 0 (`muted`) to 100 (`max`)\n */\n volume(value) {} // eslint-disable-line no-unused-vars\n\n /**\n * enables to configure the playback after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n configure(options) {\n this._options = $.extend(this._options, options)\n }\n\n /**\n * attempt to autoplays the playback.\n * @method attemptAutoPlay\n */\n attemptAutoPlay() {\n this.canAutoPlay((result, error) => { // eslint-disable-line no-unused-vars\n result && this.play()\n })\n }\n\n /**\n * checks if the playback can autoplay.\n * @method canAutoPlay\n * @param {Function} callback function where first param is Boolean and second param is playback Error or null\n */\n canAutoPlay(cb) {\n cb(true, null) // Assume playback can autoplay by default\n }\n}\n\nObject.assign(Playback.prototype, ErrorMixin)\n\nPlayback.extend = function(properties) {\n return extend(Playback, properties)\n}\n\n/**\n * checks if the playback can play a given `source`\n * If a mimeType is provided then this will be used instead of inferring the mimetype\n * from the source extension.\n * @method canPlay\n * @static\n * @param {String} source the given source ex: `http://example.com/play.mp4`\n * @param {String} [mimeType] the given mime type, ex: `'application/vnd.apple.mpegurl'`\n * @return {Boolean} `true` if the playback is playable, otherwise `false`\n */\nPlayback.canPlay = (source, mimeType) => { // eslint-disable-line no-unused-vars\n return false\n}\n\n/**\n * a playback type for video on demand\n *\n * @property VOD\n * @static\n * @type String\n */\nPlayback.VOD = 'vod'\n/**\n * a playback type for audio on demand\n *\n * @property AOD\n * @static\n * @type String\n */\nPlayback.AOD = 'aod'\n/**\n * a playback type for live video\n *\n * @property LIVE\n * @static\n * @type String\n */\nPlayback.LIVE = 'live'\n/**\n * a default playback type\n *\n * @property NO_OP\n * @static\n * @type String\n */\nPlayback.NO_OP = 'no_op'\n/**\n * the plugin type\n *\n * @property type\n * @static\n * @type String\n */\nPlayback.type = 'playback'\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { uniqueId } from './utils'\nimport Events from './events'\n\n/**\n * @class BaseObject\n * @constructor\n * @extends Events\n * @module base\n */\nexport default class BaseObject extends Events {\n /**\n * returns the object options\n * @property options\n * @type Object\n */\n get options() { return this._options }\n\n /**\n * @method constructor\n * @param {Object} options\n */\n constructor(options={}) {\n super(options)\n this._options = options\n this.uniqueId = uniqueId('o')\n }\n /**\n * a unique id prefixed with `'o'`, `o1, o232`\n *\n * @property uniqueId\n * @type String\n */\n}\n","var global = require('./_global')\n , core = require('./_core')\n , ctx = require('./_ctx')\n , hide = require('./_hide')\n , PROTOTYPE = 'prototype';\n\nvar $export = function(type, name, source){\n var IS_FORCED = type & $export.F\n , IS_GLOBAL = type & $export.G\n , IS_STATIC = type & $export.S\n , IS_PROTO = type & $export.P\n , IS_BIND = type & $export.B\n , IS_WRAP = type & $export.W\n , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})\n , expProto = exports[PROTOTYPE]\n , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\n , key, own, out;\n if(IS_GLOBAL)source = name;\n for(key in source){\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if(own && key in exports)continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function(C){\n var F = function(a, b, c){\n if(this instanceof C){\n switch(arguments.length){\n case 0: return new C;\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if(IS_PROTO){\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library` \nmodule.exports = $export;","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\nif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef","var anObject = require('./_an-object')\n , IE8_DOM_DEFINE = require('./_ie8-dom-define')\n , toPrimitive = require('./_to-primitive')\n , dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes){\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if(IE8_DOM_DEFINE)try {\n return dP(O, P, Attributes);\n } catch(e){ /* empty */ }\n if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');\n if('value' in Attributes)O[P] = Attributes.value;\n return O;\n};","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject')\n , defined = require('./_defined');\nmodule.exports = function(it){\n return IObject(defined(it));\n};","import Log from '../plugins/log'\nimport PlayerError from '../components/error'\n\nconst ErrorMixin = {\n /**\n * creates an error.\n * @method createError\n * @param {Object} error should be an object with code, description, level and raw error.\n * @return {Object} Object with formatted error data including origin and scope\n */\n createError(error, options = { useCodePrefix: true }) {\n const scope = this.constructor && this.constructor.type || ''\n const origin = this.name || scope\n const i18n = this.i18n || this.core && this.core.i18n || this.container && this.container.i18n\n\n const prefixedCode = `${origin}:${error && error.code || 'unknown'}`\n const defaultError = {\n description: '',\n level: PlayerError.Levels.FATAL,\n origin,\n scope,\n raw: {},\n }\n\n const errorData = Object.assign({}, defaultError, error, {\n code: options.useCodePrefix ? prefixedCode : error.code\n })\n\n if (i18n && errorData.level == PlayerError.Levels.FATAL && !errorData.UI) {\n const defaultUI = {\n title: i18n.t('default_error_title'),\n message: i18n.t('default_error_message')\n }\n errorData.UI = defaultUI\n }\n\n if (this.playerError)\n this.playerError.createError(errorData)\n else\n Log.warn(origin, 'PlayerError is not defined. Error: ', errorData)\n\n return errorData\n }\n}\n\nexport default ErrorMixin\n","var isObject = require('./_is-object');\nmodule.exports = function(it){\n if(!isObject(it))throw TypeError(it + ' is not an object!');\n return it;\n};","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function(){\n return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n});","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function(it, key){\n return hasOwnProperty.call(it, key);\n};","import { extend } from './utils'\nimport UIObject from './ui_object'\nimport ErrorMixin from './error_mixin'\n\nexport default class UICorePlugin extends UIObject {\n get playerError() { return this.core.playerError }\n\n constructor(core) {\n super(core.options)\n this.core = core\n this.enabled = true\n this.bindEvents()\n this.render()\n }\n\n bindEvents() {}\n\n getExternalInterface() { return {} }\n\n enable() {\n if (!this.enabled) {\n this.bindEvents()\n this.$el.show()\n this.enabled = true\n }\n }\n\n disable() {\n this.stopListening()\n this.$el.hide()\n this.enabled = false\n }\n\n render() {\n return this\n }\n}\n\nObject.assign(UICorePlugin.prototype, ErrorMixin)\n\nUICorePlugin.extend = function(properties) {\n return extend(UICorePlugin, properties)\n}\n\nUICorePlugin.type = 'core'\n","module.exports = void 0\n","var dP = require('./_object-dp')\n , createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function(object, key, value){\n return dP.f(object, key, createDesc(1, value));\n} : function(object, key, value){\n object[key] = value;\n return object;\n};","module.exports = function(exec){\n try {\n return !!exec();\n } catch(e){\n return true;\n }\n};","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal')\n , enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O){\n return $keys(O, enumBugKeys);\n};","import Browser from './browser'\nexport default Browser\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport $ from 'clappr-zepto'\nimport { uniqueId, DomRecycler } from './utils'\nimport BaseObject from './base_object'\n\nconst delegateEventSplitter = /^(\\S+)\\s*(.*)$/\n\n/**\n * A base class to create ui object.\n * @class UIObject\n * @constructor\n * @extends BaseObject\n * @module base\n */\nexport default class UIObject extends BaseObject {\n /**\n * a unique id prefixed with `'c'`, `c1, c232`\n *\n * @property cid\n * @type String\n */\n /**\n * the dom element itself\n *\n * @property el\n * @type HTMLElement\n */\n /**\n * the dom element wrapped by `$`\n *\n * @property $el\n * @type HTMLElement\n */\n\n /**\n * gets the tag name for the ui component\n * @method tagName\n * @default div\n * @return {String} tag's name\n */\n get tagName() { return 'div' }\n /**\n * a literal object mapping element's events to methods\n * @property events\n * @type Object\n * @example\n *\n *```javascript\n *\n * class MyButton extends UIObject {\n * constructor(options) {\n * super(options)\n * this.myId = 0\n * }\n * get events() { return { 'click': 'myClick' } }\n * myClick(){ this.myId = 42 }\n * }\n *\n * // when you click on MyButton the method `myClick` will be called\n *```\n */\n get events() { return {} }\n /**\n * a literal object mapping attributes and values to the element\n * element's attribute name and the value the attribute value\n * @property attributes\n * @type Object\n * @example\n *\n *```javascript\n *\n * class MyButton extends UIObject {\n * constructor(options) { super(options) }\n * get attributes() { return { class: 'my-button'} }\n * }\n *\n * // MyButton.el.className will be 'my-button'\n * ```\n */\n get attributes() { return {} }\n\n /**\n * it builds an ui component by:\n * * creating an id for the component `cid`\n * * making sure the element is created `$el`\n * * delegating all `events` to the element\n * @method constructor\n * @param {Object} options the options object\n */\n constructor(options) {\n super(options)\n this.cid = uniqueId('c')\n this._ensureElement()\n this.delegateEvents()\n }\n\n /**\n * selects within the component.\n * @method $\n * @param {String} selector a selector to find within the component.\n * @return {HTMLElement} an element, if it exists.\n * @example\n * ```javascript\n * fullScreenBarUIComponent.$('.button-full') //will return only `.button-full` within the component\n * ```\n */\n $(selector) {\n return this.$el.find(selector)\n }\n\n /**\n * render the component, usually attach it to a real existent `element`\n * @method render\n * @return {UIObject} itself\n */\n render() {\n return this\n }\n\n /**\n * removes the ui component from DOM\n * @method destroy\n * @return {UIObject} itself\n */\n destroy() {\n this.$el.remove()\n this.stopListening()\n this.undelegateEvents()\n return this\n }\n\n /**\n * set element to `el` and `$el`\n * @method setElement\n * @param {HTMLElement} element\n * @param {Boolean} delegate whether is delegate or not\n * @return {UIObject} itself\n */\n setElement(element, delegate) {\n if (this.$el) this.undelegateEvents()\n this.$el = $.zepto.isZ(element) ? element : $(element)\n this.el = this.$el[0]\n if (delegate !== false) this.delegateEvents()\n return this\n }\n\n /**\n * delegates all the original `events` on `element` to its callbacks\n * @method delegateEvents\n * @param {Object} events\n * @return {UIObject} itself\n */\n delegateEvents(events) {\n if (!(events || (events = this.events))) return this\n this.undelegateEvents()\n for (const key in events) {\n let method = events[key]\n if ((method && method.constructor !== Function)) method = this[events[key]]\n if (!method) continue\n\n const match = key.match(delegateEventSplitter)\n let eventName = match[1], selector = match[2]\n eventName += '.delegateEvents' + this.cid\n if (selector === '')\n this.$el.on(eventName, method.bind(this))\n else\n this.$el.on(eventName, selector, method.bind(this))\n\n }\n return this\n }\n\n /**\n * undelegats all the `events`\n * @method undelegateEvents\n * @return {UIObject} itself\n */\n undelegateEvents() {\n this.$el.off('.delegateEvents' + this.cid)\n return this\n }\n\n /**\n * ensures the creation of this ui component\n * @method _ensureElement\n * @private\n */\n _ensureElement() {\n if (!this.el) {\n const attrs = $.extend({}, this.attributes)\n if (this.id) attrs.id = this.id\n if (this.className) attrs['class'] = this.className\n const $el = DomRecycler.create(this.tagName).attr(attrs)\n this.setElement($el, false)\n } else { this.setElement(this.el, false) }\n\n }\n}\n","module.exports = function(it){\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};","module.exports = function(bitmap, value){\n return {\n enumerable : !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable : !(bitmap & 4),\n value : value\n };\n};","module.exports = {};","import Log from './log'\nexport default Log\n","import Error from './error'\nexport default Error\n","import { extend } from './utils'\nimport BaseObject from './base_object'\nimport ErrorMixin from './error_mixin'\n\nexport default class CorePlugin extends BaseObject {\n get playerError() { return this.core.playerError }\n\n constructor(core) {\n super(core.options)\n this.core = core\n this.enabled = true\n this.bindEvents()\n }\n\n bindEvents() {}\n\n enable() {\n if (!this.enabled) {\n this.bindEvents()\n this.enabled = true\n }\n }\n\n disable() {\n if (this.enabled) {\n this.stopListening()\n this.enabled = false\n }\n }\n\n getExternalInterface() { return {} }\n\n destroy() {\n this.stopListening()\n }\n}\n\nObject.assign(CorePlugin.prototype, ErrorMixin)\n\nCorePlugin.extend = function(properties) {\n return extend(CorePlugin, properties)\n}\n\nCorePlugin.type = 'core'\n","var id = 0\n , px = Math.random();\nmodule.exports = function(key){\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};","exports.f = {}.propertyIsEnumerable;","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function(it){\n return Object(defined(it));\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nclass PlayerInfo {\n constructor() {\n this.options = {}\n this.playbackPlugins = []\n this.currentSize = { width: 0, height: 0 }\n }\n}\n\nPlayerInfo._players = {}\n\nPlayerInfo.getInstance = (playerId) => {\n return PlayerInfo._players[playerId] || (PlayerInfo._players[playerId] = new PlayerInfo())\n}\n\nexport default PlayerInfo\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { extend } from './utils'\nimport UIObject from './ui_object'\nimport ErrorMixin from './error_mixin'\n\n/**\n * The base class for an ui container plugin\n * @class UIContainerPlugin\n * @constructor\n * @extends UIObject\n * @module base\n */\nexport default class UIContainerPlugin extends UIObject {\n get playerError() { return this.container.playerError }\n\n constructor(container) {\n super(container.options)\n this.container = container\n this.enabled = true\n this.bindEvents()\n }\n\n enable() {\n if (!this.enabled) {\n this.bindEvents()\n this.$el.show()\n this.enabled = true\n }\n }\n\n disable() {\n this.stopListening()\n this.$el.hide()\n this.enabled = false\n }\n\n bindEvents() {}\n\n}\n\nObject.assign(UIContainerPlugin.prototype, ErrorMixin)\n\nUIContainerPlugin.extend = function(properties) {\n return extend(UIContainerPlugin, properties)\n}\n\nUIContainerPlugin.type = 'container'\n","import BaseObject from './base_object'\nimport { extend } from './utils'\nimport ErrorMixin from './error_mixin'\n\n/**\n * The base class for a container plugin\n * @class ContainerPlugin\n * @constructor\n * @extends BaseObject\n * @module base\n */\nexport default class ContainerPlugin extends BaseObject {\n get playerError() { return this.container.playerError }\n\n constructor(container) {\n super(container.options)\n this.container = container\n this.enabled = true\n this.bindEvents()\n }\n\n enable() {\n if (!this.enabled) {\n this.bindEvents()\n this.enabled = true\n }\n }\n\n disable() {\n if (this.enabled) {\n this.stopListening()\n this.enabled = false\n }\n }\n\n bindEvents() {}\n\n destroy() {\n this.stopListening()\n }\n}\n\nObject.assign(ContainerPlugin.prototype, ErrorMixin)\n\nContainerPlugin.extend = function(properties) {\n return extend(ContainerPlugin, properties)\n}\n\nContainerPlugin.type = 'container'\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function(fn, that, length){\n aFunction(fn);\n if(that === undefined)return fn;\n switch(length){\n case 1: return function(a){\n return fn.call(that, a);\n };\n case 2: return function(a, b){\n return fn.call(that, a, b);\n };\n case 3: return function(a, b, c){\n return fn.call(that, a, b, c);\n };\n }\n return function(/* ...args */){\n return fn.apply(that, arguments);\n };\n};","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function(it, S){\n if(!isObject(it))return it;\n var fn, val;\n if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;\n if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};","var toString = {}.toString;\n\nmodule.exports = function(it){\n return toString.call(it).slice(8, -1);\n};","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function(it){\n if(it == undefined)throw TypeError(\"Can't call method on \" + it);\n return it;\n};","// 7.1.4 ToInteger\nvar ceil = Math.ceil\n , floor = Math.floor;\nmodule.exports = function(it){\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};","var shared = require('./_shared')('keys')\n , uid = require('./_uid');\nmodule.exports = function(key){\n return shared[key] || (shared[key] = uid(key));\n};","var global = require('./_global')\n , SHARED = '__core-js_shared__'\n , store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function(key){\n return store[key] || (store[key] = {});\n};","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');","exports.f = Object.getOwnPropertySymbols;","module.exports = { \"default\": require(\"core-js/library/fn/object/keys\"), __esModule: true };","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function(iterated){\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , index = this._i\n , point;\n if(index >= O.length)return {value: undefined, done: true};\n point = $at(O, index);\n this._i += point.length;\n return {value: point, done: false};\n});","module.exports = true;","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object')\n , dPs = require('./_object-dps')\n , enumBugKeys = require('./_enum-bug-keys')\n , IE_PROTO = require('./_shared-key')('IE_PROTO')\n , Empty = function(){ /* empty */ }\n , PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function(){\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe')\n , i = enumBugKeys.length\n , lt = '<'\n , gt = '>'\n , iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties){\n var result;\n if(O !== null){\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty;\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var def = require('./_object-dp').f\n , has = require('./_has')\n , TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function(it, tag, stat){\n if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});\n};","exports.f = require('./_wks');","var global = require('./_global')\n , core = require('./_core')\n , LIBRARY = require('./_library')\n , wksExt = require('./_wks-ext')\n , defineProperty = require('./_object-dp').f;\nmodule.exports = function(name){\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if(name.charAt(0) != '_' && !(name in $Symbol))defineProperty($Symbol, name, {value: wksExt.f(name)});\n};","var pIE = require('./_object-pie')\n , createDesc = require('./_property-desc')\n , toIObject = require('./_to-iobject')\n , toPrimitive = require('./_to-primitive')\n , has = require('./_has')\n , IE8_DOM_DEFINE = require('./_ie8-dom-define')\n , gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P){\n O = toIObject(O);\n P = toPrimitive(P, true);\n if(IE8_DOM_DEFINE)try {\n return gOPD(O, P);\n } catch(e){ /* empty */ }\n if(has(O, P))return createDesc(!pIE.f.call(O, P), O[P]);\n};","import Kibo from './kibo'\n\nexport default { Kibo }\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * The mediator is a singleton for handling global events.\n */\n\nimport Events from '../base/events'\n\nconst events = new Events()\n\nexport default class Mediator {\n}\n\nMediator.on = function(name, callback, context) {\n events.on(name, callback, context)\n return\n}\n\nMediator.once = function(name, callback, context) {\n events.once(name, callback, context)\n return\n}\n\nMediator.off = function(name, callback, context) {\n events.off(name, callback, context)\n return\n}\n\nMediator.trigger = function(name, ...opts) {\n events.trigger.apply(events, [name, ...opts])\n return\n}\n\nMediator.stopListening = function(obj, name, callback) {\n events.stopListening(obj, name, callback)\n return\n}\n","import HTML5Video from './html5_video'\nexport default HTML5Video\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","module.exports = !require('./_descriptors') && !require('./_fails')(function(){\n return Object.defineProperty(require('./_dom-create')('div'), 'a', {get: function(){ return 7; }}).a != 7;\n});","var isObject = require('./_is-object')\n , document = require('./_global').document\n // in old IE typeof document.createElement is 'object'\n , is = isObject(document) && isObject(document.createElement);\nmodule.exports = function(it){\n return is ? document.createElement(it) : {};\n};","var has = require('./_has')\n , toIObject = require('./_to-iobject')\n , arrayIndexOf = require('./_array-includes')(false)\n , IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function(object, names){\n var O = toIObject(object)\n , i = 0\n , result = []\n , key;\n for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while(names.length > i)if(has(O, key = names[i++])){\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n return cof(it) == 'String' ? it.split('') : Object(it);\n};","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer')\n , min = Math.min;\nmodule.exports = function(it){\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export')\n , core = require('./_core')\n , fails = require('./_fails');\nmodule.exports = function(KEY, exec){\n var fn = (core.Object || {})[KEY] || Object[KEY]\n , exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);\n};","'use strict';\nvar LIBRARY = require('./_library')\n , $export = require('./_export')\n , redefine = require('./_redefine')\n , hide = require('./_hide')\n , has = require('./_has')\n , Iterators = require('./_iterators')\n , $iterCreate = require('./_iter-create')\n , setToStringTag = require('./_set-to-string-tag')\n , getPrototypeOf = require('./_object-gpo')\n , ITERATOR = require('./_wks')('iterator')\n , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`\n , FF_ITERATOR = '@@iterator'\n , KEYS = 'keys'\n , VALUES = 'values';\n\nvar returnThis = function(){ return this; };\n\nmodule.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){\n $iterCreate(Constructor, NAME, next);\n var getMethod = function(kind){\n if(!BUGGY && kind in proto)return proto[kind];\n switch(kind){\n case KEYS: return function keys(){ return new Constructor(this, kind); };\n case VALUES: return function values(){ return new Constructor(this, kind); };\n } return function entries(){ return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator'\n , DEF_VALUES = DEFAULT == VALUES\n , VALUES_BUG = false\n , proto = Base.prototype\n , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]\n , $default = $native || getMethod(DEFAULT)\n , $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined\n , $anyNative = NAME == 'Array' ? proto.entries || $native : $native\n , methods, key, IteratorPrototype;\n // Fix native\n if($anyNative){\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base));\n if(IteratorPrototype !== Object.prototype){\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if(!LIBRARY && !has(IteratorPrototype, ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if(DEF_VALUES && $native && $native.name !== VALUES){\n VALUES_BUG = true;\n $default = function values(){ return $native.call(this); };\n }\n // Define iterator\n if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if(DEFAULT){\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if(FORCED)for(key in methods){\n if(!(key in proto))redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};","module.exports = require('./_hide');","require('./es6.array.iterator');\nvar global = require('./_global')\n , hide = require('./_hide')\n , Iterators = require('./_iterators')\n , TO_STRING_TAG = require('./_wks')('toStringTag');\n\nfor(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){\n var NAME = collections[i]\n , Collection = global[NAME]\n , proto = Collection && Collection.prototype;\n if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal')\n , hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O){\n return $keys(O, hiddenKeys);\n};","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };","var classof = require('./_classof')\n , ITERATOR = require('./_wks')('iterator')\n , Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function(it){\n if(it != undefined)return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};","import Core from './core'\nexport default Core\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport $ from 'clappr-zepto'\nimport template from './template'\n\nconst Styler = {\n getStyleFor: function(style, options={ baseUrl: '' }) {\n return $('<style class=\"clappr-style\"></style>').html(template(style.toString())(options))\n }\n}\n\nexport default Styler\n","import Events from '../../base/events'\nimport BaseObject from '../../base/base_object'\nimport Log from '../../plugins/log'\n\n/**\n * The PlayerError is responsible to receive and propagate errors.\n * @class PlayerError\n * @constructor\n * @extends BaseObject\n * @module components\n */\nclass PlayerError extends BaseObject {\n get name() { return 'error' }\n\n /**\n * @property Levels\n * @type {Object} object with error levels\n */\n static get Levels() {\n return {\n FATAL: 'FATAL',\n WARN: 'WARN',\n INFO: 'INFO',\n }\n }\n\n constructor(options={}, core) {\n super(options)\n this.core = core\n }\n\n /**\n * creates and trigger an error.\n * @method createError\n * @param {Object} err should be an object with code, description, level, origin, scope and raw error.\n */\n createError(err) {\n if (!this.core) {\n Log.warn(this.name, 'Core is not set. Error: ', err)\n return\n }\n this.core.trigger(Events.ERROR, err)\n }\n}\n\nexport default PlayerError\n","import Container from './container'\nexport default Container\n","module.exports = function escape(url) {\n if (typeof url !== 'string') {\n return url\n }\n // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n }\n // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]/.test(url)) {\n return '\"' + url.replace(/\"/g, '\\\\\"').replace(/\\n/g, '\\\\n') + '\"'\n }\n\n return url\n}\n","import Loader from './loader'\nexport default Loader\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _from = require(\"../core-js/array/from\");\n\nvar _from2 = _interopRequireDefault(_from);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return (0, _from2.default)(arr);\n }\n};","module.exports = { \"default\": require(\"core-js/library/fn/array/from\"), __esModule: true };","import HTML5Audio from './html5_audio'\nexport default HTML5Audio\n","import HTMLImg from './html_img'\nexport default HTMLImg\n","import NoOp from './no_op'\nexport default NoOp\n","import SpinnerThreeBouncePlugin from './spinner_three_bounce'\nexport default SpinnerThreeBouncePlugin\n","import WaterMarkPlugin from './watermark'\nexport default WaterMarkPlugin\n","import PosterPlugin from './poster'\nexport default PosterPlugin\n","import ClickToPausePlugin from './click_to_pause'\nexport default ClickToPausePlugin\n","import MediaControl from './media_control'\nexport default MediaControl\n","module.exports = \"<%=baseUrl%>/a8c874b93b3d848f39a71260c57e3863.cur\";","import DVRControls from './dvr_controls'\nexport default DVRControls\n","import Favicon from './favicon.js'\nexport default Favicon\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport Player from './components/player'\nimport Utils from './base/utils'\nimport Events from './base/events'\nimport Playback from './base/playback'\nimport ContainerPlugin from './base/container_plugin'\nimport CorePlugin from './base/core_plugin'\nimport UICorePlugin from './base/ui_core_plugin'\nimport UIContainerPlugin from './base/ui_container_plugin'\nimport BaseObject from './base/base_object'\nimport UIObject from './base/ui_object'\nimport Browser from './components/browser'\nimport Container from './components/container'\nimport Core from './components/core'\nimport PlayerError from './components/error'\nimport Loader from './components/loader'\nimport Mediator from './components/mediator'\nimport PlayerInfo from './components/player_info'\nimport BaseFlashPlayback from './playbacks/base_flash_playback'\nimport Flash from './playbacks/flash'\nimport FlasHLS from './playbacks/flashls'\nimport HLS from './playbacks/hls'\nimport HTML5Audio from './playbacks/html5_audio'\nimport HTML5Video from './playbacks/html5_video'\nimport HTMLImg from './playbacks/html_img'\nimport NoOp from './playbacks/no_op'\nimport MediaControl from './plugins/media_control'\nimport ClickToPausePlugin from './plugins/click_to_pause'\nimport DVRControls from './plugins/dvr_controls'\nimport Favicon from './plugins/favicon'\nimport Log from './plugins/log'\nimport Poster from './plugins/poster'\nimport SpinnerThreeBouncePlugin from './plugins/spinner_three_bounce'\nimport WaterMarkPlugin from './plugins/watermark'\nimport Styler from './base/styler'\nimport Vendor from './vendor'\nimport template from './base/template'\n\nimport $ from 'clappr-zepto'\n\nconst version = VERSION\n\nexport default {\n Player,\n Mediator,\n Events,\n Browser,\n PlayerInfo,\n MediaControl,\n ContainerPlugin,\n UIContainerPlugin,\n CorePlugin,\n UICorePlugin,\n Playback,\n Container,\n Core,\n PlayerError,\n Loader,\n BaseObject,\n UIObject,\n Utils,\n BaseFlashPlayback,\n Flash,\n FlasHLS,\n HLS,\n HTML5Audio,\n HTML5Video,\n HTMLImg,\n NoOp,\n ClickToPausePlugin,\n DVRControls,\n Favicon,\n Log,\n Poster,\n SpinnerThreeBouncePlugin,\n WaterMarkPlugin,\n Styler,\n Vendor,\n version,\n template,\n $\n}\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { uniqueId, currentScriptUrl } from '../base/utils'\n\nimport BaseObject from '../base/base_object'\nimport Events from '../base/events'\nimport Browser from './browser'\nimport CoreFactory from './core_factory'\nimport Loader from './loader'\nimport PlayerInfo from './player_info'\nimport ErrorMixin from '../base/error_mixin'\nimport $ from 'clappr-zepto'\n\nconst baseUrl = currentScriptUrl().replace(/\\/[^/]+$/, '')\n\n/**\n * @class Player\n * @constructor\n * @extends BaseObject\n * @module components\n * @example\n * ### Using the Player\n *\n * Add the following script on your HTML:\n * ```html\n * <head>\n * <script type=\"text/javascript\" src=\"http://cdn.clappr.io/latest/clappr.min.js\"></script>\n * </head>\n * ```\n * Now, create the player:\n * ```html\n * <body>\n * <div id=\"player\"></div>\n * <script>\n * var player = new Clappr.Player({source: \"http://your.video/here.mp4\", parentId: \"#player\"});\n * </script>\n * </body>\n * ```\n */\nexport default class Player extends BaseObject {\n\n set loader(loader) { this._loader = loader }\n get loader() {\n if (!this._loader)\n this._loader = new Loader(this.options.plugins || {}, this.options.playerId)\n\n return this._loader\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n get ended() {\n return this.core.activeContainer.ended\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * (i.e if a live stream is playing smoothly, this will be false)\n * @property buffering\n * @type Boolean\n */\n get buffering() {\n return this.core.activeContainer.buffering\n }\n\n /*\n * determine if the player is ready.\n * @property isReady\n * @type {Boolean} `true` if the player is ready. ie PLAYER_READY event has fired\n */\n get isReady() {\n return !!this._ready\n }\n\n /**\n * An events map that allows the user to add custom callbacks in player's options.\n * @property eventsMapping\n * @type {Object}\n */\n get eventsMapping() {\n return {\n onReady: Events.PLAYER_READY,\n onResize: Events.PLAYER_RESIZE,\n onPlay: Events.PLAYER_PLAY,\n onPause: Events.PLAYER_PAUSE,\n onStop: Events.PLAYER_STOP,\n onEnded: Events.PLAYER_ENDED,\n onSeek: Events.PLAYER_SEEK,\n onError: Events.PLAYER_ERROR,\n onTimeUpdate: Events.PLAYER_TIMEUPDATE,\n onVolumeUpdate: Events.PLAYER_VOLUMEUPDATE,\n onSubtitleAvailable: Events.PLAYER_SUBTITLE_AVAILABLE\n }\n }\n\n /**\n * @typedef {Object} PlaybackConfig\n * @prop {boolean} disableContextMenu\n * disables the context menu (right click) on the video element if a HTML5Video playback is used.\n * @prop {boolean} preload\n * video will be preloaded according to `preload` attribute options **default**: `'metadata'`\n * @prop {boolean} controls\n * enabled/disables displaying controls\n * @prop {boolean} crossOrigin\n * enables cross-origin capability for media-resources\n * @prop {boolean} playInline\n * enables in-line video elements\n * @prop {boolean} audioOnly\n * enforce audio-only playback (when possible)\n * @prop {Object} externalTracks\n * pass externaly loaded track to playback\n * @prop {Number} [maxBufferLength]\n * The default behavior for the **HLS playback** is to keep buffering indefinitely, even on VoD.\n * This replicates the behavior for progressive download, which continues buffering when pausing the video, thus making the video available for playback even on slow networks.\n * To change this behavior use `maxBufferLength` where **value is in seconds**.\n * @prop {Number} [maxBackBufferLength]\n * After how much distance of the playhead data should be pruned from the buffer (influences memory consumption\n * of adaptive media-engines like Hls.js or Shaka)\n * @prop {Number} [minBufferLength]\n * After how much data in the buffer at least we attempt to consume it (influences QoS-related behavior\n * of adaptive media-engines like Hls.js or Shaka). If this is too low, and the available bandwidth is varying a lot\n * and too close to the streamed bitrate, we may continuously hit under-runs.\n * @prop {Number} [initialBandwidthEstimate]\n * define an initial bandwidth \"guess\" (or previously stored/established value) for underlying adaptive-bitreate engines\n * of adaptive playback implementations, like Hls.js or Shaka\n * @prop {Number} [maxAdaptiveBitrate]\n * Limits the streamed bitrate (for adaptive media-engines in underlying playback implementations)\n * @prop {Object} [maxAdaptiveVideoDimensions]\n * Limits the video dimensions in adaptive media-engines. Should be a literal object with `height` and `width`.\n * @prop {Boolean}[enableAutomaticABR] **default**: `true`\n * Allows to enable/disable automatic bitrate switching in adaptive media-engines\n * @prop {String} [preferredTextLanguage] **default**: `'pt-BR'`\n * Allows to set a preferred text language, that may be enabled by the media-engine if available.\n * @prop {String} [preferredAudioLanguage] **default**: `'pt-BR'`\n * Allows to set a preferred audio language, that may be enabled by the media-engine if available.\n */\n\n /**\n * ## Player's constructor\n *\n * You might pass the options object to build the player.\n * ```javascript\n * var options = {source: \"http://example.com/video.mp4\", param1: \"val1\"};\n * var player = new Clappr.Player(options);\n * ```\n *\n * @method constructor\n * @param {Object} options Data\n * options to build a player instance\n * @param {Number} [options.width]\n * player's width **default**: `640`\n * @param {Number} [options.height]\n * player's height **default**: `360`\n * @param {String} [options.parentId]\n * the id of the element on the page that the player should be inserted into\n * @param {Object} [options.parent]\n * a reference to a dom element that the player should be inserted into\n * @param {String} [options.source]\n * The media source URL, or {source: <<source URL>>, mimeType: <<source mime type>>}\n * @param {Object} [options.sources]\n * An array of media source URL's, or an array of {source: <<source URL>>, mimeType: <<source mime type>>}\n * @param {Boolean} [options.autoPlay]\n * automatically play after page load **default**: `false`\n * @param {Boolean} [options.loop]\n * automatically replay after it ends **default**: `false`\n * @param {Boolean} [options.chromeless]\n * player acts in chromeless mode **default**: `false`\n * @param {Boolean} [options.allowUserInteraction]\n * whether or not the player should handle click events when in chromeless mode **default**: `false` on desktops browsers, `true` on mobile.\n * @param {Boolean} [options.disableKeyboardShortcuts]\n * disable keyboard shortcuts. **default**: `false`. `true` if `allowUserInteraction` is `false`.\n * @param {Boolean} [options.mute]\n * start the video muted **default**: `false`\n * @param {String} [options.mimeType]\n * add `mimeType: \"application/vnd.apple.mpegurl\"` if you need to use a url without extension.\n * @param {Boolean} [options.actualLiveTime]\n * show duration and seek time relative to actual time.\n * @param {String} [options.actualLiveServerTime]\n * specify server time as a string, format: \"2015/11/26 06:01:03\". This option is meant to be used with actualLiveTime.\n * @param {Boolean} [options.persistConfig]\n * persist player's settings (volume) through the same domain **default**: `true`\n * @param {String} [options.preload] @deprecated\n * video will be preloaded according to `preload` attribute options **default**: `'metadata'`\n * @param {Number} [options.maxBufferLength] @deprecated\n * the default behavior for the **HLS playback** is to keep buffering indefinitely, even on VoD.\n * This replicates the behavior for progressive download, which continues buffering when pausing the video, thus making the video available for playback even on slow networks.\n * To change this behavior use `maxBufferLength` where **value is in seconds**.\n * @param {String} [options.gaAccount]\n * enable Google Analytics events dispatch **(play/pause/stop/buffering/etc)** by adding your `gaAccount`\n * @param {String} [options.gaTrackerName]\n * besides `gaAccount` you can optionally, pass your favorite trackerName as `gaTrackerName`\n * @param {Object} [options.mediacontrol]\n * customize control bar colors, example: `mediacontrol: {seekbar: \"#E113D3\", buttons: \"#66B2FF\"}`\n * @param {Boolean} [options.hideMediaControl]\n * control media control auto hide **default**: `true`\n * @param {Boolean} [options.hideVolumeBar]\n * when embedded with width less than 320, volume bar will hide. You can force this behavior for all sizes by adding `true` **default**: `false`\n * @param {String} [options.watermark]\n * put `watermark: 'http://url/img.png'` on your embed parameters to automatically add watermark on your video.\n * You can customize corner position by defining position parameter. Positions can be `bottom-left`, `bottom-right`, `top-left` and `top-right`.\n * @param {String} [options.watermarkLink]\n * `watermarkLink: 'http://example.net/'` - define URL to open when the watermark is clicked. If not provided watermark will not be clickable.\n * @param {Boolean} [options.disableVideoTagContextMenu] @deprecated\n * disables the context menu (right click) on the video element if a HTML5Video playback is used.\n * @param {Boolean} [options.autoSeekFromUrl]\n * Automatically seek to the seconds provided in the url (e.g example.com?t=100) **default**: `true`\n * @param {Boolean} [options.exitFullscreenOnEnd]\n * Automatically exit full screen when the media finishes. **default**: `true`\n * @param {String} [options.poster]\n * define a poster by adding its address `poster: 'http://url/img.png'`. It will appear after video embed, disappear on play and go back when user stops the video.\n * @param {String} [options.playbackNotSupportedMessage]\n * define a custom message to be displayed when a playback is not supported.\n * @param {Object} [options.events]\n * Specify listeners which will be registered with their corresponding player events.\n * E.g. onReady -> \"PLAYER_READY\", onTimeUpdate -> \"PLAYER_TIMEUPDATE\"\n * @param {PlaybackConfig} [options.playback]\n * Generic `Playback` component related configuration\n * @param {Boolean} [options.disableErrorScreen]\n * disables the error screen plugin.\n * @param {Number} [options.autoPlayTimeout]\n * autoplay check timeout.\n */\n\n constructor(options) {\n super(options)\n const playbackDefaultOptions = { recycleVideo : true }\n const defaultOptions = {\n playerId: uniqueId(''),\n persistConfig: true,\n width: 640,\n height: 360,\n baseUrl: baseUrl,\n allowUserInteraction: Browser.isMobile,\n playback: playbackDefaultOptions\n }\n this._options = $.extend(defaultOptions, options)\n this.options.sources = this._normalizeSources(options)\n if (!this.options.chromeless) {\n // \"allowUserInteraction\" cannot be false if not in chromeless mode.\n this.options.allowUserInteraction = true\n }\n if (!this.options.allowUserInteraction) {\n // if user iteraction is not allowed ensure keyboard shortcuts are disabled\n this.options.disableKeyboardShortcuts = true\n }\n this._registerOptionEventListeners(this.options.events)\n this._coreFactory = new CoreFactory(this)\n this.playerInfo = PlayerInfo.getInstance(this.options.playerId)\n this.playerInfo.currentSize = { width: options.width, height: options.height }\n this.playerInfo.options = this.options\n if (this.options.parentId)\n this.setParentId(this.options.parentId)\n\n else if (this.options.parent)\n this.attachTo(this.options.parent)\n\n }\n\n /**\n * Specify a `parentId` to the player.\n * @method setParentId\n * @param {String} parentId the element parent id.\n * @return {Player} itself\n */\n setParentId(parentId) {\n const el = document.querySelector(parentId)\n if (el)\n this.attachTo(el)\n\n return this\n }\n\n /**\n * You can use this method to attach the player to a given element. You don't need to do this when you specify it during the player instantiation passing the `parentId` param.\n * @method attachTo\n * @param {Object} element a given element.\n * @return {Player} itself\n */\n attachTo(element) {\n this.options.parentElement = element\n this.core = this._coreFactory.create()\n this._addEventListeners()\n return this\n }\n\n _addEventListeners() {\n if (!this.core.isReady)\n this.listenToOnce(this.core, Events.CORE_READY, this._onReady)\n else\n this._onReady()\n\n this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this._containerChanged)\n this.listenTo(this.core, Events.CORE_FULLSCREEN, this._onFullscreenChange)\n this.listenTo(this.core, Events.CORE_RESIZE, this._onResize)\n return this\n }\n\n _addContainerEventListeners() {\n const container = this.core.activeContainer\n if (container) {\n this.listenTo(container, Events.CONTAINER_PLAY, this._onPlay)\n this.listenTo(container, Events.CONTAINER_PAUSE, this._onPause)\n this.listenTo(container, Events.CONTAINER_STOP, this._onStop)\n this.listenTo(container, Events.CONTAINER_ENDED, this._onEnded)\n this.listenTo(container, Events.CONTAINER_SEEK, this._onSeek)\n this.listenTo(container, Events.CONTAINER_ERROR, this._onError)\n this.listenTo(container, Events.CONTAINER_TIMEUPDATE, this._onTimeUpdate)\n this.listenTo(container, Events.CONTAINER_VOLUME, this._onVolumeUpdate)\n this.listenTo(container, Events.CONTAINER_SUBTITLE_AVAILABLE, this._onSubtitleAvailable)\n }\n return this\n }\n\n _registerOptionEventListeners(newEvents = {}, events = {}) {\n const hasNewEvents = Object.keys(newEvents).length > 0\n hasNewEvents && Object.keys(events).forEach((userEvent) => {\n const eventType = this.eventsMapping[userEvent]\n eventType && this.off(eventType, events[userEvent])\n })\n\n Object.keys(newEvents).forEach((userEvent) => {\n const eventType = this.eventsMapping[userEvent]\n if (eventType) {\n let eventFunction = newEvents[userEvent]\n eventFunction = typeof eventFunction === 'function' && eventFunction\n eventFunction && this.on(eventType, eventFunction)\n }\n })\n return this\n }\n\n _containerChanged() {\n this.stopListening()\n this._addEventListeners()\n }\n\n _onReady() {\n this._ready = true\n this._addContainerEventListeners()\n this.trigger(Events.PLAYER_READY)\n }\n\n _onFullscreenChange(fullscreen) {\n this.trigger(Events.PLAYER_FULLSCREEN, fullscreen)\n }\n\n _onVolumeUpdate(volume) {\n this.trigger(Events.PLAYER_VOLUMEUPDATE, volume)\n }\n\n _onSubtitleAvailable() {\n this.trigger(Events.PLAYER_SUBTITLE_AVAILABLE)\n }\n\n _onResize(size) {\n this.trigger(Events.PLAYER_RESIZE, size)\n }\n\n _onPlay() {\n this.trigger(Events.PLAYER_PLAY)\n }\n\n _onPause() {\n this.trigger(Events.PLAYER_PAUSE)\n }\n\n _onStop() {\n this.trigger(Events.PLAYER_STOP, this.getCurrentTime())\n }\n\n _onEnded() {\n this.trigger(Events.PLAYER_ENDED)\n }\n\n _onSeek(time) {\n this.trigger(Events.PLAYER_SEEK, time)\n }\n\n _onTimeUpdate(timeProgress) {\n this.trigger(Events.PLAYER_TIMEUPDATE, timeProgress)\n }\n\n _onError(error) {\n this.trigger(Events.PLAYER_ERROR, error)\n }\n\n _normalizeSources(options) {\n const sources = options.sources || (options.source !== undefined? [options.source] : [])\n return sources.length === 0 ? [{ source:'', mimeType:'' }] : sources\n }\n\n /**\n * resizes the current player canvas.\n * @method resize\n * @param {Object} size should be a literal object with `height` and `width`.\n * @return {Player} itself\n * @example\n * ```javascript\n * player.resize({height: 360, width: 640})\n * ```\n */\n resize(size) {\n this.core.resize(size)\n return this\n }\n\n /**\n * loads a new source.\n * @method load\n * @param {Array|String} sources source or sources of video.\n * An array item can be a string or {source: <<source URL>>, mimeType: <<source mime type>>}\n * @param {String} mimeType a mime type, example: `'application/vnd.apple.mpegurl'`\n * @param {Boolean} [autoPlay=false] whether playing should be started immediately\n * @return {Player} itself\n */\n load(sources, mimeType, autoPlay) {\n if (autoPlay !== undefined)\n this.configure({ autoPlay: !!autoPlay })\n\n this.core.load(sources, mimeType)\n return this\n }\n\n /**\n * destroys the current player and removes it from the DOM.\n * @method destroy\n * @return {Player} itself\n */\n destroy() {\n this.stopListening()\n this.core.destroy()\n return this\n }\n\n /**\n * Gives user consent to playback. Required by mobile device after a click event before Player.load().\n * @method consent\n * @return {Player} itself\n */\n consent() {\n this.core.getCurrentPlayback().consent()\n return this\n }\n\n /**\n * plays the current video (`source`).\n * @method play\n * @return {Player} itself\n */\n play() {\n this.core.activeContainer.play()\n return this\n }\n\n /**\n * pauses the current video (`source`).\n * @method pause\n * @return {Player} itself\n */\n pause() {\n this.core.activeContainer.pause()\n return this\n }\n\n /**\n * stops the current video (`source`).\n * @method stop\n * @return {Player} itself\n */\n stop() {\n this.core.activeContainer.stop()\n return this\n }\n\n\n /**\n * seeks the current video (`source`). For example, `player.seek(120)` will seek to second 120 (2minutes) of the current video.\n * @method seek\n * @param {Number} time should be a number between 0 and the video duration.\n * @return {Player} itself\n */\n seek(time) {\n this.core.activeContainer.seek(time)\n return this\n }\n\n /**\n * seeks the current video (`source`). For example, `player.seek(50)` will seek to the middle of the current video.\n * @method seekPercentage\n * @param {Number} time should be a number between 0 and 100.\n * @return {Player} itself\n */\n seekPercentage(percentage) {\n this.core.activeContainer.seekPercentage(percentage)\n return this\n }\n\n /**\n * mutes the current video (`source`).\n * @method mute\n * @return {Player} itself\n */\n mute() {\n this._mutedVolume = this.getVolume()\n this.setVolume(0)\n return this\n }\n\n /**\n * unmutes the current video (`source`).\n * @method unmute\n * @return {Player} itself\n */\n unmute() {\n this.setVolume(typeof this._mutedVolume === 'number' ? this._mutedVolume : 100)\n this._mutedVolume = null\n return this\n }\n\n /**\n * checks if the player is playing.\n * @method isPlaying\n * @return {Boolean} `true` if the current source is playing, otherwise `false`\n */\n isPlaying() {\n return this.core.activeContainer.isPlaying()\n }\n\n /**\n * returns `true` if DVR is enable otherwise `false`.\n * @method isDvrEnabled\n * @return {Boolean}\n */\n isDvrEnabled() {\n return this.core.activeContainer.isDvrEnabled()\n }\n\n /**\n * returns `true` if DVR is in use otherwise `false`.\n * @method isDvrInUse\n * @return {Boolean}\n */\n isDvrInUse() {\n return this.core.activeContainer.isDvrInUse()\n }\n\n /**\n * enables to configure a player after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n * @return {Player} itself\n */\n configure(options = {}) {\n this._registerOptionEventListeners(options.events, this.options.events)\n this.core.configure(options)\n return this\n }\n\n /**\n * get a plugin by its name.\n * @method getPlugin\n * @param {String} name of the plugin.\n * @return {Object} the plugin instance\n * @example\n * ```javascript\n * var poster = player.getPlugin('poster');\n * poster.hidePlayButton();\n * ```\n */\n getPlugin(name) {\n const plugins = this.core.plugins.concat(this.core.activeContainer.plugins)\n return plugins.filter(plugin => plugin.name === name)[0]\n }\n\n /**\n * the current time in seconds.\n * @method getCurrentTime\n * @return {Number} current time (in seconds) of the current source\n */\n getCurrentTime() {\n return this.core.activeContainer.getCurrentTime()\n }\n\n /**\n * The time that \"0\" now represents relative to when playback started.\n * For a stream with a sliding window this will increase as content is\n * removed from the beginning.\n * @method getStartTimeOffset\n * @return {Number} time (in seconds) that time \"0\" represents.\n */\n getStartTimeOffset() {\n return this.core.activeContainer.getStartTimeOffset()\n }\n\n /**\n * the duration time in seconds.\n * @method getDuration\n * @return {Number} duration time (in seconds) of the current source\n */\n getDuration() {\n return this.core.activeContainer.getDuration()\n }\n}\n\nObject.assign(Player.prototype, ErrorMixin)\n","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', {assign: require('./_object-assign')});","module.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = require('./_object-keys')\n , gOPS = require('./_object-gops')\n , pIE = require('./_object-pie')\n , toObject = require('./_to-object')\n , IObject = require('./_iobject')\n , $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function(){\n var A = {}\n , B = {}\n , S = Symbol()\n , K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function(k){ B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source){ // eslint-disable-line no-unused-vars\n var T = toObject(target)\n , aLen = arguments.length\n , index = 1\n , getSymbols = gOPS.f\n , isEnum = pIE.f;\n while(aLen > index){\n var S = IObject(arguments[index++])\n , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)\n , length = keys.length\n , j = 0\n , key;\n while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];\n } return T;\n} : $assign;","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject')\n , toLength = require('./_to-length')\n , toIndex = require('./_to-index');\nmodule.exports = function(IS_INCLUDES){\n return function($this, el, fromIndex){\n var O = toIObject($this)\n , length = toLength(O.length)\n , index = toIndex(fromIndex, length)\n , value;\n // Array#includes uses SameValueZero equality algorithm\n if(IS_INCLUDES && el != el)while(length > index){\n value = O[index++];\n if(value != value)return true;\n // Array#toIndex ignores holes, Array#includes - not\n } else for(;length > index; index++)if(IS_INCLUDES || index in O){\n if(O[index] === el)return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};","var toInteger = require('./_to-integer')\n , max = Math.max\n , min = Math.min;\nmodule.exports = function(index, length){\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};","require('../../modules/es6.object.keys');\nmodule.exports = require('../../modules/_core').Object.keys;","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object')\n , $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function(){\n return function keys(it){\n return $keys(toObject(it));\n };\n});","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');","var toInteger = require('./_to-integer')\n , defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function(TO_STRING){\n return function(that, pos){\n var s = String(defined(that))\n , i = toInteger(pos)\n , l = s.length\n , a, b;\n if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};","'use strict';\nvar create = require('./_object-create')\n , descriptor = require('./_property-desc')\n , setToStringTag = require('./_set-to-string-tag')\n , IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function(){ return this; });\n\nmodule.exports = function(Constructor, NAME, next){\n Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});\n setToStringTag(Constructor, NAME + ' Iterator');\n};","var dP = require('./_object-dp')\n , anObject = require('./_an-object')\n , getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties){\n anObject(O);\n var keys = getKeys(Properties)\n , length = keys.length\n , i = 0\n , P;\n while(length > i)dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};","module.exports = require('./_global').document && document.documentElement;","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has')\n , toObject = require('./_to-object')\n , IE_PROTO = require('./_shared-key')('IE_PROTO')\n , ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function(O){\n O = toObject(O);\n if(has(O, IE_PROTO))return O[IE_PROTO];\n if(typeof O.constructor == 'function' && O instanceof O.constructor){\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables')\n , step = require('./_iter-step')\n , Iterators = require('./_iterators')\n , toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function(iterated, kind){\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , kind = this._k\n , index = this._i++;\n if(!O || index >= O.length){\n this._t = undefined;\n return step(1);\n }\n if(kind == 'keys' )return step(0, index);\n if(kind == 'values')return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');","module.exports = function(){ /* empty */ };","module.exports = function(done, value){\n return {value: value, done: !!done};\n};","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global')\n , has = require('./_has')\n , DESCRIPTORS = require('./_descriptors')\n , $export = require('./_export')\n , redefine = require('./_redefine')\n , META = require('./_meta').KEY\n , $fails = require('./_fails')\n , shared = require('./_shared')\n , setToStringTag = require('./_set-to-string-tag')\n , uid = require('./_uid')\n , wks = require('./_wks')\n , wksExt = require('./_wks-ext')\n , wksDefine = require('./_wks-define')\n , keyOf = require('./_keyof')\n , enumKeys = require('./_enum-keys')\n , isArray = require('./_is-array')\n , anObject = require('./_an-object')\n , toIObject = require('./_to-iobject')\n , toPrimitive = require('./_to-primitive')\n , createDesc = require('./_property-desc')\n , _create = require('./_object-create')\n , gOPNExt = require('./_object-gopn-ext')\n , $GOPD = require('./_object-gopd')\n , $DP = require('./_object-dp')\n , $keys = require('./_object-keys')\n , gOPD = $GOPD.f\n , dP = $DP.f\n , gOPN = gOPNExt.f\n , $Symbol = global.Symbol\n , $JSON = global.JSON\n , _stringify = $JSON && $JSON.stringify\n , PROTOTYPE = 'prototype'\n , HIDDEN = wks('_hidden')\n , TO_PRIMITIVE = wks('toPrimitive')\n , isEnum = {}.propertyIsEnumerable\n , SymbolRegistry = shared('symbol-registry')\n , AllSymbols = shared('symbols')\n , OPSymbols = shared('op-symbols')\n , ObjectProto = Object[PROTOTYPE]\n , USE_NATIVE = typeof $Symbol == 'function'\n , QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function(){\n return _create(dP({}, 'a', {\n get: function(){ return dP(this, 'a', {value: 7}).a; }\n })).a != 7;\n}) ? function(it, key, D){\n var protoDesc = gOPD(ObjectProto, key);\n if(protoDesc)delete ObjectProto[key];\n dP(it, key, D);\n if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function(tag){\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){\n return typeof it == 'symbol';\n} : function(it){\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D){\n if(it === ObjectProto)$defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if(has(AllSymbols, key)){\n if(!D.enumerable){\n if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\n D = _create(D, {enumerable: createDesc(0, false)});\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P){\n anObject(it);\n var keys = enumKeys(P = toIObject(P))\n , i = 0\n , l = keys.length\n , key;\n while(l > i)$defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P){\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key){\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\n it = toIObject(it);\n key = toPrimitive(key, true);\n if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return;\n var D = gOPD(it, key);\n if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it){\n var names = gOPN(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i){\n if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\n var IS_OP = it === ObjectProto\n , names = gOPN(IS_OP ? OPSymbols : toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i){\n if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif(!USE_NATIVE){\n $Symbol = function Symbol(){\n if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function(value){\n if(this === ObjectProto)$set.call(OPSymbols, value);\n if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set});\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString(){\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n require('./_object-gops').f = $getOwnPropertySymbols;\n\n if(DESCRIPTORS && !require('./_library')){\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function(name){\n return wrap(wks(name));\n }\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol});\n\nfor(var symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), i = 0; symbols.length > i; )wks(symbols[i++]);\n\nfor(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function(key){\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(key){\n if(isSymbol(key))return keyOf(SymbolRegistry, key);\n throw TypeError(key + ' is not a symbol!');\n },\n useSetter: function(){ setter = true; },\n useSimple: function(){ setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it){\n if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\n var args = [it]\n , i = 1\n , replacer, $replacer;\n while(arguments.length > i)args.push(arguments[i++]);\n replacer = args[1];\n if(typeof replacer == 'function')$replacer = replacer;\n if($replacer || !isArray(replacer))replacer = function(key, value){\n if($replacer)value = $replacer.call(this, key, value);\n if(!isSymbol(value))return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);","var META = require('./_uid')('meta')\n , isObject = require('./_is-object')\n , has = require('./_has')\n , setDesc = require('./_object-dp').f\n , id = 0;\nvar isExtensible = Object.isExtensible || function(){\n return true;\n};\nvar FREEZE = !require('./_fails')(function(){\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function(it){\n setDesc(it, META, {value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n }});\n};\nvar fastKey = function(it, create){\n // return primitive with prefix\n if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if(!has(it, META)){\n // can't set metadata to uncaught frozen object\n if(!isExtensible(it))return 'F';\n // not necessary to add metadata\n if(!create)return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function(it, create){\n if(!has(it, META)){\n // can't set metadata to uncaught frozen object\n if(!isExtensible(it))return true;\n // not necessary to add metadata\n if(!create)return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function(it){\n if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};","var getKeys = require('./_object-keys')\n , toIObject = require('./_to-iobject');\nmodule.exports = function(object, el){\n var O = toIObject(object)\n , keys = getKeys(O)\n , length = keys.length\n , index = 0\n , key;\n while(length > index)if(O[key = keys[index++]] === el)return key;\n};","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys')\n , gOPS = require('./_object-gops')\n , pIE = require('./_object-pie');\nmodule.exports = function(it){\n var result = getKeys(it)\n , getSymbols = gOPS.f;\n if(getSymbols){\n var symbols = getSymbols(it)\n , isEnum = pIE.f\n , i = 0\n , key;\n while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key);\n } return result;\n};","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg){\n return cof(arg) == 'Array';\n};","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject')\n , gOPN = require('./_object-gopn').f\n , toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function(it){\n try {\n return gOPN(it);\n } catch(e){\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it){\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","require('./_wks-define')('asyncIterator');","require('./_wks-define')('observable');","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc){\n return $Object.defineProperty(it, key, desc);\n};","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', {defineProperty: require('./_object-dp').f});","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', {setPrototypeOf: require('./_set-proto').set});","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object')\n , anObject = require('./_an-object');\nvar check = function(O, proto){\n anObject(O);\n if(!isObject(proto) && proto !== null)throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function(test, buggy, set){\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch(e){ buggy = true; }\n return function setPrototypeOf(O, proto){\n check(O, proto);\n if(buggy)O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D){\n return $Object.create(P, D);\n};","var $export = require('./_export')\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', {create: require('./_object-create')});","module.exports = { \"default\": require(\"core-js/library/fn/object/get-own-property-descriptor\"), __esModule: true };","require('../../modules/es6.object.get-own-property-descriptor');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function getOwnPropertyDescriptor(it, key){\n return $Object.getOwnPropertyDescriptor(it, key);\n};","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject')\n , $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function(){\n return function getOwnPropertyDescriptor(it, key){\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * Array.prototype.find\n *\n * Original source : https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/find\n * See also : https://tc39.github.io/ecma262/#sec-array.prototype.find\n */\nif (!Array.prototype.find) {\n // eslint-disable-next-line\n Object.defineProperty(Array.prototype, 'find', {\n // Note: ES6 arrow function syntax is not used on purpose to avoid this to be undefined\n value: function(predicate) {\n // 1. Let O be ? ToObject(this value).\n if (this == null)\n throw new TypeError('\"this\" is null or not defined')\n\n\n let o = Object(this)\n\n // 2. Let len be ? ToLength(? Get(O, \"length\")).\n let len = o.length >>> 0\n\n // 3. If IsCallable(predicate) is false, throw a TypeError exception.\n if (typeof predicate !== 'function')\n throw new TypeError('predicate must be a function')\n\n\n // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.\n let thisArg = arguments[1]\n\n // 5. Let k be 0.\n let k = 0\n\n // 6. Repeat, while k < len\n while (k < len) {\n // a. Let Pk be ! ToString(k).\n // b. Let kValue be ? Get(O, Pk).\n // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).\n // d. If testResult is true, return kValue.\n let kValue = o[k]\n if (predicate.call(thisArg, kValue, k, o))\n return kValue\n\n // e. Increase k by 1.\n k++\n }\n\n // 7. Return undefined.\n return undefined\n }\n })\n}\n","import $ from 'clappr-zepto'\nimport BROWSER_DATA from './browser_data'\nimport OS_DATA from './os_data'\n\nconst Browser = {}\n\nconst hasLocalstorage = function() {\n try {\n localStorage.setItem('clappr', 'clappr')\n localStorage.removeItem('clappr')\n return true\n } catch (e) {\n return false\n }\n}\n\nconst hasFlash = function() {\n try {\n const fo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash')\n return !!fo\n } catch (e) {\n return !!(navigator.mimeTypes && navigator.mimeTypes['application/x-shockwave-flash'] !== undefined &&\n navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin)\n }\n}\n\nexport const getBrowserInfo = function(ua) {\n let parts = ua.match(/\\b(playstation 4|nx|opera|chrome|safari|firefox|msie|trident(?=\\/))\\/?\\s*(\\d+)/i) || [],\n extra\n if (/trident/i.test(parts[1])) {\n extra = /\\brv[ :]+(\\d+)/g.exec(ua) || []\n return {\n name: 'IE',\n version: parseInt(extra[1] || '')\n }\n } else if (parts[1] === 'Chrome') {\n extra = ua.match(/\\bOPR\\/(\\d+)/)\n if (extra != null) return { name: 'Opera', version: parseInt(extra[1]) }\n\n extra = ua.match(/\\bEdge\\/(\\d+)/)\n if (extra != null) return { name: 'Edge', version: parseInt(extra[1]) }\n\n } else if (/android/i.test(ua) && (extra = ua.match(/version\\/(\\d+)/i))) {\n parts.splice(1, 1, 'Android WebView')\n parts.splice(2, 1, extra[1])\n }\n parts = parts[2] ? [parts[1], parts[2]] : [navigator.appName, navigator.appVersion, '-?']\n\n return {\n name: parts[0],\n version: parseInt(parts[1])\n }\n}\n\n// Get browser data\nexport const getBrowserData = function() {\n let browserObject = {}\n let userAgent = Browser.userAgent.toLowerCase()\n\n // Check browser type\n for (let browser of BROWSER_DATA) {\n let browserRegExp = new RegExp(browser.identifier.toLowerCase())\n let browserRegExpResult = browserRegExp.exec(userAgent)\n\n if (browserRegExpResult != null && browserRegExpResult[1]) {\n browserObject.name = browser.name\n browserObject.group = browser.group\n\n // Check version\n if (browser.versionIdentifier) {\n let versionRegExp = new RegExp(browser.versionIdentifier.toLowerCase())\n let versionRegExpResult = versionRegExp.exec(userAgent)\n\n if (versionRegExpResult != null && versionRegExpResult[1])\n setBrowserVersion(versionRegExpResult[1], browserObject)\n\n } else {\n setBrowserVersion(browserRegExpResult[1], browserObject)\n }\n break\n }\n }\n return browserObject\n}\n\n// Set browser version\nconst setBrowserVersion = function(version, browserObject) {\n let splitVersion = version.split('.', 2)\n browserObject.fullVersion = version\n\n // Major version\n if (splitVersion[0]) browserObject.majorVersion = parseInt(splitVersion[0])\n\n // Minor version\n if (splitVersion[1]) browserObject.minorVersion = parseInt(splitVersion[1])\n}\n\n// Get OS data\nexport const getOsData = function() {\n let osObject = {}\n let userAgent = Browser.userAgent.toLowerCase()\n\n // Check browser type\n for (let os of OS_DATA) {\n let osRegExp = new RegExp(os.identifier.toLowerCase())\n let osRegExpResult = osRegExp.exec(userAgent)\n\n if (osRegExpResult != null) {\n osObject.name = os.name\n osObject.group = os.group\n\n // Version defined\n if (os.version) {\n setOsVersion(os.version, (os.versionSeparator) ? os.versionSeparator : '.', osObject)\n\n // Version detected\n } else if (osRegExpResult[1]) {\n setOsVersion(osRegExpResult[1], (os.versionSeparator) ? os.versionSeparator : '.', osObject)\n\n // Version identifier\n } else if (os.versionIdentifier) {\n let versionRegExp = new RegExp(os.versionIdentifier.toLowerCase())\n let versionRegExpResult = versionRegExp.exec(userAgent)\n\n if (versionRegExpResult != null && versionRegExpResult[1])\n setOsVersion(versionRegExpResult[1], (os.versionSeparator) ? os.versionSeparator : '.', osObject)\n\n }\n break\n }\n }\n return osObject\n}\n\n// Set OS version\nconst setOsVersion = function(version, separator, osObject) {\n let finalSeparator = separator.substr(0, 1) == '[' ? new RegExp(separator, 'g') : separator\n const splitVersion = version.split(finalSeparator, 2)\n\n if (separator != '.') version = version.replace(new RegExp(separator, 'g'), '.')\n\n osObject.fullVersion = version\n\n // Major version\n if (splitVersion && splitVersion[0])\n osObject.majorVersion = parseInt(splitVersion[0])\n\n // Minor version\n if (splitVersion && splitVersion[1])\n osObject.minorVersion = parseInt(splitVersion[1])\n}\n\n// Set viewport size\nexport const getViewportSize = function() {\n let viewportObject = {}\n\n viewportObject.width = $(window).width()\n viewportObject.height = $(window).height()\n\n return viewportObject\n}\n\n// Set viewport orientation\nconst setViewportOrientation = function() {\n switch (window.orientation) {\n case -90:\n case 90:\n Browser.viewport.orientation = 'landscape'\n break\n default:\n Browser.viewport.orientation = 'portrait'\n break\n }\n}\n\nexport const getDevice = function(ua) {\n let platformRegExp = /\\((iP(?:hone|ad|od))?(?:[^;]*; ){0,2}([^)]+(?=\\)))/\n let matches = platformRegExp.exec(ua)\n let device = matches && (matches[1] || matches[2]) || ''\n return device\n}\n\nconst browserInfo = getBrowserInfo(navigator.userAgent)\n\nBrowser.isEdge = /edge/i.test(navigator.userAgent)\nBrowser.isChrome = /chrome|CriOS/i.test(navigator.userAgent) && !Browser.isEdge\nBrowser.isSafari = /safari/i.test(navigator.userAgent) && !Browser.isChrome && !Browser.isEdge\nBrowser.isFirefox = /firefox/i.test(navigator.userAgent)\nBrowser.isLegacyIE = !!(window.ActiveXObject)\nBrowser.isIE = Browser.isLegacyIE || /trident.*rv:1\\d/i.test(navigator.userAgent)\nBrowser.isIE11 = /trident.*rv:11/i.test(navigator.userAgent)\nBrowser.isChromecast = Browser.isChrome && /CrKey/i.test(navigator.userAgent)\nBrowser.isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|Windows Phone|IEMobile|Mobile Safari|Opera Mini/i.test(navigator.userAgent)\nBrowser.isiOS = /iPad|iPhone|iPod/i.test(navigator.userAgent)\nBrowser.isAndroid = /Android/i.test(navigator.userAgent)\nBrowser.isWindowsPhone = /Windows Phone/i.test(navigator.userAgent)\nBrowser.isWin8App = /MSAppHost/i.test(navigator.userAgent)\nBrowser.isWiiU = /WiiU/i.test(navigator.userAgent)\nBrowser.isPS4 = /PlayStation 4/i.test(navigator.userAgent)\nBrowser.hasLocalstorage = hasLocalstorage()\nBrowser.hasFlash = hasFlash()\n\n/**\n* @deprecated\n* This parameter currently exists for retrocompatibility reasons.\n* Use Browser.data.name instead.\n*/\nBrowser.name = browserInfo.name\n\n/**\n* @deprecated\n* This parameter currently exists for retrocompatibility reasons.\n* Use Browser.data.fullVersion instead.\n*/\nBrowser.version = browserInfo.version\n\nBrowser.userAgent = navigator.userAgent\nBrowser.data = getBrowserData()\nBrowser.os = getOsData()\nBrowser.viewport = getViewportSize()\nBrowser.device = getDevice(Browser.userAgent)\ntypeof window.orientation !== 'undefined' && setViewportOrientation()\n\nexport default Browser\n","module.exports = { \"default\": require(\"core-js/library/fn/get-iterator\"), __esModule: true };","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.get-iterator');","var anObject = require('./_an-object')\n , get = require('./core.get-iterator-method');\nmodule.exports = require('./_core').getIterator = function(it){\n var iterFn = get(it);\n if(typeof iterFn != 'function')throw TypeError(it + ' is not iterable!');\n return anObject(iterFn.call(it));\n};","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof')\n , TAG = require('./_wks')('toStringTag')\n // ES3 wrong here\n , ARG = cof(function(){ return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function(it, key){\n try {\n return it[key];\n } catch(e){ /* empty */ }\n};\n\nmodule.exports = function(it){\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};","/* eslint-disable no-useless-escape */\n// The order of the following arrays is important, be careful if you change it.\n\nconst BROWSER_DATA = [{\n name: 'Chromium',\n group: 'Chrome',\n identifier: 'Chromium/([0-9\\.]*)'\n}, {\n name: 'Chrome Mobile',\n group: 'Chrome',\n identifier: 'Chrome/([0-9\\.]*) Mobile',\n versionIdentifier: 'Chrome/([0-9\\.]*)'\n}, {\n name: 'Chrome',\n group: 'Chrome',\n identifier: 'Chrome/([0-9\\.]*)'\n}, {\n name: 'Chrome for iOS',\n group: 'Chrome',\n identifier: 'CriOS/([0-9\\.]*)'\n}, {\n name: 'Android Browser',\n group: 'Chrome',\n identifier: 'CrMo/([0-9\\.]*)'\n}, {\n name: 'Firefox',\n group: 'Firefox',\n identifier: 'Firefox/([0-9\\.]*)'\n}, {\n name: 'Opera Mini',\n group: 'Opera',\n identifier: 'Opera Mini/([0-9\\.]*)'\n}, {\n name: 'Opera',\n group: 'Opera',\n identifier: 'Opera ([0-9\\.]*)'\n}, {\n name: 'Opera',\n group: 'Opera',\n identifier: 'Opera/([0-9\\.]*)',\n versionIdentifier: 'Version/([0-9\\.]*)'\n}, {\n name: 'IEMobile',\n group: 'Explorer',\n identifier: 'IEMobile/([0-9\\.]*)'\n}, {\n name: 'Internet Explorer',\n group: 'Explorer',\n identifier: 'MSIE ([a-zA-Z0-9\\.]*)'\n}, {\n name: 'Internet Explorer',\n group: 'Explorer',\n identifier: 'Trident/([0-9\\.]*)',\n versionIdentifier: 'rv:([0-9\\.]*)'\n}, {\n name: 'Spartan',\n group: 'Spartan',\n identifier: 'Edge/([0-9\\.]*)',\n versionIdentifier: 'Edge/([0-9\\.]*)'\n}, {\n name: 'Safari',\n group: 'Safari',\n identifier: 'Safari/([0-9\\.]*)',\n versionIdentifier: 'Version/([0-9\\.]*)'\n}]\n\nexport default BROWSER_DATA\n","/* eslint-disable no-useless-escape */\n// The order of the following arrays is important, be careful if you change it.\n\nconst OS_DATA = [{\n name: 'Windows 2000',\n group: 'Windows',\n identifier: 'Windows NT 5.0',\n version: '5.0'\n}, {\n name: 'Windows XP',\n group: 'Windows',\n identifier: 'Windows NT 5.1',\n version: '5.1'\n}, {\n name: 'Windows Vista',\n group: 'Windows',\n identifier: 'Windows NT 6.0',\n version: '6.0'\n}, {\n name: 'Windows 7',\n group: 'Windows',\n identifier: 'Windows NT 6.1',\n version: '7.0'\n}, {\n name: 'Windows 8',\n group: 'Windows',\n identifier: 'Windows NT 6.2',\n version: '8.0'\n}, {\n name: 'Windows 8.1',\n group: 'Windows',\n identifier: 'Windows NT 6.3',\n version: '8.1'\n}, {\n name: 'Windows 10',\n group: 'Windows',\n identifier: 'Windows NT 10.0',\n version: '10.0'\n}, {\n name: 'Windows Phone',\n group: 'Windows Phone',\n identifier: 'Windows Phone ([0-9\\.]*)'\n}, {\n name: 'Windows Phone',\n group: 'Windows Phone',\n identifier: 'Windows Phone OS ([0-9\\.]*)'\n}, {\n name: 'Windows',\n group: 'Windows',\n identifier: 'Windows'\n}, {\n name: 'Chrome OS',\n group: 'Chrome OS',\n identifier: 'CrOS'\n}, {\n name: 'Android',\n group: 'Android',\n identifier: 'Android',\n versionIdentifier: 'Android ([a-zA-Z0-9\\.-]*)'\n}, {\n name: 'iPad',\n group: 'iOS',\n identifier: 'iPad',\n versionIdentifier: 'OS ([0-9_]*)',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'iPod',\n group: 'iOS',\n identifier: 'iPod',\n versionIdentifier: 'OS ([0-9_]*)',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'iPhone',\n group: 'iOS',\n identifier: 'iPhone OS',\n versionIdentifier: 'OS ([0-9_]*)',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X High Sierra',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])13([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Sierra',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])12([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X El Capitan',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])11([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Yosemite',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])10([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Mavericks',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])9([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Mountain Lion',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])8([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Lion',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])7([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Snow Leopard',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])6([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Leopard',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])5([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Tiger',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])4([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Panther',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])3([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Jaguar',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])2([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Puma',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])1([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Cheetah',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])0([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS',\n group: 'Mac OS',\n identifier: 'Mac OS'\n}, {\n name: 'Ubuntu',\n group: 'Linux',\n identifier: 'Ubuntu',\n versionIdentifier: 'Ubuntu/([0-9\\.]*)'\n}, {\n name: 'Debian',\n group: 'Linux',\n identifier: 'Debian'\n}, {\n name: 'Gentoo',\n group: 'Linux',\n identifier: 'Gentoo'\n}, {\n name: 'Linux',\n group: 'Linux',\n identifier: 'Linux'\n}, {\n name: 'BlackBerry',\n group: 'BlackBerry',\n identifier: 'BlackBerry'\n}]\n\nexport default OS_DATA\n","// https://github.com/mathiasbynens/small\nexport const mp4 = 'data:video/mp4;base64,AAAAHGZ0eXBpc29tAAACAGlzb21pc28ybXA0MQAAAAhmcmVlAAAC721kYXQhEAUgpBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3pwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcCEQBSCkG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADengAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAsJtb292AAAAbG12aGQAAAAAAAAAAAAAAAAAAAPoAAAALwABAAABAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAB7HRyYWsAAABcdGtoZAAAAAMAAAAAAAAAAAAAAAIAAAAAAAAALwAAAAAAAAAAAAAAAQEAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAACRlZHRzAAAAHGVsc3QAAAAAAAAAAQAAAC8AAAAAAAEAAAAAAWRtZGlhAAAAIG1kaGQAAAAAAAAAAAAAAAAAAKxEAAAIAFXEAAAAAAAtaGRscgAAAAAAAAAAc291bgAAAAAAAAAAAAAAAFNvdW5kSGFuZGxlcgAAAAEPbWluZgAAABBzbWhkAAAAAAAAAAAAAAAkZGluZgAAABxkcmVmAAAAAAAAAAEAAAAMdXJsIAAAAAEAAADTc3RibAAAAGdzdHNkAAAAAAAAAAEAAABXbXA0YQAAAAAAAAABAAAAAAAAAAAAAgAQAAAAAKxEAAAAAAAzZXNkcwAAAAADgICAIgACAASAgIAUQBUAAAAAAfQAAAHz+QWAgIACEhAGgICAAQIAAAAYc3R0cwAAAAAAAAABAAAAAgAABAAAAAAcc3RzYwAAAAAAAAABAAAAAQAAAAIAAAABAAAAHHN0c3oAAAAAAAAAAAAAAAIAAAFzAAABdAAAABRzdGNvAAAAAAAAAAEAAAAsAAAAYnVkdGEAAABabWV0YQAAAAAAAAAhaGRscgAAAAAAAAAAbWRpcmFwcGwAAAAAAAAAAAAAAAAtaWxzdAAAACWpdG9vAAAAHWRhdGEAAAABAAAAAExhdmY1Ni40MC4xMDE='\n\nexport default {\n mp4: mp4,\n}\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport playIcon from '../icons/01-play.svg'\nimport pauseIcon from '../icons/02-pause.svg'\nimport stopIcon from '../icons/03-stop.svg'\nimport volumeIcon from '../icons/04-volume.svg'\nimport volumeMuteIcon from '../icons/05-mute.svg'\nimport fullscreenIcon from '../icons/06-expand.svg'\nimport exitFullscreenIcon from '../icons/07-shrink.svg'\nimport hdIcon from '../icons/08-hd.svg'\nimport ccIcon from '../icons/09-cc.svg'\nimport reloadIcon from '../icons/10-reload.svg'\n\nexport let cc = ccIcon\nexport let exitFullscreen = exitFullscreenIcon\nexport let fullscreen = fullscreenIcon\nexport let hd = hdIcon\nexport let pause = pauseIcon\nexport let play = playIcon\nexport let reload = reloadIcon\nexport let stop = stopIcon\nexport let volume = volumeIcon\nexport let volumeMute = volumeMuteIcon\n\nexport default {\n cc: ccIcon,\n exitFullscreen: exitFullscreenIcon,\n fullscreen: fullscreenIcon,\n hd: hdIcon,\n pause: pauseIcon,\n play: playIcon,\n reload: reloadIcon,\n stop: stopIcon,\n volume: volumeIcon,\n volumeMute: volumeMuteIcon,\n}\n","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\"><path fill=\\\"#010101\\\" d=\\\"M1.425.35L14.575 8l-13.15 7.65V.35z\\\"></path></svg>\"","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\"><path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" fill=\\\"#010101\\\" d=\\\"M1.712 14.76H6.43V1.24H1.71v13.52zm7.86-13.52v13.52h4.716V1.24H9.573z\\\"></path></svg>\"","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\"><path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" fill=\\\"#010101\\\" d=\\\"M1.712 1.24h12.6v13.52h-12.6z\\\"></path></svg>\"","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\"><path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" fill=\\\"#010101\\\" d=\\\"M11.5 11h-.002v1.502L7.798 10H4.5V6h3.297l3.7-2.502V4.5h.003V11zM11 4.49L7.953 6.5H5v3h2.953L11 11.51V4.49z\\\"></path></svg>\"","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\"><path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" fill=\\\"#010101\\\" d=\\\"M9.75 11.51L6.7 9.5H3.75v-3H6.7L9.75 4.49v.664l.497.498V3.498L6.547 6H3.248v4h3.296l3.7 2.502v-2.154l-.497.5v.662zm3-5.165L12.404 6l-1.655 1.653L9.093 6l-.346.345L10.402 8 8.747 9.654l.346.347 1.655-1.653L12.403 10l.348-.346L11.097 8l1.655-1.655z\\\"></path></svg>\"","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\"><path fill=\\\"#010101\\\" d=\\\"M7.156 8L4 11.156V8.5H3V13h4.5v-1H4.844L8 8.844 7.156 8zM8.5 3v1h2.657L8 7.157 8.846 8 12 4.844V7.5h1V3H8.5z\\\"></path></svg>\"","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\"><path fill=\\\"#010101\\\" d=\\\"M13.5 3.344l-.844-.844L9.5 5.656V3h-1v4.5H13v-1h-2.656L13.5 3.344zM3 9.5h2.656L2.5 12.656l.844.844L6.5 10.344V13h1V8.5H3v1z\\\"></path></svg>\"","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\"><path fill=\\\"#010101\\\" d=\\\"M5.375 7.062H2.637V4.26H.502v7.488h2.135V8.9h2.738v2.848h2.133V4.26H5.375v2.802zm5.97-2.81h-2.84v7.496h2.798c2.65 0 4.195-1.607 4.195-3.77v-.022c0-2.162-1.523-3.704-4.154-3.704zm2.06 3.758c0 1.21-.81 1.896-2.03 1.896h-.83V6.093h.83c1.22 0 2.03.696 2.03 1.896v.02z\\\"></path></svg>\"","module.exports = \"<svg version=\\\"1.1\\\" id=\\\"Layer_1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 49 41.8\\\" style=\\\"enable-background:new 0 0 49 41.8;\\\" xml:space=\\\"preserve\\\"><path d=\\\"M47.1,0H3.2C1.6,0,0,1.2,0,2.8v31.5C0,35.9,1.6,37,3.2,37h11.9l3.2,1.9l4.7,2.7c0.9,0.5,2-0.1,2-1.1V37h22.1 c1.6,0,1.9-1.1,1.9-2.7V2.8C49,1.2,48.7,0,47.1,0z M7.2,18.6c0-4.8,3.5-9.3,9.9-9.3c4.8,0,7.1,2.7,7.1,2.7l-2.5,4 c0,0-1.7-1.7-4.2-1.7c-2.8,0-4.3,2.1-4.3,4.3c0,2.1,1.5,4.4,4.5,4.4c2.5,0,4.9-2.1,4.9-2.1l2.2,4.2c0,0-2.7,2.9-7.6,2.9 C10.8,27.9,7.2,23.5,7.2,18.6z M36.9,27.9c-6.4,0-9.9-4.4-9.9-9.3c0-4.8,3.5-9.3,9.9-9.3C41.7,9.3,44,12,44,12l-2.5,4 c0,0-1.7-1.7-4.2-1.7c-2.8,0-4.3,2.1-4.3,4.3c0,2.1,1.5,4.4,4.5,4.4c2.5,0,4.9-2.1,4.9-2.1l2.2,4.2C44.5,25,41.9,27.9,36.9,27.9z\\\"></path></svg>\"","module.exports = \"<svg fill=\\\"#FFFFFF\\\" viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z\\\"></path><path d=\\\"M0 0h24v24H0z\\\" fill=\\\"none\\\"></path></svg>\"","\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { Kibo } from '../../vendor'\n\nconst BOLD = 'font-weight: bold; font-size: 13px;'\nconst INFO = 'color: #006600;' + BOLD\nconst DEBUG = 'color: #0000ff;' + BOLD\nconst WARN = 'color: #ff8000;' + BOLD\nconst ERROR = 'color: #ff0000;' + BOLD\n\nconst LEVEL_DEBUG = 0\nconst LEVEL_INFO = 1\nconst LEVEL_WARN = 2\nconst LEVEL_ERROR = 3\nconst LEVEL_DISABLED = LEVEL_ERROR\n\nconst COLORS = [DEBUG, INFO, WARN, ERROR, ERROR]\nconst DESCRIPTIONS = ['debug', 'info', 'warn', 'error', 'disabled']\n\nexport default class Log {\n constructor(level = LEVEL_INFO, offLevel = LEVEL_DISABLED) {\n this.kibo = new Kibo()\n this.kibo.down(['ctrl shift d'], () => this.onOff())\n this.BLACKLIST = ['timeupdate', 'playback:timeupdate', 'playback:progress', 'container:hover', 'container:timeupdate', 'container:progress']\n this.level = level\n this.offLevel = offLevel\n }\n\n debug(klass) { this.log(klass, LEVEL_DEBUG, Array.prototype.slice.call(arguments, 1)) }\n info(klass) { this.log(klass, LEVEL_INFO, Array.prototype.slice.call(arguments, 1)) }\n warn(klass) { this.log(klass, LEVEL_WARN, Array.prototype.slice.call(arguments, 1)) }\n error(klass) { this.log(klass, LEVEL_ERROR, Array.prototype.slice.call(arguments, 1)) }\n\n onOff() {\n if (this.level === this.offLevel) { this.level = this.previousLevel } else {\n this.previousLevel = this.level\n this.level = this.offLevel\n }\n // handle instances where console.log is unavailable\n if (window.console && window.console.log)\n window.console.log('%c[Clappr.Log] set log level to ' + DESCRIPTIONS[this.level], WARN)\n\n }\n\n level(newLevel) {\n this.level = newLevel\n }\n\n log(klass, level, message) {\n if (this.BLACKLIST.indexOf(message[0]) >= 0) return\n if (level < this.level) return\n\n if (!message) {\n message = klass\n klass = null\n }\n const color = COLORS[level]\n let klassDescription = ''\n if (klass)\n klassDescription = '[' + klass + ']'\n\n if (window.console && window.console.log)\n window.console.log.apply(console, ['%c[' + DESCRIPTIONS[level] + ']' + klassDescription, color].concat(message))\n\n }\n}\n\nLog.LEVEL_DEBUG = LEVEL_DEBUG\nLog.LEVEL_INFO = LEVEL_INFO\nLog.LEVEL_WARN = LEVEL_WARN\nLog.LEVEL_ERROR = LEVEL_ERROR\n\nLog.getInstance = function() {\n if (this._instance === undefined) {\n this._instance = new this()\n this._instance.previousLevel = this._instance.level\n this._instance.level = this._instance.offLevel\n }\n return this._instance\n}\n\nLog.setLevel = function(level) { this.getInstance().level = level }\n\nLog.debug = function() { this.getInstance().debug.apply(this.getInstance(), arguments) }\nLog.info = function() { this.getInstance().info.apply(this.getInstance(), arguments) }\nLog.warn = function() { this.getInstance().warn.apply(this.getInstance(), arguments) }\nLog.error = function() { this.getInstance().error.apply(this.getInstance(), arguments) }\n","/* eslint-disable */\n// Kibo is released under the MIT License. Copyright (c) 2013 marquete.\n// see https://github.com/marquete/kibo\n\nvar Kibo = function(element) {\n this.element = element || window.document;\n this.initialize();\n};\n\nKibo.KEY_NAMES_BY_CODE = {\n 8: 'backspace', 9: 'tab', 13: 'enter',\n 16: 'shift', 17: 'ctrl', 18: 'alt',\n 20: 'caps_lock',\n 27: 'esc',\n 32: 'space',\n 37: 'left', 38: 'up', 39: 'right', 40: 'down',\n 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5', 54: '6', 55: '7', 56: '8', 57: '9',\n 65: 'a', 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h', 73: 'i', 74: 'j',\n 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o', 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't',\n 85: 'u', 86: 'v', 87: 'w', 88: 'x', 89: 'y', 90: 'z', 112: 'f1', 113: 'f2', 114: 'f3',\n 115: 'f4', 116: 'f5', 117: 'f6', 118: 'f7', 119: 'f8', 120: 'f9', 121: 'f10', 122: 'f11', 123: 'f12'\n};\n\nKibo.KEY_CODES_BY_NAME = {};\n(function() {\n for(var key in Kibo.KEY_NAMES_BY_CODE) {\n if(Object.prototype.hasOwnProperty.call(Kibo.KEY_NAMES_BY_CODE, key)) {\n Kibo.KEY_CODES_BY_NAME[Kibo.KEY_NAMES_BY_CODE[key]] = +key;\n }\n }\n})();\n\nKibo.MODIFIERS = ['shift', 'ctrl', 'alt'];\n\nKibo.registerEvent = (function() {\n if(document.addEventListener) {\n return function(element, eventName, func) {\n element.addEventListener(eventName, func, false);\n };\n }\n else if(document.attachEvent) {\n return function(element, eventName, func) {\n element.attachEvent('on' + eventName, func);\n };\n }\n})();\n\nKibo.unregisterEvent = (function() {\n if(document.removeEventListener) {\n return function(element, eventName, func) {\n element.removeEventListener(eventName, func, false);\n };\n }\n else if(document.detachEvent) {\n return function(element, eventName, func) {\n element.detachEvent('on' + eventName, func);\n };\n }\n})();\n\nKibo.stringContains = function(string, substring) {\n return string.indexOf(substring) !== -1;\n};\n\nKibo.neatString = function(string) {\n return string.replace(/^\\s+|\\s+$/g, '').replace(/\\s+/g, ' ');\n};\n\nKibo.capitalize = function(string) {\n return string.toLowerCase().replace(/^./, function(match) { return match.toUpperCase(); });\n};\n\nKibo.isString = function(what) {\n return Kibo.stringContains(Object.prototype.toString.call(what), 'String');\n};\n\nKibo.arrayIncludes = (function() {\n if(Array.prototype.indexOf) {\n return function(haystack, needle) {\n return haystack.indexOf(needle) !== -1;\n };\n }\n else {\n return function(haystack, needle) {\n for(var i = 0; i < haystack.length; i++) {\n if(haystack[i] === needle) {\n return true;\n }\n }\n return false;\n };\n }\n})();\n\nKibo.extractModifiers = function(keyCombination) {\n var modifiers, i\n modifiers = [];\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n if(Kibo.stringContains(keyCombination, Kibo.MODIFIERS[i])) {\n modifiers.push(Kibo.MODIFIERS[i]);\n }\n }\n return modifiers;\n}\n\nKibo.extractKey = function(keyCombination) {\n var keys, i;\n keys = Kibo.neatString(keyCombination).split(' ');\n for(i = 0; i < keys.length; i++) {\n if(!Kibo.arrayIncludes(Kibo.MODIFIERS, keys[i])) {\n return keys[i];\n }\n }\n};\n\nKibo.modifiersAndKey = function(keyCombination) {\n var result, key;\n\n if(Kibo.stringContains(keyCombination, 'any')) {\n return Kibo.neatString(keyCombination).split(' ').slice(0, 2).join(' ');\n }\n\n result = Kibo.extractModifiers(keyCombination);\n\n key = Kibo.extractKey(keyCombination);\n if(key && !Kibo.arrayIncludes(Kibo.MODIFIERS, key)) {\n result.push(key);\n }\n\n return result.join(' ');\n}\n\nKibo.keyName = function(keyCode) {\n return Kibo.KEY_NAMES_BY_CODE[keyCode + ''];\n};\n\nKibo.keyCode = function(keyName) {\n return +Kibo.KEY_CODES_BY_NAME[keyName];\n};\n\nKibo.prototype.initialize = function() {\n var i, that = this;\n\n this.lastKeyCode = -1;\n this.lastModifiers = {};\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n this.lastModifiers[Kibo.MODIFIERS[i]] = false;\n }\n\n this.keysDown = { any: [] };\n this.keysUp = { any: [] };\n this.downHandler = this.handler('down');\n this.upHandler = this.handler('up');\n\n Kibo.registerEvent(this.element, 'keydown', this.downHandler);\n Kibo.registerEvent(this.element, 'keyup', this.upHandler);\n Kibo.registerEvent(window, 'unload', function unloader() {\n Kibo.unregisterEvent(that.element, 'keydown', that.downHandler);\n Kibo.unregisterEvent(that.element, 'keyup', that.upHandler);\n Kibo.unregisterEvent(window, 'unload', unloader);\n });\n};\n\nKibo.prototype.handler = function(upOrDown) {\n var that = this;\n return function(e) {\n var i, registeredKeys, lastModifiersAndKey;\n\n e = e || window.event;\n\n that.lastKeyCode = e.keyCode;\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n that.lastModifiers[Kibo.MODIFIERS[i]] = e[Kibo.MODIFIERS[i] + 'Key'];\n }\n if(Kibo.arrayIncludes(Kibo.MODIFIERS, Kibo.keyName(that.lastKeyCode))) {\n that.lastModifiers[Kibo.keyName(that.lastKeyCode)] = true;\n }\n\n registeredKeys = that['keys' + Kibo.capitalize(upOrDown)];\n\n for(i = 0; i < registeredKeys.any.length; i++) {\n if((registeredKeys.any[i](e) === false) && e.preventDefault) {\n e.preventDefault();\n }\n }\n\n lastModifiersAndKey = that.lastModifiersAndKey();\n if(registeredKeys[lastModifiersAndKey]) {\n for(i = 0; i < registeredKeys[lastModifiersAndKey].length; i++) {\n if((registeredKeys[lastModifiersAndKey][i](e) === false) && e.preventDefault) {\n e.preventDefault();\n }\n }\n }\n };\n};\n\nKibo.prototype.registerKeys = function(upOrDown, newKeys, func) {\n var i, keys, registeredKeys = this['keys' + Kibo.capitalize(upOrDown)];\n\n if(Kibo.isString(newKeys)) {\n newKeys = [newKeys];\n }\n\n for(i = 0; i < newKeys.length; i++) {\n keys = newKeys[i];\n keys = Kibo.modifiersAndKey(keys + '');\n\n if(registeredKeys[keys]) {\n registeredKeys[keys].push(func);\n } else {\n registeredKeys[keys] = [func];\n }\n }\n\n return this;\n};\n\n// jshint maxdepth:5\nKibo.prototype.unregisterKeys = function(upOrDown, newKeys, func) {\n var i, j, keys, registeredKeys = this['keys' + Kibo.capitalize(upOrDown)];\n\n if(Kibo.isString(newKeys)) {\n newKeys = [newKeys];\n }\n\n for(i = 0; i < newKeys.length; i++) {\n keys = newKeys[i];\n keys = Kibo.modifiersAndKey(keys + '');\n\n if(func === null) {\n delete registeredKeys[keys];\n } else {\n if(registeredKeys[keys]) {\n for(j = 0; j < registeredKeys[keys].length; j++) {\n if(String(registeredKeys[keys][j]) === String(func)) {\n registeredKeys[keys].splice(j, 1);\n break;\n }\n }\n }\n }\n }\n\n return this;\n};\n\nKibo.prototype.off = function(keys) {\n return this.unregisterKeys('down', keys, null);\n}\n\nKibo.prototype.delegate = function(upOrDown, keys, func) {\n return (func !== null || func !== undefined) ? this.registerKeys(upOrDown, keys, func) : this.unregisterKeys(upOrDown, keys, func);\n};\n\nKibo.prototype.down = function(keys, func) {\n return this.delegate('down', keys, func);\n};\n\nKibo.prototype.up = function(keys, func) {\n return this.delegate('up', keys, func);\n};\n\nKibo.prototype.lastKey = function(modifier) {\n if(!modifier) {\n return Kibo.keyName(this.lastKeyCode);\n }\n\n return this.lastModifiers[modifier];\n};\n\nKibo.prototype.lastModifiersAndKey = function() {\n var result, i;\n\n result = [];\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n if(this.lastKey(Kibo.MODIFIERS[i])) {\n result.push(Kibo.MODIFIERS[i]);\n }\n }\n\n if(!Kibo.arrayIncludes(result, this.lastKey())) {\n result.push(this.lastKey());\n }\n\n return result.join(' ');\n};\n\nexport default Kibo\n","import CoreFactory from './core_factory'\nexport default CoreFactory\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport BaseObject from '../../base/base_object'\nimport Core from '../core'\n\n/**\n * The Core Factory is responsible for instantiate the core and it's plugins.\n * @class CoreFactory\n * @constructor\n * @extends BaseObject\n * @module components\n */\nexport default class CoreFactory extends BaseObject {\n\n get loader() { return this.player.loader }\n\n /**\n * it builds the core factory\n * @method constructor\n * @param {Player} player the player object\n */\n constructor(player) {\n super()\n this.player = player\n this._options = player.options\n }\n\n /**\n * creates a core and its plugins\n * @method create\n * @return {Core} created core\n */\n create() {\n this.options.loader = this.loader\n this.core = new Core(this.options)\n this.addCorePlugins()\n this.core.createContainers(this.options)\n return this.core\n }\n\n /**\n * given the core plugins (`loader.corePlugins`) it builds each one\n * @method addCorePlugins\n * @return {Core} the core with all plugins\n */\n addCorePlugins() {\n this.loader.corePlugins.forEach((Plugin) => {\n const plugin = new Plugin(this.core)\n this.core.addPlugin(plugin)\n this.setupExternalInterface(plugin)\n })\n return this.core\n }\n\n setupExternalInterface(plugin) {\n const externalFunctions = plugin.getExternalInterface()\n for (const key in externalFunctions) {\n this.player[key] = externalFunctions[key].bind(plugin)\n this.core[key] = externalFunctions[key].bind(plugin)\n }\n\n }\n}\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { isNumber, Fullscreen, DomRecycler } from '../../base/utils'\n\nimport Styler from '../../base/styler'\nimport Events from '../../base/events'\nimport UIObject from '../../base/ui_object'\nimport UICorePlugin from '../../base/ui_core_plugin'\nimport Browser from '../../components/browser'\nimport ContainerFactory from '../../components/container_factory'\nimport Mediator from '../../components/mediator'\nimport PlayerInfo from '../../components/player_info'\nimport PlayerError from '../../components/error'\nimport ErrorMixin from '../../base/error_mixin'\n\nimport $ from 'clappr-zepto'\n\nimport './public/style.scss'\nimport fontStyle from './public/fonts.css'\n\nlet style\n\n/**\n * The Core is responsible to manage Containers, the mediator, MediaControl\n * and the player state.\n * @class Core\n * @constructor\n * @extends UIObject\n * @module components\n */\nexport default class Core extends UIObject {\n get events() {\n return {\n 'webkitfullscreenchange': 'handleFullscreenChange',\n 'mousemove': 'onMouseMove',\n 'mouseleave': 'onMouseLeave'\n }\n }\n\n get attributes() {\n return {\n 'data-player': '',\n tabindex: 9999\n }\n }\n\n /**\n * checks if the core is ready.\n * @property isReady\n * @type {Boolean} `true` if the core is ready, otherwise `false`\n */\n get isReady() {\n return !!this.ready\n }\n\n /**\n * The internationalization plugin.\n * @property i18n\n * @type {Strings}\n */\n get i18n() {\n return this.getPlugin('strings') || { t: (key) => key }\n }\n\n /**\n * @deprecated\n * This property currently exists for retrocompatibility reasons.\n * If you want to access the media control instance, use the method getPlugin('media_control').\n */\n get mediaControl() {\n return this.getPlugin('media_control') || this.dummyMediaControl\n }\n\n get dummyMediaControl() {\n if (this._dummyMediaControl) return this._dummyMediaControl\n this._dummyMediaControl = new UICorePlugin(this)\n return this._dummyMediaControl\n }\n\n /**\n * gets the active container reference.\n * @property activeContainer\n * @type {Object}\n */\n get activeContainer() {\n return this._activeContainer\n }\n\n /**\n * sets the active container reference and trigger a event with the new reference.\n * @property activeContainer\n * @type {Object}\n */\n set activeContainer(container) {\n this._activeContainer = container\n this.trigger(Events.CORE_ACTIVE_CONTAINER_CHANGED, this._activeContainer)\n }\n\n /**\n * gets the active playback reference.\n * @property activePlayback\n * @type {Object}\n */\n get activePlayback() {\n return this.activeContainer && this.activeContainer.playback\n }\n\n constructor(options) {\n super(options)\n this.playerError = new PlayerError(options, this)\n this.configureDomRecycler()\n this.playerInfo = PlayerInfo.getInstance(options.playerId)\n this.firstResize = true\n this.plugins = []\n this.containers = []\n //FIXME fullscreen api sucks\n this._boundFullscreenHandler = () => this.handleFullscreenChange()\n $(document).bind('fullscreenchange', this._boundFullscreenHandler)\n $(document).bind('MSFullscreenChange', this._boundFullscreenHandler)\n $(document).bind('mozfullscreenchange', this._boundFullscreenHandler)\n Browser.isMobile && $(window).bind('resize', (o) => { this.handleWindowResize(o) })\n }\n\n configureDomRecycler() {\n let recycleVideo = this.options && this.options.playback && this.options.playback.recycleVideo\n DomRecycler.configure({ recycleVideo })\n }\n\n createContainers(options) {\n this.defer = $.Deferred()\n this.defer.promise(this)\n this.containerFactory = new ContainerFactory(options, options.loader, this.i18n, this.playerError)\n this.prepareContainers()\n }\n\n prepareContainers() {\n this.containerFactory.createContainers()\n .then((containers) => this.setupContainers(containers))\n .then((containers) => this.resolveOnContainersReady(containers))\n }\n\n updateSize() {\n this.isFullscreen() ? this.setFullscreen() : this.setPlayerSize()\n }\n\n setFullscreen() {\n if (!Browser.isiOS) {\n this.$el.addClass('fullscreen')\n this.$el.removeAttr('style')\n this.playerInfo.previousSize = { width: this.options.width, height: this.options.height }\n this.playerInfo.currentSize = { width: $(window).width(), height: $(window).height() }\n }\n }\n\n setPlayerSize() {\n this.$el.removeClass('fullscreen')\n this.playerInfo.currentSize = this.playerInfo.previousSize\n this.playerInfo.previousSize = { width: $(window).width(), height: $(window).height() }\n this.resize(this.playerInfo.currentSize)\n }\n\n resize(options) {\n if (!isNumber(options.height) && !isNumber(options.width)) {\n this.el.style.height = `${options.height}`\n this.el.style.width = `${options.width}`\n } else {\n this.el.style.height = `${options.height}px`\n this.el.style.width = `${options.width}px`\n }\n this.playerInfo.previousSize = { width: this.options.width, height: this.options.height }\n this.options.width = options.width\n this.options.height = options.height\n this.playerInfo.currentSize = options\n this.triggerResize(this.playerInfo.currentSize)\n }\n\n enableResizeObserver() {\n const checkSizeCallback = () => {\n this.triggerResize({ width: this.el.clientWidth, height: this.el.clientHeight })\n }\n this.resizeObserverInterval = setInterval(checkSizeCallback, 500)\n }\n\n triggerResize(newSize) {\n const thereWasChange = this.firstResize || this.oldHeight !== newSize.height || this.oldWidth !== newSize.width\n if (thereWasChange) {\n this.oldHeight = newSize.height\n this.oldWidth = newSize.width\n this.playerInfo.computedSize = newSize\n this.firstResize = false\n Mediator.trigger(`${this.options.playerId}:${Events.PLAYER_RESIZE}`, newSize)\n this.trigger(Events.CORE_RESIZE, newSize)\n }\n }\n\n disableResizeObserver() {\n this.resizeObserverInterval && clearInterval(this.resizeObserverInterval)\n }\n\n resolveOnContainersReady(containers) {\n $.when.apply($, containers).done(() => {\n this.defer.resolve(this)\n this.ready = true\n this.trigger(Events.CORE_READY)\n })\n }\n\n addPlugin(plugin) {\n this.plugins.push(plugin)\n }\n\n hasPlugin(name) {\n return !!this.getPlugin(name)\n }\n\n getPlugin(name) {\n return this.plugins.filter(plugin => plugin.name === name)[0]\n }\n\n load(sources, mimeType) {\n this.options.mimeType = mimeType\n sources = sources && sources.constructor === Array ? sources : [sources]\n this.options.sources = sources\n this.containers.forEach((container) => container.destroy())\n this.containerFactory.options = $.extend(this.options, { sources })\n this.prepareContainers()\n }\n\n destroy() {\n this.disableResizeObserver()\n this.containers.forEach((container) => container.destroy())\n this.plugins.forEach((plugin) => plugin.destroy())\n this.$el.remove()\n $(document).unbind('fullscreenchange', this._boundFullscreenHandler)\n $(document).unbind('MSFullscreenChange', this._boundFullscreenHandler)\n $(document).unbind('mozfullscreenchange', this._boundFullscreenHandler)\n this.stopListening()\n }\n\n handleFullscreenChange() {\n this.trigger(Events.CORE_FULLSCREEN, this.isFullscreen())\n this.updateSize()\n }\n\n handleWindowResize(event) {\n const orientation = (window.innerWidth > window.innerHeight) ? 'landscape' : 'portrait'\n if (this._screenOrientation === orientation) return\n this._screenOrientation = orientation\n this.triggerResize({ width: this.el.clientWidth, height: this.el.clientHeight })\n this.trigger(Events.CORE_SCREEN_ORIENTATION_CHANGED, {\n event: event,\n orientation: this._screenOrientation\n })\n }\n\n removeContainer(container) {\n this.stopListening(container)\n this.containers = this.containers.filter((c) => c !== container)\n }\n\n setupContainer(container) {\n this.listenTo(container, Events.CONTAINER_DESTROYED, this.removeContainer)\n this.containers.push(container)\n }\n\n setupContainers(containers) {\n containers.forEach(this.setupContainer.bind(this))\n this.trigger(Events.CORE_CONTAINERS_CREATED)\n this.renderContainers()\n this.activeContainer = containers[0]\n this.render()\n this.appendToParent()\n return this.containers\n }\n\n renderContainers() {\n this.containers.forEach((container) => this.el.appendChild(container.render().el))\n }\n\n createContainer(source, options) {\n const container = this.containerFactory.createContainer(source, options)\n this.setupContainer(container)\n this.el.appendChild(container.render().el)\n return container\n }\n\n /**\n * @deprecated\n * This method currently exists for retrocompatibility reasons.\n * If you want the current container reference, use the activeContainer getter.\n */\n getCurrentContainer() {\n return this.activeContainer\n }\n\n /**\n * @deprecated\n * This method currently exists for retrocompatibility reasons.\n * If you want the current playback reference, use the activePlayback getter.\n */\n getCurrentPlayback() {\n return this.activePlayback\n }\n\n getPlaybackType() {\n return this.activeContainer && this.activeContainer.getPlaybackType()\n }\n\n isFullscreen() {\n // Ensure current instance is in fullscreen mode by checking fullscreen element\n const el = Browser.isiOS ? this.activeContainer && this.activeContainer.el || this.el : this.el\n return Fullscreen.fullscreenElement() === el\n }\n\n toggleFullscreen() {\n if (this.isFullscreen()) {\n Fullscreen.cancelFullscreen()\n !Browser.isiOS && this.$el.removeClass('fullscreen nocursor')\n } else {\n Fullscreen.requestFullscreen(Browser.isiOS ? this.activeContainer.el : this.el)\n !Browser.isiOS && this.$el.addClass('fullscreen')\n }\n }\n\n onMouseMove(event) {\n this.trigger(Events.CORE_MOUSE_MOVE, event)\n }\n\n onMouseLeave(event) {\n this.trigger(Events.CORE_MOUSE_LEAVE, event)\n }\n\n /**\n * enables to configure the container after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n configure(options) {\n this._options = $.extend(this._options, options)\n this.configureDomRecycler()\n\n const sources = options.source || options.sources\n sources && this.load(sources, options.mimeType || this.options.mimeType)\n\n this.trigger(Events.CORE_OPTIONS_CHANGE, options) // Trigger with newly provided options\n this.containers.forEach((container) => container.configure(this.options))\n }\n\n appendToParent() {\n let hasCoreParent = this.$el.parent() && this.$el.parent().length\n !hasCoreParent && this.$el.appendTo(this.options.parentElement)\n }\n\n render() {\n if (!style)\n style = Styler.getStyleFor(fontStyle, { baseUrl: this.options.baseUrl })\n\n $('head').append(style)\n\n this.options.width = this.options.width || this.$el.width()\n this.options.height = this.options.height || this.$el.height()\n const size = { width: this.options.width, height: this.options.height }\n this.playerInfo.previousSize = this.playerInfo.currentSize = this.playerInfo.computedSize = size\n this.updateSize()\n\n this.previousSize = { width: this.$el.width(), height: this.$el.height() }\n\n this.enableResizeObserver()\n\n return this\n }\n}\n\nObject.assign(Core.prototype, ErrorMixin)\n","import ContainerFactory from './container_factory'\nexport default ContainerFactory\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * The ContainerFactory is responsible for manage playback bootstrap and create containers.\n */\n\nimport BaseObject from '../../base/base_object'\nimport Events from '../../base/events'\nimport Container from '../../components/container'\nimport $ from 'clappr-zepto'\n\nexport default class ContainerFactory extends BaseObject {\n get options() { return this._options }\n set options(options) { this._options = options }\n\n constructor(options, loader, i18n, playerError) {\n super(options)\n this._i18n = i18n\n this.loader = loader\n this.playerError = playerError\n }\n\n createContainers() {\n return $.Deferred((promise) => {\n promise.resolve(this.options.sources.map((source) => {\n return this.createContainer(source)\n }))\n })\n }\n\n findPlaybackPlugin(source, mimeType) {\n return this.loader.playbackPlugins.filter(p => p.canPlay(source, mimeType))[0]\n }\n\n createContainer(source) {\n let resolvedSource = null,\n mimeType = this.options.mimeType\n if (typeof source === 'object') {\n resolvedSource = source.source.toString()\n if (source.mimeType)\n mimeType = source.mimeType\n\n } else { resolvedSource = source.toString() }\n\n\n if (resolvedSource.match(/^\\/\\//)) resolvedSource = window.location.protocol + resolvedSource\n\n let options = $.extend({}, this.options, {\n src: resolvedSource,\n mimeType: mimeType\n })\n const playbackPlugin = this.findPlaybackPlugin(resolvedSource, mimeType)\n const playback = new playbackPlugin(options, this._i18n, this.playerError)\n\n options = $.extend({}, options, { playback: playback })\n\n const container = new Container(options, this._i18n, this.playerError)\n const defer = $.Deferred()\n defer.promise(container)\n this.addContainerPlugins(container)\n this.listenToOnce(container, Events.CONTAINER_READY, () => defer.resolve(container))\n return container\n }\n\n addContainerPlugins(container) {\n this.loader.containerPlugins.forEach((Plugin) => {\n container.addPlugin(new Plugin(container))\n })\n }\n}\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * Container is responsible for the video rendering and state\n */\n\nimport Events from '../../base/events'\nimport UIObject from '../../base/ui_object'\nimport ErrorMixin from '../../base/error_mixin'\nimport { DoubleEventHandler } from '../../base/utils'\n\nimport './public/style.scss'\n\nimport $ from 'clappr-zepto'\n\n/**\n * An abstraction to represent a container for a given playback\n * TODO: describe its responsabilities\n * @class Container\n * @constructor\n * @extends UIObject\n * @module base\n */\nexport default class Container extends UIObject {\n /**\n * container's name\n * @method name\n * @default Container\n * @return {String} container's name\n */\n get name() { return 'Container' }\n get attributes() { return { class: 'container', 'data-container': '' } }\n get events() {\n return {\n 'click': 'clicked',\n 'dblclick': 'dblClicked',\n 'touchend': 'dblTap',\n 'contextmenu': 'onContextMenu',\n 'mouseenter': 'mouseEnter',\n 'mouseleave': 'mouseLeave'\n }\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n get ended() {\n return this.playback.ended\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * (i.e if a live stream is playing smoothly, this will be false)\n * @property buffering\n * @type Boolean\n */\n get buffering() {\n return this.playback.buffering\n }\n\n /**\n * The internationalization plugin.\n * @property i18n\n * @type {Strings}\n */\n get i18n() {\n return this._i18n\n }\n\n /**\n * checks if has closed caption tracks.\n * @property hasClosedCaptionsTracks\n * @type {Boolean}\n */\n get hasClosedCaptionsTracks() {\n return this.playback.hasClosedCaptionsTracks\n }\n\n /**\n * gets the available closed caption tracks.\n * @property closedCaptionsTracks\n * @type {Array} an array of objects with at least 'id' and 'name' properties\n */\n get closedCaptionsTracks() {\n return this.playback.closedCaptionsTracks\n }\n\n /**\n * gets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n get closedCaptionsTrackId() {\n return this.playback.closedCaptionsTrackId\n }\n\n /**\n * sets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n set closedCaptionsTrackId(trackId) {\n this.playback.closedCaptionsTrackId = trackId\n }\n\n /**\n * it builds a container\n * @method constructor\n * @param {Object} options the options object\n * @param {Strings} i18n the internationalization component\n */\n constructor(options, i18n, playerError) {\n super(options)\n this._i18n = i18n\n this.currentTime = 0\n this.volume = 100\n this.playback = options.playback\n this.playerError = playerError\n this.settings = $.extend({}, this.playback.settings)\n this.isReady = false\n this.mediaControlDisabled = false\n this.plugins = [this.playback]\n this.dblTapHandler = new DoubleEventHandler(500)\n this.clickTimer = null\n this.clickDelay = 200 // FIXME: could be a player option\n this.bindEvents()\n }\n\n /**\n * binds playback events to the methods of the container.\n * it listens to playback's events and triggers them as container events.\n *\n * | Playback |\n * |----------|\n * | progress |\n * | timeupdate |\n * | ready |\n * | buffering |\n * | bufferfull |\n * | settingsupdate |\n * | loadedmetadata |\n * | highdefinitionupdate |\n * | bitrate |\n * | playbackstate |\n * | dvr |\n * | mediacontrol_disable |\n * | mediacontrol_enable |\n * | ended |\n * | play |\n * | pause |\n * | error |\n *\n * ps: the events usually translate from PLABACK_x to CONTAINER_x, you can check all the events at `Event` class.\n *\n * @method bindEvents\n */\n bindEvents() {\n this.listenTo(this.playback, Events.PLAYBACK_PROGRESS, this.onProgress)\n this.listenTo(this.playback, Events.PLAYBACK_TIMEUPDATE, this.timeUpdated)\n this.listenTo(this.playback, Events.PLAYBACK_READY, this.ready)\n this.listenTo(this.playback, Events.PLAYBACK_BUFFERING, this.onBuffering)\n this.listenTo(this.playback, Events.PLAYBACK_BUFFERFULL, this.bufferfull)\n this.listenTo(this.playback, Events.PLAYBACK_SETTINGSUPDATE, this.settingsUpdate)\n this.listenTo(this.playback, Events.PLAYBACK_LOADEDMETADATA, this.loadedMetadata)\n this.listenTo(this.playback, Events.PLAYBACK_HIGHDEFINITIONUPDATE, this.highDefinitionUpdate)\n this.listenTo(this.playback, Events.PLAYBACK_BITRATE, this.updateBitrate)\n this.listenTo(this.playback, Events.PLAYBACK_PLAYBACKSTATE, this.playbackStateChanged)\n this.listenTo(this.playback, Events.PLAYBACK_DVR, this.playbackDvrStateChanged)\n this.listenTo(this.playback, Events.PLAYBACK_MEDIACONTROL_DISABLE, this.disableMediaControl)\n this.listenTo(this.playback, Events.PLAYBACK_MEDIACONTROL_ENABLE, this.enableMediaControl)\n this.listenTo(this.playback, Events.PLAYBACK_SEEKED, this.onSeeked)\n this.listenTo(this.playback, Events.PLAYBACK_ENDED, this.onEnded)\n this.listenTo(this.playback, Events.PLAYBACK_PLAY, this.playing)\n this.listenTo(this.playback, Events.PLAYBACK_PAUSE, this.paused)\n this.listenTo(this.playback, Events.PLAYBACK_STOP, this.stopped)\n this.listenTo(this.playback, Events.PLAYBACK_ERROR, this.error)\n this.listenTo(this.playback, Events.PLAYBACK_SUBTITLE_AVAILABLE, this.subtitleAvailable)\n this.listenTo(this.playback, Events.PLAYBACK_SUBTITLE_CHANGED, this.subtitleChanged)\n }\n\n subtitleAvailable() {\n this.trigger(Events.CONTAINER_SUBTITLE_AVAILABLE)\n }\n\n subtitleChanged(track) {\n this.trigger(Events.CONTAINER_SUBTITLE_CHANGED, track)\n }\n\n playbackStateChanged(state) {\n this.trigger(Events.CONTAINER_PLAYBACKSTATE, state)\n }\n\n playbackDvrStateChanged(dvrInUse) {\n this.settings = this.playback.settings\n this.dvrInUse = dvrInUse\n this.trigger(Events.CONTAINER_PLAYBACKDVRSTATECHANGED, dvrInUse)\n }\n\n updateBitrate(newBitrate) {\n this.trigger(Events.CONTAINER_BITRATE, newBitrate)\n }\n\n statsReport(metrics) {\n this.trigger(Events.CONTAINER_STATS_REPORT, metrics)\n }\n\n getPlaybackType() {\n return this.playback.getPlaybackType()\n }\n\n /**\n * returns `true` if DVR is enable otherwise `false`.\n * @method isDvrEnabled\n * @return {Boolean}\n */\n isDvrEnabled() {\n return !!this.playback.dvrEnabled\n }\n\n /**\n * returns `true` if DVR is in use otherwise `false`.\n * @method isDvrInUse\n * @return {Boolean}\n */\n isDvrInUse() {\n return !!this.dvrInUse\n }\n\n /**\n * destroys the container\n * @method destroy\n */\n destroy() {\n this.trigger(Events.CONTAINER_DESTROYED, this, this.name)\n this.stopListening()\n this.plugins.forEach((plugin) => plugin.destroy())\n this.$el.remove()\n }\n\n setStyle(style) {\n this.$el.css(style)\n }\n\n animate(style, duration) {\n return this.$el.animate(style, duration).promise()\n }\n\n ready() {\n this.isReady = true\n this.trigger(Events.CONTAINER_READY, this.name)\n }\n\n isPlaying() {\n return this.playback.isPlaying()\n }\n\n getStartTimeOffset() {\n return this.playback.getStartTimeOffset()\n }\n\n getCurrentTime() {\n return this.currentTime\n }\n\n getDuration() {\n return this.playback.getDuration()\n }\n\n error(error) {\n if (!this.isReady)\n this.ready()\n\n this.trigger(Events.CONTAINER_ERROR, error, this.name)\n }\n\n loadedMetadata(metadata) {\n this.trigger(Events.CONTAINER_LOADEDMETADATA, metadata)\n }\n\n timeUpdated(timeProgress) {\n this.currentTime = timeProgress.current\n this.trigger(Events.CONTAINER_TIMEUPDATE, timeProgress, this.name)\n }\n\n onProgress(...args) {\n this.trigger(Events.CONTAINER_PROGRESS, ...args, this.name)\n }\n\n playing() {\n this.trigger(Events.CONTAINER_PLAY, this.name)\n }\n\n paused() {\n this.trigger(Events.CONTAINER_PAUSE, this.name)\n }\n\n /**\n * plays the playback\n * @method play\n */\n play() {\n this.playback.play()\n }\n\n /**\n * stops the playback\n * @method stop\n */\n stop() {\n this.playback.stop()\n this.currentTime = 0\n }\n\n /**\n * pauses the playback\n * @method pause\n */\n pause() {\n this.playback.pause()\n }\n\n onEnded() {\n this.trigger(Events.CONTAINER_ENDED, this, this.name)\n this.currentTime = 0\n }\n\n stopped() {\n this.trigger(Events.CONTAINER_STOP)\n }\n\n clicked() {\n if (!this.options.chromeless || this.options.allowUserInteraction) {\n // The event is delayed because it can be canceled by a double-click event\n // An example of use is to prevent playback from pausing when switching to full screen\n this.clickTimer = setTimeout(() => {\n this.clickTimer && this.trigger(Events.CONTAINER_CLICK, this, this.name)\n }, this.clickDelay)\n }\n }\n\n cancelClicked() {\n clearTimeout(this.clickTimer)\n this.clickTimer = null\n }\n\n dblClicked() {\n if (!this.options.chromeless || this.options.allowUserInteraction) {\n this.cancelClicked()\n this.trigger(Events.CONTAINER_DBLCLICK, this, this.name)\n }\n }\n\n dblTap(evt) {\n if (!this.options.chromeless || this.options.allowUserInteraction) {\n this.dblTapHandler.handle(evt, () => {\n this.cancelClicked()\n this.trigger(Events.CONTAINER_DBLCLICK, this, this.name)\n })\n }\n }\n\n onContextMenu(event) {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_CONTEXTMENU, event, this.name)\n\n }\n\n seek(time) {\n this.trigger(Events.CONTAINER_SEEK, time, this.name)\n this.playback.seek(time)\n }\n\n onSeeked() {\n this.trigger(Events.CONTAINER_SEEKED, this.name)\n }\n\n seekPercentage(percentage) {\n const duration = this.getDuration()\n if (percentage >= 0 && percentage <= 100) {\n const time = duration * (percentage / 100)\n this.seek(time)\n }\n }\n\n setVolume(value) {\n this.volume = parseFloat(value)\n this.trigger(Events.CONTAINER_VOLUME, this.volume, this.name)\n this.playback.volume(this.volume)\n }\n\n fullscreen() {\n this.trigger(Events.CONTAINER_FULLSCREEN, this.name)\n }\n\n onBuffering() {\n this.trigger(Events.CONTAINER_STATE_BUFFERING, this.name)\n }\n\n bufferfull() {\n this.trigger(Events.CONTAINER_STATE_BUFFERFULL, this.name)\n }\n\n /**\n * adds plugin to the container\n * @method addPlugin\n * @param {Object} plugin\n */\n addPlugin(plugin) {\n this.plugins.push(plugin)\n }\n\n /**\n * checks if a plugin, given its name, exist\n * @method hasPlugin\n * @param {String} name\n * @return {Boolean}\n */\n hasPlugin(name) {\n return !!this.getPlugin(name)\n }\n\n /**\n * get the plugin given its name\n * @method getPlugin\n * @param {String} name\n */\n getPlugin(name) {\n return this.plugins.filter(plugin => plugin.name === name)[0]\n }\n\n mouseEnter() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_MOUSE_ENTER)\n\n }\n\n mouseLeave() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_MOUSE_LEAVE)\n\n }\n\n settingsUpdate() {\n this.settings = this.playback.settings\n this.trigger(Events.CONTAINER_SETTINGSUPDATE)\n }\n\n highDefinitionUpdate(isHD) {\n this.trigger(Events.CONTAINER_HIGHDEFINITIONUPDATE, isHD)\n }\n\n isHighDefinitionInUse() {\n return this.playback.isHighDefinitionInUse()\n }\n\n disableMediaControl() {\n if (!this.mediaControlDisabled) {\n this.mediaControlDisabled = true\n this.trigger(Events.CONTAINER_MEDIACONTROL_DISABLE)\n }\n }\n\n enableMediaControl() {\n if (this.mediaControlDisabled) {\n this.mediaControlDisabled = false\n this.trigger(Events.CONTAINER_MEDIACONTROL_ENABLE)\n }\n }\n\n updateStyle() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.$el.removeClass('chromeless')\n else\n this.$el.addClass('chromeless')\n\n }\n\n /**\n * enables to configure the container after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n configure(options) {\n this._options = $.extend(this._options, options)\n this.updateStyle()\n this.playback.configure(this.options)\n this.trigger(Events.CONTAINER_OPTIONS_CHANGE)\n }\n\n render() {\n this.$el.append(this.playback.render().el)\n this.updateStyle()\n return this\n }\n}\n\nObject.assign(Container.prototype, ErrorMixin)\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/joaopaulo/Workstation/JS/clappr/src/base/scss!./style.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/joaopaulo/Workstation/JS/clappr/src/base/scss!./style.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/joaopaulo/Workstation/JS/clappr/src/base/scss!./style.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".container[data-container] {\\n position: absolute;\\n background-color: black;\\n height: 100%;\\n width: 100%;\\n max-width: 100%; }\\n .container[data-container] .chromeless {\\n cursor: default; }\\n\\n[data-player]:not(.nocursor) .container[data-container]:not(.chromeless).pointer-enabled {\\n cursor: pointer; }\\n\", \"\"]);\n\n// exports\n","\n/**\n * When source maps are enabled, `style-loader` uses a link element with a data-uri to\n * embed the css on the page. This breaks all relative urls because now they are relative to a\n * bundle instead of the current page.\n *\n * One solution is to only use full urls, but that may be impossible.\n *\n * Instead, this function \"fixes\" the relative urls to be absolute according to the current page location.\n *\n * A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.\n *\n */\n\nmodule.exports = function (css) {\n // get current location\n var location = typeof window !== \"undefined\" && window.location;\n\n if (!location) {\n throw new Error(\"fixUrls requires window.location\");\n }\n\n\t// blank or null?\n\tif (!css || typeof css !== \"string\") {\n\t return css;\n }\n\n var baseUrl = location.protocol + \"//\" + location.host;\n var currentDir = baseUrl + location.pathname.replace(/\\/[^\\/]*$/, \"/\");\n\n\t// convert each url(...)\n\t/*\n\tThis regular expression is just a way to recursively match brackets within\n\ta string.\n\n\t /url\\s*\\( = Match on the word \"url\" with any whitespace after it and then a parens\n\t ( = Start a capturing group\n\t (?: = Start a non-capturing group\n\t [^)(] = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t (?: = Start another non-capturing groups\n\t [^)(]+ = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t [^)(]* = Match anything that isn't a parentheses\n\t \\) = Match a end parentheses\n\t ) = End Group\n *\\) = Match anything and then a close parens\n ) = Close non-capturing group\n * = Match anything\n ) = Close capturing group\n\t \\) = Match a close parens\n\n\t /gi = Get all matches, not the first. Be case insensitive.\n\t */\n\tvar fixedCss = css.replace(/url\\s*\\(((?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)\\)/gi, function(fullMatch, origUrl) {\n\t\t// strip quotes (if they exist)\n\t\tvar unquotedOrigUrl = origUrl\n\t\t\t.trim()\n\t\t\t.replace(/^\"(.*)\"$/, function(o, $1){ return $1; })\n\t\t\t.replace(/^'(.*)'$/, function(o, $1){ return $1; });\n\n\t\t// already a full url? no change\n\t\tif (/^(#|data:|http:\\/\\/|https:\\/\\/|file:\\/\\/\\/|\\s*$)/i.test(unquotedOrigUrl)) {\n\t\t return fullMatch;\n\t\t}\n\n\t\t// convert the url to a full url\n\t\tvar newUrl;\n\n\t\tif (unquotedOrigUrl.indexOf(\"//\") === 0) {\n\t\t \t//TODO: should we add protocol?\n\t\t\tnewUrl = unquotedOrigUrl;\n\t\t} else if (unquotedOrigUrl.indexOf(\"/\") === 0) {\n\t\t\t// path should be relative to the base url\n\t\t\tnewUrl = baseUrl + unquotedOrigUrl; // already starts with '/'\n\t\t} else {\n\t\t\t// path should be relative to current directory\n\t\t\tnewUrl = currentDir + unquotedOrigUrl.replace(/^\\.\\//, \"\"); // Strip leading './'\n\t\t}\n\n\t\t// send back the fixed url(...)\n\t\treturn \"url(\" + JSON.stringify(newUrl) + \")\";\n\t});\n\n\t// send back the fixed css\n\treturn fixedCss;\n};\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/joaopaulo/Workstation/JS/clappr/src/base/scss!./style.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/joaopaulo/Workstation/JS/clappr/src/base/scss!./style.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/joaopaulo/Workstation/JS/clappr/src/base/scss!./style.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"[data-player] {\\n -webkit-touch-callout: none;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n -o-user-select: none;\\n user-select: none;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n -webkit-transform: translate3d(0, 0, 0);\\n transform: translate3d(0, 0, 0);\\n position: relative;\\n margin: 0;\\n padding: 0;\\n border: 0;\\n font-style: normal;\\n font-weight: normal;\\n text-align: center;\\n overflow: hidden;\\n font-size: 100%;\\n font-family: \\\"Roboto\\\", \\\"Open Sans\\\", Arial, sans-serif;\\n text-shadow: 0 0 0;\\n box-sizing: border-box; }\\n [data-player] div, [data-player] span, [data-player] applet, [data-player] object, [data-player] iframe,\\n [data-player] h1, [data-player] h2, [data-player] h3, [data-player] h4, [data-player] h5, [data-player] h6, [data-player] p, [data-player] blockquote, [data-player] pre,\\n [data-player] a, [data-player] abbr, [data-player] acronym, [data-player] address, [data-player] big, [data-player] cite, [data-player] code,\\n [data-player] del, [data-player] dfn, [data-player] em, [data-player] img, [data-player] ins, [data-player] kbd, [data-player] q, [data-player] s, [data-player] samp,\\n [data-player] small, [data-player] strike, [data-player] strong, [data-player] sub, [data-player] sup, [data-player] tt, [data-player] var,\\n [data-player] b, [data-player] u, [data-player] i, [data-player] center,\\n [data-player] dl, [data-player] dt, [data-player] dd, [data-player] ol, [data-player] ul, [data-player] li,\\n [data-player] fieldset, [data-player] form, [data-player] label, [data-player] legend,\\n [data-player] table, [data-player] caption, [data-player] tbody, [data-player] tfoot, [data-player] thead, [data-player] tr, [data-player] th, [data-player] td,\\n [data-player] article, [data-player] aside, [data-player] canvas, [data-player] details, [data-player] embed,\\n [data-player] figure, [data-player] figcaption, [data-player] footer, [data-player] header, [data-player] hgroup,\\n [data-player] menu, [data-player] nav, [data-player] output, [data-player] ruby, [data-player] section, [data-player] summary,\\n [data-player] time, [data-player] mark, [data-player] audio, [data-player] video {\\n margin: 0;\\n padding: 0;\\n border: 0;\\n font: inherit;\\n font-size: 100%;\\n vertical-align: baseline; }\\n [data-player] table {\\n border-collapse: collapse;\\n border-spacing: 0; }\\n [data-player] caption, [data-player] th, [data-player] td {\\n text-align: left;\\n font-weight: normal;\\n vertical-align: middle; }\\n [data-player] q, [data-player] blockquote {\\n quotes: none; }\\n [data-player] q:before, [data-player] q:after, [data-player] blockquote:before, [data-player] blockquote:after {\\n content: \\\"\\\";\\n content: none; }\\n [data-player] a img {\\n border: none; }\\n [data-player]:focus {\\n outline: 0; }\\n [data-player] * {\\n max-width: none;\\n box-sizing: inherit;\\n float: none; }\\n [data-player] div {\\n display: block; }\\n [data-player].fullscreen {\\n width: 100% !important;\\n height: 100% !important;\\n top: 0;\\n left: 0; }\\n [data-player].nocursor {\\n cursor: none; }\\n\\n.clappr-style {\\n display: none !important; }\\n\", \"\"]);\n\n// exports\n","var escape = require(\"../../../../node_modules/css-loader/lib/url/escape.js\");\nexports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"@font-face {\\n font-family: \\\"Roboto\\\";\\n font-style: normal;\\n font-weight: 400;\\n src: local(\\\"Roboto\\\"), local(\\\"Roboto-Regular\\\"), url(\" + escape(require(\"./Roboto.ttf\")) + \") format(\\\"truetype\\\");\\n}\\n\", \"\"]);\n\n// exports\n","module.exports = \"<%=baseUrl%>/38861cba61c66739c1452c3a71e39852.ttf\";","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport BaseObject from '../../base/base_object'\nimport PlayerInfo from '../player_info'\n\n/* Playback Plugins */\nimport HTML5VideoPlayback from '../../playbacks/html5_video'\nimport FlashVideoPlayback from '../../playbacks/flash'\nimport HTML5AudioPlayback from '../../playbacks/html5_audio'\nimport FlasHLSVideoPlayback from '../../playbacks/flashls'\nimport HLSVideoPlayback from '../../playbacks/hls'\nimport HTMLImgPlayback from '../../playbacks/html_img'\nimport NoOp from '../../playbacks/no_op'\n\n/* Container Plugins */\nimport SpinnerThreeBouncePlugin from '../../plugins/spinner_three_bounce'\nimport StatsPlugin from '../../plugins/stats'\nimport WaterMarkPlugin from '../../plugins/watermark'\nimport PosterPlugin from '../../plugins/poster'\nimport GoogleAnalyticsPlugin from '../../plugins/google_analytics'\nimport ClickToPausePlugin from '../../plugins/click_to_pause'\n\n/* Core Plugins */\nimport MediaControl from '../../plugins/media_control'\nimport DVRControls from '../../plugins/dvr_controls'\nimport ClosedCaptions from '../../plugins/closed_captions'\nimport Favicon from '../../plugins/favicon'\nimport SeekTime from '../../plugins/seek_time'\nimport SourcesPlugin from '../../plugins/sources'\nimport EndVideo from '../../plugins/end_video'\nimport Strings from '../../plugins/strings'\nimport ErrorScreen from '../../plugins/error_screen'\n\n/**\n * It keeps a list of the default plugins (playback, container, core) and it merges external plugins with its internals.\n * @class Loader\n * @constructor\n * @extends BaseObject\n * @module components\n */\nexport default class Loader extends BaseObject {\n /**\n * builds the loader\n * @method constructor\n * @param {Object} externalPlugins the external plugins\n * @param {Number} playerId you can embed multiple instances of clappr, therefore this is the unique id of each one.\n */\n constructor(externalPlugins = [], playerId = 0, useOnlyPlainHtml5Plugins = PLAIN_HTML5_ONLY) {\n super()\n this.playerId = playerId\n this.playbackPlugins = []\n\n if (!useOnlyPlainHtml5Plugins) {\n this.playbackPlugins = [\n ...this.playbackPlugins,\n HLSVideoPlayback,\n ]\n }\n\n this.playbackPlugins = [\n ...this.playbackPlugins,\n HTML5VideoPlayback,\n HTML5AudioPlayback,\n ]\n\n if (!useOnlyPlainHtml5Plugins) {\n this.playbackPlugins = [\n ...this.playbackPlugins,\n FlashVideoPlayback,\n FlasHLSVideoPlayback\n ]\n }\n\n this.playbackPlugins = [\n ...this.playbackPlugins,\n HTMLImgPlayback,\n NoOp\n ]\n\n this.containerPlugins = [SpinnerThreeBouncePlugin, WaterMarkPlugin, PosterPlugin, StatsPlugin, GoogleAnalyticsPlugin, ClickToPausePlugin]\n this.corePlugins = [MediaControl, DVRControls, ClosedCaptions, Favicon, SeekTime, SourcesPlugin, EndVideo, ErrorScreen, Strings]\n\n if (!Array.isArray(externalPlugins))\n this.validateExternalPluginsType(externalPlugins)\n\n this.addExternalPlugins(externalPlugins)\n }\n\n /**\n * groups by type the external plugins that were passed through `options.plugins` it they're on a flat array\n * @method addExternalPlugins\n * @private\n * @param {Object} an config object or an array of plugins\n * @return {Object} plugins the config object with the plugins separated by type\n */\n groupPluginsByType(plugins) {\n if (Array.isArray(plugins)) {\n plugins = plugins.reduce(function(memo, plugin) {\n memo[plugin.type] || (memo[plugin.type] = [])\n memo[plugin.type].push(plugin)\n return memo\n }, {})\n }\n return plugins\n }\n\n removeDups(list) {\n const groupUp = (plugins, plugin) => {\n plugins[plugin.prototype.name] && delete plugins[plugin.prototype.name]\n plugins[plugin.prototype.name] = plugin\n return plugins\n }\n const pluginsMap = list.reduceRight(groupUp, Object.create(null))\n\n const plugins = []\n for (let key in pluginsMap)\n plugins.unshift(pluginsMap[key])\n\n return plugins\n }\n\n /**\n * adds all the external plugins that were passed through `options.plugins`\n * @method addExternalPlugins\n * @private\n * @param {Object} plugins the config object with all plugins\n */\n addExternalPlugins(plugins) {\n plugins = this.groupPluginsByType(plugins)\n if (plugins.playback)\n this.playbackPlugins = this.removeDups(plugins.playback.concat(this.playbackPlugins))\n\n if (plugins.container)\n this.containerPlugins = this.removeDups(plugins.container.concat(this.containerPlugins))\n\n if (plugins.core)\n this.corePlugins = this.removeDups(plugins.core.concat(this.corePlugins))\n\n\n PlayerInfo.getInstance(this.playerId).playbackPlugins = this.playbackPlugins\n }\n\n /**\n * validate if the external plugins that were passed through `options.plugins` are associated to the correct type\n * @method validateExternalPluginsType\n * @private\n * @param {Object} plugins the config object with all plugins\n */\n validateExternalPluginsType(plugins) {\n const plugintypes = ['playback', 'container', 'core']\n plugintypes.forEach((type) => {\n (plugins[type] || []).forEach((el) => {\n const errorMessage = 'external ' + el.type + ' plugin on ' + type + ' array'\n if (el.type !== type) throw new ReferenceError(errorMessage)\n })\n })\n }\n}\n","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;","'use strict';\nvar ctx = require('./_ctx')\n , $export = require('./_export')\n , toObject = require('./_to-object')\n , call = require('./_iter-call')\n , isArrayIter = require('./_is-array-iter')\n , toLength = require('./_to-length')\n , createProperty = require('./_create-property')\n , getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function(iter){ Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike/*, mapfn = undefined, thisArg = undefined*/){\n var O = toObject(arrayLike)\n , C = typeof this == 'function' ? this : Array\n , aLen = arguments.length\n , mapfn = aLen > 1 ? arguments[1] : undefined\n , mapping = mapfn !== undefined\n , index = 0\n , iterFn = getIterFn(O)\n , length, result, step, iterator;\n if(mapping)mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if(iterFn != undefined && !(C == Array && isArrayIter(iterFn))){\n for(iterator = iterFn.call(O), result = new C; !(step = iterator.next()).done; index++){\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for(result = new C(length); length > index; index++){\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function(iterator, fn, value, entries){\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch(e){\n var ret = iterator['return'];\n if(ret !== undefined)anObject(ret.call(iterator));\n throw e;\n }\n};","// check on default Array iterator\nvar Iterators = require('./_iterators')\n , ITERATOR = require('./_wks')('iterator')\n , ArrayProto = Array.prototype;\n\nmodule.exports = function(it){\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};","'use strict';\nvar $defineProperty = require('./_object-dp')\n , createDesc = require('./_property-desc');\n\nmodule.exports = function(object, index, value){\n if(index in object)$defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};","var ITERATOR = require('./_wks')('iterator')\n , SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function(){ SAFE_CLOSING = true; };\n Array.from(riter, function(){ throw 2; });\n} catch(e){ /* empty */ }\n\nmodule.exports = function(exec, skipClosing){\n if(!skipClosing && !SAFE_CLOSING)return false;\n var safe = false;\n try {\n var arr = [7]\n , iter = arr[ITERATOR]();\n iter.next = function(){ return {done: safe = true}; };\n arr[ITERATOR] = function(){ return iter; };\n exec(arr);\n } catch(e){ /* empty */ }\n return safe;\n};","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { isNumber, seekStringToSeconds, DomRecycler, canAutoPlayMedia } from '../../base/utils'\n\nimport Playback from '../../base/playback'\nimport Browser from '../../components/browser'\nimport PlayerError from '../../components/error'\nimport Events from '../../base/events'\nimport Log from '../../plugins/log'\nimport $ from 'clappr-zepto'\nimport template from '../../base/template'\nimport tracksHTML from './public/tracks.html'\nimport './public/style.scss'\n\nconst MIMETYPES = {\n 'mp4': ['avc1.42E01E', 'avc1.58A01E', 'avc1.4D401E', 'avc1.64001E', 'mp4v.20.8', 'mp4v.20.240', 'mp4a.40.2'].map(\n (codec) => { return 'video/mp4; codecs=\"' + codec + ', mp4a.40.2\"' }),\n 'ogg': ['video/ogg; codecs=\"theora, vorbis\"', 'video/ogg; codecs=\"dirac\"', 'video/ogg; codecs=\"theora, speex\"'],\n '3gpp': ['video/3gpp; codecs=\"mp4v.20.8, samr\"'],\n 'webm': ['video/webm; codecs=\"vp8, vorbis\"'],\n 'mkv': ['video/x-matroska; codecs=\"theora, vorbis\"'],\n 'm3u8': ['application/x-mpegurl']\n}\nMIMETYPES['ogv'] = MIMETYPES['ogg']\nMIMETYPES['3gp'] = MIMETYPES['3gpp']\n\nconst AUDIO_MIMETYPES = {\n 'wav': ['audio/wav'],\n 'mp3': ['audio/mp3', 'audio/mpeg;codecs=\"mp3\"'],\n 'aac': ['audio/mp4;codecs=\"mp4a.40.5\"'],\n 'oga': ['audio/ogg']\n}\n\nconst KNOWN_AUDIO_MIMETYPES = Object.keys(AUDIO_MIMETYPES).reduce((acc, k) => [...acc, ...AUDIO_MIMETYPES[k]], [])\n\nconst UNKNOWN_ERROR = { code: 'unknown', message: 'unknown' }\n\n// TODO: rename this Playback to HTML5Playback (breaking change, only after 0.3.0)\nexport default class HTML5Video extends Playback {\n get name() { return 'html5_video' }\n get tagName() { return this.isAudioOnly ? 'audio' : 'video' }\n\n get isAudioOnly() {\n const resourceUrl = this.options.src\n let mimeTypes = HTML5Video._mimeTypesForUrl(resourceUrl, AUDIO_MIMETYPES, this.options.mimeType)\n return this.options.playback && this.options.playback.audioOnly || this.options.audioOnly || KNOWN_AUDIO_MIMETYPES.indexOf(mimeTypes[0]) >= 0\n }\n\n get attributes() {\n return {\n 'data-html5-video': ''\n }\n }\n\n get events() {\n return {\n 'canplay': '_onCanPlay',\n 'canplaythrough': '_handleBufferingEvents',\n 'durationchange': '_onDurationChange',\n 'ended': '_onEnded',\n 'error': '_onError',\n 'loadeddata': '_onLoadedData',\n 'loadedmetadata': '_onLoadedMetadata',\n 'pause': '_onPause',\n 'playing': '_onPlaying',\n 'progress': '_onProgress',\n 'seeking': '_onSeeking',\n 'seeked': '_onSeeked',\n 'stalled': '_handleBufferingEvents',\n 'timeupdate': '_onTimeUpdate',\n 'waiting': '_onWaiting'\n }\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n get ended() {\n return this.el.ended\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * This is related to the PLAYBACK_BUFFERING and PLAYBACK_BUFFERFULL events\n * @property buffering\n * @type Boolean\n */\n get buffering() {\n return this._isBuffering\n }\n\n constructor(...args) {\n super(...args)\n this._destroyed = false\n this._loadStarted = false\n this._isBuffering = false\n this._playheadMoving = false\n this._playheadMovingTimer = null\n this._stopped = false\n this._ccTrackId = -1\n this._setupSrc(this.options.src)\n // backwards compatibility (TODO: remove on 0.3.0)\n this.options.playback || (this.options.playback = this.options || {})\n this.options.playback.disableContextMenu = this.options.playback.disableContextMenu || this.options.disableVideoTagContextMenu\n\n const playbackConfig = this.options.playback\n const preload = playbackConfig.preload || (Browser.isSafari ? 'auto' : this.options.preload)\n\n let posterUrl // FIXME: poster plugin should always convert poster to object with expected properties ?\n if (this.options.poster) {\n if (typeof this.options.poster === 'string')\n posterUrl = this.options.poster\n else if (typeof this.options.poster.url === 'string')\n posterUrl = this.options.poster.url\n\n }\n\n $.extend(this.el, {\n muted: this.options.mute,\n defaultMuted: this.options.mute,\n loop: this.options.loop,\n poster: posterUrl,\n preload: preload || 'metadata',\n controls: (playbackConfig.controls || this.options.useVideoTagDefaultControls) && 'controls',\n crossOrigin: playbackConfig.crossOrigin,\n 'x-webkit-playsinline': playbackConfig.playInline\n })\n\n playbackConfig.playInline && (this.$el.attr({ playsinline: 'playsinline' }))\n playbackConfig.crossOrigin && (this.$el.attr({ crossorigin: playbackConfig.crossOrigin }))\n\n // TODO should settings be private?\n this.settings = { default: ['seekbar'] }\n this.settings.left = ['playpause', 'position', 'duration']\n this.settings.right = ['fullscreen', 'volume', 'hd-indicator']\n\n playbackConfig.externalTracks && (this._setupExternalTracks(playbackConfig.externalTracks))\n\n this.options.autoPlay && this.attemptAutoPlay()\n }\n\n configure(options) {\n super.configure(options)\n this.el.loop = !!options.loop\n }\n\n // See Playback.attemptAutoPlay()\n attemptAutoPlay() {\n this.canAutoPlay((result, error) => {\n error && Log.warn(this.name, 'autoplay error.', { result, error })\n\n // https://github.com/clappr/clappr/issues/1076\n result && process.nextTick(() => !this._destroyed && this.play())\n })\n }\n\n // See Playback.canAutoPlay()\n canAutoPlay(cb) {\n if (this.options.disableCanAutoPlay)\n cb(true, null)\n\n let opts = {\n timeout: this.options.autoPlayTimeout || 500,\n inline: this.options.playback.playInline || false,\n muted: this.options.mute || false, // Known issue: mediacontrols may asynchronously mute video\n }\n\n // Use current video element if recycling feature enabled with mobile devices\n if (Browser.isMobile && DomRecycler.options.recycleVideo)\n opts.element = this.el\n\n // Desktop browser autoplay policy may require user action\n // Mobile browser autoplay require user consent and video recycling feature enabled\n // It may returns a false positive with source-less player consent\n canAutoPlayMedia(cb, opts)\n }\n\n _setupExternalTracks(tracks) {\n this._externalTracks = tracks.map(track => {\n return {\n kind: track.kind || 'subtitles', // Default is 'subtitles'\n label: track.label,\n lang: track.lang,\n src: track.src,\n }\n })\n }\n\n /**\n * Sets the source url on the <video> element, and also the 'src' property.\n * @method setupSrc\n * @private\n * @param {String} srcUrl The source URL.\n */\n _setupSrc(srcUrl) {\n if (this.el.src === srcUrl)\n return\n\n this._ccIsSetup = false\n this.el.src = srcUrl\n this._src = this.el.src\n }\n\n _onLoadedMetadata(e) {\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_LOADEDMETADATA, { duration: e.target.duration, data: e })\n this._updateSettings()\n const autoSeekFromUrl = typeof (this._options.autoSeekFromUrl) === 'undefined' || this._options.autoSeekFromUrl\n if (this.getPlaybackType() !== Playback.LIVE && autoSeekFromUrl)\n this._checkInitialSeek()\n\n }\n\n _onDurationChange() {\n this._updateSettings()\n this._onTimeUpdate()\n // onProgress uses the duration\n this._onProgress()\n }\n\n _updateSettings() {\n // we can't figure out if hls resource is VoD or not until it is being loaded or duration has changed.\n // that's why we check it again and update media control accordingly.\n if (this.getPlaybackType() === Playback.VOD || this.getPlaybackType() === Playback.AOD)\n this.settings.left = ['playpause', 'position', 'duration']\n else\n this.settings.left = ['playstop']\n\n this.settings.seekEnabled = this.isSeekEnabled()\n this.trigger(Events.PLAYBACK_SETTINGSUPDATE)\n }\n\n isSeekEnabled() {\n return isFinite(this.getDuration())\n }\n\n getPlaybackType() {\n const onDemandType = this.tagName === 'audio' ? Playback.AOD : Playback.VOD\n return [0, undefined, Infinity].indexOf(this.el.duration) >= 0 ? Playback.LIVE : onDemandType\n }\n\n isHighDefinitionInUse() {\n return false\n }\n\n // On mobile device, HTML5 video element \"retains\" user action consent if\n // load() method is called. See Player.consent().\n consent() {\n if (!this.isPlaying()) {\n super.consent()\n this.el.load()\n }\n }\n\n play() {\n this.trigger(Events.PLAYBACK_PLAY_INTENT)\n this._stopped = false\n this._setupSrc(this._src)\n this._handleBufferingEvents()\n let promise = this.el.play()\n // For more details, see https://developers.google.com/web/updates/2016/03/play-returns-promise\n if (promise && promise.catch)\n promise.catch(() => {})\n\n }\n\n pause() {\n this.el.pause()\n }\n\n stop() {\n this.pause()\n this._stopped = true\n // src will be added again in play()\n this.el.removeAttribute('src')\n this.el.load() // load with no src to stop loading of the previous source and avoid leaks\n this._stopPlayheadMovingChecks()\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_STOP)\n }\n\n volume(value) {\n if (value === 0) {\n this.$el.attr({ muted: 'true' })\n this.el.muted = true\n } else {\n this.$el.attr({ muted: null })\n this.el.muted = false\n this.el.volume = value / 100\n }\n }\n\n /**\n * @deprecated\n * @private\n */\n mute() {\n this.el.muted = true\n }\n\n /**\n * @deprecated\n * @private\n */\n unmute() {\n this.el.muted = false\n }\n\n isMuted() {\n return this.el.muted === true || this.el.volume === 0\n }\n\n isPlaying() {\n return !this.el.paused && !this.el.ended\n }\n\n get isReady() {\n return this._isReadyState\n }\n\n _startPlayheadMovingChecks() {\n if (this._playheadMovingTimer !== null)\n return\n\n this._playheadMovingTimeOnCheck = null\n this._determineIfPlayheadMoving()\n this._playheadMovingTimer = setInterval(this._determineIfPlayheadMoving.bind(this), 500)\n }\n\n _stopPlayheadMovingChecks() {\n if (this._playheadMovingTimer === null)\n return\n\n clearInterval(this._playheadMovingTimer)\n this._playheadMovingTimer = null\n this._playheadMoving = false\n }\n\n _determineIfPlayheadMoving() {\n const before = this._playheadMovingTimeOnCheck\n const now = this.el.currentTime\n this._playheadMoving = before !== now\n this._playheadMovingTimeOnCheck = now\n this._handleBufferingEvents()\n }\n\n // this seems to happen when the user is having to wait\n // for something to happen AFTER A USER INTERACTION\n // e.g the player might be buffering, but when `play()` is called\n // only at this point will this be called.\n // Or the user may seek somewhere but the new area requires buffering,\n // so it will fire then as well.\n // On devices where playing is blocked until requested with a user action,\n // buffering may start, but never finish until the user initiates a play,\n // but this only happens when play is actually requested\n _onWaiting() {\n this._loadStarted = true\n this._handleBufferingEvents()\n }\n\n // called after the first frame has loaded\n // note this doesn't fire on ios before the user has requested play\n // ideally the \"loadstart\" event would be used instead, but this fires\n // before a user has requested play on iOS, and also this is always fired\n // even if the preload setting is \"none\". In both these cases this causes\n // infinite buffering until the user does something which isn't great.\n _onLoadedData() {\n this._loadStarted = true\n this._handleBufferingEvents()\n }\n\n // note this doesn't fire on ios before user has requested play\n _onCanPlay() {\n this._handleBufferingEvents()\n }\n\n _onPlaying() {\n this._checkForClosedCaptions()\n this._startPlayheadMovingChecks()\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_PLAY)\n }\n\n _onPause() {\n this._stopPlayheadMovingChecks()\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_PAUSE)\n }\n\n _onSeeking() {\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_SEEK)\n }\n\n _onSeeked() {\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_SEEKED)\n }\n\n _onEnded() {\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_ENDED, this.name)\n }\n\n // The playback should be classed as buffering if the following are true:\n // - the ready state is less then HAVE_FUTURE_DATA or the playhead isn't moving and it should be\n // - the media hasn't \"ended\",\n // - the media hasn't been stopped\n // - loading has started\n _handleBufferingEvents() {\n const playheadShouldBeMoving = !this.el.ended && !this.el.paused\n const buffering = this._loadStarted && !this.el.ended && !this._stopped && ((playheadShouldBeMoving && !this._playheadMoving) || this.el.readyState < this.el.HAVE_FUTURE_DATA)\n if (this._isBuffering !== buffering) {\n this._isBuffering = buffering\n if (buffering)\n this.trigger(Events.PLAYBACK_BUFFERING, this.name)\n else\n this.trigger(Events.PLAYBACK_BUFFERFULL, this.name)\n\n }\n }\n\n _onError() {\n const { code, message } = this.el.error || UNKNOWN_ERROR\n const isUnknownError = code === UNKNOWN_ERROR.code\n\n const formattedError = this.createError({\n code,\n description: message,\n raw: this.el.error,\n level: isUnknownError ? PlayerError.Levels.WARN : PlayerError.Levels.FATAL\n })\n\n if (isUnknownError)\n Log.warn(this.name, 'HTML5 unknown error: ', formattedError)\n else\n this.trigger(Events.PLAYBACK_ERROR, formattedError)\n }\n\n destroy() {\n this._destroyed = true\n this.handleTextTrackChange && this.el.textTracks.removeEventListener('change', this.handleTextTrackChange)\n super.destroy()\n this.el.removeAttribute('src')\n this.el.load() // load with no src to stop loading of the previous source and avoid leaks\n this._src = null\n DomRecycler.garbage(this.$el)\n }\n\n seek(time) {\n this.el.currentTime = time\n }\n\n seekPercentage(percentage) {\n const time = this.el.duration * (percentage / 100)\n this.seek(time)\n }\n\n _checkInitialSeek() {\n const seekTime = seekStringToSeconds()\n if (seekTime !== 0)\n this.seek(seekTime)\n\n }\n\n getCurrentTime() {\n return this.el.currentTime\n }\n\n getDuration() {\n return this.el.duration\n }\n\n _onTimeUpdate() {\n if (this.getPlaybackType() === Playback.LIVE)\n this.trigger(Events.PLAYBACK_TIMEUPDATE, { current: 1, total: 1 }, this.name)\n else\n this.trigger(Events.PLAYBACK_TIMEUPDATE, { current: this.el.currentTime, total: this.el.duration }, this.name)\n\n }\n\n _onProgress() {\n if (!this.el.buffered.length)\n return\n\n let buffered = []\n let bufferedPos = 0\n for (let i = 0; i < this.el.buffered.length; i++) {\n buffered = [...buffered, { start: this.el.buffered.start(i), end: this.el.buffered.end(i) }]\n if (this.el.currentTime >= buffered[i].start && this.el.currentTime <= buffered[i].end)\n bufferedPos = i\n\n }\n const progress = {\n start: buffered[bufferedPos].start,\n current: buffered[bufferedPos].end,\n total: this.el.duration\n }\n this.trigger(Events.PLAYBACK_PROGRESS, progress, buffered)\n }\n\n _typeFor(src) {\n let mimeTypes = HTML5Video._mimeTypesForUrl(src, MIMETYPES, this.options.mimeType)\n if (mimeTypes.length === 0)\n mimeTypes = HTML5Video._mimeTypesForUrl(src, AUDIO_MIMETYPES, this.options.mimeType)\n\n const mimeType = mimeTypes[0] || ''\n return mimeType.split(';')[0]\n }\n\n _ready() {\n if (this._isReadyState)\n return\n\n this._isReadyState = true\n this.trigger(Events.PLAYBACK_READY, this.name)\n }\n\n _checkForClosedCaptions() {\n // Check if CC available only if current playback is HTML5Video\n if (this.isHTML5Video && !this._ccIsSetup) {\n if (this.hasClosedCaptionsTracks) {\n this.trigger(Events.PLAYBACK_SUBTITLE_AVAILABLE)\n const trackId = this.closedCaptionsTrackId\n this.closedCaptionsTrackId = trackId\n this.handleTextTrackChange = this._handleTextTrackChange.bind(this)\n this.el.textTracks.addEventListener('change', this.handleTextTrackChange)\n }\n this._ccIsSetup = true\n }\n }\n\n _handleTextTrackChange() {\n let tracks = this.closedCaptionsTracks\n let track = tracks.find(track => track.track.mode === 'showing') || { id: -1 }\n\n if (this._ccTrackId !== track.id) {\n this._ccTrackId = track.id\n this.trigger(Events.PLAYBACK_SUBTITLE_CHANGED, {\n id: track.id\n })\n }\n }\n\n get isHTML5Video() {\n return this.name === HTML5Video.prototype.name\n }\n\n get closedCaptionsTracks() {\n let id = 0\n let trackId = () => { return id++ }\n let textTracks = this.el.textTracks ? Array.from(this.el.textTracks) : []\n\n return textTracks\n .filter(track => track.kind === 'subtitles' || track.kind === 'captions')\n .map(track => { return { id: trackId(), name: track.label, track: track } })\n }\n\n get closedCaptionsTrackId() {\n return this._ccTrackId\n }\n\n set closedCaptionsTrackId(trackId) {\n if (!isNumber(trackId))\n return\n\n\n let tracks = this.closedCaptionsTracks\n let showingTrack\n\n // Note: -1 is for hide all tracks\n if (trackId !== -1) {\n showingTrack = tracks.find(track => track.id === trackId)\n if (!showingTrack)\n return // Track id not found\n\n if (showingTrack.track.mode === 'showing')\n return // Track already showing\n\n }\n\n // Since it is possible to display multiple tracks,\n // ensure that all tracks are hidden.\n tracks\n .filter(track => track.track.mode !== 'hidden')\n .forEach(track => track.track.mode = 'hidden')\n\n showingTrack && (showingTrack.track.mode = 'showing')\n\n this._ccTrackId = trackId\n this.trigger(Events.PLAYBACK_SUBTITLE_CHANGED, {\n id: trackId\n })\n }\n\n get template() { return template(tracksHTML) }\n\n render() {\n if (this.options.playback.disableContextMenu) {\n this.$el.on('contextmenu', () => {\n return false\n })\n }\n\n if (this._externalTracks && this._externalTracks.length > 0) {\n this.$el.html(this.template({\n tracks: this._externalTracks,\n }))\n }\n\n this._ready()\n return this\n }\n}\n\nHTML5Video._mimeTypesForUrl = function(resourceUrl, mimeTypesByExtension, mimeType) {\n const extension = (resourceUrl.split('?')[0].match(/.*\\.(.*)$/) || [])[1]\n let mimeTypes = mimeType || (extension && mimeTypesByExtension[extension.toLowerCase()]) || []\n return (mimeTypes.constructor === Array) ? mimeTypes : [mimeTypes]\n}\n\nHTML5Video._canPlay = function(type, mimeTypesByExtension, resourceUrl, mimeType) {\n let mimeTypes = HTML5Video._mimeTypesForUrl(resourceUrl, mimeTypesByExtension, mimeType)\n const media = document.createElement(type)\n return !!(mimeTypes.filter(mediaType => !!media.canPlayType(mediaType).replace(/no/, ''))[0])\n}\n\nHTML5Video.canPlay = function(resourceUrl, mimeType) {\n return HTML5Video._canPlay('audio', AUDIO_MIMETYPES, resourceUrl, mimeType) ||\n HTML5Video._canPlay('video', MIMETYPES, resourceUrl, mimeType)\n}\n","module.exports = \"<% for (var i = 0; i < tracks.length; i++) { %>\\n <track data-html5-video-track=\\\"<%= i %>\\\" kind=\\\"<%= tracks[i].kind %>\\\" label=\\\"<%= tracks[i].label %>\\\" srclang=\\\"<%= tracks[i].lang %>\\\" src=\\\"<%= tracks[i].src %>\\\" />\\n<% }; %>\\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/joaopaulo/Workstation/JS/clappr/src/base/scss!./style.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/joaopaulo/Workstation/JS/clappr/src/base/scss!./style.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/joaopaulo/Workstation/JS/clappr/src/base/scss!./style.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"[data-html5-video] {\\n position: absolute;\\n height: 100%;\\n width: 100%;\\n display: block; }\\n\", \"\"]);\n\n// exports\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport Events from '../../base/events'\nimport Playback from '../../base/playback'\nimport HTML5Video from '../../playbacks/html5_video'\n\n// TODO: remove this playback and change HTML5Video to HTML5Playback (breaking change, only after 0.3.0)\nexport default class HTML5Audio extends HTML5Video {\n get name() { return 'html5_audio' }\n get tagName() { return 'audio' }\n\n get isAudioOnly() {\n return true\n }\n\n updateSettings() {\n this.settings.left = ['playpause', 'position', 'duration']\n this.settings.seekEnabled = this.isSeekEnabled()\n this.trigger(Events.PLAYBACK_SETTINGSUPDATE)\n }\n\n getPlaybackType() {\n return Playback.AOD\n }\n}\n\nHTML5Audio.canPlay = function(resourceUrl, mimeType) {\n const mimetypes = {\n 'wav': ['audio/wav'],\n 'mp3': ['audio/mp3', 'audio/mpeg;codecs=\"mp3\"'],\n 'aac': ['audio/mp4;codecs=\"mp4a.40.5\"'],\n 'oga': ['audio/ogg']\n }\n return HTML5Video._canPlay('audio', mimetypes, resourceUrl, mimeType)\n}\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport Playback from '../../base/playback'\nimport Events from '../../base/events'\nimport './public/style.scss'\n\nexport default class HTMLImg extends Playback {\n get name() { return 'html_img' }\n get tagName() { return 'img' }\n get attributes() {\n return {\n 'data-html-img': ''\n }\n }\n\n get events() {\n return {\n 'load': '_onLoad',\n 'abort': '_onError',\n 'error': '_onError'\n }\n }\n\n getPlaybackType() {\n return Playback.NO_OP\n }\n\n constructor(params) {\n super(params)\n this.el.src = params.src\n }\n\n render() {\n this.trigger(Events.PLAYBACK_READY, this.name)\n return this\n }\n\n _onLoad() {\n this.trigger(Events.PLAYBACK_ENDED, this.name)\n }\n\n _onError(evt) {\n const m = (evt.type === 'error') ? 'load error' : 'loading aborted'\n this.trigger(Events.PLAYBACK_ERROR, { message: m }, this.name)\n }\n}\n\nHTMLImg.canPlay = function(resource) {\n return /\\.(png|jpg|jpeg|gif|bmp|tiff|pgm|pnm|webp)(|\\?.*)$/i.test(resource)\n}\n","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/joaopaulo/Workstation/JS/clappr/src/base/scss!./style.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/joaopaulo/Workstation/JS/clappr/src/base/scss!./style.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/joaopaulo/Workstation/JS/clappr/src/base/scss!./style.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"[data-html-img] {\\n max-width: 100%;\\n max-height: 100%; }\\n\", \"\"]);\n\n// exports\n","import { requestAnimationFrame, cancelAnimationFrame } from '../../base/utils'\nimport Playback from '../../base/playback'\nimport template from '../../base/template'\nimport Events from '../../base/events'\nimport noOpHTML from './public/error.html'\nimport './public/style.scss'\n\nexport default class NoOp extends Playback {\n get name() { return 'no_op' }\n get template() { return template(noOpHTML) }\n get attributes() {\n return { 'data-no-op': '' }\n }\n\n constructor(...args) {\n super(...args)\n this._noiseFrameNum = -1\n }\n\n render() {\n const playbackNotSupported = this.options.playbackNotSupportedMessage || this.i18n.t('playback_not_supported')\n this.$el.html(this.template({ message: playbackNotSupported }))\n this.trigger(Events.PLAYBACK_READY, this.name)\n const showForNoOp = !!(this.options.poster && this.options.poster.showForNoOp)\n if (this.options.autoPlay || !showForNoOp)\n this._animate()\n\n return this\n }\n\n _noise() {\n this._noiseFrameNum = (this._noiseFrameNum+1)%5\n if (this._noiseFrameNum) {\n // only update noise every 5 frames to save cpu\n return\n }\n\n const idata = this.context.createImageData(this.context.canvas.width, this.context.canvas.height)\n let buffer32\n try {\n buffer32 = new Uint32Array(idata.data.buffer)\n } catch (err) {\n buffer32 = new Uint32Array(this.context.canvas.width * this.context.canvas.height * 4)\n const data=idata.data\n for (let i = 0; i < data.length; i++)\n buffer32[i]=data[i]\n\n }\n\n const len = buffer32.length,\n m = Math.random() * 6 + 4\n let run = 0,\n color = 0\n for (let i = 0; i < len;) {\n if (run < 0) {\n run = m * Math.random()\n const p = Math.pow(Math.random(), 0.4)\n color = (255 * p) << 24\n }\n run -= 1\n buffer32[i++] = color\n }\n this.context.putImageData(idata, 0, 0)\n }\n\n _loop() {\n if (this._stop)\n return\n\n this._noise()\n this._animationHandle = requestAnimationFrame(() => this._loop())\n }\n\n destroy() {\n if (this._animationHandle) {\n cancelAnimationFrame(this._animationHandle)\n this._stop = true\n }\n }\n\n _animate() {\n this.canvas = this.$el.find('canvas[data-no-op-canvas]')[0]\n this.context = this.canvas.getContext('2d')\n this._loop()\n }\n}\n\nNoOp.canPlay = (source) => { // eslint-disable-line no-unused-vars\n return true\n}\n","module.exports = \"<canvas data-no-op-canvas></canvas>\\n<p data-no-op-msg><%=message%><p>\\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/joaopaulo/Workstation/JS/clappr/src/base/scss!./style.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/joaopaulo/Workstation/JS/clappr/src/base/scss!./style.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/joaopaulo/Workstation/JS/clappr/src/base/scss!./style.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"[data-no-op] {\\n position: absolute;\\n height: 100%;\\n width: 100%;\\n text-align: center; }\\n\\n[data-no-op] p[data-no-op-msg] {\\n position: absolute;\\n text-align: center;\\n font-size: 25px;\\n left: 0;\\n right: 0;\\n color: white;\\n padding: 10px;\\n /* center vertically */\\n top: 50%;\\n -webkit-transform: translateY(-50%);\\n transform: translateY(-50%);\\n max-height: 100%;\\n overflow: auto; }\\n\\n[data-no-op] canvas[data-no-op-canvas] {\\n background-color: #777;\\n height: 100%;\\n width: 100%; }\\n\", \"\"]);\n\n// exports\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport UIContainerPlugin from '../../base/ui_container_plugin'\nimport Events from '../../base/events'\nimport template from '../../base/template'\nimport spinnerHTML from './public/spinner.html'\nimport './public/spinner.scss'\n\nexport default class SpinnerThreeBouncePlugin extends UIContainerPlugin {\n get name() { return 'spinner' }\n get attributes() {\n return {\n 'data-spinner':'',\n 'class': 'spinner-three-bounce'\n }\n }\n\n constructor(container) {\n super(container)\n this.template = template(spinnerHTML)\n this.showTimeout = null\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERING, this.onBuffering)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERFULL, this.onBufferFull)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_ENDED, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_ERROR, this.onStop)\n this.render()\n }\n\n onBuffering() {\n this.show()\n }\n\n onBufferFull() {\n this.hide()\n }\n\n onStop() {\n this.hide()\n }\n\n show() {\n if (this.showTimeout === null)\n this.showTimeout = setTimeout(() => this.$el.show(), 300)\n\n }\n\n hide() {\n if (this.showTimeout !== null) {\n clearTimeout(this.showTimeout)\n this.showTimeout = null\n }\n this.$el.hide()\n }\n\n render() {\n this.$el.html(this.template())\n this.container.$el.append(this.$el)\n this.$el.hide()\n if (this.container.buffering)\n this.onBuffering()\n\n return this\n }\n}\n","module.exports = \"<div data-bounce1></div><div data-bounce2></div><div data-bounce3></div>\\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/joaopaulo/Workstation/JS/clappr/src/base/scss!./spinner.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/joaopaulo/Workstation/JS/clappr/src/base/scss!./spinner.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/joaopaulo/Workstation/JS/clappr/src/base/scss!./spinner.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".spinner-three-bounce[data-spinner] {\\n position: absolute;\\n margin: 0 auto;\\n width: 70px;\\n text-align: center;\\n z-index: 999;\\n left: 0;\\n right: 0;\\n margin-left: auto;\\n margin-right: auto;\\n /* center vertically */\\n top: 50%;\\n -webkit-transform: translateY(-50%);\\n transform: translateY(-50%); }\\n .spinner-three-bounce[data-spinner] > div {\\n width: 18px;\\n height: 18px;\\n background-color: #FFFFFF;\\n border-radius: 100%;\\n display: inline-block;\\n -webkit-animation: bouncedelay 1.4s infinite ease-in-out;\\n animation: bouncedelay 1.4s infinite ease-in-out;\\n /* Prevent first frame from flickering when animation starts */\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both; }\\n .spinner-three-bounce[data-spinner] [data-bounce1] {\\n -webkit-animation-delay: -0.32s;\\n animation-delay: -0.32s; }\\n .spinner-three-bounce[data-spinner] [data-bounce2] {\\n -webkit-animation-delay: -0.16s;\\n animation-delay: -0.16s; }\\n\\n@-webkit-keyframes bouncedelay {\\n 0%, 80%, 100% {\\n -webkit-transform: scale(0);\\n transform: scale(0); }\\n 40% {\\n -webkit-transform: scale(1);\\n transform: scale(1); } }\\n\\n@keyframes bouncedelay {\\n 0%, 80%, 100% {\\n -webkit-transform: scale(0);\\n transform: scale(0); }\\n 40% {\\n -webkit-transform: scale(1);\\n transform: scale(1); } }\\n\", \"\"]);\n\n// exports\n","import StatsPlugin from './stats'\nexport default StatsPlugin\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport ContainerPlugin from '../../base/container_plugin'\nimport Events from '../../base/events'\nimport $ from 'clappr-zepto'\n\nexport default class StatsPlugin extends ContainerPlugin {\n get name() { return 'stats' }\n\n constructor(container) {\n super(container)\n this.setInitialAttrs()\n this.reportInterval = this.options.reportInterval || 5000\n this.state = 'IDLE'\n }\n\n bindEvents() {\n this.listenTo(this.container.playback, Events.PLAYBACK_PLAY, this.onPlay)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_ENDED, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_DESTROYED, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERING, this.onBuffering)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERFULL, this.onBufferFull)\n this.listenTo(this.container, Events.CONTAINER_STATS_ADD, this.onStatsAdd)\n this.listenTo(this.container, Events.CONTAINER_BITRATE, this.onStatsAdd)\n this.listenTo(this.container.playback, Events.PLAYBACK_STATS_ADD, this.onStatsAdd)\n }\n\n setInitialAttrs() {\n this.firstPlay = true\n this.startupTime = 0\n this.rebufferingTime = 0\n this.watchingTime = 0\n this.rebuffers = 0\n this.externalMetrics = {}\n }\n\n onPlay() {\n this.state = 'PLAYING'\n this.watchingTimeInit = Date.now()\n if (!this.intervalId)\n this.intervalId = setInterval(this.report.bind(this), this.reportInterval)\n\n }\n\n onStop() {\n clearInterval(this.intervalId)\n this.report()\n this.intervalId = undefined\n this.state = 'STOPPED'\n }\n\n onBuffering() {\n if (this.firstPlay)\n this.startupTimeInit = Date.now()\n else\n this.rebufferingTimeInit = Date.now()\n\n this.state = 'BUFFERING'\n this.rebuffers++\n }\n\n onBufferFull() {\n if (this.firstPlay && this.startupTimeInit) {\n this.firstPlay = false\n this.startupTime = Date.now() - this.startupTimeInit\n this.watchingTimeInit = Date.now()\n } else if (this.rebufferingTimeInit) { this.rebufferingTime += this.getRebufferingTime() }\n\n this.rebufferingTimeInit = undefined\n this.state = 'PLAYING'\n }\n\n getRebufferingTime() {\n return Date.now() - this.rebufferingTimeInit\n }\n\n getWatchingTime() {\n const totalTime = (Date.now() - this.watchingTimeInit)\n return totalTime - this.rebufferingTime\n }\n\n isRebuffering() {\n return !!this.rebufferingTimeInit\n }\n\n onStatsAdd(metric) {\n $.extend(this.externalMetrics, metric)\n }\n\n getStats() {\n const metrics = {\n startupTime: this.startupTime,\n rebuffers: this.rebuffers,\n rebufferingTime: this.isRebuffering()? this.rebufferingTime + this.getRebufferingTime(): this.rebufferingTime,\n watchingTime: this.isRebuffering()? this.getWatchingTime() - this.getRebufferingTime(): this.getWatchingTime()\n }\n $.extend(metrics, this.externalMetrics)\n return metrics\n }\n\n report() {\n this.container.statsReport(this.getStats())\n }\n}\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport UIContainerPlugin from '../../base/ui_container_plugin'\nimport Events from '../../base/events'\nimport template from '../../base/template'\nimport watermarkHTML from './public/watermark.html'\nimport './public/watermark.scss'\n\nexport default class WaterMarkPlugin extends UIContainerPlugin {\n get name() { return 'watermark' }\n\n get template() { return template(watermarkHTML) }\n\n constructor(container) {\n super(container)\n this.configure()\n }\n\n bindEvents() {\n this.listenTo(this.container, Events.CONTAINER_PLAY, this.onPlay)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_OPTIONS_CHANGE, this.configure)\n }\n\n configure() {\n this.position = this.options.position || 'bottom-right'\n if (this.options.watermark) {\n this.imageUrl = this.options.watermark\n this.imageLink = this.options.watermarkLink\n this.render()\n } else { this.$el.remove() }\n\n }\n\n onPlay() {\n if (!this.hidden)\n this.$el.show()\n }\n\n onStop() {\n this.$el.hide()\n }\n\n render() {\n this.$el.hide()\n const templateOptions = { position: this.position, imageUrl: this.imageUrl, imageLink: this.imageLink }\n this.$el.html(this.template(templateOptions))\n this.container.$el.append(this.$el)\n return this\n }\n}\n","module.exports = \"<div class=\\\"clappr-watermark\\\" data-watermark data-watermark-<%=position %>>\\n<% if(typeof imageLink !== 'undefined') { %>\\n<a target=_blank href=\\\"<%= imageLink %>\\\">\\n<% } %>\\n<img src=\\\"<%= imageUrl %>\\\">\\n<% if(typeof imageLink !== 'undefined') { %>\\n</a>\\n<% } %>\\n</div>\\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/joaopaulo/Workstation/JS/clappr/src/base/scss!./watermark.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/joaopaulo/Workstation/JS/clappr/src/base/scss!./watermark.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/joaopaulo/Workstation/JS/clappr/src/base/scss!./watermark.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".clappr-watermark[data-watermark] {\\n position: absolute;\\n min-width: 70px;\\n max-width: 200px;\\n width: 12%;\\n text-align: center;\\n z-index: 10; }\\n\\n.clappr-watermark[data-watermark] a {\\n outline: none;\\n cursor: pointer; }\\n\\n.clappr-watermark[data-watermark] img {\\n max-width: 100%; }\\n\\n.clappr-watermark[data-watermark-bottom-left] {\\n bottom: 10px;\\n left: 10px; }\\n\\n.clappr-watermark[data-watermark-bottom-right] {\\n bottom: 10px;\\n right: 42px; }\\n\\n.clappr-watermark[data-watermark-top-left] {\\n top: 10px;\\n left: 10px; }\\n\\n.clappr-watermark[data-watermark-top-right] {\\n top: 10px;\\n right: 37px; }\\n\", \"\"]);\n\n// exports\n","//Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport UIContainerPlugin from '../../base/ui_container_plugin'\nimport Events from '../../base/events'\nimport template from '../../base/template'\nimport Playback from '../../base/playback'\nimport PlayerError from '../../components/error/error'\nimport posterHTML from './public/poster.html'\nimport { SvgIcons } from '../../base/utils'\nimport './public/poster.scss'\n\nexport default class PosterPlugin extends UIContainerPlugin {\n get name() { return 'poster' }\n get template() { return template(posterHTML) }\n get shouldRender() {\n const showForNoOp = !!(this.options.poster && this.options.poster.showForNoOp)\n return this.container.playback.name !== 'html_img' && (this.container.playback.getPlaybackType() !== Playback.NO_OP || showForNoOp)\n }\n\n get attributes() {\n return {\n 'class': 'player-poster',\n 'data-poster': ''\n }\n }\n\n get events() {\n return {\n 'click': 'clicked'\n }\n }\n\n get showOnVideoEnd() {\n return !this.options.poster || this.options.poster.showOnVideoEnd || this.options.poster.showOnVideoEnd === undefined\n }\n\n constructor(container) {\n super(container)\n this.hasStartedPlaying = false\n this.playRequested = false\n this.render()\n process.nextTick(() => this.update())\n }\n\n bindEvents() {\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_PLAY, this.onPlay)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERING, this.update)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERFULL, this.update)\n this.listenTo(this.container, Events.CONTAINER_OPTIONS_CHANGE, this.render)\n this.listenTo(this.container, Events.CONTAINER_ERROR, this.onError)\n this.showOnVideoEnd && this.listenTo(this.container, Events.CONTAINER_ENDED, this.onStop)\n }\n\n onError(error) {\n this.hasFatalError = error.level === PlayerError.Levels.FATAL\n\n if (this.hasFatalError) {\n this.hasStartedPlaying = false\n this.playRequested = false\n this.showPlayButton()\n }\n }\n\n onPlay() {\n this.hasStartedPlaying = true\n this.update()\n }\n\n onStop() {\n this.hasStartedPlaying = false\n this.playRequested = false\n this.update()\n }\n\n updatePlayButton(show) {\n if (show && (!this.options.chromeless || this.options.allowUserInteraction))\n this.showPlayButton()\n else\n this.hidePlayButton()\n }\n\n showPlayButton() {\n if (this.hasFatalError && !this.options.disableErrorScreen) return\n\n this.$playButton.show()\n this.$el.addClass('clickable')\n }\n\n hidePlayButton() {\n this.$playButton.hide()\n this.$el.removeClass('clickable')\n }\n\n clicked() {\n // Let \"click_to_pause\" plugin handle click event if media has started playing\n if (! this.hasStartedPlaying) {\n if (!this.options.chromeless || this.options.allowUserInteraction) {\n this.playRequested = true\n this.update()\n this.container.play()\n }\n return false\n }\n }\n\n shouldHideOnPlay() {\n // Audio broadcasts should keep the poster up; video should hide poster while playing.\n return !this.container.playback.isAudioOnly\n }\n\n update() {\n if (!this.shouldRender)\n return\n\n let showPlayButton = !this.playRequested && !this.hasStartedPlaying && !this.container.buffering\n this.updatePlayButton(showPlayButton)\n this.updatePoster()\n }\n\n updatePoster() {\n if (!this.hasStartedPlaying) this.showPoster()\n else this.hidePoster()\n }\n\n showPoster() {\n this.container.disableMediaControl()\n this.$el.show()\n }\n\n hidePoster() {\n this.container.enableMediaControl()\n if (this.shouldHideOnPlay())\n this.$el.hide()\n }\n\n render() {\n if (!this.shouldRender)\n return\n\n this.$el.html(this.template())\n\n const isRegularPoster = this.options.poster && this.options.poster.custom === undefined\n\n if (isRegularPoster) {\n const posterUrl = this.options.poster.url || this.options.poster\n this.$el.css({ 'background-image': 'url(' + posterUrl + ')' })\n } else if (this.options.poster) { this.$el.css({ 'background': this.options.poster.custom }) }\n\n this.container.$el.append(this.el)\n this.$playWrapper = this.$el.find('.play-wrapper')\n this.$playWrapper.append(SvgIcons.play)\n this.$playButton = this.$playWrapper.find('svg')\n this.$playButton.addClass('poster-icon')\n this.$playButton.attr('data-poster', '')\n\n let buttonsColor = this.options.mediacontrol && this.options.mediacontrol.buttons\n if (buttonsColor)\n this.$el.find('svg path').css('fill', buttonsColor)\n\n if (this.options.mediacontrol && this.options.mediacontrol.buttons) {\n buttonsColor = this.options.mediacontrol.buttons\n this.$playButton.css('color', buttonsColor)\n }\n this.update()\n return this\n }\n}\n","module.exports = \"<div class=\\\"play-wrapper\\\" data-poster></div>\\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/joaopaulo/Workstation/JS/clappr/src/base/scss!./poster.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/joaopaulo/Workstation/JS/clappr/src/base/scss!./poster.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/joaopaulo/Workstation/JS/clappr/src/base/scss!./poster.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".player-poster[data-poster] {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-pack: center;\\n -ms-flex-pack: center;\\n justify-content: center;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n position: absolute;\\n height: 100%;\\n width: 100%;\\n z-index: 998;\\n top: 0;\\n left: 0;\\n background-color: #000;\\n background-size: cover;\\n background-repeat: no-repeat;\\n background-position: 50% 50%; }\\n .player-poster[data-poster].clickable {\\n cursor: pointer; }\\n .player-poster[data-poster]:hover .play-wrapper[data-poster] {\\n opacity: 1; }\\n .player-poster[data-poster] .play-wrapper[data-poster] {\\n width: 100%;\\n height: 25%;\\n margin: 0 auto;\\n opacity: 0.75;\\n transition: opacity 0.1s ease; }\\n .player-poster[data-poster] .play-wrapper[data-poster] svg {\\n height: 100%; }\\n .player-poster[data-poster] .play-wrapper[data-poster] svg path {\\n fill: #fff; }\\n\", \"\"]);\n\n// exports\n","import GoogleAnalytics from './google_analytics'\nexport default GoogleAnalytics\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport ContainerPlugin from '../../base/container_plugin'\nimport Events from '../../base/events'\n\nexport default class GoogleAnalytics extends ContainerPlugin {\n get name() { return 'google_analytics' }\n constructor(container) {\n super(container)\n if (this.container.options.gaAccount) {\n this.account = this.container.options.gaAccount\n this.trackerName = (this.container.options.gaTrackerName) ? this.container.options.gaTrackerName + '.' : 'Clappr.'\n this.domainName = this.container.options.gaDomainName\n this.currentHDState = undefined\n this.embedScript()\n }\n }\n\n embedScript() {\n if (!window._gat) {\n const script = document.createElement('script')\n script.setAttribute('type', 'text/javascript')\n script.setAttribute('async', 'async')\n script.setAttribute('src', '//www.google-analytics.com/ga.js')\n script.onload = () => this.addEventListeners()\n document.body.appendChild(script)\n } else { this.addEventListeners() }\n\n }\n\n addEventListeners() {\n if (this.container) {\n this.listenTo(this.container, Events.CONTAINER_READY, this.onReady)\n this.listenTo(this.container, Events.CONTAINER_PLAY, this.onPlay)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_PAUSE, this.onPause)\n this.listenTo(this.container, Events.CONTAINER_ENDED, this.onEnded)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERING, this.onBuffering)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERFULL, this.onBufferFull)\n this.listenTo(this.container, Events.CONTAINER_ERROR, this.onError)\n this.listenTo(this.container, Events.CONTAINER_PLAYBACKSTATE, this.onPlaybackChanged)\n this.listenTo(this.container, Events.CONTAINER_VOLUME, (event) => this.onVolumeChanged(event))\n this.listenTo(this.container, Events.CONTAINER_SEEK, (event) => this.onSeek(event))\n this.listenTo(this.container, Events.CONTAINER_FULL_SCREEN, this.onFullscreen)\n this.listenTo(this.container, Events.CONTAINER_HIGHDEFINITIONUPDATE, this.onHD)\n this.listenTo(this.container, Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.onDVR)\n }\n _gaq.push([this.trackerName + '_setAccount', this.account])\n if (this.domainName)\n _gaq.push([this.trackerName + '_setDomainName', this.domainName])\n }\n\n onReady() {\n this.push(['Video', 'Playback', this.container.playback.name])\n }\n\n onPlay() {\n this.push(['Video', 'Play', this.container.playback.src])\n }\n\n onStop() {\n this.push(['Video', 'Stop', this.container.playback.src])\n }\n\n onEnded() {\n this.push(['Video', 'Ended', this.container.playback.src])\n }\n\n onBuffering() {\n this.push(['Video', 'Buffering', this.container.playback.src])\n }\n\n onBufferFull() {\n this.push(['Video', 'Bufferfull', this.container.playback.src])\n }\n\n onError() {\n this.push(['Video', 'Error', this.container.playback.src])\n }\n\n onHD(isHD) {\n const status = isHD ? 'ON': 'OFF'\n if (status !== this.currentHDState) {\n this.currentHDState = status\n this.push(['Video', 'HD - ' + status, this.container.playback.src])\n }\n }\n\n onPlaybackChanged(playbackState) {\n if (playbackState.type !== null)\n this.push(['Video', 'Playback Type - ' + playbackState.type, this.container.playback.src])\n\n }\n\n onDVR(dvrInUse) {\n const status = dvrInUse? 'ON': 'OFF'\n this.push(['Interaction', 'DVR - ' + status, this.container.playback.src])\n }\n\n onPause() {\n this.push(['Video', 'Pause', this.container.playback.src])\n }\n\n onSeek() {\n this.push(['Video', 'Seek', this.container.playback.src])\n }\n\n onVolumeChanged() {\n this.push(['Interaction', 'Volume', this.container.playback.src])\n }\n\n onFullscreen() {\n this.push(['Interaction', 'Fullscreen', this.container.playback.src])\n }\n\n\n push(array) {\n const res = [this.trackerName + '_trackEvent'].concat(array)\n _gaq.push(res)\n }\n\n}\n","//Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport ContainerPlugin from '../../base/container_plugin'\nimport Events from '../../base/events'\nimport Playback from '../../base/playback'\n\nexport default class ClickToPausePlugin extends ContainerPlugin {\n get name() { return 'click_to_pause' }\n\n constructor(container) {\n super(container)\n }\n\n bindEvents() {\n this.listenTo(this.container, Events.CONTAINER_CLICK, this.click)\n this.listenTo(this.container, Events.CONTAINER_SETTINGSUPDATE, this.settingsUpdate)\n }\n\n click() {\n if (this.container.getPlaybackType() !== Playback.LIVE || this.container.isDvrEnabled()) {\n if (this.container.isPlaying())\n this.container.pause()\n else\n this.container.play()\n\n }\n }\n\n settingsUpdate() {\n const pointerEnabled = this.container.getPlaybackType() !== Playback.LIVE || this.container.isDvrEnabled()\n if (pointerEnabled === this.pointerEnabled) return\n\n const method = pointerEnabled ? 'addClass' : 'removeClass'\n this.container.$el[method]('pointer-enabled')\n this.pointerEnabled = pointerEnabled\n }\n}\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * The MediaControl is responsible for displaying the Player controls.\n */\n\nimport { Config, Fullscreen, formatTime, extend, removeArrayItem } from '../../base/utils'\nimport { Kibo } from '../../vendor'\nimport Events from '../../base/events'\nimport UICorePlugin from '../../base/ui_core_plugin'\nimport Browser from '../../components/browser'\nimport Mediator from '../../components/mediator'\nimport template from '../../base/template'\nimport Playback from '../../base/playback'\nimport $ from 'clappr-zepto'\nimport './public/media-control.scss'\nimport mediaControlHTML from './public/media-control.html'\nimport { SvgIcons } from '../../base/utils'\n\nexport default class MediaControl extends UICorePlugin {\n get name() { return 'media_control' }\n get disabled() {\n let playbackIsNOOP = this.container && this.container.getPlaybackType() === Playback.NO_OP\n return this.userDisabled || playbackIsNOOP\n }\n\n get container() { return this.core && this.core.activeContainer }\n\n get playback() { return this.core && this.core.activePlayback }\n\n get attributes() {\n return {\n 'class': 'media-control',\n 'data-media-control': ''\n }\n }\n\n get events() {\n return {\n 'click [data-play]': 'play',\n 'click [data-pause]': 'pause',\n 'click [data-playpause]': 'togglePlayPause',\n 'click [data-stop]': 'stop',\n 'click [data-playstop]': 'togglePlayStop',\n 'click [data-fullscreen]': 'toggleFullscreen',\n 'click .bar-container[data-seekbar]': 'seek',\n 'click .bar-container[data-volume]': 'onVolumeClick',\n 'click .drawer-icon[data-volume]': 'toggleMute',\n 'mouseenter .drawer-container[data-volume]': 'showVolumeBar',\n 'mouseleave .drawer-container[data-volume]': 'hideVolumeBar',\n 'mousedown .bar-container[data-volume]': 'startVolumeDrag',\n 'mousemove .bar-container[data-volume]': 'mousemoveOnVolumeBar',\n 'mousedown .bar-scrubber[data-seekbar]': 'startSeekDrag',\n 'mousemove .bar-container[data-seekbar]': 'mousemoveOnSeekBar',\n 'mouseleave .bar-container[data-seekbar]': 'mouseleaveOnSeekBar',\n 'mouseenter .media-control-layer[data-controls]': 'setUserKeepVisible',\n 'mouseleave .media-control-layer[data-controls]': 'resetUserKeepVisible'\n }\n }\n\n get template() { return template(mediaControlHTML) }\n\n get volume() { return (this.container && this.container.isReady) ? this.container.volume : this.intendedVolume }\n get muted() { return this.volume === 0 }\n\n constructor(core) {\n super(core)\n this.persistConfig = this.options.persistConfig\n this.currentPositionValue = null\n this.currentDurationValue = null\n this.keepVisible = false\n this.fullScreenOnVideoTagSupported = null // unknown\n this.setInitialVolume()\n this.settings = {\n left: ['play', 'stop', 'pause'],\n right: ['volume'],\n default: ['position', 'seekbar', 'duration']\n }\n this.kibo = new Kibo(this.options.focusElement)\n this.bindKeyEvents()\n\n if (this.container) {\n if (!$.isEmptyObject(this.container.settings))\n this.settings = $.extend({}, this.container.settings)\n } else {\n this.settings = {}\n }\n\n this.userDisabled = false\n if ((this.container && this.container.mediaControlDisabled) || this.options.chromeless)\n this.disable()\n\n this.stopDragHandler = (event) => this.stopDrag(event)\n this.updateDragHandler = (event) => this.updateDrag(event)\n $(document).bind('mouseup', this.stopDragHandler)\n $(document).bind('mousemove', this.updateDragHandler)\n }\n\n getExternalInterface() {\n return {\n setVolume: this.setVolume,\n getVolume: () => this.volume,\n }\n }\n\n bindEvents() {\n this.stopListening()\n this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.onActiveContainerChanged)\n this.listenTo(this.core, Events.CORE_MOUSE_MOVE, this.show)\n this.listenTo(this.core, Events.CORE_MOUSE_LEAVE, () => this.hide(this.options.hideMediaControlDelay))\n this.listenTo(this.core, Events.CORE_FULLSCREEN, this.show)\n this.listenTo(this.core, Events.CORE_OPTIONS_CHANGE, this.configure)\n Mediator.on(`${this.options.playerId}:${Events.PLAYER_RESIZE}`, this.playerResize, this)\n this.bindContainerEvents()\n }\n\n bindContainerEvents() {\n if (!this.container) return\n this.listenTo(this.container, Events.CONTAINER_PLAY, this.changeTogglePlay)\n this.listenTo(this.container, Events.CONTAINER_PAUSE, this.changeTogglePlay)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.changeTogglePlay)\n this.listenTo(this.container, Events.CONTAINER_DBLCLICK, this.toggleFullscreen)\n this.listenTo(this.container, Events.CONTAINER_TIMEUPDATE, this.onTimeUpdate)\n this.listenTo(this.container, Events.CONTAINER_PROGRESS, this.updateProgressBar)\n this.listenTo(this.container, Events.CONTAINER_SETTINGSUPDATE, this.settingsUpdate)\n this.listenTo(this.container, Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.settingsUpdate)\n this.listenTo(this.container, Events.CONTAINER_HIGHDEFINITIONUPDATE, this.highDefinitionUpdate)\n this.listenTo(this.container, Events.CONTAINER_MEDIACONTROL_DISABLE, this.disable)\n this.listenTo(this.container, Events.CONTAINER_MEDIACONTROL_ENABLE, this.enable)\n this.listenTo(this.container, Events.CONTAINER_ENDED, this.ended)\n this.listenTo(this.container, Events.CONTAINER_VOLUME, this.onVolumeChanged)\n this.listenTo(this.container, Events.CONTAINER_OPTIONS_CHANGE, this.setInitialVolume)\n if (this.container.playback.el.nodeName.toLowerCase() === 'video') {\n // wait until the metadata has loaded and then check if fullscreen on video tag is supported\n this.listenToOnce(this.container, Events.CONTAINER_LOADEDMETADATA, this.onLoadedMetadataOnVideoTag)\n }\n }\n\n disable() {\n this.userDisabled = true\n this.hide()\n this.unbindKeyEvents()\n this.$el.hide()\n }\n\n enable() {\n if (this.options.chromeless) return\n this.userDisabled = false\n this.bindKeyEvents()\n this.show()\n }\n\n play() {\n this.container && this.container.play()\n }\n\n pause() {\n this.container && this.container.pause()\n }\n\n stop() {\n this.container && this.container.stop()\n }\n\n setInitialVolume() {\n const initialVolume = (this.persistConfig) ? Config.restore('volume') : 100\n const options = this.container && this.container.options || this.options\n this.setVolume(options.mute ? 0 : initialVolume, true)\n }\n\n onVolumeChanged() {\n this.updateVolumeUI()\n }\n\n onLoadedMetadataOnVideoTag() {\n let video = this.playback && this.playback.el\n // video.webkitSupportsFullscreen is deprecated but iOS appears to only use this\n // see https://github.com/clappr/clappr/issues/1127\n if (!Fullscreen.fullscreenEnabled() && video.webkitSupportsFullscreen) {\n this.fullScreenOnVideoTagSupported = true\n this.settingsUpdate()\n }\n }\n\n updateVolumeUI() {\n // this will be called after a render\n if (!this.rendered) return\n\n // update volume bar scrubber/fill on bar mode\n this.$volumeBarContainer.find('.bar-fill-2').css({})\n const containerWidth = this.$volumeBarContainer.width()\n const barWidth = this.$volumeBarBackground.width()\n const offset = (containerWidth - barWidth) / 2.0\n const pos = barWidth * this.volume / 100.0 + offset\n this.$volumeBarFill.css({ width: `${this.volume}%` })\n this.$volumeBarScrubber.css({ left: pos })\n\n // update volume bar segments on segmented bar mode\n this.$volumeBarContainer.find('.segmented-bar-element').removeClass('fill')\n const item = Math.ceil(this.volume / 10.0)\n this.$volumeBarContainer.find('.segmented-bar-element').slice(0, item).addClass('fill')\n this.$volumeIcon.html('')\n this.$volumeIcon.removeClass('muted')\n if (!this.muted) {\n this.$volumeIcon.append(SvgIcons.volume)\n } else {\n this.$volumeIcon.append(SvgIcons.volumeMute)\n this.$volumeIcon.addClass('muted')\n }\n this.applyButtonStyle(this.$volumeIcon)\n }\n\n changeTogglePlay() {\n this.$playPauseToggle.html('')\n this.$playStopToggle.html('')\n if (this.container && this.container.isPlaying()) {\n this.$playPauseToggle.append(SvgIcons.pause)\n this.$playStopToggle.append(SvgIcons.stop)\n this.trigger(Events.MEDIACONTROL_PLAYING)\n } else {\n this.$playPauseToggle.append(SvgIcons.play)\n this.$playStopToggle.append(SvgIcons.play)\n this.trigger(Events.MEDIACONTROL_NOTPLAYING)\n Browser.isMobile && this.show()\n }\n this.applyButtonStyle(this.$playPauseToggle)\n this.applyButtonStyle(this.$playStopToggle)\n }\n\n mousemoveOnSeekBar(event) {\n if (this.settings.seekEnabled) {\n const offsetX = event.pageX - this.$seekBarContainer.offset().left - (this.$seekBarHover.width() / 2)\n this.$seekBarHover.css({ left: offsetX })\n }\n this.trigger(Events.MEDIACONTROL_MOUSEMOVE_SEEKBAR, event)\n }\n\n mouseleaveOnSeekBar(event) {\n this.trigger(Events.MEDIACONTROL_MOUSELEAVE_SEEKBAR, event)\n }\n\n onVolumeClick(event) {\n this.setVolume(this.getVolumeFromUIEvent(event))\n }\n\n mousemoveOnVolumeBar(event) {\n this.draggingVolumeBar && this.setVolume(this.getVolumeFromUIEvent(event))\n }\n\n playerResize(size) {\n this.$fullscreenToggle.html('')\n let icon = this.core.isFullscreen() ? SvgIcons.exitFullscreen : SvgIcons.fullscreen\n this.$fullscreenToggle.append(icon)\n this.applyButtonStyle(this.$fullscreenToggle)\n this.$el.find('.media-control').length !== 0 && this.$el.removeClass('w320')\n if (size.width <= 320 || this.options.hideVolumeBar) this.$el.addClass('w320')\n }\n\n togglePlayPause() {\n this.container.isPlaying() ? this.container.pause() : this.container.play()\n return false\n }\n\n togglePlayStop() {\n this.container.isPlaying() ? this.container.stop() : this.container.play()\n }\n\n startSeekDrag(event) {\n if (!this.settings.seekEnabled) return\n this.draggingSeekBar = true\n this.$el.addClass('dragging')\n this.$seekBarLoaded.addClass('media-control-notransition')\n this.$seekBarPosition.addClass('media-control-notransition')\n this.$seekBarScrubber.addClass('media-control-notransition')\n event && event.preventDefault()\n }\n\n startVolumeDrag(event) {\n this.draggingVolumeBar = true\n this.$el.addClass('dragging')\n event && event.preventDefault()\n }\n\n stopDrag(event) {\n this.draggingSeekBar && this.seek(event)\n this.$el.removeClass('dragging')\n this.$seekBarLoaded.removeClass('media-control-notransition')\n this.$seekBarPosition.removeClass('media-control-notransition')\n this.$seekBarScrubber.removeClass('media-control-notransition dragging')\n this.draggingSeekBar = false\n this.draggingVolumeBar = false\n }\n\n updateDrag(event) {\n if (this.draggingSeekBar) {\n event.preventDefault()\n const offsetX = event.pageX - this.$seekBarContainer.offset().left\n let pos = offsetX / this.$seekBarContainer.width() * 100\n pos = Math.min(100, Math.max(pos, 0))\n this.setSeekPercentage(pos)\n } else if (this.draggingVolumeBar) {\n event.preventDefault()\n this.setVolume(this.getVolumeFromUIEvent(event))\n }\n }\n\n getVolumeFromUIEvent(event) {\n const offsetY = event.pageX - this.$volumeBarContainer.offset().left\n const volumeFromUI = (offsetY / this.$volumeBarContainer.width()) * 100\n return volumeFromUI\n }\n\n toggleMute() {\n if (this.muted) {\n this.setVolume(this._mutedVolume || 100)\n this._mutedVolume = null\n return\n }\n\n this._mutedVolume = this.volume\n this.setVolume(0)\n }\n\n setVolume(value, isInitialVolume = false) {\n value = Math.min(100, Math.max(value, 0))\n // this will hold the intended volume\n // it may not actually get set to this straight away\n // if the container is not ready etc\n this.intendedVolume = value\n this.persistConfig && !isInitialVolume && Config.persist('volume', value)\n const setWhenContainerReady = () => {\n if (this.container && this.container.isReady) {\n this.container.setVolume(value)\n } else {\n this.listenToOnce(this.container, Events.CONTAINER_READY, () => {\n this.container.setVolume(value)\n })\n }\n }\n\n if (!this.container)\n this.listenToOnce(this, Events.MEDIACONTROL_CONTAINERCHANGED, () => setWhenContainerReady())\n else\n setWhenContainerReady()\n\n }\n\n toggleFullscreen() {\n this.trigger(Events.MEDIACONTROL_FULLSCREEN, this.name)\n this.container.fullscreen()\n this.core.toggleFullscreen()\n this.resetUserKeepVisible()\n }\n\n onActiveContainerChanged() {\n this.fullScreenOnVideoTagSupported = null\n Mediator.off(`${this.options.playerId}:${Events.PLAYER_RESIZE}`, this.playerResize, this)\n this.bindEvents()\n // set the new container to match the volume of the last one\n this.setInitialVolume()\n this.changeTogglePlay()\n this.bindContainerEvents()\n this.settingsUpdate()\n this.container && this.container.trigger(Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.container.isDvrInUse())\n this.container && this.container.mediaControlDisabled && this.disable()\n this.trigger(Events.MEDIACONTROL_CONTAINERCHANGED)\n }\n\n showVolumeBar() {\n this.hideVolumeId && clearTimeout(this.hideVolumeId)\n this.$volumeBarContainer.removeClass('volume-bar-hide')\n }\n\n hideVolumeBar(timeout = 400) {\n if (!this.$volumeBarContainer) return\n if (this.draggingVolumeBar) {\n this.hideVolumeId = setTimeout(() => this.hideVolumeBar(), timeout)\n } else {\n this.hideVolumeId && clearTimeout(this.hideVolumeId)\n this.hideVolumeId = setTimeout(() => this.$volumeBarContainer.addClass('volume-bar-hide'), timeout)\n }\n }\n\n ended() {\n this.changeTogglePlay()\n }\n\n updateProgressBar(progress) {\n const loadedStart = progress.start / progress.total * 100\n const loadedEnd = progress.current / progress.total * 100\n this.$seekBarLoaded.css({ left: `${loadedStart}%`, width: `${loadedEnd - loadedStart}%` })\n }\n\n onTimeUpdate(timeProgress) {\n if (this.draggingSeekBar) return\n // TODO why should current time ever be negative?\n const position = (timeProgress.current < 0) ? timeProgress.total : timeProgress.current\n\n this.currentPositionValue = position\n this.currentDurationValue = timeProgress.total\n this.renderSeekBar()\n }\n\n renderSeekBar() {\n // this will be triggered as soon as these become available\n if (this.currentPositionValue === null || this.currentDurationValue === null) return\n\n // default to 100%\n this.currentSeekBarPercentage = 100\n if (this.container && (this.container.getPlaybackType() !== Playback.LIVE || this.container.isDvrInUse()))\n this.currentSeekBarPercentage = (this.currentPositionValue / this.currentDurationValue) * 100\n\n this.setSeekPercentage(this.currentSeekBarPercentage)\n\n const newPosition = formatTime(this.currentPositionValue)\n const newDuration = formatTime(this.currentDurationValue)\n if (newPosition !== this.displayedPosition) {\n this.$position.text(newPosition)\n this.displayedPosition = newPosition\n }\n if (newDuration !== this.displayedDuration) {\n this.$duration.text(newDuration)\n this.displayedDuration = newDuration\n }\n }\n\n seek(event) {\n if (!this.settings.seekEnabled) return\n const offsetX = event.pageX - this.$seekBarContainer.offset().left\n let pos = offsetX / this.$seekBarContainer.width() * 100\n pos = Math.min(100, Math.max(pos, 0))\n this.container && this.container.seekPercentage(pos)\n this.setSeekPercentage(pos)\n return false\n }\n\n setKeepVisible() {\n this.keepVisible = true\n }\n\n resetKeepVisible() {\n this.keepVisible = false\n }\n\n setUserKeepVisible() {\n this.userKeepVisible = true\n }\n\n resetUserKeepVisible() {\n this.userKeepVisible = false\n }\n\n isVisible() {\n return !this.$el.hasClass('media-control-hide')\n }\n\n show(event) {\n if (this.disabled) return\n\n const timeout = 2000\n let mousePointerMoved = event && (event.clientX !== this.lastMouseX && event.clientY !== this.lastMouseY)\n if (!event || mousePointerMoved || navigator.userAgent.match(/firefox/i)) {\n clearTimeout(this.hideId)\n this.$el.show()\n this.trigger(Events.MEDIACONTROL_SHOW, this.name)\n this.container && this.container.trigger(Events.CONTAINER_MEDIACONTROL_SHOW, this.name)\n this.$el.removeClass('media-control-hide')\n this.hideId = setTimeout(() => this.hide(), timeout)\n if (event) {\n this.lastMouseX = event.clientX\n this.lastMouseY = event.clientY\n }\n }\n const showing = true\n this.updateCursorStyle(showing)\n }\n\n hide(delay = 0) {\n if (!this.isVisible()) return\n\n const timeout = delay || 2000\n clearTimeout(this.hideId)\n if (!this.disabled && this.options.hideMediaControl === false) return\n\n let hasKeepVisibleRequested = this.userKeepVisible || this.keepVisible\n let hasDraggingAction = this.draggingSeekBar || this.draggingVolumeBar\n\n if (!this.disabled && (delay || hasKeepVisibleRequested || hasDraggingAction)) {\n this.hideId = setTimeout(() => this.hide(), timeout)\n } else {\n this.trigger(Events.MEDIACONTROL_HIDE, this.name)\n this.container && this.container.trigger(Events.CONTAINER_MEDIACONTROL_HIDE, this.name)\n this.$el.addClass('media-control-hide')\n this.hideVolumeBar(0)\n const showing = false\n this.updateCursorStyle(showing)\n }\n }\n\n updateCursorStyle(showing) {\n if (showing)\n this.core.$el.removeClass('nocursor')\n else if (this.core.isFullscreen())\n this.core.$el.addClass('nocursor')\n }\n\n settingsUpdate() {\n const newSettings = this.getSettings()\n if (newSettings && !this.fullScreenOnVideoTagSupported && !Fullscreen.fullscreenEnabled()) {\n // remove fullscreen from settings if it is present\n newSettings.default && removeArrayItem(newSettings.default, 'fullscreen')\n newSettings.left && removeArrayItem(newSettings.left, 'fullscreen')\n newSettings.right && removeArrayItem(newSettings.right, 'fullscreen')\n }\n const settingsChanged = JSON.stringify(this.settings) !== JSON.stringify(newSettings)\n if (settingsChanged) {\n this.settings = newSettings\n this.render()\n }\n }\n\n getSettings() {\n return $.extend(true, {}, this.container && this.container.settings)\n }\n\n highDefinitionUpdate(isHD) {\n this.isHD = isHD\n const method = isHD ? 'addClass' : 'removeClass'\n this.$hdIndicator[method]('enabled')\n }\n\n createCachedElements() {\n const $layer = this.$el.find('.media-control-layer')\n this.$duration = $layer.find('.media-control-indicator[data-duration]')\n this.$fullscreenToggle = $layer.find('button.media-control-button[data-fullscreen]')\n this.$playPauseToggle = $layer.find('button.media-control-button[data-playpause]')\n this.$playStopToggle = $layer.find('button.media-control-button[data-playstop]')\n this.$position = $layer.find('.media-control-indicator[data-position]')\n this.$seekBarContainer = $layer.find('.bar-container[data-seekbar]')\n this.$seekBarHover = $layer.find('.bar-hover[data-seekbar]')\n this.$seekBarLoaded = $layer.find('.bar-fill-1[data-seekbar]')\n this.$seekBarPosition = $layer.find('.bar-fill-2[data-seekbar]')\n this.$seekBarScrubber = $layer.find('.bar-scrubber[data-seekbar]')\n this.$volumeBarContainer = $layer.find('.bar-container[data-volume]')\n this.$volumeContainer = $layer.find('.drawer-container[data-volume]')\n this.$volumeIcon = $layer.find('.drawer-icon[data-volume]')\n this.$volumeBarBackground = this.$el.find('.bar-background[data-volume]')\n this.$volumeBarFill = this.$el.find('.bar-fill-1[data-volume]')\n this.$volumeBarScrubber = this.$el.find('.bar-scrubber[data-volume]')\n this.$hdIndicator = this.$el.find('button.media-control-button[data-hd-indicator]')\n this.resetIndicators()\n this.initializeIcons()\n }\n\n resetIndicators() {\n this.displayedPosition = this.$position.text()\n this.displayedDuration = this.$duration.text()\n }\n\n initializeIcons() {\n const $layer = this.$el.find('.media-control-layer')\n $layer.find('button.media-control-button[data-play]').append(SvgIcons.play)\n $layer.find('button.media-control-button[data-pause]').append(SvgIcons.pause)\n $layer.find('button.media-control-button[data-stop]').append(SvgIcons.stop)\n this.$playPauseToggle.append(SvgIcons.play)\n this.$playStopToggle.append(SvgIcons.play)\n this.$volumeIcon.append(SvgIcons.volume)\n this.$fullscreenToggle.append(SvgIcons.fullscreen)\n this.$hdIndicator.append(SvgIcons.hd)\n }\n\n setSeekPercentage(value) {\n value = Math.max(Math.min(value, 100.0), 0)\n // not changed since last update\n if (this.displayedSeekBarPercentage === value) return\n\n this.displayedSeekBarPercentage = value\n this.$seekBarPosition.removeClass('media-control-notransition')\n this.$seekBarScrubber.removeClass('media-control-notransition')\n this.$seekBarPosition.css({ width: `${value}%` })\n this.$seekBarScrubber.css({ left: `${value}%` })\n }\n\n seekRelative(delta) {\n if (!this.settings.seekEnabled) return\n\n const currentTime = this.container.getCurrentTime()\n const duration = this.container.getDuration()\n let position = Math.min(Math.max(currentTime + delta, 0), duration)\n position = Math.min(position * 100 / duration, 100)\n this.container.seekPercentage(position)\n }\n\n bindKeyAndShow(key, callback) {\n this.kibo.down(key, () => {\n this.show()\n return callback()\n })\n }\n\n bindKeyEvents() {\n if (Browser.isMobile || this.options.disableKeyboardShortcuts) return\n\n this.unbindKeyEvents()\n this.kibo = new Kibo(this.options.focusElement || this.options.parentElement)\n this.bindKeyAndShow('space', () => this.togglePlayPause())\n this.bindKeyAndShow('left', () => this.seekRelative(-5))\n this.bindKeyAndShow('right', () => this.seekRelative(5))\n this.bindKeyAndShow('shift left', () => this.seekRelative(-10))\n this.bindKeyAndShow('shift right', () => this.seekRelative(10))\n this.bindKeyAndShow('shift ctrl left', () => this.seekRelative(-15))\n this.bindKeyAndShow('shift ctrl right', () => this.seekRelative(15))\n const keys = ['1','2','3','4','5','6','7','8','9','0']\n keys.forEach((i) => {\n this.bindKeyAndShow(i, () => {\n this.settings.seekEnabled && this.container && this.container.seekPercentage(i * 10)\n })\n })\n }\n\n unbindKeyEvents() {\n if (this.kibo) {\n this.kibo.off('space')\n this.kibo.off('left')\n this.kibo.off('right')\n this.kibo.off('shift left')\n this.kibo.off('shift right')\n this.kibo.off('shift ctrl left')\n this.kibo.off('shift ctrl right')\n this.kibo.off(['1','2','3','4','5','6','7','8','9','0'])\n }\n }\n\n parseColors() {\n if (this.options.mediacontrol) {\n this.buttonsColor = this.options.mediacontrol.buttons\n const seekbarColor = this.options.mediacontrol.seekbar\n this.$el.find('.bar-fill-2[data-seekbar]').css('background-color', seekbarColor)\n this.$el.find('.media-control-icon svg path').css('fill', this.buttonsColor)\n this.$el.find('.segmented-bar-element[data-volume]').css('boxShadow', 'inset 2px 0 0 ' + this.buttonsColor)\n }\n }\n\n applyButtonStyle(element) {\n this.buttonsColor && element && $(element).find('svg path').css('fill', this.buttonsColor)\n }\n\n destroy() {\n $(document).unbind('mouseup', this.stopDragHandler)\n $(document).unbind('mousemove', this.updateDragHandler)\n this.unbindKeyEvents()\n this.stopListening()\n super.destroy()\n }\n\n /**\n * enables to configure the media control after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n configure(options) {\n // Check if chromeless mode or if configure is called with new source(s)\n if (this.options.chromeless || options.source || options.sources)\n this.disable()\n else\n this.enable()\n\n this.trigger(Events.MEDIACONTROL_OPTIONS_CHANGE)\n }\n\n render() {\n const timeout = this.options.hideMediaControlDelay || 2000\n this.settings && this.$el.html(this.template({ settings: this.settings }))\n this.createCachedElements()\n this.$playPauseToggle.addClass('paused')\n this.$playStopToggle.addClass('stopped')\n\n this.changeTogglePlay()\n\n if (this.container) {\n this.hideId = setTimeout(() => this.hide(), timeout)\n this.disabled && this.hide()\n }\n\n // Video volume cannot be changed with Safari on mobile devices\n // Display mute/unmute icon only if Safari version >= 10\n if (Browser.isSafari && Browser.isMobile) {\n if (Browser.version < 10)\n this.$volumeContainer.css('display','none')\n else\n this.$volumeBarContainer.css('display','none')\n\n }\n\n this.$seekBarPosition.addClass('media-control-notransition')\n this.$seekBarScrubber.addClass('media-control-notransition')\n\n let previousSeekPercentage = 0\n if (this.displayedSeekBarPercentage)\n previousSeekPercentage = this.displayedSeekBarPercentage\n\n this.displayedSeekBarPercentage = null\n this.setSeekPercentage(previousSeekPercentage)\n\n process.nextTick(() => {\n !this.settings.seekEnabled && this.$seekBarContainer.addClass('seek-disabled')\n !Browser.isMobile && !this.options.disableKeyboardShortcuts && this.bindKeyEvents()\n this.playerResize({ width: this.options.width, height: this.options.height })\n this.hideVolumeBar(0)\n })\n\n this.parseColors()\n this.highDefinitionUpdate(this.isHD)\n\n this.core.$el.append(this.el)\n\n this.rendered = true\n this.updateVolumeUI()\n this.trigger(Events.MEDIACONTROL_RENDERED)\n return this\n }\n}\n\nMediaControl.extend = function(properties) {\n return extend(MediaControl, properties)\n}\n","module.exports = { \"default\": require(\"core-js/library/fn/json/stringify\"), __esModule: true };","var core = require('../../modules/_core')\n , $JSON = core.JSON || (core.JSON = {stringify: JSON.stringify});\nmodule.exports = function stringify(it){ // eslint-disable-line no-unused-vars\n return $JSON.stringify.apply($JSON, arguments);\n};","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/joaopaulo/Workstation/JS/clappr/src/base/scss!./media-control.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/joaopaulo/Workstation/JS/clappr/src/base/scss!./media-control.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/joaopaulo/Workstation/JS/clappr/src/base/scss!./media-control.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","var escape = require(\"../../../../node_modules/css-loader/lib/url/escape.js\");\nexports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".media-control-notransition {\\n transition: none !important; }\\n\\n.media-control[data-media-control] {\\n position: absolute;\\n width: 100%;\\n height: 100%;\\n z-index: 9999;\\n pointer-events: none; }\\n .media-control[data-media-control].dragging {\\n pointer-events: auto;\\n cursor: -webkit-grabbing !important;\\n cursor: grabbing !important;\\n cursor: url(\" + escape(require(\"./closed-hand.cur\")) + \"), move; }\\n .media-control[data-media-control].dragging * {\\n cursor: -webkit-grabbing !important;\\n cursor: grabbing !important;\\n cursor: url(\" + escape(require(\"./closed-hand.cur\")) + \"), move; }\\n .media-control[data-media-control] .media-control-background[data-background] {\\n position: absolute;\\n height: 40%;\\n width: 100%;\\n bottom: 0;\\n background: linear-gradient(transparent, rgba(0, 0, 0, 0.9));\\n transition: opacity 0.6s ease-out; }\\n .media-control[data-media-control] .media-control-icon {\\n line-height: 0;\\n letter-spacing: 0;\\n speak: none;\\n color: #fff;\\n opacity: 0.5;\\n vertical-align: middle;\\n text-align: left;\\n transition: all 0.1s ease; }\\n .media-control[data-media-control] .media-control-icon:hover {\\n color: white;\\n opacity: 0.75;\\n text-shadow: rgba(255, 255, 255, 0.8) 0 0 5px; }\\n .media-control[data-media-control].media-control-hide .media-control-background[data-background] {\\n opacity: 0; }\\n .media-control[data-media-control].media-control-hide .media-control-layer[data-controls] {\\n bottom: -50px; }\\n .media-control[data-media-control].media-control-hide .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-scrubber[data-seekbar] {\\n opacity: 0; }\\n .media-control[data-media-control] .media-control-layer[data-controls] {\\n position: absolute;\\n bottom: 7px;\\n width: 100%;\\n height: 32px;\\n font-size: 0;\\n vertical-align: middle;\\n pointer-events: auto;\\n transition: bottom 0.4s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-left-panel[data-media-control] {\\n position: absolute;\\n top: 0;\\n left: 4px;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-center-panel[data-media-control] {\\n height: 100%;\\n text-align: center;\\n line-height: 32px; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-right-panel[data-media-control] {\\n position: absolute;\\n top: 0;\\n right: 4px;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button {\\n background-color: transparent;\\n border: 0;\\n margin: 0 6px;\\n padding: 0;\\n cursor: pointer;\\n display: inline-block;\\n width: 32px;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button svg {\\n width: 100%;\\n height: 22px; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button svg path {\\n fill: white; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button:focus {\\n outline: none; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-play] {\\n float: left;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-pause] {\\n float: left;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-stop] {\\n float: left;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-fullscreen] {\\n float: right;\\n background-color: transparent;\\n border: 0;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-hd-indicator] {\\n background-color: transparent;\\n border: 0;\\n cursor: default;\\n display: none;\\n float: right;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-hd-indicator].enabled {\\n display: block;\\n opacity: 1.0; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-hd-indicator].enabled:hover {\\n opacity: 1.0;\\n text-shadow: none; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-playpause] {\\n float: left; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-playstop] {\\n float: left; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-position], .media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-duration] {\\n display: inline-block;\\n font-size: 10px;\\n color: white;\\n cursor: default;\\n line-height: 32px;\\n position: relative; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-position] {\\n margin: 0 6px 0 7px; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-duration] {\\n color: rgba(255, 255, 255, 0.5);\\n margin-right: 6px; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-duration]:before {\\n content: \\\"|\\\";\\n margin-right: 7px; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] {\\n position: absolute;\\n top: -20px;\\n left: 0;\\n display: inline-block;\\n vertical-align: middle;\\n width: 100%;\\n height: 25px;\\n cursor: pointer; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] {\\n width: 100%;\\n height: 1px;\\n position: relative;\\n top: 12px;\\n background-color: #666666; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-fill-1[data-seekbar] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 0;\\n height: 100%;\\n background-color: #c2c2c2;\\n transition: all 0.1s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-fill-2[data-seekbar] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 0;\\n height: 100%;\\n background-color: #005aff;\\n transition: all 0.1s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-hover[data-seekbar] {\\n opacity: 0;\\n position: absolute;\\n top: -3px;\\n width: 5px;\\n height: 7px;\\n background-color: rgba(255, 255, 255, 0.5);\\n transition: opacity 0.1s ease; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar]:hover .bar-background[data-seekbar] .bar-hover[data-seekbar] {\\n opacity: 1; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar].seek-disabled {\\n cursor: default; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar].seek-disabled:hover .bar-background[data-seekbar] .bar-hover[data-seekbar] {\\n opacity: 0; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-scrubber[data-seekbar] {\\n position: absolute;\\n -webkit-transform: translateX(-50%);\\n transform: translateX(-50%);\\n top: 2px;\\n left: 0;\\n width: 20px;\\n height: 20px;\\n opacity: 1;\\n transition: all 0.1s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-scrubber[data-seekbar] .bar-scrubber-icon[data-seekbar] {\\n position: absolute;\\n left: 6px;\\n top: 6px;\\n width: 8px;\\n height: 8px;\\n border-radius: 10px;\\n box-shadow: 0 0 0 6px rgba(255, 255, 255, 0.2);\\n background-color: white; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] {\\n float: right;\\n display: inline-block;\\n height: 32px;\\n cursor: pointer;\\n margin: 0 6px;\\n box-sizing: border-box; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] {\\n float: left;\\n bottom: 0; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] .drawer-icon[data-volume] {\\n background-color: transparent;\\n border: 0;\\n box-sizing: content-box;\\n width: 32px;\\n height: 32px;\\n opacity: 0.5; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] .drawer-icon[data-volume]:hover {\\n opacity: 0.75; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] .drawer-icon[data-volume] svg {\\n height: 24px;\\n position: relative;\\n top: 3px; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] .drawer-icon[data-volume] svg path {\\n fill: white; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] .drawer-icon[data-volume].muted svg {\\n margin-left: 2px; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] {\\n float: left;\\n position: relative;\\n overflow: hidden;\\n top: 6px;\\n width: 42px;\\n height: 18px;\\n padding: 3px 0;\\n transition: width .2s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-background[data-volume] {\\n height: 1px;\\n position: relative;\\n top: 7px;\\n margin: 0 3px;\\n background-color: #666666; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-background[data-volume] .bar-fill-1[data-volume] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 0;\\n height: 100%;\\n background-color: #c2c2c2;\\n transition: all 0.1s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-background[data-volume] .bar-fill-2[data-volume] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 0;\\n height: 100%;\\n background-color: #005aff;\\n transition: all 0.1s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-background[data-volume] .bar-hover[data-volume] {\\n opacity: 0;\\n position: absolute;\\n top: -3px;\\n width: 5px;\\n height: 7px;\\n background-color: rgba(255, 255, 255, 0.5);\\n transition: opacity 0.1s ease; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-scrubber[data-volume] {\\n position: absolute;\\n -webkit-transform: translateX(-50%);\\n transform: translateX(-50%);\\n top: 0px;\\n left: 0;\\n width: 20px;\\n height: 20px;\\n opacity: 1;\\n transition: all 0.1s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-scrubber[data-volume] .bar-scrubber-icon[data-volume] {\\n position: absolute;\\n left: 6px;\\n top: 6px;\\n width: 8px;\\n height: 8px;\\n border-radius: 10px;\\n box-shadow: 0 0 0 6px rgba(255, 255, 255, 0.2);\\n background-color: white; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .segmented-bar-element[data-volume] {\\n float: left;\\n width: 4px;\\n padding-left: 2px;\\n height: 12px;\\n opacity: 0.5;\\n box-shadow: inset 2px 0 0 white;\\n transition: -webkit-transform .2s ease-out;\\n transition: transform .2s ease-out;\\n transition: transform .2s ease-out, -webkit-transform .2s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .segmented-bar-element[data-volume].fill {\\n box-shadow: inset 2px 0 0 #fff;\\n opacity: 1; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .segmented-bar-element[data-volume]:nth-of-type(1) {\\n padding-left: 0; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .segmented-bar-element[data-volume]:hover {\\n -webkit-transform: scaleY(1.5);\\n transform: scaleY(1.5); }\\n .media-control[data-media-control].w320 .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume].volume-bar-hide {\\n width: 0;\\n height: 12px;\\n top: 9px;\\n padding: 0; }\\n\", \"\"]);\n\n// exports\n","module.exports = \"<div class=\\\"media-control-background\\\" data-background></div>\\n<div class=\\\"media-control-layer\\\" data-controls>\\n <% var renderBar = function(name) { %>\\n <div class=\\\"bar-container\\\" data-<%= name %>>\\n <div class=\\\"bar-background\\\" data-<%= name %>>\\n <div class=\\\"bar-fill-1\\\" data-<%= name %>></div>\\n <div class=\\\"bar-fill-2\\\" data-<%= name %>></div>\\n <div class=\\\"bar-hover\\\" data-<%= name %>></div>\\n </div>\\n <div class=\\\"bar-scrubber\\\" data-<%= name %>>\\n <div class=\\\"bar-scrubber-icon\\\" data-<%= name %>></div>\\n </div>\\n </div>\\n <% }; %>\\n <% var renderSegmentedBar = function(name, segments) {\\n segments = segments || 10; %>\\n <div class=\\\"bar-container\\\" data-<%= name %>>\\n <% for (var i = 0; i < segments; i++) { %>\\n <div class=\\\"segmented-bar-element\\\" data-<%= name %>></div>\\n <% } %>\\n </div>\\n <% }; %>\\n <% var renderDrawer = function(name, renderContent) { %>\\n <div class=\\\"drawer-container\\\" data-<%= name %>>\\n <div class=\\\"drawer-icon-container\\\" data-<%= name %>>\\n <div class=\\\"drawer-icon media-control-icon\\\" data-<%= name %>></div>\\n <span class=\\\"drawer-text\\\" data-<%= name %>></span>\\n </div>\\n <% renderContent(name); %>\\n </div>\\n <% }; %>\\n <% var renderIndicator = function(name) { %>\\n <div class=\\\"media-control-indicator\\\" data-<%= name %>></div>\\n <% }; %>\\n <% var renderButton = function(name) { %>\\n <button type=\\\"button\\\" class=\\\"media-control-button media-control-icon\\\" data-<%= name %> aria-label=\\\"<%= name %>\\\"></button>\\n <% }; %>\\n <% var templates = {\\n bar: renderBar,\\n segmentedBar: renderSegmentedBar,\\n };\\n var render = function(settingsList) {\\n settingsList.forEach(function(setting) {\\n if(setting === \\\"seekbar\\\") {\\n renderBar(setting);\\n } else if (setting === \\\"volume\\\") {\\n renderDrawer(setting, settings.volumeBarTemplate ? templates[settings.volumeBarTemplate] : function(name) { return renderSegmentedBar(name); });\\n } else if (setting === \\\"duration\\\" || setting === \\\"position\\\") {\\n renderIndicator(setting);\\n } else {\\n renderButton(setting);\\n }\\n });\\n }; %>\\n <% if (settings.default && settings.default.length) { %>\\n <div class=\\\"media-control-center-panel\\\" data-media-control>\\n <% render(settings.default); %>\\n </div>\\n <% } %>\\n <% if (settings.left && settings.left.length) { %>\\n <div class=\\\"media-control-left-panel\\\" data-media-control>\\n <% render(settings.left); %>\\n </div>\\n <% } %>\\n <% if (settings.right && settings.right.length) { %>\\n <div class=\\\"media-control-right-panel\\\" data-media-control>\\n <% render(settings.right); %>\\n </div>\\n <% } %>\\n</div>\\n\";","import UICorePlugin from '../../base/ui_core_plugin'\nimport template from '../../base/template'\nimport Playback from '../../base/playback'\nimport Events from '../../base/events'\nimport dvrHTML from './public/index.html'\nimport './public/dvr_controls.scss'\n\nexport default class DVRControls extends UICorePlugin {\n get template() { return template(dvrHTML) }\n get name() { return 'dvr_controls' }\n get events() {\n return {\n 'click .live-button': 'click'\n }\n }\n get attributes() {\n return {\n 'class': 'dvr-controls',\n 'data-dvr-controls': ''\n }\n }\n\n constructor(core) {\n super(core)\n this.settingsUpdate()\n }\n\n bindEvents() {\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_CONTAINERCHANGED, this.containerChanged)\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_RENDERED, this.settingsUpdate)\n this.listenTo(this.core, Events.CORE_OPTIONS_CHANGE, this.render)\n if (this.core.getCurrentContainer()) {\n this.listenToOnce(this.core.getCurrentContainer(), Events.CONTAINER_TIMEUPDATE, this.render)\n this.listenTo(this.core.getCurrentContainer(), Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.dvrChanged)\n }\n }\n\n containerChanged() {\n this.stopListening()\n this.bindEvents()\n }\n\n dvrChanged(dvrEnabled) {\n if (this.core.getPlaybackType() !== Playback.LIVE) return\n this.settingsUpdate()\n this.core.mediaControl.$el.addClass('live')\n if (dvrEnabled) {\n this.core.mediaControl.$el.addClass('dvr')\n this.core.mediaControl.$el.find('.media-control-indicator[data-position], .media-control-indicator[data-duration]').hide()\n } else { this.core.mediaControl.$el.removeClass('dvr') }\n\n }\n\n click() {\n const mediaControl = this.core.mediaControl\n const container = mediaControl.container\n if (!container.isPlaying())\n container.play()\n\n if (mediaControl.$el.hasClass('dvr'))\n container.seek(container.getDuration())\n\n }\n\n settingsUpdate() {\n this.stopListening()\n this.core.mediaControl.$el.removeClass('live')\n if (this.shouldRender()) {\n this.render()\n this.$el.click(() => this.click())\n }\n this.bindEvents()\n }\n\n shouldRender() {\n const useDvrControls = this.core.options.useDvrControls === undefined || !!this.core.options.useDvrControls\n return useDvrControls && this.core.getPlaybackType() === Playback.LIVE\n }\n\n render() {\n this.$el.html(this.template({\n live: this.core.i18n.t('live'),\n backToLive: this.core.i18n.t('back_to_live')\n }))\n if (this.shouldRender()) {\n this.core.mediaControl.$el.addClass('live')\n this.core.mediaControl.$('.media-control-left-panel[data-media-control]').append(this.$el)\n }\n return this\n }\n}\n","module.exports = \"<div class=\\\"live-info\\\"><%= live %></div>\\n<button type=\\\"button\\\" class=\\\"live-button\\\" aria-label=\\\"<%= backToLive %>\\\"><%= backToLive %></button>\\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/joaopaulo/Workstation/JS/clappr/src/base/scss!./dvr_controls.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/joaopaulo/Workstation/JS/clappr/src/base/scss!./dvr_controls.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/joaopaulo/Workstation/JS/clappr/src/base/scss!./dvr_controls.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".dvr-controls[data-dvr-controls] {\\n display: inline-block;\\n float: left;\\n color: #fff;\\n line-height: 32px;\\n font-size: 10px;\\n font-weight: bold;\\n margin-left: 6px; }\\n .dvr-controls[data-dvr-controls] .live-info {\\n cursor: default;\\n font-family: \\\"Roboto\\\", \\\"Open Sans\\\", Arial, sans-serif;\\n text-transform: uppercase; }\\n .dvr-controls[data-dvr-controls] .live-info:before {\\n content: \\\"\\\";\\n display: inline-block;\\n position: relative;\\n width: 7px;\\n height: 7px;\\n border-radius: 3.5px;\\n margin-right: 3.5px;\\n background-color: #ff0101; }\\n .dvr-controls[data-dvr-controls] .live-info.disabled {\\n opacity: 0.3; }\\n .dvr-controls[data-dvr-controls] .live-info.disabled:before {\\n background-color: #fff; }\\n .dvr-controls[data-dvr-controls] .live-button {\\n cursor: pointer;\\n outline: none;\\n display: none;\\n border: 0;\\n color: #fff;\\n background-color: transparent;\\n height: 32px;\\n padding: 0;\\n opacity: 0.7;\\n font-family: \\\"Roboto\\\", \\\"Open Sans\\\", Arial, sans-serif;\\n text-transform: uppercase;\\n transition: all 0.1s ease; }\\n .dvr-controls[data-dvr-controls] .live-button:before {\\n content: \\\"\\\";\\n display: inline-block;\\n position: relative;\\n width: 7px;\\n height: 7px;\\n border-radius: 3.5px;\\n margin-right: 3.5px;\\n background-color: #fff; }\\n .dvr-controls[data-dvr-controls] .live-button:hover {\\n opacity: 1;\\n text-shadow: rgba(255, 255, 255, 0.75) 0 0 5px; }\\n\\n.dvr .dvr-controls[data-dvr-controls] .live-info {\\n display: none; }\\n\\n.dvr .dvr-controls[data-dvr-controls] .live-button {\\n display: block; }\\n\\n.dvr.media-control.live[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-fill-2[data-seekbar] {\\n background-color: #005aff; }\\n\\n.media-control.live[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-fill-2[data-seekbar] {\\n background-color: #ff0101; }\\n\", \"\"]);\n\n// exports\n","import ClosedCaptions from './closed_captions'\nexport default ClosedCaptions\n","import UICorePlugin from '../../base/ui_core_plugin'\nimport template from '../../base/template'\nimport Events from '../../base/events'\nimport { SvgIcons } from '../../base/utils'\nimport ccHTML from './public/closed_captions.html'\nimport './public/closed_captions.scss'\n\nexport default class ClosedCaptions extends UICorePlugin {\n get name() { return 'closed_captions' }\n\n get template() { return template(ccHTML) }\n\n get events() {\n return {\n 'click [data-cc-button]': 'toggleContextMenu',\n 'click [data-cc-select]': 'onTrackSelect',\n }\n }\n\n get attributes() {\n return {\n 'class': 'cc-controls',\n 'data-cc-controls': ''\n }\n }\n\n constructor(core) {\n super(core)\n const config = core.options.closedCaptionsConfig\n this._title = config && config.title ? config.title : null\n this._ariaLabel = config && config.ariaLabel ? config.ariaLabel : 'cc-button'\n this._labelCb = config && config.labelCallback && typeof config.labelCallback === 'function'\n ? config.labelCallback\n : track => { return track.name }\n }\n\n bindEvents() {\n this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.containerChanged)\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_RENDERED, this.render)\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_HIDE, this.hideContextMenu)\n this.container = this.core.getCurrentContainer()\n if (this.container) {\n this.listenTo(this.container, Events.CONTAINER_SUBTITLE_AVAILABLE, this.onSubtitleAvailable)\n this.listenTo(this.container, Events.CONTAINER_SUBTITLE_CHANGED, this.onSubtitleChanged)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onContainerStop)\n }\n }\n\n onContainerStop() {\n this.ccAvailable(false)\n }\n\n containerChanged() {\n this.ccAvailable(false)\n this.stopListening()\n this.bindEvents()\n }\n\n onSubtitleAvailable() {\n this.renderCcButton()\n this.ccAvailable(true)\n }\n\n onSubtitleChanged(track) {\n this.setCurrentContextMenuElement(track.id)\n }\n\n onTrackSelect(event) {\n const trackId = parseInt(event.target.dataset.ccSelect, 10)\n this.container.closedCaptionsTrackId = trackId\n this.hideContextMenu()\n event.stopPropagation()\n return false\n }\n\n ccAvailable(hasCC) {\n const method = hasCC ? 'addClass' : 'removeClass'\n this.$el[method]('available')\n }\n\n toggleContextMenu() {\n this.$el.find('ul').toggle()\n }\n\n hideContextMenu() {\n this.$el.find('ul').hide()\n }\n\n contextMenuElement(id) {\n return this.$el.find('ul a'+(!isNaN(id) ? '[data-cc-select=\"'+id+'\"]' : '')).parent()\n }\n\n setCurrentContextMenuElement(trackId) {\n if (this._trackId !== trackId) {\n this.contextMenuElement().removeClass('current')\n this.contextMenuElement(trackId).addClass('current')\n const method = trackId > -1 ? 'addClass' : 'removeClass'\n this.$ccButton[method]('enabled')\n this._trackId = trackId\n }\n }\n\n renderCcButton() {\n let tracks = this.container ? this.container.closedCaptionsTracks : []\n for (let i = 0; i < tracks.length; i++)\n tracks[i].label = this._labelCb(tracks[i])\n\n\n this.$el.html(this.template({\n ariaLabel: this._ariaLabel,\n disabledLabel: this.core.i18n.t('disabled'),\n title: this._title,\n tracks: tracks\n }))\n\n this.$ccButton = this.$el.find('button.cc-button[data-cc-button]')\n this.$ccButton.append(SvgIcons.cc)\n this.$el.append(this.style)\n }\n\n render() {\n this.renderCcButton()\n\n const $fullscreen = this.core.mediaControl.$el.find('button[data-fullscreen]')\n if ($fullscreen[0])\n this.$el.insertAfter($fullscreen)\n else\n this.core.mediaControl.$el.find('.media-control-right-panel[data-media-control]').prepend(this.$el)\n\n\n return this\n }\n}\n","module.exports = \"<button type=\\\"button\\\" class=\\\"cc-button media-control-button media-control-icon\\\" data-cc-button aria-label=\\\"<%= ariaLabel %>\\\"></button>\\n<ul>\\n <% if (title) { %>\\n <li data-title><%= title %></li>\\n <% }; %>\\n <li><a href=\\\"#\\\" data-cc-select=\\\"-1\\\"><%= disabledLabel %></a></li>\\n <% for (var i = 0; i < tracks.length; i++) { %>\\n <li><a href=\\\"#\\\" data-cc-select=\\\"<%= tracks[i].id %>\\\"><%= tracks[i].label %></a></li>\\n <% }; %>\\n</ul>\\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/joaopaulo/Workstation/JS/clappr/src/base/scss!./closed_captions.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/joaopaulo/Workstation/JS/clappr/src/base/scss!./closed_captions.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/joaopaulo/Workstation/JS/clappr/src/base/scss!./closed_captions.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".cc-controls[data-cc-controls] {\\n float: right;\\n position: relative;\\n display: none; }\\n .cc-controls[data-cc-controls].available {\\n display: block; }\\n .cc-controls[data-cc-controls] .cc-button {\\n padding: 6px !important; }\\n .cc-controls[data-cc-controls] .cc-button.enabled {\\n display: block;\\n opacity: 1.0; }\\n .cc-controls[data-cc-controls] .cc-button.enabled:hover {\\n opacity: 1.0;\\n text-shadow: none; }\\n .cc-controls[data-cc-controls] > ul {\\n list-style-type: none;\\n position: absolute;\\n bottom: 25px;\\n border: 1px solid black;\\n display: none;\\n background-color: #e6e6e6; }\\n .cc-controls[data-cc-controls] li {\\n font-size: 10px; }\\n .cc-controls[data-cc-controls] li[data-title] {\\n background-color: #c3c2c2;\\n padding: 5px; }\\n .cc-controls[data-cc-controls] li a {\\n color: #444;\\n padding: 2px 10px;\\n display: block;\\n text-decoration: none; }\\n .cc-controls[data-cc-controls] li a:hover {\\n background-color: #555;\\n color: white; }\\n .cc-controls[data-cc-controls] li a:hover a {\\n color: white;\\n text-decoration: none; }\\n .cc-controls[data-cc-controls] li.current a {\\n color: #f00; }\\n\", \"\"]);\n\n// exports\n","import CorePlugin from '../../base/core_plugin'\nimport Events from '../../base/events'\nimport $ from 'clappr-zepto'\nimport { SvgIcons } from '../../base/utils'\n\nconst oldIcon = $('link[rel=\"shortcut icon\"]')\n\nexport default class Favicon extends CorePlugin {\n get name() { return 'favicon' }\n get oldIcon() { return oldIcon }\n\n constructor(core) {\n super(core)\n this._container = null\n this.configure()\n }\n\n configure() {\n if (this.core.options.changeFavicon) {\n if (!this.enabled) {\n this.stopListening(this.core, Events.CORE_OPTIONS_CHANGE)\n this.enable()\n }\n } else if (this.enabled) {\n this.disable()\n this.listenTo(this.core, Events.CORE_OPTIONS_CHANGE, this.configure)\n }\n }\n\n bindEvents() {\n this.listenTo(this.core, Events.CORE_OPTIONS_CHANGE, this.configure)\n this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.containerChanged)\n this.core.activeContainer && this.containerChanged()\n }\n\n containerChanged() {\n this._container && this.stopListening(this._container)\n this._container = this.core.activeContainer\n this.listenTo(this._container, Events.CONTAINER_PLAY, this.setPlayIcon)\n this.listenTo(this._container, Events.CONTAINER_PAUSE, this.setPauseIcon)\n this.listenTo(this._container, Events.CONTAINER_STOP, this.resetIcon)\n this.listenTo(this._container, Events.CONTAINER_ENDED, this.resetIcon)\n this.listenTo(this._container, Events.CONTAINER_ERROR, this.resetIcon)\n this.resetIcon()\n }\n\n disable() {\n super.disable()\n this.resetIcon()\n }\n\n destroy() {\n super.destroy()\n this.resetIcon()\n }\n\n createIcon(svg) {\n const canvas = $('<canvas/>')\n canvas[0].width = 16\n canvas[0].height = 16\n const ctx = canvas[0].getContext('2d')\n ctx.fillStyle = '#000'\n const d = $(svg).find('path').attr('d')\n const path = new Path2D(d)\n ctx.fill(path)\n const icon = $('<link rel=\"shortcut icon\" type=\"image/png\"/>')\n icon.attr('href', canvas[0].toDataURL('image/png'))\n return icon\n }\n\n setPlayIcon() {\n if (!this.playIcon)\n this.playIcon = this.createIcon(SvgIcons.play)\n\n this.changeIcon(this.playIcon)\n }\n\n setPauseIcon() {\n if (!this.pauseIcon)\n this.pauseIcon = this.createIcon(SvgIcons.pause)\n\n this.changeIcon(this.pauseIcon)\n }\n\n resetIcon() {\n $('link[rel=\"shortcut icon\"]').remove()\n $('head').append(this.oldIcon)\n }\n\n changeIcon(icon) {\n if (icon) {\n $('link[rel=\"shortcut icon\"]').remove()\n $('head').append(icon)\n }\n }\n}\n","import SeekTime from './seek_time'\nexport default SeekTime\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { formatTime } from '../../base/utils'\n\nimport UICorePlugin from '../../base/ui_core_plugin'\nimport template from '../../base/template'\nimport Events from '../../base/events'\nimport Playback from '../../base/playback'\nimport seekTimeHTML from './public/seek_time.html'\nimport './public/seek_time.scss'\n\nexport default class SeekTime extends UICorePlugin {\n get name() { return 'seek_time' }\n get template() {\n return template(seekTimeHTML)\n }\n get attributes() {\n return {\n 'class': 'seek-time',\n 'data-seek-time': ''\n }\n }\n get mediaControl() { return this.core.mediaControl }\n get mediaControlContainer() { return this.mediaControl.container }\n get isLiveStreamWithDvr() { return this.mediaControlContainer && this.mediaControlContainer.getPlaybackType() === Playback.LIVE && this.mediaControlContainer.isDvrEnabled() }\n get durationShown() { return this.isLiveStreamWithDvr && !this.actualLiveTime }\n get useActualLiveTime() { return this.actualLiveTime && this.isLiveStreamWithDvr }\n constructor(core) {\n super(core)\n this.hoveringOverSeekBar = false\n this.hoverPosition = null\n this.duration = null\n this.firstFragDateTime = null\n this.actualLiveTime = !!this.mediaControl.options.actualLiveTime\n if (this.actualLiveTime) {\n if (this.mediaControl.options.actualLiveServerTime)\n this.actualLiveServerTimeDiff = new Date().getTime() - new Date(this.mediaControl.options.actualLiveServerTime).getTime()\n else\n this.actualLiveServerTimeDiff = 0\n }\n }\n\n bindEvents() {\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_RENDERED, this.render)\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_MOUSEMOVE_SEEKBAR, this.showTime)\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_MOUSELEAVE_SEEKBAR, this.hideTime)\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_CONTAINERCHANGED, this.onContainerChanged)\n if (this.mediaControlContainer) {\n this.listenTo(this.mediaControlContainer, Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.update)\n this.listenTo(this.mediaControlContainer, Events.CONTAINER_TIMEUPDATE, this.updateDuration)\n }\n }\n\n onContainerChanged() {\n this.stopListening()\n this.bindEvents()\n }\n\n updateDuration(timeProgress) {\n this.duration = timeProgress.total\n this.firstFragDateTime = timeProgress.firstFragDateTime\n this.update()\n }\n\n showTime(event) {\n this.hoveringOverSeekBar = true\n this.calculateHoverPosition(event)\n this.update()\n }\n\n hideTime() {\n this.hoveringOverSeekBar = false\n this.update()\n }\n\n calculateHoverPosition(event) {\n const offset = event.pageX - this.mediaControl.$seekBarContainer.offset().left\n // proportion into the seek bar that the mouse is hovered over 0-1\n this.hoverPosition = Math.min(1, Math.max(offset/this.mediaControl.$seekBarContainer.width(), 0))\n }\n\n getSeekTime() {\n let seekTime, secondsSinceMidnight, d, e\n if (this.useActualLiveTime) {\n if (this.firstFragDateTime) {\n e = new Date(this.firstFragDateTime)\n d = new Date(this.firstFragDateTime)\n d.setHours(0,0,0,0)\n secondsSinceMidnight = ((e.getTime() - d.getTime()) / 1000) + this.duration\n } else {\n d = new Date(new Date().getTime() - this.actualLiveServerTimeDiff)\n e = new Date(d)\n secondsSinceMidnight = (e - d.setHours(0,0,0,0)) / 1000\n }\n seekTime = (secondsSinceMidnight - this.duration) + (this.hoverPosition * this.duration)\n if (seekTime < 0)\n seekTime += 86400\n\n } else { seekTime = this.hoverPosition * this.duration }\n\n return { seekTime, secondsSinceMidnight }\n }\n\n update() {\n if (!this.rendered) {\n // update() is always called after a render\n return\n }\n if (!this.shouldBeVisible()) {\n this.$el.hide()\n this.$el.css('left', '-100%')\n } else {\n const seekTime = this.getSeekTime()\n const currentSeekTime = formatTime(seekTime.seekTime, this.useActualLiveTime)\n // only update dom if necessary, ie time actually changed\n if (currentSeekTime !== this.displayedSeekTime) {\n this.$seekTimeEl.text(currentSeekTime)\n this.displayedSeekTime = currentSeekTime\n }\n\n if (this.durationShown) {\n this.$durationEl.show()\n const currentDuration = formatTime(this.actualLiveTime ? seekTime.secondsSinceMidnight : this.duration, this.actualLiveTime)\n if (currentDuration !== this.displayedDuration) {\n this.$durationEl.text(currentDuration)\n this.displayedDuration = currentDuration\n }\n } else { this.$durationEl.hide() }\n\n\n // the element must be unhidden before its width is requested, otherwise it's width will be reported as 0\n this.$el.show()\n const containerWidth = this.mediaControl.$seekBarContainer.width()\n const elWidth = this.$el.width()\n let elLeftPos = this.hoverPosition * containerWidth\n elLeftPos -= elWidth / 2\n elLeftPos = Math.max(0, Math.min(elLeftPos, containerWidth - elWidth))\n this.$el.css('left', elLeftPos)\n }\n }\n\n shouldBeVisible() {\n return this.mediaControlContainer && this.mediaControlContainer.settings.seekEnabled && this.hoveringOverSeekBar && this.hoverPosition !== null && this.duration !== null\n }\n\n render() {\n this.rendered = true\n this.displayedDuration = null\n this.displayedSeekTime = null\n this.$el.html(this.template())\n this.$el.hide()\n this.mediaControl.$el.append(this.el)\n this.$seekTimeEl = this.$el.find('[data-seek-time]')\n this.$durationEl = this.$el.find('[data-duration]')\n this.$durationEl.hide()\n this.update()\n }\n}\n","module.exports = \"<span data-seek-time></span>\\n<span data-duration></span>\\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/joaopaulo/Workstation/JS/clappr/src/base/scss!./seek_time.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/joaopaulo/Workstation/JS/clappr/src/base/scss!./seek_time.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/joaopaulo/Workstation/JS/clappr/src/base/scss!./seek_time.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".seek-time[data-seek-time] {\\n position: absolute;\\n white-space: nowrap;\\n height: 20px;\\n line-height: 20px;\\n font-size: 0;\\n left: -100%;\\n bottom: 55px;\\n background-color: rgba(2, 2, 2, 0.5);\\n z-index: 9999;\\n transition: opacity 0.1s ease; }\\n .seek-time[data-seek-time].hidden[data-seek-time] {\\n opacity: 0; }\\n .seek-time[data-seek-time] [data-seek-time] {\\n display: inline-block;\\n color: white;\\n font-size: 10px;\\n padding-left: 7px;\\n padding-right: 7px;\\n vertical-align: top; }\\n .seek-time[data-seek-time] [data-duration] {\\n display: inline-block;\\n color: rgba(255, 255, 255, 0.5);\\n font-size: 10px;\\n padding-right: 7px;\\n vertical-align: top; }\\n .seek-time[data-seek-time] [data-duration]:before {\\n content: \\\"|\\\";\\n margin-right: 7px; }\\n\", \"\"]);\n\n// exports\n","import CorePlugin from '../base/core_plugin'\n\nimport Events from '../base/events'\n\nexport default class SourcesPlugin extends CorePlugin {\n get name() { return 'sources' }\n\n bindEvents() {\n this.listenTo(this.core, Events.CORE_CONTAINERS_CREATED, this.onContainersCreated)\n }\n\n onContainersCreated() {\n const firstValidSource = this.core.containers.filter(container => container.playback.name !== 'no_op')[0] || this.core.containers[0]\n if (firstValidSource) {\n this.core.containers.forEach((container) => {\n if (container !== firstValidSource)\n container.destroy()\n\n })\n }\n }\n}\n","import Events from '../base/events'\nimport CorePlugin from '../base/core_plugin'\n\nexport default class EndVideo extends CorePlugin {\n get name() { return 'end_video' }\n bindEvents() {\n this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.containerChanged)\n const container = this.core.activeContainer\n if (container) {\n this.listenTo(container, Events.CONTAINER_ENDED, this.ended)\n this.listenTo(container, Events.CONTAINER_STOP, this.ended)\n }\n }\n\n containerChanged() {\n this.stopListening()\n this.bindEvents()\n }\n\n ended() {\n const exitOnEnd = typeof (this.core.options.exitFullscreenOnEnd) === 'undefined' || this.core.options.exitFullscreenOnEnd\n if (exitOnEnd && this.core.isFullscreen())\n this.core.toggleFullscreen()\n\n }\n}\n","import { getBrowserLanguage } from '../base/utils'\nimport $ from 'clappr-zepto'\nimport CorePlugin from '../base/core_plugin'\n\n/**\n * The internationalization (i18n) plugin\n * @class Strings\n * @constructor\n * @extends CorePlugin\n * @module plugins\n */\nexport default class Strings extends CorePlugin {\n get name() { return 'strings' }\n\n constructor(core) {\n super(core)\n this._initializeMessages()\n }\n /**\n * Gets a translated string for the given key.\n * @method t\n * @param {String} key the key to all messages\n * @return {String} translated label\n */\n t(key) {\n const lang = this._language()\n const fallbackLang = this._messages['en']\n const i18n = lang && this._messages[lang] || fallbackLang\n return i18n[key] || fallbackLang[key] || key\n }\n\n _language() { return this.core.options.language || getBrowserLanguage() }\n\n _initializeMessages() {\n const defaultMessages = {\n 'en': {\n 'live': 'live',\n 'back_to_live': 'back to live',\n 'disabled': 'Disabled',\n 'playback_not_supported': 'Your browser does not support the playback of this video. Please try using a different browser.',\n 'default_error_title': 'Could not play video.',\n 'default_error_message': 'There was a problem trying to load the video.',\n },\n 'pt': {\n 'live': 'ao vivo',\n 'back_to_live': 'voltar para o ao vivo',\n 'disabled': 'Desativado',\n 'playback_not_supported': 'Seu navegador não supporta a reprodução deste video. Por favor, tente usar um navegador diferente.',\n 'default_error_title': 'Não foi possível reproduzir o vídeo.',\n 'default_error_message': 'Ocorreu um problema ao tentar carregar o vídeo.',\n },\n 'es': {\n 'live': 'vivo',\n 'back_to_live': 'volver en vivo',\n 'disabled': 'Discapacitado',\n 'playback_not_supported': 'Su navegador no soporta la reproducción de un video. Por favor, trate de usar un navegador diferente.',\n },\n 'ru': {\n 'live': 'прямой эфир',\n 'back_to_live': 'к прямому эфиру',\n 'disabled': 'Отключено',\n 'playback_not_supported': 'Ваш браузер не поддерживает воспроизведение этого видео. Пожалуйста, попробуйте другой браузер.',\n },\n 'fr': {\n 'live': 'en direct',\n 'back_to_live': 'retour au direct',\n 'disabled': 'Désactivé',\n 'playback_not_supported': 'Votre navigateur ne supporte pas la lecture de cette vidéo. Merci de tenter sur un autre navigateur.',\n 'default_error_title': 'Impossible de lire la vidéo.',\n 'default_error_message': 'Un problème est survenu lors du chargement de la vidéo.',\n },\n 'tr': {\n 'live': 'canlı',\n 'back_to_live': 'canlı yayına dön',\n 'disabled': 'Engelli',\n 'playback_not_supported': 'Tarayıcınız bu videoyu oynatma desteğine sahip değil. Lütfen farklı bir tarayıcı ile deneyin.',\n },\n 'et': {\n 'live': 'Otseülekanne',\n 'back_to_live': 'Tagasi otseülekande juurde',\n 'disabled': 'Keelatud',\n 'playback_not_supported': 'Teie brauser ei toeta selle video taasesitust. Proovige kasutada muud brauserit.',\n },\n 'ar': {\n 'live': 'مباشر',\n 'back_to_live': 'الرجوع إلى المباشر',\n 'disabled': 'معطّل',\n 'playback_not_supported': 'المتصفح الذي تستخدمه لا يدعم تشغيل هذا الفيديو. الرجاء إستخدام متصفح آخر.',\n 'default_error_title': 'غير قادر الى التشغيل.',\n 'default_error_message': 'حدثت مشكلة أثناء تحميل الفيديو.',\n },\n }\n\n this._messages = $.extend(true, defaultMessages, this.core.options.strings || {})\n this._messages['pt-BR'] = this._messages['pt']\n this._messages['en-US'] = this._messages['en']\n this._messages['es-419'] = this._messages['es']\n this._messages['fr-FR'] = this._messages['fr']\n this._messages['tr-TR'] = this._messages['tr']\n this._messages['et-EE'] = this._messages['et']\n this._messages['ar-IQ'] = this._messages['ar']\n }\n}\n","import ErrorScreen from './error_screen'\nexport default ErrorScreen\n","import Events from '../../base/events'\nimport UICorePlugin from '../../base/ui_core_plugin'\nimport template from '../../base/template'\nimport PlayerError from '../../components/error/'\nimport { SvgIcons } from '../../base/utils'\nimport templateHtml from './public/error_screen.html'\nimport './public/error_screen.scss'\n\nexport default class ErrorScreen extends UICorePlugin {\n get name() { return 'error_screen' }\n get template() { return template(templateHtml) }\n get container() { return this.core.getCurrentContainer() }\n get attributes() {\n return {\n 'class': 'player-error-screen',\n 'data-error-screen': '',\n }\n }\n\n constructor(core) {\n super(core)\n\n if (this.options.disableErrorScreen) return this.disable()\n }\n\n bindEvents() {\n this.listenTo(this.core, Events.ERROR, this.onError)\n this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.onContainerChanged)\n }\n\n bindReload() {\n this.reloadButton = this.$el.find('.player-error-screen__reload')\n this.reloadButton && this.reloadButton.on('click', this.reload.bind(this))\n }\n\n reload() {\n this.listenToOnce(this.core, Events.CORE_READY, () => this.container.play())\n this.core.load(this.options.sources, this.options.mimeType)\n this.unbindReload()\n }\n\n unbindReload() {\n this.reloadButton && this.reloadButton.off('click')\n }\n\n onContainerChanged() {\n this.err = null\n this.unbindReload()\n this.hide()\n }\n\n onError(err = {}) {\n if (err.level === PlayerError.Levels.FATAL) {\n this.err = err\n this.container.disableMediaControl()\n this.container.stop()\n this.show()\n }\n }\n\n show() {\n this.render()\n this.$el.show()\n }\n\n hide() {\n this.$el.hide()\n }\n\n render() {\n if (!this.err) return\n\n this.$el.html(this.template({\n title: this.err.UI.title,\n message: this.err.UI.message,\n code: this.err.code,\n icon: this.err.UI.icon || '',\n reloadIcon: SvgIcons.reload,\n }))\n\n this.core.$el.append(this.el)\n\n this.bindReload()\n\n return this\n }\n}\n","module.exports = \"<div class=\\\"player-error-screen__content\\\" data-error-screen>\\n <% if (icon) { %>\\n <div class=\\\"player-error-screen__icon\\\" data-error-screen><%= icon %></div>\\n <% } %>\\n <div class=\\\"player-error-screen__title\\\" data-error-screen><%= title %></div>\\n <div class=\\\"player-error-screen__message\\\" data-error-screen><%= message %></div>\\n <div class=\\\"player-error-screen__code\\\" data-error-screen>Error code: <%= code %></div>\\n <div class=\\\"player-error-screen__reload\\\" data-error-screen><%= reloadIcon %></div>\\n</div>\\n\";","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/joaopaulo/Workstation/JS/clappr/src/base/scss!./error_screen.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/joaopaulo/Workstation/JS/clappr/src/base/scss!./error_screen.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/joaopaulo/Workstation/JS/clappr/src/base/scss!./error_screen.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"div.player-error-screen {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n color: #CCCACA;\\n position: absolute;\\n top: 0;\\n height: 100%;\\n width: 100%;\\n background-color: rgba(0, 0, 0, 0.7);\\n z-index: 2000;\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-orient: vertical;\\n -webkit-box-direction: normal;\\n -ms-flex-direction: column;\\n flex-direction: column;\\n -webkit-box-pack: center;\\n -ms-flex-pack: center;\\n justify-content: center; }\\n div.player-error-screen__content[data-error-screen] {\\n font-size: 14px;\\n color: #CCCACA;\\n margin-top: 45px; }\\n div.player-error-screen__title[data-error-screen] {\\n font-weight: bold;\\n line-height: 30px;\\n font-size: 18px; }\\n div.player-error-screen__message[data-error-screen] {\\n width: 90%;\\n margin: 0 auto; }\\n div.player-error-screen__code[data-error-screen] {\\n font-size: 13px;\\n margin-top: 15px; }\\n div.player-error-screen__reload {\\n cursor: pointer;\\n width: 30px;\\n margin: 15px auto 0; }\\n\", \"\"]);\n\n// exports\n"],"sourceRoot":""}