· 5 years ago · Sep 15, 2020, 08:16 PM
1var JSLOADTIME = (new Date).getTime(),
2 ConfigManager = TrustevV2 || {
3 BaseUrl: "https://app.trustev.com/api/v2.0",
4 PublicKey: "",
5 EnableFP: !1,
6 BaseHost: "app.trustev.com",
7 CdnUrl: "https://cdn.trustev.com",
8 CookieName: "tuid",
9 ConsoleLoggingEnabled: !1
10 },
11 TrustevLogger = TrustevLogger || {
12 LogMessage: function(e) {
13 if (ConfigManager.ConsoleLoggingEnabled) {
14 var r = (new Date).getTime() - JSLOADTIME;
15 console.log(r + "ms : " + e)
16 }
17 }
18 },
19 TrustevV2 = TrustevV2 || function() {
20 var i = "",
21 s = "",
22 n = {},
23 c = "https://app.trustev.com/api/v2.0",
24 o = !0,
25 g = {},
26 u = "",
27 l = "";
28
29 function t() {
30 if ("" === l) {
31 for (var e = document.getElementsByTagName("script"), r = null, t = 0; t < e.length; ++t)
32 if (null !== (o = e[t]) && null !== o.getAttribute("src") && -1 < o.getAttribute("src").toLowerCase().indexOf("api/v2.0/trustevjs")) {
33 r = e[t];
34 break
35 } if (null !== r) {
36 var a = r.src.replace(/^[^\?]+\??/, "");
37 l = function(e) {
38 var r = new Object;
39 if (!e) return r;
40 for (var t = e.split(/[;&]/), a = 0; a < t.length; a++) {
41 var o = t[a].split("=");
42 if (o && 2 == o.length) {
43 var n = unescape(o[0]),
44 i = unescape(o[1]);
45 i = i.replace(/\+/g, " "), r[n] = i
46 }
47 }
48 return r
49 }(a)
50 }
51 }
52 var o;
53 return l
54 }
55
56 function a(e) {
57 for (var r = e + "=", t = document.cookie.split(";"), a = 0; a < t.length; a++) {
58 for (var o = t[a];
59 " " == o.charAt(0);) o = o.substring(1);
60 if (0 == o.indexOf(r)) return o.substring(r.length, o.length)
61 }
62 return ""
63 }
64
65 function d(e, r, t) {
66 var a = "";
67 if (0 < t) {
68 var o = new Date;
69 o.setTime(o.getTime() + 60 * t * 1e3);
70 a = "expires=" + o.toUTCString()
71 }
72 document.cookie = e + "=" + r + ";" + a + "path=/; SameSite=None; Secure;"
73 }
74
75 function v() {
76 var e = navigator.cookieEnabled;
77 return e || (document.cookie = "testcookie", e = -1 != document.cookie.indexOf("testcookie")), e
78 }
79 return {
80 BaseUrl: c,
81 DoesDeviceSupportImageCapture: function(t) {
82 try {
83 if (!navigator.mediaDevices || !navigator.mediaDevices.enumerateDevices) return void t(null);
84 navigator.mediaDevices.enumerateDevices().then(function(e) {
85 for (var r = 0; r < e.length; r++)
86 if ("videoinput" === e[r].kind) return void t(!0);
87 t(!1)
88 })
89 } catch (e) {
90 return TrustevLogger.LogMessage("TrustevV2.DoesDeviceSupportImageCapture: Error : " + e), void t(null)
91 }
92 },
93 Init: function(e, t, r, a, o) {
94 if (ConfigManager.PublicKey = e, ConfigManager.EnableFP = !!r, a && (c = a, ConfigManager.BaseUrl = a), o && (ConfigManager.CdnUrl = o), v() && function e() {
95 null !== document.body ? (EvercookieManager.Init([QuickStorageManager, IFrameStorageManager], TrustevApiClient), EvercookieManager.GatherEvercookiesAndSendToApi(ConfigManager.CookieName, function(e) {
96 TrustevLogger.LogMessage("Finished getting evercookies : " + JSON.stringify(e)), EvercookieManager.SetMostAccurateEvercookie(ConfigManager.CookieName, e)
97 })) : setTimeout(e, 1)
98 }(), i = TrustevV2.GetCookie("tsid-" + ConfigManager.PublicKey), v()) {
99 var n = TrustevV2.GetCookie("jsConfig-" + ConfigManager.PublicKey);
100 TrustevV2.ExecuteExternalServices(n), TrustevLogger.LogMessage("Execute External Services Else Part")
101 } else TrustevV2.ExecuteExternalServices(), TrustevLogger.LogMessage("Execute External Services If Part");
102 "NotSet" == i || "" == i ? (TrustevLogger.LogMessage("TrustevV2-Init : No sessionId found so calling /session endpoint"), TrustevApiClient.CallAPI("POST", c + "/session", "{}", function() {
103 try {
104 if (i = JSON.parse(this.responseText).SessionId, s = i, null != u.configuration.javascript.deviceId && !0 === u.configuration.javascript.deviceId.enabled && 0 < TrustevV2.IOBlackBox.length) {
105 var e = TrustevV2.IOBlackBox[TrustevV2.IOBlackBox.length - 1],
106 r = {};
107 r.sessionId = i, r.IsComplete = e.complete, r.blackBox = e.blackBox, TrustevApiClient.CallAPI("PUT", c + "/ExtendedDevice", JSON.stringify(r), function() {
108 TrustevLogger.LogMessage("TrustevV2-InitIovation : Successfully sent blackbox")
109 })
110 }
111 null != u.configuration.javascript.passiveAuth && !0 === u.configuration.javascript.passiveAuth.enabled && TrustevApiClient.CallAPI("GET", c + "/configuration/" + i + "/GetPassiveAuthUrl", "{}", function() {
112 var e = JSON.parse(this.responseText).PassiveAuthenticationURL;
113 TrustevV2.PassiveAuthComplete(e)
114 })
115 } catch (e) {
116 TrustevLogger.LogMessage("TrustevV2-Init : Error on calling the session endpoint: " + e)
117 }
118 "NotSet" != i && "" != i && TrustevV2.SetCookie("tsid-" + ConfigManager.PublicKey, i, 20), EvercookieManager.SetSessionId(i), TrustevV2.SessionId = i, TrustevV2.AsyncGatherInformation(), t.apply(this, [i])
119 })) : (TrustevLogger.LogMessage("TrustevV2-Init : Existing sessionId found : " + i), TrustevV2.SessionId = i, TrustevV2.AsyncGatherInformation(), EvercookieManager.SetSessionId(i), t.apply(this, [i]))
120 },
121 ExecuteExternalServices: function(e) {
122 if (e) {
123 if (null != (u = JSON.parse(e)).configuration.javascript.deviceId && !0 === u.configuration.javascript.deviceId.enabled && TrustevV2.InitIovation(), null != u.configuration.javascript.locationServices && !0 === u.configuration.javascript.locationServices.enabled) try {
124 TrustevV2.AsyncGatherLocationInfo(u.configuration.javascript.locationServices.evURL)
125 } catch (e) {
126 TrustevLogger.LogMessage("TrustevV2.ExecuteExternalServices: Error on TrustevV2.AsyncGatherLocationInfo: " + e)
127 }
128 null != u.configuration.javascript.passiveAuth && !0 === u.configuration.javascript.passiveAuth.enabled && "" !== i && TrustevApiClient.CallAPI("GET", c + "/configuration/" + i + "/GetPassiveAuthUrl", "{}", function() {
129 var e = JSON.parse(this.responseText).PassiveAuthenticationURL;
130 TrustevV2.PassiveAuthComplete(e)
131 })
132 } else TrustevApiClient.CallAPI("GET", c + "/configuration/javascript", "{}", function() {
133 try {
134 var e = JSON.parse(this.responseText);
135 TrustevLogger.LogMessage("TrustevV2.ExecuteExternalServices: Configuration received successfully"), v() && TrustevV2.SetCookie("jsConfig-" + ConfigManager.PublicKey, JSON.stringify(e), 5), TrustevV2.ExecuteExternalServices(JSON.stringify(e))
136 } catch (e) {
137 TrustevLogger.LogMessage("TrustevV2.ExecuteExternalServices: Error on calling the configuration/javascript endpoint: " + e)
138 }
139 })
140 },
141 IOBlackBox: [],
142 InitIovation: function() {
143 setTimeout(function() {
144 TrustevLogger.LogMessage("TrustevV2-InitIovation : Timing out black box sending after 5 seconds"), o = !1
145 }, 5e3), window.io_global_object_name = "IGLOO", window.IGLOO = window.IGLOO || {
146 enable_flash: !1,
147 bb_callback: function(e, r) {
148 var t = {
149 blackBox: e,
150 complete: r
151 };
152 TrustevV2.IOBlackBox.push(t);
153 var a = {};
154 a.sessionId = i, a.IsComplete = r, a.blackBox = e, o && "" !== i ? (TrustevApiClient.CallAPI("PUT", c + "/ExtendedDevice", JSON.stringify(a), function() {
155 TrustevLogger.LogMessage("TrustevV2-InitIovation : Successfully sent blackbox")
156 }), r && (o = !1)) : TrustevLogger.LogMessage("TrustevV2-InitIovation : Not sending black box")
157 },
158 loader: {
159 fp_static: ConfigManager.EnableFP,
160 subkey: "nLdMddw0jvDUZG3ETn8y0CEt7ZECk8Jm4N-uQ7wPu0k",
161 version: "early5"
162 }
163 },
164 function e() {
165 function r(r, t) {
166 var a, o = {};
167 for (a = r.length - 1; - 1 < a; a--) 0 < a ? o[a] = function() {
168 var e = a;
169 return function() {
170 return n(r[e], o[e + 1], t)
171 }
172 }() : n(r[a], o[a + 1], t)
173 }
174
175 function n(e, r, t) {
176 var a, o = document.createElement("script"),
177 n = e[0].split("?")[0].split("/");
178 a = n[n.length - 1].split(".")[0], n = y[t] && y[t].staticVer && y[t].staticVer + "/" || e[1], /([0-9]+\.){2}[0-9]+\//.test(e[1]) && n !== e[1] && i("loader: Overriding configured version with staticVer."), e[0] = e[0].replace("##version##", n), o.setAttribute("src", e[0]), o && o.addEventListener ? o.addEventListener("error", function() {
179 E[t + "_" + a + "_load_failure"] = "true"
180 }) : o.attachEvent && o.attachEvent("onerror", function() {
181 E[t + "_" + a + "_load_failure"] = "true"
182 }), r && (o.onload = r), document.getElementsByTagName("head")[0].appendChild(o)
183 }
184
185 function i(e) {
186 if ("function" == typeof y.trace_handler) try {
187 y.trace_handler(e)
188 } catch (e) {}
189 }
190
191 function t(e, r) {
192 var t = null != e;
193 return t && ("1" === e.toString() || "true" === e.toString().toLowerCase()) || (!t || "0" !== e.toString() && "false" !== e.toString().toLowerCase()) && ("boolean" == typeof r && r)
194 }
195 var a, o, s, c, g, u, l, d, v, f, p, b, S, h, L, T, M = window,
196 m = M.io_global_object_name || "IGLOO",
197 y = M[m] = M[m] || {},
198 E = y.loader = y.loader || {},
199 I = [],
200 k = [];
201 if (E.loaderMain) return i("loader: Loader script has already run, try reducing the number of places it's being included."), !1;
202 E.loaderMain = e, E.loaderVer = "5.1.0", c = t(E.tp, !0), g = t(E.fp_static, !0), u = t(E.fp_dyn, !0), l = t(E.enable_legacy_compatibility), d = t(E.tp_split), v = E.tp_host && E.tp_host.replace(/\/+$/, "") || "https://mpsnare.iesnare.com", f = E.fp_static_override_uri, p = void 0 !== E.uri_hook ? E.uri_hook + "/" : "/iojs/", b = (E.version || "versionOrAliasIsRequired") + "/", S = E.subkey ? M.encodeURIComponent(E.subkey) + "/" : "", h = E.tp_resource || "wdp.js", L = E.tp_host ? "&tp_host=" + M.encodeURIComponent(E.tp_host) : "", T = f ? "&fp_static_uri=" + M.encodeURIComponent(f) : "", E.tp_host = v, a = t(y.enable_flash, !0), o = y.io && y.io.enable_flash, s = y.fp && y.fp.enable_flash, o = null != o ? t(o, !0) : a, null != s ? s = t(s, !0) : o = a, a = o ? "&flash=true" : "&flash=false", s = s ? "&flash=true" : "&flash=false", L = "?loaderVer=" + E.loaderVer + "&compat=" + l + "&tp=" + c + "&tp_split=" + d + L + "&fp_static=" + g + "&fp_dyn=" + u + T, c || g || i("loader: Not currently configured to load fp_static or tp script(s)."), y.fp && y.fp.staticVer && y.fp.staticVer + "/" !== b && (b = y.fp.staticVer + "/", i("loader: Configured version replaced with that from pre-loaded static script.")), g || y.fp && y.fp.staticMain ? (p = (p + "##version##" + S).replace(/\/\//g, "/"), g && (y.fp && y.fp.staticMain ? l && !y.fp.preCompatMain && i("loader: enable_legacy_compatibility on, but included static does not have the compat wrapper.") : f ? I.push([f, ""]) : I.push([p + "static_wdp.js" + L + s, b])), !u || y.fp && y.fp.dynMain ? y.fp && y.fp.dynMain && i("loader: First party dynamic script has already been loaded, disable fp_dyn or make sure you're not manually including the dynamic file separately.") : I.push([p + "dyn_wdp.js" + L + s, b])) : t(E.fp_dyn) && i("loader: Invalid Config, first party dynamic script set to load without static."), c && (y.io && y.io.staticMain ? i("loader: Third party script has already been loaded.") : (p = v + "/##version##" + S, d ? (k.push([p + "static_wdp.js" + L + a, b]), k.push([p + "dyn_wdp.js" + L + a, b]), E.tp_resource && i("loader: Invalid Config: both tp_resource and tp_split set. Ignoring tp_resource.")) : k.push([p + h + L + a, b]))), r(I, "fp"), r(k, "io")
203 }()
204 },
205 SetCookie: d,
206 GetCookie: a,
207 AsyncGatherInformation: function() {
208 "NotSet" != i && "" != i && setTimeout(function() {
209 TrustevV2.GatherInformation()
210 }, 0)
211 },
212 AsyncGatherLocationInfo: function(e) {
213 setTimeout(function() {
214 TrustevV2.LocationServices.CallEvUrl(e), TrustevV2.LocationServices.GetHtml5Location()
215 }, 0)
216 },
217 GatherInformation: function(a) {
218 TrustevApiClient.CallAPI("POST", c + "/Session/" + i + "/detail", "{}", function() {}), n.SessionId = i, n.DeviceId = i;
219 try {
220 n["c5d1c702-f8bb-e311-be87-089e010f73f9"] = null != navigator.buildID ? navigator.buildID : "undefined"
221 } catch (e) {
222 TrustevLogger.LogMessage("Error in JavascriptData.NavigatorBuildID error: " + e)
223 }
224 try {
225 n["c6d1c702-f8bb-e311-be87-089e010f73f9"] = null != navigator.platform ? navigator.platform : "undefined"
226 } catch (e) {
227 TrustevLogger.LogMessage("Error in JavascriptData.NavigatorPlatform error: " + e)
228 }
229 try {
230 n["c7d1c702-f8bb-e311-be87-089e010f73f9"] = null != navigator.appCodeName ? navigator.appCodeName : "undefined"
231 } catch (e) {
232 TrustevLogger.LogMessage("Error in JavascriptData.NavigatorAppCodeName error: " + e)
233 }
234 try {
235 n["c8d1c702-f8bb-e311-be87-089e010f73f9"] = null != navigator.appVersion ? navigator.appVersion : "undefined"
236 } catch (e) {
237 TrustevLogger.LogMessage("Error in JavascriptData.NavigatorAppVersion error: " + e)
238 }
239 try {
240 n["c9d1c702-f8bb-e311-be87-089e010f73f9"] = null != navigator.appMinorVersion ? navigator.appMinorVersion : "undefined"
241 } catch (e) {
242 TrustevLogger.LogMessage("Error in JavascriptData.NavigatorAppMinorVersion error: " + e)
243 }
244 try {
245 n["cbd1c702-f8bb-e311-be87-089e010f73f9"] = null != navigator.cpuClass ? navigator.cpuClass : "undefined"
246 } catch (e) {
247 TrustevLogger.LogMessage("Error in JavascriptData.NavigatorCpuClass error: " + e)
248 }
249 try {
250 n["ccd1c702-f8bb-e311-be87-089e010f73f9"] = null != navigator.oscpu ? navigator.oscpu : "undefined"
251 } catch (e) {
252 TrustevLogger.LogMessage("Error in JavascriptData.NavigatorOscpu error: " + e)
253 }
254 try {
255 n["cdd1c702-f8bb-e311-be87-089e010f73f9"] = null != navigator.product ? navigator.product : "undefined"
256 } catch (e) {
257 TrustevLogger.LogMessage("Error in JavascriptData.NavigatorProduct error: " + e)
258 }
259 try {
260 n["ced1c702-f8bb-e311-be87-089e010f73f9"] = null != navigator.productSub ? navigator.productSub : "undefined"
261 } catch (e) {
262 TrustevLogger.LogMessage("Error in JavascriptData.NavigatorProductSub error: " + e)
263 }
264 try {
265 n["cfd1c702-f8bb-e311-be87-089e010f73f9"] = null != navigator.vendor ? navigator.vendor : "undefined"
266 } catch (e) {
267 TrustevLogger.LogMessage("Error in JavascriptData.NavigatorVendor error: " + e)
268 }
269 try {
270 n["d0d1c702-f8bb-e311-be87-089e010f73f9"] = null != navigator.vendorSub ? navigator.vendorSub : "undefined"
271 } catch (e) {
272 TrustevLogger.LogMessage("Error in JavascriptData.NavigatorVendorSub error: " + e)
273 }
274 try {
275 n["d1d1c702-f8bb-e311-be87-089e010f73f9"] = null != navigator.language ? navigator.language : "undefined"
276 } catch (e) {
277 TrustevLogger.LogMessage("Error in JavascriptData.NavigatorLanguage error: " + e)
278 }
279 try {
280 n["d2d1c702-f8bb-e311-be87-089e010f73f9"] = null != navigator.userLanguage ? navigator.userLanguage : "undefined"
281 } catch (e) {
282 TrustevLogger.LogMessage("Error in JavascriptData.NavigatorUserLanguage error: " + e)
283 }
284 try {
285 n["d3d1c702-f8bb-e311-be87-089e010f73f9"] = null != navigator.browserLanguage ? navigator.browserLanguage : "undefined"
286 } catch (e) {
287 TrustevLogger.LogMessage("Error in JavascriptData.NavigatorBrowserLanguage error: " + e)
288 }
289 try {
290 n["d4d1c702-f8bb-e311-be87-089e010f73f9"] = null != navigator.systemLanguage ? navigator.systemLanguage : "undefined"
291 } catch (e) {
292 TrustevLogger.LogMessage("Error in JavascriptData.NavigatorSystemLanguage error: " + e)
293 }
294 try {
295 n["d5d1c702-f8bb-e311-be87-089e010f73f9"] = null != navigator.doNotTrack ? navigator.doNotTrack : "undefined"
296 } catch (e) {
297 TrustevLogger.LogMessage("Error in JavascriptData.NavigatorDoNotTrack error: " + e)
298 }
299 try {
300 n["d6d1c702-f8bb-e311-be87-089e010f73f9"] = null != navigator.msDoNotTrack ? navigator.msDoNotTrack : "undefined"
301 } catch (e) {
302 TrustevLogger.LogMessage("Error in JavascriptData.NavigatorMsDoNotTrack error: " + e)
303 }
304 try {
305 n["d7d1c702-f8bb-e311-be87-089e010f73f9"] = null != navigator.javaEnabled() ? navigator.javaEnabled() : "undefined"
306 } catch (e) {
307 TrustevLogger.LogMessage("Error in JavascriptData.NavigatorJavaEnabled error: " + e)
308 }
309 try {
310 n["d8d1c702-f8bb-e311-be87-089e010f73f9"] = null != navigator.cookieEnabled ? navigator.cookieEnabled : "undefined"
311 } catch (e) {
312 TrustevLogger.LogMessage("Error in JavascriptData.NavigatorCookieEnabled error: " + e)
313 }
314 try {
315 n["d8406055-0ab1-e311-beb3-089e010f7621"] = null != navigator.userAgent ? navigator.userAgent : "undefined"
316 } catch (e) {
317 TrustevLogger.LogMessage("Error in JavascriptData.NavigatorUserAgent error: " + e)
318 }
319 try {
320 n["b886f45f-0ab1-e311-beb3-089e010f7621"] = null != navigator.appName ? navigator.appName : "undefined"
321 } catch (e) {
322 TrustevLogger.LogMessage("Error in JavascriptData.NavigatorAppName error: " + e)
323 }
324 try {
325 for (var e = [], r = navigator.plugins, t = 0; r[t]; ++t) {
326 var o = {};
327 o.name = r[t].name, o.description = r[t].description, o.filename = r[t].filename, o.length = r[t].length, e.push(o)
328 }
329 n["c5f0baba-92b6-e311-beb6-089e010f7621"] = JSON.stringify(e)
330 } catch (e) {
331 TrustevLogger.LogMessage("Error in JavascriptData.NavigatorPlugins error: " + e)
332 }
333 try {
334 n["0e96e122-00bc-e311-be87-089e010f73f9"] = null != screen.width ? screen.width : "undefined"
335 } catch (e) {
336 TrustevLogger.LogMessage("Error in JSDisplayData.ScreenWidth error: " + e)
337 }
338 try {
339 n["0f96e122-00bc-e311-be87-089e010f73f9"] = null != screen.height ? screen.height : "undefined"
340 } catch (e) {
341 TrustevLogger.LogMessage("Error in JSDisplayData.ScreenHeight error: " + e)
342 }
343 try {
344 n["1096e122-00bc-e311-be87-089e010f73f9"] = null != screen.availWidth ? screen.availWidth : "undefined"
345 } catch (e) {
346 TrustevLogger.LogMessage("Error in JSDisplayData.ScreenAvailWidth error: " + e)
347 }
348 try {
349 n["1196e122-00bc-e311-be87-089e010f73f9"] = null != screen.availHeight ? screen.availHeight : "undefined"
350 } catch (e) {
351 TrustevLogger.LogMessage("Error in JSDisplayData.ScreenAvailHeight error: " + e)
352 }
353 try {
354 n["1296e122-00bc-e311-be87-089e010f73f9"] = null != screen.colorDepth ? screen.colorDepth : "undefined"
355 } catch (e) {
356 TrustevLogger.LogMessage("Error in JSDisplayData.ScreenColorDepth error: " + e)
357 }
358 try {
359 n["1396e122-00bc-e311-be87-089e010f73f9"] = null != screen.pixelDepth ? screen.pixelDepth : "undefined"
360 } catch (e) {
361 TrustevLogger.LogMessage("Error in JSDisplayData.ScreenPixelDepth error: " + e)
362 }
363 try {
364 n["1496e122-00bc-e311-be87-089e010f73f9"] = null != screen.fontSmoothingEnabled ? screen.fontSmoothingEnabled : "undefined"
365 } catch (e) {
366 TrustevLogger.LogMessage("Error in JSDisplayData.ScreenFontSmoothingEnabled error: " + e)
367 }
368 try {
369 n["1596e122-00bc-e311-be87-089e010f73f9"] = null != screen.bufferDepth ? screen.bufferDepth : "undefined"
370 } catch (e) {
371 TrustevLogger.LogMessage("Error in JSDisplayData.ScreenBufferDepth error: " + e)
372 }
373 try {
374 n["1696e122-00bc-e311-be87-089e010f73f9"] = null != screen.deviceXDPI ? screen.deviceXDPI : "undefined"
375 } catch (e) {
376 TrustevLogger.LogMessage("Error in JSDisplayData.ScreenDeviceXDPI error: " + e)
377 }
378 try {
379 n["1796e122-00bc-e311-be87-089e010f73f9"] = null != screen.deviceYDPI ? screen.deviceYDPI : "undefined"
380 } catch (e) {
381 TrustevLogger.LogMessage("Error in JSDisplayData.ScreenDeviceYDPI error: " + e)
382 }
383 try {
384 n["1996e122-00bc-e311-be87-089e010f73f9"] = null != screen.logicalXDPI ? screen.logicalXDPI : "undefined"
385 } catch (e) {
386 TrustevLogger.LogMessage("Error in JSDisplayData.ScreenLogicalXDPI error: " + e)
387 }
388 try {
389 n["1a96e122-00bc-e311-be87-089e010f73f9"] = null != screen.logicalYDPI ? screen.logicalYDPI : "undefined"
390 } catch (e) {
391 TrustevLogger.LogMessage("Error in JSDisplayData.ScreenLogicalYDPI error: " + e)
392 }
393 try {
394 n["1b96e122-00bc-e311-be87-089e010f73f9"] = null != screen.systemXDPI ? screen.systemXDPI : "undefined"
395 } catch (e) {
396 TrustevLogger.LogMessage("Error in JSDisplayData.ScreenSystemXDPI error: " + e)
397 }
398 try {
399 n["1c96e122-00bc-e311-be87-089e010f73f9"] = null != screen.systemYDPI ? screen.systemYDPI : "undefined"
400 } catch (e) {
401 TrustevLogger.LogMessage("Error in JSDisplayData.ScreenSystemYDPI error: " + e)
402 }
403 try {
404 n["1d96e122-00bc-e311-be87-089e010f73f9"] = null != screen.updateInterval ? screen.updateInterval : "undefined"
405 } catch (e) {
406 TrustevLogger.LogMessage("Error in JSDisplayData.ScreenUpdateInterval error: " + e)
407 }
408 try {
409 n["1e96e122-00bc-e311-be87-089e010f73f9"] = null != window.devicePixelRatio ? window.devicePixelRatio : "undefined"
410 } catch (e) {
411 TrustevLogger.LogMessage("Error in JSDisplayData.WindowDevicePixelRatio error: " + e)
412 }
413 try {
414 n["1f96e122-00bc-e311-be87-089e010f73f9"] = null != window.outerWidth ? window.outerWidth : "undefined"
415 } catch (e) {
416 TrustevLogger.LogMessage("Error in JSDisplayData.WindowOuterWidth error: " + e)
417 }
418 try {
419 n["2096e122-00bc-e311-be87-089e010f73f9"] = null != window.outerHeight ? window.outerHeight : "undefined"
420 } catch (e) {
421 TrustevLogger.LogMessage("Error in JSDisplayData.WindowOuterHeight error: " + e)
422 }
423 try {
424 n["2196e122-00bc-e311-be87-089e010f73f9"] = null != window.innerWidth ? window.innerWidth : "undefined"
425 } catch (e) {
426 TrustevLogger.LogMessage("Error in JSDisplayData.WindowInnerWidth error: " + e)
427 }
428 try {
429 n["2296e122-00bc-e311-be87-089e010f73f9"] = null != window.innerHeight ? window.innerHeight : "undefined"
430 } catch (e) {
431 TrustevLogger.LogMessage("Error in JSDisplayData.WindowInnerHeight error: " + e)
432 }
433 try {
434 n["2396e122-00bc-e311-be87-089e010f73f9"] = null != window.screenX ? window.screenX : "undefined"
435 } catch (e) {
436 TrustevLogger.LogMessage("Error in JSDisplayData.WindowScreenX error: " + e)
437 }
438 try {
439 n["2496e122-00bc-e311-be87-089e010f73f9"] = null != window.screenY ? window.screenY : "undefined"
440 } catch (e) {
441 TrustevLogger.LogMessage("Error in JSDisplayData.WindowScreenY error: " + e)
442 }
443 try {
444 n["2596e122-00bc-e311-be87-089e010f73f9"] = null != window.screenTop ? window.screenTop : "undefined"
445 } catch (e) {
446 TrustevLogger.LogMessage("Error in JSDisplayData.WindowScreenTop error: " + e)
447 }
448 try {
449 n["2696e122-00bc-e311-be87-089e010f73f9"] = null != window.screenLeft ? window.screenLeft : "undefined"
450 } catch (e) {
451 TrustevLogger.LogMessage("Error in JSDisplayData.WindowScreenLeft error: " + e)
452 }
453 try {
454 n["2796e122-00bc-e311-be87-089e010f73f9"] = null != document.documentElement.clientWidth ? document.documentElement.clientWidth : "undefined"
455 } catch (e) {
456 TrustevLogger.LogMessage("Error in JSDisplayData.DocumentDocumentElementClientWidth error: " + e)
457 }
458 try {
459 n["2896e122-00bc-e311-be87-089e010f73f9"] = null != document.documentElement.clientHeight ? document.documentElement.clientHeight : "undefined"
460 } catch (e) {
461 TrustevLogger.LogMessage("Error in JSDisplayData.DocumentDocumentElementClientHeight error: " + e)
462 }
463 TrustevApiClient.CallAPI("POST", c + "/device", JSON.stringify(n), function(e, r) {
464 if (void 0 !== a) return a(e, r);
465 var t;
466 TrustevV2.SetCookie("tsid-" + ConfigManager.PublicKey, i, 20), t = [i], (g["deviceInfoCollected"] || function() {}).apply(void 0, t)
467 })
468 },
469 SessionId: function() {
470 if ("NotSet" !== i && "" !== i) return i;
471 if ("" === ConfigManager.PublicKey || "NotSet" === ConfigManager.PublicKey) {
472 var e = t();
473 if (!e.hasOwnProperty("key")) return;
474 ConfigManager.PublicKey = e.key
475 }
476 if ("NotSet" === (i = a("tsid-" + ConfigManager.PublicKey)) || "" === i) {
477 TrustevLogger.LogMessage("TrustevV2-Init : No sessionId found so calling /session endpoint");
478 try {
479 var r = null;
480 window.XMLHttpRequest ? r = new XMLHttpRequest : window.ActiveXObject && (r = new ActiveXObject("Microsoft.XMLHTTP")), r && (r.open("POST", c + "/session", !1), r.setRequestHeader("X-PublicKey", ConfigManager.PublicKey), r.setRequestHeader("Content-Type", "application/json"), r.send("{}"), 200 === r.status && (i = JSON.parse(r.responseText).SessionId, s = i, d("tsid-" + ConfigManager.PublicKey, i, 20)))
481 } catch (e) {
482 TrustevLogger.LogMessage("TrustevV2-Init : Error on calling the /session endpoint")
483 }
484 }
485 return i
486 }(),
487 DeviceId: n.DeviceId || s,
488 LocationServices: {
489 UpdateSessionPosition: function(e) {
490 var r = {
491 SessionId: TrustevV2.SessionId,
492 Latitude: e.coords.latitude,
493 Longitude: e.coords.longitude
494 };
495 TrustevApiClient.CallAPI("POST", c + "/location", JSON.stringify(r), function() {})
496 },
497 GetHtml5Location: function() {
498 navigator.geolocation ? navigator.geolocation.getCurrentPosition(this.UpdateSessionPosition) : TrustevLogger.LogMessage("Geolocation is not supported by this browser.")
499 },
500 CallEvUrl: function(e) {
501 var r = document.createElement("img");
502 r.src = e, document.getElementsByTagName("head")[0].appendChild(r)
503 }
504 },
505 PassiveAuthComplete: function(e) {
506 var r = document.createElement("img");
507 r.src = e, document.getElementsByTagName("head")[0].appendChild(r)
508 },
509 On: function(e, r) {
510 g[e] = r
511 },
512 GetJsUrlParams: t()
513 }
514 }(),
515 TrustevApiClient = TrustevApiClient || {
516 CallAPI: function(e, r, t, a, o) {
517 try {
518 var n = null;
519 if (window.XMLHttpRequest ? n = new XMLHttpRequest : window.ActiveXObject && (n = new ActiveXObject("Microsoft.XMLHTTP")), n) {
520 if (n.onreadystatechange = function() {
521 n.readyState == XMLHttpRequest.DONE && a.apply(this, [n, t])
522 }, n.open(e, r, !0), null != o)
523 for (var i in o) o.hasOwnProperty(i) && n.setRequestHeader(i, o[i]);
524 else n.setRequestHeader("X-PublicKey", ConfigManager.PublicKey), n.setRequestHeader("Content-Type", "application/json");
525 "GET" === e ? n.send() : n.send(t)
526 }
527 } catch (e) {
528 TrustevLogger.LogMessage("Error on CallAPI - TrustevApiClient: " + e)
529 }
530 }
531 },
532 EvercookieManager = EvercookieManager || (_selectedStorageManagers = [], _trustevApiClient = null, _sessionId = null, _isInitiated = !1, _queuedEvercookies = [], _completeManagerCount = 0, _gatherEvercookieCallback = null, _gatheredEvercookies = [], {
533 Init: function(e, r) {
534 _selectedStorageManagers = e, _trustevApiClient = r, _isInitiated = !0
535 },
536 SetSessionId: function(e) {
537 if (_sessionId = e, TrustevLogger.LogMessage("EvercookieManager-SetSessionId : Setting SessionId : " + e), 0 < _queuedEvercookies.length)
538 for (var r = 0; r < _queuedEvercookies.length; r++) this.SendEvercookieToApi(_queuedEvercookies[r], this.TrustevApiCallback);
539 if (0 < _completeManagerCount && _completeManagerCount === _selectedStorageManagers.length) {
540 var t = {
541 source: "init"
542 };
543 t.id = _sessionId, this.SendEvercookieToApi(t, this.TrustevApiCallback)
544 }
545 },
546 GatherEvercookiesAndSendToApi: function(e, r) {
547 _gatherEvercookieCallback = r;
548 var t = this;
549 if (!_isInitiated) throw "You need to Init DeviceTagManager before executing";
550 for (var a = 0; a < _selectedStorageManagers.length; a++) _selectedStorageManagers[a].Get(e, function(e) {
551 if (e.id) TrustevLogger.LogMessage("EvercookieManager-GatherEvercookiesAndSendToApi : Storage manager returned cookie : " + JSON.stringify(e)), _gatheredEvercookies.push(e), _sessionId ? t.SendEvercookieToApi(e, t.TrustevApiCallback) : _queuedEvercookies.push(e);
552 else if (_completeManagerCount += 1, _completeManagerCount === _selectedStorageManagers.length && _sessionId) {
553 var r = {
554 source: "init"
555 };
556 r.id = _sessionId, t.SendEvercookieToApi(r, t.TrustevApiCallback)
557 }
558 })
559 },
560 SetMostAccurateEvercookie: function(e, r, t) {
561 var a = !1,
562 o = !1;
563 if (r && 0 < r.length)
564 for (var n = 0; n < r.length; n++)
565 if (r[n].id && (a = !0, 1 !== r[n].source.indexOf("iframe-"))) {
566 TrustevLogger.LogMessage("EvercookieManager-SetMostAccurateEvercookie : Found an iframe evercookie so setting that. Evercookie : " + JSON.stringify(r[n]));
567 for (var i = 0; i < _selectedStorageManagers.length; i++) _selectedStorageManagers[i].Set(e, r[n].id);
568 o = !0;
569 break
570 } if (a && !o)
571 for (var s = 0; s < r.length; s++)
572 if (r[s].id) {
573 TrustevLogger.LogMessage("EvercookieManager-SetMostAccurateEvercookie : Didnt find an iframe evercookie so using local domain one. Evercookie : " + JSON.stringify(r[s]));
574 for (var c = 0; c < _selectedStorageManagers.length; c++) _selectedStorageManagers[c].Set(e, r[s].id)
575 } if (!a)
576 for (var g = 0; g < _selectedStorageManagers.length; g++) TrustevLogger.LogMessage("EvercookieManager-SetMostAccurateEvercookie : Didnt find any evercookies, so going to use sessionId : " + JSON.stringify(_sessionId)), _selectedStorageManagers[g].Set(e, _sessionId);
577 t && t()
578 },
579 TrustevApiCallback: function() {
580 _completeManagerCount += 1, _completeManagerCount >= _selectedStorageManagers.length && _gatherEvercookieCallback && _gatherEvercookieCallback(_gatheredEvercookies)
581 },
582 SendEvercookieToApi: function(e, r) {
583 var t = {};
584 t.EvercookieId = e.id, t.EvercookieSource = e.source, t.SessionId = _sessionId, t.DeviceId = _sessionId, t.PublicKey = ConfigManager.PublicKey, TrustevLogger.LogMessage("EvercookieManager-SendEvercookieToApi : Sending a cookie to API : " + JSON.stringify(e)), _trustevApiClient.CallAPI("POST", ConfigManager.BaseUrl + "/device", JSON.stringify(t), r)
585 }
586 }),
587 SessionStorageManager = SessionStorageManager || function() {
588 var o = null;
589 try {
590 o = window.sessionStorage
591 } catch (e) {
592 TrustevLogger.LogMessage("sessionStorage - error: " + e.message + "; " + e.description)
593 }
594 return null !== o ? {
595 Get: function(e, r) {
596 var t = {
597 source: "sessionstorage"
598 };
599 try {
600 if (o) {
601 var a = o.getItem(e);
602 null != a && (t.id = a)
603 }
604 } catch (e) {
605 TrustevLogger.LogMessage("evercookie_session_storage - error: " + e.message + "; " + e.description)
606 }
607 r(t)
608 },
609 Set: function(e, r, t) {
610 o.setItem(e, r), t && t()
611 }
612 } : null
613 }(),
614 LocalStorageManager = LocalStorageManager || function() {
615 var o = null;
616 try {
617 o = window.localStorage
618 } catch (e) {
619 TrustevLogger.LogMessage("localStorage - error: " + e.message + "; " + e.description)
620 }
621 if (null !== o) return {
622 Get: function(e, r) {
623 var t = {
624 source: "localstorage"
625 };
626 try {
627 if (o) {
628 var a = o.getItem(e);
629 null != a && (t.id = a)
630 }
631 } catch (e) {
632 TrustevLogger.LogMessage("evercookie_local_storage - error: " + e.message + "; " + e.description)
633 }
634 r(t)
635 },
636 Set: function(e, r, t) {
637 o.setItem(e, r), t && t()
638 }
639 }
640 }(),
641 GlobalStorageManager = GlobalStorageManager || (globalStorage = window.globalStorage, host = window.location.host.replace(/:\d+/, ""), {
642 Get: function(e, r) {
643 var t = {
644 source: "globalstorage"
645 };
646 if (globalStorage) {
647 globalStorageEvercookie.id = "h1";
648 var a = globalStorage[host][e];
649 null != a && (t.id = a)
650 }
651 r(t)
652 },
653 Set: function(e, r, t) {
654 globalStorage && (globalStorage[host][e] = r), t && t()
655 }
656 }),
657 IndexDbStorageManager = IndexDbStorageManager || (indexDbStorageEvercookie = {
658 source: "indexdb"
659 }, {
660 Get: function(a, o) {
661 try {
662 if ("indexedDB" in window || (indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB, IDBTransaction = window.IDBTransaction || window.webkitIDBTransaction || window.msIDBTransaction, IDBKeyRange = window.IDBKeyRange || window.webkitIDBKeyRange || window.msIDBKeyRange), indexedDB) {
663 var e = indexedDB.open("idb_evercookie", 1);
664 e.onerror = function(e) {
665 TrustevLogger.LogMessage("evercookie_indexdb_storage - error: " + e), o(indexDbStorageEvercookie)
666 }, e.onupgradeneeded = function(e) {
667 e.target.result.createObjectStore("evercookie", {
668 keyPath: "name",
669 unique: !1
670 })
671 }, e.onsuccess = function(e) {
672 var r = e.target.result;
673 if (r.objectStoreNames.contains("evercookie")) {
674 var t = r.transaction(["evercookie"], "readwrite").objectStore("evercookie").get(a);
675 t.onsuccess = function(e) {
676 if (void 0 !== t.result) {
677 var r = t.result.value;
678 null != r && (indexDbStorageEvercookie.id = r)
679 }
680 o(indexDbStorageEvercookie)
681 }
682 }
683 r.close()
684 }
685 } else o(indexDbStorageEvercookie)
686 } catch (e) {
687 TrustevLogger.LogMessage("evercookie_indexdb_storage - error: " + err), o(indexDbStorageEvercookie)
688 }
689 },
690 Set: function(t, a, o) {
691 try {
692 if (indexedDB) {
693 var e = indexedDB.open("idb_evercookie", 1);
694 e.onerror = function(e) {
695 TrustevLogger.LogMessage("evercookie_indexdb_storage - error: " + e), o && o()
696 }, e.onupgradeneeded = function(e) {
697 e.target.result.createObjectStore("evercookie", {
698 keyPath: "name",
699 unique: !1
700 }), o && o()
701 }, e.onsuccess = function(e) {
702 var r = e.target.result;
703 r.objectStoreNames.contains("evercookie") && r.transaction(["evercookie"], "readwrite").objectStore("evercookie").put({
704 name: t,
705 value: a
706 }), r.close(), o && o()
707 }
708 } else o && o()
709 } catch (e) {
710 TrustevLogger.LogMessage("evercookie_indexdb_storage - error: " + err), o && o()
711 }
712 }
713 }),
714 DatabaseStorageManager = DatabaseStorageManager || (databaseStorageEvercookie = {
715 source: "databasestorage"
716 }, database = null, {
717 Get: function(r, a) {
718 window.openDatabase ? (database = database || window.openDatabase("etrust", "", r, 1048576), database.transaction(function(e) {
719 e.executeSql("SELECT value FROM cache WHERE name=?", [r], function(e, r) {
720 if (1 <= r.rows.length) {
721 var t = r.rows.item(0).value;
722 null != t && (databaseStorageEvercookie.id = t)
723 }
724 a(databaseStorageEvercookie)
725 }, function(e, r) {
726 TrustevLogger.LogMessage("evercookie_database_storage - error: " + r), a(databaseStorageEvercookie)
727 })
728 })) : a(databaseStorageEvercookie)
729 },
730 Set: function(r, t, e) {
731 window.openDatabase && (database = database || window.openDatabase("etrust", "", r, 1048576), database.transaction(function(e) {
732 e.executeSql("CREATE TABLE IF NOT EXISTS cache(id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, value TEXT NOT NULL, UNIQUE (name))", [], function(e, r) {}, function(e, r) {}), e.executeSql("INSERT OR REPLACE INTO cache(name, value) VALUES(?, ?)", [r, t], function(e, r) {}, function(e, r) {})
733 })), e && e()
734 }
735 }),
736 QuickStorageManager = QuickStorageManager || (quickStorageManagers = [LocalStorageManager, SessionStorageManager, GlobalStorageManager], {
737 Get: function(e, r) {
738 for (var t = 0, a = !1, o = 0; o < quickStorageManagers.length; o++) quickStorageManagers[o].Get(e, function(e) {
739 e.id && !a && (a = !0, r(e)), ++t == quickStorageManagers.length && (a || r(e), a = !1)
740 })
741 },
742 Set: function(e, r, t) {
743 for (var a = 0, o = 0; o < quickStorageManagers.length; o++) quickStorageManagers[o].Set(e, r, function(e) {
744 ++a === quickStorageManagers.length && t && t()
745 })
746 }
747 }),
748 IFrameStorageManager = IFrameStorageManager || (iframe = null, loadIFrame = function(e) {
749 iframe = document.createElement("iframe"), iframe.setAttribute("src", ConfigManager.CdnUrl + "/trustevIFrame.html"), iframe.style.display = "none", document.body.appendChild(iframe), iframe.onload = function() {
750 IFrameMessageManager.Init(window, "message"), e()
751 }
752 }, {
753 Get: function(e, r) {
754 var t = {
755 type: "IFrame_Evercookie_Get_Init"
756 };
757 t.evercookieIdKey = e, iframe ? IFrameMessageManager.Send(iframe, t, function(e) {
758 e.source = "iframe-" + e.source, TrustevLogger.LogMessage("IFrameStorageManager-Get : Found IFrame evercookie : " + JSON.stringify(e)), r(e)
759 }) : loadIFrame(function() {
760 IFrameMessageManager.Send(iframe, t, function(e) {
761 e.source = "iframe-" + e.source, TrustevLogger.LogMessage("IFrameStorageManager-Get : Found IFrame evercookie : " + JSON.stringify(e)), r(e)
762 })
763 })
764 },
765 Set: function(e, r, t) {
766 var a = {
767 type: "IFrame_Evercookie_Set_Init"
768 };
769 a.evercookieIdKey = e, a.evercookieId = r, TrustevLogger.LogMessage("Setting IFrame evercookie : Key " + e + ", Id : " + r), iframe ? IFrameMessageManager.Send(iframe, a, t) : loadIFrame(function() {
770 IFrameMessageManager.Send(iframe, a, t)
771 })
772 }
773 }),
774 IFrameMessageManager = IFrameMessageManager || (messageIdentifier = "TrustevIFrameMessage", currentMessageCallBack = null, iFrameListener = function(e) {
775 if (e.data && "TrustevIFrameMessage" === e.data.identifier) switch (e.data.type) {
776 case "IFrame_Evercookie_Get_Result":
777 currentMessageCallBack && currentMessageCallBack(e.data.evercookie);
778 break;
779 case "IFrame_Evercookie_Set_Result":
780 currentMessageCallBack && currentMessageCallBack();
781 break;
782 default:
783 TrustevLogger.LogMessage("Unrecognized iframe message type")
784 }
785 }, {
786 Init: function(e, r, t) {
787 "addEventListener" in e ? e.addEventListener(r, iFrameListener, !1) : "attachEvent" in e && e.attachEvent("on" + r, iFrameListener)
788 },
789 Send: function(e, r, t) {
790 currentMessageCallBack = t, r.identifier = messageIdentifier, e.contentWindow.postMessage(r, "*")
791 }
792 });
793! function e() {
794 if (void 0 !== TrustevV2) {
795 var r = TrustevV2.GetJsUrlParams;
796 r.hasOwnProperty("key") && TrustevV2.Init(r.key, function() {})
797 } else setTimeout(e, 50)
798}();