1/*DO NOT HOST THIS SCRIPT ON YOUR OWN SERVER*/ 2var szmvars = ""; 3(function(global) { 4 var iomnames = "iom".split(',') || ['iom']; 5 iomnames = iomnames.length > 4 ? iomnames.slice(0, 3) : iomnames; 6 for (var i = 0, iLen = iomnames.length; i < iLen; i +=1) { 7 global[iomnames[i]] = (function () { 8 var domainPrefix = "6446ba9f", 9 dummySite = "dummy", 10 baseUrlDE = "de.ioam.de/tx.io", 11 baseUrlLSO = "de.ioam.de/aid.io", 12 optinUrl = "de.ioam.de/optin.php?re=", 13 qdsUrl = "irqs.ioam.de", 14 deBaseUrl = ".ioam.de/tx.io", 15 deBaseUrlLSO = ".ioam.de/aid.io", 16 deOptinUrl = ".ioam.de/optin.php?re=", 17 deSubdomain = ["imarex"], 18 cntBaseUrl = ".iocnt.net/tx.io", 19 cntBaseUrlLSO = ".iocnt.net/aid.io", 20 cntOptinUrl = ".iocnt.net/optin.php?re=", 21 cntQdsUrl = "irqs.iocnt.net", 22 cntSubdomain = ["at"], 23 eventList = ["", "inst", "init","open", "clse", "play", "resm", "stop", "fowa", "bakw", "recd", "paus", "forg", "bakg", "dele", "refr", "kill", "view", "alve", "fini", "mute", "aforg", "abakg", "aclse", "sple", "scvl", "serr", "spyr", "smdr", "sfpl", "sfqt", "ssqt", "stqt", "soqt", "sofc", "scfc", "scqt", "splr", "spli", "sprs", "spre", "smrs", "smre", "sors", "sore", "sack", "sapl", "sapa", "snsp"], 24 LSOBlacklist = [], 25 checkEvents = 1, 26 tb = 0, 27 sv = 1, 28 lastEvent = "", 29 emptyCode = "Leercode_nichtzuordnungsfaehig", 30 autoEvents = { 31 onfocus:"aforg", 32 onblur:"abakg", 33 onclose:"aclse" 34 }, 35 nt = 2, 36 cookiewhitelist = '[]'.match(/[A-Za-z0-9]+/g) || [], 37 cookieName = "ioam2018", 38 cookieMaxRuns = 0, 39 socioToken = "e2cc088542d6964469c9c3a4fec80995", 40 OptoutCookieName = "ioamout", 41 frequency = 60000, 42 hbiAdShort = 5000, 43 hbiAdMedium = 10000, 44 hbiAdLong = 30000, 45 hbiShort = 10000, 46 hbiMedium = 30000, 47 hbiLong = 60000, 48 hbiExtraLong = 300000, 49 heart, 50 maxSendBoxes = 10; 51 52 var IAMPageElement = null, 53 IAMQSElement = null, 54 qdsParameter = {}, 55 qdsPopupBlockDuration = 86400000, 56 result = {}, 57 mode, 58 eventsEnabled = 0, 59 surveyCalled = 0, 60 inited = 0; 61 62 var lsottl = 86400000, 63 lsottlmin = 180000, 64 ioplusurl = "me.ioam.de"; 65 66 var fpCookieDomain = getFpcd(location.hostname), 67 consentVendors = ('[730, 785]'.match(/[0-9]+/g) || []).map(function(vendor) { return parseInt(vendor, 10) }), 68 consentMaxCheckIntervals = parseInt('10', 10) || 10, 69 consentCheckIntervalLength = parseInt('60', 10) || 60, 70 cmpUiShownHandler = false, 71 consentCookieExpire = new Date(); 72 consentCookieExpire.setDate(consentCookieExpire.getDate() + 28); 73 var consentCookieOptions = { 74 name: 'iom_consent', 75 domain: fpCookieDomain.length > 0 ? fpCookieDomain.slice(7, fpCookieDomain.length - 1) : '', 76 expires: consentCookieExpire.toUTCString(), 77 path: '/' 78 }; 79 function setConsent(ct) { 80 processConsent(ct, { vendors: consentVendors, cookie: consentCookieOptions, resultKey: 'ct' }, result); 81 } 82 function loadConsentFromCookie(options) { 83 var value = ''; 84 var date; 85 var valueMatch = document.cookie.match(new RegExp('(^| )' + options.name + '=([^;]+)')); 86 var valueParts; 87 if (valueMatch) { 88 valueParts = valueMatch[2].split('&'); 89 value = valueParts[0]; 90 date = valueParts[1]; 91 } 92 return { 93 value: value, 94 date: date 95 }; 96 } 97 function writeConsentToCookie(consent, options) { 98 var now = Date.now(); 99 var cookie = ''; 100 Object.keys(options).forEach(function(key, index, keys) { 101 var option = options[key]; 102 if (key === 'name') { 103 cookie += option + '=' + consent + '&' + now; 104 cookie += index < keys.length ? '; ' : '' 105 } else { 106 if (option) { 107 cookie += key + '=' + option; 108 cookie += index < keys.length ? '; ' : '' 109 } 110 } 111 }) 112 document.cookie = cookie; 113 } 114 function checkForConsent(consentString, vendors, vendor, purpose,offset) { 115 var result = false; 116 if (typeof consentString === 'string' && consentString.length === 2 + vend
116ors.length * 4) { 117 var vendorIndex = vendors.indexOf(vendor); 118 if (vendorIndex > -1) { 119 var start = 2; 120 var end = start + ((vendorIndex + 1) * 4); 121 var consentVendorPart = parseInt(consentString.slice(start, end), 16); 122 var purposeBit = Math.pow(2, (purpose + offset)); 123 result = (consentVendorPart & purposeBit) === purposeBit; 124 } 125 } 126 return result; 127 } 128 function processConsent(consentString, consentOptions, iamResultSet) { 129 function extractConsentFromCmp(tcData, vendors) { 130 function extractPurposes(vendor, hasLegitimateInterest, hasSpecialFeatureOptins) { 131 function filter(data) { 132 return function(value) { 133 return data[value] === true; 134 }; 135 } 136 function mapper(offset) { 137 return function(value) { 138 var exp = (parseInt(value) + offset); 139 return Math.pow(2, exp); 140 }; 141 } 142 function merge(purposes1, purposes2) { 143 return purposes1.concat(purposes2.filter(function(item) { 144 return purposes1.indexOf(item) < 0; 145 })); 146 } 147 var purposes; 148 var legitimateInterests = []; 149 purposes = Object 150 .keys(tcData.purpose.consents) 151 .filter(filter(tcData.purpose.consents)) 152 .map(mapper(-1)); 153 if (hasLegitimateInterest) { 154 legitimateInterests = Object 155 .keys(tcData.purpose.legitimateInterests) 156 .filter(filter(tcData.purpose.legitimateInterests)) 157 .map(mapper(-1)); 158 } 159 if (legitimateInterests.length > 0) { 160 purposes = merge(purposes, legitimateInterests); 161 } 162 if (hasSpecialFeatureOptins) { 163 purposes = purposes.concat(Object.keys(tcData.specialFeatureOptins) 164 .filter(filter(tcData.specialFeatureOptins)) 165 .map(mapper(9))); 166 } 167 return purposes; 168 } 169 function createPurposesBitfield(purposes) { 170 var result = 0x0000; 171 for (var i = 0, iLen = purposes.length; i < iLen; i += 1) { 172 result |= purposes[i]; 173 } 174 return result; 175 } 176 function convertToConsentString(consent) { 177 function padStart(str, size) { 178 while (str.length < size) { 179 str = '0' + str; 180 } 181 return str; 182 } 183 var result = ''; 184 for (var i = 0, iLen = consent.length; i < iLen; i += 1) { 185 var hex = consent[i].toString(16); 186 var hexLen = 4; 187 if (i === 0) { 188 hexLen = 2; 189 } 190 hex = padStart(hex, hexLen); 191 result += hex; 192 } 193 return result; 194 } 195 var consent = [0x01]; 196 for (var i = 0, iLen = vendors.length; i < iLen; i += 1) { 197 var vendor = vendors[i]; 198 if (tcData.vendor.consents[vendor] === true || tcData.vendor.legitimateInterests[vendor] === true) { 199 var purposes = []; 200 var hasLegitimateInterests = tcData.vendor.legitimateInterests[vendor]; 201 var hasSpecialFeaturesOptins = Object.keys(tcData.specialFeatureOptins).length > 0; 202 purposes = extractPurposes(vendors[i], hasLegitimateInterests, hasSpecialFeaturesOptins); 203 consent.push(createPurposesBitfield(purposes)); 204 } else { 205 consent.push(0x0000); 206 } 207 } 208 return convertToConsentString(consent); 209 } 210 function createDefaultConsentString(vendors, hasApi) { 211 var result = ''; 212 for(var i = 0, iLen = vendors.length; i < iLen; i += 1) { 213 result += '0000'; 214 } 215 result = (hasApi ? '01' : '00') + result; 216 return result; 217 } 218 function handleConsentLoaded(currentConsentString, options, resultSet) { 219 return function(tcData, success) { 220 var noop = function() {}; 221 if (success && ['tcloaded', 'useractioncomplete'].indexOf(tcData.eventStatus) > -1) { 222 var extractedConsentString = tcData.gdprApplies 223 ? extractConsentFromCmp(tcData, options.vendors) 224 : createDefaultConsentString(options.vendors, true); 225 if (extractedConsentString !== currentConsentString) { 226 if (resultSet && options.resultKey) { 227 resultSet[options.resultKey] = extractedConsentString; 228 } 229 writeConsentToCookie(extractedConsentString, consentOptions.cookie); 230 } 231 __tcfapi('removeEventListener', 2, noop, tcData.listenerId); 232 } else { 233 var failedConsentString = createDefaultConsentString(options.vendors, true); 234 if (resultSet && options.resultKey) { 235 resultSet[options.resultKey] = failedConsentString; 236 } 237 writeConsentToCookie(failedConsentString, consentOptions.cookie); 238 } 239 }; 240 } 241 function handleCmpUiShown(currentConsentString, options, resultSet) { 242 return function(tcData, success) { 243 if (success && tcData.eventStatus === 'cmpuishown') { 244 __tcfapi('addEventListener', 2, handleConsentLoaded(currentConsentString, options, resultSet)); 245 } 246 } 247 } 248 function hasTcfApi() { 249 return '__tcfapi' in window; 250 } 251 var interval = 0; 252 var intervalCount = 0;
253 var storedConsentString = loadConsentFromCookie(consentOptions.cookie).value; 254 var defaultConsentString = createDefaultConsentString(consentOptions.vendors, hasTcfApi()); 255 if (hasTcfApi()) { 256 if (iamResultSet && consentOptions.resultKey) { 257 iamResultSet[consentOptions.resultKey] = storedConsentString || defaultConsentString; 258 } 259 __tcfapi('addEventListener', 2, handleConsentLoaded((storedConsentString || defaultConsentString), consentOptions, iamResultSet)); 260 if (cmpUiShownHandler === false) { 261 __tcfapi('addEventListener', 2, handleCmpUiShown((storedConsentString || defaultConsentString), consentOptions, iamResultSet)); 262 cmpUiShownHandler = true; 263 } 264 } else if (!hasTcfApi()){ 265 interval = setInterval(function() { 266 intervalCount += 1; 267 if (hasTcfApi() || intervalCount >= consentMaxCheckIntervals) { 268 clearInterval(interval); 269 processConsent(consentString, consentOptions, iamResultSet); 270 } 271 }, consentCheckIntervalLength); 272 } 273 if (consentString && consentString !== storedConsentString && hasTcfApi() === false) { 274 writeConsentToCookie(consentString, consentOptions.cookie); 275 if (iamResultSet && consentOptions.resultKey) { 276 iamResultSet[consentOptions.resultKey] = consentString; 277 } 278 } else if (!consentString && storedConsentString && hasTcfApi() === false) { 279 if (iamResultSet && consentOptions.resultKey) { 280 iamResultSet[consentOptions.resultKey] = storedConsentString; 281 } 282 } else if (!consentString && !storedConsentString && hasTcfApi() === false) { 283 writeConsentToCookie(defaultConsentString, consentOptions.cookie); 284 if (iamResultSet && consentOptions.resultKey) { 285 iamResultSet[consentOptions.resultKey] = defaultConsentString; 286 } 287 } 288 } 289 function enableEvents() { 290 if ((tb == 1 || result.tb == "on") && result.tb != "off" && !eventsEnabled) { 291 eventsEnabled = 1; 292 mode = 1; 293 for(var e in autoEvents) { 294 (function(e) { 295 var oldEvent = window[e]; 296 window[e] = function() { 297 if (lastEvent != autoEvents[e]) { 298 lastEvent = autoEvents[e]; 299 event(autoEvents[e]); 300 } 301 if (typeof oldEvent == "function") oldEvent(); 302 }; 303 })(e); 304 } 305 } 306 } 307 308 function isDoNotTrack() { 309 if ((nt & 2) ? ((typeof result.nt == "undefined") ? (nt & 1) : result.nt) : nt & 1) { 310 if (window.navigator.msDoNotTrack && window.navigator.msDoNotTrack == "1") return true; 311 if (window.navigator.doNotTrack && (window.navigator.doNotTrack == "yes" || window.navigator.doNotTrack == "1")) return true; 312 } 313 return false; 314 } 315 316 var getInvitation = function (response) { 317 if (response && response.hasOwnProperty("block-status")){ 318 var isEligibleForInvitation = ( "NONE" === response['block-status'].toUpperCase() ); 319 if (isEligibleForInvitation) { 320 if (IAMQSElement) { 321 IAMQSElement.parentNode.removeChild(IAMQSElement); 322 } 323 IAMQSElement = createScriptTag(response['invite-url']); 324 } 325 } 326 }; 327 328 function loadSurvey() { 329 szmvars = result.st + "//" + result.pt + "//" + result.cp + "//VIA_SZMNG"; 330 var sampleType = (result.sv == "i2") ? "in" : result.sv; 331 var qdsHost = qdsUrl; 332 if (result.cn) { 333 sampleType += "_"+result.cn; 334 if (result.cn == "at") { 335 qdsHost = cntQdsUrl; 336 } 337 } 338 339 qdsParameter = { 340 siteIdentifier: result.cp, 341 offerIdentifier: result.st,
342 sampleType: sampleType, 343 pixelType: result.pt, 344 contentType: result.cp, 345 host: qdsHost, 346 port: "", 347 isFadeoutFlash: true, 348 isFadeoutFrame: true, 349 isFadeoutForm: true, 350 positionTop: 10, 351 positionLeft: 100, 352 zIndex: 1100000, 353 popupBlockDuration: qdsPopupBlockDuration, 354 keysForQueryParam : [ 355 "offerIdentifier", 356 "siteIdentifier", 357 "sampleType", 358 "pixelType", 359 "isFadeoutFlash", 360 "isFadeoutFrame", 361 "isFadeoutForm", 362 "positionTop", 363 "positionLeft", 364 "zIndex"] 365 }; 366 367 if(typeof window.iam_zindex !== 'undefined') { 368 qdsParameter.zIndex = window.iam_zindex; 369 } 370 371 if(typeof window.iam_fadeout_flash !== 'undefined') { 372 qdsParameter.isFadeoutFlash = window.iam_fadeout_flash; 373 } 374 375 if(typeof window.iam_fadeout_iframe !== 'undefined') { 376 qdsParameter.isFadeoutFrame = window.iam_fadeout_iframe; 377 } 378 379 if(typeof window.iam_fadeout_form !== 'undefined') { 380 qdsParameter.isFadeoutForm = window.iam_fadeout_form; 381 } 382 383 if(typeof window.iam_position_top !== 'undefined') { 384 qdsParameter.positionTop = window.iam_position_top; 385 } 386 387 if(typeof window.iam_position_left !== 'undefined') { 388 qdsParameter.positionLeft = window.iam_position_left; 389 } 390 391 var filterObjectByKeys = function (obj, keysToFilter) { 392 var result = {}, key; 393 var arrayLength = keysToFilter.length; 394 for (var i = 0; i < arrayLength; i++) { 395 key = keysToFilter[i]; 396 if (obj.hasOwnProperty(key)) { 397 result[key] = obj[key]; 398 } 399 } 400 return result; 401 }; 402 403 var serializeToQueryString = function (obj) { 404 var str = []; 405 for (var key in obj) 406 if (obj.hasOwnProperty(key)) { 407 str.push(encodeURIComponent(key) + "=" + encodeURIComponent(obj[key])); 408 } 409 return str.join("&"); 410 }; 411 412 var createPopupcheckCookie = function (blockDuration) { 413 var blockedUntilDate = new Date(); 414 blockedUntilDate.setTime(blockedUntilDate.getTime() + blockDuration); 415 var expires = "expires=" + blockedUntilDate.toUTCString(); 416 document.cookie = "POPUPCHECK=" + blockedUntilDate.getTime().toString() + ";" + expires + ";path=/"; 417 }; 418 419 var hasPopupcheckCookie = function () { 420 var cookie = document.cookie.split(";"); 421 for (var i = 0; i < cookie.length; i++) { 422 if (cookie[i].match("POPUPCHECK=.*")) { 423 var currentDate = new Date(); 424 var now = currentDate.getTime();
425 currentDate.setTime(cookie[i].split("=")[1]); 426 var blockedUntilTime = currentDate.getTime(); 427 if (now <= blockedUntilTime) { 428 return true; 429 } 430 } 431 } 432 return false; 433 }; 434 435 if (hasPopupcheckCookie()) { 436 return; 437 } 438 439 if (sv && !surveyCalled && result.sv !== "ke" && result.sv === "dz") { 440 surveyCalled = 1; 441 iam_ng_nxss(); 442 } 443 444 if (sv && !surveyCalled && result.sv !== "ke" && (result.sv === "in" || result.sv === "mo" || result.sv === "i2" )) { 445 surveyCalled = 1; 446 createPopupcheckCookie(qdsParameter.popupBlockDuration); 447 // var protocol = window.location.protocol; 448 var protocol = "https:"; 449 var pathOfCheckInvitation = "identitystatus"; 450 var queryParameter = filterObjectByKeys(qdsParameter, qdsParameter.keysForQueryParam); 451 var queryParameterString = "?" + serializeToQueryString(queryParameter); 452 if (window.XDomainRequest && document.documentMode === 9) { 453 var checkForInvitationUrl = protocol + '//' + qdsParameter.host + '/' + pathOfCheckInvitation + '/identity.js' + queryParameterString+'&callback=iom.gi&c='+Math.random(); 454 createScriptTag(checkForInvitationUrl); 455 } else { 456 var checkForInvitationUrl = protocol + '//' + qdsParameter.host + '/' + pathOfCheckInvitation + queryParameterString+'&c='+Math.random(); 457 var httpRequest = new XMLHttpRequest(); 458 httpRequest.onreadystatechange = function () { 459 if (httpRequest.readyState === XMLHttpRequest.DONE && 200 === httpRequest.status) { 460 var response = JSON.parse(httpRequest.responseText); 461 getInvitation(response); 462 } 463 }; 464 httpRequest.open('GET', checkForInvitationUrl, true); 465 httpRequest.withCredentials = true; 466 httpRequest.send(null); 467 } 468 469 } 470 } 471 472 function hash(key) { 473 var hash = 0; 474 for (var i=0; i<key.length; ++i) { 475 hash += key.charCodeAt(i); 476 hash += (hash << 10); 477 hash ^= (hash >> 6); 478 } 479 hash += (hash << 3); 480 hash ^= (hash >> 11); 481 hash += (hash << 15); 482 hash = Math.abs(hash & hash); 483 return hash.toString(36); 484 } 485 486 function activeXDetect() { 487 var result = "", 488 componentVersion, 489 components =[ 490 "7790769C-0471-11D2-AF11-00C04FA35D02", "89820200-ECBD-11CF-8B85-00AA005B4340", 491 "283807B5-2C60-11D0-A31D-00AA00B92C03", "4F216970-C90C-11D1-B5C7-0000F8051515", 492 "44BBA848-CC51-11CF-AAFA-00AA00B6015C", "9381D8F2-0288-11D0-9501-00AA00B911A5", 493 "4F216970-C90C-11D1-B5C7-0000F8051515", "5A8D6EE0-3E18-11D0-821E-444553540000", 494 "89820200-ECBD-11CF-8B85-00AA005B4383", "08B0E5C0-4FCB-11CF-AAA5-00401C608555", 495 "45EA75A0-A269-11D1-B5BF-0000F8051515", "DE5AED00-A4BF-11D1-9948-00C04F98BBC9", 496 "22D6F312-B0F6-11D0-94AB-0080C74C7E95", "44BBA842-CC51-11CF-AAFA-00AA00B6015B", 497 "3AF36230-A269-11D1-B5BF-0000F8051515", "44BBA840-CC51-11CF-AAFA-00AA00B6015C", 498 "CC2A9BA0-3BDD-11D0-821E-444553540000", "08B0E5C0-4FCB-11CF-AAA5-00401C608500", 499 "D27CDB6E-AE6D-11CF-96B8-444553540000", "2A202491-F00D-11CF-87CC-0020AFEECF20" 500 ]; 501 document.body.addBehavior( "#default#clientCaps" ); 502 for (var i = 0; i < components.length; i++) { 503 componentVersion = document.body.getComponentVersion('{' + components[i] + '}', 'ComponentID'); 504 if ( componentVersion !== null ) { 505 result += componentVersion; 506 } else { 507 result += "null"; 508 } 509 } 510 return result; 511 } 512 513 function fingerprint() { 514 var nav = window.navigator, t = nav.userAgent; 515 t += getScreen(); 516 if (nav.plugins.length > 0 ) { 517 for (var i = 0; i < nav.plugins.length; i++ ) { 518 t += nav.plugins[i].filename + nav.plugins[i].version + nav.plugins[i].description; 519 } 520 } 521 if (nav.mimeTypes.length > 0 ) { 522 for (var i = 0; i < nav.mimeTypes.length; i++ ) { 523 t += nav.mimeTypes[i].type; 524 } 525 } 526 if ( /MSIE (\d+\.\d+);/.test(nav.userAgent) ) { 527 try { 528 t += activeXDetect(); 529 } 530 catch(e) { 531 // ignore 532 } 533 } 534 return hash(t); 535 } 536 537 function createScriptTag(url){ 538 var el = document.createElement("script"); 539 el.type = "text/javascript"; 540 el.src = url; 541 var head = document.getElementsByTagName("head")[0]; 542 if(head) { 543 head.appendChild(el); 544 return el; 545 } 546 else return false; 547 } 548 549 function createScriptTagAsync(url, cb){ 550 var el = document.createElement("script"); 551 el.type = "text/javascript"; 552 el.src = url; 553 el.onload = cb; 554 el.async = true; 555 var head = document.getElementsByTagName("head")[0]; 556 if(head) { 557 head.appendChild(el); 558 return el; 559 } 560 else return false; 561 } 562 563 function createIamSendBox(url) { 564 function appendSendBox(url) { 565 var sendBox = document.createElement("iframe"); 566 sendBox.className = 'iamsendbox'; 567 sendBox.style.position = 'absolute'; 568 sendBox.style.left = sendBox.style.top = '-999px'; 569 sendBox.src = url + '&mo=1'; 570 document.body.appendChild(sendBox); 571 } 572 var sendBoxes = document.querySelectorAll('.iamsendbox');
573 if (sendBoxes.length < maxSendBoxes) { 574 appendSendBox(url); 575 } else { 576 sendBoxes[0].remove(); 577 appendSendBox(url); 578 } 579 } 580 581 function transmitData(url, mode) { 582 if (url.split("/")[2].slice(url.split("/")[2].length-8) == ".ioam.de" || url.split("/")[2].slice(url.split("/")[2].length-10) == ".iocnt.net") { 583 switch (mode) { 584 case 1: 585 if (IAMPageElement) { 586 IAMPageElement.parentNode.removeChild(IAMPageElement); 587 } 588 IAMPageElement = createScriptTag(url+'&mo=1'); 589 if (!IAMPageElement) (new Image()).src = url+'&mo=0'; 590 break; 591 case 2: 592 (new Image()).src = url+'&mo=0'; 593 break; 594 case 3: 595 createIamSendBox(url); 596 break; 597 case 0: 598 default: 599 document.write('<script src="'+url+'&mo=1"></script>'); 600 } 601 } 602 } 603 604 function getScreen() { 605 return screen.width + "x" + screen.height + "x" + screen.colorDepth; 606 } 607 608 function arrayContains(arr, obj) { 609 var i; 610 for (i=0;i<arr.length;i++) { 611 if (arr[i]==obj) return true; 612 } 613 return false; 614 } 615 616 function transformVar(value) { 617 if (!value) value = ""; 618 value = value.replace(/[?#].*/g, ""); 619 value = value.replace(/[^a-zA-Z0-9,_\/-]+/g, "."); 620 if (value.length > 255) value = value.substr(0,254) + '+'; 621 return value; 622 } 623 624 function transformRef(value) { 625 if (!value) value = ""; 626 //value = value.replace(/[?#].*/g, ""); 627 value = value.replace(/[^a-zA-Z0-9,_\/:-]+/g, "."); 628 if (value.length > 255) value = value.substr(0,254) + '+'; 629 return value; 630 } 631 632 function getRefHost() { 633 var url = document.referrer.split("/"); 634 return (url.length >= 3) ? url[2] : ""; 635 } 636 637 function buildResult(params) { 638 result = {}; 639 var i; 640 for (i in params) { 641 if (params.hasOwnProperty(i)) { 642 if (i != "cn" || (i == "cn" && (arrayContains(deSubdomain, params[i])) || (arrayContains(cntSubdomain, params[i])))) { 643 result[i] = params[i]; 644 } 645 } 646 } 647 if (result.hasOwnProperty("fp")) { 648 result.fp = (result.fp != "" && typeof result.fp != "undefined") ? result.fp : emptyCode; 649 result.fp = transformVar(result.fp); 650 result.pt = "FP"; 651 } 652 if (result.hasOwnProperty("np")) { 653 result.np = (result.np != "" && typeof result.np != "undefined") ? result.np : emptyCode; 654 result.np = transformVar(result.np); 655 result.pt = "NP"; 656 } 657 if (result.hasOwnProperty("xp")) { 658 result.xp = (result.xp != "" && typeof result.xp != "undefined") ? result.xp : emptyCode; 659 result.xp = transformVar(result.xp); 660 result.pt = "XP"; 661 } 662 if (result.hasOwnProperty("cp")) { 663 result.cp = (result.cp != "" && typeof result.cp != "undefined") ? result.cp : emptyCode; 664 result.cp = transformVar(result.cp); 665 result.pt = "CP"; 666 } 667 if (result.hasOwnProperty("ms")) { 668 result.ms = (result.ms != "" && typeof result.ms != "undefined") ? result.ms : ""; 669 } 670 if (!result.pt) { 671 result.cp = emptyCode; 672 result.pt = "CP"; 673 result.er = "N13"; 674 } 675 if (!result.hasOwnProperty("ps")) { 676 result.ps = "lin"; 677 result.er = "N22"; 678 } else { 679 if (!(arrayContains(['ack', 'lin', 'pio', 'out'], result.ps))) { 680 result.ps = "lin"; 681 result.er = "N23"; 682 } 683 } 684 result.rf = getRefHost(); 685 if (!result.hasOwnProperty("sur") || (result.hasOwnProperty("sur") && result.sur != "yes")) { 686 result.r2 = transformRef(document.referrer); 687 } 688 result.ur = document.location.host; 689 result.xy = getScreen(); 690 result.lo = "DE/Baden-Wurttemberg"; 691 result.cb = "0010"; 692 result.i2 = "00103e742109f036a64469c9c"; 693 result.ep = parseInt('1709096685', 10); 694 result.vr = "434"; 695 result.id = fingerprint(); 696 result.st = result.st ? result.st : dummySite; 697 if (!result.hasOwnProperty("sc") || (result.hasOwnProperty("sc") && result.sc != "no")) { 698 var cookie = getFirstPartyCookie(); 699 result.i3 = cookie.cookie; 700 result.n1 = cookie.length; 701 } 702 if (((arrayContains(cookiewhitelist, result.st)) || (result.hasOwnProperty("sc") && result.sc == "yes")) && result.i3 == "nocookie") { 703 result.i3 = setFirstPartyCookie(); 704 } 705 706 if (!result.hasOwnProperty("cn") && result.st.charAt(2) == "_") { 707 var cn = result.st.substr(0,2); 708 if (arrayContains(deSubdomain, cn) || arrayContains(cntSubdomain, cn)) { 709 result.cn = cn; 710 } else { 711 result.er = "E12"; 712 } 713 } 714 715 // DNT dissemination survey 716 try { 717 result.dntt = ((window.navigator.msDoNotTrack && window.navigator.msDoNotTrack == "1") || (window.navigator.doNotTrack && (window.navigator.doNotTrack == "yes" || window.navigator.doNotTrack == "1"))) ? "1" : "0"; 718 } catch(e) { 719 // ignore 720 } 721 } 722 723 function event(event) { 724 var payLoad = ""; 725 var i; 726 event = event || ""; 727 stopHeart(); 728 if (inited && !isDoNotTrack() && (!checkEvents || (checkEvents && arrayContains(eventList, event))) && result.ps !== "out") { 729 result.lt = (new Date()).getTime(); 730 result.ev = event; 731 // var proto = ( window.location.protocol.slice(0,4) === 'http' ) ? window.location.protocol : "https:"; 732 var proto = "https:"; 733 var baseUrl = domainPrefix + '.' + baseUrlDE; 734 if (result.cn && arrayContains(deSubdomain, result.cn)) { 735 baseUrl = domainPrefix + '.' + deBaseUrl; 736 } else if (result.cn && arrayContains(cntSubdomain, result.cn)) { 737 baseUrl = result.cn + cntBaseUrl; 738 } 739 if ( !(arrayContains(LSOBlacklist, result.st)) && ( ((/iPhone/.test(window.navigator.userAgent) || /iPad/.test(window.navigator.userAgent)) && /Safari/.test(window.navigator.userAgent) && !(/Chrome/.test(window.navigator.userAgent)) && !(/CriOS/.test(window.navigator.userAgent))) || ( /Maple_201/.test(window.navigator.userAgent) || /SMART-TV/.test(window.navigator.userAgent) || /SmartTV201/.test(window.navigator.userAgent) ) ) ) { 740 if (result.cn && arrayContains(deSubdomain, result.cn)) { 741 baseUrl = domainPrefix + '.' + result.cn + deBaseUrlLSO; 742 } else if (result.cn && arrayContains(cntSubdomain, result.cn)) { 743 baseUrl = result.cn + cntBaseUrlLSO; 744 } else { 745 baseUrl = domainPrefix + '.' + baseUrlLSO; 746 } 747 mode = 3; 748 if (result.hasOwnProperty("sur") && result.sur == "yes") { 749 result.u2 = window.location.origin; 750 } else { 751 result.u2 = document.URL; 752 } 753 } 754 for (i in result) { 755 if (result.hasOwnProperty(i) && i!="cs" && i!="url") { 756 payLoad = payLoad + encodeURIComponent(i).slice(0,8) + "=" + encodeURIComponent(result[i]).slice(0,2048) + "&"; 757 } 758 } 759 payLoad = payLoad.slice(0,4096); 760 result.cs = hash(payLoad); 761 result.url = proto + "//" + baseUrl + "?" + payLoad + "cs=" + result.cs; 762 transmitData(result.url, mode); 763 if (arrayContains(['play', 'resm', 'alve', 'mute', 'sfqt', 'ssqt', 'stqt', 'sapl', 'snsp'], event) && (mode === 1 || mode === 3) && result.hasOwnProperty('hb')) { 764 startHeart(); 765 } 766 return result; 767 } 768 return {}; 769 } 770 771 function forwardToOldSZM() { 772 if (result.oer === "yes" && !window.IVW && !document.IVW) { 773 var SZMProtocol = (window.location.protocol.slice(0,4) === 'http') ? window.location.protocol : "https:"; 774 var SZMComment = (result.co) ? result.co + "_SENT_VIA_MIGRATION_TAG" : "SENT_VIA_MIGRATION_TAG"; 775 var SZMCode = (result.oc) ? result.oc : ((result.cp) ? ((result.cp == emptyCode) ? "" : result.cp) : ""); 776 var SZMContType = (result.pt !== null) ? result.pt : "CP"; 777 (new Image()).src = SZMProtocol + "//" + result.st + ".ivwbox.de/cgi-bin/ivw/" + SZMContType.toUpperCase() + "/" + SZMCode + ";" + SZMComment + "?r=" + escape(document.referrer) + "&d=" + (Math.random()*100000); 778 } 779 } 780 781 function count(params, m) { 782 init(params,m); 783 return event(result.ev); 784 } 785 786 function init(params,m) { 787 if (!params.cn || params.cn !== 'at') { 788 processConsent(params.ct, { vendors: consentVendors, cookie: consentCookieOptions, resultKey: 'ct' }, params); 789 } 790 // Remove AMP consent string when provided 791 if (params.act) { 792 delete params.act; 793 } 794 mode = m; 795 buildResult(params); 796 if (result.sv) { 797 result.sv = (result.sv == "in" && mode == 1) ? "i2" : result.sv; 798 } 799 if (result.sv && result.sv !== 'ke' && checkForConsent(params.ct, consentVendors, 785, 9, -1) === false) { 800 result.sv = 'ke'; 801 } 802 enableEvents(); 803 loadSurvey(); 804 checkOptoutCookie(); 805 inited = 1; 806 forwardToOldSZM(); 807 return {}; 808 } 809 810 function hybrid(params,m) { 811 init(params,m); 812 var ioam_smi = (typeof localStorage === 'object' && typeof localStorage.getItem === 'function') ? localStorage.getItem("ioam_smi") : null; 813 var ioam_site = (typeof localStorage === 'object' && typeof localStorage.getItem === 'function') ? localStorage.getItem("ioam_site") : null; 814 var ioam_bo = (typeof localStorage === 'object' && typeof localStorage.getItem === 'function') ? localStorage.getItem("ioam_bo") : null; 815 if ( ioam_smi !== null && ioam_site !== null && ioam_bo !== null ) { 816 result.mi = ioam_smi; 817 result.fs = result.st; 818 result.st = ioam_site; 819 result.bo = ioam_bo; 820 if (result.fs == result.st) { 821 result.cp = (result.cp.slice(0,10) !== "___hyb2___") ? "___hyb2___"+result.fs+"___"+result.cp : result.cp; 822 } else { 823 result.cp = (result.cp.slice(0,9) !== "___hyb___") ? "___hyb___"+result.fs+"___"+result.cp : result.cp; 824 } 825 return event(result.ev); 826 } else if ( ioam_smi !== null && ioam_bo !== null ) { 827 return {}; 828 } else { 829 if ( window.location.protocol.slice(0,4) !== 'http' || /IOAM\/\d+\.\d+/.test(window.navigator.userAgent) ) { 830 return {}; 831 } else { 832 return event(result.ev); 833 } 834 } 835 } 836 837 function setMultiIdentifier(midentifier) { 838 if ( localStorage.getItem("ioam_smi") === null || localStorage.getItem("ioam_site") === null || localStorage.getItem("ioam_bo") === null || localStorage.getItem("ioam_smi") !== midentifier ) { 839 result.fs = result.st; 840 var JsonMIndetifier = null; 841 var NewSite = null; 842 if ( typeof midentifier === 'string' && typeof JSON === 'object' && typeof JSON.parse === 'function' ) { 843 try { 844 JsonMIndetifier = JSON.parse(midentifier);
845 if (JsonMIndetifier.hasOwnProperty( 'library' )) { 846 if (JsonMIndetifier.library.hasOwnProperty( 'offerIdentifier' )) { 847 if ( JsonMIndetifier.library.offerIdentifier ) { 848 NewSite = JsonMIndetifier.library.offerIdentifier; 849 } else { 850 result.er = "JSON(E10): offerIdentifier not valid"; 851 } 852 } else { 853 result.er = "JSON(E10): no key offerIdentifier"; 854 } 855 } else { 856 result.er = "JSON(E10): no key library"; 857 } 858 } catch(err) { 859 result.er = "JSON(E10): "+err; 860 } 861 } 862 if ( NewSite !== null ) { 863 localStorage.setItem("ioam_site", NewSite); 864 } 865 result.st = NewSite; 866 result.mi = midentifier; 867 result.bo = (new Date()).getTime(); 868 localStorage.setItem("ioam_smi", result.mi); 869 localStorage.setItem("ioam_bo", result.bo); 870 if (result.fs == result.st) { 871 result.cp = (result.cp.slice(0,10) !== "___hyb2___") ? "___hyb2___"+result.fs+"___"+result.cp : result.cp; 872 } else { 873 result.cp = (result.cp.slice(0,9) !== "___hyb___") ? "___hyb___"+result.fs+"___"+result.cp : result.cp; 874 } 875 return event(result.ev); 876 } 877 return {}; 878 } 879 880 if (window.postMessage || window.JSON && {}.toString.call(window.JSON.parse) !== '[object Function]' && {}.toString.call(window.JSON.stringify) !== '[object Function]') { 881 var listener = function(msg) { 882 try { 883 var msgdata = JSON.parse(msg.data); 884 } catch(e) { 885 msgdata = { type:false }; 886 } 887 if ({}.toString.call(msgdata) === '[object Object]' && msgdata.type == "iam_data") { 888 var respObj = { 889 seq : msgdata.seq, 890 iam_data : { 891 st: result.st, 892 cp: result.cp 893 } 894 }; 895 msg.source.postMessage(JSON.stringify(respObj),msg.origin); 896 } 897 }; 898 if (window.addEventListener) { 899 window.addEventListener("message", listener); 900 } else { 901 window.attachEvent("onmessage", listener); 902 } 903 } 904 905 function optin() { 906 var oiurl = ( window.location.protocol.slice(0,4) === 'http' ) ? window.location.protocol : "https:" + "//" + optinUrl; 907 var win = window.open(oiurl, '_blank'); 908 win.focus(); 909 } 910 911 function startHeart() { 912 // IE 9 Compatible 913 function heartbeat() { 914 return event("alve"); 915 } 916 switch (result.hb) { 917 case "adshort": 918 frequency = hbiAdShort; 919 break; 920 case "admedium": 921 frequency = hbiAdMedium; 922 break; 923 case "adlong": 924 frequency = hbiAdLong; 925 break; 926 case "short": 927 frequency = hbiShort; 928 break; 929 case "medium": 930 frequency = hbiMedium; 931 break; 932 case "long": 933 frequency = hbiLong; 934 break; 935 case "extralong": 936 frequency = hbiExtraLong; 937 break; 938 default: 939 frequency = 0; 940 } 941 if (frequency != 0) { 942 try { 943 heart = setInterval(heartbeat, frequency); 944 } catch(e) { 945 // pass 946 } 947 } 948 } 949 950 function stopHeart() { 951 try { 952 clearInterval(heart); 953 } catch(e) { 954 // pass 955 } 956 } 957 958 function stringtohex(str) { 959 var res = []; 960 for (var n = 0, l = str.length; n < l; n ++) { 961 var hex = Number(str.charCodeAt(n)).toString(16); 962 res.push(hex); 963 } 964 return res.join(''); 965 } 966 967 function getUniqueID() { 968 var max = 999999999999; 969 var min = 100000000000; 970 return (Math.floor(Math.random() * (max - min + 1)) + min).toString(16) + (Math.floor(Math.random() * (max - min + 1)) + min).toString(16) + stringtohex(result.cb) + (Math.floor(Math.random() * (max - min + 1)) + min).toString(16); 971 } 972 973 function expireDays() { 974 var max = 365; 975 var min = 300; 976 return Math.floor(Math.random() * (max - min + 1)) + min; 977 } 978 979 function getFirstPartyCookie() { 980 //FF Patch 981 try { 982 var cookie = document.cookie.split(";"); 983 for (var i = 0; i < cookie.length; i++) {
984 if (cookie[i].match(cookieName + "=.*")) { 985 var ourcookie = cookie[i].split("=")[1].replace("!", ":"); 986 var cookieParts = ourcookie.split(":"); 987 var firstCookieParts = cookieParts.slice(0, cookieParts.length - 1).join(':'); 988 var lastCookiePart = cookieParts.slice(-1).pop(); 989 if (hash(firstCookieParts) === lastCookiePart) { 990 if (!result.hasOwnProperty("i3") || !result.i3) { 991 updateFirstPartyCookie(ourcookie); 992 } 993 return { 994 cookie: ourcookie, 995 length: cookie.length 996 }; 997 } else { 998 // checksum failed, cookie not trusted, delete cookie 999 result.er = "N19"; 1000 try { 1001 if (cookieMaxRuns < 3) { 1002 cookieMaxRuns++; 1003 setFirstPartyCookie(2000); 1004 } else { 1005 result.er = "N20"; 1006 } 1007 } catch(e) { 1008 result.er = "N20"; 1009 } 1010 } 1011 } 1012 } 1013 } catch(e) { 1014 return {cookie: "nocookie", length: 0}; 1015 } 1016 return {cookie: "nocookie", length: cookie.length}; 1017 } 1018 1019 function checkFirstPartyCookie() { 1020 var cookie = getFirstPartyCookie(); 1021 if (cookie.cookie != "nocookie") { 1022 return true; 1023 } else { 1024 return false; 1025 } 1026 } 1027 1028 function getFpcd(cd) { 1029 var ctld ='acadaeafagaialamaoaqarasatauawaxazbabbbdbebfbgbhbibjbmbnbobrbsbtbwbybzcacccdcfcgchcickclcmcncocrcucvcwcxcyczdjdkdmdodzeceeegereseteufifjfkfmfofrgagdgegfggghgiglgmgngpgqgrgsgtgugwgyhkhmhnhrhthuidieiliminioiqirisitjejmjojpkekgkhkikmknkpkrkwkykzlalblclilklrlsltlulvlymamcmdmemgmhmkmlmmmnmompmqmrmsmtmumvmwmxmymznancnenfngninlnonpnrnunzompapepfpgphpkplpmpnprpsptpwpyqarerorsrurwsasbscsdsesgshsiskslsmsnsosrssstsvsxsysztctdtftgthtjtktltmtntotrtttvtwtzuaugukusuyuzvavcvevgvivnvuwfwsyeytzazmzw'.match(/.{1,2}(?=(.{2})+(?!.))|.{1,2}$/g), 1030 blkPrefixes = ['www', 'm', 'mobile'], 1031 urlParts = cd.split('.'), 1032 fpcd, 1033 ctldParts = [], 1034 hostParts = [], 1035 ctldPart = '', 1036 hostPart = '', 1037 i = 0, 1038 iLen = 0; 1039 if (!cd) return ''; 1040 if (arrayContains(ctld, urlParts[urlParts.length -1])) { 1041 for (i = urlParts.length -1; i >= 0; i -= 1) { 1042 if ( i >= urlParts.length - 3 && urlParts[i].length <= 4) { 1043 ctldParts.push(urlParts[i]); 1044 } else { 1045 hostParts.push(urlParts[i]); 1046 break; 1047 } 1048 } 1049 ctldParts = ctldParts.reverse(); 1050 for (i = 0, iLen = ctldParts.length;i < iLen; i += 1) { 1051 if (!arrayContains(blkPrefixes, ctldParts[i])) { 1052 ctldPart += i < iLen ? '.' + ctldParts[i] : ctldParts[i]; 1053 } 1054 } 1055 hostParts = hostParts.reverse(); 1056 hostPart = hostParts[hostParts.length - 1] || ''; 1057 if (arrayContains(blkPrefixes, hostPart)) { 1058 hostPart = ''; 1059 } 1060 } else { 1061 hostPart = urlParts 1062 .slice(urlParts.length - 2, urlParts.length) 1063 .join('.') || ''; 1064 } 1065 fpcd = hostPart + ctldPart; 1066 if (fpcd && fpcd.length > 4 && fpcd.split('.').length > 1) { 1067 // RFC 2109 1068 return 'domain=' + (fpcd[0] === '.' ? fpcd : (fpcd ? '.' + fpcd : '')) + ';'; 1069 } 1070 return ''; 1071 } 1072 1073 function updateFirstPartyCookie(cookievalue) { 1074 var domain = getFpcd(location.hostname); 1075 var expireValue = cookievalue.split(":")[1]; 1076 var events = parseInt(cookievalue.split(":")[4]) + 1; 1077 var expireDate = new Date(new Date().setTime(expireValue)); 1078 var now = new Date(); 1079 var site = (result.st) ? result.st : "nosite"; 1080 var code = (result.cp) ? result.cp : (result.np) ? result.np : (result.fp) ? result.fp : "nocode"; 1081 var evnt = (result.ev) ? result.ev : "noevent"; 1082 var cookval = cookievalue.split(":").slice(0,4).join(":") + ":" + events + ":" + site
1082+ ":" + code + ":" + evnt + ":" + now.getTime().toString(); 1083 cookval = cookval + ":" + hash(cookval); 1084 document.cookie = cookieName + "=" + cookval + ";expires=" + expireDate.toUTCString() + ";" + domain + ";path=/;"; 1085 } 1086 1087 function setFirstPartyCookie(expire) { 1088 if (!expire) { 1089 expire = expireDays()*24*60*60*1000; 1090 } 1091 var domain = getFpcd(location.hostname); 1092 var expireDate = new Date(new Date().setTime(new Date().getTime()+expire)); 1093 var setDate = new Date(); 1094 var identifier; 1095 var site = (result.st) ? result.st : "nosite"; 1096 var code = (result.cp) ? result.cp : (result.np) ? result.np : (result.fp) ? result.fp : "nocode"; 1097 var evnt = (result.ev) ? result.ev : "noevent"; 1098 if (result.hasOwnProperty("i2")) { 1099 identifier = result.i2; 1100 } else { 1101 identifier = getUniqueID(); 1102 } 1103 var cookreturnval = identifier + ":" + expireDate.getTime().toString() + ":" + setDate.getTime().toString() + ":" + domain.replace("domain=", "").replace(";
1103", "") + ":1:" + site + ":" + code + ":" + evnt + ":" + setDate.getTime().toString(); 1104 var cookval = identifier + ":" + expireDate.getTime().toString() + ":" + setDate.getTime().toString() + ":" + domain.replace("domain=", "").replace(";", "") + ":2:" + site + ":" + code + ":" + evnt + ":" + setDate.getTime().toString(); 1105 cookval = cookval + ":" + hash(cookval); 1106 document.cookie = cookieName + "=" + cookval + ";expires=" + expireDate.toUTCString() + ";" + domain + ";path=/;"; 1107 if (!checkFirstPartyCookie()) { 1108 // cookie not found, try it without domain 1109 document.cookie = cookieName + "=" + cookval + ";expires=" + expireDate.toUTCString() + ";path=/;"; 1110 result.er = "N25"; 1111 if (!checkFirstPartyCookie()) { 1112 result.er = "N26"; 1113 return "nocookie"; 1114 } 1115 } 1116 return cookreturnval; 1117 } 1118 1119 function createCORSRequest(method, url) { 1120 var xdhreq = new XMLHttpRequest(); 1121 if ("withCredentials" in xdhreq) { 1122 xdhreq.open(method, url, true); 1123 xdhreq.withCredentials = true; 1124 } else if (typeof XDomainRequest != "undefined") { 1125 xdhreq = new XDomainRequest(); 1126 xdhreq.open(method, url); 1127 } else { 1128 xdhreq = null; 1129 } 1130 return xdhreq; 1131 } 1132 1133 function setOptout(expire) { 1134 if (!expire) { 1135 // Year(s)*Days*Hours*Minutes*Seconds*1000 1136 expire = 1*24*60*60*1000; 1137 } 1138 var domain = getFpcd(location.hostname); 1139 var expireDate = new Date(new Date().setTime(new Date().getTime()+expire)); 1140 document.cookie = OptoutCookieName + "=stop;expires=" + expireDate.toUTCString() + ";" + domain + ";path=/;"; 1141 // delete 1st-Party-Cookie 1142 setFirstPartyCookie(2000); 1143 } 1144 1145 function checkOptoutCookie() { 1146 try { 1147 var cookie = document.cookie.split(";"); 1148 for (var i = 0; i < cookie.length; i++) { 1149 if (cookie[i].match(OptoutCookieName + "=.*")) { 1150 result.ps = "out"; 1151 return true; 1152 } 1153 } 1154 return false; 1155 } catch(e) { 1156 return false; 1157 } 1158 } 1159 1160 function delOptout() { 1161 setOptout(2000); 1162 // delete 1st-Party-Cookie 1163 setFirstPartyCookie(2000); 1164 } 1165 1166 function getPlus() { 1167 if (typeof localStorage === 'object' && typeof localStorage.getItem === 'function') { 1168 if (localStorage.getItem("ioamplusdata") !== null && localStorage.getItem("ioamplusttl") !== null) { 1169 var currentDate = new Date(); 1170 var now = currentDate.getTime(); 1171 currentDate.setTime(localStorage.getItem("ioamplusttl")); 1172 if (now <= currentDate.getTime()) { 1173 return true; 1174 } 1175 } 1176 var checkForSocio = 'https:' + '//' + ioplusurl + '/soziodata2.php?sc=' + socioToken + '&st=' + result.st + '&id=' + result.id; 1177 var XHR = createCORSRequest('GET', checkForSocio); 1178 if (XHR) { 1179 XHR.onload = function() { 1180 var response = XHR.responseText; 1181 var blockedUntilDate = new Date(); 1182 try { 1183 if ((response.split(":")[1].split(",")[0]) == "0") { 1184 blockedUntilDate.setTime(blockedUntilDate.getTime() + lsottlmin); 1185 localStorage.setItem("ioamplusttl", blockedUntilDate.getTime().toString()); 1186 if (localStorage.getItem("ioamplusdata") == null) { 1187 localStorage.setItem("ioamplusdata", response); 1188 } 1189 } else { 1190 blockedUntilDate.setTime(blockedUntilDate.getTime() + lsottl); 1191 localStorage.setItem("ioamplusdata", response); 1192 localStorage.setItem("ioamplusttl", blockedUntilDate.getTime().toString()); 1193 } 1194 } catch(e) { 1195 // pass 1196 } 1197 }; 1198 XHR.send(); 1199 return true; 1200 } 1201 } 1202 return false; 1203 } 1204 return { 1205 count: count, 1206 c: count, 1207 i: init, 1208 init: init, 1209 e: event, 1210 event: event, 1211 h: hybrid, 1212 hybrid: hybrid, 1213 setMultiIdentifier: setMultiIdentifier, 1214 smi: setMultiIdentifier, 1215 oi: optin, 1216 optin: optin, 1217 setoptout: setOptout, 1218 soo: setOptout, 1219 deloptout: delOptout, 1220 doo: delOptout, 1221 getInvitation: getInvitation, 1222 gi: getInvitation, 1223 getPlus: getPlus, 1224 gp: getPlus, 1225 consent: setConsent, 1226 ct: setConsent 1227 }; 1228 })(); 1229 } 1230})(window)
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.