{"version":3,"sources":["sb.proxy.en.js"],"names":["localization","btn_reload","tooltip_btn_start","tooltip_btn_play","tooltip_btn_pause","tooltip_btn_stop","tooltip_btn_next","tooltip_btn_previous","tooltip_btn_sfwd","tooltip_btn_ffwd","tooltip_btn_mute","tooltip_btn_unmute","tooltip_btn_volume","tooltip_btn_menu","tooltip_btn_cast","tooltip_btn_live","tooltip_btn_settings","tooltip_btn_lang","tooltip_btn_fullscreen_on","tooltip_btn_fullscreen_off","tooltip_btn_resize_expand","tooltip_btn_resize_reduce","tooltip_btn_share_facebook","tooltip_btn_share_twitter","tooltip_btn_share_embed","tooltip_btn_share_link","tooltip_btn_share_icon","tooltip_btn_progress_bar","splash_error_404_msg","splash_error_404_sorry","splash_error_403_msg","splash_error_expired_msg","splash_error_geoblock_msg","splash_error_adblock_msg","splash_error_media_offline_msg","splash_error_media_offline_sorry","splash_error_live_msg","splash_error_awaiting","splash_error_live_sorry","flash_version_error_msg","flash_version_error_msg_download","flash_version_error_mobile","error_retry_message","error_server_message","advertising_counter","output_quality_text","caption_header_text","speed_header_text","en_US","en_UK","pt_BR","ja_JP","es_ES","it_IT","pt_PT","fr_FR","de_DE","ru_RU","zh_CN","th_TH","disable_caption","play","email","name","phone","ad_message","ad_click","ad_skip_message","ad_skip_countdown","lead_submit","lead_successful","lead_error","lead_msg_preroll","lead_msg_postroll","lead_empty","lead_email_placeholder","lead_email_invalid","lead_phone_placeholder","lead_phone_invalid","lead_name_placeholder","high_quality","resume_hint","resume_from_start","resume_from_start_mini","resume_from_seek","resume_from_seek_mini","_18_age_message","_18_age_message_mini","_18_age_confirm","_18_age_confirm_mini","_18_age_yes","_18_age_yes_mini","_18_age_no","_18_age_no_mini","age_not_permited","age_placeholder","password_text","password_text_mini","share_video","share_url_video","share_icon_click","share_copy_embed","live","cancel","share_screen","next_media","comments","addComments","commentPlaceholder","commentNamePlaceholder","at","send","myself","remaining_chars","skip","error_report","describe_problem","audio_only","360_tip","360_tip_mobile","360_cardboard_tip","drm_not_supported","drm_key_not_found","protected_content","cast_enabled","unsupported_browser_drm","voice_dialog_title","voice_dialog_hint","voice_dialog_not_recongnized","voice_commands","back_to_live","Array","prototype","forEach","callback","thisArg","T","k","this","TypeError","O","Object","len","length","arguments","kValue","call","indexOf","searchElement","fromIndex","n","Math","abs","Infinity","max","undefined","Date","now","getTime","Function","bind","oThis","aArgs","slice","fToBind","fNOP","fBound","apply","concat","InvalidCharacterError","message","window","object","exports","chars","Error","btoa","input","block","charCode","str","String","idx","map","output","charAt","charCodeAt","atob","replace","bs","buffer","bc","fromCharCode","unique","xs","seen","filter","x","fun","t","res","i","val","push","Helpers","getQueryParams","url","_queryParams","location","href","split","decodeURI","search","substr","numOpen","numClose","kv","v","result","reKvPair","reBool","brackets","ki","splice","join","test","toLowerCase","decodeURIComponent","match","createAndAppendScripts","src","cb","id","script","document","createElement","type","onload","onreadystatechange","readyState","success","onerror","querySelector","appendChild","createAndAppendStyle","css","ph","body","style","styleSheet","cssText","createTextNode","loadCss","newIndex","styleSheets","rel","timeId","setInterval","clearInterval","isFlashSupported","axo","ActiveXObject","AllowScriptAccess","e","shift","GetVariable","navigator","mimeTypes","enabledPlugin","plugins","description","canPlayHtml5","a","canPlayObject","h264","canPlayType","mp3","shoudPlay","canPlayHLSHtml5","MediaSource","WebKitMediaSource","isTypeSupported","isDesktop","userAgent","inherit","SubClass","SuperClass","constructor","addEvent","evnt","elem","func","elems","addEventListener","attachEvent","target","event","srcElement","hexToRgb","hex","tHex","exec","r","g","b","toRGBString","parseInt","toRGBAString","toString","prefix","urlProtocol","secure","protocol","setStorage","value","localStorage","setItem","getStorage","ret","getItem","delStorage","removeItem","getBasePath","version","_baseStatic","scriptURL","lastIndexOf","_baseStaticWithoutVersion","baseStaticPath","getBasePathWithoutVersion","corsRequest","obj","retries","responseType","session","onError","xhr","XMLHttpRequest","open","method","XDomainRequest","key","headers","setRequestHeader","response","logger","info","abort","setTimeout","data","evtDsp","trigger","critical","error","generateSession","S4","random","substring","decodeBase64","token","xorKey","tokenString","ecdStr","eval","canPlayDash","hasWebKitMediaSource","canPlayDRM","_supportedDRM","keySystems","widevine","playready","fairplay","testVideoElement","supportedSystems","unsupportedSystems","hasEME","bNavigator","isMac","isFirefox","isChrome","safariMatch","isSafari","mediaKeys","keysys","hasOwnProperty","dummy","requestMediaKeySystemAccess","keySystem","config","initDataTypes","then","keySystemAccess","MSMediaKeys","webkitGenerateKeyRequest","WebKitMediaKeys","onlyPlayNativeHls","outputsFromDeliveryRules","deliveryRules","media","supportedOutputs","mediaObj","outputs","_supportedOutputs","dr","index","outputIndex","urlType","duration","fileInfo","tokenExpires","willExpire","getBaseIframeURL","_baseIframeURL","_hasCast","createPrivate","store","uid","builtIn","fetchStore","scope","_uid","init","Utils","Logger","level","isNaN","userStartTime","startTime","_log","msg","console","JSON","stringify","log","debug","inspectParams","sambaBridge","getMediaJson","apiConfig","param","errorMsg","lineNumber","column","errorObj","_","handlers","laters","reNs","reNsAll","getArrayByType","dict","re","typeOnly","array","on","handler","off","laterDispatch","evtReturn","evtReturnTmp","SambaContainer","sb","mediaJson","basePathStatic","queryParams","autoStart","hasLead","age","sct","qualifier","buildContainer","buildSplashContainer","c","playerConfig","theme","splashImage","getElementById","playButton","hidePlayBtn","tagName","updateDimensions","treatDialog","titleElement","mediaTitle","innerHTML","title","display","parentNode","removeChild","querySelectorAll","dialogMap","preventPlay","getDimensions","dimensions","player","width","height","initialize","decodeMedia","mediaToken","playerSecurity","geoblock","checkGeoblock","checkDomain","mergeParams","prepareMedia","loadBwCheck","loadHandtalk","decidePlayer","attachEvents","mediaURL","loadTracker","errorType","loadError","mts","getElementsByTagName","maxWidth","flag","secureDomains","anchor","referrer","domain","sec","hostname","gURL","status","setValueByNS","o","ns","nsArray","paramsMap","enableShare","hasTwitter","hasFacebook","hasEmbed","hasLink","hasWhatsapp","enableControls","startOutput","gaAccount","enableLead","primaryLive","backupLive","isDVR","dashBackupLive","fullscreen","liveOutput","medias","formats","parseOutputs","currentTimeOffset","configs","sortOutputs","outputName","limitLabels","labelArray","totalValid","isMbr","outputsLimited","mbrIndex","m","isDRM","drmSecurity","toUpperCase","dashSupported","hlsSupported","flashSupported","onlyHlsNativeSupported","categoryId","publishDate","thumbnails","stack","sort","html5","loadHtml5Player","sambaContainer","loadFlashPlayer","playerLoadHandler","loadDialogs","mediaProperties","librasSettings","libras","enabled","jsApi","loadJSApi","backdoor","rmArray","j","sessionId","pos","d","lc","leadConfig","qp","position","getSessionId"],"mappings":"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","file":"sb.proxy.en.js","sourcesContent":["var localization = {\n\t\"btn_reload\" : \"Reload\",\n\t\"tooltip_btn_start\": \"Start media\",\n\t\"tooltip_btn_play\" : \"Play\",\n\t\"tooltip_btn_pause\" : \"Pause\",\n\t\"tooltip_btn_stop\" : \"Stop\",\n\t\"tooltip_btn_next\" : \"Next\",\n\t\"tooltip_btn_previous\" : \"Previous\",\n\t\"tooltip_btn_sfwd\" : \"Slow Forward\",\n\t\"tooltip_btn_ffwd\" : \"Fast Forward\",\n\t\"tooltip_btn_mute\" : \"Mute\",\n\t\"tooltip_btn_unmute\" : \"Unmute\",\n\t\"tooltip_btn_volume\": \"Volume\",\n\t\"tooltip_btn_menu\" : \"Settings\",\n\t\"tooltip_btn_cast\": \"Play on TV\",\n\t\"tooltip_btn_live\": \"LIVE\",\n\t\"tooltip_btn_settings\" : \"\",//\"Settings\",\n\t\"tooltip_btn_lang\" : \"\",//\"Language\",\n\t\"tooltip_btn_fullscreen_on\" : \"Full screen\",\n\t\"tooltip_btn_fullscreen_off\" : \"Exit full screen\",\n\t\"tooltip_btn_resize_expand\" : \"Expand\",\n\t\"tooltip_btn_resize_reduce\" : \"Reduce\",\n\t\"tooltip_btn_share_facebook\" : \"Facebook\",\n\t\"tooltip_btn_share_twitter\" : \"Twitter\",\n\t\"tooltip_btn_share_embed\" : \"Embed\",\n\t\"tooltip_btn_share_link\" : \"Link\",\n\t\"tooltip_btn_share_icon\" : \"Share\",\n\t\"tooltip_btn_progress_bar\" : \"Progress bar\",\n\t\"splash_error_404_msg\" : \"Oops! This video is no
longer available.\",\n\t\"splash_error_404_sorry\" : \"Sorry\",\n\t\"splash_error_403_msg\" : \"Oops! You do not have permission
to watch this video.\",\n\t\"splash_error_expired_msg\" : \"Oops! Your session has expired.
Click the button to reload the video.\",\n\t\"splash_error_geoblock_msg\" : \"This content is not available in your location.\",\n\t\"splash_error_adblock_msg\" : \"You have a software blocking advertisings on videos.
Please disable it to continue.\",\n\t\"splash_error_media_offline_msg\" : \"Connection to server lost\",\n\t\"splash_error_media_offline_sorry\" : \"Please try again later.\",\n\t\"splash_error_live_msg\" : \"Oops! Transmission unavailable.\",\n\t\"splash_error_awaiting\": \"Awaiting next video\",\n\t\"splash_error_live_sorry\" : \"Sorry\",\n\t\"flash_version_error_msg\" : \"You need the latest version of Adobe Flash Player to visualize this video.\",\n\t\"flash_version_error_msg_download\" : \"Click here to download\",\n\t\"flash_version_error_mobile\" : \"HTML5 disabled. Enable Flash or access through a mobile device.\",\n\t\"error_retry_message\": \"Reconnecting in {COUNTDOWN}s\",\n\t\"error_server_message\": \"Trying another server in {COUNTDOWN}s\",\n\t\"advertising_counter\" : \"ADVERTISING\",\n\t\"output_quality_text\" : \"Quality\",\n\t\"caption_header_text\" : \"Captions\",\n\t\"speed_header_text\" : \"Speed\",\n\t\"en_US\" : \"English\",\n\t\"en_UK\" : \"English (England)\",\n\t\"pt_BR\" : \"Portuguese\",\n\t\"ja_JP\" : \"Japanese\",\n\t\"es_ES\" : \"Spanish\",\n\t\"it_IT\" : \"Italian\",\n\t\"pt_PT\" : \"Portuguese ( Portugal )\",\n\t\"fr_FR\" : \"French\",\n\t\"de_DE\" : \"German\",\n\t\"ru_RU\":\"Russian\",\n\t\"zh_CN\":\"Chinese\",\n\t\"th_TH\":\"Thai\",\n\t\"disable_caption\": \"Disable\",\n\t\"play\": \"Play\",\n\t\"email\": \"email\",\n\t\"name\": \"name\",\n\t\"phone\": \"phone\",\n\t\"ad_message\": \"Advertising ({COUNTDOWN})\",\n\t\"ad_click\": \"Click here for more info\",\n\t\"ad_skip_message\": \"Skip ad »\",\n\t\"ad_skip_countdown\": \"Skip in {COUNTDOWN}\",\n\t\"lead_submit\": \"Submit\",\n\t\"lead_successful\": \"Thank you!\",\n\t\"lead_error\": \"An error has occurred, please try again.\",\n\t\"lead_msg_preroll\": \"Enter your {DATA} to watch the video:\",\n\t\"lead_msg_postroll\": \"Enter your {DATA} to receive our news:\",\n\t\"lead_empty\": \"Type your {DATA}.\",\n\t\"lead_email_placeholder\": \"YOUR EMAIL\",\n\t\"lead_email_invalid\": \"Invalid email address format.\",\n\t\"lead_phone_placeholder\": \"E.G. (212) 555-1234\",\n\t\"lead_phone_invalid\": \"Invalid phone number format.\",\n\t\"lead_name_placeholder\": \"YOUR NAME\",\n\t\"high_quality\": \"High definition\",\n\t\"resume_hint\": \"You have watched part of this video before. What do you want to do?\",\n\t\"resume_from_start\": \"Watch from the beginning\",\n\t\"resume_from_start_mini\": \"Repeat\",\n\t\"resume_from_seek\": \"Resume video\",\n\t\"resume_from_seek_mini\": \"Continue\",\n\t\"_18_age_message\": \"Enter your birthdate to watch this video:\",\n\t\"_18_age_message_mini\": \"Enter your birthdate:\",\n\t\"_18_age_confirm\": \"You must be at least 18 years old to watch this video.\",\n\t\"_18_age_confirm_mini\": \"Are you 18 or over?\",\n\t\"_18_age_yes\": \"I am 18 or over\",\n\t\"_18_age_yes_mini\": \"Yes\",\n\t\"_18_age_no\": \"I am under 18\",\n\t\"_18_age_no_mini\": \"No\",\n\t\"age_not_permited\": \"You are not allowed to watch this video.\",\n\t\"age_placeholder\": \"MM/DD/YYYY\",\n\t\"password_text\": \"Enter the password to view this video\",\n\t\"password_text_mini\": \"Enter the password\",\n\t\"share_video\": \"Share video\",\n\t\"share_url_video\": \"Click on the URL to copy to clipboard\",\n\t\"share_icon_click\": \"or click on the social icon to share\",\n\t\"share_copy_embed\": \"Copy embed\",\n\t\"live\": \"live\",\n\t\"cancel\": \"Cancel\",\n\t\"share_screen\": \"Share the Video~Click on the URL to copy to clipboard~Click on the code below to copy to clipboard\",\n\t\"next_media\": \"NEXT VIDEO\",\n\t\"comments\": \"comment\",\n\t\"addComments\": \"Add comment\",\n\t\"commentPlaceholder\": \"Write your comment here\",\n\t\"commentNamePlaceholder\": \"What’s your name?\",\n\t\"at\": \"at\",\n\t\"send\": \"send\",\n\t\"myself\": \"Me\",\n\t\"remaining_chars\": \"characters remaining\",\n\t\"skip\": \"Skip this\",\n\t\"error_report\": \"Report error\",\n\t\"describe_problem\": \"Please, describe your problem\",\n\t\"audio_only\": \"audio only\",\n\t\"360_tip\": \"Click and drag to navigate\",\n\t\"360_tip_mobile\": \"Move your device\",\n\t\"360_cardboard_tip\": \"Turn your mobile for cardboard use\",\n\t\"drm_not_supported\": \"Lack of DRM support by the browser\",\n\t\"drm_key_not_found\": \"No license key for DRM found or invalid\",\n\t\"protected_content\": \"Protected content\",\n\t\"cast_enabled\": \"Use the Player tools to control projection on Chromecast\",\n\t\"unsupported_browser_drm\": \"This video can not be viewed by this browser\",\n\t\"protected_content\": \"Protected content\",\n\t\"voice_dialog_title\": \"Tell me, what do you need?\",\n\t\"voice_dialog_hint\": \"Try saying, Play !\",\n\t\"voice_dialog_not_recongnized\": \"Command not recognized. Please try again!\",\n\t\"voice_commands\": [\"play\", \"pause\", \"forward\", \"backward\", \"volume off\", \"volume on\", \"stop chromecast\"],\n\t\"back_to_live\": \"Skip ahead to live broadcast.\"\n};\n\n/** Pollyfill **/\n\n/** \n\n-------------------------------------- Array.forEach --------------------------------------\n\n **/\n 'use strict';\nif (!Array.prototype.forEach) {\n\n\tArray.prototype.forEach = function(callback, thisArg) {\n\n\t\tvar T, k;\n\n\t\tif (this == null) {\n\t\t\tthrow new TypeError(' this is null or not defined');\n\t\t}\n\n\t\t// 1. Let O be the result of calling ToObject passing the |this| value as the argument.\n\t\tvar O = Object(this);\n\n\t\t// 2. Let lenValue be the result of calling the Get internal method of O with the argument \"length\".\n\t\t// 3. Let len be ToUint32(lenValue).\n\t\tvar len = O.length >>> 0;\n\n\t\t// 4. If IsCallable(callback) is false, throw a TypeError exception.\n\t\t// See: http://es5.github.com/#x9.11\n\t\tif (typeof callback !== \"function\") {\n\t\t \tthrow new TypeError(callback + ' is not a function');\n\t\t}\n\n\t\t// 5. If thisArg was supplied, let T be thisArg; else let T be undefined.\n\t\tif (arguments.length > 1) {\n\t\t \tT = thisArg;\n\t\t}\n\n\t\t// 6. Let k be 0\n\t\tk = 0;\n\n\t\t// 7. Repeat, while k < len\n\t\twhile (k < len) {\n\n\t\t\tvar kValue;\n\n\t\t\t// a. Let Pk be ToString(k).\n\t\t\t// This is implicit for LHS operands of the in operator\n\t\t\t// b. Let kPresent be the result of calling the HasProperty internal method of O with argument Pk.\n\t\t\t// This step can be combined with c\n\t\t\t// c. If kPresent is true, then\n\t\t\tif (k in O) {\n\n\t\t\t// i. Let kValue be the result of calling the Get internal method of O with argument Pk.\n\t\t\tkValue = O[k];\n\n\t\t\t// ii. Call the Call internal method of callback with T as the this value and\n\t\t\t// argument list containing kValue, k, and O.\n\t\t\tcallback.call(T, kValue, k, O);\n\t\t\t}\n\t\t\t// d. Increase k by 1.\n\t\t\tk++;\n\t\t}\n\t\t// 8. return undefined\n\t};\n}\n\n/** \n\n-------------------------------------- Array.indexOf --------------------------------------\n\n **/\nif (!Array.prototype.indexOf) {\n Array.prototype.indexOf = function(searchElement, fromIndex) {\n\n var k;\n\n // 1. Let O be the result of calling ToObject passing\n // the this value as the argument.\n if (this == null) {\n throw new TypeError('\"this\" is null or not defined');\n }\n\n var O = Object(this);\n\n // 2. Let lenValue be the result of calling the Get\n // internal method of O with the argument \"length\".\n // 3. Let len be ToUint32(lenValue).\n var len = O.length >>> 0;\n\n // 4. If len is 0, return -1.\n if (len === 0) {\n return -1;\n }\n\n // 5. If argument fromIndex was passed let n be\n // ToInteger(fromIndex); else let n be 0.\n var n = +fromIndex || 0;\n\n if (Math.abs(n) === Infinity) {\n n = 0;\n }\n\n // 6. If n >= len, return -1.\n if (n >= len) {\n return -1;\n }\n\n // 7. If n >= 0, then Let k be n.\n // 8. Else, n<0, Let k be len - abs(n).\n // If k is less than 0, then let k be 0.\n k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);\n\n // 9. Repeat, while k < len\n while (k < len) {\n // a. Let Pk be ToString(k).\n // This is implicit for LHS operands of the in operator\n // b. Let kPresent be the result of calling the\n // HasProperty internal method of O with argument Pk.\n // This step can be combined with c\n // c. If kPresent is true, then\n // i. Let elementK be the result of calling the Get\n // internal method of O with the argument ToString(k).\n // ii. Let same be the result of applying the\n // Strict Equality Comparison Algorithm to\n // searchElement and elementK.\n // iii. If same is true, return k.\n if (k in O && O[k] === searchElement) {\n return k;\n }\n k++;\n }\n return -1;\n };\n}\n\n/** \n\n-------------------------------------- Date.now --------------------------------------\n\n **/\nif (Date.now === undefined) {\n\tDate.now = function() {\n\t\treturn new Date().getTime();\n\t};\n}\n\n/** \n\n-------------------------------------- Function bind --------------------------------------\n\n **/\nif (!Function.prototype.bind) {\n Function.prototype.bind = function(oThis) {\n if (typeof this !== 'function') {\n // closest thing possible to the ECMAScript 5\n // internal IsCallable function\n throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n }\n\n var aArgs = Array.prototype.slice.call(arguments, 1),\n fToBind = this,\n fNOP = function() {},\n fBound = function() {\n return fToBind.apply(this instanceof fNOP\n ? this\n : oThis,\n aArgs.concat(Array.prototype.slice.call(arguments)));\n };\n\n if (this.prototype) {\n // native functions don't have a prototype\n fNOP.prototype = this.prototype; \n }\n fBound.prototype = new fNOP();\n\n return fBound;\n };\n}\n\n/** \n\n-------------------------------------- Decoder base64 --------------------------------------\n\n **/\n(function () {\n var object = typeof exports != 'undefined' ? exports : window; // #8: web workers\n var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n function InvalidCharacterError(message) {\n window.message = message;\n }\n InvalidCharacterError.prototype = new Error;\n InvalidCharacterError.prototype.name = 'InvalidCharacterError';\n\n // encoder\n // [https://gist.github.com/999166] by [https://github.com/nignag]\n object.btoa || (\n object.btoa = function (input) {\n var str = String(input);\n for (\n // initialize result and counter\n var block, charCode, idx = 0, map = chars, output = '';\n // if the next str index does not exist:\n // change the mapping table to \"=\"\n // check if d has no fractional digits\n str.charAt(idx | 0) || (map = '=', idx % 1);\n // \"8 - idx % 1 * 8\" generates the sequence 2, 4, 6, 8\n output += map.charAt(63 & block >> 8 - idx % 1 * 8)\n ) {\n charCode = str.charCodeAt(idx += 3/4);\n if (charCode > 0xFF) {\n throw new InvalidCharacterError(\"'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.\");\n }\n block = block << 8 | charCode;\n }\n return output;\n });\n\n // decoder\n // [https://gist.github.com/1020396] by [https://github.com/atk]\n object.atob || (\n object.atob = function (input) {\n var str = String(input).replace(/=+$/, '');\n if (str.length % 4 == 1) {\n throw new InvalidCharacterError(\"'atob' failed: The string to be decoded is not correctly encoded.\");\n }\n for (\n // initialize result and counters\n var bc = 0, bs, buffer, idx = 0, output = '';\n // get next character\n buffer = str.charAt(idx++);\n // character found in table? initialize bit storage and add its ascii value;\n ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer,\n // and if not first of each 4 characters,\n // convert the first 8 bits to one ascii character\n bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0\n ) {\n // try to find character in table (0-63, not found => -1)\n buffer = chars.indexOf(buffer);\n }\n return output;\n });\n\n}());\n\n/** \n\n-------------------------------------- Unique array --------------------------------------\n\n **/\nif (!Array.prototype.unique) {\n Array.prototype.unique = function(xs) {\n var seen = {}\n return this.filter(function(x) {\n if (seen[x])\n return\n seen[x] = true\n return x\n })\n }\n}\n\n/** \n Filter array\n**/\nif (!Array.prototype.filter) {\n Array.prototype.filter = function(fun/*, thisArg*/) {\n 'use strict';\n\n if (this === void 0 || this === null) {\n throw new TypeError();\n }\n\n var t = Object(this);\n var len = t.length >>> 0;\n if (typeof fun !== 'function') {\n throw new TypeError();\n }\n\n var res = [];\n var thisArg = arguments.length >= 2 ? arguments[1] : void 0;\n for (var i = 0; i < len; i++) {\n if (i in t) {\n var val = t[i];\n\n if (fun.call(thisArg, val, i, t)) {\n res.push(val);\n }\n }\n }\n\n return res;\n };\n} \n\n/********************************************************************************************\n\n\tUtils\n\n**********************************************************************************************/\nwindow.Helpers = (function() {\n\t'use strict';\n\n\tvar _queryParams;\n\tvar _baseStatic;\n\tvar _baseStaticWithoutVersion;\n\tvar _supportedDRM;\n\tvar _hasCast = false;\n\tvar _supportedOutputs;\n\tvar _baseIframeURL;\n\n\tgetQueryParams();\n\n\treturn {\n\t\tgetQueryParams: getQueryParams,\n\t\tcreateAndAppendScripts: createAndAppendScripts,\n\t\tcreateAndAppendStyle: createAndAppendStyle,\n\t\tloadCss: loadCss,\n\t\tisFlashSupported: isFlashSupported,\n\t\tcanPlayHtml5: canPlayHtml5,\n\t\tcanPlayHLSHtml5: canPlayHLSHtml5,\n\t\tonlyPlayNativeHls: onlyPlayNativeHls,\n\t\tisDesktop: isDesktop,\n\t\tinherit: inherit,\n\t\taddEvent: addEvent,\n\t\thexToRgb: hexToRgb,\n\t\turlProtocol: urlProtocol,\n\t\tgetStorage: getStorage,\n\t\tsetStorage: setStorage,\n\t\tdelStorage: delStorage,\n\t\tgetBasePath: getBasePath,\n\t\tcorsRequest: corsRequest,\n\t\tgenerateSession: generateSession,\n\t\tdecodeBase64: decodeBase64,\n\t\tcanPlayDash: canPlayDash,\n\t\tcanPlayDRM: canPlayDRM,\n\t\tgetBasePathWithoutVersion: getBasePathWithoutVersion,\n\t\toutputsFromDeliveryRules: outputsFromDeliveryRules,\n\t\tgetBaseIframeURL: getBaseIframeURL,\n\t\tcreatePrivate: (function() {\n\t\t\tvar store = {};\n\t\t\tvar uid = 0;\n\n\t\t\treturn function(builtIn) {\n\t\t\t\tif (builtIn == null)\n\t\t\t\t\tbuiltIn = {};\n\n\t\t\t\tfunction fetchStore(scope) {\n\t\t\t\t\t// auto init\n\t\t\t\t\t//fetchStore.init(scope);\n\n\t\t\t\t\treturn store[scope._uid];\n\t\t\t\t}\n\n\t\t\t\tfetchStore.init = function(scope) {\n\t\t\t\t\t// create a new ID if not inited\n\t\t\t\t\tif (scope._uid == null) {\n\t\t\t\t\t\tscope._uid = uid++;\n\t\t\t\t\t\tstore[scope._uid] = {};\n\t\t\t\t\t}\n\n\t\t\t\t\t// look for built-in\n\t\t\t\t\tfor (var k in builtIn)\n\t\t\t\t\t\t// cloning\n\t\t\t\t\t\tstore[scope._uid][k] = builtIn[k] instanceof Function ?\n\t\t\t\t\t\t\tbuiltIn[k].bind(scope) : builtIn[k];\n\t\t\t\t};\n\n\t\t\t\treturn fetchStore;\n\t\t\t};\n\t\t})()\n\t};\n\n\t/** Functions **/\n\n\t/**\n\t\t * Parsea os parâmetros de uma url em um objeto.\n\t\t *\n\t\t * URL key/value pair fallbacks:\n\t\t *\n\t\t * a=1\n\t\t * [a,=1]\n\t\t *\n\t\t * a=\n\t\t * [a,=]\n\t\t *\n\t\t * =1\n\t\t * [=1] >> [=1,]\n\t\t *\n\t\t * a\n\t\t * [a] >> [a,]\n\t\t *\n\t\t * a=b=1\n\t\t * [a,=b,=1] >> [a,=b=1]\n\t\t *\n\t\t * a=b=\n\t\t * [a,=b,=] >> [a,=b=]\n\t\t *\n\t\t * =b=1\n\t\t * [=b,=1] >> [=b,=1]\n\t\t *\n\t\t * =a=b=1\n\t\t * [=a,=b,=1] >> [=a,=b=1]\n\t\t */\n\tfunction getQueryParams(url) {\n\t\tif (url == null) {\n\t\t\tif (_queryParams)\n\t\t\t\treturn _queryParams;\n\n\t\t\turl = window.location.href.split('#')[0];\n\t\t\turl = decodeURI(window.location.search.substr(1)).split(/[\\&]/);\n\t\t}\n\n\t\tvar result = {};\n\t\tvar t = url.length;\n\t\tvar reKvPair = /(?=\\=)/;\n\t\tvar reBool = /^(true|false)$/i;\n\t\tvar brackets = 0;\n\t\tvar numOpen;\n\t\tvar numClose;\n\t\tvar kv;\n\t\tvar k;\n\t\tvar v;\n\t\tvar ki = null;\n\n\t\tfor (var i = 0; i < t; ++i) {\n\t\t\tkv = url[i].split(reKvPair);\n\n\t\t\tif (kv.length < 2)\n\t\t\t\tkv[1] = '';\n\n\t\t\t// merging all exceeding elements (> 2) in second position\n\t\t\tkv.splice(1, kv.length - 1, kv.slice(1).join(''));\n\n\t\t\tk = kv[0];\n\t\t\tv = kv[1];\n\t\t\tnumOpen = v.split(/\\[/).length - 1;\n\t\t\tnumClose = v.split(/\\]/).length - 1;\n\n\t\t\tif (numOpen > 0 && brackets === 0)\n\t\t\t\tki = k;\n\n\t\t\tbrackets += numOpen - numClose;\n\n\t\t\tif (numClose > 0 && brackets === 0)\n\t\t\t\tv = v.substr(0, v.length - 1);\n\n\t\t\tif (ki === null)\n\t\t\t\tresult[k] = reBool.test(v = v.substr(1)) ? v.toLowerCase() === 'true' : decodeURIComponent((v.match(/[^\\#]*/) || [''])[0]);\n\t\t\telse if (result[ki])\n\t\t\t\tresult[ki] += (result[ki].indexOf('=') === -1 ? '?' : '&') + k + v;\n\t\t\telse result[ki] = decodeURIComponent(v.substr(2)); // rm /^\\=\\[/\n\n\t\t\tif (brackets === 0)\n\t\t\t\tki = null;\n\t\t}\n\n\t\t_queryParams = (_queryParams == null) ? result : _queryParams;\n\t\treturn _queryParams;\n\t}\n\n\t/** Cria e insere um script.js na página **/\n\tfunction createAndAppendScripts(src, cb, id) {\n\t\tvar script = document.createElement('script');\n\t\tscript.id = id || '';\n\t\tscript.type = 'text/javascript';\n\t\tscript.src = src;\n\t\tscript.onload = script.onreadystatechange = function() {\n\t\t\tif (!this.readyState || this.readyState === 'loaded' || this.readyState === 'complete') {\n\t\t\t\tif(cb) cb({success: true});\n\t\t\t}\n\t\t};\n\t\tscript.onerror = function() {\n\t\t\tcb && cb({success: false});\n\t\t}\n\n\t\tdocument.querySelector('body').appendChild(script);\n\t}\n\n\t/** Insere CSS dinamicamente **/\n\tfunction createAndAppendStyle(css) {\n\t\tvar ph = document.body,\n\t\t\tstyle = document.createElement('style');\n\n\t\tstyle.type = 'text/css';\n\t\tif (style.styleSheet) {\n\t\t\tstyle.styleSheet.cssText = css;\n\t\t} else {\n\t\t\tstyle.appendChild(document.createTextNode(css));\n\t\t}\n\t\tph.appendChild(style);\n\t};\n\n\t/** Carrega o CSS **/\n\tfunction loadCss(url, callback) {\n\t\tvar newIndex = document.styleSheets.length;\n\t\tvar css = document.createElement(\"link\");\n\t\tcss.rel = \"stylesheet\";\n\t\tcss.href = url;\n\t\tdocument.querySelector(\"head\").appendChild(css);\n\n\t\tvar timeId = setInterval(function() {\n\t\t\tif(document.styleSheets && document.styleSheets[newIndex]){\n\t\t\t\tcallback && callback();\n\t\t\t\tclearInterval(timeId);\n\t\t\t}\n\t\t}, 80);\n\t}\n\n\t/** Pega a versão do flash **/\n\tfunction isFlashSupported() {\n\t\ttry {\n\t\t\tvar axo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash.6');\n\t\t\ttry {\n\t\t\t\taxo.AllowScriptAccess = 'always';\n\t\t\t} catch (e) {\n\t\t\t\treturn '6,0,0'.split(',').shift() > 9;\n\t\t\t}\n\t\t\treturn new ActiveXObject('ShockwaveFlash.ShockwaveFlash')\n\t\t\t\t.GetVariable('$version').replace(/\\D+/g, ',').match(\n\t\t\t\t\t/^,?(.+),?$/)[1].split(',').shift();\n\t\t} catch (e) {\n\t\t\ttry {\n\t\t\t\tif (navigator.mimeTypes[\"application/x-shockwave-flash\"].enabledPlugin) {\n\t\t\t\t\treturn (navigator.plugins[\"Shockwave Flash 2.0\"] || navigator.plugins[\"Shockwave Flash\"]).description\n\t\t\t\t\t\t.replace(/\\D+/g, \",\").match(/^,?(.+),?$/)[1].split(',').shift() > 9;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\t\t}\n\t\treturn ('0,0,0'.split(',').shift() > 9);\n\t}\n\n\t/**Detecta se pode rodar html5**/\n\tfunction canPlayHtml5 () {\n\t\tvar v = document.createElement('video');\n\t\tvar a = document.createElement('audio');\n\t\ttry {\n\t\t\tvar canPlayObject = {\n\t\t\t\th264: v.canPlayType('video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"'),\n\t\t\t\tmp3: a.canPlayType('audio/mpeg;')\n\t\t\t};\n\t\t\tvar shoudPlay = ['maybe', 'probably'];\n\t\t\tif(shoudPlay.indexOf(canPlayObject.h264) > -1 || shoudPlay.indexOf(canPlayObject.mp3)) return true;\n\t\t} catch (e) {\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**Detecta se pode rodar HLS**/\n\tfunction canPlayHLSHtml5() {\n\t\twindow.MediaSource = window.MediaSource || window.WebKitMediaSource;\n\t\treturn window.MediaSource && typeof window.MediaSource.isTypeSupported === 'function' && window.MediaSource.isTypeSupported('video/mp4; codecs=\"avc1.42E01E,mp4a.40.2\"');\n\t}\n\n\t/** Detecta se é desktop**/\n\tfunction isDesktop() {\n\t\treturn !(navigator.userAgent.match(/Android/i) ||\n\t\t\tnavigator.userAgent.match(/webOS/i) ||\n\t\t\tnavigator.userAgent.match(/iPhone/i) ||\n\t\t\tnavigator.userAgent.match(/iPad/i) ||\n\t\t\tnavigator.userAgent.match(/iPod/i) ||\n\t\t\tnavigator.userAgent.match(/BlackBerry/i) ||\n\t\t\tnavigator.userAgent.match(/Windows Phone/i));\n\t}\n\n\t/**Herança**/\n\tfunction inherit(SubClass, SuperClass) {\n\t\tvar T = function() {};\n\t\tT.prototype = SuperClass.prototype;\n\t\tSubClass.prototype = new T();\n\t\tSubClass.prototype.constructor = SubClass;\n\t}\n\n\t/**Add event crossbrowsers**/\n\tfunction addEvent(evnt, elem, func) {\n\t\tif (!elem) return false;\n\t\tvar elems = (elem.length) ? elem : [elem];\n\n\t\tfor (var i = elems.length; i--;) {\n\t\t\tif (elems[i].addEventListener) // W3C DOM\n\t\t\t\telems[i].addEventListener(evnt, func, false);\n\t\t\telse if (elems[i].attachEvent) { // IE DOM\n\t\t\t\telems[i].attachEvent(\"on\" + evnt, function(e){\n\t\t\t\t\te.target = (e || event).srcElement;\n\t\t\t\t\tfunc(e);\n\t\t\t\t}, false);\n\t\t\t} else { // No much to do\n\t\t\t\telems[i][\"on\" + evnt] = function(e) {\n\t\t\t\t\te.target = (e || event).srcElement;\n\t\t\t\t\tfunc(e);\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}\n\n\t/** Converte heaxadecimal para RGB (JSON) **/\n\tfunction hexToRgb(hex) {\n\t\tvar tHex = (hex !== '#default' || hex === '') ? hex : \"#72be44\";\n\t\tvar result = /^#*([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(tHex);\n\t\tvar r = result[1];\n\t\tvar g = result[2];\n\t\tvar b = result[3];\n\n\t\treturn {\n\t\t\ttoRGBString: function() {\n\t\t\t\treturn \"rgb(\" + parseInt(r, 16) + \",\" + parseInt(g, 16) + \",\" + parseInt(b, 16) + \")\";\n\t\t\t},\n\t\t\ttoRGBAString: function(a) {\n\t\t\t\treturn \"rgba(\" + parseInt(r, 16) + \",\" + parseInt(g, 16) + \",\" + parseInt(b, 16) + \",\" + a + \")\";\n\t\t\t},\n\t\t\ttoString: function(prefix) {\n\t\t\t\tprefix = prefix || \"0x\";\n\t\t\t\treturn prefix + (r.length > 1 ? r : \"0\" + r) + (g.length > 1 ? g : \"0\" + g) + (b.length > 1 ? b : \"0\" + b);\n\t\t\t}\n\t\t};\n\t}\n\n\t/** Normalize protocol **/\n\tfunction urlProtocol(url, secure) {\n\t\treturn (url || '').replace(/^http\\:/, secure ? 'https:' : window.location.protocol);\n\t}\n\n\t/** Set storage **/\n\t// removed expiring control after 69ad8341d3a94c25fc3c02b35575508f34f73fc7: wasn't being used\n\tfunction setStorage(name, value) {\n\t\tlocalStorage && localStorage.setItem(name, value);\n\t}\n\n\t/** Get storage **/\n\tfunction getStorage(name) {\n\t\tif(localStorage) {\n\t\t\tvar ret = localStorage.getItem(name);\n\t\t\tswitch (ret) {\n\t\t\t\tcase 'true':\n\t\t\t\t\treturn true;\n\t\t\t\tcase 'false':\n\t\t\t\t\treturn false;\n\t\t\t\tdefault:\n\t\t\t\t\treturn ret;\n\t\t\t}\n\t\t}else {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\t/** Delete storage **/\n\tfunction delStorage(name) {\n\t\tlocalStorage.removeItem(name);\n\t}\n\n\t/**Get base path**/\n\tfunction getBasePath(version) {\n\t\tif(_baseStatic) return _baseStatic;\n\t\tvar scriptURL = (getQueryParams().scriptURL) ? decodeURI(getQueryParams().scriptURL) : null;\n\t\tif (scriptURL) {\n\t\t\t_baseStatic = scriptURL.substr(0, scriptURL.lastIndexOf('/') + 1);\n\t\t\t_baseStaticWithoutVersion = _baseStatic;\n\t\t\t_baseStatic = _baseStatic + version;\n\t\t} else {\n\t\t\t_baseStatic = window.baseStaticPath + version;\n\t\t\t_baseStaticWithoutVersion = window.baseStaticPath;\n\t\t}\n\t\treturn _baseStatic;\n\t}\n\n\t/**Get base path without version */\n\tfunction getBasePathWithoutVersion() {\n\t\tif(_baseStaticWithoutVersion) return _baseStaticWithoutVersion;\n\t}\n\n\t/**Cors request **/\n\tfunction corsRequest(obj, cb, retries, responseType, session, onError) {\n\t\tvar xhr = new XMLHttpRequest();\n\n\t\tif (retries == null)\n\t\t\tretries = 2;\n\n\t\tif (\"withCredentials\" in xhr) {\n\t\t// XHR for Chrome/Firefox/Opera/Safari.\n\t\t\txhr.open(obj.method, obj.url, true);\n\t\t} else if (typeof XDomainRequest != \"undefined\") {\n\t\t// XDomainRequest for IE.\n\t\t\txhr = new XDomainRequest();\n\t\t\txhr.open(obj.method, obj.url);\n\t\t} else {\n\t\t// CORS not supported.\n\t\t\txhr = null;\n\t\t}\n\t\tif (xhr) {\n\t\t\t//Setting type\n\t\t\tif(responseType) xhr.responseType = responseType;\n\t\t\t//Setting session\n\t\t\tif(session) xhr.session = session;\n\n\t\t\tfor(var key in obj.headers) {\n\t\t\t\txhr.setRequestHeader(key, obj.headers[key]);\n\t\t\t}\n\n\t\t\txhr.onload = function() {\n\t\t\t\tif(xhr.readyState === 4){\n\t\t\t\t\tcb && cb(xhr.response, xhr);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\txhr.onerror = function() {\n\t\t\t\tlogger.info('CORS: connection error (retries=' + retries + ')');\n\n\t\t\t\tif (retries-- <= 0) {\n\t\t\t\t\tonError && onError(xhr.response, xhr);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\txhr.abort();\n\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\tcorsRequest(obj, cb, retries);\n\t\t\t\t}, 5000);\n\t\t\t};\n\n\t\t\txhr.send(obj.data);\n\t\t}else {\n\t\t\tevtDsp.trigger({type: '*:error', critical: false, error: {message: 'CORS not supported'}});\n\t\t}\n\n\t\treturn xhr;\n\t}\n\n\t/**Gera um token por sessão **/\n\tfunction generateSession() {\n\t \treturn (S4()+S4()+\"-\"+S4()+\"-\"+S4()+\"-\"+S4()+\"-\"+S4()+S4()+S4());\n\n\t \tfunction S4(){\n\t\t\treturn (((1+Math.random())*0x10000)|0).toString(16).substring(1);\n\t\t}\n\t}\n\n\t/**Decoda um base64 token gerado pela player-api dada a chave**/\n\tfunction decodeBase64(token, key) {\n\t\tvar xorKey = (key ^ 345) - 10000;\n\t\tvar tokenString = token.substring(xorKey, token.length - xorKey);\n\n\t\tvar output = tokenString.replace('-', '+').replace('_', '/');\n\t\tvar ecdStr;\n\n\t\tswitch (output.length % 4) {\n\t\t\tcase 0:\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\toutput += '==';\n\t\t\t\tbreak;\n\t\t\tcase 3:\n\t\t\t\toutput += '=';\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new Error('Illegal base64url string!');\n\t\t}\n\n\t\tecdStr = window.atob(output);\n\n\t\treturn eval(\"(\" + ecdStr + \")\");\n\t}\n\n\t/** Suporte ao dash **/\n\tfunction canPlayDash() {\n\t\tif('MediaSource' in window && window.MediaSource) return true;\n\t\tif('hasWebKitMediaSource' in window && window.hasWebKitMediaSource) return true;\n\t\treturn false;\n\t}\n\n\t/** get dash support **/\n\tfunction canPlayDRM() {\n\t\tif(_supportedDRM) {\n\t\t\treturn _supportedDRM;\n\t\t}\n\n\t\tvar keySystems = {\n\t\t\twidevine: ['com.widevine.alpha'],\n\t\t\tplayready: ['com.microsoft.playready'],\n\t\t\tfairplay: ['com.apple.fps.1_0']\n\t\t};\n\n\t\tvar testVideoElement = document.createElement('video');\n\t\tvar supportedSystems = [];\n\t\tvar unsupportedSystems = [];\n\t\tvar hasEME = false;\n\n\t\t//Checa suporte aos tipos de encriptação\n\t\tvar bNavigator = window.navigator;\n\n\t\tvar isMac = navigator.userAgent.match(/Mac OS/i);\n\t\tvar isFirefox = navigator.userAgent.match(/Firefox/gi);\n\t\tvar isChrome = navigator.userAgent.match(/Chrome/gi);\n\t\tvar safariMatch = navigator.userAgent.match(/(Macintosh|Safari|Version)/gi);\n\t\tvar isSafari = safariMatch !== null ? safariMatch.length === 3 : false;\n\n\t\tif(!testVideoElement.mediaKeys) {\n\t\t\tif(isMac && isSafari && !isFirefox && !isChrome) {\n\t\t\t\thasEME = 'hlsDRM';\n\t\t\t\tfor(var keysys in keySystems) {\n\t\t\t\t\tif(keySystems.hasOwnProperty(keysys)) {\n\t\t\t\t\t\tfor(var dummy in keySystems[keysys]) {\n\t\t\t\t\t\t\tif(testVideoElement.canPlayType('video/m4', keySystems[keysys][dummy])) {\n\t\t\t\t\t\t\t\tsupportedSystems.push(keySystems[keysys][dummy]);\n\t\t\t\t\t\t\t}else {\n\t\t\t\t\t\t\t\tunsupportedSystems.push(keySystems[keysys][dummy]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if(bNavigator.requestMediaKeySystemAccess && typeof bNavigator.requestMediaKeySystemAccess === 'function') {\n\t\t\t\thasEME = 'dashDRM';\n\n\t\t\t\t//Checa suporte a cada key\n\t\t\t\tvar isKeySystemSupported = function(keySystem) {\n\t\t\t\t\tvar config = [{initDataTypes: ['cenc']}];\n\t\t\t\t\tif(bNavigator.requestMediaKeySystemAccess) {\n\t\t\t\t\t\tbNavigator.requestMediaKeySystemAccess(keySystem, config).then(function(keySystemAccess){\n\t\t\t\t\t\t\tsupportedSystems.push(keySystem);\n\t\t\t\t\t\t}, function(){\n\t\t\t\t\t\t\tunsupportedSystems.push(keySystems[keysys][dummy]);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t for (var keysys in keySystems) {\n\t\t\t if (keySystems.hasOwnProperty(keysys)) {\n\t\t\t for (var dummy in keySystems[keysys]) {\n\t\t\t isKeySystemSupported(keySystems[keysys][dummy]);\n\t\t\t }\n\t\t\t }\n\t\t\t\t}\n\t\t\t} else if(window.MSMediaKeys && typeof window.MSMediaKeys === 'function') {\n\t\t\t\thasEME = 'dashDRM';\n\t\t\t\tfor(var keysys in keySystems) {\n\t\t\t\t\tfor(var dummy in keySystems[keysys]) {\n\t\t\t\t\t\tif(testVideoElement.canPlayType('video/mp4', keySystems[keysys][dummy])) {\n\t\t\t\t\t\t\tsupportedSystems.push(keySystems[keysys][dummy]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tunsupportedSystems.push(keySystems[keysys][dummy]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if((testVideoElement.webkitGenerateKeyRequest && typeof testVideoElement.webkitGenerateKeyRequest === 'function') || (window.WebKitMediaKeys && typeof window.WebKitMediaKeys === 'function')) {\n\t\t\t\thasEME = 'hlsDRM';\n\t\t\t\tfor(var keysys in keySystems) {\n\t\t\t\t\tif(keySystems.hasOwnProperty(keysys)) {\n\t\t\t\t\t\tfor(var dummy in keySystems[keysys]) {\n\t\t\t\t\t\t\tif(testVideoElement.canPlayType('video/m4', keySystems[keysys][dummy])) {\n\t\t\t\t\t\t\t\tsupportedSystems.push(keySystems[keysys][dummy]);\n\t\t\t\t\t\t\t}else {\n\t\t\t\t\t\t\t\tunsupportedSystems.push(keySystems[keysys][dummy]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\thasEME = false;\n\t\t\t}\n\t\t}\n\n\t\t_supportedDRM = hasEME;\n\n\t\treturn hasEME;\n\t}\n\n\tfunction onlyPlayNativeHls() {\n\t\treturn document.createElement('video').canPlayType('application/vnd.apple.mpegURL') === 'maybe' && !canPlayHLSHtml5();\n\t}\n\n\t/**\n\t * Gets the most suitable outputs for the given deliveryRules\n\t *\n\t * @param {Object} media\n\t * @param {Array} deliveryRules\n\t * @param {Array} supportedTypes\n\t */\n\tfunction outputsFromDeliveryRules(deliveryRules, media, supportedOutputs) {\n\t\tvar mediaObj = media || {};\n\t\tmediaObj.outputs = [];\n\n\t\t//Setting Helpers._supportedOutputs\n\t\t_supportedOutputs = supportedOutputs || _supportedOutputs;\n\n\t\tdeliveryRules.forEach(function(dr, index) {\n\t\t\tvar outputIndex = _supportedOutputs.indexOf(dr.urlType);\n\n\t\t\t// A && B || !A && C\n\t\t\tif (outputIndex < _supportedOutputs.length - 1 && outputIndex > -1 ||\n\t\t\t\t\toutputIndex >= _supportedOutputs.length - 1 &&\n\t\t\t\t\tmediaObj.outputs.length <= dr.outputs.length) {\n\n\t\t\t\tmediaObj.type = dr.urlType;\n\t\t\t\tmediaObj.duration = dr.outputs[0].fileInfo.duration;\n\t\t\t\tmediaObj.outputs = dr.outputs;\n\n\t\t\t\tvar tokenExpires = mediaObj.outputs[0].url.match(/exp=(\\d+)/);\n\t\t\t\tif(tokenExpires)\n\t\t\t\t\tmediaObj.willExpire = (+tokenExpires[1])*1000;\n\t\t\t}\n\t\t});\n\n\t\treturn mediaObj;\n\t}\n\t/**\n\t * Returns the iframe url base\n\t */\n\tfunction getBaseIframeURL() {\n\t\t// \"[display-path]/[32-hex-hash]\" are the minimum requirement for the API to show the player\n\t\t// (e.g. \"embed/0123456789abcdef0123456789abcdef\")\n\t\treturn _baseIframeURL = _baseIframeURL || window.location.href.replace(/\\w+\\/[a-fA-F0-9]{32}.+$/, '');\n\t}\n\n})();\n\nwindow.Utils = Helpers;\n\nvar Logger = function(level) {\n\tif (typeof level === 'string' && level.indexOf(':') !== -1) {\n\t\tvar kv = level.split(':');\n\n\t\tthis.key = kv[0];\n\t\tlevel = +kv[1];\n\n\t\tif (!isNaN(level))\n\t\t\tthis.level = level;\n\t\telse switch (kv[1].toLowerCase()) {\n\t\t\tcase 'true':\n\t\t\t\tthis.level = 3;\n\t\t\t\tbreak;\n\t\t\tcase 'false':\n\t\t\t\tthis.level = -1;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\telse if (level === true)\n\t\tthis.level = 3;\n\telse if (level === false)\n\t\tthis.level = -1;\n\telse if (!isNaN(level))\n\t\tthis.level = level;\n\n\t//Métricas\n\t/*try{\n\t\tthis.inspectParams();\n\t}catch(e){}*/\n};\n\n/**\n * Levels:\n *\n * -1: -\n * 0: error\n * 1: error,debug\n * 2: error,debug,info\n * 3: error,debug,info,log\n * true: 3\n * false: -1\n *\n * To restrict a key (query param):\n * logger=key:level\n */\nLogger.prototype.key = null;\nLogger.prototype.level = 0;\nLogger.prototype.userStartTime = 0;\nLogger.prototype.startTime = 0;\n\nLogger.prototype._log = function(type, level, msg, k) {\n\tif (console && level <= this.level && (this.key == null || this.key === k))\n\t\tconsole[type]((k ? k + ' :: ' : '') + (typeof msg === 'object' ? JSON.stringify(msg) : msg));\n};\nLogger.prototype.log = function(msg, k) {\n\tthis._log('log', 3, msg, k);\n};\nLogger.prototype.info = function(msg, k) {\n\tthis._log('info', 2, msg, k);\n};\nLogger.prototype.debug = function(msg, k) {\n\tthis._log('debug', 1, msg, k);\n};\nLogger.prototype.error = function(msg, k) {\n\tthis._log('error', 0, msg, k);\n};\n\n/** Métricas **/\nLogger.prototype.inspectParams = function() {\n\n\tif (!sambaBridge.getMediaJson().apiConfig.logger)\n\t\treturn;\n\n\t//TODO: resolver quando o servidor tiver em pé\n\treturn false;\n\tvar self = this;\n\tvar img = new Image(1,1);\n\tvar url = sambaBridge.getMediaJson().apiConfig.logger.baseURL + 'params/increment?';\n\turl = Helpers.urlProtocol(url);\n\tvar paramsArray = [];\n\tvar queryParams = Helpers.getQueryParams();\n\tfor(var key in queryParams) {\n\t\tif(queryParams.hasOwnProperty(key) && key.length > 0)\n\t\t\tparamsArray.push('qp[]='+key);\n\t}\n\timg.src = url + ((paramsArray.length == 0) ? 'qp[]=no_param' : paramsArray.join('&')) + '&t=' + Date.now();\n\timg.onerror = function(){};\n\timg.onload = function(){};\n};\n\nwindow.logger = (function() {\n\tvar param = Helpers.getQueryParams().logger;\n\n\twindow.onerror = function(errorMsg, url, lineNumber, column, errorObj) {\n\t\tif(!param && param !== 0) return;\n\n\t\tvar log = 'Error: ' + errorMsg;\n\n\t\tif (url)\n\t\t\tlog += '\\nURL: ' + url;\n\n\t\tif (lineNumber)\n\t\t\tlog += '\\nLine number: ' + lineNumber;\n\n\t\tif (column)\n\t\t\tlog += '\\nColumn: ' + column;\n\n\t\tlogger.error(log);\n\n\t\tif (errorObj)\n\t\t\tlogger.error(errorObj);\n\t};\n\n\treturn new Logger(param);\n})();\n\n/** Event Dispatcher **/\nwindow.evtDsp = (function() {\n\t'use strict';\n\n\tvar reNs = /^[^\\:]+\\:/;\n\tvar reNsAll = /^\\s*\\*\\s*\\:/;\n\n\tvar _ = Helpers.createPrivate({\n\t\tgetArrayByType: function(type, dict, re) {\n\t\t\tvar typeOnly = type.replace(reNs, '');\n\t\t\tvar array = [];\n\n\t\t\tfor (var k in dict) {\n\t\t\t\tif (k.replace(re, '') === typeOnly)\n\t\t\t\t\tarray = array.concat(dict[k]);\n\t\t\t}\n\n\t\t\tif (dict[type])\n\t\t\t\tarray = array.concat(dict[type]);\n\n\t\t\treturn array;\n\t\t}\n\t});\n\n\tfunction T() {\n\t\t_.init(this);\n\n\t\t_(this).handlers = {};\n\t\t_(this).laters = {};\n\t}\n\n\tT.prototype.on = function(type, handler) {\n\t\tif (type instanceof Array) {\n\t\t\ttype.forEach((function(t) {\n\t\t\t\tthis.on(t, handler);\n\t\t\t}).bind(this));\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (_(this).handlers[type] == null)\n\t\t\t_(this).handlers[type] = [];\n\n\t\t_(this).handlers[type].push(handler);\n\n\t\tvar laters = reNsAll.test(type) ?\n\t\t\t_(this).getArrayByType(type, _(this).laters, reNs) :\n\t\t\t_(this).laters[type] || [];\n\n\t\tlaters.forEach(function(e) {\n\t\t\thandler.call(this, e);\n\t\t});\n\t};\n\n\tT.prototype.off = function(type, handler) {\n\t\tvar handlers = _(this).handlers[type];\n\n\t\tif (handlers == null)\n\t\t\treturn;\n\n\t\tvar i = handlers.length;\n\n\t\twhile (i-- && handler !== handlers[i]);\n\n\t\tif (i > -1 && i < handlers.length)\n\t\t\thandlers.splice(i, 1);\n\t};\n\n\tT.prototype.trigger = function(e, laterDispatch) {\n\t\tvar handlers = _(this).getArrayByType(e.type, _(this).handlers, reNsAll);\n\t\tvar evtReturn, evtReturnTmp;\n\n\t\tif (laterDispatch) {\n\t\t\tif (_(this).laters[e.type] == null)\n\t\t\t\t_(this).laters[e.type] = [];\n\n\t\t\t_(this).laters[e.type].push(e);\n\t\t}\n\n\t\telse if (_(this).laters[e.type])\n\t\t\tdelete _(this).laters[e.type];\n\n\t\tif (handlers.length === 0)\n\t\t\treturn;\n\n\t\thandlers.forEach(function(handler) {\n\t\t\tevtReturnTmp = handler.call(this, e);\n\n\t\t\tif (evtReturn !== false)\n\t\t\t\tevtReturn = evtReturnTmp;\n\t\t});\n\n\t\treturn evtReturn;\n\t};\n\n\treturn new T();\n})();\n\nwindow.SambaContainer = (function() {\n\t'use strict';\n\n\tvar _ = Helpers.createPrivate();\n\tvar dimensions = (typeof getDimensions === 'undefined') ? {} : getDimensions();\n\tvar queryParams = Helpers.getQueryParams();\n\tvar sambaBridge;\n\tvar basePathStatic;\n\tvar mediaJson;\n\n\tfunction T(sb) {\n\t\t_.init(this);\n\n\t\tsambaBridge = sb;\n\n\t\tinit.call(this);\n\t}\n\n\t/** PRIVATE **/\n\n\tfunction init() {\n\t\tmediaJson = sambaBridge.getMediaJson();\n\t\tbasePathStatic = Helpers.getBasePath();\n\n\t\t// Se houver 'resume' ou 'lead' preroll, posterga/delega o tratamento de\n\t\t// 'autoStart' para o diálogo de 'resume'. TODO fazer um tratamento melhor para isso\n\t\t// FIXME: autoStart não está funciona em HTML5\n\t\tif ((queryParams.autoStart && Helpers.isDesktop()) && !sambaBridge.hasLead(\"PREROLL\") &&\n\t\t\t\t!queryParams.age && !queryParams.sct || mediaJson.qualifier === \"AUDIO\" || mediaJson.qualifier === 'AUDIOLIVE')\n\t\t\tbuildContainer.call(this);\n\t\telse buildSplashContainer.call(this);\n\t}\n\n\t/** Construindo o container **/\n\t// OBS: Não é usado na versão HTML5.\n\tfunction buildSplashContainer() {\n\t\tvar c = Helpers.hexToRgb(mediaJson.playerConfig.theme);\n\n\t\t//Play Button\n\t\tthis.splashImage = document.getElementById(\"splashImage\");\n\t\tthis.playButton = document.getElementById(\"playButton\");\n\t\t\n\t\t//TODO: deprecar\n\t\tif(!queryParams.hidePlayBtn) {\n\t\t\tif(this.playButton.tagName === 'IMG')\n\t\t\t\tthis.playButton.src = basePathStatic + \"img/play_white.svg\";\n\n\t\t\t//'background-color: rgba(' + c.r + ',' + c.g + ',' + c.b + ',.8);' +\n\t\t\tc && Helpers.createAndAppendStyle('#playButton {' +\n\t\t\t\t'background-image: url('+Helpers.getBasePath()+'img/play_white.svg); }' +\n\t\t\t'.no-hidecontrols #playButton:focus {' +\n\t\t\t\t'background-image: url('+Helpers.getBasePath()+'img/play_yellow.svg); }' +\n\t\t\t'.bg-title h1 {' +\n\t\t\t\t'font-family: sans-serif;' +\n\t\t\t\t'font-size: 15px;' +\n\t\t\t\t'font-weight: bold;' +\n\t\t\t\t'color: white;}');\n\t\t}\n\n\t\tHelpers.addEvent('resize', window, this.updateDimensions.bind(this));\n\n\t\t//Prevent play se existir dialog\n\t\tif(treatDialog.call(this))\n\t\t\tevtDsp.on('player:beforeClick', function(){return false;});\n\n\t\t//Title\n\t\tvar titleElement = document.querySelector(\".bg-title\");\n\n\t\tif(titleElement && mediaJson.playerConfig.mediaTitle)\n\t\t\ttitleElement.innerHTML = '