if (!window.va_use_frame && window.viimo_inpage_setup){ if (!window.vimo){ window.vimo = {}; // need to move layer sepecific to the layer.js out from dependencies... window.brand_name_for_internal = window.vimo; /////////////////////// functions String.prototype.startsWith = function(str) {return (this.match("^"+str)==str)} if (!("classList" in document.documentElement) && Object.defineProperty && typeof HTMLElement !== 'undefined') { Object.defineProperty(HTMLElement.prototype, 'classList', { get: function() { var self = this; function update(fn) { return function(value) { var classes = self.className.split(/\s+/), index = classes.indexOf(value); fn(classes, index, value); self.className = classes.join(" "); } } var ret = { add: update(function(classes, index, value) { ~index || classes.push(value); }), remove: update(function(classes, index) { ~index && classes.splice(index, 1); }), toggle: update(function(classes, index, value) { ~index ? classes.splice(index, 1) : classes.push(value); }), contains: function(value) { return !!~self.className.split(/\s+/).indexOf(value); }, item: function(i) { return self.className.split(/\s+/)[i] || null; } }; Object.defineProperty(ret, 'length', { get: function() { return self.className.split(/\s+/).length; } }); return ret; } }); } if (!("getBoundingClientRectRigth" in document.documentElement) && Object.defineProperty && typeof HTMLElement !== 'undefined') { Object.defineProperty(HTMLElement.prototype, 'getBoundingClientRectRigth', { get: function() { return function() { if (this.getBoundingClientRect){ var rect = this.getBoundingClientRect(); if (this.x && this.y){ var scroll_top = vimo.utils.getScrollTop(); rect.top = scroll_top - this.y; } return rect; } else { return undefined; } } } }); } if (!("watchatt" in document.documentElement) && Object.defineProperty && typeof HTMLElement !== 'undefined') { Object.defineProperty(HTMLElement.prototype, "watchatt", { enumerable: false , configurable: true , writable: false , value: function (prop, handler) { var oldval = this[prop] , newval = oldval , getter = function () { return newval; } , setter = function (val) { oldval = newval; return newval = handler.call(this, prop, oldval, val); } ; if (delete this[prop]) { // can't watch constants Object.defineProperty(this, prop, { get: getter , set: setter , enumerable: true , configurable: true }); } } }); } function vimo_prevent_change(prop, oldval, val){ if (this && (this.allow_change || val == "about:blank")){ this.allow_change = false; return val; } else{ return oldval; } } if (!window.getZIndex) { window.getZIndex = function(elem) { var highestZIndex = null; while(elem != document.documentElement && elem){ var zIndex = parseInt( getComputedStyle(elem, null).getPropertyValue('z-index')); if (highestZIndex === null && typeof zIndex === 'number' && !isNaN(zIndex)){ highestZIndex = zIndex; } else if (!isNaN(zIndex) && zIndex > highestZIndex){ highestZIndex = zIndex; } elem = elem.parentElement; } return highestZIndex; }; } if (!window.getElementPosition) { function internalgetElementPosition(elem){ var element_position = window.getComputedStylePropertyValue(elem, 'position'); if (element_position != 'fixed' && (elem != document.documentElement) && elem.parentNode && typeof(elem.parentNode.tagName) != "undefined") return internalgetElementPosition(elem.parentNode); return element_position; } window.getElementPosition = function(elem) { return internalgetElementPosition(elem); }; } if (!Array.prototype.indexOf) { Array.prototype.indexOf = function (obj, fromIndex) { if (fromIndex == null) { fromIndex = 0; } else if (fromIndex < 0) { fromIndex = Math.max(0, this.length + fromIndex); } for (var i = fromIndex, j = this.length; i < j; i++) { if (this[i] === obj) return i; } return -1; }; } if (!window.getComputedStyle) { window.getComputedStyle = function(el, pseudo) { this.el = el; this.getPropertyValue = function(prop) { var re = /(\-([a-z]){1})/g; if (prop == 'float') prop = 'styleFloat'; if (re.test(prop)) { prop = prop.replace(re, function () { return arguments[2].toUpperCase(); }); } return el.currentStyle[prop] ? el.currentStyle[prop] : null; } return this; } } if (!window.getComputedStylePropertyValue){ function getCamelCasedCssProperty(cssProperty){ var camelcase = cssProperty.replace(/\-([a-z]){1}/g, function (g) { return g.toUpperCase() }); return camelcase; } window.getComputedStylePropertyValue = function(el,cssProperty){ if(!window.getComputedStyle){ if(document.defaultView && document.defaultView.getComputedStyle){ return document.defaultView.getComputedStyle.getPropertyValue(cssProperty); // chrome + firefox } else{ var camelCasedCssProperty = getCamelCasedCssProperty(cssProperty); // transforme for IE syntax from "margin-top" to "margainTop" var style_ie8 = window.getComputedStyle(el); // IE8 if (style_ie8.getPropertyValue(camelCasedCssProperty)) { return html_style.getPropertyValue(camelCasedCssProperty); } else{ if(el.currentStyle){ // IE9 return el.currentStyle(camelCasedCssProperty); } else{ if (el.style[camelCasedCssProperty].length > 0){ // IE10 return el.style[camelCasedCssProperty]; } else return 0; } } } } else{ if (el.nodeType == 1){ var comp_style = window.getComputedStyle(el); if (comp_style){ return comp_style.getPropertyValue(cssProperty); } } return null; } } } String.prototype.trim = function () { return this.replace(/^\s*|\s*$/g, ''); }, String.prototype.truncate = function (limit) { var bits, i; bits = this.split(''); if (bits.length > limit) { for (var i = bits.length - 1; i > -1; --i) { if (i > limit) { bits.length = i; } else if (' ' === bits[i]) { bits.length = i; break; } } bits.push('...'); } return bits.join(''); }; /////////////////////////////// // dependencies vimo.image = { max_size: 850, share_unit_sizes: ["300_250", "300_239"], mouse_enter_sender: null, mouse_enter_timeout : null, first_hover: true, current_sender: null, // used in order to avoid hide+show when moving from layer to image last_current_sender: null, monitor_objects_ts: [], share_unit_networks_domain : ["googlesyndication.com", "doubleclick.net", "chitika.net", "adbrite.com", "advertising.com", "247realmedia.com", "commission-junction.com", "kanoodle.com", "openx.com", "valueclick.com", "content.yieldmanager.edgesuite.net", "2mdn.net", "mediaplex.com", "serving-sys.com", "BannerSource.asp", "fmpub.net", "adnxs.com", "fastclick.net", "buysellads.com", "solvemedia.com", "linkwi.se", "atwola.com", "shareasale.com", "turn.com", "2mdn.net", "singlehop.com", "tqlkg.com", "glam.com", "ads.yldmgrimg.net", "twitter.com", "cdn.contentclick", "triplelift.com", "content.ad", "adblade.com"], share_unit_networks_keywords : ["\/linkshare\/", "\/adserv\/", "\/viewad\/", "\/pagead\/", "\/banners\/", "bannerid=", "utm_source="], share_unit_networks_ad_size : [[468,60],[728,90],[336,280],[300,250],[250,250],[728,210],[720,300],[500,350],[550,480],[300,600]], // known units ad sizes share_offers_networks:["mgid.com", "outbrain.com", "engageya", "contentclick"], gallery:0.5, get_top: function(obj){ var top=0, left=0; while(obj) { top = top + parseInt(obj.offsetTop); left = left + parseInt(obj.offsetLeft) obj = obj.offsetParent; } return {top: top, left: left} }, _findPos: function(obj) { var curleft = curtop = 0; var cur_height = cur_width = 0; var chage_left = 0; // fix bug with offset use only integers with out frec //if (vimo.utils.browser.browser_type == "Firefox"){ var rectObject = null; if (obj.getBoundingClientRectRigth){ rectObject = obj.getBoundingClientRectRigth(); } else{ rectObject = obj.getBoundingClientRect(); } var viewportElement = document.documentElement; var docBody = document.body; var style_body = (docBody.currentStyle || window.getComputedStyle(docBody, null)); curleft = rectObject.left + (window.pageXOffset || viewportElement.scrollLeft || docBody.scrollLeft || 0); if(vimo.settings.img_position_fixed){ var current = obj; while (current.parentNode && current.tagName != "HEADER" && current.tagName != "BODY"){ current = current.parentNode if(window.getComputedStyle(current, "position").position == "fixed"){ curtop = rectObject.top; break; } else{ curtop = rectObject.top + (window.pageYOffset || viewportElement.scrollTop || docBody.scrollTop || 0); } } }else{ curtop = rectObject.top + (window.pageYOffset || viewportElement.scrollTop || docBody.scrollTop || 0); } if (style_body && style_body.position == "relative") { if (!vimo.utils.isIE() && (vimo.utils.browser.type() != "Firefox")){ // set viewport per browser type viewportElement = document.body; curtop = curtop - (docBody.getBoundingClientRectRigth().top + viewportElement.scrollTop); curleft = curleft - (docBody.getBoundingClientRectRigth().left + viewportElement.scrollLeft); //need to test this action } else { viewportElement = document.documentElement; curtop = curtop - (docBody.getBoundingClientRectRigth().top + viewportElement.scrollTop); curleft = curleft - (docBody.getBoundingClientRectRigth().left + viewportElement.scrollLeft); //need to test this action } } if (vimo.settings.use_alternative_top_left){ if(!obj.curtop && !obj.curleft){ obj.curtop = curtop; obj.curleft = curleft; }if(obj.curtop != curtop){ curtop = vimo.image.get_top(obj).top; }if(obj.curleft != curleft){ curleft = vimo.image.get_top(obj).left; } } cur_width = rectObject.width; cur_height = rectObject.height; return {top: curtop, left: curleft , width: cur_width, height: cur_height} // } else { // var floor_left = Math.round(rectObject.left) // if (floor_left != rectObject.left && obj.offsetLeft > 0){ // if (floor_left > rectObject.left){ // check for // chage_left = (floor_left - rectObject.left); // } else { // chage_left = (rectObject.left - floor_left); // } // } // curleft = chage_left; // if (obj.offsetParent) { // do { // curleft += obj.offsetLeft; // curtop += obj.offsetTop; // } while (obj = obj.offsetParent); // } // var body_computed_style= window.getComputedStyle(document.body, null) // var computedStylePos = ""; // if (body_computed_style){ // computedStylePos = body_computed_style.position; // } // if (!vimo.utils.isIE() && computedStylePos != 'relative'){ // html_margin_top = window.getComputedStylePropertyValue(document.documentElement, 'margin-top'); // var html_margin_top = parseInt(html_margin_top) // curtop += html_margin_top; // } // } // } // catch(e){}; // return { top: curtop, left: curleft }; }, checkParentsFloat: function(img){ var floating = "null"; while(img && img != img.parentElement && img.tagName != "BODY") { floating = window.getComputedStyle(img, "float").float; if(floating != "null"){return false}; img = img.parentElement; } return true; }, _getImgSize: function(img, ignore_visibility_forshow){ var pos = vimo.image._findPos(img), width = img.clientWidth, height = img.clientHeight, left = 0, top = 0, border_top = 0, border_left = 0, border_bottom = 0, border_rigth = 0, isOverflowSetToHidden = false, style = (img.currentStyle || window.getComputedStyle(img, null)); if(!isNaN(parseInt(style.border))){ border_top = parseInt(style.border); border_left = parseInt(style.border); } if(!isNaN(parseInt(style.borderTop))){ border_top = parseInt(style.borderTop); } else if(!isNaN(parseInt(style.borderTopWidth))){ border_top = parseInt(style.borderTopWidth); } if(!isNaN(parseInt(style.borderLeft))){ border_left = parseInt(style.borderLeft); } else if(!isNaN(parseInt(style.borderLeftWidth))){ border_left = parseInt(style.borderLeftWidth); } if(!isNaN(parseInt(style.borderRigth))){ border_rigth = parseInt(style.borderRigth); } else if(!isNaN(parseInt(style.borderRightWidth))){ border_rigth = parseInt(style.borderRightWidth ); } if(!isNaN(parseInt(style.borderBottom))){ border_bottom = parseInt(style.borderBottom); } else if(!isNaN(parseInt(style.borderBottomWidth))){ border_bottom = parseInt(style.borderBottomWidth ); } var padding_left = 0; if(!isNaN(parseInt(style.paddingLeft))){ padding_left = parseInt(style.paddingLeft); border_left += padding_left; } var padding_right = 0; if(!isNaN(parseInt(style.paddingRight))){ padding_right = parseInt(style.paddingRight); } var padding_top = 0; if(!isNaN(parseInt(style.paddingTop))){ padding_top = parseInt(style.paddingTop); border_top += padding_top; } var padding_bottom = 0; if(!isNaN(parseInt(style.paddingBottom))){ padding_bottom = parseInt(style.paddingBottom); } if(img.style.left){ left = img.style.left; } if(img.style.top){ top = img.style.top; } var shown = true, parent = img, overflow_top = pos.top, overflow_left = pos.left, offset = 0, img_rect = img.getBoundingClientRectRigth ? img.getBoundingClientRectRigth() : 0, img_x = img_rect ? img_rect.left : undefined, img_y = img_rect ? img_rect.top : undefined, img_offsetWidth = img.offsetWidth, parent_rect = parent.getBoundingClientRectRigth ? parent.getBoundingClientRectRigth() : 0, max_width_parent = parent.clientWidth, parent_x = parent_rect ? parent_rect.left : 0, parent_y = parent_rect ? parent_rect.top : 0, visible_width = parent.clientWidth, visible_height = parent.clientHeight, VISIBLE_PADDING = 2, offset = parent.offsetLeft, gallery = vimo.image.gallery; while(parent && parent != parent.parentElement) { if(vimo.settings.ignore_body && parent.tagName != "BODY"){ break; } if (parent.style.opacity == "0"){ shown = false; } if (parent && window.getComputedStyle){ var alignText = ""; var overflow = ""; var computed_style = window.getComputedStyle(parent,null); if (computed_style != null){ if(parent.parentElement != null){ if(parent.parentElement.tagName == "BODY" && parent.offsetTop < document.body.offsetTop && parent.tagName != "FORM"){ shown = false; } } overflow = window.getComputedStyle(parent,null).getPropertyValue("overflow"); if (overflow == "hidden"){ var fix_height = false; var parent_computed_style = window.getComputedStyle(parent,null); alignText = parent_computed_style.getPropertyValue("text-align"); float_parent = window.getComputedStyle(parent, "float").float; /////////////////////////////////////////////////////////////// // TBD should fix bug when overfllow parent is bigger than self /////////////////////////////////////////////////////////////// if (alignText == 'center') { pos = vimo.image._findPos(parent); } parent_rect = parent.getBoundingClientRectRigth(); parent_x = parent_rect.left; parent_y = parent_rect.top; isOverflowSetToHidden = true; if (parent.clientWidth > 0 && parent.clientWidth > max_width_parent){ max_width_parent = parent.clientWidth; } if (parent.clientWidth > 0 && parent.clientWidth < visible_width){ visible_width = parent.clientWidth; pos = vimo.image._findPos(parent); overflow_left = pos.left; if(!isNaN(parseInt(parent_computed_style.borderLeft))){ border_left += parseInt(parent_computed_style.borderLeft); } else if(!isNaN(parseInt(parent_computed_style.borderLeftWidth))){ border_left += parseInt(parent_computed_style.borderLeftWidth); } } if (parent.clientHeight > 0 && parent.clientHeight < visible_height){ visible_height = parent.clientHeight; pos = vimo.image._findPos(parent);// set heigth and top with overflow hidden fix_height = overflow_top; overflow_top = pos.top; if(!isNaN(parseInt(parent_computed_style.borderTop))){ border_top += parseInt(parent_computed_style.borderTop); } else if(!isNaN(parseInt(parent_computed_style.borderTopWidth))){ border_top += parseInt(parent_computed_style.borderTopWidth); } } if (offset + visible_width < 0 || (offset >= parent.offsetWidth && vimo.image.checkParentsFloat(img))){ shown = false; } // a fix for slid galleries when only one image is shown if ((parent_y == img_y || parent_y + VISIBLE_PADDING > img_y || parent_y - VISIBLE_PADDING < img_y) && (parent_x + (max_width_parent*gallery) <= img_x && img_x > parent_x)){ shown = false; } if ((parent_y == img_y || parent_y + VISIBLE_PADDING > img_y || parent_y - VISIBLE_PADDING < img_y) && (img_x <= parent_x - (max_width_parent*gallery))) { shown = false; } //-- If the target element is to the left of the parent elm if(offset + img_offsetWidth - VISIBLE_PADDING < parent.scrollLeft){ shown = false; } } if (computed_style.zoom != '1' && typeof computed_style.zoom != "undefined") { overflow_top += vimo.utils.getScrollTop(); visible_width *= parseFloat(computed_style.zoom); visible_height *= parseFloat(computed_style.zoom); overflow_top *= parseFloat(computed_style.zoom); overflow_left *= parseFloat(computed_style.zoom); } if(parent.tagName.toLowerCase() != "html" && shown && parent.parentNode && (window.getComputedStyle(parent.parentNode).visibility != "visible" || window.getComputedStyle(parent.parentNode).opacity != "1")){ shown = false; } } } if (parent.offsetParent === parent.parentElement && parent.parentElement != null){ offset = offset + parent.parentElement.offsetLeft; } parent = parent.parentElement; } if (offset < 0-(visible_width/2)){ shown = false; } if(visible_width>img.clientWidth){ visible_width = img.clientWidth; } if(visible_height>img.clientHeight){ visible_height = img.clientHeight; } if ( (padding_left > 0 || padding_right > 0) && visible_width > width - (padding_left + padding_right) && img.tagName == 'IMG' ){ visible_width = width - (padding_left + padding_right); } if ( (padding_top > 0 || padding_bottom > 0) && visible_height > height - (padding_top + padding_bottom) ){ visible_height = height - (padding_top + padding_bottom); } if(fix_height){ if(fix_height < 0){ visible_height = visible_height + (fix_height); }else{ visible_height = visible_height - fix_height; } } var actual_left = overflow_left; var actual_top = overflow_top; if(padding_bottom > 0){actual_top +=padding_bottom;} // if (isOverflowSetToHidden){ // actual_left = overflow_left + border_left ; // actual_top = overflow_top + border_top; // } else { // actual_left = pos.left; // actual_top = pos.top // } if(!ignore_visibility_forshow && window.getComputedStylePropertyValue(img, 'visibility') == 'hidden'){ shown = false; } if(!ignore_visibility_forshow && visible_width==0 && visible_height==0){ shown = false; } if(left>visible_width){ shown = false; } if(top>visible_height){ shown = false; } var scroll_left = vimo.utils.getScrollLeft(); var scroll_top = vimo.utils.getScrollTop(); var image_portion = visible_height - 150; if (image_portion < 0) image_portion = visible_height * 0.7 var element_position = window.getElementPosition(img) if (element_position != 'fixed'){ // check scroll location only when position is not fixed if(actual_top <= (scroll_top+ vimo.utils.getHeight()) && (actual_top+image_portion)>=scroll_top){ }else{ shown = false; } } if (visible_width > img.width || pos.width > img.width ){ // check if img has border and padding box inculded (visible_width = img.clintwidth) can set check visible_width - boder = img.width if (border_left > 0 || border_rigth > 0) { actual_left = actual_left + border_left; } } if (visible_height > img.height || pos.height > img.height) { //pos.height and pos.width are comming from _findpos function if (border_top > 0 && border_top != padding_bottom){ actual_top = actual_top + border_top; } } // Fix the pos function to return the inside rect when there is a border (this is border with a fix border (top, left, rigth, bottom)) //if (pos.height > height && border_top != 0) { // actual_top = actual_top + (pos.height - height)/2; //} //if (pos.width > width &ser& border_left != 0) { // actual_left = actual_left + (pos.width - width)/2; //} return [visible_width, visible_height, actual_top, actual_left, shown]; var imgLeft; var imgPos; var imgTop; var imgHeight; var imgWidth; if (img) { imgPos = vimo.image._findPos(img); if (typeof(imgPos) != "undefined"){ imgLeft = imgPos.left; imgTop = imgPos.top; } else{ imgLeft = img.offsetLeft; imgTop = img.offsetTop; /*var rect = img.getBoundingClientRectRigth(); if (typeof(rect) != "undefined"){ imgLeft = rect.left; imgTop = rect.top; }*/ } imgWidth = img.clientWidth; imgHeight = img.clientHeight; } if (typeof(imgWidth) == "undefined"){ if (typeof(img.innerWidth) != 'undefined'){imgWidth = img.innerWidth(); }else {imgWidth = img.clientWidth} } if (typeof(imgHeight) == "undefined"){ if (typeof(img.innerHeight) != 'undefined'){imgHeight = img.innerHeight(); } else{imgHeight = img.clientHeight} } var parent = img.parentNode; if (parent && window.getComputedStyle){ var overflow = ""; var computed_style = window.getComputedStyle(parent,null); if (computed_style != null){ overflow = window.getComputedStyle(parent,null).getPropertyValue("overflow") } if (overflow == "hidden"){ parent_width = parent.clientWidth; if (parent_width < imgWidth){ imgWidth = parent_width; } parent_height = parent.clientHeight; if (parent_height < imgHeight){ imgHeight = parent_height; } } else if (parent.nodeName == "A"){ if (parent.clientWidth > 0 && parent.clientWidth < imgWidth){ imgWidth = parent.clientWidth; } if (parent.clientHeight > 0 && parent.clientHeight < imgHeight){ imgHeight = parent.clientHeight; } } } return [imgWidth, imgHeight, imgTop, imgLeft, imgPos] }, getImageSrc: function(image){ var src = image.getAttribute('data-lazy-src'); if (typeof(src) == 'undefined' || src == null) src = image.getAttribute('ImageHolder'); if (typeof(src) == 'undefined' || src == null) src = image.getAttribute('src'); if (typeof(src) == 'undefined' || src == null) src = image.src; return src }, mouseEnter: function(sender){ clearTimeout(vimo.image.mouse_enter_timeout); if (vimo.image.last_current_sender != sender){ if (vimo.preload){ var value = vimo.preload.getCookie("vimo_lpt"); if (value != null){ try{ var splited_value = value.split('$vi$') if (splited_value.length > 1){ if (splited_value[1] == document.location){ var d = new Date(); var n = d.getTime(); if ((n - parseInt(splited_value[1])) < vimo.settings.lock_show_between_time){ return false; } } } } catch(e){} } } } if (vimo.layer.current_mode == "hover" && vimo.layer.visible && vimo.image.mouse_enter_sender != sender && (vimo.image.current_sender == null || vimo.image.current_sender != sender) ){ // if visible and mode == image and sender is different // hide imidiatly if (vimo.layer.scroll_in_action){ return; } // setTimeOut fro show and on timeout check still on the image. vimo.image.mouse_enter_sender = sender; vimo.layer.hideInternal(); vimo.image.mouse_enter_timeout = setTimeout(function(){ if (vimo.image.mouse_enter_sender != null){ vimo.layer.show(vimo.image.mouse_enter_sender); } }, 80) } else{ vimo.image.mouse_enter_sender = sender; if (vimo.image.first_hover){ vimo.layer.show(sender); vimo.image.first_hover = false; } else{ vimo.image.mouse_enter_timeout = setTimeout(function(){ if (vimo.image.mouse_enter_sender != null){ vimo.layer.show(vimo.image.mouse_enter_sender); } }, 40); } } }, mouseLeave: function(e_m){ // check if out to element over the image if ((typeof(e_m) != 'undefined') && ((typeof(e_m.toElement) != 'undefined') || typeof(e_m.relatedTarget) != 'undefined')) { if (this && this.getBoundingClientRectRigth){ var rect = this.getBoundingClientRectRigth(); if (typeof(rect) != "undefined"){ if (e_m.clientX > rect.left && e_m.clientX < rect.right && e_m.clientY > rect.top && e_m.clientY < rect.bottom){ var image_element = e_m.toElement || e_m.relatedTarget; // unbind other elements(wibiya click to share. for example) vimo.utils.unbind('mouseover', null, image_element); vimo.utils.unbind('mouseout', null, image_element); vimo.utils.unbind('mouseenter', null, image_element); vimo.utils.unbind('mouseleave', null, image_element); // bind to mouse enter vimo.utils.bind('mouseover', vimo.layer.mouseEnter, image_element); vimo.utils.bind('mouseout', vimo.layer.mouseLeave, image_element); vimo.utils.bind('mouseenter', vimo.layer.mouseEnter, image_element); vimo.utils.bind('mouseleave', vimo.layer.mouseLeave, image_element); return; } } } } vimo.image.mouse_enter_sender = null; clearTimeout(vimo.image.mouse_enter_timeout); if (vimo.layer.current_mode == "hover"){ vimo.layer.mouseLeave(e_m); } } }; vimo.layer = { tipInview_Shown : false, units_array: [], inView_array:[], inited: false, fsgf: "s", fsgf1: "see", fsgs1: "VISUAL", fsgs: "S", images_found: false, header_background: "", header_text_color: "", min_bottom_space: 10, bind_scroll: true, scroll_timer: null, scroll_interval: 100, scroll_in_action: false, scroll_in_action_timer: null, scroll_element_selector: ".MoreLink, .comments, #comments, #comment, .comment, #comment-list, #commentList, #disqus_thread, .yarpp-related", visible: false, hovered: false, show_onfocus: false, hide_permanent: [], current_mode: null, layer_hide_delay: 1000, layer_obj: null, layer_width: 278, layer_height: 288, should_hide: false, hook_image: true, set_lock_counter: true, set_gray_lock_counter: true, flip_hooked_images: 0, strip_hooked_images: 0, roll_hooked_images: 0, cover_max_images: 1, cover_hooked_images: 0, tip_hooked_images: 0, generic_refresh_counter: 0, total_requests_counter: [], total_passbacks_counter: [], elementsCounter: [], productCounter: [], binded_images:0, init_xtraStyle: false, left_style: '-4500px', top_style: '-4500px', monitor_objects: {}, prev_url: null, one_request: [], w: screen.width, h: screen.height, pxr: window.devicePixelRatio, ppi: function() { var elem = document.createElement('div'); elem.style.width = '1in'; document.body.appendChild(elem); var ppi = elem.offsetWidth; document.body.removeChild(elem); return ppi; }, isEmpty: function(obj){ for(var prop in obj) { if(obj.hasOwnProperty(prop)) return false; } return true && JSON.stringify(obj) === JSON.stringify({}); }, connectionType: function(){ if (navigator.connection && navigator.connection.type){ if (navigator.connection.type == "cellular"){ return "3"; } else if (navigator.connection.type == "wifi"){ return "2"; } else if (navigator.connection.type == "ethernet"){ return "1"; } else{ return "0"; } } else { return "0"; } }, language: function(){ try{ //var full_html = document.documentElement.outerHTML; //var reg_ex = new RegExp("lang=", "i"); var lang_dict = {"br": "pt", "it": "it", "es": "es", "fr": "fr", "de": "de","mx": "es","ar": "es","co": "es","cl": "es"}; var curr_host = document.location.host; curr_host_split = curr_host.split(".") if (curr_host_split[curr_host_split.length-1] in lang_dict){ return lang_dict[curr_host_split[curr_host_split.length-1]]; } var lang = document.documentElement.lang || navigator.language || navigator.userLanguage; if (lang == null || typeof(lang) == 'undefined'){ lang = ""; } else{ if (lang.length > 2){ lang = lang[0] + lang[1] } } } catch(e){ return 'en' // do nothing } return lang; }, autoPassBack: function(frame_element){ var check_fyva = frame_element.contentWindow.document.body.getElementsByTagName("DIV"), check_scripts = frame_element.contentWindow.document.getElementsByTagName("SCRIPT"), check_iframes = frame_element.contentWindow.document.getElementsByTagName("IFRAME"), found_main_script = false, found_va_script = false, id_index = false, found_id = false; if(check_fyva.length > 0){ var get_fyva = check_fyva[0].className; if(get_fyva == "fyva_noshow" || frame_element == "fyva_container" || frame_element == "chitikaAdContainer"){return;} } for(var index=0 ; index < check_scripts.length ; index++){ if(check_scripts[index].src.indexOf(".js") > -1){ found_main_script = true; } if(check_scripts[index].innerHTML.indexOf("w.va_sid") > -1){ found_va_script = true; var id_index = check_scripts[index].innerHTML.indexOf("w.va_curr_unit_id"); if(id_index && !found_id){ var id_number = check_scripts[index].innerHTML.substring(id_index); id_number = id_number.split("'"); id_number = parseInt(id_number[1]); found_id = true; } } } if(!found_main_script && check_iframes.length == 0 && found_va_script){ var pass_url = vimo.utils.protocol() + '//srv.imonomy.com/script/main.js'; var script = document.createElement('script'); script.setAttribute('type', 'text/javascript'); script.setAttribute('src', pass_url); frame_element.contentWindow.document.body.appendChild(script); vimo.page.trackServ(987, "auto_passback", undefined, undefined, id_number ? id_number : undefined); frame_element.requested = true; } }, incPassbackCounter: function(product){ if(vimo.layer.total_requests_counter[product] >=0){ vimo.layer.total_requests_counter[product]+= 1; }else{ vimo.layer.total_requests_counter[product]= []; vimo.layer.total_requests_counter[product]= 0; } }, checkPassbackCode: function(product){ if(vimo.layer.total_passbacks_counter[product] >=0){ vimo.layer.total_passbacks_counter[product]+= 1; }else{ vimo.layer.total_passbacks_counter[product]= []; vimo.layer.total_passbacks_counter[product]= 0; } if (vimo.layer.total_passbacks_counter[product] == vimo.layer.total_requests_counter[product]){ if (vimo.settings.passback_code){ vimo.settings.passback_code(product); } } }, isDescendant: function(parent, child) { var node = child.parentNode; while (node != null) { if (node == parent) { return true; } node = node.parentNode; } return false; }, checkLoad_interval_timer: null, checkLoad_interval: function(){ if (vimo.layer.units_array.checkLoad_interval_timer == null){ vimo.layer.units_array.checkLoad_interval_timer = setTimeout(function (){ var reactive = false; if(vimo.layer.units_array.length != vimo.layer.loaded_products){ for(var obj_index in vimo.layer.units_array){ var unit = vimo.layer.units_array[obj_index]; if (!unit.loaded){ if(unit.type == "strip"){ unit.loaded = vimo.strips.isContentLoaded(unit.unit_container); if(unit.loaded){ vimo.layer.loaded_products++; } } } } reactive = true; } vimo.layer.units_array.checkLoad_interval_timer = null; if (reactive){ vimo.layer.checkLoad_interval(); } }, 400); } }, is_shopping_site: null, shopping_site: function(){ if (vimo.layer.is_shopping_site == null){ if (vimo.settings && vimo.settings.shopping_site){ vimo.layer.is_shopping_site = vimo.settings.shopping_site; } else{ if (document.location != null && (document.location.pathname != "/" || document.location.search != "")){ // check if shopping site var full_html = document.documentElement.outerHTML || new XMLSerializer().serializeToString(document.documentElement); shopping_words = ["add to cart", "add to basket", "shop by", "add to wishlist", "add to loves", "free shipping", "product review", "go to store", "carrinho de compras", "comprar com ", "ir � Loja", "meu carrinho", "meus pedidos", "arraste para o carrinho", "mais Vendidos", "compre agora", "sua compra segura", "formas de pagamento", "minha sacola", "nossas lojas", "com frete gratis", "frete gratis", "adicionar ao carrinho", "compra rapida", "continuar comprando", "stato ordini", "aggiungi al carrello", "il mio carrello", "lista dei desideri", "disponibilita prodotti", "compra online", "prodotti nel carrello", "consegna gratis", "i miei ordini", "aggiungi ai desiderati", "compra ahora", "comprar ahora", "compra ya", "agregar a la lista", "mi carrito", "iienda online", "formas de pago", "a�adir al carrito", "mostrar carrito", "continuar comprando", "carro de compra", "mi cesta", "a�adir a la cesta", "detalles del producto", "env�o gratis", "voir l'offre", "achat imm�diat", "mon panier", "ajouter au panier", "continuer mes achats", "passer la commande", "total de votre commande", "livraison gratuite", "voir mon panier", "modes de livraison", "moyens de paiement", "in den warenkorb", "weiter shoppen", "warenkorb anzeigen", "kauf auf Raten", "zahlungsbedingungen", "bezahlung", "auf den Wunschzettel", "kostenloser versand"] for (var i = 0; i < shopping_words.length; i++) { var str = new RegExp("\\b" + shopping_words[i].replace("(", "\\(") + "\\b", "i"); if (full_html.match(str) != null){ vimo.layer.is_shopping_site = true; break; } } } if (vimo.layer.is_shopping_site == null){ vimo.layer.is_shopping_site = false; } } } return vimo.layer.is_shopping_site; }, setLockCounter: function(){ if (vimo.layer.set_lock_counter){ vimo.utils.setCookie("vimo_lock_time", document.location, vimo.settings.lock_domain_time, '/', vimo.settings.use_cross_domain_lock); //var d = new Date(); //var n = d.getTime(); //vimo.utils.setCookie("vimo_lpt", n.toString() + "$vi$" + document.location, vimo.settings.lock_show_between_time, document.location); vimo.layer.set_lock_counter = false; var lock_counter = vimo.utils.getCookie("vimo_lock_count"); if (vimo.settings.use_cross_domain_lock && vimo.settings.lock_counter){ lock_counter = vimo.settings.lock_counter; } if (lock_counter == null || lock_counter == ""){ lock_counter = 0; } else{ lock_counter = parseInt(lock_counter); } vimo.utils.setCookie("vimo_lock_count", lock_counter + 1, vimo.settings.lock_count_time, '/', vimo.settings.use_cross_domain_lock); //3600000 = 1 hours //var random_mode = Math.random(); //if (random_mode <= 0.001){ // var c_check_url = "//c.fqtag.com/tag/implement-r.js?org=F0PcXB03ZlblukgOY2nw&p=" + vimo.layer.get_sid() + "&a=" + vimo.layer.get_sub_id() +"&cmp=&rd=" + escape(vimo.page.domain()) + "&rt=display&sl=1"; // vimo.utils.injectScript(c_check_url); //} } }, mouseEnter: function(sender){ vimo.layer.hovered = true; }, mouseLeave: function(e){ vimo.layer.hovered = false; vimo.layer.hide(); }, getPosition: function(element){ var imgSize = vimo.image._getImgSize(element); var imgWidth = imgSize[0]; var imgHeight = imgSize[1]; var imgTop = imgSize[2]; var imgLeft = imgSize[3]; var imgPos = imgSize[4]; if (typeof(imgWidth) == 'undefined' || typeof(imgTop) == 'undefined'){ return null; } var left = imgLeft; var top = imgTop; var right = left + imgWidth; var bottom = imgTop + imgHeight; var scrollTop = vimo.utils.getScrollTop(); var scrollLeft = vimo.utils.getScrollLeft(); var layer_left = right; var layer_top = top; var min_space_from_top = 25; // check which is bigger left space or right space var layer_direction = ""; var tip_in_image_cover = 50; if (imgWidth < 170){ tip_in_image_cover = 0; } else if (imgWidth < 250){ tip_in_image_cover = 25; } if ((((left + (imgWidth/2)) < (window.innerWidth/2)) || right+vimo.layer.layer_width > vimo.utils.getWidth() || imgWidth < 130) && (left - vimo.layer.layer_width) > 0 ){ if (vimo.utils.isRTL()){ layer_left = left + tip_in_image_cover; } else { layer_left = left - vimo.layer.layer_width + tip_in_image_cover; } layer_top = top + min_space_from_top; layer_direction = "R"; } else { if (vimo.utils.isRTL()){ layer_left = right + vimo.layer.layer_width - tip_in_image_cover; } else { layer_left = right - tip_in_image_cover; } layer_top = top + min_space_from_top; layer_direction = "L"; } if (top+vimo.layer.layer_height > scrollTop+vimo.utils.getHeight()){ if (scrollTop+vimo.utils.getHeight() < top+min_space_from_top){ // should show on top } else{ layer_top = scrollTop+vimo.utils.getHeight() - min_space_from_top - vimo.layer.layer_height; } } if (scrollTop > (top -min_space_from_top)){ if (scrollTop > (top + imgHeight - min_space_from_top)){ // should show under the image } else { layer_top = scrollTop + min_space_from_top; } } var tip_m = 65 + 25 * (120/imgHeight); if (layer_top > imgTop - tip_m && layer_top < imgTop + (vimo.layer.layer_height/3.5) - tip_m){ layer_direction = layer_direction + "M"; } else if (layer_top > imgTop) { layer_direction = layer_direction + "T"; } else { layer_direction = layer_direction + "B"; } return { left: layer_left, top: layer_top, direction: layer_direction } }, test_iframe_mode_check: null, test_iframe_mode: function(){ if (vimo.layer.test_iframe_mode_check == null){ frame_id = "vimo_layer_frame_test"; if (document.getElementById(frame_id) == null){ var ifrm = document.createElement("IF" + "RAME"); ifrm.setAttribute("id", frame_id); ifrm.setAttribute("name", frame_id); ifrm.setAttribute("width", 0); ifrm.setAttribute("height", 0); ifrm.style.width = 0; ifrm.style.height = 0; ifrm.style.display = 'none'; document.body.appendChild(ifrm); } var html = ""; var width = null; //response.width; var height = null; //response.height; var frame = document.getElementById(frame_id); if (!frame) {return false;} vimo.layer.test_iframe_mode_check = vimo.layer.set_iframe(frame, html, width, height, true); } return vimo.layer.test_iframe_mode_check; }, set_iframe: function(frame, thehtml, width, height, test) { if (typeof(test) != 'undefined' && test == true){ thehtml = "" } var w = window; if (typeof(frame) == "undefined"){ return false; //f was undefined crashing Chrome for Mac. } var fobj = frame; fobj.src = "about:blank"; if(frame.className == "vimo_sticky_frame"){ fobj.class = "vimo_sticky_frame"; } fobj.border = "0"; fobj.style.margin = fobj.style.padding = fobj.style.border= 0; fobj.padding = "0"; fobj.frameBorder = 0; fobj.marginWidth = 0; fobj.marginHeight = 0; fobj.vspace = 0; fobj.hspace = 0; fobj.scrolling = "no"; fobj.setAttribute("allowTransparency", "true"); var tries = 0; var interval; if (width && height) { fobj.width = width; fobj.height = height; if (isNaN(width)){ fobj.style.width = width; } else{ fobj.style.width = width + "px"; } if (isNaN(height)){ fobj.style.height = height; } else { fobj.style.height = height+ "px"; } } if (thehtml != null){ fobj.thehtml = thehtml; try{ var fdoc = fobj.contentWindow.document; //if (!vimo.utils.isIE()){ fdoc.open(); //} fdoc.write(thehtml); // setTimeout for a bug fix; for some reason the document's onload event doesn't fire if the containing element has position set, unless I add a delay... //if (!vimo.utils.isIE()){ setTimeout(function() { fdoc.close(); }, 16); //} if (typeof(test) != 'undefined' && test == true){ if (fdoc.getElementById('test') == null) return false; } }catch(e){return false;} } if(fobj.className == "vimo_sticky_frame" && vimo.utils.isIE()){ var sytle_doc = fobj.contentWindow || fobj.contentDocument; sytle_doc.document.documentElement.style.overflow = "hidden"; } return true; }, get_sub_id: function(){ var sub_id = ""; if (vimo.layer.get_sid() == "14567725798" || vimo.layer.get_sid() == "14567725764" || vimo.layer.get_sid() == "14567725690") { if (typeof(vadims_sub_id) != 'undefined'){ sub_id = vadims_sub_id; } } else { if (eval("typeof(vadims_" + vimo.layer.get_sid() + "_sub_id)") != 'undefined'){ sub_id = eval("vadims_" + vimo.layer.get_sid() + "_sub_id"); } else if (vimo.preload && vimo.preload.sub_id != ''){ sub_id = vimo.preload.sub_id; } } return sub_id; }, get_sid: function(){ var sid = ""; if (vimo.preload && vimo.preload.encoded_partner){ sid = vimo.preload.encoded_partner; } else{ sid = vimo.global_settings.sid; } return sid; }, decodeStr: function(coded) { var key = "SXGWLZPDOKFIVUHJYTQBNMACERxswgzldpkoifuvjhtybqmncare" coded = decodeURIComponent(coded); var uncoded = ""; var chr; for (var i = coded.length - 1; i >= 0; i--) { chr = coded.charAt(i); uncoded += (chr >= "a" && chr <= "z" || chr >= "A" && chr <= "Z") ? String.fromCharCode(65 + key.indexOf(chr) % 26) : chr; } return uncoded; }, hold: function(){ vimo.layer.fsgf = vimo.layer.fsgf + "_simi" + "lar"+ ",#simi" + vimo.layer.decodeStr("jTJTxf") + vimo.layer.decodeStr("dukvO_QqwNg"); vimo.layer.fsgs = vimo.layer.fsgs + "_" + vimo.layer.decodeStr("xLb") + "RCH"; try{ vimo.utils.injectStyle("#" + vimo.layer.fsgf + ",.dea" + vimo.layer.decodeStr("-EfJf") + "toast ,#" + vimo.layer.fsgs + "{ display:none !important; visibility:hidden !important;}"); } catch(e){} }, monitor_url: null, set_values: function(){ vimo.layer.fsgf = vimo.layer.fsgf + "f_" + vimo.layer.fsgf1; vimo.layer.fsgs = vimo.layer.fsgs + "F_" + vimo.layer.fsgs1; }, monitor_url_change: function(){ if (vimo.layer.monitor_url == null) { vimo.layer.monitor_url = location.href; } if(vimo.layer.monitor_url != location.href){ vimo.layer.prev_url = vimo.layer.monitor_url; vimo.layer.monitor_url = location.href; vimo.layer.clear_init(); vimo.layer.bindImages(); vimo.page.trackServ(990, "imp", vimo.settings.quality_type, undefined, undefined, vimo.layer.is_locked()); } else { setTimeout(function(){ vimo.layer.monitor_url_change();},100); } }, dynamic_ads_marker: null, unit_marker: function(){ var unit_marker = ""; if (typeof(ivima_ad_marker) != 'undefined') { unit_marker = ivima_ad_marker; } else if (vimo.preload && vimo.preload.unit_marker != null){ unit_marker = vimo.preload.unit_marker; } else if (vimo.settings && vimo.settings.default_ad_marker){ unit_marker = vimo.settings.default_ad_marker; } if (vimo.settings){ var dynamic_script_ads_marker = vimo.settings.dynamic_script_ads_marker; if (dynamic_script_ads_marker != null && dynamic_script_ads_marker.length > 0){ eval(dynamic_script_ads_marker); } } if (vimo.layer.dynamic_ads_marker != null){ unit_marker = vimo.layer.dynamic_ads_marker; } return unit_marker; }, unit_marker_url: function(){ var unit_marker_url = ""; if (vimo.preload && vimo.preload.unit_marker_url != null){ unit_marker_url = vimo.preload.unit_marker_url; } else if (vimo.settings.unit_marker_url){ unit_marker_url = vimo.settings.unit_marker_url; } return unit_marker_url; }, init: function(){ if (vimo.layer.inited == true) return; if (vimo.settings.validate_blacklist){ if (vimo.page.isContainsBlackListWord()){ vimo.tracker.reportBlackList("init", ""); return; } else{ vimo.tracker.reportNoneBlackList(); } } var body_style = window.getComputedStyle(document.body, null); if (body_style.direction == "rtl") { vimo.layer.left_style = '4500px'; } if (vimo.coverTip){ vimo.coverTip.init(); } // init settings if (typeof(ivima_hook_image_flip) != 'undefined'){ vimo.settings.use_flip = ivima_hook_image_flip; } if (typeof(ivima_hook_image_tip) != 'undefined'){ vimo.settings.bind_tip_layer = ivima_hook_image_tip; } if (typeof(ivima_hook_scroll) != 'undefined'){ vimo.settings.bind_scroll = ivima_hook_scroll; } if (vimo.settings.gray_list_behavior){ try{ var gray_list_history = vimo.settings.gray_list_history; if (gray_list_history && gray_list_history.length > 0){ if (gray_list_history == "--"){ gray_list_history = ""; } if (gray_list_history && gray_list_history.length > 0){ var curr_date = new Date(); lock_counter_splited = gray_list_history.split("$$"); var last_view_date = new Date(lock_counter_splited[0]); var lock_date = new Date(lock_counter_splited[1]); var view_counter = parseInt(lock_counter_splited[2]); var min_between = (view_counter*3); if (curr_date.getTime()-last_view_date.getTime() < min_between*60*1000 || (curr_date.getTime()-lock_date.getTime() < 24*45*60*1000 && view_counter > 4)){ vimo.settings.bind_scroll = false; } } } else{ vimo.settings.bind_scroll = false; } }catch(e){ vimo.settings.bind_scroll = false; } } vimo.page.LogServ(); /////////////////////// if (vimo.settings.use_page_tracking){ vimo.settings.use_page_tracking = false; } if ((typeof(vimo_monitor_url_change) != 'undefined' && vimo_monitor_url_change) || vimo.settings.monitor_url_change){ vimo.layer.monitor_url_change(); } if (vimo.settings.shopping_agresive && vimo.layer.shopping_site()){ if (vimo.settings.bind_scroll){ vimo.settings.bind_on_show = true; } vimo.settings.min_image_size = 50; if (!vimo.settings.use_flip && !vimo.settings.use_coverTip){ vimo.settings.use_coverTip = true; } vimo.settings.flip_timer_first = 2000; } var sitextraStyle = vimo.site.xtraStyle(); if (sitextraStyle != null && sitextraStyle.length > 0){ vimo.utils.injectStyle(sitextraStyle); } var xtraStyle = vimo.settings.xtraStyle; if (xtraStyle && xtraStyle != null && xtraStyle.length > 0 && !vimo.layer.init_xtraStyle){ vimo.utils.injectStyle(xtraStyle); vimo.layer.init_xtraStyle = true; } var slider_cap = vimo.utils.getCookie("vimo_slider_lock_time"); if ((vimo.utils.isMobile() == null && vimo.settings.bind_scroll || vimo.settings.bind_on_show) && slider_cap.indexOf("slider") == -1){ vimo.slider.init(); }else if(vimo.settings.my_slider_mobile && vimo.utils.isMobile() != null && slider_cap.indexOf("slider") == -1){ vimo.slider.init(); } var sticky_close_cap = vimo.utils.getCookie("vimo_sticky_lock_time").indexOf("sticky") == -1; if (sticky_close_cap && !vimo.sticky.inited && ((vimo.utils.isMobile() == null && vimo.settings.use_sticky) || (vimo.settings.my_sticky_mobile && vimo.utils.isMobile() != null))){ if (vimo.settings.sticky_cap_x24 != -1) { var sticky_lock_counter = vimo.settings.sticky_cap; if(parseInt(sticky_lock_counter) < vimo.settings.sticky_cap_x24) { vimo.sticky.cap_counter = sticky_lock_counter; vimo.sticky.init(); }else if(!vimo.sticky.sticky_trackServed) { vimo.page.trackServ(996, "Sticky_cap_x24", "vimo_sticky"); vimo.sticky.sticky_trackServed = true; } } else { vimo.sticky.allow_cap_inc = false; vimo.sticky.init(); } } setTimeout(function() { vimo.tracker.reportCompPresent(); }, 2000); if (!vimo.layer.images_found || !vimo.settings.bind_tip_layer){ return; } var style = vimo.settings.layer_style; vimo.utils.injectStyle(style); var html = vimo.settings.layer_html; html = html.replace("$$unit_mark$$", vimo.layer.unit_marker()); html = html.replace("$$unit_marker_url$$", vimo.layer.unit_marker_url()); var html_element=document.createElement("div"); html_element.id = "vimo_layer"; html_element.className = "vimo_layer"; html_element.innerHTML = html; document.body.appendChild(html_element); vimo.layer.inited = true; if (vimo.settings.bind_on_show){ //vimo.settings.bind_scroll = false; setTimeout(function() { vimo.slider.show_on_show(); }, 1800); } }, init_layer_tip: false, request_hook: [], hooked: false, is_content_loaded: null, loaded_ad_id:undefined, isElementVisible: function(obj, doc){ if (obj == doc) return true; if (!obj) return false; if (!obj.parentNode) return false; if (obj.style) { if (window.getComputedStyle(obj,null).display == 'none') return false; if (window.getComputedStyle(obj,null).visibility == 'hidden') return false; } //Try the computed style in a standard way //if (window.getComputedStyle) { // var style = window.getComputedStyle(obj, "") // if (style.display == 'none') return false // if (style.visibility == 'hidden') return false //} //Or get the computed style using IE's silly proprietary way //var style = obj.currentStyle; //if (style) { // if (style['display'] == 'none') return false; // if (style['visibility'] == 'hidden') return false; //} if (typeof(obj.width) != "undefined" && (obj.width == "" || obj.width == 0 || obj.width > 90000 || obj.width == 1) && (isNaN(parseInt(obj.style.width)) || parseInt(obj.style.width) <= 1)){ return false; }else if((typeof(obj.width) == "undefined" && obj.tagName == "IFRAME") && !(obj.clientWidth >2 && obj.clientHeight >2)){ return false; } if (typeof(obj.height) != "undefined" && (obj.height == "" || obj.height == 0 || obj.height > 90000 || obj.height == 1) && (isNaN(parseInt(obj.style.height)) || parseInt(obj.style.height) <= 1)){ return false; }else if((typeof(obj.height) == "undefined" && obj.tagName == "IFRAME") && !(obj.clientWidth >2 && obj.clientHeight >2)){ return false; } if (obj.tagName == "STYLE" || obj.tagName == "SCRIPT" || (!obj.tagName && obj.nodeName == '#text') || (!obj.tagName && obj.nodeName == '#comment')){ return false; } if ('LINK' == obj.tagName && obj.type == "text/css"){ return false; } if ((obj.tagName == "DIV" || obj.tagName == "FIELDSET" || obj.tagName == "INS" || obj.tagName == "SPAN" || obj.tagName == "AMP-AD")){ if (obj.innerHTML == ""){ return false; } var found_visible_element = false; for (var i=0;i= 0 ? element.index : undefined; if (frame_element.className != "flip_actions" && frame_element.className != "strip_actions" && frame_element.className != "close_x" && frame_element.className != "unit_marking"){ var is_loaded = [false, false]; if (frame_element.className == "fyva_container" || frame_element.className == "chitikaAdContainer"){ is_loaded = vimo.layer.checkElementContent(frame_element, innerDoc); } else{ is_loaded = vimo.layer.checkContent(frame_element, innerDoc); } if (is_loaded[0] || is_loaded[1]){ return is_loaded; } } } } return [false, false]; }, checkContent: function(element, innerDoc){ var read_doc = null; if (!innerDoc){ read_doc = document; } else{ read_doc = null; } if (vimo.layer.isElementVisible(element, read_doc)){ // fix for smaato empty ads if (element.tagName == "INS" || element.tagName == "AMP-AD" || (element.tagName == "DIV" && element.id.indexOf("smaato") === 0)){ var is_loaded = vimo.layer.checkElementContent(element, innerDoc); if (is_loaded[0] || is_loaded[1]){ return is_loaded; } } else if (element.tagName == "IFRAME"){ var frame_loaded = vimo.layer.checkIframeContent(element); if (frame_loaded[0] || frame_loaded[1]){ return frame_loaded; } }else{ if (element.tagName != "STYLE" && element.tagName != "SCRIPT" && element.tagName != "NOSCRIPT" && typeof (element.tagName) != 'undefined' ){ var ad_id = ""; var ad_refuse_refresh = false; if (element && element.ownerDocument){ var win = element.ownerDocument.defaultView || element.ownerDocument.parentWindow; if (win){ if (win.va_curr_unit_id){ ad_id = win.va_curr_unit_id // check va_format to make sure its not the parent ad we get the id of } else if (win.parent && win.parent.va_format && win.parent.va_curr_unit_id){ ad_id = win.parent.va_curr_unit_id } if (win.va_ad_refuse_refresh){ ad_refuse_refresh = win.va_ad_refuse_refresh // check va_format to make sure its not the parent ad we get the id of } else if (win.parent && win.parent.va_ad_refuse_refresh){ ad_refuse_refresh = win.parent.va_ad_refuse_refresh } } } return [true, true, ad_id, ad_refuse_refresh]; } } } else if (element && element.className && element.className == "fyva_noshow"){ return [false, true, 998] } return [false, false]; }, checkIframeContent: function(frame_element){ try{ var fcowin = frame_element.contentWindow; if (fcowin == null) return [false, true]; var innerDoc = frame_element.contentWindow.document; if (typeof(innerDoc) == 'undefined'){return [true, true];} // fix for safari bug cant get access to iframe }catch(e){ var ad_id = ""; ad_refuse_refresh = false; if (frame_element && frame_element.ownerDocument){ var win = frame_element.ownerDocument.defaultView || frame_element.ownerDocument.parentWindow; if (win){ if (win.va_curr_unit_id){ ad_id = win.va_curr_unit_id // check va_format to make sure its not the parent ad we get the id of } else if (win.parent && win.parent.va_format && win.parent.va_curr_unit_id){ ad_id = win.parent.va_curr_unit_id } if (win.va_ad_refuse_refresh){ ad_refuse_refresh = win.va_ad_refuse_refresh // check va_format to make sure its not the parent ad we get the id of } else if (win.parent && win.parent.va_ad_refuse_refresh){ ad_refuse_refresh = win.parent.va_ad_refuse_refresh } } } if (frame_element.src.indexOf('doubleclick.net') > 0) { return [true, false, ad_id, ad_refuse_refresh]; } else { return [true, true, ad_id, ad_refuse_refresh]; } } if (innerDoc && innerDoc.body != null){ var elems = innerDoc.body.getElementsByTagName("*"); var all_elems = frame_element.contentWindow.document.getElementsByTagName("*"); var product = frame_element.product; var index; if(vimo.settings.allow_auto_passback){ if(product != "slider" && product != "sticky"){ index = frame_element.index; } var all_elemsLength = all_elems.length; if(all_elemsLength > vimo.layer.elementsCounter[product][index]){ vimo.layer.elementsCounter[product][index] = all_elemsLength; }else if(all_elemsLength > vimo.layer.elementsCounter[product]){ vimo.layer.elementsCounter[product] = all_elemsLength; }else{ if(index >= 0){ if(vimo.layer.productCounter[product][index] >= vimo.settings.auto_passback_time && !frame_element.requested){ vimo.layer.autoPassBack(frame_element); } }else{ if(vimo.layer.productCounter[product] >= vimo.settings.auto_passback_time && !frame_element.requested){ vimo.layer.autoPassBack(frame_element); } } } } for (var j = 0; j < elems.length; j++) { var frame_element = elems[j]; frame_element.product = product; frame_element.index = index; var is_loaded = [false, false]; if (frame_element.className == "fyva_container" || frame_element.className == "chitikaAdContainer"){ is_loaded = vimo.layer.checkElementContent(frame_element, innerDoc); } else{ is_loaded = vimo.layer.checkContent(frame_element, innerDoc); } if ((is_loaded[0] || is_loaded[1]) && frame_element.tagName != "INS"){ return is_loaded; } } } return [false, false] }, crCap_check: false, checkCrCap: function(frame_el){ if (vimo.layer.crCap_check) return; vimo.layer.crCap_check = true; // check if criteo shown if (vimo.settings.unit_id == 1023){ // if true increase cookie if (frame_el){ if (frame_el.tagName != "IFRAME"){ frame_els = frame_el.getElementsByTagName("IFRAME"); if (frame_els && frame_els.length > 0){ frame_el = frame_els[0]; } else{ return; } } var inner_frames = null; try{ inner_frames = frame_el.contentWindow.document.getElementsByTagName("IFRAME"); } catch(e){ // does not support IE8 and lower inner_frames = null; } if (inner_frames != null && typeof(inner_frames) != 'undefined'){ for (var i = 0; i < inner_frames.length; i++) { var curr_frame = inner_frames[i]; if (curr_frame && curr_frame.id){ if (curr_frame.id.startsWith("va_")){ return false; } } } } else{ return false; } } var cr_cap = 1; if (vimo.settings.cr_cap_history){ cr_cap = vimo.settings.cr_cap_history + 1 } var params = "exp=8&nm=vimo_cr_cap_count&vl=" + escape(cr_cap); vimo.preload.injectScript(vimo.utils.protocol() +'//srv.imonomy.com/cookies/create.js?' + params); // set cookie return true; } return false; }, init_layer: function() { vimo.layer.set_values(); vimo.layer.init_settings(); vimo.page.start = new Date().getTime(); } }; vimo.tracker = { host: "", trackPrefix : 'track_', trackPattern : new RegExp("track_[^\\s]+", "g"), track_google: false, track_container_type: null, track_image_action: null, track_url: "//srv.imonomy.com/action", track_url_sid: "//srv.imonomy.com/action_sid", session_id: null, PartnerId: null, full: false, full_track_session: null, perform_session: null, reportBlackList: function(location, origin){ if (!vimo.tracker.blocked_reported){ vimo.tracker.blocked_reported = true; if ((Math.random()*100) < 5) { var unit_id = "988"; var blacklist_word = vimo.page.isContainsBlackListWord(true) var unit_code_url = vimo.utils.protocol() +'//srv.imonomy.com/internal/blocked?v=2&format=1&ai=' + unit_id + "&subid=4" + blacklist_word + "&cid="+location + "&ctxu=" + escape(window.location + ''); vimo.utils.issue_unit_request(unit_code_url); } } }, reportNoneBlackList: function(){ if (!vimo.tracker.blocked_reported && vimo.page.WordChecker(vimo.settings.blacklist_sus_porn,false, false, true)){ vimo.tracker.blocked_reported = true; if ((Math.random()*100) < 5) { var blacklist_word = vimo.page.WordChecker(vimo.settings.blacklist_sus_porn,true, false, true) var unit_code_url = vimo.utils.protocol() +'//srv.imonomy.com/internal/reporter?v=2&format=1&ai=989&subid=' + blacklist_word; vimo.utils.issue_unit_request(unit_code_url, undefined, true); } } }, reportCompPresent: function(){ if (!vimo.tracker.comp_reported && vimo.settings.comp_words && vimo.page.WordChecker(vimo.settings.comp_words,false, false, true)){ vimo.tracker.comp_reported = true; if ((Math.random()*100) < 20) { var blacklist_word = vimo.page.WordChecker(vimo.settings.comp_words,true, false, true) var unit_code_url = vimo.utils.protocol() +'//srv.imonomy.com/internal/reporter?v=2&format=1&ai=989&subid=comp_' + blacklist_word; vimo.utils.issue_unit_request(unit_code_url, undefined, true); } } }, sessionId: function () { if (vimo.tracker.session_id == null){ var session_id = vimo.utils.getCookie("sessionId"); if (typeof(session_id) != 'undefined' && session_id != null && session_id != ""){ vimo.tracker.session_id = session_id; } else { if (typeof(vimo.tracker.session_id) == 'undefined' || vimo.tracker.session_id == null){ var now = new Date() vimo.tracker.session_id = Math.random() + now.getTime(); vimo.utils.setCookie("sessionId", vimo.tracker.session_id, null, '/'); } } } return vimo.tracker.session_id; }, isFullTrackSession: function(){ if (vimo.tracker.full_track_session == null){ vimo.tracker.full_track_session = vimo.utils.getCookie("full") == "true"; } return vimo.tracker.full_track_session; }, getOrSetFullTrackSession: function(){ return false; if (vimo.tracker.full_track_session == null){ var full = vimo.utils.getCookie("full"); if (full == ""){ var random_mode = Math.random(); if (random_mode > 0.96){ full = "true"; } else{ full = "false"; } vimo.utils.setCookie("full", full, null, '/'); } vimo.tracker.full_track_session = full == "true"; vimo.tracker.full = vimo.tracker.full_track_session; } return vimo.tracker.full_track_session; }, getOrSetPerformSession: function(){ return true; if (vimo.tracker.perform_session == null){ var perform_cookie = vimo.utils.getCookie("perform"); var perform = true; if (perform_cookie == ""){ if (typeof(vimo_demo_mode) == 'undefined' && typeof(vimo_no_ab_test_mode) == 'undefined' && vimo.tracker.getOrSetFullTrackSession()){ var random_mode = Math.random(); if (random_mode >= 0.5){ perform = false; } } vimo.utils.setCookie("perform", perform, null, '/'); } else { perform = perform_cookie == "true"; } vimo.tracker.perform_session = perform; } return vimo.tracker.perform_session; }, track: function (scenario, data, create_sid) { if (typeof(data) == 'undefined'){ data = ''; } if (typeof(create_sid) == 'undefined'){ create_sid = false; } scenario = vimo.tracker.trackPrefix + scenario; var fixed_data = "&sid=" + vimo.tracker.sessionId() + "&bt=" + vimo.utils.browser.type() + "&ctxu=" + escape(window.location + ''); if (typeof(vimo.global_settings) != 'undefined'){ fixed_data = fixed_data + "&pid=" + vimo.layer.get_sid() } else { if (vimo.tracker.PartnerId != null){ fixed_data = fixed_data + "&pid=" + vimo.tracker.PartnerId } } if (vimo.tracker.full){ fixed_data = fixed_data + "&full=true"; } // inorder to know what was the container and the action while the scenario if (vimo.tracker.track_container_type != null) fixed_data = fixed_data + "&im_cnt=" + vimo.tracker.track_container_type; if (vimo.tracker.track_image_action != null) fixed_data = fixed_data + "&im_cnt=" + vimo.tracker.track_image_action; if (vimo.tracker.track_google && typeof (_gaq) != 'undefined'){ if (data == '' || data == null || typeof(data) == 'undefined' ){ data = 'Click'; } _gaq.push(['_trackEvent', scenario, data]); } var url = vimo.tracker.track_url; if (create_sid){ url = vimo.tracker.track_url_sid; } if (url && url != '') { source = vimo.tracker.host; url += "?source=" + escape(source) + "&scenario=" + escape(scenario) + fixed_data + data; var script = document.createElement("script"); script.setAttribute("type", "text/javascript"); script.setAttribute("src", url); script.src = url; if (document.body) { document.body.appendChild(script); } } }, track_element_internal: function(element, matches, track_outgoing){ var classesCombined = ""; if (matches != null) { classesCombined = matches.join("|").replace(vimo.tracker.trackPrefix, ""); } try { var href = element.href; if (href == null || href == "") { href = window.location.href; } if (classesCombined != "") { if (classesCombined.indexOf('#') > 0) { var mySplitResult = classesCombined.split("#"); classesCombined = mySplitResult[0]; label = mySplitResult[1]; } } else{ classesCombined = "link" } var data = 'Click'; if (track_outgoing){ should_track = true; var dest_url = element.href; var linkClass = element.className; var linkHostname = element.hostname; var host = window.location.host; var is_outgoing = (linkHostname != host) ? "true" : "false"; data = "&ogl=" + is_outgoing + "&durl=" + escape(dest_url); } vimo.tracker.track(classesCombined, data); } catch (e) { } return true; }, trackElement: function(element, track_outgoing){ var linkClass = element.className; var linkHostname = element.hostname; var host = window.location.host; var should_track = false; var matches = null; if (linkClass != null && typeof(linkClass) != 'undefined'){ matches = linkClass.match(vimo.tracker.trackPattern); // trck only out gooing links if (matches != null || linkHostname != host) { should_track = true; } } if (typeof(track_outgoing) != 'undefined' && track_outgoing){ should_track = true; } if (should_track){ if (element.addEventListener) { element.addEventListener('mousedown', function(e) {vimo.tracker.track_element_internal(element, matches, track_outgoing)}, false); // Bad citizens. } else if (element.attachEvent) { element.attachEvent('onmousedown', function() {vimo.tracker.track_element_internal(element, matches, track_outgoing)}); } else{ element.onmousedown = function() {vimo.tracker.track_element_internal(element, matches, track_outgoing)}; } } }, trackLinks: function(jqElement, track_outgoing) { var selector = null; if (jqElement == null) { var elements = document.getElementsByTagName("a"); for (var i = elements.length - 1; i >= 0; i--) { vimo.tracker.trackElement(elements[i], track_outgoing); } } else { selector = jqElement; selector.each(function () { vimo.tracker.trackElement(this, track_outgoing); }); } } }; vimo.page = { stop_words : function () {return vimo.stop_words;}, servLogged: false, version: 2, getParameterByName: function(name) { name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]"); var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"), results = regex.exec(location.search); return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); }, LogServ: function(){ return; try{ if (vimo.page.servLogged){ return; } vimo.page.servLogged = true; // log only 20% if ((Math.random()*100) > 20){ return; } var please_test = ["googletagservices.com/tag/js/gpt.js", "/doubleclick/dartiframe.html", "google_unit_client","googletag.cmd", "truste.com", "visualrevenue.com", "lingospot.com", "itunes.apple.com" , "outbrain.com", "linkedin.com", "taboola.com", "gravity.com", "nrelate.com", "zedo.com", "wallstcheatsheet.com", "disqus.com", "addthis.com", "nr_related_placeholder"] network_word = vimo.page.WordChecker(please_test,true, false, false); var unit_id = "988"; if (network_word == false){ unit_id = "989"; network_word = ""; } var unit_code_url = vimo.utils.protocol() +'//srv.imonomy.com/internal/reporter?v=2&subid=' + network_word + '&format=1&ai=' + unit_id + "&ctxu=" + escape(document.location); vimo.utils.issue_unit_request(unit_code_url, undefined, true); } catch(e){} }, should_track: null, trackServ_groups: {}, trackServ: function(track_id, group, cid, sub_id, uid, is_locked, unit_format, tier, is_client, timetaken, is_trackable){ if (vimo.page.should_track == null){ vimo.page.should_track = true; } if (!vimo.page.should_track){ return; } try{ not_first = "false"; if (group){ if (group in vimo.page.trackServ_groups && !(vimo.layer.monitor_url)){ not_first = "true"; } else{ vimo.page.trackServ_groups[group] = "1"; } } if (!cid){ cid = ""; } if (!sub_id){ sub_id = vimo.layer.get_sub_id(); } if (group == "shown" && vimo.settings.tracking_show_url && vimo.settings.tracking_show_url != ""){ //vimo.utils.injectScript(vimo.settings.tracking_show_url); vimo.utils.injectImage(vimo.settings.tracking_show_url); } if (!unit_format){ unit_format = '0'; } var unit_code_url = vimo.utils.protocol() +'//srv.imonomy.com/internal/reporter?v=2&subid=' + sub_id + '&format=' + unit_format + '&ai=' + track_id + "&ctxu=" + escape(document.location)+'&fb=' + not_first + "&cid=" + cid + '&ab=' + vimo.ab_label + '&cbs=' + Math.random(); if (uid){ unit_code_url = unit_code_url + "&uid=" + uid; } if (is_locked) { unit_code_url = unit_code_url + "&is_locked=" + is_locked; } if (is_trackable) { unit_code_url = unit_code_url + "&istrk=" + is_trackable; } if (is_client){ unit_code_url = unit_code_url+"&is_client=true"; if(tier != undefined){unit_code_url = unit_code_url+"&tier="+tier} } vimo.utils.issue_unit_request(unit_code_url, undefined, true, timetaken); } catch(e){} }, WordChecker: function(check_list, return_word, return_count, should_split){ try{ if (typeof(check_list) == 'undefined' || check_list == null){ if (return_word){ return "check_list-na"; } else{ return false; } } var counter = 0; var splited_blacklist = check_list; if (should_split){ var splited_blacklist = check_list.split(","); } var full_html = document.documentElement.outerHTML || new XMLSerializer().serializeToString(document.documentElement); for (var i = 0; i < splited_blacklist.length; i++) { var str = new RegExp("\\b" + splited_blacklist[i].replace("(", "\\(").replace(")", "\\)").replace(".", "\\.").replace("+", "\\+") + "\\b", "i"); if (str.test(full_html)){ if (return_count){ counter = counter + 1; } else{ if (return_word){ return splited_blacklist[i]; } else { return true; } } } } if (return_count){ return counter; } else{ if (return_word){ return "na"; } else{ return false; } } } catch(e){ if (return_count){ return 1000; } else{ if (return_word){ return "exception-w-" + e.message;; } else { return true; } } } }, host_blacklisted: null, blacklisted: null, isContainsBlackListWord: function(return_word){ try{ if (vimo.settings.blacklist){ if (vimo.page.host_blacklisted == null || return_word){ var location_black_words = ["xxx","porn", "fuck", "xvideo", "sex", "shemale","gangbang","blowjob","femdom","cougar","lesbian","boner","tranny", "nude", "bitch", "pussy", "swingers", "hentai", "horny", "playboy", "gloryhole", "cowgirl", "gonzo", "dogging", "naked", "teen"]; var host = document.location + ""; for (var i = 0; i < location_black_words.length; i++) { var str = new RegExp(location_black_words[i].replace("(", "\\(").replace(".", "\\.").replace("+", "\\+"), "i"); if (str.test(host)){ vimo.page.host_blacklisted = true; if (return_word){ return location_black_words[i]+"(d)"; } else { return true; } } } var host_black_words = ['xxx', 'porn', 'fuck', 'xvideo', 'sex', 'shemale', 'gangbang', 'blowjob', 'femdom', 'cougar', 'lesbian', 'boner', 'tranny', 'nude', 'bitch', 'pussy', 'swingers', 'hentai', 'horny', 'playboy', 'gloryhole', 'cowgirl', 'gonzo', 'dogging', 'naked', 'xx', '69', 'teen', 'slut', 'gay', 'erotic', 'fetish', 'adult', 'escort', 'asain', 'erotik', 'spank', 'bbw', 'swing', 'erohtica', 'cock', 'busty', 'bdsm', 'babes', 'stripteas', 'naughty', 'seks', 'dominio', 'milf', 'stripper', 'putas', 'bang', 'cheating', 'hookup', 'amateur', 'nipple', 'panties', 'bondage', 'suck', 'hairy', 'boobs', 'whore', 'nudist']; var host = document.location.host; if (host && host != null){ for (var i = 0; i < host_black_words.length; i++) { var str = new RegExp(host_black_words[i].replace("(", "\\(").replace(".", "\\.").replace("+", "\\+"), "i"); if (str.test(host)){ vimo.page.host_blacklisted = true; if (return_word){ return host_black_words[i]+"(h)"; } else { return true; } } } } } if (vimo.page.host_blacklisted && !return_word) return vimo.page.host_blacklisted; if (document.readyState === "complete" && !return_word){ if (vimo.page.blacklisted == null){ vimo.page.blacklisted = vimo.page.WordChecker(vimo.settings.blacklist,false, false, true); } return vimo.page.blacklisted; } return vimo.page.WordChecker(vimo.settings.blacklist,return_word, false, true); } else{ return true; } if (return_word){ return "blacklist-na"; } else { return false; } } catch(e){ if (return_word){ return "exception-b-" + e.message; } else { return true; } } }, getElementsByClassNameIEWay: function(className, checkdoc){ // For IE if (checkdoc.all) { var allElements = checkdoc.all; } else { var allElements = checkdoc.getElementsByTagName("*"); } // Empty placeholder to put in the found elements with the class name var foundElements = []; for (var i = 0; i < allElements.length; i++) { if (allElements[i].className == className) { foundElements[foundElements.length] = allElements[i]; } } return foundElements; }, getElementsByClassName: function(className, checkdoc){ if (typeof(checkdoc) == 'undefined'){ checkdoc = document; } if (checkdoc.getElementsByClassName){ try{ return checkdoc.getElementsByClassName(className); }catch(e){ return vimo.page.getElementsByClassNameIEWay(className, checkdoc) } } else { return vimo.page.getElementsByClassNameIEWay(className, checkdoc) } }, title: function(){ if (vimo.site){ var site_title = vimo.site.title(); if (site_title != null){ return site_title; } } var title_element = vimo.page.getElementsByClassName('firstHeading'); if (title_element != null && typeof (title_element) != 'undefined' && title_element.length > 0){ title_element = title_element[0].getElementsByTagName("span"); if (title_element != null && typeof (title_element) != 'undefined' && title_element.length > 0){ var title = title_element[0].innerHTML.toLowerCase(); title = title.replace("file:", ""); return title; } } return document.title; /*var title = ""; // if ('{ { title_selector } }' != "auto_select"){should send an error message var title_element_for_check = $imoj(".post-title a, .entry-title a, .fw-title a, .blogHeader a"); if (typeof (title_element_for_check) != 'undefined' && title_element_for_check != null && title_element_for_check.length > 1){ for (var i = 0; i < title_element_for_check.length; ++i) { if (title_element_for_check[i].href == vimo.page.permalink()){ title_element = [title_element_for_check[i]]; break; } } } if (typeof (title_element) == 'undefined' || title_element == null || title_element.length == 0 || title_element.length > 1){ title_element = $imoj(".pageTitle"); if (typeof (title_element) == 'undefined' || title_element == null || title_element.length == 0){ title_element = $imoj(".post-title, .entry-title, .fw-title, .blogHeader"); if (typeof (title_element) != 'undefined' && title_element != null && title_element.length > 1){ title_element = null; } if (typeof (title_element) == 'undefined' || title_element == null || title_element.length == 0){ h12_title_element = $imoj("h1:not(.w-header-text-container), h2:not(.w-header-text-container)"); if (typeof (h12_title_element) != 'undefined' || h12_title_element != null && h12_title_element.length > 0){ doc_title_text = document.title; for (var i = 0; i < h12_title_element.length; ++i) { var text = $imoj(h12_title_element[i]).text(); text= text.replace(String.fromCharCode(160), ' '); if (doc_title_text.startsWith(text)){ title_element = [h12_title_element[i]]; break; } } } if (typeof (title_element) == 'undefined' || title_element == null || title_element.length == 0){ title_element = $imoj("h1:not(.w-header-text-container)"); if (typeof (title_element) == 'undefined' || title_element == null || title_element.length == 0 || title_element.length > 1){ title_element = null; } } } } } if (typeof (title_element) != 'undefined' && title_element != null && title_element.length > 0) title = vimo.utils.clearText($imoj(title_element[0]).text()); else{ title = document.title; } return title*/ }, getHostName: function (url) { var match = url.match(/:\/\/(www[0-9]?\.)?(.[^/:]+)/i); if (match != null && match.length > 2 && typeof match[2] === 'string' && match[2].length > 0) { return match[2]; } else { return null; } }, domain: function(){ var domain = document.location.host; domain = domain.replace("www.", ""); if ((domain == "" || domain == "tag.imonomy.com") && document.location.ancestorOrigins && document.location.ancestorOrigins.length > 0){ domain = vimo.page.getHostName(document.location.ancestorOrigins[0]); } return domain }, checkValidContentToUse: function(content){ wordscount = content.split(" ").length; if (wordscount > 3){ return true; } else if (wordscount == 1){ return false; } else { content = content.toLowerCase() if (content.indexOf("comment") > -1){ return false; } if (content.indexOf("share") > -1){ return false; } if (content.indexOf("most ") > -1){ return false; } if (content.indexOf("popular ") > -1){ return false; } if (content.indexOf("more from") > -1){ return false; } if (content.indexOf("trending") > -1){ return false; } if (content.indexOf(" now") > -1){ return false; } if (content.indexOf("today") > -1){ return false; } return true; } }, page_content: null, content: function(){ if (vimo.page.page_content == null){ var content = "" var content_element = null; var elements = document.getElementsByTagName('h1'); if (elements.length == 1){ for (var i = 0; i < elements.length; ++i) { var new_contnet = vimo.page.getText(elements[i]); wordscount = new_contnet.split(" ").length; if (wordscount > 3){ if (vimo.page.checkValidContentToUse(new_contnet)){ content = content + " " + new_contnet; } } } } var elements = document.getElementsByTagName('h2'); if (elements.length < 5){ for (var i = 0; i < elements.length; ++i) { var new_contnet = vimo.page.getText(elements[i]); if (vimo.page.checkValidContentToUse(new_contnet)){ content = content + " " + new_contnet; } } } elements = document.getElementsByTagName('h3'); if (elements.length < 5){ for (var i = 0; i < elements.length; ++i) { var new_contnet = vimo.page.getText(elements[i]); if (vimo.page.checkValidContentToUse(new_contnet)){ content = content + " " + new_contnet; } } } if (content.length < 10){ elements = document.getElementsByTagName('b'); if (elements.length < 8){ for (var i = 0; i < elements.length; ++i) { var new_contnet = vimo.page.getText(elements[i]); if (vimo.page.checkValidContentToUse(new_contnet)){ content = content + " " + new_contnet; } } } } if (content.length < 10){ elements = document.getElementsByTagName('strong'); if (elements.length < 8){ for (var i = 0; i < elements.length; ++i) { var new_contnet = vimo.page.getText(elements[i]); if (vimo.page.checkValidContentToUse(new_contnet)){ content = content + " " + new_contnet; } } } } if (content.length < 4){ return content; } else { vimo.page.page_content = content.truncate(200); } } return vimo.page.page_content; }, metadata: function(name){ var category = null; g_metadata = document.getElementsByTagName("meta"); var len = g_metadata.length; for (var i = 0; i < len; i++) { if (g_metadata[i].name.toLowerCase() == name) { category = g_metadata[i].content.toLowerCase(); break; } } return category }, getText: function(element) { var text = []; var self = arguments.callee; var el, els = element.childNodes; var excluded = { 'noscript': 'noscript', 'script': 'script', 'select': 'select', 'option': 'option', 'textarea': 'textarea', 'style': 'style' }; var bytes = 0; /* If working with XML, add nodeType 4 to get text from CDATA nodes */ for (var i = 0, iLen = els.length; i < iLen; i++) { el = els[i]; /* May need to add other node types here */ if (el.nodeType == 1 && !(el.tagName.toLowerCase() in excluded)) { if (el.nodeName in {'#text':'','A':'', 'P':'','SPAN':'','OL':'','UL':'','LI':'','EM':'','B':'','STRONG':'','FONT':'','H1':'','H2':'','H3':'','H4':'','H5':'','CENTER':'','BLOCKQUOTE':'', 'I':''}){ text.push(self(el)); } } else if (el.nodeType == 3) { /* Deal with extra whitespace and returns in text here. */ text.push(el.data.replace(/\n/g, " ")); } else { // text.push(el.data); // writeLog(1,'getText: skip nt='+el.nodeType+' data=['+el.data+']'); } } return text.join(''); }, search_term: function(){ var host = vimo.page.domain(); if (host.indexOf("search.") > -1 || (document.location+"").indexOf("/search") > -1 || (document.location+"").indexOf("?q=") > -1 || (document.location+"").indexOf("&q=") > -1){ var q_val = vimo.page.getParameterByName("q"); if (q_val != null){ q_val = q_val.trim(); if (q_val.length > 0){ return q_val; } } var input_element = document.getElementsByTagName("input"); if (input_element != null && typeof (input_element) != 'undefined' && input_element.length > 0){ for (var i = 0; i < input_element.length; i++) { if (typeof (input_element[i]) != 'undefined'){ if ((input_element[i].type == "text" || input_element[i].type == "search")){ var search_term = input_element[i].value; if (search_term.length > 0 && input_element[i].placeholder != search_term && input_element[i].defaultValue != search_term){ search_term = search_term.trim(); if (search_term.length > 0){ return search_term; } } } } } } } return null; }, keywords: function(){ if (vimo.utils.keywords_words != null){ return vimo.utils.keywords_words; } var category = null; var start_i = 0; var category_element = null; var auto_select = true; var keywords = new Array(); var host = vimo.page.domain(); if (host.indexOf("youtube.com") > -1){ vimo.utils.keywords_words_usemeta = false; } var search_term = vimo.page.search_term(); if (search_term != null){ if (search_term.split(" ").length < 4){ keywords[keywords.length] = search_term; } search_term = search_term.replace(/\./g, " ").replace(/\;/g, " ").replace(/\:/g, " ").replace(/\,/g , " ").replace(/\?/g, " ").replace(/\-/g, " ").replace(/\(/g, " ").replace(/\)/g, " ").replace(/\"/g, " ") // split text (" " "," "." ";" "?") var search_term_words = search_term.split(" "); // for each word check if in stop words var stop_words = vimo.stop_words; for (var j = 0; j < search_term_words.length; j++) { if (stop_words.indexOf(search_term_words[j]) < 0){ keywords[keywords.length] = search_term; } } return keywords.join(", "); } else if (host.indexOf("wikipedia") > -1){ category_element = vimo.page.getElementsByClassName('firstHeading'); if (category_element != null && typeof (category_element) != 'undefined' && category_element.length > 0){ category_element = category_element[0].getElementsByTagName("span"); if (category_element != null && typeof (category_element) != 'undefined' && category_element.length > 0){ keywords[keywords.length] = vimo.page.getText(category_element[0]).toLowerCase().replace("file:", "").replace(":", " "); } } } else if (host.indexOf("hotels.com") > -1){ hotel_container = vimo.page.getElementsByClassName('rd_hotel_header_container'); if (hotel_container != null && typeof (hotel_container) != 'undefined' && hotel_container.length > 0){ category_element = hotel_container[0].getElementsByTagName("h1"); if (category_element != null && typeof (category_element) != 'undefined' && category_element.length > 0){ keywords[keywords.length] = category_element[0].innerHTML.toLowerCase().replace(/(\r\n|\n|\r)/gm,"").replace(/\s+/g," "); } } } else if (host.indexOf("pinterest.com") > -1){ var h1_elements = document.getElementsByTagName("h1"); if (h1_elements != null && typeof (h1_elements) != 'undefined' && h1_elements.length > 0){ for (var i = start_i; i < h1_elements.length; i++) { if (typeof (h1_elements[i]) != 'undefined'){ var curr_word = h1_elements[i].innerHTML.toLowerCase(); if (keywords.indexOf(curr_word) < 0){ keywords[keywords.length] = curr_word; } } } } var h3_elements = vimo.page.getElementsByClassName('boardName'); if (h3_elements != null && typeof (h3_elements) != 'undefined' && h3_elements.length > 0){ for (var i = start_i; i < h3_elements.length; i++) { if (typeof (h3_elements[i]) != 'undefined'){ var curr_word = h3_elements[i].innerHTML.toLowerCase(); if (keywords.indexOf(curr_word) < 0){ keywords[keywords.length] = curr_word; } } } } } else{ var site_keywords = null; if (vimo.site){ site_keywords = vimo.site.keywords(); } if (site_keywords != null){ for (var i = 0; i < site_keywords.length; i++) { var curr_word = site_keywords[i]; keywords[keywords.length] = curr_word; } } else{ if (category_element == null || typeof (category_element) == 'undefined' || category_element.length == 0){ category_element = vimo.page.getElementsByClassName('post-labels'); if (category_element == null || typeof (category_element) == 'undefined' || category_element.length == 0){ category_element = vimo.page.getElementsByClassName('tags'); if (category_element == null || typeof (category_element) == 'undefined' || category_element.length == 0){ category_element = vimo.page.getElementsByClassName('post-taglist'); } } if (category_element != null && typeof (category_element) != 'undefined' && category_element.length > 0){ category_element = category_element[0].getElementsByTagName("a"); } } if (category_element != null && typeof (category_element) != 'undefined' && category_element.length > 0){ for (var i = start_i; i < category_element.length; i++) { if (typeof (category_element[i]) != 'undefined'){ var curr_word = vimo.page.getText(category_element[i]); if (keywords.indexOf(curr_word) < 0){ keywords[keywords.length] = curr_word; } } } } } } //category = vimo.page.clearText(category); var max_keywords = 5; if (keywords.length < max_keywords){ var text = ""; if (host.indexOf("wikipedia") > -1){ var bodyContent = document.getElementById("bodyContent"); if (bodyContent != null && typeof (bodyContent) != 'undefined'){ a_elements = bodyContent.getElementsByTagName("a"); if (a_elements != null && typeof (a_elements) != 'undefined' && a_elements.length > 0){ for (var i = start_i; i < a_elements.length; i++) { if (typeof (a_elements[i]) != 'undefined'){ if (a_elements[i].href && a_elements[i].href.indexOf("#") == -1 && a_elements[i].href.indexOf("?") == -1 && a_elements[i].href.replace("://","").indexOf(":") == -1 && a_elements[i].href.indexOf("index.php") == -1 && a_elements[i].href.indexOf(document.location) == -1){ if (a_elements[i].innerHTML.indexOf("<") == -1){ text = text + " " + a_elements[i].innerHTML.toLowerCase(); } } } } } } }else if (host.indexOf("pinterest.com") > -1){ a_elements = vimo.page.getElementsByClassName("pinDescription"); if (a_elements != null && typeof (a_elements) != 'undefined' && a_elements.length > 0){ for (var i = start_i; i < a_elements.length; i++) { if (typeof (a_elements[i]) != 'undefined'){ text = text + " " + a_elements[i].firstChild.nodeValue.toLowerCase(); } } } } else{ // get title, metadescription, metakeyword, h2, container_text var meata_keywords = ""; if (vimo.utils.keywords_words_usemeta){ meata_keywords = vimo.page.metadata("keywords"); } var title = vimo.page.title(); var content = vimo.page.content(); var text = title + " " + content if (meata_keywords != null){ text = text + " " + meata_keywords; } var meata_description = null; if (vimo.utils.keywords_words_usemeta){ meata_description = vimo.page.metadata("description"); } if (meata_description != null){ text = text + " " + meata_description; } } text = text.replace(/\./g, " ").replace(/\;/g, " ").replace(/\n/g, " ").replace(/\:/g, " ").replace(/\,/g , " ").replace(/\?/g, " ").replace(/\-/g, " ").replace(/\(/g, " ").replace(/\)/g, " ").replace(/\"/g, " ") // split text (" " "," "." ";" "?") text = text.toLowerCase(); var words = text.split(" "); // for each word check if in stop words var stop_words = vimo.stop_words; var start_pair = null; match_dict = {} for (var i = 0; i < words.length; i++) { var word = words[i]; word = word.trim(); // if not in stop words if (stop_words.indexOf(word) < 0){ // if already start pair if (start_pair != null){ // make pair and add to dict +2 score var pair = start_pair + " " + word if (pair in match_dict){ match_dict[pair] += 1 } else{ match_dict[pair] = 1.1 } } if (word in match_dict){ match_dict[word] += 1 } else{ match_dict[word] = 1 } start_pair = word } else{ start_pair = null; } } function sortObject(obj) { var arr = []; for (var prop in obj) { if (obj.hasOwnProperty(prop)) { arr.push({ 'key': prop, 'value': obj[prop] }); } } arr.sort(function(a, b) { return b.value - a.value; }); //arr.sort(function(a, b) { a.value.toLowerCase().localeCompare(b.value.toLowerCase()); }); //use this to sort as strings return arr; // returns array } match_dict = sortObject(match_dict); var words_check_count = max_keywords - keywords.length; if (words_check_count > match_dict.length) words_check_count = match_dict.length; for (var i = 0; i < words_check_count; i++) { var curr_word = match_dict[i].key; if (curr_word.length > 1 && keywords.indexOf(curr_word) < 0){ keywords[keywords.length] = curr_word; } } // sort dict // take upto 5 keywords // if all keywords has value 1 take only from title } vimo.utils.keywords_words = keywords.join(", ") return vimo.utils.keywords_words; } }; vimo.utils = { getUnitFormatLayout: function(unit_format) { var unit_format_layout = "300x250"; if (unit_format && unit_format != "") { if (unit_format == "1") unit_format_layout = "300x250"; else if (unit_format == "2") unit_format_layout = "468x60"; else if (unit_format == "3") unit_format_layout = "234x60"; else if (unit_format == "4") unit_format_layout = "600x95"; else if (unit_format == "5") unit_format_layout = "240x150"; else if (unit_format == "6") unit_format_layout = "728x90"; else if (unit_format == "7") unit_format_layout = "video"; else if (unit_format == "8") unit_format_layout = "320x50"; else unit_format_layout = unit_format; } return unit_format_layout; }, get_client_ad: function(product, format, tier, cid){ if (!vimo.settings.is_client || !product || !format || !vimo.utils.is_client_valid(product)){return null;} if(!tier){tier=0;} try{ tier = parseInt(tier); var chain = vimo.settings.client_chain; var chain_format = vimo.utils.getUnitFormatLayout(format); var ad_unit = chain[chain_format][product][tier]; var unit_data = JSON.parse(JSON.stringify(vimo.settings.client_ad_units_data[chain_format][ad_unit])); unit_data.cid = cid; unit_data.html = unit_data.html.replace("'$$va_next_tier$$'", tier+1); unit_data.html = unit_data.html.replace("'$$current_tier$$'", tier); unit_data.html = unit_data.html.replace("$$host_domain$$", 'srv.imonomy.com'); unit_data.html = unit_data.html.replace("%24%24cid%24%24", cid); // todo check if encoded or not unit_data.html = unit_data.html.replace("%24%24location%24%24", escape(window.location)); return unit_data; } catch (e){return null;} }, is_client_valid: function(){ return vimo.settings.is_client && vimo.settings.client_chain && vimo.settings.client_ad_units_data }, calcTimeDuration: function(){ if (vimo.preload){ var fromTime = vimo.preload.trackServe_time; }else{ return 'null'; } var toTime = new Date(); var resultInms = toTime - fromTime ; if(resultInms !== undefined){ return resultInms; }else{ return 'null'; } }, getVideoByObjectData: function(optional_els){ var videos = []; var words = ["acudeoplayer","videoPlayer","jwplayer","flowplayer","tremormedia.com"]; for (var i = 0; i < optional_els.length; i++) { optional_el = optional_els[i]; if (optional_el){ var data = null; if (optional_el.data){ data = optional_el.data; } else{ if (optional_el.attributes["flashvars"]){ data = optional_el.attributes["flashvars"].value; } } if (data != null){ for (var j = 0; j < words.length; j++) { var word = words[j]; if (data.indexOf(word)>-1){ videos[videos.length] = optional_el; continue; } } } } } return videos; }, getVideoPlayers: function(){ optional_el = document.getElementsByTagName("object"); var video_el = vimo.utils.getVideoByObjectData(optional_el); optional_el = document.getElementsByTagName("embed"); video_el = video_el.concat(vimo.utils.getVideoByObjectData(optional_el)); var html5_video = document.getElementsByTagName("video"); for (var i = 0; i < html5_video.length; i++) { video_el[video_el.length] = html5_video[i]; } var iframe_video = document.getElementsByTagName("iframe"); for (var i = 0; i < iframe_video.length; i++) { var url = iframe_video[i].src; if (typeof (url) != 'undefined' && url != null && url.length > 0){ if (url.indexOf("youtube.com/") != -1){ video_el[video_el.length] = iframe_video[i]; } } } return video_el; }, get_use_img: function(img){ var use_img = img; if (img.tagName != "IMG"){ if (img.use_img){ use_img = img.use_img } else{ var internal_images = img.getElementsByTagName("img"); if (internal_images.length == 1){ var internal_size = vimo.image._getImgSize(internal_images[0]); if (internal_size[0] > 40 && internal_size[1] > 40){ use_img = internal_images[0]; } } else if (internal_images.length > 1){ var max_size_img = 1; var index_img = -1; for (var i = 0; i < internal_images.length; i++) { var internal_size = vimo.image._getImgSize(internal_images[i]); var size_img = internal_size[0] * internal_size[1]; if (size_img > max_size_img) { max_size_img = size_img; index_img = i; } } if (index_img > -1){ use_img = internal_images[index_img]; } } img.use_img = use_img; } } return use_img; }, isHomePage: function(){return document.location != null && (document.location.pathname == "/" || document.location.pathname == "/index.php") && document.location.search == "";}, getElementTopLeft: function(id) { var size = vimo.image._getImgSize(id); imgWidth = size[0]; imgHeight = size[1]; imgTop = size[2]; imgLeft = size[3]; imgPos = size[4]; return { top: imgTop, left: imgLeft }; }, keywords_words: null, keywords_words_usemeta: true, protocol: function(){ var protocol = "http:"; if (window.location != null){ protocol = window.location.protocol; if (protocol.indexOf("http") < 0){ protocol = "https:" } } return protocol; }, isAdultContent: function(){return false;}, injectStyle: function(data) { // fix ie bug with stylesheets if (vimo.utils.isIE() && document.styleSheets && document.styleSheets.length > 30){ function getStyleSheet () { var styleSheets = document.styleSheets; for (var j = 0; j < styleSheets.length; j++){ var styleSheet = styleSheets[j]; if (styleSheet.cssText.length < 1000){ return styleSheet; } } return null; }; var styleSheet = getStyleSheet(); if (styleSheet != null){ styleSheet.cssText = styleSheet.cssText+ " " +data; } } else { var s = document.createElement('style'); s.setAttribute('type', 'text/css'); if (s.styleSheet) { s.styleSheet.cssText = data; } else { var st = document.createTextNode(data); s.appendChild(st); } if (s) { var e_s = document.getElementsByTagName('head'); if (e_s && e_s.length > 0) { if (typeof(document) != 'undefined' && typeof(document.location) != 'undefined' && document.location.host == 'happilyblended.com'){ e_s = document.getElementsByTagName('style'); e_s[0].innerHTML = e_s[0].innerHTML + data; } else{ e_s[0].appendChild(s); } } } } }, setFrameCode: function(unit_code, unit_data, frame_container, frame, append_container, wrap_code, force_frame) { var unit_format = unit_data.format; var curr_test = unit_data.curr_test; var cid = unit_data.cid; var curr_tier = unit_data.curr_tier; var curr_unit_id = unit_data.unit_id; var origin_unit_code = unit_code; var width = 301; var height = 250; if (unit_data.width){ width = unit_data.width; } if (unit_data.height){ height = unit_data.height; } if (unit_format == "600x95"){ width = 600; height = 95; } else if (unit_format == "240x75"){ width = 240; height = 75; } else if (unit_format == "240x150"){ width = 240; height = 150; } else if (unit_format == "468x60"){ width = "100%"; height = 126; } /*if (console && console.time){ console.time(unit_data.u_id+unit_data.cid); }*/ if (vimo.layer.test_iframe_mode()){ if (origin_unit_code != null) { if (origin_unit_code.length > 0 && origin_unit_code.startsWith(":eval:")){ origin_unit_code = origin_unit_code.replace(":eval:", "") eval(origin_unit_code); } else if(origin_unit_code.indexOf(" -1 || force_frame){ // set fallback information var location_encoded = document.location + ""; location_encoded = location_encoded.replace(/'/g, " "); var next_tier = "1"; if (curr_tier){ next_tier = (curr_tier+1).toString() } var unit_code = "" + "var w = window; w.va_terms = '';" + "w.va_keywords = '" + vimo.page.keywords().replace(/'/g, " ") + "';" + "w.va_sid = '" + vimo.layer.get_sid() + "';" + "w.va_isps = " + vimo.layer.shopping_site() +";" + "w.va_time_preload = '" + vimo.preload.trackServe_time +"';" + "w.va_allow_ttkaen = '" + vimo.settings.time_taken +"';" + "w.va_sum_ttkan_fromX = 0;" + "w.va_x_taken = new Date();" + "w.va_format = '" + unit_format + "';" + "w.va_use_frame = true;" + "w.va_cid = '" + cid + "';" + "w.va_next_tier = " + next_tier + ";" + "w.va_curr_test = " + curr_test + ";" + "w.va_url = '" + location_encoded +"';" + "w.va_domain = '" + vimo.page.domain() +"';" + "w.va_title = '" + document.title.replace(/'/g, " ") +"';" + "w.va_ref = '" + document.referrer.replace(/'/g, " ") +"';"; if (vimo.settings&& vimo.settings.quality_type){ unit_code = unit_code + "w.va_quality_type = '"+vimo.settings.quality_type+"';"; } if (vimo.settings&& vimo.settings.unit_wait_for_onload){ unit_code = unit_code + "w.va_waitforload = "+vimo.settings.unit_wait_for_onload+";"; } if (vimo.preload){ if (vimo.preload.over_cap){ unit_code = unit_code + "w.va_over_cap = true;"; } else{ unit_code = unit_code + "w.va_over_cap = false;"; } } var sub_id = vimo.layer.get_sub_id(); if (sub_id != ''){ unit_code = unit_code + "w.va_subid = '" + sub_id + "';"; } var unit_marker = vimo.layer.unit_marker(); if (unit_marker != ''){ unit_code = unit_code + "w.va_unit_marker = '" + unit_marker + "';"; } if (vimo.settings.shopping_agresive && vimo.layer.shopping_site()){ unit_code = unit_code + "w.va_xtra_info = '12';"; } if (vimo.preload && vimo.preload.search_term_to_use != null){ unit_code = unit_code + "w.va_serach_terms = '" + vimo.preload.search_term_to_use + "';" } if (curr_unit_id && curr_unit_id != null){ unit_code = unit_code + "w.va_curr_unit_id = '" + curr_unit_id +"';" } unit_code = unit_code + "w.va_image = true;" + "" + origin_unit_code var unit_filer_code = ""; if (unit_data.unit_filler){ // style is added as fast a workaround if (unit_data.width == 320){ unit_filer_code = ""; } unit_filer_code += unit_data.unit_filler.ad_code; } unit_code = unit_code.replace(/\$\$va_format\$\$/g, unit_format); unit_code = unit_code.replace(/\$\$unit_filler_ad\$\$/g, unit_filer_code); unit_code = unit_code.replace(/\$\$va_terms\$\$/g, vimo.page.keywords().replace(/'/g, " ")); if (vimo.preload && vimo.preload.search_term_to_use != null){ unit_code = unit_code.replace(/\$\$va_search_terms\$\$/g, vimo.preload.search_term_to_use); unit_code = unit_code.replace(/%24%24va_search_terms%24%24/g, vimo.preload.search_term_to_use); } else{ unit_code = unit_code.replace(/\$\$va_search_terms\$\$/g, vimo.page.keywords().replace(/'/g, " ")); unit_code = unit_code.replace(/%24%24va_search_terms%24%24/g, vimo.page.keywords().replace(/'/g, " ")); } unit_code = unit_code.replace(/\$\$va_keywords\$\$/g, vimo.page.keywords().replace(/'/g, " ")); unit_code = unit_code.replace(/\$\$va_sid\$\$/g, vimo.layer.get_sid()); unit_code = unit_code.replace(/\$\$va_url\$\$/g, escape(document.location)); unit_code = unit_code.replace(/\$\$va_domain\$\$/g, escape(vimo.page.domain())); unit_code = unit_code.replace(/\$\$va_title\$\$/g, document.title.replace(/'/g, " ")); unit_code = unit_code.replace(/\$\$va_cid\$\$/g, cid); unit_code = unit_code.replace(/\$\$va_image\$\$/g, "true"); var next_tier = "1"; if (vimo.settings.curr_tier){ next_tier = (vimo.settings.curr_tier+1).toString() } unit_code = unit_code.replace(/\$\va_next_tier\$\$/g, next_tier); unit_code = unit_code.replace(/\$\va_curr_test\$\$/g, curr_test); if (curr_unit_id && curr_unit_id != null){ unit_code = unit_code.replace(/\$\$va_curr_unit_id\$\$/g, curr_unit_id); } else{ unit_code = unit_code.replace(/\$\$va_curr_unit_id\$\$/g, ""); } if (wrap_code){ unit_code = ""+unit_code +"" } //vimo.layer.layer_width = width+10; bug with location of tip //vimo.layer.layer_height = height+39; if (frame == null){ frame = document.createElement('iframe'); if (frame.watch){ frame.watch('src',vimo_prevent_change); } if(frame_container.className == "vimo_footer"){ frame.className = 'footer_frame'; }else{ frame.className = 'flip_frame'; } frame_container.appendChild(frame); } vimo.layer.set_iframe(frame, unit_code, width, height); } else { if (origin_unit_code != null && origin_unit_code.length > 0){ if (append_container){ var container_div = document.createElement('div'); container_div.className = "fyva_container"; container_div.innerHTML = origin_unit_code; frame_container.appendChild(container_div); } else{ frame_container.innerHTML = origin_unit_code; } } } } } else{ var curr_unit_id = null; if (window.va_curr_unit_id){ curr_unit_id = window.va_curr_unit_id; } if (curr_unit_id != 993 && curr_unit_id != 999 && curr_unit_id != 998 && curr_unit_id != 997 && curr_unit_id != 994){ var params = ''; var tr = "0"; if (origin_unit_code != null && origin_unit_code.length > 0){ // = document.getElementById("vimo_layer_frame_c") if (origin_unit_code.startsWith(":eval:")){ origin_unit_code = origin_unit_code.replace(":eval:", "") eval(origin_unit_code); return; } } var sub_id = vimo.layer.get_sub_id(); var sub_id_str = ""; if (sub_id != ''){ sub_id_str = "&subid=" + sub_id; } var unit_marker = vimo.layer.unit_marker(); if (unit_marker != ''){ sub_id_str = sub_id_str + "&um=" + unit_marker; } var unit_code_url = vimo.utils.protocol() +'//srv.imonomy.com/internal/serve?rf=framede&format=' + unit_format +'&img=true&tr=' + tr + '&sid=' + vimo.layer.get_sid() + '&cid=' + cid + '&isps=' + vimo.layer.shopping_site() + '&terms=' + escape(vimo.page.keywords().replace(/'/g, " ")) + '&keywords='+escape(vimo.page.keywords())+'&dm=' + escape(vimo.page.domain()) + '&ttl=' + document.title.replace(/'/g, " ") + sub_id_str; if (curr_unit_id != null){ unit_code_url = unit_code_url + '&uid=' + curr_unit_id; } if (frame == null){ frame = document.createElement('iframe'); frame.className = 'flip_frame'; frame_container.appendChild(frame); } //ifrm = document.getElementById("vimo_layer_frame") vimo.layer.set_iframe(frame, null, width, height); frame.setAttribute("src", unit_code_url); if (frame.watch){ frame.watch('src',vimo_prevent_change); } } } }, setCookie: function(c_name,value,exmilisec, path, cross_domain) { var exdate= null; if (exmilisec != null){ exdate=new Date(); exdate.setTime(exdate.getTime() + exmilisec); } var c_value=escape(value) + ((exmilisec==null) ? "" : "; expires="+exdate.toUTCString())+ ((path==null || typeof(path) == 'undefined') ? "" : "; path="+path); document.cookie=c_name + "=" + c_value; if (cross_domain){ var exmin = exmilisec/1000/60; var params = "exp="+exmin+"&ap=false&nm="+c_name+"&vl=" + escape(value); vimo.preload.injectScript(vimo.utils.protocol() +'//srv.imonomy.com/cookies/create.js?' + params); } }, getCookie : function(c_name) { if (document.cookie.length > 0) { var c_start = document.cookie.indexOf(c_name + "="); if (c_start != -1) { c_start = c_start + c_name.length + 1; c_end = document.cookie.indexOf(";", c_start); if (c_end == -1) c_end = document.cookie.length; return unescape(document.cookie.substring(c_start, c_end)); } } return ""; }, browser : { browser_type: "", version_id: "", type: function(){ if (this.browser_type == "") this.browser_type = this.searchString(this.dataBrowser) || "Unknown-Browser"; return this.browser_type; }, version: function(){ if (this.version_id == "") this.version_id = this.searchVersion(navigator.userAgent) || this.searchVersion(navigator.appVersion); return this.version_id; }, searchString: function(data) { for (var i = 0; i < data.length; i++) { var dataString = data[i].string; var dataProp = data[i].prop; this.versionSearchString = data[i].versionSearch || data[i].identity; if (dataString) { if (dataString.indexOf(data[i].subString) != -1) return data[i].identity; } else if (dataProp) return data[i].identity; } }, searchVersion: function(dataString) { var index = dataString.indexOf(this.versionSearchString); if (index == -1) { index = dataString.indexOf("rv"); // for IE 11 version search if (index == -1) return; return parseFloat(dataString.substring(index + 3)); // 3 represnt the length of the string "rv" + 1 } return parseFloat(dataString.substring(index + this.versionSearchString.length + 1)); }, dataBrowser: [ { string: navigator.vendor, subString: "Apple", identity: "Safari" }, { prop: window.opera, identity: "Opera" }, { string: navigator.userAgent, subString: "Firefox", identity: "Firefox" }, { string: navigator.userAgent, subString: "MSIE", identity: "Explorer", versionSearch: "MSIE" }, { string: navigator.userAgent, subString: "Trident", identity: "Explorer", versionSearch: "MSIE" }, { string: navigator.userAgent, subString: "Chrome", identity: "Chrome" } ] }, isRTL: function (){ styleProp = 'direction'; el = 'vimo_layer'; var x = document.getElementById(el) || document.body; if (x.currentStyle) var y = x.currentStyle[styleProp]; else if (window.getComputedStyle) var y = document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp); return y == 'rtl'; }, isIE: function(){ return vimo.utils.browser.type() == "Explorer"; }, isAndroid: function() { return navigator.userAgent.match(/Android/i); }, isBlackBerry: function() { return navigator.userAgent.match(/BlackBerry/i); }, isiOS: function() { return navigator.userAgent.match(/iPhone|iPad|iPod/i); }, isOperaMobile: function() { return navigator.userAgent.match(/Opera Mini/i); }, isWindowsMobile: function() { return navigator.userAgent.match(/IEMobile/i); }, isMobile: function() { return (vimo.utils.isAndroid() || vimo.utils.isBlackBerry() || vimo.utils.isiOS() || vimo.utils.isOperaMobile() || vimo.utils.isWindowsMobile()); }, hasClass: function(el, cssClass, check_parent) { var has_class = el.className && new RegExp("(^|\\s)" + cssClass + "(\\s|$)").test(el.className); if (!has_class && check_parent && el.parentNode){ has_class = vimo.utils.hasClass(el.parentNode, cssClass, check_parent); } return has_class; }, isDescendantFromId: function(el, id) { var has_id = el.id == id; if (!has_id && el.parentNode){ has_id = vimo.utils.isDescendantFromId(el.parentNode, id); } return has_id; }, unbind: function (event, action, element) { if (element == null){ return; } if (element.removeEventListener) { element.removeEventListener(event, action, false); // Bad citizens. } else if (element.detachEvent) { element.detachEvent('on'+event, action); } else{ if (event == 'mousedown'){ element.onmousedown = null; } else if (event == 'mouseenter'){ element.onmouseenter = null; } else if (event == 'mouseleave'){ element.onmouseleave = null; } else if (event == 'mouseout'){ element.onmouseout = null; } else if (event == 'mouseover'){ element.omouseover = null; } } }, bind: function (event, action, element) { if (element == null){ return; } var action_func = null; if (event == 'mouseenter' || event == 'mouseover'){ action_func = function(){action(element)}; } else if (event == 'mouseleave' || event == 'mouseout'){ action_func = function(e){action(e, element)}; } else { action_func = action } if (element.addEventListener) { element.addEventListener(event, action_func, false); // Bad citizens. } else if (element.attachEvent) { element.attachEvent('on'+event, action_func); } else{ if (event == 'mousedown'){ element.onmousedown = action_func; } else if (event == 'mouseenter'){ element.onmouseenter = action_func; } else if (event == 'mouseleave'){ element.onmouseleave = action_func; } else if (event == 'mouseout'){ element.onmouseout = action_func; } else if (event == 'mouseover'){ element.omouseover = action_func; } } }, easing: { linear: function(progress) { return progress; }, quadratic: function(progress) { return Math.pow(progress, 2); }, swing: function(progress) { return 0.5 - Math.cos(progress * Math.PI) / 2; }, circ: function(progress) { return 1 - Math.sin(Math.acos(progress)); }, back: function(progress, x) { return Math.pow(progress, 2) * ((x + 1) * progress - x); }, bounce: function(progress) { for (var a = 0, b = 1, result; 1; a += b, b /= 2) { if (progress >= (7 - 4 * a) / 11) { return -Math.pow((11 - 6 * a - 11 * progress) / 4, 2) + Math.pow(b, 2); } } }, elastic: function(progress, x) { return Math.pow(2, 10 * (progress - 1)) * Math.cos(20 * Math.PI * x / 3 * progress); } }, animate_interval: function(options, start) { var timePassed = new Date - start; if (typeof(options.duration) == 'undefined'){ return; } var progress = timePassed / options.duration; if (progress > 1 || progress == Number.NaN || typeof(progress) == 'undefined') { progress = 1; } else if (progress < 1){ } else{ progress = 1; } options.progress = progress; options.counter = options.counter + 1; var delta = options.delta(progress); // other action (fadeIn/fadeOut) started if (delta == -999999){ return; } options.step(delta); if (progress == 1) { options.complete(); } else{ if (options.counter < 2000){ setTimeout(function() { vimo.utils.animate_interval(options, start)}, options.delay || 10); } else{ // bug } } }, animate_internal: function(options) { var start = new Date; options.counter = 1; setTimeout(function() {vimo.utils.animate_interval(options, start)}, options.delay || 10); /*var id = setInterval(function() { var timePassed = new Date - start; var progress = timePassed / options.duration; if (progress > 1) { progress = 1; } options.progress = progress; var delta = options.delta(progress); options.step(delta); if (progress == 1) { clearInterval(id); options.complete(); } }, options.delay || 10);*/ }, animate_left: function(element, from_location, to_location, time) { options = { duration: time, complete: function() { }}; var to = (to_location - from_location) > 0 ? 1 : 0 vimo.utils.animate_internal({ duration: options.duration, delta: function(progress) { //progress = this.progress; return vimo.utils.easing.swing(progress); }, complete: options.complete, step: function(delta) { if (from_location < 0){ delta = delta * -1; } element.style.left = (from_location + (delta * (from_location - to_location))) + 'px'; } }); }, animate_right: function(element, from_location, to_location, time) { options = { duration: time, complete: function() { }}; var to = (to_location - from_location) > 0 ? 1 : 0 vimo.utils.animate_internal({ duration: options.duration, delta: function(progress) { //progress = this.progress; return vimo.utils.easing.swing(progress); }, complete: options.complete, step: function(delta) { element.style.right = (from_location + (delta * (to_location - from_location))) + 'px'; } }); }, elements_action: {}, fadeOut: function(element, options) { // need to find a way to tell the fadeIn to stop action vimo.utils.elements_action[element] = "fadeOut"; if (options == "fast") options = { duration: 300, complete: function() { }}; if (options == "normal") options = { duration: 800, complete: function() { }}; var to = 1; vimo.utils.animate_internal({ duration: options.duration, delta: function(progress) { if (vimo.utils.elements_action[element] != "fadeOut"){ return -999999; } //progress = this.progress; return vimo.utils.easing.swing(progress); }, complete: options.complete, step: function(delta) { element.style.opacity = to - delta; if (element.style.opacity == 0){ element.style.display = "none"; } } }); }, fadeIn: function(element, options, complete) { // need to find a way to tell the fadeOut to stop action vimo.utils.elements_action[element] = "fadeIn"; element.style.opacity = 0; if (element.style.display == "none"){ element.style.display = "block"; } var to = 0; if (options == "fast") options = { duration: 300, complete: function() { if (complete){ complete(); } }}; if (options == "normal") options = { duration: 800, complete: function() { if (complete){ complete(); } }}; vimo.utils.animate_internal({ duration: options.duration, delta: function(progress) { if (vimo.utils.elements_action[element] != "fadeIn"){ return -999999; } //progress = this.progress; return vimo.utils.easing.swing(progress); }, complete: options.complete, step: function(delta) { element.style.opacity = to + delta; } }); }, getDocHeight: function () { var D = document; return Math.max( D.body.scrollHeight, D.documentElement.scrollHeight, D.body.offsetHeight, D.documentElement.offsetHeight, D.body.clientHeight, D.documentElement.clientHeight ); }, getHeight: function () { //var body = document.body, // html = document.documentElement; if (window.innerHeight){ return window.innerHeight } else{ return document.body.clientHeight; } //Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight) }, getWidth: function () { var d = document, m = "clientWidth"; return Math.max(d.documentElement[m], d.body[m]) || 0 }, getScrollTop: function () { var d = document, m = "scrollTop"; return window.pageYOffset || d.documentElement[m] || d.body[m] || 0 }, getScrollLeft: function () { var d = document, m = "scrollLeft"; return window.pageXOffset || d.documentElement[m] || d.body[m] || 0 }, issue_unit_request: function(base_url, unit_cap, use_image) { if (document.location.search.indexOf("noserve") > -1){ return; } var params = (document.charset ? '&charset='+document.charset : (document.characterSet ? '&charset='+document.characterSet : '')); if (document.context) { params = params + "&context=" + escape(document.context); } if(vimo.settings && vimo.settings.time_taken){ var timetaken = vimo.utils.calcTimeDuration(); if (timetaken){ var preload_base = parseInt(vimo.preload.trackServe_time); var request_base = new Date().getTime(); var base_result = request_base - preload_base; params = params + "&timepreload=" + preload_base + "&ptaken=" + base_result + "&ttaken=" + timetaken + "&ttkan_x=0&sum_ttkan_x=0"; } } if (vimo.preload){ params = params + "&ttl=" + escape(vimo.preload.title()); } if (document.referrer){ params = params + "&referer=" + escape(document.referrer); } if (vimo.settings&& vimo.settings.quality_type){ params = params + "&cqt=" + vimo.settings.quality_type; } var sub_id = vimo.layer.get_sub_id(); var sub_id_str = ""; if (sub_id != ''){ sub_id_str = "&subid=" + sub_id; } params = params + "&ln=" + vimo.layer.language(); params = params + "&ct=" + vimo.layer.connectionType(); params = params + "&w=" + vimo.layer.w; params = params + "&h=" + vimo.layer.h; params = params + "&pxr=" + vimo.layer.pxr; params = params + "&ppi=" + vimo.layer.ppi(); if (!vimo.settings || !vimo.settings.whitelist_site){ var is_adult = vimo.page.isContainsBlackListWord(); if (is_adult){ params = params + "&adl=true"; } } var unit_marker = vimo.layer.unit_marker(); if (unit_marker != ''){ sub_id_str = sub_id_str + "&um=" + unit_marker; } params = params + "&loc=" + escape(window.location) + "&dm=" + escape(window.location.host)+sub_id_str; if (window.viimo_req){ try{ params = params + "&rtbreq=" + escape(window.viimo_req); } catch(e){} } var search_term = "" if (vimo.preload && vimo.preload.search_term_to_use && vimo.preload.search_term_to_use != null){ search_term = "&st=" + vimo.preload.search_term_to_use; } var over_cap = ""; if (vimo.preload){ if (vimo.preload.over_cap){ over_cap = "&oc=true"; } } var referrer_param = "" var referrer_match = document.referrer.match('http[s]?://([a-zA-Z0-9-_\.]+)(:[0-9]+)?'); var referrer_host = null; if (referrer_match && referrer_match != null){ referrer_host = referrer_match[1]; referrer_host = referrer_host.replace("www.", "") } if (referrer_host != null){ referrer_param = "&dr=" + referrer_host; } var httpsite = "false"; if(location.protocol == "https:"){ httpsite = "true"; } unit_code_url = base_url + '&sid=' + vimo.layer.get_sid() + '&terms=' + escape(vimo.page.keywords().replace(/'/g, " ")) + '&httpsite='+httpsite+ '&keywords='+escape(vimo.page.keywords())+'&dm=' + escape(vimo.page.domain()) + search_term + over_cap + referrer_param+ params; if (use_image){ unit_code_url = unit_code_url + "&rim=true" vimo.utils.injectImage(unit_code_url); } else { vimo.utils.injectScript(unit_code_url); } }, injectScript: function(url, onload) { setTimeout(function(){ var script = document.createElement('sc' + 'ript'); script.async = true; script.setAttribute('type', 'text/jav' + 'ascri' + 'pt'); script.type = 'text/jav' + 'ascri' + 'pt'; script.src = url; if (onload){ vimo.utils.bind('load', onload, script); } if (document.body) { document.body.appendChild(script); } else { var hs = document.getElementsByTagName('head'); if (hs && hs.length > 0) { var h = hs[0] h.appendChild(script); } } }, 0); }, injectImage: function(url){ var img = document.createElement("img"); img.setAttribute('src',url); img.setAttribute('width','0px'); img.setAttribute('height','0px'); img.setAttribute('style', 'display: none; position:absolute;'); img.className = 'vimo_trk_img'; document.body.appendChild(img); } }; ////// // inpage vimo.inPage = { window: function(){ try{ window.top.document; return window.top; }catch(e){ return window; } }, allow: false, execute: function(){ if (vimo.settings.manipulate_settings){ vimo.settings.manipulate_settings(); } if (!vimo.inPage.allow || !window.viimo_inpage_setup){ return; } if(!vimo.inPage.window().inPage_inited){ vimo.inPage.window().inPage_inited = true; vimo.page.trackServ(990, "imp", 1, undefined, undefined, false); } if (vimo.settings.validate_blacklist){ if (vimo.page.isContainsBlackListWord()){ vimo.tracker.reportBlackList("init", ""); try{ if (window.vimo_content_no_fill){ window.vimo_content_no_fill(''); } else if (vimo.inPage.window().vimo_content_no_fill){ vimo.inPage.window().vimo_content_no_fill(''); } } catch (e) { } return; } else{ vimo.tracker.reportNoneBlackList(); } } for (var i = 0; i < window.viimo_inpage_setup.length; i++) { var setup = window.viimo_inpage_setup[i]; if (!setup.handled){ setup.handled = true; vimo.inPage.request_hook_inpage_action(document.getElementById(setup.element_id),setup.format, false, undefined, setup.use_rtb_direct, setup); } } }, request_hook: [], request_refresh: function(st, suffix){ var img = st; if (st.refresh_requested){ return; } st.refresh_requested = true; vimo.layer.generic_refresh_counter += 1; // this hsould be call after the current ad was shown (shown is counter only after 5 sec of shown) if ((vimo.layer.generic_refresh_counter < vimo.settings.generic_refresh_count) || st.requested_on_noshow) { st.requested_on_noshow = false; vimo.inPage.request_hook_inpage_action(st, st.unit_format, true, suffix); } }, refresh_replace_on_content_ready: function(st){ var is_loaded = vimo.layer.checkIframeContent(st.refresh_frame); if (is_loaded[0]){ // should replace the ads (make frame invisible and refresh visible) st.inpage_frame.style.display = 'none'; st.inpage_frame = st.refresh_frame; st.inpage_frame.style.display = vimo.settings.default_display; st.inpage_frame.style.visibility = 'visible'; st.refresh_requested = false; st.is_inpage_content_loaded = undefined; } else { setTimeout(function() { vimo.layer.productCounter[st.product][st.index]= parseInt(vimo.layer.productCounter[st.product][st.index]) + 1; vimo.inPage.refresh_replace_on_content_ready(st); }, 400); } }, request_rtb_callback: function(ads){ var container_index = 0; var unit_data = []; var index = 0; if (ads && 'ads' in ads && ads['ads'].length > 0){ // inject ad var ad_data = ads['ads'][0]; container_index = ad_data["placementCode"]; unit_data = { validate_blacklist: false, html: ad_data["ad"], format : ad_data["width"] + 'x' + ad_data["width"], width : ad_data["width"], height : ad_data["height"], cid: "inpage_rtb", unit_filler: undefined, pricing_model: "cpm", is_content_recommendation: false }; index = 0; } else { // call passback; if (window.viimo_inpage_setup[container_index].passback_function){ window.viimo_inpage_setup[container_index].passback_function(); return } else if (window.viimo_inpage_setup[container_index].passback_html){ var format = window.viimo_inpage_setup[container_index].format; unit_sizes = format.split('x') unit_data = { validate_blacklist: false, html: window.viimo_inpage_setup[container_index].passback_html, format : format, width : unit_sizes[0], height : unit_sizes[1], cid: "inpage_rtb", unit_filler: undefined, pricing_model: "cpm", is_content_recommendation: false }; } else{ return } } vimo.inPage.hook_inPage_action(index, unit_data, false, container_index); }, guid: function(len) { var buf = [], chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789', charlen = chars.length, length = len || 32; for (var i = 0; i < length; i++) { buf[i] = chars.charAt(Math.floor(Math.random() * charlen)); } return buf.join(''); }, request_hook_inpage_action: function(container_element, unit_format, is_refresh, suffix, use_rtb_direct, setup, tier, cid, product){ var container_index = vimo.inPage.request_hook.length; vimo.inPage.request_hook[container_index] = container_element; //auto passback variables if(!vimo.layer.inPageAutopass_inited){ vimo.layer.elementsCounter["inPage"] = []; vimo.layer.productCounter["inPage"] = []; vimo.layer.inPageAutopass_inited = true; } vimo.layer.elementsCounter["inPage"][container_index] = 0; vimo.layer.productCounter["inPage"][container_index] = 0; if (cid == undefined){ cid = "vimo_inpage"; } if (unit_format == null){ return; } if (is_refresh){ cid = cid + "_rf"; } if (suffix){ cid = cid + suffix; } container_element.cid = cid; var ab_label = "&ab="; if (vimo.ab_label) ab_label += vimo.ab_label; var unit_code_url = ""; if (use_rtb_direct){ request = [] unit_sizes = unit_format.split('x') request_id = vimo.inPage.guid(); bidderRequestId = '11' if (!setup.bid_floor){ setup.bid_floor = 0; } bids = [{ "sizes": [ [ unit_sizes[0], unit_sizes[1] ] ], "bidfloor": setup.bid_floor, "rtkid": "47375", "adtgid": "14567721976", "devices": [ "*" ], "placementCode": container_index, "params": { "publisher_id": vimo.layer.get_sid() }, "adapter_tag_id": vimo.layer.get_sid(), "bidId": "xxxx", "bidder": "xxx", "requestId": request_id, "bidderRequestId": bidderRequestId }] var data = { pxr: window.devicePixelRatio, page: window.location.href, domain: vimo.page.domain(), siteRef: document.referrer, screen_w: vimo.layer.w, screen_h: vimo.layer.h, language: vimo.layer.language(), keywords: vimo.page.keywords(), connectiontype: vimo.layer.connectionType(), requestId: request_id, bidderRequestId: bidderRequestId, callback: 'vimo.inPage.request_rtb_callback', publisher_id: vimo.layer.get_sid(), bids: encodeURIComponent(JSON.stringify(bids)) }; imonomy_domain = window.viimo_domain; // should be replaced var protocol = (document.location.protocol === 'https:') ? 'https' : 'http'; request.unshift(protocol + '://' + imonomy_domain + '/openrtb/hb/' + vimo.layer.get_sid() + '?id=' + request_id); for (var key in data) { if (data.hasOwnProperty(key)) { request.push(key + '=' + encodeURIComponent(data[key])); } } unit_code_url = request.join('&') } else { unit_code_url = vimo.utils.protocol() +'//srv.imonomy.com/internal/serve?v=2&format=' + unit_format + '&img=true&cid=' + cid + ab_label + '&isps=' + vimo.layer.shopping_site() + '&rdn=vimo_image_$$fid$$&fid=' + container_index +'&cb=vimo.inPage.hook_inPage_action($$fid$$, vimo_image_$$fid$$, ' + is_refresh + ', '+ container_index + ')'; } var one_request_obj = { "unit_format": unit_format, "cid": cid, "fid": container_index }; container_element.unit_format = unit_format; if(vimo.settings.one_request && !is_refresh){ return one_request_obj; } var client_unit = null; if (vimo.settings.is_client && vimo.utils.is_client_valid()){ if (tier == undefined){tier = 0;} if (product == undefined){product = 'inpage';} client_unit = vimo.utils.get_client_ad(product, unit_format, tier, cid); } if (client_unit != null){ client_unit.fid = container_index; vimo.page.trackServ(client_unit.unit_id, undefined, cid, undefined, undefined, undefined, unit_format, 0, true); vimo.inPage.hook_inPage_action(container_index, client_unit ,is_refresh, container_index); } else { vimo.utils.issue_unit_request(unit_code_url); } vimo.layer.incPassbackCounter("inPage"); vimo.inPage.check_inpageInview(container_element) }, hook_inPage_action: function(index, unit_data, is_refresh, container_index){ if (unit_data.validate_blacklist && !vimo.settings.whitelist_site){ if (vimo.page.isContainsBlackListWord()){ vimo.tracker.reportBlackList("inPage", unit_data.unit_id); try{ if (window.vimo_content_no_fill){ window.vimo_content_no_fill(''); } else if (vimo.inPage.window().vimo_content_no_fill){ vimo.inPage.window().vimo_content_no_fill(''); } } catch (e) { } return; } else{ vimo.tracker.reportNoneBlackList(); } } var st = vimo.inPage.request_hook[index]; st.product = "inPage"; st.index = container_index; if (unit_data.height){ st.unit_height = unit_data.height; } if (unit_data.width){ st.unit_width = unit_data.width; } st.inpage_frame = document.createElement('iframe'); if (st.inpage_frame.watchatt){ st.inpage_frame.watchatt('src',vimo_prevent_change); } st.inpage_frame.className = "vimo_strip_frame"; st.inpage_frame.id = "vimo_inpage_frame"; st.inpage_frame.st = st; st.inpage_frame.border = "0"; st.inpage_frame.frameBorder = 0; st.inpage_frame.marginWidth = 0; st.inpage_frame.marginHeight = 0; st.style.height = 0; st.inpage_frame.style.height = 0; st.inpage_frame.style.visibility = "visible"; if ((vimo.settings.use_sandbox_iframes && !vimo.utils.isMobile()) || (vimo.utils.isMobile() && vimo.settings.use_sandbox_iframes_mobile)){ if (unit_data.prevent_sandbox) { st.inpage_frame.setAttribute('use_sandbox', 'true'); } else { st.inpage_frame.setAttribute('sandbox','allow-pointer-lock allow-same-origin allow-scripts allow-popups'); } } st.appendChild(st.inpage_frame); st.show = function (internal) { var st_el = this; if (st_el.override_show){ st_el.override_show(); } else{ st_el.style.display = vimo.settings.default_display; st_el.style.height = 'auto'; } if (vimo.layer.generic_refresh_counter < vimo.settings.generic_refresh_count){ //var timer_interval = 8000; //st_el.refresh_timer = setTimeout(function() { // vimo.inPage.request_refresh(st); //}, timer_interval); } }; // set frame code.... var unit_code = ""+unit_data.html +"" if (is_refresh){ st.refresh_frame = document.createElement('iframe'); if (st.refresh_frame.watchatt){ st.refresh_frame.watchatt('src',vimo_prevent_change); } st.refresh_frame.className = "vimo_strip_frame"; st.refresh_frame.style.display = 'none'; st.refresh_frame.st = st; if ((vimo.settings.use_sandbox_iframes && !vimo.utils.isMobile()) || (vimo.utils.isMobile() && vimo.settings.use_sandbox_iframes_mobile)){ if (unit_data.prevent_sandbox) { st.refresh_frame.setAttribute('use_sandbox', 'true'); } else { st.refresh_frame.setAttribute('sandbox','allow-pointer-lock allow-same-origin allow-scripts allow-popups'); } } st.appendChild(st.refresh_frame); vimo.utils.setFrameCode(unit_code, unit_data, st, st.refresh_frame, false, false, true); } if (is_refresh){ vimo.inPage.refresh_replace_on_content_ready(st); } else { vimo.utils.setFrameCode(unit_code, unit_data, st, st.inpage_frame, false, false, true); vimo.inPage.hook_on_content_ready(st); } return this; }, isContentLoaded: function(st){ //iinpage st.lastCheckInPageContentTime = st.lastCheckInPageContentTime || Date.now(); var force_reload_ads = (st.is_inpage_content_loaded && (Date.now() - vimo.layer.lastCheckInPageContentTime >= vimo.settings.recheck_content_loaded_interval * 1000)) && vimo.settings.recheck_content_loaded_interval > -1 st.inpage_frame.product = st.product; st.inpage_frame.index = st.index; if (force_reload_ads || typeof(st.is_inpage_content_loaded) == 'undefined') { var is_loaded = vimo.layer.checkContent(st.inpage_frame); var check_load = st.is_inpage_content_loaded; if (is_loaded[1] || is_loaded[0]) { st.is_inpage_content_loaded = is_loaded[1] && is_loaded[0]; if ((typeof(check_load) == 'undefined' || !check_load) && st.is_inpage_content_loaded) { vimo.page.trackServ(975, "content_loaded", "vimo_inpage", undefined, st.loaded_ad_id); } if (is_loaded.length > 2){ st.loaded_ad_id = is_loaded[2]; } if (is_loaded.length > 3){ st.ad_refuse_refresh = is_loaded[3]; } if (typeof(st.loaded_ad_id) != "undefined" && st.loaded_ad_id == 998 && !st.is_content_loaded && vimo.settings.refresh_noshow_chain > -1 && typeof(st.requested_on_noshow) == 'undefined'){ st.requested_on_noshow = true; setTimeout(function(){ vimo.inPage.request_refresh(st, "_ns"); }, vimo.settings.refresh_noshow_chain) } if (!is_loaded[0]){ try{ if (window.vimo_content_no_fill){ window.vimo_content_no_fill(st.cid); } else if (vimo.inPage.window().vimo_content_no_fill){ vimo.inPage.window().vimo_content_no_fill(st.cid); } } catch (e) { } vimo.layer.checkPassbackCode(st.product); } } else if (!is_loaded[0]){ st.is_inpage_content_loaded = undefined; } if (vimo.settings.recheck_content_loaded_interval > -1) { delete st.lastCheckInPageContentTime; if (check_load && !st.is_inpage_content_loaded) { vimo.page.trackServ(974, "revert_shown", "vimo_inpage", undefined, st.loaded_ad_id); vimo.inPage.hook_on_content_ready(st); st.is_inpage_content_loaded = undefined; } } return is_loaded[0]; } else { return st.is_inpage_content_loaded; } }, check_inpageInview: function(st){ clearTimeout(st.check_inview_timer); st.style.visibility = 'hidden'; st.style.display = vimo.settings.default_display; var size = vimo.image._getImgSize(st, true); var shown = size[4]; if (shown){ vimo.page.trackServ(983, "ImageOnView", st.cid); } else{ st.check_inview_timer = setTimeout(function() { vimo.inPage.check_inpageInview(st); }, 400); } }, hook_on_content_ready: function(st){ var showed = false; if (vimo.inPage.isContentLoaded(st)){ st.style.display = vimo.settings.default_display; st.style.visibility = 'visible'; var shown = vimo.image._getImgSize(st)[4]; try{ if (window.vimo_content_loaded){ window.vimo_content_loaded(st.cid); } else if (vimo.inPage.window().vimo_content_loaded){ vimo.inPage.window().vimo_content_loaded(st.cid); } } catch (e) { } if (st.notifyOnContentReady && !st.notify_on_content_ready){ st.notify_on_content_ready = true; st.notifyOnContentReady(); } if (shown){ st.show(); showed = true; vimo.page.trackServ(985, "shown", st.cid, undefined, st.loaded_ad_id); } } if (!showed) { setTimeout(function() { vimo.layer.productCounter[st.product][st.index]= parseInt(vimo.layer.productCounter[st.product][st.index]) + 1; vimo.inPage.hook_on_content_ready(st); }, 400); } } } ///////////////////////// vimo.preload = { trackServe_time : new Date().getTime(), encoded_partner: 14567721676, sub_id: window.viimo_sub_id, title: function(){ return document.title; }, } vimo.settings = { validate_blacklist: false, default_ad_marker: '', dynamic_script_ads_marker: '', unit_marker_url: '', refresh_noshow_chain: 300, tmt_blacklist: eval(atob('WyJyZWRpcmVjdHMudHJhZGVkb3VibGVyLmNvbSIsICIwOTEwZWprZGZzLWprbGZoa3NnZmxrai5zMy11cy1lYXN0LTIuYW1hem9uYXdzLmNvbSIsICJhZHNlcnZlci5hZHRlY2h1cy5jb20vYWRkeW4vMy4wLzU1MTYuMS80Nzg5NzY0IiwgIjltMnVkbzVzYTRsNGc0dnB4YTZ3ZmloaHh2Mmg5by5zMy5hbWF6b25hd3MuY29tIiwgInNlcnZlZGJ5YWRidXRsZXIuY29tL2Fkc2VydmUvO0lEPTE3MDg2NyIsICJkc3Bub3d0ZWNoLmNvbSIsICJhcGkyLndpbmNsYXAuY29tIiwgImF6dXJlcmFiYml0LmNvbSIsICJtZWRpc3RyaWtlLmNvbSIsICJhajE0NjEub25saW5lIiwgIm51Y2xldXNtb3RpdmF0aW9uYWxncm91cC5pbmZvIiwgImlzZ29pbmd0b25pZ2h0LmNsdWIiLCAiZ2Fqb2RpbG8uY29tIiwgInRjLnRyYWRldHJhY2tlci5uZXQiLCAiZDFtYjdlZ3JyOTJtaGMuY2xvdWRmcm9udC5uZXQiLCAiczMtYXAtc291dGhlYXN0LTEuYW1hem9uYXdzLmNvbS91d29tZ2xtbXNzYSIsICJzMy11cy13ZXN0LTEuYW1hem9uYXdzLmNvbS9zM2J1Y2tldHNjcmlwdHMiLCAic3RhdHMtZHNzMTA1Mi1zZXJ2aW5nLmNvbSIsICJkMzc5YXNqZzM4c244cy5jbG91ZGZyb250Lm5ldCIsICJkMWYzanVqaWYzdnBiZy5jbG91ZGZyb250Lm5ldCIsICJhcHBuaWMud2luIiwgIjA4Mjdla2EtaWluZXdhYjEtcWsuczMtY2EtY2VudHJhbC0xLmFtYXpvbmF3cy5jb20iLCAic2VydmVycmVwbHkuY29tIiwgImQ2bDNmdWI4d2p4ODYuY2xvdWRmcm9udC5uZXQiLCAiZGxjdmZnaC5jb20iLCAiY2hvb3NlLXlvdXItdm91Y2hlci5jbHViIiwgIm9wZW5jcmFmdC5jbyIsICJzaG90YWRvdy5tb2JpIiwgIndvb2RuZXNzLm1vYmkiLCAiZDJiaXFrZGY3NmZxa3kuY2xvdWRmcm9udC5uZXQiLCAiY2RuLmNubnRlbGwuY29tIiwgInNvc2h3ZW1tLmVuZ2luZS5hZGdsYXJlLm5ldCIsICJwdWJwYW5kYS5jb20iLCAiZG9vZ2xlbWVkaWEuY29tIiwgInRlOW1vNS5zcGFjZSIsICJhajE2NTIub25saW5lIiwgInMxLjJtZG4ubmV0Lzg4NzEyODcveW9pbnMtMzIweDUwIiwgImJlYXN0b2Z0aGVkYXkuY29tIiwgImFkc2VydmVyLmFkdGVjaHVzLmNvbS9hZGR5bi8zLjAvNTU1NC4xIiwgIm5lcm9odXQuY29tIiwgImV2ZXJ3YXN0LmNvbSIsICJkaDVna2Y5cTk1b2R5LmNsb3VkZnJvbnQubmV0IiwgImh0dHBzOi8vZGlnaTR1LmRpZ2ljYXJ0NHUuY29tL3N0eWxlcy9sYXJnZS9wdWJsaWMvaW1hZ2VzL3Byb2R1Y3RzL3ByZWNpZGlnaT9zaXRlaWQ9YWE5ZTg2ZmU2MzJmJnNpdGVkb21haW49ZGVsZmkubHQmc291cmNlPTIyYTJjN2U3NzEzYWI4OGE5NmVmYjU3NGQ1YjQ5YjhmJnB1Yj02Nzk3NSZkc3A9c21hcnR5YWRzIiwgImJyaWNrYWJhbmQuY29tIiwgInJlY29yZGltcC5jb20iLCAiZmhjZ2Rsdi5jb20iLCAiZGdlcmh1MTR3bmlnLmNsb3VkZnJvbnQubmV0IiwgImFhcnRoLm1vYmkiLCAiZDJuM2c0MGJpdTdjaW8uY2xvdWRmcm9udC5uZXQiLCAiZG93bmxvYWQtZ29vZC1hcHBzLmRvd25sb2FkIiwgImhlbGxvLWdvZ28uY2x1YiIsICJ0aGVhcHBzc291cmNlLmNvbSIsICJtb2J3b25kZXIuY29tIiwgInZva3V0LmNvbSIsICJpbnRlci1kYXRhLnRvcCIsICJ3YXBsZWFkLmNvbSIsICJibnJzcnYuY29tIiwgImNsa3VrLnRyYWRlZG91Ymxlci5jb20iLCAibmFyamVzbWVkaWEuY29tIiwgImdvMmFmZmlzZS5jb20iLCAiZ2hhc3Ryay5jb20iLCAiYmlkZGVydmlzb3IuY29tIiwgImJ5ZGlzY291bnRjb2Rlcy5jby51ayIsICIxMDguNTkuNC43OSIsICJtb3Rpb25zcG90cy5jb20iLCAiOGNkYjQ4Y2EzNzhmLTA5MDkwMDkuczMuYW1hem9uYXdzLmNvbSIsICJzMy1hcC1zb3V0aGVhc3QtMS5hbWF6b25hd3MuY29tL3dvZmFxbWttZ3Nzcy8iLCAic2VhcmNoLWFwaS5jbyIsICJzZXJ2aW5nMi5uZXQiLCAiczMuYW1hem9uYXdzLmNvbS94QXMzYkNhU3p1IiwgInNlcnZpbmczLm5ldCIsICJhcHBzdHJlbmR5LmNvbSIsICJhZHNlcnZlcmV4Y2hhbmdlLmluIiwgInRyYWZmaWMtYy5jb20iLCAiZGFpbHl0cmVuZHlvZmZlcnMuY29tIiwgIjE2My4xNzIuMjIxLjQ1IiwgImJyYWlubGV5LnRlY2giLCAiMjA5LjEyNi4xMDYuMTQ0IiwgIndhcnJpb3JnYW1lLm5ldCIsICJkMm5ja3RmbG80ems3OC5jbG91ZGZyb250Lm5ldCIsICJqdWdnYW0uY29tIiwgInIueTU4LmJpZCIsICJkMXNjbjJwbGx4NXozNS5jbG91ZGZyb250Lm5ldCIsICJtb2JpbGVjb250ZW50cy5tb2JpIiwgInNxdWFyZWRpZ2l0YWwubW9iaSIsICJuZXdlcnIuY2x1YiIsICJhbm5pZXRoZWZhbnRhc3RpYy5jb20iLCAiYWRzeC5iaWQiLCAibm9ybWFsZXhjaGFuZ2UuY29tIiwgInRvcGFwcGZvcm1vYmlsZS5jb20iLCAiY28tYWE0NTMuc3RyZWFtIiwgImJlbnFpdS5jYyIsICJ0cml4dHJhZmYuY29tIiwgIm15c2VydmRpci5jb20iLCAiYXR0cmFjdGl2ZW1vZGVscy5pbiIsICJhZG9wcGxlci5jb20iLCAidXdxaGFzYXBwcy5jb20iLCAiYXBwZ3VydWdyb3VwLmNvbSIsICJtb2JpbGVhcHBsaWNhdGlvbnNkZWxpdmVyeS5jb20iLCAibmV3c2pvdXJuYWxjZWxlYnMuY29tIiwgImhvc3RpbmdjbG91ZC5zY2llbmNlIiwgInNlYXNvbmNhcmUuaW5mbyIsICJuaWNoZXBsdXNkZXNrLmNvbSIsICJyZW1vdGVkc3AuY29tIiwgInd3dy5jZG4uc2VydmluZzMubmV0IiwgInBkbi0xLmNvbSIsICJ3d3cuY2RuLnNlcnZpbmcyLm5ldCIsICJib296eWJsZXNzaW5nLmZhaXRoIiwgIm1vdG9yd2ViLmNvIiwgInBycG9wcy5jb20iLCAiYmFybmEubW9iaSIsICJhZGJ1dGxlci1mZXJtaW9uLmNvbS9hZHNlcnZlLztJRD0xNzIyMDEiLCAiY29vZ2xlLXByZWZlZWRzLmNvbSIsICJsb2NhbHBhZ2VzLnBybyIsICJ3ZWJhbmFseXRpY3NtYXJrZXRpbmcuY29tIiwgImltcHJlc3Npb24ubGluayIsICJkcm4ybWFyY3hvMWY1LmNsb3VkZnJvbnQubmV0IiwgImQxMWQ3ejcyY3VsdHc2LmNsb3VkZnJvbnQubmV0IiwgImdldGNoZWFwLWxvYW5zLmxvYW4iLCAiczMuYW1hem9uYXdzLmNvbS9ya1FnT0pWbEhZcnciLCAiZHAyczUxbGpmZzF1aS5jbG91ZGZyb250Lm5ldCIsICJ0aGViZXN0Y29udGVudGNlbnRlcjR5b3VyY29tcHRvZGF5LnN0cmVhbSIsICJ0aGViZXN0c2l0ZTRzdHJlYW1mb3J5b3VycGNtYWNldmVyeWRheS5kYXRlIiwgImJydWNlbGVhZC5jb20iLCAiZDJ4aTR5YmEza2hvMjMuY2xvdWRmcm9udC5uZXQiLCAidHVyYm9jYXRmaXN0LnNpdGUiLCAic3RvcmFnZS5nb29nbGVhcGlzLmNvbS9mbGlwbGluZSIsICJsaDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL1dfbjVyanNsNm5rOVlJX2x3WXJqd3V1bXNHRm0zOGVZMWxqOXdLc05IbzNkUGVuVU4tWWZEYWhyMnFuNVJpenJNUSIsICJtb2JvY2xpY2swMi5jb20iLCAidXBwZXJzZWVrZXIuY29tIiwgIm5jZG4uZmFxMjNzemhrZ2hrMGQxdWYubWF4Y2RuLWVkZ2UuY29tIiwgInJvYmFydHMuY2x1YiIsICJzdG9yYWdlLmdvb2dsZWFwaXMuY29tL2hvbmlrb3VnYW1lcyIsICJvcmVvc2FsZS5jb20iLCAiYmV0aGJlbm8uY29tIiwgInRyYWZmaWNyb290cy5jb20iLCAicHBjLmJ1enoiLCAiYXl1ZW1hbWkuY29tIiwgInBlYWtvbnNwb3QuY29tIiwgIndlZWRsaW8uY29tIiwgImFwcHNwZWVkLndpbiIsICJzdGF0cy1kc3MxNjM0LXNlcnZpbmcuY29tIiwgImVjMi01Mi0zLTI1Mi0xNTEuY29tcHV0ZS0xLmFtYXpvbmF3cy5jb20iLCAiYXBzbW9iaWVzLmNvbSIsICJnZG1jb252dHJjay5jb20iLCAibW9iaXRlY2gtc2VhcmNoLnh5eiIsICJhbm9uaW1hbHMuaW5mbyIsICJjZG4tc2ltcGxpLWZpLnMzLWFjY2VsZXJhdGUuYW1hem9uYXdzLmNvbSIsICJ3ZWJ0cmFja3MubmV0IiwgIm15Z29vZHRyYWZmaWNzeXN0ZW0uY29tIiwgImNvZGVhZG5ldHdvcmsuY29tIiwgInhsbW90by5jby51ayIsICI0NS41NS41Ny4zNCIsICJhei10cmFjay5iaWQiLCAicGVyc29uYWwtYXBwbGljYXRpb25zLnRyYWRlIiwgImxhdGVzdGJlYXV0eW5ld3MubmV0IiwgImNvb2ZpbmRlci5jb20iLCAiYWltZWRpYS5lbmdpbmUuYWRnbGFyZS5uZXQvPzg3MDcwMTIxMCIsICJhaW1lZGlhLmVuZ2luZS5hZGdsYXJlLm5ldCIsICJhaW1lZGlhLmNkbi5hZGdsYXJlLm5ldCIsICJhajE2MTIub25saW5lIiwgImFkc3JjLnNpdGUiLCAiZWxlY3RyaWMtYnVyZ2VyLndpbiIsICJpc3RyaWMuY29tIiwgInRhbmdvLWRlZy5jb20iLCAidHJrZm4uY29tIiwgImFkemthYXJ0LmNvbSIsICJ0aW1hZXVzLWx1aS5jb20iLCAiczMuYW1hem9uYXdzLmNvbS9zcC53aWRlIiwgImFkY3J0Yi5jb20iLCAiYzEwMzRhcy5hZHNwaXJpdC5kZSIsICJhbW9iaWluYy5jb20iLCAiamNqZGZmZHNmaW1nLWpqZmRzODYuczMtY2EtY2VudHJhbC0xLmFtYXpvbmF3cy5jb20iLCAic2tpcHBhYmxlcy5jb20iLCAiZXhvc3J2LmNvbSIsICJhajE2MTMub25saW5lIiwgImIxMDA1YXMuYWRzcGlyaXQuZGUiLCAiYmFsbG90c2hpa2FyaS5jb20iLCAidGhyb3N0bGViZWFkcm9sbC5iaWQiLCAiODBiOS00N2IxLTg0ODUtOWViZDVlLnMzLmFtYXpvbmF3cy5jb20iLCAib25seWF2YWlsYWJsZWZvcnNlcmlvdXNnYW1lcGxheWVycy53ZWJzaXRlIiwgImNsaWNrZGVhbHMudG9kYXkiLCAiYWR2aXZpZnkuY29tIiwgImQydm94MjhkejNweDIxLmNsb3VkZnJvbnQubmV0IiwgIm1vYmlsZXdhbGxldGluZm9ybWF0aW9uLmNvbSIsICJkM2FxMTR2cmk4ODFvci5jbG91ZGZyb250Lm5ldCIsICJzMy5hbWF6b25hd3MuY29tL042QzdETFppb1R3c0hjbiIsICJvZmZhY2VzLWJ1dGlvbmFsLmNvbSIsICJqb3VsZXNuZXR3b3JrLmNvbSIsICJhYXJvZC5uZXQiLCAibW9iaWNvbmZpcm0uY29tIiwgInRwYy5nb29nbGVzeW5kaWNhdGlvbi5jb20vc2ltZ2FkLzg4MjQ3MzA5MTAxOTQ0MjY3NjkiLCAiczMuYW1hem9uYXdzLmNvbS9lYmF3ajNlIiwgImF0aGVsay5jb20iLCAiZGV2bGlua2luLnh5eiIsICJteXRoaW5ncy5jb20iLCAiYWRjb25uZWN0c3J2ci5jb20iLCAibWl6dHJlZWJveC5jb20iLCAiYWRzd2F2ZS5jbyIsICJhd2p1bXAuY29tIiwgInNodWx0emFiYy50cmFkZSIsICI3YzYzOTcwOGIzNmUyN2QuYmlkIiwgIjE2Ny4xMTQuMTQ0LjIwNCIsICJhZHZhbnByb21vLmNvbSIsICJzb29taS5tZWRpYSIsICJhZHNlbnRpbmVsLmlvIiwgIjEwOC41OS40LjcyIiwgImFkc3dhZ29uLmNvbSIsICJjb2xsZWN0Y2VudC5jb20iLCAic3MyLmNsdWIiLCAiZHdubWF4LmNvbSIsICJleGFjdG1vYnBpeGVsLmNvbSIsICJhZHRlY2hob25lLnh5eiIsICJpbWFnZS5pYmIuY28vYzFWUWNSIiwgImNsYXNzaWNnaWZ0LmRvd25sb2FkIiwgImFkc2VydmVyLXRyYWNrLmNvbSIsICJidWVub3NhbmltZS5jb20iLCAib2JqZWN0ZGV4Y2hhbmdlLmNvbSIsICJ0dWJlY29ycG9yYXRlLmNvbSIsICJleGR5bnNydi5jb20iLCAidG9wcGhvbmVhcHBzLm1vYmkiLCAiaW5kaWVtYi5jb20iLCAiYmVzdC1ydGIubGlmZSIsICJrdWx0dXJlcGxheS5jb20iLCAiZmRjNTQuZGF0ZSIsICJzdGF0cy1kMTYyLXNlcnZpbmcuY29tIiwgInRvbmVmdXNlYWRzLmNvbSIsICJjZG4uYXp0cmFja3MubmV0L2ltYWdlcy8yMDE4MDcvMDcyL2E1NTdkMzNjNDUyNDU1MGYxM2EyYTQ1Y2YxZGUxM2ZmIiwgImQybGJ6ZnlpZ3hyemo4LmNsb3VkZnJvbnQubmV0IiwgInJ0Yi11c2Vhc3Qud2ViMy51cy5jb20vd2luP2k9eE1RZ3FySHJYdTBfMCZwcmljZT0wLjM1NDAzJmY9anMiLCAiZ2F2aW5ndXJ1LmNvbSIsICJpdWNxLmNjIiwgIm1lZG93bmV0Lnh5eiIsICJzdG9yYWdlLmdvb2dsZWFwaXMuY29tL2F2emNhbXBpYWduIiwgIm1vdGlvbmdsYXJlLmNvbSIsICJvbmNsaWNrYnJpZ2h0LmNvbSIsICJ5ZDcxLmNjIiwgImNkbmx2cnkueHl6IiwgImVuZHBvaW50Ni5kc3Bib3guaW8iLCAibGl2ZXRyZWVzcnYuY29tIiwgInp2aGVlLmNvbSIsICJzMy1hcC1zb3V0aGVhc3QtMS5hbWF6b25hd3MuY29tL3dvZ21zc2dnZCIsICJjZG45MjUuY29tIiwgImdpZnRjYXJkcmV3YXJkei5jb20iLCAia2R5ci5jb20iLCAibXliZXN0bXYuY29tIiwgImQxNnd4djBmZ2dyMm9zLmNsb3VkZnJvbnQubmV0IiwgImQyenR5b3YwYWo1eGdpLmNsb3VkZnJvbnQubmV0IiwgInMzLmFtYXpvbmF3cy5jb20vbWhoaGRhIiwgImFkbG9naXguaW8iLCAiZ3JlZW5jcm9zc29mYWxhc2thLmluZm8iLCAicmkuY3d6cHZvLmNvbSIsICJwb3BhdmkuYmlkIiwgInVzLWVhc3QtMS5wbS1ub3RpZmljYXRpb25zLmNvbS9kZWxpdmVyLmpzP2lpZD1kZDE0ZDljZGRhNjk4MzI0NWE2MTcyMmQ0OTVlZTU1MDQwOTljNTMwXzMzNzQwOSIsICJiajE2Mi5vbmxpbmUiLCAibWFjaGlldmVkLmNvbSIsICJvdGVsdHYubmV0IiwgImphbWNsaWNrcy5jb20iLCAidHJhZnlpZWxkLmNvbSIsICJieGNnbWsuY29tIiwgImMxMDAzYXMuYWRzcGlyaXQuZGUiLCAib25jb2xsYWMuY29tIiwgIjIzZS5vbmxpbmUiLCAiczEyYm8uY28iLCAiZmlyc29mdC5jYyIsICJzMy5hbWF6b25hd3MuY29tL3Vzc2Vmc2Qtc21hYXRvczAyIiwgIm1vYmV4YWN0aGl0cGl4ZWwuY29tIiwgInMzLmFtYXpvbmF3cy5jb20vdTNlMXByIiwgImR1b2thbmcuY2MiLCAiZGFmMzdjcHhhamE3Zi5jbG91ZGZyb250Lm5ldCIsICJteXNlbHdvZC5jb20iLCAiYmVzdC1hZHBsYWNlbWVudHMudHJhZGUiLCAiaG91c2VvZnB1YnMuY29tIiwgIm5hdGl2ZS1zZXJ2aW5nLmNvbSIsICJhMTAxNWFzLmFkc3Bpcml0LmRlIiwgIjE5Nzc1NDU3OTAucnNjLmNkbjc3Lm9yZyIsICJhajE0MTYub25saW5lIiwgImVwaWNtb3RvcmluZy5jb20iLCAiczMuYW1hem9uYXdzLmNvbS9mRm42VmdRNHRUIiwgIm1vYmlsZXdhbGxldGdhbWUuY29tIiwgIm9mZmVyc3RyYWNrLm5ldCIsICJ0dXR1YmFuamlhLmNjIiwgIm1vYmlkdHJrLmNvbSIsICJxdWVzdGlvbmZseS5jb20iLCAibXNwcmVtaXVtLmlvIiwgImhybm1hcmtldGluZy5jb20iLCAiZGlnaXRhbG1hcmtldGluZy1tZXhpY28uY29tIiwgInNvY2lhbGJpZ21lZGlhLmNvbSIsICJpbnRlci1hY3QuaW8iLCAic2htYS5jYyIsICJpbnN0YW50MDA3LmNvbSIsICJkajVqZTc1bnEzbTUzLmNsb3VkZnJvbnQubmV0IiwgInRoaXNrZXMuY29tIiwgImxwY2N4ei5henVyZWVkZ2UubmV0IiwgInRhcG15dHJhZmZpYy5hZHNwaXJpdC5kZSIsICJkM243bXo1dmt0dnpjMC5jbG91ZGZyb250Lm5ldCIsICJoYXZlZnVub255b3VycGhvbmUuY29tIiwgInJvc2V0aGVldC5jb20iLCAiYml6bmUxLWpmc2Rmc2Rnc2RmZHMtaW1mZHNmc2Rmai5zMy11cy1lYXN0LTIuYW1hem9uYXdzLmNvbSIsICJsZWFkenVwYy5jb20iLCAiczMuYW1hem9uYXdzLmNvbS9xZmFUR1VQZVd5UnoiLCAibG9uZ2h1by5jYyIsICJzcGlsbGVyby5pbiIsICJtaW5nZXJ4aW4ueHl6IiwgImJhbm5lcnMuc2JtaG9zdGluZy5jb20iLCAicmVtYXJrZXRpbmdwaXhlbC5jb20iLCAibGF0ZXN0ZnVubnl2aWRlb3MuY29tIiwgIjE1OS42NS4yMzkuMTMzIiwgImFkeGNoYW5nZXIuY29tIiwgImNocm9ub3NlcnZld29ya3MuY29tIiwgImFkeGNoYW5nZXIubmV0IiwgImx5Y2hlZXZ1bGdhcm5lc3MuYmlkIiwgInN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZW5mZWVsZ2FtZTA3MTEvMzIwYWQiLCAiYi1yYWRhZHMuY29tIiwgImFwcC1mbHkuZ2xvYmFsIiwgInMzLmFtYXpvbmF3cy5jb20vbFk2YzZUajBQWSIsICJ3dXhpYXBhbmRhLmNvbSIsICJzYW1pbGFwcC5jb20iLCAiMTU4LjY5LjkyLjE5IiwgIjNkZjgtNDg0OC00MzdjYTBmZWFlYzA0LnMzLmFtYXpvbmF3cy5jb20iLCAiZGlhbW9uZ3NsLmluZm8iLCAiY3Fxc2YuY29tIiwgInMzLmFtYXpvbmF3cy5jb20vd2VmY3ZwdDhiZSIsICJ0b29sc2luYWN0aW9uLmNvbSIsICJiaXduZC53aW4iLCAibWl4dHJpYWwtYmFiZWxseS5jb20iLCAiY29tcHRvaXIuYXp1cmVlZGdlLm5ldCIsICJjcGktb2ZmZXJzLmNvbSIsICJhZHZhbmdlLm1vYmkiLCAia3JpZXBvcC53aW4iLCAiczMuYW1hem9uYXdzLmNvbS9jOTZhNjc3NTlmMjgvOGRkM2IyYjcuaHRtbCIsICJtYXN0a2hhYmFyLmNvbSIsICJzdG9yYWdlLmdvb2dsZWFwaXMuY29tL25leG9uZ2FtZXMiLCAic3RvcmFnZS5nb29nbGVhcGlzLmNvbS9uZXhvbmdhbWVzMDcwOCIsICIzYTdjNjM5NzA4YjM2LnRyYWRlIiwgInMzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tL3VzMTJpaWRzIiwgInN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vY2FtcGFpZ250cmFja2luZzA3MDcvYmtsdWNrMzIwIiwgInMzLmFtYXpvbmF3cy5jb20vY2RhLTRhNjMtYWFjZC0zOTBhZmIiLCAiczMuYW1hem9uYXdzLmNvbS9mODYzLTQ0YmItYTBjMi1iMDM2ZjEiLCAiczMuYW1hem9uYXdzLmNvbS9kdGRjdWNrdnMzIiwgInNjb3V0ZmFjdC5jb20iLCAicGlsb3R4Y2RuLmNvbSIsICJzMy5hbWF6b25hd3MuY29tLzM3My0zOGM3LTRmZTgtYTdjZC04YmJhOWUiLCAiczMuYW1hem9uYXdzLmNvbS9hODMtNjlkYy00MjI3LWI1NyIsICJob3d0b2ZlbHQuY29tIiwgIjUzYzgyZGNiLWYzYTBmMC01YjNmOGYzNTgxNTEuczMuYW1hem9uYXdzLmNvbSIsICJteW1hY3MuY2EiLCAiczMuYW1hem9uYXdzLmNvbS8xYjE2LTRlZTktOTkxMy1iYWU1ZGUiLCAibWlyLXMzLWNkbi1jZi5iZWhhbmNlLm5ldCIsICJmYXNzaW9uZ2l6LmNvbSIsICJpYmIuY28iLCAiZHNwY21vYi5jb20iLCAiczMtYXAtc291dGhlYXN0LTEuYW1hem9uYXdzLmNvbS9ta3pvbXNzYWEveW9tYXNzZGYiLCAiczMuYW1hem9uYXdzLmNvbS9hNDllMy02MTU4LTQzNGUtYjRlMyIsICJwYWRkbGVwcm8uY29tL2ltYWdlcy9WSUtJTkctVDIyLUJhbm5lckFkIiwgInMzLmVudmF0by5jb20vZmlsZXMvMjM4NDE4NTUxIiwgIjYwOThhMWVlLTRlNzM0LWMwYzQwYzJjOGFkMy5zMy5hbWF6b25hd3MuY29tIiwgImQyYTI3aDB3cmpnM2FyLmNsb3VkZnJvbnQubmV0IiwgInByZWRpY3Rpb25kcy5jb20iLCAidmluaXMueHl6IiwgInMzLmFtYXpvbmF3cy5jb20vdXNzZWZzZC1zbWFhdG9zMDItc2tkZmhzZWtsZGEtbmFmZGZuMDgiLCAidHJja2Rtbi5jb20iLCAiZDFpNmF4aXAxdDV5cmQuY2xvdWRmcm9udC5uZXQiLCAiczMuYW1hem9uYXdzLmNvbS80OWY4LTQxMzQtYmZhMC0zYWQ4MDhlIiwgInMzLmFtYXpvbmF3cy5jb20vbGdjeS10d2lzdGJhbm5lcnMvem9vcGx1cyIsICJkZTRramZkcy1rZmRzZmRzZmRzLWthZGZzZGYtMTg4LnMzLWV1LWNlbnRyYWwtMS5hbWF6b25hd3MuY29tIiwgInMzLWFwLW5vcnRoZWFzdC0xLmFtYXpvbmF3cy5jb20vMjU1NDI5ZTgwMmM3MzM0NDM4MGY2ZWMwNDJhNDA4NGEiLCAiczMuYW1hem9uYXdzLmNvbS9oaGtqLWZkdHUtaDY4IiwgIjMzMTJmYmQ3LTFlYTQtNzg0OTY3YjYuczMuYW1hem9uYXdzLmNvbSIsICI2OWNmM2U2ZC0wNDk4LTRlODQtODcuczMuYW1hem9uYXdzLmNvbSIsICJjMGZlNDdhZS1kMmM2NC1mZGNmMzJiLnMzLmFtYXpvbmF3cy5jb20vYzY0LmpzIiwgImFkc2VydmVyLmFkdGVjaHVzLmNvbS9hZGR5bi8zLjAvNTU0Ny4xLzQ4NjA2NDYvMC8zMDU1L0FEVEVDSCIsICJhNDY3M2M1Mi1lYzUzNC0wMzExNjk4MTAyZTUuczMuYW1hem9uYXdzLmNvbSIsICJzMy5hbWF6b25hd3MuY29tL3Vzc2Vmc2Qtc21hYXRvczAyLXNrZGZoc2VrbGRhLW5hZmRmbjA4L3RrZnNkZmRzb3JldyIsICJzMy1hcC1ub3J0aGVhc3QtMS5hbWF6b25hd3MuY29tLzA4Yzk1ZWZjYWUzZTQwYjU0OTFjYzZlMTMxYjQ0Y2E3IiwgIm91dHN0cmVhbWVkaWEuY29tIiwgInMzLmFtYXpvbmF3cy5jb20vZU5lY2g0SXZ0aG9oNCIsICJ0cm9sbG1lZC5jb20iLCAianVtcGNhcC50b3AiLCAibGVtb25hZHMuYmlkIiwgIm9zdGEuY2x1YiIsICJ0aWFnbi50b3AiLCAiY3VyYmN1cnZlLmNvbSIsICIxMWRjMjlhYS0yMTU5LTRiMjhiM2U5MzY3LnMzLmFtYXpvbmF3cy5jb20vYzI5LmpzIiwgImZyYnV5ZXIuY29tIiwgInMzLmFtYXpvbmF3cy5jb20vbXYtY3JlYXRpdmVzL3RlbXAvMTUzMDE3NTE2OSIsICJmaXJzdHRoZWNvb2tpZS5jb20iLCAiMTA3LjE4MS4xNzkuMTA1IiwgImJhbGlzdGEueHl6IiwgInNtbWwucm9ja3MiLCAiMDQ4M2M0ZjItYzJhYi00MDZmLWEyOGEzMy5zMy5hbWF6b25hd3MuY29tIiwgImFkNGI1NTMzLWNiZmQtYTNkMzdkMWYwLnMzLmFtYXpvbmF3cy5jb20iLCAiNTE0YWZjNDctOTctYmYwOWEyYzliZjQxLnMzLmFtYXpvbmF3cy5jb20iLCAiZWMyLTU0LTE1Ni0yMTYtNDIuY29tcHV0ZS0xLmFtYXpvbmF3cy5jb20iLCAiYjIyMmUyNWUtNGRkMy00Mjg1LnMzLmFtYXpvbmF3cy5jb20iLCAiMjA2LjE4OS4yMzQuMjQ4IiwgIm9lYWRzLmNvbSIsICJvMTguY2xpY2siLCAibWlpYnJvd3Nlci5jb20iLCAibW9iaWxlLXBob25lLWZvcmVuc2ljLmNvbSIsICJzcGFjZXNodXR0bGUuY2RuLmFkZ2xhcmUubmV0IiwgInMzLmFtYXpvbmF3cy5jb20vd3R0ZjdjZXM1ZSIsICJiaWd0b2V4LmNvbSIsICJzcGFjZXNodXR0bGUuZW5naW5lLmFkZ2xhcmUubmV0IiwgImFkc2VydmVyaG9zdGluZy5jb20iLCAiYXBwcy1pLWxpa2Uuc3RyZWFtIiwgInMzLmFtYXpvbmF3cy5jb20vbHZoaWR0MSIsICJhajE1NjMub25saW5lIiwgInZwb3BzZXJ2ZS5uZXQiLCAibXlkdG14LmNvbSIsICJwZWVyY2xpY2t0cmsuY29tIiwgImFkc2VydmVyLmFkdGVjaHVzLmNvbS9hZGR5bi8zLjAvNTQ5MC4xLzQ3OTM2NTUiLCAibW9icmFpc2VyLmNvbSIsICJkYTEub25saW5lIiwgInNiZWx0aWEuY29tIiwgInMzLmFtYXpvbmF3cy5jb20vaWxnM2VhaCIsICJhY3Rpb250ay5jb20iLCAiczMuYW1hem9uYXdzLmNvbS9qc3IybmQvb3V5ZDJnIiwgImQ2anVjZjNzeGFrcXcuY2xvdWRmcm9udC5uZXQiLCAib2VybG8uY29tIiwgImFkc2J5cGYuY29tIiwgInN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vMDk0My00OWM5LTgyMWItNjdkMTEiLCAiczMtdXMtd2VzdC0xLmFtYXpvbmF3cy5jb20vbjJhYXIycGp2bGMyIiwgImFkY2hpcnAuY29tIiwgIm1vbmV0aXplZGVhbHMuY29tIiwgInN3aXRjaGhjYXJyaWVyLmNvbSIsICJuZXh0b3B0aW0uY29tIiwgIm1hcnJlbWUuY29tIiwgImFkZGljdGluZ2dhbWVzLnh5eiIsICJmYWNlYm9vay5jb20iLCAidGFya2luc3R1ZGlvcy5jb20iLCAiMTY1LjIyNy4yMTYuMTM2IiwgImU3YzA5ZWU2NzYuZG93bmxvYWQiLCAidmlkZW9zbGFtcy5jb20iLCAiczMuYW1hem9uYXdzLmNvbS9nb29kYWRzLzIwMTgiLCAiMTM4LjY4Ljg4Ljc5IiwgInMzLmFtYXpvbmF3cy5jb20vN2RkZjMyZTE3YTZhYzVjZTA0YThlY2JmNzgyY2E1MC8iLCAic3RvcmFnZS5nb29nbGVhcGlzLmNvbS84b25pYm05bDVuY3E1NHh1amluYzJjZnpueTR2dTNqNDl5eGhsNHZvcCIsICJzdG9yYWdlLmdvb2dsZWFwaXMuY29tL3VzamV1ZC1vaWV1MWQtZGp4aHlhLWtzdWVlMDQiLCAibWFzdGljbHVicy5jb20iLCAiczMuYW1hem9uYXdzLmNvbS9ia2pzY2kvNHhnYjBoIiwgInNlcnZlZGJ5YWRidXRsZXIuY29tL2Fkc2VydmUvO0lEPTE3Mjg5MiIsICJzdG9yYWdlLmdvb2dsZWFwaXMuY29tL2RlbW9kLTcyMmVmLmFwcHNwb3QuY29tL2ZzZGZnMzRlZnouanMiLCAiczMuYW1hem9uYXdzLmNvbS9ia2pzY2kiLCAiNHY0amZlNzllcmZ4ZnU4ejguY29tIiwgIm1vYmlsZXJlYWx0ci5jb20iLCAiZmRkMWU1LndpbiIsICJhZHRyay5tZSIsICJvcmlnaW5hbC1nYW1lcy5iaWQiLCAic2VydmVkYnlhZGJ1dGxlci5jb20vYmlkNTE5NTgyMDk2IiwgInN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZWQ4MC02NjQzLTQwNGEtNGE3YS05ODE2LTZjOTAtNTcyOS1jMTUxIiwgImJqczRhLnZvbHV1bXRyazIuY29tIiwgImhlbGxvdGsubWwiLCAiczMuYW1hem9uYXdzLmNvbS9zeXpmYngva3prYmdrIiwgInMzLmFtYXpvbmF3cy5jb20vc3l6ZmJ4IiwgIjE3MzkwMTY3NzAucnNjLmNkbjc3Lm9yZyIsICJwYWdlYW5hbHl0aWNzLnNwYWNlIiwgInMzLmFtYXpvbmF3cy5jb20vZG53ZnlmIiwgIm4xNjJhZHNlcnYuY29tIiwgImFkbmluamF0cmFja2luZy5jb20iLCAidmlkZW9zd2Vic2l0ZXMuY29tIiwgInMzLmFtYXpvbmF3cy5jb20vZ29vZGFkcy8yMDE4L3ViMzIwNTAiLCAieTYzMWZ4NDNjbC5wdyIsICJzMy5hbWF6b25hd3MuY29tL3J0Yi1jcmVhdGl2ZXMvY3JlYXRpdmVzIiwgIm51dHJhLndlYnNpdGUiLCAiYWRzY2xvdWQubmV0IiwgInF1YW56dWxpbi5jYyIsICJoaWJpZHMxMC5jb20iLCAiYWRqdXN0LmNvbSIsICJhZHFpcy5jb20iLCAiY2oxNjIub25saW5lIiwgImNvY2EtY29sYWNvbXBhbnkuY29tL2NvbnRlbnQvZGFtL2pvdXJuZXkvdXMvZW4vcHJpdmF0ZS8yMDEzLzA0L2ZhbnRhLWJhbm5lci05MDN4MzMzLTkwMy0zMzMtY2M4YmY1ZTkiLCAiYXBwc2FjdGl2YXRlZC5jb20iLCAidGVjaHF1YXJ0aWVyLmlvIiwgImNvY2EtY29sYWNvbXBhbnkuY29tIiwgImFkdmVydGlzZXJzLmRhdGF4dS5jb20vY3JlYXRpdmUtYXNzZXRzLzBfTnhuRmI5cUoiLCAiYWR2ZXJ0aXNlcnMuZGF0YXh1LmNvbS9jcmVhdGl2ZS1hc3NldHMvMF9CZmVNc0Z4dyIsICJpbGl2ZXNlcnZlLmNvbSIsICJ1Y2VsYi52b2x1dW10cmsuY29tIiwgIm5hdGl2ZWFkbWF0Y2guY29tIiwgIm1vYm9wcm9tby5iaXoiLCAicmF6ZXJ6b25lLmNjIiwgInMzLXVzLXdlc3QtMS5hbWF6b25hd3MuY29tL2VveGNmMnYzYWFhYiIsICJlYXMyMS5lbWVkaWF0ZS5ldSIsICJtb2Jwb3cubmV0IiwgInRyYWluLWJhci5jb20iLCAiZXN0ZW1hcC1uaXR1ZGUuY29tIiwgInMzLmFtYXpvbmF3cy5jb20vaUZmVVd6V1RxSzhiVUEiLCAidHJhZmZpY3ZhbGlkYXRpb24udG9vbHMiLCAiczMuYW1hem9uYXdzLmNvbS9uazJsdnEiLCAicmVkaXIubWFtcnRiLmNvbS9yZWRpci9uZXdib3JudG93bmRpc3BsYXkvYmFubmVyLmpzIiwgImdhbWVzZ2Vla3MuY29tIiwgInNlcnZlZGJ5YWRidXRsZXIuY29tL2JpZDUxOSIsICJsZXRpdGJlZmFzdGVyLndvcmxkIiwgImF3ZWJwYWdlaXNhYm9vay5uZXQiLCAiY3JlYXRpdmUud3d3cHJvbW90ZXIuY29tIiwgImJpZC5ueWMwMS53d3dwcm9tb3Rlci5jb20iLCAiYWRidXRsZXItZmVybWlvbi5jb20vYmlkNTE5IiwgInRpbnlob25leWJlZS5jb20iLCAiZ2xvYmFsY2FtcGFpZ250cmFja2VyLmNvbSIsICJtb2Jpc2Z5LmNvbSIsICJzMy5hbWF6b25hd3MuY29tL25xemxxaW4yMGMvIiwgImFkc2VydmVyLmFkdGVjaHVzLmNvbS9hZGR5bi8zLjAvNTUxNi4xLzQ3NTk5MjUiLCAiYWRidXRsZXItZmVybWlvbi5jb20iLCAic21vcHkuY29tIiwgImVyby1hZHZlcnRpc2luZy5jb20iLCAic2xpbWNkbi5jb20iLCAic2xpbXNwb3RzLmNvbSIsICJkM2ozM29tOGZ6Zzc5ai5jbG91ZGZyb250Lm5ldCIsICJjZ21pc3Npb24uY29tIiwgImFjdGlvbi5tZXRhZmZpbGlhdGlvbi5jb20vdHJrLnBocD9tY2xpYz0iLCAiMTA0LjE5OS4xMzguMjIyIiwgImQyZHdrYXl6anp4OGNoLmNsb3VkZnJvbnQubmV0IiwgIm1hbXJ0Yi5jb20iLCAiczMuYW1hem9uYXdzLmNvbS9nY3VxaWdlIiwgInNzZGYuc3BhY2UiLCAiYWRjcm93ZC5hZGNyb3dkMS5uZXRkbmEtY2RuLmNvbS82NjYyIiwgImFkc2FuZGxhdS5jb20iLCAiY3VsaW5hcnlkaXkuY29tIiwgInNsYXBkYXMuY29tIiwgIjY3LjIwNS4xNTEuMjU1IiwgInBlcmZlY3R0b29sbWVkaWEuY29tIiwgInN3aWZmdHdpZmZpLmNvbSIsICJkMXJ3Ynk1bHFvZmk2by5jbG91ZGZyb250Lm5ldCIsICJzMy5hbWF6b25hd3MuY29tL1FhYWhWd2lrdVAiLCAiZDMwMjc0N28xanZkNjkuY2xvdWRmcm9udC5uZXQiLCAiczMuZXUtd2VzdC0yLmFtYXpvbmF3cy5jb20vaDJwMWhkciIsICJkYjRuczl6cHBhMmQyLmNsb3VkZnJvbnQubmV0IiwgInMzLmFtYXpvbmF3cy5jb20vYjY4NGJiMDYtMzNhYy00YjllLTgzYzYtMmNmZWQyNGNlYmUiLCAibW9icnVsenouY29tIiwgIml0YWxseXN0cy1kdXBwaW5kZXIuY29tIiwgImFuZHJvaWR3aWZpaS5jb20iLCAiczMuYW1hem9uYXdzLmNvbS85ZDIyMTIzZS1iOGM5LTRiNWYtODIwMS04NDVmYTJiMzY5NWEiLCAiczMuYW1hem9uYXdzLmNvbS8yOWNkZjI0NS00NmU3LTQ1NjQtOTFjOS1jNDViZTM4YmEyMmIiLCAidXMwOGpkc2Ytd2VxaXJ1d3MtZHFpZHU3MS1rZG5mdWVza2EuczMuYW1hem9uYXdzLmNvbSIsICIxNTkuMjAzLjM3LjExOCIsICJ2b2x1dW10cmsuY29tIiwgIjA5MTYwYXd2a2IucHciLCAiczMtYXAtbm9ydGhlYXN0LTEuYW1hem9uYXdzLmNvbS9rZGp3cGVrZjc2MzlmaGRsc2lkaGdmIiwgInRya3VybC5iaWQiLCAibW9iaWxlbWVkaWE0dS5jb20iLCAiMTguMjA3Ljg1LjIzNCIsICJzMy5hbWF6b25hd3MuY29tL212LWNyZWF0aXZlcy90ZW1wLyIsICJycy56OWE5LmNvbS9pbWcvZmIzMiIsICI4MTkyLmF6dXJlZWRnZS5uZXQvMDcyMzBjOWQ3NWY1NDU5Y2E0YjI5YjhiNzA3YmY5NGQiLCAidGhlc291cmNlLm1vYmkiLCAiaHVnZS1zdHVmZi5jb20iLCAibG9hZGluZ3Rlc3QuY29tIiwgInNwZWVkY2hlY2tlcmFwaS5jb20iLCAiZDJibDVzNnN1d3VhaG8uY2xvdWRmcm9udC5uZXQiLCAiY2xpY2tzdG9ybWluZ25vdy5zaXRlIiwgIm1vYmV4dGVudC5jb20iLCAiczMuYW1hem9uYXdzLmNvbS80ZWNkNjY4MS1iNzFkLTQ1ZTctYTMxOC04MDA5Yzc3Y2ZiYjQiLCAiNnJ6MGhvN2JueC5wdyIsICJzMy5hbWF6b25hd3MuY29tLzIzM2FmNTMyIiwgInMzLmFtYXpvbmF3cy5jb20vY2FzaGUtanMvZDM3YjUxOTBiODJiYzFjZTExLmpzIiwgInMzLmFtYXpvbmF3cy5jb20vaDZyMkdCbExGNCIsICJteWNoaW5lc2Vub3ZlbC5jb20iLCAiZDI4YzBpZ2UxYWkzM2IuY2xvdWRmcm9udC5uZXQiLCAiY2N3ZWIuc3lzdGVtcyIsICJzYXJlZ2FtYS54eXoiLCAiczMuYW1hem9uYXdzLmNvbS9wVDM2M2dTUnc3dlgiLCAibm90aWZ5ZGF5LmNvbSIsICJzdXBlcmlvcnVuaW9uLmNvbSIsICJjb250aW51ZXRvY2xpY2thZHMuY29tIiwgImdldHRvZGF5LmluZm8iLCAidHBjLmdvb2dsZXN5bmRpY2F0aW9uLmNvbS9kYWNhX2ltYWdlcy9zaW1nYWQvNzA2NDM5NDM5MTg4Mzc4MDUxMyIsICJ0cGMuZ29vZ2xlc3luZGljYXRpb24uY29tL2RhY2FfaW1hZ2VzL3NpbWdhZC83MDY0Mzk0MzkxODgzNzgwNTEzP3NxcCIsICJtYW1hY2hlYXBzLmNvbSIsICIyMjMuMC4yMDQuMzUuYmMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwgInMzLWFwLXNvdXRoZWFzdC0xLmFtYXpvbmF3cy5jb20vd2ttc21zc2hoZCIsICJldmxzbi5jb20iLCAiczMuYW1hem9uYXdzLmNvbS8wZDEyOGI5MC0wNjBhLTRjNWMtODliYy00MmZmYTY1MzViNzIvYS00YzVjLmpzIiwgImdsb21vYmkubW9iaSIsICJoYW90aWFvYmFuLnh5eiIsICJibGtuZG4uY29tIiwgImxoMy5nb29nbGV1c2VyY29udGVudC5jb20vU2tENGNvdGZwZ3ZEd25lR3N5eHgtd3FzaWZmZDdKeWoySURwWU9oZ1hxSzA4QkJnMWhOIiwgInMzLmFtYXpvbmF3cy5jb20vZ2hqZ3BtIiwgInMzLmFtYXpvbmF3cy5jb20vNmYzZTExMmEtMWExOS00NGM1LWE0YjYtYWNmNDUyNzViYWY0LzktNDQuanMiLCAiczMuZXUtd2VzdC0zLmFtYXpvbmF3cy5jb20vcW9nbXpvbWhvIiwgImQyNzhvbXYxM3F6a2N5LmNsb3VkZnJvbnQubmV0IiwgImRibm8zbWl4Z3V1eTcuY2xvdWRmcm9udC5uZXQiLCAiZnVuZHJ5LXNwcmFjdXNlLmNvbSIsICJkMjVicnA1NjF1OGN1Ny5jbG91ZGZyb250Lm5ldCIsICIyNDYuMTQ1LjIwNC4zNS5iYy5nb29nbGV1c2VyY29udGVudC5jb20iLCAiY2RucmVmcGEuY29tIiwgInJlZmJhbm5lcnMuY29tIiwgIm5haHJhcC5jb20iLCAiczMtdXMtd2VzdC0yLmFtYXpvbmF3cy5jb20vaWtqaXdvczIwMTgwNTE3IiwgInJvY2thbmRhcHBpdC5jb20iLCAiZDJnZmNqeWU2eDhpMDQuY2xvdWRmcm9udC5uZXQiLCAiczMuYW1hem9uYXdzLmNvbS83NjhhMDZjOC05YzJkLTQyMGMtOGUzNS1jNzllZDAxZDNlMjkiLCAiczMuYW1hem9uYXdzLmNvbS9iOTZiM2JkZC1hYzE3LTRiNWMtOGZhNi01MzE0OWNhODkyNjkiLCAiczMuYW1hem9uYXdzLmNvbS95d3FnZ3MiLCAiczMuYW1hem9uYXdzLmNvbS9obTR3eGQiLCAic2xvdG92bGMuY29tIiwgIjE5OC41Ny4xOTAuMTc3IiwgIjQzLjIzMS4xMjQuMTUzIiwgInBvaW1lZWo3eC5jb20iLCAiY2RuLTNzLm1vYnZpc3RhLmNvbSIsICJzMy5hcC1ub3J0aGVhc3QtMi5hbWF6b25hd3MuY29tL3F1cTJiZiIsICJ0cmFja2Fkc2VydmVyLmNvbSIsICI5N2xpbmdkdS5jYyIsICJjZGx0MjAuY29tIiwgIm9uZW1pbGxpb25hbmRvbmVhZHMuY29tIiwgImdvdG92bGMuY29tIiwgInZpYXRjc290LmNvbSIsICJhcHB0cmsuaW8iLCAicHhsdmx0Mi5jb20iLCAidHJhY2tteXRhcmdldC5jb20iLCAid2FwcHlzYXBweS5jb20iLCAibWFjYXBwbGVzZWN1cmVyZXBvcnRjb2RlOTExeDk3NThlcnJvcndhcm5pbmdzZXJ2ZXJhbGVydC54eXoiLCAibW9udHJvc3N5aXRtb2RlcmF0b3IuY29tIiwgInBsaWNhdHVyZXNwb250YW5laXR5LmNvbSIsICJzaG9ydGUuc3QiLCAiczMuYW1hem9uYXdzLmNvbS80MGM4ZTlmYS01OGQzLTQ5MjMtOGRmMi0xNzFiZTJhZThlM2MvOWZhLTU4LmpzIiwgInMzLmFtYXpvbmF3cy5jb20vZmE2ODQ0ZjEtYmQyMS00NGM3LThmNjEtYTY3NTE5NTkxN2JlIiwgInMzLmFtYXpvbmF3cy5jb20vMGRmNWIwNjUtZDAyOS00YzQ0LThhNjQtNTEwZDYyMGE0M2NhLzQ0LThhNi5qcyIsICJzMy5hbWF6b25hd3MuY29tLzI2NjBkY2ZlLTIxMTktNDNmNS1iNTQxLTNkYzQxMGNiNzQ4MSIsICJzMy5hbWF6b25hd3MuY29tL2RlZTM0YjE2LThjZDQtNGMwMS1iYmUzLTg3YjFlZDQyMjAzNyIsICJ1ay1hZHMub3BlbngubmV0L3cvMS4wL2Fjaj9vPTMyOTg4ODMyMjQmY2FsbGJhY2s9T1hfMzI5ODg4MzIyNCIsICJ1ay1hZHMub3BlbngubmV0L3cvMS4wL2Fjaj9vPTEwNzI0MzM2MjUmY2FsbGJhY2s9T1hfMTA3MjQzMzYyNSIsICJ1ay1hZHMub3BlbngubmV0L3cvMS4wL2Fjaj9vPTk2NjIxNTQxNzUmY2FsbGJhY2s9T1hfOTY2MjE1NDE3NSIsICJzMy5hbWF6b25hd3MuY29tL2ZhMzZlM2JiNDE3NSIsICJ1ay1hZHMub3BlbngubmV0L3cvMS4wL2Fjaj9vPTM5MTIyMjU5OTQmY2FsbGJhY2s9T1hfMzkxMjIyNTk5NCIsICJzMy5hbWF6b25hd3MuY29tLzliZjliMjMyLTc3YzgtNDZmMC04MGI0LTAwNWY4MmIwYjVkNC83YzgtNDZmLmpzIiwgImNyeXB0YWxvb3QucHJvIiwgImQxNGtsdG5zbzVrZmM1LmNsb3VkZnJvbnQubmV0IiwgImQzdnV3NDF1NDF1NTJyLmNsb3VkZnJvbnQubmV0IiwgInMzLmFtYXpvbmF3cy5jb20vN2NhYmQ3OWYtODg1ZC00MmZkLThjNjctYzQ4MzEwZWIyOTY3LzlmLTg4NWQuanMiLCAiczMuYW1hem9uYXdzLmNvbS9kNmQ4NTQ5Yi1iMjBlLTRmMTUtODM1ZC0yYjFkYzAxYzNjZGMvNGYxNS04MzUuanMiLCAiczMuYW1hem9uYXdzLmNvbS83ODI5MThjOS01ODM3LTQ3NDQtOTdkNy1lMDMwNzViMGFjMGIiLCAiczMuYW1hem9uYXdzLmNvbS83ZWE0YjUxZS0yZGMxLTQ4ZTgtYTM2MS1mM2Y3NTU1ZmNmY2EiLCAiczMuYW1hem9uYXdzLmNvbS9jY2U0YzJhYi1mNWU1LTQ2MGUtODllZi1hNzZiYWNkZjZlMWEiLCAiY3J5cHRvbG9vdC5wcm8iLCAiZDJzenM5N2IyM2lheTIuY2xvdWRmcm9udC5uZXQiLCAiMXJ1bDJ6OGlwZi5wdyIsICJtbG1nem5wYjFrLnB3IiwgIjlzdTQzcDRsMWwucHciLCAib25pbWdzLmNvbSIsICJlYzItNTItNzAtMTEzLTU3LmNvbXB1dGUtMS5hbWF6b25hd3MuY29tIiwgInMzLmFtYXpvbmF3cy5jb20vYTliNTQ4OGUtNWY0Ny00MjRmL3NqbmZpdXcuanMiLCAibWV0YWZmaWxpYXRpb24uY29tIiwgInRyYWRlZG91Ymxlci5jb20iLCAiYWhxcnUud2luIiwgInN1cHBlbnMtcGVudGVkLmNvbSIsICJhZHNjcG0uc2l0ZSIsICJ0b3Btb2J0cmtpbmcueHl6IiwgIm11c2ljc2lubmVyLmNvbSIsICJzMy5hbWF6b25hd3MuY29tLzQwOWUtOTE2OS00MWUyNTczYTciLCAiczMuYW1hem9uYXdzLmNvbS80Njg2LWJmMjYtZDBlZjhlNyIsICJleHBsb3JhZHMuY29tIiwgInMzLmFtYXpvbmF3cy5jb20vNDQyYi05ZDIwLWZhNjk4MmRhIiwgImRqLWguY29tIiwgIjEzLjExMy4xMS4xODUiLCAiZmx5ZXJtb2JpLmNvbSIsICJtZWRpYXNzbWFydC5jb20iLCAiczMuYW1hem9uYXdzLmNvbS9zMWsxa28iLCAiZ28yb3gub3JnIiwgImpzLmFkLXNjb3JlLmNvbS9zY29yZS5taW4uanM/cGlkPTEwMDAwNzcjdGlkPUFkS2VybmVsX0Jhbm5lciIsICJibHVlYWRzcnYuY29tIiwgImFwcHRya25vdy5jb20iLCAiZG9mdW5hcHBzLmNvbSIsICJuYXZoaS5jb20iLCAiZGlnaXRhbG1lcmthdC5jb20iLCAicG9saW1lcmsuY29tIiwgInMzLmV1LWNlbnRyYWwtMS5hbWF6b25hd3MuY29tL2Rld2FoYSIsICJjb2xpbmEtY29yZWFrcy5jb20iLCAieW91bWF4c3Rhci5jb20iLCAiY3JyZXBvLmNvbSIsICJjZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzIzMjAvNzAwMSIsICJmbG9vaWFkLmNvbSIsICJpZGltbC5jb20iLCAidHJja3B4bC5jb20iLCAibW9icGx1cy5uZXQiLCAibXRyYWNrcXdlLmNvbSIsICJjZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzIyMzAvMDgxMyIsICJnYW1lc21vYmlsZWhvdC5jb20iLCAiYWRpbXB0cmFja2VyMS5jb20iLCAieWxpc3dpbjMyLmdxIiwgInB5bGx3aW4zMi5ncSIsICJhZGhvZ3Jhbi53ZWJzaXRlIiwgInZlaGFsbzU2LmRvd25sb2FkIiwgInZvY2FraTYzLmRvd25sb2FkIiwgInBveWl2YTc0LmJpZCIsICJmYW1zeS5ubCIsICJ6b29taW50ZXJuZXRuZXQud2Vic2l0ZSIsICJsaWh5Z2JldHNuYy5lbmdpbmUuYWRnbGFyZS5uZXQiLCAieW91cmRhaWx5ZGlzaC53ZWJzaXRlIiwgInNlcnZlYW55dGhpbmcuY29tIiwgImNsaWNrY3RyLmNvbSIsICJtaWNyb3YxLmNvbSIsICJhaW9uNGdhbWUuY29tIiwgInlleG9jZWxvMTAuYmlkIiwgInMzLmV1LWNlbnRyYWwtMS5hbWF6b25hd3MuY29tL2hlbGxvZ29kIiwgImFiY25ld3M0LnNpdGUiLCAiY3JlYXRpdmVzLnNhc2Nkbi5jb20vZGlmZi8zMDQ1Lzc3MzkxNzgiLCAiY3JlYXRpdmVzLnNhc2Nkbi5jb20iLCAiczMuYW1hem9uYXdzLmNvbS91ZXhrbGoiLCAiYWR2ZXJ0c2VydmUuY29tIiwgImEtemFwcDM2MC5nbG9iYWwuc3NsLmZhc3RseS5uZXQvejM2MG1yYWlkLm1pbi5qcyIsICJzLmNsaWNrLmFsaWV4cHJlc3MuY29tIiwgInNtYXBwLndvcmsiLCAiY3JlYXRpdmVzLnNhc2Nkbi5jb20vZGlmZi8zMDQ1Lzc3MjQ3NTUiLCAibzVvNG82LmNvbSIsICJzbWFydG9mZmVyLnNpdGUiLCAiamFnbzk2LmJpZCIsICJ0aWRpNTYuYmlkIiwgInN0aW5ncmFkLmNvbSIsICJzMy5hbWF6b25hd3MuY29tL2E1ZmYtNzUxYWY3MmFmMzgiLCAia3NhdG9wLm5ldCIsICJxdWFsaXR5YWRzLnBybyIsICJ2ZXJibGlmZS0yLmNvIiwgImFkcy5nb2xkIiwgImNyb3dtb2JpLmNvbSIsICJjNTcwOWI5MzRiNDkuYmxvYi5jb3JlLndpbmRvd3MubmV0IiwgImxvdXdleS5jb20iLCAiZGFya25pZ2h0Y2FudGVlbi5zaXRlIiwgImFkc2VydmVyLndlYnNpdGUiLCAicmV2aXZlc2VydmVyLndlYnNpdGUiLCAibWxyNy5jb20iLCAiYmxpeS1leGNoYW5nZS5tbHd3dy5yNy5jb20iLCAidHJhZGV0cmFja2VyLm5ldCIsICJkMXk3bnJwYW90ejl1Mi5jbG91ZGZyb250Lm5ldCIsICJlYXN5Y29tZXMuY29tIiwgImVzb3JhY29tY28uYmlkIiwgInMzLmFtYXpvbmF3cy5jb20vMUJ6eUtWT0xiVSIsICJzMy5hbWF6b25hd3MuY29tL3o1YTNQUXRaTzF3ViIsICJzMy5hbWF6b25hd3MuY29tL2VLUXpsb0F0VjR1WCIsICJzMy5hbWF6b25hd3MuY29tL3o1YTNQUXRaTzF3Vi9hZC1iYW5uZXIuanMiLCAidmlkb29teS5jb20iLCAiMTI4LjE5OS45Ny43NyIsICJibGl5LWV4Y2hhbmdlLm1sd3d3LmxpZmVsaW5lLmRlIiwgImRyZXNzbGlseS5jb20iLCAiczMuYW1hem9uYXdzLmNvbS82MWRhZDY2ZjAyYTkiLCAiOW1vbmF0ZS5kZSIsICJybWFyZXBvLnJpY2htZWRpYWFkcy5jb20vMzg2MiIsICI0OTRjY2MwZDUzM2IuYmxvYi5jb3JlLndpbmRvd3MubmV0IiwgImFkeDEuY2xvdWQiLCAiYWRrMnguY29tIiwgInMzLmFtYXpvbmF3cy5jb20vOGVmNS05ODk2MmFkZjY4MzgiLCAidG9yZ2VwLmNvbSIsICJuZXdjZG5zdG9yYWdlLmNvbSIsICJzMy5hbWF6b25hd3MuY29tLzg1N2ItYWQ3YzhkNmY1MzgiLCAiczMuYW1hem9uYXdzLmNvbS80YmFlLTkwMzktZWUwYnp6MzciLCAic3R1cnRvbi1kZW1hcmluZy5jb20iLCAiaW50ZXJtZWRpYW1hcmt0LmNvbSIsICJtZWRpYS52b29nLmNvbS8wMDAwLzAwNDIvMjE0NC9maWxlcyIsICIxMjguMTk5LjE5NC4yMyIsICJtZWRpYS52b29nLmNvbS8wMDAwLzAwNDIvMjE0NC9maWxlcy9hMzIwNTAiLCAiZDFteXM5Mmp6Y2U2MDUuY2xvdWRmcm9udC5uZXQiLCAiY2FzaGJpdGNvaW4ucHciLCAicG9wb3BvLndlYnNpdGUiLCAicnFxZnQuY29tIiwgIm1pbmltb2IuY29tIiwgImRibWFkcy5jb20iLCAiZm9tdXZvbG8zMC5iaWQiLCAiOGM5NS53aW4iLCAiZGF5b25laS53ZWJzaXRlIiwgImJ1a3VqdXNlOTYuYmlkIiwgImdvb2dsYWFwcGxhLmNvbSIsICJsb29rc2FmZWJyby5jb20iLCAiYWoxNDIxLm9ubGluZSIsICJtb2Rlcm5hZy5sdGQiLCAiYWR2YW5jaW5nYXdlc29tZW9wdGlvbnMuY29tIiwgImNkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMjIzMC8wODEzL3QvOSIsICJ0ZW5qaW4uaW8iLCAiMTg4LjE2Ni4xODguMTA4IiwgInMzLmFtYXpvbmF3cy5jb20vM2VubnVoeCIsICJzMy5hbWF6b25hd3MuY29tLzdmNjgtNDJiNS05MDQzLTc5IiwgImVjMi0zNC0yMDUtNC0yMDcuY29tcHV0ZS0xLmFtYXpvbmF3cy5jb20iLCAiYWR4MS5pbyIsICIxMjguMTk5LjE3Mi4yMTEiLCAibG9va2FkZGljdC5jb20iLCAidTdsZC5kYXRlIiwgImFkdHJpYWdlLmNvbSIsICJwYXJraXBlZXIuY29tIiwgIjNmMmVkZGZiZDlhNy5zMy5hbWF6b25hd3MuY29tIiwgImh1Z2dpZXNhbXBsZS5jb20iLCAiYmlsbG1lcmdlbnMuY29tIiwgInMzLmFtYXpvbmF3cy5jb20vazd1NnJtcTEwYSIsICJ0Yy1jbGlja3MuY29tIiwgImltcmVhbGx5Ym9mLmNvbSIsICJsY2U5di5jb20iLCAic2hhcnBkc3AuY29tIiwgIm1vYm5hdGl2ZS5uZXQiLCAibGVhZHp1YWYuY29tIiwgIjkxd2hoLmNvbSIsICJhcHBoYWxlLmNvbSIsICJnYW1lNGZ1bi5vbmxpbmUiLCAiaGU4OGNjLmNvbSIsICJta3RyYWNrLmNvbSIsICJhcHBmbHkubW9iaSIsICJhcHB0aGlzLmlvIiwgInNwYXJ0YW1vYmlsZS5jb20iLCAidnByZXZpZXdlcnMuY29tIiwgImRiNWNmY3Y0b3JpeWkuY2xvdWRmcm9udC5uZXQiLCAib25jbGlja2NsZWFyLmNvbSIsICJkMXYxNm4wMTc0a3VtNy5jbG91ZGZyb250Lm5ldCIsICJkZXNwaXRlcmFjeS5jb20iLCAiaW1ib2YuY29tIiwgInN6a3VrYS5jb20iLCAibWh0cm9sd29yay5jb20iLCAibnVybm8uY29tIiwgImFwcHNmbHllci5jb20iLCAiczMuYW1hem9uYXdzLmNvbS8yN21tIiwgInMzLmFtYXpvbmF3cy5jb20vNDlhZS04MmEwLTFjYmIzZDQwIiwgImdnYW1lbXBpcmUuY29tIiwgImtubG9iLmNvbSIsICJmbHltb2JpLmNsdWIiLCAiY2xpY2tkdGFjLmNvbSIsICJtb2JpbGVwbGF5Lm1lIiwgInlvdXRyYWZmLmNvbSIsICJyb3RhdGlvbnVybHMuY29tIiwgInNhbnRvc3MuaW5mbyIsICJhZGltcHRyYWNrZXIuY29tIiwgInByZW1pdW1vZmZlcnMuY28iLCAiNTEuMTUuMTYxLjIwNSIsICI2Mi4yMTAuMjUxLjgzIiwgImdvZ2VhcmJlc3QuY29tIiwgInNub3dwbGF5Z2lybC5jb20iLCAiczMuYW1hem9uYXdzLmNvbS80ZTgxLWJjMjEtMDFkNWY1MTU3Yjk3IiwgImdlbnRvc2gtb2ZmZWNvcmRzLmNvbSIsICJzdXBlcm1vYmkuY2x1YiIsICJkY3lwaGVybWVkaWEubmV0IiwgImNkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMjY0NC83OTcyL3QvMy9hc3NldHMvYmF0YSIsICJzMy5hbWF6b25hd3MuY29tLzQ5MDgtYjQ5My01NThiODYyYTIyZWQiLCAibGgzLmdvb2dsZXVzZXJjb250ZW50LmNvbS9fYzZxcHFFM0dqV2dPX0VTRkZnbFMta0FXc1E2TV9DcWhfNGY4SWJUVU16S3NqRFZsNjlVTGljS1ctdmRlY2lfajlnPWgzMjAtcnciLCAiczMuYW1hem9uYXdzLmNvbS80ZDlmLTk3OWMtZjg3ZDAyNzVjN2RhIiwgInF1ZXJ5bGVhZC5jb20iLCAiMTIzbWVyY2kuY29tIiwgInMzLmFtYXpvbmF3cy5jb20vd2ViaG9zdDAwOTkiLCAibGgzLmdvb2dsZXVzZXJjb250ZW50LmNvbS9Wa0xFMGUwRUR1UklENmpkVEU5N2NDOEJvbWNEUmVKIiwgInMzLmFtYXpvbmF3cy5jb20vZXNwbGVhcmpvcm91c21vYmVlY2siLCAibXliZXN0ZmVlZC5jb20iLCAicHg5eTYwLmNvbSIsICJzMy5hbWF6b25hd3MuY29tL2JkMmIxOTQ0YWNmOCIsICJsay10cmFja2luZy0xLndpbiIsICJsay10cmFja2luZy0yLmRvd25sb2FkIiwgImxrLXRyYWNraW5nLTUud2luIiwgInBhbmVjdGlvbi5jbyIsICJzZWN1cmUtbW9iaWxlLXJld2FyZHMuY29tIiwgImZnOGRndC5jb20iLCAidGVjb25hbWVzLXByb3plbi5jb20iLCAib3R0ZXJvZmZlci5jb20iLCAiczMtdXMtd2VzdC0yLmFtYXpvbmF3cy5jb20vc29zb3NvZ29vZCIsICJzYXhwLnplZG8uY29tIiwgIm5vZGVzbWFuYWdlLmNvbSIsICJkZTcuc3BsaWNreS5jb20vaW1nP2FpZD0zNDY2OSIsICJweDl5LmNvbSIsICJzbm93cGxheWJveS5jb20iLCAibmJ0LnJlbiIsICJiaGZuZy5jb20iLCAibW9idXdpbmdzLmNvbSIsICJtZWRlb3AuY29tIiwgInNvaHUuY29tIiwgInMzLmFtYXpvbmF3cy5jb20vZ2hhbmludGdvbWVpdmVlZWl0aHVsZSIsICJkMWV0aHV1NXVoYzMxMi5jbG91ZGZyb250Lm5ldCIsICJkM3AzdG54Ym12MDI2ay5jbG91ZGZyb250Lm5ldCIsICJzMy5hbWF6b25hd3MuY29tLzkyYTEzMzYwMjMyOCIsICJzaG9waWZ5LmF6dXJlZWRnZS5uZXQvZ3dkLXZlcnNpb24tNzEyMy9nd2RwYWdlX21pbi5qcyIsICJwZXRzYWNjZXNzLmNvbSIsICJsaDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL3hRdlFrT1cybklIX1AzaVV6a3lxNDByWGh3bnhncFc0cFNteWlHVmhfNXZVM2RnMW5WNWxnZDNtbFl3czdVdDNYOFE9aDUwLXJ3IiwgInMzLmFtYXpvbmF3cy5jb20vZW5jZXlhcnJvb2tvcmdibGVuIiwgInBpeC5pbXBzY29yZS10cmsuY29tIiwgImZ0amNmeC5jb20iLCAiczMtdXMtd2VzdC0xLmFtYXpvbmF3cy5jb20veW91dHViZW1wM2NvbnZlcnRlcmluZm8iLCAiczMuYW1hem9uYXdzLmNvbS9lMDRjM2MyZmQ5ODIiLCAiczMuYW1hem9uYXdzLmNvbS9zcm5hcmRlc2xtbW9uYXJvZGdlIiwgImQzbWlleTMxbjV2MGE2LmNsb3VkZnJvbnQubmV0IiwgInljZW1sLm5ldC8wNzQzIiwgImNsaWNrZ29lci5jb20iLCAiZGVpb25pemUyNjV5cC50b3AiLCAiaG93dG81LmlvIiwgImpva2luZ2RhZGR5LmNvbSIsICI3MjMyNC5uZXQiLCAibGgzLmdvb2dsZXVzZXJjb250ZW50LmNvbS9xTTVIMFN0My1BZ0pMdlRNQWY2b3FyWjNuc2lKNkNURlJ5Q2xyeVJQTnVBaFFfZXpUNTUyT05mYVBqSzZhT0NJdENPaz1oOTEwLXJ3IiwgImNoZWxsZW8uZW5naW5lLmFkZ2xhcmUubmV0IiwgInMzLmFtYXpvbmF3cy5jb20vOGJlNDM2LTMwZWZhNCIsICJzMy5hbWF6b25hd3MuY29tLzQzZTItNGQxMy1hMWZkLWViNTZkYmZmIiwgImxoMy5nb29nbGV1c2VyY29udGVudC5jb20vbUd3Zl9rRXJqZ3h6bWYtVFBmZ2wwM2hTXzBVQnhyUnFYSkI5UnBsNnhuUE56WlA3MnNuQkc2R1pqM3pha280V21WUTg9aDMxMC1ydyIsICJzMy5hbWF6b25hd3MuY29tL2FhMjQtNGZkOC04ODZjLWRjZDM2ZWUiLCAiczMuYW1hem9uYXdzLmNvbS9hYTI0LTRmZDgtODg2Yy1kY2QzNmVlL2NkMzYiLCAiczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20vZnJlZWdhbWVzZ2l2ZWF3YXlzLmNvbSIsICJydGJzZXJ2aW5nLmNvbSIsICJ5Y2VtbC5uZXQvMDMxOC8xMTc5MzcyNi0xNDczMjY3NzM3NzA1IiwgInd3dy5mdGpjZnguY29tL2ltYWdlLSIsICJjdGFucy5uZXQiLCAiMjMuMjM5LjI2LjEwMCIsICJyZWFkLWJsb2dzLmNvbSIsICJsaDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL0E5bzZkV21RdkplR0lCNTlydktqcVUtSnExN203VHNJSnlQZTRDRGhRR1hyaGpVbGxYbi1aRTBvVzlzUnVfc1dtQktEPWg5MDAtcnciLCAiZHhmbDhucjc2OGY1OS5jbG91ZGZyb250Lm5ldCIsICJhbGxzZXJ2aWNlczRldmVyLmNvbSIsICJsaDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL1dITVJVNnUteUEwRkRZS0ltakQzaEJnajFzbUU1Z1ZzNzgtWV9HVXBVUnk1Y2sxb1NfOW52TFl2N1ctU21abjQ3ZkE9aDIwMCIsICJzMy5hbWF6b25hd3MuY29tLzM1ZGItNDNlYS05ZTk1LTZkYjQzYjI3LzNlOTUiLCAibGgzLmdvb2dsZXVzZXJjb250ZW50LmNvbS9iS2pTWjhEX2lBTkJibmlkWDFpcklBVnYzcjEzRTJOMEUxSTM2UW4ySFRGV2Z6M1kzLV93ZWJ5T1BycEhhaWxsbDRRPWgzMTAtcnciLCAibGgzLmdvb2dsZXVzZXJjb250ZW50LmNvbS9zcU91bnlGVm4yZzVFaDR5cFZzbV9nVmZjVjBsSmsySXdRbXNCUFBYamRsRnFCUFRZOXpGUkMxc01Va0FBcUxCNVE9aDMxMC1ydyIsICJsaDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL045M3NkbkI3OUNNenZvS3l3cmpGRUdjNFd3TW0xZG9NQnVTNTF5Z0tlaFJTREVqQldiYl9IUW00WEhMOVZOVHFkck09aDMwMC1ydyIsICJhbW9yZXBhY2kuY29tIiwgImxoMy5nb29nbGV1c2VyY29udGVudC5jb20vRmFQMm5aZWFEOGlIbDRMNjlsdGxNUTZhUFppcy1IR0tvUmdibDEyaXE2cGdmc2lXeURGbmVCRFkzamlzVDlIU2pBPWgzMDAtcnciLCAiczMuYW1hem9uYXdzLmNvbS8zOGUtNGY3YS05YWQ3LWY3M2VkYiIsICJhajE0MTcub25saW5lIiwgInVybGRlbGl2ZXJ5LmNvbSIsICJsaDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL3lwVk52LTE2SER1RUpFb1c5MnhxaXhUcElMNkRocURtNURaN2VWaFV4WmhyMGNjZ3RPZUpqeHFLeC14cDR5c1NIaUZOPWgzMTAtcnciLCAia2FkMG4xc29pLmNkbi5hZGdsYXJlLm5ldCIsICJrYWQwbjFzb2kuZW5naW5lLmFkZ2xhcmUubmV0IiwgInN0YXJjcm93bmludGwuZW5naW5lLmFkZ2xhcmUubmV0IiwgInMzLmFtYXpvbmF3cy5jb20vYTZiNC00MDE1LTllYzgtODg0MzI5M2QiLCAibGgzLmdvb2dsZXVzZXJjb250ZW50LmNvbS91UjBJdndKTlFvcXNSZXNXcm9lUVNDWXB3NG5lbVhvaW9icWEwbmhRVDQ5SjlLc3VQSjRpVnNyZ0RiNUxIc20tTGc9aDMxMC1ydyIsICJzMy5hbWF6b25hd3MuY29tLzQ4ODktNGI3Mi1iZDExLTdjYTQ0OWIiLCAic3VwcnZkby5jb20iLCAiczMuYW1hem9uYXdzLmNvbS80YTAwLTRjNTAtOWI0OS00NDI4NTJiIiwgImJpbGxtc2N1cmxyZXYuY29tIiwgInMzLmFtYXpvbmF3cy5jb20vNDRmNC00MTM5LWEzMzEtM2JmZTRlYzYiLCAid2lraWRveC5uZXQiLCAibGgzLmdvb2dsZXVzZXJjb250ZW50LmNvbS9IXzZpRnlSNm9CNG1EMFo2THc0cTlVaUU4U1JlSG1obnM2ZG5seXNzNGxMZEJkdkxoVVMyM3FOQWtiU3ptaDJkY2c9dzMwMC1ydyIsICJzMy5hbWF6b25hd3MuY29tLzliMDUtNGYwYS05NjE1LTA5YzlhNTQiLCAicHVsc2UuZW5naW5lLmFkZ2xhcmUubmV0IiwgIjUwLjExNi4xNS4xMDYiLCAiYWRtZWRpdC5tZSIsICJhbHBoYW1vdmUubW9iaSIsICJvbmxpbmV0b3JzaG9wLmNvbSIsICJmc2xpaGFvLmNvbSIsICJhbHBoYW1pc3Rlci5jb20iLCAiZW5pZC5lbmdpbmUuYWRnbGFyZS5uZXQiLCAidHJjay5nbG9iYWwiLCAiZm9ybXVsYXdpcmUuY29tIiwgImJlc3RhZGJpZC5jb20iLCAia3VtZWRpYS5pbmZvIiwgInRoZWNvbW1lcmNlam91cm5hbC5jb20iLCAianNiYW5uZXJjZG4udG9wIiwgImFmZnRyYWNrLmNvbSIsICJoaXRjcG0uY29tIiwgInBvcGNhc2gubmV0IiwgInByZXNzaXplLmNvbSIsICJzbWFydGxpbmsuZ3VydSIsICJhY2NtZ3IuY29tIiwgImQzbWNzYnpycXBhb3h2LmNsb3VkZnJvbnQubmV0IiwgInMzLmFtYXpvbmF3cy5jb20vMzJjNC00Y2NhLWEwMGEtMDg5ODJmZDkiLCAiczMuYW1hem9uYXdzLmNvbS9pY2FydGhvbG9tZXdjaWFjY2NlZGUiLCAibjFhZHNlcnZlci50b3AiLCAiaWNhc2lhcGFjaWZpY28uY29tIiwgImQzZDVoaXdidTVoazZiLmNsb3VkZnJvbnQubmV0IiwgIm1sYWRlbmV0cy5jb20iLCAiczMuYW1hem9uYXdzLmNvbS81YWZmLTRiODItOWZiNy0yNGQ4NjkiLCAiMTYyLjI0My4yMDAuNjMiLCAiY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8yMzIwLzcwMDEvdC81IiwgImluZmFkcy0xMzcyMzY5NDEyLmV1LXdlc3QtMS5lbGIuYW1hem9uYXdzLmNvbSIsICJkaXNwbGF5LXNlcnZpbmcuY29tIiwgImV0YWNraXdheWFudC5iaWQiLCAic2Vjb2xkaWNpYWxwaS5iaWQiLCAid2lzaC5zYWxlIiwgImQxNXE0aGI0eTl2MXNlLmNsb3VkZnJvbnQubmV0IiwgImFsdGVrLmNvbS50dyIsICIyOHpidy5jb20iLCAiYWR2ZW51ZWRzcC5jb20iLCAiYWRzYnJlYWsuY29tIiwgImNwYWRrLm5ldCIsICJyaWxyaXgucnUiLCAiZDN0aWM5ZWRnYjEyMDkuY2xvdWRmcm9udC5uZXQiLCAidGV1dG9yaWdvcy1jYXQuY29tIiwgImhpcm9la29iby5jb20iLCAibXlyaXNpbmdtYW4uY29tIiwgInFkamJrdHYuY29tIiwgImNvaW5oaXZlLmNvbSIsICJkOTdxb2RrdTgyeGNzLmNsb3VkZnJvbnQubmV0IiwgImdvb2dsZXRhZ21lbmFnZXIuY29tIiwgImNsaWNrc2V2LnBybyIsICJzMy5hbWF6b25hd3MuY29tL2RiMjk0NjQyMzU0YmQ1MjdjN2ZhMjk1ODZmNmEzNmYxIiwgImNkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMjIzMC8wODEzL3QvMTMiLCAiczMuYW1hem9uYXdzLmNvbS85ZDI5LTQ0OTItOGIwMy00NmUwMmRhIiwgImNlbWIuZ2RuIiwgImNsa3RpLmNvbSIsICJmaXJtc2VjdXJlY3VycmVudC5jb20iLCAibG5raXQuY2x1YiIsICJsb2dnaWthLmNvbSIsICJzY29udGVudC1pY24xLTEueHguZmJjZG4ubmV0L3YvdDEuMC05LzI1MzQ4NzA1XzIwMDA4MDE5MzM1MTA0NzZfNDg2MTI5NzYzMjEwMDk3NzYzMSIsICJzMy5hbWF6b25hd3MuY29tLzY0OS00M2JjLWJlMGQtM2VjNmRmZCIsICI0NS43OS43Ni4xMiIsICJiaWxseWFmZmNvbnRlbnQuY29tIiwgImQza3hsdHM1enc2ODVqLmNsb3VkZnJvbnQubmV0IiwgImNyMDB0aHA3MGlsZzRhcnZhdXEwYzJlenJ4LnMzLmFtYXpvbmF3cy5jb20iLCAicHJvZC11c2Vhc3Qtc3BvcDEtcnViaWNvbi5zcG90YWQuY286MTgyNjAvZXZlbnQvV0lOIiwgInMzLmFtYXpvbmF3cy5jb20vMTE3OS00OTM1LWE4YWUtYTZjMjY3MjIiLCAiNDUuMzMuMTIxLjE5MyIsICJkMzF2Z2FsZm1oa282cy5jbG91ZGZyb250Lm5ldCIsICJkMWw1emF5eTJ2bmV5Zy5jbG91ZGZyb250Lm5ldCIsICJ5bWdsLmVuZ2luZS5hZGdsYXJlLm5ldCIsICJkM3ExYnh2Nmt1Ym1wNC5jbG91ZGZyb250Lm5ldCIsICJwcm9kLXVzZWFzdC1zcG9wMS1vcGVueC5zcG90YWQuY286MTgyNjAvZXZlbnQvV0lOLyIsICJkd3oydXo3MzlxaHB0LmNsb3VkZnJvbnQubmV0IiwgImhqb29wbS5lbmdpbmUuYWRnbGFyZS5uZXQiLCAic3BvcnRzcG9zdC5pbmZvIiwgInNlY3VyZS1kcy5zZXJ2aW5nLXN5cy5jb20vQnVyc3RpbmdSZXMvU2l0ZS0xMjY4NjUvVHlwZS0wLyIsICJwYXR0ZXJuc2h1Yi5jb20iLCAiYWRzYjR0cmsuY29tIiwgImZseXJsay5jb20iLCAiYWRjcmF4LmNsdWIiLCAibGVhZHBsYXkubW9iaSIsICJkM2I1MG8yazl4MWdqdC5jbG91ZGZyb250Lm5ldCIsICIxNzMuMjMwLjE0MS4xNDUiLCAiMTU5LjIwMy4xNzUuMjE3IiwgImhlYXBlei5jb20iLCAiYWRyby5pbyIsICJza3liaXRlci5jb20iLCAiY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8yMjMwLzA4MTMvdC81L2Fzc2V0cy9hRW1iZWRDYW52YXMuanMiLCAiaHVnZWJlc3R0cmlwcy5jb20iLCAieWh0cmFjay5jb20iLCAicGl0eHQuY29tIiwgImFwcHNpZW5jZS5jb20iLCAic2FsZS1nYWRnZXQtcHJvbW90aW9uLmJpZCIsICIzNWJuLmRhdGUiLCAic2hpcmN1c2VkLWNvbWlzdGFmZi5jb20iLCAiNDUuNTYuMTIxLjYxIiwgIjI5NDQ4Lm5ldCIsICJ4ZW1hZWtldHMuY29tIiwgIjIzLjkyLjI5LjE3MiIsICJldmVyeW9jbGljay5jb20iLCAiY2hhcnRla28uY29tIiwgImNvbmZpcm1saW5rLm9ubGluZSIsICJzYXJxb3UuY29tIiwgInNweWtlbWVkaWF0cmFjay5jb20iLCAicGVyZm9uc3BvdC5jb20iLCAiZDJiYzBjOTBpNWp0eXIuY2xvdWRmcm9udC5uZXQiLCAicHVibGljaXplczY5MmZrLnh5eiIsICJjbGlja2Fkd2EuY29tIiwgIm1pYWR4Lm5ldCIsICJuZXdyb3RhdGlvbnVybC5jb20iLCAibGluazRzbS5jb20iLCAidHJhbnNyZXRlbi5jb20iLCAidHdvY2xpY2tkZWFsLmNvbSIsICJiZW1vYnRyay5jb20iLCAibXlsaW5rLm9ubGluZSIsICJjeWludGEuY29tIiwgImV0aG9zc2guY29tIiwgImQyajMxYXNlejMxaW8yLmNsb3VkZnJvbnQubmV0IiwgInNldm1vYi5jb20iLCAiZDNxeXNuMGFxbW9iZjMuY2xvdWRmcm9udC5uZXQiLCAiZGxmbm9iMDkwMnVkbi5jbG91ZGZyb250Lm5ldCIsICJvbHZsZS5jb20iLCAiMTczLjIxMi4yNDkuMTg4IiwgInl5bmp4LmNvbSIsICJpbmRvanVua2llLXZpYmVzLmNvbSIsICJvcGVuY2hvLmNvbSIsICJqYy5zdXBlcmxpbmtpbi5jb20iLCAia2VyZG9maW8uY29tIiwgImFiY2RuLmJpZCIsICJjcGFvcHRpbWl6ZWRwZXJmb3JtYW5jZS5jb20iLCAiamV0c2V0Z29mbHkuY28iLCAib3JpZ2VyLmluZm8iLCAiZDIzZmEwczdzaW5udGwuY2xvdWRmcm9udC5uZXQiLCAiYWRmcmllcy5pbmZvIiwgInl0LWdpZnQuY29tIiwgImFka3J1ZWdlci5jb20iLCAidW5pdmVyc2FsbGFwcC5jb20iLCAiZ29waG90by5zdG9yZSIsICJjbGV2ZWxhbmQtc3Rhci5jb20iLCAiYmVhdXR5bGlzaC51cyIsICJoYnBpeC5tZWRpYTZkZWdyZWVzLmNvbSIsICJkYWJ1cWR5cmdhNmRkLmNsb3VkZnJvbnQubmV0IiwgImhhb2FpamlhbW0uY29tIiwgImQyZm51aGp1Mm56NTN6LmNsb3VkZnJvbnQubmV0IiwgImdhcmRlbnBsdW1iaW5nc3lzdGVtLmNvbSIsICJnb3dpbGRnb29zZS5jb20iLCAicHJhbmVkLmNvbSIsICJpbnRyb2R1Y3Rpb25jbG91ZC5jb20iLCAiYnJpYW5iaWxsaW5nLmNvbSIsICJkMng0bHM5NHdqOWxlcS5jbG91ZGZyb250Lm5ldCIsICIxNzMuMjU1LjIxNy4xNjUiLCAiYm9sdG9ucGxhc3RlcmVycy5jb20iLCAiRml0IE1vbSIsICJmaXRtb20iLCAiaW5mb3dhdCIsICJteWFkeWxrLmNvbSIsICJjNHRyYWNraW5nMDEuY29tIiwgImdldGRlcGxveWFwcC5jb20iLCAiMTcyLjEwNC44LjYyIiwgIm5leHBsb3JlYWRzLmNvbSIsICJ0cmFja3N0cmVhbXMuY29tIiwgImFkZXhjaGFuZ2VjbG91ZC5jb20iLCAibGF6eWJveWV2ZW50cy5jb20iLCAibXl0cmt1cmwuY29tIiwgIm9ubGluZTJtb2JpLmNvbSIsICJtY2FmZWUtdmlydXNzY2FuLmNvbSIsICJzZXJ2ZWJ5LmNkbi5hZGdsYXJlLm5ldC9pbWcvY3ljamtfaGN0ZnRyZHdnMm5henBhcnBlZnNfMDUzMTk0MzhlZjA3MWNjNGVjZjljOGM0MTQyNDFkOWIiLCAiYWRzc2JkLmNvbSIsICJkMWZ6ZGR4bHJrOHNwNS5jbG91ZGZyb250Lm5ldCIsICJhZHNkb21haW4ub3JnIiwgIm8zMzNvLmNvbSIsICJzZXJ2ZWRieWFkYnV0bGVyLmNvbS9hZHNlcnZlLztJRD0xNzA4MDUiLCAiZDJ3dDllZDVnaWE1MXouY2xvdWRmcm9udC5uZXQiLCAiYWlvc3lzcGxhdGZvcm0uY29tIiwgImJhbm5lcnVzLmluZm8iLCAiZ2lkcm8tdGVybS5jb20iLCAiczMuYW1hem9uYXdzLmNvbS84MzBkLTRjZDItYjU4NS0yMTY2NDgxZCIsICJpbW1pZ3JhdGlvbmZ1dHVyLmNvbSIsICJtaWdvbW9iaS5wdyIsICJkZng5M2ZwZW8yY2Z3LmNsb3VkZnJvbnQubmV0IiwgInNlcnZlYnkuYWRnbGFyZS5uZXQvY2RuL2ltZy9jeWNqa184M2d0N3c5ZnZheG14cGF3c2szbV81MDIzNmNhMTNmMjI0ZjM5OGJhOTc1NDk2OTU4MDcxZSIsICJlc2NhcGljb24ubmV0IiwgImQzdGZrZWpqdDhha2Q0LmNsb3VkZnJvbnQubmV0IiwgImQzNm02emEwdzJ2OHJjLmNsb3VkZnJvbnQubmV0IiwgInNlcnZlcmVoZC5jb20iLCAiODg5MDU4OC5jb20iLCAiZDJoc2U1bnN3bW9iZHkuY2xvdWRmcm9udC5uZXQiLCAiY2xlYW5zc2xicmFuZC5jb20iLCAicmVkcmN0LnNpdGUiLCAidG9wY2FtcGFpZ24uc2l0ZSIsICJzZXJ2ZWJ5LmNkbi5hZGdsYXJlLm5ldC9pbWcvY3ljamtfZDd3ZHR0cDg3NWRoZjJmcHR2ZTlfMDUzMTk0MzhlZjA3MWNjNGVjZjljOGM0MTQyNDFkOWIiLCAidmVlZG9pdC5jb20iLCAiaXZ2c2VydmVycy5jb20iLCAibTYyLWdlbnJlYWwuY29tIiwgIm15Z3Rtbi5jb20iLCAiYmVzdGZvcnlvdS5zaXRlIiwgInNlcnZlZGJ5YWRidXRsZXIuY29tL2Fkc2VydmUvO0lEPTE3MDkyOCIsICJkMnljYWp3Y2FqZGY0ZS5jbG91ZGZyb250Lm5ldCIsICJhbGV4bWVsa2l0di5jb20iLCAidGhldGVjaGJyZXdlcnkuY29tIiwgImQzYjR4NWRsd2llcDg5LmNsb3VkZnJvbnQubmV0IiwgInh3dDkuY29tIiwgInByZWhlbnMuY29tIiwgIm1hdHNvZnR0ZWNobm9sb2dpZXMuY29tIiwgImdvMnRyLm5ldCIsICJhZHZpbmFwcHMuY29tIiwgImNuZ3Bob3Rvcy5jb20iLCAiaGluYW1hZHMuY29tIiwgImFkZXhjaGFuZ2VwZXJmb3JtYW5jZS5jb20iLCAiZDFncmF0cHR3ano0MTEuY2xvdWRmcm9udC5uZXQiLCAiY3JlYXNvbnNjcmFwLmNvbSIsICJ0aGUtd2lsbHBvd2VyLmNvbSIsICJhbGxiZXN0LnNpdGUiLCAidWN3ZWIuY29tIiwgImQxZXR3NWF6bmdubXNlLmNsb3VkZnJvbnQubmV0IiwgInltY2RuLm5ldCIsICJzbWFydGFkdXJsLmNvbSIsICJyZWdhbWluZy5jb20iLCAibGlmZXNvZ29zaC54eXoiLCAib25kbGNrLmNvbSIsICJtYWtlc3VycHJpc2Uuc2l0ZSIsICJhbGdvcmh5dGhtLnBybyIsICJicmFuZC1tYXJrZXRlci5jb20iLCAiYnJpemFkcy5jb20iLCAiZ29hcHBzeS5jb20iLCAibWFjaGluZWxlYXJuaW5nLm1lZGlhIiwgIjM0LjIwMS4yNC41MSIsICI3Mi4xNC4xODMuMTM0IiwgIjE5Mi4yNDEuMTc0LjE0NiIsICIxOTIuMjQxLjI1MS45NyIsICI2MTI2ODc4LmNvbSIsICJjaGluYW1vYi5vcmciLCAiZnVsZmlsbG1lbnRnby5jb20iLCAiZ29uZXN1cnZleS5jb20iLCAiZ3JlYXRlc3RhcHBzLm1vYmkiLCAibWF4Zm9yZWNhc3QuY29tIiwgIm1vYnV0cmFmc3JjbXMuY29tIiwgImQxOG52MnhtNnB3cnNoLmNsb3VkZnJvbnQubmV0IiwgImFwdHJrLmNvbSIsICJkMWd5enJ2bjRiZDl6OS5jbG91ZGZyb250Lm5ldCIsICJtb2JpcmVsbGEuaW5mbyIsICJkdzZtcHZobTRqenIxLmNsb3VkZnJvbnQubmV0IiwgInMzLmFtYXpvbmF3cy5jb20vY2FydGVjbm5lZHlzdGhlc2V0c3kiLCAiczMuYW1hem9uYXdzLmNvbS9kdXBvbnRhdXJlbiIsICJzMy5hbWF6b25hd3MuY29tL25kb3JUaG9yZWEiLCAicGl4MWUuY29tIiwgInMzLmFtYXpvbmF3cy5jb20vMDA1YTYwMGEtNTQxZC00NmUzLWE4NzQtYjMwZmE3ZGMwNmZmIiwgInRyYWNrbW90YWcuY29tIiwgInMzLmFtYXpvbmF3cy5jb20vNGIyZS1iNWM2LWY1NjZkMzMwNWMiLCAibWlkYXhwZXRyb2xldW0uY29tIiwgImh1YmVpc3BvcnRzLmNvbSIsICJkMWoyMGF6Yzkwc2M1ZC5jbG91ZGZyb250Lm5ldCIsICJwaW50ZWxlZ3JhbS5jb20iLCAiZDJtOGRsdG9kZ3lnY3kuY2xvdWRmcm9udC5uZXQiLCAiZDJ6YmRldzJtamp5MnUuY2xvdWRmcm9udC5uZXQiLCAiZDFjaDUzZXdwNXJ4OWsuY2xvdWRmcm9udC5uZXQiLCAiZDNxajZxMGp3bmJzZ28uY2xvdWRmcm9udC5uZXQiLCAiZDI3cng0dTZvZ3c5eXQuY2xvdWRmcm9udC5uZXQiLCAibXpmdWppLmNvbSIsICJhdXRvLTEwMS5jb20iLCAib25pbXBzLmNvbSIsICJ3ZGtuaWdodC54eXoiLCAiZDNtODAwc2JtMjFkdTMuY2xvdWRmcm9udC5uZXQiLCAicnRiZGx2LmNvbSIsICJuaWNlZ2lmdGNhcmQuc2l0ZSIsICJnb2FsZ2FtZXIuY29tIiwgImd1YXJ1bW9iaWxlLmNvbSIsICJzMy5hbWF6b25hd3MuY29tLzQxYmEtOGQ0NC0yNTAxIiwgInMzLmFtYXpvbmF3cy5jb20vZWN0YXJjZXRuY2JlcmxleSIsICJkMnBjMHEzMmZvZDBoYS5jbG91ZGZyb250Lm5ldCIsICJoY25yai5jb20iLCAibGgzLmdvb2dsZXVzZXJjb250ZW50LmNvbS9YbWZsVkhYeFhsWHpVbDdDeUJ2b045NzVqTmFLZENMZWdyV0FEZTg1U0pPcm9nalYtZTFQWkM1YUxxTlR5aHhzVEVzPWgyMDAtcnciLCAibG9uZ2JjY2QtMTE5OTcwNzcyMy51cy1lYXN0LTEuZWxiLmFtYXpvbmF3cy5jb20iLCAiZDF4YWcxcTZ1bzhzMHUuY2xvdWRmcm9udC5uZXQiLCAiZDJpNDAxdjBsbmFza3cuY2xvdWRmcm9udC5uZXQiLCAiMzQuMjI4LjExLjEyMiIsICI1MTU1OTYubmV0IiwgImVjMi01NC0xNzItMTA3LTEzNS5jb21wdXRlLTEuYW1hem9uYXdzLmNvbSIsICJnb29kZGVhbGJveC5jb20iLCAicm9sbGluZ2dpZnQuY29tIiwgImhlaW50ZXJ0aW1lc3NlcnZpY2VzLmNvbSIsICIzNC4yMjkuODUuMTQ0IiwgImQ2bTNoeXJvNzE3OHYuY2xvdWRmcm9udC5uZXQiLCAiY2RuX3VzLmxvY2FydHdvcmtzLmNvbSIsICJkZmZtcS5jb20iLCAiZG9iYWdvLmNvbSIsICJkaW9yLnZpZGVvIiwgImZhY2VmaW4udHYiLCAidmlzaXQtZnVsLmNvbSIsICIxNjIuMjIxLjcuMjIiLCAid2lsY29hc2RlYXN1cGhlbWlhLnMzLmFtYXpvbmF3cy5jb20iLCAiY2hlcnJubmFueG5uYWJlbHhvdXRoZXkuczMuYW1hem9uYXdzLmNvbSIsICJ3aGl0ZWhlYXNhY3VsaWFuYWNvbi5zMy5hbWF6b25hd3MuY29tIiwgImx1Y2t5cmV3YXJkLnNpdGUiLCAiYWNoYXJpYXN4ZXJyeGRiZXJnc2FuY2UuczMuYW1hem9uYXdzLmNvbSIsICJyYXBpZHlsLm5ldCIsICJjb29ja2UuY29tIiwgImJlcnhhaHV4b25yb3hvLnMzLmFtYXpvbmF3cy5jb20iLCAicmljaGFyZHNjcmFuY2VzY2Rlc3R5LnMzLmFtYXpvbmF3cy5jb20iLCAibWlyYWJlbGxvZGdzb2lsZWVsb29tZXIuczMuYW1hem9uYXdzLmNvbSIsICJvbmVwbGFuZXRvbmx5LmNvbSIsICJkMjYzcWFudXRzZGN4Ni5jbG91ZGZyb250Lm5ldCIsICJnbWFubHNhYmVwaW5jbGEuczMuYW1hem9uYXdzLmNvbSIsICJkcng3eWZybml4dzZiLmNsb3VkZnJvbnQubmV0IiwgImJlZm8ud2luIiwgImJlc3RnaWZ0Y2FyZC5zaXRlIiwgInZhbmVzc2F1ZHNvbmVydGhhLnMzLmFtYXpvbmF3cy5jb20iLCAiZGx3bHh3MmVhb25ydC5jbG91ZGZyb250Lm5ldCIsICJlYzItNTItNTktMTkzLTM1LmV1LWNlbnRyYWwtMS5jb21wdXRlLmFtYXpvbmF3cy5jb20iLCAibHVjeXJvb20uc2l0ZSIsICJ3ZXR3ZWFyc3VpdHMuY29tIiwgIjk2LjQ0LjEzMy4zNyIsICJtYWhpYmx1ZS5jb20iLCAiYmVhdXR5LWdpdmVhd2F5LnVzIiwgInMzLmFtYXpvbmF3cy5jb20vd25pbmdQb3BwaGlsZSIsICJkdXBvbnRhdXJlbi5zMy5hbWF6b25hd3MuY29tIiwgImRjdHdieDZlMjM0by5jbG91ZGZyb250Lm5ldCIsICJtaW5nd2F5cmthbWJlcnQuczMuYW1hem9uYXdzLmNvbSIsICI1NC4xNzQuMzguMjM0IiwgImVjb2RldGVjdG9yLmNvbSIsICJhZGd1bWJhbGwuY29tIiwgIm5pY2Vtb2JpbGUuc2l0ZSIsICJnZWVrZ2lmdHMuZGUiLCAiZHJzZXBlbS5jb20iLCAibXluZXh0ZWJ1eS5jb20iLCAiZDNpaHF4bjk4MTc1d3EuY2xvdWRmcm9udC5uZXQiLCAiczMuYW1hem9uYXdzLmNvbS9vbm1lcmZpZWwiLCAiczMuYW1hem9uYXdzLmNvbS9vbHBoY2VlcmJvaCIsICJkZXNrc3VnZ2VzdGlvbi5zaXRlIiwgInZhY2FuY2VzLXByaXgtcmVkdWl0cy50cmFkZSIsICJzMy5hbWF6b25hd3MuY29tL2FkeDFwdWJsaWMvY3JlYXRpdmVzLzQ2NTAiLCAiNDUuMzMuMTE1LjE5NSIsICJnb29nbGVwbGF5c2V0dmljZXMuY29tIiwgInVuaWRpbmdjb20uY29tIiwgImdvby5nbC83NXhqdFkiLCAiY29pbi1oaXZlLmNvbSIsICJ5aWVsZHhsLmNvbSIsICJleHRyZW1ld2VpZ2h0bG9zc3BsYW5zLmNvbSIsICJlYzItNTQtOTMtMjUzLTE3Ni5ldS1jZW50cmFsLTEuY29tcHV0ZS5hbWF6b25hd3MuY29tIiwgIjY2LjE3NS4yMTQuOTciLCAiczMuYW1hem9uYXdzLmNvbS9ncGV3ZXBvYnV0bzY0IiwgImVjMi01NC0yMTEtMjMxLTk1LmNvbXB1dGUtMS5hbWF6b25hd3MuY29tIiwgImhvbGlkYXktZGlzY291bnRlZC1wcmljZXMuc3RyZWFtIiwgIjQ1Ljc5LjIxOS42MCIsICJhcmxzdG9tLmNvbSIsICJzMy5hbWF6b25hd3MuY29tL2VkMjUxNzU5YTY4NDM2OWI0OTU4YWY4MTg1MTBmOTg3IiwgInRoZWZhaWxzY2VuZXMuY29tIiwgIjU0LjE5My45MC4xODciLCAiY2Fyc3JpZ2h0bm93LmNvbSIsICI2Ni4yMjguNTkuOSIsICI5OXRyYWNrZXJzLmNvbSIsICJzMy5hbWF6b25hd3MuY29tL25lZGljZXJkaW5hIiwgImRzcDEudHJhZGUiLCAiZDg2YnZuazVybXppYS5jbG91ZGZyb250Lm5ldCIsICJ1bml0eWVzdGF0ZS5jb20iLCAiYXBwLW15LXdheS5jb20iLCAicXVlYmVjLWJpbi5jb20iLCAic3RhdGlzdGljcy1wbGFuZXQuY29tIiwgInRyYWRlYWRleGNoYW5nZS5jb20iLCAieW91cmFkZXhjaGFuZ2UuY29tIiwgInBheS5yb3V0ZTJmaW5hbmNlLmNvbSIsICJkM2l5end3eHZ2aTluNS5jbG91ZGZyb250Lm5ldCIsICJuMjgxYWRzZXJ2LmNvbSIsICJtb2IucHJvZ21vYmlsZS5jb20iLCAibGFzc2VuZWxlY3Ryb25pY3MuY29tIiwgImQxbjVtdDFjNm5tN29mLmNsb3VkZnJvbnQubmV0IiwgImQxcXlzYWg4aTIwdHQwLmNsb3VkZnJvbnQubmV0IiwgImQyM3JqbzJvYXl2ejA0LmNsb3VkZnJvbnQubmV0IiwgIjQ1Ljc5LjEyOC4zNSIsICJhZHNidHJrLmNvbSIsICJzMy5hbWF6b25hd3MuY29tL3UzZW1pZ2lra2ZoaGkiLCAiMTYyLjIyMS43Ljg1IiwgImFsbG9mYmxvZ2dpbmcuY29tIiwgImppYW5nbmFuc3R5bGU5MTEuY2x1YiIsICJzcGFya3RyaXBzLXcxdnVobWhheS5zdGFja3BhdGhkbnMuY29tIiwgImNvZm5lLmNvbSIsICJyZWRjbGlja3N0YXJ2ZW50dXJlcy5jb20iLCAiZDIzMW96Mnk5ZDFmdmsuY2xvdWRmcm9udC5uZXQiLCAiaXRzYWxsZnJlZXNvbmxpbmUuY29tIiwgIndjYWNzLmNsdWIiLCAia2l0dHljaXR5Y2FtcGFpZ24udXMtZWFzdC0xLmVsYXN0aWNiZWFuc3RhbGsuY29tIiwgIjQ1Ljc5LjIxOS4xOTYiLCAiNDUuNzkuMC43OSIsICI0NS43OS4xODguMTA2IiwgInN3aWZ0d2lmaWlpLmNvbSIsICJzMy5hbWF6b25hd3MuY29tL2dmd3ZyZjd6eWU0aGYiLCAiYXBwZ3JlZW5zLmNvbSIsICJzd2VlcHN0YWtlc2NlbnRyYWx1c2EuY29tIiwgImNweGRsdi5jb20iLCAiY3B4Zm9yZW5zaWMuY29tIiwgImJpZG1hY2hpbmUuY28iLCAiNTQuODkuMTc1LjEwNSIsICJjbGt3YXJlLmluZm8iLCAiMTA4NjkzNzA5MC5yc2MuY2RuNzcub3JnIiwgIjEyOHxjci0xMDA5NDMtNTV8NDc0MDUzIiwgIjI5MV9jci0xMDA5MzQtMjMwXzQ3NDA0OCIsICI0NS43OS44LjE4MCIsICJpZ2FtZWZyaWVuZHMubmV0IiwgImdvb2dsZXN5bmRsY2F0aW9uLmNvbSIsICJzbWFydG1vYjI0LmNvbSIsICJkb3ducmFwaWQuY29tIiwgImFkY2NjYy1qbGtkc2pmbHNkZmQtZmpzbGRoZnNqZGZzZGZzLnMzLXVzLXdlc3QtMi5hbWF6b25hd3MuY29tIiwgImNsaWNra2luZ3NhZHMuY29tIiwgIjIzLjkyLjI4Ljk4IiwgIjk3LjEwNy4xMzQuNTEiLCAiZ29hbGxoZWFsdGh5LXcxdnVobWhheS5zdGFja3BhdGhkbnMuY29tIiwgInRyYWNrbXlhcHBub3cuY29tIiwgIjY5LjEyLjg2LjIyNyIsICI2OS4xMi44Ni4yMjkiLCAiY29uZ3JldmVuZGVsLnMzLmFtYXpvbmF3cy5jb20iLCAiczMuYW1hem9uYXdzLmNvbS9jaGFyaWFobmRyZSIsICJiaWRyZXN0LmNvbSIsICJjb25zdW1lcnByb2R1Y3RzdXNhLmNvbSIsICJvY2xhc3J2LmNvbSIsICJqdXN0Z2V0ZGVzaWduLmNvbSIsICIxNjIuMjIxLjcuMTMiLCAiNHxiODAyMzUiLCAiMjAyLzEyODc4XzEwNTExIiwgIjE4OC8xODdfMTA1MDgiLCAiMTY5X21tZy0xMjc5OCIsICIxNXwxMDgwODEzIiwgImdlb3NlZGdlLmNvbSIsICJkMXk1OWI5b200OTYzci5jbG91ZGZyb250Lm5ldCIsICI1NC4yMTkuMTc5Ljc4IiwgIjd2c3AuY29tIiwgIjY5LjE2NC4yMDUuMTExIiwgIjUyLjIwMS4yNDMuMjMxIiwgImM5MTkubmV3cyIsICI2OS4xMi44Ni4yMjgiLCAic3J2MjAuYWxmc2Fkcy5jb20iLCAiZWxiLWRlLTA4MjAtNjIwMTQxMTIwLmV1LWNlbnRyYWwtMS5lbGIuYW1hem9uYXdzLmNvbSIsICJkM2h2NngxcmtwbzUxai5jbG91ZGZyb250Lm5ldCIsICJsYW5sYW5hZHMuY29tIiwgInMzLmFtYXpvbmF3cy5jb20vMDg2NTAwYWYiLCAiczMtZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vZm9ybWF0cy1ldm9sdXRpb25zIiwgImFkc2VydmVyLWVudi5qbno3a21hYThkLnVzLXdlc3QtMS5lbGFzdGljYmVhbnN0YWxrLmNvbSIsICI2cXRici52b2x1dW10cmsyLmNvbSIsICJzMy5hbWF6b25hd3MuY29tL2N0aWd1bWlraXhhNTkiLCAiZWMyLTUyLTcwLTQ5LTIxNi5jb21wdXRlLTEuYW1hem9uYXdzLmNvbSIsICJzMy5hbWF6b25hd3MuY29tL2Rob3BleGFtb2phOTciLCAiYmVzdC45Mi1hdXRvLmNvbSIsICJhZHhtaS5jb20iLCAiYXV0b3Nwb3J0LTI0LmNvbSIsICJkM3V4bDV3bGRpN2czci5jbG91ZGZyb250Lm5ldCIsICJkMmlsMnEwaHVsZnhlMy5jbG91ZGZyb250Lm5ldCIsICJiZXN0cGVyZm9ybWluZy5zaXRlIiwgImdldC1zZWFyY2guaW5mbyIsICJzMy5hbWF6b25hd3MuY29tL2R0NWNxd2RuZTR2eXpuL2Jhbm5lciIsICJzMy5hbWF6b25hd3MuY29tL2R0NWNxd2RuZTR2eXpuL2U0Y29kMmR0ZTRrZ3JpYy5qcyIsICI2cXRici50cmFja3ZvbHV1bS5jb20iLCAiYmVzdGFkLnVzLWVhc3QtMi5lbGFzdGljYmVhbnN0YWxrLmNvbSIsICIzNC4yMjkuMTk0LjE3NyIsICJlbGItZGUtMDgxN2ItMjgxNjM5NjUuZXUtY2VudHJhbC0xLmVsYi5hbWF6b25hd3MuY29tIiwgInY3ZGYuY29tIiwgInByZWduYW50b25lLXcxdnVobWhheS5zdGFja3BhdGhkbnMuY29tIiwgInMzLmFtYXpvbmF3cy5jb20vY2NhYmJjYmY2M2Y2ZTUwZWRkOTZhNTE3MmE1NDhlNzkiLCAiYXdzLXVzLTEuY29tIiwgImVsYi1kZS0wODE2LTY5NTgyODczMi5ldS1jZW50cmFsLTEuZWxiLmFtYXpvbmF3cy5jb20iLCAidmlyYWxhcHBzLmJpeiIsICIwNC5jbG91ZC5pbWFnZW5lcy03LmNvbSIsICJkMzkyOHg0YW1peTM5ZS5jbG91ZGZyb250Lm5ldCIsICI0NS43OS4yMTEuNzkiLCAiYXdzLWRlLTA4MTUuY29tIiwgIjEyLmNsb3VkLmltYWdlbmVzLTcuY29tIiwgIjE5Mi4xNTUuODAuMjI1IiwgInN1cGVydmlkZW9pbmZvLmNvbSIsICJhd3MtdXMtMi5jb20iLCAiY2hpbmFzdG9ja21hcmtldC5uZXQiLCAiMzQuMjI0LjI2LjI1MSIsICJjbGtmZWVkLmNvbSIsICJjcG1iZXN0LmNvbSIsICIxNzIuMTA0LjE1LjE2MSIsICIvczMuYW1hem9uYXdzLmNvbS9xZXJlbWlhaGFsb3JhIiwgImpvdXJuYWxsaW5ncGVyY29sYXRlcy5jb20iLCAiZDMzMW0zaTRiNDdiaDkuY2xvdWRmcm9udC5uZXQiLCAiYW5hbHl0aWNzLWhvc3QuY29tIiwgIjY5LjEyLjcwLjkzIiwgInMzLmFtYXpvbmF3cy5jb20vY3ZpZG95b2x1d2E5OC9lZDdiMzFmNzY1YjQwYWRmMi5qcyIsICJlYzItMzQtMjI0LTIxOC05My5jb21wdXRlLTEuYW1hem9uYXdzLmNvbSIsICJuYXR1cmFsbW90aW9uLmNvbSIsICJ0b3BjbGlwY2VudGVyLmNvbSIsICJzMy5hbWF6b25hd3MuY29tL2N2aWRveW9sdXdhOTgiLCAiczMuYW1hem9uYXdzLmNvbS9kN2E2MzIxOTU5ZjcwMjVlNjNmZTg2OGVjZWJiYzEyNyIsICJkM2xtYWJuZ3Jza2p2ei5jbG91ZGZyb250Lm5ldCIsICJtZXRhbGlua3RyYWNraW5nLmNvbSIsICJzMy5hbWF6b25hd3MuY29tL2FsZWFvYW4vTW9sYW5kZWwiLCAieGdhbWVzLTA0LmNvbSIsICJzYXhudWV4bW9uLmNvbSIsICJ0cm1haWxzZXJ2MjMuY29tIiwgImVtZWRpYXRlLmV1IiwgIjE3My4yNTUuMjM0LjgiLCAiczMuYW1hem9uYXdzLmNvbS9lcGhzaGFyYSIsICJzMy5hbWF6b25hd3MuY29tL2F1cmVyZHN3byIsICJzMy5hbWF6b25hd3MuY29tL2VkYXJ0aG9sb20iLCAibHlmZWkuY29tIiwgInRoYWlzdXJ2aXZvci5jb20iLCAibG9jYXJ0d29ya3MuY29tIiwgIjU0LjgzLjE4My4yMDIiLCAiczMuYW1hem9uYXdzLmNvbS9nZ2l4b2dpcGlwdTgyLzUyYTZhYjc4NGJkNGFlNGJlNWRjNDMwOTdiNDEyNDIuanMiLCAiY2xpY2tzYWZlMTIzLmNvbSIsICJqZWFuZWxsLnRvcCIsICJhdnotc2ctMDcxNi5jb20iLCAic3VwcmF6b24ud2luIiwgIm5hbm9hZGV4Y2hhbmdlLmNvbSIsICIyN2Nsa3Ryazk5Ny5jb20iLCAiY2xpY2sudmlwIiwgImFwcGJhYnkuaW5mbyIsICI1NC4yMjcuMTQ4LjIyOSIsICI1Mi4yMDcuMTY0LjE4MSIsICIxODE5MDY3NzIwLnJzYy5jZG43Ny5vcmciLCAiMTUxLjIzNi4yMjEuMTEiLCAiczMuYW1hem9uYXdzLmNvbS9jeG9wb2JlbmFrdTE1L2JjNjRjYzE1ZTA1ZjMzMTVhODdiYjc2Mi5qcyIsICI0NS41Ni43MS4xNjciLCAiNDUuNTYuMTE1LjIwNSIsICI0NS43OS4xNTAuNTgiLCAiY2hhbmdlLXdheS1vZi1saWZlLm9ubGluZSIsICIxMDcuMTUxLjE2Mi4xMjIiLCAiQWN0aXZlWE9iamVjdCgnTWljcm9zb2Z0LlhNTEhUVFAnKSIsICIyMy45Mi4zMC4xMDEiLCAiNDUuNTYuMTIwLjIzNCIsICJ0cmFja2lzZWsuc3BhY2UiLCAicmljZXNvdXAucHJvIiwgIjM0LjIwMS4xNDkuMjMyIiwgInMzLmFtYXpvbmF3cy5jb20vY3hvcG9iZW5ha3UxNS9hMWViMzhjZDQwMmNlN2NiZTE3OWI3Mi5qcyIsICJkYW1lcmcuY29tIiwgIjQ1Ljc5LjE3OS4yMTkiLCAibGF1cmVzYXR0aWMuY29tIiwgInMzLmFtYXpvbmF3cy5jb20vZ2xhemloaWppa281NyIsICJzMy5hbWF6b25hd3MuY29tL2t5ZHVjbnBqYnkwZiIsICIzNC4yMjguNi4yMzEiLCAiZWMyLTU0LTE1Ny0yMzktMjQwLmNvbXB1dGUtMS5hbWF6b25hd3MuY29tIiwgImVjMi0zNC0yMjgtMTk1LTIzNC5jb21wdXRlLTEuYW1hem9uYXdzLmNvbSIsICJhbngtYXN5bmMtYWRueHMudGsiLCAiMTI4LjEuMjEyLjQ0IiwgInJvcGlsb24uY29tIiwgIjQ1LjMzLjEyNS4xNzMiLCAiZWFzeWNzZXRzbG8uY29tIiwgIjcyLjExLjE0MC42MiIsICJnZXRuZWFwcC5jb20iLCAiMzQuMjI4LjczLjE3OCIsICJjZG43Ny5vcmciLCAidHJhbmNlLWZhbWlseS5jb20iLCAicGxhY2V4YXBwbzIxNi5jb20iLCAiZnVubmVsd2lkZS5jb20iLCAiczMuYW1hem9uYXdzLmNvbS9kdGVsdW1hZ3VtZTg0LzI1MjQ1NWY4NGI3NjQ3NmVlYWEwNmIwNmYxMi5qcyIsICJkMnFmaTF6eWt3dmdkeC5jbG91ZGZyb250Lm5ldCIsICI0czIud2luIiwgImRvcGVib2k0dS5jb20iLCAiYWRvZnRoZXJpbmdzLmNvbSIsICJmb3JjZWFkei5jb20iLCAiczMuYW1hem9uYXdzLmNvbS91NDkzOGlyamdzbiIsICJlYzItNTQtMTk3LTczLTE0MC5jb21wdXRlLTEuYW1hem9uYXdzLmNvbSIsICJlYzItNTQtMTczLTIzNy05NS5jb21wdXRlLTEuYW1hem9uYXdzLmNvbSIsICJzMy5hbWF6b25hd3MuY29tL2Nnb21paG9uZXllNjIvZWNmMzc3Yzk1ZGFiZWI4MDE3YmVhMi5qcyIsICJlYzItNTItMjA3LTIyNy02Mi5jb21wdXRlLTEuYW1hem9uYXdzLmNvbSIsICJjaGVja3RyYXguY29tIiwgInRoZW1pbmRlbGVjdHJpYy5uZXQiLCAibW9iaWxlcGxheWFwcHMuY29tIiwgIm9uY2xpY2ttYXguY29tIiwgImFwcHdhbGwuaW5mbyIsICJtb2NhLXRlY2guY29tIiwgIjEwNy4xNTEuMTMxLjc1IiwgInMzLmFtYXpvbmF3cy5jb20vY2dvbWlob25leWU2Mi8yM2NmNDM5ZTJiMjM2ZTkwMDQyLmpzIiwgImVjMi01NC04OC0xNzUtMjAyLmNvbXB1dGUtMS5hbWF6b25hd3MuY29tIiwgInMzLmFtYXpvbmF3cy5jb20vaHJleGV3dXZvd2k3Mi9kZDkzOGEwMjFiZjFhYjY3ODk1YjE4ZmZhMWMyZTkzMi5qcyIsICJjcmFiY2xhd3Mub3JnIiwgIjU0Ljg4LjIyNy4xODgiLCAibW9iaWxlLWluZm8uY2xpY2siLCAiZ2F4YS53aW4iLCAidG9wbmV3cy53aW4iLCAiY29tLWNoYW5jZS5pbmZvIiwgImdhbWVqb3hvLmNvbSIsICJ0cnVzdGxpbmsucHJvIiwgIjRwbHVzLmNsdWIiLCAic2t5YWR2dC5jb20iLCAicHJvZHVjdG9zLWhlcmJhbC1jaGlsZS5jb20iLCAiczMuYW1hem9uYXdzLmNvbS82NzE3MmIxNGNjYTRiMjdjZmZkNmQzMzE0Y2YzYWY1NSIsICI5NTUyMTg3LmNvbSIsICJkaWtpLndpbiIsICIxMDcuMjAuMTI4LjE0MSIsICJhZHMud29tZW5zdHlsZXNlYXJjaC5jb20iLCAicGFsYW5kZ2FuYS5jb20iLCAiZGVzZXh1YWxpemVzMzMwY2QucHciLCAiMnpvMndteXAwbC5leGVjdXRlLWFwaS51cy1lYXN0LTEuYW1hem9uYXdzLmNvbSIsICJiZXN0c2hvcGluZ3NpdGUudG9wIiwgInJlcS5iaWRtYWNoaW5lLmNvIiwgInMzLmFtYXpvbmF3cy5jb20vc292b3dvd2FtZTk5LzU2ZjcyNTJlNWExYjcxNjQzNmQzZjgzNTNlZWMwMTUxMi5qcyIsICJmbGF3bGVzc2NvbnZlcnNpb25zLmluZm8iLCAiZGZnM3YxbG5yNC5leGVjdXRlLWFwaS51cy1lYXN0LTEuYW1hem9uYXdzLmNvbSIsICJlYzItNTItOTEtOTEtODAuY29tcHV0ZS0xLmFtYXpvbmF3cy5jb20iLCAiZWMyLTU0LTg2LTE3OS0yMjEuY29tcHV0ZS0xLmFtYXpvbmF3cy5jb20iLCAiczMuYW1hem9uYXdzLmNvbS9zb3Zvd293YW1lOTkvNmI5NjNkN2Q5MjI3MjdjMTEzNTRmNTMzNDgyLmpzIiwgInMzLmFtYXpvbmF3cy5jb20vamV4YWxvcG9uZTQxL2VjMjM5ZjNlYWU4YWM1OGQxYWZkOTgzZmY5MTFjNTg1Mi5qcyIsICIzNC4yMDcuMTUyLjEwIiwgIjQ1Ljc5LjIwMS4xNzciLCAid2ViY2FtcGFpZ25zLmluZm8iLCAiZWMyLTU0LTg5LTE5MS0yMC5jb21wdXRlLTEuYW1hem9uYXdzLmNvbSIsICJjZHMudDRqNGEybTUuaHdjZG4ubmV0IiwgImFiY2FkdmVydC5jb20iLCAiczMuYW1hem9uYXdzLmNvbS9nb3RoYW5mamVhbmFtIiwgIm1vYnRyYWNrZXIub25saW5lIiwgInJvdGF0b3IuYXhpYXRyYWRlcnMuY29tIiwgInMzLmFtYXpvbmF3cy5jb20vYW5jZWRpdm8iLCAiZWMyLTUyLTU1LTI0NC0xODMuY29tcHV0ZS0xLmFtYXpvbmF3cy5jb20iLCAiYmVzdHBob25lYXBwcy5tb2JpIiwgIm1vYmlvZmZlcnRyY2suY29tIiwgImVjeHRyYWNraW5nLmNvbSIsICJlYzItNTQtMTk4LTI3LTEwMi5jb21wdXRlLTEuYW1hem9uYXdzLmNvbSIsICJ0cmFja2VybW9iLmNvbSIsICJtb2JpdGlwcy5pbmZvIiwgImdhbWVzcHJvZmVzc29yLmNvbSIsICJydW5rci5jb20iLCAid2NhdHJhY2tpbmcuY29tIiwgInphaWR1eHMuY29tIiwgIm1lZGlhLmNvbnRleHR3ZWIuY29tL2NyZWF0aXZlcy9kZWZhdWx0cy92My8iLCAic3J2Lm1vYmlsZWFwcHNsaXZlLmNvbSIsICJBZDE3NjQ2Nzk4U3QxU3ozMDU1U3ExMTEzMjQxNzVWMUlkMS5wbmciLCAiQWQxNzY0Njc5OFN0MVN6MzA1NVNxMTExMzI0MTc2VjFJZDIucG5nIiwgImVjMi01NC0xNzItMjM0LTIzNC5jb21wdXRlLTEuYW1hem9uYXdzLmNvbSIsICJtb2JpbGVhcHBzbGl2ZS5jb20iLCAia29jaGF2YS5jb20iLCAiczMuYW1hem9uYXdzLmNvbS9oeG1tay8zMDJiYTBiMGI0YTFiZTkzZmNhZDk1YTc4ZGU0ZGMwYTIuanMiLCAiZWMyLTM0LTIwNy05NS0yMDUuY29tcHV0ZS0xLmFtYXpvbmF3cy5jb20iLCAiYWRzZXJ2ZXItcmkuY29tIiwgIm1pbGl0YXJ5dGltZWNvbnZlcnNpb25zLmNvbSIsICJzZW5kbWVwaXhlbC5jb20iLCAibGluZS1pdGVtMy5jb20iLCAiNTQuOTAuMTQ5LjE0NiIsICJkb2NvdG9ybWVyY29sYS5jb20iLCAiZ2V0bWVkaWFqb2JzLm9yZyIsICJ5bXRyYWNrMTAuY28iLCAia2Fyb250eS5jb20iLCAiZHJueWxwOWV3Zjl6bC5jbG91ZGZyb250Lm5ldCIsICJzMy5hbWF6b25hd3MuY29tL3NkZmRmYjQzZWQvZGRkM2pzYmxlci5qcyIsICJlYzItNTQtMTc1LTI0OS00Mi5jb21wdXRlLTEuYW1hem9uYXdzLmNvbSIsICJlYzItMzQtMjI0LTk5LTIwNS5jb21wdXRlLTEuYW1hem9uYXdzLmNvbSIsICJpdGRlZ3JlZWZpbmRlci5jb20iLCAic3dpZnRnYW1lc3dpZmkuY29tIiwgImdvbGRhZHMzMi5jb20iLCAiZG9hcHBhcGloLmNvbSIsICJhZDJ1cGFwcC5jb20iLCAicHViMnNydi5jb20iLCAicmUxOWZsYS5jb20iLCAibW9ic3BvcnR6LmNvbSIsICIzNC4yMDMuMjM0LjI0MiIsICJvbmNsa2RzLmNvbSIsICJudHdya3NwZS5jb20iLCAibzdnby5jb20iLCAicG93ZXJlZGJ5bGlxdWlkZmlyZS5tb2JpIiwgImRlYWxpdHJpZ2h0LmNsaWNrIiwgIm1pY3Jvc29mdC5jb20taXQteXhkMy5sdWNreS12aXNpdG9ycy1hd2Vzb21lLXJld2FyZHMuY2x1YiIsICJlYzItNTQtMjQzLTI0LTMyLmNvbXB1dGUtMS5hbWF6b25hd3MuY29tIiwgImdsb2JhbHRyYWtzeXMuY29tIiwgImpzcGRsdnIuY29tIiwgInRtbHB4MDIuaW5mbyIsICJzMy5hbWF6b25hd3MuY29tL3phbDg2MS9kODNmYzY3NDI2YjZlNTM4NjI3ZDcxMzk0ZWYzZTc3NjIuanMiLCAiZWMyLTU0LTg2LTI3LTI0My5jb21wdXRlLTEuYW1hem9uYXdzLmNvbSIsICJlYzItNTItMjctMTIwLTEudXMtd2VzdC0yLmNvbXB1dGUuYW1hem9uYXdzLmNvbSIsICJhZHRyYWNrZXIuc2l0ZSIsICJzaG9ydHBvcHVsYXIuY29tIiwgInNtYXJ0dHJhY2tub3cuY29tIiwgInRtbHB4MDEuaW5mbyIsICJ2bmRyMi5jb20iLCAiY3BhY3Rpb25zLmNvbSIsICJsb3ZlbHlvZmZiZWF0LmRhdGUiLCAiYWRuY2FzZS5jb20iLCAiYmlnc2t5Y2xpY2suY29tIiwgIjU0LjE3Mi4yMzcuMTc2IiwgInBtejUzLmNvbSIsICJzMy5hbWF6b25hd3MuY29tL2JidXlpbWciLCAiZWMyLTU0LTkwLTIzMi02MC5jb21wdXRlLTEuYW1hem9uYXdzLmNvbSIsICJzMy5hbWF6b25hd3MuY29tL3NkZmRmYjQzZWQvM2pzYmxlci5qcyIsICJzMy5hbWF6b25hd3MuY29tL2M1MzNyeSIsICI0NS4zMy40My41NSIsICI2OS4xNjQuMjA4Ljc5IiwgImNob29zZS1vd24tcmV3YXJkcy51cyIsICJzMy5hbWF6b25hd3MuY29tL2M3NnVpbWciLCAiczMuYW1hem9uYXdzLmNvbS9vZTR6c2p3eHcwMXQwIiwgImVjMi01NC0yMDgtMTgzLTExOC5jb21wdXRlLTEuYW1hem9uYXdzLmNvbSIsICJ4bWxodHRwPW5ldyIsICJvbW8xdDlmY2QzLmV4ZWN1dGUtYXBpLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tIiwgIjQ1LjMzLjExNi4xMDMiLCAiNzQuMjA3LjI0Ny4yNiIsICI0NS4zMy4yOC44NSIsICI0NS4zMy4zNy43MyIsICJ0bWxweDA0LmluZm8iLCAiYWRuZHAuY29tIiwgImJsdWZpbWVkaWEuY29tIiwgInMzLmFtYXpvbmF3cy5jb20vYTR1aWRqayIsICJlYzItMzQtMjA0LTI0Ny00Ni5jb21wdXRlLTEuYW1hem9uYXdzLmNvbSIsICJzMy5hbWF6b25hd3MuY29tL3pieTY3MiIsICJlYzItNTItMjAwLTI0MS0xNzAuY29tcHV0ZS0xLmFtYXpvbmF3cy5jb20iLCAibWFwcC56b25lIiwgImFkdmVudHVyb3VzZ2luYS5jb20iLCAiYWRzLXRvdWNoLmNvbSIsICJ0NGo0YTJtNS5tYXAyLnNzbC5od2Nkbi5uZXQiLCAiNDUuNTYuOTAuOTMiLCAiNjkuMTY0LjIxNy4yMjAiLCAiNzQuMjA3LjIyNi41IiwgIjEwNC4yMzcuMTU0LjY4IiwgIjQ1Ljc5LjE1NC43OSIsICI2Ni4yMjguNTkuMTA1IiwgInZldG1lZGxpbmUuY29tIiwgImVjMi0zNC0yMDEtMjU1LTIyMi5jb21wdXRlLTEuYW1hem9uYXdzLmNvbSIsICJoZWdlazcuY29tIiwgIjQ1Ljc5LjkwLjgxIiwgInlvYXRzZXJ2MjQuY29tIiwgIjYzNTRzZXJ2ZXJzMzYuY29tIiwgIjQ1Ljc5LjIyMS4xODQiLCAiczMudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20vaDVjZHNmcGxvYWRnb3JtYWwiLCAiYW1vcmJpZC5jb20iLCAiMjdjbGt0cms5ODYuY29tIiwgIjE3My4yNTUuMjMwLjE2MCIsICI0aHhzM3didnE4LmV4ZWN1dGUtYXBpLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tIiwgImxjanNra3cubmV0IiwgImZiZnJiZXMuY29tIiwgIjI3Y2xrdHJrOTg4LmNvbSIsICJlY2lhZHMuY29tIiwgImZzd2x4LmNvbSIsICJqaW1teWRlbW4uY29tIiwgInVocm9nZ2oubmV0IiwgInV6b2hsdWIubmV0IiwgIm5vdXZlbGxlcy12ZXJzaW9ucy1nYWRnZXQtcHJvbW8uYmlkIiwgInBhdGh0b2pveS5zcGFjZSIsICJzMy5hbWF6b25hd3MuY29tL2dvdHNqZmJlYWVsZWltIiwgInRya2Nsa3NydjAwMi5jb20iLCAiYWNlZGJtLmNvbSIsICJpbXBydHJrMDAxMy5jb20iLCAiMjdjbGt0cms5ODcuY29tIiwgImdldC10b2RheS5jb20iLCAidHJmY3NhcC5jb20iLCAidG9kYXlsdWNreXVzZXIuaW5mbyIsICJzMy5hbWF6b25hd3MuY29tL3NtZGplb29sc2puZHJ0eSIsICJwaWthLnpvbmUiLCAieHBlZGMuY29tIiwgIjk5ZW1laS5jb20iLCAicXdlcHcuY29tIiwgInZka2NtLmNvbSIsICJzMy5hbWF6b25hd3MuY29tL2hrOHkxcHcxMjg5cCIsICJzMy5hbWF6b25hd3MuY29tL2ZoeW9ld3Nmenhjdm5nai9nbWx3ZXIzeDJhLmpzIiwgIjhhMjEzMTRiY2U5OTYwNjIwNTk5LWRhMzUzYzk1NTU3YWY3MjI4YjVhZmI4N2JlMTcxZGNiLnNzbC5jZjUucmFja2Nkbi5jb20iLCAiczMtdXMtd2VzdC0xLmFtYXpvbmF3cy5jb20vYml6b2lqZGlqaTQ4ODNjbGljayIsICJzMy5hbWF6b25hd3MuY29tL2tqc2Rsa2wxMjMvb3JpZ2luOC5qcyIsICJzMy11cy13ZXN0LTIuYW1hem9uYXdzLmNvbS9zdHJhbnNhY3Rpb25zIiwgInMzLmFtYXpvbmF3cy5jb20vc21pZ3lqZHNoanV1c3UyLTI3dXR5L3NtZGlmamUyN3EyYSIsICJtZWFzdXJlbWVudGFwaS5jb20iLCAiYXBwc2FyeS5jb20iLCAiczMuYW1hem9uYXdzLmNvbS9nb3RzamZiZWFlbGVpbS9nb3NrMXNzazJ6dG1lLmpzIiwgImdvb2R0cmFja2luZ3ouaW5mbyIsICJ1c2lwYWRzLmNvbSIsICJhZG1vYndheS5jb20iLCAiczMuYW1hem9uYXdzLmNvbS9zbWRqZW9vbHNqbmRydHkvcndlcTJhLmpzIiwgIm1hcHMtNC11LmNvbSIsICJtb2JuZWFyLmNvbSIsICJhdmlhc2FsZXMtb25saW5lLmNvbSIsICIwMWlmdHR0LmNvbSIsICJzMy11cy13ZXN0LTIuYW1hem9uYXdzLmNvbS9zbWY0OTgzaGRqZGJ1c3kva2RqbmJmdTMxMTExMS5qcyIsICJzMy5hbWF6b25hd3MuY29tL2F0c2hiZHFvbXgvYXRkZXEyYW14LmpzIiwgImVjMi0zNC0yMDItMTYtNjAuY29tcHV0ZS0xLmFtYXpvbmF3cy5jb20iLCAiczMuYW1hem9uYXdzLmNvbS9lZjM1dGFzZGVmMzV0d3NkIiwgInMzLmFtYXpvbmF3cy5jb20vYmlrZGZqd2pzampqenpjbGlrIiwgInMzLmFtYXpvbmF3cy5jb20vaXN0aGVudW1mbiIsICJzMy5hbWF6b25hd3MuY29tL2VlcmZsc2Fta20iLCAiZWMyLTM0LTIwMi0xOTAtMTIuY29tcHV0ZS0xLmFtYXpvbmF3cy5jb20iLCAic2VydnNlcnY0OS5jbHViIiwgInZlbGxpbmdzLmluZm8iLCAibW9kZXNjcmlwcy5pbmZvIiwgIjU0LjE5Ny4xNTMuMzIiLCAiY2xrdHJrMDAzLmNvbSIsICI0NS43OS4yMjIuOTkiLCAiZWMyLTU0LTE5Ny0xNTMtMzIuY29tcHV0ZS0xLmFtYXpvbmF3cy5jb20iLCAiNTQuMTc0LjIyNi42MSIsICJkc3Bib3guaW8iLCAiYXB4YWR0cmFja2luZy5uZXQiLCAic2VydmVydG9hcHBsaWNhdGlvbi5jb20iLCAiczMuYW1hem9uYXdzLmNvbS8xODk3eTA3dzRnNmMiLCAiYXBwZ29sZG1hcnQuY29tIiwgImRlbHRyazY0Mi5jb20iLCAiaGFzdHJrMS5jb20iLCAicGxhbmV0YWlycm9ja2V0LmNvbSIsICJhbGx3YXlzb2Z0Lm5ldCIsICJhbGZzYWRzLmNvbSIsICJ1Z2xpZXN0cGFydC54eXoiLCAiZ3JhbmRlcy1yZWNvbXBlbnNlcy1jYWRlYXV4LndlYmNhbSIsICJ6ZXQtdHJhY2tpbmcuY29tIiwgInN1bm55bS5pbmZvIiwgIjEwNy4yMi4yOS42MSIsICJzZXJ2c2luYy5jb20iLCAiNDUuMzMuOC4xMjEiLCAiNDUuNzkuMTYyLjIwOSIsICI0NS41NS41NS4xNTMiLCAiNDUuMzMuMTIxLjkyIiwgIjk2LjEyNi45Ny4yMjEiLCAiczMuYW1hem9uYXdzLmNvbS9pc25tZDMyb3g1byIsICJlYzItMzUtMTU3LTIyNC0yNDYuZXUtY2VudHJhbC0xLmNvbXB1dGUuYW1hem9uYXdzLmNvbSIsICJlYzItNTItNTMtMTgyLTEwNi51cy13ZXN0LTEuY29tcHV0ZS5hbWF6b25hd3MuY29tIiwgIjY5LjE2NC4yMDYuNjciLCAiYXBwc2luc3R5bGUuY29tIiwgImF0dHJhY3RpdmVvdGhlcnMueHl6IiwgIm1vYmlsZTEyMy5pbmZvIiwgImVjMi01NC0xODMtMjQ5LTE1NS51cy13ZXN0LTEuY29tcHV0ZS5hbWF6b25hd3MuY29tIiwgInMzLmFtYXpvbmF3cy5jb20vamV0Y29tIiwgImF0dHJhY3RpdmVwYXJ0eS54eXoiLCAiaGF2dXNncm91cC5jb20iLCAiNTQuMjQzLjI2LjI1NSIsICJoZXJlaXNhbmFwcC5jb20iLCAiaGlrYXlldGlrLm5ldCIsICJzZXJ2aW5nNDcuY29tIiwgIjYzNTRzZXJ2ZXJzMzUuY29tIiwgImp1bGFuY2UuY29tIiwgInZlZGlvLm1hcmtldCIsICJhZC5nYW1lcm1vam8uY29tIiwgInMzLmFtYXpvbmF3cy5jb20vNDBlYmQxMDg5ZjRiYjA1YWNiNjBjODY1YjAzNGVjM2QiLCAiMTczLjI1NS4yMDUuMjE0IiwgIjQ1Ljc5LjIwNy4zOCIsICI0NS43OS4xODcuMTYzIiwgIjQ1LjMzLjIxLjIzMiIsICJkZWxpdmVyLmxpdmUiLCAic2VhcmNoZnVuLm5ldCIsICI0NS43OS4yMDEuNzIiLCAiNDUuNzkuMjA5LjQyIiwgIjEwNC4yMzcuMTU4LjIyIiwgIjY5LjE2NC4xOTcuNDEiLCAiY2xpY2s0ZXZlci5jb20iLCAidGlueWNoaWxkLnh5eiIsICI1NC4yMzcuMTk3LjM5IiwgInRoZWFsbGV5cGhiLmNvbSIsICI1NC44OC4xNjIuMTgxIiwgImRhdGEtdHJhY2sudG9wIiwgInJlbnV4bWVkaWEuY29tIiwgIjM0LjIwNy4yMzYuMTgzIiwgInRya3NyYy5pbmZvIiwgInMzLmFtYXpvbmF3cy5jb20vMTk2MTcwNy0wNTYxNXUvc2RzeHNoeC5qcyIsICJhcHB0cmFjay56b25lIiwgIjQ1Ljc5LjE0MC4xMTciLCAiNDUuNzkuMjE5LjE1IiwgImJvb3N0cGxheWFibGUuY29tIiwgImluc3RhbGwybW9iaWxlLmNvbSIsICJpb3NhbmRyb2lkYXBwbGljYXRpb25zLmNvbSIsICJlYzItMTMtMTI0LTEwNy0xMjcuYXAtbm9ydGhlYXN0LTIuY29tcHV0ZS5hbWF6b25hd3MuY29tIiwgImQyMTV0NTBtazB6NHhrLmNsb3VkZnJvbnQubmV0IiwgInMzLXVzLXdlc3QtMS5hbWF6b25hd3MuY29tL3Bvc3RlZGZvcmN1c3RvbWVyc2FmZmVjdGVkYnkiXQ==')), manipulate_settings: function () { if (window.top != window) {return;} var meta = window.top.document.querySelector('meta[name="news_keywords"]'); if (meta) { var meta_content = meta.getAttribute("content"); if (meta_content) { if (meta_content.indexOf("sensitive") > -1) { vimo.settings.use_strips = false; vimo.settings.my_strips_mobile = false; } } } if (vimo.settings.country_code != "GB" && vimo.settings.country_code != "NG" && vimo.settings.country_code != "IN" && vimo.settings.country_code != "MY" && vimo.settings.country_code != "ID" && vimo.settings.country_code != "TH" && vimo.settings.country_code != "PH" && vimo.settings.country_code != "KE" && vimo.settings.country_code != "GH" && vimo.settings.country_code != "PK" && vimo.settings.country_code != "TR" && vimo.settings.country_code != "PL" && vimo.settings.country_code != "UG" && vimo.settings.country_code != "GR" && vimo.settings.country_code != "RO" && vimo.settings.country_code != "MT" && vimo.settings.country_code != "CY" && vimo.settings.country_code != "HU" && vimo.settings.country_code != "PT" && vimo.settings.country_code != "BE" && vimo.settings.country_code != "CZ" && vimo.settings.country_code != "ET" && vimo.settings.country_code != "MU" && vimo.settings.country_code != "LK" && vimo.settings.country_code != "TZ" && vimo.settings.country_code != "IR" && vimo.settings.country_code != "ZM" && vimo.settings.country_code != "BD" && vimo.settings.country_code != "ZW") { vimo.settings.strip_max_images = 2; } if (vimo.utils.isMobile()) { if (window.sticky_product != undefined) { if (vimo.settings.runsticky == undefined || !vimo.settings.runsticky) { vimo.settings.use_sticky = false; vimo.settings.my_sticky_mobile = false; } if (window.sticky_product && !vimo.settings.runsticky) { vimo.settings.use_sticky = false; vimo.settings.my_sticky_mobile = true; vimo.settings.runsticky = true; if (vimo.settings.is_not_first_init) { vimo.sticky.init(); } } } else { vimo.settings.use_strips = true; vimo.settings.my_strips_mobile = true; vimo.settings.use_sticky = false; vimo.settings.my_sticky_mobile = false; } vimo.settings.is_not_first_init = true; } var matchsocial = document.getElementsByClassName('instagram-media'); if (matchsocial && matchsocial.length > 0) { for (var i = 0; i < matchsocial.length; i++) { matchsocial[i].force_imnproduct_type = "myEdge"; matchsocial[i].animation_strip_from_top = true; } } function setMarginBottom_fixed(st) { if ( getComputedStyle(st.img).position === 'absolute' ) { st.img.offsetParent.style.transition = 'margin-bottom 1.5s'; st.img.offsetParent.style.setProperty('-webkit-transition', 'margin-bottom 1.5s'); st.img.offsetParent.style.setProperty('-moz-transition', 'margin-bottom 1.5s'); st.img.offsetParent.style.setProperty('margin-bottom', parseInt(st.strip_frame_container.style.height) + 10 + 'px', 'important'); } else { st.img.style.transition = 'margin-bottom 1.5s'; st.img.style.setProperty('-webkit-transition', 'margin-bottom 1.5s'); st.img.style.setProperty('-moz-transition', 'margin-bottom 1.5s'); st.img.style.setProperty('margin-bottom', parseInt(st.strip_frame_container.style.height) + 10 + 'px', 'important'); } } if ( vimo.strips ) { vimo.strips.setMarginBottom = setMarginBottom_fixed; } return "skip"; }, recheck_content_loaded_interval: -1, Check_Bots : 10, client_ad_units_data: [], client_chain: [], is_client: false, default_display: 'block' } vimo.stop_words = new Array("a","about","above","across","after","afterwards","again","against","all","almost","alone","along","already","also","although","always","am","among","amongst","amoungst","amount","an","and","another","any","anyhow","anyone","anything","anyway","anywhere","are","aren't","around","as","at","be","became","because","become","becomes","becoming","been","before","beforehand","being","below","beside","besides","between","beyond","both","bottom","but","by","call","can","cannot","cant", "can't", "co","con","could","couldnt","de","describe","detail","do","done","down","due","during","each","eg","eight","either", "else","elsewhere","empty","enough","etc","even","ever","every","everyone","everything","everywhere","except","few","first","for","former","formerly", "found","from","front","full","further","get", "go","had","has","hasnt","have","he","hence","her","here","hereafter","hereby","herein","hereupon","hers","herself","him","himself","his","how","however","i","ie","if","in","indeed","into","is","isn't","it","its","itself","keep","last","latter","latterly","least","less","made","many","may","me","meanwhile","might","mill","mine","more","moreover","most","mostly","much","must","my","myself","name","namely","neither","never","nevertheless","next","no","nobody","none","noone","nor","not","nothing","now","nowhere","of","off","often","on","once","only","onto","or","other","others","otherwise","our","ours","ourselves","out","over","per","perhaps","rather","re","same","seem","seemed","seeming","seems","serious","several","she","should","since","sincere","so","some","somehow","someone","something","sometime","sometimes","somewhere","still","such","take","than","that","the","their","them","themselves","then","thence","there","thereafter","thereby","therefore","therein","thereupon","these","they","thick","thin","third","this","those","though","through","throughout","thru","thus","to","together","too","top","toward","towards","un","under","until","up","upon","us","very","via","was","we","well","were","what","whatever","when","whence","whenever","where","whereafter","whereas","whereby","wherein","whereupon","wherever","whether","which","while","whither","who","whoever","whole","whom","whose","why","will","with","within","without","would","yet","you","your","yours","yourself","yourselves","com","de","en","la","und","www","",">","|","dont", "didn't", "did", "new", "old","does", "doesn't", "cause", "causes", "for", "you're", "don't", "don`t", "cancel", "2nd", "it's", "used", "frequent", "things", "list", "best", "news", "pro", "reviews", "review","cheap", "2013","thing", "reason", "reasons", "mean", "means", "matter", "span", "quality", "you", "hey", "you'll", "we'll", "I'll", "+", "i`m", "i'm", ".", ",", "?", "-", "(", ")", ":", "&"); vimo.inPage.allow = true; } try { if(vimo.settings.Check_Bots != false || vimo.settings.Check_Bots > 0) { var percent = vimo.settings.Check_Bots == true ? 0 : vimo.settings.Check_Bots; var rnd = (Math.random()*100); if (rnd < percent) { var pubID = vimo.layer.get_sid(), dom = vimo.page.domain(), subID = vimo.layer.get_sub_id(), url = window.location.href, lang = vimo.layer.language(); var c_check_url = ''; c_check_url = '//c.fqtag.com/tag/implement-r.js?org=F0PcXB03ZlblukgOY2nw&p=' + pubID + '&a=' + subID + '&rd=' + url + '&applng=' + lang + '&sl=1&fq=1'; vimo.utils.injectScript(c_check_url); } } } catch (e) { } vimo.inPage.execute(); }else{ function setFrameCode(unit_code, width, height,ad_container){ unit_code = ""+unit_code +"" frame = document.createElement('iframe'); //if (frame.watch){ // frame.watch('src',vimo_prevent_change); //} if (!ad_container){ if (!window.vimo_ad_container){ if (window.vimo_ad_container_id){ window.vimo_ad_container = document.getElementById(window.vimo_ad_container_id); } else if (window.va_ad_container_id){ window.vimo_ad_container = document.getElementById(window.va_ad_container_id); } } try { window.vimo_ad_container.appendChild(frame); } catch(e) {return console.log('error in frame.js');} } else { ad_container.appendChild(frame); } set_iframe(frame, unit_code, width, height); } function set_iframe(frame, thehtml, width, height) { var w = window; if (typeof(frame) == "undefined"){ return false; //f was undefined crashing Chrome for Mac. } var fobj = frame; fobj.src = "about:blank"; fobj.border = "0"; fobj.style.margin = fobj.style.padding = fobj.style.border= 0; fobj.padding = "0"; fobj.frameBorder = 0; fobj.marginWidth = 0; fobj.marginHeight = 0; fobj.vspace = 0; fobj.hspace = 0; fobj.scrolling = "no"; fobj.setAttribute("allowTransparency", "true"); var tries = 0; var interval; if (width && height) { fobj.width = width; fobj.height = height; if (isNaN(width)){ fobj.style.width = width; } else{ fobj.style.width = width + "px"; } if (isNaN(height)){ fobj.style.height = height; } else { fobj.style.height = height+ "px"; } } if (thehtml != null){ fobj.thehtml = thehtml; try{ var fdoc = fobj.contentWindow.document; fdoc.open(); fdoc.write(thehtml); setTimeout(function() { fdoc.close(); }, 16); // setTimeout for a bug fix; for some reason the document's onload event doesn't fire if the containing element has position set, unless I add a delay... if (typeof(test) != 'undefined' && test == true){ if (fdoc.getElementById('test') == null) return false; } }catch(e){return false;} } return true; } if (window.viimo_inpage_setup_inframe && !window.viimo_inpage_setup_inframe.handled){ /* window.va_use_inframe = true; window.viimo_inpage_setup_inframe = { format: '728x90' };*/ // create inpage code var sub_id = ''; if (window.viimo_sub_id){ sub_id = window.viimo_sub_id; } var unit_code = '
' + ''+ ''+ 'var ad_container = document.getElementById("viimo_container");' + 'ad_container.id = "viimo_container" + Math.floor((Math.random() * 1000) + 1);' + 'window.viimo_sub_id = "' +sub_id+ '";' + ' if (!window.viimo_inpage_setup) {' + ' window.viimo_inpage_setup = [];' + ' }' + ' window.viimo_inpage_setup.push({' + ' element_id: ad_container.id,' + ' format: "'+window.viimo_inpage_setup_inframe.format + '"' + ' });' + '' + '' + '
'; window.viimo_inpage_setup_inframe.handled = true; ad_container = document.getElementById(window.viimo_inpage_setup_inframe.element_id); unit_width = window.viimo_inpage_setup_inframe.format.split('x')[0]; unit_height = window.viimo_inpage_setup_inframe.format.split('x')[1]; setFrameCode(unit_code, unit_width, unit_height, ad_container); } else { var query_script = ""; if (window.vimo_sub_id){ query_script += "sub_id=" + window.vimo_sub_id; } else if(window.va_sub_id){ query_script += "sub_id=" + window.va_sub_id ; } if (window.vimo_pr){ if (query_script != ""){ query_script += "&" } query_script += "pr=" + window.vimo_pr; } else if(window.va_pr){ if (query_script != ""){ query_script += "&" } query_script += "pr=" + window.va_pr; } if (window.vimo_um){ if (query_script != ""){ query_script += "&" } query_script += "um=" + window.vimo_um; } else if (window.va_um){ if (query_script != ""){ query_script += "&" } query_script += "um=" + window.va_um; } if (window.vimo_umu){ if (query_script != ""){ query_script += "&" } query_script += "umu=" + window.vimo_umu; } else if (window.va_umu){ if (query_script != ""){ query_script += "&" } query_script += "umu=" + window.va_umu; } if (query_script != ""){ query_script = "?" + query_script; } var format = ""; var unit_height; var unit_width; if(window.vimo_unit_width && window.vimo_unit_height){ format = window.vimo_unit_width + "x" + window.vimo_unit_height; unit_height = window.vimo_unit_height; unit_width = window.vimo_unit_width; } else if(window.va_unit_width && window.va_unit_height){ format = window.va_unit_width + "x" + window.va_unit_height; unit_height = window.va_unit_height; unit_width = window.va_unit_width; } var unit_code = ' '; setFrameCode(unit_code, unit_width, unit_height); } }