UNPKG

743 kBSource Map (JSON)View Raw
1{"version":3,"sources":["webpack:///webpack/bootstrap b57505fe99214ddb503c","webpack:///./node_modules/react/index.js","webpack:///./src/utils.js","webpack:///./src/singlePlayer.js","webpack:///./node_modules/vast-client/src/parser/parser_utils.js","webpack:///./node_modules/fbjs/lib/emptyFunction.js","webpack:///./src/props.js","webpack:///./src/players/YouTube.js","webpack:///./src/Player.js","webpack:///./src/players/SoundCloud.js","webpack:///./src/players/Vimeo.js","webpack:///./src/players/DailyMotion.js","webpack:///./src/players/FilePlayer.js","webpack:///./node_modules/vast-client/src/creative/creative.js","webpack:///./node_modules/vast-client/src/util/util.js","webpack:///./node_modules/object-assign/index.js","webpack:///./node_modules/fbjs/lib/emptyObject.js","webpack:///./src/players/Facebook.js","webpack:///./src/players/Streamable.js","webpack:///./src/players/FaceMask.js","webpack:///./src/players/Wistia.js","webpack:///./src/players/Twitch.js","webpack:///./src/players/UstreamLive.js","webpack:///./src/players/UstreamVideo.js","webpack:///./src/players/Iframe.js","webpack:///./src/players/Mixcloud.js","webpack:///./src/players/VAST.js","webpack:///./node_modules/vpaid-html5-client/js/utils.js","webpack:///./node_modules/vast-client/src/parser/vast_parser.js","webpack:///./node_modules/vast-client/src/companion_ad.js","webpack:///./node_modules/vast-client/src/creative/creative_linear.js","webpack:///./node_modules/vast-client/src/non_linear_ad.js","webpack:///./node_modules/events/events.js","webpack:///./src/players/JWPlayer.js","webpack:///./src/players/PhenixPlayer.js","webpack:///./src/standalone.js","webpack:///./node_modules/react/cjs/react.production.min.js","webpack:///./node_modules/react-dom/index.js","webpack:///./node_modules/react-dom/cjs/react-dom.production.min.js","webpack:///./node_modules/fbjs/lib/ExecutionEnvironment.js","webpack:///./node_modules/fbjs/lib/EventListener.js","webpack:///./node_modules/fbjs/lib/getActiveElement.js","webpack:///./node_modules/fbjs/lib/shallowEqual.js","webpack:///./node_modules/fbjs/lib/containsNode.js","webpack:///./node_modules/fbjs/lib/isTextNode.js","webpack:///./node_modules/fbjs/lib/isNode.js","webpack:///./node_modules/fbjs/lib/focusNode.js","webpack:///./src/ReactPlayer.js","webpack:///./node_modules/load-script/index.js","webpack:///./node_modules/deepmerge/dist/umd.js","webpack:///./node_modules/prop-types/index.js","webpack:///./node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/fbjs/lib/invariant.js","webpack:///./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/vpaid-html5-client/js/VPAIDHTML5Client.js","webpack:///./node_modules/vpaid-html5-client/js/VPAIDAdUnit.js","webpack:///./node_modules/vpaid-html5-client/js/IVPAIDAdUnit.js","webpack:///./node_modules/vpaid-html5-client/js/subscriber.js","webpack:///./node_modules/vast-client/src/index.js","webpack:///./node_modules/vast-client/src/parser/ad_parser.js","webpack:///./node_modules/vast-client/src/ad.js","webpack:///./node_modules/vast-client/src/ad_extension.js","webpack:///./node_modules/vast-client/src/ad_extension_child.js","webpack:///./node_modules/vast-client/src/parser/creative_companion_parser.js","webpack:///./node_modules/vast-client/src/creative/creative_companion.js","webpack:///./node_modules/vast-client/src/parser/creative_linear_parser.js","webpack:///./node_modules/vast-client/src/icon.js","webpack:///./node_modules/vast-client/src/media_file.js","webpack:///./node_modules/vast-client/src/parser/creative_non_linear_parser.js","webpack:///./node_modules/vast-client/src/creative/creative_non_linear.js","webpack:///./node_modules/vast-client/src/url_handler.js","webpack:///./node_modules/vast-client/src/urlhandlers/flash_url_handler.js","webpack:///./node_modules/vast-client/src/urlhandlers/mock_node_url_handler.js","webpack:///./node_modules/vast-client/src/urlhandlers/xhr_url_handler.js","webpack:///./node_modules/vast-client/src/vast_response.js","webpack:///./node_modules/vast-client/src/vast_client.js","webpack:///./node_modules/vast-client/src/util/storage.js","webpack:///./node_modules/vast-client/src/vast_tracker.js","webpack:///./src/players/index.js","webpack:///./src/Preview.js","webpack:///./src/preload.js"],"names":["module","exports","require","parseStartTime","parseEndTime","randomString","queryString","getSDK","getConfig","omit","callPlayer","isObject","isEqual","isMediaStream","MATCH_START_QUERY","MATCH_END_QUERY","MATCH_START_STAMP","MATCH_NUMERIC","parseTimeParam","url","pattern","match","stamp","parseTimeString","test","parseInt","undefined","seconds","array","exec","count","period","Math","random","toString","substr","object","Object","keys","map","key","join","resolves","sdkGlobal","sdkReady","isLoaded","fetchScript","window","Promise","resolve","reject","push","onLoaded","forEach","sdk","previousOnReady","err","props","defaultProps","showWarning","config","p","replace","link","message","console","warn","arrays","omitKeys","concat","output","indexOf","method","player","constructor","displayName","args","val","a","b","Array","length","i","MediaStream","createSinglePlayer","SUPPORTED_PROPS","activePlayer","getDuration","getCurrentTime","getSecondsLoaded","getInternalPlayer","seekTo","fraction","type","ref","nextProps","file","forceVideo","forceAudio","forceHLS","forceDASH","skipCanPlay","canPlay","style","width","height","Wrapper","wrapper","otherProps","propTypes","childByName","node","name","childNodes","childKey","child","nodeName","childrenByName","children","resolveVastAdTagURI","vastAdTagUrl","originalUrl","location","protocol","baseURL","slice","lastIndexOf","parseBoolean","booleanString","parseNodeText","textContent","text","trim","copyNodeAttribute","attributeName","nodeSource","nodeDestination","attributeValue","getAttribute","setAttribute","parseDuration","durationString","isNumeric","durationComponents","split","secondsAndMS","parseFloat","minutes","hours","isNaN","splitVAST","ads","splittedVAST","lastAdPod","ad","sequence","lastAd","mergeWrapperAdData","unwrappedAd","errorURLTemplates","impressionURLTemplates","extensions","creatives","trackingEvents","creative","eventName","urls","isArray","videoClickTrackingURLTemplates","videoCustomClickURLTemplates","videoClickThroughURLTemplate","parserUtils","makeEmptyFunction","arg","emptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument","string","bool","number","oneOfType","shape","func","playing","loop","controls","volume","muted","playbackRate","progressInterval","playsinline","pip","light","render","isRequired","soundcloud","options","preload","youtube","playerVars","embedOptions","facebook","appId","dailymotion","params","vimeo","playerOptions","attributes","tracks","hlsOptions","hlsVersion","dashVersion","wistia","mixcloud","twitch","onAdSkippable","onReady","onStart","onPlay","onPause","onBuffer","onBufferEnd","onEnded","onError","onDuration","onSeek","onProgress","onVolumeChange","onEnablePIP","onDisablePIP","visual","buying","liking","download","sharing","show_comments","show_playcount","showinfo","rel","iv_load_policy","modestbranding","api","autopause","byline","portrait","title","hide_cover","DEPRECATED_CONFIG_PROPS","SDK_URL","SDK_GLOBAL","SDK_GLOBAL_READY","MATCH_URL","MATCH_PLAYLIST","parsePlaylist","playlistId","listType","list","YouTube","onStateChange","data","PlayerState","PLAYING","PAUSED","BUFFERING","ENDED","CUED","isPlaylist","play","mute","unmute","container","isReady","id","loadPlaylist","cueVideoById","videoId","startSeconds","start","endSeconds","end","YT","loaded","then","Player","autoplay","origin","events","event","setLoop","document","body","contains","amount","pause","rate","SEEK_ON_PLAY_EXPIRY","mounted","isPlaying","isLoading","loadOnReady","startOnPlay","seekOnPlay","onDurationCalled","progress","playedSeconds","loadedSeconds","duration","played","prevPlayed","prevLoaded","progressTimeout","setTimeout","progressFrequency","setVolume","load","onDurationCheck","setPlaybackRate","e","loopOnEnded","clearTimeout","durationCheckTimeout","stop","disablePIP","enablePIP","isFraction","SoundCloud","currentTime","fractionLoaded","iframe","SC","Widget","Events","PLAY","PLAY_PROGRESS","PAUSE","FINISH","ERROR","bind","currentPosition","loadedProgress","callback","encodeURIComponent","MATCH_FILE_URL","Vimeo","secondsLoaded","ready","querySelector","on","refreshDuration","overflow","backgroundColor","DailyMotion","onDurationChange","DM","video","apiready","seeked","video_end","durationchange","waiting","error","bufferedTime","IOS","navigator","userAgent","MSStream","AUDIO_EXTENSIONS","VIDEO_EXTENSIONS","HLS_EXTENSIONS","HLS_SDK_URL","HLS_GLOBAL","DASH_EXTENSIONS","DASH_SDK_URL","DASH_GLOBAL","MATCH_DROPBOX_URL","item","src","canEnablePIP","pictureInPictureEnabled","FilePlayer","target","renderSourceElement","source","index","renderTrack","track","addListeners","shouldUseAudio","removeListeners","prevProps","videoElementId","addEventListener","removeEventListener","poster","shouldUseHLS","hls","Hls","loadSource","attachMedia","shouldUseDASH","dash","dashjs","MediaPlayer","create","initialize","getDebug","setLogToBrowserConsole","srcObject","URL","createObjectURL","promise","removeAttribute","destroy","reset","requestPictureInPicture","pictureInPictureElement","exitPictureInPicture","seekable","Infinity","buffered","useHLS","useDASH","useAudio","Element","getSource","Creative","creativeAttributes","adId","apiFramework","URLTemplates","variables","URLs","resolveURLTemplates","Image","encodeURIComponentRFC3986","isCustomCode","leftpad","round","Date","toISOString","URLTemplateKey","resolveURL","value","macro1","macro2","str","c","charCodeAt","range","left","right","inclusive","result","ascending","n","isFinite","flatten","arr","reduce","flat","toFlatten","util","getOwnPropertySymbols","hasOwnProperty","prototype","propIsEnumerable","propertyIsEnumerable","toObject","TypeError","shouldUseNative","assign","test1","String","getOwnPropertyNames","test2","fromCharCode","order2","test3","letter","from","to","symbols","s","arguments","call","emptyObject","freeze","PLAYER_ID_PREFIX","Facebook","playerID","FB","XFBML","parse","init","xfbml","version","Event","subscribe","msg","instance","getElementById","visibility","Streamable","playerjs","percent","FaceMask","nfl","playaction","containerId","initialVideo","EVENTS","PLAYER_READY","STATUS","TIME_UPDATE","VOLUME","COMPLETE","status","Wistia","_wq","getID","autoPlay","silentAutoPlay","controlsVisibleOnLoad","unbind","className","MATCH_VIDEO_URL","MATCH_CHANNEL_URL","Twitch","isChannel","setChannel","setVideo","channel","READY","UstreamLive","state","ustreamSrc","m","setState","channelId","parseId","UstreamEmbed","addListener","playTime","now","getProperty","UstreamVideo","currentTimeInterval","clearInterval","setInterval","initInterval","Iframe","alignItems","background","display","justifyContent","borderStyle","borderWidth","color","Mixcloud","PlayerWidget","ended","query","feed","CONTENT_ID_PREFIX","SKIP_ID_PREFIX","VAST","canSkip","framework","preMuteVolume","sources","tracker","vastClient","vpaidAdUnit","vpaidClient","contentID","skipID","setAdVolume","onAdClick","click","complete","errorWithCode","setPaused","setProgress","Number","assetDuration","setMuted","mediaFiles","fileURL","mimeType","filter","removeVPAIDListeners","response","createSourceFiles","onVPAIDAdLoaded","skip","skipAd","startAd","unsubscribe","loadAdUnit","adUnit","addVPAIDListeners","initAd","rawUrl","ord","get","withCredentials","parseResponse","loadVPAID","openAdLink","resumeAd","pauseAd","stopAd","open","clickTrackingURLTemplate","wrapperStyle","cursor","videoStyle","dimensions","contentStyle","top","position","zIndex","skipStyle","bottom","renderVPAID","renderVAST","noop","validate","isValid","Error","timeouts","clearCallbackTimeout","timeout","callbackTimeout","timer","onSuccess","onTimeout","apply","createElementInEl","parent","tagName","nEl","createElement","appendChild","createIframeWithContent","template","createIframe","setIframeContent","simpleTemplate","marginWidth","marginHeight","frameBorder","setFullSizeStyle","innerHTML","element","margin","padding","border","JSON","stringify","RegExp","iframeEl","content","iframeDoc","contentWindow","write","extend","toExtend","fromSource","unique","prefix","DEFAULT_MAX_WRAPPER_DEPTH","DEFAULT_EVENT_DATA","ERRORCODE","VASTParser","remainingAds","parentURLs","rootErrorURLTemplates","maxWrapperDepth","URLTemplateFilters","fetchingOptions","pop","urlTemplates","errorCode","emit","wrapperDepth","urlHandler","xml","rootURL","wrapperLimit","urlhandler","all","shift","resolveAds","buildVASTResponse","resolvedAds","initParsingStatus","fetchVAST","isRootVAST","vastXml","getErrorURLTemplates","completeWrapperResolving","documentElement","nodeKey","errorURLTemplate","trackVastError","resolveAll","wrapperSequence","parseVastXml","adsCount","lastAddedAd","resolveWrappersPromises","resolveWrappersPromise","resolveWrappers","unwrappedAds","remainingAdsToResolve","nextWrapperURL","catch","errorMessage","vastResponse","ERRORMESSAGE","system","splice","CompanionAd","staticResource","htmlResource","iframeResource","altText","companionClickThroughURLTemplate","companionClickTrackingURLTemplates","CreativeLinear","skipDelay","adParameters","icons","NonLinearAd","expandedWidth","expandedHeight","scalable","maintainAspectRatio","minSuggestedDuration","nonlinearClickThroughURLTemplate","nonlinearClickTrackingURLTemplates","EventEmitter","_events","_maxListeners","defaultMaxListeners","setMaxListeners","isNumber","er","handler","len","listeners","context","isUndefined","isFunction","listener","newListener","warned","trace","once","fired","g","removeListener","removeAllListeners","ret","listenerCount","evlistener","emitter","JWPlayer","setup","jwplayer","PHENIX_SDK_URL","PHENIX_SDK_GLOBAL","PHENIX_URL_REGEX","getPhenixSdk","PhenixPlayer","channelExpress","playerRef","dispose","backendUri","getPhenixBackendUri","getPhenixChannelId","authenticationData","getPhenixAuthenticationData","joinChannelCallback","success","subscriberCallback","includes","phenix","express","ChannelExpress","joinChannel","videoElement","renderReactPlayer","q","Symbol","r","t","u","v","w","x","iterator","y","framesToPop","z","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","A","refs","updater","isReactComponent","forceUpdate","B","C","D","isPureReactComponent","E","F","unstable_isAsyncReactComponent","G","current","H","I","__self","__source","J","d","k","f","h","l","$$typeof","_owner","K","escape","L","M","N","keyPrefix","O","P","Q","next","done","R","S","T","U","Children","toArray","only","Component","PureComponent","unstable_AsyncComponent","Fragment","cloneElement","createFactory","isValidElement","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","V","W","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","aa","ba","da","ea","fa","ia","oa","dangerouslySetInnerHTML","defaultValue","defaultChecked","suppressContentEditableWarning","suppressHydrationWarning","pa","ta","MUST_USE_PROPERTY","HAS_BOOLEAN_VALUE","HAS_NUMERIC_VALUE","HAS_POSITIVE_NUMERIC_VALUE","HAS_OVERLOADED_BOOLEAN_VALUE","HAS_STRING_BOOLEAN_VALUE","injectDOMPropertyConfig","Properties","DOMAttributeNamespaces","DOMAttributeNames","DOMMutationMethods","ua","toLowerCase","attributeNamespace","propertyName","mutationMethod","mustUseProperty","hasBooleanValue","hasNumericValue","hasPositiveNumericValue","hasOverloadedBooleanValue","hasStringBooleanValue","va","wa","xa","ya","za","Aa","Ba","Ca","Da","allowFullScreen","async","autoFocus","capture","checked","cols","contentEditable","defer","disabled","draggable","formNoValidate","hidden","multiple","noValidate","playsInline","readOnly","required","reversed","rows","rowSpan","scoped","seamless","selected","size","span","spellCheck","tabIndex","itemScope","acceptCharset","htmlFor","httpEquiv","hasAttribute","validity","badInput","ownerDocument","activeElement","Ea","xlink","Ga","autoReverse","externalResourcesRequired","preserveAlpha","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlLang","xmlSpace","Ha","Ia","toUpperCase","_caughtError","_hasCaughtError","_rethrowError","_hasRethrowError","injection","injectErrorUtils","invokeGuardedCallback","Ja","invokeGuardedCallbackAndCatchFirstError","hasCaughtError","clearCaughtError","rethrowCaughtError","Ka","La","Ma","Na","Oa","extractEvents","eventTypes","Pa","phasedRegistrationNames","Qa","registrationName","Ra","Sa","dependencies","Ta","Ua","Va","plugins","eventNameDispatchConfigs","registrationNameModules","registrationNameDependencies","possibleRegistrationNames","injectEventPluginOrder","injectEventPluginsByName","Wa","Xa","Ya","Za","currentTarget","$a","ab","bb","cb","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","release","db","gb","hb","ib","stateNode","jb","kb","lb","mb","getListener","enqueueEvents","processEventQueue","nb","ob","pb","parentNode","tag","qb","rb","sb","precacheFiberNode","getClosestInstanceFromNode","getInstanceFromNode","getNodeFromInstance","getFiberCurrentPropsFromNode","updateFiberProps","tb","ub","vb","dispatchConfig","wb","_targetInst","xb","yb","zb","Ab","Bb","alternate","Cb","accumulateTwoPhaseDispatches","accumulateTwoPhaseDispatchesSkipTarget","accumulateEnterLeaveDispatches","accumulateDirectDispatches","Db","Eb","canUseDOM","_root","_startText","_fallbackText","Fb","Gb","Hb","Ib","eventPhase","bubbles","cancelable","timeStamp","defaultPrevented","isTrusted","nativeEvent","Interface","isDefaultPrevented","returnValue","preventDefault","stopPropagation","cancelBubble","persist","destructor","augmentClass","Jb","Kb","eventPool","Lb","getPooled","Mb","Nb","Pb","Vb","Wb","documentMode","Xb","Yb","opera","Zb","$b","ac","bc","beforeInput","bubbled","captured","compositionEnd","compositionStart","compositionUpdate","cc","dc","keyCode","ec","detail","fc","gc","which","hc","ctrlKey","altKey","metaKey","char","ic","jc","kc","lc","mc","restoreControlledState","nc","injectFiberControlledHostComponent","oc","pc","qc","enqueueStateRestore","restoreStateIfNeeded","rc","sc","tc","uc","date","datetime","email","month","password","search","tel","time","week","vc","wc","srcElement","correspondingUseElement","nodeType","xc","implementation","hasFeature","yc","zc","Ac","getOwnPropertyDescriptor","set","defineProperty","enumerable","configurable","getValue","setValue","stopTracking","_valueTracker","Bc","Cc","Dc","change","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","detachEvent","Mc","Nc","attachEvent","Oc","Pc","$c","_isInputEventSupported","_wrapperState","controlled","bd","view","cd","Alt","Control","Meta","Shift","dd","getModifierState","ed","fd","screenX","screenY","clientX","clientY","pageX","pageY","shiftKey","button","buttons","relatedTarget","fromElement","toElement","gd","mouseEnter","mouseLeave","hd","defaultView","parentWindow","jd","kd","effectTag","ld","_reactInternalFiber","md","nd","sibling","od","pd","qd","rd","targetInst","ancestors","containerInfo","sd","topLevelType","td","ud","listen","vd","wd","xd","_enabled","_handleTopLevel","setHandleTopLevel","setEnabled","isEnabled","trapBubbledEvent","trapCapturedEvent","dispatchEvent","yd","zd","animationend","animationiteration","animationstart","transitionend","Ad","Bd","animation","transition","Cd","Dd","topAbort","topAnimationEnd","topAnimationIteration","topAnimationStart","topBlur","topCancel","topCanPlay","topCanPlayThrough","topChange","topClick","topClose","topCompositionEnd","topCompositionStart","topCompositionUpdate","topContextMenu","topCopy","topCut","topDoubleClick","topDrag","topDragEnd","topDragEnter","topDragExit","topDragLeave","topDragOver","topDragStart","topDrop","topDurationChange","topEmptied","topEncrypted","topEnded","topError","topFocus","topInput","topKeyDown","topKeyPress","topKeyUp","topLoadedData","topLoad","topLoadedMetadata","topLoadStart","topMouseDown","topMouseMove","topMouseOut","topMouseOver","topMouseUp","topPaste","topPause","topPlay","topPlaying","topProgress","topRateChange","topScroll","topSeeked","topSeeking","topSelectionChange","topStalled","topSuspend","topTextInput","topTimeUpdate","topToggle","topTouchCancel","topTouchEnd","topTouchMove","topTouchStart","topTransitionEnd","topVolumeChange","topWaiting","topWheel","Ed","Fd","Gd","Hd","Id","firstChild","Jd","offset","nextSibling","Kd","Ld","Md","select","Nd","Od","Pd","Qd","Rd","selectionStart","selectionEnd","getSelection","anchorNode","anchorOffset","focusNode","focusOffset","Sd","onSelect","Td","animationName","elapsedTime","pseudoElement","Ud","clipboardData","Vd","Wd","charCode","Xd","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Yd","Zd","repeat","locale","$d","dataTransfer","ae","touches","targetTouches","changedTouches","be","ce","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","de","ee","fe","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","ge","he","Set","ie","X","je","ke","le","me","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","childContextTypes","ne","oe","pe","getChildContext","qe","__reactInternalMemoizedMergedChildContext","re","Y","memoizedState","updateQueue","memoizedProps","pendingProps","internalContextTag","lastEffect","firstEffect","nextEffect","expirationTime","se","te","ue","ve","we","xe","ye","pendingChildren","ze","Ae","Be","Ce","isDisabled","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","De","Ee","Fe","baseState","first","last","callbackList","hasForceUpdate","isInitialized","Ge","He","Ie","partialState","Je","isReplace","isForced","Ke","Le","nextCallback","adoptClassInstance","constructClassInstance","mountClassInstance","componentWillMount","componentDidMount","updateClassInstance","componentWillReceiveProps","componentDidUpdate","shouldComponentUpdate","componentWillUpdate","Qe","Re","Se","Te","Ue","Ve","We","Xe","Ye","Ze","_stringRef","$e","af","Map","bf","cf","df","pendingContext","shouldSetTextContent","useSyncScheduling","shouldDeprioritizeSubtree","pushHostContext","pushHostContainer","enterHydrationState","resetHydrationState","tryToClaimNextHydratableInstance","Ob","beginWork","hydrate","beginFailedWork","ef","createInstance","createTextInstance","appendInitialChild","finalizeInitialChildren","prepareUpdate","persistence","getRootHostContainer","popHostContext","getHostContext","popHostContainer","prepareToHydrateHostInstance","prepareToHydrateHostTextInstance","popHydrationState","mutation","completeWork","ff","componentWillUnmount","getPublicInstance","commitMount","commitUpdate","resetTextContent","commitTextUpdate","appendChildToContainer","insertBefore","insertInContainerBefore","removeChild","removeChildFromContainer","commitResetTextContent","commitPlacement","commitDeletion","commitWork","commitLifeCycles","commitAttachRef","commitDetachRef","gf","hf","getChildHostContext","getRootHostContext","resetHostContainer","jf","hydration","canHydrateInstance","canHydrateTextInstance","getNextHydratableSibling","getFirstHydratableChild","hydrateInstance","hydrateTextInstance","kf","Qb","ja","isReadyForCommit","yg","zg","Ag","Ne","Oe","Sc","Bg","Tc","Dg","Eg","componentDidCatch","componentStack","ca","Qc","ha","qa","Fg","rg","Gg","Uc","ra","Rc","eb","qg","has","add","_debugOwner","_debugSource","fileName","lineNumber","componentName","errorBoundary","errorBoundaryFound","errorBoundaryName","willRetry","suppressReactErrorLogging","Vc","ka","Hg","Rb","Ig","nextScheduledRoot","remainingExpirationTime","sa","la","Sb","ma","na","Wc","Pe","Tb","Jg","Xc","Kg","fb","Yc","Ub","Zc","Fa","finishedWork","timeRemaining","Lg","Me","scheduleDeferredCallback","cancelDeferredCallback","prepareForCommit","Cg","resetAfterCommit","computeAsyncExpiration","computeExpirationForFiber","scheduleWork","batchedUpdates","unbatchedUpdates","flushSync","deferredUpdates","lf","createContainer","updateContainer","getPublicRootInstance","findHostInstance","findHostInstanceWithNoPortals","injectIntoDevTools","findFiberByHostInstance","findHostInstanceByFiber","mf","nf","of","pf","qf","performance","rf","sf","tf","requestIdleCallback","cancelIdleCallback","uf","vf","wf","xf","yf","zf","Af","Bf","didTimeout","Cf","requestAnimationFrame","Df","postMessage","Ef","Ff","Gf","Hf","If","Jf","setAttributeNS","Kf","Lf","step","min","max","initialValue","initialChecked","Mf","Nf","Of","Pf","Qf","Rf","Sf","defaultSelected","Tf","wasMultiple","Uf","Vf","Wf","Xf","Yf","html","mathml","svg","Zf","$f","ag","bg","MSApp","execUnsafeLocalFunction","namespaceURI","cg","lastChild","nodeValue","dg","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","eg","charAt","substring","fg","setProperty","gg","menuitem","area","base","br","col","embed","hr","img","input","keygen","meta","param","wbr","hg","ig","is","jg","kg","lg","mg","ng","createElementNS","og","createTextNode","pg","__html","onClick","onclick","sg","tg","ug","vg","wg","setInitialProperties","diffProperties","updateProperties","diffHydratedProperties","diffHydratedText","warnForUnmatchedText","warnForDeletedHydratableElement","warnForDeletedHydratableText","warnForInsertedHydratedElement","warnForInsertedHydratedText","querySelectorAll","form","xg","Mg","Ng","Og","Z","rangeCount","focusedElem","selectionRange","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","scrollTop","focus","didNotMatchHydratedContainerTextInstance","didNotMatchHydratedTextInstance","didNotHydrateContainerInstance","didNotHydrateInstance","didNotFindHydratableContainerInstance","didNotFindHydratableContainerTextInstance","didNotFindHydratableInstance","didNotFindHydratableTextInstance","Pg","_reactRootContainer","Qg","Rg","unmount","Sg","createPortal","findDOMNode","unstable_renderSubtreeIntoContainer","unmountComponentAtNode","unstable_createPortal","unstable_batchedUpdates","unstable_deferredUpdates","EventPluginHub","EventPluginRegistry","EventPropagators","ReactControlledComponent","ReactDOMComponentTree","ReactDOMEventListener","bundleType","rendererPackageName","Tg","Ug","ExecutionEnvironment","canUseWorkers","Worker","canUseEventListeners","canUseViewport","screen","isInWorker","EventListener","eventType","remove","registerDefault","getActiveElement","doc","shallowEqual","objA","objB","keysA","keysB","isTextNode","containsNode","outerNode","innerNode","compareDocumentPosition","isNode","Node","customPlayers","ReactPlayer","showPreview","onClickPreview","wrapperRef","activePlayerRef","nextState","getActivePlayer","renderedActivePlayer","renderActivePlayer","preloadPlayers","players","sort","sortPlayers","preview","addCustomPlayer","removeCustomPlayers","opts","head","getElementsByTagName","script","charset","attrs","setAttributes","onend","stdOnEnd","ieOnEnd","onload","attr","onerror","onreadystatechange","readyState","global","factory","deepmerge","isMergeableObject","isNonNullObject","isSpecial","stringValue","isReactElement","canUseSymbol","REACT_ELEMENT_TYPE","emptyTarget","cloneUnlessOtherwiseSpecified","clone","defaultArrayMerge","mergeObject","destination","arrayMerge","sourceIsArray","targetIsArray","sourceAndTargetTypesMatch","deepmergeAll","prev","deepmerge_1","throwOnDirectAccess","invariant","ReactPropTypesSecret","shim","propName","propFullName","secret","getShim","ReactPropTypes","symbol","any","arrayOf","instanceOf","objectOf","oneOf","exact","checkPropTypes","PropTypes","validateFormat","format","condition","argIndex","utils","VPAIDAdUnit","defaultTemplate","AD_STOPPED","VPAIDHTML5Client","el","templateConfig","vpaidOptions","_id","_destroyed","_frameContainer","_videoEl","_vpaidOptions","_templateConfig","extraOptions","$unloadPreviousAdUnit","isDestroyed","adURL","$throwIfDestroyed","that","frame","iframeURL_JS","iframeID","getOrigin","_frame","_onLoad","onLoad","createAd","getVPAIDAd","adEl","$adDestroyed","isValidVPAIDAd","_adUnit","$destroyLoadListener","unloadAdUnit","$removeEl","$removeAdElements","$destroyAdUnit","hostname","port","IVPAIDAdUnit","Subscriber","checkVPAIDInterface","METHODS","AD_CLICK","FILTERED_EVENTS","VPAIDCreative","_isValid","_creative","_el","_iframe","_subscribers","$addEventsSubscribers","ignores","ariaty","callOrTriggerEvent","viewMode","desiredBitrate","creativeData","environmentVars","slot","videoSlot","off","GETTERS","getter","getAdVolume","_destroy","unsubscribeAll","$trigger","$clickThruHook","contentDocument","videoEl","playerHandles","triggerSync","trigger","subscribers","SETTERS","handshakeVersion","VPAIDVersion","resizeAd","expandAd","collapseAd","getAdLinear","getAdWidth","getAdHeight","getAdExpanded","getAdSkippableState","getAdRemainingTime","getAdDuration","getAdCompanions","getAdIcons","addStaticToInterface","VPAID1_METHODS","every","writable","isHandlerAttached","subscriber","some","VASTClient","VASTTracker","parseAd","adElement","adTypeElementKey","adTypeElement","parseWrapper","parseInLine","inLineElement","creativeElement","parseCreativeAdIdAttribute","creativeTypeElementKey","creativeTypeElement","parsedCreative","parseExtensions","description","advertiser","pricing","model","currency","survey","wrapperElement","wrapperURLElement","wrapperCreativeElement","collection","ext","extNodeAttrs","extNode","extNodeAttrKey","extNodeAttr","childNodeKey","childNode","txt","extChild","childNodeAttributes","extChildNodeAttrKey","extChildNodeAttr","AdExtension","AdExtensionChild","parseCreativeCompanion","companionAd","companionResource","htmlElement","iframeElement","staticElement","trackingEventsElement","trackingElement","trackingURLTemplate","clickTrackingElement","companionClickTrackingURLTemplate","variations","CreativeCompanion","parseCreativeLinear","skipOffset","videoClicksElement","customClickElement","adParamsElement","mediaFilesElement","mediaFile","mediaFileElement","deliveryType","codec","bitrate","minBitrate","maxBitrate","iconsElement","icon","program","iconElement","xPosition","parseXPosition","yPosition","parseYPosition","iconClicksElement","iconClickThroughURLTemplate","iconClickTrackingURLTemplates","iconClickTrackingElement","iconViewTrackingURLTemplate","Icon","MediaFile","parseCreativeNonLinear","nonlinearAd","nonlinearResource","CreativeNonLinear","supported","xdr","request","XDomainRequest","xmlDocument","ActiveXObject","send","onprogress","loadXML","responseText","flashURLHandler","nodeURLHandler","xhr","XMLHttpRequest","overrideMimeType","responseXML","statusText","XHRURLHandler","VASTResponse","cappingFreeLunch","cappingMinimumTimeInterval","customStorage","defaultOptions","vastParser","storage","lastSuccessfulAd","totalCalls","totalCallsTimeout","getRemainingAds","timeSinceLastCall","getAndParseVAST","getItem","setItem","DEFAULT_STORAGE","removeItem","clear","Storage","initStorage","localStorage","sessionStorage","storageError","isStorageDisabled","testStorage","testValue","DEFAULT_SKIP_DELAY","client","variation","impressed","skippable","_alreadyTriggeredQuartiles","emitAlwaysEvents","_initLinearTracking","_initVariationTracking","linear","setDuration","clickThroughURLTemplate","clickTrackingURLTemplates","quartiles","firstQuartile","midpoint","thirdQuartile","quartile","isQuartileReached","quartileReached","paused","fullscreen","expanded","trackURLs","fallbackClickThroughURL","CONTENTPLAYHEAD","progressFormatted","clickThroughURL","trackingURLTemplates","isAlwaysEmitEvent","ms","ICON_SIZE","Preview","image","fetchImage","fetch","json","thumbnail_url","flexCenter","styles","backgroundImage","backgroundSize","backgroundPosition","shadow","borderRadius","playIcon","borderColor","marginLeft","renderPreloadPlayers","PRELOAD_PLAYERS","configKey"],"mappings":"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","file":"ReactPlayer.standalone.js","sourcesContent":[" \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, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\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 = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 34);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap b57505fe99214ddb503c","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/react/index.js","import loadScript from 'load-script'\nimport merge from 'deepmerge'\n\nimport { DEPRECATED_CONFIG_PROPS } from './props'\n\nconst MATCH_START_QUERY = /[?&#](?:start|t)=([0-9hms]+)/\nconst MATCH_END_QUERY = /[?&#]end=([0-9hms]+)/\nconst MATCH_START_STAMP = /(\\d+)(h|m|s)/g\nconst MATCH_NUMERIC = /^\\d+$/\n\n// Parse YouTube URL for a start time param, ie ?t=1h14m30s\n// and return the start time in seconds\nfunction parseTimeParam (url, pattern) {\n const match = url.match(pattern)\n if (match) {\n const stamp = match[1]\n if (stamp.match(MATCH_START_STAMP)) {\n return parseTimeString(stamp)\n }\n if (MATCH_NUMERIC.test(stamp)) {\n return parseInt(stamp)\n }\n }\n return undefined\n}\n\nfunction parseTimeString (stamp) {\n let seconds = 0\n let array = MATCH_START_STAMP.exec(stamp)\n while (array !== null) {\n const [, count, period] = array\n if (period === 'h') seconds += parseInt(count, 10) * 60 * 60\n if (period === 'm') seconds += parseInt(count, 10) * 60\n if (period === 's') seconds += parseInt(count, 10)\n array = MATCH_START_STAMP.exec(stamp)\n }\n return seconds\n}\n\nexport function parseStartTime (url) {\n return parseTimeParam(url, MATCH_START_QUERY)\n}\n\nexport function parseEndTime (url) {\n return parseTimeParam(url, MATCH_END_QUERY)\n}\n\n// http://stackoverflow.com/a/38622545\nexport function randomString () {\n return Math.random().toString(36).substr(2, 5)\n}\n\nexport function queryString (object) {\n return Object\n .keys(object)\n .map(key => `${key}=${object[key]}`)\n .join('&')\n}\n\n// Util function to load an external SDK\n// or return the SDK if it is already loaded\nconst resolves = {}\nexport function getSDK (url, sdkGlobal, sdkReady = null, isLoaded = () => true, fetchScript = loadScript) {\n if (window[sdkGlobal] && isLoaded(window[sdkGlobal])) {\n return Promise.resolve(window[sdkGlobal])\n }\n return new Promise((resolve, reject) => {\n // If we are already loading the SDK, add the resolve\n // function to the existing array of resolve functions\n if (resolves[url]) {\n resolves[url].push(resolve)\n return\n }\n resolves[url] = [resolve]\n const onLoaded = sdk => {\n // When loaded, resolve all pending promises\n resolves[url].forEach(resolve => resolve(sdk))\n }\n if (sdkReady) {\n const previousOnReady = window[sdkReady]\n window[sdkReady] = function () {\n if (previousOnReady) previousOnReady()\n onLoaded(window[sdkGlobal])\n }\n }\n fetchScript(url, err => {\n if (err) reject(err)\n if (!sdkReady) {\n onLoaded(window[sdkGlobal])\n }\n })\n })\n}\n\nexport function getConfig (props, defaultProps, showWarning) {\n let config = merge(defaultProps.config, props.config)\n for (let p of DEPRECATED_CONFIG_PROPS) {\n if (props[p]) {\n const key = p.replace(/Config$/, '')\n config = merge(config, { [key]: props[p] })\n if (showWarning) {\n const link = 'https://github.com/CookPete/react-player#config-prop'\n const message = `ReactPlayer: %c${p} %cis deprecated, please use the config prop instead – ${link}`\n console.warn(message, 'font-weight: bold', '')\n }\n }\n }\n return config\n}\n\nexport function omit (object, ...arrays) {\n const omitKeys = [].concat(...arrays)\n const output = {}\n const keys = Object.keys(object)\n for (let key of keys) {\n if (omitKeys.indexOf(key) === -1) {\n output[key] = object[key]\n }\n }\n return output\n}\n\nexport function callPlayer (method, ...args) {\n // Util method for calling a method on this.player\n // but guard against errors and console.warn instead\n if (!this.player || !this.player[method]) {\n let message = `ReactPlayer: ${this.constructor.displayName} player could not call %c${method}%c – `\n if (!this.player) {\n message += 'The player was not available'\n } else if (!this.player[method]) {\n message += 'The method was not available'\n }\n console.warn(message, 'font-weight: bold', '')\n return null\n }\n return this.player[method](...args)\n}\n\nexport function isObject (val) {\n return val !== null && typeof val === 'object'\n}\n\n// Deep comparison of two objects but ignoring\n// functions, for use in shouldComponentUpdate\nexport function isEqual (a, b) {\n if (typeof a === 'function' && typeof b === 'function') {\n return true\n }\n if (a instanceof Array && b instanceof Array) {\n if (a.length !== b.length) {\n return false\n }\n for (let i = 0; i !== a.length; i++) {\n if (!isEqual(a[i], b[i])) {\n return false\n }\n }\n return true\n }\n if (isObject(a) && isObject(b)) {\n if (Object.keys(a).length !== Object.keys(b).length) {\n return false\n }\n for (let key of Object.keys(a)) {\n if (!isEqual(a[key], b[key])) {\n return false\n }\n }\n return true\n }\n return a === b\n}\n\nexport function isMediaStream (url) {\n return (\n typeof window !== 'undefined' &&\n typeof window.MediaStream !== 'undefined' &&\n url instanceof window.MediaStream\n )\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils.js","import React, { Component } from 'react'\n\nimport { propTypes, defaultProps, DEPRECATED_CONFIG_PROPS } from './props'\nimport { getConfig, omit, isEqual } from './utils'\nimport Player from './Player'\n\nconst SUPPORTED_PROPS = Object.keys(propTypes)\n\nexport default function createSinglePlayer (activePlayer) {\n return class SinglePlayer extends Component {\n static displayName = `${activePlayer.displayName}Player`\n static propTypes = propTypes\n static defaultProps = defaultProps\n static canPlay = activePlayer.canPlay\n\n config = getConfig(this.props, defaultProps, true)\n shouldComponentUpdate (nextProps) {\n return !isEqual(this.props, nextProps)\n }\n componentWillUpdate (nextProps) {\n this.config = getConfig(nextProps, defaultProps)\n }\n getDuration = () => {\n if (!this.player) return null\n return this.player.getDuration()\n }\n getCurrentTime = () => {\n if (!this.player) return null\n return this.player.getCurrentTime()\n }\n getSecondsLoaded = () => {\n if (!this.player) return null\n return this.player.getSecondsLoaded()\n }\n getInternalPlayer = (key = 'player') => {\n if (!this.player) return null\n return this.player.getInternalPlayer(key)\n }\n seekTo = (fraction, type) => {\n if (!this.player) return null\n this.player.seekTo(fraction, type)\n }\n ref = player => {\n this.player = player\n }\n render () {\n const { forceVideo, forceAudio, forceHLS, forceDASH } = this.config.file\n const skipCanPlay = forceVideo || forceAudio || forceHLS || forceDASH\n if (!activePlayer.canPlay(this.props.url) && !skipCanPlay) {\n return null\n }\n const { style, width, height, wrapper: Wrapper } = this.props\n const otherProps = omit(this.props, SUPPORTED_PROPS, DEPRECATED_CONFIG_PROPS)\n return (\n <Wrapper style={{ ...style, width, height }} {...otherProps}>\n <Player\n {...this.props}\n ref={this.ref}\n activePlayer={activePlayer}\n config={this.config}\n />\n </Wrapper>\n )\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/singlePlayer.js","import { util } from '../util/util';\n\n/**\n * This module provides support methods to the parsing classes.\n */\n\n/**\n * Returns the first element of the given node which nodeName matches the given name.\n * @param {Object} node - The node to use to find a match.\n * @param {String} name - The name to look for.\n * @return {Object}\n */\nfunction childByName(node, name) {\n const childNodes = node.childNodes;\n\n for (const childKey in childNodes) {\n const child = childNodes[childKey];\n\n if (child.nodeName === name) {\n return child;\n }\n }\n}\n\n/**\n * Returns all the elements of the given node which nodeName match the given name.\n * @param {any} node - The node to use to find the matches.\n * @param {any} name - The name to look for.\n * @return {Array}\n */\nfunction childrenByName(node, name) {\n const children = [];\n const childNodes = node.childNodes;\n\n for (const childKey in childNodes) {\n const child = childNodes[childKey];\n\n if (child.nodeName === name) {\n children.push(child);\n }\n }\n return children;\n}\n\n/**\n * Converts relative vastAdTagUri.\n * @param {String} vastAdTagUrl - The url to resolve.\n * @param {String} originalUrl - The original url.\n * @return {String}\n */\nfunction resolveVastAdTagURI(vastAdTagUrl, originalUrl) {\n if (!originalUrl) {\n return vastAdTagUrl;\n }\n\n if (vastAdTagUrl.indexOf('//') === 0) {\n const { protocol } = location;\n return `${protocol}${vastAdTagUrl}`;\n }\n\n if (vastAdTagUrl.indexOf('://') === -1) {\n // Resolve relative URLs (mainly for unit testing)\n const baseURL = originalUrl.slice(0, originalUrl.lastIndexOf('/'));\n return `${baseURL}/${vastAdTagUrl}`;\n }\n\n return vastAdTagUrl;\n}\n\n/**\n * Converts a boolean string into a Boolean.\n * @param {String} booleanString - The boolean string to convert.\n * @return {Boolean}\n */\nfunction parseBoolean(booleanString) {\n return ['true', 'TRUE', '1'].indexOf(booleanString) !== -1;\n}\n\n/**\n * Parses a node text (for legacy support).\n * @param {Object} node - The node to parse the text from.\n * @return {String}\n */\nfunction parseNodeText(node) {\n return node && (node.textContent || node.text || '').trim();\n}\n\n/**\n * Copies an attribute from a node to another.\n * @param {String} attributeName - The name of the attribute to clone.\n * @param {Object} nodeSource - The source node to copy the attribute from.\n * @param {Object} nodeDestination - The destination node to copy the attribute at.\n */\nfunction copyNodeAttribute(attributeName, nodeSource, nodeDestination) {\n const attributeValue = nodeSource.getAttribute(attributeName);\n if (attributeValue) {\n nodeDestination.setAttribute(attributeName, attributeValue);\n }\n}\n\n/**\n * Parses a String duration into a Number.\n * @param {String} durationString - The dureation represented as a string.\n * @return {Number}\n */\nfunction parseDuration(durationString) {\n if (durationString === null || typeof durationString === 'undefined') {\n return -1;\n }\n // Some VAST doesn't have an HH:MM:SS duration format but instead jus the number of seconds\n if (util.isNumeric(durationString)) {\n return parseInt(durationString);\n }\n\n const durationComponents = durationString.split(':');\n if (durationComponents.length !== 3) {\n return -1;\n }\n\n const secondsAndMS = durationComponents[2].split('.');\n let seconds = parseInt(secondsAndMS[0]);\n if (secondsAndMS.length === 2) {\n seconds += parseFloat(`0.${secondsAndMS[1]}`);\n }\n\n const minutes = parseInt(durationComponents[1] * 60);\n const hours = parseInt(durationComponents[0] * 60 * 60);\n\n if (\n isNaN(hours) ||\n isNaN(minutes) ||\n isNaN(seconds) ||\n minutes > 60 * 60 ||\n seconds > 60\n ) {\n return -1;\n }\n return hours + minutes + seconds;\n}\n\n/**\n * Splits an Array of ads into an Array of Arrays of ads.\n * Each subarray contains either one ad or multiple ads (an AdPod)\n * @param {Array} ads - An Array of ads to split\n * @return {Array}\n */\nfunction splitVAST(ads) {\n const splittedVAST = [];\n let lastAdPod = null;\n\n ads.forEach((ad, i) => {\n if (ad.sequence) {\n ad.sequence = parseInt(ad.sequence, 10);\n }\n // The current Ad may be the next Ad of an AdPod\n if (ad.sequence > 1) {\n const lastAd = ads[i - 1];\n // check if the current Ad is exactly the next one in the AdPod\n if (lastAd && lastAd.sequence === ad.sequence - 1) {\n lastAdPod && lastAdPod.push(ad);\n return;\n }\n // If the ad had a sequence attribute but it was not part of a correctly formed\n // AdPod, let's remove the sequence attribute\n delete ad.sequence;\n }\n\n lastAdPod = [ad];\n splittedVAST.push(lastAdPod);\n });\n\n return splittedVAST;\n}\n\n/**\n * Merges the data between an unwrapped ad and his wrapper.\n * @param {Ad} unwrappedAd - The 'unwrapped' Ad.\n * @param {Ad} wrapper - The wrapper Ad.\n * @return {void}\n */\nfunction mergeWrapperAdData(unwrappedAd, wrapper) {\n unwrappedAd.errorURLTemplates = wrapper.errorURLTemplates.concat(\n unwrappedAd.errorURLTemplates\n );\n unwrappedAd.impressionURLTemplates = wrapper.impressionURLTemplates.concat(\n unwrappedAd.impressionURLTemplates\n );\n unwrappedAd.extensions = wrapper.extensions.concat(unwrappedAd.extensions);\n\n unwrappedAd.creatives.forEach(creative => {\n if (wrapper.trackingEvents && wrapper.trackingEvents[creative.type]) {\n for (const eventName in wrapper.trackingEvents[creative.type]) {\n const urls = wrapper.trackingEvents[creative.type][eventName];\n if (!Array.isArray(creative.trackingEvents[eventName])) {\n creative.trackingEvents[eventName] = [];\n }\n creative.trackingEvents[eventName] = creative.trackingEvents[\n eventName\n ].concat(urls);\n }\n }\n });\n\n if (\n wrapper.videoClickTrackingURLTemplates &&\n wrapper.videoClickTrackingURLTemplates.length\n ) {\n unwrappedAd.creatives.forEach(creative => {\n if (creative.type === 'linear') {\n creative.videoClickTrackingURLTemplates = creative.videoClickTrackingURLTemplates.concat(\n wrapper.videoClickTrackingURLTemplates\n );\n }\n });\n }\n\n if (\n wrapper.videoCustomClickURLTemplates &&\n wrapper.videoCustomClickURLTemplates.length\n ) {\n unwrappedAd.creatives.forEach(creative => {\n if (creative.type === 'linear') {\n creative.videoCustomClickURLTemplates = creative.videoCustomClickURLTemplates.concat(\n wrapper.videoCustomClickURLTemplates\n );\n }\n });\n }\n\n // VAST 2.0 support - Use Wrapper/linear/clickThrough when Inline/Linear/clickThrough is null\n if (wrapper.videoClickThroughURLTemplate) {\n unwrappedAd.creatives.forEach(creative => {\n if (\n creative.type === 'linear' &&\n (creative.videoClickThroughURLTemplate === null ||\n typeof creative.videoClickThroughURLTemplate === 'undefined')\n ) {\n creative.videoClickThroughURLTemplate =\n wrapper.videoClickThroughURLTemplate;\n }\n });\n }\n}\n\nexport const parserUtils = {\n childByName,\n childrenByName,\n resolveVastAdTagURI,\n parseBoolean,\n parseNodeText,\n copyNodeAttribute,\n parseDuration,\n splitVAST,\n mergeWrapperAdData\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vast-client/src/parser/parser_utils.js","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fbjs/lib/emptyFunction.js","import PropTypes from 'prop-types'\n\nconst { string, bool, number, array, oneOfType, shape, object, func } = PropTypes\n\nexport const propTypes = {\n url: oneOfType([ string, array, object ]),\n playing: bool,\n loop: bool,\n controls: bool,\n volume: number,\n muted: bool,\n playbackRate: number,\n width: oneOfType([ string, number ]),\n height: oneOfType([ string, number ]),\n style: object,\n progressInterval: number,\n playsinline: bool,\n pip: bool,\n light: oneOfType([ bool, string ]),\n wrapper: oneOfType([\n string,\n func,\n shape({ render: func.isRequired })\n ]),\n config: shape({\n soundcloud: shape({\n options: object,\n preload: bool\n }),\n youtube: shape({\n playerVars: object,\n embedOptions: object,\n preload: bool\n }),\n facebook: shape({\n appId: string\n }),\n dailymotion: shape({\n params: object,\n preload: bool\n }),\n vimeo: shape({\n playerOptions: object,\n preload: bool\n }),\n file: shape({\n attributes: object,\n tracks: array,\n forceVideo: bool,\n forceAudio: bool,\n forceHLS: bool,\n forceDASH: bool,\n hlsOptions: object,\n hlsVersion: string,\n dashVersion: string\n }),\n wistia: shape({\n options: object\n }),\n mixcloud: shape({\n options: object\n }),\n twitch: shape({\n options: object\n })\n }),\n onAdSkippable: func,\n onReady: func,\n onStart: func,\n onPlay: func,\n onPause: func,\n onBuffer: func,\n onBufferEnd: func,\n onEnded: func,\n onError: func,\n onDuration: func,\n onSeek: func,\n onProgress: func,\n onVolumeChange: func,\n onEnablePIP: func,\n onDisablePIP: func\n}\n\nexport const defaultProps = {\n playing: false,\n loop: false,\n controls: false,\n volume: null,\n muted: false,\n playbackRate: 1,\n width: '640px',\n height: '360px',\n style: {},\n progressInterval: 1000,\n playsinline: false,\n pip: false,\n light: false,\n wrapper: 'div',\n config: {\n soundcloud: {\n options: {\n visual: true, // Undocumented, but makes player fill container and look better\n buying: false,\n liking: false,\n download: false,\n sharing: false,\n show_comments: false,\n show_playcount: false\n }\n },\n youtube: {\n playerVars: {\n playsinline: 1,\n showinfo: 0,\n rel: 0,\n iv_load_policy: 3,\n modestbranding: 1\n },\n embedOptions: {},\n preload: false\n },\n facebook: {\n appId: '1309697205772819'\n },\n dailymotion: {\n params: {\n api: 1,\n 'endscreen-enable': false\n },\n preload: false\n },\n vimeo: {\n playerOptions: {\n autopause: false,\n byline: false,\n portrait: false,\n title: false\n },\n preload: false\n },\n file: {\n attributes: {},\n tracks: [],\n forceVideo: false,\n forceAudio: false,\n forceHLS: false,\n forceDASH: false,\n hlsOptions: {},\n hlsVersion: '0.10.1',\n dashVersion: '2.9.2'\n },\n wistia: {\n options: {}\n },\n mixcloud: {\n options: {\n hide_cover: 1\n }\n },\n twitch: {\n options: {}\n }\n },\n onAdSkippable: function () {},\n onReady: function () {},\n onStart: function () {},\n onPlay: function () {},\n onPause: function () {},\n onBuffer: function () {},\n onBufferEnd: function () {},\n onEnded: function () {},\n onError: function () {},\n onDuration: function () {},\n onSeek: function () {},\n onVolumeChange: function () {},\n onProgress: function () {},\n onEnablePIP: function () {},\n onDisablePIP: function () {}\n}\n\nexport const DEPRECATED_CONFIG_PROPS = [\n 'soundcloudConfig',\n 'youtubeConfig',\n 'facebookConfig',\n 'dailymotionConfig',\n 'vimeoConfig',\n 'fileConfig',\n 'wistiaConfig'\n]\n\n\n\n// WEBPACK FOOTER //\n// ./src/props.js","import React, { Component } from 'react'\n\nimport { callPlayer, getSDK, parseStartTime, parseEndTime } from '../utils'\nimport createSinglePlayer from '../singlePlayer'\n\nconst SDK_URL = 'https://www.youtube.com/iframe_api'\nconst SDK_GLOBAL = 'YT'\nconst SDK_GLOBAL_READY = 'onYouTubeIframeAPIReady'\nconst MATCH_URL = /(?:youtu\\.be\\/|youtube\\.com\\/(?:embed\\/|v\\/|watch\\?v=|watch\\?.+&v=))((\\w|-){11})|youtube\\.com\\/playlist\\?list=/\nconst MATCH_PLAYLIST = /list=([a-zA-Z0-9_-]+)/\n\nfunction parsePlaylist (url) {\n if (MATCH_PLAYLIST.test(url)) {\n const [, playlistId] = url.match(MATCH_PLAYLIST)\n return {\n listType: 'playlist',\n list: playlistId\n }\n }\n return {}\n}\n\nexport class YouTube extends Component {\n static displayName = 'YouTube'\n static canPlay = url => MATCH_URL.test(url)\n\n callPlayer = callPlayer\n load (url, isReady) {\n const { playing, muted, playsinline, controls, loop, config, onError } = this.props\n const { playerVars, embedOptions } = config.youtube\n const id = url && url.match(MATCH_URL)[1]\n if (isReady) {\n if (MATCH_PLAYLIST.test(url)) {\n this.player.loadPlaylist(parsePlaylist(url))\n return\n }\n this.player.cueVideoById({\n videoId: id,\n startSeconds: parseStartTime(url) || playerVars.start,\n endSeconds: parseEndTime(url) || playerVars.end\n })\n return\n }\n getSDK(SDK_URL, SDK_GLOBAL, SDK_GLOBAL_READY, YT => YT.loaded).then(YT => {\n if (!this.container) return\n this.player = new YT.Player(this.container, {\n width: '100%',\n height: '100%',\n videoId: id,\n playerVars: {\n autoplay: playing ? 1 : 0,\n mute: muted ? 1 : 0,\n controls: controls ? 1 : 0,\n start: parseStartTime(url),\n end: parseEndTime(url),\n origin: window.location.origin,\n playsinline: playsinline,\n ...parsePlaylist(url),\n ...playerVars\n },\n events: {\n onReady: this.props.onReady,\n onStateChange: this.onStateChange,\n onError: event => onError(event.data)\n },\n ...embedOptions\n })\n if (loop) {\n this.player.setLoop(true) // Enable playlist looping\n }\n }, onError)\n }\n onStateChange = ({ data }) => {\n const { onPlay, onPause, onBuffer, onBufferEnd, onEnded, onReady, loop } = this.props\n const { PLAYING, PAUSED, BUFFERING, ENDED, CUED } = window[SDK_GLOBAL].PlayerState\n if (data === PLAYING) {\n onPlay()\n onBufferEnd()\n }\n if (data === PAUSED) onPause()\n if (data === BUFFERING) onBuffer()\n if (data === ENDED) {\n const isPlaylist = !!this.callPlayer('getPlaylist')\n if (loop && !isPlaylist) {\n this.play() // Only loop manually if not playing a playlist\n }\n onEnded()\n }\n if (data === CUED) onReady()\n }\n play () {\n this.callPlayer('playVideo')\n }\n pause () {\n this.callPlayer('pauseVideo')\n }\n stop () {\n if (!document.body.contains(this.callPlayer('getIframe'))) return\n this.callPlayer('stopVideo')\n }\n seekTo (amount) {\n this.callPlayer('seekTo', amount)\n if (!this.props.playing) {\n this.pause()\n }\n }\n setVolume (fraction) {\n this.callPlayer('setVolume', fraction * 100)\n }\n mute = () => {\n this.callPlayer('mute')\n }\n unmute = () => {\n this.callPlayer('unMute')\n }\n setPlaybackRate (rate) {\n this.callPlayer('setPlaybackRate', rate)\n }\n setLoop (loop) {\n this.callPlayer('setLoop', loop)\n }\n getDuration () {\n return this.callPlayer('getDuration')\n }\n getCurrentTime () {\n return this.callPlayer('getCurrentTime')\n }\n getSecondsLoaded () {\n return this.callPlayer('getVideoLoadedFraction') * this.getDuration()\n }\n ref = container => {\n this.container = container\n }\n render () {\n const style = {\n width: '100%',\n height: '100%',\n ...this.props.style\n }\n return (\n <div style={style}>\n <div ref={this.ref} />\n </div>\n )\n }\n}\n\nexport default createSinglePlayer(YouTube)\n\n\n\n// WEBPACK FOOTER //\n// ./src/players/YouTube.js","import React, { Component } from 'react'\n\nimport { propTypes, defaultProps } from './props'\nimport { isEqual } from './utils'\n\nconst SEEK_ON_PLAY_EXPIRY = 5000\n\nexport default class Player extends Component {\n static displayName = 'Player'\n static propTypes = propTypes\n static defaultProps = defaultProps\n mounted = false\n isReady = false\n isPlaying = false // Track playing state internally to prevent bugs\n isLoading = true // Use isLoading to prevent onPause when switching URL\n loadOnReady = null\n startOnPlay = true\n seekOnPlay = null\n onDurationCalled = false\n componentDidMount () {\n this.mounted = true\n this.player.load(this.props.url)\n this.progress()\n }\n componentWillUnmount () {\n clearTimeout(this.progressTimeout)\n clearTimeout(this.durationCheckTimeout)\n if (this.isReady) {\n this.player.stop()\n }\n if (this.player.disablePIP) {\n this.player.disablePIP()\n }\n this.mounted = false\n }\n componentWillReceiveProps (nextProps) {\n // Invoke player methods based on incoming props\n const { url, playing, volume, muted, playbackRate, pip, loop } = this.props\n if (!isEqual(url, nextProps.url)) {\n if (this.isLoading) {\n console.warn(`ReactPlayer: the attempt to load ${nextProps.url} is being deferred until the player has loaded`)\n this.loadOnReady = nextProps.url\n return\n }\n this.isLoading = true\n this.startOnPlay = true\n this.onDurationCalled = false\n this.player.load(nextProps.url, this.isReady)\n }\n if (!playing && nextProps.playing && !this.isPlaying) {\n this.player.play()\n }\n if (playing && !nextProps.playing && this.isPlaying) {\n this.player.pause()\n }\n if (!pip && nextProps.pip && this.player.enablePIP) {\n this.player.enablePIP()\n } else if (pip && !nextProps.pip && this.player.disablePIP) {\n this.player.disablePIP()\n }\n if (volume !== nextProps.volume && nextProps.volume !== null) {\n this.player.setVolume(nextProps.volume)\n }\n if (muted !== nextProps.muted) {\n if (nextProps.muted) {\n this.player.mute()\n } else {\n this.player.unmute()\n if (nextProps.volume !== null) {\n // Set volume next tick to fix a bug with DailyMotion\n setTimeout(() => this.player.setVolume(nextProps.volume))\n }\n }\n }\n if (playbackRate !== nextProps.playbackRate && this.player.setPlaybackRate) {\n this.player.setPlaybackRate(nextProps.playbackRate)\n }\n if (loop !== nextProps.loop && this.player.setLoop) {\n this.player.setLoop(nextProps.loop)\n }\n }\n getDuration () {\n if (!this.isReady) return null\n return this.player.getDuration()\n }\n getCurrentTime () {\n if (!this.isReady) return null\n return this.player.getCurrentTime()\n }\n getSecondsLoaded () {\n if (!this.isReady) return null\n return this.player.getSecondsLoaded()\n }\n getInternalPlayer = (key) => {\n if (!this.player) return null\n return this.player[key]\n }\n progress = () => {\n if (this.props.url && this.player && this.isReady) {\n const playedSeconds = this.getCurrentTime() || 0\n const loadedSeconds = this.getSecondsLoaded()\n const duration = this.getDuration()\n if (duration) {\n const progress = {\n playedSeconds,\n played: playedSeconds / duration\n }\n if (loadedSeconds !== null) {\n progress.loadedSeconds = loadedSeconds\n progress.loaded = loadedSeconds / duration\n }\n // Only call onProgress if values have changed\n if (progress.played !== this.prevPlayed || progress.loaded !== this.prevLoaded) {\n this.props.onProgress(progress)\n }\n this.prevPlayed = progress.played\n this.prevLoaded = progress.loaded\n }\n }\n this.progressTimeout = setTimeout(this.progress, this.props.progressFrequency || this.props.progressInterval)\n }\n seekTo (amount, type) {\n // When seeking before player is ready, store value and seek later\n if (!this.isReady && amount !== 0) {\n this.seekOnPlay = amount\n setTimeout(() => { this.seekOnPlay = null }, SEEK_ON_PLAY_EXPIRY)\n return\n }\n const isFraction = !type ? (amount > 0 && amount < 1) : type === 'fraction'\n if (isFraction) {\n // Convert fraction to seconds based on duration\n const duration = this.player.getDuration()\n if (!duration) {\n console.warn('ReactPlayer: could not seek using fraction – duration not yet available')\n return\n }\n this.player.seekTo(duration * amount)\n return\n }\n this.player.seekTo(amount)\n }\n onReady = () => {\n if (!this.mounted) return\n this.isReady = true\n this.isLoading = false\n const { onReady, playing, volume, muted } = this.props\n onReady()\n if (!muted && volume !== null) {\n this.player.setVolume(volume)\n }\n if (this.loadOnReady) {\n this.player.load(this.loadOnReady, true)\n this.loadOnReady = null\n } else if (playing) {\n this.player.play()\n }\n this.onDurationCheck()\n }\n onPlay = () => {\n this.isPlaying = true\n this.isLoading = false\n const { onStart, onPlay, playbackRate } = this.props\n if (this.startOnPlay) {\n if (this.player.setPlaybackRate) {\n this.player.setPlaybackRate(playbackRate)\n }\n onStart()\n this.startOnPlay = false\n }\n onPlay()\n if (this.seekOnPlay) {\n this.seekTo(this.seekOnPlay)\n this.seekOnPlay = null\n }\n this.onDurationCheck()\n }\n onPause = (e) => {\n this.isPlaying = false\n if (!this.isLoading) {\n this.props.onPause(e)\n }\n }\n onEnded = () => {\n const { activePlayer, loop, onEnded } = this.props\n if (activePlayer.loopOnEnded && loop) {\n this.seekTo(0)\n }\n if (!loop) {\n this.isPlaying = false\n onEnded()\n }\n }\n onError = (e) => {\n this.isLoading = false\n this.props.onError(e)\n }\n onDurationCheck = () => {\n clearTimeout(this.durationCheckTimeout)\n const duration = this.getDuration()\n if (duration) {\n if (!this.onDurationCalled) {\n this.props.onDuration(duration)\n this.onDurationCalled = true\n }\n } else {\n this.durationCheckTimeout = setTimeout(this.onDurationCheck, 100)\n }\n }\n onLoaded = () => {\n // Sometimes we know loading has stopped but onReady/onPlay are never called\n // so this provides a way for players to avoid getting stuck\n this.isLoading = false\n }\n ref = player => {\n if (player) {\n this.player = player\n }\n }\n render () {\n const Player = this.props.activePlayer\n if (!Player) {\n return null\n }\n return (\n <Player\n {...this.props}\n ref={this.ref}\n onReady={this.onReady}\n onPlay={this.onPlay}\n onPause={this.onPause}\n onEnded={this.onEnded}\n onLoaded={this.onLoaded}\n onError={this.onError}\n />\n )\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Player.js","import React, { Component } from 'react'\n\nimport { callPlayer, getSDK } from '../utils'\nimport createSinglePlayer from '../singlePlayer'\n\nconst SDK_URL = 'https://w.soundcloud.com/player/api.js'\nconst SDK_GLOBAL = 'SC'\nconst MATCH_URL = /(soundcloud\\.com|snd\\.sc)\\/.+$/\n\nexport class SoundCloud extends Component {\n static displayName = 'SoundCloud'\n static canPlay = url => MATCH_URL.test(url)\n static loopOnEnded = true\n\n callPlayer = callPlayer\n duration = null\n currentTime = null\n fractionLoaded = null\n load (url, isReady) {\n getSDK(SDK_URL, SDK_GLOBAL).then(SC => {\n if (!this.iframe) return\n const { PLAY, PLAY_PROGRESS, PAUSE, FINISH, ERROR } = SC.Widget.Events\n if (!isReady) {\n this.player = SC.Widget(this.iframe)\n this.player.bind(PLAY, this.props.onPlay)\n this.player.bind(PAUSE, this.props.onPause)\n this.player.bind(PLAY_PROGRESS, e => {\n this.currentTime = e.currentPosition / 1000\n this.fractionLoaded = e.loadedProgress\n })\n this.player.bind(FINISH, () => this.props.onEnded())\n this.player.bind(ERROR, e => this.props.onError(e))\n }\n this.player.load(url, {\n ...this.props.config.soundcloud.options,\n callback: () => {\n this.player.getDuration(duration => {\n this.duration = duration / 1000\n this.props.onReady()\n })\n }\n })\n })\n }\n play () {\n this.callPlayer('play')\n }\n pause () {\n this.callPlayer('pause')\n }\n stop () {\n // Nothing to do\n }\n seekTo (seconds) {\n this.callPlayer('seekTo', seconds * 1000)\n }\n setVolume (fraction) {\n this.callPlayer('setVolume', fraction * 100)\n }\n mute = () => {\n this.setVolume(0)\n }\n unmute = () => {\n if (this.props.volume !== null) {\n this.setVolume(this.props.volume)\n }\n }\n getDuration () {\n return this.duration\n }\n getCurrentTime () {\n return this.currentTime\n }\n getSecondsLoaded () {\n return this.fractionLoaded * this.duration\n }\n ref = iframe => {\n this.iframe = iframe\n }\n render () {\n const style = {\n width: '100%',\n height: '100%',\n ...this.props.style\n }\n return (\n <iframe\n ref={this.ref}\n src={`https://w.soundcloud.com/player/?url=${encodeURIComponent(this.props.url)}`}\n style={style}\n frameBorder={0}\n allow='autoplay'\n />\n )\n }\n}\n\nexport default createSinglePlayer(SoundCloud)\n\n\n\n// WEBPACK FOOTER //\n// ./src/players/SoundCloud.js","import React, { Component } from 'react'\n\nimport { callPlayer, getSDK } from '../utils'\nimport createSinglePlayer from '../singlePlayer'\n\nconst SDK_URL = 'https://player.vimeo.com/api/player.js'\nconst SDK_GLOBAL = 'Vimeo'\nconst MATCH_URL = /vimeo\\.com\\/.+/\nconst MATCH_FILE_URL = /vimeo\\.com\\/external\\/.+\\.mp4/\n\nexport class Vimeo extends Component {\n static displayName = 'Vimeo'\n static canPlay = url => {\n if (MATCH_FILE_URL.test(url)) {\n return false\n }\n return MATCH_URL.test(url)\n }\n\n callPlayer = callPlayer\n duration = null\n currentTime = null\n secondsLoaded = null\n load (url) {\n this.duration = null\n getSDK(SDK_URL, SDK_GLOBAL).then(Vimeo => {\n if (!this.container) return\n this.player = new Vimeo.Player(this.container, {\n ...this.props.config.vimeo.playerOptions,\n url,\n autoplay: this.props.playing,\n muted: this.props.muted,\n loop: this.props.loop,\n playsinline: this.props.playsinline\n })\n this.player.ready().then(() => {\n const iframe = this.container.querySelector('iframe')\n iframe.style.width = '100%'\n iframe.style.height = '100%'\n }).catch(this.props.onError)\n this.player.on('loaded', () => {\n this.props.onReady()\n this.refreshDuration()\n })\n this.player.on('play', () => {\n this.props.onPlay()\n this.refreshDuration()\n })\n this.player.on('pause', this.props.onPause)\n this.player.on('seeked', e => this.props.onSeek(e.seconds))\n this.player.on('ended', this.props.onEnded)\n this.player.on('error', this.props.onError)\n this.player.on('timeupdate', ({ seconds }) => {\n this.currentTime = seconds\n })\n this.player.on('progress', ({ seconds }) => {\n this.secondsLoaded = seconds\n })\n }, this.props.onError)\n }\n refreshDuration () {\n this.player.getDuration().then(duration => {\n this.duration = duration\n })\n }\n play () {\n this.callPlayer('play')\n }\n pause () {\n this.callPlayer('pause')\n }\n stop () {\n this.callPlayer('unload')\n }\n seekTo (seconds) {\n this.callPlayer('setCurrentTime', seconds)\n }\n setVolume (fraction) {\n this.callPlayer('setVolume', fraction)\n }\n setLoop (loop) {\n this.callPlayer('setLoop', loop)\n }\n mute = () => {\n this.setVolume(0)\n }\n unmute = () => {\n if (this.props.volume !== null) {\n this.setVolume(this.props.volume)\n }\n }\n getDuration () {\n return this.duration\n }\n getCurrentTime () {\n return this.currentTime\n }\n getSecondsLoaded () {\n return this.secondsLoaded\n }\n ref = container => {\n this.container = container\n }\n render () {\n const style = {\n width: '100%',\n height: '100%',\n overflow: 'hidden',\n backgroundColor: 'black',\n ...this.props.style\n }\n return (\n <div\n key={this.props.url}\n ref={this.ref}\n style={style}\n />\n )\n }\n}\n\nexport default createSinglePlayer(Vimeo)\n\n\n\n// WEBPACK FOOTER //\n// ./src/players/Vimeo.js","import React, { Component } from 'react'\n\nimport { callPlayer, getSDK, parseStartTime } from '../utils'\nimport createSinglePlayer from '../singlePlayer'\n\nconst SDK_URL = 'https://api.dmcdn.net/all.js'\nconst SDK_GLOBAL = 'DM'\nconst SDK_GLOBAL_READY = 'dmAsyncInit'\nconst MATCH_URL = /^(?:(?:https?):)?(?:\\/\\/)?(?:www\\.)?(?:(?:dailymotion\\.com(?:\\/embed)?\\/video)|dai\\.ly)\\/([a-zA-Z0-9]+)(?:_[\\w_-]+)?$/\n\nexport class DailyMotion extends Component {\n static displayName = 'DailyMotion'\n static canPlay = url => MATCH_URL.test(url)\n static loopOnEnded = true\n\n callPlayer = callPlayer\n load (url) {\n const { controls, config, onError, playing } = this.props\n const [, id] = url.match(MATCH_URL)\n if (this.player) {\n this.player.load(id, {\n start: parseStartTime(url),\n autoplay: playing\n })\n return\n }\n getSDK(SDK_URL, SDK_GLOBAL, SDK_GLOBAL_READY, DM => DM.player).then(DM => {\n if (!this.container) return\n const Player = DM.player\n this.player = new Player(this.container, {\n width: '100%',\n height: '100%',\n video: id,\n params: {\n controls: controls,\n autoplay: this.props.playing,\n mute: this.props.muted,\n start: parseStartTime(url),\n origin: window.location.origin,\n ...config.dailymotion.params\n },\n events: {\n apiready: this.props.onReady,\n seeked: () => this.props.onSeek(this.player.currentTime),\n video_end: this.props.onEnded,\n durationchange: this.onDurationChange,\n pause: this.props.onPause,\n playing: this.props.onPlay,\n waiting: this.props.onBuffer,\n error: event => onError(event)\n }\n })\n }, onError)\n }\n onDurationChange = () => {\n const duration = this.getDuration()\n this.props.onDuration(duration)\n }\n play () {\n this.callPlayer('play')\n }\n pause () {\n this.callPlayer('pause')\n }\n stop () {\n // Nothing to do\n }\n seekTo (seconds) {\n this.callPlayer('seek', seconds)\n }\n setVolume (fraction) {\n this.callPlayer('setVolume', fraction)\n }\n mute = () => {\n this.callPlayer('setMuted', true)\n }\n unmute = () => {\n this.callPlayer('setMuted', false)\n }\n getDuration () {\n return this.player.duration || null\n }\n getCurrentTime () {\n return this.player.currentTime\n }\n getSecondsLoaded () {\n return this.player.bufferedTime\n }\n ref = container => {\n this.container = container\n }\n render () {\n const style = {\n width: '100%',\n height: '100%',\n backgroundColor: 'black',\n ...this.props.style\n }\n return (\n <div style={style}>\n <div ref={this.ref} />\n </div>\n )\n }\n}\n\nexport default createSinglePlayer(DailyMotion)\n\n\n\n// WEBPACK FOOTER //\n// ./src/players/DailyMotion.js","import React, { Component } from 'react'\n\nimport { getSDK, isMediaStream } from '../utils'\nimport createSinglePlayer from '../singlePlayer'\n\nconst IOS = typeof navigator !== 'undefined' && /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream\nconst AUDIO_EXTENSIONS = /\\.(m4a|mp4a|mpga|mp2|mp2a|mp3|m2a|m3a|wav|weba|aac|oga|spx)($|\\?)/i\nconst VIDEO_EXTENSIONS = /\\.(mp4|og[gv]|webm|mov|m4v)($|\\?)/i\nconst HLS_EXTENSIONS = /\\.(m3u8)($|\\?)/i\nconst HLS_SDK_URL = 'https://cdnjs.cloudflare.com/ajax/libs/hls.js/VERSION/hls.min.js'\nconst HLS_GLOBAL = 'Hls'\nconst DASH_EXTENSIONS = /\\.(mpd)($|\\?)/i\nconst DASH_SDK_URL = 'https://cdnjs.cloudflare.com/ajax/libs/dashjs/VERSION/dash.all.min.js'\nconst DASH_GLOBAL = 'dashjs'\nconst MATCH_DROPBOX_URL = /www\\.dropbox\\.com\\/.+/\n\nfunction canPlay (url) {\n if (url instanceof Array) {\n for (let item of url) {\n if (typeof item === 'string' && canPlay(item)) {\n return true\n }\n if (canPlay(item.src)) {\n return true\n }\n }\n return false\n }\n if (isMediaStream(url)) {\n return true\n }\n return (\n AUDIO_EXTENSIONS.test(url) ||\n VIDEO_EXTENSIONS.test(url) ||\n HLS_EXTENSIONS.test(url) ||\n DASH_EXTENSIONS.test(url)\n )\n}\n\nfunction canEnablePIP (url) {\n return canPlay(url) && !!document.pictureInPictureEnabled && !AUDIO_EXTENSIONS.test(url)\n}\n\nexport class FilePlayer extends Component {\n static displayName = 'FilePlayer'\n static canPlay = canPlay\n static canEnablePIP = canEnablePIP\n\n componentDidMount () {\n this.addListeners()\n if (IOS) {\n this.player.load()\n }\n }\n componentWillReceiveProps (nextProps) {\n if (this.shouldUseAudio(this.props) !== this.shouldUseAudio(nextProps)) {\n this.removeListeners()\n }\n }\n componentDidUpdate (prevProps) {\n if (this.shouldUseAudio(this.props) !== this.shouldUseAudio(prevProps)) {\n this.addListeners()\n }\n }\n componentWillUnmount () {\n this.removeListeners()\n }\n addListeners () {\n const {\n onReady, onPlay, onBuffer, onBufferEnd,\n onPause, onEnded, onError, playsinline, onEnablePIP,\n onVolumeChange, videoElementId\n } = this.props\n this.player.addEventListener('canplay', onReady)\n this.player.addEventListener('play', onPlay)\n this.player.addEventListener('waiting', onBuffer)\n this.player.addEventListener('playing', onBufferEnd)\n this.player.addEventListener('pause', onPause)\n this.player.addEventListener('seeked', this.onSeek)\n this.player.addEventListener('ended', onEnded)\n this.player.addEventListener('error', onError)\n this.player.addEventListener('volumeChange', onVolumeChange)\n this.player.setAttribute('id', videoElementId)\n this.player.addEventListener('enterpictureinpicture', onEnablePIP)\n this.player.addEventListener('leavepictureinpicture', this.onDisablePIP)\n if (playsinline) {\n this.player.setAttribute('playsinline', '')\n this.player.setAttribute('webkit-playsinline', '')\n this.player.setAttribute('x5-playsinline', '')\n }\n }\n removeListeners () {\n const {\n onReady, onPlay, onBuffer, onBufferEnd,\n onPause, onEnded, onError, onEnablePIP,\n onVolumeChange\n } = this.props\n this.player.removeEventListener('canplay', onReady)\n this.player.removeEventListener('play', onPlay)\n this.player.removeEventListener('waiting', onBuffer)\n this.player.removeEventListener('playing', onBufferEnd)\n this.player.removeEventListener('pause', onPause)\n this.player.removeEventListener('seeked', this.onSeek)\n this.player.removeEventListener('ended', onEnded)\n this.player.removeEventListener('error', onError)\n this.player.removeEventListener('volumeChange', onVolumeChange)\n this.player.removeEventListener('enterpictureinpicture', onEnablePIP)\n this.player.removeEventListener('leavepictureinpicture', this.onDisablePIP)\n }\n onDisablePIP = e => {\n const { onDisablePIP, playing } = this.props\n onDisablePIP(e)\n if (playing) {\n this.play()\n }\n }\n onSeek = e => {\n this.props.onSeek(e.target.currentTime)\n }\n shouldUseAudio (props) {\n if (props.config.file.forceVideo) {\n return false\n }\n if (props.config.file.attributes.poster) {\n return false // Use <video> so that poster is shown\n }\n return AUDIO_EXTENSIONS.test(props.url) || props.config.file.forceAudio\n }\n shouldUseHLS (url) {\n return (HLS_EXTENSIONS.test(url) && !IOS) || this.props.config.file.forceHLS\n }\n shouldUseDASH (url) {\n return DASH_EXTENSIONS.test(url) || this.props.config.file.forceDASH\n }\n load (url) {\n const { hlsVersion, dashVersion } = this.props.config.file\n if (this.shouldUseHLS(url)) {\n getSDK(HLS_SDK_URL.replace('VERSION', hlsVersion), HLS_GLOBAL).then(Hls => {\n this.hls = new Hls(this.props.config.file.hlsOptions)\n this.hls.on(Hls.Events.ERROR, (e, data) => {\n this.props.onError(e, data, this.hls, Hls)\n })\n this.hls.loadSource(url)\n this.hls.attachMedia(this.player)\n })\n }\n if (this.shouldUseDASH(url)) {\n getSDK(DASH_SDK_URL.replace('VERSION', dashVersion), DASH_GLOBAL).then(dashjs => {\n this.dash = dashjs.MediaPlayer().create()\n this.dash.initialize(this.player, url, this.props.playing)\n this.dash.getDebug().setLogToBrowserConsole(false)\n })\n }\n\n if (url instanceof Array) {\n // When setting new urls (<source>) on an already loaded video,\n // HTMLMediaElement.load() is needed to reset the media element\n // and restart the media resource. Just replacing children source\n // dom nodes is not enough\n this.player.load()\n } else if (isMediaStream(url)) {\n try {\n this.player.srcObject = url\n } catch (e) {\n this.player.src = window.URL.createObjectURL(url)\n }\n }\n }\n play () {\n const promise = this.player.play()\n if (promise) {\n promise.catch(this.props.onError)\n }\n }\n pause () {\n this.player.pause()\n }\n stop () {\n this.player.removeAttribute('src')\n if (this.hls) {\n this.hls.destroy()\n }\n if (this.dash) {\n this.dash.reset()\n }\n }\n seekTo (seconds) {\n this.player.currentTime = seconds\n }\n setVolume (fraction) {\n this.player.volume = fraction\n }\n mute = () => {\n this.player.muted = true\n }\n unmute = () => {\n this.player.muted = false\n }\n enablePIP () {\n if (this.player.requestPictureInPicture && document.pictureInPictureElement !== this.player) {\n this.player.requestPictureInPicture()\n }\n }\n disablePIP () {\n if (document.exitPictureInPicture && document.pictureInPictureElement === this.player) {\n document.exitPictureInPicture()\n }\n }\n setPlaybackRate (rate) {\n this.player.playbackRate = rate\n }\n getDuration () {\n if (!this.player) return null\n const { duration, seekable } = this.player\n // on iOS, live streams return Infinity for the duration\n // so instead we use the end of the seekable timerange\n if (duration === Infinity && seekable.length > 0) {\n return seekable.end(seekable.length - 1)\n }\n return duration\n }\n getCurrentTime () {\n if (!this.player) return null\n return this.player.currentTime\n }\n getSecondsLoaded () {\n if (!this.player) return null\n const { buffered } = this.player\n if (buffered.length === 0) {\n return 0\n }\n const end = buffered.end(buffered.length - 1)\n const duration = this.getDuration()\n if (end > duration) {\n return duration\n }\n return end\n }\n getSource (url) {\n const useHLS = this.shouldUseHLS(url)\n const useDASH = this.shouldUseDASH(url)\n if (url instanceof Array || isMediaStream(url) || useHLS || useDASH) {\n return undefined\n }\n if (MATCH_DROPBOX_URL.test(url)) {\n return url.replace('www.dropbox.com', 'dl.dropboxusercontent.com')\n }\n return url\n }\n renderSourceElement = (source, index) => {\n if (typeof source === 'string') {\n return <source key={index} src={source} />\n }\n return <source key={index} {...source} />\n }\n renderTrack = (track, index) => {\n return <track key={index} {...track} />\n }\n ref = player => {\n this.player = player\n }\n render () {\n const { url, playing, loop, controls, muted, config, width, height } = this.props\n const useAudio = this.shouldUseAudio(this.props)\n const Element = useAudio ? 'audio' : 'video'\n const style = {\n width: width === 'auto' ? width : '100%',\n height: height === 'auto' ? height : '100%'\n }\n return (\n <Element\n ref={this.ref}\n src={this.getSource(url)}\n style={style}\n preload='auto'\n autoPlay={playing || undefined}\n controls={controls}\n muted={muted}\n loop={loop}\n {...config.file.attributes}>\n {url instanceof Array &&\n url.map(this.renderSourceElement)\n }\n {config.file.tracks.map(this.renderTrack)}\n </Element>\n )\n }\n}\n\nexport default createSinglePlayer(FilePlayer)\n\n\n\n// WEBPACK FOOTER //\n// ./src/players/FilePlayer.js","export class Creative {\n constructor(creativeAttributes = {}) {\n this.id = creativeAttributes.id || null;\n this.adId = creativeAttributes.adId || null;\n this.sequence = creativeAttributes.sequence || null;\n this.apiFramework = creativeAttributes.apiFramework || null;\n this.trackingEvents = {};\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vast-client/src/creative/creative.js","function track(URLTemplates, variables, options) {\n const URLs = resolveURLTemplates(URLTemplates, variables, options);\n\n URLs.forEach(URL => {\n if (typeof window !== 'undefined' && window !== null) {\n const i = new Image();\n i.src = URL;\n }\n });\n}\n\n/**\n * Replace the provided URLTemplates with the given values\n *\n * @param {Array} URLTemplates - An array of tracking url templates.\n * @param {Object} [variables={}] - An optional Object of parameters to be used in the tracking calls.\n * @param {Object} [options={}] - An optional Object of options to be used in the tracking calls.\n */\nfunction resolveURLTemplates(URLTemplates, variables = {}, options = {}) {\n const URLs = [];\n\n // Encode String variables, when given\n if (variables['ASSETURI']) {\n variables['ASSETURI'] = encodeURIComponentRFC3986(variables['ASSETURI']);\n }\n if (variables['CONTENTPLAYHEAD']) {\n variables['CONTENTPLAYHEAD'] = encodeURIComponentRFC3986(\n variables['CONTENTPLAYHEAD']\n );\n }\n\n // Set default value for invalid ERRORCODE\n if (\n variables['ERRORCODE'] &&\n !options.isCustomCode &&\n !/^[0-9]{3}$/.test(variables['ERRORCODE'])\n ) {\n variables['ERRORCODE'] = 900;\n }\n\n // Calc random/time based macros\n variables['CACHEBUSTING'] = leftpad(\n Math.round(Math.random() * 1.0e8).toString()\n );\n variables['TIMESTAMP'] = encodeURIComponentRFC3986(new Date().toISOString());\n\n // RANDOM/random is not defined in VAST 3/4 as a valid macro tho it's used by some adServer (Auditude)\n variables['RANDOM'] = variables['random'] = variables['CACHEBUSTING'];\n\n for (const URLTemplateKey in URLTemplates) {\n let resolveURL = URLTemplates[URLTemplateKey];\n\n if (typeof resolveURL !== 'string') {\n continue;\n }\n\n for (const key in variables) {\n const value = variables[key];\n const macro1 = `[${key}]`;\n const macro2 = `%%${key}%%`;\n resolveURL = resolveURL.replace(macro1, value);\n resolveURL = resolveURL.replace(macro2, value);\n }\n URLs.push(resolveURL);\n }\n\n return URLs;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent\nfunction encodeURIComponentRFC3986(str) {\n return encodeURIComponent(str).replace(\n /[!'()*]/g,\n c => `%${c.charCodeAt(0).toString(16)}`\n );\n}\n\nfunction leftpad(str) {\n if (str.length < 8) {\n return (\n range(0, 8 - str.length, false)\n .map(() => '0')\n .join('') + str\n );\n }\n return str;\n}\n\nfunction range(left, right, inclusive) {\n const result = [];\n const ascending = left < right;\n const end = !inclusive ? right : ascending ? right + 1 : right - 1;\n\n for (let i = left; ascending ? i < end : i > end; ascending ? i++ : i--) {\n result.push(i);\n }\n return result;\n}\n\nfunction isNumeric(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n}\n\nfunction flatten(arr) {\n return arr.reduce((flat, toFlatten) => {\n return flat.concat(\n Array.isArray(toFlatten) ? flatten(toFlatten) : toFlatten\n );\n }, []);\n}\n\nexport const util = {\n track,\n resolveURLTemplates,\n encodeURIComponentRFC3986,\n leftpad,\n range,\n isNumeric,\n flatten\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vast-client/src/util/util.js","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/object-assign/index.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyObject = {};\n\nif (process.env.NODE_ENV !== 'production') {\n Object.freeze(emptyObject);\n}\n\nmodule.exports = emptyObject;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fbjs/lib/emptyObject.js","import React, { Component } from 'react'\n\nimport { callPlayer, getSDK, randomString } from '../utils'\nimport createSinglePlayer from '../singlePlayer'\n\nconst SDK_URL = '//connect.facebook.net/en_US/sdk.js'\nconst SDK_GLOBAL = 'FB'\nconst SDK_GLOBAL_READY = 'fbAsyncInit'\nconst MATCH_URL = /facebook\\.com\\/([^/?].+\\/)?video(s|\\.php)[/?].*$/\nconst PLAYER_ID_PREFIX = 'facebook-player-'\n\nexport class Facebook extends Component {\n static displayName = 'Facebook'\n static canPlay = url => MATCH_URL.test(url)\n static loopOnEnded = true\n\n callPlayer = callPlayer\n playerID = PLAYER_ID_PREFIX + randomString()\n load (url, isReady) {\n if (isReady) {\n getSDK(SDK_URL, SDK_GLOBAL, SDK_GLOBAL_READY).then(FB => FB.XFBML.parse())\n return\n }\n getSDK(SDK_URL, SDK_GLOBAL, SDK_GLOBAL_READY).then(FB => {\n FB.init({\n appId: this.props.config.facebook.appId,\n xfbml: true,\n version: 'v2.5'\n })\n FB.Event.subscribe('xfbml.render', msg => {\n // Here we know the SDK has loaded, even if onReady/onPlay\n // is not called due to a video that cannot be embedded\n this.props.onLoaded()\n })\n FB.Event.subscribe('xfbml.ready', msg => {\n if (msg.type === 'video' && msg.id === this.playerID) {\n this.player = msg.instance\n this.player.subscribe('startedPlaying', this.props.onPlay)\n this.player.subscribe('paused', this.props.onPause)\n this.player.subscribe('finishedPlaying', this.props.onEnded)\n this.player.subscribe('startedBuffering', this.props.onBuffer)\n this.player.subscribe('finishedBuffering', this.props.onBufferEnd)\n this.player.subscribe('error', this.props.onError)\n if (!this.props.muted) {\n // Player is muted by default\n this.callPlayer('unmute')\n }\n this.props.onReady()\n\n // For some reason Facebook have added `visibility: hidden`\n // to the iframe when autoplay fails, so here we set it back\n document.getElementById(this.playerID).querySelector('iframe').style.visibility = 'visible'\n }\n })\n })\n }\n play () {\n this.callPlayer('play')\n }\n pause () {\n this.callPlayer('pause')\n }\n stop () {\n // Nothing to do\n }\n seekTo (seconds) {\n this.callPlayer('seek', seconds)\n }\n setVolume (fraction) {\n this.callPlayer('setVolume', fraction)\n }\n mute = () => {\n this.callPlayer('mute')\n }\n unmute = () => {\n this.callPlayer('unmute')\n }\n getDuration () {\n return this.callPlayer('getDuration')\n }\n getCurrentTime () {\n return this.callPlayer('getCurrentPosition')\n }\n getSecondsLoaded () {\n return null\n }\n render () {\n const style = {\n width: '100%',\n height: '100%',\n backgroundColor: 'black'\n }\n return (\n <div\n style={style}\n id={this.playerID}\n className='fb-video'\n data-href={this.props.url}\n data-autoplay={this.props.playing ? 'true' : 'false'}\n data-allowfullscreen='true'\n data-controls={this.props.controls ? 'true' : 'false'}\n />\n )\n }\n}\n\nexport default createSinglePlayer(Facebook)\n\n\n\n// WEBPACK FOOTER //\n// ./src/players/Facebook.js","import React, { Component } from 'react'\n\nimport { callPlayer, getSDK } from '../utils'\nimport createSinglePlayer from '../singlePlayer'\n\nconst SDK_URL = '//cdn.embed.ly/player-0.1.0.min.js'\nconst SDK_GLOBAL = 'playerjs'\nconst MATCH_URL = /streamable\\.com\\/([a-z0-9]+)$/\n\nexport class Streamable extends Component {\n static displayName = 'Streamable'\n static canPlay = url => MATCH_URL.test(url)\n\n callPlayer = callPlayer\n duration = null\n currentTime = null\n secondsLoaded = null\n load (url) {\n getSDK(SDK_URL, SDK_GLOBAL).then(playerjs => {\n if (!this.iframe) return\n this.player = new playerjs.Player(this.iframe)\n this.player.setLoop(this.props.loop)\n this.player.on('ready', this.props.onReady)\n this.player.on('play', this.props.onPlay)\n this.player.on('pause', this.props.onPause)\n this.player.on('seeked', this.props.onSeek)\n this.player.on('ended', this.props.onEnded)\n this.player.on('error', this.props.onError)\n this.player.on('timeupdate', ({ duration, seconds }) => {\n this.duration = duration\n this.currentTime = seconds\n })\n this.player.on('buffered', ({ percent }) => {\n if (this.duration) {\n this.secondsLoaded = this.duration * percent\n }\n })\n if (this.props.muted) {\n this.player.mute()\n }\n }, this.props.onError)\n }\n play () {\n this.callPlayer('play')\n }\n pause () {\n this.callPlayer('pause')\n }\n stop () {\n // Nothing to do\n }\n seekTo (seconds) {\n this.callPlayer('setCurrentTime', seconds)\n }\n setVolume (fraction) {\n this.callPlayer('setVolume', fraction * 100)\n }\n setLoop (loop) {\n this.callPlayer('setLoop', loop)\n }\n mute = () => {\n this.callPlayer('mute')\n }\n unmute = () => {\n this.callPlayer('unmute')\n }\n getDuration () {\n return this.duration\n }\n getCurrentTime () {\n return this.currentTime\n }\n getSecondsLoaded () {\n return this.secondsLoaded\n }\n ref = iframe => {\n this.iframe = iframe\n }\n render () {\n const id = this.props.url.match(MATCH_URL)[1]\n const style = {\n width: '100%',\n height: '100%'\n }\n return (\n <iframe\n ref={this.ref}\n src={`https://streamable.com/o/${id}`}\n frameBorder='0'\n scrolling='no'\n style={style}\n allowFullScreen\n />\n )\n }\n}\n\nexport default createSinglePlayer(Streamable)\n\n\n\n// WEBPACK FOOTER //\n// ./src/players/Streamable.js","import React, { Component } from 'react'\n\nimport { callPlayer, getSDK, randomString } from '../utils'\nimport createSinglePlayer from '../singlePlayer'\n\nconst SDK_URL = 'https://www.nfl.com/libs/playaction/api.js'\nconst SDK_GLOBAL = 'nfl'\nconst MATCH_FILE_URL = /nflent-vh\\.akamaihd\\.net\\/.+\\.m3u8/\nconst PLAYER_ID_PREFIX = 'facemask-player-'\n\nexport class FaceMask extends Component {\n static displayName = 'FaceMask'\n static canPlay = url => MATCH_FILE_URL.test(url)\n callPlayer = callPlayer\n duration = null\n volume = null\n currentTime = null\n secondsLoaded = null\n playerID = PLAYER_ID_PREFIX + randomString()\n load (url) {\n this.duration = null\n getSDK(SDK_URL, SDK_GLOBAL).then(nfl => {\n if (!this.container) return\n // eslint-disable-next-line new-cap\n this.player = new nfl.playaction({\n containerId: this.playerID,\n initialVideo: { url },\n height: '100%',\n width: '100%'\n })\n const { PLAYER_READY, STATUS, TIME_UPDATE, VOLUME } = nfl.playaction.EVENTS\n const { COMPLETE, ERROR, PAUSED, PLAYING } = nfl.playaction.STATUS\n this.player.on(PLAYER_READY, this.props.onReady)\n this.player.on(VOLUME, this.props.onVolumeChange)\n this.player.on(STATUS, (e) => {\n switch (e.status) {\n case COMPLETE: {\n this.props.onEnded()\n break\n }\n case ERROR: {\n this.props.onError(e)\n break\n }\n case PAUSED: {\n this.props.onPause()\n break\n }\n case PLAYING: {\n this.props.onPlay()\n break\n }\n }\n })\n this.player.on(TIME_UPDATE, ({currentTime, duration}) => {\n this.currentTime = currentTime\n this.duration = duration || Infinity\n })\n }, this.props.onError)\n }\n play () {\n this.callPlayer('play')\n }\n pause () {\n this.callPlayer('pause')\n }\n stop () {\n this.callPlayer('destroy')\n }\n seekTo (seconds) {\n this.callPlayer('seek', seconds)\n }\n setVolume (fraction) {\n // not supported\n }\n mute () {\n this.callPlayer('mute')\n }\n unmute () {\n this.callPlayer('unmute')\n }\n getDuration () {\n return this.duration\n }\n getCurrentTime () {\n return this.currentTime\n }\n getSecondsLoaded () {\n return this.secondsLoaded\n }\n ref = (container) => {\n this.container = container\n }\n render () {\n const style = {\n width: '100%',\n height: '100%'\n }\n return (\n <div\n id={this.playerID}\n ref={this.ref}\n style={style}\n />\n )\n }\n}\n\nexport default createSinglePlayer(FaceMask)\n\n\n\n// WEBPACK FOOTER //\n// ./src/players/FaceMask.js","import React, { Component } from 'react'\n\nimport { callPlayer, getSDK } from '../utils'\nimport createSinglePlayer from '../singlePlayer'\n\nconst SDK_URL = '//fast.wistia.com/assets/external/E-v1.js'\nconst SDK_GLOBAL = 'Wistia'\nconst MATCH_URL = /(?:wistia\\.com|wi\\.st)\\/(?:medias|embed)\\/(.*)$/\n\nexport class Wistia extends Component {\n static displayName = 'Wistia'\n static canPlay = url => MATCH_URL.test(url)\n static loopOnEnded = true\n\n callPlayer = callPlayer\n getID (url) {\n return url && url.match(MATCH_URL)[1]\n }\n load (url) {\n const { playing, muted, controls, onReady, onPlay, onPause, onSeek, onEnded, config, onError } = this.props\n getSDK(SDK_URL, SDK_GLOBAL).then(() => {\n window._wq = window._wq || []\n window._wq.push({\n id: this.getID(url),\n options: {\n autoPlay: playing,\n silentAutoPlay: 'allow',\n muted: muted,\n controlsVisibleOnLoad: controls,\n ...config.wistia.options\n },\n onReady: player => {\n this.player = player\n this.unbind()\n this.player.bind('play', onPlay)\n this.player.bind('pause', onPause)\n this.player.bind('seek', onSeek)\n this.player.bind('end', onEnded)\n onReady()\n }\n })\n }, onError)\n }\n play () {\n this.callPlayer('play')\n }\n pause () {\n this.callPlayer('pause')\n }\n unbind () {\n const { onPlay, onPause, onSeek, onEnded } = this.props\n this.player.unbind('play', onPlay)\n this.player.unbind('pause', onPause)\n this.player.unbind('seek', onSeek)\n this.player.unbind('end', onEnded)\n }\n stop () {\n this.unbind()\n this.callPlayer('remove')\n }\n seekTo (seconds) {\n this.callPlayer('time', seconds)\n }\n setVolume (fraction) {\n this.callPlayer('volume', fraction)\n }\n mute = () => {\n this.callPlayer('mute')\n }\n unmute = () => {\n this.callPlayer('unmute')\n }\n setPlaybackRate (rate) {\n this.callPlayer('playbackRate', rate)\n }\n getDuration () {\n return this.callPlayer('duration')\n }\n getCurrentTime () {\n return this.callPlayer('time')\n }\n getSecondsLoaded () {\n return null\n }\n render () {\n const id = this.getID(this.props.url)\n const className = `wistia_embed wistia_async_${id}`\n const style = {\n width: '100%',\n height: '100%'\n }\n return (\n <div key={id} className={className} style={style} />\n )\n }\n}\n\nexport default createSinglePlayer(Wistia)\n\n\n\n// WEBPACK FOOTER //\n// ./src/players/Wistia.js","import React, { Component } from 'react'\n\nimport { callPlayer, getSDK, randomString } from '../utils'\nimport createSinglePlayer from '../singlePlayer'\n\nconst SDK_URL = 'https://player.twitch.tv/js/embed/v1.js'\nconst SDK_GLOBAL = 'Twitch'\nconst MATCH_VIDEO_URL = /(?:www\\.|go\\.)?twitch\\.tv\\/videos\\/(\\d+)($|\\?)/\nconst MATCH_CHANNEL_URL = /(?:www\\.|go\\.)?twitch\\.tv\\/([a-z0-9_]+)($|\\?)/\nconst PLAYER_ID_PREFIX = 'twitch-player-'\n\nexport class Twitch extends Component {\n static displayName = 'Twitch'\n static canPlay = url => MATCH_VIDEO_URL.test(url) || MATCH_CHANNEL_URL.test(url)\n static loopOnEnded = true\n\n callPlayer = callPlayer\n playerID = PLAYER_ID_PREFIX + randomString()\n load (url, isReady) {\n const { playsinline, onError, config } = this.props\n const isChannel = MATCH_CHANNEL_URL.test(url)\n const id = isChannel ? url.match(MATCH_CHANNEL_URL)[1] : url.match(MATCH_VIDEO_URL)[1]\n if (isReady) {\n if (isChannel) {\n this.player.setChannel(id)\n } else {\n this.player.setVideo('v' + id)\n }\n return\n }\n getSDK(SDK_URL, SDK_GLOBAL).then(Twitch => {\n this.player = new Twitch.Player(this.playerID, {\n video: isChannel ? '' : id,\n channel: isChannel ? id : '',\n height: '100%',\n width: '100%',\n playsinline: playsinline,\n autoplay: this.props.playing,\n muted: this.props.muted,\n ...config.twitch.options\n })\n const { READY, PLAYING, PAUSE, ENDED } = Twitch.Player\n this.player.addEventListener(READY, this.props.onReady)\n this.player.addEventListener(PLAYING, this.props.onPlay)\n this.player.addEventListener(PAUSE, this.props.onPause)\n this.player.addEventListener(ENDED, this.props.onEnded)\n }, onError)\n }\n play () {\n this.callPlayer('play')\n }\n pause () {\n this.callPlayer('pause')\n }\n stop () {\n this.callPlayer('pause')\n }\n seekTo (seconds) {\n this.callPlayer('seek', seconds)\n }\n getVolume () {\n return this.callPlayer('getVolume')\n }\n getMuted () {\n return this.callPlayer('getMuted')\n }\n setVolume (fraction) {\n this.callPlayer('setVolume', fraction)\n }\n mute = () => {\n this.callPlayer('setMuted', true)\n }\n unmute = () => {\n this.callPlayer('setMuted', false)\n }\n getDuration () {\n return this.callPlayer('getDuration')\n }\n getCurrentTime () {\n return this.callPlayer('getCurrentTime')\n }\n getSecondsLoaded () {\n return null\n }\n render () {\n const style = {\n width: '100%',\n height: '100%'\n }\n return (\n <div style={style} id={this.playerID} />\n )\n }\n}\n\nexport default createSinglePlayer(Twitch)\n\n\n\n// WEBPACK FOOTER //\n// ./src/players/Twitch.js","import React, { Component } from 'react'\n\nimport { callPlayer, getSDK, randomString } from '../utils'\nimport createSinglePlayer from '../singlePlayer'\n\nconst SDK_URL = 'https://developers.ustream.tv/js/ustream-embedapi.min.js'\nconst SDK_GLOBAL = 'UstreamEmbed'\nconst MATCH_URL = /(ustream.tv\\/channel\\/)([^#&?/]*)/\nconst PLAYER_ID_PREFIX = 'UstreamLive-player-'\nexport class UstreamLive extends Component {\n static displayName = 'UstreamLive';\n static canPlay = url => MATCH_URL.test(url)\n static loopOnEnded = false;\n\n state = {\n ustreamSrc: null\n }\n\n playerID = PLAYER_ID_PREFIX + randomString()\n\n callPlayer = callPlayer\n parseId (url) {\n const m = url.match(MATCH_URL)\n return m[2]\n }\n componentDidUpdate (prevProps) {\n // reset ustreamSrc on reload\n if (prevProps.url && (prevProps.url !== this.props.url)) {\n this.setState({\n ustreamSrc: null\n })\n }\n }\n\n load () {\n const {onEnded, onError, onPause, onPlay, onReady, playing, url} = this.props\n const channelId = this.parseId(url)\n this.setState({\n ustreamSrc: `https://www.ustream.tv/embed/${channelId}?html5ui=1&autoplay=${playing}&controls=false&showtitle=false`\n })\n getSDK(SDK_URL, SDK_GLOBAL).then(UstreamEmbed => {\n if (!this.container) return\n this.currentTime = 0\n this.player = UstreamEmbed(this.playerID)\n this.player.addListener('playing', (type, playing) => {\n if (playing) {\n this.playTime = Date.now()\n onPlay()\n } else {\n this.currentTime = this.getCurrentTime()\n this.playTime = null\n onPause()\n }\n })\n this.player.addListener('live', onReady)\n this.player.addListener('offline', onReady)\n this.player.addListener('finished', onEnded)\n this.player.getProperty('duration', (duration) => {\n this.player.duration = duration || Infinity\n })\n }, onError)\n }\n // todo\n mute = () => {}\n // todo\n unmute = () => {}\n play () {\n this.callPlayer('callMethod', 'play')\n }\n pause () {\n this.callPlayer('callMethod', 'pause')\n }\n stop () {\n this.callPlayer('callMethod', 'stop')\n }\n seekTo (seconds) {\n this.callPlayer('callMethod', 'seek', seconds)\n }\n setVolume (fraction) {\n this.callPlayer('callMethod', 'volume', fraction * 100)\n }\n getDuration () {\n return Infinity\n }\n getCurrentTime () {\n let playing = 0\n if (this.playTime) {\n playing = (Date.now() - this.playTime) / 1000\n }\n return this.currentTime + playing\n }\n getSecondsLoaded () {\n return null\n }\n ref = container => {\n this.container = container\n }\n render () {\n const style = {\n width: '100%',\n height: '100%'\n }\n\n const {ustreamSrc} = this.state\n return (\n ustreamSrc && <iframe\n id={this.playerID}\n ref={this.ref}\n src={ustreamSrc}\n frameBorder='0'\n scrolling='no'\n style={style}\n allowFullScreen\n />\n )\n }\n}\n\nexport default createSinglePlayer(UstreamLive)\n\n\n\n// WEBPACK FOOTER //\n// ./src/players/UstreamLive.js","import React, { Component } from 'react'\n\nimport { callPlayer, getSDK, randomString } from '../utils'\nimport createSinglePlayer from '../singlePlayer'\n\nconst SDK_URL = 'https://developers.ustream.tv/js/ustream-embedapi.min.js'\nconst SDK_GLOBAL = 'UstreamEmbed'\nconst MATCH_URL = /(ustream.tv\\/recorded\\/)([^#&?/]*)/\nconst PLAYER_ID_PREFIX = 'UstreamVideo-player-'\nexport class UstreamVideo extends Component {\n static displayName = 'UstreamVideo';\n static canPlay = url => MATCH_URL.test(url)\n static loopOnEnded = false;\n\n state = {\n ustreamSrc: null\n }\n\n playerID = PLAYER_ID_PREFIX + randomString()\n\n callPlayer = callPlayer\n parseId (url) {\n const m = url.match(MATCH_URL)\n return m[2]\n }\n componentDidUpdate (prevProps) {\n // reset ustreamSrc on reload\n if (prevProps.url && (prevProps.url !== this.props.url)) {\n this.setState({\n ustreamSrc: null\n })\n }\n }\n\n componentWillUnmount () {\n // clear the interval below\n if (this.currentTimeInterval) {\n clearInterval(this.currentTimeInterval)\n }\n }\n\n // there's no events to update progress and duration,\n // so we're going to set an interval here. Also, duration\n // is zero or null for the first few seconds. Couldn't find\n // a deterministic event to let us know when we should grab the duration.\n initInterval () {\n if (this.currentTimeInterval) {\n return\n }\n this.currentTimeInterval = setInterval(() => {\n if (this.player) {\n this.player.getProperty('progress', (progress) => {\n this.player.currentTime = progress\n })\n this.player.getProperty('duration', (duration) => {\n this.player.duration = duration\n })\n }\n }, 500)\n }\n\n load () {\n const {onEnded, onError, onPause, onPlay, onReady, playing, url} = this.props\n const videoId = this.parseId(url)\n this.setState({\n ustreamSrc: `https://www.ustream.tv/embed/recorded/${videoId}?html5ui=1&autoplay=${playing}&controls=false&showtitle=false`\n })\n getSDK(SDK_URL, SDK_GLOBAL).then(UstreamEmbed => {\n if (!this.container) return\n this.player = UstreamEmbed(this.playerID)\n this.player.addListener('playing', (type, playing) => {\n playing ? onPlay() : onPause()\n })\n this.player.addListener('ready', () => {\n this.initInterval()\n onReady()\n })\n this.player.addListener('finished', onEnded)\n }, onError)\n }\n // todo\n mute = () => {}\n // todo\n unmute = () => {}\n play () {\n this.callPlayer('callMethod', 'play')\n }\n pause () {\n this.callPlayer('callMethod', 'pause')\n }\n stop () {\n this.callPlayer('callMethod', 'stop')\n }\n seekTo (seconds) {\n this.callPlayer('callMethod', 'seek', seconds)\n }\n setVolume (fraction) {\n this.callPlayer('callMethod', 'volume', fraction * 100)\n }\n getDuration () {\n return this.player.duration\n }\n getCurrentTime () {\n return this.player.currentTime\n }\n getSecondsLoaded () {\n return null\n }\n ref = container => {\n this.container = container\n }\n render () {\n const style = {\n width: '100%',\n height: '100%'\n }\n\n const {ustreamSrc} = this.state\n return (\n ustreamSrc && <iframe\n id={this.playerID}\n ref={this.ref}\n src={ustreamSrc}\n frameBorder='0'\n scrolling='no'\n style={style}\n allowFullScreen\n />\n )\n }\n}\n\nexport default createSinglePlayer(UstreamVideo)\n\n\n\n// WEBPACK FOOTER //\n// ./src/players/UstreamVideo.js","import React, { Component } from 'react'\n\nimport { randomString } from '../utils'\nimport createSinglePlayer from '../singlePlayer'\n\nconst PLAYER_ID_PREFIX = 'Iframe-player-'\nexport class Iframe extends Component {\n static displayName = 'Iframe';\n static canPlay = url => true\n playerID = PLAYER_ID_PREFIX + randomString()\n player = {\n currentTime: 0\n }\n load (url) {\n if (!this.container) {\n this.props.onReady()\n } else {\n setTimeout(() => this.props.onReady(), 3000)\n }\n }\n play () {\n this.playTime = Date.now()\n this.props.onPlay()\n }\n pause () {\n this.player.currentTime = this.getCurrentTime()\n this.playTime = null\n this.props.onPause()\n }\n stop () {\n this.player.currentTime = this.getCurrentTime()\n this.playTime = null\n this.props.onPause()\n }\n seekTo (seconds) {\n // no support\n }\n setVolume (fraction) {\n // no support\n }\n mute = () => {\n // no support\n }\n unmute = () => {\n // no support\n }\n getDuration () {\n return Infinity\n }\n getCurrentTime () {\n let playing = 0\n if (this.playTime) {\n playing = (Date.now() - this.playTime) / 1000\n }\n return this.player.currentTime + playing\n }\n getSecondsLoaded () {\n return null\n }\n ref = container => {\n this.container = container\n }\n render () {\n const style = {\n width: '100%',\n height: '100%'\n }\n const {url, playing} = this.props\n if (playing) {\n return (\n <iframe\n id={this.playerID}\n ref={this.ref}\n src={playing && url}\n frameBorder='0'\n scrolling='no'\n style={style}\n allowFullScreen\n />\n )\n } else {\n // pause flow for iframe\n return (\n <div style={style} >\n <div style={{\n alignItems: 'center',\n background: 'rgba(255,255,255,0.3)',\n display: 'flex',\n height: '100%',\n justifyContent: 'center',\n width: '100%'\n }}>\n <div className='pause' style={{\n borderStyle: 'double',\n borderWidth: '0px 0px 0px 50px',\n color: 'gray',\n height: '60px'\n }} />\n </div>\n </div>\n )\n }\n }\n}\n\nexport default createSinglePlayer(Iframe)\n\n\n\n// WEBPACK FOOTER //\n// ./src/players/Iframe.js","import React, { Component } from 'react'\n\nimport { callPlayer, getSDK, queryString } from '../utils'\nimport createSinglePlayer from '../singlePlayer'\n\nconst SDK_URL = '//widget.mixcloud.com/media/js/widgetApi.js'\nconst SDK_GLOBAL = 'Mixcloud'\nconst MATCH_URL = /mixcloud\\.com\\/([^/]+\\/[^/]+)/\n\nexport class Mixcloud extends Component {\n static displayName = 'Mixcloud'\n static canPlay = url => MATCH_URL.test(url)\n static loopOnEnded = true\n\n callPlayer = callPlayer\n duration = null\n currentTime = null\n secondsLoaded = null\n load (url) {\n getSDK(SDK_URL, SDK_GLOBAL).then(Mixcloud => {\n this.player = Mixcloud.PlayerWidget(this.iframe)\n this.player.ready.then(() => {\n this.player.events.play.on(this.props.onPlay)\n this.player.events.pause.on(this.props.onPause)\n this.player.events.ended.on(this.props.onEnded)\n this.player.events.error.on(this.props.error)\n this.player.events.progress.on((seconds, duration) => {\n this.currentTime = seconds\n this.duration = duration\n })\n this.props.onReady()\n })\n }, this.props.onError)\n }\n play () {\n this.callPlayer('play')\n }\n pause () {\n this.callPlayer('pause')\n }\n stop () {\n // Nothing to do\n }\n seekTo (seconds) {\n this.callPlayer('seek', seconds)\n }\n setVolume (fraction) {\n // No volume support\n }\n mute = () => {\n // No volume support\n }\n unmute = () => {\n // No volume support\n }\n getDuration () {\n return this.duration\n }\n getCurrentTime () {\n return this.currentTime\n }\n getSecondsLoaded () {\n return null\n }\n ref = iframe => {\n this.iframe = iframe\n }\n render () {\n const { url, config } = this.props\n const id = url.match(MATCH_URL)[1]\n const style = {\n width: '100%',\n height: '100%'\n }\n const query = queryString({\n ...config.mixcloud.options,\n feed: `/${id}/`\n })\n // We have to give the iframe a key here to prevent a\n // weird dialog appearing when loading a new track\n return (\n <iframe\n key={id}\n ref={this.ref}\n style={style}\n src={`https://www.mixcloud.com/widget/iframe/?${query}`}\n frameBorder='0'\n />\n )\n }\n}\n\nexport default createSinglePlayer(Mixcloud)\n\n\n\n// WEBPACK FOOTER //\n// ./src/players/Mixcloud.js","import React, { Component } from 'react'\nimport VPAIDHTML5Client from 'vpaid-html5-client'\nimport { VASTClient, VASTTracker } from 'vast-client'\nimport { callPlayer, randomString } from '../utils'\nimport createSinglePlayer from '../singlePlayer'\nimport { FilePlayer } from './FilePlayer'\n\nconst PLAYER_ID_PREFIX = 'vast-player-'\nconst CONTENT_ID_PREFIX = 'vast-content-'\nconst SKIP_ID_PREFIX = 'vast-skip-'\nconst MATCH_URL = /^VAST:https:\\/\\//i\nexport class VAST extends Component {\n static displayName = 'VAST';\n static canPlay = url => MATCH_URL.test(url);\n\n state = {\n canSkip: false,\n framework: null,\n preMuteVolume: 0.0,\n sources: [],\n tracker: null,\n type: null,\n vastClient: new VASTClient(),\n vpaidAdUnit: null,\n vpaidClient: null\n }\n\n playerID = PLAYER_ID_PREFIX + randomString()\n contentID = CONTENT_ID_PREFIX + randomString()\n skipID = SKIP_ID_PREFIX + randomString()\n\n callPlayer = callPlayer;\n\n createSourceFiles (mediaFiles = []) {\n return mediaFiles\n .map(({apiFramework, fileURL: src, mimeType: type} = {}) => ({apiFramework, src, type}))\n .filter(({apiFramework, src}) => (apiFramework === 'VPAID') || FilePlayer.canPlay(src))\n }\n\n componentWillUnmount () {\n if (this.state.framework === 'VPAID') {\n this.removeVPAIDListeners()\n }\n }\n\n parseResponse (response) {\n const {onEnded} = this.props\n const {ads = []} = response\n\n // find video creatives\n // todo: handle companion ads\n for (const ad of ads) {\n const {creatives = []} = ad\n for (const creative of creatives) {\n const {mediaFiles = [], type} = creative\n if (type === 'linear') {\n const sources = this.createSourceFiles(mediaFiles)\n if (sources.length) {\n return this.setState({\n framework: sources[0].apiFramework || 'VAST',\n sources,\n // eslint-disable-next-line new-cap\n tracker: new VASTTracker(this.state.vastClient, ad, creative)\n })\n }\n }\n }\n\n return onEnded()\n }\n }\n\n addVPAIDListeners () {\n const { framework } = this.state\n if (framework !== 'VPAID') {\n return null\n }\n const {\n onReady, onPlay, onBuffer, onBufferEnd,\n onPause, onEnded, onError,\n onVolumeChange\n } = this.props\n\n this.container.addEventListener('canplay', onReady)\n this.container.addEventListener('play', onPlay)\n this.container.addEventListener('waiting', onBuffer)\n this.container.addEventListener('playing', onBufferEnd)\n this.container.addEventListener('pause', onPause)\n this.container.addEventListener('ended', onEnded)\n this.container.addEventListener('error', onError)\n this.container.addEventListener('volumeChange', onVolumeChange)\n\n // list of events available in IVPAIDAdUnit.js in vpaid-html5-client\n this.state.vpaidAdUnit.subscribe('AdLoaded', this.onVPAIDAdLoaded.bind(this))\n this.state.vpaidAdUnit.subscribe('AdSkippableStateChange', this.props.onAdSkippable.bind(this))\n }\n\n skip () {\n const { framework, tracker, vpaidAdUnit } = this.state\n if (framework === 'VAST' && tracker) {\n tracker.skip()\n } else {\n vpaidAdUnit.skipAd()\n }\n }\n\n onVPAIDAdLoaded () {\n const { onReady, playing } = this.props\n const { vpaidAdUnit } = this.state\n onReady()\n if (playing) {\n vpaidAdUnit.startAd()\n this.setVolume(0.0)\n }\n }\n\n removeVPAIDListeners () {\n const {\n onReady, onPlay, onBuffer, onBufferEnd,\n onPause, onEnded, onError,\n onVolumeChange\n } = this.props\n this.container.removeEventListener('canplay', onReady)\n this.container.removeEventListener('play', onPlay)\n this.container.removeEventListener('waiting', onBuffer)\n this.container.removeEventListener('playing', onBufferEnd)\n this.container.removeEventListener('pause', onPause)\n this.container.removeEventListener('ended', onEnded)\n this.container.removeEventListener('error', onError)\n this.container.removeEventListener('volumeChange', onVolumeChange)\n this.state.vpaidAdUnit.unsubscribe('AdLoaded')\n this.state.vpaidAdUnit.unsubscribe('AdSkippableStateChange')\n }\n\n loadVPAID (url) {\n this.state.vpaidClient = new VPAIDHTML5Client(\n document.getElementById(this.contentID),\n document.getElementById(this.playerID)\n )\n const { onError } = this.props\n const { vpaidClient } = this.state\n vpaidClient.loadAdUnit(url, (error, adUnit) => {\n if (error) {\n return onError(error)\n }\n this.state.vpaidAdUnit = adUnit\n this.addVPAIDListeners()\n adUnit.initAd('100%', '100%', 'normal', -1, {}, {})\n })\n }\n\n load (rawUrl) {\n // replace [RANDOM] or [random] with a randomly generated cache value\n const ord = Math.random() * 10000000000000000\n const url = rawUrl.replace(/\\[random]/ig, ord)\n this.state.vastClient.get(url.slice('VAST:'.length), { withCredentials: true }).then((response) => {\n this.parseResponse(response)\n const {framework, sources, tracker} = this.state\n if (framework === 'VPAID') {\n this.loadVPAID(sources[0].src)\n } else {\n if (tracker) {\n tracker.on('clickthrough', this.openAdLink)\n }\n }\n }).catch((error) => {\n return this.props.onError(error)\n })\n }\n\n play () {\n const { framework, vpaidAdUnit } = this.state\n if (framework === 'VPAID') {\n vpaidAdUnit.resumeAd()\n } else {\n this.container.play()\n }\n }\n\n pause () {\n const { framework, vpaidAdUnit } = this.state\n if (framework === 'VPAID') {\n vpaidAdUnit.pauseAd()\n } else {\n this.container.pause()\n }\n }\n\n stop () {\n const { framework, vpaidAdUnit } = this.state\n if (framework === 'VPAID') {\n vpaidAdUnit.stopAd()\n } else {\n this.container.stop()\n }\n }\n\n // only allow rewind for VAST\n seekTo (seconds) {\n const {framework} = this.state\n if (framework === 'VAST') {\n if (seconds < this.getCurrentTime()) {\n this.container.seekTo(seconds)\n }\n }\n }\n\n setVolume (fraction) {\n const { framework, vpaidAdUnit } = this.state\n if (framework === 'VPAID') {\n vpaidAdUnit.setAdVolume(fraction)\n } else {\n this.container.setVolume(fraction)\n }\n }\n\n mute = () => {\n const { framework, vpaidAdUnit } = this.state\n if (framework === 'VPAID') {\n this.setState({\n preMuteVolume: this.container.volume\n })\n vpaidAdUnit.setAdVolume(0.0)\n } else {\n this.container.mute()\n }\n };\n\n unmute = () => {\n const { framework, preMuteVolume, vpaidAdUnit } = this.state\n if (framework === 'VPAID') {\n vpaidAdUnit.setAdVolume(preMuteVolume)\n } else {\n this.container.unmute()\n }\n };\n\n getDuration () {\n const { framework } = this.state\n if (framework === 'VPAID') {\n if (!this.container) return null\n const { duration } = this.container\n return duration\n } else {\n return this.container.getDuration()\n }\n }\n\n getCurrentTime () {\n const { framework } = this.state\n if (framework === 'VPAID') {\n return this.container ? this.container.currentTime : null\n } else {\n return this.container.getCurrentTime()\n }\n }\n\n getSecondsLoaded () {\n const { framework } = this.state\n if (framework === 'VPAID') {\n if (!this.container) return null\n const { buffered } = this.container\n if (buffered.length === 0) {\n return 0\n }\n const end = buffered.end(buffered.length - 1)\n const duration = this.getDuration()\n if (end > duration) {\n return duration\n }\n return end\n } else {\n return this.container.getCurrentTime()\n }\n }\n\n ref = (container) => {\n this.container = container\n };\n\n onAdClick = () => {\n const { framework, tracker } = this.state\n if (framework === 'VAST' && tracker) {\n tracker.click()\n }\n }\n\n openAdLink (url) {\n window.open(url, '_blank')\n }\n\n // track ended\n onEnded = (event) => {\n const { onEnded } = this.props\n const { framework, tracker } = this.state\n if (framework === 'VAST' && tracker) {\n tracker.complete()\n }\n onEnded(event)\n }\n\n // track error\n onError = (event) => {\n const { onError } = this.props\n const { framework, tracker } = this.state\n if (framework === 'VAST' && tracker) {\n tracker.errorWithCode(405)\n }\n onError(event)\n }\n\n // track pause\n onPause = (event) => {\n const { onPause } = this.props\n const { framework, tracker } = this.state\n if (framework === 'VAST' && tracker) {\n tracker.setPaused(true)\n }\n onPause(event)\n }\n\n // track play\n onPlay = (event) => {\n const { onPlay } = this.props\n const { framework, tracker } = this.state\n if (framework === 'VAST' && tracker) {\n tracker.setPaused(false)\n }\n onPlay(event)\n }\n\n onProgress = (event) => {\n const { onProgress } = this.props\n const { framework, tracker } = this.state\n if (framework === 'VAST' && tracker) {\n tracker.setProgress(event.playedSeconds)\n }\n onProgress(event)\n }\n\n // track load and duration\n onReady = (event) => {\n const { onReady } = this.props\n const { framework, tracker } = this.state\n if (framework === 'VAST' && tracker) {\n if (Number.isNaN(tracker.assetDuration)) {\n tracker.assetDuration = this.container.getDuration()\n }\n }\n\n onReady(event)\n }\n\n // track volume change\n onVolumeChange = (event) => {\n const { onVolumeChange } = this.props\n const { framework, tracker } = this.state\n if (framework === 'VAST' && tracker) {\n tracker.setMuted(this.container.muted)\n }\n onVolumeChange(event)\n }\n\n renderVAST () {\n const {sources, tracker: clickTrackingURLTemplate} = this.state\n const { width, height } = this.props\n const wrapperStyle = {\n cursor: clickTrackingURLTemplate ? 'pointer' : 'default',\n height: '100%'\n }\n const videoStyle = {\n width: width === 'auto' ? width : '100%',\n height: height === 'auto' ? height : '100%'\n }\n return sources.length ? (\n <div onClick={this.onAdClick} style={wrapperStyle}>\n <FilePlayer\n {...this.props}\n onEnded={this.onEnded}\n onError={this.onError}\n onPause={this.onPause}\n onPlay={this.onPlay}\n onProgress={this.onProgress}\n onReady={this.onReady}\n onVolumeChange={this.onVolumeChange}\n ref={this.ref}\n style={videoStyle}\n url={this.state.sources[0].src}\n />\n </div>\n ) : null\n }\n\n renderVPAID () {\n const { width, height } = this.props\n const { canSkip } = this.state\n const dimensions = {\n width: width === 'auto' ? width : '100%',\n height: height === 'auto' ? height : '100%'\n }\n const contentStyle = {\n ...dimensions,\n top: 0,\n left: 0,\n position: 'absolute',\n zIndex: 1\n }\n const skipStyle = {\n cursor: 'pointer',\n display: 'block',\n position: 'absolute',\n bottom: '10px',\n right: '10px',\n zIndex: 2\n }\n return (\n <div style={{...dimensions, position: 'relative'}}>\n { canSkip && <button\n id={this.skipID}\n style={skipStyle}\n onClick={() => this.skip()}>Skip</button> }\n <div id={this.contentID} style={contentStyle} />\n <video\n ref={this.ref}\n controls={false}\n style={dimensions}\n id={this.playerID}\n />\n </div>\n )\n }\n\n render () {\n const { framework } = this.state\n if (!framework) {\n return null\n }\n if (framework === 'VPAID') {\n return this.renderVPAID()\n } else {\n return this.renderVAST()\n }\n }\n}\n\nexport default createSinglePlayer(VAST)\n\n\n\n// WEBPACK FOOTER //\n// ./src/players/VAST.js","'use strict';\n\n/**\n * noop a empty function\n */\nfunction noop() {}\n\n/**\n * validate if is not validate will return an Error with the message\n *\n * @param {boolean} isValid\n * @param {string} message\n */\nfunction validate(isValid, message) {\n return isValid ? null : new Error(message);\n}\n\nvar timeouts = {};\n/**\n * clearCallbackTimeout\n *\n * @param {function} func handler to remove\n */\nfunction clearCallbackTimeout(func) {\n var timeout = timeouts[func];\n if (timeout) {\n clearTimeout(timeout);\n delete timeouts[func];\n }\n}\n\n/**\n * callbackTimeout if the onSuccess is not called and returns true in the timelimit then onTimeout will be called\n *\n * @param {number} timer\n * @param {function} onSuccess\n * @param {function} onTimeout\n */\nfunction callbackTimeout(timer, onSuccess, onTimeout) {\n var callback, timeout;\n\n timeout = setTimeout(function () {\n onSuccess = noop;\n delete timeout[callback];\n onTimeout();\n }, timer);\n\n callback = function () {\n // TODO avoid leaking arguments\n // https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#32-leaking-arguments\n if (onSuccess.apply(this, arguments)) {\n clearCallbackTimeout(callback);\n }\n };\n\n timeouts[callback] = timeout;\n\n return callback;\n}\n\n\n/**\n * createElementInEl\n *\n * @param {HTMLElement} parent\n * @param {string} tagName\n * @param {string} id\n */\nfunction createElementInEl(parent, tagName, id) {\n var nEl = document.createElement(tagName);\n if (id) nEl.id = id;\n parent.appendChild(nEl);\n return nEl;\n}\n\n/**\n * createIframeWithContent\n *\n * @param {HTMLElement} parent\n * @param {string} template simple template using {{var}}\n * @param {object} data\n */\nfunction createIframeWithContent(parent, template, data) {\n var iframe = createIframe(parent, null, data.zIndex);\n if (!setIframeContent(iframe, simpleTemplate(template, data))) return;\n return iframe;\n}\n\n/**\n * createIframe\n *\n * @param {HTMLElement} parent\n * @param {string} url\n */\nfunction createIframe(parent, url, zIndex) {\n var nEl = document.createElement('iframe');\n nEl.src = url || 'about:blank';\n nEl.marginWidth = '0';\n nEl.marginHeight = '0';\n nEl.frameBorder = '0';\n nEl.width = '100%';\n nEl.height = '100%';\n setFullSizeStyle(nEl);\n\n if(zIndex){\n nEl.style.zIndex = zIndex;\n }\n\n nEl.setAttribute('SCROLLING','NO');\n parent.innerHTML = '';\n parent.appendChild(nEl);\n return nEl;\n}\n\nfunction setFullSizeStyle(element) {\n element.style.position = 'absolute';\n element.style.left = '0';\n element.style.top = '0';\n element.style.margin = '0px';\n element.style.padding = '0px';\n element.style.border = 'none';\n element.style.width = '100%';\n element.style.height = '100%';\n}\n\n/**\n * simpleTemplate\n *\n * @param {string} template\n * @param {object} data\n */\nfunction simpleTemplate(template, data) {\n Object.keys(data).forEach(function (key) {\n var value = (typeof value === 'object') ? JSON.stringify(data[key]) : data[key];\n template = template.replace(new RegExp('{{' + key + '}}', 'g'), value);\n });\n return template;\n}\n\n/**\n * setIframeContent\n *\n * @param {HTMLIframeElement} iframeEl\n * @param content\n */\nfunction setIframeContent(iframeEl, content) {\n var iframeDoc = iframeEl.contentWindow && iframeEl.contentWindow.document;\n if (!iframeDoc) return false;\n\n iframeDoc.write(content);\n\n return true;\n}\n\n\n/**\n * extend object with keys from another object\n *\n * @param {object} toExtend\n * @param {object} fromSource\n */\nfunction extend(toExtend, fromSource) {\n Object.keys(fromSource).forEach(function(key) {\n toExtend[key] = fromSource[key];\n });\n return toExtend;\n}\n\n\n/**\n * unique will create a unique string everytime is called, sequentially and prefixed\n *\n * @param {string} prefix\n */\nfunction unique(prefix) {\n var count = -1;\n return function () {\n return prefix + '_' + (++count);\n };\n}\n\nmodule.exports = {\n noop: noop,\n validate: validate,\n clearCallbackTimeout: clearCallbackTimeout,\n callbackTimeout: callbackTimeout,\n createElementInEl: createElementInEl,\n createIframeWithContent: createIframeWithContent,\n createIframe: createIframe,\n setFullSizeStyle: setFullSizeStyle,\n simpleTemplate: simpleTemplate,\n setIframeContent: setIframeContent,\n extend: extend,\n unique: unique\n};\n\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vpaid-html5-client/js/utils.js","import { parseAd } from './ad_parser';\nimport { EventEmitter } from 'events';\nimport { parserUtils } from './parser_utils';\nimport { urlHandler } from '../url_handler';\nimport { util } from '../util/util';\nimport { VASTResponse } from '../vast_response';\n\nconst DEFAULT_MAX_WRAPPER_DEPTH = 10;\nconst DEFAULT_EVENT_DATA = {\n ERRORCODE: 900,\n extensions: []\n};\n\n/**\n * This class provides methods to fetch and parse a VAST document.\n * @export\n * @class VASTParser\n * @extends EventEmitter\n */\nexport class VASTParser extends EventEmitter {\n /**\n * Creates an instance of VASTParser.\n * @constructor\n */\n constructor() {\n super();\n\n this.remainingAds = [];\n this.parentURLs = [];\n this.errorURLTemplates = [];\n this.rootErrorURLTemplates = [];\n this.maxWrapperDepth = null;\n this.URLTemplateFilters = [];\n this.fetchingOptions = {};\n }\n\n /**\n * Adds a filter function to the array of filters which are called before fetching a VAST document.\n * @param {function} filter - The filter function to be added at the end of the array.\n * @return {void}\n */\n addURLTemplateFilter(filter) {\n if (typeof filter === 'function') {\n this.URLTemplateFilters.push(filter);\n }\n }\n\n /**\n * Removes the last element of the url templates filters array.\n * @return {void}\n */\n removeURLTemplateFilter() {\n this.URLTemplateFilters.pop();\n }\n\n /**\n * Returns the number of filters of the url templates filters array.\n * @return {Number}\n */\n countURLTemplateFilters() {\n return this.URLTemplateFilters.length;\n }\n\n /**\n * Removes all the filter functions from the url templates filters array.\n * @return {void}\n */\n clearURLTemplateFilters() {\n this.URLTemplateFilters = [];\n }\n\n /**\n * Tracks the error provided in the errorCode parameter and emits a VAST-error event for the given error.\n * @param {Array} urlTemplates - An Array of url templates to use to make the tracking call.\n * @param {Object} errorCode - An Object containing the error data.\n * @param {Object} data - One (or more) Object containing additional data.\n * @emits VASTParser#VAST-error\n * @return {void}\n */\n trackVastError(urlTemplates, errorCode, ...data) {\n this.emit(\n 'VAST-error',\n Object.assign(DEFAULT_EVENT_DATA, errorCode, ...data)\n );\n util.track(urlTemplates, errorCode);\n }\n\n /**\n * Returns an array of errorURLTemplates for the VAST being parsed.\n * @return {Array}\n */\n getErrorURLTemplates() {\n return this.rootErrorURLTemplates.concat(this.errorURLTemplates);\n }\n\n /**\n * Fetches a VAST document for the given url.\n * Returns a Promise which resolves,rejects according to the result of the request.\n * @param {String} url - The url to request the VAST document.\n * @param {Number} wrapperDepth - how many times the current url has been wrapped\n * @param {String} originalUrl - url of original wrapper\n * @emits VASTParser#VAST-resolving\n * @emits VASTParser#VAST-resolved\n * @return {Promise}\n */\n fetchVAST(url, wrapperDepth, originalUrl) {\n return new Promise((resolve, reject) => {\n // Process url with defined filter\n this.URLTemplateFilters.forEach(filter => {\n url = filter(url);\n });\n\n this.parentURLs.push(url);\n this.emit('VAST-resolving', { url, wrapperDepth, originalUrl });\n\n this.urlHandler.get(url, this.fetchingOptions, (err, xml) => {\n this.emit('VAST-resolved', { url, error: err });\n\n if (err) {\n reject(err);\n } else {\n resolve(xml);\n }\n });\n });\n }\n\n /**\n * Inits the parsing properties of the class with the custom values provided as options.\n * @param {Object} options - The options to initialize a parsing sequence\n */\n initParsingStatus(options = {}) {\n this.rootURL = '';\n this.remainingAds = [];\n this.parentURLs = [];\n this.errorURLTemplates = [];\n this.rootErrorURLTemplates = [];\n this.maxWrapperDepth = options.wrapperLimit || DEFAULT_MAX_WRAPPER_DEPTH;\n this.fetchingOptions = {\n timeout: options.timeout,\n withCredentials: options.withCredentials\n };\n\n this.urlHandler = options.urlHandler || options.urlhandler || urlHandler;\n }\n\n /**\n * Resolves the next group of ads. If all is true resolves all the remaining ads.\n * @param {Boolean} all - If true all the remaining ads are resolved\n * @return {Promise}\n */\n getRemainingAds(all) {\n if (this.remainingAds.length === 0) {\n return Promise.reject(\n new Error('No more ads are available for the given VAST')\n );\n }\n\n const ads = all\n ? util.flatten(this.remainingAds)\n : this.remainingAds.shift();\n this.errorURLTemplates = [];\n this.parentURLs = [];\n\n return this.resolveAds(ads, {\n wrapperDepth: 0,\n originalUrl: this.rootURL\n }).then(resolvedAds => {\n return this.buildVASTResponse(resolvedAds);\n });\n }\n\n /**\n * Fetches and parses a VAST for the given url.\n * Returns a Promise which resolves with a fully parsed VASTResponse or rejects with an Error.\n * @param {String} url - The url to request the VAST document.\n * @param {Object} options - An optional Object of parameters to be used in the parsing process.\n * @emits VASTParser#VAST-resolving\n * @emits VASTParser#VAST-resolved\n * @return {Promise}\n */\n getAndParseVAST(url, options = {}) {\n this.initParsingStatus(options);\n this.rootURL = url;\n\n return this.fetchVAST(url).then(xml => {\n options.originalUrl = url;\n options.isRootVAST = true;\n\n return this.parse(xml, options).then(ads => {\n return this.buildVASTResponse(ads);\n });\n });\n }\n\n /**\n * Parses the given xml Object into a VASTResponse.\n * Returns a Promise which resolves with a fully parsed VASTResponse or rejects with an Error.\n * @param {Object} vastXml - An object representing a vast xml document.\n * @param {Object} options - An optional Object of parameters to be used in the parsing process.\n * @emits VASTParser#VAST-resolving\n * @emits VASTParser#VAST-resolved\n * @return {Promise}\n */\n parseVAST(vastXml, options = {}) {\n this.initParsingStatus(options);\n\n options.isRootVAST = true;\n\n return this.parse(vastXml, options).then(ads => {\n return this.buildVASTResponse(ads);\n });\n }\n\n /**\n * Builds a VASTResponse which can be returned.\n * @param {Array} ads - An Array of unwrapped ads\n * @return {VASTResponse}\n */\n buildVASTResponse(ads) {\n const response = new VASTResponse();\n response.ads = ads;\n response.errorURLTemplates = this.getErrorURLTemplates();\n this.completeWrapperResolving(response);\n\n return response;\n }\n\n /**\n * Parses the given xml Object into an array of ads\n * Returns the array or throws an `Error` if an invalid VAST XML is provided\n * @param {Object} vastXml - An object representing an xml document.\n * @param {Object} options - An optional Object of parameters to be used in the parsing process.\n * @return {Array}\n * @throws {Error} `vastXml` must be a valid VAST XMLDocument\n */\n parseVastXml(vastXml, { isRootVAST = false }) {\n // check if is a valid VAST document\n if (\n !vastXml ||\n !vastXml.documentElement ||\n vastXml.documentElement.nodeName !== 'VAST'\n ) {\n throw new Error('Invalid VAST XMLDocument');\n }\n\n const ads = [];\n const childNodes = vastXml.documentElement.childNodes;\n\n // Fill the VASTResponse object with ads and errorURLTemplates\n for (const nodeKey in childNodes) {\n const node = childNodes[nodeKey];\n\n if (node.nodeName === 'Error') {\n const errorURLTemplate = parserUtils.parseNodeText(node);\n\n // Distinguish root VAST url templates from ad specific ones\n isRootVAST\n ? this.rootErrorURLTemplates.push(errorURLTemplate)\n : this.errorURLTemplates.push(errorURLTemplate);\n }\n\n if (node.nodeName === 'Ad') {\n const ad = parseAd(node);\n\n if (ad) {\n ads.push(ad);\n } else {\n // VAST version of response not supported.\n this.trackVastError(this.getErrorURLTemplates(), {\n ERRORCODE: 101\n });\n }\n }\n }\n\n return ads;\n }\n\n /**\n * Parses the given xml Object into an array of unwrapped ads.\n * Returns a Promise which resolves with the array or rejects with an error according to the result of the parsing.\n * @param {Object} vastXml - An object representing an xml document.\n * @param {Object} options - An optional Object of parameters to be used in the parsing process.\n * @emits VASTParser#VAST-resolving\n * @emits VASTParser#VAST-resolved\n * @return {Promise}\n */\n parse(\n vastXml,\n {\n resolveAll = true,\n wrapperSequence = null,\n originalUrl = null,\n wrapperDepth = 0,\n isRootVAST = false\n }\n ) {\n let ads = [];\n try {\n ads = this.parseVastXml(vastXml, { isRootVAST });\n } catch (e) {\n return Promise.reject(e);\n }\n\n const adsCount = ads.length;\n const lastAddedAd = ads[adsCount - 1];\n // if in child nodes we have only one ads\n // and wrapperSequence is defined\n // and this ads doesn't already have sequence\n if (\n adsCount === 1 &&\n wrapperSequence !== undefined &&\n wrapperSequence !== null &&\n lastAddedAd &&\n !lastAddedAd.sequence\n ) {\n lastAddedAd.sequence = wrapperSequence;\n }\n\n // Split the VAST in case we don't want to resolve everything at the first time\n if (resolveAll === false) {\n this.remainingAds = parserUtils.splitVAST(ads);\n // Remove the first element from the remaining ads array, since we're going to resolve that element\n ads = this.remainingAds.shift();\n }\n\n return this.resolveAds(ads, { wrapperDepth, originalUrl });\n }\n\n /**\n * Resolves an Array of ads, recursively calling itself with the remaining ads if a no ad\n * response is returned for the given array.\n * @param {Array} ads - An array of ads to resolve\n * @param {Object} options - An options Object containing resolving parameters\n * @return {Promise}\n */\n resolveAds(ads = [], { wrapperDepth, originalUrl }) {\n const resolveWrappersPromises = [];\n\n ads.forEach(ad => {\n const resolveWrappersPromise = this.resolveWrappers(\n ad,\n wrapperDepth,\n originalUrl\n );\n\n resolveWrappersPromises.push(resolveWrappersPromise);\n });\n\n return Promise.all(resolveWrappersPromises).then(unwrappedAds => {\n const resolvedAds = util.flatten(unwrappedAds);\n\n if (!resolvedAds && this.remainingAds.length > 0) {\n const remainingAdsToResolve = this.remainingAds.shift();\n\n return this.resolveAds(remainingAdsToResolve, {\n wrapperDepth,\n originalUrl\n });\n }\n\n return resolvedAds;\n });\n }\n\n /**\n * Resolves the wrappers for the given ad in a recursive way.\n * Returns a Promise which resolves with the unwrapped ad or rejects with an error.\n * @param {Ad} ad - An ad to be unwrapped.\n * @param {Number} wrapperDepth - The reached depth in the wrapper resolving chain.\n * @param {String} originalUrl - The original vast url.\n * @return {Promise}\n */\n resolveWrappers(ad, wrapperDepth, originalUrl) {\n return new Promise(resolve => {\n // Going one level deeper in the wrapper chain\n wrapperDepth++;\n // We already have a resolved VAST ad, no need to resolve wrapper\n if (!ad.nextWrapperURL) {\n delete ad.nextWrapperURL;\n return resolve(ad);\n }\n\n if (\n wrapperDepth >= this.maxWrapperDepth ||\n this.parentURLs.indexOf(ad.nextWrapperURL) !== -1\n ) {\n // Wrapper limit reached, as defined by the video player.\n // Too many Wrapper responses have been received with no InLine response.\n ad.errorCode = 302;\n delete ad.nextWrapperURL;\n return resolve(ad);\n }\n\n // Get full URL\n ad.nextWrapperURL = parserUtils.resolveVastAdTagURI(\n ad.nextWrapperURL,\n originalUrl\n );\n\n // sequence doesn't carry over in wrapper element\n const wrapperSequence = ad.sequence;\n originalUrl = ad.nextWrapperURL;\n\n this.fetchVAST(ad.nextWrapperURL, wrapperDepth, originalUrl)\n .then(xml => {\n return this.parse(xml, {\n originalUrl,\n wrapperSequence,\n wrapperDepth\n }).then(unwrappedAds => {\n delete ad.nextWrapperURL;\n if (unwrappedAds.length === 0) {\n // No ads returned by the wrappedResponse, discard current <Ad><Wrapper> creatives\n ad.creatives = [];\n return resolve(ad);\n }\n\n unwrappedAds.forEach(unwrappedAd => {\n if (unwrappedAd) {\n parserUtils.mergeWrapperAdData(unwrappedAd, ad);\n }\n });\n\n resolve(unwrappedAds);\n });\n })\n .catch(err => {\n // Timeout of VAST URI provided in Wrapper element, or of VAST URI provided in a subsequent Wrapper element.\n // (URI was either unavailable or reached a timeout as defined by the video player.)\n ad.errorCode = 301;\n ad.errorMessage = err.message;\n\n resolve(ad);\n });\n });\n }\n\n /**\n * Takes care of handling errors when the wrappers are resolved.\n * @param {VASTResponse} vastResponse - A resolved VASTResponse.\n */\n completeWrapperResolving(vastResponse) {\n // We've to wait for all <Ad> elements to be parsed before handling error so we can:\n // - Send computed extensions data\n // - Ping all <Error> URIs defined across VAST files\n\n // No Ad case - The parser never bump into an <Ad> element\n if (vastResponse.ads.length === 0) {\n this.trackVastError(vastResponse.errorURLTemplates, { ERRORCODE: 303 });\n } else {\n for (let index = vastResponse.ads.length - 1; index >= 0; index--) {\n // - Error encountred while parsing\n // - No Creative case - The parser has dealt with soma <Ad><Wrapper> or/and an <Ad><Inline> elements\n // but no creative was found\n const ad = vastResponse.ads[index];\n if (ad.errorCode || ad.creatives.length === 0) {\n this.trackVastError(\n ad.errorURLTemplates.concat(vastResponse.errorURLTemplates),\n { ERRORCODE: ad.errorCode || 303 },\n { ERRORMESSAGE: ad.errorMessage || '' },\n { extensions: ad.extensions },\n { system: ad.system }\n );\n vastResponse.ads.splice(index, 1);\n }\n }\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vast-client/src/parser/vast_parser.js","export class CompanionAd {\n constructor() {\n this.id = null;\n this.width = 0;\n this.height = 0;\n this.type = null;\n this.staticResource = null;\n this.htmlResource = null;\n this.iframeResource = null;\n this.altText = null;\n this.companionClickThroughURLTemplate = null;\n this.companionClickTrackingURLTemplates = [];\n this.trackingEvents = {};\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vast-client/src/companion_ad.js","import { Creative } from './creative';\n\nexport class CreativeLinear extends Creative {\n constructor(creativeAttributes = {}) {\n super(creativeAttributes);\n\n this.type = 'linear';\n this.duration = 0;\n this.skipDelay = null;\n this.mediaFiles = [];\n this.videoClickThroughURLTemplate = null;\n this.videoClickTrackingURLTemplates = [];\n this.videoCustomClickURLTemplates = [];\n this.adParameters = null;\n this.icons = [];\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vast-client/src/creative/creative_linear.js","export class NonLinearAd {\n constructor() {\n this.id = null;\n this.width = 0;\n this.height = 0;\n this.expandedWidth = 0;\n this.expandedHeight = 0;\n this.scalable = true;\n this.maintainAspectRatio = true;\n this.minSuggestedDuration = 0;\n this.apiFramework = 'static';\n this.type = null;\n this.staticResource = null;\n this.htmlResource = null;\n this.iframeResource = null;\n this.nonlinearClickThroughURLTemplate = null;\n this.nonlinearClickTrackingURLTemplates = [];\n this.adParameters = null;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vast-client/src/non_linear_ad.js","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nfunction EventEmitter() {\n this._events = this._events || {};\n this._maxListeners = this._maxListeners || undefined;\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nEventEmitter.defaultMaxListeners = 10;\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function(n) {\n if (!isNumber(n) || n < 0 || isNaN(n))\n throw TypeError('n must be a positive number');\n this._maxListeners = n;\n return this;\n};\n\nEventEmitter.prototype.emit = function(type) {\n var er, handler, len, args, i, listeners;\n\n if (!this._events)\n this._events = {};\n\n // If there is no 'error' event listener then throw.\n if (type === 'error') {\n if (!this._events.error ||\n (isObject(this._events.error) && !this._events.error.length)) {\n er = arguments[1];\n if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n }\n }\n\n handler = this._events[type];\n\n if (isUndefined(handler))\n return false;\n\n if (isFunction(handler)) {\n switch (arguments.length) {\n // fast cases\n case 1:\n handler.call(this);\n break;\n case 2:\n handler.call(this, arguments[1]);\n break;\n case 3:\n handler.call(this, arguments[1], arguments[2]);\n break;\n // slower\n default:\n args = Array.prototype.slice.call(arguments, 1);\n handler.apply(this, args);\n }\n } else if (isObject(handler)) {\n args = Array.prototype.slice.call(arguments, 1);\n listeners = handler.slice();\n len = listeners.length;\n for (i = 0; i < len; i++)\n listeners[i].apply(this, args);\n }\n\n return true;\n};\n\nEventEmitter.prototype.addListener = function(type, listener) {\n var m;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events)\n this._events = {};\n\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (this._events.newListener)\n this.emit('newListener', type,\n isFunction(listener.listener) ?\n listener.listener : listener);\n\n if (!this._events[type])\n // Optimize the case of one listener. Don't need the extra array object.\n this._events[type] = listener;\n else if (isObject(this._events[type]))\n // If we've already got an array, just append.\n this._events[type].push(listener);\n else\n // Adding the second element, need to change to array.\n this._events[type] = [this._events[type], listener];\n\n // Check for listener leak\n if (isObject(this._events[type]) && !this._events[type].warned) {\n if (!isUndefined(this._maxListeners)) {\n m = this._maxListeners;\n } else {\n m = EventEmitter.defaultMaxListeners;\n }\n\n if (m && m > 0 && this._events[type].length > m) {\n this._events[type].warned = true;\n console.error('(node) warning: possible EventEmitter memory ' +\n 'leak detected. %d listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit.',\n this._events[type].length);\n if (typeof console.trace === 'function') {\n // not supported in IE 10\n console.trace();\n }\n }\n }\n\n return this;\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.once = function(type, listener) {\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n var fired = false;\n\n function g() {\n this.removeListener(type, g);\n\n if (!fired) {\n fired = true;\n listener.apply(this, arguments);\n }\n }\n\n g.listener = listener;\n this.on(type, g);\n\n return this;\n};\n\n// emits a 'removeListener' event iff the listener was removed\nEventEmitter.prototype.removeListener = function(type, listener) {\n var list, position, length, i;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events || !this._events[type])\n return this;\n\n list = this._events[type];\n length = list.length;\n position = -1;\n\n if (list === listener ||\n (isFunction(list.listener) && list.listener === listener)) {\n delete this._events[type];\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n\n } else if (isObject(list)) {\n for (i = length; i-- > 0;) {\n if (list[i] === listener ||\n (list[i].listener && list[i].listener === listener)) {\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (list.length === 1) {\n list.length = 0;\n delete this._events[type];\n } else {\n list.splice(position, 1);\n }\n\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.removeAllListeners = function(type) {\n var key, listeners;\n\n if (!this._events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!this._events.removeListener) {\n if (arguments.length === 0)\n this._events = {};\n else if (this._events[type])\n delete this._events[type];\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n for (key in this._events) {\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = {};\n return this;\n }\n\n listeners = this._events[type];\n\n if (isFunction(listeners)) {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n while (listeners.length)\n this.removeListener(type, listeners[listeners.length - 1]);\n }\n delete this._events[type];\n\n return this;\n};\n\nEventEmitter.prototype.listeners = function(type) {\n var ret;\n if (!this._events || !this._events[type])\n ret = [];\n else if (isFunction(this._events[type]))\n ret = [this._events[type]];\n else\n ret = this._events[type].slice();\n return ret;\n};\n\nEventEmitter.prototype.listenerCount = function(type) {\n if (this._events) {\n var evlistener = this._events[type];\n\n if (isFunction(evlistener))\n return 1;\n else if (evlistener)\n return evlistener.length;\n }\n return 0;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n return emitter.listenerCount(type);\n};\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/events/events.js","import React, { Component } from 'react'\n\nimport { callPlayer, getSDK, randomString } from '../utils'\nimport createSinglePlayer from '../singlePlayer'\n\nconst SDK_URL = '//cdn.jwplayer.com/libraries/8DNY8ff0.js'\nconst SDK_GLOBAL = 'jwplayer'\n// TODO: figure out all cases\nconst MATCH_VIDEO_URL = /jwplayer/\nconst PLAYER_ID_PREFIX = 'jw-player-'\n\nexport class JWPlayer extends Component {\n static displayName = 'JWPlayer'\n static canPlay = url => MATCH_VIDEO_URL.test(url);\n static loopOnEnded = true\n\n callPlayer = callPlayer\n playerID = PLAYER_ID_PREFIX + randomString()\n load (url, isReady) {\n const { onError } = this.props\n if (isReady) {\n this.player.setup({\n file: url\n })\n } else {\n getSDK(SDK_URL, SDK_GLOBAL).then(jwplayer => {\n this.player = jwplayer(this.playerID).setup({\n file: url\n })\n this.player.on('ready', this.props.onReady)\n this.player.on('play', this.props.onPlay)\n this.player.on('pause', this.props.onPause)\n this.player.on('error', onError)\n }, onError)\n }\n }\n handleUnmount () {\n this.callPlayer('remove')\n }\n play () {\n this.callPlayer('play')\n }\n pause () {\n this.callPlayer('pause')\n }\n stop () {\n this.callPlayer('stop')\n }\n seekTo (seconds) {\n this.callPlayer('seek', seconds)\n }\n getVolume () {\n return this.callPlayer('getVolume') / 100\n }\n getMuted () {\n return this.callPlayer('getMute')\n }\n setVolume (fraction) {\n this.callPlayer('setVolume', fraction * 100)\n }\n mute = () => {\n this.callPlayer('setMute', true)\n }\n unmute = () => {\n this.callPlayer('setMute', false)\n }\n getDuration () {\n return this.callPlayer('getDuration')\n }\n getCurrentTime () {\n return this.callPlayer('getCurrentPosition')\n }\n getSecondsLoaded () {\n return null\n }\n render () {\n const style = {\n width: '100%',\n height: '100%'\n }\n return (\n <div style={style} id={this.playerID} />\n )\n }\n}\n\nexport default createSinglePlayer(JWPlayer)\n\n\n\n// WEBPACK FOOTER //\n// ./src/players/JWPlayer.js","// TODO: ReactPlayer's listener logic is very shaky because if you change the function identity\n// it won't get cleaned up. This is an existing problem so we're not gonna fix it here.\nimport React, { Component } from 'react'\n\nimport { getSDK } from '../utils'\nimport createSinglePlayer from '../singlePlayer'\n\nconst PHENIX_SDK_URL = 'https://unpkg.com/phenix-web-sdk@2019.2.3/dist/phenix-web-sdk.min.js'\nconst PHENIX_SDK_GLOBAL = 'phenix-web-sdk'\n\n// TODO: Add optional auth data parameter at the end\nconst PHENIX_URL_REGEX = /^phenix:(.+?)\\|(.+?)(?:\\|(.+?))?$/i // i hate this so much\n\nfunction getPhenixSdk () {\n return getSDK(PHENIX_SDK_URL, PHENIX_SDK_GLOBAL)\n}\n\nfunction canPlay (url) {\n return PHENIX_URL_REGEX.test(url)\n}\n\nexport class PhenixPlayer extends Component {\n static displayName = 'PhenixPlayer'\n static canPlay = canPlay\n player = null\n channelExpress = null\n\n playerRef = (player) => {\n if (player === this.player) {\n return\n }\n if (this.player) {\n this.removeListeners()\n }\n this.player = player\n if (this.player) {\n this.addListeners()\n }\n }\n\n componentWillUnmount () {\n // TODO: If refs get called with null on unmount, no reason to do this\n if (this.player) {\n this.removeListeners()\n this.player = null\n }\n if (this.channelExpress) {\n this.channelExpress.dispose()\n this.channelExpress = null\n }\n }\n\n addListeners () {\n const { onReady, onPlay, onPause, onEnded, onVolumeChange, onError, playsinline, videoElementId } = this.props\n this.player.addEventListener('canplay', onReady)\n this.player.addEventListener('play', onPlay)\n this.player.addEventListener('pause', onPause)\n this.player.addEventListener('seeked', this.onSeek)\n this.player.addEventListener('ended', onEnded)\n this.player.addEventListener('error', onError)\n this.player.addEventListener('volumechange', onVolumeChange)\n // wow\n this.player.setAttribute('id', videoElementId)\n if (playsinline) {\n this.player.setAttribute('playsinline', '')\n this.player.setAttribute('webkit-playsinline', '')\n }\n }\n removeListeners () {\n const { onReady, onPlay, onPause, onEnded, onVolumeChange, onError } = this.props\n this.player.removeEventListener('canplay', onReady)\n this.player.removeEventListener('play', onPlay)\n this.player.removeEventListener('pause', onPause)\n this.player.removeEventListener('seeked', this.onSeek)\n this.player.removeEventListener('ended', onEnded)\n this.player.removeEventListener('error', onError)\n this.player.removeEventListener('volumechange', onVolumeChange)\n }\n\n onSeek = e => {\n this.props.onSeek(e.target.currentTime)\n }\n\n getPhenixBackendUri (url = this.props.url) {\n return PHENIX_URL_REGEX.exec(url)[1]\n }\n\n getPhenixChannelId (url = this.props.url) {\n return PHENIX_URL_REGEX.exec(url)[2]\n }\n\n getPhenixAuthenticationData (url = this.props.url) {\n const match = PHENIX_URL_REGEX.exec(url)[3]\n return match ? JSON.parse(match) : {}\n }\n\n load (url) {\n const backendUri = this.getPhenixBackendUri(url)\n const channelId = this.getPhenixChannelId(url)\n const authenticationData = this.getPhenixAuthenticationData(url)\n\n const joinChannelCallback = (err, response) => {\n const success = !err && response.status === 'ok'\n if (!success) {\n const error = err || new Error(`Response status: ${response.status}`)\n this.props.onError(error)\n }\n }\n\n const subscriberCallback = (err, response) => {\n const success = !err && ['ok', 'no-stream-playing'].includes(response.status)\n if (!success) {\n const error = err || new Error(`Response status: ${response.status}`)\n this.props.onError(error)\n }\n // otherwise, response.mediaStream.getStreamId() will be a thing\n }\n\n getPhenixSdk().then((phenix) => {\n // TODO: Does this check do anything?\n if (url !== this.props.url) {\n return\n }\n if (this.channelExpress) {\n this.channelExpress.dispose()\n this.channelExpress = null\n }\n this.channelExpress = new phenix.express.ChannelExpress({\n authenticationData,\n backendUri\n })\n this.channelExpress.joinChannel(\n {\n channelId,\n videoElement: this.player\n },\n joinChannelCallback,\n subscriberCallback\n )\n })\n }\n\n play () {\n const promise = this.player.play()\n if (promise) {\n promise.catch(this.props.onError)\n }\n }\n pause () {\n this.player.pause()\n }\n stop () {\n if (this.channelExpress) {\n this.channelExpress.dispose()\n this.channelExpress = null\n }\n }\n seekTo (seconds) {\n if (seconds === Infinity || this.getDuration() === Infinity) {\n return\n }\n this.player.currentTime = seconds\n }\n setVolume (fraction) {\n this.player.volume = fraction\n }\n mute = () => {\n this.player.muted = true\n }\n unmute = () => {\n this.player.muted = false\n }\n setPlaybackRate (rate) {\n this.player.playbackRate = rate\n }\n getDuration () {\n return this.player.duration\n }\n getCurrentTime () {\n return this.player.currentTime\n }\n getSecondsLoaded () {\n const { buffered } = this.player\n if (buffered.length === 0) {\n return 0\n }\n const end = buffered.end(buffered.length - 1)\n const duration = this.getDuration()\n if (end > duration) {\n return duration\n }\n return end\n }\n\n render () {\n const { playing, loop, controls, muted, width, height } = this.props\n const style = {\n width: width === 'auto' ? width : '100%',\n height: height === 'auto' ? height : '100%'\n }\n return (\n <video\n ref={this.playerRef}\n style={style}\n preload='auto' // TODO\n autoPlay={playing} // TODO\n controls={controls} // TODO\n muted={muted}\n loop={loop}\n />\n )\n }\n}\n\nexport default createSinglePlayer(PhenixPlayer) // TODO: WTF does this even do?\n\n\n\n// WEBPACK FOOTER //\n// ./src/players/PhenixPlayer.js","import React from 'react'\nimport { render } from 'react-dom'\nimport ReactPlayer from './ReactPlayer'\n\nexport default function renderReactPlayer (container, props) {\n render(<ReactPlayer {...props} />, container)\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/standalone.js","/** @license React v16.2.0\n * react.production.min.js\n *\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var m=require(\"object-assign\"),n=require(\"fbjs/lib/emptyObject\"),p=require(\"fbjs/lib/emptyFunction\"),q=\"function\"===typeof Symbol&&Symbol[\"for\"],r=q?Symbol[\"for\"](\"react.element\"):60103,t=q?Symbol[\"for\"](\"react.call\"):60104,u=q?Symbol[\"for\"](\"react.return\"):60105,v=q?Symbol[\"for\"](\"react.portal\"):60106,w=q?Symbol[\"for\"](\"react.fragment\"):60107,x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){for(var b=arguments.length-1,e=\"Minified React error #\"+a+\"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant\\x3d\"+a,c=0;c<b;c++)e+=\"\\x26args[]\\x3d\"+encodeURIComponent(arguments[c+1]);b=Error(e+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\");b.name=\"Invariant Violation\";b.framesToPop=1;throw b;}\nvar z={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}};function A(a,b,e){this.props=a;this.context=b;this.refs=n;this.updater=e||z}A.prototype.isReactComponent={};A.prototype.setState=function(a,b){\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a?y(\"85\"):void 0;this.updater.enqueueSetState(this,a,b,\"setState\")};A.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};\nfunction B(a,b,e){this.props=a;this.context=b;this.refs=n;this.updater=e||z}function C(){}C.prototype=A.prototype;var D=B.prototype=new C;D.constructor=B;m(D,A.prototype);D.isPureReactComponent=!0;function E(a,b,e){this.props=a;this.context=b;this.refs=n;this.updater=e||z}var F=E.prototype=new C;F.constructor=E;m(F,A.prototype);F.unstable_isAsyncReactComponent=!0;F.render=function(){return this.props.children};var G={current:null},H=Object.prototype.hasOwnProperty,I={key:!0,ref:!0,__self:!0,__source:!0};\nfunction J(a,b,e){var c,d={},g=null,k=null;if(null!=b)for(c in void 0!==b.ref&&(k=b.ref),void 0!==b.key&&(g=\"\"+b.key),b)H.call(b,c)&&!I.hasOwnProperty(c)&&(d[c]=b[c]);var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){for(var h=Array(f),l=0;l<f;l++)h[l]=arguments[l+2];d.children=h}if(a&&a.defaultProps)for(c in f=a.defaultProps,f)void 0===d[c]&&(d[c]=f[c]);return{$$typeof:r,type:a,key:g,ref:k,props:d,_owner:G.current}}function K(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===r}\nfunction escape(a){var b={\"\\x3d\":\"\\x3d0\",\":\":\"\\x3d2\"};return\"$\"+(\"\"+a).replace(/[=:]/g,function(a){return b[a]})}var L=/\\/+/g,M=[];function N(a,b,e,c){if(M.length){var d=M.pop();d.result=a;d.keyPrefix=b;d.func=e;d.context=c;d.count=0;return d}return{result:a,keyPrefix:b,func:e,context:c,count:0}}function O(a){a.result=null;a.keyPrefix=null;a.func=null;a.context=null;a.count=0;10>M.length&&M.push(a)}\nfunction P(a,b,e,c){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case r:case t:case u:case v:g=!0}}if(g)return e(c,a,\"\"===b?\".\"+Q(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;k<a.length;k++){d=a[k];var f=b+Q(d,k);g+=P(d,f,e,c)}else if(null===a||\"undefined\"===typeof a?f=null:(f=x&&a[x]||a[\"@@iterator\"],f=\"function\"===typeof f?f:null),\"function\"===typeof f)for(a=\nf.call(a),k=0;!(d=a.next()).done;)d=d.value,f=b+Q(d,k++),g+=P(d,f,e,c);else\"object\"===d&&(e=\"\"+a,y(\"31\",\"[object Object]\"===e?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":e,\"\"));return g}function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(a.key):b.toString(36)}function R(a,b){a.func.call(a.context,b,a.count++)}\nfunction S(a,b,e){var c=a.result,d=a.keyPrefix;a=a.func.call(a.context,b,a.count++);Array.isArray(a)?T(a,c,e,p.thatReturnsArgument):null!=a&&(K(a)&&(b=d+(!a.key||b&&b.key===a.key?\"\":(\"\"+a.key).replace(L,\"$\\x26/\")+\"/\")+e,a={$$typeof:r,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}),c.push(a))}function T(a,b,e,c,d){var g=\"\";null!=e&&(g=(\"\"+e).replace(L,\"$\\x26/\")+\"/\");b=N(b,g,c,d);null==a||P(a,\"\",S,b);O(b)}\nvar U={Children:{map:function(a,b,e){if(null==a)return a;var c=[];T(a,c,null,b,e);return c},forEach:function(a,b,e){if(null==a)return a;b=N(null,null,b,e);null==a||P(a,\"\",R,b);O(b)},count:function(a){return null==a?0:P(a,\"\",p.thatReturnsNull,null)},toArray:function(a){var b=[];T(a,b,null,p.thatReturnsArgument);return b},only:function(a){K(a)?void 0:y(\"143\");return a}},Component:A,PureComponent:B,unstable_AsyncComponent:E,Fragment:w,createElement:J,cloneElement:function(a,b,e){var c=m({},a.props),\nd=a.key,g=a.ref,k=a._owner;if(null!=b){void 0!==b.ref&&(g=b.ref,k=G.current);void 0!==b.key&&(d=\"\"+b.key);if(a.type&&a.type.defaultProps)var f=a.type.defaultProps;for(h in b)H.call(b,h)&&!I.hasOwnProperty(h)&&(c[h]=void 0===b[h]&&void 0!==f?f[h]:b[h])}var h=arguments.length-2;if(1===h)c.children=e;else if(1<h){f=Array(h);for(var l=0;l<h;l++)f[l]=arguments[l+2];c.children=f}return{$$typeof:r,type:a.type,key:d,ref:g,props:c,_owner:k}},createFactory:function(a){var b=J.bind(null,a);b.type=a;return b},\nisValidElement:K,version:\"16.2.0\",__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{ReactCurrentOwner:G,assign:m}},V=Object.freeze({default:U}),W=V&&U||V;module.exports=W[\"default\"]?W[\"default\"]:W;\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/react/cjs/react.production.min.js","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/react-dom/index.js","/** @license React v16.2.0\n * react-dom.production.min.js\n *\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),l=require(\"fbjs/lib/ExecutionEnvironment\"),B=require(\"object-assign\"),C=require(\"fbjs/lib/emptyFunction\"),ba=require(\"fbjs/lib/EventListener\"),da=require(\"fbjs/lib/getActiveElement\"),ea=require(\"fbjs/lib/shallowEqual\"),fa=require(\"fbjs/lib/containsNode\"),ia=require(\"fbjs/lib/focusNode\"),D=require(\"fbjs/lib/emptyObject\");\nfunction E(a){for(var b=arguments.length-1,c=\"Minified React error #\"+a+\"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant\\x3d\"+a,d=0;d<b;d++)c+=\"\\x26args[]\\x3d\"+encodeURIComponent(arguments[d+1]);b=Error(c+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\");b.name=\"Invariant Violation\";b.framesToPop=1;throw b;}aa?void 0:E(\"227\");\nvar oa={children:!0,dangerouslySetInnerHTML:!0,defaultValue:!0,defaultChecked:!0,innerHTML:!0,suppressContentEditableWarning:!0,suppressHydrationWarning:!0,style:!0};function pa(a,b){return(a&b)===b}\nvar ta={MUST_USE_PROPERTY:1,HAS_BOOLEAN_VALUE:4,HAS_NUMERIC_VALUE:8,HAS_POSITIVE_NUMERIC_VALUE:24,HAS_OVERLOADED_BOOLEAN_VALUE:32,HAS_STRING_BOOLEAN_VALUE:64,injectDOMPropertyConfig:function(a){var b=ta,c=a.Properties||{},d=a.DOMAttributeNamespaces||{},e=a.DOMAttributeNames||{};a=a.DOMMutationMethods||{};for(var f in c){ua.hasOwnProperty(f)?E(\"48\",f):void 0;var g=f.toLowerCase(),h=c[f];g={attributeName:g,attributeNamespace:null,propertyName:f,mutationMethod:null,mustUseProperty:pa(h,b.MUST_USE_PROPERTY),\nhasBooleanValue:pa(h,b.HAS_BOOLEAN_VALUE),hasNumericValue:pa(h,b.HAS_NUMERIC_VALUE),hasPositiveNumericValue:pa(h,b.HAS_POSITIVE_NUMERIC_VALUE),hasOverloadedBooleanValue:pa(h,b.HAS_OVERLOADED_BOOLEAN_VALUE),hasStringBooleanValue:pa(h,b.HAS_STRING_BOOLEAN_VALUE)};1>=g.hasBooleanValue+g.hasNumericValue+g.hasOverloadedBooleanValue?void 0:E(\"50\",f);e.hasOwnProperty(f)&&(g.attributeName=e[f]);d.hasOwnProperty(f)&&(g.attributeNamespace=d[f]);a.hasOwnProperty(f)&&(g.mutationMethod=a[f]);ua[f]=g}}},ua={};\nfunction va(a,b){if(oa.hasOwnProperty(a)||2<a.length&&(\"o\"===a[0]||\"O\"===a[0])&&(\"n\"===a[1]||\"N\"===a[1]))return!1;if(null===b)return!0;switch(typeof b){case \"boolean\":return oa.hasOwnProperty(a)?a=!0:(b=wa(a))?a=b.hasBooleanValue||b.hasStringBooleanValue||b.hasOverloadedBooleanValue:(a=a.toLowerCase().slice(0,5),a=\"data-\"===a||\"aria-\"===a),a;case \"undefined\":case \"number\":case \"string\":case \"object\":return!0;default:return!1}}function wa(a){return ua.hasOwnProperty(a)?ua[a]:null}\nvar xa=ta,ya=xa.MUST_USE_PROPERTY,K=xa.HAS_BOOLEAN_VALUE,za=xa.HAS_NUMERIC_VALUE,Aa=xa.HAS_POSITIVE_NUMERIC_VALUE,Ba=xa.HAS_OVERLOADED_BOOLEAN_VALUE,Ca=xa.HAS_STRING_BOOLEAN_VALUE,Da={Properties:{allowFullScreen:K,async:K,autoFocus:K,autoPlay:K,capture:Ba,checked:ya|K,cols:Aa,contentEditable:Ca,controls:K,\"default\":K,defer:K,disabled:K,download:Ba,draggable:Ca,formNoValidate:K,hidden:K,loop:K,multiple:ya|K,muted:ya|K,noValidate:K,open:K,playsInline:K,readOnly:K,required:K,reversed:K,rows:Aa,rowSpan:za,\nscoped:K,seamless:K,selected:ya|K,size:Aa,start:za,span:Aa,spellCheck:Ca,style:0,tabIndex:0,itemScope:K,acceptCharset:0,className:0,htmlFor:0,httpEquiv:0,value:Ca},DOMAttributeNames:{acceptCharset:\"accept-charset\",className:\"class\",htmlFor:\"for\",httpEquiv:\"http-equiv\"},DOMMutationMethods:{value:function(a,b){if(null==b)return a.removeAttribute(\"value\");\"number\"!==a.type||!1===a.hasAttribute(\"value\")?a.setAttribute(\"value\",\"\"+b):a.validity&&!a.validity.badInput&&a.ownerDocument.activeElement!==a&&\na.setAttribute(\"value\",\"\"+b)}}},Ea=xa.HAS_STRING_BOOLEAN_VALUE,M={xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\"},Ga={Properties:{autoReverse:Ea,externalResourcesRequired:Ea,preserveAlpha:Ea},DOMAttributeNames:{autoReverse:\"autoReverse\",externalResourcesRequired:\"externalResourcesRequired\",preserveAlpha:\"preserveAlpha\"},DOMAttributeNamespaces:{xlinkActuate:M.xlink,xlinkArcrole:M.xlink,xlinkHref:M.xlink,xlinkRole:M.xlink,xlinkShow:M.xlink,xlinkTitle:M.xlink,xlinkType:M.xlink,\nxmlBase:M.xml,xmlLang:M.xml,xmlSpace:M.xml}},Ha=/[\\-\\:]([a-z])/g;function Ia(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode x-height xlink:actuate xlink:arcrole xlink:href xlink:role xlink:show xlink:title xlink:type xml:base xmlns:xlink xml:lang xml:space\".split(\" \").forEach(function(a){var b=a.replace(Ha,\nIa);Ga.Properties[b]=0;Ga.DOMAttributeNames[b]=a});xa.injectDOMPropertyConfig(Da);xa.injectDOMPropertyConfig(Ga);\nvar P={_caughtError:null,_hasCaughtError:!1,_rethrowError:null,_hasRethrowError:!1,injection:{injectErrorUtils:function(a){\"function\"!==typeof a.invokeGuardedCallback?E(\"197\"):void 0;Ja=a.invokeGuardedCallback}},invokeGuardedCallback:function(a,b,c,d,e,f,g,h,k){Ja.apply(P,arguments)},invokeGuardedCallbackAndCatchFirstError:function(a,b,c,d,e,f,g,h,k){P.invokeGuardedCallback.apply(this,arguments);if(P.hasCaughtError()){var q=P.clearCaughtError();P._hasRethrowError||(P._hasRethrowError=!0,P._rethrowError=\nq)}},rethrowCaughtError:function(){return Ka.apply(P,arguments)},hasCaughtError:function(){return P._hasCaughtError},clearCaughtError:function(){if(P._hasCaughtError){var a=P._caughtError;P._caughtError=null;P._hasCaughtError=!1;return a}E(\"198\")}};function Ja(a,b,c,d,e,f,g,h,k){P._hasCaughtError=!1;P._caughtError=null;var q=Array.prototype.slice.call(arguments,3);try{b.apply(c,q)}catch(v){P._caughtError=v,P._hasCaughtError=!0}}\nfunction Ka(){if(P._hasRethrowError){var a=P._rethrowError;P._rethrowError=null;P._hasRethrowError=!1;throw a;}}var La=null,Ma={};\nfunction Na(){if(La)for(var a in Ma){var b=Ma[a],c=La.indexOf(a);-1<c?void 0:E(\"96\",a);if(!Oa[c]){b.extractEvents?void 0:E(\"97\",a);Oa[c]=b;c=b.eventTypes;for(var d in c){var e=void 0;var f=c[d],g=b,h=d;Pa.hasOwnProperty(h)?E(\"99\",h):void 0;Pa[h]=f;var k=f.phasedRegistrationNames;if(k){for(e in k)k.hasOwnProperty(e)&&Qa(k[e],g,h);e=!0}else f.registrationName?(Qa(f.registrationName,g,h),e=!0):e=!1;e?void 0:E(\"98\",d,a)}}}}\nfunction Qa(a,b,c){Ra[a]?E(\"100\",a):void 0;Ra[a]=b;Sa[a]=b.eventTypes[c].dependencies}var Oa=[],Pa={},Ra={},Sa={};function Ta(a){La?E(\"101\"):void 0;La=Array.prototype.slice.call(a);Na()}function Ua(a){var b=!1,c;for(c in a)if(a.hasOwnProperty(c)){var d=a[c];Ma.hasOwnProperty(c)&&Ma[c]===d||(Ma[c]?E(\"102\",c):void 0,Ma[c]=d,b=!0)}b&&Na()}\nvar Va=Object.freeze({plugins:Oa,eventNameDispatchConfigs:Pa,registrationNameModules:Ra,registrationNameDependencies:Sa,possibleRegistrationNames:null,injectEventPluginOrder:Ta,injectEventPluginsByName:Ua}),Wa=null,Xa=null,Ya=null;function Za(a,b,c,d){b=a.type||\"unknown-event\";a.currentTarget=Ya(d);P.invokeGuardedCallbackAndCatchFirstError(b,c,void 0,a);a.currentTarget=null}\nfunction $a(a,b){null==b?E(\"30\"):void 0;if(null==a)return b;if(Array.isArray(a)){if(Array.isArray(b))return a.push.apply(a,b),a;a.push(b);return a}return Array.isArray(b)?[a].concat(b):[a,b]}function ab(a,b,c){Array.isArray(a)?a.forEach(b,c):a&&b.call(c,a)}var bb=null;\nfunction cb(a,b){if(a){var c=a._dispatchListeners,d=a._dispatchInstances;if(Array.isArray(c))for(var e=0;e<c.length&&!a.isPropagationStopped();e++)Za(a,b,c[e],d[e]);else c&&Za(a,b,c,d);a._dispatchListeners=null;a._dispatchInstances=null;a.isPersistent()||a.constructor.release(a)}}function db(a){return cb(a,!0)}function gb(a){return cb(a,!1)}var hb={injectEventPluginOrder:Ta,injectEventPluginsByName:Ua};\nfunction ib(a,b){var c=a.stateNode;if(!c)return null;var d=Wa(c);if(!d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;c&&\"function\"!==typeof c?E(\"231\",b,typeof c):void 0;\nreturn c}function jb(a,b,c,d){for(var e,f=0;f<Oa.length;f++){var g=Oa[f];g&&(g=g.extractEvents(a,b,c,d))&&(e=$a(e,g))}return e}function kb(a){a&&(bb=$a(bb,a))}function lb(a){var b=bb;bb=null;b&&(a?ab(b,db):ab(b,gb),bb?E(\"95\"):void 0,P.rethrowCaughtError())}var mb=Object.freeze({injection:hb,getListener:ib,extractEvents:jb,enqueueEvents:kb,processEventQueue:lb}),nb=Math.random().toString(36).slice(2),Q=\"__reactInternalInstance$\"+nb,ob=\"__reactEventHandlers$\"+nb;\nfunction pb(a){if(a[Q])return a[Q];for(var b=[];!a[Q];)if(b.push(a),a.parentNode)a=a.parentNode;else return null;var c=void 0,d=a[Q];if(5===d.tag||6===d.tag)return d;for(;a&&(d=a[Q]);a=b.pop())c=d;return c}function qb(a){if(5===a.tag||6===a.tag)return a.stateNode;E(\"33\")}function rb(a){return a[ob]||null}\nvar sb=Object.freeze({precacheFiberNode:function(a,b){b[Q]=a},getClosestInstanceFromNode:pb,getInstanceFromNode:function(a){a=a[Q];return!a||5!==a.tag&&6!==a.tag?null:a},getNodeFromInstance:qb,getFiberCurrentPropsFromNode:rb,updateFiberProps:function(a,b){a[ob]=b}});function tb(a){do a=a[\"return\"];while(a&&5!==a.tag);return a?a:null}function ub(a,b,c){for(var d=[];a;)d.push(a),a=tb(a);for(a=d.length;0<a--;)b(d[a],\"captured\",c);for(a=0;a<d.length;a++)b(d[a],\"bubbled\",c)}\nfunction vb(a,b,c){if(b=ib(a,c.dispatchConfig.phasedRegistrationNames[b]))c._dispatchListeners=$a(c._dispatchListeners,b),c._dispatchInstances=$a(c._dispatchInstances,a)}function wb(a){a&&a.dispatchConfig.phasedRegistrationNames&&ub(a._targetInst,vb,a)}function xb(a){if(a&&a.dispatchConfig.phasedRegistrationNames){var b=a._targetInst;b=b?tb(b):null;ub(b,vb,a)}}\nfunction yb(a,b,c){a&&c&&c.dispatchConfig.registrationName&&(b=ib(a,c.dispatchConfig.registrationName))&&(c._dispatchListeners=$a(c._dispatchListeners,b),c._dispatchInstances=$a(c._dispatchInstances,a))}function zb(a){a&&a.dispatchConfig.registrationName&&yb(a._targetInst,null,a)}function Ab(a){ab(a,wb)}\nfunction Bb(a,b,c,d){if(c&&d)a:{var e=c;for(var f=d,g=0,h=e;h;h=tb(h))g++;h=0;for(var k=f;k;k=tb(k))h++;for(;0<g-h;)e=tb(e),g--;for(;0<h-g;)f=tb(f),h--;for(;g--;){if(e===f||e===f.alternate)break a;e=tb(e);f=tb(f)}e=null}else e=null;f=e;for(e=[];c&&c!==f;){g=c.alternate;if(null!==g&&g===f)break;e.push(c);c=tb(c)}for(c=[];d&&d!==f;){g=d.alternate;if(null!==g&&g===f)break;c.push(d);d=tb(d)}for(d=0;d<e.length;d++)yb(e[d],\"bubbled\",a);for(a=c.length;0<a--;)yb(c[a],\"captured\",b)}\nvar Cb=Object.freeze({accumulateTwoPhaseDispatches:Ab,accumulateTwoPhaseDispatchesSkipTarget:function(a){ab(a,xb)},accumulateEnterLeaveDispatches:Bb,accumulateDirectDispatches:function(a){ab(a,zb)}}),Db=null;function Eb(){!Db&&l.canUseDOM&&(Db=\"textContent\"in document.documentElement?\"textContent\":\"innerText\");return Db}var S={_root:null,_startText:null,_fallbackText:null};\nfunction Fb(){if(S._fallbackText)return S._fallbackText;var a,b=S._startText,c=b.length,d,e=Gb(),f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);S._fallbackText=e.slice(a,1<d?1-d:void 0);return S._fallbackText}function Gb(){return\"value\"in S._root?S._root.value:S._root[Eb()]}\nvar Hb=\"dispatchConfig _targetInst nativeEvent isDefaultPrevented isPropagationStopped _dispatchListeners _dispatchInstances\".split(\" \"),Ib={type:null,target:null,currentTarget:C.thatReturnsNull,eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null};\nfunction T(a,b,c,d){this.dispatchConfig=a;this._targetInst=b;this.nativeEvent=c;a=this.constructor.Interface;for(var e in a)a.hasOwnProperty(e)&&((b=a[e])?this[e]=b(c):\"target\"===e?this.target=d:this[e]=c[e]);this.isDefaultPrevented=(null!=c.defaultPrevented?c.defaultPrevented:!1===c.returnValue)?C.thatReturnsTrue:C.thatReturnsFalse;this.isPropagationStopped=C.thatReturnsFalse;return this}\nB(T.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&(a.returnValue=!1),this.isDefaultPrevented=C.thatReturnsTrue)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=C.thatReturnsTrue)},persist:function(){this.isPersistent=C.thatReturnsTrue},isPersistent:C.thatReturnsFalse,\ndestructor:function(){var a=this.constructor.Interface,b;for(b in a)this[b]=null;for(a=0;a<Hb.length;a++)this[Hb[a]]=null}});T.Interface=Ib;T.augmentClass=function(a,b){function c(){}c.prototype=this.prototype;var d=new c;B(d,a.prototype);a.prototype=d;a.prototype.constructor=a;a.Interface=B({},this.Interface,b);a.augmentClass=this.augmentClass;Jb(a)};Jb(T);function Kb(a,b,c,d){if(this.eventPool.length){var e=this.eventPool.pop();this.call(e,a,b,c,d);return e}return new this(a,b,c,d)}\nfunction Lb(a){a instanceof this?void 0:E(\"223\");a.destructor();10>this.eventPool.length&&this.eventPool.push(a)}function Jb(a){a.eventPool=[];a.getPooled=Kb;a.release=Lb}function Mb(a,b,c,d){return T.call(this,a,b,c,d)}T.augmentClass(Mb,{data:null});function Nb(a,b,c,d){return T.call(this,a,b,c,d)}T.augmentClass(Nb,{data:null});var Pb=[9,13,27,32],Vb=l.canUseDOM&&\"CompositionEvent\"in window,Wb=null;l.canUseDOM&&\"documentMode\"in document&&(Wb=document.documentMode);var Xb;\nif(Xb=l.canUseDOM&&\"TextEvent\"in window&&!Wb){var Yb=window.opera;Xb=!(\"object\"===typeof Yb&&\"function\"===typeof Yb.version&&12>=parseInt(Yb.version(),10))}\nvar Zb=Xb,$b=l.canUseDOM&&(!Vb||Wb&&8<Wb&&11>=Wb),ac=String.fromCharCode(32),bc={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"topCompositionEnd\",\"topKeyPress\",\"topTextInput\",\"topPaste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"topBlur topCompositionEnd topKeyDown topKeyPress topKeyUp topMouseDown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"topBlur topCompositionStart topKeyDown topKeyPress topKeyUp topMouseDown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"topBlur topCompositionUpdate topKeyDown topKeyPress topKeyUp topMouseDown\".split(\" \")}},cc=!1;\nfunction dc(a,b){switch(a){case \"topKeyUp\":return-1!==Pb.indexOf(b.keyCode);case \"topKeyDown\":return 229!==b.keyCode;case \"topKeyPress\":case \"topMouseDown\":case \"topBlur\":return!0;default:return!1}}function ec(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var fc=!1;function gc(a,b){switch(a){case \"topCompositionEnd\":return ec(b);case \"topKeyPress\":if(32!==b.which)return null;cc=!0;return ac;case \"topTextInput\":return a=b.data,a===ac&&cc?null:a;default:return null}}\nfunction hc(a,b){if(fc)return\"topCompositionEnd\"===a||!Vb&&dc(a,b)?(a=Fb(),S._root=null,S._startText=null,S._fallbackText=null,fc=!1,a):null;switch(a){case \"topPaste\":return null;case \"topKeyPress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"topCompositionEnd\":return $b?null:b.data;default:return null}}\nvar ic={eventTypes:bc,extractEvents:function(a,b,c,d){var e;if(Vb)b:{switch(a){case \"topCompositionStart\":var f=bc.compositionStart;break b;case \"topCompositionEnd\":f=bc.compositionEnd;break b;case \"topCompositionUpdate\":f=bc.compositionUpdate;break b}f=void 0}else fc?dc(a,c)&&(f=bc.compositionEnd):\"topKeyDown\"===a&&229===c.keyCode&&(f=bc.compositionStart);f?($b&&(fc||f!==bc.compositionStart?f===bc.compositionEnd&&fc&&(e=Fb()):(S._root=d,S._startText=Gb(),fc=!0)),f=Mb.getPooled(f,b,c,d),e?f.data=\ne:(e=ec(c),null!==e&&(f.data=e)),Ab(f),e=f):e=null;(a=Zb?gc(a,c):hc(a,c))?(b=Nb.getPooled(bc.beforeInput,b,c,d),b.data=a,Ab(b)):b=null;return[e,b]}},jc=null,kc=null,lc=null;function mc(a){if(a=Xa(a)){jc&&\"function\"===typeof jc.restoreControlledState?void 0:E(\"194\");var b=Wa(a.stateNode);jc.restoreControlledState(a.stateNode,a.type,b)}}var nc={injectFiberControlledHostComponent:function(a){jc=a}};function oc(a){kc?lc?lc.push(a):lc=[a]:kc=a}\nfunction pc(){if(kc){var a=kc,b=lc;lc=kc=null;mc(a);if(b)for(a=0;a<b.length;a++)mc(b[a])}}var qc=Object.freeze({injection:nc,enqueueStateRestore:oc,restoreStateIfNeeded:pc});function rc(a,b){return a(b)}var sc=!1;function tc(a,b){if(sc)return rc(a,b);sc=!0;try{return rc(a,b)}finally{sc=!1,pc()}}var uc={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};\nfunction vc(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!uc[a.type]:\"textarea\"===b?!0:!1}function wc(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var xc;l.canUseDOM&&(xc=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature(\"\",\"\"));\nfunction yc(a,b){if(!l.canUseDOM||b&&!(\"addEventListener\"in document))return!1;b=\"on\"+a;var c=b in document;c||(c=document.createElement(\"div\"),c.setAttribute(b,\"return;\"),c=\"function\"===typeof c[b]);!c&&xc&&\"wheel\"===a&&(c=document.implementation.hasFeature(\"Events.wheel\",\"3.0\"));return c}function zc(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ac(a){var b=zc(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"function\"===typeof c.get&&\"function\"===typeof c.set)return Object.defineProperty(a,b,{enumerable:c.enumerable,configurable:!0,get:function(){return c.get.call(this)},set:function(a){d=\"\"+a;c.set.call(this,a)}}),{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=null;delete a[b]}}}\nfunction Bc(a){a._valueTracker||(a._valueTracker=Ac(a))}function Cc(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=zc(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}var Dc={change:{phasedRegistrationNames:{bubbled:\"onChange\",captured:\"onChangeCapture\"},dependencies:\"topBlur topChange topClick topFocus topInput topKeyDown topKeyUp topSelectionChange\".split(\" \")}};\nfunction Ec(a,b,c){a=T.getPooled(Dc.change,a,b,c);a.type=\"change\";oc(c);Ab(a);return a}var Fc=null,Gc=null;function Hc(a){kb(a);lb(!1)}function Ic(a){var b=qb(a);if(Cc(b))return a}function Jc(a,b){if(\"topChange\"===a)return b}var Kc=!1;l.canUseDOM&&(Kc=yc(\"input\")&&(!document.documentMode||9<document.documentMode));function Lc(){Fc&&(Fc.detachEvent(\"onpropertychange\",Mc),Gc=Fc=null)}function Mc(a){\"value\"===a.propertyName&&Ic(Gc)&&(a=Ec(Gc,a,wc(a)),tc(Hc,a))}\nfunction Nc(a,b,c){\"topFocus\"===a?(Lc(),Fc=b,Gc=c,Fc.attachEvent(\"onpropertychange\",Mc)):\"topBlur\"===a&&Lc()}function Oc(a){if(\"topSelectionChange\"===a||\"topKeyUp\"===a||\"topKeyDown\"===a)return Ic(Gc)}function Pc(a,b){if(\"topClick\"===a)return Ic(b)}function $c(a,b){if(\"topInput\"===a||\"topChange\"===a)return Ic(b)}\nvar ad={eventTypes:Dc,_isInputEventSupported:Kc,extractEvents:function(a,b,c,d){var e=b?qb(b):window,f=e.nodeName&&e.nodeName.toLowerCase();if(\"select\"===f||\"input\"===f&&\"file\"===e.type)var g=Jc;else if(vc(e))if(Kc)g=$c;else{g=Oc;var h=Nc}else f=e.nodeName,!f||\"input\"!==f.toLowerCase()||\"checkbox\"!==e.type&&\"radio\"!==e.type||(g=Pc);if(g&&(g=g(a,b)))return Ec(g,c,d);h&&h(a,e,b);\"topBlur\"===a&&null!=b&&(a=b._wrapperState||e._wrapperState)&&a.controlled&&\"number\"===e.type&&(a=\"\"+e.value,e.getAttribute(\"value\")!==\na&&e.setAttribute(\"value\",a))}};function bd(a,b,c,d){return T.call(this,a,b,c,d)}T.augmentClass(bd,{view:null,detail:null});var cd={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function dd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=cd[a])?!!b[a]:!1}function ed(){return dd}function fd(a,b,c,d){return T.call(this,a,b,c,d)}\nbd.augmentClass(fd,{screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:ed,button:null,buttons:null,relatedTarget:function(a){return a.relatedTarget||(a.fromElement===a.srcElement?a.toElement:a.fromElement)}});\nvar gd={mouseEnter:{registrationName:\"onMouseEnter\",dependencies:[\"topMouseOut\",\"topMouseOver\"]},mouseLeave:{registrationName:\"onMouseLeave\",dependencies:[\"topMouseOut\",\"topMouseOver\"]}},hd={eventTypes:gd,extractEvents:function(a,b,c,d){if(\"topMouseOver\"===a&&(c.relatedTarget||c.fromElement)||\"topMouseOut\"!==a&&\"topMouseOver\"!==a)return null;var e=d.window===d?d:(e=d.ownerDocument)?e.defaultView||e.parentWindow:window;\"topMouseOut\"===a?(a=b,b=(b=c.relatedTarget||c.toElement)?pb(b):null):a=null;if(a===\nb)return null;var f=null==a?e:qb(a);e=null==b?e:qb(b);var g=fd.getPooled(gd.mouseLeave,a,c,d);g.type=\"mouseleave\";g.target=f;g.relatedTarget=e;c=fd.getPooled(gd.mouseEnter,b,c,d);c.type=\"mouseenter\";c.target=e;c.relatedTarget=f;Bb(g,c,a,b);return[g,c]}},id=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner;function jd(a){a=a.type;return\"string\"===typeof a?a:\"function\"===typeof a?a.displayName||a.name:null}\nfunction kd(a){var b=a;if(a.alternate)for(;b[\"return\"];)b=b[\"return\"];else{if(0!==(b.effectTag&2))return 1;for(;b[\"return\"];)if(b=b[\"return\"],0!==(b.effectTag&2))return 1}return 3===b.tag?2:3}function ld(a){return(a=a._reactInternalFiber)?2===kd(a):!1}function md(a){2!==kd(a)?E(\"188\"):void 0}\nfunction nd(a){var b=a.alternate;if(!b)return b=kd(a),3===b?E(\"188\"):void 0,1===b?null:a;for(var c=a,d=b;;){var e=c[\"return\"],f=e?e.alternate:null;if(!e||!f)break;if(e.child===f.child){for(var g=e.child;g;){if(g===c)return md(e),a;if(g===d)return md(e),b;g=g.sibling}E(\"188\")}if(c[\"return\"]!==d[\"return\"])c=e,d=f;else{g=!1;for(var h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===c){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}g?\nvoid 0:E(\"189\")}}c.alternate!==d?E(\"190\"):void 0}3!==c.tag?E(\"188\"):void 0;return c.stateNode.current===c?a:b}function od(a){a=nd(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child[\"return\"]=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b[\"return\"]||b[\"return\"]===a)return null;b=b[\"return\"]}b.sibling[\"return\"]=b[\"return\"];b=b.sibling}}return null}\nfunction pd(a){a=nd(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child&&4!==b.tag)b.child[\"return\"]=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b[\"return\"]||b[\"return\"]===a)return null;b=b[\"return\"]}b.sibling[\"return\"]=b[\"return\"];b=b.sibling}}return null}var qd=[];\nfunction rd(a){var b=a.targetInst;do{if(!b){a.ancestors.push(b);break}var c;for(c=b;c[\"return\"];)c=c[\"return\"];c=3!==c.tag?null:c.stateNode.containerInfo;if(!c)break;a.ancestors.push(b);b=pb(c)}while(b);for(c=0;c<a.ancestors.length;c++)b=a.ancestors[c],sd(a.topLevelType,b,a.nativeEvent,wc(a.nativeEvent))}var td=!0,sd=void 0;function ud(a){td=!!a}function U(a,b,c){return c?ba.listen(c,b,vd.bind(null,a)):null}function wd(a,b,c){return c?ba.capture(c,b,vd.bind(null,a)):null}\nfunction vd(a,b){if(td){var c=wc(b);c=pb(c);null===c||\"number\"!==typeof c.tag||2===kd(c)||(c=null);if(qd.length){var d=qd.pop();d.topLevelType=a;d.nativeEvent=b;d.targetInst=c;a=d}else a={topLevelType:a,nativeEvent:b,targetInst:c,ancestors:[]};try{tc(rd,a)}finally{a.topLevelType=null,a.nativeEvent=null,a.targetInst=null,a.ancestors.length=0,10>qd.length&&qd.push(a)}}}\nvar xd=Object.freeze({get _enabled(){return td},get _handleTopLevel(){return sd},setHandleTopLevel:function(a){sd=a},setEnabled:ud,isEnabled:function(){return td},trapBubbledEvent:U,trapCapturedEvent:wd,dispatchEvent:vd});function yd(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;c[\"ms\"+a]=\"MS\"+b;c[\"O\"+a]=\"o\"+b.toLowerCase();return c}\nvar zd={animationend:yd(\"Animation\",\"AnimationEnd\"),animationiteration:yd(\"Animation\",\"AnimationIteration\"),animationstart:yd(\"Animation\",\"AnimationStart\"),transitionend:yd(\"Transition\",\"TransitionEnd\")},Ad={},Bd={};l.canUseDOM&&(Bd=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete zd.animationend.animation,delete zd.animationiteration.animation,delete zd.animationstart.animation),\"TransitionEvent\"in window||delete zd.transitionend.transition);\nfunction Cd(a){if(Ad[a])return Ad[a];if(!zd[a])return a;var b=zd[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Bd)return Ad[a]=b[c];return\"\"}\nvar Dd={topAbort:\"abort\",topAnimationEnd:Cd(\"animationend\")||\"animationend\",topAnimationIteration:Cd(\"animationiteration\")||\"animationiteration\",topAnimationStart:Cd(\"animationstart\")||\"animationstart\",topBlur:\"blur\",topCancel:\"cancel\",topCanPlay:\"canplay\",topCanPlayThrough:\"canplaythrough\",topChange:\"change\",topClick:\"click\",topClose:\"close\",topCompositionEnd:\"compositionend\",topCompositionStart:\"compositionstart\",topCompositionUpdate:\"compositionupdate\",topContextMenu:\"contextmenu\",topCopy:\"copy\",\ntopCut:\"cut\",topDoubleClick:\"dblclick\",topDrag:\"drag\",topDragEnd:\"dragend\",topDragEnter:\"dragenter\",topDragExit:\"dragexit\",topDragLeave:\"dragleave\",topDragOver:\"dragover\",topDragStart:\"dragstart\",topDrop:\"drop\",topDurationChange:\"durationchange\",topEmptied:\"emptied\",topEncrypted:\"encrypted\",topEnded:\"ended\",topError:\"error\",topFocus:\"focus\",topInput:\"input\",topKeyDown:\"keydown\",topKeyPress:\"keypress\",topKeyUp:\"keyup\",topLoadedData:\"loadeddata\",topLoad:\"load\",topLoadedMetadata:\"loadedmetadata\",topLoadStart:\"loadstart\",\ntopMouseDown:\"mousedown\",topMouseMove:\"mousemove\",topMouseOut:\"mouseout\",topMouseOver:\"mouseover\",topMouseUp:\"mouseup\",topPaste:\"paste\",topPause:\"pause\",topPlay:\"play\",topPlaying:\"playing\",topProgress:\"progress\",topRateChange:\"ratechange\",topScroll:\"scroll\",topSeeked:\"seeked\",topSeeking:\"seeking\",topSelectionChange:\"selectionchange\",topStalled:\"stalled\",topSuspend:\"suspend\",topTextInput:\"textInput\",topTimeUpdate:\"timeupdate\",topToggle:\"toggle\",topTouchCancel:\"touchcancel\",topTouchEnd:\"touchend\",topTouchMove:\"touchmove\",\ntopTouchStart:\"touchstart\",topTransitionEnd:Cd(\"transitionend\")||\"transitionend\",topVolumeChange:\"volumechange\",topWaiting:\"waiting\",topWheel:\"wheel\"},Ed={},Fd=0,Gd=\"_reactListenersID\"+(\"\"+Math.random()).slice(2);function Hd(a){Object.prototype.hasOwnProperty.call(a,Gd)||(a[Gd]=Fd++,Ed[a[Gd]]={});return Ed[a[Gd]]}function Id(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Jd(a,b){var c=Id(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Id(c)}}function Kd(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&\"text\"===a.type||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Ld=l.canUseDOM&&\"documentMode\"in document&&11>=document.documentMode,Md={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"topBlur topContextMenu topFocus topKeyDown topKeyUp topMouseDown topMouseUp topSelectionChange\".split(\" \")}},Nd=null,Od=null,Pd=null,Qd=!1;\nfunction Rd(a,b){if(Qd||null==Nd||Nd!==da())return null;var c=Nd;\"selectionStart\"in c&&Kd(c)?c={start:c.selectionStart,end:c.selectionEnd}:window.getSelection?(c=window.getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset}):c=void 0;return Pd&&ea(Pd,c)?null:(Pd=c,a=T.getPooled(Md.select,Od,a,b),a.type=\"select\",a.target=Nd,Ab(a),a)}\nvar Sd={eventTypes:Md,extractEvents:function(a,b,c,d){var e=d.window===d?d.document:9===d.nodeType?d:d.ownerDocument,f;if(!(f=!e)){a:{e=Hd(e);f=Sa.onSelect;for(var g=0;g<f.length;g++){var h=f[g];if(!e.hasOwnProperty(h)||!e[h]){e=!1;break a}}e=!0}f=!e}if(f)return null;e=b?qb(b):window;switch(a){case \"topFocus\":if(vc(e)||\"true\"===e.contentEditable)Nd=e,Od=b,Pd=null;break;case \"topBlur\":Pd=Od=Nd=null;break;case \"topMouseDown\":Qd=!0;break;case \"topContextMenu\":case \"topMouseUp\":return Qd=!1,Rd(c,d);case \"topSelectionChange\":if(Ld)break;\ncase \"topKeyDown\":case \"topKeyUp\":return Rd(c,d)}return null}};function Td(a,b,c,d){return T.call(this,a,b,c,d)}T.augmentClass(Td,{animationName:null,elapsedTime:null,pseudoElement:null});function Ud(a,b,c,d){return T.call(this,a,b,c,d)}T.augmentClass(Ud,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}});function Vd(a,b,c,d){return T.call(this,a,b,c,d)}bd.augmentClass(Vd,{relatedTarget:null});\nfunction Wd(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;return 32<=a||13===a?a:0}\nvar Xd={Esc:\"Escape\",Spacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Yd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",\n116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"};function Zd(a,b,c,d){return T.call(this,a,b,c,d)}\nbd.augmentClass(Zd,{key:function(a){if(a.key){var b=Xd[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=Wd(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Yd[a.keyCode]||\"Unidentified\":\"\"},location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:ed,charCode:function(a){return\"keypress\"===a.type?Wd(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?Wd(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}});function $d(a,b,c,d){return T.call(this,a,b,c,d)}fd.augmentClass($d,{dataTransfer:null});function ae(a,b,c,d){return T.call(this,a,b,c,d)}bd.augmentClass(ae,{touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:ed});function be(a,b,c,d){return T.call(this,a,b,c,d)}T.augmentClass(be,{propertyName:null,elapsedTime:null,pseudoElement:null});\nfunction ce(a,b,c,d){return T.call(this,a,b,c,d)}fd.augmentClass(ce,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},deltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:null,deltaMode:null});var de={},ee={};\n\"abort animationEnd animationIteration animationStart blur cancel canPlay canPlayThrough click close contextMenu copy cut doubleClick drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error focus input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing progress rateChange reset scroll seeked seeking stalled submit suspend timeUpdate toggle touchCancel touchEnd touchMove touchStart transitionEnd volumeChange waiting wheel\".split(\" \").forEach(function(a){var b=a[0].toUpperCase()+\na.slice(1),c=\"on\"+b;b=\"top\"+b;c={phasedRegistrationNames:{bubbled:c,captured:c+\"Capture\"},dependencies:[b]};de[a]=c;ee[b]=c});\nvar fe={eventTypes:de,extractEvents:function(a,b,c,d){var e=ee[a];if(!e)return null;switch(a){case \"topKeyPress\":if(0===Wd(c))return null;case \"topKeyDown\":case \"topKeyUp\":a=Zd;break;case \"topBlur\":case \"topFocus\":a=Vd;break;case \"topClick\":if(2===c.button)return null;case \"topDoubleClick\":case \"topMouseDown\":case \"topMouseMove\":case \"topMouseUp\":case \"topMouseOut\":case \"topMouseOver\":case \"topContextMenu\":a=fd;break;case \"topDrag\":case \"topDragEnd\":case \"topDragEnter\":case \"topDragExit\":case \"topDragLeave\":case \"topDragOver\":case \"topDragStart\":case \"topDrop\":a=\n$d;break;case \"topTouchCancel\":case \"topTouchEnd\":case \"topTouchMove\":case \"topTouchStart\":a=ae;break;case \"topAnimationEnd\":case \"topAnimationIteration\":case \"topAnimationStart\":a=Td;break;case \"topTransitionEnd\":a=be;break;case \"topScroll\":a=bd;break;case \"topWheel\":a=ce;break;case \"topCopy\":case \"topCut\":case \"topPaste\":a=Ud;break;default:a=T}b=a.getPooled(e,b,c,d);Ab(b);return b}};sd=function(a,b,c,d){a=jb(a,b,c,d);kb(a);lb(!1)};hb.injectEventPluginOrder(\"ResponderEventPlugin SimpleEventPlugin TapEventPlugin EnterLeaveEventPlugin ChangeEventPlugin SelectEventPlugin BeforeInputEventPlugin\".split(\" \"));\nWa=sb.getFiberCurrentPropsFromNode;Xa=sb.getInstanceFromNode;Ya=sb.getNodeFromInstance;hb.injectEventPluginsByName({SimpleEventPlugin:fe,EnterLeaveEventPlugin:hd,ChangeEventPlugin:ad,SelectEventPlugin:Sd,BeforeInputEventPlugin:ic});var ge=[],he=-1;function V(a){0>he||(a.current=ge[he],ge[he]=null,he--)}function W(a,b){he++;ge[he]=a.current;a.current=b}new Set;var ie={current:D},X={current:!1},je=D;function ke(a){return le(a)?je:ie.current}\nfunction me(a,b){var c=a.type.contextTypes;if(!c)return D;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function le(a){return 2===a.tag&&null!=a.type.childContextTypes}function ne(a){le(a)&&(V(X,a),V(ie,a))}\nfunction oe(a,b,c){null!=ie.cursor?E(\"168\"):void 0;W(ie,b,a);W(X,c,a)}function pe(a,b){var c=a.stateNode,d=a.type.childContextTypes;if(\"function\"!==typeof c.getChildContext)return b;c=c.getChildContext();for(var e in c)e in d?void 0:E(\"108\",jd(a)||\"Unknown\",e);return B({},b,c)}function qe(a){if(!le(a))return!1;var b=a.stateNode;b=b&&b.__reactInternalMemoizedMergedChildContext||D;je=ie.current;W(ie,b,a);W(X,X.current,a);return!0}\nfunction re(a,b){var c=a.stateNode;c?void 0:E(\"169\");if(b){var d=pe(a,je);c.__reactInternalMemoizedMergedChildContext=d;V(X,a);V(ie,a);W(ie,d,a)}else V(X,a);W(X,b,a)}\nfunction Y(a,b,c){this.tag=a;this.key=b;this.stateNode=this.type=null;this.sibling=this.child=this[\"return\"]=null;this.index=0;this.memoizedState=this.updateQueue=this.memoizedProps=this.pendingProps=this.ref=null;this.internalContextTag=c;this.effectTag=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.expirationTime=0;this.alternate=null}\nfunction se(a,b,c){var d=a.alternate;null===d?(d=new Y(a.tag,a.key,a.internalContextTag),d.type=a.type,d.stateNode=a.stateNode,d.alternate=a,a.alternate=d):(d.effectTag=0,d.nextEffect=null,d.firstEffect=null,d.lastEffect=null);d.expirationTime=c;d.pendingProps=b;d.child=a.child;d.memoizedProps=a.memoizedProps;d.memoizedState=a.memoizedState;d.updateQueue=a.updateQueue;d.sibling=a.sibling;d.index=a.index;d.ref=a.ref;return d}\nfunction te(a,b,c){var d=void 0,e=a.type,f=a.key;\"function\"===typeof e?(d=e.prototype&&e.prototype.isReactComponent?new Y(2,f,b):new Y(0,f,b),d.type=e,d.pendingProps=a.props):\"string\"===typeof e?(d=new Y(5,f,b),d.type=e,d.pendingProps=a.props):\"object\"===typeof e&&null!==e&&\"number\"===typeof e.tag?(d=e,d.pendingProps=a.props):E(\"130\",null==e?e:typeof e,\"\");d.expirationTime=c;return d}function ue(a,b,c,d){b=new Y(10,d,b);b.pendingProps=a;b.expirationTime=c;return b}\nfunction ve(a,b,c){b=new Y(6,null,b);b.pendingProps=a;b.expirationTime=c;return b}function we(a,b,c){b=new Y(7,a.key,b);b.type=a.handler;b.pendingProps=a;b.expirationTime=c;return b}function xe(a,b,c){a=new Y(9,null,b);a.expirationTime=c;return a}function ye(a,b,c){b=new Y(4,a.key,b);b.pendingProps=a.children||[];b.expirationTime=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}var ze=null,Ae=null;\nfunction Be(a){return function(b){try{return a(b)}catch(c){}}}function Ce(a){if(\"undefined\"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var b=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(b.isDisabled||!b.supportsFiber)return!0;try{var c=b.inject(a);ze=Be(function(a){return b.onCommitFiberRoot(c,a)});Ae=Be(function(a){return b.onCommitFiberUnmount(c,a)})}catch(d){}return!0}function De(a){\"function\"===typeof ze&&ze(a)}function Ee(a){\"function\"===typeof Ae&&Ae(a)}\nfunction Fe(a){return{baseState:a,expirationTime:0,first:null,last:null,callbackList:null,hasForceUpdate:!1,isInitialized:!1}}function Ge(a,b){null===a.last?a.first=a.last=b:(a.last.next=b,a.last=b);if(0===a.expirationTime||a.expirationTime>b.expirationTime)a.expirationTime=b.expirationTime}\nfunction He(a,b){var c=a.alternate,d=a.updateQueue;null===d&&(d=a.updateQueue=Fe(null));null!==c?(a=c.updateQueue,null===a&&(a=c.updateQueue=Fe(null))):a=null;a=a!==d?a:null;null===a?Ge(d,b):null===d.last||null===a.last?(Ge(d,b),Ge(a,b)):(Ge(d,b),a.last=b)}function Ie(a,b,c,d){a=a.partialState;return\"function\"===typeof a?a.call(b,c,d):a}\nfunction Je(a,b,c,d,e,f){null!==a&&a.updateQueue===c&&(c=b.updateQueue={baseState:c.baseState,expirationTime:c.expirationTime,first:c.first,last:c.last,isInitialized:c.isInitialized,callbackList:null,hasForceUpdate:!1});c.expirationTime=0;c.isInitialized?a=c.baseState:(a=c.baseState=b.memoizedState,c.isInitialized=!0);for(var g=!0,h=c.first,k=!1;null!==h;){var q=h.expirationTime;if(q>f){var v=c.expirationTime;if(0===v||v>q)c.expirationTime=q;k||(k=!0,c.baseState=a)}else{k||(c.first=h.next,null===\nc.first&&(c.last=null));if(h.isReplace)a=Ie(h,d,a,e),g=!0;else if(q=Ie(h,d,a,e))a=g?B({},a,q):B(a,q),g=!1;h.isForced&&(c.hasForceUpdate=!0);null!==h.callback&&(q=c.callbackList,null===q&&(q=c.callbackList=[]),q.push(h))}h=h.next}null!==c.callbackList?b.effectTag|=32:null!==c.first||c.hasForceUpdate||(b.updateQueue=null);k||(c.baseState=a);return a}\nfunction Ke(a,b){var c=a.callbackList;if(null!==c)for(a.callbackList=null,a=0;a<c.length;a++){var d=c[a],e=d.callback;d.callback=null;\"function\"!==typeof e?E(\"191\",e):void 0;e.call(b)}}\nfunction Le(a,b,c,d){function e(a,b){b.updater=f;a.stateNode=b;b._reactInternalFiber=a}var f={isMounted:ld,enqueueSetState:function(c,d,e){c=c._reactInternalFiber;e=void 0===e?null:e;var g=b(c);He(c,{expirationTime:g,partialState:d,callback:e,isReplace:!1,isForced:!1,nextCallback:null,next:null});a(c,g)},enqueueReplaceState:function(c,d,e){c=c._reactInternalFiber;e=void 0===e?null:e;var g=b(c);He(c,{expirationTime:g,partialState:d,callback:e,isReplace:!0,isForced:!1,nextCallback:null,next:null});\na(c,g)},enqueueForceUpdate:function(c,d){c=c._reactInternalFiber;d=void 0===d?null:d;var e=b(c);He(c,{expirationTime:e,partialState:null,callback:d,isReplace:!1,isForced:!0,nextCallback:null,next:null});a(c,e)}};return{adoptClassInstance:e,constructClassInstance:function(a,b){var c=a.type,d=ke(a),f=2===a.tag&&null!=a.type.contextTypes,g=f?me(a,d):D;b=new c(b,g);e(a,b);f&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=d,a.__reactInternalMemoizedMaskedChildContext=g);return b},mountClassInstance:function(a,\nb){var c=a.alternate,d=a.stateNode,e=d.state||null,g=a.pendingProps;g?void 0:E(\"158\");var h=ke(a);d.props=g;d.state=a.memoizedState=e;d.refs=D;d.context=me(a,h);null!=a.type&&null!=a.type.prototype&&!0===a.type.prototype.unstable_isAsyncReactComponent&&(a.internalContextTag|=1);\"function\"===typeof d.componentWillMount&&(e=d.state,d.componentWillMount(),e!==d.state&&f.enqueueReplaceState(d,d.state,null),e=a.updateQueue,null!==e&&(d.state=Je(c,a,e,d,g,b)));\"function\"===typeof d.componentDidMount&&(a.effectTag|=\n4)},updateClassInstance:function(a,b,e){var g=b.stateNode;g.props=b.memoizedProps;g.state=b.memoizedState;var h=b.memoizedProps,k=b.pendingProps;k||(k=h,null==k?E(\"159\"):void 0);var u=g.context,z=ke(b);z=me(b,z);\"function\"!==typeof g.componentWillReceiveProps||h===k&&u===z||(u=g.state,g.componentWillReceiveProps(k,z),g.state!==u&&f.enqueueReplaceState(g,g.state,null));u=b.memoizedState;e=null!==b.updateQueue?Je(a,b,b.updateQueue,g,k,e):u;if(!(h!==k||u!==e||X.current||null!==b.updateQueue&&b.updateQueue.hasForceUpdate))return\"function\"!==\ntypeof g.componentDidUpdate||h===a.memoizedProps&&u===a.memoizedState||(b.effectTag|=4),!1;var G=k;if(null===h||null!==b.updateQueue&&b.updateQueue.hasForceUpdate)G=!0;else{var I=b.stateNode,L=b.type;G=\"function\"===typeof I.shouldComponentUpdate?I.shouldComponentUpdate(G,e,z):L.prototype&&L.prototype.isPureReactComponent?!ea(h,G)||!ea(u,e):!0}G?(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(k,e,z),\"function\"===typeof g.componentDidUpdate&&(b.effectTag|=4)):(\"function\"!==typeof g.componentDidUpdate||\nh===a.memoizedProps&&u===a.memoizedState||(b.effectTag|=4),c(b,k),d(b,e));g.props=k;g.state=e;g.context=z;return G}}}var Qe=\"function\"===typeof Symbol&&Symbol[\"for\"],Re=Qe?Symbol[\"for\"](\"react.element\"):60103,Se=Qe?Symbol[\"for\"](\"react.call\"):60104,Te=Qe?Symbol[\"for\"](\"react.return\"):60105,Ue=Qe?Symbol[\"for\"](\"react.portal\"):60106,Ve=Qe?Symbol[\"for\"](\"react.fragment\"):60107,We=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction Xe(a){if(null===a||\"undefined\"===typeof a)return null;a=We&&a[We]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var Ye=Array.isArray;\nfunction Ze(a,b){var c=b.ref;if(null!==c&&\"function\"!==typeof c){if(b._owner){b=b._owner;var d=void 0;b&&(2!==b.tag?E(\"110\"):void 0,d=b.stateNode);d?void 0:E(\"147\",c);var e=\"\"+c;if(null!==a&&null!==a.ref&&a.ref._stringRef===e)return a.ref;a=function(a){var b=d.refs===D?d.refs={}:d.refs;null===a?delete b[e]:b[e]=a};a._stringRef=e;return a}\"string\"!==typeof c?E(\"148\"):void 0;b._owner?void 0:E(\"149\",c)}return c}\nfunction $e(a,b){\"textarea\"!==a.type&&E(\"31\",\"[object Object]\"===Object.prototype.toString.call(b)?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":b,\"\")}\nfunction af(a){function b(b,c){if(a){var d=b.lastEffect;null!==d?(d.nextEffect=c,b.lastEffect=c):b.firstEffect=b.lastEffect=c;c.nextEffect=null;c.effectTag=8}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b,c){a=se(a,b,c);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.effectTag=\n2,c):d;b.effectTag=2;return c}function g(b){a&&null===b.alternate&&(b.effectTag=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=ve(c,a.internalContextTag,d),b[\"return\"]=a,b;b=e(b,c,d);b[\"return\"]=a;return b}function k(a,b,c,d){if(null!==b&&b.type===c.type)return d=e(b,c.props,d),d.ref=Ze(b,c),d[\"return\"]=a,d;d=te(c,a.internalContextTag,d);d.ref=Ze(b,c);d[\"return\"]=a;return d}function q(a,b,c,d){if(null===b||7!==b.tag)return b=we(c,a.internalContextTag,d),b[\"return\"]=a,b;b=e(b,c,d);\nb[\"return\"]=a;return b}function v(a,b,c,d){if(null===b||9!==b.tag)return b=xe(c,a.internalContextTag,d),b.type=c.value,b[\"return\"]=a,b;b=e(b,null,d);b.type=c.value;b[\"return\"]=a;return b}function y(a,b,c,d){if(null===b||4!==b.tag||b.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=ye(c,a.internalContextTag,d),b[\"return\"]=a,b;b=e(b,c.children||[],d);b[\"return\"]=a;return b}function u(a,b,c,d,f){if(null===b||10!==b.tag)return b=ue(c,a.internalContextTag,\nd,f),b[\"return\"]=a,b;b=e(b,c,d);b[\"return\"]=a;return b}function z(a,b,c){if(\"string\"===typeof b||\"number\"===typeof b)return b=ve(\"\"+b,a.internalContextTag,c),b[\"return\"]=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case Re:if(b.type===Ve)return b=ue(b.props.children,a.internalContextTag,c,b.key),b[\"return\"]=a,b;c=te(b,a.internalContextTag,c);c.ref=Ze(null,b);c[\"return\"]=a;return c;case Se:return b=we(b,a.internalContextTag,c),b[\"return\"]=a,b;case Te:return c=xe(b,a.internalContextTag,\nc),c.type=b.value,c[\"return\"]=a,c;case Ue:return b=ye(b,a.internalContextTag,c),b[\"return\"]=a,b}if(Ye(b)||Xe(b))return b=ue(b,a.internalContextTag,c,null),b[\"return\"]=a,b;$e(a,b)}return null}function G(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case Re:return c.key===e?c.type===Ve?u(a,b,c.props.children,d,e):k(a,b,c,d):null;case Se:return c.key===e?q(a,b,c,d):null;case Te:return null===\ne?v(a,b,c,d):null;case Ue:return c.key===e?y(a,b,c,d):null}if(Ye(c)||Xe(c))return null!==e?null:u(a,b,c,d,null);$e(a,c)}return null}function I(a,b,c,d,e){if(\"string\"===typeof d||\"number\"===typeof d)return a=a.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case Re:return a=a.get(null===d.key?c:d.key)||null,d.type===Ve?u(b,a,d.props.children,e,d.key):k(b,a,d,e);case Se:return a=a.get(null===d.key?c:d.key)||null,q(b,a,d,e);case Te:return a=a.get(c)||null,v(b,a,d,e);case Ue:return a=\na.get(null===d.key?c:d.key)||null,y(b,a,d,e)}if(Ye(d)||Xe(d))return a=a.get(c)||null,u(b,a,d,e,null);$e(b,d)}return null}function L(e,g,m,A){for(var h=null,r=null,n=g,w=g=0,k=null;null!==n&&w<m.length;w++){n.index>w?(k=n,n=null):k=n.sibling;var x=G(e,n,m[w],A);if(null===x){null===n&&(n=k);break}a&&n&&null===x.alternate&&b(e,n);g=f(x,g,w);null===r?h=x:r.sibling=x;r=x;n=k}if(w===m.length)return c(e,n),h;if(null===n){for(;w<m.length;w++)if(n=z(e,m[w],A))g=f(n,g,w),null===r?h=n:r.sibling=n,r=n;return h}for(n=\nd(e,n);w<m.length;w++)if(k=I(n,e,w,m[w],A)){if(a&&null!==k.alternate)n[\"delete\"](null===k.key?w:k.key);g=f(k,g,w);null===r?h=k:r.sibling=k;r=k}a&&n.forEach(function(a){return b(e,a)});return h}function N(e,g,m,A){var h=Xe(m);\"function\"!==typeof h?E(\"150\"):void 0;m=h.call(m);null==m?E(\"151\"):void 0;for(var r=h=null,n=g,w=g=0,k=null,x=m.next();null!==n&&!x.done;w++,x=m.next()){n.index>w?(k=n,n=null):k=n.sibling;var J=G(e,n,x.value,A);if(null===J){n||(n=k);break}a&&n&&null===J.alternate&&b(e,n);g=f(J,\ng,w);null===r?h=J:r.sibling=J;r=J;n=k}if(x.done)return c(e,n),h;if(null===n){for(;!x.done;w++,x=m.next())x=z(e,x.value,A),null!==x&&(g=f(x,g,w),null===r?h=x:r.sibling=x,r=x);return h}for(n=d(e,n);!x.done;w++,x=m.next())if(x=I(n,e,w,x.value,A),null!==x){if(a&&null!==x.alternate)n[\"delete\"](null===x.key?w:x.key);g=f(x,g,w);null===r?h=x:r.sibling=x;r=x}a&&n.forEach(function(a){return b(e,a)});return h}return function(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===Ve&&null===f.key&&(f=f.props.children);\nvar m=\"object\"===typeof f&&null!==f;if(m)switch(f.$$typeof){case Re:a:{var r=f.key;for(m=d;null!==m;){if(m.key===r)if(10===m.tag?f.type===Ve:m.type===f.type){c(a,m.sibling);d=e(m,f.type===Ve?f.props.children:f.props,h);d.ref=Ze(m,f);d[\"return\"]=a;a=d;break a}else{c(a,m);break}else b(a,m);m=m.sibling}f.type===Ve?(d=ue(f.props.children,a.internalContextTag,h,f.key),d[\"return\"]=a,a=d):(h=te(f,a.internalContextTag,h),h.ref=Ze(d,f),h[\"return\"]=a,a=h)}return g(a);case Se:a:{for(m=f.key;null!==d;){if(d.key===\nm)if(7===d.tag){c(a,d.sibling);d=e(d,f,h);d[\"return\"]=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=we(f,a.internalContextTag,h);d[\"return\"]=a;a=d}return g(a);case Te:a:{if(null!==d)if(9===d.tag){c(a,d.sibling);d=e(d,null,h);d.type=f.value;d[\"return\"]=a;a=d;break a}else c(a,d);d=xe(f,a.internalContextTag,h);d.type=f.value;d[\"return\"]=a;a=d}return g(a);case Ue:a:{for(m=f.key;null!==d;){if(d.key===m)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===\nf.implementation){c(a,d.sibling);d=e(d,f.children||[],h);d[\"return\"]=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=ye(f,a.internalContextTag,h);d[\"return\"]=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f,h)):(c(a,d),d=ve(f,a.internalContextTag,h)),d[\"return\"]=a,a=d,g(a);if(Ye(f))return L(a,d,f,h);if(Xe(f))return N(a,d,f,h);m&&$e(a,f);if(\"undefined\"===typeof f)switch(a.tag){case 2:case 1:h=a.type,E(\"152\",h.displayName||\nh.name||\"Component\")}return c(a,d)}}var bf=af(!0),cf=af(!1);\nfunction df(a,b,c,d,e){function f(a,b,c){var d=b.expirationTime;b.child=null===a?cf(b,null,c,d):bf(b,a.child,c,d)}function g(a,b){var c=b.ref;null===c||a&&a.ref===c||(b.effectTag|=128)}function h(a,b,c,d){g(a,b);if(!c)return d&&re(b,!1),q(a,b);c=b.stateNode;id.current=b;var e=c.render();b.effectTag|=1;f(a,b,e);b.memoizedState=c.state;b.memoizedProps=c.props;d&&re(b,!0);return b.child}function k(a){var b=a.stateNode;b.pendingContext?oe(a,b.pendingContext,b.pendingContext!==b.context):b.context&&oe(a,\nb.context,!1);I(a,b.containerInfo)}function q(a,b){null!==a&&b.child!==a.child?E(\"153\"):void 0;if(null!==b.child){a=b.child;var c=se(a,a.pendingProps,a.expirationTime);b.child=c;for(c[\"return\"]=b;null!==a.sibling;)a=a.sibling,c=c.sibling=se(a,a.pendingProps,a.expirationTime),c[\"return\"]=b;c.sibling=null}return b.child}function v(a,b){switch(b.tag){case 3:k(b);break;case 2:qe(b);break;case 4:I(b,b.stateNode.containerInfo)}return null}var y=a.shouldSetTextContent,u=a.useSyncScheduling,z=a.shouldDeprioritizeSubtree,\nG=b.pushHostContext,I=b.pushHostContainer,L=c.enterHydrationState,N=c.resetHydrationState,J=c.tryToClaimNextHydratableInstance;a=Le(d,e,function(a,b){a.memoizedProps=b},function(a,b){a.memoizedState=b});var w=a.adoptClassInstance,m=a.constructClassInstance,A=a.mountClassInstance,Ob=a.updateClassInstance;return{beginWork:function(a,b,c){if(0===b.expirationTime||b.expirationTime>c)return v(a,b);switch(b.tag){case 0:null!==a?E(\"155\"):void 0;var d=b.type,e=b.pendingProps,r=ke(b);r=me(b,r);d=d(e,r);b.effectTag|=\n1;\"object\"===typeof d&&null!==d&&\"function\"===typeof d.render?(b.tag=2,e=qe(b),w(b,d),A(b,c),b=h(a,b,!0,e)):(b.tag=1,f(a,b,d),b.memoizedProps=e,b=b.child);return b;case 1:a:{e=b.type;c=b.pendingProps;d=b.memoizedProps;if(X.current)null===c&&(c=d);else if(null===c||d===c){b=q(a,b);break a}d=ke(b);d=me(b,d);e=e(c,d);b.effectTag|=1;f(a,b,e);b.memoizedProps=c;b=b.child}return b;case 2:return e=qe(b),d=void 0,null===a?b.stateNode?E(\"153\"):(m(b,b.pendingProps),A(b,c),d=!0):d=Ob(a,b,c),h(a,b,d,e);case 3:return k(b),\ne=b.updateQueue,null!==e?(d=b.memoizedState,e=Je(a,b,e,null,null,c),d===e?(N(),b=q(a,b)):(d=e.element,r=b.stateNode,(null===a||null===a.child)&&r.hydrate&&L(b)?(b.effectTag|=2,b.child=cf(b,null,d,c)):(N(),f(a,b,d)),b.memoizedState=e,b=b.child)):(N(),b=q(a,b)),b;case 5:G(b);null===a&&J(b);e=b.type;var n=b.memoizedProps;d=b.pendingProps;null===d&&(d=n,null===d?E(\"154\"):void 0);r=null!==a?a.memoizedProps:null;X.current||null!==d&&n!==d?(n=d.children,y(e,d)?n=null:r&&y(e,r)&&(b.effectTag|=16),g(a,b),\n2147483647!==c&&!u&&z(e,d)?(b.expirationTime=2147483647,b=null):(f(a,b,n),b.memoizedProps=d,b=b.child)):b=q(a,b);return b;case 6:return null===a&&J(b),a=b.pendingProps,null===a&&(a=b.memoizedProps),b.memoizedProps=a,null;case 8:b.tag=7;case 7:e=b.pendingProps;if(X.current)null===e&&(e=a&&a.memoizedProps,null===e?E(\"154\"):void 0);else if(null===e||b.memoizedProps===e)e=b.memoizedProps;d=e.children;b.stateNode=null===a?cf(b,b.stateNode,d,c):bf(b,b.stateNode,d,c);b.memoizedProps=e;return b.stateNode;\ncase 9:return null;case 4:a:{I(b,b.stateNode.containerInfo);e=b.pendingProps;if(X.current)null===e&&(e=a&&a.memoizedProps,null==e?E(\"154\"):void 0);else if(null===e||b.memoizedProps===e){b=q(a,b);break a}null===a?b.child=bf(b,null,e,c):f(a,b,e);b.memoizedProps=e;b=b.child}return b;case 10:a:{c=b.pendingProps;if(X.current)null===c&&(c=b.memoizedProps);else if(null===c||b.memoizedProps===c){b=q(a,b);break a}f(a,b,c);b.memoizedProps=c;b=b.child}return b;default:E(\"156\")}},beginFailedWork:function(a,b,\nc){switch(b.tag){case 2:qe(b);break;case 3:k(b);break;default:E(\"157\")}b.effectTag|=64;null===a?b.child=null:b.child!==a.child&&(b.child=a.child);if(0===b.expirationTime||b.expirationTime>c)return v(a,b);b.firstEffect=null;b.lastEffect=null;b.child=null===a?cf(b,null,null,c):bf(b,a.child,null,c);2===b.tag&&(a=b.stateNode,b.memoizedProps=a.props,b.memoizedState=a.state);return b.child}}}\nfunction ef(a,b,c){function d(a){a.effectTag|=4}var e=a.createInstance,f=a.createTextInstance,g=a.appendInitialChild,h=a.finalizeInitialChildren,k=a.prepareUpdate,q=a.persistence,v=b.getRootHostContainer,y=b.popHostContext,u=b.getHostContext,z=b.popHostContainer,G=c.prepareToHydrateHostInstance,I=c.prepareToHydrateHostTextInstance,L=c.popHydrationState,N=void 0,J=void 0,w=void 0;a.mutation?(N=function(){},J=function(a,b,c){(b.updateQueue=c)&&d(b)},w=function(a,b,c,e){c!==e&&d(b)}):q?E(\"235\"):E(\"236\");\nreturn{completeWork:function(a,b,c){var m=b.pendingProps;if(null===m)m=b.memoizedProps;else if(2147483647!==b.expirationTime||2147483647===c)b.pendingProps=null;switch(b.tag){case 1:return null;case 2:return ne(b),null;case 3:z(b);V(X,b);V(ie,b);m=b.stateNode;m.pendingContext&&(m.context=m.pendingContext,m.pendingContext=null);if(null===a||null===a.child)L(b),b.effectTag&=-3;N(b);return null;case 5:y(b);c=v();var A=b.type;if(null!==a&&null!=b.stateNode){var p=a.memoizedProps,q=b.stateNode,x=u();q=\nk(q,A,p,m,c,x);J(a,b,q,A,p,m,c);a.ref!==b.ref&&(b.effectTag|=128)}else{if(!m)return null===b.stateNode?E(\"166\"):void 0,null;a=u();if(L(b))G(b,c,a)&&d(b);else{a=e(A,m,c,a,b);a:for(p=b.child;null!==p;){if(5===p.tag||6===p.tag)g(a,p.stateNode);else if(4!==p.tag&&null!==p.child){p.child[\"return\"]=p;p=p.child;continue}if(p===b)break;for(;null===p.sibling;){if(null===p[\"return\"]||p[\"return\"]===b)break a;p=p[\"return\"]}p.sibling[\"return\"]=p[\"return\"];p=p.sibling}h(a,A,m,c)&&d(b);b.stateNode=a}null!==b.ref&&\n(b.effectTag|=128)}return null;case 6:if(a&&null!=b.stateNode)w(a,b,a.memoizedProps,m);else{if(\"string\"!==typeof m)return null===b.stateNode?E(\"166\"):void 0,null;a=v();c=u();L(b)?I(b)&&d(b):b.stateNode=f(m,a,c,b)}return null;case 7:(m=b.memoizedProps)?void 0:E(\"165\");b.tag=8;A=[];a:for((p=b.stateNode)&&(p[\"return\"]=b);null!==p;){if(5===p.tag||6===p.tag||4===p.tag)E(\"247\");else if(9===p.tag)A.push(p.type);else if(null!==p.child){p.child[\"return\"]=p;p=p.child;continue}for(;null===p.sibling;){if(null===\np[\"return\"]||p[\"return\"]===b)break a;p=p[\"return\"]}p.sibling[\"return\"]=p[\"return\"];p=p.sibling}p=m.handler;m=p(m.props,A);b.child=bf(b,null!==a?a.child:null,m,c);return b.child;case 8:return b.tag=7,null;case 9:return null;case 10:return null;case 4:return z(b),N(b),null;case 0:E(\"167\");default:E(\"156\")}}}}\nfunction ff(a,b){function c(a){var c=a.ref;if(null!==c)try{c(null)}catch(A){b(a,A)}}function d(a){\"function\"===typeof Ee&&Ee(a);switch(a.tag){case 2:c(a);var d=a.stateNode;if(\"function\"===typeof d.componentWillUnmount)try{d.props=a.memoizedProps,d.state=a.memoizedState,d.componentWillUnmount()}catch(A){b(a,A)}break;case 5:c(a);break;case 7:e(a.stateNode);break;case 4:k&&g(a)}}function e(a){for(var b=a;;)if(d(b),null===b.child||k&&4===b.tag){if(b===a)break;for(;null===b.sibling;){if(null===b[\"return\"]||\nb[\"return\"]===a)return;b=b[\"return\"]}b.sibling[\"return\"]=b[\"return\"];b=b.sibling}else b.child[\"return\"]=b,b=b.child}function f(a){return 5===a.tag||3===a.tag||4===a.tag}function g(a){for(var b=a,c=!1,f=void 0,g=void 0;;){if(!c){c=b[\"return\"];a:for(;;){null===c?E(\"160\"):void 0;switch(c.tag){case 5:f=c.stateNode;g=!1;break a;case 3:f=c.stateNode.containerInfo;g=!0;break a;case 4:f=c.stateNode.containerInfo;g=!0;break a}c=c[\"return\"]}c=!0}if(5===b.tag||6===b.tag)e(b),g?J(f,b.stateNode):N(f,b.stateNode);\nelse if(4===b.tag?f=b.stateNode.containerInfo:d(b),null!==b.child){b.child[\"return\"]=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b[\"return\"]||b[\"return\"]===a)return;b=b[\"return\"];4===b.tag&&(c=!1)}b.sibling[\"return\"]=b[\"return\"];b=b.sibling}}var h=a.getPublicInstance,k=a.mutation;a=a.persistence;k||(a?E(\"235\"):E(\"236\"));var q=k.commitMount,v=k.commitUpdate,y=k.resetTextContent,u=k.commitTextUpdate,z=k.appendChild,G=k.appendChildToContainer,I=k.insertBefore,L=k.insertInContainerBefore,\nN=k.removeChild,J=k.removeChildFromContainer;return{commitResetTextContent:function(a){y(a.stateNode)},commitPlacement:function(a){a:{for(var b=a[\"return\"];null!==b;){if(f(b)){var c=b;break a}b=b[\"return\"]}E(\"160\");c=void 0}var d=b=void 0;switch(c.tag){case 5:b=c.stateNode;d=!1;break;case 3:b=c.stateNode.containerInfo;d=!0;break;case 4:b=c.stateNode.containerInfo;d=!0;break;default:E(\"161\")}c.effectTag&16&&(y(b),c.effectTag&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c[\"return\"]||f(c[\"return\"])){c=\nnull;break a}c=c[\"return\"]}c.sibling[\"return\"]=c[\"return\"];for(c=c.sibling;5!==c.tag&&6!==c.tag;){if(c.effectTag&2)continue b;if(null===c.child||4===c.tag)continue b;else c.child[\"return\"]=c,c=c.child}if(!(c.effectTag&2)){c=c.stateNode;break a}}for(var e=a;;){if(5===e.tag||6===e.tag)c?d?L(b,e.stateNode,c):I(b,e.stateNode,c):d?G(b,e.stateNode):z(b,e.stateNode);else if(4!==e.tag&&null!==e.child){e.child[\"return\"]=e;e=e.child;continue}if(e===a)break;for(;null===e.sibling;){if(null===e[\"return\"]||e[\"return\"]===\na)return;e=e[\"return\"]}e.sibling[\"return\"]=e[\"return\"];e=e.sibling}},commitDeletion:function(a){g(a);a[\"return\"]=null;a.child=null;a.alternate&&(a.alternate.child=null,a.alternate[\"return\"]=null)},commitWork:function(a,b){switch(b.tag){case 2:break;case 5:var c=b.stateNode;if(null!=c){var d=b.memoizedProps;a=null!==a?a.memoizedProps:d;var e=b.type,f=b.updateQueue;b.updateQueue=null;null!==f&&v(c,f,e,a,d,b)}break;case 6:null===b.stateNode?E(\"162\"):void 0;c=b.memoizedProps;u(b.stateNode,null!==a?a.memoizedProps:\nc,c);break;case 3:break;default:E(\"163\")}},commitLifeCycles:function(a,b){switch(b.tag){case 2:var c=b.stateNode;if(b.effectTag&4)if(null===a)c.props=b.memoizedProps,c.state=b.memoizedState,c.componentDidMount();else{var d=a.memoizedProps;a=a.memoizedState;c.props=b.memoizedProps;c.state=b.memoizedState;c.componentDidUpdate(d,a)}b=b.updateQueue;null!==b&&Ke(b,c);break;case 3:c=b.updateQueue;null!==c&&Ke(c,null!==b.child?b.child.stateNode:null);break;case 5:c=b.stateNode;null===a&&b.effectTag&4&&q(c,\nb.type,b.memoizedProps,b);break;case 6:break;case 4:break;default:E(\"163\")}},commitAttachRef:function(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:b(h(c));break;default:b(c)}}},commitDetachRef:function(a){a=a.ref;null!==a&&a(null)}}}var gf={};\nfunction hf(a){function b(a){a===gf?E(\"174\"):void 0;return a}var c=a.getChildHostContext,d=a.getRootHostContext,e={current:gf},f={current:gf},g={current:gf};return{getHostContext:function(){return b(e.current)},getRootHostContainer:function(){return b(g.current)},popHostContainer:function(a){V(e,a);V(f,a);V(g,a)},popHostContext:function(a){f.current===a&&(V(e,a),V(f,a))},pushHostContainer:function(a,b){W(g,b,a);b=d(b);W(f,a,a);W(e,b,a)},pushHostContext:function(a){var d=b(g.current),h=b(e.current);\nd=c(h,a.type,d);h!==d&&(W(f,a,a),W(e,d,a))},resetHostContainer:function(){e.current=gf;g.current=gf}}}\nfunction jf(a){function b(a,b){var c=new Y(5,null,0);c.type=\"DELETED\";c.stateNode=b;c[\"return\"]=a;c.effectTag=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function c(a,b){switch(a.tag){case 5:return b=f(b,a.type,a.pendingProps),null!==b?(a.stateNode=b,!0):!1;case 6:return b=g(b,a.pendingProps),null!==b?(a.stateNode=b,!0):!1;default:return!1}}function d(a){for(a=a[\"return\"];null!==a&&5!==a.tag&&3!==a.tag;)a=a[\"return\"];y=a}var e=a.shouldSetTextContent;\na=a.hydration;if(!a)return{enterHydrationState:function(){return!1},resetHydrationState:function(){},tryToClaimNextHydratableInstance:function(){},prepareToHydrateHostInstance:function(){E(\"175\")},prepareToHydrateHostTextInstance:function(){E(\"176\")},popHydrationState:function(){return!1}};var f=a.canHydrateInstance,g=a.canHydrateTextInstance,h=a.getNextHydratableSibling,k=a.getFirstHydratableChild,q=a.hydrateInstance,v=a.hydrateTextInstance,y=null,u=null,z=!1;return{enterHydrationState:function(a){u=\nk(a.stateNode.containerInfo);y=a;return z=!0},resetHydrationState:function(){u=y=null;z=!1},tryToClaimNextHydratableInstance:function(a){if(z){var d=u;if(d){if(!c(a,d)){d=h(d);if(!d||!c(a,d)){a.effectTag|=2;z=!1;y=a;return}b(y,u)}y=a;u=k(d)}else a.effectTag|=2,z=!1,y=a}},prepareToHydrateHostInstance:function(a,b,c){b=q(a.stateNode,a.type,a.memoizedProps,b,c,a);a.updateQueue=b;return null!==b?!0:!1},prepareToHydrateHostTextInstance:function(a){return v(a.stateNode,a.memoizedProps,a)},popHydrationState:function(a){if(a!==\ny)return!1;if(!z)return d(a),z=!0,!1;var c=a.type;if(5!==a.tag||\"head\"!==c&&\"body\"!==c&&!e(c,a.memoizedProps))for(c=u;c;)b(a,c),c=h(c);d(a);u=y?h(a.stateNode):null;return!0}}}\nfunction kf(a){function b(a){Qb=ja=!0;var b=a.stateNode;b.current===a?E(\"177\"):void 0;b.isReadyForCommit=!1;id.current=null;if(1<a.effectTag)if(null!==a.lastEffect){a.lastEffect.nextEffect=a;var c=a.firstEffect}else c=a;else c=a.firstEffect;yg();for(t=c;null!==t;){var d=!1,e=void 0;try{for(;null!==t;){var f=t.effectTag;f&16&&zg(t);if(f&128){var g=t.alternate;null!==g&&Ag(g)}switch(f&-242){case 2:Ne(t);t.effectTag&=-3;break;case 6:Ne(t);t.effectTag&=-3;Oe(t.alternate,t);break;case 4:Oe(t.alternate,\nt);break;case 8:Sc=!0,Bg(t),Sc=!1}t=t.nextEffect}}catch(Tc){d=!0,e=Tc}d&&(null===t?E(\"178\"):void 0,h(t,e),null!==t&&(t=t.nextEffect))}Cg();b.current=a;for(t=c;null!==t;){c=!1;d=void 0;try{for(;null!==t;){var k=t.effectTag;k&36&&Dg(t.alternate,t);k&128&&Eg(t);if(k&64)switch(e=t,f=void 0,null!==R&&(f=R.get(e),R[\"delete\"](e),null==f&&null!==e.alternate&&(e=e.alternate,f=R.get(e),R[\"delete\"](e))),null==f?E(\"184\"):void 0,e.tag){case 2:e.stateNode.componentDidCatch(f.error,{componentStack:f.componentStack});\nbreak;case 3:null===ca&&(ca=f.error);break;default:E(\"157\")}var Qc=t.nextEffect;t.nextEffect=null;t=Qc}}catch(Tc){c=!0,d=Tc}c&&(null===t?E(\"178\"):void 0,h(t,d),null!==t&&(t=t.nextEffect))}ja=Qb=!1;\"function\"===typeof De&&De(a.stateNode);ha&&(ha.forEach(G),ha=null);null!==ca&&(a=ca,ca=null,Ob(a));b=b.current.expirationTime;0===b&&(qa=R=null);return b}function c(a){for(;;){var b=Fg(a.alternate,a,H),c=a[\"return\"],d=a.sibling;var e=a;if(2147483647===H||2147483647!==e.expirationTime){if(2!==e.tag&&3!==\ne.tag)var f=0;else f=e.updateQueue,f=null===f?0:f.expirationTime;for(var g=e.child;null!==g;)0!==g.expirationTime&&(0===f||f>g.expirationTime)&&(f=g.expirationTime),g=g.sibling;e.expirationTime=f}if(null!==b)return b;null!==c&&(null===c.firstEffect&&(c.firstEffect=a.firstEffect),null!==a.lastEffect&&(null!==c.lastEffect&&(c.lastEffect.nextEffect=a.firstEffect),c.lastEffect=a.lastEffect),1<a.effectTag&&(null!==c.lastEffect?c.lastEffect.nextEffect=a:c.firstEffect=a,c.lastEffect=a));if(null!==d)return d;\nif(null!==c)a=c;else{a.stateNode.isReadyForCommit=!0;break}}return null}function d(a){var b=rg(a.alternate,a,H);null===b&&(b=c(a));id.current=null;return b}function e(a){var b=Gg(a.alternate,a,H);null===b&&(b=c(a));id.current=null;return b}function f(a){if(null!==R){if(!(0===H||H>a))if(H<=Uc)for(;null!==F;)F=k(F)?e(F):d(F);else for(;null!==F&&!A();)F=k(F)?e(F):d(F)}else if(!(0===H||H>a))if(H<=Uc)for(;null!==F;)F=d(F);else for(;null!==F&&!A();)F=d(F)}function g(a,b){ja?E(\"243\"):void 0;ja=!0;a.isReadyForCommit=\n!1;if(a!==ra||b!==H||null===F){for(;-1<he;)ge[he]=null,he--;je=D;ie.current=D;X.current=!1;x();ra=a;H=b;F=se(ra.current,null,b)}var c=!1,d=null;try{f(b)}catch(Rc){c=!0,d=Rc}for(;c;){if(eb){ca=d;break}var g=F;if(null===g)eb=!0;else{var k=h(g,d);null===k?E(\"183\"):void 0;if(!eb){try{c=k;d=b;for(k=c;null!==g;){switch(g.tag){case 2:ne(g);break;case 5:qg(g);break;case 3:p(g);break;case 4:p(g)}if(g===k||g.alternate===k)break;g=g[\"return\"]}F=e(c);f(d)}catch(Rc){c=!0;d=Rc;continue}break}}}b=ca;eb=ja=!1;ca=\nnull;null!==b&&Ob(b);return a.isReadyForCommit?a.current.alternate:null}function h(a,b){var c=id.current=null,d=!1,e=!1,f=null;if(3===a.tag)c=a,q(a)&&(eb=!0);else for(var g=a[\"return\"];null!==g&&null===c;){2===g.tag?\"function\"===typeof g.stateNode.componentDidCatch&&(d=!0,f=jd(g),c=g,e=!0):3===g.tag&&(c=g);if(q(g)){if(Sc||null!==ha&&(ha.has(g)||null!==g.alternate&&ha.has(g.alternate)))return null;c=null;e=!1}g=g[\"return\"]}if(null!==c){null===qa&&(qa=new Set);qa.add(c);var h=\"\";g=a;do{a:switch(g.tag){case 0:case 1:case 2:case 5:var k=\ng._debugOwner,Qc=g._debugSource;var m=jd(g);var n=null;k&&(n=jd(k));k=Qc;m=\"\\n in \"+(m||\"Unknown\")+(k?\" (at \"+k.fileName.replace(/^.*[\\\\\\/]/,\"\")+\":\"+k.lineNumber+\")\":n?\" (created by \"+n+\")\":\"\");break a;default:m=\"\"}h+=m;g=g[\"return\"]}while(g);g=h;a=jd(a);null===R&&(R=new Map);b={componentName:a,componentStack:g,error:b,errorBoundary:d?c.stateNode:null,errorBoundaryFound:d,errorBoundaryName:f,willRetry:e};R.set(c,b);try{var p=b.error;p&&p.suppressReactErrorLogging||console.error(p)}catch(Vc){Vc&&\nVc.suppressReactErrorLogging||console.error(Vc)}Qb?(null===ha&&(ha=new Set),ha.add(c)):G(c);return c}null===ca&&(ca=b);return null}function k(a){return null!==R&&(R.has(a)||null!==a.alternate&&R.has(a.alternate))}function q(a){return null!==qa&&(qa.has(a)||null!==a.alternate&&qa.has(a.alternate))}function v(){return 20*(((I()+100)/20|0)+1)}function y(a){return 0!==ka?ka:ja?Qb?1:H:!Hg||a.internalContextTag&1?v():1}function u(a,b){return z(a,b,!1)}function z(a,b){for(;null!==a;){if(0===a.expirationTime||\na.expirationTime>b)a.expirationTime=b;null!==a.alternate&&(0===a.alternate.expirationTime||a.alternate.expirationTime>b)&&(a.alternate.expirationTime=b);if(null===a[\"return\"])if(3===a.tag){var c=a.stateNode;!ja&&c===ra&&b<H&&(F=ra=null,H=0);var d=c,e=b;Rb>Ig&&E(\"185\");if(null===d.nextScheduledRoot)d.remainingExpirationTime=e,null===O?(sa=O=d,d.nextScheduledRoot=d):(O=O.nextScheduledRoot=d,O.nextScheduledRoot=sa);else{var f=d.remainingExpirationTime;if(0===f||e<f)d.remainingExpirationTime=e}Fa||(la?\nSb&&(ma=d,na=1,m(ma,na)):1===e?w(1,null):L(e));!ja&&c===ra&&b<H&&(F=ra=null,H=0)}else break;a=a[\"return\"]}}function G(a){z(a,1,!0)}function I(){return Uc=((Wc()-Pe)/10|0)+2}function L(a){if(0!==Tb){if(a>Tb)return;Jg(Xc)}var b=Wc()-Pe;Tb=a;Xc=Kg(J,{timeout:10*(a-2)-b})}function N(){var a=0,b=null;if(null!==O)for(var c=O,d=sa;null!==d;){var e=d.remainingExpirationTime;if(0===e){null===c||null===O?E(\"244\"):void 0;if(d===d.nextScheduledRoot){sa=O=d.nextScheduledRoot=null;break}else if(d===sa)sa=e=d.nextScheduledRoot,\nO.nextScheduledRoot=e,d.nextScheduledRoot=null;else if(d===O){O=c;O.nextScheduledRoot=sa;d.nextScheduledRoot=null;break}else c.nextScheduledRoot=d.nextScheduledRoot,d.nextScheduledRoot=null;d=c.nextScheduledRoot}else{if(0===a||e<a)a=e,b=d;if(d===O)break;c=d;d=d.nextScheduledRoot}}c=ma;null!==c&&c===b?Rb++:Rb=0;ma=b;na=a}function J(a){w(0,a)}function w(a,b){fb=b;for(N();null!==ma&&0!==na&&(0===a||na<=a)&&!Yc;)m(ma,na),N();null!==fb&&(Tb=0,Xc=-1);0!==na&&L(na);fb=null;Yc=!1;Rb=0;if(Ub)throw a=Zc,Zc=\nnull,Ub=!1,a;}function m(a,c){Fa?E(\"245\"):void 0;Fa=!0;if(c<=I()){var d=a.finishedWork;null!==d?(a.finishedWork=null,a.remainingExpirationTime=b(d)):(a.finishedWork=null,d=g(a,c),null!==d&&(a.remainingExpirationTime=b(d)))}else d=a.finishedWork,null!==d?(a.finishedWork=null,a.remainingExpirationTime=b(d)):(a.finishedWork=null,d=g(a,c),null!==d&&(A()?a.finishedWork=d:a.remainingExpirationTime=b(d)));Fa=!1}function A(){return null===fb||fb.timeRemaining()>Lg?!1:Yc=!0}function Ob(a){null===ma?E(\"246\"):\nvoid 0;ma.remainingExpirationTime=0;Ub||(Ub=!0,Zc=a)}var r=hf(a),n=jf(a),p=r.popHostContainer,qg=r.popHostContext,x=r.resetHostContainer,Me=df(a,r,n,u,y),rg=Me.beginWork,Gg=Me.beginFailedWork,Fg=ef(a,r,n).completeWork;r=ff(a,h);var zg=r.commitResetTextContent,Ne=r.commitPlacement,Bg=r.commitDeletion,Oe=r.commitWork,Dg=r.commitLifeCycles,Eg=r.commitAttachRef,Ag=r.commitDetachRef,Wc=a.now,Kg=a.scheduleDeferredCallback,Jg=a.cancelDeferredCallback,Hg=a.useSyncScheduling,yg=a.prepareForCommit,Cg=a.resetAfterCommit,\nPe=Wc(),Uc=2,ka=0,ja=!1,F=null,ra=null,H=0,t=null,R=null,qa=null,ha=null,ca=null,eb=!1,Qb=!1,Sc=!1,sa=null,O=null,Tb=0,Xc=-1,Fa=!1,ma=null,na=0,Yc=!1,Ub=!1,Zc=null,fb=null,la=!1,Sb=!1,Ig=1E3,Rb=0,Lg=1;return{computeAsyncExpiration:v,computeExpirationForFiber:y,scheduleWork:u,batchedUpdates:function(a,b){var c=la;la=!0;try{return a(b)}finally{(la=c)||Fa||w(1,null)}},unbatchedUpdates:function(a){if(la&&!Sb){Sb=!0;try{return a()}finally{Sb=!1}}return a()},flushSync:function(a){var b=la;la=!0;try{a:{var c=\nka;ka=1;try{var d=a();break a}finally{ka=c}d=void 0}return d}finally{la=b,Fa?E(\"187\"):void 0,w(1,null)}},deferredUpdates:function(a){var b=ka;ka=v();try{return a()}finally{ka=b}}}}\nfunction lf(a){function b(a){a=od(a);return null===a?null:a.stateNode}var c=a.getPublicInstance;a=kf(a);var d=a.computeAsyncExpiration,e=a.computeExpirationForFiber,f=a.scheduleWork;return{createContainer:function(a,b){var c=new Y(3,null,0);a={current:c,containerInfo:a,pendingChildren:null,remainingExpirationTime:0,isReadyForCommit:!1,finishedWork:null,context:null,pendingContext:null,hydrate:b,nextScheduledRoot:null};return c.stateNode=a},updateContainer:function(a,b,c,q){var g=b.current;if(c){c=\nc._reactInternalFiber;var h;b:{2===kd(c)&&2===c.tag?void 0:E(\"170\");for(h=c;3!==h.tag;){if(le(h)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}(h=h[\"return\"])?void 0:E(\"171\")}h=h.stateNode.context}c=le(c)?pe(c,h):h}else c=D;null===b.context?b.context=c:b.pendingContext=c;b=q;b=void 0===b?null:b;q=null!=a&&null!=a.type&&null!=a.type.prototype&&!0===a.type.prototype.unstable_isAsyncReactComponent?d():e(g);He(g,{expirationTime:q,partialState:{element:a},callback:b,isReplace:!1,isForced:!1,\nnextCallback:null,next:null});f(g,q)},batchedUpdates:a.batchedUpdates,unbatchedUpdates:a.unbatchedUpdates,deferredUpdates:a.deferredUpdates,flushSync:a.flushSync,getPublicRootInstance:function(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return c(a.child.stateNode);default:return a.child.stateNode}},findHostInstance:b,findHostInstanceWithNoPortals:function(a){a=pd(a);return null===a?null:a.stateNode},injectIntoDevTools:function(a){var c=a.findFiberByHostInstance;return Ce(B({},\na,{findHostInstanceByFiber:function(a){return b(a)},findFiberByHostInstance:function(a){return c?c(a):null}}))}}}var mf=Object.freeze({default:lf}),nf=mf&&lf||mf,of=nf[\"default\"]?nf[\"default\"]:nf;function pf(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:Ue,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}var qf=\"object\"===typeof performance&&\"function\"===typeof performance.now,rf=void 0;rf=qf?function(){return performance.now()}:function(){return Date.now()};\nvar sf=void 0,tf=void 0;\nif(l.canUseDOM)if(\"function\"!==typeof requestIdleCallback||\"function\"!==typeof cancelIdleCallback){var uf=null,vf=!1,wf=-1,xf=!1,yf=0,zf=33,Af=33,Bf;Bf=qf?{didTimeout:!1,timeRemaining:function(){var a=yf-performance.now();return 0<a?a:0}}:{didTimeout:!1,timeRemaining:function(){var a=yf-Date.now();return 0<a?a:0}};var Cf=\"__reactIdleCallback$\"+Math.random().toString(36).slice(2);window.addEventListener(\"message\",function(a){if(a.source===window&&a.data===Cf){vf=!1;a=rf();if(0>=yf-a)if(-1!==wf&&wf<=\na)Bf.didTimeout=!0;else{xf||(xf=!0,requestAnimationFrame(Df));return}else Bf.didTimeout=!1;wf=-1;a=uf;uf=null;null!==a&&a(Bf)}},!1);var Df=function(a){xf=!1;var b=a-yf+Af;b<Af&&zf<Af?(8>b&&(b=8),Af=b<zf?zf:b):zf=b;yf=a+Af;vf||(vf=!0,window.postMessage(Cf,\"*\"))};sf=function(a,b){uf=a;null!=b&&\"number\"===typeof b.timeout&&(wf=rf()+b.timeout);xf||(xf=!0,requestAnimationFrame(Df));return 0};tf=function(){uf=null;vf=!1;wf=-1}}else sf=window.requestIdleCallback,tf=window.cancelIdleCallback;else sf=function(a){return setTimeout(function(){a({timeRemaining:function(){return Infinity}})})},\ntf=function(a){clearTimeout(a)};var Ef=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,Ff={},Gf={};\nfunction Hf(a){if(Gf.hasOwnProperty(a))return!0;if(Ff.hasOwnProperty(a))return!1;if(Ef.test(a))return Gf[a]=!0;Ff[a]=!0;return!1}\nfunction If(a,b,c){var d=wa(b);if(d&&va(b,c)){var e=d.mutationMethod;e?e(a,c):null==c||d.hasBooleanValue&&!c||d.hasNumericValue&&isNaN(c)||d.hasPositiveNumericValue&&1>c||d.hasOverloadedBooleanValue&&!1===c?Jf(a,b):d.mustUseProperty?a[d.propertyName]=c:(b=d.attributeName,(e=d.attributeNamespace)?a.setAttributeNS(e,b,\"\"+c):d.hasBooleanValue||d.hasOverloadedBooleanValue&&!0===c?a.setAttribute(b,\"\"):a.setAttribute(b,\"\"+c))}else Kf(a,b,va(b,c)?c:null)}\nfunction Kf(a,b,c){Hf(b)&&(null==c?a.removeAttribute(b):a.setAttribute(b,\"\"+c))}function Jf(a,b){var c=wa(b);c?(b=c.mutationMethod)?b(a,void 0):c.mustUseProperty?a[c.propertyName]=c.hasBooleanValue?!1:\"\":a.removeAttribute(c.attributeName):a.removeAttribute(b)}\nfunction Lf(a,b){var c=b.value,d=b.checked;return B({type:void 0,step:void 0,min:void 0,max:void 0},b,{defaultChecked:void 0,defaultValue:void 0,value:null!=c?c:a._wrapperState.initialValue,checked:null!=d?d:a._wrapperState.initialChecked})}function Mf(a,b){var c=b.defaultValue;a._wrapperState={initialChecked:null!=b.checked?b.checked:b.defaultChecked,initialValue:null!=b.value?b.value:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}\nfunction Nf(a,b){b=b.checked;null!=b&&If(a,\"checked\",b)}function Of(a,b){Nf(a,b);var c=b.value;if(null!=c)if(0===c&&\"\"===a.value)a.value=\"0\";else if(\"number\"===b.type){if(b=parseFloat(a.value)||0,c!=b||c==b&&a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else null==b.value&&null!=b.defaultValue&&a.defaultValue!==\"\"+b.defaultValue&&(a.defaultValue=\"\"+b.defaultValue),null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction Pf(a,b){switch(b.type){case \"submit\":case \"reset\":break;case \"color\":case \"date\":case \"datetime\":case \"datetime-local\":case \"month\":case \"time\":case \"week\":a.value=\"\";a.value=a.defaultValue;break;default:a.value=a.value}b=a.name;\"\"!==b&&(a.name=\"\");a.defaultChecked=!a.defaultChecked;a.defaultChecked=!a.defaultChecked;\"\"!==b&&(a.name=b)}function Qf(a){var b=\"\";aa.Children.forEach(a,function(a){null==a||\"string\"!==typeof a&&\"number\"!==typeof a||(b+=a)});return b}\nfunction Rf(a,b){a=B({children:void 0},b);if(b=Qf(b.children))a.children=b;return a}function Sf(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+c;b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction Tf(a,b){var c=b.value;a._wrapperState={initialValue:null!=c?c:b.defaultValue,wasMultiple:!!b.multiple}}function Uf(a,b){null!=b.dangerouslySetInnerHTML?E(\"91\"):void 0;return B({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function Vf(a,b){var c=b.value;null==c&&(c=b.defaultValue,b=b.children,null!=b&&(null!=c?E(\"92\"):void 0,Array.isArray(b)&&(1>=b.length?void 0:E(\"93\"),b=b[0]),c=\"\"+b),null==c&&(c=\"\"));a._wrapperState={initialValue:\"\"+c}}\nfunction Wf(a,b){var c=b.value;null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&(a.defaultValue=c));null!=b.defaultValue&&(a.defaultValue=b.defaultValue)}function Xf(a){var b=a.textContent;b===a._wrapperState.initialValue&&(a.value=b)}var Yf={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Zf(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function $f(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?Zf(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar ag=void 0,bg=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Yf.svg||\"innerHTML\"in a)a.innerHTML=b;else{ag=ag||document.createElement(\"div\");ag.innerHTML=\"\\x3csvg\\x3e\"+b+\"\\x3c/svg\\x3e\";for(b=ag.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction cg(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar dg={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,\nstopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},eg=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(dg).forEach(function(a){eg.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);dg[b]=dg[a]})});\nfunction fg(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\");var e=c;var f=b[c];e=null==f||\"boolean\"===typeof f||\"\"===f?\"\":d||\"number\"!==typeof f||0===f||dg.hasOwnProperty(e)&&dg[e]?(\"\"+f).trim():f+\"px\";\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var gg=B({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction hg(a,b,c){b&&(gg[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML?E(\"137\",a,c()):void 0),null!=b.dangerouslySetInnerHTML&&(null!=b.children?E(\"60\"):void 0,\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML?void 0:E(\"61\")),null!=b.style&&\"object\"!==typeof b.style?E(\"62\",c()):void 0)}\nfunction ig(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var jg=Yf.html,kg=C.thatReturns(\"\");\nfunction lg(a,b){a=9===a.nodeType||11===a.nodeType?a:a.ownerDocument;var c=Hd(a);b=Sa[b];for(var d=0;d<b.length;d++){var e=b[d];c.hasOwnProperty(e)&&c[e]||(\"topScroll\"===e?wd(\"topScroll\",\"scroll\",a):\"topFocus\"===e||\"topBlur\"===e?(wd(\"topFocus\",\"focus\",a),wd(\"topBlur\",\"blur\",a),c.topBlur=!0,c.topFocus=!0):\"topCancel\"===e?(yc(\"cancel\",!0)&&wd(\"topCancel\",\"cancel\",a),c.topCancel=!0):\"topClose\"===e?(yc(\"close\",!0)&&wd(\"topClose\",\"close\",a),c.topClose=!0):Dd.hasOwnProperty(e)&&U(e,Dd[e],a),c[e]=!0)}}\nvar mg={topAbort:\"abort\",topCanPlay:\"canplay\",topCanPlayThrough:\"canplaythrough\",topDurationChange:\"durationchange\",topEmptied:\"emptied\",topEncrypted:\"encrypted\",topEnded:\"ended\",topError:\"error\",topLoadedData:\"loadeddata\",topLoadedMetadata:\"loadedmetadata\",topLoadStart:\"loadstart\",topPause:\"pause\",topPlay:\"play\",topPlaying:\"playing\",topProgress:\"progress\",topRateChange:\"ratechange\",topSeeked:\"seeked\",topSeeking:\"seeking\",topStalled:\"stalled\",topSuspend:\"suspend\",topTimeUpdate:\"timeupdate\",topVolumeChange:\"volumechange\",\ntopWaiting:\"waiting\"};function ng(a,b,c,d){c=9===c.nodeType?c:c.ownerDocument;d===jg&&(d=Zf(a));d===jg?\"script\"===a?(a=c.createElement(\"div\"),a.innerHTML=\"\\x3cscript\\x3e\\x3c/script\\x3e\",a=a.removeChild(a.firstChild)):a=\"string\"===typeof b.is?c.createElement(a,{is:b.is}):c.createElement(a):a=c.createElementNS(d,a);return a}function og(a,b){return(9===b.nodeType?b:b.ownerDocument).createTextNode(a)}\nfunction pg(a,b,c,d){var e=ig(b,c);switch(b){case \"iframe\":case \"object\":U(\"topLoad\",\"load\",a);var f=c;break;case \"video\":case \"audio\":for(f in mg)mg.hasOwnProperty(f)&&U(f,mg[f],a);f=c;break;case \"source\":U(\"topError\",\"error\",a);f=c;break;case \"img\":case \"image\":U(\"topError\",\"error\",a);U(\"topLoad\",\"load\",a);f=c;break;case \"form\":U(\"topReset\",\"reset\",a);U(\"topSubmit\",\"submit\",a);f=c;break;case \"details\":U(\"topToggle\",\"toggle\",a);f=c;break;case \"input\":Mf(a,c);f=Lf(a,c);U(\"topInvalid\",\"invalid\",a);\nlg(d,\"onChange\");break;case \"option\":f=Rf(a,c);break;case \"select\":Tf(a,c);f=B({},c,{value:void 0});U(\"topInvalid\",\"invalid\",a);lg(d,\"onChange\");break;case \"textarea\":Vf(a,c);f=Uf(a,c);U(\"topInvalid\",\"invalid\",a);lg(d,\"onChange\");break;default:f=c}hg(b,f,kg);var g=f,h;for(h in g)if(g.hasOwnProperty(h)){var k=g[h];\"style\"===h?fg(a,k,kg):\"dangerouslySetInnerHTML\"===h?(k=k?k.__html:void 0,null!=k&&bg(a,k)):\"children\"===h?\"string\"===typeof k?(\"textarea\"!==b||\"\"!==k)&&cg(a,k):\"number\"===typeof k&&cg(a,\n\"\"+k):\"suppressContentEditableWarning\"!==h&&\"suppressHydrationWarning\"!==h&&\"autoFocus\"!==h&&(Ra.hasOwnProperty(h)?null!=k&&lg(d,h):e?Kf(a,h,k):null!=k&&If(a,h,k))}switch(b){case \"input\":Bc(a);Pf(a,c);break;case \"textarea\":Bc(a);Xf(a,c);break;case \"option\":null!=c.value&&a.setAttribute(\"value\",c.value);break;case \"select\":a.multiple=!!c.multiple;b=c.value;null!=b?Sf(a,!!c.multiple,b,!1):null!=c.defaultValue&&Sf(a,!!c.multiple,c.defaultValue,!0);break;default:\"function\"===typeof f.onClick&&(a.onclick=\nC)}}\nfunction sg(a,b,c,d,e){var f=null;switch(b){case \"input\":c=Lf(a,c);d=Lf(a,d);f=[];break;case \"option\":c=Rf(a,c);d=Rf(a,d);f=[];break;case \"select\":c=B({},c,{value:void 0});d=B({},d,{value:void 0});f=[];break;case \"textarea\":c=Uf(a,c);d=Uf(a,d);f=[];break;default:\"function\"!==typeof c.onClick&&\"function\"===typeof d.onClick&&(a.onclick=C)}hg(b,d,kg);var g,h;a=null;for(g in c)if(!d.hasOwnProperty(g)&&c.hasOwnProperty(g)&&null!=c[g])if(\"style\"===g)for(h in b=c[g],b)b.hasOwnProperty(h)&&(a||(a={}),a[h]=\n\"\");else\"dangerouslySetInnerHTML\"!==g&&\"children\"!==g&&\"suppressContentEditableWarning\"!==g&&\"suppressHydrationWarning\"!==g&&\"autoFocus\"!==g&&(Ra.hasOwnProperty(g)?f||(f=[]):(f=f||[]).push(g,null));for(g in d){var k=d[g];b=null!=c?c[g]:void 0;if(d.hasOwnProperty(g)&&k!==b&&(null!=k||null!=b))if(\"style\"===g)if(b){for(h in b)!b.hasOwnProperty(h)||k&&k.hasOwnProperty(h)||(a||(a={}),a[h]=\"\");for(h in k)k.hasOwnProperty(h)&&b[h]!==k[h]&&(a||(a={}),a[h]=k[h])}else a||(f||(f=[]),f.push(g,a)),a=k;else\"dangerouslySetInnerHTML\"===\ng?(k=k?k.__html:void 0,b=b?b.__html:void 0,null!=k&&b!==k&&(f=f||[]).push(g,\"\"+k)):\"children\"===g?b===k||\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(g,\"\"+k):\"suppressContentEditableWarning\"!==g&&\"suppressHydrationWarning\"!==g&&(Ra.hasOwnProperty(g)?(null!=k&&lg(e,g),f||b===k||(f=[])):(f=f||[]).push(g,k))}a&&(f=f||[]).push(\"style\",a);return f}\nfunction tg(a,b,c,d,e){\"input\"===c&&\"radio\"===e.type&&null!=e.name&&Nf(a,e);ig(c,d);d=ig(c,e);for(var f=0;f<b.length;f+=2){var g=b[f],h=b[f+1];\"style\"===g?fg(a,h,kg):\"dangerouslySetInnerHTML\"===g?bg(a,h):\"children\"===g?cg(a,h):d?null!=h?Kf(a,g,h):a.removeAttribute(g):null!=h?If(a,g,h):Jf(a,g)}switch(c){case \"input\":Of(a,e);break;case \"textarea\":Wf(a,e);break;case \"select\":a._wrapperState.initialValue=void 0,b=a._wrapperState.wasMultiple,a._wrapperState.wasMultiple=!!e.multiple,c=e.value,null!=c?Sf(a,\n!!e.multiple,c,!1):b!==!!e.multiple&&(null!=e.defaultValue?Sf(a,!!e.multiple,e.defaultValue,!0):Sf(a,!!e.multiple,e.multiple?[]:\"\",!1))}}\nfunction ug(a,b,c,d,e){switch(b){case \"iframe\":case \"object\":U(\"topLoad\",\"load\",a);break;case \"video\":case \"audio\":for(var f in mg)mg.hasOwnProperty(f)&&U(f,mg[f],a);break;case \"source\":U(\"topError\",\"error\",a);break;case \"img\":case \"image\":U(\"topError\",\"error\",a);U(\"topLoad\",\"load\",a);break;case \"form\":U(\"topReset\",\"reset\",a);U(\"topSubmit\",\"submit\",a);break;case \"details\":U(\"topToggle\",\"toggle\",a);break;case \"input\":Mf(a,c);U(\"topInvalid\",\"invalid\",a);lg(e,\"onChange\");break;case \"select\":Tf(a,c);\nU(\"topInvalid\",\"invalid\",a);lg(e,\"onChange\");break;case \"textarea\":Vf(a,c),U(\"topInvalid\",\"invalid\",a),lg(e,\"onChange\")}hg(b,c,kg);d=null;for(var g in c)c.hasOwnProperty(g)&&(f=c[g],\"children\"===g?\"string\"===typeof f?a.textContent!==f&&(d=[\"children\",f]):\"number\"===typeof f&&a.textContent!==\"\"+f&&(d=[\"children\",\"\"+f]):Ra.hasOwnProperty(g)&&null!=f&&lg(e,g));switch(b){case \"input\":Bc(a);Pf(a,c);break;case \"textarea\":Bc(a);Xf(a,c);break;case \"select\":case \"option\":break;default:\"function\"===typeof c.onClick&&\n(a.onclick=C)}return d}function vg(a,b){return a.nodeValue!==b}\nvar wg=Object.freeze({createElement:ng,createTextNode:og,setInitialProperties:pg,diffProperties:sg,updateProperties:tg,diffHydratedProperties:ug,diffHydratedText:vg,warnForUnmatchedText:function(){},warnForDeletedHydratableElement:function(){},warnForDeletedHydratableText:function(){},warnForInsertedHydratedElement:function(){},warnForInsertedHydratedText:function(){},restoreControlledState:function(a,b,c){switch(b){case \"input\":Of(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=\nc.parentNode;c=c.querySelectorAll(\"input[name\\x3d\"+JSON.stringify(\"\"+b)+'][type\\x3d\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=rb(d);e?void 0:E(\"90\");Cc(d);Of(d,e)}}}break;case \"textarea\":Wf(a,c);break;case \"select\":b=c.value,null!=b&&Sf(a,!!c.multiple,b,!1)}}});nc.injectFiberControlledHostComponent(wg);var xg=null,Mg=null;function Ng(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}\nfunction Og(a){a=a?9===a.nodeType?a.documentElement:a.firstChild:null;return!(!a||1!==a.nodeType||!a.hasAttribute(\"data-reactroot\"))}\nvar Z=of({getRootHostContext:function(a){var b=a.nodeType;switch(b){case 9:case 11:a=(a=a.documentElement)?a.namespaceURI:$f(null,\"\");break;default:b=8===b?a.parentNode:a,a=b.namespaceURI||null,b=b.tagName,a=$f(a,b)}return a},getChildHostContext:function(a,b){return $f(a,b)},getPublicInstance:function(a){return a},prepareForCommit:function(){xg=td;var a=da();if(Kd(a)){if(\"selectionStart\"in a)var b={start:a.selectionStart,end:a.selectionEnd};else a:{var c=window.getSelection&&window.getSelection();\nif(c&&0!==c.rangeCount){b=c.anchorNode;var d=c.anchorOffset,e=c.focusNode;c=c.focusOffset;try{b.nodeType,e.nodeType}catch(z){b=null;break a}var f=0,g=-1,h=-1,k=0,q=0,v=a,y=null;b:for(;;){for(var u;;){v!==b||0!==d&&3!==v.nodeType||(g=f+d);v!==e||0!==c&&3!==v.nodeType||(h=f+c);3===v.nodeType&&(f+=v.nodeValue.length);if(null===(u=v.firstChild))break;y=v;v=u}for(;;){if(v===a)break b;y===b&&++k===d&&(g=f);y===e&&++q===c&&(h=f);if(null!==(u=v.nextSibling))break;v=y;y=v.parentNode}v=u}b=-1===g||-1===h?null:\n{start:g,end:h}}else b=null}b=b||{start:0,end:0}}else b=null;Mg={focusedElem:a,selectionRange:b};ud(!1)},resetAfterCommit:function(){var a=Mg,b=da(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&fa(document.documentElement,c)){if(Kd(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(window.getSelection){b=window.getSelection();var e=c[Eb()].length;a=Math.min(d.start,e);d=void 0===d.end?a:Math.min(d.end,e);!b.extend&&a>\nd&&(e=d,d=a,a=e);e=Jd(c,a);var f=Jd(c,d);if(e&&f&&(1!==b.rangeCount||b.anchorNode!==e.node||b.anchorOffset!==e.offset||b.focusNode!==f.node||b.focusOffset!==f.offset)){var g=document.createRange();g.setStart(e.node,e.offset);b.removeAllRanges();a>d?(b.addRange(g),b.extend(f.node,f.offset)):(g.setEnd(f.node,f.offset),b.addRange(g))}}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});ia(c);for(c=0;c<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=\na.top}Mg=null;ud(xg);xg=null},createInstance:function(a,b,c,d,e){a=ng(a,b,c,d);a[Q]=e;a[ob]=b;return a},appendInitialChild:function(a,b){a.appendChild(b)},finalizeInitialChildren:function(a,b,c,d){pg(a,b,c,d);a:{switch(b){case \"button\":case \"input\":case \"select\":case \"textarea\":a=!!c.autoFocus;break a}a=!1}return a},prepareUpdate:function(a,b,c,d,e){return sg(a,b,c,d,e)},shouldSetTextContent:function(a,b){return\"textarea\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===\ntypeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&\"string\"===typeof b.dangerouslySetInnerHTML.__html},shouldDeprioritizeSubtree:function(a,b){return!!b.hidden},createTextInstance:function(a,b,c,d){a=og(a,b);a[Q]=d;return a},now:rf,mutation:{commitMount:function(a){a.focus()},commitUpdate:function(a,b,c,d,e){a[ob]=e;tg(a,b,c,d,e)},resetTextContent:function(a){a.textContent=\"\"},commitTextUpdate:function(a,b,c){a.nodeValue=c},appendChild:function(a,b){a.appendChild(b)},appendChildToContainer:function(a,\nb){8===a.nodeType?a.parentNode.insertBefore(b,a):a.appendChild(b)},insertBefore:function(a,b,c){a.insertBefore(b,c)},insertInContainerBefore:function(a,b,c){8===a.nodeType?a.parentNode.insertBefore(b,c):a.insertBefore(b,c)},removeChild:function(a,b){a.removeChild(b)},removeChildFromContainer:function(a,b){8===a.nodeType?a.parentNode.removeChild(b):a.removeChild(b)}},hydration:{canHydrateInstance:function(a,b){return 1!==a.nodeType||b.toLowerCase()!==a.nodeName.toLowerCase()?null:a},canHydrateTextInstance:function(a,\nb){return\"\"===b||3!==a.nodeType?null:a},getNextHydratableSibling:function(a){for(a=a.nextSibling;a&&1!==a.nodeType&&3!==a.nodeType;)a=a.nextSibling;return a},getFirstHydratableChild:function(a){for(a=a.firstChild;a&&1!==a.nodeType&&3!==a.nodeType;)a=a.nextSibling;return a},hydrateInstance:function(a,b,c,d,e,f){a[Q]=f;a[ob]=c;return ug(a,b,c,e,d)},hydrateTextInstance:function(a,b,c){a[Q]=c;return vg(a,b)},didNotMatchHydratedContainerTextInstance:function(){},didNotMatchHydratedTextInstance:function(){},\ndidNotHydrateContainerInstance:function(){},didNotHydrateInstance:function(){},didNotFindHydratableContainerInstance:function(){},didNotFindHydratableContainerTextInstance:function(){},didNotFindHydratableInstance:function(){},didNotFindHydratableTextInstance:function(){}},scheduleDeferredCallback:sf,cancelDeferredCallback:tf,useSyncScheduling:!0});rc=Z.batchedUpdates;\nfunction Pg(a,b,c,d,e){Ng(c)?void 0:E(\"200\");var f=c._reactRootContainer;if(f)Z.updateContainer(b,f,a,e);else{d=d||Og(c);if(!d)for(f=void 0;f=c.lastChild;)c.removeChild(f);var g=Z.createContainer(c,d);f=c._reactRootContainer=g;Z.unbatchedUpdates(function(){Z.updateContainer(b,g,a,e)})}return Z.getPublicRootInstance(f)}function Qg(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;Ng(b)?void 0:E(\"200\");return pf(a,b,null,c)}\nfunction Rg(a,b){this._reactRootContainer=Z.createContainer(a,b)}Rg.prototype.render=function(a,b){Z.updateContainer(a,this._reactRootContainer,null,b)};Rg.prototype.unmount=function(a){Z.updateContainer(null,this._reactRootContainer,null,a)};\nvar Sg={createPortal:Qg,findDOMNode:function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternalFiber;if(b)return Z.findHostInstance(b);\"function\"===typeof a.render?E(\"188\"):E(\"213\",Object.keys(a))},hydrate:function(a,b,c){return Pg(null,a,b,!0,c)},render:function(a,b,c){return Pg(null,a,b,!1,c)},unstable_renderSubtreeIntoContainer:function(a,b,c,d){null==a||void 0===a._reactInternalFiber?E(\"38\"):void 0;return Pg(a,b,c,!1,d)},unmountComponentAtNode:function(a){Ng(a)?void 0:\nE(\"40\");return a._reactRootContainer?(Z.unbatchedUpdates(function(){Pg(null,null,a,!1,function(){a._reactRootContainer=null})}),!0):!1},unstable_createPortal:Qg,unstable_batchedUpdates:tc,unstable_deferredUpdates:Z.deferredUpdates,flushSync:Z.flushSync,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{EventPluginHub:mb,EventPluginRegistry:Va,EventPropagators:Cb,ReactControlledComponent:qc,ReactDOMComponentTree:sb,ReactDOMEventListener:xd}};\nZ.injectIntoDevTools({findFiberByHostInstance:pb,bundleType:0,version:\"16.2.0\",rendererPackageName:\"react-dom\"});var Tg=Object.freeze({default:Sg}),Ug=Tg&&Sg||Tg;module.exports=Ug[\"default\"]?Ug[\"default\"]:Ug;\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/react-dom/cjs/react-dom.production.min.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\nvar ExecutionEnvironment = {\n\n canUseDOM: canUseDOM,\n\n canUseWorkers: typeof Worker !== 'undefined',\n\n canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n\n canUseViewport: canUseDOM && !!window.screen,\n\n isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\n\nmodule.exports = ExecutionEnvironment;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fbjs/lib/ExecutionEnvironment.js","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Upstream version of event listener. Does not take into account specific\n * nature of platform.\n */\nvar EventListener = {\n /**\n * Listen to DOM events during the bubble phase.\n *\n * @param {DOMEventTarget} target DOM element to register listener on.\n * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n * @param {function} callback Callback function.\n * @return {object} Object with a `remove` method.\n */\n listen: function listen(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, false);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, false);\n }\n };\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, callback);\n return {\n remove: function remove() {\n target.detachEvent('on' + eventType, callback);\n }\n };\n }\n },\n\n /**\n * Listen to DOM events during the capture phase.\n *\n * @param {DOMEventTarget} target DOM element to register listener on.\n * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n * @param {function} callback Callback function.\n * @return {object} Object with a `remove` method.\n */\n capture: function capture(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, true);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, true);\n }\n };\n } else {\n if (process.env.NODE_ENV !== 'production') {\n console.error('Attempted to listen to events during the capture phase on a ' + 'browser that does not support the capture phase. Your application ' + 'will not receive some events.');\n }\n return {\n remove: emptyFunction\n };\n }\n },\n\n registerDefault: function registerDefault() {}\n};\n\nmodule.exports = EventListener;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fbjs/lib/EventListener.js","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n/* eslint-disable fb-www/typeof-undefined */\n\n/**\n * Same as document.activeElement but wraps in a try-catch block. In IE it is\n * not safe to call document.activeElement if there is nothing focused.\n *\n * The activeElement will be null only if the document or document body is not\n * yet defined.\n *\n * @param {?DOMDocument} doc Defaults to current document.\n * @return {?DOMElement}\n */\nfunction getActiveElement(doc) /*?DOMElement*/{\n doc = doc || (typeof document !== 'undefined' ? document : undefined);\n if (typeof doc === 'undefined') {\n return null;\n }\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\n\nmodule.exports = getActiveElement;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fbjs/lib/getActiveElement.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n * \n */\n\n/*eslint-disable no-self-compare */\n\n'use strict';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n // Added the nonzero y check to make Flow happy, but it is redundant\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n}\n\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\nfunction shallowEqual(objA, objB) {\n if (is(objA, objB)) {\n return true;\n }\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = shallowEqual;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fbjs/lib/shallowEqual.js","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar isTextNode = require('./isTextNode');\n\n/*eslint-disable no-bitwise */\n\n/**\n * Checks if a given DOM node contains or is another DOM node.\n */\nfunction containsNode(outerNode, innerNode) {\n if (!outerNode || !innerNode) {\n return false;\n } else if (outerNode === innerNode) {\n return true;\n } else if (isTextNode(outerNode)) {\n return false;\n } else if (isTextNode(innerNode)) {\n return containsNode(outerNode, innerNode.parentNode);\n } else if ('contains' in outerNode) {\n return outerNode.contains(innerNode);\n } else if (outerNode.compareDocumentPosition) {\n return !!(outerNode.compareDocumentPosition(innerNode) & 16);\n } else {\n return false;\n }\n}\n\nmodule.exports = containsNode;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fbjs/lib/containsNode.js","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar isNode = require('./isNode');\n\n/**\n * @param {*} object The object to check.\n * @return {boolean} Whether or not the object is a DOM text node.\n */\nfunction isTextNode(object) {\n return isNode(object) && object.nodeType == 3;\n}\n\nmodule.exports = isTextNode;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fbjs/lib/isTextNode.js","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n/**\n * @param {*} object The object to check.\n * @return {boolean} Whether or not the object is a DOM node.\n */\nfunction isNode(object) {\n var doc = object ? object.ownerDocument || object : document;\n var defaultView = doc.defaultView || window;\n return !!(object && (typeof defaultView.Node === 'function' ? object instanceof defaultView.Node : typeof object === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string'));\n}\n\nmodule.exports = isNode;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fbjs/lib/isNode.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * @param {DOMElement} node input/textarea to focus\n */\n\nfunction focusNode(node) {\n // IE8 can throw \"Can't move focus to the control because it is invisible,\n // not enabled, or of a type that does not accept the focus.\" for all kinds of\n // reasons that are too expensive and fragile to test.\n try {\n node.focus();\n } catch (e) {}\n}\n\nmodule.exports = focusNode;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fbjs/lib/focusNode.js","import React, { Component } from 'react'\n\nimport { propTypes, defaultProps, DEPRECATED_CONFIG_PROPS } from './props'\nimport { getConfig, omit, isEqual } from './utils'\nimport players from './players'\nimport Player from './Player'\nimport Preview from './Preview'\nimport { Iframe } from './players/Iframe'\nimport renderPreloadPlayers from './preload'\n\nconst SUPPORTED_PROPS = Object.keys(propTypes)\n\nlet customPlayers = []\n\nexport default class ReactPlayer extends Component {\n static addCustomPlayer = player => {\n customPlayers.push(player)\n }\n static removeCustomPlayers = () => {\n customPlayers = []\n }\n static displayName = 'ReactPlayer'\n static propTypes = propTypes\n static defaultProps = defaultProps\n static canPlay = url => {\n for (let Player of [ ...customPlayers, ...players ]) {\n if (Player.canPlay(url)) {\n return true\n }\n }\n return false\n }\n static canEnablePIP = url => {\n for (let Player of [ ...customPlayers, ...players ]) {\n if (Player.canEnablePIP && Player.canEnablePIP(url)) {\n return true\n }\n }\n return false\n }\n config = getConfig(this.props, defaultProps, true)\n state = {\n showPreview: !!this.props.light\n }\n componentDidMount () {\n if (this.props.progressFrequency) {\n const message = 'ReactPlayer: %cprogressFrequency%c is deprecated, please use %cprogressInterval%c instead'\n console.warn(message, 'font-weight: bold', '', 'font-weight: bold', '')\n }\n }\n shouldComponentUpdate (nextProps, nextState) {\n return !isEqual(this.props, nextProps) || !isEqual(this.state, nextState)\n }\n componentWillUpdate (nextProps) {\n this.config = getConfig(nextProps, defaultProps)\n if (!this.props.light && nextProps.light) {\n this.setState({ showPreview: true })\n }\n }\n onClickPreview = () => {\n this.setState({ showPreview: false })\n }\n getDuration = () => {\n if (!this.player) return null\n return this.player.getDuration()\n }\n getCurrentTime = () => {\n if (!this.player) return null\n return this.player.getCurrentTime()\n }\n getSecondsLoaded = () => {\n if (!this.player) return null\n return this.player.getSecondsLoaded()\n }\n getInternalPlayer = (key = 'player') => {\n if (!this.player) return null\n return this.player.getInternalPlayer(key)\n }\n seekTo = (fraction, type) => {\n if (!this.player) return null\n this.player.seekTo(fraction, type)\n }\n onReady = () => {\n this.props.onReady(this)\n }\n getActivePlayer (url) {\n for (let Player of [ ...customPlayers, ...players ]) {\n if (Player.canPlay(url)) {\n return Player\n }\n }\n // Fall back to FilePlayer if nothing else can play the URL\n return Iframe\n }\n wrapperRef = wrapper => {\n this.wrapper = wrapper\n }\n activePlayerRef = player => {\n this.player = player\n }\n renderActivePlayer (url, activePlayer) {\n if (!url) return null\n return (\n <Player\n {...this.props}\n key={activePlayer.displayName}\n ref={this.activePlayerRef}\n config={this.config}\n activePlayer={activePlayer}\n onReady={this.onReady}\n />\n )\n }\n sortPlayers (a, b) {\n // Retain player order to prevent weird iframe behaviour when switching players\n if (a && b) {\n return a.key < b.key ? -1 : 1\n }\n return 0\n }\n render () {\n const { url, controls, style, width, height, light, wrapper: Wrapper } = this.props\n const showPreview = this.state.showPreview && url\n const otherProps = omit(this.props, SUPPORTED_PROPS, DEPRECATED_CONFIG_PROPS)\n const activePlayer = this.getActivePlayer(url)\n const renderedActivePlayer = this.renderActivePlayer(url, activePlayer)\n const preloadPlayers = renderPreloadPlayers(url, controls, this.config)\n const players = [ renderedActivePlayer, ...preloadPlayers ].sort(this.sortPlayers)\n const preview = <Preview url={url} light={light} onClick={this.onClickPreview} />\n return (\n <Wrapper ref={this.wrapperRef} style={{ ...style, width, height }} {...otherProps}>\n {showPreview ? preview : players}\n </Wrapper>\n )\n }\n}\n\nexport { default as YouTube } from './players/YouTube'\nexport { default as SoundCloud } from './players/SoundCloud'\nexport { default as Vimeo } from './players/Vimeo'\nexport { default as Facebook } from './players/Facebook'\nexport { default as Streamable } from './players/Streamable'\nexport { default as FaceMask } from './players/FaceMask'\nexport { default as Wistia } from './players/Wistia'\nexport { default as Twitch } from './players/Twitch'\nexport { default as DailyMotion } from './players/DailyMotion'\nexport { default as UstreamLive } from './players/UstreamLive'\nexport { default as UstreamVideo } from './players/UstreamVideo'\nexport { default as Iframe } from './players/Iframe'\nexport { default as Mixcloud } from './players/Mixcloud'\nexport { default as FilePlayer } from './players/FilePlayer'\nexport { default as VAST } from './players/VAST'\nexport { default as JWPlayer } from './players/JWPlayer'\nexport { default as PhenixPlayer } from './players/PhenixPlayer'\n\n\n\n// WEBPACK FOOTER //\n// ./src/ReactPlayer.js","\nmodule.exports = function load (src, opts, cb) {\n var head = document.head || document.getElementsByTagName('head')[0]\n var script = document.createElement('script')\n\n if (typeof opts === 'function') {\n cb = opts\n opts = {}\n }\n\n opts = opts || {}\n cb = cb || function() {}\n\n script.type = opts.type || 'text/javascript'\n script.charset = opts.charset || 'utf8';\n script.async = 'async' in opts ? !!opts.async : true\n script.src = src\n\n if (opts.attrs) {\n setAttributes(script, opts.attrs)\n }\n\n if (opts.text) {\n script.text = '' + opts.text\n }\n\n var onend = 'onload' in script ? stdOnEnd : ieOnEnd\n onend(script, cb)\n\n // some good legacy browsers (firefox) fail the 'in' detection above\n // so as a fallback we always set onload\n // old IE will ignore this and new IE will set onload\n if (!script.onload) {\n stdOnEnd(script, cb);\n }\n\n head.appendChild(script)\n}\n\nfunction setAttributes(script, attrs) {\n for (var attr in attrs) {\n script.setAttribute(attr, attrs[attr]);\n }\n}\n\nfunction stdOnEnd (script, cb) {\n script.onload = function () {\n this.onerror = this.onload = null\n cb(null, script)\n }\n script.onerror = function () {\n // this.onload = null here is necessary\n // because even IE9 works not like others\n this.onerror = this.onload = null\n cb(new Error('Failed to load ' + this.src), script)\n }\n}\n\nfunction ieOnEnd (script, cb) {\n script.onreadystatechange = function () {\n if (this.readyState != 'complete' && this.readyState != 'loaded') return\n this.onreadystatechange = null\n cb(null, script) // there is no way to catch loading errors in IE8\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/load-script/index.js","(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.deepmerge = factory());\n}(this, (function () { 'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tObject.keys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tObject.keys(source).forEach(function(key) {\n\t\tif (!options.isMergeableObject(source[key]) || !target[key]) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = deepmerge(target[key], source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nreturn deepmerge_1;\n\n})));\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/deepmerge/dist/umd.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/prop-types/index.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/prop-types/factoryWithThrowingShims.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fbjs/lib/invariant.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/prop-types/lib/ReactPropTypesSecret.js","'use strict';\n\nvar utils = require('./utils');\nvar unique = utils.unique('vpaidIframe');\nvar VPAIDAdUnit = require('./VPAIDAdUnit');\n\nvar defaultTemplate = '<!DOCTYPE html>' +\n '<html lang=\"en\">' +\n '<head><meta charset=\"UTF-8\"></head>' +\n '<body style=\"margin:0;padding:0\"><div class=\"ad-element\"></div>' +\n '<script type=\"text/javascript\" src=\"{{iframeURL_JS}}\"></script>' +\n '<script type=\"text/javascript\">' +\n 'window.parent.postMessage(\\'{\"event\": \"ready\", \"id\": \"{{iframeID}}\"}\\', \\'{{origin}}\\');' +\n '</script>' +\n '</body>' +\n '</html>';\n\nvar AD_STOPPED = 'AdStopped';\n\n/**\n * This callback is displayed as global member. The callback use nodejs error-first callback style\n * @callback NodeStyleCallback\n * @param {string|null}\n * @param {undefined|object}\n */\n\n/**\n * VPAIDHTML5Client\n * @class\n *\n * @param {HTMLElement} el that will contain the iframe to load adUnit and a el to add to adUnit slot\n * @param {HTMLVideoElement} video default video element to be used by adUnit\n * @param {object} [templateConfig] template: html template to be used instead of the default, extraOptions: to be used when rendering the template\n * @param {object} [vpaidOptions] timeout: when loading adUnit\n */\nfunction VPAIDHTML5Client(el, video, templateConfig, vpaidOptions) {\n templateConfig = templateConfig || {};\n\n this._id = unique();\n this._destroyed = false;\n\n this._frameContainer = utils.createElementInEl(el, 'div');\n this._videoEl = video;\n this._vpaidOptions = vpaidOptions || {timeout: 10000};\n\n this._templateConfig = {\n template: templateConfig.template || defaultTemplate,\n extraOptions: templateConfig.extraOptions || {}\n };\n}\n\n/**\n * destroy\n *\n */\nVPAIDHTML5Client.prototype.destroy = function destroy() {\n if (this._destroyed) {\n return;\n }\n this._destroyed = true;\n $unloadPreviousAdUnit.call(this);\n};\n\n/**\n * isDestroyed\n *\n * @return {boolean}\n */\nVPAIDHTML5Client.prototype.isDestroyed = function isDestroyed() {\n return this._destroyed;\n};\n\n/**\n * loadAdUnit\n *\n * @param {string} adURL url of the js of the adUnit\n * @param {nodeStyleCallback} callback\n */\nVPAIDHTML5Client.prototype.loadAdUnit = function loadAdUnit(adURL, callback) {\n $throwIfDestroyed.call(this);\n $unloadPreviousAdUnit.call(this);\n var that = this;\n\n var frame = utils.createIframeWithContent(\n this._frameContainer,\n this._templateConfig.template,\n utils.extend({\n iframeURL_JS: adURL,\n iframeID: this.getID(),\n origin: getOrigin()\n }, this._templateConfig.extraOptions)\n );\n\n this._frame = frame;\n\n this._onLoad = utils.callbackTimeout(\n this._vpaidOptions.timeout,\n onLoad.bind(this),\n onTimeout.bind(this)\n );\n\n window.addEventListener('message', this._onLoad);\n\n function onLoad (e) {\n /*jshint validthis: false */\n //don't clear timeout\n if (e.origin !== getOrigin()) return;\n var result = JSON.parse(e.data);\n\n //don't clear timeout\n if (result.id !== that.getID()) return;\n\n var adUnit, error, createAd;\n if (!that._frame.contentWindow) {\n\n error = 'the iframe is not anymore in the DOM tree';\n\n } else {\n createAd = that._frame.contentWindow.getVPAIDAd;\n error = utils.validate(typeof createAd === 'function', 'the ad didn\\'t return a function to create an ad');\n }\n\n if (!error) {\n var adEl = that._frame.contentWindow.document.querySelector('.ad-element');\n adUnit = new VPAIDAdUnit(createAd(), adEl, that._videoEl, that._frame);\n adUnit.subscribe(AD_STOPPED, $adDestroyed.bind(that));\n error = utils.validate(adUnit.isValidVPAIDAd(), 'the add is not fully complaint with VPAID specification');\n }\n\n that._adUnit = adUnit;\n $destroyLoadListener.call(that);\n callback(error, error ? null : adUnit);\n\n //clear timeout\n return true;\n }\n\n function onTimeout() {\n callback('timeout', null);\n }\n};\n\n/**\n * unloadAdUnit\n *\n */\nVPAIDHTML5Client.prototype.unloadAdUnit = function unloadAdUnit() {\n $unloadPreviousAdUnit.call(this);\n};\n\n/**\n * getID will return the unique id\n *\n * @return {string}\n */\nVPAIDHTML5Client.prototype.getID = function () {\n return this._id;\n};\n\n\n/**\n * $removeEl\n *\n * @param {string} key\n */\nfunction $removeEl(key) {\n var el = this[key];\n if (el) {\n el.remove();\n delete this[key];\n }\n}\n\nfunction $adDestroyed() {\n $removeAdElements.call(this);\n delete this._adUnit;\n}\n\nfunction $unloadPreviousAdUnit() {\n $removeAdElements.call(this);\n $destroyAdUnit.call(this);\n}\n\nfunction $removeAdElements() {\n $removeEl.call(this, '_frame');\n $destroyLoadListener.call(this);\n}\n\n/**\n * $destroyLoadListener\n *\n */\nfunction $destroyLoadListener() {\n if (this._onLoad) {\n window.removeEventListener('message', this._onLoad);\n utils.clearCallbackTimeout(this._onLoad);\n delete this._onLoad;\n }\n}\n\n\nfunction $destroyAdUnit() {\n if (this._adUnit) {\n this._adUnit.stopAd();\n delete this._adUnit;\n }\n}\n\n/**\n * $throwIfDestroyed\n *\n */\nfunction $throwIfDestroyed() {\n if (this._destroyed) {\n throw new Error ('VPAIDHTML5Client already destroyed!');\n }\n}\n\nfunction getOrigin() {\n if( window.location.origin ) {\n return window.location.origin;\n }\n else {\n return window.location.protocol + \"//\" +\n window.location.hostname +\n (window.location.port ? ':' + window.location.port: '');\n }\n}\n\nmodule.exports = VPAIDHTML5Client;\n\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vpaid-html5-client/js/VPAIDHTML5Client.js","'use strict';\n\nvar IVPAIDAdUnit = require('./IVPAIDAdUnit');\nvar Subscriber = require('./subscriber');\nvar checkVPAIDInterface = IVPAIDAdUnit.checkVPAIDInterface;\nvar utils = require('./utils');\nvar METHODS = IVPAIDAdUnit.METHODS;\nvar ERROR = 'AdError';\nvar AD_CLICK = 'AdClickThru';\nvar FILTERED_EVENTS = IVPAIDAdUnit.EVENTS.filter(function (event) {\n return event != AD_CLICK;\n});\n\n/**\n * This callback is displayed as global member. The callback use nodejs error-first callback style\n * @callback NodeStyleCallback\n * @param {string|null}\n * @param {undefined|object}\n */\n\n\n/**\n * VPAIDAdUnit\n * @class\n *\n * @param VPAIDCreative\n * @param {HTMLElement} [el] this will be used in initAd environmentVars.slot if defined\n * @param {HTMLVideoElement} [video] this will be used in initAd environmentVars.videoSlot if defined\n */\nfunction VPAIDAdUnit(VPAIDCreative, el, video, iframe) {\n this._isValid = checkVPAIDInterface(VPAIDCreative);\n if (this._isValid) {\n this._creative = VPAIDCreative;\n this._el = el;\n this._videoEl = video;\n this._iframe = iframe;\n this._subscribers = new Subscriber();\n utils.setFullSizeStyle(el);\n $addEventsSubscribers.call(this);\n }\n}\n\nVPAIDAdUnit.prototype = Object.create(IVPAIDAdUnit.prototype);\n\n/**\n * isValidVPAIDAd will return if the VPAIDCreative passed in constructor is valid or not\n *\n * @return {boolean}\n */\nVPAIDAdUnit.prototype.isValidVPAIDAd = function isValidVPAIDAd() {\n return this._isValid;\n};\n\nIVPAIDAdUnit.METHODS.forEach(function(method) {\n //NOTE: this methods arguments order are implemented differently from the spec\n var ignores = [\n 'subscribe',\n 'unsubscribe',\n 'initAd'\n ];\n\n if (ignores.indexOf(method) !== -1) return;\n\n VPAIDAdUnit.prototype[method] = function () {\n var ariaty = IVPAIDAdUnit.prototype[method].length;\n // TODO avoid leaking arguments\n // https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#32-leaking-arguments\n var args = Array.prototype.slice.call(arguments);\n var callback = (ariaty === args.length) ? args.pop() : undefined;\n\n setTimeout(function () {\n var result, error = null;\n try {\n result = this._creative[method].apply(this._creative, args);\n } catch(e) {\n error = e;\n }\n\n callOrTriggerEvent(callback, this._subscribers, error, result);\n }.bind(this), 0);\n };\n});\n\n\n/**\n * initAd concreate implementation\n *\n * @param {number} width\n * @param {number} height\n * @param {string} viewMode can be 'normal', 'thumbnail' or 'fullscreen'\n * @param {number} desiredBitrate indicates the desired bitrate in kbps\n * @param {object} [creativeData] used for additional initialization data\n * @param {object} [environmentVars] used for passing implementation-specific of js version, if el & video was used in constructor slot & videoSlot will be added to the object\n * @param {NodeStyleCallback} callback\n */\nVPAIDAdUnit.prototype.initAd = function initAd(width, height, viewMode, desiredBitrate, creativeData, environmentVars, callback) {\n creativeData = creativeData || {};\n environmentVars = utils.extend({\n slot: this._el,\n videoSlot: this._videoEl\n }, environmentVars || {});\n\n setTimeout(function () {\n var error;\n try {\n this._creative.initAd(width, height, viewMode, desiredBitrate, creativeData, environmentVars);\n } catch (e) {\n error = e;\n }\n\n callOrTriggerEvent(callback, this._subscribers, error);\n }.bind(this), 0);\n};\n\n/**\n * subscribe\n *\n * @param {string} event\n * @param {nodeStyleCallback} handler\n * @param {object} context\n */\nVPAIDAdUnit.prototype.subscribe = function subscribe(event, handler, context) {\n this._subscribers.subscribe(handler, event, context);\n};\n\n\n/**\n * unsubscribe\n *\n * @param {string} event\n * @param {nodeStyleCallback} handler\n */\nVPAIDAdUnit.prototype.unsubscribe = function unsubscribe(event, handler) {\n this._subscribers.unsubscribe(handler, event);\n};\n\n//alias\nVPAIDAdUnit.prototype.on = VPAIDAdUnit.prototype.subscribe;\nVPAIDAdUnit.prototype.off = VPAIDAdUnit.prototype.unsubscribe;\n\nIVPAIDAdUnit.GETTERS.forEach(function(getter) {\n VPAIDAdUnit.prototype[getter] = function (callback) {\n setTimeout(function () {\n\n var result, error = null;\n try {\n result = this._creative[getter]();\n } catch(e) {\n error = e;\n }\n\n callOrTriggerEvent(callback, this._subscribers, error, result);\n }.bind(this), 0);\n };\n});\n\n/**\n * setAdVolume\n *\n * @param volume\n * @param {nodeStyleCallback} callback\n */\nVPAIDAdUnit.prototype.setAdVolume = function setAdVolume(volume, callback) {\n setTimeout(function () {\n\n var result, error = null;\n try {\n this._creative.setAdVolume(volume);\n result = this._creative.getAdVolume();\n } catch(e) {\n error = e;\n }\n\n if (!error) {\n error = utils.validate(result === volume, 'failed to apply volume: ' + volume);\n }\n callOrTriggerEvent(callback, this._subscribers, error, result);\n }.bind(this), 0);\n};\n\nVPAIDAdUnit.prototype._destroy = function destroy() {\n this.stopAd();\n this._subscribers.unsubscribeAll();\n};\n\nfunction $addEventsSubscribers() {\n // some ads implement\n // so they only handle one subscriber\n // to handle this we create our one\n FILTERED_EVENTS.forEach(function (event) {\n this._creative.subscribe($trigger.bind(this, event), event);\n }.bind(this));\n\n // map the click event to be an object instead of depending of the order of the arguments\n // and to be consistent with the flash\n this._creative.subscribe($clickThruHook.bind(this), AD_CLICK);\n\n // because we are adding the element inside the iframe\n // the user is not able to click in the video\n if (this._videoEl) {\n var documentElement = this._iframe.contentDocument.documentElement;\n var videoEl = this._videoEl;\n documentElement.addEventListener('click', function(e) {\n if (e.target === documentElement) {\n videoEl.click();\n }\n });\n }\n}\n\nfunction $clickThruHook(url, id, playerHandles) {\n this._subscribers.triggerSync(AD_CLICK, {url: url, id: id, playerHandles: playerHandles});\n}\n\nfunction $trigger(event) {\n // TODO avoid leaking arguments\n // https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#32-leaking-arguments\n this._subscribers.trigger(event, Array.prototype.slice(arguments, 1));\n}\n\nfunction callOrTriggerEvent(callback, subscribers, error, result) {\n if (callback) {\n callback(error, result);\n } else if (error) {\n subscribers.trigger(ERROR, error);\n }\n}\n\nmodule.exports = VPAIDAdUnit;\n\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vpaid-html5-client/js/VPAIDAdUnit.js","'use strict';\n\nvar METHODS = [\n 'handshakeVersion',\n 'initAd',\n 'startAd',\n 'stopAd',\n 'skipAd', // VPAID 2.0 new method\n 'resizeAd',\n 'pauseAd',\n 'resumeAd',\n 'expandAd',\n 'collapseAd',\n 'subscribe',\n 'unsubscribe'\n];\n\nvar EVENTS = [\n 'AdLoaded',\n 'AdStarted',\n 'AdStopped',\n 'AdSkipped',\n 'AdSkippableStateChange', // VPAID 2.0 new event\n 'AdSizeChange', // VPAID 2.0 new event\n 'AdLinearChange',\n 'AdDurationChange', // VPAID 2.0 new event\n 'AdExpandedChange',\n 'AdRemainingTimeChange', // [Deprecated in 2.0] but will be still fired for backwards compatibility\n 'AdVolumeChange',\n 'AdImpression',\n 'AdVideoStart',\n 'AdVideoFirstQuartile',\n 'AdVideoMidpoint',\n 'AdVideoThirdQuartile',\n 'AdVideoComplete',\n 'AdClickThru',\n 'AdInteraction', // VPAID 2.0 new event\n 'AdUserAcceptInvitation',\n 'AdUserMinimize',\n 'AdUserClose',\n 'AdPaused',\n 'AdPlaying',\n 'AdLog',\n 'AdError'\n];\n\nvar GETTERS = [\n 'getAdLinear',\n 'getAdWidth', // VPAID 2.0 new getter\n 'getAdHeight', // VPAID 2.0 new getter\n 'getAdExpanded',\n 'getAdSkippableState', // VPAID 2.0 new getter\n 'getAdRemainingTime',\n 'getAdDuration', // VPAID 2.0 new getter\n 'getAdVolume',\n 'getAdCompanions', // VPAID 2.0 new getter\n 'getAdIcons' // VPAID 2.0 new getter\n];\n\nvar SETTERS = [\n 'setAdVolume'\n];\n\n\n/**\n * This callback is displayed as global member. The callback use nodejs error-first callback style\n * @callback NodeStyleCallback\n * @param {string|null}\n * @param {undefined|object}\n */\n\n\n/**\n * IVPAIDAdUnit\n *\n * @class\n *\n * @param {object} creative\n * @param {HTMLElement} el\n * @param {HTMLVideoElement} video\n */\nfunction IVPAIDAdUnit(creative, el, video) {}\n\n\n/**\n * handshakeVersion\n *\n * @param {string} VPAIDVersion\n * @param {nodeStyleCallback} callback\n */\nIVPAIDAdUnit.prototype.handshakeVersion = function (VPAIDVersion, callback) {};\n\n/**\n * initAd\n *\n * @param {number} width\n * @param {number} height\n * @param {string} viewMode can be 'normal', 'thumbnail' or 'fullscreen'\n * @param {number} desiredBitrate indicates the desired bitrate in kbps\n * @param {object} [creativeData] used for additional initialization data\n * @param {object} [environmentVars] used for passing implementation-specific of js version\n * @param {NodeStyleCallback} callback\n */\nIVPAIDAdUnit.prototype.initAd = function(width, height, viewMode, desiredBitrate, creativeData, environmentVars, callback) {};\n\n/**\n * startAd\n *\n * @param {nodeStyleCallback} callback\n */\nIVPAIDAdUnit.prototype.startAd = function(callback) {};\n\n/**\n * stopAd\n *\n * @param {nodeStyleCallback} callback\n */\nIVPAIDAdUnit.prototype.stopAd = function(callback) {};\n\n/**\n * skipAd\n *\n * @param {nodeStyleCallback} callback\n */\nIVPAIDAdUnit.prototype.skipAd = function(callback) {};\n\n/**\n * resizeAd\n *\n * @param {nodeStyleCallback} callback\n */\nIVPAIDAdUnit.prototype.resizeAd = function(width, height, viewMode, callback) {};\n\n/**\n * pauseAd\n *\n * @param {nodeStyleCallback} callback\n */\nIVPAIDAdUnit.prototype.pauseAd = function(callback) {};\n\n/**\n * resumeAd\n *\n * @param {nodeStyleCallback} callback\n */\nIVPAIDAdUnit.prototype.resumeAd = function(callback) {};\n\n/**\n * expandAd\n *\n * @param {nodeStyleCallback} callback\n */\nIVPAIDAdUnit.prototype.expandAd = function(callback) {};\n\n/**\n * collapseAd\n *\n * @param {nodeStyleCallback} callback\n */\nIVPAIDAdUnit.prototype.collapseAd = function(callback) {};\n\n/**\n * subscribe\n *\n * @param {string} event\n * @param {nodeStyleCallback} handler\n * @param {object} context\n */\nIVPAIDAdUnit.prototype.subscribe = function(event, handler, context) {};\n\n/**\n * startAd\n *\n * @param {string} event\n * @param {function} handler\n */\nIVPAIDAdUnit.prototype.unsubscribe = function(event, handler) {};\n\n\n\n/**\n * getAdLinear\n *\n * @param {nodeStyleCallback} callback\n */\nIVPAIDAdUnit.prototype.getAdLinear = function(callback) {};\n\n/**\n * getAdWidth\n *\n * @param {nodeStyleCallback} callback\n */\nIVPAIDAdUnit.prototype.getAdWidth = function(callback) {};\n\n/**\n * getAdHeight\n *\n * @param {nodeStyleCallback} callback\n */\nIVPAIDAdUnit.prototype.getAdHeight = function(callback) {};\n\n/**\n * getAdExpanded\n *\n * @param {nodeStyleCallback} callback\n */\nIVPAIDAdUnit.prototype.getAdExpanded = function(callback) {};\n\n/**\n * getAdSkippableState\n *\n * @param {nodeStyleCallback} callback\n */\nIVPAIDAdUnit.prototype.getAdSkippableState = function(callback) {};\n\n/**\n * getAdRemainingTime\n *\n * @param {nodeStyleCallback} callback\n */\nIVPAIDAdUnit.prototype.getAdRemainingTime = function(callback) {};\n\n/**\n * getAdDuration\n *\n * @param {nodeStyleCallback} callback\n */\nIVPAIDAdUnit.prototype.getAdDuration = function(callback) {};\n\n/**\n * getAdVolume\n *\n * @param {nodeStyleCallback} callback\n */\nIVPAIDAdUnit.prototype.getAdVolume = function(callback) {};\n\n/**\n * getAdCompanions\n *\n * @param {nodeStyleCallback} callback\n */\nIVPAIDAdUnit.prototype.getAdCompanions = function(callback) {};\n\n/**\n * getAdIcons\n *\n * @param {nodeStyleCallback} callback\n */\nIVPAIDAdUnit.prototype.getAdIcons = function(callback) {};\n\n/**\n * setAdVolume\n *\n * @param {number} volume\n * @param {nodeStyleCallback} callback\n */\nIVPAIDAdUnit.prototype.setAdVolume = function(volume, callback) {};\n\naddStaticToInterface(IVPAIDAdUnit, 'METHODS', METHODS);\naddStaticToInterface(IVPAIDAdUnit, 'GETTERS', GETTERS);\naddStaticToInterface(IVPAIDAdUnit, 'SETTERS', SETTERS);\naddStaticToInterface(IVPAIDAdUnit, 'EVENTS', EVENTS);\n\n\nvar VPAID1_METHODS = METHODS.filter(function(method) {\n return ['skipAd'].indexOf(method) === -1;\n});\n\naddStaticToInterface(IVPAIDAdUnit, 'checkVPAIDInterface', function checkVPAIDInterface (creative) {\n var result = VPAID1_METHODS.every(function(key) {\n return typeof creative[key] === 'function';\n });\n return result;\n});\n\nmodule.exports = IVPAIDAdUnit;\n\nfunction addStaticToInterface(Interface, name, value) {\n Object.defineProperty(Interface, name, {\n writable: false,\n configurable: false,\n value: value\n });\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vpaid-html5-client/js/IVPAIDAdUnit.js","'use strict';\n\nfunction Subscriber() {\n this._subscribers = {};\n}\n\nSubscriber.prototype.subscribe = function subscribe(handler, eventName, context) {\n if (!this.isHandlerAttached(handler, eventName)) {\n this.get(eventName).push({handler: handler, context: context, eventName: eventName});\n }\n};\n\nSubscriber.prototype.unsubscribe = function unsubscribe(handler, eventName) {\n this._subscribers[eventName] = this.get(eventName).filter(function (subscriber) {\n return handler !== subscriber.handler;\n });\n};\n\nSubscriber.prototype.unsubscribeAll = function unsubscribeAll() {\n this._subscribers = {};\n};\n\nSubscriber.prototype.trigger = function(eventName, data) {\n var that = this;\n var subscribers = this.get(eventName)\n .concat(this.get('*'));\n\n subscribers.forEach(function (subscriber) {\n setTimeout(function () {\n if (that.isHandlerAttached(subscriber.handler, subscriber.eventName)) {\n subscriber.handler.call(subscriber.context, data);\n }\n }, 0);\n });\n};\n\nSubscriber.prototype.triggerSync = function(eventName, data) {\n var subscribers = this.get(eventName)\n .concat(this.get('*'));\n\n subscribers.forEach(function (subscriber) {\n subscriber.handler.call(subscriber.context, data);\n });\n};\n\nSubscriber.prototype.get = function get(eventName) {\n if (!this._subscribers[eventName]) {\n this._subscribers[eventName] = [];\n }\n return this._subscribers[eventName];\n};\n\nSubscriber.prototype.isHandlerAttached = function isHandlerAttached(handler, eventName) {\n return this.get(eventName).some(function(subscriber) {\n return handler === subscriber.handler;\n })\n};\n\nmodule.exports = Subscriber;\n\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vpaid-html5-client/js/subscriber.js","import { VASTParser } from './parser/vast_parser.js';\nimport { VASTClient } from './vast_client.js';\nimport { VASTTracker } from './vast_tracker.js';\n\nexport { VASTClient, VASTParser, VASTTracker };\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vast-client/src/index.js","import { Ad } from '../ad';\nimport { AdExtension } from '../ad_extension';\nimport { AdExtensionChild } from '../ad_extension_child';\nimport { parseCreativeCompanion } from './creative_companion_parser';\nimport { parseCreativeLinear } from './creative_linear_parser';\nimport { parseCreativeNonLinear } from './creative_non_linear_parser';\nimport { parserUtils } from './parser_utils';\n\n/**\n * This module provides methods to parse a VAST Ad Element.\n */\n\n/**\n * Parses an Ad element (can either be a Wrapper or an InLine).\n * @param {Object} adElement - The VAST Ad element to parse.\n * @return {Ad}\n */\nexport function parseAd(adElement) {\n const childNodes = adElement.childNodes;\n\n for (const adTypeElementKey in childNodes) {\n const adTypeElement = childNodes[adTypeElementKey];\n\n if (['Wrapper', 'InLine'].indexOf(adTypeElement.nodeName) === -1) {\n continue;\n }\n\n parserUtils.copyNodeAttribute('id', adElement, adTypeElement);\n parserUtils.copyNodeAttribute('sequence', adElement, adTypeElement);\n\n if (adTypeElement.nodeName === 'Wrapper') {\n return parseWrapper(adTypeElement);\n } else if (adTypeElement.nodeName === 'InLine') {\n return parseInLine(adTypeElement);\n }\n }\n}\n\n/**\n * Parses an Inline element.\n * @param {Object} inLineElement - The VAST Inline element to parse.\n * @return {Ad}\n */\nfunction parseInLine(inLineElement) {\n const childNodes = inLineElement.childNodes;\n const ad = new Ad();\n ad.id = inLineElement.getAttribute('id') || null;\n ad.sequence = inLineElement.getAttribute('sequence') || null;\n\n for (const nodeKey in childNodes) {\n const node = childNodes[nodeKey];\n\n switch (node.nodeName) {\n case 'Error':\n ad.errorURLTemplates.push(parserUtils.parseNodeText(node));\n break;\n\n case 'Impression':\n ad.impressionURLTemplates.push(parserUtils.parseNodeText(node));\n break;\n\n case 'Creatives':\n parserUtils\n .childrenByName(node, 'Creative')\n .forEach(creativeElement => {\n const creativeAttributes = {\n id: creativeElement.getAttribute('id') || null,\n adId: parseCreativeAdIdAttribute(creativeElement),\n sequence: creativeElement.getAttribute('sequence') || null,\n apiFramework: creativeElement.getAttribute('apiFramework') || null\n };\n\n for (const creativeTypeElementKey in creativeElement.childNodes) {\n const creativeTypeElement =\n creativeElement.childNodes[creativeTypeElementKey];\n let parsedCreative;\n\n switch (creativeTypeElement.nodeName) {\n case 'Linear':\n parsedCreative = parseCreativeLinear(\n creativeTypeElement,\n creativeAttributes\n );\n if (parsedCreative) {\n ad.creatives.push(parsedCreative);\n }\n break;\n case 'NonLinearAds':\n parsedCreative = parseCreativeNonLinear(\n creativeTypeElement,\n creativeAttributes\n );\n if (parsedCreative) {\n ad.creatives.push(parsedCreative);\n }\n break;\n case 'CompanionAds':\n parsedCreative = parseCreativeCompanion(\n creativeTypeElement,\n creativeAttributes\n );\n if (parsedCreative) {\n ad.creatives.push(parsedCreative);\n }\n break;\n }\n }\n });\n break;\n\n case 'Extensions':\n parseExtensions(\n ad.extensions,\n parserUtils.childrenByName(node, 'Extension')\n );\n break;\n\n case 'AdSystem':\n ad.system = {\n value: parserUtils.parseNodeText(node),\n version: node.getAttribute('version') || null\n };\n break;\n\n case 'AdTitle':\n ad.title = parserUtils.parseNodeText(node);\n break;\n\n case 'Description':\n ad.description = parserUtils.parseNodeText(node);\n break;\n\n case 'Advertiser':\n ad.advertiser = parserUtils.parseNodeText(node);\n break;\n\n case 'Pricing':\n ad.pricing = {\n value: parserUtils.parseNodeText(node),\n model: node.getAttribute('model') || null,\n currency: node.getAttribute('currency') || null\n };\n break;\n\n case 'Survey':\n ad.survey = parserUtils.parseNodeText(node);\n break;\n }\n }\n\n return ad;\n}\n\n/**\n * Parses a Wrapper element without resolving the wrapped urls.\n * @param {Object} wrapperElement - The VAST Wrapper element to be parsed.\n * @return {Ad}\n */\nfunction parseWrapper(wrapperElement) {\n const ad = parseInLine(wrapperElement);\n let wrapperURLElement = parserUtils.childByName(\n wrapperElement,\n 'VASTAdTagURI'\n );\n\n if (wrapperURLElement) {\n ad.nextWrapperURL = parserUtils.parseNodeText(wrapperURLElement);\n } else {\n wrapperURLElement = parserUtils.childByName(wrapperElement, 'VASTAdTagURL');\n\n if (wrapperURLElement) {\n ad.nextWrapperURL = parserUtils.parseNodeText(\n parserUtils.childByName(wrapperURLElement, 'URL')\n );\n }\n }\n\n ad.creatives.forEach(wrapperCreativeElement => {\n if (['linear', 'nonlinear'].indexOf(wrapperCreativeElement.type) !== -1) {\n // TrackingEvents Linear / NonLinear\n if (wrapperCreativeElement.trackingEvents) {\n if (!ad.trackingEvents) {\n ad.trackingEvents = {};\n }\n if (!ad.trackingEvents[wrapperCreativeElement.type]) {\n ad.trackingEvents[wrapperCreativeElement.type] = {};\n }\n for (const eventName in wrapperCreativeElement.trackingEvents) {\n const urls = wrapperCreativeElement.trackingEvents[eventName];\n if (\n !Array.isArray(\n ad.trackingEvents[wrapperCreativeElement.type][eventName]\n )\n ) {\n ad.trackingEvents[wrapperCreativeElement.type][eventName] = [];\n }\n urls.forEach(url => {\n ad.trackingEvents[wrapperCreativeElement.type][eventName].push(url);\n });\n }\n }\n // ClickTracking\n if (wrapperCreativeElement.videoClickTrackingURLTemplates) {\n if (!Array.isArray(ad.videoClickTrackingURLTemplates)) {\n ad.videoClickTrackingURLTemplates = [];\n } // tmp property to save wrapper tracking URLs until they are merged\n wrapperCreativeElement.videoClickTrackingURLTemplates.forEach(item => {\n ad.videoClickTrackingURLTemplates.push(item);\n });\n }\n // ClickThrough\n if (wrapperCreativeElement.videoClickThroughURLTemplate) {\n ad.videoClickThroughURLTemplate =\n wrapperCreativeElement.videoClickThroughURLTemplate;\n }\n // CustomClick\n if (wrapperCreativeElement.videoCustomClickURLTemplates) {\n if (!Array.isArray(ad.videoCustomClickURLTemplates)) {\n ad.videoCustomClickURLTemplates = [];\n } // tmp property to save wrapper tracking URLs until they are merged\n wrapperCreativeElement.videoCustomClickURLTemplates.forEach(item => {\n ad.videoCustomClickURLTemplates.push(item);\n });\n }\n }\n });\n\n if (ad.nextWrapperURL) {\n return ad;\n }\n}\n\n/**\n * Parses an array of Extension elements.\n * @param {Array} collection - The array used to store the parsed extensions.\n * @param {Array} extensions - The array of extensions to parse.\n */\nfunction parseExtensions(collection, extensions) {\n extensions.forEach(extNode => {\n const ext = new AdExtension();\n const extNodeAttrs = extNode.attributes;\n const childNodes = extNode.childNodes;\n\n if (extNode.attributes) {\n for (const extNodeAttrKey in extNodeAttrs) {\n const extNodeAttr = extNodeAttrs[extNodeAttrKey];\n\n if (extNodeAttr.nodeName && extNodeAttr.nodeValue) {\n ext.attributes[extNodeAttr.nodeName] = extNodeAttr.nodeValue;\n }\n }\n }\n\n for (const childNodeKey in childNodes) {\n const childNode = childNodes[childNodeKey];\n const txt = parserUtils.parseNodeText(childNode);\n\n // ignore comments / empty value\n if (childNode.nodeName !== '#comment' && txt !== '') {\n const extChild = new AdExtensionChild();\n extChild.name = childNode.nodeName;\n extChild.value = txt;\n\n if (childNode.attributes) {\n const childNodeAttributes = childNode.attributes;\n\n for (const extChildNodeAttrKey in childNodeAttributes) {\n const extChildNodeAttr = childNodeAttributes[extChildNodeAttrKey];\n\n extChild.attributes[extChildNodeAttr.nodeName] =\n extChildNodeAttr.nodeValue;\n }\n }\n\n ext.children.push(extChild);\n }\n }\n\n collection.push(ext);\n });\n}\n\n/**\n * Parses the creative adId Attribute.\n * @param {any} creativeElement - The creative element to retrieve the adId from.\n * @return {String|null}\n */\nfunction parseCreativeAdIdAttribute(creativeElement) {\n return (\n creativeElement.getAttribute('AdID') || // VAST 2 spec\n creativeElement.getAttribute('adID') || // VAST 3 spec\n creativeElement.getAttribute('adId') || // VAST 4 spec\n null\n );\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vast-client/src/parser/ad_parser.js","export class Ad {\n constructor() {\n this.id = null;\n this.sequence = null;\n this.system = null;\n this.title = null;\n this.description = null;\n this.advertiser = null;\n this.pricing = null;\n this.survey = null;\n this.errorURLTemplates = [];\n this.impressionURLTemplates = [];\n this.creatives = [];\n this.extensions = [];\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vast-client/src/ad.js","export class AdExtension {\n constructor() {\n this.attributes = {};\n this.children = [];\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vast-client/src/ad_extension.js","export class AdExtensionChild {\n constructor() {\n this.name = null;\n this.value = null;\n this.attributes = {};\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vast-client/src/ad_extension_child.js","import { CompanionAd } from '../companion_ad';\nimport { CreativeCompanion } from '../creative/creative_companion';\nimport { parserUtils } from './parser_utils';\n\n/**\n * This module provides methods to parse a VAST CompanionAd Element.\n */\n\n/**\n * Parses a CompanionAd.\n * @param {Object} creativeElement - The VAST CompanionAd element to parse.\n * @param {Object} creativeAttributes - The attributes of the CompanionAd (optional).\n * @return {CreativeCompanion}\n */\nexport function parseCreativeCompanion(creativeElement, creativeAttributes) {\n const creative = new CreativeCompanion(creativeAttributes);\n\n parserUtils\n .childrenByName(creativeElement, 'Companion')\n .forEach(companionResource => {\n const companionAd = new CompanionAd();\n companionAd.id = companionResource.getAttribute('id') || null;\n companionAd.width = companionResource.getAttribute('width');\n companionAd.height = companionResource.getAttribute('height');\n companionAd.companionClickTrackingURLTemplates = [];\n\n parserUtils\n .childrenByName(companionResource, 'HTMLResource')\n .forEach(htmlElement => {\n companionAd.type =\n htmlElement.getAttribute('creativeType') || 'text/html';\n companionAd.htmlResource = parserUtils.parseNodeText(htmlElement);\n });\n\n parserUtils\n .childrenByName(companionResource, 'IFrameResource')\n .forEach(iframeElement => {\n companionAd.type = iframeElement.getAttribute('creativeType') || 0;\n companionAd.iframeResource = parserUtils.parseNodeText(iframeElement);\n });\n\n parserUtils\n .childrenByName(companionResource, 'StaticResource')\n .forEach(staticElement => {\n companionAd.type = staticElement.getAttribute('creativeType') || 0;\n\n parserUtils\n .childrenByName(companionResource, 'AltText')\n .forEach(child => {\n companionAd.altText = parserUtils.parseNodeText(child);\n });\n\n companionAd.staticResource = parserUtils.parseNodeText(staticElement);\n });\n\n parserUtils\n .childrenByName(companionResource, 'TrackingEvents')\n .forEach(trackingEventsElement => {\n parserUtils\n .childrenByName(trackingEventsElement, 'Tracking')\n .forEach(trackingElement => {\n const eventName = trackingElement.getAttribute('event');\n const trackingURLTemplate = parserUtils.parseNodeText(\n trackingElement\n );\n if (eventName && trackingURLTemplate) {\n if (!Array.isArray(companionAd.trackingEvents[eventName])) {\n companionAd.trackingEvents[eventName] = [];\n }\n companionAd.trackingEvents[eventName].push(trackingURLTemplate);\n }\n });\n });\n\n parserUtils\n .childrenByName(companionResource, 'CompanionClickTracking')\n .forEach(clickTrackingElement => {\n companionAd.companionClickTrackingURLTemplates.push(\n parserUtils.parseNodeText(clickTrackingElement)\n );\n });\n\n companionAd.companionClickThroughURLTemplate = parserUtils.parseNodeText(\n parserUtils.childByName(companionResource, 'CompanionClickThrough')\n );\n companionAd.companionClickTrackingURLTemplate = parserUtils.parseNodeText(\n parserUtils.childByName(companionResource, 'CompanionClickTracking')\n );\n creative.variations.push(companionAd);\n });\n\n return creative;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vast-client/src/parser/creative_companion_parser.js","import { Creative } from './creative';\n\nexport class CreativeCompanion extends Creative {\n constructor(creativeAttributes = {}) {\n super(creativeAttributes);\n\n this.type = 'companion';\n this.variations = [];\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vast-client/src/creative/creative_companion.js","import { CreativeLinear } from '../creative/creative_linear';\nimport { Icon } from '../icon';\nimport { MediaFile } from '../media_file';\nimport { parserUtils } from './parser_utils';\n\n/**\n * This module provides methods to parse a VAST Linear Element.\n */\n\n/**\n * Parses a Linear element.\n * @param {Object} creativeElement - The VAST Linear element to parse.\n * @param {any} creativeAttributes - The attributes of the Linear (optional).\n * @return {CreativeLinear}\n */\nexport function parseCreativeLinear(creativeElement, creativeAttributes) {\n let offset;\n const creative = new CreativeLinear(creativeAttributes);\n\n creative.duration = parserUtils.parseDuration(\n parserUtils.parseNodeText(\n parserUtils.childByName(creativeElement, 'Duration')\n )\n );\n const skipOffset = creativeElement.getAttribute('skipoffset');\n\n if (typeof skipOffset === 'undefined' || skipOffset === null) {\n creative.skipDelay = null;\n } else if (\n skipOffset.charAt(skipOffset.length - 1) === '%' &&\n creative.duration !== -1\n ) {\n const percent = parseInt(skipOffset, 10);\n creative.skipDelay = creative.duration * (percent / 100);\n } else {\n creative.skipDelay = parserUtils.parseDuration(skipOffset);\n }\n\n const videoClicksElement = parserUtils.childByName(\n creativeElement,\n 'VideoClicks'\n );\n if (videoClicksElement) {\n creative.videoClickThroughURLTemplate = parserUtils.parseNodeText(\n parserUtils.childByName(videoClicksElement, 'ClickThrough')\n );\n\n parserUtils\n .childrenByName(videoClicksElement, 'ClickTracking')\n .forEach(clickTrackingElement => {\n creative.videoClickTrackingURLTemplates.push(\n parserUtils.parseNodeText(clickTrackingElement)\n );\n });\n\n parserUtils\n .childrenByName(videoClicksElement, 'CustomClick')\n .forEach(customClickElement => {\n creative.videoCustomClickURLTemplates.push(\n parserUtils.parseNodeText(customClickElement)\n );\n });\n }\n\n const adParamsElement = parserUtils.childByName(\n creativeElement,\n 'AdParameters'\n );\n if (adParamsElement) {\n creative.adParameters = parserUtils.parseNodeText(adParamsElement);\n }\n\n parserUtils\n .childrenByName(creativeElement, 'TrackingEvents')\n .forEach(trackingEventsElement => {\n parserUtils\n .childrenByName(trackingEventsElement, 'Tracking')\n .forEach(trackingElement => {\n let eventName = trackingElement.getAttribute('event');\n const trackingURLTemplate = parserUtils.parseNodeText(\n trackingElement\n );\n if (eventName && trackingURLTemplate) {\n if (eventName === 'progress') {\n offset = trackingElement.getAttribute('offset');\n if (!offset) {\n return;\n }\n if (offset.charAt(offset.length - 1) === '%') {\n eventName = `progress-${offset}`;\n } else {\n eventName = `progress-${Math.round(\n parserUtils.parseDuration(offset)\n )}`;\n }\n }\n\n if (!Array.isArray(creative.trackingEvents[eventName])) {\n creative.trackingEvents[eventName] = [];\n }\n creative.trackingEvents[eventName].push(trackingURLTemplate);\n }\n });\n });\n\n parserUtils\n .childrenByName(creativeElement, 'MediaFiles')\n .forEach(mediaFilesElement => {\n parserUtils\n .childrenByName(mediaFilesElement, 'MediaFile')\n .forEach(mediaFileElement => {\n const mediaFile = new MediaFile();\n mediaFile.id = mediaFileElement.getAttribute('id');\n mediaFile.fileURL = parserUtils.parseNodeText(mediaFileElement);\n mediaFile.deliveryType = mediaFileElement.getAttribute('delivery');\n mediaFile.codec = mediaFileElement.getAttribute('codec');\n mediaFile.mimeType = mediaFileElement.getAttribute('type');\n mediaFile.apiFramework = mediaFileElement.getAttribute(\n 'apiFramework'\n );\n mediaFile.bitrate = parseInt(\n mediaFileElement.getAttribute('bitrate') || 0\n );\n mediaFile.minBitrate = parseInt(\n mediaFileElement.getAttribute('minBitrate') || 0\n );\n mediaFile.maxBitrate = parseInt(\n mediaFileElement.getAttribute('maxBitrate') || 0\n );\n mediaFile.width = parseInt(\n mediaFileElement.getAttribute('width') || 0\n );\n mediaFile.height = parseInt(\n mediaFileElement.getAttribute('height') || 0\n );\n\n let scalable = mediaFileElement.getAttribute('scalable');\n if (scalable && typeof scalable === 'string') {\n scalable = scalable.toLowerCase();\n if (scalable === 'true') {\n mediaFile.scalable = true;\n } else if (scalable === 'false') {\n mediaFile.scalable = false;\n }\n }\n\n let maintainAspectRatio = mediaFileElement.getAttribute(\n 'maintainAspectRatio'\n );\n if (maintainAspectRatio && typeof maintainAspectRatio === 'string') {\n maintainAspectRatio = maintainAspectRatio.toLowerCase();\n if (maintainAspectRatio === 'true') {\n mediaFile.maintainAspectRatio = true;\n } else if (maintainAspectRatio === 'false') {\n mediaFile.maintainAspectRatio = false;\n }\n }\n\n creative.mediaFiles.push(mediaFile);\n });\n });\n\n const iconsElement = parserUtils.childByName(creativeElement, 'Icons');\n if (iconsElement) {\n parserUtils.childrenByName(iconsElement, 'Icon').forEach(iconElement => {\n const icon = new Icon();\n icon.program = iconElement.getAttribute('program');\n icon.height = parseInt(iconElement.getAttribute('height') || 0);\n icon.width = parseInt(iconElement.getAttribute('width') || 0);\n icon.xPosition = parseXPosition(iconElement.getAttribute('xPosition'));\n icon.yPosition = parseYPosition(iconElement.getAttribute('yPosition'));\n icon.apiFramework = iconElement.getAttribute('apiFramework');\n icon.offset = parserUtils.parseDuration(\n iconElement.getAttribute('offset')\n );\n icon.duration = parserUtils.parseDuration(\n iconElement.getAttribute('duration')\n );\n\n parserUtils\n .childrenByName(iconElement, 'HTMLResource')\n .forEach(htmlElement => {\n icon.type = htmlElement.getAttribute('creativeType') || 'text/html';\n icon.htmlResource = parserUtils.parseNodeText(htmlElement);\n });\n\n parserUtils\n .childrenByName(iconElement, 'IFrameResource')\n .forEach(iframeElement => {\n icon.type = iframeElement.getAttribute('creativeType') || 0;\n icon.iframeResource = parserUtils.parseNodeText(iframeElement);\n });\n\n parserUtils\n .childrenByName(iconElement, 'StaticResource')\n .forEach(staticElement => {\n icon.type = staticElement.getAttribute('creativeType') || 0;\n icon.staticResource = parserUtils.parseNodeText(staticElement);\n });\n\n const iconClicksElement = parserUtils.childByName(\n iconElement,\n 'IconClicks'\n );\n if (iconClicksElement) {\n icon.iconClickThroughURLTemplate = parserUtils.parseNodeText(\n parserUtils.childByName(iconClicksElement, 'IconClickThrough')\n );\n parserUtils\n .childrenByName(iconClicksElement, 'IconClickTracking')\n .forEach(iconClickTrackingElement => {\n icon.iconClickTrackingURLTemplates.push(\n parserUtils.parseNodeText(iconClickTrackingElement)\n );\n });\n }\n\n icon.iconViewTrackingURLTemplate = parserUtils.parseNodeText(\n parserUtils.childByName(iconElement, 'IconViewTracking')\n );\n\n creative.icons.push(icon);\n });\n }\n\n return creative;\n}\n\n/**\n * Parses an horizontal position into a String ('left' or 'right') or into a Number.\n * @param {String} xPosition - The x position to parse.\n * @return {String|Number}\n */\nfunction parseXPosition(xPosition) {\n if (['left', 'right'].indexOf(xPosition) !== -1) {\n return xPosition;\n }\n\n return parseInt(xPosition || 0);\n}\n\n/**\n * Parses an vertical position into a String ('top' or 'bottom') or into a Number.\n * @param {String} yPosition - The x position to parse.\n * @return {String|Number}\n */\nfunction parseYPosition(yPosition) {\n if (['top', 'bottom'].indexOf(yPosition) !== -1) {\n return yPosition;\n }\n\n return parseInt(yPosition || 0);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vast-client/src/parser/creative_linear_parser.js","export class Icon {\n constructor() {\n this.program = null;\n this.height = 0;\n this.width = 0;\n this.xPosition = 0;\n this.yPosition = 0;\n this.apiFramework = null;\n this.offset = null;\n this.duration = 0;\n this.type = null;\n this.staticResource = null;\n this.htmlResource = null;\n this.iframeResource = null;\n this.iconClickThroughURLTemplate = null;\n this.iconClickTrackingURLTemplates = [];\n this.iconViewTrackingURLTemplate = null;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vast-client/src/icon.js","export class MediaFile {\n constructor() {\n this.id = null;\n this.fileURL = null;\n this.deliveryType = 'progressive';\n this.mimeType = null;\n this.codec = null;\n this.bitrate = 0;\n this.minBitrate = 0;\n this.maxBitrate = 0;\n this.width = 0;\n this.height = 0;\n this.apiFramework = null;\n this.scalable = null;\n this.maintainAspectRatio = null;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vast-client/src/media_file.js","import { CreativeNonLinear } from '../creative/creative_non_linear';\nimport { NonLinearAd } from '../non_linear_ad';\nimport { parserUtils } from './parser_utils';\n\n/**\n * This module provides methods to parse a VAST NonLinear Element.\n */\n\n/**\n * Parses a NonLinear element.\n * @param {any} creativeElement - The VAST NonLinear element to parse.\n * @param {any} creativeAttributes - The attributes of the NonLinear (optional).\n * @return {CreativeNonLinear}\n */\nexport function parseCreativeNonLinear(creativeElement, creativeAttributes) {\n const creative = new CreativeNonLinear(creativeAttributes);\n\n parserUtils\n .childrenByName(creativeElement, 'TrackingEvents')\n .forEach(trackingEventsElement => {\n let eventName, trackingURLTemplate;\n parserUtils\n .childrenByName(trackingEventsElement, 'Tracking')\n .forEach(trackingElement => {\n eventName = trackingElement.getAttribute('event');\n trackingURLTemplate = parserUtils.parseNodeText(trackingElement);\n\n if (eventName && trackingURLTemplate) {\n if (!Array.isArray(creative.trackingEvents[eventName])) {\n creative.trackingEvents[eventName] = [];\n }\n creative.trackingEvents[eventName].push(trackingURLTemplate);\n }\n });\n });\n\n parserUtils\n .childrenByName(creativeElement, 'NonLinear')\n .forEach(nonlinearResource => {\n const nonlinearAd = new NonLinearAd();\n nonlinearAd.id = nonlinearResource.getAttribute('id') || null;\n nonlinearAd.width = nonlinearResource.getAttribute('width');\n nonlinearAd.height = nonlinearResource.getAttribute('height');\n nonlinearAd.expandedWidth = nonlinearResource.getAttribute(\n 'expandedWidth'\n );\n nonlinearAd.expandedHeight = nonlinearResource.getAttribute(\n 'expandedHeight'\n );\n nonlinearAd.scalable = parserUtils.parseBoolean(\n nonlinearResource.getAttribute('scalable')\n );\n nonlinearAd.maintainAspectRatio = parserUtils.parseBoolean(\n nonlinearResource.getAttribute('maintainAspectRatio')\n );\n nonlinearAd.minSuggestedDuration = parserUtils.parseDuration(\n nonlinearResource.getAttribute('minSuggestedDuration')\n );\n nonlinearAd.apiFramework = nonlinearResource.getAttribute('apiFramework');\n\n parserUtils\n .childrenByName(nonlinearResource, 'HTMLResource')\n .forEach(htmlElement => {\n nonlinearAd.type =\n htmlElement.getAttribute('creativeType') || 'text/html';\n nonlinearAd.htmlResource = parserUtils.parseNodeText(htmlElement);\n });\n\n parserUtils\n .childrenByName(nonlinearResource, 'IFrameResource')\n .forEach(iframeElement => {\n nonlinearAd.type = iframeElement.getAttribute('creativeType') || 0;\n nonlinearAd.iframeResource = parserUtils.parseNodeText(iframeElement);\n });\n\n parserUtils\n .childrenByName(nonlinearResource, 'StaticResource')\n .forEach(staticElement => {\n nonlinearAd.type = staticElement.getAttribute('creativeType') || 0;\n nonlinearAd.staticResource = parserUtils.parseNodeText(staticElement);\n });\n\n const adParamsElement = parserUtils.childByName(\n nonlinearResource,\n 'AdParameters'\n );\n if (adParamsElement) {\n nonlinearAd.adParameters = parserUtils.parseNodeText(adParamsElement);\n }\n\n nonlinearAd.nonlinearClickThroughURLTemplate = parserUtils.parseNodeText(\n parserUtils.childByName(nonlinearResource, 'NonLinearClickThrough')\n );\n parserUtils\n .childrenByName(nonlinearResource, 'NonLinearClickTracking')\n .forEach(clickTrackingElement => {\n nonlinearAd.nonlinearClickTrackingURLTemplates.push(\n parserUtils.parseNodeText(clickTrackingElement)\n );\n });\n\n creative.variations.push(nonlinearAd);\n });\n\n return creative;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vast-client/src/parser/creative_non_linear_parser.js","import { Creative } from './creative';\n\nexport class CreativeNonLinear extends Creative {\n constructor(creativeAttributes = {}) {\n super(creativeAttributes);\n\n this.type = 'nonlinear';\n this.variations = [];\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vast-client/src/creative/creative_non_linear.js","import { flashURLHandler } from './urlhandlers/flash_url_handler';\nimport { nodeURLHandler } from './urlhandlers/mock_node_url_handler';\nimport { XHRURLHandler } from './urlhandlers/xhr_url_handler';\n\nfunction get(url, options, cb) {\n // Allow skip of the options param\n if (!cb) {\n if (typeof options === 'function') {\n cb = options;\n }\n options = {};\n }\n\n if (typeof window === 'undefined' || window === null) {\n return nodeURLHandler.get(url, options, cb);\n } else if (XHRURLHandler.supported()) {\n return XHRURLHandler.get(url, options, cb);\n } else if (flashURLHandler.supported()) {\n return flashURLHandler.get(url, options, cb);\n }\n return cb(\n new Error(\n 'Current context is not supported by any of the default URLHandlers. Please provide a custom URLHandler'\n )\n );\n}\n\nexport const urlHandler = {\n get\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vast-client/src/url_handler.js","function xdr() {\n let request;\n if (window.XDomainRequest) {\n // eslint-disable-next-line no-undef\n request = new XDomainRequest();\n }\n return request;\n}\n\nfunction supported() {\n return !!xdr();\n}\n\nfunction get(url, options, cb) {\n const xmlDocument =\n typeof window.ActiveXObject === 'function'\n ? new window.ActiveXObject('Microsoft.XMLDOM')\n : undefined;\n\n if (xmlDocument) {\n xmlDocument.async = false;\n } else {\n return cb(\n new Error('FlashURLHandler: Microsoft.XMLDOM format not supported')\n );\n }\n\n const request = xdr();\n request.open('GET', url);\n request.timeout = options.timeout || 0;\n request.withCredentials = options.withCredentials || false;\n request.send();\n request.onprogress = function() {};\n\n request.onload = function() {\n xmlDocument.loadXML(request.responseText);\n cb(null, xmlDocument);\n };\n}\n\nexport const flashURLHandler = {\n get,\n supported\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vast-client/src/urlhandlers/flash_url_handler.js","// This mock module is loaded in stead of the original NodeURLHandler module\n// when bundling the library for environments which are not node.\n// This allows us to avoid bundling useless node components and have a smaller build.\nfunction get(url, options, cb) {\n cb(\n new Error('Please bundle the library for node to use the node urlHandler')\n );\n}\n\nexport const nodeURLHandler = {\n get\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vast-client/src/urlhandlers/mock_node_url_handler.js","function xhr() {\n try {\n const request = new window.XMLHttpRequest();\n if ('withCredentials' in request) {\n // check CORS support\n return request;\n }\n return null;\n } catch (err) {\n return null;\n }\n}\n\nfunction supported() {\n return !!xhr();\n}\n\nfunction get(url, options, cb) {\n if (window.location.protocol === 'https:' && url.indexOf('http://') === 0) {\n return cb(new Error('XHRURLHandler: Cannot go from HTTPS to HTTP.'));\n }\n\n try {\n const request = xhr();\n\n request.open('GET', url);\n request.timeout = options.timeout || 0;\n request.withCredentials = options.withCredentials || false;\n request.overrideMimeType && request.overrideMimeType('text/xml');\n request.onreadystatechange = function() {\n if (request.readyState === 4) {\n if (request.status === 200) {\n cb(null, request.responseXML);\n } else {\n cb(new Error(`XHRURLHandler: ${request.statusText}`));\n }\n }\n };\n request.send();\n } catch (error) {\n cb(new Error('XHRURLHandler: Unexpected error'));\n }\n}\n\nexport const XHRURLHandler = {\n get,\n supported\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vast-client/src/urlhandlers/xhr_url_handler.js","export class VASTResponse {\n constructor() {\n this.ads = [];\n this.errorURLTemplates = [];\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vast-client/src/vast_response.js","import { Storage } from './util/storage';\nimport { VASTParser } from './parser/vast_parser';\n\n/**\n * This class provides methods to fetch and parse a VAST document using VASTParser.\n * In addition it provides options to skip consecutive calls based on constraints.\n * @export\n * @class VASTClient\n */\nexport class VASTClient {\n /**\n * Creates an instance of VASTClient.\n * @param {Number} cappingFreeLunch - The number of first calls to skip.\n * @param {Number} cappingMinimumTimeInterval - The minimum time interval between two consecutive calls.\n * @param {Storage} customStorage - A custom storage to use instead of the default one.\n * @constructor\n */\n constructor(cappingFreeLunch, cappingMinimumTimeInterval, customStorage) {\n this.cappingFreeLunch = cappingFreeLunch || 0;\n this.cappingMinimumTimeInterval = cappingMinimumTimeInterval || 0;\n this.defaultOptions = {\n withCredentials: false,\n timeout: 0\n };\n this.vastParser = new VASTParser();\n this.storage = customStorage || new Storage();\n\n // Init values if not already set\n if (this.lastSuccessfulAd === undefined) {\n this.lastSuccessfulAd = 0;\n }\n\n if (this.totalCalls === undefined) {\n this.totalCalls = 0;\n }\n if (this.totalCallsTimeout === undefined) {\n this.totalCallsTimeout = 0;\n }\n }\n\n getParser() {\n return this.vastParser;\n }\n\n get lastSuccessfulAd() {\n return this.storage.getItem('vast-client-last-successful-ad');\n }\n\n set lastSuccessfulAd(value) {\n this.storage.setItem('vast-client-last-successful-ad', value);\n }\n\n get totalCalls() {\n return this.storage.getItem('vast-client-total-calls');\n }\n\n set totalCalls(value) {\n this.storage.setItem('vast-client-total-calls', value);\n }\n\n get totalCallsTimeout() {\n return this.storage.getItem('vast-client-total-calls-timeout');\n }\n\n set totalCallsTimeout(value) {\n this.storage.setItem('vast-client-total-calls-timeout', value);\n }\n\n /**\n * Returns a boolean indicating if there are more ads to resolve for the current parsing.\n * @return {Boolean}\n */\n hasRemainingAds() {\n return this.vastParser.remainingAds.length > 0;\n }\n\n /**\n * Resolves the next group of ads. If all is true resolves all the remaining ads.\n * @param {Boolean} all - If true all the remaining ads are resolved\n * @return {Promise}\n */\n getNextAds(all) {\n return this.vastParser.getRemainingAds(all);\n }\n\n /**\n * Gets a parsed VAST document for the given url, applying the skipping rules defined.\n * Returns a Promise which resolves with a fully parsed VASTResponse or rejects with an Error.\n * @param {String} url - The url to use to fecth the VAST document.\n * @param {Object} options - An optional Object of parameters to be applied in the process.\n * @return {Promise}\n */\n get(url, options = {}) {\n const now = Date.now();\n options = Object.assign(this.defaultOptions, options);\n\n // By default the client resolves only the first Ad or AdPod\n if (!options.hasOwnProperty('resolveAll')) {\n options.resolveAll = false;\n }\n\n // Check totalCallsTimeout (first call + 1 hour), if older than now,\n // reset totalCalls number, by this way the client will be eligible again\n // for freelunch capping\n if (this.totalCallsTimeout < now) {\n this.totalCalls = 1;\n this.totalCallsTimeout = now + 60 * 60 * 1000;\n } else {\n this.totalCalls++;\n }\n\n return new Promise((resolve, reject) => {\n if (this.cappingFreeLunch >= this.totalCalls) {\n return reject(\n new Error(\n `VAST call canceled – FreeLunch capping not reached yet ${\n this.totalCalls\n }/${this.cappingFreeLunch}`\n )\n );\n }\n\n const timeSinceLastCall = now - this.lastSuccessfulAd;\n\n // Check timeSinceLastCall to be a positive number. If not, this mean the\n // previous was made in the future. We reset lastSuccessfulAd value\n if (timeSinceLastCall < 0) {\n this.lastSuccessfulAd = 0;\n } else if (timeSinceLastCall < this.cappingMinimumTimeInterval) {\n return reject(\n new Error(\n `VAST call canceled – (${\n this.cappingMinimumTimeInterval\n })ms minimum interval reached`\n )\n );\n }\n\n this.vastParser\n .getAndParseVAST(url, options)\n .then(response => resolve(response))\n .catch(err => reject(err));\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vast-client/src/vast_client.js","let storage = null;\n\n/**\n * This Object represents a default storage to be used in case no other storage is available.\n * @constant\n * @type {Object}\n */\nconst DEFAULT_STORAGE = {\n data: {},\n length: 0,\n getItem(key) {\n return this.data[key];\n },\n setItem(key, value) {\n this.data[key] = value;\n this.length = Object.keys(this.data).length;\n },\n removeItem(key) {\n delete this.data[key];\n this.length = Object.keys(this.data).length;\n },\n clear() {\n this.data = {};\n this.length = 0;\n }\n};\n\n/**\n * This class provides an wrapper interface to the a key-value storage.\n * It uses localStorage, sessionStorage or a custom storage if none of the two is available.\n * @export\n * @class Storage\n */\nexport class Storage {\n /**\n * Creates an instance of Storage.\n * @constructor\n */\n constructor() {\n this.storage = this.initStorage();\n }\n\n /**\n * Provides a singleton instance of the wrapped storage.\n * @return {Object}\n */\n initStorage() {\n if (storage) {\n return storage;\n }\n\n try {\n storage =\n typeof window !== 'undefined' && window !== null\n ? window.localStorage || window.sessionStorage\n : null;\n } catch (storageError) {\n storage = null;\n }\n\n if (!storage || this.isStorageDisabled(storage)) {\n storage = DEFAULT_STORAGE;\n storage.clear();\n }\n\n return storage;\n }\n\n /**\n * Check if storage is disabled (like in certain cases with private browsing).\n * In Safari (Mac + iOS) when private browsing is ON, localStorage is read only\n * http://spin.atomicobject.com/2013/01/23/ios-private-browsing-localstorage/\n * @param {Object} testStorage - The storage to check.\n * @return {Boolean}\n */\n isStorageDisabled(testStorage) {\n const testValue = '__VASTStorage__';\n\n try {\n testStorage.setItem(testValue, testValue);\n if (testStorage.getItem(testValue) !== testValue) {\n testStorage.removeItem(testValue);\n return true;\n }\n } catch (e) {\n return true;\n }\n\n testStorage.removeItem(testValue);\n return false;\n }\n\n /**\n * Returns the value for the given key. If the key does not exist, null is returned.\n * @param {String} key - The key to retrieve the value.\n * @return {any}\n */\n getItem(key) {\n return this.storage.getItem(key);\n }\n\n /**\n * Adds or updates the value for the given key.\n * @param {String} key - The key to modify the value.\n * @param {any} value - The value to be associated with the key.\n * @return {any}\n */\n setItem(key, value) {\n return this.storage.setItem(key, value);\n }\n\n /**\n * Removes an item for the given key.\n * @param {String} key - The key to remove the value.\n * @return {any}\n */\n removeItem(key) {\n return this.storage.removeItem(key);\n }\n\n /**\n * Removes all the items from the storage.\n */\n clear() {\n return this.storage.clear();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vast-client/src/util/storage.js","import { CompanionAd } from './companion_ad';\nimport { CreativeLinear } from './creative/creative_linear';\nimport { EventEmitter } from 'events';\nimport { NonLinearAd } from './non_linear_ad';\nimport { util } from './util/util';\n\n/**\n * The default skip delay used in case a custom one is not provided\n * @constant\n * @type {Number}\n */\nconst DEFAULT_SKIP_DELAY = -1;\n\n/**\n * This class provides methods to track an ad execution.\n *\n * @export\n * @class VASTTracker\n * @extends EventEmitter\n */\nexport class VASTTracker extends EventEmitter {\n /**\n * Creates an instance of VASTTracker.\n *\n * @param {VASTClient} client - An instance of VASTClient that can be updated by the tracker. [optional]\n * @param {Ad} ad - The ad to track.\n * @param {Creative} creative - The creative to track.\n * @param {CompanionAd|NonLinearAd} [variation=null] - An optional variation of the creative.\n * @constructor\n */\n constructor(client, ad, creative, variation = null) {\n super();\n this.ad = ad;\n this.creative = creative;\n this.variation = variation;\n this.muted = false;\n this.impressed = false;\n this.skippable = false;\n this.trackingEvents = {};\n // We need to save the already triggered quartiles, in order to not trigger them again\n this._alreadyTriggeredQuartiles = {};\n // Tracker listeners should be notified with some events\n // no matter if there is a tracking URL or not\n this.emitAlwaysEvents = [\n 'creativeView',\n 'start',\n 'firstQuartile',\n 'midpoint',\n 'thirdQuartile',\n 'complete',\n 'resume',\n 'pause',\n 'rewind',\n 'skip',\n 'closeLinear',\n 'close'\n ];\n\n // Duplicate the creative's trackingEvents property so we can alter it\n for (const eventName in this.creative.trackingEvents) {\n const events = this.creative.trackingEvents[eventName];\n this.trackingEvents[eventName] = events.slice(0);\n }\n\n // Nonlinear and companion creatives provide some tracking information at a variation level\n // While linear creatives provided that at a creative level. That's why we need to\n // differentiate how we retrieve some tracking information.\n if (this.creative instanceof CreativeLinear) {\n this._initLinearTracking();\n } else {\n this._initVariationTracking();\n }\n\n // If the tracker is associated with a client we add a listener to the start event\n // to update the lastSuccessfulAd property.\n if (client) {\n this.on('start', () => {\n client.lastSuccessfulAd = Date.now();\n });\n }\n }\n\n /**\n * Init the custom tracking options for linear creatives.\n *\n * @return {void}\n */\n _initLinearTracking() {\n this.linear = true;\n this.skipDelay = this.creative.skipDelay;\n\n this.setDuration(this.creative.duration);\n\n this.clickThroughURLTemplate = this.creative.videoClickThroughURLTemplate;\n this.clickTrackingURLTemplates = this.creative.videoClickTrackingURLTemplates;\n }\n\n /**\n * Init the custom tracking options for nonlinear and companion creatives.\n * These options are provided in the variation Object.\n *\n * @return {void}\n */\n _initVariationTracking() {\n this.linear = false;\n this.skipDelay = DEFAULT_SKIP_DELAY;\n\n // If no variation has been provided there's nothing else to set\n if (!this.variation) {\n return;\n }\n\n // Duplicate the variation's trackingEvents property so we can alter it\n for (const eventName in this.variation.trackingEvents) {\n const events = this.variation.trackingEvents[eventName];\n\n // If for the given eventName we already had some trackingEvents provided by the creative\n // we want to keep both the creative trackingEvents and the variation ones\n if (this.trackingEvents[eventName]) {\n this.trackingEvents[eventName] = this.trackingEvents[eventName].concat(\n events.slice(0)\n );\n } else {\n this.trackingEvents[eventName] = events.slice(0);\n }\n }\n\n if (this.variation instanceof NonLinearAd) {\n this.clickThroughURLTemplate = this.variation.nonlinearClickThroughURLTemplate;\n this.clickTrackingURLTemplates = this.variation.nonlinearClickTrackingURLTemplates;\n this.setDuration(this.variation.minSuggestedDuration);\n } else if (this.variation instanceof CompanionAd) {\n this.clickThroughURLTemplate = this.variation.companionClickThroughURLTemplate;\n this.clickTrackingURLTemplates = this.variation.companionClickTrackingURLTemplates;\n }\n }\n\n /**\n * Sets the duration of the ad and updates the quartiles based on that.\n *\n * @param {Number} duration - The duration of the ad.\n */\n setDuration(duration) {\n this.assetDuration = duration;\n // beware of key names, theses are also used as event names\n this.quartiles = {\n firstQuartile: Math.round(25 * this.assetDuration) / 100,\n midpoint: Math.round(50 * this.assetDuration) / 100,\n thirdQuartile: Math.round(75 * this.assetDuration) / 100\n };\n }\n\n /**\n * Sets the duration of the ad and updates the quartiles based on that.\n * This is required for tracking time related events.\n *\n * @param {Number} progress - Current playback time in seconds.\n * @emits VASTTracker#start\n * @emits VASTTracker#skip-countdown\n * @emits VASTTracker#progress-[0-100]%\n * @emits VASTTracker#progress-[currentTime]\n * @emits VASTTracker#rewind\n * @emits VASTTracker#firstQuartile\n * @emits VASTTracker#midpoint\n * @emits VASTTracker#thirdQuartile\n */\n setProgress(progress) {\n const skipDelay = this.skipDelay || DEFAULT_SKIP_DELAY;\n\n if (skipDelay !== -1 && !this.skippable) {\n if (skipDelay > progress) {\n this.emit('skip-countdown', skipDelay - progress);\n } else {\n this.skippable = true;\n this.emit('skip-countdown', 0);\n }\n }\n\n if (this.assetDuration > 0) {\n const events = [];\n\n if (progress > 0) {\n const percent = Math.round((progress / this.assetDuration) * 100);\n\n events.push('start');\n events.push(`progress-${percent}%`);\n events.push(`progress-${Math.round(progress)}`);\n\n for (const quartile in this.quartiles) {\n if (\n this.isQuartileReached(quartile, this.quartiles[quartile], progress)\n ) {\n events.push(quartile);\n this._alreadyTriggeredQuartiles[quartile] = true;\n }\n }\n }\n\n events.forEach(eventName => {\n this.track(eventName, true);\n });\n\n if (progress < this.progress) {\n this.track('rewind');\n }\n }\n\n this.progress = progress;\n }\n\n /**\n * Checks if a quartile has been reached without have being triggered already.\n *\n * @param {String} quartile - Quartile name\n * @param {Number} time - Time offset, when this quartile is reached in seconds.\n * @param {Number} progress - Current progress of the ads in seconds.\n *\n * @return {Boolean}\n */\n isQuartileReached(quartile, time, progress) {\n let quartileReached = false;\n // if quartile time already reached and never triggered\n if (time <= progress && !this._alreadyTriggeredQuartiles[quartile]) {\n quartileReached = true;\n }\n return quartileReached;\n }\n\n /**\n * Updates the mute state and calls the mute/unmute tracking URLs.\n *\n * @param {Boolean} muted - Indicates if the video is muted or not.\n * @emits VASTTracker#mute\n * @emits VASTTracker#unmute\n */\n setMuted(muted) {\n if (this.muted !== muted) {\n this.track(muted ? 'mute' : 'unmute');\n }\n this.muted = muted;\n }\n\n /**\n * Update the pause state and call the resume/pause tracking URLs.\n *\n * @param {Boolean} paused - Indicates if the video is paused or not.\n * @emits VASTTracker#pause\n * @emits VASTTracker#resume\n */\n setPaused(paused) {\n if (this.paused !== paused) {\n this.track(paused ? 'pause' : 'resume');\n }\n this.paused = paused;\n }\n\n /**\n * Updates the fullscreen state and calls the fullscreen tracking URLs.\n *\n * @param {Boolean} fullscreen - Indicates if the video is in fulscreen mode or not.\n * @emits VASTTracker#fullscreen\n * @emits VASTTracker#exitFullscreen\n */\n setFullscreen(fullscreen) {\n if (this.fullscreen !== fullscreen) {\n this.track(fullscreen ? 'fullscreen' : 'exitFullscreen');\n }\n this.fullscreen = fullscreen;\n }\n\n /**\n * Updates the expand state and calls the expand/collapse tracking URLs.\n *\n * @param {Boolean} expanded - Indicates if the video is expanded or not.\n * @emits VASTTracker#expand\n * @emits VASTTracker#collapse\n */\n setExpand(expanded) {\n if (this.expanded !== expanded) {\n this.track(expanded ? 'expand' : 'collapse');\n }\n this.expanded = expanded;\n }\n\n /**\n * Must be called if you want to overwrite the <Linear> Skipoffset value.\n * This will init the skip countdown duration. Then, every time setProgress() is called,\n * it will decrease the countdown and emit a skip-countdown event with the remaining time.\n * Do not call this method if you want to keep the original Skipoffset value.\n *\n * @param {Number} duration - The time in seconds until the skip button is displayed.\n */\n setSkipDelay(duration) {\n if (typeof duration === 'number') {\n this.skipDelay = duration;\n }\n }\n\n /**\n * Tracks an impression (can be called only once).\n *\n * @emits VASTTracker#creativeView\n */\n trackImpression() {\n if (!this.impressed) {\n this.impressed = true;\n this.trackURLs(this.ad.impressionURLTemplates);\n this.track('creativeView');\n }\n }\n\n /**\n * Send a request to the URI provided by the VAST <Error> element.\n * If an [ERRORCODE] macro is included, it will be substitute with errorCode.\n *\n * @param {String} errorCode - Replaces [ERRORCODE] macro. [ERRORCODE] values are listed in the VAST specification.\n * @param {Boolean} [isCustomCode=false] - Flag to allow custom values on error code.\n */\n errorWithCode(errorCode, isCustomCode = false) {\n this.trackURLs(\n this.ad.errorURLTemplates,\n { ERRORCODE: errorCode },\n { isCustomCode }\n );\n }\n\n /**\n * Must be called when the user watched the linear creative until its end.\n * Calls the complete tracking URLs.\n *\n * @emits VASTTracker#complete\n */\n complete() {\n this.track('complete');\n }\n\n /**\n * Must be called when the player or the window is closed during the ad.\n * Calls the `closeLinear` (in VAST 3.0) and `close` tracking URLs.\n *\n * @emits VASTTracker#closeLinear\n * @emits VASTTracker#close\n */\n close() {\n this.track(this.linear ? 'closeLinear' : 'close');\n }\n\n /**\n * Must be called when the skip button is clicked. Calls the skip tracking URLs.\n *\n * @emits VASTTracker#skip\n */\n skip() {\n this.track('skip');\n }\n\n /**\n * Must be called when the user clicks on the creative.\n * It calls the tracking URLs and emits a 'clickthrough' event with the resolved\n * clickthrough URL when done.\n *\n * @param {String} [fallbackClickThroughURL=null] - an optional clickThroughURL template that could be used as a fallback\n * @emits VASTTracker#clickthrough\n */\n click(fallbackClickThroughURL = null) {\n if (\n this.clickTrackingURLTemplates &&\n this.clickTrackingURLTemplates.length\n ) {\n this.trackURLs(this.clickTrackingURLTemplates);\n }\n\n // Use the provided fallbackClickThroughURL as a fallback\n const clickThroughURLTemplate =\n this.clickThroughURLTemplate || fallbackClickThroughURL;\n\n if (clickThroughURLTemplate) {\n const variables = this.linear\n ? { CONTENTPLAYHEAD: this.progressFormatted() }\n : {};\n const clickThroughURL = util.resolveURLTemplates(\n [clickThroughURLTemplate],\n variables\n )[0];\n\n this.emit('clickthrough', clickThroughURL);\n }\n }\n\n /**\n * Calls the tracking URLs for the given eventName and emits the event.\n *\n * @param {String} eventName - The name of the event.\n * @param {Boolean} [once=false] - Boolean to define if the event has to be tracked only once.\n */\n track(eventName, once = false) {\n // closeLinear event was introduced in VAST 3.0\n // Fallback to vast 2.0 close event if necessary\n if (\n eventName === 'closeLinear' &&\n !this.trackingEvents[eventName] &&\n this.trackingEvents['close']\n ) {\n eventName = 'close';\n }\n\n const trackingURLTemplates = this.trackingEvents[eventName];\n const isAlwaysEmitEvent = this.emitAlwaysEvents.indexOf(eventName) > -1;\n\n if (trackingURLTemplates) {\n this.emit(eventName, '');\n this.trackURLs(trackingURLTemplates);\n } else if (isAlwaysEmitEvent) {\n this.emit(eventName, '');\n }\n\n if (once) {\n delete this.trackingEvents[eventName];\n if (isAlwaysEmitEvent) {\n this.emitAlwaysEvents.splice(\n this.emitAlwaysEvents.indexOf(eventName),\n 1\n );\n }\n }\n }\n\n /**\n * Calls the tracking urls templates with the given variables.\n *\n * @param {Array} URLTemplates - An array of tracking url templates.\n * @param {Object} [variables={}] - An optional Object of parameters to be used in the tracking calls.\n * @param {Object} [options={}] - An optional Object of options to be used in the tracking calls.\n */\n trackURLs(URLTemplates, variables = {}, options = {}) {\n if (this.linear) {\n if (\n this.creative &&\n this.creative.mediaFiles &&\n this.creative.mediaFiles[0] &&\n this.creative.mediaFiles[0].fileURL\n ) {\n variables['ASSETURI'] = this.creative.mediaFiles[0].fileURL;\n }\n variables['CONTENTPLAYHEAD'] = this.progressFormatted();\n }\n\n util.track(URLTemplates, variables, options);\n }\n\n /**\n * Formats time progress in a readable string.\n *\n * @return {String}\n */\n progressFormatted() {\n const seconds = parseInt(this.progress);\n let h = seconds / (60 * 60);\n if (h.length < 2) {\n h = `0${h}`;\n }\n let m = (seconds / 60) % 60;\n if (m.length < 2) {\n m = `0${m}`;\n }\n let s = seconds % 60;\n if (s.length < 2) {\n s = `0${m}`;\n }\n const ms = parseInt((this.progress - seconds) * 100);\n return `${h}:${m}:${s}.${ms}`;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/vast-client/src/vast_tracker.js","import { YouTube } from './YouTube'\nimport { SoundCloud } from './SoundCloud'\nimport { Vimeo } from './Vimeo'\nimport { Facebook } from './Facebook'\nimport { Streamable } from './Streamable'\nimport { FaceMask } from './FaceMask'\nimport { Wistia } from './Wistia'\nimport { Twitch } from './Twitch'\nimport { DailyMotion } from './DailyMotion'\nimport { UstreamLive } from './UstreamLive'\nimport { UstreamVideo } from './UstreamVideo'\nimport { Iframe } from './Iframe'\nimport { Mixcloud } from './Mixcloud'\nimport { FilePlayer } from './FilePlayer'\nimport { VAST } from './VAST'\nimport { JWPlayer } from './JWPlayer'\nimport { PhenixPlayer } from './PhenixPlayer'\n\nexport default [\n PhenixPlayer,\n YouTube,\n SoundCloud,\n Vimeo,\n Facebook,\n Streamable,\n FaceMask,\n Wistia,\n Twitch,\n DailyMotion,\n Mixcloud,\n UstreamLive,\n UstreamVideo,\n JWPlayer,\n VAST,\n FilePlayer,\n Iframe\n]\n\n\n\n// WEBPACK FOOTER //\n// ./src/players/index.js","import React, { Component } from 'react'\n\nconst ICON_SIZE = '64px'\n\nexport default class Preview extends Component {\n state = {\n image: null\n }\n componentDidMount () {\n this.fetchImage(this.props)\n }\n componentWillReceiveProps (nextProps) {\n if (this.props.url !== nextProps.url) {\n this.fetchImage(nextProps)\n }\n }\n fetchImage ({ url, light }) {\n if (typeof light === 'string') {\n this.setState({ image: light })\n return\n }\n this.setState({ image: null })\n return window.fetch(`https://noembed.com/embed?url=${url}`)\n .then(response => response.json())\n .then(data => {\n if (data.thumbnail_url) {\n const image = data.thumbnail_url.replace('height=100', 'height=480')\n this.setState({ image })\n }\n })\n }\n render () {\n const { onClick } = this.props\n const { image } = this.state\n const flexCenter = {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center'\n }\n const styles = {\n preview: {\n width: '100%',\n height: '100%',\n backgroundImage: image ? `url(${image})` : undefined,\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n cursor: 'pointer',\n ...flexCenter\n },\n shadow: {\n background: 'radial-gradient(rgb(0, 0, 0, 0.3), rgba(0, 0, 0, 0) 60%)',\n borderRadius: ICON_SIZE,\n width: ICON_SIZE,\n height: ICON_SIZE,\n ...flexCenter\n },\n playIcon: {\n borderStyle: 'solid',\n borderWidth: '16px 0 16px 26px',\n borderColor: 'transparent transparent transparent white',\n marginLeft: '7px'\n }\n }\n return (\n <div style={styles.preview} className='react-player__preview' onClick={onClick}>\n <div style={styles.shadow} className='react-player__shadow'>\n <div style={styles.playIcon} className='react-player__play-icon' />\n </div>\n </div>\n )\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Preview.js","import React from 'react'\n\nimport Player from './Player'\nimport { YouTube } from './players/YouTube'\nimport { SoundCloud } from './players/SoundCloud'\nimport { Vimeo } from './players/Vimeo'\nimport { DailyMotion } from './players/DailyMotion'\n\nconst PRELOAD_PLAYERS = [\n {\n Player: YouTube,\n configKey: 'youtube',\n url: 'https://www.youtube.com/watch?v=GlCmAC4MHek'\n },\n {\n Player: SoundCloud,\n configKey: 'soundcloud',\n url: 'https://soundcloud.com/seucheu/john-cage-433-8-bit-version'\n },\n {\n Player: Vimeo,\n configKey: 'vimeo',\n url: 'https://vimeo.com/300970506'\n },\n {\n Player: DailyMotion,\n configKey: 'dailymotion',\n url: 'http://www.dailymotion.com/video/xqdpyk'\n }\n]\n\nexport default function renderPreloadPlayers (url, controls, config) {\n const players = []\n\n for (let player of PRELOAD_PLAYERS) {\n if (!player.Player.canPlay(url) && config[player.configKey].preload) {\n players.push(\n <Player\n key={player.Player.displayName}\n activePlayer={player.Player}\n url={player.url}\n controls={controls}\n playing\n muted\n style={{ display: 'none' }}\n />\n )\n }\n }\n\n return players\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/preload.js"],"sourceRoot":""}
\No newline at end of file