{"status":"OK","geo":"US","deviceDetected":1,"fiViewerId":"10a1cee948f5d8e8afaa734344c8e220","pageViewUniqueId":3324853583639274,"datasource":"LIVE","options":{"cmp_enableintegration":true,"amp":{"initialMinSpacing":0.9,"initialMinSpacingUnits":"vp"},"hb_analytics":true,"has_blocked_urls":true,"has_blocked_urls_slashend":"onlySlashEnd","has_blocked_urls_withparams":"onlyNoParams","notHotDog":{"enabled":false,"selectors":[]},"siteLang":"en","esc":true,"campaignLimitations":{},"eventTracking":{"trackingDomains":[{"host":"cdn.firstimpression.io","type":"full"}],"trackScroll":1,"trackTimeOnPage":1,"probability":12,"cookiename":"fitracking"},"prependScript":"if( (new Date() - new Date(FI.options.builtOn)) \/ (1000*60*60) > 24 ) {\n if(!window.fi_reloaded) { window.fi_reloaded=true;\n \tfetch(\"https:\/\/\" + FI.options.ecdnDomain + \"\/fi_client.js\", {cache: \"reload\"}).then(()=>{ \t\t\n \t clearTimeout(FI.g_clientManager.appendLoopTimeout);\n \t\tvar body = document.getElementsByTagName(\"head\")[0];\n newdiv = document.createElement(\"script\");\n \t\t newdiv.setAttribute(\"type\", \"text\/javascript\");\n \t\t newdiv.setAttribute(\"src\", \"https:\/\/\" + FI.options.ecdnDomain + \"\/fi_client.js\"); \n \t delete FI; delete fipb; delete fiQuery;\n \t body.appendChild(newdiv);\n \t\tthrow (\"Cache problem!\");\n \t});\n \treturn;\n }\n}\n\/*{trackingcode|cookiename:fitracking}*\/\n\nfiQuery(window).on('SPCReturned', function() {\n FI.state.utils = fiUtils = {\n getPlacementsPerCond: function(...cond) {\n var count = 0;\n return fiQuery.map(FI.g_clientManager.placementQueue, function($placement) {\n count = 0;\n for (let i = 0; i < cond.length; i++) {\n if (fiUtils[cond[i].placement]($placement, cond[i].is)) count++;\n }\n if (count == cond.length) return [$placement];\n }); \n },\n enabledExtraOption : function($placement, option) {\n return (typeof $placement.options.extra != 'undefined' && typeof $placement.options.extra[option] != 'undefined' && (typeof $placement.options.extra[option].enabled != 'undefined' && $placement.options.extra[option].enabled || typeof $placement.options.extra[option].enabled == 'undefined')) \n || (typeof $placement.options[option] != 'undefined' && (typeof $placement.options[option].enabled != 'undefined' && $placement.options[option].enabled || typeof $placement.options[option].enabled == 'undefined'));\n },\n enabledExtraValue : function($placement, optionPathAndValueArr) {\n let optionVal = optionPathAndValueArr.length - 1,\n \tplacementOption = typeof $placement.options.extra != 'undefined' ? $placement.options.extra : $placement.options,\n \toptionNotFound = false;\n for (var i = 0; i <= optionPathAndValueArr.length - 2; i++) {\n \tif (typeof placementOption[optionPathAndValueArr[i]] != \"undefined\") \n \t\tplacementOption = placementOption[optionPathAndValueArr[i]];\n \telse {\n \t\toptionNotFound = true;\n \t\tbreak;\n \t} \n }\n return ! optionNotFound && placementOption == optionVal;\n },\n enabledOptionValue : function($placement, optionPathAndValueArr) {\n let optionVal = optionPathAndValueArr.length - 1,\n \tplacementOption = $placement.options;\n \toptionNotFound = false;\n for (var i = 0; i <= optionPathAndValueArr.length - 2; i++) {\n \tif (typeof placementOption[optionPathAndValueArr[i]] != \"undefined\") \n \t\tplacementOption = placementOption[optionPathAndValueArr[i]];\n \telse {\n \t\toptionNotFound = true;\n \t\tbreak;\n \t} \n }\n return ! optionNotFound && placementOption == optionVal;\n },\n multiInstance: function($placement) {\n return $placement.options.totalRenderedInstancesLimitation > 1;\n },\n type : function($placement, type) {\n return $placement.type == type;\n },\n pageErrors: [],\n showAllErrors: function(_module) {\n for (var i = 0; i < this.pageErrors.length; i++) {\n if (typeof _module == \"undefined\" || this.pageErrors[i].module == _module)\n this.console(this.pageErrors[i].message, \"Error\", this.pageErrors[i].module);\n }\n },\n console: function(message, type, _module, placementId, bannerId) {\n FI.console.log(typeof message != \"undefined\" ? message : \"No message here.. This seems odd\", \n typeof placementId != \"undefined\" ? placementId : '',\n typeof bannerId != \"undefined\" ? bannerId : '',\n typeof type != \"undefined\" ? type : 'Misc',\n typeof _module != \"undefined\" ? _module : '')\n },\n pageError: function(message, _module, placement) {\n this.pageErrors.push({\"message\": message, \"module\": _module, \"placement\": placement});\n this.console(message, \"Error\", _module);\n },\n getExtra: function($placement) {\n if (typeof $placement == \"object\" && typeof $placement.options != \"undefined\")\n return typeof $placement.options.extra != \"undefined\" ? $placement.options.extra : $placement.options; \n else if (typeof $placement == \"number\")\n return typeof FI.g_clientManager.getPlacement($placement).options.extra != \"undefined\" ? $placement.options.extra : $placement.options; \n else {\n fiUtils.pageError(\"Invoking getExtra but providing ${$placement} which is not a number or an object\");\n return { \"options\" : { \"extra\": {} } }\n }\n },\n getWebsiteMacro: function(macro) {\n return macro.indexOf(\"{\") == -1 ? macro : null;\n },\n isLastInstance : function($instance) {\n return $instance.instanceId.split('_')[2] == $instance.placement.instances.length - 1;\n },\n isPlacementOptionEnabled: function($instance, option) {\n return typeof $instance.placement.options[option] != \"undefined\" && $instance.placement.options[option][\"enabled\"];\n },\n appenndRecorderDiv: function(recorderClass) {\n if (fiQuery(\"recorder\").length == 0) {\n fiQuery('body').append(`