@flowplayer/player 3.40.2-rc → 3.41.0-rc

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/core.js +1 -1
  2. package/default.js +1 -1
  3. package/embed.js +2 -2
  4. package/flowplayer.css +1 -1
  5. package/index.d.ts +5 -0
  6. package/package.json +1 -1
  7. package/plugins/ads.d.ts +5 -0
  8. package/plugins/ads.js +1 -1
  9. package/plugins/airplay.d.ts +5 -0
  10. package/plugins/analytics.d.ts +5 -0
  11. package/plugins/analytics.js +1 -1
  12. package/plugins/asel.d.ts +5 -0
  13. package/plugins/audio.d.ts +5 -0
  14. package/plugins/chapters.d.ts +5 -0
  15. package/plugins/chromecast.d.ts +5 -0
  16. package/plugins/comscore.d.ts +5 -0
  17. package/plugins/consent.d.ts +5 -0
  18. package/plugins/context-menu.d.ts +5 -0
  19. package/plugins/cuepoints.d.ts +5 -0
  20. package/plugins/dash.d.ts +5 -0
  21. package/plugins/drm.d.ts +5 -0
  22. package/plugins/endscreen.d.ts +5 -0
  23. package/plugins/fas.d.ts +5 -0
  24. package/plugins/float-on-scroll.d.ts +5 -0
  25. package/plugins/ga4.d.ts +5 -0
  26. package/plugins/gemius.d.ts +5 -0
  27. package/plugins/google-analytics.d.ts +5 -0
  28. package/plugins/hls.d.ts +5 -0
  29. package/plugins/id3.d.ts +5 -0
  30. package/plugins/iframe.d.ts +5 -0
  31. package/plugins/keyboard.d.ts +5 -0
  32. package/plugins/media-session.d.ts +5 -0
  33. package/plugins/message.d.ts +5 -0
  34. package/plugins/ovp.d.ts +5 -0
  35. package/plugins/playlist.d.ts +5 -0
  36. package/plugins/preview.d.ts +5 -0
  37. package/plugins/qsel.d.ts +5 -0
  38. package/plugins/qul.d.ts +5 -0
  39. package/plugins/rts.d.ts +5 -0
  40. package/plugins/rts.js +1 -1
  41. package/plugins/share.d.ts +5 -0
  42. package/plugins/speed.d.ts +5 -0
  43. package/plugins/ssai.d.ts +5 -0
  44. package/plugins/ssai.js +1 -1
  45. package/plugins/subtitles.d.ts +5 -0
  46. package/plugins/thumbnails.d.ts +5 -0
  47. package/plugins/tizen.d.ts +5 -0
  48. package/plugins/ui-redesign.d.ts +5 -0
  49. package/plugins/vtsel.d.ts +5 -0
  50. package/plugins/webos.d.ts +5 -0
  51. package/util/loader.d.ts +5 -0
package/plugins/ads.js CHANGED
@@ -4,4 +4,4 @@
4
4
  * https://github.com/lancedikson/bowser
5
5
  * MIT License | (c) Dustin Diaz 2012-2015
6
6
  * MIT License | (c) Denis Demchenko 2015-2019
7
- */const Se=class Bowser{static getParser(t,e=!1){if("string"!=typeof t)throw new Error("UserAgent should be a string");return new Parser(t,e)}static parse(t){return new Parser(t).getResult()}static get BROWSER_MAP(){return me}static get ENGINE_MAP(){return ve}static get OS_MAP(){return fe}static get PLATFORMS_MAP(){return _e}}.parse(window.navigator.userAgent),{platform:Te,os:Le,browser:Oe}=Se,Re=t=>t&&t.toLowerCase();var Me={rnd:Math.random().toString(36).substr(2,32),os:Re(Le.name+(Le.versionName?` ${Le.versionName}`:"")),device:Re(Te.type),browser:Re(Oe.name),browser_version:(Oe&&Oe.version?Oe.version:"unknown").split(".").shift(),plugin_version:"3.40.2-rc"};const Pe="https://fp-eu-w1-aai.flowplayer.com/in",ke="POST",De=[y,v,A,E,w,q,O],Ie=["event_type","ad_tag_id","media_id","player_id","site_id","sitegroup_id","rnd","os","device","browser","browser_version","plugin_version","player_version"],Ce=["vast_error","reason","request_load_time","ad_type","vast_ad_id"],Ne=vt("ads/analytics"),Ue=RequestQueue.of(),xe=(...t)=>Object.assign({},...t);class Analytics{static of(t,e){return new Analytics(t,e)}static ensure_required_keys(t,e){return t.required_keys.filter(t=>!(t in e))}static pluck_valid_keys(t,e){return((t,...e)=>Object.keys(t).filter(t=>~e.indexOf(t)).reduce((e,s)=>Object.assign(e,{[s]:t[s]}),{}))(e,...t.valid_keys)}static mergeMetadata(t,e={}){return t.metadata=Analytics.pluck_valid_keys(t,xe(t.metadata,e,{player_version:"3.40.2-rc"})),t}constructor(t,e={}){this.emitter=t,this.metadata=xe(Me,e.metadata||{}),this.emitter=t,this.events=e.events||[],this.required_keys=e.required_keys||[],this.optional_keys=e.optional_keys||[],this.valid_keys=this.required_keys.slice(0).concat(this.optional_keys),Ne(this),this.wireup()}wireup(){this.events.forEach(t=>{this.emitter.on(t,e=>{const s=e.detail,i=xe(this.metadata,{event_type:t},s),r=Analytics.pluck_valid_keys(this,i),a=Analytics.ensure_required_keys(this,r);if(Ne(`Event[${t}]`,{payload:r,observation:s}),a.length)return Ne(`Analytics.validate_metadata() failed for\n Event[${t}]\n missing keys: ${a}`,r);RequestQueue.rpush(Ue,[Pe,ke,r])})})}destroy(){const t=this;t.emitter=t.metadata=t.events=t.required_keys=t.optional_keys=t.valid_keys=void 0}}class EventBus{constructor(t=document.createElement("div"),e=[]){this._bus=t,this._listeners=e}removeAllListeners(){this._listeners.length=0,this._bus=document.createElement("div")}emit(t,e){const s=new CustomEvent(t,{detail:e||{}});this._bus.dispatchEvent(s)}on(t,e){this._listeners.push([t,e]),this._bus.addEventListener(t,e,{passive:!0})}once(t,e){this._bus.addEventListener(t,e,{once:!0})}removeListener(t,e){this._bus.removeEventListener(t,e)}}const Fe=vt("ads/controller"),Be={show_all_ads_on_seek:!1,timeout:5e3,preload_advance:5};class AdsController extends EventBus{constructor(t={}){var e;super(),this.adapter=function(t,e){return t.adapter?new t.adapter(e):new IMA(e)}(t,this),this.opts=Object.assign(Object.assign({},Be),t),this.analytics=(e=this,Analytics.of(e,{required_keys:Ie,optional_keys:Ce,events:De})),this._state=AdsState.of(),this._schedule=void 0,this._lastAd=void 0,this._macros=new Macros(t.parameters||{}),this.wireup(),this.content_processing_src=!1}reset(){return this.removeAllListeners(),this.wireup(),this.analytics&&this.analytics.wireup(),this._state.reset(),this.adapter.reset(),this}destroy(){this.removeAllListeners(),this.analytics&&this.analytics.destroy(),this.adapter&&this.adapter.destroy();const t=this;t.analytics=void 0,t.opts=void 0,t.adapter=void 0,t._state=void 0,t._schedule=void 0,t._lastAd=void 0,t._macros=void 0}stop(){this.adapter&&this.adapter.stop()}onContentNewSrc(){var t;this._state.reset(),this.adapter.destroyManager(),this.adapter.contentComplete(),null===(t=this.videoTag)||void 0===t||t.root.classList.remove(bt)}wireup(){const t=()=>{var t,e;this.adapter.onAdRequestEnd(),null===(t=this.videoTag)||void 0===t||t.setState("ad-paused",!1),null===(e=this.videoTag)||void 0===e||e.setState("ad-playing",!0),this._state.toggleState(he.PLAYING,!0)};this.on(B,t),this.on(w,t),this.on(T,t);const e=t=>{var e,s;(null==t?void 0:t.type)!==v&&this.adapter.onAdRequestEnd(),null===(e=this.videoTag)||void 0===e||e.setState("ad-paused",(null==t?void 0:t.type)===S),null===(s=this.videoTag)||void 0===s||s.setState("ad-playing",!1),this.adPlaying&&this._state.toggleState(he.PLAYING,!1)};this.on(k,e),this.on(_,e),this.on(m,e),this.on(v,e),this.on(S,e),this.on(O,e),this.on(E,e),this.on(k,()=>{this._state.toggleState(he.BREAK_ACTIVE,!1)}),this.on(F,()=>{console.error("Adapter init failed"),e(),this._state.toggleState(he.FATAL_ERROR,!0)}),this.on(j,async t=>{if(Fe("Ads.on(RELOAD_AD_REQUESTED)",t),this._schedule){if(e(),t)return this._schedule.reset(this._schedule.getAds());this._state.hasAny(he.AD_AVAILABLE)&&(this._schedule.decrement(),this._state.toggleState(he.AD_AVAILABLE,!1))}})}async initialize(t,e={},s){return Fe("Ads.initialize():",t,e,s),this._state.toggleState(he.INITIALIZING,!0),Object.assign(this.opts,e),Array.isArray(t)&&this.setSchedule(t),await this.adapter.init(this.opts),this._macros=this._macros.fork(Object.assign({},e.parameters||{},{autoplay:e.autoplay,muted:e.muted})),this.adapter.isReady()&&await this.adapterInitialized(s),this}get videoTag(){return this.adapter.getVideoTag()}get adInfo(){return this.adapter.getAdInfo()}async setVideoTag(t){Fe("Ads.setVideoTag():",t),await this.adapter.setVideoTag(t),this.trigger(f,t),this.adapter.isReady()&&await this.adapterInitialized(),t.on(H,()=>this.adapter.pause()),t.on(V,()=>this.adapter.resume()),t.on(z,()=>t.toggleMute()),t.on(Z,()=>{this.adapter.volume(t.muted?0:0==t.volume?.1:t.volume)}),t.on("src",()=>{if(t.currentSrc){if(!t.hasState("ad-playing")&&!t.hasState("ad-paused"))return this.onContentNewSrc();if(this.stop(),!this.adapter.isLinearAd())return this.onContentNewSrc();this.setIsContentProcessingNewSrc(!0),this.once(k,()=>{setTimeout(()=>{this.setIsContentProcessingNewSrc(!1),this.onContentNewSrc()},0)})}})}waitForVideoTag(){return new Promise(t=>{const e=this.adapter.getVideoTag();if(e)return t(e);this.on(f,e=>{this.once(g,()=>t(e))})})}async adapterInitialized(t){Fe("Ads.adapterInitialized()"),this._state.toggleState(he.INITIALIZING,!1),this._state.toggleState(he.BREAK_ACTIVE,!!this.hasPreroll()),await this.setCurrentTime(0,t),t||(this.checkIfBreakComplete(),this.adapter.isAdPod()||this.trigger(_))}async fetchNextAd(t,e=0){var s,i;if(!this._schedule||this.getIsContentProcessingNewSrc())return;if(!this.adapter.isReady())return;if(e>50)throw this._state.toggleState(he.FATAL_ERROR,!0),this._state.toggleState(he.FETCHING_AD,!1),new Error("Ads.fetchNextAd() :max_recursion_depth");const r=(null===(s=this._schedule)||void 0===s?void 0:s.getNextAd())||(null===(i=this._schedule)||void 0===i?void 0:i.getPostroll());if(!r||this.adapter.canDismissNonLinear()||-1===t)if(this._schedule.waitForLoad(t,r,this.opts.preload_ads))this._state.toggleState(he.FETCHING_AD,!1);else if(r!==this._schedule.getPostroll()||(this._schedule.setPostrollActive(),-1===t))if(this._schedule.isDrained()||this._schedule.increment(),r){Fe("Ads.fetchNextAd",r),this._state.toggleState(he.FETCHING_AD,!0);try{return await this.requestAd(r),this._state.toggleState(he.AD_AVAILABLE,!0),void this._state.toggleState(he.FETCHING_AD,!1)}catch(s){return Fe("Ads.fetchNextAd(err: %o, ad: %o)",s,r),this.setLastAd(r),r!==this._schedule.getPostroll()?await this.fetchNextAd(t,++e):void this._state.toggleState(he.FETCHING_AD,!1)}}else this._state.toggleState(he.FETCHING_AD,!1);else this._state.toggleState(he.FETCHING_AD,!1)}skipAdsOnSeek(t){if(!this._schedule)return;let e=this._schedule.getNextAd();for(;e&&e.time<t;)this._schedule.increment(),e=this._schedule.getNextAd()}async setCurrentTime(t,e=!1,s=!1){if(!this._schedule)return;if(!this.adapter.isReady())return;if(this._state.hasAny(he.FETCHING_AD))return;if(this._state.hasAny(he.BREAK_ACTIVE)&&this.adapter.isLinearAd())return;if(this._state.hasAny(he.PLAYING)&&this.adapter.isLinearAd())return;const i=0===t&&0===this._schedule.getNextIndex();try{if(s&&!this.opts.show_all_ads_on_seek&&this.skipAdsOnSeek(t),this._state.hasAny(he.AD_AVAILABLE)||await this.fetchNextAd(t),!this._state.hasAny(he.AD_AVAILABLE)||!this.shallPlayAd(t))return;await this.playAd(),await this.setCurrentTime(t),this.checkIfBreakComplete()}catch(t){Fe("setCurrentTime: Error(from: setCurrentTime, message: %s)",t.message)}finally{i&&this.trigger(I)}}async playAd(){var t;if(!this._state.hasAny(he.AD_AVAILABLE))return;this._state.toggleState(he.AD_AVAILABLE,!1),this._state.toggleState(he.BREAK_ACTIVE,!0);const e=null===(t=this._schedule)||void 0===t?void 0:t.getCurrentAd();try{await this.adapter.playAd()}catch(t){console.error("Ads.playAd: error",t)}finally{e&&this.setLastAd(e)}}checkIfBreakComplete(){if(!this._state.hasAny(he.BREAK_ACTIVE))return Fe("Ads.checkIfBreakComplete(:bail, ad: %o)",this.getLastAd());Fe("Ads.checkIfBreakComplete(:run, ad: %o)",this.getLastAd()),this._state.toggleState(he.BREAK_ACTIVE,!1),this.adapter.isAdPod()||this.trigger(k)}resetScheduleCounter(){this._schedule&&this._schedule.resetCounter()}setSchedule(t,e){if(e&&!isNaN(e)&&this._schedule&&this._schedule.updateContentDuration(e),this._schedule&&this._schedule.getNextIndex()>0)return this._schedule.setAds(t);this._schedule=new Schedule(t,{preload_advance:this.opts.preload_advance,content_duration:e?0:e})}toJSON(){return this._schedule?this._schedule.toJSON():[]}trigger(t,e={}){var s;if(!this.adapter.getVideoTag())return;if(!this._state)return;if(t===k&&this._state.hasAny(he.BREAK_ACTIVE)&&!this.adapter.isAdPod()&&!e.force)return Fe("skipping AD_BREAK_COMPLETE reason: %s pod=%s",this._state.toString(),this.adapter.isAdPod());if(null===(i=e)||"object"!=typeof i||ce(i)!==le)return this.dispatch(t,e);var i;const r=Object.assign({},this.adapter.getOpts()||{},(null===(s=this._schedule)||void 0===s?void 0:s.getCurrentAd())||{},{ad_type:this.ad_type},e);return this.dispatch(t,r)}dispatch(t,e){const s=this.adapter.getVideoTag();if(s){Fe(":dispatch",t,e),this.adapter.isAdPod()&&"object"==typeof e&&"time"in e&&"preroll"!==e.ad_type&&(e.time=this.adapter.getAdBreakTime());try{const i={event:"ads/"+t,detail:{outstream:e.outstream,ad_type:e.ad_type,ad_break_time:e.time,ad_remaining_seconds:e.remaining,ad_muted:e.muted,ad_duration_seconds:e.duration,ad_error_reason:e.reason,ad_vast_error:e.vast_error,ad_vast_error_type:e.vast_error_type,ad_request_load_type:e.request_load_time}};s.dispatchEvent(new CustomEvent("health:record",{detail:i}))}catch(t){Fe(":error",t)}this.emit(t,e),lt(s,t,e)}}get ad_type(){if(!this.videoTag)return;if(!this.adapter.isAdPod())return this._schedule&&this._schedule.getCurrentType();const t=this.adapter.getAdBreakTime();return-1===t?"postroll":this.videoTag.hasState(nt)||t<1?"preroll":"midroll"}shouldRestartContent(t){var e,s;if(!(null===(e=this.videoTag)||void 0===e?void 0:e.root.classList.contains(wt)))return!1;if(t===_&&!(null===(s=this.videoTag)||void 0===s?void 0:s.hasState(at)))return!1;if(this.getIsContentProcessingNewSrc())return!1;if(this.adapter.isAdPod())return!0;const i=this.getLastAd();return!i||!i.outstream&&!1!==i.restart}async finished(t){if(this._schedule&&(Fe("Ads.finished"),!(this.adapter.isCustomPlaybackEnabled()&&this._state.hasAny(he.PLAYING)&&this.adapter.isLinearAd()))){Fe("Ads.finished: trying to play postroll");try{if(!this._schedule.getPostroll())return Fe("Ads.finished: no postroll found"),await this.adapter.contentComplete();this._state.hasAny(he.AD_AVAILABLE)||await this.fetchNextAd(-1),await this.playAd(),this.adapter.contentComplete()}catch(t){Fe("Ads.finished: postroll failed:",t)}finally{this.trigger(D),this.checkIfBreakComplete(),"function"==typeof t&&t()}}}hasPreroll(){return this._schedule&&Schedule.hasPreroll(this._schedule.getAds())}shallPlayAd(t){var e,s;return!!(null===(e=this.videoTag)||void 0===e?void 0:e.root.classList.contains(wt))&&((!this.adapter||!this.adapter.isAdPod())&&(!(!this._state||this._state.hasAny(he.FATAL_ERROR))&&!!(null===(s=this._schedule)||void 0===s?void 0:s.shallPlayAd(t))))}setLastAd(t){return this._lastAd=t,this}setIsContentProcessingNewSrc(t){this.content_processing_src=t}getLastAd(){return this._lastAd}getIsContentProcessingNewSrc(){return this.content_processing_src}mergeMacros(t={}){return this._macros=this._macros.fork(Object.assign({},t)),this}get paused(){return this.adapter&&this.adapter.isPaused()}pause(){this.adapter&&this.adapter.pause()}resume(){this.adapter&&this.adapter.resume()}resize(t){this.adapter&&this.adapter.onResize(t)}async requestAd(t,e=0,s=this.opts.timeout){if(!this._state)return;Fe("Ads.requestAd(ad: %o)",{ad:t,timeout:s,idx:e});const i=await de(t);if(void 0===i[e])return setTimeout(()=>this.trigger(_),0),Promise.reject(new Error("Ad failed, no fallbacks left"));if(!i[e])return await this.requestAd(i,e+1,s);this.trigger(y,t);const r=this._macros.compile(i[e],ae(this.opts,this.adapter.getDimensions()));try{return void await this.adapter.initAd(r,s)}catch(t){return Fe(`Ads.requestAd(:fallback, idx: ${e}, length: ${i.length}, adTag: ${i[e]})\nError `,{adTag:i,err:t}),this.requestAd(i,e+1,s)}}resetSchedule(t){this._schedule&&this._schedule.reset(t)}get adPlaying(){return this._state&&this._state.hasAny(he.PLAYING)}get adBreak(){return this._state&&this._state.hasAny(he.BREAK_ACTIVE)}get adRequesting(){return this._state.hasAny(he.FETCHING_AD)}get adLinear(){return this.adBreak&&this.adapter.isLinearAd()}}var je=new Blob([new Uint8Array([255,227,24,196,0,0,0,3,72,1,64,0,0,4,132,16,31,227,192,225,76,255,67,12,255,221,27,255,228,97,73,63,255,195,131,69,192,232,223,255,255,207,102,239,255,255,255,101,158,206,70,20,59,255,254,95,70,149,66,4,16,128,0,2,2,32,240,138,255,36,106,183,255,227,24,196,59,11,34,62,80,49,135,40,0,253,29,191,209,200,141,71,7,255,252,152,74,15,130,33,185,6,63,255,252,195,70,203,86,53,15,255,255,247,103,76,121,64,32,47,255,34,227,194,209,138,76,65,77,69,51,46,57,55,170,170,170,170,170,170,170,170,170,170,255,227,24,196,73,13,153,210,100,81,135,56,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170])],{type:"audio/mpeg"}),qe=new Blob([new Uint8Array([0,0,0,28,102,116,121,112,105,115,111,109,0,0,2,0,105,115,111,109,105,115,111,50,109,112,52,49,0,0,0,8,102,114,101,101,0,0,2,239,109,100,97,116,33,16,5,32,164,27,255,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,55,167,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,33,16,5,32,164,27,255,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,55,167,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,0,0,2,194,109,111,111,118,0,0,0,108,109,118,104,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,232,0,0,0,47,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,1,236,116,114,97,107,0,0,0,92,116,107,104,100,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,36,101,100,116,115,0,0,0,28,101,108,115,116,0,0,0,0,0,0,0,1,0,0,0,47,0,0,0,0,0,1,0,0,0,0,1,100,109,100,105,97,0,0,0,32,109,100,104,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172,68,0,0,8,0,85,196,0,0,0,0,0,45,104,100,108,114,0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0,0,0,1,15,109,105,110,102,0,0,0,16,115,109,104,100,0,0,0,0,0,0,0,0,0,0,0,36,100,105,110,102,0,0,0,28,100,114,101,102,0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1,0,0,0,211,115,116,98,108,0,0,0,103,115,116,115,100,0,0,0,0,0,0,0,1,0,0,0,87,109,112,52,97,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,16,0,0,0,0,172,68,0,0,0,0,0,51,101,115,100,115,0,0,0,0,3,128,128,128,34,0,2,0,4,128,128,128,20,64,21,0,0,0,0,1,244,0,0,1,243,249,5,128,128,128,2,18,16,6,128,128,128,1,2,0,0,0,24,115,116,116,115,0,0,0,0,0,0,0,1,0,0,0,2,0,0,4,0,0,0,0,28,115,116,115,99,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,28,115,116,115,122,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,115,0,0,1,116,0,0,0,20,115,116,99,111,0,0,0,0,0,0,0,1,0,0,0,44,0,0,0,98,117,100,116,97,0,0,0,90,109,101,116,97,0,0,0,0,0,0,0,33,104,100,108,114,0,0,0,0,0,0,0,0,109,100,105,114,97,112,112,108,0,0,0,0,0,0,0,0,0,0,0,0,45,105,108,115,116,0,0,0,37,169,116,111,111,0,0,0,29,100,97,116,97,0,0,0,1,0,0,0,0,76,97,118,102,53,54,46,52,48,46,49,48,49])],{type:"video/mp4"});function He(t){return Object.assign({muted:!1,timeout:250,inline:!1},t)}function Ve(t,e){var s=t.muted,i=t.timeout,r=t.inline,a=e(),n=a.element,o=a.source,d=void 0,l=void 0,c=void 0;return n.muted=s,!0===s&&n.setAttribute("muted","muted"),!0===r&&n.setAttribute("playsinline","playsinline"),n.src=o,new Promise(function(t){d=n.play(),l=setTimeout(function(){c(!1,new Error("Timeout "+i+" ms has been reached"))},i),c=function(e){var s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;n.remove(),n.srcObject=null,clearTimeout(l),t({result:e,error:s})},void 0!==d?d.then(function(){return c(!0)}).catch(function(t){return c(!1,t)}):c(!0)})}var ze={audio:function(t){return Ve(t=He(t),function(){return{element:document.createElement("audio"),source:URL.createObjectURL(je)}})},video:function(t){return Ve(t=He(t),function(){return{element:document.createElement("video"),source:URL.createObjectURL(qe)}})}};let Ge;async function We(t=!0){return Ge||(Ge=await ze.video({timeout:500,muted:t}),Ge)}var Qe=Object.freeze({__proto__:null,STICKY_CONTROLS:1,NO_FULLSCREEN:2,NO_AD_INDICATOR:4,AD_ATTRIBUTION:8,AD_CHOICES:16,REMAINING_TIME:32,VOLUME_BAR:64});const $e=["progress","duration","remaining"];class AdUI extends HTMLElement{static get observedAttributes(){return $e}constructor(t){super(),this.player=t,this.className="fp-ad-ui",this.append(...t.createComponents(St,Tt)),t.on(Q,t=>{let{ui_flags:e}=t.detail;if(e=e||0,(8&e)>0){const t=document.createElement("div");t.classList.add("ad-attribution"),t.textContent=this.player.i18n("ads.advertisement","Advertisement"),this.append(t)}})}}const Ke=vt("fpads:native:outstream"),Ye={OUTSTREAM:"is-outstream",HIDDEN:"is-outstream-hidden",SHOWING:"is-outstream-visible",DONE:"is-outstream-done"};var Ze,Je;!function(t){t.OUTSTREAM_VISIBLE="ads-outstream-visible",t.OUTSTREAM_VIEWPORT_UPDATE="ads-outstream-viewport-update",t.OUTSTREAM_TEARDOWN="ads-outstream-teardown",t.OUTSTREAM_ENDSCREEN_READY="ads-outstream-endscreen-ready"}(Ze||(Ze={})),function(t){t[t.None=0]="None",t[t.Booting=1]="Booting",t[t.Ready=2]="Ready",t[t.Disposed=3]="Disposed"}(Je||(Je={}));class Outstream{constructor({ads:t,root:e,content:s,ima:i}){this.state=Je.None,Ke("creating Outstream instance"),this.content=s,this.ads=t,this.root=e,this.ima=i,this.aspectRatio=s.videoHeight/s.videoWidth,this.dimensions=function(t){if(t.clientWidth>0||t.clientHeight)return h(t);const e={height:t.style.height};p(t,"opacity",0),p(t,"display","absolute"),p(t,"display","inline-block"),p(t,"height","auto");const s=h(t);return p(t,"height",e.height),p(t,"opacity",1),s}(this.root),this.adUi=new AdUI(s),this.initialVolumeState={},e.classList.add(Ye.OUTSTREAM),e.classList.add(wt),e.append(this.adUi),this.hide(),this.ads.on(b,t=>{var e;if(this.state==Je.Disposed)return;const s=!!(null===(e=t.detail)||void 0===e?void 0:e.linear);this.ads.resize(Object.assign(Object.assign({},this.dimensions),{linear:s}))}),s.on(Y,t=>{if(this.state==Je.Disposed)return;const e=t.detail;e&&(this.dimensions={width:e.contentRect.width,height:e.contentRect.height},this.ads.resize(this.dimensions))});let r=1,a=!0;s.on("intersectionchange",t=>{if(this.state==Je.Disposed)return;const e=t.detail;if(e)switch(this.state){case Je.Booting:return Ke(":boot skipping intersectionchange");case Je.None:return this.state=Je.Booting,this.begin_life_cycle();case Je.Ready:if(r=e.ratio,e.ratio>=.5&&this.ads.adPlaying)return;e.ratio>=.5&&a&&this.ads.resume(),e.ratio<.5&&this.ads.pause()}}),this.content.on(S,()=>a=r<.5),this.setup(),setTimeout(()=>(this.state=Je.Booting,this.begin_life_cycle()),0)}hide(){return this}restore_aspect_ratio(){return Ke(`Outstream.restore_aspect_ratio(${this.aspectRatio})`),this.content.setOpts({ratio:this.aspectRatio}),this}show(){this.root.classList.remove(Outstream.CLASS.HIDDEN),this.root.classList.add(Outstream.CLASS.SHOWING),this.content.setState("ad-linear",!0)}async begin_life_cycle(){var t;this.state=Je.Ready;const{error:e,result:s}=await We(!1),{result:i}=await We(!0);this.content.emit(Q,{ui_flags:null===(t=this.content.opts.ads)||void 0===t?void 0:t.ui}),this.attach_ad_listeners(),this.initialVolumeState={can_autoplay:!(!s&&!i),muted:!s},Ke(`Outstream.show() :autoplay >> sound=${s}`),e&&this.content&&!s&&(this.content.muted=!0,this.content.volume=0),await this.ads.setVideoTag(this.content),await It({ads:this.ads,content:this.content,adContainer:this.adUi,ima:this.ima,state:{listening:!1},config:this.content.opts}),Ft({content:this.content,ads:this.ads}),this.state=Je.Ready}attach_ad_listeners(){this.ads.once(b,()=>{this.show(),this.ads.adPlaying&&this.ads.pause()});const t=()=>{kt.forEach(e=>this.ads.removeListener(e,t));const e=new CustomEvent(Ze.OUTSTREAM_TEARDOWN);Ke("Outstream(:teardown)",e),this.content.dispatchEvent(e)};kt.forEach(e=>this.ads.once(e,t)),this.content.once(Ze.OUTSTREAM_TEARDOWN,t=>{setTimeout(()=>{if(t.defaultPrevented)return this.handle_endscreen();this.dispose()},0)})}handle_endscreen(){this.reset_ui(),this.ads.reset(),Ut({config:this.content.opts,ui:this.adUi,ads:this.ads,adContainer:this.adUi,ima:this.ima,content:this.content,root:this.content.root,state:{started:!0,listening:!1},initial:{muted:!0,volume:1}})}empty_src(){this.content.setSrc({type:"video/mp4",src:URL.createObjectURL(Ot)})}setup(){this.root.classList.add(Outstream.CLASS.OUTSTREAM),this.root.classList.add(Outstream.CLASS.HIDDEN),this.content.setState("ad-linear",!1),this.empty_src()}reset_ui(){const t=this.root;t.classList.remove(Outstream.CLASS.SHOWING),t.classList.remove(Outstream.CLASS.OUTSTREAM)}dispose(){if(this.state==Je.Disposed)return;const t=this.root,e=this.content;this.reset_ui(),t.classList.add(Outstream.CLASS.OUTSTREAM),t.classList.add(Outstream.CLASS.DONE);const s=this;s.video=s.container=s.ads=0,this.state=Je.Disposed,e.destroy(),t.innerHTML=""}}function Xe(t){return t&&"number"==typeof t.time}function ts(t){return t&&"number"==typeof t.percentage&&"number"!=typeof t.time}Outstream.CLASS=Ye;const es=vt("ads/ima/sdk");var ss,is;async function rs(t,e){var s;const i=null===(s=null===window||void 0===window?void 0:window.google)||void 0===s?void 0:s.ima;if(e?null==i?void 0:i.dai:i)return void es(":noop");const r=e?"https://imasdk.googleapis.com/js/sdkloader/ima3_dai.js":t._storage.getItem("ima/debug")?"https://imasdk.googleapis.com/js/sdkloader/ima3_debug.js":"https://imasdk.googleapis.com/js/sdkloader/ima3.js";try{return await async function(t){return new Promise((e,s)=>{let i=document.querySelector(`script[src='${t}']`);if(i)return as(i,e,s);i=document.createElement("script"),i.setAttribute("state",ss.LOADING),as(i,e,s),i.src=t,document.head.appendChild(i)})}(r),void es(":loaded")}catch(t){es(`:error ${t.message}`,t)}}function as(t,e,s){const i=t.getAttribute("state");if(i&&[ss.ERROR,ss.LOADED].includes(i))return e(void 0);t.addEventListener("load",()=>{t.setAttribute("state",ss.LOADED),e(void 0)},{once:!0}),["error","abort"].forEach(e=>{t.addEventListener(e,()=>{t.setAttribute("state",ss.ERROR),s("script failed to load")},{once:!0})})}!function(t){t.LOADING="loading",t.LOADED="loaded",t.ERROR="error"}(ss||(ss={})),function(t){t.LOADING="loading",t.LOADED="loaded",t.ERROR="error"}(is||(is={}));const ns=vt("ads/ima/sdk"),os="https://cdn.jsdelivr.net/npm/prebid.js@latest/dist/not-for-prod/prebid.js",ds=os;async function ls(t){var e;const s=t._storage.getItem("prebid/debug")?os:ds;if(null===(e=null===window||void 0===window?void 0:window.pbjs)||void 0===e?void 0:e.version)ns(":noop");else if(!document.querySelector(`script[src='${s}']`))try{return await async function(t){return new Promise((e,s)=>{let i=document.querySelector(`script[src='${t}']`);i||(i=document.createElement("script")),i.setAttribute("state",is.LOADING);const r=i.getAttribute("state");if(r&&[is.ERROR,is.LOADED].includes(r))return e(void 0);i.addEventListener("load",()=>{i.setAttribute("state",is.LOADED),e(void 0)},{once:!0}),["error","abort"].forEach(t=>{i.addEventListener(t,()=>{i.setAttribute("state",is.ERROR),s("script failed to load")},{once:!0})}),i.src=t,document.head.appendChild(i)})}(s),void ns(":loaded")}catch(t){console.warn(`:error / failed to load prebid.js / ${t.message}`,t)}}const cs=window.pbjs=window.pbjs||{};cs.que=cs.que||[];class PrebidAdController{constructor(t,e){this.player=t,this.config=e,this.player=t,this.bestOffer="",cs.que.push(()=>{var s,i;const r=this.createAdUnit();cs.addAdUnits(r);const a=(null===(i=null===(s=e.ads)||void 0===s?void 0:s.prebid)||void 0===i?void 0:i.pbjs)||{};cs.setConfig(Object.assign({enableSendAllBids:!0},a)),t.emit($,{pbjs:cs}),cs.requestBids({bidsBackHandler:t=>{var s,i,a,n,o;const d=null===(s=t[this.prebidCode()])||void 0===s?void 0:s.bids;if(!d)return;if(0==d.length)return;const l=d[0];if(l&&l.vastUrl)return this.bestOffer=l.vastUrl;const c=cs.adServers.dfp.buildVideoUrl({adUnit:r,params:{iu:null===(a=null===(i=e.ads)||void 0===i?void 0:i.prebid)||void 0===a?void 0:a.iu,cust_params:null===(o=null===(n=e.ads)||void 0===n?void 0:n.prebid)||void 0===o?void 0:o.custom_params,output:"vast"}});this.bestOffer=c}})})}prebidCode(){var t,e;return(null===(e=null===(t=this.config.ads)||void 0===t?void 0:t.prebid)||void 0===e?void 0:e.code)||this.player.root.id}videoInfo(){var t,e;return(null===(e=null===(t=this.config.ads)||void 0===t?void 0:t.prebid)||void 0===e?void 0:e.video)||{context:"instream",playerSize:[[this.player.videoWidth||640,this.player.videoHeight||480]]}}createAdUnit(){var t,e;return{code:this.prebidCode(),mediaTypes:{video:this.videoInfo()},bids:null===(e=null===(t=this.config.ads)||void 0===t?void 0:t.prebid)||void 0===e?void 0:e.bidders}}vastGenerator(){return async()=>this.bestOffer}}function us(t,e){var s,i;const r=null===(s=e.ads)||void 0===s?void 0:s.prebid;if(!r)return;if((null===(i=t.prebidController)||void 0===i?void 0:i.config)===e)return;!function(t,{feature_name:e,behavior:s,sample_rate:i}){e&&(i||(i=mt),t.emit("flowplayer:feature",{feature_name:e,behavior:s,sample_rate:i}))}(t,{feature_name:"prebid",behavior:"used"}),t.prebidController||(t.prebidController=new PrebidAdController(t,e),ls(t));const a=t.prebidController;if(a){const e=r.breaks.map(t=>({adTag:a.vastGenerator(),time:t}));t.setOpts({ima:{ads:e}})}}const hs=vt("ads/index");async function ps(t,e,s){var i;let r;if(s.on("config",()=>{var e,i,a;void 0===r&&t.autoplay&&(Wt(a=t.ima)&&(null==a?void 0:a.ads.find(t=>!t.time||"percentage"in t&&0===t.percentage)))&&!s.currentSrc&&(i=t.autoplay,r=!0===i?ct.ON:!1===i?ct.OFF:i,t.autoplay=0),(null===(e=t.ads)||void 0===e?void 0:e.prebid)&&us(s,t),Wt(t.ima)&&Gt(s)&&Object.assign(t,{hls:{native:!0}}),s.ads&&d()}),s.once("loadstart",()=>{setTimeout(async()=>{if(void 0!==r&&(await rs(s),!("google"in window))){if(t.autoplay=r,s.setState(ot,!0),!s.hasState(dt))return s.once(st,()=>s.togglePlay(!0));s.togglePlay(!0)}},0)}),await rs(s),!("google"in window))return console.warn("google.ima unavailable");let a=!1;const n=s.ads=new AdsController,o=n.analytics;function d(){if(!Wt(t.ima))return;const i=t.ima,d=t.duration||s.duration;if(i.ads=function(t,e){return Array.isArray(t)?t.filter(t=>Xe(t)||ts(t)).reduce((t,s)=>{if(Xe(s))return t.push(s),t;if(s.lazy)return t.push(s),t;if(ts(s)){const i=Object.assign({},s),r=s.percentage?s.percentage*e:0;return isNaN(r)||(i.time=r<0||r===e?-1:r),t.push(i),t}return t},[]):(console.warn("AdSchedule was not an Array"),[])}(i.ads,d),n.setSchedule(i.ads,d),t.metadata&&Analytics.mergeMetadata(o,t.metadata),t.metadata&&n.mergeMacros(t.metadata),t.metadata&&i.parameters&&(i.parameters=Object.assign(Object.assign({},i.parameters),t.metadata)),Analytics.mergeMetadata(o,{muted:t.muted||!1,autoplay:t.autoplay||!1}),!a){if(a=!0,t.lang&&!i.Locale&&(i.Locale=t.lang),Schedule.isOutstream(i.ads))return hs("is outstream, returning"),new Outstream({root:e,content:s,ads:n,ima:i});Dt({config:Object.assign(Object.assign({},t),{autoplay:r}),root:e,content:s,ads:n,ima:i})}}n.resize(h(e)),n.on(D,()=>{n.adapter.isCustomPlaybackEnabled()&&n.once(k,()=>{s.src=s.original_src,s.once("canplay",()=>{s.togglePlay(!1)}),s.webkitExitFullscreen()})}),s.on("reap",function(){n&&n.destroy()}),(null===(i=t.ads)||void 0===i?void 0:i.prebid)&&us(s,t),d()}class AdControls extends HTMLElement{constructor(t){super(),this.player=t,this.classList.add("fp-ad-controls"),this.append(this.adRemainingTime(),yt(this.player,Lt),this.playbackButtons(),this.volumeBtn(),yt(this.player,"flowplayer-volume-bar"),...this.fullscreenIcons(),this.adChoices()),t.on(Q,this.applyStyleFlags.bind(this))}fullscreenIcons(){return this.player.createComponents("flowplayer-fullscreen-enter-icon","flowplayer-fullscreen-exit-icon").map(t=>(t.onclick=()=>this.player.toggleFullScreen(),t))}volumeBtn(){const t=yt(this.player,"flowplayer-volume-icon");return t.onclick=()=>this.player.emit(z),t}playbackButtons(){const t=document.createElement("div");t.classList.add("ad-playback-controls");const e=yt(this.player,"flowplayer-small-play-icon"),s=yt(this.player,"flowplayer-small-pause-icon");return e.addEventListener("click",()=>{this.player.emit(V),setTimeout(function(){s.focus&&s.focus()},100)}),s.addEventListener("click",()=>{this.player.emit(H),setTimeout(function(){e.focus&&e.focus()},100)}),t.append(e,s),t}adChoices(){const t=document.createElement("div");return t.classList.add("fp-ad-choices"),t.textContent=this.player.i18n("ads.adchoices","AdChoices"),t.addEventListener("click",t=>{t.preventDefault(),this.player.togglePlay(!1),window.open("https://adssettings.google.com","_blank")}),t}adRemainingTime(){const t=document.createElement("div");return t.classList.add("fp-ad-remaining","fp-color-text"),this.prepend(t),this.player.on(L,e=>{const s=e.detail.remaining;t.textContent=function(t){if(isNaN(t)||t>=Number.MAX_SAFE_INTEGER)return"";const e=t<0?"-":"";t=Math.round(Math.abs(t));const s=Math.floor(t/3600);let i=Math.floor(t/60);return t-=60*i,s>=1?(i-=60*s,e+s+":"+ut(i)+":"+ut(t)):e+ut(i)+":"+ut(t)}(parseFloat(s+""))}),t}applyStyleFlags(t){var e;const s=null!==(e=t.detail.ui_flags)&&void 0!==e?e:0;this.classList.toggle("is-ad-controls-sticky",(1&s)>0),this.classList.toggle("no-indicator",(4&s)>0),this.classList.toggle("is-ad-choices",(16&s)>0),this.classList.toggle("no-volume-bar",!(64&s)),this.classList.toggle("is-ad-remaining",(32&s)>0),this.classList.toggle("no-fullscreen",(2&s)>0)}}class AdCountdown extends HTMLElement{static get observedAttributes(){return["remaining"]}constructor(t){super(),this.player=t,this.className="fp-ad-countdown",t.on(L,t=>{const{duration:e,remaining:s}=t.detail;this.setAttribute("duration",e+""),this.setAttribute("remaining",s+"")}),t.on(w,t=>{t.detail.linear&&(this.style.setProperty("--ad-percent-previous","0"),this.style.setProperty("--ad-percent-complete","0"))}),this.addEventListener("animationend",()=>{const t=this.style.getPropertyValue("--ad-percent-complete")||"0";this.style.setProperty("--ad-percent-previous",t)})}attributeChangedCallback(t,e,s){if("remaining"===t)return this.onRemaining(s)}onRemaining(t){const e=parseFloat(this.getAttribute("duration")||"0");t||(t=e+"");const s=parseFloat(t),i=this.style.getPropertyValue("--ad-percent-complete")||"0";this.style.setProperty("--ad-percent-previous",i),this.classList.remove("go");const r=((e-s)/e*100).toFixed(3);requestAnimationFrame(()=>{this.style.setProperty("--ad-percent-complete",r),this.classList.add("go")})}}class AdIndicator extends HTMLElement{static get observedAttributes(){return["position","totals"]}constructor(t){super(),this.player=t,this.render(),t.on(w,t=>{const{position:e,totals:s}=t.detail.ad;this.setAttribute("position",e+""),this.setAttribute("totals",s+"")})}attributeChangedCallback(t,e){switch(t){case"position":case"totals":return this.updateText()}}updateText(){if(!this.element)return;const t=parseFloat(this.getAttribute("position")||"0"),e=parseFloat(this.getAttribute("totals")||"0");this.element.textContent=`${this.player.i18n("ads.indicator","ADS")} ${t} / ${e}`}render(){this.element=document.createElement("div"),this.element.classList.add("ad-indicator","fp-color-text"),this.element.textContent=this.player.i18n("ads.indicator","ADS"),this.append(this.element)}}var gs,ms=Object.freeze({__proto__:null,SINGlE_INLINE_LINEAR:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_ad_samples&sz=640x480&cust_params=sample_ct%3Dlinear&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",SINGLE_SKIPPABLE_INLINE:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_preroll_skippable&sz=640x480&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",SINGLE_REDIRECT_LINEAR:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_ad_samples&sz=640x480&cust_params=sample_ct%3Dredirectlinear&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",SINGLE_REDIRECT_ERROR:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_ad_samples&sz=640x480&cust_params=sample_ct%3Dredirecterror&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",SINGLE_REDIRECT_BROKEN:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_ad_samples&sz=640x480&cust_params=sample_ct%3Dredirecterror&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&nofb=1&correlator=",SINGLE_VPAID_20_LINEAR:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_ad_samples&sz=640x480&cust_params=sample_ct%3Dlinearvpaid2js&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",SINGLE_VPAID_20_NON_LINEAR:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_ad_samples&sz=640x480&cust_params=sample_ct%3Dnonlinearvpaid2js&ciu_szs=728x90%2C300x250&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",SINGLE_NON_LINEAR_INLINE:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/nonlinear_ad_samples&sz=480x70&cust_params=sample_ct%3Dnonlinear&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",VMAP_SESSION_AD_RULE_PREROLL:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/vmap_ad_samples&sz=640x480&cust_params=sar%3Da0f2&ciu_szs=300x250&ad_rule=1&gdfp_req=1&output=vmap&unviewed_position_start=1&env=vp&impl=s&correlator=",VMAP_PREROLL:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/vmap_ad_samples&sz=640x480&cust_params=sample_ar%3Dpreonly&ciu_szs=300x250%2C728x90&gdfp_req=1&ad_rule=1&output=vmap&unviewed_position_start=1&env=vp&impl=s&correlator=",VMAP_PREROLL_BUMPER:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/vmap_ad_samples&sz=640x480&cust_params=sample_ar%3Dpreonlybumper&ciu_szs=300x250&gdfp_req=1&ad_rule=1&output=vmap&unviewed_position_start=1&env=vp&impl=s&correlator=",VMAP_POSTROLL:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/vmap_ad_samples&sz=640x480&cust_params=sample_ar%3Dpostonly&ciu_szs=300x250&gdfp_req=1&ad_rule=1&output=vmap&unviewed_position_start=1&env=vp&impl=s&correlator=",VMAP_POSTROLL_BUMPER:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/vmap_ad_samples&sz=640x480&cust_params=sample_ar%3Dpostonlybumper&ciu_szs=300x250&gdfp_req=1&ad_rule=1&output=vmap&unviewed_position_start=1&env=vp&impl=s&correlator="});const{samsung_tv:_s}=u(),fs=(gs=class Ads{constructor(t){this.umd=t,At(t,Et,AdUI),At(t,St,AdControls),At(t,Tt,AdCountdown),At(t,Lt,AdIndicator)}init(t,e,s){if(c.from_token(t.token||"").is_granted(c.permissions.ADS)&&!_s)return ps(t,e,s)}},gs.pluginName="ads",gs.events=K,gs.ui=Qe,gs.tags=ms,gs);return function(t,e){if("object"==typeof exports&&"undefined"!=typeof module)return e;if(null===document.currentScript)return e;"flowplayer"in t||(t.flowplayer={extensions:[]});const s=t.flowplayer;return"function"==typeof s?(s(e),e):(Array.isArray(s.extensions)||(s.extensions=[]),~s.extensions.indexOf(e)||s.extensions.push(e),e)}(window,fs)});
7
+ */const Se=class Bowser{static getParser(t,e=!1){if("string"!=typeof t)throw new Error("UserAgent should be a string");return new Parser(t,e)}static parse(t){return new Parser(t).getResult()}static get BROWSER_MAP(){return me}static get ENGINE_MAP(){return ve}static get OS_MAP(){return fe}static get PLATFORMS_MAP(){return _e}}.parse(window.navigator.userAgent),{platform:Te,os:Le,browser:Oe}=Se,Re=t=>t&&t.toLowerCase();var Me={rnd:Math.random().toString(36).substr(2,32),os:Re(Le.name+(Le.versionName?` ${Le.versionName}`:"")),device:Re(Te.type),browser:Re(Oe.name),browser_version:(Oe&&Oe.version?Oe.version:"unknown").split(".").shift(),plugin_version:"3.41.0-rc"};const Pe="https://fp-eu-w1-aai.flowplayer.com/in",ke="POST",De=[y,v,A,E,w,q,O],Ie=["event_type","ad_tag_id","media_id","player_id","site_id","sitegroup_id","rnd","os","device","browser","browser_version","plugin_version","player_version"],Ce=["vast_error","reason","request_load_time","ad_type","vast_ad_id"],Ne=vt("ads/analytics"),Ue=RequestQueue.of(),xe=(...t)=>Object.assign({},...t);class Analytics{static of(t,e){return new Analytics(t,e)}static ensure_required_keys(t,e){return t.required_keys.filter(t=>!(t in e))}static pluck_valid_keys(t,e){return((t,...e)=>Object.keys(t).filter(t=>~e.indexOf(t)).reduce((e,s)=>Object.assign(e,{[s]:t[s]}),{}))(e,...t.valid_keys)}static mergeMetadata(t,e={}){return t.metadata=Analytics.pluck_valid_keys(t,xe(t.metadata,e,{player_version:"3.41.0-rc"})),t}constructor(t,e={}){this.emitter=t,this.metadata=xe(Me,e.metadata||{}),this.emitter=t,this.events=e.events||[],this.required_keys=e.required_keys||[],this.optional_keys=e.optional_keys||[],this.valid_keys=this.required_keys.slice(0).concat(this.optional_keys),Ne(this),this.wireup()}wireup(){this.events.forEach(t=>{this.emitter.on(t,e=>{const s=e.detail,i=xe(this.metadata,{event_type:t},s),r=Analytics.pluck_valid_keys(this,i),a=Analytics.ensure_required_keys(this,r);if(Ne(`Event[${t}]`,{payload:r,observation:s}),a.length)return Ne(`Analytics.validate_metadata() failed for\n Event[${t}]\n missing keys: ${a}`,r);RequestQueue.rpush(Ue,[Pe,ke,r])})})}destroy(){const t=this;t.emitter=t.metadata=t.events=t.required_keys=t.optional_keys=t.valid_keys=void 0}}class EventBus{constructor(t=document.createElement("div"),e=[]){this._bus=t,this._listeners=e}removeAllListeners(){this._listeners.length=0,this._bus=document.createElement("div")}emit(t,e){const s=new CustomEvent(t,{detail:e||{}});this._bus.dispatchEvent(s)}on(t,e){this._listeners.push([t,e]),this._bus.addEventListener(t,e,{passive:!0})}once(t,e){this._bus.addEventListener(t,e,{once:!0})}removeListener(t,e){this._bus.removeEventListener(t,e)}}const Fe=vt("ads/controller"),Be={show_all_ads_on_seek:!1,timeout:5e3,preload_advance:5};class AdsController extends EventBus{constructor(t={}){var e;super(),this.adapter=function(t,e){return t.adapter?new t.adapter(e):new IMA(e)}(t,this),this.opts=Object.assign(Object.assign({},Be),t),this.analytics=(e=this,Analytics.of(e,{required_keys:Ie,optional_keys:Ce,events:De})),this._state=AdsState.of(),this._schedule=void 0,this._lastAd=void 0,this._macros=new Macros(t.parameters||{}),this.wireup(),this.content_processing_src=!1}reset(){return this.removeAllListeners(),this.wireup(),this.analytics&&this.analytics.wireup(),this._state.reset(),this.adapter.reset(),this}destroy(){this.removeAllListeners(),this.analytics&&this.analytics.destroy(),this.adapter&&this.adapter.destroy();const t=this;t.analytics=void 0,t.opts=void 0,t.adapter=void 0,t._state=void 0,t._schedule=void 0,t._lastAd=void 0,t._macros=void 0}stop(){this.adapter&&this.adapter.stop()}onContentNewSrc(){var t;this._state.reset(),this.adapter.destroyManager(),this.adapter.contentComplete(),null===(t=this.videoTag)||void 0===t||t.root.classList.remove(bt)}wireup(){const t=()=>{var t,e;this.adapter.onAdRequestEnd(),null===(t=this.videoTag)||void 0===t||t.setState("ad-paused",!1),null===(e=this.videoTag)||void 0===e||e.setState("ad-playing",!0),this._state.toggleState(he.PLAYING,!0)};this.on(B,t),this.on(w,t),this.on(T,t);const e=t=>{var e,s;(null==t?void 0:t.type)!==v&&this.adapter.onAdRequestEnd(),null===(e=this.videoTag)||void 0===e||e.setState("ad-paused",(null==t?void 0:t.type)===S),null===(s=this.videoTag)||void 0===s||s.setState("ad-playing",!1),this.adPlaying&&this._state.toggleState(he.PLAYING,!1)};this.on(k,e),this.on(_,e),this.on(m,e),this.on(v,e),this.on(S,e),this.on(O,e),this.on(E,e),this.on(k,()=>{this._state.toggleState(he.BREAK_ACTIVE,!1)}),this.on(F,()=>{console.error("Adapter init failed"),e(),this._state.toggleState(he.FATAL_ERROR,!0)}),this.on(j,async t=>{if(Fe("Ads.on(RELOAD_AD_REQUESTED)",t),this._schedule){if(e(),t)return this._schedule.reset(this._schedule.getAds());this._state.hasAny(he.AD_AVAILABLE)&&(this._schedule.decrement(),this._state.toggleState(he.AD_AVAILABLE,!1))}})}async initialize(t,e={},s){return Fe("Ads.initialize():",t,e,s),this._state.toggleState(he.INITIALIZING,!0),Object.assign(this.opts,e),Array.isArray(t)&&this.setSchedule(t),await this.adapter.init(this.opts),this._macros=this._macros.fork(Object.assign({},e.parameters||{},{autoplay:e.autoplay,muted:e.muted})),this.adapter.isReady()&&await this.adapterInitialized(s),this}get videoTag(){return this.adapter.getVideoTag()}get adInfo(){return this.adapter.getAdInfo()}async setVideoTag(t){Fe("Ads.setVideoTag():",t),await this.adapter.setVideoTag(t),this.trigger(f,t),this.adapter.isReady()&&await this.adapterInitialized(),t.on(H,()=>this.adapter.pause()),t.on(V,()=>this.adapter.resume()),t.on(z,()=>t.toggleMute()),t.on(Z,()=>{this.adapter.volume(t.muted?0:0==t.volume?.1:t.volume)}),t.on("src",()=>{if(t.currentSrc){if(!t.hasState("ad-playing")&&!t.hasState("ad-paused"))return this.onContentNewSrc();if(this.stop(),!this.adapter.isLinearAd())return this.onContentNewSrc();this.setIsContentProcessingNewSrc(!0),this.once(k,()=>{setTimeout(()=>{this.setIsContentProcessingNewSrc(!1),this.onContentNewSrc()},0)})}})}waitForVideoTag(){return new Promise(t=>{const e=this.adapter.getVideoTag();if(e)return t(e);this.on(f,e=>{this.once(g,()=>t(e))})})}async adapterInitialized(t){Fe("Ads.adapterInitialized()"),this._state.toggleState(he.INITIALIZING,!1),this._state.toggleState(he.BREAK_ACTIVE,!!this.hasPreroll()),await this.setCurrentTime(0,t),t||(this.checkIfBreakComplete(),this.adapter.isAdPod()||this.trigger(_))}async fetchNextAd(t,e=0){var s,i;if(!this._schedule||this.getIsContentProcessingNewSrc())return;if(!this.adapter.isReady())return;if(e>50)throw this._state.toggleState(he.FATAL_ERROR,!0),this._state.toggleState(he.FETCHING_AD,!1),new Error("Ads.fetchNextAd() :max_recursion_depth");const r=(null===(s=this._schedule)||void 0===s?void 0:s.getNextAd())||(null===(i=this._schedule)||void 0===i?void 0:i.getPostroll());if(!r||this.adapter.canDismissNonLinear()||-1===t)if(this._schedule.waitForLoad(t,r,this.opts.preload_ads))this._state.toggleState(he.FETCHING_AD,!1);else if(r!==this._schedule.getPostroll()||(this._schedule.setPostrollActive(),-1===t))if(this._schedule.isDrained()||this._schedule.increment(),r){Fe("Ads.fetchNextAd",r),this._state.toggleState(he.FETCHING_AD,!0);try{return await this.requestAd(r),this._state.toggleState(he.AD_AVAILABLE,!0),void this._state.toggleState(he.FETCHING_AD,!1)}catch(s){return Fe("Ads.fetchNextAd(err: %o, ad: %o)",s,r),this.setLastAd(r),r!==this._schedule.getPostroll()?await this.fetchNextAd(t,++e):void this._state.toggleState(he.FETCHING_AD,!1)}}else this._state.toggleState(he.FETCHING_AD,!1);else this._state.toggleState(he.FETCHING_AD,!1)}skipAdsOnSeek(t){if(!this._schedule)return;let e=this._schedule.getNextAd();for(;e&&e.time<t;)this._schedule.increment(),e=this._schedule.getNextAd()}async setCurrentTime(t,e=!1,s=!1){if(!this._schedule)return;if(!this.adapter.isReady())return;if(this._state.hasAny(he.FETCHING_AD))return;if(this._state.hasAny(he.BREAK_ACTIVE)&&this.adapter.isLinearAd())return;if(this._state.hasAny(he.PLAYING)&&this.adapter.isLinearAd())return;const i=0===t&&0===this._schedule.getNextIndex();try{if(s&&!this.opts.show_all_ads_on_seek&&this.skipAdsOnSeek(t),this._state.hasAny(he.AD_AVAILABLE)||await this.fetchNextAd(t),!this._state.hasAny(he.AD_AVAILABLE)||!this.shallPlayAd(t))return;await this.playAd(),await this.setCurrentTime(t),this.checkIfBreakComplete()}catch(t){Fe("setCurrentTime: Error(from: setCurrentTime, message: %s)",t.message)}finally{i&&this.trigger(I)}}async playAd(){var t;if(!this._state.hasAny(he.AD_AVAILABLE))return;this._state.toggleState(he.AD_AVAILABLE,!1),this._state.toggleState(he.BREAK_ACTIVE,!0);const e=null===(t=this._schedule)||void 0===t?void 0:t.getCurrentAd();try{await this.adapter.playAd()}catch(t){console.error("Ads.playAd: error",t)}finally{e&&this.setLastAd(e)}}checkIfBreakComplete(){if(!this._state.hasAny(he.BREAK_ACTIVE))return Fe("Ads.checkIfBreakComplete(:bail, ad: %o)",this.getLastAd());Fe("Ads.checkIfBreakComplete(:run, ad: %o)",this.getLastAd()),this._state.toggleState(he.BREAK_ACTIVE,!1),this.adapter.isAdPod()||this.trigger(k)}resetScheduleCounter(){this._schedule&&this._schedule.resetCounter()}setSchedule(t,e){if(e&&!isNaN(e)&&this._schedule&&this._schedule.updateContentDuration(e),this._schedule&&this._schedule.getNextIndex()>0)return this._schedule.setAds(t);this._schedule=new Schedule(t,{preload_advance:this.opts.preload_advance,content_duration:e?0:e})}toJSON(){return this._schedule?this._schedule.toJSON():[]}trigger(t,e={}){var s;if(!this.adapter.getVideoTag())return;if(!this._state)return;if(t===k&&this._state.hasAny(he.BREAK_ACTIVE)&&!this.adapter.isAdPod()&&!e.force)return Fe("skipping AD_BREAK_COMPLETE reason: %s pod=%s",this._state.toString(),this.adapter.isAdPod());if(null===(i=e)||"object"!=typeof i||ce(i)!==le)return this.dispatch(t,e);var i;const r=Object.assign({},this.adapter.getOpts()||{},(null===(s=this._schedule)||void 0===s?void 0:s.getCurrentAd())||{},{ad_type:this.ad_type},e);return this.dispatch(t,r)}dispatch(t,e){const s=this.adapter.getVideoTag();if(s){Fe(":dispatch",t,e),this.adapter.isAdPod()&&"object"==typeof e&&"time"in e&&"preroll"!==e.ad_type&&(e.time=this.adapter.getAdBreakTime());try{const i={event:"ads/"+t,detail:{outstream:e.outstream,ad_type:e.ad_type,ad_break_time:e.time,ad_remaining_seconds:e.remaining,ad_muted:e.muted,ad_duration_seconds:e.duration,ad_error_reason:e.reason,ad_vast_error:e.vast_error,ad_vast_error_type:e.vast_error_type,ad_request_load_type:e.request_load_time}};s.dispatchEvent(new CustomEvent("health:record",{detail:i}))}catch(t){Fe(":error",t)}this.emit(t,e),lt(s,t,e)}}get ad_type(){if(!this.videoTag)return;if(!this.adapter.isAdPod())return this._schedule&&this._schedule.getCurrentType();const t=this.adapter.getAdBreakTime();return-1===t?"postroll":this.videoTag.hasState(nt)||t<1?"preroll":"midroll"}shouldRestartContent(t){var e,s;if(!(null===(e=this.videoTag)||void 0===e?void 0:e.root.classList.contains(wt)))return!1;if(t===_&&!(null===(s=this.videoTag)||void 0===s?void 0:s.hasState(at)))return!1;if(this.getIsContentProcessingNewSrc())return!1;if(this.adapter.isAdPod())return!0;const i=this.getLastAd();return!i||!i.outstream&&!1!==i.restart}async finished(t){if(this._schedule&&(Fe("Ads.finished"),!(this.adapter.isCustomPlaybackEnabled()&&this._state.hasAny(he.PLAYING)&&this.adapter.isLinearAd()))){Fe("Ads.finished: trying to play postroll");try{if(!this._schedule.getPostroll())return Fe("Ads.finished: no postroll found"),await this.adapter.contentComplete();this._state.hasAny(he.AD_AVAILABLE)||await this.fetchNextAd(-1),await this.playAd(),this.adapter.contentComplete()}catch(t){Fe("Ads.finished: postroll failed:",t)}finally{this.trigger(D),this.checkIfBreakComplete(),"function"==typeof t&&t()}}}hasPreroll(){return this._schedule&&Schedule.hasPreroll(this._schedule.getAds())}shallPlayAd(t){var e,s;return!!(null===(e=this.videoTag)||void 0===e?void 0:e.root.classList.contains(wt))&&((!this.adapter||!this.adapter.isAdPod())&&(!(!this._state||this._state.hasAny(he.FATAL_ERROR))&&!!(null===(s=this._schedule)||void 0===s?void 0:s.shallPlayAd(t))))}setLastAd(t){return this._lastAd=t,this}setIsContentProcessingNewSrc(t){this.content_processing_src=t}getLastAd(){return this._lastAd}getIsContentProcessingNewSrc(){return this.content_processing_src}mergeMacros(t={}){return this._macros=this._macros.fork(Object.assign({},t)),this}get paused(){return this.adapter&&this.adapter.isPaused()}pause(){this.adapter&&this.adapter.pause()}resume(){this.adapter&&this.adapter.resume()}resize(t){this.adapter&&this.adapter.onResize(t)}async requestAd(t,e=0,s=this.opts.timeout){if(!this._state)return;Fe("Ads.requestAd(ad: %o)",{ad:t,timeout:s,idx:e});const i=await de(t);if(void 0===i[e])return setTimeout(()=>this.trigger(_),0),Promise.reject(new Error("Ad failed, no fallbacks left"));if(!i[e])return await this.requestAd(i,e+1,s);this.trigger(y,t);const r=this._macros.compile(i[e],ae(this.opts,this.adapter.getDimensions()));try{return void await this.adapter.initAd(r,s)}catch(t){return Fe(`Ads.requestAd(:fallback, idx: ${e}, length: ${i.length}, adTag: ${i[e]})\nError `,{adTag:i,err:t}),this.requestAd(i,e+1,s)}}resetSchedule(t){this._schedule&&this._schedule.reset(t)}get adPlaying(){return this._state&&this._state.hasAny(he.PLAYING)}get adBreak(){return this._state&&this._state.hasAny(he.BREAK_ACTIVE)}get adRequesting(){return this._state.hasAny(he.FETCHING_AD)}get adLinear(){return this.adBreak&&this.adapter.isLinearAd()}}var je=new Blob([new Uint8Array([255,227,24,196,0,0,0,3,72,1,64,0,0,4,132,16,31,227,192,225,76,255,67,12,255,221,27,255,228,97,73,63,255,195,131,69,192,232,223,255,255,207,102,239,255,255,255,101,158,206,70,20,59,255,254,95,70,149,66,4,16,128,0,2,2,32,240,138,255,36,106,183,255,227,24,196,59,11,34,62,80,49,135,40,0,253,29,191,209,200,141,71,7,255,252,152,74,15,130,33,185,6,63,255,252,195,70,203,86,53,15,255,255,247,103,76,121,64,32,47,255,34,227,194,209,138,76,65,77,69,51,46,57,55,170,170,170,170,170,170,170,170,170,170,255,227,24,196,73,13,153,210,100,81,135,56,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170])],{type:"audio/mpeg"}),qe=new Blob([new Uint8Array([0,0,0,28,102,116,121,112,105,115,111,109,0,0,2,0,105,115,111,109,105,115,111,50,109,112,52,49,0,0,0,8,102,114,101,101,0,0,2,239,109,100,97,116,33,16,5,32,164,27,255,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,55,167,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,33,16,5,32,164,27,255,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,55,167,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,0,0,2,194,109,111,111,118,0,0,0,108,109,118,104,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,232,0,0,0,47,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,1,236,116,114,97,107,0,0,0,92,116,107,104,100,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,36,101,100,116,115,0,0,0,28,101,108,115,116,0,0,0,0,0,0,0,1,0,0,0,47,0,0,0,0,0,1,0,0,0,0,1,100,109,100,105,97,0,0,0,32,109,100,104,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172,68,0,0,8,0,85,196,0,0,0,0,0,45,104,100,108,114,0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0,0,0,1,15,109,105,110,102,0,0,0,16,115,109,104,100,0,0,0,0,0,0,0,0,0,0,0,36,100,105,110,102,0,0,0,28,100,114,101,102,0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1,0,0,0,211,115,116,98,108,0,0,0,103,115,116,115,100,0,0,0,0,0,0,0,1,0,0,0,87,109,112,52,97,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,16,0,0,0,0,172,68,0,0,0,0,0,51,101,115,100,115,0,0,0,0,3,128,128,128,34,0,2,0,4,128,128,128,20,64,21,0,0,0,0,1,244,0,0,1,243,249,5,128,128,128,2,18,16,6,128,128,128,1,2,0,0,0,24,115,116,116,115,0,0,0,0,0,0,0,1,0,0,0,2,0,0,4,0,0,0,0,28,115,116,115,99,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,28,115,116,115,122,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,115,0,0,1,116,0,0,0,20,115,116,99,111,0,0,0,0,0,0,0,1,0,0,0,44,0,0,0,98,117,100,116,97,0,0,0,90,109,101,116,97,0,0,0,0,0,0,0,33,104,100,108,114,0,0,0,0,0,0,0,0,109,100,105,114,97,112,112,108,0,0,0,0,0,0,0,0,0,0,0,0,45,105,108,115,116,0,0,0,37,169,116,111,111,0,0,0,29,100,97,116,97,0,0,0,1,0,0,0,0,76,97,118,102,53,54,46,52,48,46,49,48,49])],{type:"video/mp4"});function He(t){return Object.assign({muted:!1,timeout:250,inline:!1},t)}function Ve(t,e){var s=t.muted,i=t.timeout,r=t.inline,a=e(),n=a.element,o=a.source,d=void 0,l=void 0,c=void 0;return n.muted=s,!0===s&&n.setAttribute("muted","muted"),!0===r&&n.setAttribute("playsinline","playsinline"),n.src=o,new Promise(function(t){d=n.play(),l=setTimeout(function(){c(!1,new Error("Timeout "+i+" ms has been reached"))},i),c=function(e){var s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;n.remove(),n.srcObject=null,clearTimeout(l),t({result:e,error:s})},void 0!==d?d.then(function(){return c(!0)}).catch(function(t){return c(!1,t)}):c(!0)})}var ze={audio:function(t){return Ve(t=He(t),function(){return{element:document.createElement("audio"),source:URL.createObjectURL(je)}})},video:function(t){return Ve(t=He(t),function(){return{element:document.createElement("video"),source:URL.createObjectURL(qe)}})}};let Ge;async function We(t=!0){return Ge||(Ge=await ze.video({timeout:500,muted:t}),Ge)}var Qe=Object.freeze({__proto__:null,STICKY_CONTROLS:1,NO_FULLSCREEN:2,NO_AD_INDICATOR:4,AD_ATTRIBUTION:8,AD_CHOICES:16,REMAINING_TIME:32,VOLUME_BAR:64});const $e=["progress","duration","remaining"];class AdUI extends HTMLElement{static get observedAttributes(){return $e}constructor(t){super(),this.player=t,this.className="fp-ad-ui",this.append(...t.createComponents(St,Tt)),t.on(Q,t=>{let{ui_flags:e}=t.detail;if(e=e||0,(8&e)>0){const t=document.createElement("div");t.classList.add("ad-attribution"),t.textContent=this.player.i18n("ads.advertisement","Advertisement"),this.append(t)}})}}const Ke=vt("fpads:native:outstream"),Ye={OUTSTREAM:"is-outstream",HIDDEN:"is-outstream-hidden",SHOWING:"is-outstream-visible",DONE:"is-outstream-done"};var Ze,Je;!function(t){t.OUTSTREAM_VISIBLE="ads-outstream-visible",t.OUTSTREAM_VIEWPORT_UPDATE="ads-outstream-viewport-update",t.OUTSTREAM_TEARDOWN="ads-outstream-teardown",t.OUTSTREAM_ENDSCREEN_READY="ads-outstream-endscreen-ready"}(Ze||(Ze={})),function(t){t[t.None=0]="None",t[t.Booting=1]="Booting",t[t.Ready=2]="Ready",t[t.Disposed=3]="Disposed"}(Je||(Je={}));class Outstream{constructor({ads:t,root:e,content:s,ima:i}){this.state=Je.None,Ke("creating Outstream instance"),this.content=s,this.ads=t,this.root=e,this.ima=i,this.aspectRatio=s.videoHeight/s.videoWidth,this.dimensions=function(t){if(t.clientWidth>0||t.clientHeight)return h(t);const e={height:t.style.height};p(t,"opacity",0),p(t,"display","absolute"),p(t,"display","inline-block"),p(t,"height","auto");const s=h(t);return p(t,"height",e.height),p(t,"opacity",1),s}(this.root),this.adUi=new AdUI(s),this.initialVolumeState={},e.classList.add(Ye.OUTSTREAM),e.classList.add(wt),e.append(this.adUi),this.hide(),this.ads.on(b,t=>{var e;if(this.state==Je.Disposed)return;const s=!!(null===(e=t.detail)||void 0===e?void 0:e.linear);this.ads.resize(Object.assign(Object.assign({},this.dimensions),{linear:s}))}),s.on(Y,t=>{if(this.state==Je.Disposed)return;const e=t.detail;e&&(this.dimensions={width:e.contentRect.width,height:e.contentRect.height},this.ads.resize(this.dimensions))});let r=1,a=!0;s.on("intersectionchange",t=>{if(this.state==Je.Disposed)return;const e=t.detail;if(e)switch(this.state){case Je.Booting:return Ke(":boot skipping intersectionchange");case Je.None:return this.state=Je.Booting,this.begin_life_cycle();case Je.Ready:if(r=e.ratio,e.ratio>=.5&&this.ads.adPlaying)return;e.ratio>=.5&&a&&this.ads.resume(),e.ratio<.5&&this.ads.pause()}}),this.content.on(S,()=>a=r<.5),this.setup(),setTimeout(()=>(this.state=Je.Booting,this.begin_life_cycle()),0)}hide(){return this}restore_aspect_ratio(){return Ke(`Outstream.restore_aspect_ratio(${this.aspectRatio})`),this.content.setOpts({ratio:this.aspectRatio}),this}show(){this.root.classList.remove(Outstream.CLASS.HIDDEN),this.root.classList.add(Outstream.CLASS.SHOWING),this.content.setState("ad-linear",!0)}async begin_life_cycle(){var t;this.state=Je.Ready;const{error:e,result:s}=await We(!1),{result:i}=await We(!0);this.content.emit(Q,{ui_flags:null===(t=this.content.opts.ads)||void 0===t?void 0:t.ui}),this.attach_ad_listeners(),this.initialVolumeState={can_autoplay:!(!s&&!i),muted:!s},Ke(`Outstream.show() :autoplay >> sound=${s}`),e&&this.content&&!s&&(this.content.muted=!0,this.content.volume=0),await this.ads.setVideoTag(this.content),await It({ads:this.ads,content:this.content,adContainer:this.adUi,ima:this.ima,state:{listening:!1},config:this.content.opts}),Ft({content:this.content,ads:this.ads}),this.state=Je.Ready}attach_ad_listeners(){this.ads.once(b,()=>{this.show(),this.ads.adPlaying&&this.ads.pause()});const t=()=>{kt.forEach(e=>this.ads.removeListener(e,t));const e=new CustomEvent(Ze.OUTSTREAM_TEARDOWN);Ke("Outstream(:teardown)",e),this.content.dispatchEvent(e)};kt.forEach(e=>this.ads.once(e,t)),this.content.once(Ze.OUTSTREAM_TEARDOWN,t=>{setTimeout(()=>{if(t.defaultPrevented)return this.handle_endscreen();this.dispose()},0)})}handle_endscreen(){this.reset_ui(),this.ads.reset(),Ut({config:this.content.opts,ui:this.adUi,ads:this.ads,adContainer:this.adUi,ima:this.ima,content:this.content,root:this.content.root,state:{started:!0,listening:!1},initial:{muted:!0,volume:1}})}empty_src(){this.content.setSrc({type:"video/mp4",src:URL.createObjectURL(Ot)})}setup(){this.root.classList.add(Outstream.CLASS.OUTSTREAM),this.root.classList.add(Outstream.CLASS.HIDDEN),this.content.setState("ad-linear",!1),this.empty_src()}reset_ui(){const t=this.root;t.classList.remove(Outstream.CLASS.SHOWING),t.classList.remove(Outstream.CLASS.OUTSTREAM)}dispose(){if(this.state==Je.Disposed)return;const t=this.root,e=this.content;this.reset_ui(),t.classList.add(Outstream.CLASS.OUTSTREAM),t.classList.add(Outstream.CLASS.DONE);const s=this;s.video=s.container=s.ads=0,this.state=Je.Disposed,e.destroy(),t.innerHTML=""}}function Xe(t){return t&&"number"==typeof t.time}function ts(t){return t&&"number"==typeof t.percentage&&"number"!=typeof t.time}Outstream.CLASS=Ye;const es=vt("ads/ima/sdk");var ss,is;async function rs(t,e){var s;const i=null===(s=null===window||void 0===window?void 0:window.google)||void 0===s?void 0:s.ima;if(e?null==i?void 0:i.dai:i)return void es(":noop");const r=e?"https://imasdk.googleapis.com/js/sdkloader/ima3_dai.js":t._storage.getItem("ima/debug")?"https://imasdk.googleapis.com/js/sdkloader/ima3_debug.js":"https://imasdk.googleapis.com/js/sdkloader/ima3.js";try{return await async function(t){return new Promise((e,s)=>{let i=document.querySelector(`script[src='${t}']`);if(i)return as(i,e,s);i=document.createElement("script"),i.setAttribute("state",ss.LOADING),as(i,e,s),i.src=t,document.head.appendChild(i)})}(r),void es(":loaded")}catch(t){es(`:error ${t.message}`,t)}}function as(t,e,s){const i=t.getAttribute("state");if(i&&[ss.ERROR,ss.LOADED].includes(i))return e(void 0);t.addEventListener("load",()=>{t.setAttribute("state",ss.LOADED),e(void 0)},{once:!0}),["error","abort"].forEach(e=>{t.addEventListener(e,()=>{t.setAttribute("state",ss.ERROR),s("script failed to load")},{once:!0})})}!function(t){t.LOADING="loading",t.LOADED="loaded",t.ERROR="error"}(ss||(ss={})),function(t){t.LOADING="loading",t.LOADED="loaded",t.ERROR="error"}(is||(is={}));const ns=vt("ads/ima/sdk"),os="https://cdn.jsdelivr.net/npm/prebid.js@latest/dist/not-for-prod/prebid.js",ds=os;async function ls(t){var e;const s=t._storage.getItem("prebid/debug")?os:ds;if(null===(e=null===window||void 0===window?void 0:window.pbjs)||void 0===e?void 0:e.version)ns(":noop");else if(!document.querySelector(`script[src='${s}']`))try{return await async function(t){return new Promise((e,s)=>{let i=document.querySelector(`script[src='${t}']`);i||(i=document.createElement("script")),i.setAttribute("state",is.LOADING);const r=i.getAttribute("state");if(r&&[is.ERROR,is.LOADED].includes(r))return e(void 0);i.addEventListener("load",()=>{i.setAttribute("state",is.LOADED),e(void 0)},{once:!0}),["error","abort"].forEach(t=>{i.addEventListener(t,()=>{i.setAttribute("state",is.ERROR),s("script failed to load")},{once:!0})}),i.src=t,document.head.appendChild(i)})}(s),void ns(":loaded")}catch(t){console.warn(`:error / failed to load prebid.js / ${t.message}`,t)}}const cs=window.pbjs=window.pbjs||{};cs.que=cs.que||[];class PrebidAdController{constructor(t,e){this.player=t,this.config=e,this.player=t,this.bestOffer="",cs.que.push(()=>{var s,i;const r=this.createAdUnit();cs.addAdUnits(r);const a=(null===(i=null===(s=e.ads)||void 0===s?void 0:s.prebid)||void 0===i?void 0:i.pbjs)||{};cs.setConfig(Object.assign({enableSendAllBids:!0},a)),t.emit($,{pbjs:cs}),cs.requestBids({bidsBackHandler:t=>{var s,i,a,n,o;const d=null===(s=t[this.prebidCode()])||void 0===s?void 0:s.bids;if(!d)return;if(0==d.length)return;const l=d[0];if(l&&l.vastUrl)return this.bestOffer=l.vastUrl;const c=cs.adServers.dfp.buildVideoUrl({adUnit:r,params:{iu:null===(a=null===(i=e.ads)||void 0===i?void 0:i.prebid)||void 0===a?void 0:a.iu,cust_params:null===(o=null===(n=e.ads)||void 0===n?void 0:n.prebid)||void 0===o?void 0:o.custom_params,output:"vast"}});this.bestOffer=c}})})}prebidCode(){var t,e;return(null===(e=null===(t=this.config.ads)||void 0===t?void 0:t.prebid)||void 0===e?void 0:e.code)||this.player.root.id}videoInfo(){var t,e;return(null===(e=null===(t=this.config.ads)||void 0===t?void 0:t.prebid)||void 0===e?void 0:e.video)||{context:"instream",playerSize:[[this.player.videoWidth||640,this.player.videoHeight||480]]}}createAdUnit(){var t,e;return{code:this.prebidCode(),mediaTypes:{video:this.videoInfo()},bids:null===(e=null===(t=this.config.ads)||void 0===t?void 0:t.prebid)||void 0===e?void 0:e.bidders}}vastGenerator(){return async()=>this.bestOffer}}function us(t,e){var s,i;const r=null===(s=e.ads)||void 0===s?void 0:s.prebid;if(!r)return;if((null===(i=t.prebidController)||void 0===i?void 0:i.config)===e)return;!function(t,{feature_name:e,behavior:s,sample_rate:i}){e&&(i||(i=mt),t.emit("flowplayer:feature",{feature_name:e,behavior:s,sample_rate:i}))}(t,{feature_name:"prebid",behavior:"used"}),t.prebidController||(t.prebidController=new PrebidAdController(t,e),ls(t));const a=t.prebidController;if(a){const e=r.breaks.map(t=>({adTag:a.vastGenerator(),time:t}));t.setOpts({ima:{ads:e}})}}const hs=vt("ads/index");async function ps(t,e,s){var i;let r;if(s.on("config",()=>{var e,i,a;void 0===r&&t.autoplay&&(Wt(a=t.ima)&&(null==a?void 0:a.ads.find(t=>!t.time||"percentage"in t&&0===t.percentage)))&&!s.currentSrc&&(i=t.autoplay,r=!0===i?ct.ON:!1===i?ct.OFF:i,t.autoplay=0),(null===(e=t.ads)||void 0===e?void 0:e.prebid)&&us(s,t),Wt(t.ima)&&Gt(s)&&Object.assign(t,{hls:{native:!0}}),s.ads&&d()}),s.once("loadstart",()=>{setTimeout(async()=>{if(void 0!==r&&(await rs(s),!("google"in window))){if(t.autoplay=r,s.setState(ot,!0),!s.hasState(dt))return s.once(st,()=>s.togglePlay(!0));s.togglePlay(!0)}},0)}),await rs(s),!("google"in window))return console.warn("google.ima unavailable");let a=!1;const n=s.ads=new AdsController,o=n.analytics;function d(){if(!Wt(t.ima))return;const i=t.ima,d=t.duration||s.duration;if(i.ads=function(t,e){return Array.isArray(t)?t.filter(t=>Xe(t)||ts(t)).reduce((t,s)=>{if(Xe(s))return t.push(s),t;if(s.lazy)return t.push(s),t;if(ts(s)){const i=Object.assign({},s),r=s.percentage?s.percentage*e:0;return isNaN(r)||(i.time=r<0||r===e?-1:r),t.push(i),t}return t},[]):(console.warn("AdSchedule was not an Array"),[])}(i.ads,d),n.setSchedule(i.ads,d),t.metadata&&Analytics.mergeMetadata(o,t.metadata),t.metadata&&n.mergeMacros(t.metadata),t.metadata&&i.parameters&&(i.parameters=Object.assign(Object.assign({},i.parameters),t.metadata)),Analytics.mergeMetadata(o,{muted:t.muted||!1,autoplay:t.autoplay||!1}),!a){if(a=!0,t.lang&&!i.Locale&&(i.Locale=t.lang),Schedule.isOutstream(i.ads))return hs("is outstream, returning"),new Outstream({root:e,content:s,ads:n,ima:i});Dt({config:Object.assign(Object.assign({},t),{autoplay:r}),root:e,content:s,ads:n,ima:i})}}n.resize(h(e)),n.on(D,()=>{n.adapter.isCustomPlaybackEnabled()&&n.once(k,()=>{s.src=s.original_src,s.once("canplay",()=>{s.togglePlay(!1)}),s.webkitExitFullscreen()})}),s.on("reap",function(){n&&n.destroy()}),(null===(i=t.ads)||void 0===i?void 0:i.prebid)&&us(s,t),d()}class AdControls extends HTMLElement{constructor(t){super(),this.player=t,this.classList.add("fp-ad-controls"),this.append(this.adRemainingTime(),yt(this.player,Lt),this.playbackButtons(),this.volumeBtn(),yt(this.player,"flowplayer-volume-bar"),...this.fullscreenIcons(),this.adChoices()),t.on(Q,this.applyStyleFlags.bind(this))}fullscreenIcons(){return this.player.createComponents("flowplayer-fullscreen-enter-icon","flowplayer-fullscreen-exit-icon").map(t=>(t.onclick=()=>this.player.toggleFullScreen(),t))}volumeBtn(){const t=yt(this.player,"flowplayer-volume-icon");return t.onclick=()=>this.player.emit(z),t}playbackButtons(){const t=document.createElement("div");t.classList.add("ad-playback-controls");const e=yt(this.player,"flowplayer-small-play-icon"),s=yt(this.player,"flowplayer-small-pause-icon");return e.addEventListener("click",()=>{this.player.emit(V),setTimeout(function(){s.focus&&s.focus()},100)}),s.addEventListener("click",()=>{this.player.emit(H),setTimeout(function(){e.focus&&e.focus()},100)}),t.append(e,s),t}adChoices(){const t=document.createElement("div");return t.classList.add("fp-ad-choices"),t.textContent=this.player.i18n("ads.adchoices","AdChoices"),t.addEventListener("click",t=>{t.preventDefault(),this.player.togglePlay(!1),window.open("https://adssettings.google.com","_blank")}),t}adRemainingTime(){const t=document.createElement("div");return t.classList.add("fp-ad-remaining","fp-color-text"),this.prepend(t),this.player.on(L,e=>{const s=e.detail.remaining;t.textContent=function(t){if(isNaN(t)||t>=Number.MAX_SAFE_INTEGER)return"";const e=t<0?"-":"";t=Math.round(Math.abs(t));const s=Math.floor(t/3600);let i=Math.floor(t/60);return t-=60*i,s>=1?(i-=60*s,e+s+":"+ut(i)+":"+ut(t)):e+ut(i)+":"+ut(t)}(parseFloat(s+""))}),t}applyStyleFlags(t){var e;const s=null!==(e=t.detail.ui_flags)&&void 0!==e?e:0;this.classList.toggle("is-ad-controls-sticky",(1&s)>0),this.classList.toggle("no-indicator",(4&s)>0),this.classList.toggle("is-ad-choices",(16&s)>0),this.classList.toggle("no-volume-bar",!(64&s)),this.classList.toggle("is-ad-remaining",(32&s)>0),this.classList.toggle("no-fullscreen",(2&s)>0)}}class AdCountdown extends HTMLElement{static get observedAttributes(){return["remaining"]}constructor(t){super(),this.player=t,this.className="fp-ad-countdown",t.on(L,t=>{const{duration:e,remaining:s}=t.detail;this.setAttribute("duration",e+""),this.setAttribute("remaining",s+"")}),t.on(w,t=>{t.detail.linear&&(this.style.setProperty("--ad-percent-previous","0"),this.style.setProperty("--ad-percent-complete","0"))}),this.addEventListener("animationend",()=>{const t=this.style.getPropertyValue("--ad-percent-complete")||"0";this.style.setProperty("--ad-percent-previous",t)})}attributeChangedCallback(t,e,s){if("remaining"===t)return this.onRemaining(s)}onRemaining(t){const e=parseFloat(this.getAttribute("duration")||"0");t||(t=e+"");const s=parseFloat(t),i=this.style.getPropertyValue("--ad-percent-complete")||"0";this.style.setProperty("--ad-percent-previous",i),this.classList.remove("go");const r=((e-s)/e*100).toFixed(3);requestAnimationFrame(()=>{this.style.setProperty("--ad-percent-complete",r),this.classList.add("go")})}}class AdIndicator extends HTMLElement{static get observedAttributes(){return["position","totals"]}constructor(t){super(),this.player=t,this.render(),t.on(w,t=>{const{position:e,totals:s}=t.detail.ad;this.setAttribute("position",e+""),this.setAttribute("totals",s+"")})}attributeChangedCallback(t,e){switch(t){case"position":case"totals":return this.updateText()}}updateText(){if(!this.element)return;const t=parseFloat(this.getAttribute("position")||"0"),e=parseFloat(this.getAttribute("totals")||"0");this.element.textContent=`${this.player.i18n("ads.indicator","ADS")} ${t} / ${e}`}render(){this.element=document.createElement("div"),this.element.classList.add("ad-indicator","fp-color-text"),this.element.textContent=this.player.i18n("ads.indicator","ADS"),this.append(this.element)}}var gs,ms=Object.freeze({__proto__:null,SINGlE_INLINE_LINEAR:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_ad_samples&sz=640x480&cust_params=sample_ct%3Dlinear&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",SINGLE_SKIPPABLE_INLINE:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_preroll_skippable&sz=640x480&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",SINGLE_REDIRECT_LINEAR:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_ad_samples&sz=640x480&cust_params=sample_ct%3Dredirectlinear&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",SINGLE_REDIRECT_ERROR:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_ad_samples&sz=640x480&cust_params=sample_ct%3Dredirecterror&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",SINGLE_REDIRECT_BROKEN:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_ad_samples&sz=640x480&cust_params=sample_ct%3Dredirecterror&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&nofb=1&correlator=",SINGLE_VPAID_20_LINEAR:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_ad_samples&sz=640x480&cust_params=sample_ct%3Dlinearvpaid2js&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",SINGLE_VPAID_20_NON_LINEAR:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_ad_samples&sz=640x480&cust_params=sample_ct%3Dnonlinearvpaid2js&ciu_szs=728x90%2C300x250&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",SINGLE_NON_LINEAR_INLINE:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/nonlinear_ad_samples&sz=480x70&cust_params=sample_ct%3Dnonlinear&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",VMAP_SESSION_AD_RULE_PREROLL:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/vmap_ad_samples&sz=640x480&cust_params=sar%3Da0f2&ciu_szs=300x250&ad_rule=1&gdfp_req=1&output=vmap&unviewed_position_start=1&env=vp&impl=s&correlator=",VMAP_PREROLL:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/vmap_ad_samples&sz=640x480&cust_params=sample_ar%3Dpreonly&ciu_szs=300x250%2C728x90&gdfp_req=1&ad_rule=1&output=vmap&unviewed_position_start=1&env=vp&impl=s&correlator=",VMAP_PREROLL_BUMPER:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/vmap_ad_samples&sz=640x480&cust_params=sample_ar%3Dpreonlybumper&ciu_szs=300x250&gdfp_req=1&ad_rule=1&output=vmap&unviewed_position_start=1&env=vp&impl=s&correlator=",VMAP_POSTROLL:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/vmap_ad_samples&sz=640x480&cust_params=sample_ar%3Dpostonly&ciu_szs=300x250&gdfp_req=1&ad_rule=1&output=vmap&unviewed_position_start=1&env=vp&impl=s&correlator=",VMAP_POSTROLL_BUMPER:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/vmap_ad_samples&sz=640x480&cust_params=sample_ar%3Dpostonlybumper&ciu_szs=300x250&gdfp_req=1&ad_rule=1&output=vmap&unviewed_position_start=1&env=vp&impl=s&correlator="});const{samsung_tv:_s}=u(),fs=(gs=class Ads{constructor(t){this.umd=t,At(t,Et,AdUI),At(t,St,AdControls),At(t,Tt,AdCountdown),At(t,Lt,AdIndicator)}init(t,e,s){if(c.from_token(t.token||"").is_granted(c.permissions.ADS)&&!_s)return ps(t,e,s)}},gs.pluginName="ads",gs.events=K,gs.ui=Qe,gs.tags=ms,gs);return function(t,e){if("object"==typeof exports&&"undefined"!=typeof module)return e;if(null===document.currentScript)return e;"flowplayer"in t||(t.flowplayer={extensions:[]});const s=t.flowplayer;return"function"==typeof s?(s(e),e):(Array.isArray(s.extensions)||(s.extensions=[]),~s.extensions.indexOf(e)||s.extensions.push(e),e)}(window,fs)});
@@ -931,6 +931,7 @@ declare class I18n implements Plugin_2 {
931
931
  timeline_aria_label: string;
932
932
  unmute: string;
933
933
  volume: string;
934
+ options: string;
934
935
  close: string;
935
936
  "skip-next": string;
936
937
  "skip-prev": string;
@@ -963,6 +964,10 @@ declare class I18n implements Plugin_2 {
963
964
  button_txt: string;
964
965
  menu_title: string;
965
966
  };
967
+ spins: {
968
+ more: string;
969
+ less: string;
970
+ };
966
971
  };
967
972
  init(config: Config, _root: never, video: Player): void;
968
973
  /* Excluded from this release type: _nonLanguageFields */
@@ -925,6 +925,7 @@ declare class I18n implements Plugin_2 {
925
925
  timeline_aria_label: string;
926
926
  unmute: string;
927
927
  volume: string;
928
+ options: string;
928
929
  close: string;
929
930
  "skip-next": string;
930
931
  "skip-prev": string;
@@ -957,6 +958,10 @@ declare class I18n implements Plugin_2 {
957
958
  button_txt: string;
958
959
  menu_title: string;
959
960
  };
961
+ spins: {
962
+ more: string;
963
+ less: string;
964
+ };
960
965
  };
961
966
  init(config: Config, _root: never, video: Player): void;
962
967
  /* Excluded from this release type: _nonLanguageFields */
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):((e="undefined"!=typeof globalThis?globalThis:e||self).flowplayer=e.flowplayer||{},e.flowplayer.analytics=t())}(this,function(){"use strict";const e=(...e)=>e.reduce((e,t)=>Object.assign(Object.assign({},e),t),{}),t=(e,t)=>{const r=e.lastIndexOf(t);return~r&&e.splice(r,1),e};class RequestQueue{static of(){return new RequestQueue}static is_empty(e){return 0==e.pending.length}static is_high_water(e){return e.open.length==RequestQueue.MAX_OPEN_REQUESTS}static maybe_spawn_req(e){if(RequestQueue.is_empty(e))return e;if(RequestQueue.is_high_water(e))return e;try{const t=RequestQueue.lpop(e);t&&RequestQueue.request(e,t)}catch(e){}}static increment_failures(e){return e.stats.failures++,e.stats.failures>RequestQueue.MAX_FAILURE_COUNT&&(e.stats.ttl=Date.now()+RequestQueue.REQUEST_TTL_MS),e}static handle_error(e,t){RequestQueue.rm(e,t),RequestQueue.increment_failures(e)}static request(e,[t,r,n]){if(Date.now()<e.stats.ttl)return;const i=new XMLHttpRequest;e.open.push(i),i.timeout=RequestQueue.REQUEST_TIMEOUT_MS,i.ontimeout=function(){RequestQueue.handle_error(e,i)},i.onerror=function(t){RequestQueue.handle_error(e,i)},i.onreadystatechange=function(){i.readyState==XMLHttpRequest.DONE&&RequestQueue.rm(e,i),Math.floor(i.status/100)},i.onload=function(){RequestQueue.rm(e,i),e.stats.failures&&e.stats.failures--},i.open(r,t),i.setRequestHeader("Content-Type","text/plain;charset=UTF-8");try{i.send(JSON.stringify(n))}catch(e){}}static rpush(e,...t){return t.forEach(t=>{e.pending.length>=RequestQueue.MAX_PENDING||(e.pending.push(t),RequestQueue.maybe_spawn_req(e))}),e}static lpop(e){return e.pending.shift()}static rm(e,r){return t(e.open,r),e}constructor(){this.pending=[],this.open=[],this.stats={failures:0,ttl:0}}}RequestQueue.MAX_OPEN_REQUESTS=3,RequestQueue.MAX_PENDING=5,RequestQueue.REQUEST_TIMEOUT_MS=4e3,RequestQueue.REQUEST_TTL_MS=5e3,RequestQueue.MAX_FAILURE_COUNT=3;var r=RequestQueue.of();const n=/:([a-zA-Z_]+)/g;class Log{static prepare(e,t){const r=document.createEvent("Event");return r.initEvent(e,!1,!0),r.ns=e,r.data=t,r}static of(e){return new Log(e)}constructor(e){this.emitter=e}info(e){this.emitter.dispatchEvent(Log.prepare(Log.NAMESPACE.INFO,e))}error(e){this.emitter.dispatchEvent(Log.prepare(Log.NAMESPACE.ERROR,e))}warn(e){this.emitter.dispatchEvent(Log.prepare(Log.NAMESPACE.WARN,e))}}var i;Log.NAMESPACE={INFO:"tracker:info",ERROR:"tracker:err",WARN:"tracker:warn"},function(e){e.POST="POST",e.PUT="PUT",e.GET="GET"}(i||(i={}));class Tracker{static of(e,t){return new Tracker(e,t)}static ensure_required_keys(e,t){return e.required_keys.filter(e=>!(e in t))}static pluck_valid_keys(t,r){return((t,...r)=>Object.keys(t).filter(e=>~r.indexOf(e)).reduce((r,n)=>e(r,{[n]:t[n]}),{}))(r,...t.valid_keys)}static merge_metadata(t,r={}){return t.metadata=Tracker.pluck_valid_keys(t,e(t.metadata,r)),t}static assert_emitter_api(e){if("function"!=typeof(e||{}).addEventListener)throw new Error("Tracker() received an emitter that does not implement the addEventListener method");if("function"!=typeof(e||{}).removeEventListener)throw new Error("Tracker() received an emitter that does not implement the removeEventListener method")}static create_listener(e,t,r){var n;e.listeners.push([t,r]),null===(n=e.emitter)||void 0===n||n.addEventListener(t,r)}constructor(t,i={}){const o=this;if(this.emitter=t,this.url=i.url,this.log=Log.of(this.emitter),this.verb=i.verb,this.metadata=e({},i.metadata||{}),this.rq=i.rq||r,this.events=i.events||[],this.required_keys=i.required_keys||[],this.optional_keys=i.optional_keys||[],this.listeners=[],this.valid_keys=this.required_keys.slice(0).concat(this.optional_keys),Tracker.assert_emitter_api(this.emitter),void 0===Tracker.verb[this.verb])throw new Error(`invalid HTTP verb[${this.verb}] passed`);if("string"!=typeof this.url)throw new Error(`invalid API url[${this.url}] passed`);Tracker.TRACKERS.push(this),o.events.forEach(t=>{Tracker.create_listener(this,t,(r={})=>{var i;if(null===(i=this.emitter)||void 0===i?void 0:i.hasState("consent-no-tracking"))return;const a=e(o.metadata,{event_type:t},r.data||r),s=function(e,t){return e.replace(n,e=>{const r=e.slice(1,e.length);return r in t?t[r].toString():e})}(o.url,a),u=Tracker.pluck_valid_keys(o,a),d=Tracker.ensure_required_keys(o,u);if(d.length)return o.log.error(`Tracker.validate_metadata() failed for\n Event[${t}]\n missing keys: ${d}\n payload:\n ${JSON.stringify(u,null,2)}`);this.rq&&RequestQueue.rpush(this.rq,[s,this.verb,u])})})}destroy(){this.listeners.forEach(([e,t])=>{var r;return null===(r=this.emitter)||void 0===r?void 0:r.removeEventListener(e,t)}),delete this.rq,delete this.emitter,t(Tracker.TRACKERS,this)}put(e={}){return Tracker.merge_metadata(this,e),this}}var o;Tracker.TRACKERS=[],Tracker.QUEUE=r,Tracker.verb=i,function(e){e[e.ADS=2]="ADS",e[e.ANALYTICS=4]="ANALYTICS",e[e.NO_METERING=8]="NO_METERING",e[e.DEVELOPER_PLAN=16]="DEVELOPER_PLAN",e[e.WOWZA_VIDEO=32]="WOWZA_VIDEO"}(o||(o={}));const a=["localhost","127.0.0.1","0.0.0.0","s.codepen.io","cdpn.io","try.flowplayer.com"];function s(e,t){return!!~a.indexOf(e)||e.indexOf(t)===e.length-t.length}s.check_whitelist=function(e){return!!~a.indexOf(e)};function u(e){this.message=e}u.prototype=new Error,u.prototype.name="InvalidCharacterError";var d="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(e){var t=String(e).replace(/=+$/,"");if(t.length%4==1)throw new u("'atob' failed: The string to be decoded is not correctly encoded.");for(var r,n,i=0,o=0,a="";n=t.charAt(o++);~n&&(r=i%4?64*r+n:n,i++%4)?a+=String.fromCharCode(255&r>>(-2*i&6)):0)n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(n);return a};var c=function(e){var t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw"Illegal base64url string!"}try{return function(e){return decodeURIComponent(d(e).replace(/(.)/g,function(e,t){var r=t.charCodeAt(0).toString(16).toUpperCase();return r.length<2&&(r="0"+r),"%"+r}))}(t)}catch(e){return d(t)}};function l(e){this.message=e}l.prototype=new Error,l.prototype.name="InvalidTokenError";var f=function(e,t){if("string"!=typeof e)throw new l("Invalid token specified");var r=!0===(t=t||{}).header?0:1;try{return JSON.parse(c(e.split(".")[r]))}catch(e){throw new l("Invalid token specified: "+e.message)}};f.InvalidTokenError=l;const p="production";function _(e,t){const r={valid_jwt:!1,raw:"",data:{acl:0},exp:0};let n={c:"{}",exp:0};t=t||{};try{n=f(e),r.valid_jwt=!0}catch(e){}return r.raw=e,r.data=JSON.parse(n.c),r.exp=n.exp,t.require_valid_token&&_.validate(r),r}function h(e){return{grant:e,is_granted:t=>(e&t)===t}}function m(e,t,r){const n=function(e){return Array.isArray(e)?e.slice(0):e.split(".")}(t);for(;n.length;){if(null==e)return r;const t=n.shift();if("string"!=typeof t)return r;e=e[t]}return null==e?r:e}_.validate=function(e){if("string"==typeof e&&(e=_(e)),!e||!e.raw){if(s.check_whitelist(window.location.hostname)||"dev"===p.toString())return!0;throw new Error("No token provided in configuration")}if(!e.valid_jwt)throw new Error("Invalid token provided");const t=window.location.hostname,r=s.bind(null,t);if("dev"!==p.toString()&&e.data.domain&&e.data.domain.length&&!e.data.domain.some(r))throw new Error("Domain not allowed");if("dev"!==p.toString()&&1e3*e.exp-Date.now()<0)throw new Error("Expired token");return!0},_.id=function(e){if(e)return"string"==typeof e&&(e=_(e)),e.data.id},h.of=h,h.from_token=function(e){const t=_(e,{require_valid_token:!0});return h.of(t.data.acl)},h.permissions=o;var v="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{};var y="ping",k="display",g="view";const w=["sitegroup_id","session_id","media_id","site_id","player_id","video_type"],E=["created","position"],T=["player_version","created","source","category","category_id","autoplay","muted","customer_user_id"];const R="is-seeking";const q=100,A=1e3;function S(e,t){return e.duration/1===e.duration&&Object.assign(t,function(e){const t=e/q;return{segment_duration:t,breakpoints:Array(...Array(q)).map(function(e,r){return Math.floor(r*t*A)/A})}}(e.duration))}function O(e,t,r,n){if(!t.segment_duration&&!S(e,t))return;const i=function(e,t,r,n){const i=t.last_idx,o=r?100:b(e,t,n);return t.last_idx=o,o<=i?[]:t.breakpoints.slice(i,o).map(function(e){return t.breakpoints.indexOf(e)})}(e,t,r,n);0!=i.length&&e.emit(y,{position:i})}function b(e,t,r){const n=void 0!==r?r:e.currentTime;return Math.min(100,Math.max(0,Math.floor(n/t.segment_duration-.8)+1))}function N(){try{const e=window.location!==window.parent.location?document.referrer:document.location.href;return"string"==typeof e&&e.slice(0,200)}catch(e){return!1}}var Q;const x="vod",L="live",I=[k,y,g];function M(e,t,r,n){switch(null==t?void 0:t.kind){case"live":return function(e,t){const r=Date.now();r-t.last_tracked_ts<6e4||(t.last_tracked_ts=r,++t.ticks,e.emit(y,{position:60*t.ticks}))}(e,t);case"vod":return O(e,t,"boolean"==typeof r&&r,n)}}function P(e){const t=e.ads;return void 0!==t&&(void 0!==t.schedule&&("function"==typeof t.hasPreroll&&(t.currentRequests?t.currentRequests:!!t.adPlaying||!(!t.hasPreroll()||0!=t.nextIndex))))}const C=((Q=class Analytics{init(e,t,r){if(!h.from_token(e.token||"").is_granted(h.permissions.ANALYTICS))return;if(r.analytics)return;const n=r.analytics={ticker:void 0,last_media_id:"",ended:!1,played:!1},i={locked:void 0,ttl:6e3,task:()=>{r.hasState(R)||M(r,n.ticker)}};const o={session_id:r.deviceId(),autoplay:r.autoplay,muted:r.muted,player_id:e.player_id,customer_user_id:e.customer_user_id,player_version:"3.40.2-rc"},a=Tracker.of(r,{verb:Tracker.verb.POST,url:"https://ptm.flowplayer.com/:video_type/:sitegroup_id/:event_type",events:I,required_keys:w,optional_keys:T.concat(E).slice(0),metadata:o});r.on("reap",function(){a&&a.destroy()});let s=0,u=0;r.on("config",function(t){if(!a)return;const i=m(t,"data.metadata",{});if(!i.media_id&&i.stream_target_id&&(i.media_id=i.stream_target_id),!i.media_id)return n.last_media_id="";if(n.last_media_id===i.media_id)return;n.played=!1,n.last_media_id=i.media_id;const o=m(e,"analytics",{});a.put(i),a.put(o);const u=m(e,"metadata.live_start_time",e.live)?L:x;a.put({video_type:u,source:e.source||N()||""}),n.ticker=m(e,"metadata.live_start_time",e.live)?{ticks:0,last_tracked_ts:Date.now(),kind:"live"}:{last_idx:0,segment_duration:0,breakpoints:[],kind:"vod"},s=0,n.ended=!1,r.emit(k)}),r.on("playing",function(){if(!a)return;if(u||n.played||!n.last_media_id)return;a.put({muted:r.muted});const e=P(r);if(e)return u=Promise.resolve(e).then(function(){n.played=!0,r.emit(g),u=0}).catch(function(){u=0});n.played=!0,r.emit(g)}),r.on("timeupdate",function(){var t;a&&(s=r.currentTime,u||P(r)||n.ended||!n.last_media_id||r.hasState(R)||(!e.live&&r.currentTime+.25>=r.duration&&M(r,n.ticker,!0),(t=i).locked||(t.locked=setTimeout(function(){return t.task(),function(e){return e.locked=void 0,e}(t)},t.ttl))))}),r.on("seeked",function(){var e;a&&n.last_media_id&&(n.ended&&(n.ended=!1,s=0,"vod"===(null===(e=n.ticker)||void 0===e?void 0:e.kind)&&(n.ticker.last_idx=0)),n.ticker&&"vod"==n.ticker.kind&&function(e,t){S(e,t),t.last_idx=b(e,t)}(r,n.ticker))}),r.on("timeline/gesture/start",function(){M(r,n.ticker,!1,s)}),r.on("ended",function(){a&&n.last_media_id&&function(e,t){t.ended||(t.ended=!0,M(e,t.ticker))}(r,n)})}}).pluginName="analytics",Q),U=function(e,t){if("object"==typeof exports&&"undefined"!=typeof module)return t;if(null===document.currentScript)return t;"flowplayer"in e||(e.flowplayer={extensions:[]});const r=e.flowplayer;return"function"==typeof r?(r(t),t):(Array.isArray(r.extensions)||(r.extensions=[]),~r.extensions.indexOf(t)||r.extensions.push(t),t)}("undefined"!=typeof window?window:void 0!==v?v:{},C);return U});
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):((e="undefined"!=typeof globalThis?globalThis:e||self).flowplayer=e.flowplayer||{},e.flowplayer.analytics=t())}(this,function(){"use strict";const e=(...e)=>e.reduce((e,t)=>Object.assign(Object.assign({},e),t),{}),t=(e,t)=>{const r=e.lastIndexOf(t);return~r&&e.splice(r,1),e};class RequestQueue{static of(){return new RequestQueue}static is_empty(e){return 0==e.pending.length}static is_high_water(e){return e.open.length==RequestQueue.MAX_OPEN_REQUESTS}static maybe_spawn_req(e){if(RequestQueue.is_empty(e))return e;if(RequestQueue.is_high_water(e))return e;try{const t=RequestQueue.lpop(e);t&&RequestQueue.request(e,t)}catch(e){}}static increment_failures(e){return e.stats.failures++,e.stats.failures>RequestQueue.MAX_FAILURE_COUNT&&(e.stats.ttl=Date.now()+RequestQueue.REQUEST_TTL_MS),e}static handle_error(e,t){RequestQueue.rm(e,t),RequestQueue.increment_failures(e)}static request(e,[t,r,n]){if(Date.now()<e.stats.ttl)return;const i=new XMLHttpRequest;e.open.push(i),i.timeout=RequestQueue.REQUEST_TIMEOUT_MS,i.ontimeout=function(){RequestQueue.handle_error(e,i)},i.onerror=function(t){RequestQueue.handle_error(e,i)},i.onreadystatechange=function(){i.readyState==XMLHttpRequest.DONE&&RequestQueue.rm(e,i),Math.floor(i.status/100)},i.onload=function(){RequestQueue.rm(e,i),e.stats.failures&&e.stats.failures--},i.open(r,t),i.setRequestHeader("Content-Type","text/plain;charset=UTF-8");try{i.send(JSON.stringify(n))}catch(e){}}static rpush(e,...t){return t.forEach(t=>{e.pending.length>=RequestQueue.MAX_PENDING||(e.pending.push(t),RequestQueue.maybe_spawn_req(e))}),e}static lpop(e){return e.pending.shift()}static rm(e,r){return t(e.open,r),e}constructor(){this.pending=[],this.open=[],this.stats={failures:0,ttl:0}}}RequestQueue.MAX_OPEN_REQUESTS=3,RequestQueue.MAX_PENDING=5,RequestQueue.REQUEST_TIMEOUT_MS=4e3,RequestQueue.REQUEST_TTL_MS=5e3,RequestQueue.MAX_FAILURE_COUNT=3;var r=RequestQueue.of();const n=/:([a-zA-Z_]+)/g;class Log{static prepare(e,t){const r=document.createEvent("Event");return r.initEvent(e,!1,!0),r.ns=e,r.data=t,r}static of(e){return new Log(e)}constructor(e){this.emitter=e}info(e){this.emitter.dispatchEvent(Log.prepare(Log.NAMESPACE.INFO,e))}error(e){this.emitter.dispatchEvent(Log.prepare(Log.NAMESPACE.ERROR,e))}warn(e){this.emitter.dispatchEvent(Log.prepare(Log.NAMESPACE.WARN,e))}}var i;Log.NAMESPACE={INFO:"tracker:info",ERROR:"tracker:err",WARN:"tracker:warn"},function(e){e.POST="POST",e.PUT="PUT",e.GET="GET"}(i||(i={}));class Tracker{static of(e,t){return new Tracker(e,t)}static ensure_required_keys(e,t){return e.required_keys.filter(e=>!(e in t))}static pluck_valid_keys(t,r){return((t,...r)=>Object.keys(t).filter(e=>~r.indexOf(e)).reduce((r,n)=>e(r,{[n]:t[n]}),{}))(r,...t.valid_keys)}static merge_metadata(t,r={}){return t.metadata=Tracker.pluck_valid_keys(t,e(t.metadata,r)),t}static assert_emitter_api(e){if("function"!=typeof(e||{}).addEventListener)throw new Error("Tracker() received an emitter that does not implement the addEventListener method");if("function"!=typeof(e||{}).removeEventListener)throw new Error("Tracker() received an emitter that does not implement the removeEventListener method")}static create_listener(e,t,r){var n;e.listeners.push([t,r]),null===(n=e.emitter)||void 0===n||n.addEventListener(t,r)}constructor(t,i={}){const o=this;if(this.emitter=t,this.url=i.url,this.log=Log.of(this.emitter),this.verb=i.verb,this.metadata=e({},i.metadata||{}),this.rq=i.rq||r,this.events=i.events||[],this.required_keys=i.required_keys||[],this.optional_keys=i.optional_keys||[],this.listeners=[],this.valid_keys=this.required_keys.slice(0).concat(this.optional_keys),Tracker.assert_emitter_api(this.emitter),void 0===Tracker.verb[this.verb])throw new Error(`invalid HTTP verb[${this.verb}] passed`);if("string"!=typeof this.url)throw new Error(`invalid API url[${this.url}] passed`);Tracker.TRACKERS.push(this),o.events.forEach(t=>{Tracker.create_listener(this,t,(r={})=>{var i;if(null===(i=this.emitter)||void 0===i?void 0:i.hasState("consent-no-tracking"))return;const a=e(o.metadata,{event_type:t},r.data||r),s=function(e,t){return e.replace(n,e=>{const r=e.slice(1,e.length);return r in t?t[r].toString():e})}(o.url,a),u=Tracker.pluck_valid_keys(o,a),d=Tracker.ensure_required_keys(o,u);if(d.length)return o.log.error(`Tracker.validate_metadata() failed for\n Event[${t}]\n missing keys: ${d}\n payload:\n ${JSON.stringify(u,null,2)}`);this.rq&&RequestQueue.rpush(this.rq,[s,this.verb,u])})})}destroy(){this.listeners.forEach(([e,t])=>{var r;return null===(r=this.emitter)||void 0===r?void 0:r.removeEventListener(e,t)}),delete this.rq,delete this.emitter,t(Tracker.TRACKERS,this)}put(e={}){return Tracker.merge_metadata(this,e),this}}var o;Tracker.TRACKERS=[],Tracker.QUEUE=r,Tracker.verb=i,function(e){e[e.ADS=2]="ADS",e[e.ANALYTICS=4]="ANALYTICS",e[e.NO_METERING=8]="NO_METERING",e[e.DEVELOPER_PLAN=16]="DEVELOPER_PLAN",e[e.WOWZA_VIDEO=32]="WOWZA_VIDEO"}(o||(o={}));const a=["localhost","127.0.0.1","0.0.0.0","s.codepen.io","cdpn.io","try.flowplayer.com"];function s(e,t){return!!~a.indexOf(e)||e.indexOf(t)===e.length-t.length}s.check_whitelist=function(e){return!!~a.indexOf(e)};function u(e){this.message=e}u.prototype=new Error,u.prototype.name="InvalidCharacterError";var d="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(e){var t=String(e).replace(/=+$/,"");if(t.length%4==1)throw new u("'atob' failed: The string to be decoded is not correctly encoded.");for(var r,n,i=0,o=0,a="";n=t.charAt(o++);~n&&(r=i%4?64*r+n:n,i++%4)?a+=String.fromCharCode(255&r>>(-2*i&6)):0)n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(n);return a};var c=function(e){var t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw"Illegal base64url string!"}try{return function(e){return decodeURIComponent(d(e).replace(/(.)/g,function(e,t){var r=t.charCodeAt(0).toString(16).toUpperCase();return r.length<2&&(r="0"+r),"%"+r}))}(t)}catch(e){return d(t)}};function l(e){this.message=e}l.prototype=new Error,l.prototype.name="InvalidTokenError";var f=function(e,t){if("string"!=typeof e)throw new l("Invalid token specified");var r=!0===(t=t||{}).header?0:1;try{return JSON.parse(c(e.split(".")[r]))}catch(e){throw new l("Invalid token specified: "+e.message)}};f.InvalidTokenError=l;const p="production";function _(e,t){const r={valid_jwt:!1,raw:"",data:{acl:0},exp:0};let n={c:"{}",exp:0};t=t||{};try{n=f(e),r.valid_jwt=!0}catch(e){}return r.raw=e,r.data=JSON.parse(n.c),r.exp=n.exp,t.require_valid_token&&_.validate(r),r}function h(e){return{grant:e,is_granted:t=>(e&t)===t}}function m(e,t,r){const n=function(e){return Array.isArray(e)?e.slice(0):e.split(".")}(t);for(;n.length;){if(null==e)return r;const t=n.shift();if("string"!=typeof t)return r;e=e[t]}return null==e?r:e}_.validate=function(e){if("string"==typeof e&&(e=_(e)),!e||!e.raw){if(s.check_whitelist(window.location.hostname)||"dev"===p.toString())return!0;throw new Error("No token provided in configuration")}if(!e.valid_jwt)throw new Error("Invalid token provided");const t=window.location.hostname,r=s.bind(null,t);if("dev"!==p.toString()&&e.data.domain&&e.data.domain.length&&!e.data.domain.some(r))throw new Error("Domain not allowed");if("dev"!==p.toString()&&1e3*e.exp-Date.now()<0)throw new Error("Expired token");return!0},_.id=function(e){if(e)return"string"==typeof e&&(e=_(e)),e.data.id},h.of=h,h.from_token=function(e){const t=_(e,{require_valid_token:!0});return h.of(t.data.acl)},h.permissions=o;var v="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{};var y="ping",k="display",g="view";const w=["sitegroup_id","session_id","media_id","site_id","player_id","video_type"],E=["created","position"],T=["player_version","created","source","category","category_id","autoplay","muted","customer_user_id"];const R="is-seeking";const q=100,A=1e3;function S(e,t){return e.duration/1===e.duration&&Object.assign(t,function(e){const t=e/q;return{segment_duration:t,breakpoints:Array(...Array(q)).map(function(e,r){return Math.floor(r*t*A)/A})}}(e.duration))}function O(e,t,r,n){if(!t.segment_duration&&!S(e,t))return;const i=function(e,t,r,n){const i=t.last_idx,o=r?100:b(e,t,n);return t.last_idx=o,o<=i?[]:t.breakpoints.slice(i,o).map(function(e){return t.breakpoints.indexOf(e)})}(e,t,r,n);0!=i.length&&e.emit(y,{position:i})}function b(e,t,r){const n=void 0!==r?r:e.currentTime;return Math.min(100,Math.max(0,Math.floor(n/t.segment_duration-.8)+1))}function N(){try{const e=window.location!==window.parent.location?document.referrer:document.location.href;return"string"==typeof e&&e.slice(0,200)}catch(e){return!1}}var Q;const x="vod",L="live",I=[k,y,g];function M(e,t,r,n){switch(null==t?void 0:t.kind){case"live":return function(e,t){const r=Date.now();r-t.last_tracked_ts<6e4||(t.last_tracked_ts=r,++t.ticks,e.emit(y,{position:60*t.ticks}))}(e,t);case"vod":return O(e,t,"boolean"==typeof r&&r,n)}}function P(e){const t=e.ads;return void 0!==t&&(void 0!==t.schedule&&("function"==typeof t.hasPreroll&&(t.currentRequests?t.currentRequests:!!t.adPlaying||!(!t.hasPreroll()||0!=t.nextIndex))))}const C=((Q=class Analytics{init(e,t,r){if(!h.from_token(e.token||"").is_granted(h.permissions.ANALYTICS))return;if(r.analytics)return;const n=r.analytics={ticker:void 0,last_media_id:"",ended:!1,played:!1},i={locked:void 0,ttl:6e3,task:()=>{r.hasState(R)||M(r,n.ticker)}};const o={session_id:r.deviceId(),autoplay:r.autoplay,muted:r.muted,player_id:e.player_id,customer_user_id:e.customer_user_id,player_version:"3.41.0-rc"},a=Tracker.of(r,{verb:Tracker.verb.POST,url:"https://ptm.flowplayer.com/:video_type/:sitegroup_id/:event_type",events:I,required_keys:w,optional_keys:T.concat(E).slice(0),metadata:o});r.on("reap",function(){a&&a.destroy()});let s=0,u=0;r.on("config",function(t){if(!a)return;const i=m(t,"data.metadata",{});if(!i.media_id&&i.stream_target_id&&(i.media_id=i.stream_target_id),!i.media_id)return n.last_media_id="";if(n.last_media_id===i.media_id)return;n.played=!1,n.last_media_id=i.media_id;const o=m(e,"analytics",{});a.put(i),a.put(o);const u=m(e,"metadata.live_start_time",e.live)?L:x;a.put({video_type:u,source:e.source||N()||""}),n.ticker=m(e,"metadata.live_start_time",e.live)?{ticks:0,last_tracked_ts:Date.now(),kind:"live"}:{last_idx:0,segment_duration:0,breakpoints:[],kind:"vod"},s=0,n.ended=!1,r.emit(k)}),r.on("playing",function(){if(!a)return;if(u||n.played||!n.last_media_id)return;a.put({muted:r.muted});const e=P(r);if(e)return u=Promise.resolve(e).then(function(){n.played=!0,r.emit(g),u=0}).catch(function(){u=0});n.played=!0,r.emit(g)}),r.on("timeupdate",function(){var t;a&&(s=r.currentTime,u||P(r)||n.ended||!n.last_media_id||r.hasState(R)||(!e.live&&r.currentTime+.25>=r.duration&&M(r,n.ticker,!0),(t=i).locked||(t.locked=setTimeout(function(){return t.task(),function(e){return e.locked=void 0,e}(t)},t.ttl))))}),r.on("seeked",function(){var e;a&&n.last_media_id&&(n.ended&&(n.ended=!1,s=0,"vod"===(null===(e=n.ticker)||void 0===e?void 0:e.kind)&&(n.ticker.last_idx=0)),n.ticker&&"vod"==n.ticker.kind&&function(e,t){S(e,t),t.last_idx=b(e,t)}(r,n.ticker))}),r.on("timeline/gesture/start",function(){M(r,n.ticker,!1,s)}),r.on("ended",function(){a&&n.last_media_id&&function(e,t){t.ended||(t.ended=!0,M(e,t.ticker))}(r,n)})}}).pluginName="analytics",Q),U=function(e,t){if("object"==typeof exports&&"undefined"!=typeof module)return t;if(null===document.currentScript)return t;"flowplayer"in e||(e.flowplayer={extensions:[]});const r=e.flowplayer;return"function"==typeof r?(r(t),t):(Array.isArray(r.extensions)||(r.extensions=[]),~r.extensions.indexOf(t)||r.extensions.push(t),t)}("undefined"!=typeof window?window:void 0!==v?v:{},C);return U});
package/plugins/asel.d.ts CHANGED
@@ -1042,6 +1042,7 @@ declare class I18n implements Plugin_2 {
1042
1042
  timeline_aria_label: string;
1043
1043
  unmute: string;
1044
1044
  volume: string;
1045
+ options: string;
1045
1046
  close: string;
1046
1047
  "skip-next": string;
1047
1048
  "skip-prev": string;
@@ -1074,6 +1075,10 @@ declare class I18n implements Plugin_2 {
1074
1075
  button_txt: string;
1075
1076
  menu_title: string;
1076
1077
  };
1078
+ spins: {
1079
+ more: string;
1080
+ less: string;
1081
+ };
1077
1082
  };
1078
1083
  init(config: Config, _root: never, video: Player): void;
1079
1084
  /* Excluded from this release type: _nonLanguageFields */
@@ -925,6 +925,7 @@ declare class I18n implements Plugin_2 {
925
925
  timeline_aria_label: string;
926
926
  unmute: string;
927
927
  volume: string;
928
+ options: string;
928
929
  close: string;
929
930
  "skip-next": string;
930
931
  "skip-prev": string;
@@ -957,6 +958,10 @@ declare class I18n implements Plugin_2 {
957
958
  button_txt: string;
958
959
  menu_title: string;
959
960
  };
961
+ spins: {
962
+ more: string;
963
+ less: string;
964
+ };
960
965
  };
961
966
  init(config: Config, _root: never, video: Player): void;
962
967
  /* Excluded from this release type: _nonLanguageFields */
@@ -934,6 +934,7 @@ declare class I18n implements Plugin_2 {
934
934
  timeline_aria_label: string;
935
935
  unmute: string;
936
936
  volume: string;
937
+ options: string;
937
938
  close: string;
938
939
  "skip-next": string;
939
940
  "skip-prev": string;
@@ -966,6 +967,10 @@ declare class I18n implements Plugin_2 {
966
967
  button_txt: string;
967
968
  menu_title: string;
968
969
  };
970
+ spins: {
971
+ more: string;
972
+ less: string;
973
+ };
969
974
  };
970
975
  init(config: Config, _root: never, video: Player): void;
971
976
  /* Excluded from this release type: _nonLanguageFields */
@@ -988,6 +988,7 @@ declare class I18n implements Plugin_2 {
988
988
  timeline_aria_label: string;
989
989
  unmute: string;
990
990
  volume: string;
991
+ options: string;
991
992
  close: string;
992
993
  "skip-next": string;
993
994
  "skip-prev": string;
@@ -1020,6 +1021,10 @@ declare class I18n implements Plugin_2 {
1020
1021
  button_txt: string;
1021
1022
  menu_title: string;
1022
1023
  };
1024
+ spins: {
1025
+ more: string;
1026
+ less: string;
1027
+ };
1023
1028
  };
1024
1029
  init(config: Config, _root: never, video: Player): void;
1025
1030
  /* Excluded from this release type: _nonLanguageFields */
@@ -925,6 +925,7 @@ declare class I18n implements Plugin_2 {
925
925
  timeline_aria_label: string;
926
926
  unmute: string;
927
927
  volume: string;
928
+ options: string;
928
929
  close: string;
929
930
  "skip-next": string;
930
931
  "skip-prev": string;
@@ -957,6 +958,10 @@ declare class I18n implements Plugin_2 {
957
958
  button_txt: string;
958
959
  menu_title: string;
959
960
  };
961
+ spins: {
962
+ more: string;
963
+ less: string;
964
+ };
960
965
  };
961
966
  init(config: Config, _root: never, video: Player): void;
962
967
  /* Excluded from this release type: _nonLanguageFields */
@@ -951,6 +951,7 @@ declare class I18n implements Plugin_2 {
951
951
  timeline_aria_label: string;
952
952
  unmute: string;
953
953
  volume: string;
954
+ options: string;
954
955
  close: string;
955
956
  "skip-next": string;
956
957
  "skip-prev": string;
@@ -983,6 +984,10 @@ declare class I18n implements Plugin_2 {
983
984
  button_txt: string;
984
985
  menu_title: string;
985
986
  };
987
+ spins: {
988
+ more: string;
989
+ less: string;
990
+ };
986
991
  };
987
992
  init(config: Config, _root: never, video: Player): void;
988
993
  /* Excluded from this release type: _nonLanguageFields */
@@ -932,6 +932,7 @@ declare class I18n implements Plugin_2 {
932
932
  timeline_aria_label: string;
933
933
  unmute: string;
934
934
  volume: string;
935
+ options: string;
935
936
  close: string;
936
937
  "skip-next": string;
937
938
  "skip-prev": string;
@@ -964,6 +965,10 @@ declare class I18n implements Plugin_2 {
964
965
  button_txt: string;
965
966
  menu_title: string;
966
967
  };
968
+ spins: {
969
+ more: string;
970
+ less: string;
971
+ };
967
972
  };
968
973
  init(config: Config, _root: never, video: Player): void;
969
974
  /* Excluded from this release type: _nonLanguageFields */
@@ -1049,6 +1049,7 @@ declare class I18n implements Plugin_2 {
1049
1049
  timeline_aria_label: string;
1050
1050
  unmute: string;
1051
1051
  volume: string;
1052
+ options: string;
1052
1053
  close: string;
1053
1054
  "skip-next": string;
1054
1055
  "skip-prev": string;
@@ -1081,6 +1082,10 @@ declare class I18n implements Plugin_2 {
1081
1082
  button_txt: string;
1082
1083
  menu_title: string;
1083
1084
  };
1085
+ spins: {
1086
+ more: string;
1087
+ less: string;
1088
+ };
1084
1089
  };
1085
1090
  init(config: Config, _root: never, video: Player): void;
1086
1091
  /* Excluded from this release type: _nonLanguageFields */
package/plugins/dash.d.ts CHANGED
@@ -998,6 +998,7 @@ declare class I18n implements Plugin_2 {
998
998
  timeline_aria_label: string;
999
999
  unmute: string;
1000
1000
  volume: string;
1001
+ options: string;
1001
1002
  close: string;
1002
1003
  "skip-next": string;
1003
1004
  "skip-prev": string;
@@ -1030,6 +1031,10 @@ declare class I18n implements Plugin_2 {
1030
1031
  button_txt: string;
1031
1032
  menu_title: string;
1032
1033
  };
1034
+ spins: {
1035
+ more: string;
1036
+ less: string;
1037
+ };
1033
1038
  };
1034
1039
  init(config: Config, _root: never, video: Player): void;
1035
1040
  /* Excluded from this release type: _nonLanguageFields */
package/plugins/drm.d.ts CHANGED
@@ -1028,6 +1028,7 @@ declare class I18n implements Plugin_2 {
1028
1028
  timeline_aria_label: string;
1029
1029
  unmute: string;
1030
1030
  volume: string;
1031
+ options: string;
1031
1032
  close: string;
1032
1033
  "skip-next": string;
1033
1034
  "skip-prev": string;
@@ -1060,6 +1061,10 @@ declare class I18n implements Plugin_2 {
1060
1061
  button_txt: string;
1061
1062
  menu_title: string;
1062
1063
  };
1064
+ spins: {
1065
+ more: string;
1066
+ less: string;
1067
+ };
1063
1068
  };
1064
1069
  init(config: Config, _root: never, video: Player): void;
1065
1070
  /* Excluded from this release type: _nonLanguageFields */
@@ -932,6 +932,7 @@ declare class I18n implements Plugin_2 {
932
932
  timeline_aria_label: string;
933
933
  unmute: string;
934
934
  volume: string;
935
+ options: string;
935
936
  close: string;
936
937
  "skip-next": string;
937
938
  "skip-prev": string;
@@ -964,6 +965,10 @@ declare class I18n implements Plugin_2 {
964
965
  button_txt: string;
965
966
  menu_title: string;
966
967
  };
968
+ spins: {
969
+ more: string;
970
+ less: string;
971
+ };
967
972
  };
968
973
  init(config: Config, _root: never, video: Player): void;
969
974
  /* Excluded from this release type: _nonLanguageFields */
package/plugins/fas.d.ts CHANGED
@@ -979,6 +979,7 @@ declare class I18n implements Plugin_2 {
979
979
  timeline_aria_label: string;
980
980
  unmute: string;
981
981
  volume: string;
982
+ options: string;
982
983
  close: string;
983
984
  "skip-next": string;
984
985
  "skip-prev": string;
@@ -1011,6 +1012,10 @@ declare class I18n implements Plugin_2 {
1011
1012
  button_txt: string;
1012
1013
  menu_title: string;
1013
1014
  };
1015
+ spins: {
1016
+ more: string;
1017
+ less: string;
1018
+ };
1014
1019
  };
1015
1020
  init(config: Config, _root: never, video: Player): void;
1016
1021
  /* Excluded from this release type: _nonLanguageFields */
@@ -1003,6 +1003,7 @@ declare class I18n implements Plugin_2 {
1003
1003
  timeline_aria_label: string;
1004
1004
  unmute: string;
1005
1005
  volume: string;
1006
+ options: string;
1006
1007
  close: string;
1007
1008
  "skip-next": string;
1008
1009
  "skip-prev": string;
@@ -1035,6 +1036,10 @@ declare class I18n implements Plugin_2 {
1035
1036
  button_txt: string;
1036
1037
  menu_title: string;
1037
1038
  };
1039
+ spins: {
1040
+ more: string;
1041
+ less: string;
1042
+ };
1038
1043
  };
1039
1044
  init(config: Config, _root: never, video: Player): void;
1040
1045
  /* Excluded from this release type: _nonLanguageFields */
package/plugins/ga4.d.ts CHANGED
@@ -925,6 +925,7 @@ declare class I18n implements Plugin_2 {
925
925
  timeline_aria_label: string;
926
926
  unmute: string;
927
927
  volume: string;
928
+ options: string;
928
929
  close: string;
929
930
  "skip-next": string;
930
931
  "skip-prev": string;
@@ -957,6 +958,10 @@ declare class I18n implements Plugin_2 {
957
958
  button_txt: string;
958
959
  menu_title: string;
959
960
  };
961
+ spins: {
962
+ more: string;
963
+ less: string;
964
+ };
960
965
  };
961
966
  init(config: Config, _root: never, video: Player): void;
962
967
  /* Excluded from this release type: _nonLanguageFields */
@@ -950,6 +950,7 @@ declare class I18n implements Plugin_2 {
950
950
  timeline_aria_label: string;
951
951
  unmute: string;
952
952
  volume: string;
953
+ options: string;
953
954
  close: string;
954
955
  "skip-next": string;
955
956
  "skip-prev": string;
@@ -982,6 +983,10 @@ declare class I18n implements Plugin_2 {
982
983
  button_txt: string;
983
984
  menu_title: string;
984
985
  };
986
+ spins: {
987
+ more: string;
988
+ less: string;
989
+ };
985
990
  };
986
991
  init(config: Config, _root: never, video: Player): void;
987
992
  /* Excluded from this release type: _nonLanguageFields */
@@ -925,6 +925,7 @@ declare class I18n implements Plugin_2 {
925
925
  timeline_aria_label: string;
926
926
  unmute: string;
927
927
  volume: string;
928
+ options: string;
928
929
  close: string;
929
930
  "skip-next": string;
930
931
  "skip-prev": string;
@@ -957,6 +958,10 @@ declare class I18n implements Plugin_2 {
957
958
  button_txt: string;
958
959
  menu_title: string;
959
960
  };
961
+ spins: {
962
+ more: string;
963
+ less: string;
964
+ };
960
965
  };
961
966
  init(config: Config, _root: never, video: Player): void;
962
967
  /* Excluded from this release type: _nonLanguageFields */