1/* 2InMobi Choice. Consent Manager Tag v3.0 (for TCF 2.2) 3updated: 202505070244 4*/ 5(function() { 6var host = window.location.hostname; 7var element = document.createElement('script'); 8var firstScript = document.getElementsByTagName('script')[0]; 9var url = 'https://cmp.inmobi.com' 10.concat('/choice/', 'uvTp9XSKU4EYU', '/', host, '/choice.js?tag_version=V3'); 11var uspTries = 0; 12var uspTriesLimit = 3; 13element.async = true; 14element.type = 'text/javascript'; 15element.src = url; 16firstScript.parentNode.insertBefore(element, firstScript); 17function makeStub() { 18var TCF_LOCATOR_NAME = '__tcfapiLocator'; 19var queue = []; 20var win = window; 21var cmpFrame; 22function addFrame() { 23var doc = win.document; 24var otherCMP = !!(win.frames[TCF_LOCATOR_NAME]); 25if (!otherCMP) { 26if (doc.body) { 27var iframe = doc.createElement('iframe'); 28iframe.style.cssText = 'display:none'; 29iframe.name = TCF_LOCATOR_NAME; 30doc.body.appendChild(iframe); 31} else { 32setTimeout(addFrame, 5); 33} 34} 35return !otherCMP; 36} 37function tcfAPIHandler() { 38var gdprApplies; 39var args = arguments; 40if (!args.length) { 41return queue; 42} else if (args[0] === 'setGdprApplies') { 43if ( 44args.length > 3 && 45args[2] === 2 && 46typeof args[3] === 'boolean' 47) { 48gdprApplies = args[3]; 49if (typeof args[2] === 'function') { 50args[2]('set', true); 51} 52} 53} else if (args[0] === 'ping') { 54var retr = { 55gdprApplies: gdprApplies, 56cmpLoaded: false, 57cmpStatus: 'stub' 58}; 59if (typeof args[2] === 'function') { 60args[2](retr); 61} 62} else { 63if(args[0] === 'init' && typeof args[3] === 'object') { 64args[3] = Object.assign(args[3], { tag_version: 'V3' }); 65} 66queue.push(args); 67} 68} 69function postMessageEventHandler(event) { 70var msgIsString = typeof event.data === 'string'; 71var json = {}; 72try { 73if (msgIsString) { 74json = JSON.parse(event.data); 75} else { 76json = event.data; 77} 78} catch (ignore) {} 79var payload = json.__tcfapiCall; 80if (payload) { 81window.__tcfapi( 82payload.command, 83payload.version, 84function(retValue, success) { 85var returnMsg = { 86__tcfapiReturn: { 87returnValue: retValue, 88success: success, 89callId: payload.callId 90} 91}; 92if (msgIsString) { 93returnMsg = JSON.stringify(returnMsg); 94} 95if (event && event.source && event.source.postMessage) { 96event.source.postMessage(returnMsg, '*'); 97} 98}, 99payload.parameter 100); 101} 102} 103while (win) { 104try { 105if (win.frames[TCF_LOCATOR_NAME]) { 106cmpFrame = win; 107break; 108} 109} catch (ignore) {} 110if (win === window.top) { 111break; 112} 113win = win.parent; 114} 115if (!cmpFrame) { 116addFrame(); 117win.__tcfapi = tcfAPIHandler; 118win.addEventListener('message', postMessageEventHandler, false); 119} 120}; 121makeStub(); 122function makeGppStub() { 123const CMP_ID = 10; 124const SUPPORTED_APIS = [ 125'2:tcfeuv2', 126'6:uspv1', 127'7:usnatv1', 128'8:usca', 129'9:usvav1', 130'10:uscov1', 131'11:usutv1', 132'12:usctv1' 133]; 134window.__gpp_addFrame = function (n) { 135if (!window.frames[n]) { 136if (document.body) { 137var i = document.createElement("iframe"); 138i.style.cssText = "display:none"; 139i.name = n; 140document.body.appendChild(i); 141} else { 142window.setTimeout(window.__gpp_addFrame, 10, n); 143} 144} 145}; 146window.__gpp_stub = function () { 147var b = arguments; 148__gpp.queue = __gpp.queue || []; 149__gpp.events = __gpp.events || []; 150if (!b.length || (b.length == 1 && b[0] == "queue")) { 151return __gpp.queue; 152} 153if (b.length == 1 && b[0] == "events") { 154return __gpp.events; 155} 156var cmd = b[0]; 157var clb = b.length > 1 ? b[1] : null; 158var par = b.length > 2 ? b[2] : null; 159if (cmd === "ping") { 160clb( 161{ 162gppVersion: "1.1", // must be âVersion.Subversionâ, current: â1.1â 163cmpStatus: "stub", // possible values: stub, loading, loaded, error 164cmpDisplayStatus: "hidden", // possible values: hidden, visible, disabled 165signalStatus: "not ready", // possible values: not ready, ready 166supportedAPIs: SUPPORTED_APIS, // list of supported APIs 167cmpId: CMP_ID, // IAB assigned CMP ID, may be 0 during stub/loading 168sectionList: [], 169applicableSections: [-1], 170gppString: "", 171parsedSections: {}, 172}, 173true 174); 175} else if (cmd === "addEventListener") { 176if (!("lastId" in __gpp)) { 177__gpp.lastId = 0; 178} 179__gpp.lastId++; 180var lnr = __gpp.lastId; 181__gpp.events.push({ 182id: lnr, 183callback: clb, 184parameter: par, 185}); 186clb( 187{ 188eventName: "listenerRegistered", 189listenerId: lnr, // Registered ID of the listener 190data: true, // positive signal 191pingData: { 192gppVersion: "1.1", // must be âVersion.Subversionâ, current: â1.1â 193cmpStatus: "stub", // possible values: stub, loading, loaded, error 194cmpDisplayStatus: "hidden", // possible values: hidden, visible, disabled 195signalStatus: "not ready", // possible values: not ready, ready 196supportedAPIs: SUPPORTED_APIS, // list of supported APIs 197cmpId: CMP_ID, // list of supported APIs 198sectionList: [], 199applicableSections: [-1], 200gppString: "", 201parsedSections: {}, 202}, 203}, 204true 205); 206} else if (cmd === "removeEventListener") { 207var success = false;
208for (var i = 0; i < __gpp.events.length; i++) { 209if (__gpp.events[i].id == par) { 210__gpp.events.splice(i, 1); 211success = true; 212break; 213} 214} 215clb( 216{ 217eventName: "listenerRemoved", 218listenerId: par, // Registered ID of the listener 219data: success, // status info 220pingData: { 221gppVersion: "1.1", // must be âVersion.Subversionâ, current: â1.1â 222cmpStatus: "stub", // possible values: stub, loading, loaded, error 223cmpDisplayStatus: "hidden", // possible values: hidden, visible, disabled 224signalStatus: "not ready", // possible values: not ready, ready 225supportedAPIs: SUPPORTED_APIS, // list of supported APIs 226cmpId: CMP_ID, // CMP ID 227sectionList: [], 228applicableSections: [-1], 229gppString: "", 230parsedSections: {}, 231}, 232}, 233true 234); 235} else if (cmd === "hasSection") { 236clb(false, true); 237} else if (cmd === "getSection" || cmd === "getField") { 238clb(null, true); 239} 240//queue all other commands 241else { 242__gpp.queue.push([].slice.apply(b)); 243} 244}; 245window.__gpp_msghandler = function (event) { 246var msgIsString = typeof event.data === "string"; 247try { 248var json = msgIsString ? JSON.parse(event.data) : event.data; 249} catch (e) { 250var json = null; 251} 252if (typeof json === "object" && json !== null && "__gppCall" in json) { 253var i = json.__gppCall; 254window.__gpp( 255i.command, 256function (retValue, success) { 257var returnMsg = { 258__gppReturn: { 259returnValue: retValue, 260success: success, 261callId: i.callId, 262}, 263}; 264event.source.postMessage(msgIsString ? JSON.stringify(returnMsg) : returnMsg, "*"); 265}, 266"parameter" in i ? i.parameter : null, 267"version" in i ? i.version : "1.1" 268); 269} 270}; 271if (!("__gpp" in window) || typeof window.__gpp !== "function") { 272window.__gpp = window.__gpp_stub; 273window.addEventListener("message", window.__gpp_msghandler, false); 274window.__gpp_addFrame("__gppLocator"); 275} 276}; 277makeGppStub(); 278var uspStubFunction = function() { 279var arg = arguments; 280if (typeof window.__uspapi !== uspStubFunction) { 281setTimeout(function() { 282if (typeof window.__uspapi !== 'undefined') { 283window.__uspapi.apply(window.__uspapi, arg); 284} 285}, 500); 286} 287}; 288var checkIfUspIsReady = function() { 289uspTries++; 290if (window.__uspapi === uspStubFunction && uspTries < uspTriesLimit) { 291console.warn('USP is not accessible'); 292} else { 293clearInterval(uspInterval); 294} 295}; 296if (typeof window.__uspapi === 'undefined') { 297window.__uspapi = uspStubFunction; 298var uspInterval = setInterval(checkIfUspIsReady, 6000); 299} 300})();
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.