ibp-tms 1.0.66 → 1.0.68

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ibp-tms",
3
- "version": "1.0.66",
3
+ "version": "1.0.68",
4
4
  "description": "Style & JS optimized",
5
5
  "main": "index.js",
6
6
  "scripts": {
package/tms.js CHANGED
@@ -1 +1 @@
1
- !function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var n=e();for(var o in n)("object"==typeof exports?exports:t)[o]=n[o]}}(self,(()=>(function(){let t,e,n=[],o=null,i=0,d=0,l=20,r=null,a=null,u=null,c=2;function s(o,i){const d=Date.now();if(t&&e){const l=o-t.x,r=i-t.y,a=d-e,u=Math.sqrt(l*l+r*r)/a;n.push({dx:l,dy:r,dt:a,velocity:u}),n.length>100&&n.shift()}t={x:o,y:i},e=d}function h(){if(navigator.webdriver||window.chrome?.runtime?.sendMessage||/HeadlessChrome|Chrome-Lighthouse/i.test(navigator.userAgent))return 1e3;if(0==navigator.languages?.length)return 500;try{const t=document.createElement("canvas"),e=t.getContext("webgl")||t.getContext("experimental-webgl"),n=["SwiftShader","llvmpipe","softpipe","swrast","Basic Render Driver"];if(e){const t=e.getExtension("WEBGL_debug_renderer_info"),o=t?e.getParameter(t.UNMASKED_RENDERER_WEBGL):e.getParameter(e.RENDERER);if(n.some((t=>o.toLowerCase().includes(t.toLowerCase()))))return 700}}catch(e){}let t=!1;const e=new Error;if(Object.defineProperty(e,"stack",{get(){t=!0}}),t)return 500;try{const t="__ls_test__",e=window.localStorage;e.setItem(t,"1"),e.removeItem(t)}catch(e){return 300}let n=document.cookie.match("AGIDs?=s?(?<MM>\\d{2})(?<dd>\\d{2})(?<yyyy>\\d{4})(?<HH>\\d{2})(?<mm>\\d{2})(?<ss>\\d{2})(?<fffff>\\d{5})");if(!n||null==n||!n.groups)return 300;let o=new Date(Date.parse(`${n.groups.yyyy}-${n.groups.MM}-${n.groups.dd}T${n.groups.HH}:${n.groups.mm}:${n.groups.ss}.${n.groups.fffff}Z`)),i=new Date,d=Math.abs(i.getTime()-o.getTime()),l=v();return d>1e4&&(null==l||!l.count)?300:!("ontouchstart"in window)&&navigator.maxTouchPoints>0?400:null!=l&&l.domain&&-1==window.location.indexOf(l.domain)||null!=u&&-1==window.location.indexOf(u)?101:y()?100:0}function m(t){if(i>0&&(t=i),n.length-d<(t||l))return!1;d=n.length-1;let e=n.some(((t,e,n)=>e>0&&Math.abs(t.velocity-n[e-1].velocity)>.05)),o=n.some(((t,e,n)=>e>1&&(Math.abs(t.dx-n[e-1].dx)>.1||Math.abs(t.dy-n[e-1].dy)>.1))),r=n.some((t=>t.dt>50&&t.dt<500));return e&&o&&r}function f(t,e){let n=m();if(n||t||e||i>0){var o=t&&!n?function(){let t=v(),e=null;return null!=t&&t.hash&&(e=t.hash,delete t.hash,p(t)),e}():w(e||i);if(null==o||c<=0)return;let l="/tfp/"+o+".png";var d=new Image;d.onload=function(){if(!document.body.hasAttribute("r-id")&&function(t,e={}){const n=e.threshold??20,o=e.ratio??.95,i=t.naturalWidth,d=t.naturalHeight,l=200,r=Math.min(1,l/Math.max(i,d)),a=document.createElement("canvas");a.width=Math.max(1,Math.floor(i*r)),a.height=Math.max(1,Math.floor(d*r));const u=a.getContext("2d");u.drawImage(t,0,0,a.width,a.height);const{data:c,width:s,height:h}=u.getImageData(0,0,a.width,a.height),m=s*h;let f=0;for(let t=0;t<c.length;t+=4){const e=c[t],o=c[t+1],i=c[t+2];0!==c[t+3]&&(Math.max(e,o,i)<=n&&f++)}return f/m>=o}(d)){let t=v();(!t.token||t.token&&"UN"!=t.token)&&new Promise(((t,e)=>{try{fetch("/traffic/id",{method:"GET"}).then((t=>t.json())).then((n=>{if(n&&n.id){let e=v();null==e&&(e={}),e.id=n.id,e.uid=n.id,r=n.id,p(e),t(n.id)}else e()})).catch((t=>{e()}))}catch(t){e()}})).then((e=>{t.token||(t.token="NA",p(t))})).catch((e=>{t.token="UN",p(t)}))}},d.onerror=function(){if(c<=0)return;c--;let t=(document.querySelector('meta[property="og:url"]')?document.querySelector('meta[property="og:url"]').getAttribute("content"):window.location.href).match(/^(?:https?:\/\/)?(?:www\.)?([^\/]+)/i),e=t?t[0]:null;null!=e&&(d.src=e+l)},d.src=l}}function g(){if(m()){let t=v();null==t&&(t={}),t.hash=w(i),p(t)}}function w(t){let e=0==t?function(t){let e=0,n=0,o=0,i=0,d=[];t.forEach((t=>{e+=t.dx,n+=t.dy,o+=t.dt;let l=Math.sqrt(t.dx*t.dx+t.dy*t.dy);i+=l,d.push(l/(t.dt||1e-5))}));let l=d.length?d.reduce(((t,e)=>t+e),0)/d.length:0,r=Math.atan2(n,e);return[Math.round(255*Math.min(1,l/5)),Math.round(255*(r+Math.PI)/(2*Math.PI)),Math.round(255*Math.min(1,i/100))]}(n):[0,0,0],i=0==t?function(t,e,n){const o=.299*t+.587*e+.114*n;return Math.round(o/255*100)}(e[0],e[1],e[2]):1==t?1:-1,d=o&&o.id?"U-"+o.id:"UN";return btoa(`${d}|${i}|${e[0]}|${e[1]}|${e[2]}|${t??0}`).replace(/[^A-z0-9\.]/gi,"-e")}function v(){return null==window.localStorage.getItem("TSM")?null:JSON.parse(window.localStorage.getItem("TSM"))}function y(){return null!=a&&null!=r&&btoa("U-"+atob(r))!=atob(a)}function p(t){return window.localStorage.setItem("TSM",JSON.stringify(t)),!0}let M=0;function E(t){f(t),M++,M<10&&setTimeout((()=>{E(!1)}),5e3*M)}function b(){E(!0),document.addEventListener("click",(()=>{f(!1)})),document.addEventListener("touchend",(()=>{f(!1)})),window.addEventListener("beforeunload",(()=>{g()})),document.addEventListener("visibilitychange",(()=>{"hidden"===document.visibilityState&&g()}))}function x(){o=v();let t=document.getElementById("agTSM");if(null!=t){let e=JSON.parse(t.textContent);null!=e&&(null!=o&&o.id&&o.uid&&o.id==e.id||(null==o&&(o={}),o.uid=o.id=e.id,p(o)))}return null!=o&&o.uid&&(r=o.uid,a=null==window.localStorage.getItem("AGSTREAM")?null:window.localStorage.getItem("AGSTREAM")),null!=t}function S(){y()&&(i=h(),f(!1,-1))}!function(){if(x()&&document.addEventListener("DOMContentLoaded",(()=>{x(),S()})),document&&document.body&&null!=document.body&&document.body.hasAttribute("r-id"))document.body.addEventListener("ag.tsm.valid",(t=>{let e=v();null==e&&(e={}),e.token=t.detail.token,e.id=t.detail.id,p(e)}));else{i=h(),l="ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0?2:20,null!=o&&o.valid||(document.addEventListener("mousemove",(t=>s(t.clientX,t.clientY))),document.addEventListener("mousedown",(t=>s(t.clientX,t.clientY))),document.addEventListener("touchstart",(t=>{const e=t.touches[0];e&&e.clientX&&s(e.clientX,e.clientY)})),document.addEventListener("touchend",(t=>{const e=t.touches[0];e&&e.clientX&&s(e.clientX,e.clientY)})),document.addEventListener("touchmove",(t=>{const e=t.touches[0];e&&e.clientX&&s(e.clientX,e.clientY)})),document.addEventListener("scroll",(t=>{s(window.scrollX,window.scrollY)})),b());let t=v();null==t&&(t={}),t.count?t.count++:t.count=1,t.count<10&&p(t),window.addEventListener("ag.event.stream",(t=>{a=t.detail.streamKey,S()})),window.agEvent&&window.dispatchEvent(new CustomEvent("ag.event.stream.update"))}}()}(),{})));
1
+ !function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var n=e();for(var o in n)("object"==typeof exports?exports:t)[o]=n[o]}}(self,(()=>(function(){let t,e,n=[],o=null,i=0,d=0,l=20,r=null,a=null,u=null,c=2;function s(o,i){const d=Date.now();if(t&&e){const l=o-t.x,r=i-t.y,a=d-e,u=Math.sqrt(l*l+r*r)/a;n.push({dx:l,dy:r,dt:a,velocity:u}),n.length>100&&n.shift()}t={x:o,y:i},e=d}function h(){if(navigator.webdriver||window.chrome?.runtime?.sendMessage||/HeadlessChrome|Chrome-Lighthouse/i.test(navigator.userAgent))return 1e3;if(0==navigator.languages?.length)return 500;try{const t=document.createElement("canvas"),e=t.getContext("webgl")||t.getContext("experimental-webgl"),n=["SwiftShader","llvmpipe","softpipe","swrast","Basic Render Driver"];if(e){const t=e.getExtension("WEBGL_debug_renderer_info"),o=t?e.getParameter(t.UNMASKED_RENDERER_WEBGL):e.getParameter(e.RENDERER);if(n.some((t=>o.toLowerCase().includes(t.toLowerCase()))))return 700}}catch(e){}let t=!1;const e=new Error;if(Object.defineProperty(e,"stack",{get(){t=!0}}),t)return 500;try{const t="__ls_test__",e=window.localStorage;e.setItem(t,"1"),e.removeItem(t)}catch(e){return 300}let n=document.cookie.match("AGIDs?=s?(?<MM>\\d{2})(?<dd>\\d{2})(?<yyyy>\\d{4})(?<HH>\\d{2})(?<mm>\\d{2})(?<ss>\\d{2})(?<fffff>\\d{5})");if(!n||null==n||!n.groups)return 300;let o=new Date(Date.parse(`${n.groups.yyyy}-${n.groups.MM}-${n.groups.dd}T${n.groups.HH}:${n.groups.mm}:${n.groups.ss}.${n.groups.fffff}Z`)),i=new Date,d=Math.abs(i.getTime()-o.getTime()),l=v();return d>1e4&&(null==l||!l.count)?300:!("ontouchstart"in window)&&navigator.maxTouchPoints>0?400:null!=l&&l.domain&&-1==window.location.indexOf(l.domain)||null!=u&&-1==window.location.indexOf(u)?101:y()?100:0}function m(t){if(i>0&&(t=i),n.length-d<(t||l))return!1;d=n.length-1;let e=n.some(((t,e,n)=>e>0&&Math.abs(t.velocity-n[e-1].velocity)>.05)),o=n.some(((t,e,n)=>e>1&&(Math.abs(t.dx-n[e-1].dx)>.1||Math.abs(t.dy-n[e-1].dy)>.1))),r=n.some((t=>t.dt>50&&t.dt<500));return e&&o&&r}function f(t,e){let n=m();if(n||t||e||i>0){var o=t&&!n?function(){let t=v(),e=null;return null!=t&&t.hash&&(e=t.hash,delete t.hash,p(t)),e}():w(e||i);if(null==o||c<=0)return;let l="/tfp/"+o+".png";var d=new Image;d.onload=function(){if(!document.body.hasAttribute("r-id")&&function(t,e={}){const n=e.threshold??20,o=e.ratio??.95,i=t.naturalWidth,d=t.naturalHeight,l=200,r=Math.min(1,l/Math.max(i,d)),a=document.createElement("canvas");a.width=Math.max(1,Math.floor(i*r)),a.height=Math.max(1,Math.floor(d*r));const u=a.getContext("2d");u.drawImage(t,0,0,a.width,a.height);const{data:c,width:s,height:h}=u.getImageData(0,0,a.width,a.height),m=s*h;let f=0;for(let t=0;t<c.length;t+=4){const e=c[t],o=c[t+1],i=c[t+2];0!==c[t+3]&&(Math.max(e,o,i)<=n&&f++)}return f/m>=o}(d)){let t=v();null!=t&&t.token&&"UN"!=t.token&&new Promise(((t,e)=>{try{fetch("/traffic/id",{method:"GET"}).then((t=>t.json())).then((n=>{if(n&&n.id){let e=v();null==e&&(e={}),e.id=n.id,e.uid=n.id,r=n.id,p(e),t(n.id)}else e()})).catch((t=>{e()}))}catch(t){e()}})).then((e=>{t.token||(t.token="NA",p(t))})).catch((e=>{t.token="UN",p(t)}))}},d.onerror=function(){if(c<=0)return;c--;let t=(document.querySelector('meta[property="og:url"]')?document.querySelector('meta[property="og:url"]').getAttribute("content"):window.location.href).match(/^(?:https?:\/\/)?(?:www\.)?([^\/]+)/i),e=t?t[0]:null;null!=e&&(d.src=e+l)},d.src=l}}function g(){if(m()){let t=v();null==t&&(t={}),t.hash=w(i),p(t)}}function w(t){let e=0==t?function(t){let e=0,n=0,o=0,i=0,d=[];t.forEach((t=>{e+=t.dx,n+=t.dy,o+=t.dt;let l=Math.sqrt(t.dx*t.dx+t.dy*t.dy);i+=l,d.push(l/(t.dt||1e-5))}));let l=d.length?d.reduce(((t,e)=>t+e),0)/d.length:0,r=Math.atan2(n,e);return[Math.round(255*Math.min(1,l/5)),Math.round(255*(r+Math.PI)/(2*Math.PI)),Math.round(255*Math.min(1,i/100))]}(n):[0,0,0],i=0==t?function(t,e,n){const o=.299*t+.587*e+.114*n;return Math.round(o/255*100)}(e[0],e[1],e[2]):1==t?1:-1,d=o&&o.id?"U-"+o.id:"UN";return btoa(`${d}|${i}|${e[0]}|${e[1]}|${e[2]}|${t??0}`).replace(/[^A-z0-9\.]/gi,"-e")}function v(){return null==window.localStorage.getItem("TSM")?null:JSON.parse(window.localStorage.getItem("TSM"))}function y(){return null!=a&&null!=r&&btoa("U-"+atob(r))!=atob(a)}function p(t){return window.localStorage.setItem("TSM",JSON.stringify(t)),!0}let M=0;function E(t){f(t),M++,M<10&&setTimeout((()=>{E(!1)}),5e3*M)}function b(){E(!0),document.addEventListener("click",(()=>{f(!1)})),document.addEventListener("touchend",(()=>{f(!1)})),window.addEventListener("beforeunload",(()=>{g()})),document.addEventListener("visibilitychange",(()=>{"hidden"===document.visibilityState&&g()}))}function x(){o=v();let t=document.getElementById("agTSM");if(null!=t){let e=JSON.parse(t.textContent);null!=e&&(null!=o&&o.id&&o.uid&&o.id==e.id||(null==o&&(o={}),o.uid=o.id=e.id,p(o)))}return null!=o&&o.uid&&(r=o.uid,a=null==window.localStorage.getItem("AGSTREAM")?null:window.localStorage.getItem("AGSTREAM")),null!=t}function S(){y()&&(i=h(),f(!1,-1))}!function(){if(x()&&document.addEventListener("DOMContentLoaded",(()=>{x(),S()})),document&&document.body&&null!=document.body&&document.body.hasAttribute("r-id"))document.body.addEventListener("ag.tsm.valid",(t=>{let e=v();null==e&&(e={}),e.token=t.detail.token,e.id=t.detail.id,p(e)}));else{i=h(),l="ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0?2:20,null!=o&&o.valid||(document.addEventListener("mousemove",(t=>s(t.clientX,t.clientY))),document.addEventListener("mousedown",(t=>s(t.clientX,t.clientY))),document.addEventListener("touchstart",(t=>{const e=t.touches[0];e&&e.clientX&&s(e.clientX,e.clientY)})),document.addEventListener("touchend",(t=>{const e=t.touches[0];e&&e.clientX&&s(e.clientX,e.clientY)})),document.addEventListener("touchmove",(t=>{const e=t.touches[0];e&&e.clientX&&s(e.clientX,e.clientY)})),document.addEventListener("scroll",(t=>{s(window.scrollX,window.scrollY)})),b());let t=v();null==t&&(t={}),t.count?t.count++:t.count=1,t.count<10&&p(t),window.addEventListener("ag.event.stream",(t=>{a=t.detail.streamKey,S()})),window.agEvent&&window.dispatchEvent(new CustomEvent("ag.event.stream.update"))}}()}(),{})));
package/tms.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tms.js","mappings":"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","sources":["webpack:///webpack/universalModuleDefinition","webpack:///./src/tms.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(self, () => {\nreturn ","(function(){\r\n \r\n \r\n let movements = [];\r\n\r\n let tsm = null;\r\n\r\n let lastPos;\r\n\r\n let lastTime;\r\n\r\n let suspectScore = 0;\r\n\r\n let lastLength = 0;\r\n\r\n let defaultLimit = 20;\r\n\r\n let tmsUserID = null;\r\n\r\n let streamUserID = null;\r\n\r\n let currentDomain = null;\r\n\r\n let isUserIDUpdated = false;\r\n\r\n let updateError = 2;\r\n\r\n const isTouchCapable = () => {\r\n return (\r\n 'ontouchstart' in window ||\r\n navigator.maxTouchPoints > 0 ||\r\n navigator.msMaxTouchPoints > 0 // For older IE\r\n );\r\n };\r\n \r\n function getSignature() {\r\n\r\n var singnatureSamples = movements.filter((x, i) => { return i < 16 });\r\n var signatureValue = singnatureSamples.reduce((x, y, i) => {\r\n return x + '|' + Math.round(y.dx + y.dy + y.dt + y.velocity);\r\n }, '');\r\n return btoa(signatureValue);\r\n }\r\n\r\n function recordMovement(x, y) {\r\n const now = Date.now();\r\n if (lastPos && lastTime) {\r\n const dx = x - lastPos.x;\r\n const dy = y - lastPos.y;\r\n const dt = now - lastTime;\r\n const distance = Math.sqrt(dx * dx + dy * dy);\r\n const velocity = distance / dt;\r\n movements.push({ dx, dy, dt, velocity });\r\n if(movements.length>100)movements.shift();\r\n }\r\n lastPos = { x, y };\r\n lastTime = now;\r\n }\r\n\r\n function huristicAdaption(points) {\r\n let totalDx = 0, totalDy = 0, totalDt = 0;\r\n let totalDist = 0;\r\n let velocities = [];\r\n points.forEach(p => {\r\n totalDx += p.dx;\r\n totalDy += p.dy;\r\n totalDt += p.dt;\r\n let dist = Math.sqrt(p.dx * p.dx + p.dy * p.dy);\r\n totalDist += dist;\r\n velocities.push(dist / (p.dt || 1e-5)); // avoid divide by zero\r\n });\r\n // Feature extraction\r\n let avgVel = velocities.length ? velocities.reduce((a, b) => a + b, 0) / velocities.length : 0;\r\n let direction = Math.atan2(totalDy, totalDx); // angle in radians, -π to π\r\n\r\n // Non-linear scaling and normalization\r\n // velocity: [0, max], direction: [-π, π], totalDist: scale as you wish\r\n let r = Math.round(255 * Math.min(1, avgVel / 5)); // scale velocity, or use other non-linear (logistic, sqrt, etc)\r\n let g = Math.round(255 * (direction + Math.PI) / (2 * Math.PI)); // normalize angle to [0,1]\r\n let b = Math.round(255 * Math.min(1, totalDist / 100)); // scale total distance, or another feature\r\n\r\n return [r, g, b];\r\n }\r\n\r\n\r\n function rgbToGrayWight(r, g, b) {\r\n const gray = 0.299 * r + 0.587 * g + 0.114 * b; // Accurate grayscale\r\n return Math.round(gray / 255 * 100); // Scale to 0-100\r\n }\r\n\r\n\r\n\r\n\r\n function onRecord()\r\n {\r\n document.addEventListener(\"mousemove\", e => recordMovement(e.clientX, e.clientY));\r\n document.addEventListener(\"mousedown\", e => recordMovement(e.clientX, e.clientY));\r\n document.addEventListener(\"touchstart\", e => {\r\n const t = e.touches[0];\r\n if(t && t.clientX)\r\n recordMovement(t.clientX, t.clientY);\r\n });\r\n\r\n document.addEventListener(\"touchend\", e => {\r\n const t = e.touches[0];\r\n if(t && t.clientX)\r\n recordMovement(t.clientX, t.clientY);\r\n });\r\n\r\n document.addEventListener(\"touchmove\", e => {\r\n const t = e.touches[0];\r\n if(t && t.clientX)\r\n recordMovement(t.clientX, t.clientY);\r\n });\r\n\r\n document.addEventListener(\"scroll\", e=>{ \r\n recordMovement(window.scrollX, window.scrollY);\r\n });\r\n }\r\n\r\n function getSuspectAutomationScore(){\r\n if(navigator.webdriver|| window.chrome?.runtime?.sendMessage ||/HeadlessChrome|Chrome-Lighthouse/i.test(navigator.userAgent))return 1000;\r\n if(navigator.languages?.length==0)return 500;\r\n try {\r\n const canvas = document.createElement('canvas');\r\n const gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl');\r\n const softwareRenderers = ['SwiftShader', 'llvmpipe', 'softpipe', 'swrast', 'Basic Render Driver'];\r\n if (gl) {\r\n const debugInfo = gl.getExtension('WEBGL_debug_renderer_info');\r\n const renderer = debugInfo ? gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL) : gl.getParameter(gl.RENDERER); \r\n if (softwareRenderers.some(r=>renderer.toLowerCase().includes(r.toLowerCase()))) {\r\n return 700;\r\n }\r\n }\r\n } catch (e) { \r\n }\r\n let cdpDetected = false;\r\n const e = new Error();\r\n Object.defineProperty(e, 'stack', {\r\n get() {\r\n cdpDetected = true;\r\n }\r\n });\r\n if(cdpDetected)\r\n return 500;\r\n\r\n \r\n try {\r\n const key = '__ls_test__';\r\n const storage = window.localStorage;\r\n storage.setItem(key, '1');\r\n storage.removeItem(key);\r\n } catch (e) { \r\n return 300;\r\n }\r\n\r\n let primaryCookie = document.cookie.match(('AGID\\s?\\=\\s?(?<MM>\\\\d{2})(?<dd>\\\\d{2})(?<yyyy>\\\\d{4})(?<HH>\\\\d{2})(?<mm>\\\\d{2})(?<ss>\\\\d{2})(?<fffff>\\\\d{5})'));\r\n if(!primaryCookie || primaryCookie==null || !primaryCookie.groups) return 300;\r\n let cookieDate = new Date(Date.parse(`${primaryCookie.groups.yyyy}-${primaryCookie.groups.MM}-${primaryCookie.groups.dd}T${primaryCookie.groups.HH}:${primaryCookie.groups.mm}:${primaryCookie.groups.ss}.${primaryCookie.groups.fffff}Z`));\r\n let currentDate = new Date();\r\n let timeDiff = Math.abs(currentDate.getTime() - cookieDate.getTime()); \r\n let currentValue = getCurrentValue();\r\n if(timeDiff>10*1000&&(currentValue==null||!currentValue.count))return 300; \r\n //if(!(window.innerWidth==window.outerWidth&&window.innerHeight==window.outerHeight))return 400;\r\n if(!('ontouchstart' in window)&&navigator.maxTouchPoints>0)return 400; \r\n if((currentValue!=null&&currentValue.domain&&window.location.indexOf(currentValue.domain)==-1)||(currentDomain!=null&&window.location.indexOf(currentDomain)==-1))return 101;\r\n if(suspectVPN())return 100; \r\n return 0;\r\n }\r\n\r\n function isHuman(limit) {\r\n if(suspectScore>0)limit = suspectScore;\r\n if (movements.length - lastLength < (limit?limit:defaultLimit)) return false;\r\n lastLength = movements.length - 1;\r\n let varying = movements.some((m, i, arr) => i > 0 && (Math.abs(m.velocity - arr[i - 1].velocity) > 0.05));\r\n let nonLinear = movements.some((m, i, arr) => i > 1 && (Math.abs(m.dx - arr[i - 1].dx) > 0.1 || Math.abs(m.dy - arr[i - 1].dy) > 0.1));\r\n let irregular = movements.some(m => m.dt > 50 && m.dt < 500); \r\n return varying && nonLinear && irregular;\r\n }\r\n\r\n function halucinateClient(){\r\n //updateScore(false,-1);\r\n }\r\n\r\n function updateId(){\r\n return new Promise((idresolve,idreject)=>{\r\n try{\r\n fetch('/traffic/id',{method:'GET'}).then(res=>res.json()).then(data=>{\r\n if(data && data.id){\r\n let currentValue = getCurrentValue();\r\n if(currentValue==null)currentValue={};\r\n currentValue.id = data.id;\r\n currentValue.uid = data.id;\r\n tmsUserID = data.id;\r\n setCurrentValue(currentValue);\r\n idresolve(data.id);\r\n }else{\r\n halucinateClient();\r\n idreject();\r\n }\r\n }).catch(ex=>{ halucinateClient();idreject();});\r\n }catch(ex){ halucinateClient();idreject(); }\r\n });\r\n }\r\n\r\n function getUId(){\r\n return new Promise((idresolve,idreject)=>{\r\n try{\r\n fetch('/traffic/uid',{method:'GET'}).then(res=>res.json()).then(data=>{\r\n if(data && data.id){\r\n let currentValue = getCurrentValue();\r\n if(currentValue==null)currentValue={};\r\n currentValue.uid = data.id;\r\n currentValue.domain = data.domain;\r\n tmsUserID = data.id;\r\n currentDomain = data.domain;\r\n setCurrentValue(currentValue);\r\n idresolve(tmsUserID);\r\n }else{\r\n idresolve('MC4wLjAuMA==');\r\n }\r\n }).catch(ex=>{ idresolve('MC4wLjAuMA=='); });\r\n }catch(ex){ idresolve('MC4wLjAuMA=='); }\r\n });\r\n }\r\n\r\n function webScrapRequestReminder(){\r\n // Disabled\r\n }\r\n\r\n function updateScore(isInit,forcedScoreToUpdate){\r\n let isHumanResult = isHuman();\r\n if(isHumanResult||isInit||forcedScoreToUpdate||suspectScore>0){ \r\n var hashValue = isInit&&!isHumanResult?getScoreFromLocal():getHash(forcedScoreToUpdate?forcedScoreToUpdate:suspectScore); \r\n if(hashValue==null||updateError<=0)return;\r\n let src = \"/tfp/\"+hashValue+'.png';\r\n var image = new Image();\r\n image.onload = function() {\r\n if(!document.body.hasAttribute('r-id') && isImageMostlyBlack(image)){\r\n let curretValue = getCurrentValue();\r\n if(!curretValue.token||(curretValue.token&&curretValue.token!='UN')){\r\n {\r\n updateId().then(data=>{\r\n if(!curretValue.token)\r\n {\r\n curretValue.token='NA';\r\n setCurrentValue(curretValue);\r\n }\r\n }).catch(e=>{\r\n curretValue.token='UN';\r\n setCurrentValue(curretValue);\r\n });\r\n }\r\n }\r\n }else{\r\n\r\n }\r\n if(suspectScore>0){\r\n webScrapRequestReminder();\r\n }\r\n };\r\n image.onerror = function() {\r\n if(updateError<=0) return;\r\n updateError--; \r\n let shareUrl = document.querySelector('meta[property=\"og:url\"]') ? document.querySelector('meta[property=\"og:url\"]').getAttribute(\"content\") : window.location.href;\r\n let domainExtractedMatch = shareUrl.match(/^(?:https?:\\/\\/)?(?:www\\.)?([^\\/]+)/i);\r\n let domainExtracted = domainExtractedMatch ? domainExtractedMatch[0] : null;\r\n if(domainExtracted!=null){\r\n image.src = domainExtracted+src;\r\n }\r\n };\r\n image.src = src;\r\n } \r\n }\r\n\r\n function updateScoreToLocal(){\r\n if(isHuman()){ \r\n let currentValue = getCurrentValue();\r\n if(currentValue==null)currentValue={};\r\n currentValue.hash = getHash(suspectScore);\r\n setCurrentValue(currentValue);\r\n }\r\n }\r\n\r\n function getScoreFromLocal(){\r\n let currentValue = getCurrentValue();\r\n let valueToSend = null;\r\n if(currentValue!=null&&currentValue.hash)\r\n {\r\n valueToSend = currentValue.hash;\r\n delete currentValue.hash;\r\n setCurrentValue(currentValue);\r\n }\r\n return valueToSend;\r\n }\r\n\r\n function getHash(suspectScoreDetected){\r\n let rgb = suspectScoreDetected==0?huristicAdaption(movements):[0,0,0];\r\n let score = suspectScoreDetected==0?rgbToGrayWight(rgb[0],rgb[1],rgb[2]):(suspectScoreDetected==1?1:-1); \r\n let id = tsm && tsm.id ?'U-'+ tsm.id : 'UN';\r\n return btoa(`${id}|${score}|${rgb[0]}|${rgb[1]}|${rgb[2]}|${suspectScoreDetected??0}`).replace(/[^A-z0-9\\.]/gi,'-e');\r\n }\r\n\r\n function getCurrentValue()\r\n {\r\n if(window.localStorage.getItem(\"TSM\")==null)return null;\r\n return JSON.parse(window.localStorage.getItem(\"TSM\"));\r\n }\r\n\r\n function suspectVPN(){\r\n if(streamUserID!=null&&tmsUserID!=null&&btoa('U-'+atob(tmsUserID))!=atob(streamUserID))return true;\r\n return false;\r\n }\r\n\r\n function getCurrentEventStreamID(){\r\n if(window.localStorage.getItem(\"AGSTREAM\")==null)return null;\r\n return window.localStorage.getItem(\"AGSTREAM\");\r\n }\r\n\r\n function setCurrentValue(value)\r\n {\r\n window.localStorage.setItem(\"TSM\", JSON.stringify(value));\r\n return true;\r\n }\r\n\r\n function isImageMostlyBlack(image, opts = {}) {\r\n const threshold = opts.threshold ?? 20; // 0–255, max brightness to count as black\r\n const ratio = opts.ratio ?? 0.95; // fraction of pixels that must be black\r\n\r\n const w = image.naturalWidth;\r\n const h = image.naturalHeight;\r\n\r\n // Downscale to speed up: sample at most 200x200\r\n const maxSize = 200;\r\n const scale = Math.min(1, maxSize / Math.max(w, h));\r\n\r\n const canvas = document.createElement('canvas');\r\n canvas.width = Math.max(1, Math.floor(w * scale));\r\n canvas.height = Math.max(1, Math.floor(h * scale));\r\n const ctx = canvas.getContext('2d');\r\n\r\n ctx.drawImage(image, 0, 0, canvas.width, canvas.height);\r\n\r\n const { data, width, height } = ctx.getImageData(0, 0, canvas.width, canvas.height);\r\n const totalPixels = width * height;\r\n\r\n let blackPixels = 0;\r\n for (let i = 0; i < data.length; i += 4) {\r\n const r = data[i];\r\n const g = data[i + 1];\r\n const b = data[i + 2];\r\n const a = data[i + 3];\r\n\r\n // Treat transparent pixels as non‑black (optional)\r\n if (a === 0) continue;\r\n\r\n // brightness via simple max channel\r\n const brightness = Math.max(r, g, b);\r\n\r\n if (brightness <= threshold) {\r\n blackPixels++;\r\n }\r\n }\r\n\r\n return blackPixels / totalPixels >= ratio;\r\n }\r\n\r\n let startPeriod = 5000;\r\n let startIndex = 10;\r\n let currentIndex = 0;\r\n\r\n function autoUpdate(isInit){\r\n updateScore(isInit);\r\n currentIndex++;\r\n if(currentIndex<startIndex)\r\n setTimeout(() => {\r\n autoUpdate(false); \r\n }, startPeriod*currentIndex);\r\n }\r\n\r\n function start(){\r\n autoUpdate(true);\r\n document.addEventListener('click',()=>{updateScore(false);});\r\n document.addEventListener('touchend',()=>{updateScore(false);}); \r\n window.addEventListener('beforeunload',()=>{updateScoreToLocal();});\r\n document.addEventListener(\"visibilitychange\", () => {\r\n if (document.visibilityState === \"hidden\") {\r\n updateScoreToLocal();\r\n }\r\n }); \r\n }\r\n\r\n function attachListener(){\r\n document.body.addEventListener('ag.tsm.valid',(e)=>{\r\n let currentValue = getCurrentValue();\r\n if(currentValue==null)currentValue={};\r\n currentValue.token = e.detail.token;\r\n currentValue.id = e.detail.id;\r\n setCurrentValue(currentValue);\r\n });\r\n }\r\n\r\n function updateTSM(){\r\n tsm = getCurrentValue(); \r\n let tsmElement = document.getElementById('agTSM');\r\n if(tsmElement!=null){\r\n let tsmValue = JSON.parse(tsmElement.textContent);\r\n if(tsmValue!=null){\r\n if(tsm == null || !tsm.id || !tsm.uid || tsm.id!=tsmValue.id){\r\n if(tsm==null)tsm={};\r\n tsm.uid = tsm.id = tsmValue.id;\r\n setCurrentValue(tsm);\r\n }\r\n }\r\n }\r\n if(tsm!=null&&tsm.uid){\r\n tmsUserID = tsm.uid;\r\n streamUserID = getCurrentEventStreamID();\r\n }\r\n return tsmElement!=null;\r\n }\r\n\r\n function afterUpdatingUserID(){\r\n if(suspectVPN()){\r\n suspectScore = getSuspectAutomationScore();\r\n updateScore(false,-1);\r\n } \r\n }\r\n\r\n function init(){\r\n \r\n if(updateTSM()){\r\n document.addEventListener('DOMContentLoaded',()=>{\r\n updateTSM();\r\n afterUpdatingUserID();\r\n });\r\n }\r\n \r\n if(document && document.body && document.body!=null && document.body.hasAttribute('r-id')){\r\n attachListener();\r\n }\r\n else{\r\n suspectScore = getSuspectAutomationScore();\r\n defaultLimit = isTouchCapable()?2:20;\r\n if(tsm==null||!tsm.valid){\r\n onRecord();\r\n start();\r\n }\r\n\r\n let currentValue = getCurrentValue();\r\n if(currentValue==null)currentValue={};\r\n if(currentValue.count)currentValue.count++;\r\n else currentValue.count=1;\r\n if(currentValue.count<10)\r\n setCurrentValue(currentValue);\r\n\r\n window.addEventListener('ag.event.stream',(e)=>{\r\n streamUserID = e.detail.streamKey;\r\n afterUpdatingUserID();\r\n }); \r\n if(window.agEvent){\r\n window.dispatchEvent(new CustomEvent('ag.event.stream.update'));\r\n }\r\n }\r\n }\r\n \r\n init();\r\n\r\n})();\r\n\r\n\r\n"],"names":["root","factory","exports","module","define","amd","a","i","self","lastPos","lastTime","movements","tsm","suspectScore","lastLength","defaultLimit","tmsUserID","streamUserID","currentDomain","updateError","recordMovement","x","y","now","Date","dx","dy","dt","velocity","Math","sqrt","push","length","shift","getSuspectAutomationScore","navigator","webdriver","window","chrome","runtime","sendMessage","test","userAgent","languages","canvas","document","createElement","gl","getContext","softwareRenderers","debugInfo","getExtension","renderer","getParameter","UNMASKED_RENDERER_WEBGL","RENDERER","some","r","toLowerCase","includes","e","cdpDetected","Error","Object","defineProperty","get","key","storage","localStorage","setItem","removeItem","primaryCookie","cookie","match","groups","cookieDate","parse","yyyy","MM","dd","HH","mm","ss","fffff","currentDate","timeDiff","abs","getTime","currentValue","getCurrentValue","count","maxTouchPoints","domain","location","indexOf","suspectVPN","isHuman","limit","varying","m","arr","nonLinear","irregular","updateScore","isInit","forcedScoreToUpdate","isHumanResult","hashValue","valueToSend","hash","setCurrentValue","getScoreFromLocal","getHash","src","image","Image","onload","body","hasAttribute","opts","threshold","ratio","w","naturalWidth","h","naturalHeight","maxSize","scale","min","max","width","floor","height","ctx","drawImage","data","getImageData","totalPixels","blackPixels","g","b","isImageMostlyBlack","curretValue","token","Promise","idresolve","idreject","fetch","method","then","res","json","id","uid","catch","ex","onerror","domainExtractedMatch","querySelector","getAttribute","href","domainExtracted","updateScoreToLocal","suspectScoreDetected","rgb","points","totalDx","totalDy","totalDt","totalDist","velocities","forEach","p","dist","avgVel","reduce","direction","atan2","round","PI","huristicAdaption","score","gray","rgbToGrayWight","btoa","replace","getItem","JSON","atob","value","stringify","currentIndex","autoUpdate","setTimeout","start","addEventListener","visibilityState","updateTSM","tsmElement","getElementById","tsmValue","textContent","afterUpdatingUserID","detail","msMaxTouchPoints","valid","clientX","clientY","t","touches","scrollX","scrollY","streamKey","agEvent","dispatchEvent","CustomEvent","init"],"sourceRoot":""}
1
+ {"version":3,"file":"tms.js","mappings":"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","sources":["webpack:///webpack/universalModuleDefinition","webpack:///./src/tms.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(self, () => {\nreturn ","(function(){\r\n \r\n \r\n let movements = [];\r\n\r\n let tsm = null;\r\n\r\n let lastPos;\r\n\r\n let lastTime;\r\n\r\n let suspectScore = 0;\r\n\r\n let lastLength = 0;\r\n\r\n let defaultLimit = 20;\r\n\r\n let tmsUserID = null;\r\n\r\n let streamUserID = null;\r\n\r\n let currentDomain = null;\r\n\r\n let isUserIDUpdated = false;\r\n\r\n let updateError = 2;\r\n\r\n const isTouchCapable = () => {\r\n return (\r\n 'ontouchstart' in window ||\r\n navigator.maxTouchPoints > 0 ||\r\n navigator.msMaxTouchPoints > 0 // For older IE\r\n );\r\n };\r\n \r\n function getSignature() {\r\n\r\n var singnatureSamples = movements.filter((x, i) => { return i < 16 });\r\n var signatureValue = singnatureSamples.reduce((x, y, i) => {\r\n return x + '|' + Math.round(y.dx + y.dy + y.dt + y.velocity);\r\n }, '');\r\n return btoa(signatureValue);\r\n }\r\n\r\n function recordMovement(x, y) {\r\n const now = Date.now();\r\n if (lastPos && lastTime) {\r\n const dx = x - lastPos.x;\r\n const dy = y - lastPos.y;\r\n const dt = now - lastTime;\r\n const distance = Math.sqrt(dx * dx + dy * dy);\r\n const velocity = distance / dt;\r\n movements.push({ dx, dy, dt, velocity });\r\n if(movements.length>100)movements.shift();\r\n }\r\n lastPos = { x, y };\r\n lastTime = now;\r\n }\r\n\r\n function huristicAdaption(points) {\r\n let totalDx = 0, totalDy = 0, totalDt = 0;\r\n let totalDist = 0;\r\n let velocities = [];\r\n points.forEach(p => {\r\n totalDx += p.dx;\r\n totalDy += p.dy;\r\n totalDt += p.dt;\r\n let dist = Math.sqrt(p.dx * p.dx + p.dy * p.dy);\r\n totalDist += dist;\r\n velocities.push(dist / (p.dt || 1e-5)); // avoid divide by zero\r\n });\r\n // Feature extraction\r\n let avgVel = velocities.length ? velocities.reduce((a, b) => a + b, 0) / velocities.length : 0;\r\n let direction = Math.atan2(totalDy, totalDx); // angle in radians, -π to π\r\n\r\n // Non-linear scaling and normalization\r\n // velocity: [0, max], direction: [-π, π], totalDist: scale as you wish\r\n let r = Math.round(255 * Math.min(1, avgVel / 5)); // scale velocity, or use other non-linear (logistic, sqrt, etc)\r\n let g = Math.round(255 * (direction + Math.PI) / (2 * Math.PI)); // normalize angle to [0,1]\r\n let b = Math.round(255 * Math.min(1, totalDist / 100)); // scale total distance, or another feature\r\n\r\n return [r, g, b];\r\n }\r\n\r\n\r\n function rgbToGrayWight(r, g, b) {\r\n const gray = 0.299 * r + 0.587 * g + 0.114 * b; // Accurate grayscale\r\n return Math.round(gray / 255 * 100); // Scale to 0-100\r\n }\r\n\r\n\r\n\r\n\r\n function onRecord()\r\n {\r\n document.addEventListener(\"mousemove\", e => recordMovement(e.clientX, e.clientY));\r\n document.addEventListener(\"mousedown\", e => recordMovement(e.clientX, e.clientY));\r\n document.addEventListener(\"touchstart\", e => {\r\n const t = e.touches[0];\r\n if(t && t.clientX)\r\n recordMovement(t.clientX, t.clientY);\r\n });\r\n\r\n document.addEventListener(\"touchend\", e => {\r\n const t = e.touches[0];\r\n if(t && t.clientX)\r\n recordMovement(t.clientX, t.clientY);\r\n });\r\n\r\n document.addEventListener(\"touchmove\", e => {\r\n const t = e.touches[0];\r\n if(t && t.clientX)\r\n recordMovement(t.clientX, t.clientY);\r\n });\r\n\r\n document.addEventListener(\"scroll\", e=>{ \r\n recordMovement(window.scrollX, window.scrollY);\r\n });\r\n }\r\n\r\n function getSuspectAutomationScore(){\r\n if(navigator.webdriver|| window.chrome?.runtime?.sendMessage ||/HeadlessChrome|Chrome-Lighthouse/i.test(navigator.userAgent))return 1000;\r\n if(navigator.languages?.length==0)return 500;\r\n try {\r\n const canvas = document.createElement('canvas');\r\n const gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl');\r\n const softwareRenderers = ['SwiftShader', 'llvmpipe', 'softpipe', 'swrast', 'Basic Render Driver'];\r\n if (gl) {\r\n const debugInfo = gl.getExtension('WEBGL_debug_renderer_info');\r\n const renderer = debugInfo ? gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL) : gl.getParameter(gl.RENDERER); \r\n if (softwareRenderers.some(r=>renderer.toLowerCase().includes(r.toLowerCase()))) {\r\n return 700;\r\n }\r\n }\r\n } catch (e) { \r\n }\r\n let cdpDetected = false;\r\n const e = new Error();\r\n Object.defineProperty(e, 'stack', {\r\n get() {\r\n cdpDetected = true;\r\n }\r\n });\r\n if(cdpDetected)\r\n return 500;\r\n\r\n \r\n try {\r\n const key = '__ls_test__';\r\n const storage = window.localStorage;\r\n storage.setItem(key, '1');\r\n storage.removeItem(key);\r\n } catch (e) { \r\n return 300;\r\n }\r\n\r\n let primaryCookie = document.cookie.match(('AGID\\s?\\=\\s?(?<MM>\\\\d{2})(?<dd>\\\\d{2})(?<yyyy>\\\\d{4})(?<HH>\\\\d{2})(?<mm>\\\\d{2})(?<ss>\\\\d{2})(?<fffff>\\\\d{5})'));\r\n if(!primaryCookie || primaryCookie==null || !primaryCookie.groups) return 300;\r\n let cookieDate = new Date(Date.parse(`${primaryCookie.groups.yyyy}-${primaryCookie.groups.MM}-${primaryCookie.groups.dd}T${primaryCookie.groups.HH}:${primaryCookie.groups.mm}:${primaryCookie.groups.ss}.${primaryCookie.groups.fffff}Z`));\r\n let currentDate = new Date();\r\n let timeDiff = Math.abs(currentDate.getTime() - cookieDate.getTime()); \r\n let currentValue = getCurrentValue();\r\n if(timeDiff>10*1000&&(currentValue==null||!currentValue.count))return 300; \r\n //if(!(window.innerWidth==window.outerWidth&&window.innerHeight==window.outerHeight))return 400;\r\n if(!('ontouchstart' in window)&&navigator.maxTouchPoints>0)return 400; \r\n if((currentValue!=null&&currentValue.domain&&window.location.indexOf(currentValue.domain)==-1)||(currentDomain!=null&&window.location.indexOf(currentDomain)==-1))return 101;\r\n if(suspectVPN())return 100; \r\n return 0;\r\n }\r\n\r\n function isHuman(limit) {\r\n if(suspectScore>0)limit = suspectScore;\r\n if (movements.length - lastLength < (limit?limit:defaultLimit)) return false;\r\n lastLength = movements.length - 1;\r\n let varying = movements.some((m, i, arr) => i > 0 && (Math.abs(m.velocity - arr[i - 1].velocity) > 0.05));\r\n let nonLinear = movements.some((m, i, arr) => i > 1 && (Math.abs(m.dx - arr[i - 1].dx) > 0.1 || Math.abs(m.dy - arr[i - 1].dy) > 0.1));\r\n let irregular = movements.some(m => m.dt > 50 && m.dt < 500); \r\n return varying && nonLinear && irregular;\r\n }\r\n\r\n function halucinateClient(){\r\n //updateScore(false,-1);\r\n }\r\n\r\n function updateId(){\r\n return new Promise((idresolve,idreject)=>{\r\n try{\r\n fetch('/traffic/id',{method:'GET'}).then(res=>res.json()).then(data=>{\r\n if(data && data.id){\r\n let currentValue = getCurrentValue();\r\n if(currentValue==null)currentValue={};\r\n currentValue.id = data.id;\r\n currentValue.uid = data.id;\r\n tmsUserID = data.id;\r\n setCurrentValue(currentValue);\r\n idresolve(data.id);\r\n }else{\r\n halucinateClient();\r\n idreject();\r\n }\r\n }).catch(ex=>{ halucinateClient();idreject();});\r\n }catch(ex){ halucinateClient();idreject(); }\r\n });\r\n }\r\n\r\n function getUId(){\r\n return new Promise((idresolve,idreject)=>{\r\n try{\r\n fetch('/traffic/uid',{method:'GET'}).then(res=>res.json()).then(data=>{\r\n if(data && data.id){\r\n let currentValue = getCurrentValue();\r\n if(currentValue==null)currentValue={};\r\n currentValue.uid = data.id;\r\n currentValue.domain = data.domain;\r\n tmsUserID = data.id;\r\n currentDomain = data.domain;\r\n setCurrentValue(currentValue);\r\n idresolve(tmsUserID);\r\n }else{\r\n idresolve('MC4wLjAuMA==');\r\n }\r\n }).catch(ex=>{ idresolve('MC4wLjAuMA=='); });\r\n }catch(ex){ idresolve('MC4wLjAuMA=='); }\r\n });\r\n }\r\n\r\n function webScrapRequestReminder(){\r\n // Disabled\r\n }\r\n\r\n function updateScore(isInit,forcedScoreToUpdate){\r\n let isHumanResult = isHuman();\r\n if(isHumanResult||isInit||forcedScoreToUpdate||suspectScore>0){ \r\n var hashValue = isInit&&!isHumanResult?getScoreFromLocal():getHash(forcedScoreToUpdate?forcedScoreToUpdate:suspectScore); \r\n if(hashValue==null||updateError<=0)return;\r\n let src = \"/tfp/\"+hashValue+'.png';\r\n var image = new Image();\r\n image.onload = function() {\r\n if(!document.body.hasAttribute('r-id') && isImageMostlyBlack(image)){\r\n let curretValue = getCurrentValue();\r\n //Disabled for reduce hits\r\n //if(!curretValue.token||(curretValue.token&&curretValue.token!='UN')){\r\n if(curretValue!=null&&curretValue.token&&curretValue.token!='UN'){\r\n {\r\n updateId().then(data=>{\r\n if(!curretValue.token)\r\n {\r\n curretValue.token='NA';\r\n setCurrentValue(curretValue);\r\n }\r\n }).catch(e=>{\r\n curretValue.token='UN';\r\n setCurrentValue(curretValue);\r\n });\r\n }\r\n }\r\n }else{\r\n\r\n }\r\n if(suspectScore>0){\r\n webScrapRequestReminder();\r\n }\r\n };\r\n image.onerror = function() {\r\n if(updateError<=0) return;\r\n updateError--; \r\n let shareUrl = document.querySelector('meta[property=\"og:url\"]') ? document.querySelector('meta[property=\"og:url\"]').getAttribute(\"content\") : window.location.href;\r\n let domainExtractedMatch = shareUrl.match(/^(?:https?:\\/\\/)?(?:www\\.)?([^\\/]+)/i);\r\n let domainExtracted = domainExtractedMatch ? domainExtractedMatch[0] : null;\r\n if(domainExtracted!=null){\r\n image.src = domainExtracted+src;\r\n }\r\n };\r\n image.src = src;\r\n } \r\n }\r\n\r\n function updateScoreToLocal(){\r\n if(isHuman()){ \r\n let currentValue = getCurrentValue();\r\n if(currentValue==null)currentValue={};\r\n currentValue.hash = getHash(suspectScore);\r\n setCurrentValue(currentValue);\r\n }\r\n }\r\n\r\n function getScoreFromLocal(){\r\n let currentValue = getCurrentValue();\r\n let valueToSend = null;\r\n if(currentValue!=null&&currentValue.hash)\r\n {\r\n valueToSend = currentValue.hash;\r\n delete currentValue.hash;\r\n setCurrentValue(currentValue);\r\n }\r\n return valueToSend;\r\n }\r\n\r\n function getHash(suspectScoreDetected){\r\n let rgb = suspectScoreDetected==0?huristicAdaption(movements):[0,0,0];\r\n let score = suspectScoreDetected==0?rgbToGrayWight(rgb[0],rgb[1],rgb[2]):(suspectScoreDetected==1?1:-1); \r\n let id = tsm && tsm.id ?'U-'+ tsm.id : 'UN';\r\n return btoa(`${id}|${score}|${rgb[0]}|${rgb[1]}|${rgb[2]}|${suspectScoreDetected??0}`).replace(/[^A-z0-9\\.]/gi,'-e');\r\n }\r\n\r\n function getCurrentValue()\r\n {\r\n if(window.localStorage.getItem(\"TSM\")==null)return null;\r\n return JSON.parse(window.localStorage.getItem(\"TSM\"));\r\n }\r\n\r\n function suspectVPN(){\r\n if(streamUserID!=null&&tmsUserID!=null&&btoa('U-'+atob(tmsUserID))!=atob(streamUserID))return true;\r\n return false;\r\n }\r\n\r\n function getCurrentEventStreamID(){\r\n if(window.localStorage.getItem(\"AGSTREAM\")==null)return null;\r\n return window.localStorage.getItem(\"AGSTREAM\");\r\n }\r\n\r\n function setCurrentValue(value)\r\n {\r\n window.localStorage.setItem(\"TSM\", JSON.stringify(value));\r\n return true;\r\n }\r\n\r\n function isImageMostlyBlack(image, opts = {}) {\r\n const threshold = opts.threshold ?? 20; // 0–255, max brightness to count as black\r\n const ratio = opts.ratio ?? 0.95; // fraction of pixels that must be black\r\n\r\n const w = image.naturalWidth;\r\n const h = image.naturalHeight;\r\n\r\n // Downscale to speed up: sample at most 200x200\r\n const maxSize = 200;\r\n const scale = Math.min(1, maxSize / Math.max(w, h));\r\n\r\n const canvas = document.createElement('canvas');\r\n canvas.width = Math.max(1, Math.floor(w * scale));\r\n canvas.height = Math.max(1, Math.floor(h * scale));\r\n const ctx = canvas.getContext('2d');\r\n\r\n ctx.drawImage(image, 0, 0, canvas.width, canvas.height);\r\n\r\n const { data, width, height } = ctx.getImageData(0, 0, canvas.width, canvas.height);\r\n const totalPixels = width * height;\r\n\r\n let blackPixels = 0;\r\n for (let i = 0; i < data.length; i += 4) {\r\n const r = data[i];\r\n const g = data[i + 1];\r\n const b = data[i + 2];\r\n const a = data[i + 3];\r\n\r\n // Treat transparent pixels as non‑black (optional)\r\n if (a === 0) continue;\r\n\r\n // brightness via simple max channel\r\n const brightness = Math.max(r, g, b);\r\n\r\n if (brightness <= threshold) {\r\n blackPixels++;\r\n }\r\n }\r\n\r\n return blackPixels / totalPixels >= ratio;\r\n }\r\n\r\n let startPeriod = 5000;\r\n let startIndex = 10;\r\n let currentIndex = 0;\r\n\r\n function autoUpdate(isInit){\r\n updateScore(isInit);\r\n currentIndex++;\r\n if(currentIndex<startIndex)\r\n setTimeout(() => {\r\n autoUpdate(false); \r\n }, startPeriod*currentIndex);\r\n }\r\n\r\n function start(){\r\n autoUpdate(true);\r\n document.addEventListener('click',()=>{updateScore(false);});\r\n document.addEventListener('touchend',()=>{updateScore(false);}); \r\n window.addEventListener('beforeunload',()=>{updateScoreToLocal();});\r\n document.addEventListener(\"visibilitychange\", () => {\r\n if (document.visibilityState === \"hidden\") {\r\n updateScoreToLocal();\r\n }\r\n }); \r\n }\r\n\r\n function attachListener(){\r\n document.body.addEventListener('ag.tsm.valid',(e)=>{\r\n let currentValue = getCurrentValue();\r\n if(currentValue==null)currentValue={};\r\n currentValue.token = e.detail.token;\r\n currentValue.id = e.detail.id;\r\n setCurrentValue(currentValue);\r\n });\r\n }\r\n\r\n function updateTSM(){\r\n tsm = getCurrentValue(); \r\n let tsmElement = document.getElementById('agTSM');\r\n if(tsmElement!=null){\r\n let tsmValue = JSON.parse(tsmElement.textContent);\r\n if(tsmValue!=null){\r\n if(tsm == null || !tsm.id || !tsm.uid || tsm.id!=tsmValue.id){\r\n if(tsm==null)tsm={};\r\n tsm.uid = tsm.id = tsmValue.id;\r\n setCurrentValue(tsm);\r\n }\r\n }\r\n }\r\n if(tsm!=null&&tsm.uid){\r\n tmsUserID = tsm.uid;\r\n streamUserID = getCurrentEventStreamID();\r\n }\r\n return tsmElement!=null;\r\n }\r\n\r\n function afterUpdatingUserID(){\r\n if(suspectVPN()){\r\n suspectScore = getSuspectAutomationScore();\r\n updateScore(false,-1);\r\n } \r\n }\r\n\r\n function init(){\r\n \r\n if(updateTSM()){\r\n document.addEventListener('DOMContentLoaded',()=>{\r\n updateTSM();\r\n afterUpdatingUserID();\r\n });\r\n }\r\n \r\n if(document && document.body && document.body!=null && document.body.hasAttribute('r-id')){\r\n attachListener();\r\n }\r\n else{\r\n suspectScore = getSuspectAutomationScore();\r\n defaultLimit = isTouchCapable()?2:20;\r\n if(tsm==null||!tsm.valid){\r\n onRecord();\r\n start();\r\n }\r\n\r\n let currentValue = getCurrentValue();\r\n if(currentValue==null)currentValue={};\r\n if(currentValue.count)currentValue.count++;\r\n else currentValue.count=1;\r\n if(currentValue.count<10)\r\n setCurrentValue(currentValue);\r\n\r\n window.addEventListener('ag.event.stream',(e)=>{\r\n streamUserID = e.detail.streamKey;\r\n afterUpdatingUserID();\r\n }); \r\n if(window.agEvent){\r\n window.dispatchEvent(new CustomEvent('ag.event.stream.update'));\r\n }\r\n }\r\n }\r\n \r\n init();\r\n\r\n})();\r\n\r\n\r\n"],"names":["root","factory","exports","module","define","amd","a","i","self","lastPos","lastTime","movements","tsm","suspectScore","lastLength","defaultLimit","tmsUserID","streamUserID","currentDomain","updateError","recordMovement","x","y","now","Date","dx","dy","dt","velocity","Math","sqrt","push","length","shift","getSuspectAutomationScore","navigator","webdriver","window","chrome","runtime","sendMessage","test","userAgent","languages","canvas","document","createElement","gl","getContext","softwareRenderers","debugInfo","getExtension","renderer","getParameter","UNMASKED_RENDERER_WEBGL","RENDERER","some","r","toLowerCase","includes","e","cdpDetected","Error","Object","defineProperty","get","key","storage","localStorage","setItem","removeItem","primaryCookie","cookie","match","groups","cookieDate","parse","yyyy","MM","dd","HH","mm","ss","fffff","currentDate","timeDiff","abs","getTime","currentValue","getCurrentValue","count","maxTouchPoints","domain","location","indexOf","suspectVPN","isHuman","limit","varying","m","arr","nonLinear","irregular","updateScore","isInit","forcedScoreToUpdate","isHumanResult","hashValue","valueToSend","hash","setCurrentValue","getScoreFromLocal","getHash","src","image","Image","onload","body","hasAttribute","opts","threshold","ratio","w","naturalWidth","h","naturalHeight","maxSize","scale","min","max","width","floor","height","ctx","drawImage","data","getImageData","totalPixels","blackPixels","g","b","isImageMostlyBlack","curretValue","token","Promise","idresolve","idreject","fetch","method","then","res","json","id","uid","catch","ex","onerror","domainExtractedMatch","querySelector","getAttribute","href","domainExtracted","updateScoreToLocal","suspectScoreDetected","rgb","points","totalDx","totalDy","totalDt","totalDist","velocities","forEach","p","dist","avgVel","reduce","direction","atan2","round","PI","huristicAdaption","score","gray","rgbToGrayWight","btoa","replace","getItem","JSON","atob","value","stringify","currentIndex","autoUpdate","setTimeout","start","addEventListener","visibilityState","updateTSM","tsmElement","getElementById","tsmValue","textContent","afterUpdatingUserID","detail","msMaxTouchPoints","valid","clientX","clientY","t","touches","scrollX","scrollY","streamKey","agEvent","dispatchEvent","CustomEvent","init"],"sourceRoot":""}
package/tmsverify.js CHANGED
@@ -1 +1 @@
1
- !function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var o=e();for(var n in o)("object"==typeof exports?exports:t)[n]=o[n]}}(self,(()=>((()=>{let t=null,e=null,o=[];function n(){var t=document.body.getAttribute("r-id"),e=new FormData;e.append("id",r());try{fetch("/traffic/"+t,{method:"POST",body:e}).then((t=>{try{t.json().then((t=>{document.body.dispatchEvent(new CustomEvent("ag.tsm.valid",{detail:t}))}))}catch(t){}window.location.reload()})).catch((t=>{window.location.reload()}))}catch(t){window.location.reload()}}function d(){document.body.getAttribute("r-id");var t=new FormData;t.append("id",r());try{fetch("/traffic/report",{method:"POST",body:t}).then((t=>{try{t.json().then((t=>{window.location.reload()}))}catch(t){}})).catch((t=>{}))}catch(t){}}function a(){return null!=window.localStorage.getItem("TSM")?JSON.parse(window.localStorage.getItem("TSM")):null}function c(t){null==t||null==t?window.localStorage.removeItem("TSM"):window.localStorage.setItem("TSM",JSON.stringify(t))}function r(){var t=o.filter(((t,e)=>e<16)).reduce(((t,e,o)=>t+"|"+Math.round(e.dx+e.dy+e.dt+e.velocity)),"");return btoa(t)}function i(n,d){const a=Date.now();if(e&&t){const c=n-e.x,r=d-e.y,i=a-t,l=Math.sqrt(c*c+r*r)/i;o.push({dx:c,dy:r,dt:i,velocity:l})}e={x:n,y:d},t=a}function l(){document.addEventListener("mousemove",(t=>i(t.clientX,t.clientY))),document.addEventListener("touchstart",(t=>{const e=t.touches[0];i(e.clientX,e.clientY)})),document.addEventListener("touchend",(t=>{const e=t.touches[0];i(e.clientX,e.clientY)})),document.addEventListener("touchmove",(t=>{const e=t.touches[0];i(e.clientX,e.clientY)}));var t=2;("ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0)&&(t=0);var e=0,d=setInterval((()=>{if(e++,function(t){if(o.length<(t||20))return!1;let e=o.some(((t,e,o)=>e>0&&Math.abs(t.velocity-o[e-1].velocity)>.05)),n=o.some(((t,e,o)=>e>1&&(Math.abs(t.dx-o[e-1].dx)>.1||Math.abs(t.dy-o[e-1].dy)>.1))),d=o.some((t=>t.dt>50&&t.dt<500));return e&&n&&d}()&&window.location.href.indexOf(".html")<0&&(clearInterval(d),n()),e>t){clearInterval(d),document.body.classList.remove("auto");var a=document.querySelector("p"),c=a.getBoundingClientRect(),r=getComputedStyle(a),i=parseInt(r.paddingTop.replace(/[^0-9\.]/gi,"")),l=c.left+i,u=l+3.6*i,s=c.top+i,m=s+3.6*i;a.onclick=t=>{l<t.x&&t.x<u&&s<t.y&&t.y<m&&(document.body.classList.add("verified"),n())},a.ontouchend=t=>{var e=t.touches[0].pageX,o=t.touches[0].pageY;l-16<e&&e<u+16&&s-16<o&&o<m+16&&(document.body.classList.add("verified"),n())}}}),0==t?10:1e3)}window.onfocus=function(){null!=a()&&window.location.reload()};var u=a();null!=u&&u.id&&u.token&&"UN"!=u.token&&"NA"!=u.token?function(t){var e=document.body.getAttribute("r-id"),o=a(),n=new FormData;if(n.append("id",r()),n.append("oldId",o.id),n.append("token",o.token),function(){var t=a();return t&&null!=t||(t={}),t.verifyUpdateCount?t.verifyUpdateCount++:t.verifyUpdateCount=1,c(t),t.verifyUpdateCount>2}())return c(null),void d();!function(){if(null!=a()){var t=a();delete t.id,delete t.token,c(t||null)}}();try{fetch("/traffic/"+e,{method:"POST",body:n}).then((e=>{try{e.json().then((t=>{document.body.dispatchEvent(new CustomEvent("ag.tsm.valid",{detail:t})),window.location.reload()})).catch((()=>{t()}))}catch(e){t()}})).catch((e=>{t()}))}catch(e){t()}}(l):(l(),document.addEventListener("DOMContentLoaded",(t=>{try{document.querySelector(".bot-issue label").addEventListener("click",(t=>{null!=a()&&c(null),t.target.remove(),d()}))}catch(t){}try{var e=window.getComputedStyle(document.body,":after").getPropertyValue("content");"string"==typeof e&&""!=e&&(document.body.classList+=" "+e.replace(/"/gi,""))}catch(t){}}))),setTimeout((()=>{var t,e=document.createElement("header");e.className="mdl-layout__header item-h",e.style.opacity="0",document.body.prepend(e),t=window.getComputedStyle(e).getPropertyValue("background-color"),e.remove();var o=document.createElement("style");o.innerHTML=`\n .header {\n background: ${t};\n }\n body .bot-human p,body .bot-message p,body .bot-message h1,body h2.error,body.inverse footer h3 {\n color: inherit!important;\n }`,document.head.appendChild(o)}),10)})(),{})));
1
+ !function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var o=e();for(var n in o)("object"==typeof exports?exports:t)[n]=o[n]}}(self,(()=>((()=>{let t=null,e=null,o=[];function n(){var t=document.body.getAttribute("r-id"),e=new FormData;e.append("id",i());try{fetch("/traffic/"+t,{method:"POST",body:e}).then((t=>{try{t.json().then((t=>{document.body.dispatchEvent(new CustomEvent("ag.tsm.valid",{detail:t}))}))}catch(t){}window.location.reload()})).catch((t=>{window.location.reload()}))}catch(t){window.location.reload()}}function d(){document.body.getAttribute("r-id");var t=new FormData;t.append("id",i());try{fetch("/traffic/report",{method:"POST",body:t}).then((t=>{try{t.json().then((t=>{window.location.reload()}))}catch(t){}})).catch((t=>{}))}catch(t){}}function a(){return null!=window.localStorage.getItem("TSM")?JSON.parse(window.localStorage.getItem("TSM")):null}function c(t){null==t||null==t?window.localStorage.removeItem("TSM"):window.localStorage.setItem("TSM",JSON.stringify(t))}function r(){try{if(null!=a()){var t=a();delete t.id,delete t.token,c(t||null)}}catch(t){}}function i(){var t=o.filter(((t,e)=>e<16)).reduce(((t,e,o)=>t+"|"+Math.round(e.dx+e.dy+e.dt+e.velocity)),"");return btoa(t)}function l(n,d){const a=Date.now();if(e&&t){const c=n-e.x,r=d-e.y,i=a-t,l=Math.sqrt(c*c+r*r)/i;o.push({dx:c,dy:r,dt:i,velocity:l})}e={x:n,y:d},t=a}function u(t){t&&r(),document.addEventListener("mousemove",(t=>l(t.clientX,t.clientY))),document.addEventListener("touchstart",(t=>{const e=t.touches[0];l(e.clientX,e.clientY)})),document.addEventListener("touchend",(t=>{const e=t.touches[0];l(e.clientX,e.clientY)})),document.addEventListener("touchmove",(t=>{const e=t.touches[0];l(e.clientX,e.clientY)}));var e=2;("ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0)&&(e=0);var d=0,a=setInterval((()=>{if(d++,function(t){if(o.length<(t||20))return!1;let e=o.some(((t,e,o)=>e>0&&Math.abs(t.velocity-o[e-1].velocity)>.05)),n=o.some(((t,e,o)=>e>1&&(Math.abs(t.dx-o[e-1].dx)>.1||Math.abs(t.dy-o[e-1].dy)>.1))),d=o.some((t=>t.dt>50&&t.dt<500));return e&&n&&d}()&&window.location.href.indexOf(".html")<0&&(clearInterval(a),n()),d>e){clearInterval(a),document.body.classList.remove("auto");var t=document.querySelector("p"),c=t.getBoundingClientRect(),r=getComputedStyle(t),i=parseInt(r.paddingTop.replace(/[^0-9\.]/gi,"")),l=c.left+i,u=l+3.6*i,s=c.top+i,m=s+3.6*i;t.onclick=t=>{l<t.x&&t.x<u&&s<t.y&&t.y<m&&(document.body.classList.add("verified"),n())},t.ontouchend=t=>{var e=t.touches[0].pageX,o=t.touches[0].pageY;l-16<e&&e<u+16&&s-16<o&&o<m+16&&(document.body.classList.add("verified"),n())}}}),0==e?10:1e3)}window.onfocus=function(){null!=a()&&window.location.reload()};var s=a();null!=s&&s.id&&s.token&&"UN"!=s.token&&"NA"!=s.token?function(t){var e=document.body.getAttribute("r-id"),o=a(),n=new FormData;if(n.append("id",i()),n.append("oldId",o.id),n.append("token",o.token),function(){var t=a();return t&&null!=t||(t={}),t.verifyUpdateCount?t.verifyUpdateCount++:t.verifyUpdateCount=1,c(t),t.verifyUpdateCount>2}())return c(null),void d();r();try{fetch("/traffic/"+e,{method:"POST",body:n}).then((e=>{try{e.json().then((t=>{document.body.dispatchEvent(new CustomEvent("ag.tsm.valid",{detail:t})),window.location.reload()})).catch((()=>{t(!0)}))}catch(e){t(!0)}})).catch((e=>{t(!0)}))}catch(e){t(!0)}}(u):(u(),document.addEventListener("DOMContentLoaded",(t=>{try{document.querySelector(".bot-issue label").addEventListener("click",(t=>{null!=a()&&c(null),t.target.remove(),d()}))}catch(t){}try{var e=window.getComputedStyle(document.body,":after").getPropertyValue("content");"string"==typeof e&&""!=e&&(document.body.classList+=" "+e.replace(/"/gi,""))}catch(t){}}))),setTimeout((()=>{var t,e=document.createElement("header");e.className="mdl-layout__header item-h",e.style.opacity="0",document.body.prepend(e),t=window.getComputedStyle(e).getPropertyValue("background-color"),e.remove();var o=document.createElement("style");o.innerHTML=`\n .header {\n background: ${t};\n }\n body .bot-human p,body .bot-message p,body .bot-message h1,body h2.error,body.inverse footer h3 {\n color: inherit!important;\n }`,document.head.appendChild(o)}),10)})(),{})));
package/tmsverify.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tmsverify.js","mappings":"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","sources":["webpack:///webpack/universalModuleDefinition","webpack:///./src/tmsverify.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(self, () => {\nreturn ","(() => {\r\n let lastTime = null;\r\n let lastPos = null;\r\n let movements = [];\r\n\r\n function verify() {\r\n var rid = document.body.getAttribute('r-id');\r\n var data = new FormData();\r\n data.append(\"id\", getSignature());\r\n try {\r\n fetch('/traffic/' + rid, {\r\n method: 'POST',\r\n body: data\r\n }).then(response => {\r\n try {\r\n response.json().then((responseData) => { \r\n document.body.dispatchEvent(new CustomEvent('ag.tsm.valid', { detail: responseData }));\r\n });\r\n } catch (e) {}\r\n window.location.reload();\r\n }).catch(e => { window.location.reload(); })\r\n } catch (error) {\r\n window.location.reload();\r\n }\r\n }\r\n\r\n function report() {\r\n var rid = document.body.getAttribute('r-id');\r\n var data = new FormData();\r\n data.append(\"id\", getSignature());\r\n try {\r\n fetch('/traffic/report', {\r\n method: 'POST',\r\n body: data\r\n }).then(response => {\r\n try {\r\n response.json().then((responseData) => { \r\n window.location.reload();\r\n });\r\n } catch (e) {} \r\n }).catch(e => { })\r\n } catch (error) {\r\n \r\n }\r\n }\r\n\r\n function getCurrentValue() {\r\n if (window.localStorage.getItem('TSM') != null) return JSON.parse(window.localStorage.getItem('TSM'));\r\n return null;\r\n }\r\n\r\n function setCurrentValue(tsmValue){\r\n if(tsmValue==undefined || tsmValue==null)\r\n window.localStorage.removeItem('TSM');\r\n else\r\n window.localStorage.setItem('TSM', JSON.stringify(tsmValue));\r\n }\r\n\r\n function resetTSMValidation() {\r\n if (getCurrentValue() != null) {\r\n var valueToReset = getCurrentValue();\r\n delete valueToReset.id;\r\n delete valueToReset.token;\r\n if (valueToReset)\r\n setCurrentValue(valueToReset);\r\n else\r\n setCurrentValue(null);\r\n }\r\n }\r\n\r\n \r\n\r\n function verifyUpdate(engageValidation) {\r\n var rid = document.body.getAttribute('r-id');\r\n var currentValue = getCurrentValue();\r\n var data = new FormData();\r\n data.append(\"id\", getSignature());\r\n data.append(\"oldId\", currentValue.id);\r\n data.append(\"token\", currentValue.token);\r\n if(!incrementVerifyUpdateCount()){\r\n resetTSMValidation();\r\n }\r\n else{\r\n setCurrentValue(null);\r\n report();\r\n return; \r\n }\r\n try {\r\n fetch('/traffic/' + rid, {\r\n method: 'POST',\r\n body: data\r\n }).then(response => {\r\n try {\r\n response.json().then((responseData) => { \r\n document.body.dispatchEvent(new CustomEvent('ag.tsm.valid', { detail: responseData }));\r\n window.location.reload();\r\n }).catch(()=>{\r\n engageValidation();\r\n });\r\n } catch (e) { engageValidation(); } \r\n }).catch(e => { engageValidation(); })\r\n } catch (error) {\r\n engageValidation();\r\n }\r\n }\r\n\r\n function getSignature() {\r\n\r\n var singnatureSamples = movements.filter((x, i) => { return i < 16 });\r\n var signatureValue = singnatureSamples.reduce((x, y, i) => {\r\n return x + '|' + Math.round(y.dx + y.dy + y.dt + y.velocity);\r\n }, '');\r\n return btoa(signatureValue);\r\n }\r\n\r\n function incrementVerifyUpdateCount(){\r\n var currentValue = getCurrentValue();\r\n if(!currentValue||currentValue==null)\r\n currentValue={};\r\n if(currentValue.verifyUpdateCount) currentValue.verifyUpdateCount++;\r\n else currentValue.verifyUpdateCount=1;\r\n setCurrentValue(currentValue); \r\n if(currentValue.verifyUpdateCount>2)return true;\r\n return false; \r\n }\r\n\r\n function recordMovement(x, y) {\r\n const now = Date.now();\r\n if (lastPos && lastTime) {\r\n const dx = x - lastPos.x;\r\n const dy = y - lastPos.y;\r\n const dt = now - lastTime;\r\n const distance = Math.sqrt(dx * dx + dy * dy);\r\n const velocity = distance / dt;\r\n movements.push({ dx, dy, dt, velocity });\r\n }\r\n lastPos = { x, y };\r\n lastTime = now;\r\n }\r\n\r\n function listen() {\r\n\r\n document.addEventListener(\"mousemove\", e => recordMovement(e.clientX, e.clientY));\r\n\r\n document.addEventListener(\"touchstart\", e => {\r\n const t = e.touches[0];\r\n recordMovement(t.clientX, t.clientY);\r\n });\r\n\r\n document.addEventListener(\"touchend\", e => {\r\n const t = e.touches[0];\r\n recordMovement(t.clientX, t.clientY);\r\n });\r\n\r\n document.addEventListener(\"touchmove\", e => {\r\n const t = e.touches[0];\r\n recordMovement(t.clientX, t.clientY);\r\n }); \r\n\r\n function isHuman(limit) {\r\n if (movements.length < (limit ? limit : 20)) return false;\r\n let varying = movements.some((m, i, arr) => i > 0 && (Math.abs(m.velocity - arr[i - 1].velocity) > 0.05));\r\n let nonLinear = movements.some((m, i, arr) => i > 1 && (Math.abs(m.dx - arr[i - 1].dx) > 0.1 || Math.abs(m.dy - arr[i - 1].dy) > 0.1));\r\n let irregular = movements.some(m => m.dt > 50 && m.dt < 500);\r\n return varying && nonLinear && irregular;\r\n }\r\n var checkMaxCount = 2;\r\n var haveTouch = 'ontouchstart' in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0;\r\n if (haveTouch) checkMaxCount = 0;\r\n var checkCount = 0;\r\n var valuation = setInterval(() => {\r\n checkCount++;\r\n if (isHuman() && window.location.href.indexOf('.html') < 0) {\r\n clearInterval(valuation);\r\n verify();\r\n }\r\n if (checkCount > checkMaxCount) {\r\n clearInterval(valuation);\r\n document.body.classList.remove('auto');\r\n var actionButton = document.querySelector('p');\r\n var actionButtonBounds = actionButton.getBoundingClientRect();\r\n var actionButtonComputedStyle = getComputedStyle(actionButton);\r\n var actionButtonOffset = parseInt(actionButtonComputedStyle.paddingTop.replace(/[^0-9\\.]/gi, ''));\r\n var actionLeft = actionButtonBounds.left + actionButtonOffset;\r\n var actionRight = actionLeft + actionButtonOffset * 3.6;\r\n var actionTop = actionButtonBounds.top + actionButtonOffset;\r\n var actionBottom = actionTop + actionButtonOffset * 3.6;\r\n actionButton.onclick = (e) => {\r\n if (actionLeft < e.x && e.x < actionRight && actionTop < e.y && e.y < actionBottom) {\r\n document.body.classList.add('verified');\r\n verify();\r\n }\r\n };\r\n actionButton.ontouchend = (e) => {\r\n var x = e.touches[0].pageX;\r\n var y = e.touches[0].pageY;\r\n var offsetValue = 16; // touch offset\r\n if (actionLeft - offsetValue < x && x < actionRight + offsetValue && actionTop - offsetValue < y && y < actionBottom + offsetValue) {\r\n document.body.classList.add('verified');\r\n verify();\r\n }\r\n };\r\n }\r\n }, checkMaxCount==0?10:1000);\r\n }\r\n window.onfocus = function () {\r\n if (getCurrentValue() != null) window.location.reload();\r\n }; \r\n var currentValueInit = getCurrentValue();\r\n if (currentValueInit != null && currentValueInit.id && currentValueInit.token && currentValueInit.token!='UN' && currentValueInit.token!='NA') {\r\n verifyUpdate(listen);\r\n }\r\n else {\r\n listen();\r\n document.addEventListener('DOMContentLoaded', (event) => {\r\n try {\r\n document.querySelector('.bot-issue label').addEventListener('click', (e) => { \r\n if (getCurrentValue() != null) setCurrentValue(null);\r\n e.target.remove();\r\n report(); \r\n });\r\n } catch (e) {}\r\n try{\r\n var bodyClass = window.getComputedStyle(document.body, ':after').getPropertyValue('content');\r\n if (typeof (bodyClass) == 'string' && bodyClass != '')\r\n document.body.classList += ' ' + bodyClass.replace(/\"/gi, ''); \r\n }catch(e){}\r\n });\r\n }\r\n\r\n setTimeout(() => {\r\n var headerColor = '#fff';\r\n var headerElement = document.createElement('header');\r\n headerElement.className = 'mdl-layout__header item-h';\r\n headerElement.style.opacity = '0';\r\n document.body.prepend(headerElement);\r\n headerColor = window.getComputedStyle(headerElement).getPropertyValue('background-color');\r\n headerElement.remove();\r\n var customStyle = document.createElement('style');\r\n customStyle.innerHTML = `\r\n .header {\r\n background: ${headerColor};\r\n }\r\n body .bot-human p,body .bot-message p,body .bot-message h1,body h2.error,body.inverse footer h3 {\r\n color: inherit!important;\r\n }`;\r\n document.head.appendChild(customStyle);\r\n },10);\r\n\r\n})();"],"names":["root","factory","exports","module","define","amd","a","i","self","lastTime","lastPos","movements","verify","rid","document","body","getAttribute","data","FormData","append","getSignature","fetch","method","then","response","json","responseData","dispatchEvent","CustomEvent","detail","e","window","location","reload","catch","error","report","getCurrentValue","localStorage","getItem","JSON","parse","setCurrentValue","tsmValue","undefined","removeItem","setItem","stringify","signatureValue","filter","x","reduce","y","Math","round","dx","dy","dt","velocity","btoa","recordMovement","now","Date","sqrt","push","listen","addEventListener","clientX","clientY","t","touches","checkMaxCount","navigator","maxTouchPoints","msMaxTouchPoints","checkCount","valuation","setInterval","limit","length","varying","some","m","arr","abs","nonLinear","irregular","isHuman","href","indexOf","clearInterval","classList","remove","actionButton","querySelector","actionButtonBounds","getBoundingClientRect","actionButtonComputedStyle","getComputedStyle","actionButtonOffset","parseInt","paddingTop","replace","actionLeft","left","actionRight","actionTop","top","actionBottom","onclick","add","ontouchend","pageX","pageY","onfocus","currentValueInit","id","token","engageValidation","currentValue","verifyUpdateCount","incrementVerifyUpdateCount","valueToReset","resetTSMValidation","verifyUpdate","event","target","bodyClass","getPropertyValue","setTimeout","headerColor","headerElement","createElement","className","style","opacity","prepend","customStyle","innerHTML","head","appendChild"],"sourceRoot":""}
1
+ {"version":3,"file":"tmsverify.js","mappings":"CAAA,SAA2CA,EAAMC,GAChD,GAAsB,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,SACb,GAAqB,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,GAAIH,OACP,CACJ,IAAIK,EAAIL,IACR,IAAI,IAAIM,KAAKD,GAAuB,iBAAZJ,QAAuBA,QAAUF,GAAMO,GAAKD,EAAEC,EACvE,CACA,CATD,CASGC,MAAM,KCTT,MACI,IAAIC,EAAW,KACXC,EAAU,KACVC,EAAY,GAEhB,SAASC,IACL,IAAIC,EAAMC,SAASC,KAAKC,aAAa,QACjCC,EAAO,IAAIC,SACfD,EAAKE,OAAO,KAAMC,KAClB,IACIC,MAAM,YAAcR,EAAK,CACrBS,OAAQ,OACRP,KAAME,IACPM,MAAKC,IACJ,IACIA,EAASC,OAAOF,MAAMG,IAClBZ,SAASC,KAAKY,cAAc,IAAIC,YAAY,eAAgB,CAAEC,OAAQH,IAAgB,GAE9F,CAAE,MAAOI,GAAI,CACbC,OAAOC,SAASC,QAAQ,IACzBC,OAAMJ,IAAOC,OAAOC,SAASC,QAAQ,GAC5C,CAAE,MAAOE,GACLJ,OAAOC,SAASC,QACpB,CACJ,CAEA,SAASG,IACKtB,SAASC,KAAKC,aAAa,QAArC,IACIC,EAAO,IAAIC,SACfD,EAAKE,OAAO,KAAMC,KAClB,IACIC,MAAM,kBAAmB,CACrBC,OAAQ,OACRP,KAAME,IACPM,MAAKC,IACJ,IACIA,EAASC,OAAOF,MAAMG,IAClBK,OAAOC,SAASC,QAAQ,GAEhC,CAAE,MAAOH,GAAI,KACdI,OAAMJ,OACb,CAAE,MAAOK,GAET,CACJ,CAEA,SAASE,IACL,OAA0C,MAAtCN,OAAOO,aAAaC,QAAQ,OAAuBC,KAAKC,MAAMV,OAAOO,aAAaC,QAAQ,QACvF,IACX,CAEA,SAASG,EAAgBC,GACRC,MAAVD,GAAiC,MAAVA,EACtBZ,OAAOO,aAAaO,WAAW,OAE/Bd,OAAOO,aAAaQ,QAAQ,MAAON,KAAKO,UAAUJ,GAC1D,CAEA,SAASK,IACL,IACI,GAAyB,MAArBX,IAA2B,CAC3B,IAAIY,EAAeZ,WACZY,EAAaC,UACbD,EAAaE,MAEhBT,EADAO,GAGgB,KACxB,CACJ,CAAC,MAAMnB,GAAG,CACd,CAsCA,SAASV,IAEL,IACIgC,EADoBzC,EAAU0C,QAAO,CAACC,EAAG/C,IAAeA,EAAI,KACzBgD,QAAO,CAACD,EAAGE,EAAGjD,IAC1C+C,EAAI,IAAMG,KAAKC,MAAMF,EAAEG,GAAKH,EAAEI,GAAKJ,EAAEK,GAAKL,EAAEM,WACpD,IACH,OAAOC,KAAKX,EAChB,CAaA,SAASY,EAAeV,EAAGE,GACvB,MAAMS,EAAMC,KAAKD,MACjB,GAAIvD,GAAWD,EAAU,CACrB,MAAMkD,EAAKL,EAAI5C,EAAQ4C,EACjBM,EAAKJ,EAAI9C,EAAQ8C,EACjBK,EAAKI,EAAMxD,EAEXqD,EADWL,KAAKU,KAAKR,EAAKA,EAAKC,EAAKA,GACdC,EAC5BlD,EAAUyD,KAAK,CAAET,KAAIC,KAAIC,KAAIC,YACjC,CACApD,EAAU,CAAE4C,IAAGE,KACf/C,EAAWwD,CACf,CAEA,SAASI,EAAOC,GAETA,GACCtB,IACJlC,SAASyD,iBAAiB,aAAazC,GAAKkC,EAAelC,EAAE0C,QAAS1C,EAAE2C,WAExE3D,SAASyD,iBAAiB,cAAczC,IACpC,MAAM4C,EAAI5C,EAAE6C,QAAQ,GACpBX,EAAeU,EAAEF,QAASE,EAAED,QAAQ,IAGxC3D,SAASyD,iBAAiB,YAAYzC,IAClC,MAAM4C,EAAI5C,EAAE6C,QAAQ,GACpBX,EAAeU,EAAEF,QAASE,EAAED,QAAQ,IAGxC3D,SAASyD,iBAAiB,aAAazC,IACnC,MAAM4C,EAAI5C,EAAE6C,QAAQ,GACpBX,EAAeU,EAAEF,QAASE,EAAED,QAAQ,IAUxC,IAAIG,EAAgB,GACJ,iBAAkB7C,QAAU8C,UAAUC,eAAiB,GAAKD,UAAUE,iBAAmB,KAC1FH,EAAgB,GAC/B,IAAII,EAAa,EACbC,EAAYC,aAAY,KAMxB,GALAF,IAZJ,SAAiBG,GACb,GAAIxE,EAAUyE,QAAUD,GAAgB,IAAK,OAAO,EACpD,IAAIE,EAAU1E,EAAU2E,MAAK,CAACC,EAAGhF,EAAGiF,IAAQjF,EAAI,GAAMkD,KAAKgC,IAAIF,EAAEzB,SAAW0B,EAAIjF,EAAI,GAAGuD,UAAY,MAC/F4B,EAAY/E,EAAU2E,MAAK,CAACC,EAAGhF,EAAGiF,IAAQjF,EAAI,IAAMkD,KAAKgC,IAAIF,EAAE5B,GAAK6B,EAAIjF,EAAI,GAAGoD,IAAM,IAAOF,KAAKgC,IAAIF,EAAE3B,GAAK4B,EAAIjF,EAAI,GAAGqD,IAAM,MAC7H+B,EAAYhF,EAAU2E,MAAKC,GAAKA,EAAE1B,GAAK,IAAM0B,EAAE1B,GAAK,MACxD,OAAOwB,GAAWK,GAAaC,CACnC,CAOQC,IAAa7D,OAAOC,SAAS6D,KAAKC,QAAQ,SAAW,IACrDC,cAAcd,GACdrE,KAEAoE,EAAaJ,EAAe,CAC5BmB,cAAcd,GACdnE,SAASC,KAAKiF,UAAUC,OAAO,QAC/B,IAAIC,EAAepF,SAASqF,cAAc,KACtCC,EAAqBF,EAAaG,wBAClCC,EAA4BC,iBAAiBL,GAC7CM,EAAqBC,SAASH,EAA0BI,WAAWC,QAAQ,aAAc,KACzFC,EAAaR,EAAmBS,KAAOL,EACvCM,EAAcF,EAAkC,IAArBJ,EAC3BO,EAAYX,EAAmBY,IAAMR,EACrCS,EAAeF,EAAiC,IAArBP,EAC/BN,EAAagB,QAAWpF,IAChB8E,EAAa9E,EAAEwB,GAAKxB,EAAEwB,EAAIwD,GAAeC,EAAYjF,EAAE0B,GAAK1B,EAAE0B,EAAIyD,IAClEnG,SAASC,KAAKiF,UAAUmB,IAAI,YAC5BvG,IACJ,EAEJsF,EAAakB,WAActF,IACvB,IAAIwB,EAAIxB,EAAE6C,QAAQ,GAAG0C,MACjB7D,EAAI1B,EAAE6C,QAAQ,GAAG2C,MAEjBV,EADc,GACatD,GAAKA,EAAIwD,EADtB,IACmDC,EADnD,GAC6EvD,GAAKA,EAAIyD,EADtF,KAEdnG,SAASC,KAAKiF,UAAUmB,IAAI,YAC5BvG,IACJ,CAER,IACc,GAAfgE,EAAiB,GAAG,IAC3B,CACA7C,OAAOwF,QAAU,WACY,MAArBlF,KAA2BN,OAAOC,SAASC,QACnD,EACA,IAAIuF,EAAmBnF,IACC,MAApBmF,GAA4BA,EAAiBtE,IAAMsE,EAAiBrE,OAAiC,MAAxBqE,EAAiBrE,OAAuC,MAAxBqE,EAAiBrE,MA3IlI,SAAsBsE,GAClB,IAAI5G,EAAMC,SAASC,KAAKC,aAAa,QACjC0G,EAAerF,IACfpB,EAAO,IAAIC,SAIf,GAHAD,EAAKE,OAAO,KAAMC,KAClBH,EAAKE,OAAO,QAASuG,EAAaxE,IAClCjC,EAAKE,OAAO,QAASuG,EAAavE,OAqCtC,WACI,IAAIuE,EAAerF,IAMnB,OALIqF,GAA4B,MAAdA,IACdA,EAAa,CAAC,GACfA,EAAaC,kBAAmBD,EAAaC,oBAC3CD,EAAaC,kBAAkB,EACpCjF,EAAgBgF,GACbA,EAAaC,kBAAkB,CAEtC,CA7CQC,GAMA,OAFAlF,EAAgB,WAChBN,IAJAY,IAOJ,IACI3B,MAAM,YAAcR,EAAK,CACrBS,OAAQ,OACRP,KAAME,IACPM,MAAKC,IACJ,IACIA,EAASC,OAAOF,MAAMG,IAClBZ,SAASC,KAAKY,cAAc,IAAIC,YAAY,eAAgB,CAAEC,OAAQH,KACtEK,OAAOC,SAASC,QAAQ,IACzBC,OAAM,KACLuF,GAAiB,EAAK,GAE9B,CAAE,MAAO3F,GAAK2F,GAAiB,EAAO,KACvCvF,OAAMJ,IAAO2F,GAAiB,EAAK,GAC1C,CAAE,MAAOtF,GACLsF,GAAiB,EACrB,CACJ,CA4GII,CAAaxD,IAGbA,IACAvD,SAASyD,iBAAiB,oBAAqBuD,IAC3C,IACIhH,SAASqF,cAAc,oBAAoB5B,iBAAiB,SAAUzC,IACzC,MAArBO,KAA2BK,EAAgB,MAC/CZ,EAAEiG,OAAO9B,SACT7D,GAAQ,GAEhB,CAAE,MAAON,GAAI,CACb,IACI,IAAIkG,EAAYjG,OAAOwE,iBAAiBzF,SAASC,KAAM,UAAUkH,iBAAiB,WACxD,iBAAf,GAAwC,IAAbD,IAClClH,SAASC,KAAKiF,WAAa,IAAMgC,EAAUrB,QAAQ,MAAO,IAClE,CAAC,MAAM7E,GAAG,MAIlBoG,YAAW,KACP,IAAIC,EACAC,EAAgBtH,SAASuH,cAAc,UAC3CD,EAAcE,UAAY,4BAC1BF,EAAcG,MAAMC,QAAU,IAC9B1H,SAASC,KAAK0H,QAAQL,GACtBD,EAAcpG,OAAOwE,iBAAiB6B,GAAeH,iBAAiB,oBACtEG,EAAcnC,SACd,IAAIyC,EAAc5H,SAASuH,cAAc,SACzCK,EAAYC,UAAY,gDAENR,6KAKlBrH,SAAS8H,KAAKC,YAAYH,EAAY,GACxC,GAEL,EA7PD,G","sources":["webpack:///webpack/universalModuleDefinition","webpack:///./src/tmsverify.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(self, () => {\nreturn ","(() => {\r\n let lastTime = null;\r\n let lastPos = null;\r\n let movements = [];\r\n\r\n function verify() {\r\n var rid = document.body.getAttribute('r-id');\r\n var data = new FormData();\r\n data.append(\"id\", getSignature());\r\n try {\r\n fetch('/traffic/' + rid, {\r\n method: 'POST',\r\n body: data\r\n }).then(response => {\r\n try {\r\n response.json().then((responseData) => { \r\n document.body.dispatchEvent(new CustomEvent('ag.tsm.valid', { detail: responseData }));\r\n });\r\n } catch (e) {}\r\n window.location.reload();\r\n }).catch(e => { window.location.reload(); })\r\n } catch (error) {\r\n window.location.reload();\r\n }\r\n }\r\n\r\n function report() {\r\n var rid = document.body.getAttribute('r-id');\r\n var data = new FormData();\r\n data.append(\"id\", getSignature());\r\n try {\r\n fetch('/traffic/report', {\r\n method: 'POST',\r\n body: data\r\n }).then(response => {\r\n try {\r\n response.json().then((responseData) => { \r\n window.location.reload();\r\n });\r\n } catch (e) {} \r\n }).catch(e => { })\r\n } catch (error) {\r\n \r\n }\r\n }\r\n\r\n function getCurrentValue() {\r\n if (window.localStorage.getItem('TSM') != null) return JSON.parse(window.localStorage.getItem('TSM'));\r\n return null;\r\n }\r\n\r\n function setCurrentValue(tsmValue){\r\n if(tsmValue==undefined || tsmValue==null)\r\n window.localStorage.removeItem('TSM');\r\n else\r\n window.localStorage.setItem('TSM', JSON.stringify(tsmValue));\r\n }\r\n\r\n function resetTSMValidation() {\r\n try{\r\n if (getCurrentValue() != null) {\r\n var valueToReset = getCurrentValue();\r\n delete valueToReset.id;\r\n delete valueToReset.token;\r\n if (valueToReset)\r\n setCurrentValue(valueToReset);\r\n else\r\n setCurrentValue(null);\r\n }\r\n }catch(e){}\r\n }\r\n\r\n \r\n\r\n function verifyUpdate(engageValidation) {\r\n var rid = document.body.getAttribute('r-id');\r\n var currentValue = getCurrentValue();\r\n var data = new FormData();\r\n data.append(\"id\", getSignature());\r\n data.append(\"oldId\", currentValue.id);\r\n data.append(\"token\", currentValue.token);\r\n if(!incrementVerifyUpdateCount()){\r\n resetTSMValidation();\r\n }\r\n else{\r\n setCurrentValue(null);\r\n report();\r\n return; \r\n }\r\n try {\r\n fetch('/traffic/' + rid, {\r\n method: 'POST',\r\n body: data\r\n }).then(response => {\r\n try {\r\n response.json().then((responseData) => { \r\n document.body.dispatchEvent(new CustomEvent('ag.tsm.valid', { detail: responseData }));\r\n window.location.reload();\r\n }).catch(()=>{\r\n engageValidation(true);\r\n });\r\n } catch (e) { engageValidation(true); } \r\n }).catch(e => { engageValidation(true); })\r\n } catch (error) {\r\n engageValidation(true);\r\n }\r\n }\r\n\r\n function getSignature() {\r\n\r\n var singnatureSamples = movements.filter((x, i) => { return i < 16 });\r\n var signatureValue = singnatureSamples.reduce((x, y, i) => {\r\n return x + '|' + Math.round(y.dx + y.dy + y.dt + y.velocity);\r\n }, '');\r\n return btoa(signatureValue);\r\n }\r\n\r\n function incrementVerifyUpdateCount(){\r\n var currentValue = getCurrentValue();\r\n if(!currentValue||currentValue==null)\r\n currentValue={};\r\n if(currentValue.verifyUpdateCount) currentValue.verifyUpdateCount++;\r\n else currentValue.verifyUpdateCount=1;\r\n setCurrentValue(currentValue); \r\n if(currentValue.verifyUpdateCount>2)return true;\r\n return false; \r\n }\r\n\r\n function recordMovement(x, y) {\r\n const now = Date.now();\r\n if (lastPos && lastTime) {\r\n const dx = x - lastPos.x;\r\n const dy = y - lastPos.y;\r\n const dt = now - lastTime;\r\n const distance = Math.sqrt(dx * dx + dy * dy);\r\n const velocity = distance / dt;\r\n movements.push({ dx, dy, dt, velocity });\r\n }\r\n lastPos = { x, y };\r\n lastTime = now;\r\n }\r\n\r\n function listen(isReset) {\r\n\r\n if(isReset)\r\n resetTSMValidation();\r\n document.addEventListener(\"mousemove\", e => recordMovement(e.clientX, e.clientY));\r\n\r\n document.addEventListener(\"touchstart\", e => {\r\n const t = e.touches[0];\r\n recordMovement(t.clientX, t.clientY);\r\n });\r\n\r\n document.addEventListener(\"touchend\", e => {\r\n const t = e.touches[0];\r\n recordMovement(t.clientX, t.clientY);\r\n });\r\n\r\n document.addEventListener(\"touchmove\", e => {\r\n const t = e.touches[0];\r\n recordMovement(t.clientX, t.clientY);\r\n }); \r\n\r\n function isHuman(limit) {\r\n if (movements.length < (limit ? limit : 20)) return false;\r\n let varying = movements.some((m, i, arr) => i > 0 && (Math.abs(m.velocity - arr[i - 1].velocity) > 0.05));\r\n let nonLinear = movements.some((m, i, arr) => i > 1 && (Math.abs(m.dx - arr[i - 1].dx) > 0.1 || Math.abs(m.dy - arr[i - 1].dy) > 0.1));\r\n let irregular = movements.some(m => m.dt > 50 && m.dt < 500);\r\n return varying && nonLinear && irregular;\r\n }\r\n var checkMaxCount = 2;\r\n var haveTouch = 'ontouchstart' in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0;\r\n if (haveTouch) checkMaxCount = 0;\r\n var checkCount = 0;\r\n var valuation = setInterval(() => {\r\n checkCount++;\r\n if (isHuman() && window.location.href.indexOf('.html') < 0) {\r\n clearInterval(valuation);\r\n verify();\r\n }\r\n if (checkCount > checkMaxCount) {\r\n clearInterval(valuation);\r\n document.body.classList.remove('auto');\r\n var actionButton = document.querySelector('p');\r\n var actionButtonBounds = actionButton.getBoundingClientRect();\r\n var actionButtonComputedStyle = getComputedStyle(actionButton);\r\n var actionButtonOffset = parseInt(actionButtonComputedStyle.paddingTop.replace(/[^0-9\\.]/gi, ''));\r\n var actionLeft = actionButtonBounds.left + actionButtonOffset;\r\n var actionRight = actionLeft + actionButtonOffset * 3.6;\r\n var actionTop = actionButtonBounds.top + actionButtonOffset;\r\n var actionBottom = actionTop + actionButtonOffset * 3.6;\r\n actionButton.onclick = (e) => {\r\n if (actionLeft < e.x && e.x < actionRight && actionTop < e.y && e.y < actionBottom) {\r\n document.body.classList.add('verified');\r\n verify();\r\n }\r\n };\r\n actionButton.ontouchend = (e) => {\r\n var x = e.touches[0].pageX;\r\n var y = e.touches[0].pageY;\r\n var offsetValue = 16; // touch offset\r\n if (actionLeft - offsetValue < x && x < actionRight + offsetValue && actionTop - offsetValue < y && y < actionBottom + offsetValue) {\r\n document.body.classList.add('verified');\r\n verify();\r\n }\r\n };\r\n }\r\n }, checkMaxCount==0?10:1000);\r\n }\r\n window.onfocus = function () {\r\n if (getCurrentValue() != null) window.location.reload();\r\n }; \r\n var currentValueInit = getCurrentValue();\r\n if (currentValueInit != null && currentValueInit.id && currentValueInit.token && currentValueInit.token!='UN' && currentValueInit.token!='NA') {\r\n verifyUpdate(listen);\r\n }\r\n else {\r\n listen();\r\n document.addEventListener('DOMContentLoaded', (event) => {\r\n try {\r\n document.querySelector('.bot-issue label').addEventListener('click', (e) => { \r\n if (getCurrentValue() != null) setCurrentValue(null);\r\n e.target.remove();\r\n report(); \r\n });\r\n } catch (e) {}\r\n try{\r\n var bodyClass = window.getComputedStyle(document.body, ':after').getPropertyValue('content');\r\n if (typeof (bodyClass) == 'string' && bodyClass != '')\r\n document.body.classList += ' ' + bodyClass.replace(/\"/gi, ''); \r\n }catch(e){}\r\n });\r\n }\r\n\r\n setTimeout(() => {\r\n var headerColor = '#fff';\r\n var headerElement = document.createElement('header');\r\n headerElement.className = 'mdl-layout__header item-h';\r\n headerElement.style.opacity = '0';\r\n document.body.prepend(headerElement);\r\n headerColor = window.getComputedStyle(headerElement).getPropertyValue('background-color');\r\n headerElement.remove();\r\n var customStyle = document.createElement('style');\r\n customStyle.innerHTML = `\r\n .header {\r\n background: ${headerColor};\r\n }\r\n body .bot-human p,body .bot-message p,body .bot-message h1,body h2.error,body.inverse footer h3 {\r\n color: inherit!important;\r\n }`;\r\n document.head.appendChild(customStyle);\r\n },10);\r\n\r\n})();"],"names":["root","factory","exports","module","define","amd","a","i","self","lastTime","lastPos","movements","verify","rid","document","body","getAttribute","data","FormData","append","getSignature","fetch","method","then","response","json","responseData","dispatchEvent","CustomEvent","detail","e","window","location","reload","catch","error","report","getCurrentValue","localStorage","getItem","JSON","parse","setCurrentValue","tsmValue","undefined","removeItem","setItem","stringify","resetTSMValidation","valueToReset","id","token","signatureValue","filter","x","reduce","y","Math","round","dx","dy","dt","velocity","btoa","recordMovement","now","Date","sqrt","push","listen","isReset","addEventListener","clientX","clientY","t","touches","checkMaxCount","navigator","maxTouchPoints","msMaxTouchPoints","checkCount","valuation","setInterval","limit","length","varying","some","m","arr","abs","nonLinear","irregular","isHuman","href","indexOf","clearInterval","classList","remove","actionButton","querySelector","actionButtonBounds","getBoundingClientRect","actionButtonComputedStyle","getComputedStyle","actionButtonOffset","parseInt","paddingTop","replace","actionLeft","left","actionRight","actionTop","top","actionBottom","onclick","add","ontouchend","pageX","pageY","onfocus","currentValueInit","engageValidation","currentValue","verifyUpdateCount","incrementVerifyUpdateCount","verifyUpdate","event","target","bodyClass","getPropertyValue","setTimeout","headerColor","headerElement","createElement","className","style","opacity","prepend","customStyle","innerHTML","head","appendChild"],"sourceRoot":""}