@jitsu/js 1.5.1 → 1.7.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=[],b=[],v=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 b=b.concat(e.name),e}))}));Promise.all(h).then((function(e){var t={plugins:p,failed:b,disabled:v};setTimeout((function(){m.length===h.length+v.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,C=P;if($$1&&e.debug){var L=window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__;L&&(A=L({trace:!0,traceLimit:25})),C=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,C(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()},clientIds:{fbc:getCookie("_fbc"),fbp:getCookie("_fbp")},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,C=P;if($$1&&e.debug){var L=window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__;L&&(A=L({trace:!0,traceLimit:25})),C=function(){return 0===arguments.length?Ne():on(typeof arguments[0])?Ae():Ae().apply(null,arguments)}}var J,M=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:M,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,C(A(S.apply(void 0,E))));F.dispatch=(J=F.dispatch,function(e,t,n){var r=g$1({},e,{meta:Oe(e.meta,t,_e(n))});return J.apply(null,[r])});var V=Object.keys(a);F.dispatch({type:z.bootstrap,plugins:V,config:M,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(e){const t=Object.entries(e).filter((([e])=>e.startsWith("_ga_")));if(0!==t.length)return Object.fromEntries(t.map((([e,t])=>{if("string"!=typeof t)return null;const n=t.split(".");return n.length<3?null:[e.substring("_ga_".length),n[2]]})).filter((e=>null!==e)))}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{getCookie(e){const t=`; ${document.cookie}`.split(`; ${e}=`);return 2===t.length?t.pop().split(";").shift():void 0},getCookies(){const e={},t=`; ${document.cookie}`.matchAll(/(\w+)=([^;]+)/g);for(const n of t)e[n[1]]=n[2];return e},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(){},getCookie(e){},getCookies:()=>({}),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:a.getCookie("_fbc"),fbp:a.getCookie("_fbp"),ga4:{clientId:null===(i=a.getCookie("_ga"))||void 0===i?void 0:i.split(".").slice(-2).join("."),sessions:getGa4Sessions(a.getCookies())}},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",n=[];window[t]&&(Array.isArray(window[t])?(e.debug&&console.log(`Initializing Jitsu with prior events queue size of ${window[t].length}`,window[t]),n.push(...window[t])):console.warn("Attempted to initialize Jitsu twice. Returning the existing instance")),e.debug&&console.log("Jitsu options: ",JSON.stringify(e));const r=jitsuAnalytics(e);for(const[t,o]of n){e.debug&&console.log(`Processing event ${t} from Jitsu queue on`,o);try{r[t](...o)}catch(e){console.warn(`Error processing event ${t} from Jitsu queue on`,o,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(r):console.warn(`onload function ${e.onload} is not callable: ${typeof t}`)}window[t]=r;const o=window[t+"Q"]||[];e.debug&&console.log(`Jitsu callback queue size: ${o.length}`,o),o.forEach((e=>{try{e(r)}catch(e){console.warn("Error processing callback from Jitsu queue",e)}})),e.initOnly||r.page()}()})();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jitsu/js",
3
- "version": "1.5.1",
3
+ "version": "1.7.1",
4
4
  "description": "",
5
5
  "author": "Jitsu Dev Team <dev@jitsu.com>",
6
6
  "main": "dist/jitsu.cjs.js",
@@ -12,7 +12,7 @@
12
12
  "license": "MIT",
13
13
  "private": false,
14
14
  "devDependencies": {
15
- "@playwright/test": "1.31.2",
15
+ "@playwright/test": "1.39.0",
16
16
  "@rollup/plugin-commonjs": "^23.0.2",
17
17
  "@rollup/plugin-json": "^5.0.1",
18
18
  "@rollup/plugin-multi-entry": "^6.0.0",
@@ -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.5.1"
37
+ "@jitsu/protocols": "1.7.1"
38
38
  },
39
39
  "dependencies": {
40
40
  "analytics": "^0.8.1"
@@ -77,6 +77,27 @@ function getCookie(name: string) {
77
77
  return parts.length === 2 ? parts.pop().split(";").shift() : undefined;
78
78
  }
79
79
 
80
+ function getGa4Sessions(allCookies: Record<string, string>): Record<string, string> | undefined {
81
+ const gaCookies = Object.entries(allCookies).filter(([key]) => key.startsWith("_ga_"));
82
+ if (gaCookies.length === 0) {
83
+ return undefined;
84
+ }
85
+ return Object.fromEntries(
86
+ gaCookies
87
+ .map(([key, value]) => {
88
+ if (typeof value !== "string") {
89
+ return null;
90
+ }
91
+ const parts = value.split(".");
92
+ if (parts.length < 3) {
93
+ return null;
94
+ }
95
+ return [key.substring("_ga_".length), parts[2]];
96
+ })
97
+ .filter(v => v !== null)
98
+ );
99
+ }
100
+
80
101
  function removeCookie(name: string) {
81
102
  document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:01 GMT;";
82
103
  }
@@ -130,6 +151,20 @@ const cookieStorage: StorageFactory = (cookieDomain, key2cookie) => {
130
151
 
131
152
  export function windowRuntime(opts: JitsuOptions): RuntimeFacade {
132
153
  return {
154
+ getCookie(name: string): string | undefined {
155
+ const value = `; ${document.cookie}`;
156
+ const parts = value.split(`; ${name}=`);
157
+ return parts.length === 2 ? parts.pop().split(";").shift() : undefined;
158
+ },
159
+ getCookies(): Record<string, string> {
160
+ const value = `; ${document.cookie}`;
161
+ const cookies: Record<string, string> = {};
162
+ const matches = value.matchAll(/(\w+)=([^;]+)/g);
163
+ for (const match of matches) {
164
+ cookies[match[1]] = match[2];
165
+ }
166
+ return cookies;
167
+ },
133
168
  documentEncoding(): string | undefined {
134
169
  return window.document.characterSet;
135
170
  },
@@ -174,6 +209,12 @@ export const emptyRuntime = (config: JitsuOptions): RuntimeFacade => ({
174
209
  timezoneOffset(): number | undefined {
175
210
  return undefined;
176
211
  },
212
+ getCookie(name: string): string | undefined {
213
+ return undefined;
214
+ },
215
+ getCookies(): Record<string, string> {
216
+ return {};
217
+ },
177
218
 
178
219
  store(): PersistentStorage {
179
220
  const storage = {};
@@ -265,8 +306,12 @@ function adjustPayload(payload: any, config: JitsuOptions, storage: PersistentSt
265
306
  encoding: properties.encoding || runtime.documentEncoding(),
266
307
  },
267
308
  clientIds: {
268
- fbc: getCookie("_fbc"),
269
- fbp: getCookie("_fbp"),
309
+ fbc: runtime.getCookie("_fbc"),
310
+ fbp: runtime.getCookie("_fbp"),
311
+ ga4: {
312
+ clientId: runtime.getCookie("_ga")?.split(".").slice(-2).join("."), //last 2 parts of GA cookie
313
+ sessions: getGa4Sessions(runtime.getCookies()),
314
+ },
270
315
  },
271
316
  campaign: parseUtms(query),
272
317
  };
@@ -288,6 +333,7 @@ export type DestinationDescriptor = {
288
333
  destinationType: string;
289
334
  credentials: any;
290
335
  options: any;
336
+ newEvents?: any[];
291
337
  deviceOptions: DeviceOptions;
292
338
  };
293
339
  export type AnalyticsPluginDescriptor = {
@@ -306,24 +352,31 @@ export type DeviceOptions = AnalyticsPluginDescriptor | InternalPluginDescriptor
306
352
  async function processDestinations(
307
353
  destinations: DestinationDescriptor[],
308
354
  method: string,
309
- event: AnalyticsClientEvent,
355
+ originalEvent: AnalyticsClientEvent,
310
356
  debug: boolean,
311
357
  analyticsInstance: AnalyticsInstance
312
358
  ) {
313
359
  const promises: Promise<any>[] = [];
360
+
314
361
  for (const destination of destinations) {
362
+ let newEvents = [originalEvent];
363
+ if (destination.newEvents) {
364
+ newEvents = destination.newEvents.map(e => (e === "same" ? originalEvent : e));
365
+ }
315
366
  const credentials = { ...destination.credentials, ...destination.options };
316
367
 
317
368
  if (destination.deviceOptions.type === "internal-plugin") {
318
369
  const plugin = internalDestinationPlugins[destination.deviceOptions.name];
319
370
  if (plugin) {
320
- try {
321
- promises.push(plugin.handle(credentials, event));
322
- } catch (e) {
323
- console.warn(
324
- `[JITSU] Error processing event with internal plugin '${destination.deviceOptions.name}': ${e?.message}`,
325
- e
326
- );
371
+ for (const event of newEvents) {
372
+ try {
373
+ promises.push(plugin.handle(credentials, event));
374
+ } catch (e) {
375
+ console.warn(
376
+ `[JITSU] Error processing event with internal plugin '${destination.deviceOptions.name}': ${e?.message}`,
377
+ e
378
+ );
379
+ }
327
380
  }
328
381
  } else {
329
382
  console.warn(
@@ -366,13 +419,19 @@ async function processDestinations(
366
419
  }
367
420
 
368
421
  if (pluginInstance[method]) {
369
- try {
370
- pluginInstance[method]({ payload: event, config: pluginInstance.config, instance: analyticsInstance });
371
- } catch (e) {
372
- console.warn(
373
- `[JITSU] Error processing ${method}() with plugin '${destination.deviceOptions.moduleVarName}@${destination.deviceOptions.packageCdn}' for destination '${destination.id}': ${e?.message}`,
374
- e
375
- );
422
+ for (const event of newEvents) {
423
+ try {
424
+ pluginInstance[method]({
425
+ payload: event,
426
+ config: pluginInstance.config,
427
+ instance: analyticsInstance,
428
+ });
429
+ } catch (e) {
430
+ console.warn(
431
+ `[JITSU] Error processing ${method}() with plugin '${destination.deviceOptions.moduleVarName}@${destination.deviceOptions.packageCdn}' for destination '${destination.id}': ${e?.message}`,
432
+ e
433
+ );
434
+ }
376
435
  }
377
436
  }
378
437
  }
package/src/browser.ts CHANGED
@@ -53,14 +53,35 @@ function getScriptAttributes(scriptElement: HTMLScriptElement) {
53
53
 
54
54
  const options = readJitsuOptions();
55
55
  const JITSU_V2_ID: string = options.namespace || "jitsu";
56
-
56
+ const queue = [];
57
57
  if (window[JITSU_V2_ID]) {
58
- console.log("Jitsu is already initialized");
58
+ if (Array.isArray(window[JITSU_V2_ID])) {
59
+ //processing queue of events
60
+ if (options.debug) {
61
+ console.log(
62
+ `Initializing Jitsu with prior events queue size of ${window[JITSU_V2_ID].length}`,
63
+ window[JITSU_V2_ID]
64
+ );
65
+ }
66
+ queue.push(...window[JITSU_V2_ID]);
67
+ } else {
68
+ console.warn("Attempted to initialize Jitsu twice. Returning the existing instance");
69
+ }
59
70
  }
60
71
  if (options.debug) {
61
72
  console.log(`Jitsu options: `, JSON.stringify(options));
62
73
  }
63
74
  const jitsu = jitsuAnalytics(options);
75
+ for (const [method, args] of queue) {
76
+ if (options.debug) {
77
+ console.log(`Processing event ${method} from Jitsu queue on`, args);
78
+ }
79
+ try {
80
+ jitsu[method](...args);
81
+ } catch (e: any) {
82
+ console.warn(`Error processing event ${method} from Jitsu queue on`, args, e);
83
+ }
84
+ }
64
85
 
65
86
  if (options.onload) {
66
87
  const onloadFunction = window[options.onload] as any;
@@ -75,6 +96,18 @@ function getScriptAttributes(scriptElement: HTMLScriptElement) {
75
96
  }
76
97
  window[JITSU_V2_ID] = jitsu;
77
98
 
99
+ //new callback based queue
100
+ const callbackQueue = window[JITSU_V2_ID + "Q"] || [];
101
+ if (options.debug) {
102
+ console.log(`Jitsu callback queue size: ${callbackQueue.length}`, callbackQueue);
103
+ }
104
+ callbackQueue.forEach((callback: any) => {
105
+ try {
106
+ callback(jitsu);
107
+ } catch (e: any) {
108
+ console.warn(`Error processing callback from Jitsu queue`, e);
109
+ }
110
+ });
78
111
  if (!options.initOnly) {
79
112
  jitsu.page();
80
113
  }