@gemx-dev/clarity-js 0.8.89 → 0.8.90

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.
@@ -222,7 +222,7 @@ function stop$O() {
222
222
  startTime = 0;
223
223
  }
224
224
 
225
- var version$1 = "0.8.89";
225
+ var version$1 = "0.8.90";
226
226
 
227
227
  // tslint:disable: no-bitwise
228
228
  function hash (input, precision) {
@@ -1315,17 +1315,19 @@ var cookie = /*#__PURE__*/Object.freeze({
1315
1315
  });
1316
1316
 
1317
1317
  var defaultConfig = {
1318
+ debug: false,
1318
1319
  excludeClassNames: [],
1319
1320
  ignoreMutationClassNames: [],
1320
1321
  discoverTrigger: null,
1321
1322
  };
1322
1323
  var _config = __assign({}, defaultConfig);
1323
1324
  function start$J() {
1324
- var _a, _b, _c, _d, _e, _f;
1325
+ var _a, _b, _c, _d, _e, _f, _g, _h;
1325
1326
  _config = {
1326
- excludeClassNames: ((_b = (_a = window === null || window === void 0 ? void 0 : window.GemXHeatmap) === null || _a === void 0 ? void 0 : _a.excludeClassNames) !== null && _b !== void 0 ? _b : []),
1327
- ignoreMutationClassNames: ((_d = (_c = window === null || window === void 0 ? void 0 : window.GemXHeatmap) === null || _c === void 0 ? void 0 : _c.ignoreMutationClassNames) !== null && _d !== void 0 ? _d : []),
1328
- discoverTrigger: ((_f = (_e = window === null || window === void 0 ? void 0 : window.GemXHeatmap) === null || _e === void 0 ? void 0 : _e.discoverTrigger) !== null && _f !== void 0 ? _f : null),
1327
+ debug: new URLSearchParams(window.location.search).has("gemx_debug") || ((_b = (_a = window === null || window === void 0 ? void 0 : window.GemXHeatmap) === null || _a === void 0 ? void 0 : _a.debug) !== null && _b !== void 0 ? _b : false),
1328
+ excludeClassNames: ((_d = (_c = window === null || window === void 0 ? void 0 : window.GemXHeatmap) === null || _c === void 0 ? void 0 : _c.excludeClassNames) !== null && _d !== void 0 ? _d : []),
1329
+ ignoreMutationClassNames: ((_f = (_e = window === null || window === void 0 ? void 0 : window.GemXHeatmap) === null || _e === void 0 ? void 0 : _e.ignoreMutationClassNames) !== null && _f !== void 0 ? _f : []),
1330
+ discoverTrigger: ((_h = (_g = window === null || window === void 0 ? void 0 : window.GemXHeatmap) === null || _g === void 0 ? void 0 : _g.discoverTrigger) !== null && _h !== void 0 ? _h : null),
1329
1331
  };
1330
1332
  }
1331
1333
  function stop$G() {
@@ -1337,10 +1339,14 @@ function set(config) {
1337
1339
  function get$2() {
1338
1340
  return _config;
1339
1341
  }
1342
+ function isDebug() {
1343
+ return _config.debug;
1344
+ }
1340
1345
 
1341
1346
  var gemx = /*#__PURE__*/Object.freeze({
1342
1347
  __proto__: null,
1343
1348
  get: get$2,
1349
+ isDebug: isDebug,
1344
1350
  set: set,
1345
1351
  start: start$J,
1346
1352
  stop: stop$G
@@ -2450,14 +2456,14 @@ var GEMX_OBSERVE = { allRoots: [scroll], documentOnly: [click] };
2450
2456
  var ALL_OBSERVE = { allRoots: [scroll], documentOnly: [click, clipboard, pointer, input, selection, change, submit] };
2451
2457
  var modules$2 = ALL$1;
2452
2458
  function start$s() {
2453
- modules$2 = config$3.mode === "gemx" ? GEMX$1 : ALL$1;
2459
+ modules$2 = (config$3 === null || config$3 === void 0 ? void 0 : config$3.mode) === "gemx" ? GEMX$1 : ALL$1;
2454
2460
  modules$2.forEach(function (m) { return m.start(); });
2455
2461
  }
2456
2462
  function stop$q() {
2457
2463
  modules$2.forEach(function (m) { return m.stop(); });
2458
2464
  }
2459
2465
  function observe$4(root) {
2460
- var observeModules = config$3.mode === "gemx" ? GEMX_OBSERVE : ALL_OBSERVE;
2466
+ var observeModules = (config$3 === null || config$3 === void 0 ? void 0 : config$3.mode) === "gemx" ? GEMX_OBSERVE : ALL_OBSERVE;
2461
2467
  observeModules.allRoots.forEach(function (m) { return m.observe(root); });
2462
2468
  if (root.nodeType === Node.DOCUMENT_NODE) {
2463
2469
  observeModules.documentOnly.forEach(function (m) { return m.observe(root); });
@@ -3152,7 +3158,7 @@ function handle$1(m) {
3152
3158
  }
3153
3159
  function processMutation(timer, mutation, instance, timestamp) {
3154
3160
  return __awaiter(this, void 0, void 0, function () {
3155
- var state$1, target, ignoredClasses, el_1, type;
3161
+ var state$1, target, ignoredClasses, isSnapshotProcessed, el_1, type;
3156
3162
  return __generator(this, function (_a) {
3157
3163
  switch (_a.label) {
3158
3164
  case 0:
@@ -3168,7 +3174,8 @@ function processMutation(timer, mutation, instance, timestamp) {
3168
3174
  }
3169
3175
  target = mutation.target;
3170
3176
  ignoredClasses = get$2().ignoreMutationClassNames;
3171
- if (ignoredClasses.length > 0 && target instanceof Element) {
3177
+ isSnapshotProcessed = isActive();
3178
+ if (!isSnapshotProcessed && ignoredClasses.length > 0 && target instanceof Element) {
3172
3179
  el_1 = target;
3173
3180
  if (ignoredClasses.some(function (cls) { return el_1.classList.contains(cls); })) {
3174
3181
  return [2 /*return*/];
@@ -5165,9 +5172,9 @@ function stop$g() {
5165
5172
  function upload(final, type) {
5166
5173
  if (final === void 0) { final = false; }
5167
5174
  return __awaiter(this, void 0, void 0, function () {
5168
- var isGemxSnapshot, sendPlaybackBytes, last, e, a, p, encoded, payload, zipped, _a;
5169
- return __generator(this, function (_b) {
5170
- switch (_b.label) {
5175
+ var isGemxSnapshot, sendPlaybackBytes, last, isDebug$1, trackedEvents, eventSet, labels, _i, trackedEvents_1, _a, eventType, label, e, a, p, encoded, payload, zipped, _b;
5176
+ return __generator(this, function (_c) {
5177
+ switch (_c.label) {
5171
5178
  case 0:
5172
5179
  if (!active$1) {
5173
5180
  return [2 /*return*/];
@@ -5188,6 +5195,21 @@ function upload(final, type) {
5188
5195
  // In some cases envelope has null data because it's part of the shutdown process while there's one upload call queued which might introduce runtime error
5189
5196
  if (!data$1)
5190
5197
  return [2 /*return*/];
5198
+ isDebug$1 = isDebug();
5199
+ if (!type && isDebug$1) {
5200
+ trackedEvents = [
5201
+ [9 /* Event.Click */, "click"],
5202
+ [10 /* Event.Scroll */, "scroll"],
5203
+ ];
5204
+ eventSet = new Set(analysis.map(function (item) { return JSON.parse(item)[1]; }));
5205
+ labels = [];
5206
+ for (_i = 0, trackedEvents_1 = trackedEvents; _i < trackedEvents_1.length; _i++) {
5207
+ _a = trackedEvents_1[_i], eventType = _a[0], label = _a[1];
5208
+ if (eventSet.has(eventType))
5209
+ labels.push(label);
5210
+ }
5211
+ type = labels.length > 0 ? labels.join("-") : undefined;
5212
+ }
5191
5213
  e = JSON.stringify(envelope(last));
5192
5214
  a = "[".concat(analysis.join(), "]");
5193
5215
  p = sendPlaybackBytes ? "[".concat(playback.join(), "]") : "" /* Constant.Empty */;
@@ -5198,14 +5220,14 @@ function upload(final, type) {
5198
5220
  encoded = { e: e, a: a, p: p };
5199
5221
  payload = stringify(encoded);
5200
5222
  if (!last) return [3 /*break*/, 1];
5201
- _a = null;
5223
+ _b = null;
5202
5224
  return [3 /*break*/, 3];
5203
5225
  case 1: return [4 /*yield*/, compress(payload)];
5204
5226
  case 2:
5205
- _a = _b.sent();
5206
- _b.label = 3;
5227
+ _b = _c.sent();
5228
+ _c.label = 3;
5207
5229
  case 3:
5208
- zipped = _a;
5230
+ zipped = _b;
5209
5231
  sum(2 /* Metric.TotalBytes */, zipped ? zipped.length : payload.length);
5210
5232
  send(payload, zipped, data$1.sequence, last, type);
5211
5233
  // Clear out events now that payload has been dispatched
@@ -6688,28 +6710,46 @@ function fire() {
6688
6710
  }
6689
6711
  function schedule(trigger) {
6690
6712
  triggered = false;
6691
- var clickCount = 0;
6713
+ var windowExpired = false;
6714
+ var delayScheduled = false;
6715
+ var scheduleDelayedFire = function (type) {
6716
+ var _a;
6717
+ if (delayScheduled || windowExpired)
6718
+ return;
6719
+ delayScheduled = true;
6720
+ console.log("[GemX Snapshot] ".concat(type, " triggered:"));
6721
+ setTimeout(fire, (_a = trigger.delayMs) !== null && _a !== void 0 ? _a : 0);
6722
+ };
6723
+ if (trigger.activeTimeMs) {
6724
+ setTimeout(function () {
6725
+ windowExpired = true;
6726
+ onTrustedScroll(null);
6727
+ onTrustedClick(null);
6728
+ }, trigger.activeTimeMs);
6729
+ }
6692
6730
  if (trigger.scrollDepthPercent) {
6693
6731
  onTrustedScroll(function () {
6694
- var scrolled = window.scrollY + window.innerHeight;
6695
- var total = document.documentElement.scrollHeight;
6696
- if ((scrolled / total) * 100 >= trigger.scrollDepthPercent) {
6697
- fire();
6732
+ var docH = document.documentElement.scrollHeight;
6733
+ var vpH = window.innerHeight;
6734
+ var maxScrollY = docH - vpH;
6735
+ if (maxScrollY <= 0)
6736
+ return;
6737
+ var scrollY = "pageYOffset" in window ? Math.round(window.pageYOffset) : Math.round(document.documentElement.scrollTop);
6738
+ var pct = Math.min(100, Math.round(scrollY / maxScrollY * 100));
6739
+ if (pct >= trigger.scrollDepthPercent) {
6740
+ scheduleDelayedFire('scroll');
6698
6741
  }
6699
6742
  });
6700
6743
  }
6701
6744
  if (trigger.clickCount) {
6745
+ var clickCount_1 = 0;
6702
6746
  onTrustedClick(function () {
6703
- clickCount++;
6704
- if (clickCount >= trigger.clickCount) {
6705
- fire();
6747
+ clickCount_1++;
6748
+ if (clickCount_1 >= trigger.clickCount) {
6749
+ scheduleDelayedFire('click');
6706
6750
  }
6707
6751
  });
6708
6752
  }
6709
- if (trigger.activeTimeMs) {
6710
- setTimeout(fire, trigger.activeTimeMs);
6711
- }
6712
- // maxPlaybackBytes trigger is handled via gemxUpload.start() callback above
6713
6753
  }
6714
6754
  function flush() {
6715
6755
  inject(drain());
@@ -7046,7 +7086,7 @@ var ALL = [diagnostic, layout, interaction, performance$1, dynamic];
7046
7086
  var modules = ALL;
7047
7087
  function start(config$1) {
7048
7088
  if (config$1 === void 0) { config$1 = null; }
7049
- modules = config$1.mode === "gemx" ? GEMX : ALL;
7089
+ modules = (config$1 === null || config$1 === void 0 ? void 0 : config$1.mode) === "gemx" ? GEMX : ALL;
7050
7090
  // Check that browser supports required APIs and we do not attempt to start Clarity multiple times
7051
7091
  if (check()) {
7052
7092
  config(config$1);
@@ -1 +1 @@
1
- !function(){"use strict";var t=Object.freeze({__proto__:null,get flush(){return ae},get inject(){return oe},get queue(){return re},get start(){return ne},get stop(){return ie},get track(){return Zt}}),e=Object.freeze({__proto__:null,get check(){return pe},get compute(){return ge},get data(){return Ft},get start(){return fe},get stop(){return ve},get trigger(){return he}}),n=Object.freeze({__proto__:null,get compute(){return ke},get data(){return me},get log(){return Se},get reset(){return Ie},get start(){return be},get stop(){return _e},get updates(){return ye}}),r=Object.freeze({__proto__:null,get compute(){return Pe},get config(){return Ce},get consent(){return Ne},get data(){return Ee},get start(){return Te},get stop(){return xe},get trackConsentv2(){return ze}}),a=Object.freeze({__proto__:null,get callback(){return Ke},get callbacks(){return qe},get clear(){return Fe},get consent(){return Ye},get consentv2(){return We},get data(){return Ae},get electron(){return De},get id(){return Ve},get metadata(){return Be},get save(){return Qe},get shortid(){return tn},get start(){return Le},get stop(){return Ge}}),o=Object.freeze({__proto__:null,get data(){return an},get envelope(){return cn},get start(){return on},get stop(){return un}}),i={projectId:null,delay:1e3,lean:!1,lite:!1,track:!0,content:!0,drop:[],mask:[],unmask:[],regions:[],cookies:[],fraud:!0,checksum:[],report:null,upload:null,fallback:null,upgrade:null,action:null,dob:null,delayDom:!1,throttleDom:!0,conversions:!1,includeSubdomains:!0,modules:[],diagnostics:!1,externalSession:!1,userId:null,sessionId:null,mode:"gemx"};function u(t){return window.Zone&&"__symbol__"in window.Zone?window.Zone.__symbol__(t):t}var c=0;function s(){return performance.now()+performance.timeOrigin}function l(t){void 0===t&&(t=null);var e=0===c?s():c,n=t&&t.timeStamp>0?t.timeStamp:performance.now(),r=t&&t.view?t.view.performance.timeOrigin:performance.timeOrigin;return Math.max(Math.round(n+r-e),0)}var d="0.8.89";var f=/\S/gi,p=255,h=!0,g=null,v=null,m=null;function y(t,e,n,r,a){if(void 0===r&&(r=!1),t){if("input"==e&&("checkbox"===a||"radio"===a))return t;switch(n){case 0:return t;case 1:switch(e){case"*T":case"value":case"placeholder":case"click":return function(t){var e=-1,n=0,r=!1,a=!1,o=!1,i=null;I();for(var u=0;u<t.length;u++){var c=t.charCodeAt(u);if(r=r||c>=48&&c<=57,a=a||64===c,o=9===c||10===c||13===c||32===c,0===u||u===t.length-1||o){if(r||a){null===i&&(i=t.split(""));var s=t.substring(e+1,o?u:u+1);s=h&&null!==m?s.match(m)?s:S(s,"▪","▫"):_(s),i.splice(e+1-n,s.length,s),n+=s.length-1}o&&(r=!1,a=!1,e=u)}}return i?i.join(""):t}(t);case"input":case"change":return k(t)}return t;case 2:case 3:switch(e){case"*T":case"data-":return r?b(t):_(t);case"src":case"srcset":case"title":case"alt":case"href":case"xlink:href":return 3===n?(null==t?void 0:t.startsWith("blob:"))?"blob:":"":t;case"value":case"click":case"input":case"change":return k(t);case"placeholder":return _(t)}break;case 4:switch(e){case"*T":case"data-":return r?b(t):_(t);case"value":case"input":case"click":case"change":return Array(5).join("•");case"checksum":return""}break;case 5:switch(e){case"*T":case"data-":return S(t,"▪","▫");case"value":case"input":case"click":case"change":return Array(5).join("•");case"checksum":case"src":case"srcset":case"alt":case"title":return""}}}return t}function w(t,e,n){void 0===e&&(e=!1),void 0===n&&(n=!1);var r=t;if(e)r="".concat("https://").concat("Electron");else{var a=i.drop;if(a&&a.length>0&&t&&t.indexOf("?")>0){var o=t.split("?"),u=o[0],c=o[1];r=u+"?"+c.split("&").map((function(t){return a.some((function(e){return 0===t.indexOf("".concat(e,"="))}))?"".concat(t.split("=")[0],"=").concat("*na*"):t})).join("&")}}return n&&(r=r.substring(0,p)),r}function b(t){var e=t.trim();if(e.length>0){var n=e[0],r=t.indexOf(n),a=t.substr(0,r),o=t.substr(r+e.length);return"".concat(a).concat(e.length.toString(36)).concat(o)}return t}function _(t){return t.replace(f,"•")}function S(t,e,n){return I(),t?t.replace(v,e).replace(g,n):t}function k(t){for(var e=5*(Math.floor(t.length/5)+1),n="",r=0;r<e;r++)n+=r>0&&r%5==0?" ":"•";return n}function I(){if(h&&null===g)try{g=new RegExp("\\p{N}","gu"),v=new RegExp("\\p{L}","gu"),m=new RegExp("\\p{Sc}","gu")}catch(t){h=!1}}var E=[],O=null;function T(){}var x=[];function M(){}function C(){}function N(){}function j(){}function z(){}var P=Object.freeze({__proto__:null,checkDocumentStyles:function(t){},compute:function(){},data:O,event:j,hashText:M,keys:x,log:T,observe:function(){},register:z,reset:function(){},sheetAdoptionState:[],sheetUpdateState:[],start:function(){},state:E,stop:function(){},track:N,trigger:C}),A=null;function q(t,e){jn()&&t&&"string"==typeof t&&t.length<255&&(A=e&&"string"==typeof e&&e.length<255?{key:t,value:e}:{value:t},de(24))}var D,R=null,X=null;function H(t){t in R||(R[t]=0),t in X||(X[t]=0),R[t]++,X[t]++}function L(t,e){null!==e&&(t in R||(R[t]=0),t in X||(X[t]=0),R[t]+=e,X[t]+=e)}function U(t,e){null!==e&&!1===isNaN(e)&&(t in R||(R[t]=0),(e>R[t]||0===R[t])&&(X[t]=e,R[t]=e))}function G(t,e,n){return window.setTimeout(dn(t),e,n)}function B(t){return window.clearTimeout(t)}var V=0,Y=0,W=null;function J(){W&&B(W),W=G(Z,Y),V=l()}function Z(){var t=l();D={gap:t-V},de(25),D.gap<3e5?W=G(Z,Y):Mn&&(q("clarityGemX","suspend"),rr(),["mousemove","touchstart"].forEach((function(t){return pn(document,t,zn)})),["resize","scroll","pageshow"].forEach((function(t){return pn(window,t,zn)})))}var F=Object.freeze({__proto__:null,get data(){return D},reset:J,start:function(){Y=6e4,V=0},stop:function(){B(W),V=0,Y=0}}),K=null;function Q(t){jn()&&i.lean&&(i.lean=!1,K={key:t},Ke(),Qe(),i.upgrade&&i.upgrade(t),de(3),i.lite)}var $=Object.freeze({__proto__:null,get data(){return K},start:function(){!i.lean&&i.upgrade&&i.upgrade("Config"),K=null},stop:function(){K=null},upgrade:Q}),tt=function(){return tt=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++)for(var a in e=arguments[n])Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t},tt.apply(this,arguments)};function et(t,e,n,r){return new(n||(n=Promise))((function(a,o){function i(t){try{c(r.next(t))}catch(t){o(t)}}function u(t){try{c(r.throw(t))}catch(t){o(t)}}function c(t){var e;t.done?a(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(i,u)}c((r=r.apply(t,e||[])).next())}))}function nt(t,e){var n,r,a,o,i={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return o={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function u(u){return function(c){return function(u){if(n)throw new TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(i=0)),i;)try{if(n=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return i.label++,{value:u[1],done:!1};case 5:i.label++,r=u[1],u=[0];continue;case 7:u=i.ops.pop(),i.trys.pop();continue;default:if(!(a=i.trys,(a=a.length>0&&a[a.length-1])||6!==u[0]&&2!==u[0])){i=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){i.label=u[1];break}if(6===u[0]&&i.label<a[1]){i.label=a[1],a=u;break}if(a&&i.label<a[2]){i.label=a[2],i.ops.push(u);break}a[2]&&i.ops.pop(),i.trys.pop();continue}u=e.call(t,i)}catch(t){u=[6,t],r=0}finally{n=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}([u,c])}}}var rt=null;function at(t,e){it(t,"string"==typeof e?[e]:e)}function ot(t,e,n,r){return void 0===e&&(e=null),void 0===n&&(n=null),void 0===r&&(r=null),et(this,void 0,void 0,(function(){var a,o;return nt(this,(function(i){switch(i.label){case 0:return o={},[4,st(t)];case 1:return o.userId=i.sent(),o.userHint=r||((u=t)&&u.length>=5?"".concat(u.substring(0,2)).concat(S(u.substring(2),"*","*")):S(u,"*","*")),it("userId",[(a=o).userId]),it("userHint",[a.userHint]),it("userType",[lt(t)]),e&&(it("sessionId",[e]),a.sessionId=e),n&&(it("pageId",[n]),a.pageId=n),[2,a]}var u}))}))}function it(t,e){if(jn()&&t&&e&&"string"==typeof t&&t.length<255){for(var n=(t in rt?rt[t]:[]),r=0;r<e.length;r++)"string"==typeof e[r]&&e[r].length<255&&n.push(e[r]);rt[t]=n}}function ut(){de(34)}function ct(){rt={}}function st(t){return et(this,void 0,void 0,(function(){var e;return nt(this,(function(n){switch(n.label){case 0:return n.trys.push([0,4,,5]),crypto&&t?[4,crypto.subtle.digest("SHA-256",(new TextEncoder).encode(t))]:[3,2];case 1:return e=n.sent(),[2,Array.prototype.map.call(new Uint8Array(e),(function(t){return("00"+t.toString(16)).slice(-2)})).join("")];case 2:return[2,""];case 3:return[3,5];case 4:return n.sent(),[2,""];case 5:return[2]}}))}))}function lt(t){return t&&t.indexOf("@")>0?"email":"string"}var dt=Object.freeze({__proto__:null,compute:ut,get data(){return rt},identify:ot,reset:ct,set:at,start:function(){ct()},stop:function(){ct()}}),ft="CompressionStream"in window;function pt(t){return et(this,void 0,void 0,(function(){var e,n;return nt(this,(function(r){switch(r.label){case 0:return r.trys.push([0,3,,4]),ft?(e=new ReadableStream({start:function(e){return et(this,void 0,void 0,(function(){return nt(this,(function(n){return e.enqueue(t),e.close(),[2]}))}))}}).pipeThrough(new TextEncoderStream).pipeThrough(new window.CompressionStream("gzip")),n=Uint8Array.bind,[4,ht(e)]):[3,2];case 1:return[2,new(n.apply(Uint8Array,[void 0,r.sent()]))];case 2:return[3,4];case 3:return r.sent(),[3,4];case 4:return[2,null]}}))}))}function ht(t){return et(this,void 0,void 0,(function(){var e,n,r,a,o;return nt(this,(function(i){switch(i.label){case 0:e=t.getReader(),n=[],r=!1,a=[],i.label=1;case 1:return r?[3,3]:[4,e.read()];case 2:return o=i.sent(),r=o.done,a=o.value,r?[2,n]:(n.push.apply(n,a),[3,1]);case 3:return[2,n]}}))}))}function gt(t,e){try{return!!t[e]}catch(t){return!1}}function vt(t){try{var e=decodeURIComponent(t);return[e!=t,e]}catch(t){}return[!1,t]}var mt=null,yt="^";function wt(t,e){var n;if(void 0===e&&(e=!1),gt(document,"cookie")){var r=document.cookie.split(";");if(r)for(var a=0;a<r.length;a++){var o=r[a].split("=");if(o.length>1&&o[0]&&o[0].trim()===t){for(var i=vt(o[1]),u=i[0],c=i[1];u;)u=(n=vt(c))[0],c=n[1];return e?c.endsWith("".concat("~","1"))?c.substring(0,c.length-2):null:c}}}return null}function bt(t,e,n){if((i.track||""==e)&&(navigator&&navigator.cookieEnabled||gt(document,"cookie"))){var r=function(t){return encodeURIComponent(t)}(e),a=new Date;a.setDate(a.getDate()+n);var o=a?"expires="+a.toUTCString():"",u="".concat(t,"=").concat(r).concat(";").concat(o).concat(";path=/");try{if(null===mt){for(var c=location.hostname?location.hostname.split("."):[],s=c.length-1;s>=0;s--)if(mt=".".concat(c[s]).concat(mt||""),s<c.length-1&&(document.cookie="".concat(u).concat(";").concat("domain=").concat(mt),wt(t)===e))return;mt=""}}catch(t){mt=""}document.cookie=mt?"".concat(u).concat(";").concat("domain=").concat(mt):u}}var _t=Object.freeze({__proto__:null,COOKIE_SEP:yt,getCookie:wt,setCookie:bt,start:function(){mt=null},stop:function(){mt=null}}),St={excludeClassNames:[],ignoreMutationClassNames:[],discoverTrigger:null},kt=tt({},St);var It=Object.freeze({__proto__:null,get:function(){return kt},set:function(t){kt=tt(tt({},kt),t)},start:function(){var t,e,n,r,a,o;kt={excludeClassNames:null!==(e=null===(t=null===window||void 0===window?void 0:window.GemXHeatmap)||void 0===t?void 0:t.excludeClassNames)&&void 0!==e?e:[],ignoreMutationClassNames:null!==(r=null===(n=null===window||void 0===window?void 0:window.GemXHeatmap)||void 0===n?void 0:n.ignoreMutationClassNames)&&void 0!==r?r:[],discoverTrigger:null!==(o=null===(a=null===window||void 0===window?void 0:window.GemXHeatmap)||void 0===a?void 0:a.discoverTrigger)&&void 0!==o?o:null}},stop:function(){kt=tt({},St)}}),Et=[],Ot=0,Tt=!1,xt=0,Mt=null;function Ct(){return Tt}function Nt(t,e){Et.push(t),Ot+=e,xt>0&&Ot>=xt&&Mt&&Mt()}var jt=null;function zt(t){try{if(!jt)return;var e=function(t){try{return JSON.parse(t)}catch(t){return[]}}(t);e.forEach((function(t){jt(t)}))}catch(t){}}var Pt=[It,Object.freeze({__proto__:null,config:function(t,e){return xt=null!=t?t:0,Mt=null!=e?e:null,!0},drain:function(){Tt=!1;var t=Et;return Et=[],Ot=0,t},getBytes:function(){return Ot},hold:Nt,isActive:Ct,start:function(){Et=[],Ot=0,Tt=!0},stop:function(){Et=[],Ot=0,Tt=!1,xt=0,Mt=null}}),P,n,dt,e,P,_t,r,a,o,t,F,$,P];function At(){R={},X={},H(5),Pt.forEach((function(t){return dn(t.start)()}))}function qt(){Pt.slice().reverse().forEach((function(t){return dn(t.stop)()})),R={},X={}}function Dt(){ge(),Pe(),"gemx"!==i.mode&&(ut(),ke(),de(0))}function Rt(t,e,n,r){return"href"===t&&"LINK"===r?"".concat(t,"=").concat(e):"".concat(t,"=").concat(y(e,0===t.indexOf("data-")?"data-":t,n))}var Xt=[],Ht=1,Lt=null;function Ut(){Xt=[],function(t){var e=[t];for(;e.length>0;){for(var n=null,r=null,a=null,o=e.shift(),i=o.firstChild,u=o.parentElement?o.parentElement:o.parentNode?o.parentNode:null;i;)e.push(i),i=i.nextSibling;switch(o.nodeType){case Node.DOCUMENT_TYPE_NODE:var c=o;r="*D",n={name:c.name,publicId:c.publicId,systemId:c.systemId};break;case Node.TEXT_NODE:a=o.nodeValue,r=Lt.get(u)?"*T":r;break;case Node.ELEMENT_NODE:var s=o;n=Gt(s),r=["NOSCRIPT","SCRIPT","STYLE"].indexOf(s.tagName)<0?s.tagName:r}Bt(o,u,{tag:r,attributes:n,value:a})}}(document),function(t){et(this,void 0,void 0,(function(){var e,n,r,a,o,i,u,c,s,d,f,p,h;return nt(this,(function(g){switch(e=l(),n=[e,t],t){case 8:r=O,n.push(r.width),n.push(r.height),r.width,r.height,re(n);break;case 43:if((a=Xt).length>0){for(o=0,i=a;o<i.length;o++)for(u=i[o],c=u.metadata.privacy,s=u.data,d=0,f=["tag","attributes","value"];d<f.length;d++)if(s[p=f[d]])switch(p){case"tag":n.push(u.id),u.parent&&n.push(u.parent),u.previous&&n.push(u.previous),n.push(s[p]);break;case"attributes":for(h in s[p])void 0!==s[p][h]&&n.push(Rt(h,s[p][h],c,s.tag));break;case"value":n.push(y(s[p],s.tag,c))}re(function(t){for(var e=[],n={},r=0,a=null,o=0;o<t.length;o++)if("string"==typeof t[o]){var i=t[o],u=n[i]||-1;u>=0?a?a.push(u):(a=[u],e.push(a),r++):(a=null,e.push(i),n[i]=r++)}else a=null,e.push(t[o]),r++;return e}(n),!0)}}return[2]}))}))}(43)}function Gt(t){var e={},n=t.attributes;if(n&&n.length>0)for(var r=0;r<n.length;r++)e[n[r].name]=n[r].value;return e}function Bt(t,e,n){if(t&&n&&n.tag){var r=function(t){return null===t?null:Lt.has(t)?Lt.get(t):(Lt.set(t,Ht),Ht++)}(t),a=e?Lt.get(e):null,o=t.previousSibling?Lt.get(t.previousSibling):null;Xt.push({id:r,parent:a,previous:o,children:[],data:n,selector:null,hash:null,region:null,metadata:{active:!0,suspend:!1,privacy:5,position:null,fraud:null,size:null}})}}var Vt,Yt,Wt,Jt,Zt,Ft,Kt=0,Qt=0,$t=null,te=0,ee=!1;function ne(){Jt=!0,Kt=0,Qt=0,ee=!1,te=0,Vt=[],Yt=[],Wt={},Zt=null}function re(t,e){if(void 0===e&&(e=!0),Jt){var n=l(),r=t.length>1?t[1]:null,a=JSON.stringify(t);switch(i.lean?!ee&&Qt+a.length>10485760&&(ee=!0):ee=!1,r){case 5:if(ee)break;if(Ct()){Nt(t,a.length);break}Kt+=a.length;case 37:case 6:case 43:case 45:case 46:case 44:case 51:if(ee)break;Ct()&&Nt(t,a.length),Qt+=a.length,Vt.push(a);break;default:Yt.push(a)}H(25);var o=function(){var t=!1===i.lean&&Kt>0?100:an.sequence*i.delay;return"string"==typeof i.upload?Math.max(Math.min(t,3e4),100):i.delay}();n-te>2*o&&(B($t),$t=null),e&&null===$t&&(25!==r&&J(),$t=G(ue,o),te=n,pe(Qt))}}function ae(t){Jt&&(B($t),$t=null,ue(!1,t))}function oe(t){for(var e=0,n=t;e<n.length;e++){var r=n[e],a=JSON.stringify(r);Kt+=a.length,Qt+=a.length,Vt.push(a)}}function ie(){B($t),ue(!0),Kt=0,Qt=0,ee=!1,te=0,Vt=[],Yt=[],Wt={},Zt=null,Jt=!1}function ue(t,e){return void 0===t&&(t=!1),et(this,void 0,void 0,(function(){var n,r,a,o,u,c,s,l;return nt(this,(function(d){switch(d.label){case 0:return Jt?($t=null,(n=("gemx-snapshot"===e||!1===i.lean)&&Qt>0&&(Qt<1048576||an.sequence>0))&&U(1,1),Dt(),r=!0===t,an?(a=JSON.stringify(cn(r)),o="[".concat(Yt.join(),"]"),u=n?"[".concat(Vt.join(),"]"):"",r&&u.length>0&&a.length+o.length+u.length>65536&&(u=""),c=function(t){return t.p.length>0?'{"e":'.concat(t.e,',"a":').concat(t.a,',"p":').concat(t.p,"}"):'{"e":'.concat(t.e,',"a":').concat(t.a,"}")}({e:a,a:o,p:u}),r?(l=null,[3,3]):[3,1]):[2]):[2];case 1:return[4,pt(c)];case 2:l=d.sent(),d.label=3;case 3:return L(2,(s=l)?s.length:c.length),ce(c,s,an.sequence,r,e),Yt=[],n&&(Vt=[],Qt=0,Kt=0,ee=!1),[2]}}))}))}function ce(t,e,n,r,a){if(void 0===r&&(r=!1),"string"==typeof i.upload){var o=i.upload,u=!1;if(r&&navigator&&navigator.sendBeacon)try{(u=navigator.sendBeacon.bind(navigator)(o,t))&&le(n)}catch(t){}if(!1===u){n in Wt?Wt[n].attempts++:Wt[n]={data:t,attempts:1};var c=new XMLHttpRequest;c.open("POST",o,!0),c.timeout=15e3,c.ontimeout=function(){ln(new Error("".concat("Timeout"," : ").concat(o)))},null!==n&&(c.onreadystatechange=function(){dn(se)(c,n)}),c.withCredentials=!0,e?(c.setRequestHeader("Accept","application/x-clarity-gzip"),c.send(e)):c.send(t)}}else if(i.upload){(0,i.upload)(t,a),le(n)}}function se(t,e){var n=Wt[e];t&&4===t.readyState&&n&&((t.status<200||t.status>208)&&n.attempts<=1?t.status>=400&&t.status<500?he(6):(0===t.status&&(i.upload=i.fallback?i.fallback:i.upload),Zt={sequence:e,attempts:n.attempts,status:t.status},de(2),ce(n.data,null,e)):(Zt={sequence:e,attempts:n.attempts,status:t.status},n.attempts>1&&de(2),200===t.status&&t.responseText&&function(t){for(var e=t&&t.length>0?t.split("\n"):[],n=0,r=e;n<r.length;n++){var a=r[n],o=a&&a.length>0?a.split(/ (.*)/):[""];switch(o[0]){case"END":he(6);break;case"UPGRADE":Q("Auto");break;case"ACTION":i.action&&o.length>1&&i.action(o[1]);break;case"EXTRACT":case"MODULE":o.length>1&&o[1];break;case"SIGNAL":o.length>1&&zt(o[1]);break;case"SNAPSHOT":i.lean=!1,Ut()}}}(t.responseText),0===t.status&&(ce(n.data,null,e,!0),he(3)),t.status>=200&&t.status<=208&&le(e),delete Wt[e]))}function le(t){1===t&&(Qe(),Ke())}function de(t){var e=[l(),t];switch(t){case 4:var n=E;n&&n.data&&((e=[n.time,n.event]).push(n.data.visible),e.push(n.data.docWidth),e.push(n.data.docHeight),e.push(n.data.screenWidth),e.push(n.data.screenHeight),e.push(n.data.scrollX),e.push(n.data.scrollY),e.push(n.data.pointerX),e.push(n.data.pointerY),e.push(n.data.activityTime),e.push(n.data.scrollTime),e.push(n.data.pointerTime),e.push(n.data.moveX),e.push(n.data.moveY),e.push(n.data.moveTime),e.push(n.data.downX),e.push(n.data.downY),e.push(n.data.downTime),e.push(n.data.upX),e.push(n.data.upY),e.push(n.data.upTime),e.push(n.data.pointerPrevX),e.push(n.data.pointerPrevY),e.push(n.data.pointerPrevTime),e.push(n.data.modules),re(e,!1));break;case 25:e.push(D.gap),re(e);break;case 35:e.push(Ft.check),re(e,!1);break;case 3:e.push(K.key),re(e);break;case 2:e.push(Zt.sequence),e.push(Zt.attempts),e.push(Zt.status),re(e,!1);break;case 24:A.key&&e.push(A.key),e.push(A.value),re(e);break;case 34:var r=Object.keys(rt);if(r.length>0){for(var a=0,o=r;a<o.length;a++){var i=o[a];e.push(i),e.push(rt[i])}ct(),re(e,!1)}break;case 0:var u=Object.keys(X);if(u.length>0){for(var c=0,s=u;c<s.length;c++){var d=s[c],f=parseInt(d,10);e.push(f),e.push(Math.round(X[d]))}X={},re(e,!1)}break;case 1:var p=Object.keys(ye);if(p.length>0){for(var h=0,g=p;h<g.length;h++){var v=g[h];f=parseInt(v,10);e.push(f),e.push(ye[v])}Ie(),re(e,!1)}break;case 36:var m=Object.keys(O);if(m.length>0){for(var y=0,w=m;y<w.length;y++){var b=w[y];f=parseInt(b,10);e.push(f),e.push([].concat.apply([],O[b]))}re(e,!1)}break;case 40:x.forEach((function(t){e.push(t);var n=[];for(var r in O[t]){var a=parseInt(r,10);n.push(a),n.push(O[t][r])}e.push(n)})),re(e,!1);break;case 47:e.push(Ee.source),e.push(Ee.ad_Storage),e.push(Ee.analytics_Storage),re(e,!1)}}function fe(){Ft={check:0}}function pe(t){if(0===Ft.check){var e=Ft.check;e=an.sequence>=128?1:e,e=an.pageNum>=128?7:e,e=l()>72e5?2:e,(e=t>10485760?2:e)!==Ft.check&&he(e)}}function he(t){Ft.check=t,5!==t&&(Fe(),rr())}function ge(){0!==Ft.check&&de(35)}function ve(){Ft=null}var me=null,ye=null,we=!1;function be(){me={},ye={},we=!1}function _e(){me={},ye={},we=!1}function Se(t,e){if(e&&(e="".concat(e),t in me||(me[t]=[]),me[t].indexOf(e)<0)){if(me[t].length>128)return void(we||(we=!0,he(5)));me[t].push(e),t in ye||(ye[t]=[]),ye[t].push(e)}}function ke(){de(1)}function Ie(){ye={},we=!1}var Ee=null,Oe=!0;function Te(){var t,e=null===(t=window.google_tag_data)||void 0===t?void 0:t.ics;Oe=!0,(null==e?void 0:e.addListener)&&e.addListener(["ad_storage","analytics_storage"],Me)}function xe(){Oe=!0}function Me(){var t,e=null===(t=window.google_tag_data)||void 0===t?void 0:t.ics;if(null==e?void 0:e.getConsentState)try{var n=e.getConsentState("analytics_storage");We(function(t){var e={source:2,ad_Storage:1===t.ad_Storage?"granted":"denied",analytics_Storage:1===t.analytics_Storage?"granted":"denied"};return e}({ad_Storage:e.getConsentState("ad_storage"),analytics_Storage:n}))}catch(t){return}}function Ce(t){je(t.analytics_Storage?1:0),Ee=t}function Ne(){je(2)}function je(t){Se(36,t.toString())}function ze(t){Ee=t,de(47)}function Pe(){var t;if(Oe&&(de(47),Oe=!1,!i.track)){var e=null===(t=window.google_tag_data)||void 0===t?void 0:t.ics;(null==e?void 0:e.usedUpdate)&&Me()}}var Ae=null,qe=[],De=0,Re=null,Xe=!1,He={source:7,ad_Storage:"denied",analytics_Storage:"denied"};function Le(){var t,e,n,r=navigator&&"userAgent"in navigator?navigator.userAgent:"",a=null!==(n="undefined"!=typeof Intl&&(null===(e=null===(t=null===Intl||void 0===Intl?void 0:Intl.DateTimeFormat())||void 0===t?void 0:t.resolvedOptions())||void 0===e?void 0:e.timeZone))&&void 0!==n?n:"",o=(new Date).getTimezoneOffset().toString(),u=window.location.ancestorOrigins?Array.from(window.location.ancestorOrigins).toString():"",c=document&&document.title?document.title:"";De=r.indexOf("Electron")>0?1:0;var s=function(){var t={session:tn(),ts:Math.round(Date.now()),count:1,upgrade:null,upload:""},e=wt("_clsk",!i.includeSubdomains);if(e){var n=e.includes("^")?e.split("^"):e.split("|");n.length>=5&&t.ts-en(n[1])<18e5&&(t.session=n[0],t.count=en(n[2])+1,t.upgrade=en(n[3]),t.upload=n.length>=6?"".concat("https://").concat(n[5],"/").concat(n[4]):"".concat("https://").concat(n[4]))}return t}(),l=nn(),d=i.projectId||function(t,e){void 0===e&&(e=null);for(var n,r=5381,a=r,o=0;o<t.length;o+=2)r=(r<<5)+r^t.charCodeAt(o),o+1<t.length&&(a=(a<<5)+a^t.charCodeAt(o+1));return n=Math.abs(r+11579*a),(e?n%Math.pow(2,e):n).toString(36)}(location.host),f=i.externalSession&&i.userId?i.userId:l.id,p=i.externalSession&&i.sessionId?i.sessionId:s.session;Ae={projectId:d,userId:f,sessionId:p,pageNum:s.count},i.lean=i.track&&null!==s.upgrade?0===s.upgrade:i.lean,i.upload=i.track&&"string"==typeof i.upload&&s.upload&&s.upload.length>"https://".length?s.upload:i.upload,Se(0,r),Se(3,c),Se(1,w(location.href,!!De)),Se(2,document.referrer),Se(15,function(){var t=tn();if(i.track&&gt(window,"sessionStorage")){var e=sessionStorage.getItem("_cltk");t=e||t,sessionStorage.setItem("_cltk",t)}return t}()),Se(16,document.documentElement.lang),Se(17,document.dir),Se(26,"".concat(window.devicePixelRatio)),Se(28,l.dob.toString()),Se(29,l.version.toString()),Se(33,u),Se(34,a),Se(35,o),U(0,s.ts),U(1,0),U(35,De);var h,g=null===window||void 0===window?void 0:window.Zone;g&&"__symbol__"in g&&U(39,1),navigator&&(Se(9,navigator.language),U(33,navigator.hardwareConcurrency),U(32,navigator.maxTouchPoints),U(34,Math.round(navigator.deviceMemory)),(h=navigator.userAgentData)&&h.getHighEntropyValues?h.getHighEntropyValues(["model","platform","platformVersion","uaFullVersion"]).then((function(t){var e;Se(22,t.platform),Se(23,t.platformVersion),null===(e=t.brands)||void 0===e||e.forEach((function(t){Se(24,t.name+"~"+t.version)})),Se(25,t.model),U(27,t.mobile?1:0)})):Se(22,navigator.platform)),screen&&(U(14,Math.round(screen.width)),U(15,Math.round(screen.height)),U(16,Math.round(screen.colorDepth))),null===Re&&(Re={source:l.consent?6:0,ad_Storage:i.track?"granted":"denied",analytics_Storage:i.track?"granted":"denied"}),Ue(),Ce(Je(Re)),i.externalSession||$e(l)}function Ue(){if(!Xe&&"granted"===(null==Re?void 0:Re.analytics_Storage)&&"granted"===(null==Re?void 0:Re.ad_Storage)){for(var t=0,e=i.cookies;t<e.length;t++){var n=e[t],r=wt(n);r&&at(n,r)}Xe=!0}}function Ge(){Ae=null,Xe=!1,qe.forEach((function(t){t.called=!1}))}function Be(t,e,n,r){void 0===e&&(e=!0),void 0===n&&(n=!1),void 0===r&&(r=!1);var a=i.lean?0:1,o=!1;Ae&&(a||!1===e)&&(t(Ae,!i.lean,r?Re:void 0),o=!0),!n&&o||qe.push({callback:t,wait:e,recall:n,called:o,consentInfo:r})}function Ve(){return Ae?[Ae.userId,Ae.sessionId,Ae.pageNum].join("."):""}function Ye(t){void 0===t&&(t=!0),We(t?{source:4,ad_Storage:"granted",analytics_Storage:"granted"}:{source:4,ad_Storage:"denied",analytics_Storage:"denied"})}function We(t,e){var n;if(void 0===t&&(t=He),void 0===e&&(e=5),jn()){var r={source:null!==(n=t.source)&&void 0!==n?n:e,ad_Storage:Ze(t.ad_Storage,null==Re?void 0:Re.ad_Storage),analytics_Storage:Ze(t.analytics_Storage,null==Re?void 0:Re.analytics_Storage)};if(Re&&r.ad_Storage===Re.ad_Storage&&r.analytics_Storage===Re.analytics_Storage)return Re.source=r.source,ze(Je(Re)),void Ne();Re=r,Ke(!0);var a=Je(Re);if(!a.analytics_Storage&&i.track)return i.track=!1,Fe(!0),rr(),void window.setTimeout(nr,250);jn()&&a.analytics_Storage&&(i.track=!0,$e(nn(),1),Qe()),Ue(),ze(a),Ne()}}function Je(t){var e;return{source:null!==(e=t.source)&&void 0!==e?e:255,ad_Storage:"granted"===t.ad_Storage?1:0,analytics_Storage:"granted"===t.analytics_Storage?1:0}}function Ze(t,e){return void 0===e&&(e="denied"),"string"==typeof t?t.toLowerCase():e}function Fe(t){void 0===t&&(t=!1),bt("_clsk","",0),t&&bt("_clck","",0)}function Ke(t){void 0===t&&(t=!1),function(t,e){void 0===e&&(e=!1);if(qe.length>0)for(var n=0;n<qe.length;n++){var r=qe[n];r.callback&&(!r.called&&!e||r.consentInfo&&e)&&(!r.wait||t)&&(r.callback(Ae,!i.lean,r.consentInfo?Re:void 0),r.called=!0,r.recall||(qe.splice(n,1),n--))}}(i.lean?0:1,t)}function Qe(){if(Ae&&i.track&&!i.externalSession){var t=Math.round(Date.now()),e=i.upload&&"string"==typeof i.upload?i.upload.replace("https://",""):"",n=i.lean?0:1;bt("_clsk",[Ae.sessionId,t,Ae.pageNum,n,e].join(yt),1)}}function $e(t,e){void 0===e&&(e=null),e=null===e?t.consent:e;var n=Math.ceil((Date.now()+31536e6)/864e5),r=0===t.dob?null===i.dob?0:i.dob:t.dob;(null===t.expiry||Math.abs(n-t.expiry)>=1||t.consent!==e||t.dob!==r)&&bt("_clck",[Ae.userId,2,n.toString(36),e,r].join(yt),365)}function tn(){var t=Math.floor(Math.random()*Math.pow(2,32));return window&&window.crypto&&window.crypto.getRandomValues&&Uint32Array&&(t=window.crypto.getRandomValues(new Uint32Array(1))[0]),t.toString(36)}function en(t,e){return void 0===e&&(e=10),parseInt(t,e)}function nn(){var t={id:tn(),version:0,expiry:null,consent:0,dob:0},e=wt("_clck",!i.includeSubdomains);if(e&&e.length>0){var n=e.includes("^")?e.split("^"):e.split("|");n.length>1&&(t.version=en(n[1])),n.length>2&&(t.expiry=en(n[2],36)),n.length>3&&1===en(n[3])&&(t.consent=1),n.length>4&&en(n[1])>1&&(t.dob=en(n[4])),i.track=i.track||1===t.consent,t.id=i.track?n[0]:t.id}return t}var rn,an=null;function on(){var t=Ae;an={version:d,sequence:0,start:0,duration:0,projectId:t.projectId,userId:t.userId,sessionId:t.sessionId,pageNum:t.pageNum,upload:0,end:0,applicationPlatform:0,url:""}}function un(){an=null}function cn(t){return an.start=an.start+an.duration,an.duration=l()-an.start,an.sequence++,an.upload=t&&"sendBeacon"in navigator?1:0,an.end=t?1:0,an.applicationPlatform=0,an.url=w(location.href,!1,!0),[an.version,an.sequence,an.start,an.duration,an.projectId,an.userId,an.sessionId,an.pageNum,an.upload,an.end,an.applicationPlatform,an.url]}function sn(){rn=[]}function ln(t){if(rn&&-1===rn.indexOf(t.message)){var e=i.report;if(e&&e.length>0&&an){var n={v:an.version,p:an.projectId,u:an.userId,s:an.sessionId,n:an.pageNum};t.message&&(n.m=t.message),t.stack&&(n.e=t.stack);var r=new XMLHttpRequest;r.open("POST",e,!0),r.send(JSON.stringify(n)),rn.push(t.message)}}return t}function dn(t){return function(){var e=performance.now();try{t.apply(this,arguments)}catch(t){throw ln(t)}var n=performance.now()-e;L(4,n),n>30&&(H(7),U(6,n),t.dn&&"".concat(t.dn,"-").concat(n))}}var fn=new Map;function pn(t,e,n,r,a){void 0===r&&(r=!1),void 0===a&&(a=!0),n=dn(n);try{t[u("addEventListener")](e,n,{capture:r,passive:a}),function(t){return fn.has(t)}(t)||fn.set(t,[]),fn.get(t).push({event:e,listener:n,options:{capture:r,passive:a}})}catch(t){}}function hn(){fn.forEach((function(t,e){!function(t,e){t.forEach((function(t){try{e[u("removeEventListener")](t.event,t.listener,{capture:t.options.capture,passive:t.options.passive})}catch(t){}})),fn.delete(e)}(t,e)})),fn=new Map}var gn=null,vn=null,mn=null,yn=0;function wn(){return!(yn++>20)}function bn(){yn=0,mn!==Sn()&&(rr(),window.setTimeout(_n,250))}function _n(){nr(),U(29,1)}function Sn(){return location.href?location.href.replace(location.hash,""):location.href}var kn=[],In=null,En=null,On=null;function Tn(){kn=[],In=null,En=null}function xn(){var t=kn.shift();t&&(In=t,t.task().then((function(){t.id===Ve()&&(t.resolve(),In=null,xn())})).catch((function(e){t.id===Ve()&&(e&&(e.name,e.message,e.stack),In=null,xn())})))}var Mn=!1;function Cn(){Mn=!0,c=s(),Tn(),hn(),sn(),function(){if(mn=Sn(),yn=0,pn(window,"popstate",bn),null===gn)try{gn=history.pushState,history.pushState=function(){gn.apply(this,arguments),jn()&&wn()&&bn()}}catch(t){gn=null}if(null===vn)try{vn=history.replaceState,history.replaceState=function(){vn.apply(this,arguments),jn()&&wn()&&bn()}}catch(t){vn=null}}()}function Nn(){mn=null,yn=0,sn(),hn(),Tn(),c=0,Mn=!1}function jn(){return Mn}function zn(){nr(),q("clarityGemX","restart")}var Pn=null;function An(){Pn=null}function qn(t){Pn={fetchStart:Math.round(t.fetchStart),connectStart:Math.round(t.connectStart),connectEnd:Math.round(t.connectEnd),requestStart:Math.round(t.requestStart),responseStart:Math.round(t.responseStart),responseEnd:Math.round(t.responseEnd),domInteractive:Math.round(t.domInteractive),domComplete:Math.round(t.domComplete),loadEventStart:Math.round(t.loadEventStart),loadEventEnd:Math.round(t.loadEventEnd),redirectCount:Math.round(t.redirectCount),size:t.transferSize?t.transferSize:0,type:t.type,protocol:t.nextHopProtocol,encodedSize:t.encodedBodySize?t.encodedBodySize:0,decodedSize:t.decodedBodySize?t.decodedBodySize:0},function(t){et(this,void 0,void 0,(function(){var e,n;return nt(this,(function(r){return e=l(),n=[e,t],29===t&&(n.push(Pn.fetchStart),n.push(Pn.connectStart),n.push(Pn.connectEnd),n.push(Pn.requestStart),n.push(Pn.responseStart),n.push(Pn.responseEnd),n.push(Pn.domInteractive),n.push(Pn.domComplete),n.push(Pn.loadEventStart),n.push(Pn.loadEventEnd),n.push(Pn.redirectCount),n.push(Pn.size),n.push(Pn.type),n.push(Pn.protocol),n.push(Pn.encodedSize),n.push(Pn.decodedSize),An(),re(n)),[2]}))}))}(29)}var Dn,Rn=0,Xn=1/0,Hn=0,Ln=0,Un=[],Gn=new Map,Bn=function(){return Rn||0},Vn=function(){if(!Un.length)return-1;var t=Math.min(Un.length-1,Math.floor((Bn()-Ln)/50));return Un[t].latency},Yn=function(){Ln=Bn(),Un.length=0,Gn.clear()},Wn=function(t){if(t.interactionId&&!(t.duration<40)){!function(t){"interactionCount"in performance?Rn=performance.interactionCount:t.interactionId&&(Xn=Math.min(Xn,t.interactionId),Hn=Math.max(Hn,t.interactionId),Rn=Hn?(Hn-Xn)/7+1:0)}(t);var e=Un[Un.length-1],n=Gn.get(t.interactionId);if(n||Un.length<10||t.duration>(null==e?void 0:e.latency)){if(n)t.duration>n.latency&&(n.latency=t.duration);else{var r={id:t.interactionId,latency:t.duration};Gn.set(r.id,r),Un.push(r)}Un.sort((function(t,e){return e.latency-t.latency})),Un.length>10&&Un.splice(10).forEach((function(t){return Gn.delete(t.id)}))}}},Jn=["navigation","resource","longtask","first-input","layout-shift","largest-contentful-paint","event"];function Zn(){try{Dn&&Dn.disconnect(),Dn=new PerformanceObserver(dn(Fn));for(var t=0,e=Jn;t<e.length;t++){var n=e[t];PerformanceObserver.supportedEntryTypes.indexOf(n)>=0&&("layout-shift"===n&&L(9,0),Dn.observe({type:n,buffered:!0}))}}catch(t){}}function Fn(t){!function(t){for(var e=(!("visibilityState"in document)||"visible"===document.visibilityState),n=0;n<t.length;n++){var r=t[n];switch(r.entryType){case"navigation":qn(r);break;case"resource":var a=r.name;Se(4,Qn(a)),a!==i.upload&&a!==i.fallback||U(28,r.duration);break;case"longtask":H(7);break;case"first-input":e&&U(10,r.processingStart-r.startTime);break;case"event":e&&"PerformanceEventTiming"in window&&"interactionId"in PerformanceEventTiming.prototype&&(Wn(r),Se(37,Vn().toString()));break;case"layout-shift":e&&!r.hadRecentInput&&L(9,1e3*r.value);break;case"largest-contentful-paint":e&&U(8,r.startTime)}}}(t.getEntries())}var Kn=null;function Qn(t){return Kn||(Kn=document.createElement("a")),Kn.href=t,Kn.host}var $n=[P,P,P],tr=[P,P,P,Object.freeze({__proto__:null,start:function(){An(),function(){navigator&&navigator.connection&&Se(27,navigator.connection.effectiveType),window.PerformanceObserver&&PerformanceObserver.supportedEntryTypes&&("complete"!==document.readyState?pn(window,"load",G.bind(this,Zn,0)):Zn())}()},stop:function(){Dn&&Dn.disconnect(),Dn=null,Yn(),Kn=null,An()}}),P],er=tr;function nr(t){void 0===t&&(t=null),er="gemx"===t.mode?$n:tr,function(){try{var t=navigator&&"globalPrivacyControl"in navigator&&1==navigator.globalPrivacyControl;return!1===Mn&&"undefined"!=typeof Promise&&window.MutationObserver&&document.createTreeWalker&&"now"in Date&&"now"in performance&&"undefined"!=typeof WeakMap&&!t}catch(t){return!1}}()&&(!function(t){if(null===t||Mn)return!1;for(var e in t)e in i&&(i[e]=t[e])}(t),Cn(),At(),er.forEach((function(t){return dn(t.start)()})),null===t&&ur())}function rr(){jn()&&(er.slice().reverse().forEach((function(t){return dn(t.stop)()})),qt(),Nn(),void 0!==or&&(or[ir]=function(){(or[ir].q=or[ir].q||[]).push(arguments),"start"===arguments[0]&&or[ir].q.unshift(or[ir].q.pop())&&ur()}))}var ar=Object.freeze({__proto__:null,consent:Ye,consentv2:We,dlog:Se,event:q,hashText:M,identify:ot,maxMetric:U,measure:dn,metadata:Be,pause:function(){jn()&&(q("clarityGemX","pause"),null===En&&(En=new Promise((function(t){On=t}))))},queue:re,register:z,resume:function(){jn()&&(En&&(On(),En=null,null===In&&xn()),q("clarityGemX","resume"))},schedule:function(t,e){return void 0===e&&(e=0),et(this,void 0,void 0,(function(){var n,r,a;return nt(this,(function(o){for(n=0,r=kn;n<r.length;n++)if(r[n].task===t)return[2];return a=new Promise((function(n){kn[1===e?"unshift":"push"]({task:t,resolve:n,id:Ve()})})),null===In&&null===En&&xn(),[2,a]}))}))},set:at,signal:function(t){jt=t},start:nr,stop:rr,time:l,upgrade:Q,version:d}),or=window,ir="clarityGemX";function ur(){if(void 0!==or){if(or[ir]&&or[ir].v)return console.warn("Error CL001: Multiple Clarity tags detected.");var t=or[ir]&&or[ir].q||[];for(or[ir]=function(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];return ar[t].apply(ar,e)},or[ir].v=d;t.length>0;)or[ir].apply(or,t.shift())}}ur()}();
1
+ !function(){"use strict";var t=Object.freeze({__proto__:null,get flush(){return oe},get inject(){return ie},get queue(){return ae},get start(){return re},get stop(){return ue},get track(){return Ft}}),e=Object.freeze({__proto__:null,get check(){return he},get compute(){return ve},get data(){return Kt},get start(){return pe},get stop(){return me},get trigger(){return ge}}),n=Object.freeze({__proto__:null,get compute(){return Ie},get data(){return ye},get log(){return ke},get reset(){return Ee},get start(){return _e},get stop(){return Se},get updates(){return we}}),r=Object.freeze({__proto__:null,get compute(){return Ae},get config(){return Ne},get consent(){return je},get data(){return Oe},get start(){return xe},get stop(){return Me},get trackConsentv2(){return Pe}}),a=Object.freeze({__proto__:null,get callback(){return Qe},get callbacks(){return De},get clear(){return Ke},get consent(){return Je},get consentv2(){return We},get data(){return qe},get electron(){return Re},get id(){return Ye},get metadata(){return Ve},get save(){return $e},get shortid(){return en},get start(){return Ue},get stop(){return Be}}),o=Object.freeze({__proto__:null,get data(){return on},get envelope(){return sn},get start(){return un},get stop(){return cn}}),i={projectId:null,delay:1e3,lean:!1,lite:!1,track:!0,content:!0,drop:[],mask:[],unmask:[],regions:[],cookies:[],fraud:!0,checksum:[],report:null,upload:null,fallback:null,upgrade:null,action:null,dob:null,delayDom:!1,throttleDom:!0,conversions:!1,includeSubdomains:!0,modules:[],diagnostics:!1,externalSession:!1,userId:null,sessionId:null,mode:"gemx"};function u(t){return window.Zone&&"__symbol__"in window.Zone?window.Zone.__symbol__(t):t}var c=0;function s(){return performance.now()+performance.timeOrigin}function l(t){void 0===t&&(t=null);var e=0===c?s():c,n=t&&t.timeStamp>0?t.timeStamp:performance.now(),r=t&&t.view?t.view.performance.timeOrigin:performance.timeOrigin;return Math.max(Math.round(n+r-e),0)}var d="0.8.90";var f=/\S/gi,p=255,h=!0,g=null,v=null,m=null;function y(t,e,n,r,a){if(void 0===r&&(r=!1),t){if("input"==e&&("checkbox"===a||"radio"===a))return t;switch(n){case 0:return t;case 1:switch(e){case"*T":case"value":case"placeholder":case"click":return function(t){var e=-1,n=0,r=!1,a=!1,o=!1,i=null;I();for(var u=0;u<t.length;u++){var c=t.charCodeAt(u);if(r=r||c>=48&&c<=57,a=a||64===c,o=9===c||10===c||13===c||32===c,0===u||u===t.length-1||o){if(r||a){null===i&&(i=t.split(""));var s=t.substring(e+1,o?u:u+1);s=h&&null!==m?s.match(m)?s:S(s,"▪","▫"):_(s),i.splice(e+1-n,s.length,s),n+=s.length-1}o&&(r=!1,a=!1,e=u)}}return i?i.join(""):t}(t);case"input":case"change":return k(t)}return t;case 2:case 3:switch(e){case"*T":case"data-":return r?b(t):_(t);case"src":case"srcset":case"title":case"alt":case"href":case"xlink:href":return 3===n?(null==t?void 0:t.startsWith("blob:"))?"blob:":"":t;case"value":case"click":case"input":case"change":return k(t);case"placeholder":return _(t)}break;case 4:switch(e){case"*T":case"data-":return r?b(t):_(t);case"value":case"input":case"click":case"change":return Array(5).join("•");case"checksum":return""}break;case 5:switch(e){case"*T":case"data-":return S(t,"▪","▫");case"value":case"input":case"click":case"change":return Array(5).join("•");case"checksum":case"src":case"srcset":case"alt":case"title":return""}}}return t}function w(t,e,n){void 0===e&&(e=!1),void 0===n&&(n=!1);var r=t;if(e)r="".concat("https://").concat("Electron");else{var a=i.drop;if(a&&a.length>0&&t&&t.indexOf("?")>0){var o=t.split("?"),u=o[0],c=o[1];r=u+"?"+c.split("&").map((function(t){return a.some((function(e){return 0===t.indexOf("".concat(e,"="))}))?"".concat(t.split("=")[0],"=").concat("*na*"):t})).join("&")}}return n&&(r=r.substring(0,p)),r}function b(t){var e=t.trim();if(e.length>0){var n=e[0],r=t.indexOf(n),a=t.substr(0,r),o=t.substr(r+e.length);return"".concat(a).concat(e.length.toString(36)).concat(o)}return t}function _(t){return t.replace(f,"•")}function S(t,e,n){return I(),t?t.replace(v,e).replace(g,n):t}function k(t){for(var e=5*(Math.floor(t.length/5)+1),n="",r=0;r<e;r++)n+=r>0&&r%5==0?" ":"•";return n}function I(){if(h&&null===g)try{g=new RegExp("\\p{N}","gu"),v=new RegExp("\\p{L}","gu"),m=new RegExp("\\p{Sc}","gu")}catch(t){h=!1}}var E=[],O=null;function T(){}var x=[];function M(){}function C(){}function N(){}function j(){}function z(){}var P=Object.freeze({__proto__:null,checkDocumentStyles:function(t){},compute:function(){},data:O,event:j,hashText:M,keys:x,log:T,observe:function(){},register:z,reset:function(){},sheetAdoptionState:[],sheetUpdateState:[],start:function(){},state:E,stop:function(){},track:N,trigger:C}),A=null;function q(t,e){zn()&&t&&"string"==typeof t&&t.length<255&&(A=e&&"string"==typeof e&&e.length<255?{key:t,value:e}:{value:t},fe(24))}var D,R=null,X=null;function H(t){t in R||(R[t]=0),t in X||(X[t]=0),R[t]++,X[t]++}function L(t,e){null!==e&&(t in R||(R[t]=0),t in X||(X[t]=0),R[t]+=e,X[t]+=e)}function U(t,e){null!==e&&!1===isNaN(e)&&(t in R||(R[t]=0),(e>R[t]||0===R[t])&&(X[t]=e,R[t]=e))}function G(t,e,n){return window.setTimeout(fn(t),e,n)}function B(t){return window.clearTimeout(t)}var V=0,Y=0,J=null;function W(){J&&B(J),J=G(Z,Y),V=l()}function Z(){var t=l();D={gap:t-V},fe(25),D.gap<3e5?J=G(Z,Y):Cn&&(q("clarityGemX","suspend"),ar(),["mousemove","touchstart"].forEach((function(t){return hn(document,t,Pn)})),["resize","scroll","pageshow"].forEach((function(t){return hn(window,t,Pn)})))}var F=Object.freeze({__proto__:null,get data(){return D},reset:W,start:function(){Y=6e4,V=0},stop:function(){B(J),V=0,Y=0}}),K=null;function Q(t){zn()&&i.lean&&(i.lean=!1,K={key:t},Qe(),$e(),i.upgrade&&i.upgrade(t),fe(3),i.lite)}var $=Object.freeze({__proto__:null,get data(){return K},start:function(){!i.lean&&i.upgrade&&i.upgrade("Config"),K=null},stop:function(){K=null},upgrade:Q}),tt=function(){return tt=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++)for(var a in e=arguments[n])Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t},tt.apply(this,arguments)};function et(t,e,n,r){return new(n||(n=Promise))((function(a,o){function i(t){try{c(r.next(t))}catch(t){o(t)}}function u(t){try{c(r.throw(t))}catch(t){o(t)}}function c(t){var e;t.done?a(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(i,u)}c((r=r.apply(t,e||[])).next())}))}function nt(t,e){var n,r,a,o,i={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return o={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function u(u){return function(c){return function(u){if(n)throw new TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(i=0)),i;)try{if(n=1,r&&(a=2&u[0]?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return i.label++,{value:u[1],done:!1};case 5:i.label++,r=u[1],u=[0];continue;case 7:u=i.ops.pop(),i.trys.pop();continue;default:if(!(a=i.trys,(a=a.length>0&&a[a.length-1])||6!==u[0]&&2!==u[0])){i=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]<a[3])){i.label=u[1];break}if(6===u[0]&&i.label<a[1]){i.label=a[1],a=u;break}if(a&&i.label<a[2]){i.label=a[2],i.ops.push(u);break}a[2]&&i.ops.pop(),i.trys.pop();continue}u=e.call(t,i)}catch(t){u=[6,t],r=0}finally{n=a=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}([u,c])}}}var rt=null;function at(t,e){it(t,"string"==typeof e?[e]:e)}function ot(t,e,n,r){return void 0===e&&(e=null),void 0===n&&(n=null),void 0===r&&(r=null),et(this,void 0,void 0,(function(){var a,o;return nt(this,(function(i){switch(i.label){case 0:return o={},[4,st(t)];case 1:return o.userId=i.sent(),o.userHint=r||((u=t)&&u.length>=5?"".concat(u.substring(0,2)).concat(S(u.substring(2),"*","*")):S(u,"*","*")),it("userId",[(a=o).userId]),it("userHint",[a.userHint]),it("userType",[lt(t)]),e&&(it("sessionId",[e]),a.sessionId=e),n&&(it("pageId",[n]),a.pageId=n),[2,a]}var u}))}))}function it(t,e){if(zn()&&t&&e&&"string"==typeof t&&t.length<255){for(var n=(t in rt?rt[t]:[]),r=0;r<e.length;r++)"string"==typeof e[r]&&e[r].length<255&&n.push(e[r]);rt[t]=n}}function ut(){fe(34)}function ct(){rt={}}function st(t){return et(this,void 0,void 0,(function(){var e;return nt(this,(function(n){switch(n.label){case 0:return n.trys.push([0,4,,5]),crypto&&t?[4,crypto.subtle.digest("SHA-256",(new TextEncoder).encode(t))]:[3,2];case 1:return e=n.sent(),[2,Array.prototype.map.call(new Uint8Array(e),(function(t){return("00"+t.toString(16)).slice(-2)})).join("")];case 2:return[2,""];case 3:return[3,5];case 4:return n.sent(),[2,""];case 5:return[2]}}))}))}function lt(t){return t&&t.indexOf("@")>0?"email":"string"}var dt=Object.freeze({__proto__:null,compute:ut,get data(){return rt},identify:ot,reset:ct,set:at,start:function(){ct()},stop:function(){ct()}}),ft="CompressionStream"in window;function pt(t){return et(this,void 0,void 0,(function(){var e,n;return nt(this,(function(r){switch(r.label){case 0:return r.trys.push([0,3,,4]),ft?(e=new ReadableStream({start:function(e){return et(this,void 0,void 0,(function(){return nt(this,(function(n){return e.enqueue(t),e.close(),[2]}))}))}}).pipeThrough(new TextEncoderStream).pipeThrough(new window.CompressionStream("gzip")),n=Uint8Array.bind,[4,ht(e)]):[3,2];case 1:return[2,new(n.apply(Uint8Array,[void 0,r.sent()]))];case 2:return[3,4];case 3:return r.sent(),[3,4];case 4:return[2,null]}}))}))}function ht(t){return et(this,void 0,void 0,(function(){var e,n,r,a,o;return nt(this,(function(i){switch(i.label){case 0:e=t.getReader(),n=[],r=!1,a=[],i.label=1;case 1:return r?[3,3]:[4,e.read()];case 2:return o=i.sent(),r=o.done,a=o.value,r?[2,n]:(n.push.apply(n,a),[3,1]);case 3:return[2,n]}}))}))}function gt(t,e){try{return!!t[e]}catch(t){return!1}}function vt(t){try{var e=decodeURIComponent(t);return[e!=t,e]}catch(t){}return[!1,t]}var mt=null,yt="^";function wt(t,e){var n;if(void 0===e&&(e=!1),gt(document,"cookie")){var r=document.cookie.split(";");if(r)for(var a=0;a<r.length;a++){var o=r[a].split("=");if(o.length>1&&o[0]&&o[0].trim()===t){for(var i=vt(o[1]),u=i[0],c=i[1];u;)u=(n=vt(c))[0],c=n[1];return e?c.endsWith("".concat("~","1"))?c.substring(0,c.length-2):null:c}}}return null}function bt(t,e,n){if((i.track||""==e)&&(navigator&&navigator.cookieEnabled||gt(document,"cookie"))){var r=function(t){return encodeURIComponent(t)}(e),a=new Date;a.setDate(a.getDate()+n);var o=a?"expires="+a.toUTCString():"",u="".concat(t,"=").concat(r).concat(";").concat(o).concat(";path=/");try{if(null===mt){for(var c=location.hostname?location.hostname.split("."):[],s=c.length-1;s>=0;s--)if(mt=".".concat(c[s]).concat(mt||""),s<c.length-1&&(document.cookie="".concat(u).concat(";").concat("domain=").concat(mt),wt(t)===e))return;mt=""}}catch(t){mt=""}document.cookie=mt?"".concat(u).concat(";").concat("domain=").concat(mt):u}}var _t=Object.freeze({__proto__:null,COOKIE_SEP:yt,getCookie:wt,setCookie:bt,start:function(){mt=null},stop:function(){mt=null}}),St={debug:!1,excludeClassNames:[],ignoreMutationClassNames:[],discoverTrigger:null},kt=tt({},St);function It(){return kt.debug}var Et=Object.freeze({__proto__:null,get:function(){return kt},isDebug:It,set:function(t){kt=tt(tt({},kt),t)},start:function(){var t,e,n,r,a,o,i,u;kt={debug:new URLSearchParams(window.location.search).has("gemx_debug")||null!==(e=null===(t=null===window||void 0===window?void 0:window.GemXHeatmap)||void 0===t?void 0:t.debug)&&void 0!==e&&e,excludeClassNames:null!==(r=null===(n=null===window||void 0===window?void 0:window.GemXHeatmap)||void 0===n?void 0:n.excludeClassNames)&&void 0!==r?r:[],ignoreMutationClassNames:null!==(o=null===(a=null===window||void 0===window?void 0:window.GemXHeatmap)||void 0===a?void 0:a.ignoreMutationClassNames)&&void 0!==o?o:[],discoverTrigger:null!==(u=null===(i=null===window||void 0===window?void 0:window.GemXHeatmap)||void 0===i?void 0:i.discoverTrigger)&&void 0!==u?u:null}},stop:function(){kt=tt({},St)}}),Ot=[],Tt=0,xt=!1,Mt=0,Ct=null;function Nt(){return xt}function jt(t,e){Ot.push(t),Tt+=e,Mt>0&&Tt>=Mt&&Ct&&Ct()}var zt=null;function Pt(t){try{if(!zt)return;var e=function(t){try{return JSON.parse(t)}catch(t){return[]}}(t);e.forEach((function(t){zt(t)}))}catch(t){}}var At=[Et,Object.freeze({__proto__:null,config:function(t,e){return Mt=null!=t?t:0,Ct=null!=e?e:null,!0},drain:function(){xt=!1;var t=Ot;return Ot=[],Tt=0,t},getBytes:function(){return Tt},hold:jt,isActive:Nt,start:function(){Ot=[],Tt=0,xt=!0},stop:function(){Ot=[],Tt=0,xt=!1,Mt=0,Ct=null}}),P,n,dt,e,P,_t,r,a,o,t,F,$,P];function qt(){R={},X={},H(5),At.forEach((function(t){return fn(t.start)()}))}function Dt(){At.slice().reverse().forEach((function(t){return fn(t.stop)()})),R={},X={}}function Rt(){ve(),Ae(),"gemx"!==i.mode&&(ut(),Ie(),fe(0))}function Xt(t,e,n,r){return"href"===t&&"LINK"===r?"".concat(t,"=").concat(e):"".concat(t,"=").concat(y(e,0===t.indexOf("data-")?"data-":t,n))}var Ht=[],Lt=1,Ut=null;function Gt(){Ht=[],function(t){var e=[t];for(;e.length>0;){for(var n=null,r=null,a=null,o=e.shift(),i=o.firstChild,u=o.parentElement?o.parentElement:o.parentNode?o.parentNode:null;i;)e.push(i),i=i.nextSibling;switch(o.nodeType){case Node.DOCUMENT_TYPE_NODE:var c=o;r="*D",n={name:c.name,publicId:c.publicId,systemId:c.systemId};break;case Node.TEXT_NODE:a=o.nodeValue,r=Ut.get(u)?"*T":r;break;case Node.ELEMENT_NODE:var s=o;n=Bt(s),r=["NOSCRIPT","SCRIPT","STYLE"].indexOf(s.tagName)<0?s.tagName:r}Vt(o,u,{tag:r,attributes:n,value:a})}}(document),function(t){et(this,void 0,void 0,(function(){var e,n,r,a,o,i,u,c,s,d,f,p,h;return nt(this,(function(g){switch(e=l(),n=[e,t],t){case 8:r=O,n.push(r.width),n.push(r.height),r.width,r.height,ae(n);break;case 43:if((a=Ht).length>0){for(o=0,i=a;o<i.length;o++)for(u=i[o],c=u.metadata.privacy,s=u.data,d=0,f=["tag","attributes","value"];d<f.length;d++)if(s[p=f[d]])switch(p){case"tag":n.push(u.id),u.parent&&n.push(u.parent),u.previous&&n.push(u.previous),n.push(s[p]);break;case"attributes":for(h in s[p])void 0!==s[p][h]&&n.push(Xt(h,s[p][h],c,s.tag));break;case"value":n.push(y(s[p],s.tag,c))}ae(function(t){for(var e=[],n={},r=0,a=null,o=0;o<t.length;o++)if("string"==typeof t[o]){var i=t[o],u=n[i]||-1;u>=0?a?a.push(u):(a=[u],e.push(a),r++):(a=null,e.push(i),n[i]=r++)}else a=null,e.push(t[o]),r++;return e}(n),!0)}}return[2]}))}))}(43)}function Bt(t){var e={},n=t.attributes;if(n&&n.length>0)for(var r=0;r<n.length;r++)e[n[r].name]=n[r].value;return e}function Vt(t,e,n){if(t&&n&&n.tag){var r=function(t){return null===t?null:Ut.has(t)?Ut.get(t):(Ut.set(t,Lt),Lt++)}(t),a=e?Ut.get(e):null,o=t.previousSibling?Ut.get(t.previousSibling):null;Ht.push({id:r,parent:a,previous:o,children:[],data:n,selector:null,hash:null,region:null,metadata:{active:!0,suspend:!1,privacy:5,position:null,fraud:null,size:null}})}}var Yt,Jt,Wt,Zt,Ft,Kt,Qt=0,$t=0,te=null,ee=0,ne=!1;function re(){Zt=!0,Qt=0,$t=0,ne=!1,ee=0,Yt=[],Jt=[],Wt={},Ft=null}function ae(t,e){if(void 0===e&&(e=!0),Zt){var n=l(),r=t.length>1?t[1]:null,a=JSON.stringify(t);switch(i.lean?!ne&&$t+a.length>10485760&&(ne=!0):ne=!1,r){case 5:if(ne)break;if(Nt()){jt(t,a.length);break}Qt+=a.length;case 37:case 6:case 43:case 45:case 46:case 44:case 51:if(ne)break;Nt()&&jt(t,a.length),$t+=a.length,Yt.push(a);break;default:Jt.push(a)}H(25);var o=function(){var t=!1===i.lean&&Qt>0?100:on.sequence*i.delay;return"string"==typeof i.upload?Math.max(Math.min(t,3e4),100):i.delay}();n-ee>2*o&&(B(te),te=null),e&&null===te&&(25!==r&&W(),te=G(ce,o),ee=n,he($t))}}function oe(t){Zt&&(B(te),te=null,ce(!1,t))}function ie(t){for(var e=0,n=t;e<n.length;e++){var r=n[e],a=JSON.stringify(r);Qt+=a.length,$t+=a.length,Yt.push(a)}}function ue(){B(te),ce(!0),Qt=0,$t=0,ne=!1,ee=0,Yt=[],Jt=[],Wt={},Ft=null,Zt=!1}function ce(t,e){return void 0===t&&(t=!1),et(this,void 0,void 0,(function(){var n,r,a,o,u,c,s,l,d,f,p,h,g,v,m,y,w;return nt(this,(function(b){switch(b.label){case 0:if(!Zt)return[2];if(te=null,(n=("gemx-snapshot"===e||!1===i.lean)&&$t>0&&($t<1048576||on.sequence>0))&&U(1,1),Rt(),r=!0===t,!on)return[2];if(a=It(),!e&&a){for(o=[[9,"click"],[10,"scroll"]],u=new Set(Jt.map((function(t){return JSON.parse(t)[1]}))),c=[],s=0,l=o;s<l.length;s++)f=(d=l[s])[0],p=d[1],u.has(f)&&c.push(p);e=c.length>0?c.join("-"):void 0}return h=JSON.stringify(sn(r)),g="[".concat(Jt.join(),"]"),v=n?"[".concat(Yt.join(),"]"):"",r&&v.length>0&&h.length+g.length+v.length>65536&&(v=""),m=function(t){return t.p.length>0?'{"e":'.concat(t.e,',"a":').concat(t.a,',"p":').concat(t.p,"}"):'{"e":'.concat(t.e,',"a":').concat(t.a,"}")}({e:h,a:g,p:v}),r?(w=null,[3,3]):[3,1];case 1:return[4,pt(m)];case 2:w=b.sent(),b.label=3;case 3:return L(2,(y=w)?y.length:m.length),se(m,y,on.sequence,r,e),Jt=[],n&&(Yt=[],$t=0,Qt=0,ne=!1),[2]}}))}))}function se(t,e,n,r,a){if(void 0===r&&(r=!1),"string"==typeof i.upload){var o=i.upload,u=!1;if(r&&navigator&&navigator.sendBeacon)try{(u=navigator.sendBeacon.bind(navigator)(o,t))&&de(n)}catch(t){}if(!1===u){n in Wt?Wt[n].attempts++:Wt[n]={data:t,attempts:1};var c=new XMLHttpRequest;c.open("POST",o,!0),c.timeout=15e3,c.ontimeout=function(){dn(new Error("".concat("Timeout"," : ").concat(o)))},null!==n&&(c.onreadystatechange=function(){fn(le)(c,n)}),c.withCredentials=!0,e?(c.setRequestHeader("Accept","application/x-clarity-gzip"),c.send(e)):c.send(t)}}else if(i.upload){(0,i.upload)(t,a),de(n)}}function le(t,e){var n=Wt[e];t&&4===t.readyState&&n&&((t.status<200||t.status>208)&&n.attempts<=1?t.status>=400&&t.status<500?ge(6):(0===t.status&&(i.upload=i.fallback?i.fallback:i.upload),Ft={sequence:e,attempts:n.attempts,status:t.status},fe(2),se(n.data,null,e)):(Ft={sequence:e,attempts:n.attempts,status:t.status},n.attempts>1&&fe(2),200===t.status&&t.responseText&&function(t){for(var e=t&&t.length>0?t.split("\n"):[],n=0,r=e;n<r.length;n++){var a=r[n],o=a&&a.length>0?a.split(/ (.*)/):[""];switch(o[0]){case"END":ge(6);break;case"UPGRADE":Q("Auto");break;case"ACTION":i.action&&o.length>1&&i.action(o[1]);break;case"EXTRACT":case"MODULE":o.length>1&&o[1];break;case"SIGNAL":o.length>1&&Pt(o[1]);break;case"SNAPSHOT":i.lean=!1,Gt()}}}(t.responseText),0===t.status&&(se(n.data,null,e,!0),ge(3)),t.status>=200&&t.status<=208&&de(e),delete Wt[e]))}function de(t){1===t&&($e(),Qe())}function fe(t){var e=[l(),t];switch(t){case 4:var n=E;n&&n.data&&((e=[n.time,n.event]).push(n.data.visible),e.push(n.data.docWidth),e.push(n.data.docHeight),e.push(n.data.screenWidth),e.push(n.data.screenHeight),e.push(n.data.scrollX),e.push(n.data.scrollY),e.push(n.data.pointerX),e.push(n.data.pointerY),e.push(n.data.activityTime),e.push(n.data.scrollTime),e.push(n.data.pointerTime),e.push(n.data.moveX),e.push(n.data.moveY),e.push(n.data.moveTime),e.push(n.data.downX),e.push(n.data.downY),e.push(n.data.downTime),e.push(n.data.upX),e.push(n.data.upY),e.push(n.data.upTime),e.push(n.data.pointerPrevX),e.push(n.data.pointerPrevY),e.push(n.data.pointerPrevTime),e.push(n.data.modules),ae(e,!1));break;case 25:e.push(D.gap),ae(e);break;case 35:e.push(Kt.check),ae(e,!1);break;case 3:e.push(K.key),ae(e);break;case 2:e.push(Ft.sequence),e.push(Ft.attempts),e.push(Ft.status),ae(e,!1);break;case 24:A.key&&e.push(A.key),e.push(A.value),ae(e);break;case 34:var r=Object.keys(rt);if(r.length>0){for(var a=0,o=r;a<o.length;a++){var i=o[a];e.push(i),e.push(rt[i])}ct(),ae(e,!1)}break;case 0:var u=Object.keys(X);if(u.length>0){for(var c=0,s=u;c<s.length;c++){var d=s[c],f=parseInt(d,10);e.push(f),e.push(Math.round(X[d]))}X={},ae(e,!1)}break;case 1:var p=Object.keys(we);if(p.length>0){for(var h=0,g=p;h<g.length;h++){var v=g[h];f=parseInt(v,10);e.push(f),e.push(we[v])}Ee(),ae(e,!1)}break;case 36:var m=Object.keys(O);if(m.length>0){for(var y=0,w=m;y<w.length;y++){var b=w[y];f=parseInt(b,10);e.push(f),e.push([].concat.apply([],O[b]))}ae(e,!1)}break;case 40:x.forEach((function(t){e.push(t);var n=[];for(var r in O[t]){var a=parseInt(r,10);n.push(a),n.push(O[t][r])}e.push(n)})),ae(e,!1);break;case 47:e.push(Oe.source),e.push(Oe.ad_Storage),e.push(Oe.analytics_Storage),ae(e,!1)}}function pe(){Kt={check:0}}function he(t){if(0===Kt.check){var e=Kt.check;e=on.sequence>=128?1:e,e=on.pageNum>=128?7:e,e=l()>72e5?2:e,(e=t>10485760?2:e)!==Kt.check&&ge(e)}}function ge(t){Kt.check=t,5!==t&&(Ke(),ar())}function ve(){0!==Kt.check&&fe(35)}function me(){Kt=null}var ye=null,we=null,be=!1;function _e(){ye={},we={},be=!1}function Se(){ye={},we={},be=!1}function ke(t,e){if(e&&(e="".concat(e),t in ye||(ye[t]=[]),ye[t].indexOf(e)<0)){if(ye[t].length>128)return void(be||(be=!0,ge(5)));ye[t].push(e),t in we||(we[t]=[]),we[t].push(e)}}function Ie(){fe(1)}function Ee(){we={},be=!1}var Oe=null,Te=!0;function xe(){var t,e=null===(t=window.google_tag_data)||void 0===t?void 0:t.ics;Te=!0,(null==e?void 0:e.addListener)&&e.addListener(["ad_storage","analytics_storage"],Ce)}function Me(){Te=!0}function Ce(){var t,e=null===(t=window.google_tag_data)||void 0===t?void 0:t.ics;if(null==e?void 0:e.getConsentState)try{var n=e.getConsentState("analytics_storage");We(function(t){var e={source:2,ad_Storage:1===t.ad_Storage?"granted":"denied",analytics_Storage:1===t.analytics_Storage?"granted":"denied"};return e}({ad_Storage:e.getConsentState("ad_storage"),analytics_Storage:n}))}catch(t){return}}function Ne(t){ze(t.analytics_Storage?1:0),Oe=t}function je(){ze(2)}function ze(t){ke(36,t.toString())}function Pe(t){Oe=t,fe(47)}function Ae(){var t;if(Te&&(fe(47),Te=!1,!i.track)){var e=null===(t=window.google_tag_data)||void 0===t?void 0:t.ics;(null==e?void 0:e.usedUpdate)&&Ce()}}var qe=null,De=[],Re=0,Xe=null,He=!1,Le={source:7,ad_Storage:"denied",analytics_Storage:"denied"};function Ue(){var t,e,n,r=navigator&&"userAgent"in navigator?navigator.userAgent:"",a=null!==(n="undefined"!=typeof Intl&&(null===(e=null===(t=null===Intl||void 0===Intl?void 0:Intl.DateTimeFormat())||void 0===t?void 0:t.resolvedOptions())||void 0===e?void 0:e.timeZone))&&void 0!==n?n:"",o=(new Date).getTimezoneOffset().toString(),u=window.location.ancestorOrigins?Array.from(window.location.ancestorOrigins).toString():"",c=document&&document.title?document.title:"";Re=r.indexOf("Electron")>0?1:0;var s=function(){var t={session:en(),ts:Math.round(Date.now()),count:1,upgrade:null,upload:""},e=wt("_clsk",!i.includeSubdomains);if(e){var n=e.includes("^")?e.split("^"):e.split("|");n.length>=5&&t.ts-nn(n[1])<18e5&&(t.session=n[0],t.count=nn(n[2])+1,t.upgrade=nn(n[3]),t.upload=n.length>=6?"".concat("https://").concat(n[5],"/").concat(n[4]):"".concat("https://").concat(n[4]))}return t}(),l=rn(),d=i.projectId||function(t,e){void 0===e&&(e=null);for(var n,r=5381,a=r,o=0;o<t.length;o+=2)r=(r<<5)+r^t.charCodeAt(o),o+1<t.length&&(a=(a<<5)+a^t.charCodeAt(o+1));return n=Math.abs(r+11579*a),(e?n%Math.pow(2,e):n).toString(36)}(location.host),f=i.externalSession&&i.userId?i.userId:l.id,p=i.externalSession&&i.sessionId?i.sessionId:s.session;qe={projectId:d,userId:f,sessionId:p,pageNum:s.count},i.lean=i.track&&null!==s.upgrade?0===s.upgrade:i.lean,i.upload=i.track&&"string"==typeof i.upload&&s.upload&&s.upload.length>"https://".length?s.upload:i.upload,ke(0,r),ke(3,c),ke(1,w(location.href,!!Re)),ke(2,document.referrer),ke(15,function(){var t=en();if(i.track&&gt(window,"sessionStorage")){var e=sessionStorage.getItem("_cltk");t=e||t,sessionStorage.setItem("_cltk",t)}return t}()),ke(16,document.documentElement.lang),ke(17,document.dir),ke(26,"".concat(window.devicePixelRatio)),ke(28,l.dob.toString()),ke(29,l.version.toString()),ke(33,u),ke(34,a),ke(35,o),U(0,s.ts),U(1,0),U(35,Re);var h,g=null===window||void 0===window?void 0:window.Zone;g&&"__symbol__"in g&&U(39,1),navigator&&(ke(9,navigator.language),U(33,navigator.hardwareConcurrency),U(32,navigator.maxTouchPoints),U(34,Math.round(navigator.deviceMemory)),(h=navigator.userAgentData)&&h.getHighEntropyValues?h.getHighEntropyValues(["model","platform","platformVersion","uaFullVersion"]).then((function(t){var e;ke(22,t.platform),ke(23,t.platformVersion),null===(e=t.brands)||void 0===e||e.forEach((function(t){ke(24,t.name+"~"+t.version)})),ke(25,t.model),U(27,t.mobile?1:0)})):ke(22,navigator.platform)),screen&&(U(14,Math.round(screen.width)),U(15,Math.round(screen.height)),U(16,Math.round(screen.colorDepth))),null===Xe&&(Xe={source:l.consent?6:0,ad_Storage:i.track?"granted":"denied",analytics_Storage:i.track?"granted":"denied"}),Ge(),Ne(Ze(Xe)),i.externalSession||tn(l)}function Ge(){if(!He&&"granted"===(null==Xe?void 0:Xe.analytics_Storage)&&"granted"===(null==Xe?void 0:Xe.ad_Storage)){for(var t=0,e=i.cookies;t<e.length;t++){var n=e[t],r=wt(n);r&&at(n,r)}He=!0}}function Be(){qe=null,He=!1,De.forEach((function(t){t.called=!1}))}function Ve(t,e,n,r){void 0===e&&(e=!0),void 0===n&&(n=!1),void 0===r&&(r=!1);var a=i.lean?0:1,o=!1;qe&&(a||!1===e)&&(t(qe,!i.lean,r?Xe:void 0),o=!0),!n&&o||De.push({callback:t,wait:e,recall:n,called:o,consentInfo:r})}function Ye(){return qe?[qe.userId,qe.sessionId,qe.pageNum].join("."):""}function Je(t){void 0===t&&(t=!0),We(t?{source:4,ad_Storage:"granted",analytics_Storage:"granted"}:{source:4,ad_Storage:"denied",analytics_Storage:"denied"})}function We(t,e){var n;if(void 0===t&&(t=Le),void 0===e&&(e=5),zn()){var r={source:null!==(n=t.source)&&void 0!==n?n:e,ad_Storage:Fe(t.ad_Storage,null==Xe?void 0:Xe.ad_Storage),analytics_Storage:Fe(t.analytics_Storage,null==Xe?void 0:Xe.analytics_Storage)};if(Xe&&r.ad_Storage===Xe.ad_Storage&&r.analytics_Storage===Xe.analytics_Storage)return Xe.source=r.source,Pe(Ze(Xe)),void je();Xe=r,Qe(!0);var a=Ze(Xe);if(!a.analytics_Storage&&i.track)return i.track=!1,Ke(!0),ar(),void window.setTimeout(rr,250);zn()&&a.analytics_Storage&&(i.track=!0,tn(rn(),1),$e()),Ge(),Pe(a),je()}}function Ze(t){var e;return{source:null!==(e=t.source)&&void 0!==e?e:255,ad_Storage:"granted"===t.ad_Storage?1:0,analytics_Storage:"granted"===t.analytics_Storage?1:0}}function Fe(t,e){return void 0===e&&(e="denied"),"string"==typeof t?t.toLowerCase():e}function Ke(t){void 0===t&&(t=!1),bt("_clsk","",0),t&&bt("_clck","",0)}function Qe(t){void 0===t&&(t=!1),function(t,e){void 0===e&&(e=!1);if(De.length>0)for(var n=0;n<De.length;n++){var r=De[n];r.callback&&(!r.called&&!e||r.consentInfo&&e)&&(!r.wait||t)&&(r.callback(qe,!i.lean,r.consentInfo?Xe:void 0),r.called=!0,r.recall||(De.splice(n,1),n--))}}(i.lean?0:1,t)}function $e(){if(qe&&i.track&&!i.externalSession){var t=Math.round(Date.now()),e=i.upload&&"string"==typeof i.upload?i.upload.replace("https://",""):"",n=i.lean?0:1;bt("_clsk",[qe.sessionId,t,qe.pageNum,n,e].join(yt),1)}}function tn(t,e){void 0===e&&(e=null),e=null===e?t.consent:e;var n=Math.ceil((Date.now()+31536e6)/864e5),r=0===t.dob?null===i.dob?0:i.dob:t.dob;(null===t.expiry||Math.abs(n-t.expiry)>=1||t.consent!==e||t.dob!==r)&&bt("_clck",[qe.userId,2,n.toString(36),e,r].join(yt),365)}function en(){var t=Math.floor(Math.random()*Math.pow(2,32));return window&&window.crypto&&window.crypto.getRandomValues&&Uint32Array&&(t=window.crypto.getRandomValues(new Uint32Array(1))[0]),t.toString(36)}function nn(t,e){return void 0===e&&(e=10),parseInt(t,e)}function rn(){var t={id:en(),version:0,expiry:null,consent:0,dob:0},e=wt("_clck",!i.includeSubdomains);if(e&&e.length>0){var n=e.includes("^")?e.split("^"):e.split("|");n.length>1&&(t.version=nn(n[1])),n.length>2&&(t.expiry=nn(n[2],36)),n.length>3&&1===nn(n[3])&&(t.consent=1),n.length>4&&nn(n[1])>1&&(t.dob=nn(n[4])),i.track=i.track||1===t.consent,t.id=i.track?n[0]:t.id}return t}var an,on=null;function un(){var t=qe;on={version:d,sequence:0,start:0,duration:0,projectId:t.projectId,userId:t.userId,sessionId:t.sessionId,pageNum:t.pageNum,upload:0,end:0,applicationPlatform:0,url:""}}function cn(){on=null}function sn(t){return on.start=on.start+on.duration,on.duration=l()-on.start,on.sequence++,on.upload=t&&"sendBeacon"in navigator?1:0,on.end=t?1:0,on.applicationPlatform=0,on.url=w(location.href,!1,!0),[on.version,on.sequence,on.start,on.duration,on.projectId,on.userId,on.sessionId,on.pageNum,on.upload,on.end,on.applicationPlatform,on.url]}function ln(){an=[]}function dn(t){if(an&&-1===an.indexOf(t.message)){var e=i.report;if(e&&e.length>0&&on){var n={v:on.version,p:on.projectId,u:on.userId,s:on.sessionId,n:on.pageNum};t.message&&(n.m=t.message),t.stack&&(n.e=t.stack);var r=new XMLHttpRequest;r.open("POST",e,!0),r.send(JSON.stringify(n)),an.push(t.message)}}return t}function fn(t){return function(){var e=performance.now();try{t.apply(this,arguments)}catch(t){throw dn(t)}var n=performance.now()-e;L(4,n),n>30&&(H(7),U(6,n),t.dn&&"".concat(t.dn,"-").concat(n))}}var pn=new Map;function hn(t,e,n,r,a){void 0===r&&(r=!1),void 0===a&&(a=!0),n=fn(n);try{t[u("addEventListener")](e,n,{capture:r,passive:a}),function(t){return pn.has(t)}(t)||pn.set(t,[]),pn.get(t).push({event:e,listener:n,options:{capture:r,passive:a}})}catch(t){}}function gn(){pn.forEach((function(t,e){!function(t,e){t.forEach((function(t){try{e[u("removeEventListener")](t.event,t.listener,{capture:t.options.capture,passive:t.options.passive})}catch(t){}})),pn.delete(e)}(t,e)})),pn=new Map}var vn=null,mn=null,yn=null,wn=0;function bn(){return!(wn++>20)}function _n(){wn=0,yn!==kn()&&(ar(),window.setTimeout(Sn,250))}function Sn(){rr(),U(29,1)}function kn(){return location.href?location.href.replace(location.hash,""):location.href}var In=[],En=null,On=null,Tn=null;function xn(){In=[],En=null,On=null}function Mn(){var t=In.shift();t&&(En=t,t.task().then((function(){t.id===Ye()&&(t.resolve(),En=null,Mn())})).catch((function(e){t.id===Ye()&&(e&&(e.name,e.message,e.stack),En=null,Mn())})))}var Cn=!1;function Nn(){Cn=!0,c=s(),xn(),gn(),ln(),function(){if(yn=kn(),wn=0,hn(window,"popstate",_n),null===vn)try{vn=history.pushState,history.pushState=function(){vn.apply(this,arguments),zn()&&bn()&&_n()}}catch(t){vn=null}if(null===mn)try{mn=history.replaceState,history.replaceState=function(){mn.apply(this,arguments),zn()&&bn()&&_n()}}catch(t){mn=null}}()}function jn(){yn=null,wn=0,ln(),gn(),xn(),c=0,Cn=!1}function zn(){return Cn}function Pn(){rr(),q("clarityGemX","restart")}var An=null;function qn(){An=null}function Dn(t){An={fetchStart:Math.round(t.fetchStart),connectStart:Math.round(t.connectStart),connectEnd:Math.round(t.connectEnd),requestStart:Math.round(t.requestStart),responseStart:Math.round(t.responseStart),responseEnd:Math.round(t.responseEnd),domInteractive:Math.round(t.domInteractive),domComplete:Math.round(t.domComplete),loadEventStart:Math.round(t.loadEventStart),loadEventEnd:Math.round(t.loadEventEnd),redirectCount:Math.round(t.redirectCount),size:t.transferSize?t.transferSize:0,type:t.type,protocol:t.nextHopProtocol,encodedSize:t.encodedBodySize?t.encodedBodySize:0,decodedSize:t.decodedBodySize?t.decodedBodySize:0},function(t){et(this,void 0,void 0,(function(){var e,n;return nt(this,(function(r){return e=l(),n=[e,t],29===t&&(n.push(An.fetchStart),n.push(An.connectStart),n.push(An.connectEnd),n.push(An.requestStart),n.push(An.responseStart),n.push(An.responseEnd),n.push(An.domInteractive),n.push(An.domComplete),n.push(An.loadEventStart),n.push(An.loadEventEnd),n.push(An.redirectCount),n.push(An.size),n.push(An.type),n.push(An.protocol),n.push(An.encodedSize),n.push(An.decodedSize),qn(),ae(n)),[2]}))}))}(29)}var Rn,Xn=0,Hn=1/0,Ln=0,Un=0,Gn=[],Bn=new Map,Vn=function(){return Xn||0},Yn=function(){if(!Gn.length)return-1;var t=Math.min(Gn.length-1,Math.floor((Vn()-Un)/50));return Gn[t].latency},Jn=function(){Un=Vn(),Gn.length=0,Bn.clear()},Wn=function(t){if(t.interactionId&&!(t.duration<40)){!function(t){"interactionCount"in performance?Xn=performance.interactionCount:t.interactionId&&(Hn=Math.min(Hn,t.interactionId),Ln=Math.max(Ln,t.interactionId),Xn=Ln?(Ln-Hn)/7+1:0)}(t);var e=Gn[Gn.length-1],n=Bn.get(t.interactionId);if(n||Gn.length<10||t.duration>(null==e?void 0:e.latency)){if(n)t.duration>n.latency&&(n.latency=t.duration);else{var r={id:t.interactionId,latency:t.duration};Bn.set(r.id,r),Gn.push(r)}Gn.sort((function(t,e){return e.latency-t.latency})),Gn.length>10&&Gn.splice(10).forEach((function(t){return Bn.delete(t.id)}))}}},Zn=["navigation","resource","longtask","first-input","layout-shift","largest-contentful-paint","event"];function Fn(){try{Rn&&Rn.disconnect(),Rn=new PerformanceObserver(fn(Kn));for(var t=0,e=Zn;t<e.length;t++){var n=e[t];PerformanceObserver.supportedEntryTypes.indexOf(n)>=0&&("layout-shift"===n&&L(9,0),Rn.observe({type:n,buffered:!0}))}}catch(t){}}function Kn(t){!function(t){for(var e=(!("visibilityState"in document)||"visible"===document.visibilityState),n=0;n<t.length;n++){var r=t[n];switch(r.entryType){case"navigation":Dn(r);break;case"resource":var a=r.name;ke(4,$n(a)),a!==i.upload&&a!==i.fallback||U(28,r.duration);break;case"longtask":H(7);break;case"first-input":e&&U(10,r.processingStart-r.startTime);break;case"event":e&&"PerformanceEventTiming"in window&&"interactionId"in PerformanceEventTiming.prototype&&(Wn(r),ke(37,Yn().toString()));break;case"layout-shift":e&&!r.hadRecentInput&&L(9,1e3*r.value);break;case"largest-contentful-paint":e&&U(8,r.startTime)}}}(t.getEntries())}var Qn=null;function $n(t){return Qn||(Qn=document.createElement("a")),Qn.href=t,Qn.host}var tr=[P,P,P],er=[P,P,P,Object.freeze({__proto__:null,start:function(){qn(),function(){navigator&&navigator.connection&&ke(27,navigator.connection.effectiveType),window.PerformanceObserver&&PerformanceObserver.supportedEntryTypes&&("complete"!==document.readyState?hn(window,"load",G.bind(this,Fn,0)):Fn())}()},stop:function(){Rn&&Rn.disconnect(),Rn=null,Jn(),Qn=null,qn()}}),P],nr=er;function rr(t){void 0===t&&(t=null),nr="gemx"===(null==t?void 0:t.mode)?tr:er,function(){try{var t=navigator&&"globalPrivacyControl"in navigator&&1==navigator.globalPrivacyControl;return!1===Cn&&"undefined"!=typeof Promise&&window.MutationObserver&&document.createTreeWalker&&"now"in Date&&"now"in performance&&"undefined"!=typeof WeakMap&&!t}catch(t){return!1}}()&&(!function(t){if(null===t||Cn)return!1;for(var e in t)e in i&&(i[e]=t[e])}(t),Nn(),qt(),nr.forEach((function(t){return fn(t.start)()})),null===t&&cr())}function ar(){zn()&&(nr.slice().reverse().forEach((function(t){return fn(t.stop)()})),Dt(),jn(),void 0!==ir&&(ir[ur]=function(){(ir[ur].q=ir[ur].q||[]).push(arguments),"start"===arguments[0]&&ir[ur].q.unshift(ir[ur].q.pop())&&cr()}))}var or=Object.freeze({__proto__:null,consent:Je,consentv2:We,dlog:ke,event:q,hashText:M,identify:ot,maxMetric:U,measure:fn,metadata:Ve,pause:function(){zn()&&(q("clarityGemX","pause"),null===On&&(On=new Promise((function(t){Tn=t}))))},queue:ae,register:z,resume:function(){zn()&&(On&&(Tn(),On=null,null===En&&Mn()),q("clarityGemX","resume"))},schedule:function(t,e){return void 0===e&&(e=0),et(this,void 0,void 0,(function(){var n,r,a;return nt(this,(function(o){for(n=0,r=In;n<r.length;n++)if(r[n].task===t)return[2];return a=new Promise((function(n){In[1===e?"unshift":"push"]({task:t,resolve:n,id:Ye()})})),null===En&&null===On&&Mn(),[2,a]}))}))},set:at,signal:function(t){zt=t},start:rr,stop:ar,time:l,upgrade:Q,version:d}),ir=window,ur="clarityGemX";function cr(){if(void 0!==ir){if(ir[ur]&&ir[ur].v)return console.warn("Error CL001: Multiple Clarity tags detected.");var t=ir[ur]&&ir[ur].q||[];for(ir[ur]=function(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];return or[t].apply(or,e)},ir[ur].v=d;t.length>0;)ir[ur].apply(ir,t.shift())}}cr()}();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gemx-dev/clarity-js",
3
- "version": "0.8.89",
3
+ "version": "0.8.90",
4
4
  "description": "Clarity js",
5
5
  "author": "Microsoft Corp.",
6
6
  "license": "MIT",
package/src/clarity.ts CHANGED
@@ -26,7 +26,7 @@ const ALL: Module[] = [diagnostic, layout, interaction, performance, dynamic];
26
26
  let modules: Module[] = ALL;
27
27
 
28
28
  export function start(config: Config = null): void {
29
- modules = config.mode === "gemx" ? GEMX : ALL;
29
+ modules = config?.mode === "gemx" ? GEMX : ALL;
30
30
  // Check that browser supports required APIs and we do not attempt to start Clarity multiple times
31
31
  if (core.check()) {
32
32
  core.config(config);
@@ -1,2 +1,2 @@
1
- let version = "0.8.89";
1
+ let version = "0.8.90";
2
2
  export default version;
package/src/data/gemx.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { GemXConfig } from "@clarity-types/data";
2
2
 
3
3
  const defaultConfig: GemXConfig = {
4
+ debug: false,
4
5
  excludeClassNames: [],
5
6
  ignoreMutationClassNames: [],
6
7
  discoverTrigger: null,
@@ -10,6 +11,7 @@ let _config: GemXConfig = { ...defaultConfig };
10
11
 
11
12
  export function start(): void {
12
13
  _config = {
14
+ debug: new URLSearchParams(window.location.search).has("gemx_debug") || (window?.GemXHeatmap?.debug ?? false),
13
15
  excludeClassNames: (window?.GemXHeatmap?.excludeClassNames ?? []),
14
16
  ignoreMutationClassNames: (window?.GemXHeatmap?.ignoreMutationClassNames ?? []),
15
17
  discoverTrigger: (window?.GemXHeatmap?.discoverTrigger ?? null),
@@ -27,3 +29,7 @@ export function set(config: Partial<GemXConfig>): void {
27
29
  export function get(): GemXConfig {
28
30
  return _config;
29
31
  }
32
+
33
+ export function isDebug(): boolean {
34
+ return _config.debug;
35
+ }
@@ -23,6 +23,7 @@ import { signalsEvent } from "@src/data/signal";
23
23
  import { snapshot } from "@src/insight/snapshot";
24
24
  import * as dynamic from "@src/core/dynamic";
25
25
  import * as gemxUpload from "@src/data/gemx-upload";
26
+ import * as gemx from "@src/data/gemx";
26
27
 
27
28
  let discoverBytes: number = 0;
28
29
  let playbackBytes: number = 0;
@@ -173,7 +174,21 @@ async function upload(final: boolean = false, type?: string): Promise<void> {
173
174
  let last = final === true;
174
175
 
175
176
  // In some cases envelope has null data because it's part of the shutdown process while there's one upload call queued which might introduce runtime error
176
- if(!envelope.data) return;
177
+ if (!envelope.data) return;
178
+
179
+ const isDebug = gemx.isDebug();
180
+ if (!type && isDebug) {
181
+ const trackedEvents: [number, string][] = [
182
+ [Event.Click, "click"],
183
+ [Event.Scroll, "scroll"],
184
+ ];
185
+ const eventSet = new Set(analysis.map(item => (JSON.parse(item) as Token[])[1]));
186
+ const labels: string[] = [];
187
+ for (const [eventType, label] of trackedEvents) {
188
+ if (eventSet.has(eventType)) labels.push(label);
189
+ }
190
+ type = labels.length > 0 ? labels.join("-") : undefined;
191
+ }
177
192
 
178
193
  let e = JSON.stringify(envelope.envelope(last));
179
194
  let a = `[${analysis.join()}]`;
@@ -49,7 +49,7 @@ const ALL_OBSERVE = { allRoots: [scroll], documentOnly: [click, clipboard, point
49
49
  let modules: Module[] = ALL;
50
50
 
51
51
  export function start(): void {
52
- modules = config.mode === "gemx" ? GEMX : ALL;
52
+ modules = config?.mode === "gemx" ? GEMX : ALL;
53
53
  modules.forEach(m => m.start());
54
54
  }
55
55
 
@@ -58,7 +58,7 @@ export function stop(): void {
58
58
  }
59
59
 
60
60
  export function observe(root: Node): void {
61
- const observeModules = config.mode === "gemx" ? GEMX_OBSERVE : ALL_OBSERVE;
61
+ const observeModules = config?.mode === "gemx" ? GEMX_OBSERVE : ALL_OBSERVE;
62
62
  observeModules.allRoots.forEach(m => m.observe(root));
63
63
  if (root.nodeType === Node.DOCUMENT_NODE) {
64
64
  observeModules.documentOnly.forEach(m => m.observe(root));
@@ -36,27 +36,46 @@ function fire(): void {
36
36
  flush();
37
37
  }
38
38
 
39
- function schedule(trigger: { scrollDepthPercent?: number; clickCount?: number; activeTimeMs?: number; maxPlaybackBytes?: number }): void {
39
+ function schedule(trigger: { scrollDepthPercent?: number; clickCount?: number; activeTimeMs?: number; delayMs?: number; maxPlaybackBytes?: number }): void {
40
40
  triggered = false;
41
- let clickCount = 0;
41
+ let windowExpired = false;
42
+ let delayScheduled = false;
43
+
44
+ const scheduleDelayedFire = (type: 'scroll' | 'click'): void => {
45
+ if (delayScheduled || windowExpired) return;
46
+ delayScheduled = true;
47
+ console.log(`[GemX Snapshot] ${type} triggered:`);
48
+ setTimeout(fire, trigger.delayMs ?? 0);
49
+ };
50
+
51
+ if (trigger.activeTimeMs) {
52
+ setTimeout((): void => {
53
+ windowExpired = true;
54
+ scroll.onTrustedScroll(null);
55
+ click.onTrustedClick(null);
56
+ }, trigger.activeTimeMs);
57
+ }
42
58
 
43
59
  if (trigger.scrollDepthPercent) {
44
60
  scroll.onTrustedScroll((): void => {
45
- const scrolled = window.scrollY + window.innerHeight;
46
- const total = document.documentElement.scrollHeight;
47
- if ((scrolled / total) * 100 >= trigger.scrollDepthPercent) { fire(); }
61
+ const docH = document.documentElement.scrollHeight;
62
+ const vpH = window.innerHeight;
63
+ const maxScrollY = docH - vpH;
64
+ if (maxScrollY <= 0) return;
65
+
66
+ const scrollY = "pageYOffset" in window ? Math.round(window.pageYOffset) : Math.round((document.documentElement as HTMLElement).scrollTop);
67
+ const pct = Math.min(100, Math.round(scrollY / maxScrollY * 100));
68
+ if (pct >= trigger.scrollDepthPercent) { scheduleDelayedFire('scroll'); }
48
69
  });
49
70
  }
50
71
 
51
72
  if (trigger.clickCount) {
73
+ let clickCount = 0;
52
74
  click.onTrustedClick((): void => {
53
75
  clickCount++;
54
- if (clickCount >= trigger.clickCount) { fire(); }
76
+ if (clickCount >= trigger.clickCount) { scheduleDelayedFire('click'); }
55
77
  });
56
78
  }
57
-
58
- if (trigger.activeTimeMs) { setTimeout(fire, trigger.activeTimeMs); }
59
- // maxPlaybackBytes trigger is handled via gemxUpload.start() callback above
60
79
  }
61
80
 
62
81
  function flush(): void {
@@ -20,6 +20,8 @@ import traverse from "@src/layout/traverse";
20
20
  import processNode from "./node";
21
21
  import config from "@src/core/config";
22
22
  import * as gemx from "@src/data/gemx";
23
+ import * as gemxUpload from "@src/data/gemx-upload";
24
+
23
25
 
24
26
  let observers: Set<MutationObserver> = new Set();
25
27
  let mutations: MutationQueue[] = [];
@@ -129,7 +131,9 @@ async function processMutation(timer: Timer, mutation: MutationRecord, instance:
129
131
  let target = mutation.target;
130
132
 
131
133
  const ignoredClasses = gemx.get().ignoreMutationClassNames;
132
- if (ignoredClasses.length > 0 && target instanceof Element) {
134
+ // Before processed snapshot, we need to check if the mutation is ignored
135
+ const isSnapshotProcessed = gemxUpload.isActive();
136
+ if (!isSnapshotProcessed && ignoredClasses.length > 0 && target instanceof Element) {
133
137
  const el = target as Element;
134
138
  if (ignoredClasses.some(cls => el.classList.contains(cls))) { return; }
135
139
  }
package/types/data.d.ts CHANGED
@@ -598,11 +598,13 @@ export interface GCMConsentState {
598
598
  export interface DiscoverTrigger {
599
599
  scrollDepthPercent?: number; // trigger khi scroll đến X% chiều cao trang
600
600
  clickCount?: number; // trigger sau X lần click
601
- activeTimeMs?: number; // trigger sau X ms kể từ window.load
601
+ activeTimeMs?: number; // window tối đa để nhận trigger (ms)
602
+ delayMs?: number; // delay thêm sau khi điều kiện thỏa trước khi fire
602
603
  maxPlaybackBytes?: number; // trigger khi buffer đạt X bytes
603
604
  }
604
605
 
605
606
  export interface GemXConfig {
607
+ debug: boolean;
606
608
  excludeClassNames: string[];
607
609
  ignoreMutationClassNames: string[];
608
610
  discoverTrigger: DiscoverTrigger | null;
package/types/global.d.ts CHANGED
@@ -2,6 +2,7 @@ declare global {
2
2
  interface Window {
3
3
  clarityOverrides?: { [key: string]: ((...args: any[]) => any) | undefined };
4
4
  GemXHeatmap?: {
5
+ debug: boolean;
5
6
  excludeClassNames: string[];
6
7
  ignoreMutationClassNames?: string[];
7
8
  discoverTrigger?: {