@jitsu/js 1.3.2 → 1.6.1

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/dist/web/p.js.txt CHANGED
@@ -1 +1 @@
1
- (function(){"use strict";function n$2(e,t,n,r,o){for(t=t.split?t.split("."):t,r=0;r<t.length;r++)e=e?e[t[r]]:o;return e===o?n:e}var e="undefined",o$1="object",g$2="any",m$1="*",j$1="__",F$2="undefined"!=typeof process?process:{};F$2.env&&F$2.env.NODE_ENV;var $$1="undefined"!=typeof window;function M$1(e,t){return t.charAt(0)[e]()+t.slice(1)}null!=F$2.versions&&F$2.versions.node,"undefined"!=typeof Deno&&Deno.core,$$1&&"nodejs"===window.name||"undefined"!=typeof navigator&&(navigator.userAgent.includes("Node.js")||navigator.userAgent.includes("jsdom"));var U$1=M$1.bind(null,"toUpperCase"),H$1=M$1.bind(null,"toLowerCase");function J$2(e){return Y$1(e)?U$1("null"):"object"==typeof e?yn(e):Object.prototype.toString.call(e).slice(8,-1)}function R$1(e,t){void 0===t&&(t=!0);var n=J$2(e);return t?H$1(n):n}function V$1(e,t){return typeof t===e}var W$1=V$1.bind(null,"function"),q$1=V$1.bind(null,"string"),I$2=V$1.bind(null,"undefined"),Q$1=V$1.bind(null,"boolean");function Y$1(e){return null===e}function nn(e){return"number"===R$1(e)&&!isNaN(e)}function rn(e){return"array"===R$1(e)}function on(e){if(!un(e))return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function un(e){return e&&("object"==typeof e||null!==e)}function yn(e){return W$1(e.constructor)?e.constructor.name:null}function hn(e){return e instanceof Error||q$1(e.message)&&e.constructor&&nn(e.constructor.stackTraceLimit)}function On(e,t){if("object"!=typeof t||Y$1(t))return!1;if(t instanceof e)return!0;var n=R$1(new e(""));if(hn(t))for(;t;){if(R$1(t)===n)return!0;t=Object.getPrototypeOf(t)}return!1}function $n(e,t){var n=e instanceof Element||e instanceof HTMLDocument;return n&&t?Tn(e,t):n}function Tn(e,t){return void 0===t&&(t=""),e&&e.nodeName===t.toUpperCase()}function _n(e){var t=[].slice.call(arguments,1);return function(){return e.apply(void 0,[].slice.call(arguments).concat(t))}}function n$1(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch(e){return null}}function s(e){return function(e){for(var t,n=Object.create(null),r=/([^&=]+)=?([^&]*)/g;t=r.exec(e);){var o=n$1(t[1]),i=n$1(t[2]);"[]"===o.substring(o.length-2)?(n[o=o.substring(0,o.length-2)]||(n[o]=[])).push(i):n[o]=""===i||i}for(var a in n){var c=a.split("[");c.length>1&&(m(n,c.map((function(e){return e.replace(/[?[\]\\ ]/g,"")})),n[a]),delete n[a])}return n}(function(e){if(e){var t=e.match(/\?(.*)/);return t&&t[1]?t[1].split("#")[0]:""}return $$1&&window.location.search.substring(1)}(e))}function m(e,t,n){for(var r=t.length-1,o=0;o<r;++o){var i=t[o];if("__proto__"===i||"constructor"===i)break;i in e||(e[i]={}),e=e[i]}e[t[r]]=n}function y$1(){for(var e="",t=0,n=4294967295*Math.random()|0;t++<36;){var r="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx"[t-1],o=15&n;e+="-"==r||"4"==r?r:("x"==r?o:3&o|8).toString(16),n=t%8==0?4294967295*Math.random()|0:n>>4}return e}V$1.bind(null,"symbol"),On.bind(null,TypeError),On.bind(null,SyntaxError),_n($n,"form"),_n($n,"button"),_n($n,"input"),_n($n,"select");var l="global",o=j$1+"global"+j$1,n=typeof self===o$1&&self.self===self&&self||typeof global===o$1&&global.global===global&&global||void 0;function a$2(e){return n[o][e]}function f(e,t){return n[o][e]=t}function i$2(e){delete n[o][e]}function u$1(e,t,n){var r;try{if(b$2(e)){var o=window[e];r=o[t].bind(o)}}catch(e){}return r||n}n[o]||(n[o]={});var c$1={};function b$2(t){if(typeof c$1[t]!==e)return c$1[t];try{var n=window[t];n.setItem(e,e),n.removeItem(e)}catch(e){return c$1[t]=!1}return c$1[t]=!0}function g$1(){return g$1=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},g$1.apply(this,arguments)}var h$1="function",v="undefined",y="@@redux/"+Math.random().toString(36),b$1=function(){return typeof Symbol===h$1&&Symbol.observable||"@@observable"}(),I$1=" != "+h$1;function w(e,t,n){var r;if(typeof t===h$1&&typeof n===v&&(n=t,t=void 0),typeof n!==v){if(typeof n!==h$1)throw new Error("enhancer"+I$1);return n(w)(e,t)}if(typeof e!==h$1)throw new Error("reducer"+I$1);var o=e,i=t,a=[],c=a,s=!1;function u(){c===a&&(c=a.slice())}function l(){return i}function g(e){if(typeof e!==h$1)throw new Error("Listener"+I$1);var t=!0;return u(),c.push(e),function(){if(t){t=!1,u();var n=c.indexOf(e);c.splice(n,1)}}}function d(e){if(!on(e))throw new Error("Act != obj");if(typeof e.type===v)throw new Error("ActType "+v);if(s)throw new Error("Dispatch in reducer");try{s=!0,i=o(i,e)}finally{s=!1}for(var t=a=c,n=0;n<t.length;n++)(0,t[n])();return e}return d({type:"@@redux/INIT"}),(r={dispatch:d,subscribe:g,getState:l,replaceReducer:function(e){if(typeof e!==h$1)throw new Error("next reducer"+I$1);o=e,d({type:"@@redux/INIT"})}})[b$1]=function(){var e,t=g;return(e={subscribe:function(e){if("object"!=typeof e)throw new TypeError("Observer != obj");function n(){e.next&&e.next(l())}return n(),{unsubscribe:t(n)}}})[b$1]=function(){return this},e},r}function E$1(e,t){var n=t&&t.type;return"action "+(n&&n.toString()||"?")+"reducer "+e+" returns "+v}function P(){var e=[].slice.call(arguments);return 0===e.length?function(e){return e}:1===e.length?e[0]:e.reduce((function(e,t){return function(){return e(t.apply(void 0,[].slice.call(arguments)))}}))}function S(){var e=arguments;return function(t){return function(n,r,o){var i,a=t(n,r,o),c=a.dispatch,s={getState:a.getState,dispatch:function(e){return c(e)}};return i=[].slice.call(e).map((function(e){return e(s)})),g$1({},a,{dispatch:c=P.apply(void 0,i)(a.dispatch)})}}}var N$1=j$1+"anon_id",A$1=j$1+"user_id",_=j$1+"user_traits",k$1="userId",j="anonymousId",x$1=["bootstrap","params","campaign","initializeStart","initialize","initializeEnd","ready","resetStart","reset","resetEnd","pageStart","page","pageEnd","pageAborted","trackStart","track","trackEnd","trackAborted","identifyStart","identify","identifyEnd","identifyAborted","userIdChanged","registerPlugins","enablePlugin","disablePlugin","online","offline","setItemStart","setItem","setItemEnd","setItemAborted","removeItemStart","removeItem","removeItemEnd","removeItemAborted"],T=["name","EVENTS","config","loaded"],z=x$1.reduce((function(e,t){return e[t]=t,e}),{registerPluginType:function(e){return"registerPlugin:"+e},pluginReadyType:function(e){return"ready:"+e}}),M=/^utm_/,q=/^an_prop_/,V=/^an_trait_/;function C$1(e){var t=e.storage.setItem;return function(n){return function(r){return function(o){if(o.type===z.bootstrap){var i=o.params,a=o.user,c=o.persistedUser,s=o.initialUser,u=c.userId===a.userId;c.anonymousId!==a.anonymousId&&t(N$1,a.anonymousId),u||t(A$1,a.userId),s.traits&&t(_,g$1({},u&&c.traits?c.traits:{},s.traits));var l=Object.keys(o.params);if(l.length){var g=i.an_uid,d=i.an_event,m=l.reduce((function(e,t){if(t.match(M)||t.match(/^(d|g)clid/)){var n=t.replace(M,"");e.campaign["campaign"===n?"name":n]=i[t]}return t.match(q)&&(e.props[t.replace(q,"")]=i[t]),t.match(V)&&(e.traits[t.replace(V,"")]=i[t]),e}),{campaign:{},props:{},traits:{}});n.dispatch(g$1({type:z.params,raw:i},m,g?{userId:g}:{})),g&&setTimeout((function(){return e.identify(g,m.traits)}),0),d&&setTimeout((function(){return e.track(d,m.props)}),0),Object.keys(m.campaign).length&&n.dispatch({type:z.campaign,campaign:m.campaign})}}return r(o)}}}}function U(e){return function(t,n){if(void 0===t&&(t={}),void 0===n&&(n={}),n.type===z.setItemEnd){if(n.key===N$1)return g$1({},t,{anonymousId:n.value});if(n.key===A$1)return g$1({},t,{userId:n.value})}switch(n.type){case z.identify:return Object.assign({},t,{userId:n.userId,traits:g$1({},t.traits,n.traits)});case z.reset:return[A$1,N$1,_].forEach((function(t){e.removeItem(t)})),Object.assign({},t,{userId:null,anonymousId:null,traits:{}});default:return t}}}function R(e){return{userId:e.getItem(A$1),anonymousId:e.getItem(N$1),traits:e.getItem(_)}}var $=function(e){return j$1+"TEMP"+j$1+e};function D(e){var t=e.storage,n=t.setItem,r=t.removeItem,o=t.getItem;return function(e){return function(t){return function(i){var a=i.userId,c=i.traits,s=i.options;if(i.type===z.reset&&([A$1,_,N$1].forEach((function(e){r(e)})),[k$1,j,"traits"].forEach((function(e){i$2($(e))}))),i.type===z.identify){o(N$1)||n(N$1,y$1());var u=o(A$1),l=o(_)||{};u&&u!==a&&e.dispatch({type:z.userIdChanged,old:{userId:u,traits:l},new:{userId:a,traits:c},options:s}),a&&n(A$1,a),c&&n(_,g$1({},l,c))}return t(i)}}}}var B={};function L$1(e,t){B[e]&&W$1(B[e])&&(B[e](t),delete B[e])}function J$1(e,t,n){return new Promise((function(r,o){return t()?r(e):n<1?o(g$1({},e,{queue:!0})):new Promise((function(e){return setTimeout(e,10)})).then((function(i){return J$1(e,t,n-10).then(r,o)}))}))}var X=function(e){var t=e.data,n=e.action,r=e.instance,o=e.state,i=e.allPlugins,a=e.allMatches,c=e.store,s=e.EVENTS;try{var u=o.plugins,l=o.context,g=n.type,d=g.match(H),m=t.exact.map((function(e){return e.pluginName}));d&&(m=a.during.map((function(e){return e.pluginName})));var f=function(e,t){return function(n,r,o){var i=r.config,a=r.name,c=a+"."+n.type;o&&(c=o.event);var s=n.type.match(H)?function(e,t,n,r,o){return function(i,a){var c=r?r.name:e,s=a&&te(a)?a:n;if(r&&(!(s=a&&te(a)?a:[e]).includes(e)||1!==s.length))throw new Error("Method "+t+" can only abort "+e+" plugin. "+JSON.stringify(s)+" input valid");return g$1({},o,{abort:{reason:i,plugins:s,caller:t,_:c}})}}(a,c,t,o,n):function(e,t){return function(){throw new Error(e.type+" action not cancellable. Remove abort in "+t)}}(n,c);return{payload:ie(n),instance:e,config:i||{},abort:s}}}(r,m),p=t.exact.reduce((function(e,t){var n=t.pluginName,r=t.methodName,o=!1;return r.match(/^initialize/)||r.match(/^reset/)||(o=!u[n].loaded),l.offline&&r.match(/^(page|track|identify)/)&&(o=!0),e[""+n]=o,e}),{});return Promise.resolve(t.exact.reduce((function(e,o,a){var c=o.pluginName;return Promise.resolve(e).then((function(e){function o(){return Promise.resolve(e)}var a=function(){if(t.namespaced&&t.namespaced[c])return Promise.resolve(t.namespaced[c].reduce((function(e,t,n){return Promise.resolve(e).then((function(e){return t.method&&W$1(t.method)?(function(e,t){var n=re(e);if(n&&n.name===t){var r=re(n.method);throw new Error([t+" plugin is calling method "+e,"Plugins cant call self","Use "+n.method+" "+(r?"or "+r.method:"")+" in "+t+" plugin insteadof "+e].join("\n"))}}(t.methodName,t.pluginName),Promise.resolve(t.method({payload:e,instance:r,abort:(n=e,o=c,a=t.pluginName,function(e,t){return g$1({},n,{abort:{reason:e,plugins:t||[o],caller:g,from:a||o}})}),config:K(t.pluginName,u,i),plugins:u})).then((function(t){var n=on(t)?t:{};return Promise.resolve(g$1({},e,n))}))):e;var n,o,a}))}),Promise.resolve(n))).then((function(t){e[c]=t}));e[c]=n}();return a&&a.then?a.then(o):o()}))}),Promise.resolve({}))).then((function(e){return Promise.resolve(t.exact.reduce((function(n,o,a){try{var s=t.exact.length===a+1,l=o.pluginName,m=i[l];return Promise.resolve(n).then((function(t){var n=e[l]?e[l]:{};if(d&&(n=t),Z(n,l))return G$1({data:n,method:g,instance:r,pluginName:l,store:c}),Promise.resolve(t);if(Z(t,l))return s&&G$1({data:t,method:g,instance:r,store:c}),Promise.resolve(t);if(p.hasOwnProperty(l)&&!0===p[l])return c.dispatch({type:"queue",plugin:l,payload:n,_:{called:"queue",from:"queueMechanism"}}),Promise.resolve(t);var o=f(e[l],i[l]);return Promise.resolve(m[g]({abort:o.abort,payload:n,instance:r,config:K(l,u,i),plugins:u})).then((function(o){var i=on(o)?o:{},a=g$1({},t,i),s=e[l];if(Z(s,l))G$1({data:s,method:g,instance:r,pluginName:l,store:c});else{var u=g+":"+l;(u.match(/:/g)||[]).length<2&&!g.match(W)&&!g.match(F$1)&&r.dispatch(g$1({},d?a:n,{type:u,_:{called:u,from:"submethod"}}))}return Promise.resolve(a)}))}))}catch(e){return Promise.reject(e)}}),Promise.resolve(n))).then((function(e){if(!(g.match(H)||g.match(/^registerPlugin/)||g.match(F$1)||g.match(W)||g.match(/^params/)||g.match(/^userIdChanged/))){if(s.plugins.includes(g),e._&&e._.originalAction===g)return e;var n=g$1({},e,{_:{originalAction:e.type,called:e.type,from:"engineEnd"}});ee(e,t.exact.length)&&!g.match(/End$/)&&(n=g$1({},n,{type:e.type+"Aborted"})),c.dispatch(n)}return e}))}))}catch(e){return Promise.reject(e)}},H=/Start$/,W=/^bootstrap/,F$1=/^ready/;function G$1(e){var t=e.pluginName,n=e.method+"Aborted"+(t?":"+t:"");e.store.dispatch(g$1({},e.data,{type:n,_:{called:n,from:"abort"}}))}function K(e,t,n){var r=t[e]||n[e];return r&&r.config?r.config:{}}function Q(e,t){return t.reduce((function(t,n){return n[e]?t.concat({methodName:e,pluginName:n.name,method:n[e]}):t}),[])}function Y(e,t){var n=e.replace(H,""),r=t?":"+t:"";return[""+e+r,""+n+r,n+"End"+r]}function Z(e,t){var n=e.abort;return!!n&&(!0===n||ne(n,t)||n&&ne(n.plugins,t))}function ee(e,t){var n=e.abort;if(!n)return!1;if(!0===n||q$1(n))return!0;var r=n.plugins;return te(n)&&n.length===t||te(r)&&r.length===t}function te(e){return Array.isArray(e)}function ne(e,t){return!(!e||!te(e))&&e.includes(t)}function re(e){var t=e.match(/(.*):(.*)/);return!!t&&{method:t[1],name:t[2]}}function ie(e){return Object.keys(e).reduce((function(t,n){return"type"===n||(t[n]=on(e[n])?Object.assign({},e[n]):e[n]),t}),{})}function ae(e,t,n){var r={};return function(o){return function(i){return function(a){try{var c,s=function(e){return c?e:i(g)},u=a.type,l=a.plugins,g=a;if(a.abort)return Promise.resolve(i(a));if(u===z.enablePlugin&&o.dispatch({type:z.initializeStart,plugins:l,disabled:[],fromEnable:!0,meta:a.meta}),u===z.disablePlugin&&setTimeout((function(){return L$1(a.meta.rid,{payload:a})}),0),u===z.initializeEnd){var d=t(),m=Object.keys(d),f=m.filter((function(e){return l.includes(e)})).map((function(e){return d[e]})),p=[],v=[],b=a.disabled,h=f.map((function(e){var t=e.name;return J$1(e,e.loaded,1e4).then((function(n){return r[t]||(o.dispatch({type:z.pluginReadyType(t),name:t,events:Object.keys(e).filter((function(e){return!T.includes(e)}))}),r[t]=!0),p=p.concat(t),e})).catch((function(e){if(e instanceof Error)throw new Error(e);return v=v.concat(e.name),e}))}));Promise.all(h).then((function(e){var t={plugins:p,failed:v,disabled:b};setTimeout((function(){m.length===h.length+b.length&&o.dispatch(g$1({},{type:z.ready},t))}),0)}))}var y=function(){if(u!==z.bootstrap)return/^ready:([^:]*)$/.test(u)&&setTimeout((function(){return function(e,t,n){var r=t(),o=e.getState(),i=o.plugins,a=o.queue,c=o.user;if(!o.context.offline&&a&&a.actions&&a.actions.length){var s=a.actions.reduce((function(e,t,n){return i[t.plugin].loaded?(e.process.push(t),e.processIndex.push(n)):(e.requeue.push(t),e.requeueIndex.push(n)),e}),{processIndex:[],process:[],requeue:[],requeueIndex:[]});if(s.processIndex&&s.processIndex.length){s.processIndex.forEach((function(t){var o=a.actions[t],s=o.plugin,u=o.payload.type,l=r[s][u];if(l&&W$1(l)){var g=function(e,t){return void 0===e&&(e={}),void 0===t&&(t={}),[k$1,j].reduce((function(n,r){return e.hasOwnProperty(r)&&t[r]&&t[r]!==e[r]&&(n[r]=t[r]),n}),e)}(o.payload,c);l({payload:g,config:i[s].config,instance:n});var d=u+":"+s;e.dispatch(g$1({},g,{type:d,_:{called:d,from:"queueDrain"}}))}}));var u=a.actions.filter((function(e,t){return!~s.processIndex.indexOf(t)}));a.actions=u}}}(o,t,e)}),0),Promise.resolve(function(e,t,n,r,o){try{var i=W$1(t)?t():t,a=e.type,c=a.replace(H,"");if(e._&&e._.called)return Promise.resolve(e);var s=n.getState(),u=(d=i,void 0===(m=s.plugins)&&(m={}),void 0===(f=e.options)&&(f={}),Object.keys(d).filter((function(e){var t=f.plugins||{};return Q$1(t[e])?t[e]:!1!==t.all&&(!m[e]||!1!==m[e].enabled)})).map((function(e){return d[e]})));a===z.initializeStart&&e.fromEnable&&(u=Object.keys(s.plugins).filter((function(t){var n=s.plugins[t];return e.plugins.includes(t)&&!n.initialized})).map((function(e){return i[e]})));var l=u.map((function(e){return e.name})),g=function(e,t,n){var r=Y(e).map((function(e){return Q(e,t)}));return t.reduce((function(n,r){var o=r.name,i=Y(e,o).map((function(e){return Q(e,t)})),a=i[0],c=i[1],s=i[2];return a.length&&(n.beforeNS[o]=a),c.length&&(n.duringNS[o]=c),s.length&&(n.afterNS[o]=s),n}),{before:r[0],beforeNS:{},during:r[1],duringNS:{},after:r[2],afterNS:{}})}(a,u);return Promise.resolve(X({action:e,data:{exact:g.before,namespaced:g.beforeNS},state:s,allPlugins:i,allMatches:g,instance:n,store:r,EVENTS:o})).then((function(e){function t(){var t=function(){if(a.match(H))return Promise.resolve(X({action:g$1({},u,{type:c+"End"}),data:{exact:g.after,namespaced:g.afterNS},state:s,allPlugins:i,allMatches:g,instance:n,store:r,EVENTS:o})).then((function(e){e.meta&&e.meta.hasCallback&&L$1(e.meta.rid,{payload:e})}))}();return t&&t.then?t.then((function(){return e})):e}if(ee(e,l.length))return e;var u,d=function(){if(a!==c)return Promise.resolve(X({action:g$1({},e,{type:c}),data:{exact:g.during,namespaced:g.duringNS},state:s,allPlugins:i,allMatches:g,instance:n,store:r,EVENTS:o})).then((function(e){u=e}));u=e}();return d&&d.then?d.then(t):t()}))}catch(e){return Promise.reject(e)}var d,m,f}(a,t,e,o,n)).then((function(e){var t=i(e);return c=1,t}))}();return Promise.resolve(y&&y.then?y.then(s):s(y))}catch(e){return Promise.reject(e)}}}}}function oe(e){return function(t){return function(t){return function(n){var r=n.type,o=n.key,i=n.value,a=n.options;if(r===z.setItem||r===z.removeItem){if(n.abort)return t(n);r===z.setItem?e.setItem(o,i,a):e.removeItem(o,a)}return t(n)}}}}var ue=function(){var e=this;this.before=[],this.after=[],this.addMiddleware=function(t,n){e[n]=e[n].concat(t)},this.removeMiddleware=function(t,n){var r=e[n].findIndex((function(e){return e===t}));-1!==r&&(e[n]=[].concat(e[n].slice(0,r),e[n].slice(r+1)))},this.dynamicMiddlewares=function(t){return function(n){return function(r){return function(o){var i={getState:n.getState,dispatch:function(e){return n.dispatch(e)}},a=e[t].map((function(e){return e(i)}));return P.apply(void 0,a)(r)(o)}}}}};function ce(e){return function(t,n){void 0===t&&(t={});var r={};if("initialize:aborted"===n.type)return t;if(/^registerPlugin:([^:]*)$/.test(n.type)){var o=se(n.type,"registerPlugin"),i=e()[o];if(!i||!o)return t;var a=n.enabled;return r[o]={enabled:a,initialized:!!a&&Boolean(!i.initialize),loaded:!!a&&Boolean(i.loaded()),config:i.config||{}},g$1({},t,r)}if(/^initialize:([^:]*)$/.test(n.type)){var c=se(n.type,z.initialize),s=e()[c];return s&&c?(r[c]=g$1({},t[c],{initialized:!0,loaded:Boolean(s.loaded())}),g$1({},t,r)):t}if(/^ready:([^:]*)$/.test(n.type))return r[n.name]=g$1({},t[n.name],{loaded:!0}),g$1({},t,r);switch(n.type){case z.disablePlugin:return g$1({},t,le(n.plugins,!1,t));case z.enablePlugin:return g$1({},t,le(n.plugins,!0,t));default:return t}}}function se(e,t){return e.substring(t.length+1,e.length)}function le(e,t,n){return e.reduce((function(e,r){return e[r]=g$1({},n[r],{enabled:t}),e}),n)}function fe(e){try{return JSON.parse(JSON.stringify(e))}catch(e){}return e}var de={last:{},history:[]};function pe(e,t){void 0===e&&(e=de);var n=t.options,r=t.meta;if(t.type===z.track){var o=fe(g$1({event:t.event,properties:t.properties},Object.keys(n).length&&{options:n},{meta:r}));return g$1({},e,{last:o,history:e.history.concat(o)})}return e}var me={actions:[]};function ge(e,t){void 0===e&&(e=me);var n=t.payload;switch(t.type){case"queue":var r;return r=n&&n.type&&n.type===z.identify?[t].concat(e.actions):e.actions.concat(t),g$1({},e,{actions:r});case"dequeue":return[];default:return e}}var he=/#.*$/;function ve(e){var t=/(http[s]?:\/\/)?([^\/\s]+\/)(.*)/g.exec(e);return"/"+(t&&t[3]?t[3].split("?")[0].replace(he,""):"")}var ye,be=function(e){if(void 0===e&&(e={}),!$$1)return e;var t=document,n=t.title,r=t.referrer,o=window,i=o.location,a=o.innerWidth,c=o.innerHeight,s=i.hash,u=i.search,l=function(e){var t=function(){if($$1)for(var e,t=document.getElementsByTagName("link"),n=0;e=t[n];n++)if("canonical"===e.getAttribute("rel"))return e.getAttribute("href")}();return t?t.match(/\?/)?t:t+e:window.location.href.replace(he,"")}(u),g={title:n,url:l,path:ve(l),hash:s,search:u,width:a,height:c};return r&&""!==r&&(g.referrer=r),g$1({},g,e)},Ie={last:{},history:[]};function we(e,t){void 0===e&&(e=Ie);var n=t.options;if(t.type===z.page){var r=fe(g$1({properties:t.properties,meta:t.meta},Object.keys(n).length&&{options:n}));return g$1({},e,{last:r,history:e.history.concat(r)})}return e}ye={};var Ee={initialized:!1,sessionId:y$1(),app:null,version:null,debug:!1,offline:!!$$1&&!navigator.onLine,os:{name:"na"},userAgent:$$1?navigator.userAgent:"node",library:{name:"analytics",version:"0.11.0"},timezone:void 0,locale:void 0,campaign:{},referrer:ye};function Pe(e,t){void 0===e&&(e=Ee);var n=e.initialized,r=t.campaign;switch(t.type){case z.campaign:return g$1({},e,{campaign:r});case z.offline:return g$1({},e,{offline:!0});case z.online:return g$1({},e,{offline:!1});default:return n?e:g$1({},Ee,e,{initialized:!0})}}var Se=["plugins","reducers","storage"];function Ne(){return f("analytics",[]),function(e){return function(t,r,i){var a=e(t,r,i),c=a.dispatch;return Object.assign(a,{dispatch:function(e){return n[o].analytics.push(e.action||e),c(e)}})}}}function Ae(e){return function(){return P(P.apply(null,arguments),Ne())}}function _e(e){return e?rn(e)?e:[e]:[]}function Oe(e,t,n){void 0===e&&(e={});var r,o,i=y$1();return t&&(B[i]=(r=t,o=function(e){for(var t,n=e||Array.prototype.slice.call(arguments),r=0;r<n.length;r++)if(W$1(n[r])){t=n[r];break}return t}(n),function(e){o&&o(e),r(e)})),g$1({},e,{rid:i,ts:(new Date).getTime()},t?{hasCallback:!0}:{})}function ke(e){void 0===e&&(e={});var t=e.reducers||{},n=e.initialUser||{},r=(e.plugins||[]).reduce((function(e,t){if(W$1(t))return e.middlewares=e.middlewares.concat(t),e;if(t.NAMESPACE&&(t.name=t.NAMESPACE),!t.name)throw new Error("https://lytics.dev/errors/1");var n=t.EVENTS?Object.keys(t.EVENTS).map((function(e){return t.EVENTS[e]})):[];e.pluginEnabled[t.name]=!(!1===t.enabled||t.config&&!1===t.config.enabled),delete t.enabled,t.methods&&(e.methods[t.name]=Object.keys(t.methods).reduce((function(e,n){var r;return e[n]=(r=t.methods[n],function(){for(var e=Array.prototype.slice.call(arguments),t=new Array(r.length),n=0;n<e.length;n++)t[n]=e[n];return t[t.length]=x,r.apply({instance:x},t)}),e}),{}),delete t.methods);var r=Object.keys(t).concat(n),o=new Set(e.events.concat(r));if(e.events=Array.from(o),e.pluginsArray=e.pluginsArray.concat(t),e.plugins[t.name])throw new Error(t.name+"AlreadyLoaded");return e.plugins[t.name]=t,e.plugins[t.name].loaded||(e.plugins[t.name].loaded=function(){return!0}),e}),{plugins:{},pluginEnabled:{},methods:{},pluginsArray:[],middlewares:[],events:[]}),o=e.storage?e.storage:{getItem:a$2,setItem:f,removeItem:i$2},i=function(e){return function(t,n,r){return n.getState("user")[t]||(r&&on(r)&&r[t]?r[t]:R(e)[t]||a$2($(t))||null)}}(o),a=r.plugins,c=r.events.filter((function(e){return!T.includes(e)})).sort(),u=new Set(c.concat(x$1).filter((function(e){return!T.includes(e)}))),l=Array.from(u).sort(),g=function(){return a},d=new ue,m=d.addMiddleware,p=d.removeMiddleware,b=d.dynamicMiddlewares,h=function(){throw new Error("Abort disabled inListener")},k=s(),I=R(o),O=g$1({},I,n,k.an_uid?{userId:k.an_uid}:{},k.an_aid?{anonymousId:k.an_aid}:{});O.anonymousId||(O.anonymousId=y$1());var _=g$1({enable:function(e,t){return new Promise((function(n){V.dispatch({type:z.enablePlugin,plugins:_e(e),_:{originalAction:z.enablePlugin}},n,[t])}))},disable:function(e,t){return new Promise((function(n){V.dispatch({type:z.disablePlugin,plugins:_e(e),_:{originalAction:z.disablePlugin}},n,[t])}))}},r.methods),x={identify:function(e,t,n,r){try{var o=q$1(e)?e:null,a=on(e)?e:t,c=n||{},s=x.user();f($(k$1),o);var u=o||a.userId||i(k$1,x,a);return Promise.resolve(new Promise((function(e){V.dispatch(g$1({type:z.identifyStart,userId:u,traits:a||{},options:c,anonymousId:s.anonymousId},s.id&&s.id!==o&&{previousId:s.id}),e,[t,n,r])})))}catch(e){return Promise.reject(e)}},track:function(e,t,n,r){try{var o=on(e)?e.event:e;if(!o||!q$1(o))throw new Error("EventMissing");var a=on(e)?e:t||{},c=on(n)?n:{};return Promise.resolve(new Promise((function(e){V.dispatch({type:z.trackStart,event:o,properties:a,options:c,userId:i(k$1,x,t),anonymousId:i(j,x,t)},e,[t,n,r])})))}catch(e){return Promise.reject(e)}},page:function(e,t,n){try{var r=on(e)?e:{},o=on(t)?t:{};return Promise.resolve(new Promise((function(a){V.dispatch({type:z.pageStart,properties:be(r),options:o,userId:i(k$1,x,r),anonymousId:i(j,x,r)},a,[e,t,n])})))}catch(e){return Promise.reject(e)}},user:function(e){if(e===k$1||"id"===e)return i(k$1,x);if(e===j||"anonId"===e)return i(j,x);var t=x.getState("user");return e?n$2(t,e):t},reset:function(e){return new Promise((function(t){V.dispatch({type:z.resetStart},t,e)}))},ready:function(e){return x.on(z.ready,e)},on:function(e,t){if(!e||!W$1(t))return!1;if(e===z.bootstrap)throw new Error(".on disabled for "+e);var n=/Start$|Start:/;if("*"===e){var r=function(e){return function(e){return function(r){return r.type.match(n)&&t({payload:r,instance:x,plugins:a}),e(r)}}},o=function(e){return function(e){return function(r){return r.type.match(n)||t({payload:r,instance:x,plugins:a}),e(r)}}};return m(r,je),m(o,xe),function(){p(r,je),p(o,xe)}}var i=e.match(n)?je:xe,c=function(n){return function(n){return function(r){return r.type===e&&t({payload:r,instance:x,plugins:a,abort:h}),n(r)}}};return m(c,i),function(){return p(c,i)}},once:function(e,t){if(!e||!W$1(t))return!1;if(e===z.bootstrap)throw new Error(".once disabled for "+e);var n=x.on(e,(function(e){t({payload:e.payload,instance:x,plugins:a,abort:h}),n()}));return n},getState:function(e){var t=V.getState();return e?n$2(t,e):Object.assign({},t)},dispatch:function(e){var t=q$1(e)?{type:e}:e;if(x$1.includes(t.type))throw new Error("reserved action "+t.type);var n=g$1({},t,{_:g$1({originalAction:t.type},e._||{})});V.dispatch(n)},enablePlugin:_.enable,disablePlugin:_.disable,plugins:_,storage:{getItem:o.getItem,setItem:function(e,t,n){V.dispatch({type:z.setItemStart,key:e,value:t,options:n})},removeItem:function(e,t){V.dispatch({type:z.removeItemStart,key:e,options:t})}},setAnonymousId:function(e,t){x.storage.setItem(N$1,e,t)},events:{core:x$1,plugins:c}},E=r.middlewares.concat([function(e){return function(e){return function(t){return t.meta||(t.meta=Oe()),e(t)}}},b(je),ae(x,g,{all:l,plugins:c}),oe(o),C$1(x),D(x),b(xe)]),N={context:Pe,user:U(o),page:we,track:pe,plugins:ce(g),queue:ge},A=P,L=P;if($$1&&e.debug){var C=window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__;C&&(A=C({trace:!0,traceLimit:25})),L=function(){return 0===arguments.length?Ne():on(typeof arguments[0])?Ae():Ae().apply(null,arguments)}}var M,J=function(e){return Object.keys(e).reduce((function(t,n){return Se.includes(n)||(t[n]=e[n]),t}),{})}(e),q=r.pluginsArray.reduce((function(e,t){var n=t.name,o=t.config,i=t.loaded,a=r.pluginEnabled[n];return e[n]={enabled:a,initialized:!!a&&Boolean(!t.initialize),loaded:Boolean(i()),config:o||{}},e}),{}),F={context:J,user:O,plugins:q},V=w(function(e){for(var t=Object.keys(e),n={},r=0;r<t.length;r++){var o=t[r];typeof e[o]===h$1&&(n[o]=e[o])}var i,a=Object.keys(n);try{!function(e){Object.keys(e).forEach((function(t){var n=e[t];if(typeof n(void 0,{type:"@@redux/INIT"})===v||typeof n(void 0,{type:y})===v)throw new Error("reducer "+t+" "+v)}))}(n)}catch(e){i=e}return function(e,t){if(void 0===e&&(e={}),i)throw i;for(var r=!1,o={},c=0;c<a.length;c++){var s=a[c],u=e[s],l=(0,n[s])(u,t);if(typeof l===v){var g=E$1(s,t);throw new Error(g)}o[s]=l,r=r||l!==u}return r?o:e}}(g$1({},N,t)),F,L(A(S.apply(void 0,E))));V.dispatch=(M=V.dispatch,function(e,t,n){var r=g$1({},e,{meta:Oe(e.meta,t,_e(n))});return M.apply(null,[r])});var G=Object.keys(a);V.dispatch({type:z.bootstrap,plugins:G,config:J,params:k,user:O,initialUser:n,persistedUser:I});var W=G.filter((function(e){return r.pluginEnabled[e]})),B=G.filter((function(e){return!r.pluginEnabled[e]}));return V.dispatch({type:z.registerPlugins,plugins:G,enabled:r.pluginEnabled}),r.pluginsArray.map((function(e,t){var n=e.bootstrap,o=e.config,i=e.name;n&&W$1(n)&&n({instance:x,config:o,payload:e}),V.dispatch({type:z.registerPluginType(i),name:i,enabled:r.pluginEnabled[i],plugin:e}),r.pluginsArray.length===t+1&&V.dispatch({type:z.initializeStart,plugins:W,disabled:B})})),x}var je="before",xe="after",t="cookie",i$1=a$1(),r$1=d$1,c=d$1;function u(e){return i$1?d$1(e,"",-1):i$2(e)}function a$1(){if(void 0!==i$1)return i$1;var e="cookiecookie";try{d$1(e,e),i$1=-1!==document.cookie.indexOf(e),u(e)}catch(e){i$1=!1}return i$1}function d$1(e,t,n,r,o,i){if("undefined"!=typeof window){var a=arguments.length>1;return!1===i$1&&(a?f(e,t):a$2(e)),a?document.cookie=e+"="+encodeURIComponent(t)+(n?"; expires="+new Date(+new Date+1e3*n).toUTCString()+(r?"; path="+r:"")+(o?"; domain="+o:"")+(i?"; secure":""):""):decodeURIComponent((("; "+document.cookie).split("; "+e+"=")[1]||"").split(";")[0])}}var r="localStorage",g=b$2.bind(null,"localStorage");u$1("localStorage","getItem",a$2),u$1("localStorage","setItem",f),u$1("localStorage","removeItem",i$2);var a="sessionStorage",i=b$2.bind(null,"sessionStorage");function I(e){var t=e;try{if("true"===(t=JSON.parse(e)))return!0;if("false"===t)return!1;if(on(t))return t;parseFloat(t)===t&&(t=parseFloat(t))}catch(e){}if(null!==t&&""!==t)return t}u$1("sessionStorage","getItem",a$2),u$1("sessionStorage","setItem",f),u$1("sessionStorage","removeItem",i$2);var k=g(),O=i(),x=a$1();function C(e,t){if(e){var n=A(t),r=!N(n),o=d(n)?I(localStorage.getItem(e)):void 0;if(r&&!I$2(o))return o;var i=h(n)?I(r$1(e)):void 0;if(r&&i)return i;var a=E(n)?I(sessionStorage.getItem(e)):void 0;if(r&&a)return a;var c=a$2(e);return r?c:{localStorage:o,sessionStorage:a,cookie:i,global:c}}}function L(e,n,o){if(e&&!I$2(n)){var i={},s=A(o),u=JSON.stringify(n),g=!N(s);return d(s)&&(i[r]=F(r,n,I(localStorage.getItem(e))),localStorage.setItem(e,u),g)?i[r]:h(s)&&(i[t]=F(t,n,I(r$1(e))),c(e,u),g)?i[t]:E(s)&&(i[a]=F(a,n,I(sessionStorage.getItem(e))),sessionStorage.setItem(e,u),g)?i[a]:(i[l]=F(l,n,a$2(e)),f(e,n),g?i[l]:i)}}function b(e,n){if(e){var o=A(n),i=C(e,m$1),c={};return!I$2(i.localStorage)&&d(o)&&(localStorage.removeItem(e),c[r]=i.localStorage),!I$2(i.cookie)&&h(o)&&(u(e),c[t]=i.cookie),!I$2(i.sessionStorage)&&E(o)&&(sessionStorage.removeItem(e),c[a]=i.sessionStorage),!I$2(i.global)&&G(o,l)&&(i$2(e),c[l]=i.global),c}}function A(e){return e?q$1(e)?e:e.storage:g$2}function d(e){return k&&G(e,r)}function h(e){return x&&G(e,t)}function E(e){return O&&G(e,a)}function N(e){return e===m$1||"all"===e}function G(e,t){return e===g$2||e===t||N(e)}function F(e,t,n){return{location:e,current:t,previous:n}}var J={setItem:L,getItem:C,removeItem:b};function _defineProperty(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ownKeys(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread2(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(n),!0).forEach((function(t){_defineProperty(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function analyticsLib(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return ke(_objectSpread2(_objectSpread2({},{storage:J}),e))}function findScript(e){return Array.prototype.slice.call(window.document.querySelectorAll("script")).find((t=>t.src===e))}function loadScript(e,t){const n=findScript(e);if(void 0!==n){const e=null==n?void 0:n.getAttribute("status");if("loaded"===e)return Promise.resolve(n);if("loading"===e)return new Promise(((e,t)=>{n.addEventListener("load",(()=>e(n))),n.addEventListener("error",(e=>t(e)))}))}return new Promise(((n,r)=>{var o;const i=window.document.createElement("script");i.type="text/javascript",i.src=e,i.async=!0,i.setAttribute("status","loading");for(const[e,n]of Object.entries(null!=t?t:{}))i.setAttribute(e,n);i.onload=()=>{i.onerror=i.onload=null,i.setAttribute("status","loaded"),n(i)},i.onerror=()=>{i.onerror=i.onload=null,i.setAttribute("status","error"),r(new Error(`Failed to load ${e}`))};const a=window.document.getElementsByTagName("script")[0];null===(o=a.parentElement)||void 0===o||o.insertBefore(i,a)}))}var __awaiter$3=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{s(r.next(e))}catch(e){i(e)}}function c(e){try{s(r.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))};const tagPlugin={id:"tag",handle(e,t){return __awaiter$3(this,void 0,void 0,(function*(){applyFilters(t,e)&&insertTags(e.code,t)}))}};function insertTags(e,t,n={}){let r;try{r=JSON.parse(e)}catch(t){r={code:e,lang:"javascript"}}const o=n.debug||!1;if(isInBrowser())if("javascript"===r.lang)execJs(r.code,t);else{const e=document.createElement("span");e.innerHTML=replaceMacro(r.code,t),document.body.insertAdjacentElement("beforeend",e);e.querySelectorAll("script").forEach((e=>{const t=document.createElement("script");t.type=t.type||"text/javascript",e.hasAttribute("src")&&(t.src=e.src),t.text=e.text,o&&console.log("[JITSU] Executing script"+(e.hasAttribute("src")?` ${e.src}`:""),t.text),document.head.appendChild(t),document.head.removeChild(t)}))}else o&&console.log("[JITSU] insertTags(): cannot insert tags in non-browser environment")}function execJs(code,event){const varName=`jitsu_event_${randomId()}`;window[varName]=event;const iif=`(function(){\n const event = ${varName};\n ${code}\n })()`;try{eval(iif)}catch(e){console.error(`[JITSU] Error executing JS code: ${e.message}. Code: `,iif)}finally{delete window[varName]}return iif}function replaceMacro(e,t){return e.replace(/{{\s*event\s*}}/g,JSON.stringify(t))}var __awaiter$2=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{s(r.next(e))}catch(e){i(e)}}function c(e){try{s(r.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))};const logrocketPlugin={id:"logrocket",handle(e,t){return __awaiter$2(this,void 0,void 0,(function*(){if(!applyFilters(t,e))return;initLogrocketIfNeeded(e.appId);getLogRocketQueue().push((e=>{"identify"===t.type&&t.userId&&e.identify(t.userId,t.traits||{})})),"loaded"===getLogRocketState()&&flushLogRocketQueue(window.LogRocket)}))}};function getLogRocketState(){return window.__jitsuLrState||"fresh"}function setLogRocketState(e){window.__jitsuLrState=e}function getLogRocketQueue(){return window.__jitsuLrQueue||(window.__jitsuLrQueue=[])}function flushLogRocketQueue(e){const t=getLogRocketQueue();for(;t.length>0;){const n=t.shift();try{const t=n(e);t&&t.catch((e=>console.warn(`Async LogRocket method failed: ${e.message}`,e)))}catch(e){console.warn(`LogRocket method failed: ${e.message}`,e)}}}function initLogrocketIfNeeded(e){return __awaiter$2(this,void 0,void 0,(function*(){"fresh"===getLogRocketState()&&(setLogRocketState("loading"),loadScript("https://cdn.lr-ingest.io/LogRocket.min.js",{crossOrigin:"anonymous"}).then((()=>{if(window.LogRocket){try{window.LogRocket.init(e)}catch(t){console.warn(`LogRocket (id=${e}) init failed: ${t.message}`,t),setLogRocketState("failed")}setLogRocketState("loaded"),flushLogRocketQueue(window.LogRocket)}})).catch((t=>{console.warn(`LogRocket (id=${e}) init failed: ${t.message}`,t),setLogRocketState("failed")})))}))}var __awaiter$1=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{s(r.next(e))}catch(e){i(e)}}function c(e){try{s(r.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))};const defaultScriptSrc="https://www.googletagmanager.com/gtag/js",gtmPlugin={id:"gtm",handle(e,t){var n,r;return __awaiter$1(this,void 0,void 0,(function*(){if(!applyFilters(t,e))return;yield initGtmIfNeeded(e);const o=window[e.dataLayerName||"dataLayer"];switch(t.type){case"page":const{properties:i,context:a}=t,c={event:"page_view",url:i.url,title:i.title,referer:null!==(r=null===(n=null==a?void 0:a.page)||void 0===n?void 0:n.referrer)&&void 0!==r?r:""};e.debug&&console.log("gtag push",c),o.push(c);break;case"track":const{properties:s}=t,u=Object.assign({event:t.event},s);t.userId&&(u.userId=t.userId),t.anonymousId&&(u.anonymousId=t.anonymousId),e.debug&&console.log("gtag push",u),o.push(u);break;case"identify":const{traits:l}=t,g=Object.assign({event:"identify"},l);t.userId&&(g.userId=t.userId),t.anonymousId&&(g.anonymousId=t.anonymousId),e.debug&&console.log("gtag push",g),o.push(g)}}))}};function getGtmState(){return window.__jitsuGtmState||"fresh"}function setGtmState(e){window.__jitsuGtmState=e}function initGtmIfNeeded(e){return __awaiter$1(this,void 0,void 0,(function*(){if("fresh"!==getGtmState())return;setGtmState("loading");const t=e.dataLayerName||"dataLayer",n="dataLayer"!==t?"&l="+t:"",r=e.preview?`&gtm_preview=${e.preview}&gtm_auth=${e.auth}&gtm_cookies_win=x`:"",o=`${e.customScriptSrc||defaultScriptSrc}?id=${e.containerId}${n}${r}`;window[t]=window[t]||[];const i=function(){window[t].push(arguments)};i("js",new Date),i("config",e.containerId),loadScript(o).then((()=>{setGtmState("loaded")})).catch((t=>{console.warn(`GTM (containerId=${e.containerId}) init failed: ${t.message}`,t),setGtmState("failed")}))}))}function satisfyFilter(e,t){return"*"===e||e.toLowerCase().trim()===(t||"").trim().toLowerCase()}function satisfyDomainFilter(e,t){return"*"===e||(t=t||"",e.startsWith("*.")?t.endsWith(e.substring(1)):e===t)}function applyFilters(e,t){const{hosts:n="*",events:r="*"}=t;try{const t=Array.isArray(r)?r:r.split("\n");return!(!(Array.isArray(n)?n:n.split("\n")).find((t=>{var n;return satisfyDomainFilter(t,null===(n=e.context)||void 0===n?void 0:n.host)}))||!t.find((t=>satisfyFilter(t,e.type)))&&!t.find((t=>satisfyFilter(t,e.event))))}catch(e){throw console.warn(`Failed to apply filters: ${e.message}. Typeof events: ${typeof r}, typeof hosts: ${typeof n}. Values`,r,n),new Error(`Failed to apply filters: ${e.message}. Typeof events: ${typeof r}, typeof hosts: ${typeof n}`)}}const internalDestinationPlugins={[tagPlugin.id]:tagPlugin,[gtmPlugin.id]:gtmPlugin,[logrocketPlugin.id]:logrocketPlugin};var name="@jitsu/js",version="0.0.0";const publicSuffixes="ac,com.ac,edu.ac,gov.ac,net.ac,mil.ac,org.ac,ad,nom.ad,ae,co.ae,net.ae,org.ae,sch.ae,ac.ae,gov.ae,mil.ae,aero,af,gov.af,com.af,org.af,net.af,edu.af,ag,com.ag,org.ag,net.ag,co.ag,nom.ag,ai,off.ai,com.ai,net.ai,org.ai,al,com.al,edu.al,gov.al,mil.al,net.al,org.al,am,co.am,com.am,commune.am,net.am,org.am,ao,ed.ao,gv.ao,og.ao,co.ao,pb.ao,it.ao,aq,ar,bet.ar,com.ar,coop.ar,edu.ar,gob.ar,gov.ar,int.ar,mil.ar,musica.ar,mutual.ar,net.ar,org.ar,senasa.ar,tur.ar,arpa,e164.arpa,in-addr.arpa,ip6.arpa,iris.arpa,uri.arpa,urn.arpa,as,gov.as,asia,at,ac.at,co.at,gv.at,or.at,sth.ac.at,au,com.au,net.au,org.au,edu.au,gov.au,asn.au,id.au,act.au,nsw.au,nt.au,qld.au,sa.au,tas.au,vic.au,wa.au,aw,com.aw,ax,az,com.az,net.az,int.az,gov.az,org.az,edu.az,info.az,pp.az,mil.az,name.az,pro.az,biz.az,ba,com.ba,edu.ba,gov.ba,mil.ba,net.ba,org.ba,bb,biz.bb,co.bb,com.bb,edu.bb,gov.bb,info.bb,net.bb,org.bb,store.bb,tv.bb,bd,be,ac.be,bf,gov.bf,bg,a.bg,b.bg,c.bg,d.bg,e.bg,f.bg,g.bg,h.bg,i.bg,j.bg,k.bg,l.bg,m.bg,n.bg,o.bg,p.bg,q.bg,r.bg,s.bg,t.bg,u.bg,v.bg,w.bg,x.bg,y.bg,z.bg,0.bg,1.bg,2.bg,3.bg,4.bg,5.bg,6.bg,7.bg,8.bg,9.bg,bh,com.bh,edu.bh,net.bh,org.bh,gov.bh,bi,co.bi,com.bi,edu.bi,or.bi,org.bi,biz,bj,africa.bj,agro.bj,architectes.bj,assur.bj,avocats.bj,co.bj,com.bj,eco.bj,econo.bj,edu.bj,info.bj,loisirs.bj,money.bj,net.bj,org.bj,ote.bj,resto.bj,restaurant.bj,tourism.bj,univ.bj,bm,com.bm,edu.bm,gov.bm,net.bm,org.bm,bn,com.bn,edu.bn,gov.bn,net.bn,org.bn,bo,com.bo,edu.bo,gob.bo,int.bo,org.bo,net.bo,mil.bo,tv.bo,web.bo,br,9guacu.br,abc.br,adm.br,adv.br,agr.br,aju.br,am.br,anani.br,aparecida.br,app.br,arq.br,art.br,ato.br,b.br,barueri.br,belem.br,bhz.br,bib.br,bio.br,blog.br,bmd.br,boavista.br,bsb.br,campinagrande.br,campinas.br,caxias.br,cim.br,cng.br,cnt.br,com.br,contagem.br,coop.br,coz.br,cri.br,cuiaba.br,curitiba.br,def.br,des.br,det.br,dev.br,ecn.br,eco.br,edu.br,emp.br,enf.br,eng.br,esp.br,etc.br,eti.br,far.br,feira.br,flog.br,floripa.br,fm.br,fnd.br,fortal.br,fot.br,foz.br,fst.br,g12.br,geo.br,ggf.br,goiania.br,gov.br,gru.br,imb.br,ind.br,inf.br,jab.br,jampa.br,jdf.br,joinville.br,jor.br,jus.br,leg.br,lel.br,log.br,londrina.br,macapa.br,maceio.br,manaus.br,maringa.br,mat.br,med.br,mil.br,morena.br,mp.br,mus.br,natal.br,net.br,niteroi.br,nom.br,not.br,ntr.br,odo.br,ong.br,org.br,osasco.br,palmas.br,poa.br,ppg.br,pro.br,psc.br,psi.br,pvh.br,qsl.br,radio.br,rec.br,recife.br,rep.br,ribeirao.br,rio.br,riobranco.br,riopreto.br,salvador.br,sampa.br,santamaria.br,santoandre.br,saobernardo.br,saogonca.br,seg.br,sjc.br,slg.br,slz.br,sorocaba.br,srv.br,taxi.br,tc.br,tec.br,teo.br,the.br,tmp.br,trd.br,tur.br,tv.br,udi.br,vet.br,vix.br,vlog.br,wiki.br,zlg.br,bs,com.bs,net.bs,org.bs,edu.bs,gov.bs,bt,com.bt,edu.bt,gov.bt,net.bt,org.bt,bv,bw,co.bw,org.bw,by,gov.by,mil.by,com.by,of.by,bz,com.bz,net.bz,org.bz,edu.bz,gov.bz,ca,ab.ca,bc.ca,mb.ca,nb.ca,nf.ca,nl.ca,ns.ca,nt.ca,nu.ca,on.ca,pe.ca,qc.ca,sk.ca,yk.ca,gc.ca,cat,cc,cd,gov.cd,cf,cg,ch,ci,org.ci,or.ci,com.ci,co.ci,edu.ci,ed.ci,ac.ci,net.ci,go.ci,asso.ci,aéroport.ci,int.ci,presse.ci,md.ci,gouv.ci,ck,cl,co.cl,gob.cl,gov.cl,mil.cl,cm,co.cm,com.cm,gov.cm,net.cm,cn,ac.cn,com.cn,edu.cn,gov.cn,net.cn,org.cn,mil.cn,co,arts.co,com.co,edu.co,firm.co,gov.co,info.co,int.co,mil.co,net.co,nom.co,org.co,rec.co,web.co,com,coop,cr,ac.cr,co.cr,ed.cr,fi.cr,go.cr,or.cr,sa.cr,cu,com.cu,edu.cu,org.cu,net.cu,gov.cu,inf.cu,cv,com.cv,edu.cv,int.cv,nome.cv,org.cv,cw,com.cw,edu.cw,net.cw,org.cw,cx,gov.cx,cy,ac.cy,biz.cy,com.cy,ekloges.cy,gov.cy,ltd.cy,mil.cy,net.cy,org.cy,press.cy,pro.cy,tm.cy,cz,de,dj,dk,dm,com.dm,net.dm,org.dm,edu.dm,gov.dm,do,art.do,com.do,edu.do,gob.do,gov.do,mil.do,net.do,org.do,sld.do,web.do,dz,art.dz,asso.dz,com.dz,edu.dz,gov.dz,org.dz,net.dz,pol.dz,soc.dz,tm.dz,ec,com.ec,info.ec,net.ec,fin.ec,k12.ec,med.ec,pro.ec,org.ec,edu.ec,gov.ec,gob.ec,mil.ec,edu,ee,edu.ee,gov.ee,riik.ee,lib.ee,med.ee,com.ee,pri.ee,aip.ee,org.ee,fie.ee,eg,com.eg,edu.eg,eun.eg,gov.eg,mil.eg,name.eg,net.eg,org.eg,sci.eg,er,es,com.es,nom.es,org.es,gob.es,edu.es,et,com.et,gov.et,org.et,edu.et,biz.et,name.et,info.et,net.et,eu,fi,aland.fi,fj,ac.fj,biz.fj,com.fj,gov.fj,info.fj,mil.fj,name.fj,net.fj,org.fj,pro.fj,fk,com.fm,edu.fm,net.fm,org.fm,fm,fo,fr,asso.fr,com.fr,gouv.fr,nom.fr,prd.fr,tm.fr,aeroport.fr,avocat.fr,avoues.fr,cci.fr,chambagri.fr,chirurgiens-dentistes.fr,experts-comptables.fr,geometre-expert.fr,greta.fr,huissier-justice.fr,medecin.fr,notaires.fr,pharmacien.fr,port.fr,veterinaire.fr,ga,gb,edu.gd,gov.gd,gd,ge,com.ge,edu.ge,gov.ge,org.ge,mil.ge,net.ge,pvt.ge,gf,gg,co.gg,net.gg,org.gg,gh,com.gh,edu.gh,gov.gh,org.gh,mil.gh,gi,com.gi,ltd.gi,gov.gi,mod.gi,edu.gi,org.gi,gl,co.gl,com.gl,edu.gl,net.gl,org.gl,gm,gn,ac.gn,com.gn,edu.gn,gov.gn,org.gn,net.gn,gov,gp,com.gp,net.gp,mobi.gp,edu.gp,org.gp,asso.gp,gq,gr,com.gr,edu.gr,net.gr,org.gr,gov.gr,gs,gt,com.gt,edu.gt,gob.gt,ind.gt,mil.gt,net.gt,org.gt,gu,com.gu,edu.gu,gov.gu,guam.gu,info.gu,net.gu,org.gu,web.gu,gw,gy,co.gy,com.gy,edu.gy,gov.gy,net.gy,org.gy,hk,com.hk,edu.hk,gov.hk,idv.hk,net.hk,org.hk,hm,hn,com.hn,edu.hn,org.hn,net.hn,mil.hn,gob.hn,hr,iz.hr,from.hr,name.hr,com.hr,ht,com.ht,shop.ht,firm.ht,info.ht,adult.ht,net.ht,pro.ht,org.ht,med.ht,art.ht,coop.ht,pol.ht,asso.ht,edu.ht,rel.ht,gouv.ht,perso.ht,hu,co.hu,info.hu,org.hu,priv.hu,sport.hu,tm.hu,2000.hu,agrar.hu,bolt.hu,casino.hu,city.hu,erotica.hu,erotika.hu,film.hu,forum.hu,games.hu,hotel.hu,ingatlan.hu,jogasz.hu,konyvelo.hu,lakas.hu,media.hu,news.hu,reklam.hu,sex.hu,shop.hu,suli.hu,szex.hu,tozsde.hu,utazas.hu,video.hu,id,ac.id,biz.id,co.id,desa.id,go.id,mil.id,my.id,net.id,or.id,ponpes.id,sch.id,web.id,ie,gov.ie,il,ac.il,co.il,gov.il,idf.il,k12.il,muni.il,net.il,org.il,im,ac.im,co.im,com.im,ltd.co.im,net.im,org.im,plc.co.im,tt.im,tv.im,in,5g.in,6g.in,ac.in,ai.in,am.in,bihar.in,biz.in,business.in,ca.in,cn.in,co.in,com.in,coop.in,cs.in,delhi.in,dr.in,edu.in,er.in,firm.in,gen.in,gov.in,gujarat.in,ind.in,info.in,int.in,internet.in,io.in,me.in,mil.in,net.in,nic.in,org.in,pg.in,post.in,pro.in,res.in,travel.in,tv.in,uk.in,up.in,us.in,info,int,eu.int,io,com.io,iq,gov.iq,edu.iq,mil.iq,com.iq,org.iq,net.iq,ir,ac.ir,co.ir,gov.ir,id.ir,net.ir,org.ir,sch.ir,is,net.is,com.is,edu.is,gov.is,org.is,int.is,it,gov.it,edu.it,je,co.je,net.je,org.je,jm,jo,com.jo,org.jo,net.jo,edu.jo,sch.jo,gov.jo,mil.jo,name.jo,jobs,jp,ac.jp,ad.jp,co.jp,ed.jp,go.jp,gr.jp,lg.jp,ne.jp,or.jp,ke,ac.ke,co.ke,go.ke,info.ke,me.ke,mobi.ke,ne.ke,or.ke,sc.ke,kg,org.kg,net.kg,com.kg,edu.kg,gov.kg,mil.kg,kh,ki,edu.ki,biz.ki,net.ki,org.ki,gov.ki,info.ki,com.ki,km,org.km,nom.km,gov.km,prd.km,tm.km,edu.km,mil.km,ass.km,com.km,kn,net.kn,org.kn,edu.kn,gov.kn,kp,com.kp,edu.kp,gov.kp,org.kp,rep.kp,tra.kp,kr,ac.kr,co.kr,es.kr,go.kr,hs.kr,kg.kr,mil.kr,ms.kr,ne.kr,or.kr,pe.kr,re.kr,sc.kr,kw,com.kw,edu.kw,emb.kw,gov.kw,ind.kw,net.kw,org.kw,ky,com.ky,edu.ky,net.ky,org.ky,kz,org.kz,edu.kz,net.kz,gov.kz,mil.kz,com.kz,la,int.la,net.la,info.la,edu.la,gov.la,per.la,com.la,org.la,lb,com.lb,edu.lb,gov.lb,net.lb,org.lb,lc,com.lc,net.lc,co.lc,org.lc,edu.lc,gov.lc,li,lk,gov.lk,sch.lk,net.lk,int.lk,com.lk,org.lk,edu.lk,ngo.lk,soc.lk,web.lk,ltd.lk,assn.lk,grp.lk,hotel.lk,ac.lk,lr,com.lr,edu.lr,gov.lr,org.lr,net.lr,ls,ac.ls,biz.ls,co.ls,edu.ls,gov.ls,info.ls,net.ls,org.ls,sc.ls,lt,gov.lt,lu,lv,com.lv,edu.lv,gov.lv,org.lv,mil.lv,id.lv,net.lv,asn.lv,conf.lv,ly,com.ly,net.ly,gov.ly,plc.ly,edu.ly,sch.ly,med.ly,org.ly,id.ly,ma,co.ma,net.ma,gov.ma,org.ma,ac.ma,press.ma,mc,tm.mc,asso.mc,md,me,co.me,net.me,org.me,edu.me,ac.me,gov.me,its.me,priv.me,mg,org.mg,nom.mg,gov.mg,prd.mg,tm.mg,edu.mg,mil.mg,com.mg,co.mg,mh,mil,mk,com.mk,org.mk,net.mk,edu.mk,gov.mk,inf.mk,name.mk,ml,com.ml,edu.ml,gouv.ml,gov.ml,net.ml,org.ml,presse.ml,mm,mn,gov.mn,edu.mn,org.mn,mo,com.mo,net.mo,org.mo,edu.mo,gov.mo,mobi,mp,mq,mr,gov.mr,ms,com.ms,edu.ms,gov.ms,net.ms,org.ms,mt,com.mt,edu.mt,net.mt,org.mt,mu,com.mu,net.mu,org.mu,gov.mu,ac.mu,co.mu,or.mu,museum,mv,aero.mv,biz.mv,com.mv,coop.mv,edu.mv,gov.mv,info.mv,int.mv,mil.mv,museum.mv,name.mv,net.mv,org.mv,pro.mv,mw,ac.mw,biz.mw,co.mw,com.mw,coop.mw,edu.mw,gov.mw,int.mw,museum.mw,net.mw,org.mw,mx,com.mx,org.mx,gob.mx,edu.mx,net.mx,my,biz.my,com.my,edu.my,gov.my,mil.my,name.my,net.my,org.my,mz,ac.mz,adv.mz,co.mz,edu.mz,gov.mz,mil.mz,net.mz,org.mz,na,info.na,pro.na,name.na,school.na,or.na,dr.na,us.na,mx.na,ca.na,in.na,cc.na,tv.na,ws.na,mobi.na,co.na,com.na,org.na,name,nc,asso.nc,nom.nc,ne,net,nf,com.nf,net.nf,per.nf,rec.nf,web.nf,arts.nf,firm.nf,info.nf,other.nf,store.nf,ng,com.ng,edu.ng,gov.ng,i.ng,mil.ng,mobi.ng,name.ng,net.ng,org.ng,sch.ng,ni,ac.ni,biz.ni,co.ni,com.ni,edu.ni,gob.ni,in.ni,info.ni,int.ni,mil.ni,net.ni,nom.ni,org.ni,web.ni,nl,no,fhs.no,vgs.no,fylkesbibl.no,folkebibl.no,museum.no,idrett.no,priv.no,mil.no,stat.no,dep.no,kommune.no,herad.no,np,nr,biz.nr,info.nr,gov.nr,edu.nr,org.nr,net.nr,com.nr,nu,nz,ac.nz,co.nz,cri.nz,geek.nz,gen.nz,govt.nz,health.nz,iwi.nz,kiwi.nz,maori.nz,mil.nz,māori.nz,net.nz,org.nz,parliament.nz,school.nz,om,co.om,com.om,edu.om,gov.om,med.om,museum.om,net.om,org.om,pro.om,onion,org,pa,ac.pa,gob.pa,com.pa,org.pa,sld.pa,edu.pa,net.pa,ing.pa,abo.pa,med.pa,nom.pa,pe,edu.pe,gob.pe,nom.pe,mil.pe,org.pe,com.pe,net.pe,pf,com.pf,org.pf,edu.pf,pg,ph,com.ph,net.ph,org.ph,gov.ph,edu.ph,ngo.ph,mil.ph,i.ph,pk,com.pk,net.pk,edu.pk,org.pk,fam.pk,biz.pk,web.pk,gov.pk,gob.pk,gok.pk,gon.pk,gop.pk,gos.pk,info.pk,pl,com.pl,net.pl,org.pl,aid.pl,agro.pl,atm.pl,auto.pl,biz.pl,edu.pl,gmina.pl,gsm.pl,info.pl,mail.pl,miasta.pl,media.pl,mil.pl,nieruchomosci.pl,nom.pl,pc.pl,powiat.pl,priv.pl,realestate.pl,rel.pl,sex.pl,shop.pl,sklep.pl,sos.pl,szkola.pl,targi.pl,tm.pl,tourism.pl,travel.pl,turystyka.pl,pm,pn,gov.pn,co.pn,org.pn,edu.pn,net.pn,post,pr,com.pr,net.pr,org.pr,gov.pr,edu.pr,isla.pr,pro.pr,biz.pr,info.pr,name.pr,est.pr,prof.pr,ac.pr,pro,aaa.pro,aca.pro,acct.pro,avocat.pro,bar.pro,cpa.pro,eng.pro,jur.pro,law.pro,med.pro,recht.pro,ps,edu.ps,gov.ps,sec.ps,plo.ps,com.ps,org.ps,net.ps,pt,net.pt,gov.pt,org.pt,edu.pt,int.pt,publ.pt,com.pt,nome.pt,pw,co.pw,ne.pw,or.pw,ed.pw,go.pw,belau.pw,py,com.py,coop.py,edu.py,gov.py,mil.py,net.py,org.py,qa,com.qa,edu.qa,gov.qa,mil.qa,name.qa,net.qa,org.qa,sch.qa,re,asso.re,com.re,nom.re,ro,arts.ro,com.ro,firm.ro,info.ro,nom.ro,nt.ro,org.ro,rec.ro,store.ro,tm.ro,www.ro,rs,ac.rs,co.rs,edu.rs,gov.rs,in.rs,org.rs,ru,rw,ac.rw,co.rw,coop.rw,gov.rw,mil.rw,net.rw,org.rw,sa,com.sa,net.sa,org.sa,gov.sa,med.sa,pub.sa,edu.sa,sch.sa,sb,com.sb,edu.sb,gov.sb,net.sb,org.sb,sc,com.sc,gov.sc,net.sc,org.sc,edu.sc,sd,com.sd,net.sd,org.sd,edu.sd,med.sd,tv.sd,gov.sd,info.sd,se,a.se,ac.se,b.se,bd.se,brand.se,c.se,d.se,e.se,f.se,fh.se,fhsk.se,fhv.se,g.se,h.se,i.se,k.se,komforb.se,kommunalforbund.se,komvux.se,l.se,lanbib.se,m.se,n.se,naturbruksgymn.se,o.se,org.se,p.se,parti.se,pp.se,press.se,r.se,s.se,t.se,tm.se,u.se,w.se,x.se,y.se,z.se,sg,com.sg,net.sg,org.sg,gov.sg,edu.sg,per.sg,sh,com.sh,net.sh,gov.sh,org.sh,mil.sh,si,sj,sk,sl,com.sl,net.sl,edu.sl,gov.sl,org.sl,sm,sn,art.sn,com.sn,edu.sn,gouv.sn,org.sn,perso.sn,univ.sn,so,com.so,edu.so,gov.so,me.so,net.so,org.so,sr,ss,biz.ss,com.ss,edu.ss,gov.ss,me.ss,net.ss,org.ss,sch.ss,st,co.st,com.st,consulado.st,edu.st,embaixada.st,mil.st,net.st,org.st,principe.st,saotome.st,store.st,su,sv,com.sv,edu.sv,gob.sv,org.sv,red.sv,sx,gov.sx,sy,edu.sy,gov.sy,net.sy,mil.sy,com.sy,org.sy,sz,co.sz,ac.sz,org.sz,tc,td,tel,tf,tg,th,ac.th,co.th,go.th,in.th,mi.th,net.th,or.th,tj,ac.tj,biz.tj,co.tj,com.tj,edu.tj,go.tj,gov.tj,int.tj,mil.tj,name.tj,net.tj,nic.tj,org.tj,test.tj,web.tj,tk,tl,gov.tl,tm,com.tm,co.tm,org.tm,net.tm,nom.tm,gov.tm,mil.tm,edu.tm,tn,com.tn,ens.tn,fin.tn,gov.tn,ind.tn,info.tn,intl.tn,mincom.tn,nat.tn,net.tn,org.tn,perso.tn,tourism.tn,to,com.to,gov.to,net.to,org.to,edu.to,mil.to,tr,av.tr,bbs.tr,bel.tr,biz.tr,com.tr,dr.tr,edu.tr,gen.tr,gov.tr,info.tr,mil.tr,k12.tr,kep.tr,name.tr,net.tr,org.tr,pol.tr,tel.tr,tsk.tr,tv.tr,web.tr,nc.tr,tt,co.tt,com.tt,org.tt,net.tt,biz.tt,info.tt,pro.tt,int.tt,coop.tt,jobs.tt,mobi.tt,travel.tt,museum.tt,aero.tt,name.tt,gov.tt,edu.tt,tv,tw,edu.tw,gov.tw,mil.tw,com.tw,net.tw,org.tw,idv.tw,game.tw,ebiz.tw,club.tw,tz,ac.tz,co.tz,go.tz,hotel.tz,info.tz,me.tz,mil.tz,mobi.tz,ne.tz,or.tz,sc.tz,tv.tz,ua,com.ua,edu.ua,gov.ua,in.ua,net.ua,org.ua,ug,co.ug,or.ug,ac.ug,sc.ug,go.ug,ne.ug,com.ug,org.ug,uk,ac.uk,co.uk,gov.uk,ltd.uk,me.uk,net.uk,nhs.uk,org.uk,plc.uk,police.uk,us,dni.us,fed.us,isa.us,kids.us,nsn.us,ak.us,al.us,ar.us,as.us,az.us,ca.us,co.us,ct.us,dc.us,de.us,fl.us,ga.us,gu.us,hi.us,ia.us,id.us,il.us,in.us,ks.us,ky.us,la.us,ma.us,md.us,me.us,mi.us,mn.us,mo.us,ms.us,mt.us,nc.us,nd.us,ne.us,nh.us,nj.us,nm.us,nv.us,ny.us,oh.us,ok.us,or.us,pa.us,pr.us,ri.us,sc.us,sd.us,tn.us,tx.us,ut.us,vi.us,vt.us,va.us,wa.us,wi.us,wv.us,wy.us,uy,com.uy,edu.uy,gub.uy,mil.uy,net.uy,org.uy,uz,co.uz,com.uz,net.uz,org.uz,va,vc,com.vc,net.vc,org.vc,gov.vc,mil.vc,edu.vc,ve,arts.ve,bib.ve,co.ve,com.ve,e12.ve,edu.ve,firm.ve,gob.ve,gov.ve,info.ve,int.ve,mil.ve,net.ve,nom.ve,org.ve,rar.ve,rec.ve,store.ve,tec.ve,web.ve,vg,vi,co.vi,com.vi,k12.vi,net.vi,org.vi,vn,ac.vn,ai.vn,biz.vn,com.vn,edu.vn,gov.vn,health.vn,id.vn,info.vn,int.vn,io.vn,name.vn,net.vn,org.vn,pro.vn,vu,com.vu,edu.vu,net.vu,org.vu,wf,ws,com.ws,net.ws,org.ws,gov.ws,edu.ws,yt,ye,com.ye,edu.ye,gov.ye,net.ye,mil.ye,org.ye,ac.za,agric.za,alt.za,co.za,edu.za,gov.za,grondar.za,law.za,mil.za,net.za,ngo.za,nic.za,nis.za,nom.za,org.za,school.za,tm.za,web.za,zm,ac.zm,biz.zm,co.zm,com.zm,edu.zm,gov.zm,info.zm,mil.zm,net.zm,org.zm,sch.zm,zw,ac.zw,co.zw,gov.zw,mil.zw,org.zw".split(","),_publicSuffixesMap={};publicSuffixes.forEach((e=>{_publicSuffixesMap[e]=!0}));const publicSuffixesMap=_publicSuffixesMap;function getTopLevelDomain(e){const[t]=e.split(":"),n=t.split(".");if("localhost"===n[n.length-1]||n.length<2)return n[n.length-1];{const e=n[n.length-2]+"."+n[n.length-1];return n.length>2&&publicSuffixesMap[e]?n[n.length-3]+"."+e:e}}var __awaiter=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{s(r.next(e))}catch(e){i(e)}}function c(e){try{s(r.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))};const defaultConfig={writeKey:null,host:null,debug:!1,fetch:null,echoEvents:!1,cookieDomain:void 0,runtime:void 0},parseQuery=e=>{if(!e)return{};let t=e.length>0&&"?"===e.charAt(0)?e.substring(1):e,n={},r=("?"===t[0]?t.substr(1):t).split("&");for(let e=0;e<r.length;e++){let t=r[e].split("=");n[decodeURIComponent(t[0])]=decodeURIComponent(t[1]||"")}return n};function utmToKey(e){const t=e.substring("utm_".length);return"campaign"===t?"name":t}function parseUtms(e){return Object.entries(e).filter((([e])=>0===e.indexOf("utm_"))).reduce(((e,[t,n])=>Object.assign(Object.assign({},e),{[utmToKey(t)]:n})),{})}function safeCall(e,t){try{return e()}catch(e){return t}}function restoreTraits(e){const t=e.getItem("__user_traits");return"string"==typeof t?safeCall((()=>JSON.parse(t)),{}):t}function getCookie(e){const t=`; ${document.cookie}`.split(`; ${e}=`);return 2===t.length?t.pop().split(";").shift():void 0}function removeCookie(e){document.cookie=e+"=;expires=Thu, 01 Jan 1970 00:00:01 GMT;"}function setCookie(e,t,{domain:n,secure:r}){document.cookie=e+"="+t+";domain="+n+";path=/;expires="+new Date((new Date).getTime()+15768e7).toUTCString()+";SameSite="+(r?"None":"Lax")+(r?";secure":"")}const defaultCookie2Key={__anon_id:"__eventn_id",__user_traits:"__eventn_id_usr",__user_id:"__eventn_uid"},cookieStorage=(e,t)=>({setItem(n,r){const o="object"==typeof r&&null!==r?encodeURIComponent(JSON.stringify(r)):r;setCookie(t[n]||n,o,{domain:e,secure:"https:"===window.location.protocol})},getItem(e){const n=getCookie(t[e]||e);if(void 0===n&&"__user_id"===e){const e=parse(getCookie("__eventn_id_usr"))||{};return e.internal_id||e.user_id||e.id||e.userId}return parse(n)},removeItem(e){removeCookie(t[e]||e)}});function windowRuntime(e){return{documentEncoding:()=>window.document.characterSet,timezoneOffset:()=>(new Date).getTimezoneOffset(),store:()=>cookieStorage(e.cookieDomain||getTopLevelDomain(window.location.hostname),defaultCookie2Key),language:()=>window.navigator.language,pageTitle:()=>window.document.title,pageUrl:()=>window.location.href,referrer:()=>window.document.referrer,screen:()=>({width:window.screen.width,height:window.screen.height,innerWidth:window.innerWidth,innerHeight:window.innerHeight,density:Math.floor(window.devicePixelRatio)}),userAgent:()=>window.navigator.userAgent}}const emptyRuntime=e=>({documentEncoding(){},timezoneOffset(){},store(){const t={};return{setItem(n,r){e.debug&&console.log(`[JITSU EMPTY RUNTIME] Set storage item ${n}=${JSON.stringify(r)}`),t[n]=r},getItem(n){const r=t[n];return e.debug&&console.log(`[JITSU EMPTY RUNTIME] Get storage item ${n}=${JSON.stringify(r)}`),r},removeItem(n){e.debug&&console.log(`[JITSU EMPTY RUNTIME] Get storage item ${n}=${t[n]}`),delete t[n]}}},language(){},pageTitle(){},pageUrl(){},referrer(){},screen(){},userAgent(){}});function deepMerge(e,t){return"object"!=typeof t||null===t||"object"!=typeof e||null===e?t:Object.entries(t).reduce(((t,[n,r])=>(t[n]=deepMerge(e[n],r),t)),e)}function isInBrowser(){return"undefined"!=typeof document&&"undefined"!=typeof window}function adjustPayload(e,t,n){var r,o;const i=t.runtime||(isInBrowser()?windowRuntime(t):emptyRuntime(t)),a=i.pageUrl(),c=safeCall((()=>new URL(a)),void 0),s=c?parseQuery(c.search):{},u=e.properties||{},l=(null===(r=e.properties)||void 0===r?void 0:r.context)||{};null===(o=e.properties)||void 0===o||delete o.context;const g=i.referrer(),d={library:{name:name,version:version},userAgent:i.userAgent(),locale:i.language(),screen:i.screen(),traits:"identify"!=e.type&&"group"!=e.type?Object.assign({},restoreTraits(n)||{}):void 0,page:{path:u.path||c&&c.pathname,referrer:g,referring_domain:safeCall((()=>g&&new URL(g).hostname)),host:c&&c.host,search:u.search||c&&c.search,title:u.title||i.pageTitle(),url:u.url||a,encoding:u.encoding||i.documentEncoding()},campaign:parseUtms(s)},m=Object.assign(Object.assign({},e),{timestamp:(new Date).toISOString(),sentAt:(new Date).toISOString(),messageId:randomId(u.path||c&&c.pathname),writeKey:maskWriteKey(t.writeKey),context:deepMerge(d,l)});return delete m.meta,delete m.options,m}function processDestinations(e,t,n,r,o){return __awaiter(this,void 0,void 0,(function*(){const i=[];for(const a of e){const e=Object.assign(Object.assign({},a.credentials),a.options);if("internal-plugin"===a.deviceOptions.type){const t=internalDestinationPlugins[a.deviceOptions.name];if(t)try{i.push(t.handle(e,n))}catch(e){console.warn(`[JITSU] Error processing event with internal plugin '${a.deviceOptions.name}': ${null==e?void 0:e.message}`,e)}else console.warn(`[JITSU] Unknown internal plugin '${a.deviceOptions.name}' for destination '${a.id}'`)}else if("analytics-plugin"===a.deviceOptions.type){yield loadScript(a.deviceOptions.packageCdn);const i=window[a.deviceOptions.moduleVarName];if(i){let c;try{c=("function"==typeof i?i:i.init)(e)}catch(e){console.warn(`[JITSU] Error creating plugin '${a.deviceOptions.moduleVarName}@${a.deviceOptions.packageCdn}' for destination '${a.id}': ${null==e?void 0:e.message}`,e)}try{r&&console.log(`[JITSU] Plugin '${a.deviceOptions.moduleVarName}@${a.deviceOptions.packageCdn}' for destination '${a.id}' initialized with config:`,c.config),c.initialize({config:c.config,instance:o})}catch(e){console.warn(`[JITSU] Error initializing plugin '${a.deviceOptions.moduleVarName}@${a.deviceOptions.packageCdn}' for destination '${a.id}': ${null==e?void 0:e.message}. Config: ${JSON.stringify(c.config)}`,e);continue}if(c[t])try{c[t]({payload:n,config:c.config,instance:o})}catch(e){console.warn(`[JITSU] Error processing ${t}() with plugin '${a.deviceOptions.moduleVarName}@${a.deviceOptions.packageCdn}' for destination '${a.id}': ${null==e?void 0:e.message}`,e)}}else console.warn(`[JITSU] Broken plugin '${a.deviceOptions.packageCdn}' for destination '${a.id}' - it doesn't export '${a.deviceOptions.moduleVarName}' variable`)}}}))}function looksLikeCuid(e){return 25===e.length&&"c"===e.charAt(0)}function validateWriteKey(e){if(e){const[,t]=e.split(":",2);if(!t&&!looksLikeCuid(e))throw new Error(`Legacy write key detected - ${e}! This format doesn't work anymore, it should be 'key:secret'. Please download a new key from Jitsu UI`)}return e}function maskWriteKey(e){if(e){const[t,n]=e.split(":",2);return n?`${t}:***`:"***"}return e}function send(e,t,n,r,o){if(n.echoEvents)return void console.log(`[JITSU] sending '${e}' event:`,t);const i=`${n.host}/api/s/${e}`,a=n.fetch||globalThis.fetch;if(!a)throw new Error("Please specify fetch function in jitsu plugin initialization, fetch isn't available in global scope");const c=n.debug?{"X-Enable-Debug":"true"}:{},s=adjustPayload(t,n,o),u=n.writeKey?{"X-Write-Key":n.writeKey}:{};return a(i,{method:"POST",headers:Object.assign(Object.assign({"Content-Type":"application/json"},u),c),body:JSON.stringify(s)}).then((e=>(n.debug&&console.log(`[JITSU] ${i} replied ${e.status}. Original payload: `,JSON.stringify(s,null,2)),e.ok?e.text():Promise.reject(e.text())))).then((t=>{let o;try{o=JSON.parse(t)}catch(e){return Promise.reject(`Can't parse JSON: ${t}: ${null==e?void 0:e.message}`)}if(o.destinations)return n.debug&&console.log("[JITSU] Processing device destinations: ",JSON.stringify(o.destinations,null,2)),processDestinations(o.destinations,e,s,!!n.debug,r)})).catch((e=>{n.debug&&console.error(`Jitsu ${i} failed: `,e)}))}const jitsuAnalyticsPlugin=(e={})=>{const t={},n=e=>({setItem(n,r){t[n]=r,e.setItem(n,r)},getItem:n=>t[n]||e.getItem(n),removeItem(n){delete t[n],e.removeItem(n)}}),r=Object.assign(Object.assign({},defaultConfig),e);return{name:"jitsu",config:r,initialize:e=>{const{config:t}=e;if(t.debug&&console.debug("[JITSU] Initializing Jitsu plugin with config: ",JSON.stringify(t)),!t.host&&!t.echoEvents)throw new Error("Please specify host variable in jitsu plugin initialization, or set echoEvents to true");validateWriteKey(t.writeKey)},page:e=>{const{payload:t,config:r,instance:o}=e;return send("page",t,r,o,n(o.storage))},track:e=>{const{payload:t,config:r,instance:o}=e;return send("track",t,r,o,n(o.storage))},identify:e=>{const{payload:r,config:o,instance:i}=e;return t.__user_traits=r.traits,send("identify",r,o,i,n(i.storage))},reset:e=>{Object.keys(t).forEach((e=>delete t[e]))},methods:{group(e,t,o,i){const a=this.instance,c=a.user(),s=(null==o?void 0:o.userId)||(null==c?void 0:c.userId),u=(null==o?void 0:o.anonymousId)||(null==c?void 0:c.anonymousId);return send("group",Object.assign(Object.assign({type:"group",groupId:e,traits:t},u?{anonymousId:u}:{}),s?{userId:s}:{}),r,a,n(a.storage))}}}};function getSeed(){var e;const t=Date.now()%2147483647;return isInBrowser()&&(null===(e=null===window||void 0===window?void 0:window.performance)||void 0===e?void 0:e.now())||t}function randomId(e=""){const t=Date.now();return(Math.random()*t*hash(null!=e?e:"",getSeed())%Number.MAX_SAFE_INTEGER).toString(36)+(Math.random()*t*hash(null!=e?e:"",getSeed())%Number.MAX_SAFE_INTEGER).toString(36)}function hash(e,t=0){let n=3735928559^t,r=1103547991^t;for(let t,o=0;o<e.length;o++)t=e.charCodeAt(o),n=Math.imul(n^t,2654435761),r=Math.imul(r^t,1597334677);return n=Math.imul(n^n>>>16,2246822507)^Math.imul(r^r>>>13,3266489909),r=Math.imul(r^r>>>16,2246822507)^Math.imul(n^n>>>13,3266489909),4294967296*(2097151&r)+(n>>>0)}function parse(e){let t=e;0===(null==e?void 0:e.indexOf("%7B%22"))&&(t=decodeURIComponent(e));try{if(t=JSON.parse(t),"true"===t)return!0;if("false"===t)return!1;if("object"==typeof t)return t;parseFloat(t)===t&&(t=parseFloat(t))}catch(e){}if(null!==t&&""!==t)return t}function createUnderlyingAnalyticsInstance(e,t,n=[]){const r=analyticsLib({app:"test",debug:!!e.debug,storage:t.store(),plugins:[jitsuAnalyticsPlugin(e),...n]}),o=r.page;return r.page=(...e)=>2===e.length&&"string"==typeof e[0]&&"object"==typeof e[1]?o(Object.assign({name:e[0]},e[1])):o(...e),Object.assign(Object.assign({},r),{group(e,t,n,o){for(const i of Object.values(r.plugins))i.group&&i.group(e,t,n,o);return Promise.resolve({})}})}function jitsuAnalytics(e){const t=isInBrowser();return createUnderlyingAnalyticsInstance(e,e.runtime||(t?windowRuntime(e):emptyRuntime(e)))}function snakeToCamel(e){return e.replace(/([-_][a-z])/gi,(e=>e.toUpperCase().replace("-","").replace("_","")))}const booleanParser=e=>"true"===e||"1"===e||"yes"===e,parsers={debug:booleanParser,initOnly:booleanParser};function getParser(e){return parsers[e]||(e=>e)}function getScriptAttributes(e){return e.getAttributeNames().filter((e=>0===e.indexOf("data-"))).map((e=>e.substring("data-".length))).reduce(((t,n)=>Object.assign(Object.assign({},t),{[snakeToCamel(n)]:getParser(snakeToCamel(n))(e.getAttribute(`data-${n}`))})),{})}!function(){const e=function(){const e=window.document.currentScript;if(!e)throw new Error("Can't find script element");const t=new URL(e.src).origin;return Object.assign(Object.assign(Object.assign({},(null===window||void 0===window?void 0:window.jitsuConfig)||{}),getScriptAttributes(e)),{host:t})}(),t=e.namespace||"jitsu";window[t]&&console.log("Jitsu is already initialized"),e.debug&&console.log("Jitsu options: ",JSON.stringify(e));const n=jitsuAnalytics(e);if(e.onload){const t=window[e.onload];t||console.warn(`onload function ${e.onload} is not found in window`),"function"==typeof t?t(n):console.warn(`onload function ${e.onload} is not callable: ${typeof t}`)}window[t]=n,e.initOnly||n.page()}()})();
1
+ (function(){"use strict";function n$2(e,t,n,r,o){for(t=t.split?t.split("."):t,r=0;r<t.length;r++)e=e?e[t[r]]:o;return e===o?n:e}var e="undefined",o$1="object",g$2="any",m$1="*",j$1="__",F$2="undefined"!=typeof process?process:{};F$2.env&&F$2.env.NODE_ENV;var $$1="undefined"!=typeof window;function M$1(e,t){return t.charAt(0)[e]()+t.slice(1)}null!=F$2.versions&&F$2.versions.node,"undefined"!=typeof Deno&&Deno.core,$$1&&"nodejs"===window.name||"undefined"!=typeof navigator&&(navigator.userAgent.includes("Node.js")||navigator.userAgent.includes("jsdom"));var U$1=M$1.bind(null,"toUpperCase"),H$1=M$1.bind(null,"toLowerCase");function J$2(e){return Y$1(e)?U$1("null"):"object"==typeof e?yn(e):Object.prototype.toString.call(e).slice(8,-1)}function R$1(e,t){void 0===t&&(t=!0);var n=J$2(e);return t?H$1(n):n}function V$1(e,t){return typeof t===e}var W$1=V$1.bind(null,"function"),q$1=V$1.bind(null,"string"),I$2=V$1.bind(null,"undefined"),Q$1=V$1.bind(null,"boolean");function Y$1(e){return null===e}function nn(e){return"number"===R$1(e)&&!isNaN(e)}function rn(e){return"array"===R$1(e)}function on(e){if(!un(e))return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function un(e){return e&&("object"==typeof e||null!==e)}function yn(e){return W$1(e.constructor)?e.constructor.name:null}function hn(e){return e instanceof Error||q$1(e.message)&&e.constructor&&nn(e.constructor.stackTraceLimit)}function On(e,t){if("object"!=typeof t||Y$1(t))return!1;if(t instanceof e)return!0;var n=R$1(new e(""));if(hn(t))for(;t;){if(R$1(t)===n)return!0;t=Object.getPrototypeOf(t)}return!1}function $n(e,t){var n=e instanceof Element||e instanceof HTMLDocument;return n&&t?Tn(e,t):n}function Tn(e,t){return void 0===t&&(t=""),e&&e.nodeName===t.toUpperCase()}function _n(e){var t=[].slice.call(arguments,1);return function(){return e.apply(void 0,[].slice.call(arguments).concat(t))}}function n$1(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch(e){return null}}function s(e){return function(e){for(var t,n=Object.create(null),r=/([^&=]+)=?([^&]*)/g;t=r.exec(e);){var o=n$1(t[1]),i=n$1(t[2]);"[]"===o.substring(o.length-2)?(n[o=o.substring(0,o.length-2)]||(n[o]=[])).push(i):n[o]=""===i||i}for(var a in n){var s=a.split("[");s.length>1&&(m(n,s.map((function(e){return e.replace(/[?[\]\\ ]/g,"")})),n[a]),delete n[a])}return n}(function(e){if(e){var t=e.match(/\?(.*)/);return t&&t[1]?t[1].split("#")[0]:""}return $$1&&window.location.search.substring(1)}(e))}function m(e,t,n){for(var r=t.length-1,o=0;o<r;++o){var i=t[o];if("__proto__"===i||"constructor"===i)break;i in e||(e[i]={}),e=e[i]}e[t[r]]=n}function y$1(){for(var e="",t=0,n=4294967295*Math.random()|0;t++<36;){var r="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx"[t-1],o=15&n;e+="-"==r||"4"==r?r:("x"==r?o:3&o|8).toString(16),n=t%8==0?4294967295*Math.random()|0:n>>4}return e}V$1.bind(null,"symbol"),On.bind(null,TypeError),On.bind(null,SyntaxError),_n($n,"form"),_n($n,"button"),_n($n,"input"),_n($n,"select");var l="global",o=j$1+"global"+j$1,n=typeof self===o$1&&self.self===self&&self||typeof global===o$1&&global.global===global&&global||void 0;function a$2(e){return n[o][e]}function f(e,t){return n[o][e]=t}function i$2(e){delete n[o][e]}function u$1(e,t,n){var r;try{if(b$2(e)){var o=window[e];r=o[t].bind(o)}}catch(e){}return r||n}n[o]||(n[o]={});var c$1={};function b$2(t){if(typeof c$1[t]!==e)return c$1[t];try{var n=window[t];n.setItem(e,e),n.removeItem(e)}catch(e){return c$1[t]=!1}return c$1[t]=!0}function g$1(){return g$1=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},g$1.apply(this,arguments)}var h$1="function",v="undefined",y="@@redux/"+Math.random().toString(36),b$1=function(){return typeof Symbol===h$1&&Symbol.observable||"@@observable"}(),I$1=" != "+h$1;function w(e,t,n){var r;if(typeof t===h$1&&typeof n===v&&(n=t,t=void 0),typeof n!==v){if(typeof n!==h$1)throw new Error("enhancer"+I$1);return n(w)(e,t)}if(typeof e!==h$1)throw new Error("reducer"+I$1);var o=e,i=t,a=[],s=a,c=!1;function u(){s===a&&(s=a.slice())}function l(){return i}function g(e){if(typeof e!==h$1)throw new Error("Listener"+I$1);var t=!0;return u(),s.push(e),function(){if(t){t=!1,u();var n=s.indexOf(e);s.splice(n,1)}}}function d(e){if(!on(e))throw new Error("Act != obj");if(typeof e.type===v)throw new Error("ActType "+v);if(c)throw new Error("Dispatch in reducer");try{c=!0,i=o(i,e)}finally{c=!1}for(var t=a=s,n=0;n<t.length;n++)(0,t[n])();return e}return d({type:"@@redux/INIT"}),(r={dispatch:d,subscribe:g,getState:l,replaceReducer:function(e){if(typeof e!==h$1)throw new Error("next reducer"+I$1);o=e,d({type:"@@redux/INIT"})}})[b$1]=function(){var e,t=g;return(e={subscribe:function(e){if("object"!=typeof e)throw new TypeError("Observer != obj");function n(){e.next&&e.next(l())}return n(),{unsubscribe:t(n)}}})[b$1]=function(){return this},e},r}function E$1(e,t){var n=t&&t.type;return"action "+(n&&n.toString()||"?")+"reducer "+e+" returns "+v}function P(){var e=[].slice.call(arguments);return 0===e.length?function(e){return e}:1===e.length?e[0]:e.reduce((function(e,t){return function(){return e(t.apply(void 0,[].slice.call(arguments)))}}))}function S(){var e=arguments;return function(t){return function(n,r,o){var i,a=t(n,r,o),s=a.dispatch,c={getState:a.getState,dispatch:function(e){return s(e)}};return i=[].slice.call(e).map((function(e){return e(c)})),g$1({},a,{dispatch:s=P.apply(void 0,i)(a.dispatch)})}}}var N$1=j$1+"anon_id",A$1=j$1+"user_id",_=j$1+"user_traits",k$1="userId",j="anonymousId",x$1=["bootstrap","params","campaign","initializeStart","initialize","initializeEnd","ready","resetStart","reset","resetEnd","pageStart","page","pageEnd","pageAborted","trackStart","track","trackEnd","trackAborted","identifyStart","identify","identifyEnd","identifyAborted","userIdChanged","registerPlugins","enablePlugin","disablePlugin","online","offline","setItemStart","setItem","setItemEnd","setItemAborted","removeItemStart","removeItem","removeItemEnd","removeItemAborted"],T=["name","EVENTS","config","loaded"],z=x$1.reduce((function(e,t){return e[t]=t,e}),{registerPluginType:function(e){return"registerPlugin:"+e},pluginReadyType:function(e){return"ready:"+e}}),M=/^utm_/,q=/^an_prop_/,V=/^an_trait_/;function C$1(e){var t=e.storage.setItem;return function(n){return function(r){return function(o){if(o.type===z.bootstrap){var i=o.params,a=o.user,s=o.persistedUser,c=o.initialUser,u=s.userId===a.userId;s.anonymousId!==a.anonymousId&&t(N$1,a.anonymousId),u||t(A$1,a.userId),c.traits&&t(_,g$1({},u&&s.traits?s.traits:{},c.traits));var l=Object.keys(o.params);if(l.length){var g=i.an_uid,d=i.an_event,m=l.reduce((function(e,t){if(t.match(M)||t.match(/^(d|g)clid/)){var n=t.replace(M,"");e.campaign["campaign"===n?"name":n]=i[t]}return t.match(q)&&(e.props[t.replace(q,"")]=i[t]),t.match(V)&&(e.traits[t.replace(V,"")]=i[t]),e}),{campaign:{},props:{},traits:{}});n.dispatch(g$1({type:z.params,raw:i},m,g?{userId:g}:{})),g&&setTimeout((function(){return e.identify(g,m.traits)}),0),d&&setTimeout((function(){return e.track(d,m.props)}),0),Object.keys(m.campaign).length&&n.dispatch({type:z.campaign,campaign:m.campaign})}}return r(o)}}}}function U(e){return function(t,n){if(void 0===t&&(t={}),void 0===n&&(n={}),n.type===z.setItemEnd){if(n.key===N$1)return g$1({},t,{anonymousId:n.value});if(n.key===A$1)return g$1({},t,{userId:n.value})}switch(n.type){case z.identify:return Object.assign({},t,{userId:n.userId,traits:g$1({},t.traits,n.traits)});case z.reset:return[A$1,N$1,_].forEach((function(t){e.removeItem(t)})),Object.assign({},t,{userId:null,anonymousId:null,traits:{}});default:return t}}}function R(e){return{userId:e.getItem(A$1),anonymousId:e.getItem(N$1),traits:e.getItem(_)}}var $=function(e){return j$1+"TEMP"+j$1+e};function D(e){var t=e.storage,n=t.setItem,r=t.removeItem,o=t.getItem;return function(e){return function(t){return function(i){var a=i.userId,s=i.traits,c=i.options;if(i.type===z.reset&&([A$1,_,N$1].forEach((function(e){r(e)})),[k$1,j,"traits"].forEach((function(e){i$2($(e))}))),i.type===z.identify){o(N$1)||n(N$1,y$1());var u=o(A$1),l=o(_)||{};u&&u!==a&&e.dispatch({type:z.userIdChanged,old:{userId:u,traits:l},new:{userId:a,traits:s},options:c}),a&&n(A$1,a),s&&n(_,g$1({},l,s))}return t(i)}}}}var B={};function L$1(e,t){B[e]&&W$1(B[e])&&(B[e](t),delete B[e])}function J$1(e,t,n){return new Promise((function(r,o){return t()?r(e):n<1?o(g$1({},e,{queue:!0})):new Promise((function(e){return setTimeout(e,10)})).then((function(i){return J$1(e,t,n-10).then(r,o)}))}))}var X=function(e){var t=e.data,n=e.action,r=e.instance,o=e.state,i=e.allPlugins,a=e.allMatches,s=e.store,c=e.EVENTS;try{var u=o.plugins,l=o.context,g=n.type,d=g.match(H),m=t.exact.map((function(e){return e.pluginName}));d&&(m=a.during.map((function(e){return e.pluginName})));var f=function(e,t){return function(n,r,o){var i=r.config,a=r.name,s=a+"."+n.type;o&&(s=o.event);var c=n.type.match(H)?function(e,t,n,r,o){return function(i,a){var s=r?r.name:e,c=a&&te(a)?a:n;if(r&&(!(c=a&&te(a)?a:[e]).includes(e)||1!==c.length))throw new Error("Method "+t+" can only abort "+e+" plugin. "+JSON.stringify(c)+" input valid");return g$1({},o,{abort:{reason:i,plugins:c,caller:t,_:s}})}}(a,s,t,o,n):function(e,t){return function(){throw new Error(e.type+" action not cancellable. Remove abort in "+t)}}(n,s);return{payload:ie(n),instance:e,config:i||{},abort:c}}}(r,m),p=t.exact.reduce((function(e,t){var n=t.pluginName,r=t.methodName,o=!1;return r.match(/^initialize/)||r.match(/^reset/)||(o=!u[n].loaded),l.offline&&r.match(/^(page|track|identify)/)&&(o=!0),e[""+n]=o,e}),{});return Promise.resolve(t.exact.reduce((function(e,o,a){var s=o.pluginName;return Promise.resolve(e).then((function(e){function o(){return Promise.resolve(e)}var a=function(){if(t.namespaced&&t.namespaced[s])return Promise.resolve(t.namespaced[s].reduce((function(e,t,n){return Promise.resolve(e).then((function(e){return t.method&&W$1(t.method)?(function(e,t){var n=re(e);if(n&&n.name===t){var r=re(n.method);throw new Error([t+" plugin is calling method "+e,"Plugins cant call self","Use "+n.method+" "+(r?"or "+r.method:"")+" in "+t+" plugin insteadof "+e].join("\n"))}}(t.methodName,t.pluginName),Promise.resolve(t.method({payload:e,instance:r,abort:(n=e,o=s,a=t.pluginName,function(e,t){return g$1({},n,{abort:{reason:e,plugins:t||[o],caller:g,from:a||o}})}),config:K(t.pluginName,u,i),plugins:u})).then((function(t){var n=on(t)?t:{};return Promise.resolve(g$1({},e,n))}))):e;var n,o,a}))}),Promise.resolve(n))).then((function(t){e[s]=t}));e[s]=n}();return a&&a.then?a.then(o):o()}))}),Promise.resolve({}))).then((function(e){return Promise.resolve(t.exact.reduce((function(n,o,a){try{var c=t.exact.length===a+1,l=o.pluginName,m=i[l];return Promise.resolve(n).then((function(t){var n=e[l]?e[l]:{};if(d&&(n=t),Z(n,l))return G$1({data:n,method:g,instance:r,pluginName:l,store:s}),Promise.resolve(t);if(Z(t,l))return c&&G$1({data:t,method:g,instance:r,store:s}),Promise.resolve(t);if(p.hasOwnProperty(l)&&!0===p[l])return s.dispatch({type:"queue",plugin:l,payload:n,_:{called:"queue",from:"queueMechanism"}}),Promise.resolve(t);var o=f(e[l],i[l]);return Promise.resolve(m[g]({abort:o.abort,payload:n,instance:r,config:K(l,u,i),plugins:u})).then((function(o){var i=on(o)?o:{},a=g$1({},t,i),c=e[l];if(Z(c,l))G$1({data:c,method:g,instance:r,pluginName:l,store:s});else{var u=g+":"+l;(u.match(/:/g)||[]).length<2&&!g.match(W)&&!g.match(F$1)&&r.dispatch(g$1({},d?a:n,{type:u,_:{called:u,from:"submethod"}}))}return Promise.resolve(a)}))}))}catch(e){return Promise.reject(e)}}),Promise.resolve(n))).then((function(e){if(!(g.match(H)||g.match(/^registerPlugin/)||g.match(F$1)||g.match(W)||g.match(/^params/)||g.match(/^userIdChanged/))){if(c.plugins.includes(g),e._&&e._.originalAction===g)return e;var n=g$1({},e,{_:{originalAction:e.type,called:e.type,from:"engineEnd"}});ee(e,t.exact.length)&&!g.match(/End$/)&&(n=g$1({},n,{type:e.type+"Aborted"})),s.dispatch(n)}return e}))}))}catch(e){return Promise.reject(e)}},H=/Start$/,W=/^bootstrap/,F$1=/^ready/;function G$1(e){var t=e.pluginName,n=e.method+"Aborted"+(t?":"+t:"");e.store.dispatch(g$1({},e.data,{type:n,_:{called:n,from:"abort"}}))}function K(e,t,n){var r=t[e]||n[e];return r&&r.config?r.config:{}}function Q(e,t){return t.reduce((function(t,n){return n[e]?t.concat({methodName:e,pluginName:n.name,method:n[e]}):t}),[])}function Y(e,t){var n=e.replace(H,""),r=t?":"+t:"";return[""+e+r,""+n+r,n+"End"+r]}function Z(e,t){var n=e.abort;return!!n&&(!0===n||ne(n,t)||n&&ne(n.plugins,t))}function ee(e,t){var n=e.abort;if(!n)return!1;if(!0===n||q$1(n))return!0;var r=n.plugins;return te(n)&&n.length===t||te(r)&&r.length===t}function te(e){return Array.isArray(e)}function ne(e,t){return!(!e||!te(e))&&e.includes(t)}function re(e){var t=e.match(/(.*):(.*)/);return!!t&&{method:t[1],name:t[2]}}function ie(e){return Object.keys(e).reduce((function(t,n){return"type"===n||(t[n]=on(e[n])?Object.assign({},e[n]):e[n]),t}),{})}function ae(e,t,n){var r={};return function(o){return function(i){return function(a){try{var s,c=function(e){return s?e:i(g)},u=a.type,l=a.plugins,g=a;if(a.abort)return Promise.resolve(i(a));if(u===z.enablePlugin&&o.dispatch({type:z.initializeStart,plugins:l,disabled:[],fromEnable:!0,meta:a.meta}),u===z.disablePlugin&&setTimeout((function(){return L$1(a.meta.rid,{payload:a})}),0),u===z.initializeEnd){var d=t(),m=Object.keys(d),f=m.filter((function(e){return l.includes(e)})).map((function(e){return d[e]})),p=[],v=[],b=a.disabled,h=f.map((function(e){var t=e.name;return J$1(e,e.loaded,1e4).then((function(n){return r[t]||(o.dispatch({type:z.pluginReadyType(t),name:t,events:Object.keys(e).filter((function(e){return!T.includes(e)}))}),r[t]=!0),p=p.concat(t),e})).catch((function(e){if(e instanceof Error)throw new Error(e);return v=v.concat(e.name),e}))}));Promise.all(h).then((function(e){var t={plugins:p,failed:v,disabled:b};setTimeout((function(){m.length===h.length+b.length&&o.dispatch(g$1({},{type:z.ready},t))}),0)}))}var y=function(){if(u!==z.bootstrap)return/^ready:([^:]*)$/.test(u)&&setTimeout((function(){return function(e,t,n){var r=t(),o=e.getState(),i=o.plugins,a=o.queue,s=o.user;if(!o.context.offline&&a&&a.actions&&a.actions.length){var c=a.actions.reduce((function(e,t,n){return i[t.plugin].loaded?(e.process.push(t),e.processIndex.push(n)):(e.requeue.push(t),e.requeueIndex.push(n)),e}),{processIndex:[],process:[],requeue:[],requeueIndex:[]});if(c.processIndex&&c.processIndex.length){c.processIndex.forEach((function(t){var o=a.actions[t],c=o.plugin,u=o.payload.type,l=r[c][u];if(l&&W$1(l)){var g=function(e,t){return void 0===e&&(e={}),void 0===t&&(t={}),[k$1,j].reduce((function(n,r){return e.hasOwnProperty(r)&&t[r]&&t[r]!==e[r]&&(n[r]=t[r]),n}),e)}(o.payload,s);l({payload:g,config:i[c].config,instance:n});var d=u+":"+c;e.dispatch(g$1({},g,{type:d,_:{called:d,from:"queueDrain"}}))}}));var u=a.actions.filter((function(e,t){return!~c.processIndex.indexOf(t)}));a.actions=u}}}(o,t,e)}),0),Promise.resolve(function(e,t,n,r,o){try{var i=W$1(t)?t():t,a=e.type,s=a.replace(H,"");if(e._&&e._.called)return Promise.resolve(e);var c=n.getState(),u=(d=i,void 0===(m=c.plugins)&&(m={}),void 0===(f=e.options)&&(f={}),Object.keys(d).filter((function(e){var t=f.plugins||{};return Q$1(t[e])?t[e]:!1!==t.all&&(!m[e]||!1!==m[e].enabled)})).map((function(e){return d[e]})));a===z.initializeStart&&e.fromEnable&&(u=Object.keys(c.plugins).filter((function(t){var n=c.plugins[t];return e.plugins.includes(t)&&!n.initialized})).map((function(e){return i[e]})));var l=u.map((function(e){return e.name})),g=function(e,t,n){var r=Y(e).map((function(e){return Q(e,t)}));return t.reduce((function(n,r){var o=r.name,i=Y(e,o).map((function(e){return Q(e,t)})),a=i[0],s=i[1],c=i[2];return a.length&&(n.beforeNS[o]=a),s.length&&(n.duringNS[o]=s),c.length&&(n.afterNS[o]=c),n}),{before:r[0],beforeNS:{},during:r[1],duringNS:{},after:r[2],afterNS:{}})}(a,u);return Promise.resolve(X({action:e,data:{exact:g.before,namespaced:g.beforeNS},state:c,allPlugins:i,allMatches:g,instance:n,store:r,EVENTS:o})).then((function(e){function t(){var t=function(){if(a.match(H))return Promise.resolve(X({action:g$1({},u,{type:s+"End"}),data:{exact:g.after,namespaced:g.afterNS},state:c,allPlugins:i,allMatches:g,instance:n,store:r,EVENTS:o})).then((function(e){e.meta&&e.meta.hasCallback&&L$1(e.meta.rid,{payload:e})}))}();return t&&t.then?t.then((function(){return e})):e}if(ee(e,l.length))return e;var u,d=function(){if(a!==s)return Promise.resolve(X({action:g$1({},e,{type:s}),data:{exact:g.during,namespaced:g.duringNS},state:c,allPlugins:i,allMatches:g,instance:n,store:r,EVENTS:o})).then((function(e){u=e}));u=e}();return d&&d.then?d.then(t):t()}))}catch(e){return Promise.reject(e)}var d,m,f}(a,t,e,o,n)).then((function(e){var t=i(e);return s=1,t}))}();return Promise.resolve(y&&y.then?y.then(c):c(y))}catch(e){return Promise.reject(e)}}}}}function oe(e){return function(t){return function(t){return function(n){var r=n.type,o=n.key,i=n.value,a=n.options;if(r===z.setItem||r===z.removeItem){if(n.abort)return t(n);r===z.setItem?e.setItem(o,i,a):e.removeItem(o,a)}return t(n)}}}}var ue=function(){var e=this;this.before=[],this.after=[],this.addMiddleware=function(t,n){e[n]=e[n].concat(t)},this.removeMiddleware=function(t,n){var r=e[n].findIndex((function(e){return e===t}));-1!==r&&(e[n]=[].concat(e[n].slice(0,r),e[n].slice(r+1)))},this.dynamicMiddlewares=function(t){return function(n){return function(r){return function(o){var i={getState:n.getState,dispatch:function(e){return n.dispatch(e)}},a=e[t].map((function(e){return e(i)}));return P.apply(void 0,a)(r)(o)}}}}};function ce(e){return function(t,n){void 0===t&&(t={});var r={};if("initialize:aborted"===n.type)return t;if(/^registerPlugin:([^:]*)$/.test(n.type)){var o=se(n.type,"registerPlugin"),i=e()[o];if(!i||!o)return t;var a=n.enabled;return r[o]={enabled:a,initialized:!!a&&Boolean(!i.initialize),loaded:!!a&&Boolean(i.loaded()),config:i.config||{}},g$1({},t,r)}if(/^initialize:([^:]*)$/.test(n.type)){var s=se(n.type,z.initialize),c=e()[s];return c&&s?(r[s]=g$1({},t[s],{initialized:!0,loaded:Boolean(c.loaded())}),g$1({},t,r)):t}if(/^ready:([^:]*)$/.test(n.type))return r[n.name]=g$1({},t[n.name],{loaded:!0}),g$1({},t,r);switch(n.type){case z.disablePlugin:return g$1({},t,le(n.plugins,!1,t));case z.enablePlugin:return g$1({},t,le(n.plugins,!0,t));default:return t}}}function se(e,t){return e.substring(t.length+1,e.length)}function le(e,t,n){return e.reduce((function(e,r){return e[r]=g$1({},n[r],{enabled:t}),e}),n)}function fe(e){try{return JSON.parse(JSON.stringify(e))}catch(e){}return e}var de={last:{},history:[]};function pe(e,t){void 0===e&&(e=de);var n=t.options,r=t.meta;if(t.type===z.track){var o=fe(g$1({event:t.event,properties:t.properties},Object.keys(n).length&&{options:n},{meta:r}));return g$1({},e,{last:o,history:e.history.concat(o)})}return e}var me={actions:[]};function ge(e,t){void 0===e&&(e=me);var n=t.payload;switch(t.type){case"queue":var r;return r=n&&n.type&&n.type===z.identify?[t].concat(e.actions):e.actions.concat(t),g$1({},e,{actions:r});case"dequeue":return[];default:return e}}var he=/#.*$/;function ve(e){var t=/(http[s]?:\/\/)?([^\/\s]+\/)(.*)/g.exec(e);return"/"+(t&&t[3]?t[3].split("?")[0].replace(he,""):"")}var ye,be=function(e){if(void 0===e&&(e={}),!$$1)return e;var t=document,n=t.title,r=t.referrer,o=window,i=o.location,a=o.innerWidth,s=o.innerHeight,c=i.hash,u=i.search,l=function(e){var t=function(){if($$1)for(var e,t=document.getElementsByTagName("link"),n=0;e=t[n];n++)if("canonical"===e.getAttribute("rel"))return e.getAttribute("href")}();return t?t.match(/\?/)?t:t+e:window.location.href.replace(he,"")}(u),g={title:n,url:l,path:ve(l),hash:c,search:u,width:a,height:s};return r&&""!==r&&(g.referrer=r),g$1({},g,e)},Ie={last:{},history:[]};function we(e,t){void 0===e&&(e=Ie);var n=t.options;if(t.type===z.page){var r=fe(g$1({properties:t.properties,meta:t.meta},Object.keys(n).length&&{options:n}));return g$1({},e,{last:r,history:e.history.concat(r)})}return e}ye={};var Ee={initialized:!1,sessionId:y$1(),app:null,version:null,debug:!1,offline:!!$$1&&!navigator.onLine,os:{name:"na"},userAgent:$$1?navigator.userAgent:"node",library:{name:"analytics",version:"0.11.0"},timezone:void 0,locale:void 0,campaign:{},referrer:ye};function Pe(e,t){void 0===e&&(e=Ee);var n=e.initialized,r=t.campaign;switch(t.type){case z.campaign:return g$1({},e,{campaign:r});case z.offline:return g$1({},e,{offline:!0});case z.online:return g$1({},e,{offline:!1});default:return n?e:g$1({},Ee,e,{initialized:!0})}}var Se=["plugins","reducers","storage"];function Ne(){return f("analytics",[]),function(e){return function(t,r,i){var a=e(t,r,i),s=a.dispatch;return Object.assign(a,{dispatch:function(e){return n[o].analytics.push(e.action||e),s(e)}})}}}function Ae(e){return function(){return P(P.apply(null,arguments),Ne())}}function _e(e){return e?rn(e)?e:[e]:[]}function Oe(e,t,n){void 0===e&&(e={});var r,o,i=y$1();return t&&(B[i]=(r=t,o=function(e){for(var t,n=e||Array.prototype.slice.call(arguments),r=0;r<n.length;r++)if(W$1(n[r])){t=n[r];break}return t}(n),function(e){o&&o(e),r(e)})),g$1({},e,{rid:i,ts:(new Date).getTime()},t?{hasCallback:!0}:{})}function ke(e){void 0===e&&(e={});var t=e.reducers||{},n=e.initialUser||{},r=(e.plugins||[]).reduce((function(e,t){if(W$1(t))return e.middlewares=e.middlewares.concat(t),e;if(t.NAMESPACE&&(t.name=t.NAMESPACE),!t.name)throw new Error("https://lytics.dev/errors/1");var n=t.EVENTS?Object.keys(t.EVENTS).map((function(e){return t.EVENTS[e]})):[];e.pluginEnabled[t.name]=!(!1===t.enabled||t.config&&!1===t.config.enabled),delete t.enabled,t.methods&&(e.methods[t.name]=Object.keys(t.methods).reduce((function(e,n){var r;return e[n]=(r=t.methods[n],function(){for(var e=Array.prototype.slice.call(arguments),t=new Array(r.length),n=0;n<e.length;n++)t[n]=e[n];return t[t.length]=x,r.apply({instance:x},t)}),e}),{}),delete t.methods);var r=Object.keys(t).concat(n),o=new Set(e.events.concat(r));if(e.events=Array.from(o),e.pluginsArray=e.pluginsArray.concat(t),e.plugins[t.name])throw new Error(t.name+"AlreadyLoaded");return e.plugins[t.name]=t,e.plugins[t.name].loaded||(e.plugins[t.name].loaded=function(){return!0}),e}),{plugins:{},pluginEnabled:{},methods:{},pluginsArray:[],middlewares:[],events:[]}),o=e.storage?e.storage:{getItem:a$2,setItem:f,removeItem:i$2},i=function(e){return function(t,n,r){return n.getState("user")[t]||(r&&on(r)&&r[t]?r[t]:R(e)[t]||a$2($(t))||null)}}(o),a=r.plugins,c=r.events.filter((function(e){return!T.includes(e)})).sort(),u=new Set(c.concat(x$1).filter((function(e){return!T.includes(e)}))),l=Array.from(u).sort(),g=function(){return a},d=new ue,m=d.addMiddleware,p=d.removeMiddleware,b=d.dynamicMiddlewares,h=function(){throw new Error("Abort disabled inListener")},k=s(),I=R(o),_=g$1({},I,n,k.an_uid?{userId:k.an_uid}:{},k.an_aid?{anonymousId:k.an_aid}:{});_.anonymousId||(_.anonymousId=y$1());var O=g$1({enable:function(e,t){return new Promise((function(n){F.dispatch({type:z.enablePlugin,plugins:_e(e),_:{originalAction:z.enablePlugin}},n,[t])}))},disable:function(e,t){return new Promise((function(n){F.dispatch({type:z.disablePlugin,plugins:_e(e),_:{originalAction:z.disablePlugin}},n,[t])}))}},r.methods),x={identify:function(e,t,n,r){try{var o=q$1(e)?e:null,a=on(e)?e:t,s=n||{},c=x.user();f($(k$1),o);var u=o||a.userId||i(k$1,x,a);return Promise.resolve(new Promise((function(e){F.dispatch(g$1({type:z.identifyStart,userId:u,traits:a||{},options:s,anonymousId:c.anonymousId},c.id&&c.id!==o&&{previousId:c.id}),e,[t,n,r])})))}catch(e){return Promise.reject(e)}},track:function(e,t,n,r){try{var o=on(e)?e.event:e;if(!o||!q$1(o))throw new Error("EventMissing");var a=on(e)?e:t||{},s=on(n)?n:{};return Promise.resolve(new Promise((function(e){F.dispatch({type:z.trackStart,event:o,properties:a,options:s,userId:i(k$1,x,t),anonymousId:i(j,x,t)},e,[t,n,r])})))}catch(e){return Promise.reject(e)}},page:function(e,t,n){try{var r=on(e)?e:{},o=on(t)?t:{};return Promise.resolve(new Promise((function(a){F.dispatch({type:z.pageStart,properties:be(r),options:o,userId:i(k$1,x,r),anonymousId:i(j,x,r)},a,[e,t,n])})))}catch(e){return Promise.reject(e)}},user:function(e){if(e===k$1||"id"===e)return i(k$1,x);if(e===j||"anonId"===e)return i(j,x);var t=x.getState("user");return e?n$2(t,e):t},reset:function(e){return new Promise((function(t){F.dispatch({type:z.resetStart},t,e)}))},ready:function(e){return x.on(z.ready,e)},on:function(e,t){if(!e||!W$1(t))return!1;if(e===z.bootstrap)throw new Error(".on disabled for "+e);var n=/Start$|Start:/;if("*"===e){var r=function(e){return function(e){return function(r){return r.type.match(n)&&t({payload:r,instance:x,plugins:a}),e(r)}}},o=function(e){return function(e){return function(r){return r.type.match(n)||t({payload:r,instance:x,plugins:a}),e(r)}}};return m(r,je),m(o,xe),function(){p(r,je),p(o,xe)}}var i=e.match(n)?je:xe,s=function(n){return function(n){return function(r){return r.type===e&&t({payload:r,instance:x,plugins:a,abort:h}),n(r)}}};return m(s,i),function(){return p(s,i)}},once:function(e,t){if(!e||!W$1(t))return!1;if(e===z.bootstrap)throw new Error(".once disabled for "+e);var n=x.on(e,(function(e){t({payload:e.payload,instance:x,plugins:a,abort:h}),n()}));return n},getState:function(e){var t=F.getState();return e?n$2(t,e):Object.assign({},t)},dispatch:function(e){var t=q$1(e)?{type:e}:e;if(x$1.includes(t.type))throw new Error("reserved action "+t.type);var n=g$1({},t,{_:g$1({originalAction:t.type},e._||{})});F.dispatch(n)},enablePlugin:O.enable,disablePlugin:O.disable,plugins:O,storage:{getItem:o.getItem,setItem:function(e,t,n){F.dispatch({type:z.setItemStart,key:e,value:t,options:n})},removeItem:function(e,t){F.dispatch({type:z.removeItemStart,key:e,options:t})}},setAnonymousId:function(e,t){x.storage.setItem(N$1,e,t)},events:{core:x$1,plugins:c}},E=r.middlewares.concat([function(e){return function(e){return function(t){return t.meta||(t.meta=Oe()),e(t)}}},b(je),ae(x,g,{all:l,plugins:c}),oe(o),C$1(x),D(x),b(xe)]),N={context:Pe,user:U(o),page:we,track:pe,plugins:ce(g),queue:ge},A=P,L=P;if($$1&&e.debug){var C=window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__;C&&(A=C({trace:!0,traceLimit:25})),L=function(){return 0===arguments.length?Ne():on(typeof arguments[0])?Ae():Ae().apply(null,arguments)}}var M,J=function(e){return Object.keys(e).reduce((function(t,n){return Se.includes(n)||(t[n]=e[n]),t}),{})}(e),q=r.pluginsArray.reduce((function(e,t){var n=t.name,o=t.config,i=t.loaded,a=r.pluginEnabled[n];return e[n]={enabled:a,initialized:!!a&&Boolean(!t.initialize),loaded:Boolean(i()),config:o||{}},e}),{}),G={context:J,user:_,plugins:q},F=w(function(e){for(var t=Object.keys(e),n={},r=0;r<t.length;r++){var o=t[r];typeof e[o]===h$1&&(n[o]=e[o])}var i,a=Object.keys(n);try{!function(e){Object.keys(e).forEach((function(t){var n=e[t];if(typeof n(void 0,{type:"@@redux/INIT"})===v||typeof n(void 0,{type:y})===v)throw new Error("reducer "+t+" "+v)}))}(n)}catch(e){i=e}return function(e,t){if(void 0===e&&(e={}),i)throw i;for(var r=!1,o={},s=0;s<a.length;s++){var c=a[s],u=e[c],l=(0,n[c])(u,t);if(typeof l===v){var g=E$1(c,t);throw new Error(g)}o[c]=l,r=r||l!==u}return r?o:e}}(g$1({},N,t)),G,L(A(S.apply(void 0,E))));F.dispatch=(M=F.dispatch,function(e,t,n){var r=g$1({},e,{meta:Oe(e.meta,t,_e(n))});return M.apply(null,[r])});var V=Object.keys(a);F.dispatch({type:z.bootstrap,plugins:V,config:J,params:k,user:_,initialUser:n,persistedUser:I});var W=V.filter((function(e){return r.pluginEnabled[e]})),B=V.filter((function(e){return!r.pluginEnabled[e]}));return F.dispatch({type:z.registerPlugins,plugins:V,enabled:r.pluginEnabled}),r.pluginsArray.map((function(e,t){var n=e.bootstrap,o=e.config,i=e.name;n&&W$1(n)&&n({instance:x,config:o,payload:e}),F.dispatch({type:z.registerPluginType(i),name:i,enabled:r.pluginEnabled[i],plugin:e}),r.pluginsArray.length===t+1&&F.dispatch({type:z.initializeStart,plugins:W,disabled:B})})),x}var je="before",xe="after",t="cookie",i$1=a$1(),r$1=d$1,c=d$1;function u(e){return i$1?d$1(e,"",-1):i$2(e)}function a$1(){if(void 0!==i$1)return i$1;var e="cookiecookie";try{d$1(e,e),i$1=-1!==document.cookie.indexOf(e),u(e)}catch(e){i$1=!1}return i$1}function d$1(e,t,n,r,o,i){if("undefined"!=typeof window){var a=arguments.length>1;return!1===i$1&&(a?f(e,t):a$2(e)),a?document.cookie=e+"="+encodeURIComponent(t)+(n?"; expires="+new Date(+new Date+1e3*n).toUTCString()+(r?"; path="+r:"")+(o?"; domain="+o:"")+(i?"; secure":""):""):decodeURIComponent((("; "+document.cookie).split("; "+e+"=")[1]||"").split(";")[0])}}var r="localStorage",g=b$2.bind(null,"localStorage");u$1("localStorage","getItem",a$2),u$1("localStorage","setItem",f),u$1("localStorage","removeItem",i$2);var a="sessionStorage",i=b$2.bind(null,"sessionStorage");function I(e){var t=e;try{if("true"===(t=JSON.parse(e)))return!0;if("false"===t)return!1;if(on(t))return t;parseFloat(t)===t&&(t=parseFloat(t))}catch(e){}if(null!==t&&""!==t)return t}u$1("sessionStorage","getItem",a$2),u$1("sessionStorage","setItem",f),u$1("sessionStorage","removeItem",i$2);var k=g(),O=i(),x=a$1();function C(e,t){if(e){var n=A(t),r=!N(n),o=d(n)?I(localStorage.getItem(e)):void 0;if(r&&!I$2(o))return o;var i=h(n)?I(r$1(e)):void 0;if(r&&i)return i;var a=E(n)?I(sessionStorage.getItem(e)):void 0;if(r&&a)return a;var s=a$2(e);return r?s:{localStorage:o,sessionStorage:a,cookie:i,global:s}}}function L(e,n,o){if(e&&!I$2(n)){var i={},s=A(o),u=JSON.stringify(n),g=!N(s);return d(s)&&(i[r]=F(r,n,I(localStorage.getItem(e))),localStorage.setItem(e,u),g)?i[r]:h(s)&&(i[t]=F(t,n,I(r$1(e))),c(e,u),g)?i[t]:E(s)&&(i[a]=F(a,n,I(sessionStorage.getItem(e))),sessionStorage.setItem(e,u),g)?i[a]:(i[l]=F(l,n,a$2(e)),f(e,n),g?i[l]:i)}}function b(e,n){if(e){var o=A(n),i=C(e,m$1),s={};return!I$2(i.localStorage)&&d(o)&&(localStorage.removeItem(e),s[r]=i.localStorage),!I$2(i.cookie)&&h(o)&&(u(e),s[t]=i.cookie),!I$2(i.sessionStorage)&&E(o)&&(sessionStorage.removeItem(e),s[a]=i.sessionStorage),!I$2(i.global)&&G(o,l)&&(i$2(e),s[l]=i.global),s}}function A(e){return e?q$1(e)?e:e.storage:g$2}function d(e){return k&&G(e,r)}function h(e){return x&&G(e,t)}function E(e){return O&&G(e,a)}function N(e){return e===m$1||"all"===e}function G(e,t){return e===g$2||e===t||N(e)}function F(e,t,n){return{location:e,current:t,previous:n}}var J={setItem:L,getItem:C,removeItem:b};function _defineProperty(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ownKeys(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread2(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(n),!0).forEach((function(t){_defineProperty(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function analyticsLib(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return ke(_objectSpread2(_objectSpread2({},{storage:J}),e))}function findScript(e){return Array.prototype.slice.call(window.document.querySelectorAll("script")).find((t=>t.src===e))}function loadScript(e,t){const n=findScript(e);if(void 0!==n){const e=null==n?void 0:n.getAttribute("status");if("loaded"===e)return Promise.resolve(n);if("loading"===e)return new Promise(((e,t)=>{n.addEventListener("load",(()=>e(n))),n.addEventListener("error",(e=>t(e)))}))}return new Promise(((n,r)=>{var o;const i=window.document.createElement("script");i.type="text/javascript",i.src=e,i.async=!0,i.setAttribute("status","loading");for(const[e,n]of Object.entries(null!=t?t:{}))i.setAttribute(e,n);i.onload=()=>{i.onerror=i.onload=null,i.setAttribute("status","loaded"),n(i)},i.onerror=()=>{i.onerror=i.onload=null,i.setAttribute("status","error"),r(new Error(`Failed to load ${e}`))};const a=window.document.getElementsByTagName("script")[0];null===(o=a.parentElement)||void 0===o||o.insertBefore(i,a)}))}var __awaiter$4=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))};const tagPlugin={id:"tag",handle(e,t){return __awaiter$4(this,void 0,void 0,(function*(){applyFilters(t,e)&&insertTags(e.code,t)}))}};function insertTags(e,t,n={}){let r;try{r=JSON.parse(e)}catch(t){r={code:e,lang:"javascript"}}const o=n.debug||!1;if(isInBrowser())if("javascript"===r.lang)execJs(r.code,t);else{const e=document.createElement("span");e.innerHTML=replaceMacro(r.code,t),document.body.insertAdjacentElement("beforeend",e);e.querySelectorAll("script").forEach((e=>{const t=document.createElement("script");t.type=t.type||"text/javascript",e.hasAttribute("src")&&(t.src=e.src),t.text=e.text,o&&console.log("[JITSU] Executing script"+(e.hasAttribute("src")?` ${e.src}`:""),t.text),document.head.appendChild(t),document.head.removeChild(t)}))}else o&&console.log("[JITSU] insertTags(): cannot insert tags in non-browser environment")}function execJs(code,event){const varName=`jitsu_event_${randomId()}`;window[varName]=event;const iif=`(function(){\n const event = ${varName};\n ${code}\n })()`;try{eval(iif)}catch(e){console.error(`[JITSU] Error executing JS code: ${e.message}. Code: `,iif)}finally{delete window[varName]}return iif}function replaceMacro(e,t){return e.replace(/{{\s*event\s*}}/g,JSON.stringify(t))}var __awaiter$3=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))};const logrocketPlugin={id:"logrocket",handle(e,t){return __awaiter$3(this,void 0,void 0,(function*(){if(!applyFilters(t,e))return;initLogrocketIfNeeded(e.appId);getLogRocketQueue().push((e=>{"identify"===t.type&&t.userId&&e.identify(t.userId,t.traits||{})})),"loaded"===getLogRocketState()&&flushLogRocketQueue(window.LogRocket)}))}};function getLogRocketState(){return window.__jitsuLrState||"fresh"}function setLogRocketState(e){window.__jitsuLrState=e}function getLogRocketQueue(){return window.__jitsuLrQueue||(window.__jitsuLrQueue=[])}function flushLogRocketQueue(e){const t=getLogRocketQueue();for(;t.length>0;){const n=t.shift();try{const t=n(e);t&&t.catch((e=>console.warn(`Async LogRocket method failed: ${e.message}`,e)))}catch(e){console.warn(`LogRocket method failed: ${e.message}`,e)}}}function initLogrocketIfNeeded(e){return __awaiter$3(this,void 0,void 0,(function*(){"fresh"===getLogRocketState()&&(setLogRocketState("loading"),loadScript("https://cdn.lr-ingest.io/LogRocket.min.js",{crossOrigin:"anonymous"}).then((()=>{if(window.LogRocket){try{window.LogRocket.init(e)}catch(t){console.warn(`LogRocket (id=${e}) init failed: ${t.message}`,t),setLogRocketState("failed")}setLogRocketState("loaded"),flushLogRocketQueue(window.LogRocket)}})).catch((t=>{console.warn(`LogRocket (id=${e}) init failed: ${t.message}`,t),setLogRocketState("failed")})))}))}var __awaiter$2=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))};const defaultScriptSrc$1="https://www.googletagmanager.com/gtag/js",gtmPlugin={id:"gtm",handle(e,t){var n,r;return __awaiter$2(this,void 0,void 0,(function*(){if(!applyFilters(t,e))return;yield initGtmIfNeeded(e,t);const o=window[e.dataLayerName||"dataLayer"],i=Object.assign(Object.assign({},t.userId?{user_id:t.userId,userId:t.userId}:{}),t.anonymousId?{anonymousId:t.anonymousId}:{});switch(t.type){case"page":const{properties:e,context:a}=t,s=Object.assign({event:"page_view",page_location:e.url,page_title:e.title,page_path:e.path,page_hash:e.hash,page_search:e.search,page_referrer:null!==(r=null===(n=null==a?void 0:a.page)||void 0===n?void 0:n.referrer)&&void 0!==r?r:""},i);o.push(s);break;case"track":const{properties:c}=t,u=Object.assign(Object.assign({event:t.event},c),i);o.push(u);break;case"identify":const{traits:l}=t,g=Object.assign(Object.assign({event:"identify"},l),i);o.push(g)}o.push((function(){this.reset()}))}))}};function getGtmState(){return window.__jitsuGtmState||"fresh"}function setGtmState(e){window.__jitsuGtmState=e}function initGtmIfNeeded(e,t){return __awaiter$2(this,void 0,void 0,(function*(){if("fresh"!==getGtmState())return;setGtmState("loading");const n=e.dataLayerName||"dataLayer",r="dataLayer"!==n?"&l="+n:"",o=e.preview?`&gtm_preview=${e.preview}&gtm_auth=${e.auth}&gtm_cookies_win=x`:"",i=e.containerId,a=`${e.customScriptSrc||defaultScriptSrc$1}?id=${i}${r}${o}`;window[n]=window[n]||[];const s=function(){window[n].push(arguments)};window[n].push({user_id:t.userId}),s("js",new Date),s("config",i),loadScript(a).then((()=>{setGtmState("loaded")})).catch((e=>{console.warn(`GTM (containerId=${i}) init failed: ${e.message}`,e),setGtmState("failed")}))}))}var __awaiter$1=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))};const defaultScriptSrc="https://www.googletagmanager.com/gtag/js",ga4Plugin={id:"ga4-tag",handle(e,t){var n,r;return __awaiter$1(this,void 0,void 0,(function*(){if(!applyFilters(t,e))return;yield initGa4IfNeeded(e,t);const o=window[e.dataLayerName||"dataLayer"],i=function(){o.push(arguments)},a=Object.assign(Object.assign({},t.userId?{user_id:t.userId,userId:t.userId}:{}),t.anonymousId?{anonymousId:t.anonymousId}:{});switch(t.userId&&i("set",{user_id:t.userId}),t.type){case"page":if(e.autoPageView){console.log("autoPageView");break}const{properties:o,context:s}=t;i("event","page_view",Object.assign({page_location:o.url,page_title:o.title,page_path:o.path,page_hash:o.hash,page_search:o.search,page_referrer:null!==(r=null===(n=null==s?void 0:s.page)||void 0===n?void 0:n.referrer)&&void 0!==r?r:""},a));break;case"track":const{properties:c}=t,u=Object.assign(Object.assign({},c),a);i("event",t.event,u);break;case"identify":const{traits:l}=t;i("event","identify",Object.assign(Object.assign({},l),a))}}))}};function getGa4State(){return window.__jitsuGa4State||"fresh"}function setGa4State(e){window.__jitsuGa4State=e}function initGa4IfNeeded(e,t){return __awaiter$1(this,void 0,void 0,(function*(){if("fresh"!==getGa4State())return;setGa4State("loading");const n=e.dataLayerName||"dataLayer",r="dataLayer"!==n?"&l="+n:"",o=e.measurementIds,i=`${defaultScriptSrc}?id=${o}${r}`;window[n]=window[n]||[];const a=function(){window[n].push(arguments)};a("js",new Date),a("config",o,Object.assign(Object.assign({},t.userId?{user_id:t.userId}:{}),e.autoPageView?{}:{send_page_view:!1})),loadScript(i).then((()=>{setGa4State("loaded")})).catch((t=>{console.warn(`GA4 (containerId=${e.measurementIds}) init failed: ${t.message}`,t),setGa4State("failed")}))}))}function satisfyFilter(e,t){return"*"===e||e.toLowerCase().trim()===(t||"").trim().toLowerCase()}function satisfyDomainFilter(e,t){return"*"===e||(t=t||"",e.startsWith("*.")?t.endsWith(e.substring(1)):e===t)}function applyFilters(e,t){const{hosts:n="*",events:r="*"}=t;try{const t=Array.isArray(r)?r:r.split("\n");return!(!(Array.isArray(n)?n:n.split("\n")).find((t=>{var n,r;return satisfyDomainFilter(t,null===(r=null===(n=e.context)||void 0===n?void 0:n.page)||void 0===r?void 0:r.host)}))||!t.find((t=>satisfyFilter(t,e.type)))&&!t.find((t=>satisfyFilter(t,e.event))))}catch(e){throw console.warn(`Failed to apply filters: ${e.message}. Typeof events: ${typeof r}, typeof hosts: ${typeof n}. Values`,r,n),new Error(`Failed to apply filters: ${e.message}. Typeof events: ${typeof r}, typeof hosts: ${typeof n}`)}}const internalDestinationPlugins={[tagPlugin.id]:tagPlugin,[gtmPlugin.id]:gtmPlugin,[ga4Plugin.id]:ga4Plugin,[logrocketPlugin.id]:logrocketPlugin};var name="@jitsu/js",version="0.0.0";const publicSuffixes="ac,com.ac,edu.ac,gov.ac,net.ac,mil.ac,org.ac,ad,nom.ad,ae,co.ae,net.ae,org.ae,sch.ae,ac.ae,gov.ae,mil.ae,aero,af,gov.af,com.af,org.af,net.af,edu.af,ag,com.ag,org.ag,net.ag,co.ag,nom.ag,ai,off.ai,com.ai,net.ai,org.ai,al,com.al,edu.al,gov.al,mil.al,net.al,org.al,am,co.am,com.am,commune.am,net.am,org.am,ao,ed.ao,gv.ao,og.ao,co.ao,pb.ao,it.ao,aq,ar,bet.ar,com.ar,coop.ar,edu.ar,gob.ar,gov.ar,int.ar,mil.ar,musica.ar,mutual.ar,net.ar,org.ar,senasa.ar,tur.ar,arpa,e164.arpa,in-addr.arpa,ip6.arpa,iris.arpa,uri.arpa,urn.arpa,as,gov.as,asia,at,ac.at,co.at,gv.at,or.at,sth.ac.at,au,com.au,net.au,org.au,edu.au,gov.au,asn.au,id.au,act.au,nsw.au,nt.au,qld.au,sa.au,tas.au,vic.au,wa.au,aw,com.aw,ax,az,com.az,net.az,int.az,gov.az,org.az,edu.az,info.az,pp.az,mil.az,name.az,pro.az,biz.az,ba,com.ba,edu.ba,gov.ba,mil.ba,net.ba,org.ba,bb,biz.bb,co.bb,com.bb,edu.bb,gov.bb,info.bb,net.bb,org.bb,store.bb,tv.bb,bd,be,ac.be,bf,gov.bf,bg,a.bg,b.bg,c.bg,d.bg,e.bg,f.bg,g.bg,h.bg,i.bg,j.bg,k.bg,l.bg,m.bg,n.bg,o.bg,p.bg,q.bg,r.bg,s.bg,t.bg,u.bg,v.bg,w.bg,x.bg,y.bg,z.bg,0.bg,1.bg,2.bg,3.bg,4.bg,5.bg,6.bg,7.bg,8.bg,9.bg,bh,com.bh,edu.bh,net.bh,org.bh,gov.bh,bi,co.bi,com.bi,edu.bi,or.bi,org.bi,biz,bj,africa.bj,agro.bj,architectes.bj,assur.bj,avocats.bj,co.bj,com.bj,eco.bj,econo.bj,edu.bj,info.bj,loisirs.bj,money.bj,net.bj,org.bj,ote.bj,resto.bj,restaurant.bj,tourism.bj,univ.bj,bm,com.bm,edu.bm,gov.bm,net.bm,org.bm,bn,com.bn,edu.bn,gov.bn,net.bn,org.bn,bo,com.bo,edu.bo,gob.bo,int.bo,org.bo,net.bo,mil.bo,tv.bo,web.bo,br,9guacu.br,abc.br,adm.br,adv.br,agr.br,aju.br,am.br,anani.br,aparecida.br,app.br,arq.br,art.br,ato.br,b.br,barueri.br,belem.br,bhz.br,bib.br,bio.br,blog.br,bmd.br,boavista.br,bsb.br,campinagrande.br,campinas.br,caxias.br,cim.br,cng.br,cnt.br,com.br,contagem.br,coop.br,coz.br,cri.br,cuiaba.br,curitiba.br,def.br,des.br,det.br,dev.br,ecn.br,eco.br,edu.br,emp.br,enf.br,eng.br,esp.br,etc.br,eti.br,far.br,feira.br,flog.br,floripa.br,fm.br,fnd.br,fortal.br,fot.br,foz.br,fst.br,g12.br,geo.br,ggf.br,goiania.br,gov.br,gru.br,imb.br,ind.br,inf.br,jab.br,jampa.br,jdf.br,joinville.br,jor.br,jus.br,leg.br,lel.br,log.br,londrina.br,macapa.br,maceio.br,manaus.br,maringa.br,mat.br,med.br,mil.br,morena.br,mp.br,mus.br,natal.br,net.br,niteroi.br,nom.br,not.br,ntr.br,odo.br,ong.br,org.br,osasco.br,palmas.br,poa.br,ppg.br,pro.br,psc.br,psi.br,pvh.br,qsl.br,radio.br,rec.br,recife.br,rep.br,ribeirao.br,rio.br,riobranco.br,riopreto.br,salvador.br,sampa.br,santamaria.br,santoandre.br,saobernardo.br,saogonca.br,seg.br,sjc.br,slg.br,slz.br,sorocaba.br,srv.br,taxi.br,tc.br,tec.br,teo.br,the.br,tmp.br,trd.br,tur.br,tv.br,udi.br,vet.br,vix.br,vlog.br,wiki.br,zlg.br,bs,com.bs,net.bs,org.bs,edu.bs,gov.bs,bt,com.bt,edu.bt,gov.bt,net.bt,org.bt,bv,bw,co.bw,org.bw,by,gov.by,mil.by,com.by,of.by,bz,com.bz,net.bz,org.bz,edu.bz,gov.bz,ca,ab.ca,bc.ca,mb.ca,nb.ca,nf.ca,nl.ca,ns.ca,nt.ca,nu.ca,on.ca,pe.ca,qc.ca,sk.ca,yk.ca,gc.ca,cat,cc,cd,gov.cd,cf,cg,ch,ci,org.ci,or.ci,com.ci,co.ci,edu.ci,ed.ci,ac.ci,net.ci,go.ci,asso.ci,aéroport.ci,int.ci,presse.ci,md.ci,gouv.ci,ck,cl,co.cl,gob.cl,gov.cl,mil.cl,cm,co.cm,com.cm,gov.cm,net.cm,cn,ac.cn,com.cn,edu.cn,gov.cn,net.cn,org.cn,mil.cn,co,arts.co,com.co,edu.co,firm.co,gov.co,info.co,int.co,mil.co,net.co,nom.co,org.co,rec.co,web.co,com,coop,cr,ac.cr,co.cr,ed.cr,fi.cr,go.cr,or.cr,sa.cr,cu,com.cu,edu.cu,org.cu,net.cu,gov.cu,inf.cu,cv,com.cv,edu.cv,int.cv,nome.cv,org.cv,cw,com.cw,edu.cw,net.cw,org.cw,cx,gov.cx,cy,ac.cy,biz.cy,com.cy,ekloges.cy,gov.cy,ltd.cy,mil.cy,net.cy,org.cy,press.cy,pro.cy,tm.cy,cz,de,dj,dk,dm,com.dm,net.dm,org.dm,edu.dm,gov.dm,do,art.do,com.do,edu.do,gob.do,gov.do,mil.do,net.do,org.do,sld.do,web.do,dz,art.dz,asso.dz,com.dz,edu.dz,gov.dz,org.dz,net.dz,pol.dz,soc.dz,tm.dz,ec,com.ec,info.ec,net.ec,fin.ec,k12.ec,med.ec,pro.ec,org.ec,edu.ec,gov.ec,gob.ec,mil.ec,edu,ee,edu.ee,gov.ee,riik.ee,lib.ee,med.ee,com.ee,pri.ee,aip.ee,org.ee,fie.ee,eg,com.eg,edu.eg,eun.eg,gov.eg,mil.eg,name.eg,net.eg,org.eg,sci.eg,er,es,com.es,nom.es,org.es,gob.es,edu.es,et,com.et,gov.et,org.et,edu.et,biz.et,name.et,info.et,net.et,eu,fi,aland.fi,fj,ac.fj,biz.fj,com.fj,gov.fj,info.fj,mil.fj,name.fj,net.fj,org.fj,pro.fj,fk,com.fm,edu.fm,net.fm,org.fm,fm,fo,fr,asso.fr,com.fr,gouv.fr,nom.fr,prd.fr,tm.fr,aeroport.fr,avocat.fr,avoues.fr,cci.fr,chambagri.fr,chirurgiens-dentistes.fr,experts-comptables.fr,geometre-expert.fr,greta.fr,huissier-justice.fr,medecin.fr,notaires.fr,pharmacien.fr,port.fr,veterinaire.fr,ga,gb,edu.gd,gov.gd,gd,ge,com.ge,edu.ge,gov.ge,org.ge,mil.ge,net.ge,pvt.ge,gf,gg,co.gg,net.gg,org.gg,gh,com.gh,edu.gh,gov.gh,org.gh,mil.gh,gi,com.gi,ltd.gi,gov.gi,mod.gi,edu.gi,org.gi,gl,co.gl,com.gl,edu.gl,net.gl,org.gl,gm,gn,ac.gn,com.gn,edu.gn,gov.gn,org.gn,net.gn,gov,gp,com.gp,net.gp,mobi.gp,edu.gp,org.gp,asso.gp,gq,gr,com.gr,edu.gr,net.gr,org.gr,gov.gr,gs,gt,com.gt,edu.gt,gob.gt,ind.gt,mil.gt,net.gt,org.gt,gu,com.gu,edu.gu,gov.gu,guam.gu,info.gu,net.gu,org.gu,web.gu,gw,gy,co.gy,com.gy,edu.gy,gov.gy,net.gy,org.gy,hk,com.hk,edu.hk,gov.hk,idv.hk,net.hk,org.hk,hm,hn,com.hn,edu.hn,org.hn,net.hn,mil.hn,gob.hn,hr,iz.hr,from.hr,name.hr,com.hr,ht,com.ht,shop.ht,firm.ht,info.ht,adult.ht,net.ht,pro.ht,org.ht,med.ht,art.ht,coop.ht,pol.ht,asso.ht,edu.ht,rel.ht,gouv.ht,perso.ht,hu,co.hu,info.hu,org.hu,priv.hu,sport.hu,tm.hu,2000.hu,agrar.hu,bolt.hu,casino.hu,city.hu,erotica.hu,erotika.hu,film.hu,forum.hu,games.hu,hotel.hu,ingatlan.hu,jogasz.hu,konyvelo.hu,lakas.hu,media.hu,news.hu,reklam.hu,sex.hu,shop.hu,suli.hu,szex.hu,tozsde.hu,utazas.hu,video.hu,id,ac.id,biz.id,co.id,desa.id,go.id,mil.id,my.id,net.id,or.id,ponpes.id,sch.id,web.id,ie,gov.ie,il,ac.il,co.il,gov.il,idf.il,k12.il,muni.il,net.il,org.il,im,ac.im,co.im,com.im,ltd.co.im,net.im,org.im,plc.co.im,tt.im,tv.im,in,5g.in,6g.in,ac.in,ai.in,am.in,bihar.in,biz.in,business.in,ca.in,cn.in,co.in,com.in,coop.in,cs.in,delhi.in,dr.in,edu.in,er.in,firm.in,gen.in,gov.in,gujarat.in,ind.in,info.in,int.in,internet.in,io.in,me.in,mil.in,net.in,nic.in,org.in,pg.in,post.in,pro.in,res.in,travel.in,tv.in,uk.in,up.in,us.in,info,int,eu.int,io,com.io,iq,gov.iq,edu.iq,mil.iq,com.iq,org.iq,net.iq,ir,ac.ir,co.ir,gov.ir,id.ir,net.ir,org.ir,sch.ir,is,net.is,com.is,edu.is,gov.is,org.is,int.is,it,gov.it,edu.it,je,co.je,net.je,org.je,jm,jo,com.jo,org.jo,net.jo,edu.jo,sch.jo,gov.jo,mil.jo,name.jo,jobs,jp,ac.jp,ad.jp,co.jp,ed.jp,go.jp,gr.jp,lg.jp,ne.jp,or.jp,ke,ac.ke,co.ke,go.ke,info.ke,me.ke,mobi.ke,ne.ke,or.ke,sc.ke,kg,org.kg,net.kg,com.kg,edu.kg,gov.kg,mil.kg,kh,ki,edu.ki,biz.ki,net.ki,org.ki,gov.ki,info.ki,com.ki,km,org.km,nom.km,gov.km,prd.km,tm.km,edu.km,mil.km,ass.km,com.km,kn,net.kn,org.kn,edu.kn,gov.kn,kp,com.kp,edu.kp,gov.kp,org.kp,rep.kp,tra.kp,kr,ac.kr,co.kr,es.kr,go.kr,hs.kr,kg.kr,mil.kr,ms.kr,ne.kr,or.kr,pe.kr,re.kr,sc.kr,kw,com.kw,edu.kw,emb.kw,gov.kw,ind.kw,net.kw,org.kw,ky,com.ky,edu.ky,net.ky,org.ky,kz,org.kz,edu.kz,net.kz,gov.kz,mil.kz,com.kz,la,int.la,net.la,info.la,edu.la,gov.la,per.la,com.la,org.la,lb,com.lb,edu.lb,gov.lb,net.lb,org.lb,lc,com.lc,net.lc,co.lc,org.lc,edu.lc,gov.lc,li,lk,gov.lk,sch.lk,net.lk,int.lk,com.lk,org.lk,edu.lk,ngo.lk,soc.lk,web.lk,ltd.lk,assn.lk,grp.lk,hotel.lk,ac.lk,lr,com.lr,edu.lr,gov.lr,org.lr,net.lr,ls,ac.ls,biz.ls,co.ls,edu.ls,gov.ls,info.ls,net.ls,org.ls,sc.ls,lt,gov.lt,lu,lv,com.lv,edu.lv,gov.lv,org.lv,mil.lv,id.lv,net.lv,asn.lv,conf.lv,ly,com.ly,net.ly,gov.ly,plc.ly,edu.ly,sch.ly,med.ly,org.ly,id.ly,ma,co.ma,net.ma,gov.ma,org.ma,ac.ma,press.ma,mc,tm.mc,asso.mc,md,me,co.me,net.me,org.me,edu.me,ac.me,gov.me,its.me,priv.me,mg,org.mg,nom.mg,gov.mg,prd.mg,tm.mg,edu.mg,mil.mg,com.mg,co.mg,mh,mil,mk,com.mk,org.mk,net.mk,edu.mk,gov.mk,inf.mk,name.mk,ml,com.ml,edu.ml,gouv.ml,gov.ml,net.ml,org.ml,presse.ml,mm,mn,gov.mn,edu.mn,org.mn,mo,com.mo,net.mo,org.mo,edu.mo,gov.mo,mobi,mp,mq,mr,gov.mr,ms,com.ms,edu.ms,gov.ms,net.ms,org.ms,mt,com.mt,edu.mt,net.mt,org.mt,mu,com.mu,net.mu,org.mu,gov.mu,ac.mu,co.mu,or.mu,museum,mv,aero.mv,biz.mv,com.mv,coop.mv,edu.mv,gov.mv,info.mv,int.mv,mil.mv,museum.mv,name.mv,net.mv,org.mv,pro.mv,mw,ac.mw,biz.mw,co.mw,com.mw,coop.mw,edu.mw,gov.mw,int.mw,museum.mw,net.mw,org.mw,mx,com.mx,org.mx,gob.mx,edu.mx,net.mx,my,biz.my,com.my,edu.my,gov.my,mil.my,name.my,net.my,org.my,mz,ac.mz,adv.mz,co.mz,edu.mz,gov.mz,mil.mz,net.mz,org.mz,na,info.na,pro.na,name.na,school.na,or.na,dr.na,us.na,mx.na,ca.na,in.na,cc.na,tv.na,ws.na,mobi.na,co.na,com.na,org.na,name,nc,asso.nc,nom.nc,ne,net,nf,com.nf,net.nf,per.nf,rec.nf,web.nf,arts.nf,firm.nf,info.nf,other.nf,store.nf,ng,com.ng,edu.ng,gov.ng,i.ng,mil.ng,mobi.ng,name.ng,net.ng,org.ng,sch.ng,ni,ac.ni,biz.ni,co.ni,com.ni,edu.ni,gob.ni,in.ni,info.ni,int.ni,mil.ni,net.ni,nom.ni,org.ni,web.ni,nl,no,fhs.no,vgs.no,fylkesbibl.no,folkebibl.no,museum.no,idrett.no,priv.no,mil.no,stat.no,dep.no,kommune.no,herad.no,np,nr,biz.nr,info.nr,gov.nr,edu.nr,org.nr,net.nr,com.nr,nu,nz,ac.nz,co.nz,cri.nz,geek.nz,gen.nz,govt.nz,health.nz,iwi.nz,kiwi.nz,maori.nz,mil.nz,māori.nz,net.nz,org.nz,parliament.nz,school.nz,om,co.om,com.om,edu.om,gov.om,med.om,museum.om,net.om,org.om,pro.om,onion,org,pa,ac.pa,gob.pa,com.pa,org.pa,sld.pa,edu.pa,net.pa,ing.pa,abo.pa,med.pa,nom.pa,pe,edu.pe,gob.pe,nom.pe,mil.pe,org.pe,com.pe,net.pe,pf,com.pf,org.pf,edu.pf,pg,ph,com.ph,net.ph,org.ph,gov.ph,edu.ph,ngo.ph,mil.ph,i.ph,pk,com.pk,net.pk,edu.pk,org.pk,fam.pk,biz.pk,web.pk,gov.pk,gob.pk,gok.pk,gon.pk,gop.pk,gos.pk,info.pk,pl,com.pl,net.pl,org.pl,aid.pl,agro.pl,atm.pl,auto.pl,biz.pl,edu.pl,gmina.pl,gsm.pl,info.pl,mail.pl,miasta.pl,media.pl,mil.pl,nieruchomosci.pl,nom.pl,pc.pl,powiat.pl,priv.pl,realestate.pl,rel.pl,sex.pl,shop.pl,sklep.pl,sos.pl,szkola.pl,targi.pl,tm.pl,tourism.pl,travel.pl,turystyka.pl,pm,pn,gov.pn,co.pn,org.pn,edu.pn,net.pn,post,pr,com.pr,net.pr,org.pr,gov.pr,edu.pr,isla.pr,pro.pr,biz.pr,info.pr,name.pr,est.pr,prof.pr,ac.pr,pro,aaa.pro,aca.pro,acct.pro,avocat.pro,bar.pro,cpa.pro,eng.pro,jur.pro,law.pro,med.pro,recht.pro,ps,edu.ps,gov.ps,sec.ps,plo.ps,com.ps,org.ps,net.ps,pt,net.pt,gov.pt,org.pt,edu.pt,int.pt,publ.pt,com.pt,nome.pt,pw,co.pw,ne.pw,or.pw,ed.pw,go.pw,belau.pw,py,com.py,coop.py,edu.py,gov.py,mil.py,net.py,org.py,qa,com.qa,edu.qa,gov.qa,mil.qa,name.qa,net.qa,org.qa,sch.qa,re,asso.re,com.re,nom.re,ro,arts.ro,com.ro,firm.ro,info.ro,nom.ro,nt.ro,org.ro,rec.ro,store.ro,tm.ro,www.ro,rs,ac.rs,co.rs,edu.rs,gov.rs,in.rs,org.rs,ru,rw,ac.rw,co.rw,coop.rw,gov.rw,mil.rw,net.rw,org.rw,sa,com.sa,net.sa,org.sa,gov.sa,med.sa,pub.sa,edu.sa,sch.sa,sb,com.sb,edu.sb,gov.sb,net.sb,org.sb,sc,com.sc,gov.sc,net.sc,org.sc,edu.sc,sd,com.sd,net.sd,org.sd,edu.sd,med.sd,tv.sd,gov.sd,info.sd,se,a.se,ac.se,b.se,bd.se,brand.se,c.se,d.se,e.se,f.se,fh.se,fhsk.se,fhv.se,g.se,h.se,i.se,k.se,komforb.se,kommunalforbund.se,komvux.se,l.se,lanbib.se,m.se,n.se,naturbruksgymn.se,o.se,org.se,p.se,parti.se,pp.se,press.se,r.se,s.se,t.se,tm.se,u.se,w.se,x.se,y.se,z.se,sg,com.sg,net.sg,org.sg,gov.sg,edu.sg,per.sg,sh,com.sh,net.sh,gov.sh,org.sh,mil.sh,si,sj,sk,sl,com.sl,net.sl,edu.sl,gov.sl,org.sl,sm,sn,art.sn,com.sn,edu.sn,gouv.sn,org.sn,perso.sn,univ.sn,so,com.so,edu.so,gov.so,me.so,net.so,org.so,sr,ss,biz.ss,com.ss,edu.ss,gov.ss,me.ss,net.ss,org.ss,sch.ss,st,co.st,com.st,consulado.st,edu.st,embaixada.st,mil.st,net.st,org.st,principe.st,saotome.st,store.st,su,sv,com.sv,edu.sv,gob.sv,org.sv,red.sv,sx,gov.sx,sy,edu.sy,gov.sy,net.sy,mil.sy,com.sy,org.sy,sz,co.sz,ac.sz,org.sz,tc,td,tel,tf,tg,th,ac.th,co.th,go.th,in.th,mi.th,net.th,or.th,tj,ac.tj,biz.tj,co.tj,com.tj,edu.tj,go.tj,gov.tj,int.tj,mil.tj,name.tj,net.tj,nic.tj,org.tj,test.tj,web.tj,tk,tl,gov.tl,tm,com.tm,co.tm,org.tm,net.tm,nom.tm,gov.tm,mil.tm,edu.tm,tn,com.tn,ens.tn,fin.tn,gov.tn,ind.tn,info.tn,intl.tn,mincom.tn,nat.tn,net.tn,org.tn,perso.tn,tourism.tn,to,com.to,gov.to,net.to,org.to,edu.to,mil.to,tr,av.tr,bbs.tr,bel.tr,biz.tr,com.tr,dr.tr,edu.tr,gen.tr,gov.tr,info.tr,mil.tr,k12.tr,kep.tr,name.tr,net.tr,org.tr,pol.tr,tel.tr,tsk.tr,tv.tr,web.tr,nc.tr,tt,co.tt,com.tt,org.tt,net.tt,biz.tt,info.tt,pro.tt,int.tt,coop.tt,jobs.tt,mobi.tt,travel.tt,museum.tt,aero.tt,name.tt,gov.tt,edu.tt,tv,tw,edu.tw,gov.tw,mil.tw,com.tw,net.tw,org.tw,idv.tw,game.tw,ebiz.tw,club.tw,tz,ac.tz,co.tz,go.tz,hotel.tz,info.tz,me.tz,mil.tz,mobi.tz,ne.tz,or.tz,sc.tz,tv.tz,ua,com.ua,edu.ua,gov.ua,in.ua,net.ua,org.ua,ug,co.ug,or.ug,ac.ug,sc.ug,go.ug,ne.ug,com.ug,org.ug,uk,ac.uk,co.uk,gov.uk,ltd.uk,me.uk,net.uk,nhs.uk,org.uk,plc.uk,police.uk,us,dni.us,fed.us,isa.us,kids.us,nsn.us,ak.us,al.us,ar.us,as.us,az.us,ca.us,co.us,ct.us,dc.us,de.us,fl.us,ga.us,gu.us,hi.us,ia.us,id.us,il.us,in.us,ks.us,ky.us,la.us,ma.us,md.us,me.us,mi.us,mn.us,mo.us,ms.us,mt.us,nc.us,nd.us,ne.us,nh.us,nj.us,nm.us,nv.us,ny.us,oh.us,ok.us,or.us,pa.us,pr.us,ri.us,sc.us,sd.us,tn.us,tx.us,ut.us,vi.us,vt.us,va.us,wa.us,wi.us,wv.us,wy.us,uy,com.uy,edu.uy,gub.uy,mil.uy,net.uy,org.uy,uz,co.uz,com.uz,net.uz,org.uz,va,vc,com.vc,net.vc,org.vc,gov.vc,mil.vc,edu.vc,ve,arts.ve,bib.ve,co.ve,com.ve,e12.ve,edu.ve,firm.ve,gob.ve,gov.ve,info.ve,int.ve,mil.ve,net.ve,nom.ve,org.ve,rar.ve,rec.ve,store.ve,tec.ve,web.ve,vg,vi,co.vi,com.vi,k12.vi,net.vi,org.vi,vn,ac.vn,ai.vn,biz.vn,com.vn,edu.vn,gov.vn,health.vn,id.vn,info.vn,int.vn,io.vn,name.vn,net.vn,org.vn,pro.vn,vu,com.vu,edu.vu,net.vu,org.vu,wf,ws,com.ws,net.ws,org.ws,gov.ws,edu.ws,yt,ye,com.ye,edu.ye,gov.ye,net.ye,mil.ye,org.ye,ac.za,agric.za,alt.za,co.za,edu.za,gov.za,grondar.za,law.za,mil.za,net.za,ngo.za,nic.za,nis.za,nom.za,org.za,school.za,tm.za,web.za,zm,ac.zm,biz.zm,co.zm,com.zm,edu.zm,gov.zm,info.zm,mil.zm,net.zm,org.zm,sch.zm,zw,ac.zw,co.zw,gov.zw,mil.zw,org.zw".split(","),_publicSuffixesMap={};publicSuffixes.forEach((e=>{_publicSuffixesMap[e]=!0}));const publicSuffixesMap=_publicSuffixesMap;function getTopLevelDomain(e){const[t]=e.split(":"),n=t.split(".");if("localhost"===n[n.length-1]||n.length<2)return n[n.length-1];{const e=n[n.length-2]+"."+n[n.length-1];return n.length>2&&publicSuffixesMap[e]?n[n.length-3]+"."+e:e}}var __awaiter=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))};const defaultConfig={writeKey:null,host:null,debug:!1,fetch:null,echoEvents:!1,cookieDomain:void 0,runtime:void 0},parseQuery=e=>{if(!e)return{};let t=e.length>0&&"?"===e.charAt(0)?e.substring(1):e,n={},r=("?"===t[0]?t.substr(1):t).split("&");for(let e=0;e<r.length;e++){let t=r[e].split("=");n[decodeURIComponent(t[0])]=decodeURIComponent(t[1]||"")}return n};function utmToKey(e){const t=e.substring("utm_".length);return"campaign"===t?"name":t}function parseUtms(e){return Object.entries(e).filter((([e])=>0===e.indexOf("utm_"))).reduce(((e,[t,n])=>Object.assign(Object.assign({},e),{[utmToKey(t)]:n})),{})}function safeCall(e,t){try{return e()}catch(e){return t}}function restoreTraits(e){const t=e.getItem("__user_traits");return"string"==typeof t?safeCall((()=>JSON.parse(t)),{}):t}function getCookie(e){const t=`; ${document.cookie}`.split(`; ${e}=`);return 2===t.length?t.pop().split(";").shift():void 0}function getGa4Sessions(){const e=`; ${document.cookie}`.matchAll(/_ga_(\w+)=([^;]+)/g),t={};let n=0;for(const r of e){const e=r[2].split(".");e.length<3||(t[r[1]]=e[2],n++)}if(0!==n)return t}function removeCookie(e){document.cookie=e+"=;expires=Thu, 01 Jan 1970 00:00:01 GMT;"}function setCookie(e,t,{domain:n,secure:r}){document.cookie=e+"="+t+";domain="+n+";path=/;expires="+new Date((new Date).getTime()+15768e7).toUTCString()+";SameSite="+(r?"None":"Lax")+(r?";secure":"")}const defaultCookie2Key={__anon_id:"__eventn_id",__user_traits:"__eventn_id_usr",__user_id:"__eventn_uid"},cookieStorage=(e,t)=>({setItem(n,r){const o="object"==typeof r&&null!==r?encodeURIComponent(JSON.stringify(r)):r;setCookie(t[n]||n,o,{domain:e,secure:"https:"===window.location.protocol})},getItem(e){const n=getCookie(t[e]||e);if(void 0===n&&"__user_id"===e){const e=parse(getCookie("__eventn_id_usr"))||{};return e.internal_id||e.user_id||e.id||e.userId}return parse(n)},removeItem(e){removeCookie(t[e]||e)}});function windowRuntime(e){return{documentEncoding:()=>window.document.characterSet,timezoneOffset:()=>(new Date).getTimezoneOffset(),store:()=>cookieStorage(e.cookieDomain||getTopLevelDomain(window.location.hostname),defaultCookie2Key),language:()=>window.navigator.language,pageTitle:()=>window.document.title,pageUrl:()=>window.location.href,referrer:()=>window.document.referrer,screen:()=>({width:window.screen.width,height:window.screen.height,innerWidth:window.innerWidth,innerHeight:window.innerHeight,density:Math.floor(window.devicePixelRatio)}),userAgent:()=>window.navigator.userAgent}}const emptyRuntime=e=>({documentEncoding(){},timezoneOffset(){},store(){const t={};return{setItem(n,r){e.debug&&console.log(`[JITSU EMPTY RUNTIME] Set storage item ${n}=${JSON.stringify(r)}`),t[n]=r},getItem(n){const r=t[n];return e.debug&&console.log(`[JITSU EMPTY RUNTIME] Get storage item ${n}=${JSON.stringify(r)}`),r},removeItem(n){e.debug&&console.log(`[JITSU EMPTY RUNTIME] Get storage item ${n}=${t[n]}`),delete t[n]}}},language(){},pageTitle(){},pageUrl(){},referrer(){},screen(){},userAgent(){}});function deepMerge(e,t){return"object"!=typeof t||null===t||"object"!=typeof e||null===e?t:Object.entries(t).reduce(((t,[n,r])=>(t[n]=deepMerge(e[n],r),t)),e)}function isInBrowser(){return"undefined"!=typeof document&&"undefined"!=typeof window}function adjustPayload(e,t,n){var r,o,i;const a=t.runtime||(isInBrowser()?windowRuntime(t):emptyRuntime(t)),s=a.pageUrl(),c=safeCall((()=>new URL(s)),void 0),u=c?parseQuery(c.search):{},l=e.properties||{},g=(null===(r=e.properties)||void 0===r?void 0:r.context)||{};null===(o=e.properties)||void 0===o||delete o.context;const d=a.referrer(),m={library:{name:name,version:version},userAgent:a.userAgent(),locale:a.language(),screen:a.screen(),traits:"identify"!=e.type&&"group"!=e.type?Object.assign({},restoreTraits(n)||{}):void 0,page:{path:l.path||c&&c.pathname,referrer:d,referring_domain:safeCall((()=>d&&new URL(d).hostname)),host:c&&c.host,search:l.search||c&&c.search,title:l.title||a.pageTitle(),url:l.url||s,encoding:l.encoding||a.documentEncoding()},clientIds:{fbc:getCookie("_fbc"),fbp:getCookie("_fbp"),ga4:{clientId:null===(i=getCookie("_ga"))||void 0===i?void 0:i.split(".").slice(-2).join("."),sessions:getGa4Sessions()}},campaign:parseUtms(u)},f=Object.assign(Object.assign({},e),{timestamp:(new Date).toISOString(),sentAt:(new Date).toISOString(),messageId:randomId(l.path||c&&c.pathname),writeKey:maskWriteKey(t.writeKey),context:deepMerge(m,g)});return delete f.meta,delete f.options,f}function processDestinations(e,t,n,r,o){return __awaiter(this,void 0,void 0,(function*(){const i=[];for(const a of e){let e=[n];a.newEvents&&(e=a.newEvents.map((e=>"same"===e?n:e)));const s=Object.assign(Object.assign({},a.credentials),a.options);if("internal-plugin"===a.deviceOptions.type){const t=internalDestinationPlugins[a.deviceOptions.name];if(t)for(const n of e)try{i.push(t.handle(s,n))}catch(e){console.warn(`[JITSU] Error processing event with internal plugin '${a.deviceOptions.name}': ${null==e?void 0:e.message}`,e)}else console.warn(`[JITSU] Unknown internal plugin '${a.deviceOptions.name}' for destination '${a.id}'`)}else if("analytics-plugin"===a.deviceOptions.type){yield loadScript(a.deviceOptions.packageCdn);const n=window[a.deviceOptions.moduleVarName];if(n){let i;try{i=("function"==typeof n?n:n.init)(s)}catch(e){console.warn(`[JITSU] Error creating plugin '${a.deviceOptions.moduleVarName}@${a.deviceOptions.packageCdn}' for destination '${a.id}': ${null==e?void 0:e.message}`,e)}try{r&&console.log(`[JITSU] Plugin '${a.deviceOptions.moduleVarName}@${a.deviceOptions.packageCdn}' for destination '${a.id}' initialized with config:`,i.config),i.initialize({config:i.config,instance:o})}catch(e){console.warn(`[JITSU] Error initializing plugin '${a.deviceOptions.moduleVarName}@${a.deviceOptions.packageCdn}' for destination '${a.id}': ${null==e?void 0:e.message}. Config: ${JSON.stringify(i.config)}`,e);continue}if(i[t])for(const n of e)try{i[t]({payload:n,config:i.config,instance:o})}catch(e){console.warn(`[JITSU] Error processing ${t}() with plugin '${a.deviceOptions.moduleVarName}@${a.deviceOptions.packageCdn}' for destination '${a.id}': ${null==e?void 0:e.message}`,e)}}else console.warn(`[JITSU] Broken plugin '${a.deviceOptions.packageCdn}' for destination '${a.id}' - it doesn't export '${a.deviceOptions.moduleVarName}' variable`)}}}))}function looksLikeCuid(e){return 25===e.length&&"c"===e.charAt(0)}function validateWriteKey(e){if(e){const[,t]=e.split(":",2);if(!t&&!looksLikeCuid(e))throw new Error(`Legacy write key detected - ${e}! This format doesn't work anymore, it should be 'key:secret'. Please download a new key from Jitsu UI`)}return e}function maskWriteKey(e){if(e){const[t,n]=e.split(":",2);return n?`${t}:***`:"***"}return e}function send(e,t,n,r,o){if(n.echoEvents)return void console.log(`[JITSU] sending '${e}' event:`,t);const i=`${n.host}/api/s/${e}`,a=n.fetch||globalThis.fetch;if(!a)throw new Error("Please specify fetch function in jitsu plugin initialization, fetch isn't available in global scope");const s=n.debug?{"X-Enable-Debug":"true"}:{},c=adjustPayload(t,n,o),u=n.writeKey?{"X-Write-Key":n.writeKey}:{};return a(i,{method:"POST",headers:Object.assign(Object.assign({"Content-Type":"application/json"},u),s),body:JSON.stringify(c)}).then((e=>(n.debug&&console.log(`[JITSU] ${i} replied ${e.status}. Original payload: `,JSON.stringify(c,null,2)),e.ok?e.text():Promise.reject(e.text())))).then((t=>{let o;try{o=JSON.parse(t)}catch(e){return Promise.reject(`Can't parse JSON: ${t}: ${null==e?void 0:e.message}`)}if(o.destinations)return n.debug&&console.log("[JITSU] Processing device destinations: ",JSON.stringify(o.destinations,null,2)),processDestinations(o.destinations,e,c,!!n.debug,r)})).catch((e=>{n.debug&&console.error(`Jitsu ${i} failed: `,e)}))}const jitsuAnalyticsPlugin=(e={})=>{const t={},n=e=>({setItem(n,r){t[n]=r,e.setItem(n,r)},getItem:n=>t[n]||e.getItem(n),removeItem(n){delete t[n],e.removeItem(n)}}),r=Object.assign(Object.assign({},defaultConfig),e);return{name:"jitsu",config:r,initialize:e=>{const{config:t}=e;if(t.debug&&console.debug("[JITSU] Initializing Jitsu plugin with config: ",JSON.stringify(t)),!t.host&&!t.echoEvents)throw new Error("Please specify host variable in jitsu plugin initialization, or set echoEvents to true");validateWriteKey(t.writeKey)},page:e=>{const{payload:t,config:r,instance:o}=e;return send("page",t,r,o,n(o.storage))},track:e=>{const{payload:t,config:r,instance:o}=e;return send("track",t,r,o,n(o.storage))},identify:e=>{const{payload:r,config:o,instance:i}=e;return t.__user_traits=r.traits,send("identify",r,o,i,n(i.storage))},reset:e=>{Object.keys(t).forEach((e=>delete t[e]))},methods:{group(e,t,o,i){const a=this.instance,s=a.user(),c=(null==o?void 0:o.userId)||(null==s?void 0:s.userId),u=(null==o?void 0:o.anonymousId)||(null==s?void 0:s.anonymousId);return send("group",Object.assign(Object.assign({type:"group",groupId:e,traits:t},u?{anonymousId:u}:{}),c?{userId:c}:{}),r,a,n(a.storage))}}}};function getSeed(){var e;const t=Date.now()%2147483647;return isInBrowser()&&(null===(e=null===window||void 0===window?void 0:window.performance)||void 0===e?void 0:e.now())||t}function randomId(e=""){const t=Date.now();return(Math.random()*t*hash(null!=e?e:"",getSeed())%Number.MAX_SAFE_INTEGER).toString(36)+(Math.random()*t*hash(null!=e?e:"",getSeed())%Number.MAX_SAFE_INTEGER).toString(36)}function hash(e,t=0){let n=3735928559^t,r=1103547991^t;for(let t,o=0;o<e.length;o++)t=e.charCodeAt(o),n=Math.imul(n^t,2654435761),r=Math.imul(r^t,1597334677);return n=Math.imul(n^n>>>16,2246822507)^Math.imul(r^r>>>13,3266489909),r=Math.imul(r^r>>>16,2246822507)^Math.imul(n^n>>>13,3266489909),4294967296*(2097151&r)+(n>>>0)}function parse(e){let t=e;0===(null==e?void 0:e.indexOf("%7B%22"))&&(t=decodeURIComponent(e));try{if(t=JSON.parse(t),"true"===t)return!0;if("false"===t)return!1;if("object"==typeof t)return t;parseFloat(t)===t&&(t=parseFloat(t))}catch(e){}if(null!==t&&""!==t)return t}function createUnderlyingAnalyticsInstance(e,t,n=[]){const r=analyticsLib({app:"test",debug:!!e.debug,storage:t.store(),plugins:[jitsuAnalyticsPlugin(e),...n]}),o=r.page;return r.page=(...e)=>2===e.length&&"string"==typeof e[0]&&"object"==typeof e[1]?o(Object.assign({name:e[0]},e[1])):o(...e),Object.assign(Object.assign({},r),{group(e,t,n,o){for(const i of Object.values(r.plugins))i.group&&i.group(e,t,n,o);return Promise.resolve({})}})}function jitsuAnalytics(e){const t=isInBrowser();return createUnderlyingAnalyticsInstance(e,e.runtime||(t?windowRuntime(e):emptyRuntime(e)))}function snakeToCamel(e){return e.replace(/([-_][a-z])/gi,(e=>e.toUpperCase().replace("-","").replace("_","")))}const booleanParser=e=>"true"===e||"1"===e||"yes"===e,parsers={debug:booleanParser,initOnly:booleanParser};function getParser(e){return parsers[e]||(e=>e)}function getScriptAttributes(e){return e.getAttributeNames().filter((e=>0===e.indexOf("data-"))).map((e=>e.substring("data-".length))).reduce(((t,n)=>Object.assign(Object.assign({},t),{[snakeToCamel(n)]:getParser(snakeToCamel(n))(e.getAttribute(`data-${n}`))})),{})}!function(){const e=function(){const e=window.document.currentScript;if(!e)throw new Error("Can't find script element");const t=new URL(e.src).origin;return Object.assign(Object.assign(Object.assign({},(null===window||void 0===window?void 0:window.jitsuConfig)||{}),getScriptAttributes(e)),{host:t})}(),t=e.namespace||"jitsu";window[t]&&console.log("Jitsu is already initialized"),e.debug&&console.log("Jitsu options: ",JSON.stringify(e));const n=jitsuAnalytics(e);if(e.onload){const t=window[e.onload];t||console.warn(`onload function ${e.onload} is not found in window`),"function"==typeof t?t(n):console.warn(`onload function ${e.onload} is not callable: ${typeof t}`)}window[t]=n,e.initOnly||n.page()}()})();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jitsu/js",
3
- "version": "1.3.2",
3
+ "version": "1.6.1",
4
4
  "description": "",
5
5
  "author": "Jitsu Dev Team <dev@jitsu.com>",
6
6
  "main": "dist/jitsu.cjs.js",
@@ -34,7 +34,7 @@
34
34
  "rollup": "^3.2.5",
35
35
  "ts-jest": "29.0.5",
36
36
  "typescript": "^4.9.5",
37
- "@jitsu/protocols": "1.3.2"
37
+ "@jitsu/protocols": "1.6.1"
38
38
  },
39
39
  "dependencies": {
40
40
  "analytics": "^0.8.1"
@@ -77,6 +77,25 @@ function getCookie(name: string) {
77
77
  return parts.length === 2 ? parts.pop().split(";").shift() : undefined;
78
78
  }
79
79
 
80
+ function getGa4Sessions(): Record<string, string> | undefined {
81
+ const value = `; ${document.cookie}`;
82
+ const matches = value.matchAll(/_ga_(\w+)=([^;]+)/g);
83
+ const sessions: Record<string, string> = {};
84
+ let matchesCount = 0;
85
+ for (const match of matches) {
86
+ const parts = match[2].split(".");
87
+ if (parts.length < 3) {
88
+ continue;
89
+ }
90
+ sessions[match[1]] = parts[2];
91
+ matchesCount++;
92
+ }
93
+ if (matchesCount === 0) {
94
+ return undefined;
95
+ }
96
+ return sessions;
97
+ }
98
+
80
99
  function removeCookie(name: string) {
81
100
  document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:01 GMT;";
82
101
  }
@@ -245,7 +264,7 @@ function adjustPayload(payload: any, config: JitsuOptions, storage: PersistentSt
245
264
  const customContext = payload.properties?.context || {};
246
265
  delete payload.properties?.context;
247
266
  const referrer = runtime.referrer();
248
- const context = {
267
+ const context: AnalyticsClientEvent["context"] = {
249
268
  library: {
250
269
  name: jitsuLibraryName,
251
270
  version: jitsuVersion,
@@ -264,6 +283,14 @@ function adjustPayload(payload: any, config: JitsuOptions, storage: PersistentSt
264
283
  url: properties.url || url,
265
284
  encoding: properties.encoding || runtime.documentEncoding(),
266
285
  },
286
+ clientIds: {
287
+ fbc: getCookie("_fbc"),
288
+ fbp: getCookie("_fbp"),
289
+ ga4: {
290
+ clientId: getCookie("_ga")?.split(".").slice(-2).join("."), //last 2 parts of GA cookie
291
+ sessions: getGa4Sessions(),
292
+ },
293
+ },
267
294
  campaign: parseUtms(query),
268
295
  };
269
296
  const withContext = {
@@ -284,6 +311,7 @@ export type DestinationDescriptor = {
284
311
  destinationType: string;
285
312
  credentials: any;
286
313
  options: any;
314
+ newEvents?: any[];
287
315
  deviceOptions: DeviceOptions;
288
316
  };
289
317
  export type AnalyticsPluginDescriptor = {
@@ -302,24 +330,31 @@ export type DeviceOptions = AnalyticsPluginDescriptor | InternalPluginDescriptor
302
330
  async function processDestinations(
303
331
  destinations: DestinationDescriptor[],
304
332
  method: string,
305
- event: AnalyticsClientEvent,
333
+ originalEvent: AnalyticsClientEvent,
306
334
  debug: boolean,
307
335
  analyticsInstance: AnalyticsInstance
308
336
  ) {
309
337
  const promises: Promise<any>[] = [];
338
+
310
339
  for (const destination of destinations) {
340
+ let newEvents = [originalEvent];
341
+ if (destination.newEvents) {
342
+ newEvents = destination.newEvents.map(e => (e === "same" ? originalEvent : e));
343
+ }
311
344
  const credentials = { ...destination.credentials, ...destination.options };
312
345
 
313
346
  if (destination.deviceOptions.type === "internal-plugin") {
314
347
  const plugin = internalDestinationPlugins[destination.deviceOptions.name];
315
348
  if (plugin) {
316
- try {
317
- promises.push(plugin.handle(credentials, event));
318
- } catch (e) {
319
- console.warn(
320
- `[JITSU] Error processing event with internal plugin '${destination.deviceOptions.name}': ${e?.message}`,
321
- e
322
- );
349
+ for (const event of newEvents) {
350
+ try {
351
+ promises.push(plugin.handle(credentials, event));
352
+ } catch (e) {
353
+ console.warn(
354
+ `[JITSU] Error processing event with internal plugin '${destination.deviceOptions.name}': ${e?.message}`,
355
+ e
356
+ );
357
+ }
323
358
  }
324
359
  } else {
325
360
  console.warn(
@@ -362,13 +397,19 @@ async function processDestinations(
362
397
  }
363
398
 
364
399
  if (pluginInstance[method]) {
365
- try {
366
- pluginInstance[method]({ payload: event, config: pluginInstance.config, instance: analyticsInstance });
367
- } catch (e) {
368
- console.warn(
369
- `[JITSU] Error processing ${method}() with plugin '${destination.deviceOptions.moduleVarName}@${destination.deviceOptions.packageCdn}' for destination '${destination.id}': ${e?.message}`,
370
- e
371
- );
400
+ for (const event of newEvents) {
401
+ try {
402
+ pluginInstance[method]({
403
+ payload: event,
404
+ config: pluginInstance.config,
405
+ instance: analyticsInstance,
406
+ });
407
+ } catch (e) {
408
+ console.warn(
409
+ `[JITSU] Error processing ${method}() with plugin '${destination.deviceOptions.moduleVarName}@${destination.deviceOptions.packageCdn}' for destination '${destination.id}': ${e?.message}`,
410
+ e
411
+ );
412
+ }
372
413
  }
373
414
  }
374
415
  }
@@ -0,0 +1,123 @@
1
+ import { loadScript } from "../script-loader";
2
+ import { AnalyticsClientEvent } from "@jitsu/protocols/analytics";
3
+ import { applyFilters, CommonDestinationCredentials, InternalPlugin } from "./index";
4
+
5
+ const defaultScriptSrc = "https://www.googletagmanager.com/gtag/js";
6
+
7
+ export type Ga4DestinationCredentials = {
8
+ debug?: boolean;
9
+ measurementIds?: string;
10
+ autoPageView?: boolean;
11
+ dataLayerName?: string;
12
+ } & CommonDestinationCredentials;
13
+
14
+ export const ga4Plugin: InternalPlugin<Ga4DestinationCredentials> = {
15
+ id: "ga4-tag",
16
+ async handle(config, payload: AnalyticsClientEvent) {
17
+ if (!applyFilters(payload, config)) {
18
+ return;
19
+ }
20
+ await initGa4IfNeeded(config, payload);
21
+
22
+ const dataLayer = window[config.dataLayerName || "dataLayer"];
23
+ const gtag = function () {
24
+ dataLayer.push(arguments);
25
+ };
26
+ const ids = {
27
+ ...(payload.userId ? { user_id: payload.userId, userId: payload.userId } : {}),
28
+ ...(payload.anonymousId ? { anonymousId: payload.anonymousId } : {}),
29
+ };
30
+ if (payload.userId) {
31
+ // @ts-ignore
32
+ gtag("set", { user_id: payload.userId });
33
+ }
34
+
35
+ switch (payload.type) {
36
+ case "page":
37
+ if (config.autoPageView) {
38
+ console.log("autoPageView");
39
+ break;
40
+ }
41
+ const { properties: pageProperties, context } = payload;
42
+ const pageEvent = {
43
+ page_location: pageProperties.url,
44
+ page_title: pageProperties.title,
45
+ page_path: pageProperties.path,
46
+ page_hash: pageProperties.hash,
47
+ page_search: pageProperties.search,
48
+ page_referrer: context?.page?.referrer ?? "",
49
+ ...ids,
50
+ };
51
+ // @ts-ignore
52
+ gtag("event", "page_view", pageEvent);
53
+ break;
54
+ case "track":
55
+ const { properties: trackProperties } = payload;
56
+ const trackEvent: any = {
57
+ ...trackProperties,
58
+ ...ids,
59
+ };
60
+ // @ts-ignore
61
+ gtag("event", payload.event, trackEvent);
62
+ break;
63
+ case "identify":
64
+ const { traits } = payload;
65
+ const identifyEvent: any = {
66
+ ...traits,
67
+ ...ids,
68
+ };
69
+ // @ts-ignore
70
+ gtag("event", "identify", identifyEvent);
71
+ break;
72
+ }
73
+ },
74
+ };
75
+
76
+ type GtmState = "fresh" | "loading" | "loaded" | "failed";
77
+
78
+ function getGa4State(): GtmState {
79
+ return window["__jitsuGa4State"] || "fresh";
80
+ }
81
+
82
+ function setGa4State(s: GtmState) {
83
+ window["__jitsuGa4State"] = s;
84
+ }
85
+
86
+ async function initGa4IfNeeded(config: Ga4DestinationCredentials, payload: AnalyticsClientEvent) {
87
+ if (getGa4State() !== "fresh") {
88
+ return;
89
+ }
90
+ setGa4State("loading");
91
+
92
+ const dlName = config.dataLayerName || "dataLayer";
93
+ const dlParam = dlName !== "dataLayer" ? "&l=" + dlName : "";
94
+
95
+ // to work with both GA4 and GTM
96
+ const tagId = config.measurementIds;
97
+ const scriptSrc = `${defaultScriptSrc}?id=${tagId}${dlParam}`;
98
+
99
+ window[dlName] = window[dlName] || [];
100
+ const gtag = function () {
101
+ window[dlName].push(arguments);
102
+ };
103
+ // @ts-ignore
104
+ gtag("js", new Date());
105
+ gtag(
106
+ // @ts-ignore
107
+ "config",
108
+ tagId,
109
+ {
110
+ ...(payload.userId ? { user_id: payload.userId } : {}),
111
+ ...(!config.autoPageView ? { send_page_view: false } : {}),
112
+ }
113
+ );
114
+
115
+ loadScript(scriptSrc)
116
+ .then(() => {
117
+ setGa4State("loaded");
118
+ })
119
+ .catch(e => {
120
+ console.warn(`GA4 (containerId=${config.measurementIds}) init failed: ${e.message}`, e);
121
+ setGa4State("failed");
122
+ });
123
+ }