web-push-notifications 3.62.7 → 3.62.8
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/npm.js +1 -1
- package/package.json +1 -1
- package/service-worker.js +1 -1
- package/widget-web-popups.js +1 -1
- package/widget-web-popups.js.map +1 -1
- package/widgets/WebPopups/WebPopupsWidget.d.ts +1 -0
- package/widgets/WebPopups/constants.d.ts +2 -0
- package/widgets/WebPopups/subscriptionFormsWidgetLoader.d.ts +12 -0
- package/widgets/WebPopups/types.d.ts +2 -1
package/widget-web-popups.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"widget-web-popups.js","mappings":"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","sources":["webpack://web-push-notifications/webpack/universalModuleDefinition","webpack://web-push-notifications/webpack/bootstrap","webpack://web-push-notifications/webpack/runtime/define property getters","webpack://web-push-notifications/webpack/runtime/hasOwnProperty shorthand","webpack://web-push-notifications/webpack/runtime/make namespace object","webpack://web-push-notifications/./src/widgets/WebPopups/constants.ts","webpack://web-push-notifications/./node_modules/preact/dist/preact.module.js","webpack://web-push-notifications/./node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js","webpack://web-push-notifications/./node_modules/smart-blocks-utils/dist/views/WebPopup/constants.js","webpack://web-push-notifications/./node_modules/smart-blocks-utils/dist/views/WebPopup/layout.js","webpack://web-push-notifications/./node_modules/smart-blocks-utils/dist/views/WebPopup/helpers.js","webpack://web-push-notifications/./node_modules/preact/hooks/dist/hooks.module.js","webpack://web-push-notifications/./node_modules/preact/compat/dist/compat.module.js","webpack://web-push-notifications/./node_modules/smart-blocks-utils/dist/views/WebPopup/WebPopupReader.js","webpack://web-push-notifications/./src/widgets/WebPopups/renderer.tsx","webpack://web-push-notifications/./src/modules/storage/migrations/constants.ts","webpack://web-push-notifications/./src/modules/storage/migrations/helpers.ts","webpack://web-push-notifications/./src/modules/storage/migrations/initial.ts","webpack://web-push-notifications/./src/modules/storage/migrations/Migrations.ts","webpack://web-push-notifications/./src/modules/storage/migrations/MigrationExecutor.ts","webpack://web-push-notifications/./src/core/storage.ts","webpack://web-push-notifications/./src/core/logger.ts","webpack://web-push-notifications/./src/widgets/WebPopups/WebPopupsWidget.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(this, () => {\nreturn ","// The require scope\nconst __webpack_require__ = {};\n\n","// define getter/value functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tif(Array.isArray(definition)) {\n\t\tvar i = 0;\n\t\twhile(i < definition.length) {\n\t\t\tvar key = definition[i++];\n\t\t\tvar binding = definition[i++];\n\t\t\tif(!__webpack_require__.o(exports, key)) {\n\t\t\t\tif(binding === 0) {\n\t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, value: definition[i++] });\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: binding });\n\t\t\t\t}\n\t\t\t} else if(binding === 0) { i++; }\n\t\t}\n\t} else {\n\t\tfor(var key in definition) {\n\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t\t}\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export const WEB_POPUPS_WIDGET_NAMESPACE = 'pushwoosh-web-popups';\n\nexport const POPUP_HOST_Z_INDEX = 2147483647;\n","var n,l,u,t,i,r,o,e,f,c,a,s,h,p,v,y,d={},w=[],_=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,g=Array.isArray;function m(n,l){for(var u in l)n[u]=l[u];return n}function b(n){n&&n.parentNode&&n.parentNode.removeChild(n)}function k(l,u,t){var i,r,o,e={};for(o in u)\"key\"==o?i=u[o]:\"ref\"==o?r=u[o]:e[o]=u[o];if(arguments.length>2&&(e.children=arguments.length>3?n.call(arguments,2):t),\"function\"==typeof l&&null!=l.defaultProps)for(o in l.defaultProps)void 0===e[o]&&(e[o]=l.defaultProps[o]);return x(l,e,i,r,null)}function x(n,t,i,r,o){var e={type:n,props:t,key:i,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:null==o?++u:o,__i:-1,__u:0};return null==o&&null!=l.vnode&&l.vnode(e),e}function M(){return{current:null}}function S(n){return n.children}function C(n,l){this.props=n,this.context=l}function $(n,l){if(null==l)return n.__?$(n.__,n.__i+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return\"function\"==typeof n.type?$(n):null}function I(n){if(n.__P&&n.__d){var u=n.__v,t=u.__e,i=[],r=[],o=m({},u);o.__v=u.__v+1,l.vnode&&l.vnode(o),q(n.__P,o,u,n.__n,n.__P.namespaceURI,32&u.__u?[t]:null,i,null==t?$(u):t,!!(32&u.__u),r),o.__v=u.__v,o.__.__k[o.__i]=o,D(i,o,r),u.__e=u.__=null,o.__e!=t&&P(o)}}function P(n){if(null!=(n=n.__)&&null!=n.__c)return n.__e=n.__c.base=null,n.__k.some(function(l){if(null!=l&&null!=l.__e)return n.__e=n.__c.base=l.__e}),P(n)}function A(n){(!n.__d&&(n.__d=!0)&&i.push(n)&&!H.__r++||r!=l.debounceRendering)&&((r=l.debounceRendering)||o)(H)}function H(){try{for(var n,l=1;i.length;)i.length>l&&i.sort(e),n=i.shift(),l=i.length,I(n)}finally{i.length=H.__r=0}}function L(n,l,u,t,i,r,o,e,f,c,a){var s,h,p,v,y,_,g,m=t&&t.__k||w,b=l.length;for(f=T(u,l,m,f,b),s=0;s<b;s++)null!=(p=u.__k[s])&&(h=-1!=p.__i&&m[p.__i]||d,p.__i=s,_=q(n,p,h,i,r,o,e,f,c,a),v=p.__e,p.ref&&h.ref!=p.ref&&(h.ref&&J(h.ref,null,p),a.push(p.ref,p.__c||v,p)),null==y&&null!=v&&(y=v),(g=!!(4&p.__u))||h.__k===p.__k?(f=j(p,f,n,g),g&&h.__e&&(h.__e=null)):\"function\"==typeof p.type&&void 0!==_?f=_:v&&(f=v.nextSibling),p.__u&=-7);return u.__e=y,f}function T(n,l,u,t,i){var r,o,e,f,c,a=u.length,s=a,h=0;for(n.__k=new Array(i),r=0;r<i;r++)null!=(o=l[r])&&\"boolean\"!=typeof o&&\"function\"!=typeof o?(\"string\"==typeof o||\"number\"==typeof o||\"bigint\"==typeof o||o.constructor==String?o=n.__k[r]=x(null,o,null,null,null):g(o)?o=n.__k[r]=x(S,{children:o},null,null,null):void 0===o.constructor&&o.__b>0?o=n.__k[r]=x(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):n.__k[r]=o,f=r+h,o.__=n,o.__b=n.__b+1,e=null,-1!=(c=o.__i=O(o,u,f,s))&&(s--,(e=u[c])&&(e.__u|=2)),null==e||null==e.__v?(-1==c&&(i>a?h--:i<a&&h++),\"function\"!=typeof o.type&&(o.__u|=4)):c!=f&&(c==f-1?h--:c==f+1?h++:(c>f?h--:h++,o.__u|=4))):n.__k[r]=null;if(s)for(r=0;r<a;r++)null!=(e=u[r])&&0==(2&e.__u)&&(e.__e==t&&(t=$(e)),K(e,e));return t}function j(n,l,u,t){var i,r;if(\"function\"==typeof n.type){for(i=n.__k,r=0;i&&r<i.length;r++)i[r]&&(i[r].__=n,l=j(i[r],l,u,t));return l}n.__e!=l&&(t&&(l&&n.type&&!l.parentNode&&(l=$(n)),u.insertBefore(n.__e,l||null)),l=n.__e);do{l=l&&l.nextSibling}while(null!=l&&8==l.nodeType);return l}function F(n,l){return l=l||[],null==n||\"boolean\"==typeof n||(g(n)?n.some(function(n){F(n,l)}):l.push(n)),l}function O(n,l,u,t){var i,r,o,e=n.key,f=n.type,c=l[u],a=null!=c&&0==(2&c.__u);if(null===c&&null==e||a&&e==c.key&&f==c.type)return u;if(t>(a?1:0))for(i=u-1,r=u+1;i>=0||r<l.length;)if(null!=(c=l[o=i>=0?i--:r++])&&0==(2&c.__u)&&e==c.key&&f==c.type)return o;return-1}function z(n,l,u){\"-\"==l[0]?n.setProperty(l,null==u?\"\":u):n[l]=null==u?\"\":\"number\"!=typeof u||_.test(l)?u:u+\"px\"}function N(n,l,u,t,i){var r,o;n:if(\"style\"==l)if(\"string\"==typeof u)n.style.cssText=u;else{if(\"string\"==typeof t&&(n.style.cssText=t=\"\"),t)for(l in t)u&&l in u||z(n.style,l,\"\");if(u)for(l in u)t&&u[l]==t[l]||z(n.style,l,u[l])}else if(\"o\"==l[0]&&\"n\"==l[1])r=l!=(l=l.replace(s,\"$1\")),o=l.toLowerCase(),l=o in n||\"onFocusOut\"==l||\"onFocusIn\"==l?o.slice(2):l.slice(2),n.l||(n.l={}),n.l[l+r]=u,u?t?u[a]=t[a]:(u[a]=h,n.addEventListener(l,r?v:p,r)):n.removeEventListener(l,r?v:p,r);else{if(\"http://www.w3.org/2000/svg\"==i)l=l.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(\"width\"!=l&&\"height\"!=l&&\"href\"!=l&&\"list\"!=l&&\"form\"!=l&&\"tabIndex\"!=l&&\"download\"!=l&&\"rowSpan\"!=l&&\"colSpan\"!=l&&\"role\"!=l&&\"popover\"!=l&&l in n)try{n[l]=null==u?\"\":u;break n}catch(n){}\"function\"==typeof u||(null==u||!1===u&&\"-\"!=l[4]?n.removeAttribute(l):n.setAttribute(l,\"popover\"==l&&1==u?\"\":u))}}function V(n){return function(u){if(this.l){var t=this.l[u.type+n];if(null==u[c])u[c]=h++;else if(u[c]<t[a])return;return t(l.event?l.event(u):u)}}}function q(n,u,t,i,r,o,e,f,c,a){var s,h,p,v,y,d,_,k,x,M,$,I,P,A,H,T,j=u.type;if(void 0!==u.constructor)return null;128&t.__u&&(c=!!(32&t.__u),o=[f=u.__e=t.__e]),(s=l.__b)&&s(u);n:if(\"function\"==typeof j){h=e.length;try{if(x=u.props,M=j.prototype&&j.prototype.render,$=(s=j.contextType)&&i[s.__c],I=s?$?$.props.value:s.__:i,t.__c?k=(p=u.__c=t.__c).__=p.__E:(M?u.__c=p=new j(x,I):(u.__c=p=new C(x,I),p.constructor=j,p.render=Q),$&&$.sub(p),p.state||(p.state={}),p.__n=i,v=p.__d=!0,p.__h=[],p._sb=[]),M&&null==p.__s&&(p.__s=p.state),M&&null!=j.getDerivedStateFromProps&&(p.__s==p.state&&(p.__s=m({},p.__s)),m(p.__s,j.getDerivedStateFromProps(x,p.__s))),y=p.props,d=p.state,p.__v=u,v)M&&null==j.getDerivedStateFromProps&&null!=p.componentWillMount&&p.componentWillMount(),M&&null!=p.componentDidMount&&p.__h.push(p.componentDidMount);else{if(M&&null==j.getDerivedStateFromProps&&x!==y&&null!=p.componentWillReceiveProps&&p.componentWillReceiveProps(x,I),u.__v==t.__v||!p.__e&&null!=p.shouldComponentUpdate&&!1===p.shouldComponentUpdate(x,p.__s,I)){u.__v!=t.__v&&(p.props=x,p.state=p.__s,p.__d=!1),u.__e=t.__e,u.__k=t.__k,u.__k.some(function(n){n&&(n.__=u)}),w.push.apply(p.__h,p._sb),p._sb=[],p.__h.length&&e.push(p);break n}null!=p.componentWillUpdate&&p.componentWillUpdate(x,p.__s,I),M&&null!=p.componentDidUpdate&&p.__h.push(function(){p.componentDidUpdate(y,d,_)})}if(p.context=I,p.props=x,p.__P=n,p.__e=!1,P=l.__r,A=0,M)p.state=p.__s,p.__d=!1,P&&P(u),s=p.render(p.props,p.state,p.context),w.push.apply(p.__h,p._sb),p._sb=[];else do{p.__d=!1,P&&P(u),s=p.render(p.props,p.state,p.context),p.state=p.__s}while(p.__d&&++A<25);p.state=p.__s,null!=p.getChildContext&&(i=m(m({},i),p.getChildContext())),M&&!v&&null!=p.getSnapshotBeforeUpdate&&(_=p.getSnapshotBeforeUpdate(y,d)),H=null!=s&&s.type===S&&null==s.key?E(s.props.children):s,f=L(n,g(H)?H:[H],u,t,i,r,o,e,f,c,a),p.base=u.__e,u.__u&=-161,p.__h.length&&e.push(p),k&&(p.__E=p.__=null)}catch(n){if(e.length=h,u.__v=null,c||null!=o){if(n.then){for(u.__u|=c?160:128;f&&8==f.nodeType&&f.nextSibling;)f=f.nextSibling;null!=o&&(o[o.indexOf(f)]=null),u.__e=f}else if(null!=o)for(T=o.length;T--;)b(o[T])}else u.__e=t.__e;null==u.__k&&(u.__k=t.__k||[]),n.then||B(u),l.__e(n,u,t)}}else null==o&&u.__v==t.__v?(u.__k=t.__k,u.__e=t.__e):f=u.__e=G(t.__e,u,t,i,r,o,e,c,a);return(s=l.diffed)&&s(u),128&u.__u?void 0:f}function B(n){n&&(n.__c&&(n.__c.__e=!0),n.__k&&n.__k.some(B))}function D(n,u,t){for(var i=0;i<t.length;i++)J(t[i],t[++i],t[++i]);l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function E(n){return\"object\"!=typeof n||null==n||n.__b>0?n:g(n)?n.map(E):void 0!==n.constructor?null:m({},n)}function G(u,t,i,r,o,e,f,c,a){var s,h,p,v,y,w,_,m=i.props||d,k=t.props,x=t.type;if(\"svg\"==x?o=\"http://www.w3.org/2000/svg\":\"math\"==x?o=\"http://www.w3.org/1998/Math/MathML\":o||(o=\"http://www.w3.org/1999/xhtml\"),null!=e)for(s=0;s<e.length;s++)if((y=e[s])&&\"setAttribute\"in y==!!x&&(x?y.localName==x:3==y.nodeType)){u=y,e[s]=null;break}if(null==u){if(null==x)return document.createTextNode(k);u=document.createElementNS(o,x,k.is&&k),c&&(l.__m&&l.__m(t,e),c=!1),e=null}if(null==x)m===k||c&&u.data==k||(u.data=k);else{if(e=\"textarea\"==x&&null!=k.defaultValue?null:e&&n.call(u.childNodes),!c&&null!=e)for(m={},s=0;s<u.attributes.length;s++)m[(y=u.attributes[s]).name]=y.value;for(s in m)y=m[s],\"dangerouslySetInnerHTML\"==s?p=y:\"children\"==s||s in k||\"value\"==s&&\"defaultValue\"in k||\"checked\"==s&&\"defaultChecked\"in k||N(u,s,null,y,o);for(s in k)y=k[s],\"children\"==s?v=y:\"dangerouslySetInnerHTML\"==s?h=y:\"value\"==s?w=y:\"checked\"==s?_=y:c&&\"function\"!=typeof y||m[s]===y||N(u,s,y,m[s],o);if(h)c||p&&(h.__html==p.__html||h.__html==u.innerHTML)||(u.innerHTML=h.__html),t.__k=[];else if(p&&(u.innerHTML=\"\"),L(\"template\"==t.type?u.content:u,g(v)?v:[v],t,i,r,\"foreignObject\"==x?\"http://www.w3.org/1999/xhtml\":o,e,f,e?e[0]:i.__k&&$(i,0),c,a),null!=e)for(s=e.length;s--;)b(e[s]);c&&\"textarea\"!=x||(s=\"value\",\"progress\"==x&&null==w?u.removeAttribute(\"value\"):null!=w&&(w!==u[s]||\"progress\"==x&&!w||\"option\"==x&&w!=m[s])&&N(u,s,w,m[s],o),s=\"checked\",null!=_&&_!=u[s]&&N(u,s,_,m[s],o))}return u}function J(n,u,t){try{if(\"function\"==typeof n){var i=\"function\"==typeof n.__u;i&&n.__u(),i&&null==u||(n.__u=n(u))}else n.current=u}catch(n){l.__e(n,t)}}function K(n,u,t){var i,r;if(l.unmount&&l.unmount(n),(i=n.ref)&&(i.current&&i.current!=n.__e||J(i,null,u)),null!=(i=n.__c)){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(n){l.__e(n,u)}i.base=i.__P=i.__n=null}if(i=n.__k)for(r=0;r<i.length;r++)i[r]&&K(i[r],u,t||\"function\"!=typeof n.type);t||b(n.__e),n.__c=n.__=n.__e=void 0}function Q(n,l,u){return this.constructor(n,u)}function R(u,t,i){var r,o,e,f;t==document&&(t=document.documentElement),l.__&&l.__(u,t),o=(r=\"function\"==typeof i)?null:i&&i.__k||t.__k,e=[],f=[],q(t,u=(!r&&i||t).__k=k(S,null,[u]),o||d,d,t.namespaceURI,!r&&i?[i]:o?null:t.firstChild?n.call(t.childNodes):null,e,!r&&i?i:o?o.__e:t.firstChild,r,f),D(e,u,f),u.props.children=null}function U(n,l){R(n,l,U)}function W(l,u,t){var i,r,o,e,f=m({},l.props);for(o in l.type&&l.type.defaultProps&&(e=l.type.defaultProps),u)\"key\"==o?i=u[o]:\"ref\"==o?r=u[o]:f[o]=void 0===u[o]&&null!=e?e[o]:u[o];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):t),x(l.type,f,i||l.key,r||l.ref,null)}function X(n){function l(n){var u,t;return this.getChildContext||(u=new Set,(t={})[l.__c]=this,this.getChildContext=function(){return t},this.componentWillUnmount=function(){u=null},this.shouldComponentUpdate=function(n){this.props.value!=n.value&&u.forEach(function(n){n.__e=!0,A(n)})},this.sub=function(n){u.add(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u&&u.delete(n),l&&l.call(n)}}),n.children}return l.__c=\"__cC\"+y++,l.__=n,l.Provider=l.__l=(l.Consumer=function(n,l){return n.children(l)}).contextType=l,l}n=w.slice,l={__e:function(n,l,u,t){for(var i,r,o;l=l.__;)if((i=l.__c)&&!i.__)try{if((r=i.constructor)&&null!=r.getDerivedStateFromError&&(i.setState(r.getDerivedStateFromError(n)),o=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(n,t||{}),o=i.__d),o)return i.__E=i}catch(l){n=l}throw n}},u=0,t=function(n){return null!=n&&void 0===n.constructor},C.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!=this.state?this.__s:this.__s=m({},this.state),\"function\"==typeof n&&(n=n(m({},u),this.props)),n&&m(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),A(this))},C.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),A(this))},C.prototype.render=S,i=[],o=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,e=function(n,l){return n.__v.__b-l.__v.__b},H.__r=0,f=Math.random().toString(8),c=\"__d\"+f,a=\"__a\"+f,s=/(PointerCapture)$|Capture$/i,h=0,p=V(!1),v=V(!0),y=0;export{C as Component,S as Fragment,W as cloneElement,X as createContext,k as createElement,M as createRef,k as h,U as hydrate,t as isValidElement,l as options,R as render,F as toChildArray};\n//# sourceMappingURL=preact.module.js.map\n","import{options as r,Fragment as e}from\"preact\";export{Fragment}from\"preact\";var t=/[\"&<]/;function n(r){if(0===r.length||!1===t.test(r))return r;for(var e=0,n=0,o=\"\",f=\"\";n<r.length;n++){switch(r.charCodeAt(n)){case 34:f=\""\";break;case 38:f=\"&\";break;case 60:f=\"<\";break;default:continue}n!==e&&(o+=r.slice(e,n)),o+=f,e=n+1}return n!==e&&(o+=r.slice(e,n)),o}var o=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,f=0,i=Array.isArray;function u(e,t,n,o,i,u){t||(t={});var a,c,p=t;if(\"ref\"in p)for(c in p={},t)\"ref\"==c?a=t[c]:p[c]=t[c];var l={type:e,props:p,key:n,ref:a,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--f,__i:-1,__u:0,__source:i,__self:u};if(\"function\"==typeof e&&(a=e.defaultProps))for(c in a)void 0===p[c]&&(p[c]=a[c]);return r.vnode&&r.vnode(l),l}function a(r){var t=u(e,{tpl:r,exprs:[].slice.call(arguments,1)});return t.key=t.__v,t}var c={},p=/[A-Z]/g;function l(e,t){if(r.attr){var f=r.attr(e,t);if(\"string\"==typeof f)return f}if(t=function(r){return null!==r&&\"object\"==typeof r&&\"function\"==typeof r.valueOf?r.valueOf():r}(t),\"ref\"===e||\"key\"===e)return\"\";if(\"style\"===e&&\"object\"==typeof t){var i=\"\";for(var u in t){var a=t[u];if(null!=a&&\"\"!==a){var l=\"-\"==u[0]?u:c[u]||(c[u]=u.replace(p,\"-$&\").toLowerCase()),s=\";\";\"number\"!=typeof a||l.startsWith(\"--\")||o.test(l)||(s=\"px;\"),i=i+l+\":\"+a+s}}return e+'=\"'+n(i)+'\"'}return null==t||!1===t||\"function\"==typeof t||\"object\"==typeof t?\"\":!0===t?e:e+'=\"'+n(\"\"+t)+'\"'}function s(r){if(null==r||\"boolean\"==typeof r||\"function\"==typeof r)return null;if(\"object\"==typeof r){if(void 0===r.constructor)return r;if(i(r)){for(var e=0;e<r.length;e++)r[e]=s(r[e]);return r}}return n(\"\"+r)}export{u as jsx,l as jsxAttr,u as jsxDEV,s as jsxEscape,a as jsxTemplate,u as jsxs};\n//# sourceMappingURL=jsxRuntime.module.js.map\n","/**\n * Current stored-format version (WebPopupJson.version). Version 2 = the\n * layout-tree format (nested containers + Content/Image leaves, named content\n * zones). Version 1 (flat layout + single slot list) is retired without a\n * migration path — v1 popups are treated as broken, same as the pre-engine\n * ai-builder format.\n */\nexport const WEB_POPUP_VERSION = 2;\n// Bomb protection for the embedded layout tree — the json travels through a\n// public API, so the parser refuses to walk pathological trees.\nexport const WEB_POPUP_LAYOUT_MAX_DEPTH = 10;\nexport const WEB_POPUP_LAYOUT_MAX_NODES = 100;\n/** Protocols allowed in button hrefs (plus relative `#`/`/`/`?` prefixes). */\nexport const SAFE_URL_PROTOCOL = /^(https?:|mailto:|tel:)/i;\nexport const WEB_POPUP_FONT_STACK = 'Inter, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif';\n// Palette defaults (mirror the editor's popup theme) — what a popup gets for\n// any WebPopupColors entry its json doesn't set.\nexport const WEB_POPUP_TEXT_COLOR = '#101828';\nexport const WEB_POPUP_TEXT_SECONDARY_COLOR = '#667085';\nexport const WEB_POPUP_ACCENT_COLOR = '#2970FF';\nexport const WEB_POPUP_BACKGROUND_COLOR = '#FFFFFF';\nexport const WEB_POPUP_DEFAULT_COLORS = {\n background: WEB_POPUP_BACKGROUND_COLOR,\n accent: WEB_POPUP_ACCENT_COLOR,\n text: WEB_POPUP_TEXT_COLOR,\n textSecondary: WEB_POPUP_TEXT_SECONDARY_COLOR,\n textInverse: '#FFFFFF',\n};\n/** Fallback width used when a fixed-width context needs a number anyway. */\nexport const WEB_POPUP_DEFAULT_WIDTH = 360;\n// Per-variant text styles — the same numbers the editor's canvas derives from\n// its theme presets. No colors here: those come from the popup palette via\n// webPopupTextColor below.\nexport const WEB_POPUP_TEXT_VARIANT_STYLES = {\n h1: { fontSize: 24, fontWeight: 600, lineHeight: 1.25 },\n h2: { fontSize: 18, fontWeight: 600, lineHeight: 1.3 },\n h3: { fontSize: 16, fontWeight: 600, lineHeight: 1.35 },\n body: { fontSize: 14, fontWeight: 'normal', lineHeight: 1.5 },\n caption: { fontSize: 12, fontWeight: 'normal', lineHeight: 1.4 },\n eyebrow: {\n fontSize: 11, fontWeight: 600, letterSpacing: '0.08em', lineHeight: 1.4,\n },\n icon: { fontSize: 24, lineHeight: 1.2 },\n};\n// Inverse-tone translucency per text style: headings full-strength, the\n// secondary variants toned down — same rhythm the palette's default white\n// set always had.\nconst INVERSE_TEXT_ALPHAS = {\n h1: 1,\n h2: 1,\n h3: 1,\n icon: 1,\n eyebrow: 0.8,\n body: 0.9,\n caption: 0.75,\n};\n// colors.textInverse at the given opacity. Only #rgb/#rrggbb can be blended;\n// any other author-supplied css color renders full-strength rather than\n// being guessed at.\nfunction inverseColorAt(color, alpha) {\n if (alpha >= 1)\n return color;\n const hex = /^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/.exec(color)?.[1];\n if (!hex)\n return color;\n const full = hex.length === 3 ? hex.split('').map((c) => c + c).join('') : hex;\n const [r, g, b] = [0, 2, 4].map((i) => parseInt(full.slice(i, i + 2), 16));\n return `rgba(${r}, ${g}, ${b}, ${alpha})`;\n}\n/**\n * A text slot's color: the palette's main/secondary role by variant; in an\n * 'inverse' zone (over a background image) — colors.textInverse, with the\n * secondary variants toned translucent. Undefined for a non-inverse 'icon'\n * (an emoji line inherits — its glyphs aren't recolorable anyway).\n */\nexport function webPopupTextColor(variant, colors, inverse) {\n if (inverse)\n return inverseColorAt(colors.textInverse, INVERSE_TEXT_ALPHAS[variant] ?? 1);\n if (variant === 'icon')\n return undefined;\n return variant === 'caption' || variant === 'eyebrow' ? colors.textSecondary : colors.text;\n}\n/** The dark fill under a container's background image while it loads. */\nexport const WEB_POPUP_BG_SECTION_FALLBACK = '#1D2939';\n// Content-zone rhythm: per-slot vertical paddings (horizontal spacing is the\n// layout tree's padding business). Per-slot paddings — not a grid gap — so\n// the editor's canvas, which renders slots as stacked blocks with these same\n// paddings, matches the runtime pixel for pixel.\nexport const WEB_POPUP_TEXT_SLOT_PADDING = '4px 0';\nexport const WEB_POPUP_BUTTON_SLOT_PADDING = '8px 0 4px';\nexport const WEB_POPUP_KEYFRAMES = `\n@keyframes pw-vpopup-fade { from { opacity: 0; } }\n@keyframes pw-vpopup-slide { from { opacity: 0; translate: 0 28px; } }\n@keyframes pw-vpopup-overlay { from { opacity: 0; } }\n@keyframes pw-vpopup-page { from { opacity: 0; } }\n`;\n// Page-switch transition: the incoming page's content fades in while explicit\n// px sizes glide instead of jumping (auto sizes still snap — 'auto' can't be\n// transitioned). One duration for both so they read as a single move.\nexport const WEB_POPUP_PAGE_TRANSITION_MS = 300;\n","import { WEB_POPUP_LAYOUT_MAX_DEPTH, WEB_POPUP_LAYOUT_MAX_NODES } from './constants';\n// Validation + css conversion for the embedded layout tree. The json is\n// API-writable and its styles land inline on customers' pages, so every prop\n// is normalized against a whitelist on parse: numbers are clamped, strings\n// must match a strict css-length/track pattern, enums fall back to defaults,\n// unknown props are dropped. Unknown node TYPES degrade instead of breaking:\n// a node with children renders as a Vertical stack (a container from a NEWER\n// editor keeps its content visible on an older engine build), a childless\n// unknown node is dropped.\nconst CONTAINER_TYPES = ['Vertical', 'Horizontal', 'Columns', 'Rows'];\nconst ORDERS = ['normal', 'reverse'];\nconst ALIGN_ITEMS = ['start', 'center', 'end', 'stretch'];\nconst JUSTIFY_CONTENT = ['start', 'center', 'end', 'space-between'];\nconst TEXT_ALIGNS = ['left', 'center', 'right'];\nconst TONES = ['default', 'inverse'];\nconst MAX_LENGTH_PX = 2000;\n// String lengths carry a unit — clamp each to its own sane ceiling, like the\n// numeric branch: a wire value (\"9999rem\" scales off the HOST page's root\n// font size) must not be able to blow the popup past the viewport.\nconst LENGTH_UNIT_MAX = { px: MAX_LENGTH_PX, '%': 100, em: 125, rem: 125 };\nconst LENGTH_PATTERN = /^(\\d{1,4}(?:\\.\\d+)?)(px|%|em|rem)$/;\nconst TRACK_UNIT_MAX = { px: MAX_LENGTH_PX, '%': 100, fr: 100 };\nconst TRACK_PATTERN = /^(\\d{1,4}(?:\\.\\d+)?)(px|%|fr)$/;\nconst TRACK_KEYWORDS = ['auto', 'min-content', 'max-content'];\nconst MAX_TRACKS = 12;\nfunction oneOf(value, allowed) {\n return allowed.includes(value) ? value : undefined;\n}\nfunction cssLength(value) {\n if (typeof value === 'number' && Number.isFinite(value)) {\n return Math.min(Math.max(value, 0), MAX_LENGTH_PX);\n }\n if (typeof value !== 'string')\n return undefined;\n const match = LENGTH_PATTERN.exec(value.trim());\n if (!match)\n return undefined;\n const [, amount, unit] = match;\n return `${Math.min(parseFloat(amount), LENGTH_UNIT_MAX[unit])}${unit}`;\n}\nconst BOX_SIDES = ['top', 'right', 'bottom', 'left'];\nfunction boxPadding(value) {\n const whole = cssLength(value);\n if (whole !== undefined)\n return whole;\n if (typeof value !== 'object' || value === null)\n return undefined;\n const sides = {};\n for (const side of BOX_SIDES) {\n const sideValue = cssLength(value[side]);\n if (sideValue !== undefined)\n sides[side] = sideValue;\n }\n return Object.keys(sides).length > 0 ? sides : undefined;\n}\nfunction trackSize(token) {\n if (TRACK_KEYWORDS.includes(token))\n return token;\n const match = TRACK_PATTERN.exec(token);\n if (!match)\n return undefined;\n const [, amount, unit] = match;\n return `${Math.min(parseFloat(amount), TRACK_UNIT_MAX[unit])}${unit}`;\n}\nfunction trackSizes(value) {\n if (typeof value === 'number') {\n return Number.isInteger(value) && value >= 1 && value <= MAX_TRACKS ? value : undefined;\n }\n if (typeof value !== 'string')\n return undefined;\n const tokens = value.trim().split(/\\s+/);\n if (tokens.length < 1 || tokens.length > MAX_TRACKS)\n return undefined;\n const clamped = tokens.map(trackSize);\n return clamped.every((token) => token !== undefined) ? clamped.join(' ') : undefined;\n}\nfunction nonEmptyString(value) {\n return typeof value === 'string' && value.length > 0 ? value : undefined;\n}\nfunction containerProps(raw) {\n const props = {};\n const gap = cssLength(raw.gap);\n if (gap !== undefined)\n props.gap = gap;\n const padding = boxPadding(raw.padding);\n if (padding !== undefined)\n props.padding = padding;\n const alignItems = oneOf(raw.alignItems, ALIGN_ITEMS);\n if (alignItems)\n props.alignItems = alignItems;\n const justifyContent = oneOf(raw.justifyContent, JUSTIFY_CONTENT);\n if (justifyContent)\n props.justifyContent = justifyContent;\n const backgroundImage = nonEmptyString(raw.backgroundImage);\n if (backgroundImage)\n props.backgroundImage = backgroundImage;\n const sizes = trackSizes(raw.sizes);\n if (sizes !== undefined)\n props.sizes = sizes;\n return props;\n}\nfunction normalizeNode(raw, depth, budget) {\n if (depth > WEB_POPUP_LAYOUT_MAX_DEPTH || budget.nodes <= 0)\n return null;\n if (typeof raw !== 'object' || raw === null)\n return null;\n budget.nodes -= 1;\n const node = raw;\n const props = (typeof node.props === 'object' && node.props !== null ? node.props : {});\n if (node.type === 'Content') {\n const content = nonEmptyString(props.content);\n if (!content)\n return null;\n const out = { type: 'Content', props: { content } };\n const align = oneOf(props.align, TEXT_ALIGNS);\n if (align)\n out.props.align = align;\n const tone = oneOf(props.tone, TONES);\n if (tone && tone !== 'default')\n out.props.tone = tone;\n return out;\n }\n if (node.type === 'Image') {\n const image = nonEmptyString(props.image);\n if (!image)\n return null;\n const out = { type: 'Image', props: { image } };\n return out;\n }\n if (!Array.isArray(node.children))\n return null;\n const type = oneOf(node.type, CONTAINER_TYPES) ?? 'Vertical';\n const children = [];\n for (const child of node.children) {\n const normalized = normalizeNode(child, depth + 1, budget);\n if (normalized)\n children.push(normalized);\n }\n const out = containerProps(props);\n // `order: 'reverse'` is applied right here and consumed: the normalized\n // tree carries the children already reordered (and the sizes template\n // reversed with them, so each child keeps its track) — the renderers and\n // the editor canvas never see the prop. Caveat for hand-authored json: the\n // \"keeps its track\" guarantee assumes one sizes token per child; with a\n // mismatched count the reversed template pairs children with different\n // tracks (grid itself would misalign such a template the same way).\n if (oneOf(props.order, ORDERS) === 'reverse') {\n children.reverse();\n if (typeof out.sizes === 'string')\n out.sizes = out.sizes.split(' ').reverse().join(' ');\n }\n return { type, props: out, children };\n}\n/**\n * Validate an embedded layout tree from the stored json. Returns the\n * normalized tree, or null when the value isn't a renderable tree at all —\n * the page is then dropped by resolveWebPopupPages.\n */\nexport function normalizeWebPopupLayout(raw) {\n return normalizeNode(raw, 0, { nodes: WEB_POPUP_LAYOUT_MAX_NODES });\n}\n// --- value substitution ($refs) ---------------------------------------------\n/** A page value key, as referenced from the tree by a `$key` token. */\nexport const WEB_POPUP_VALUE_KEY_PATTERN = /^[a-zA-Z][a-zA-Z0-9-]*$/;\nconst VALUE_REF_PATTERN = /^\\$([a-zA-Z][a-zA-Z0-9-]*)$/;\n// Every whitespace-separated token of the form $key is replaced; separators\n// survive, so both a whole-string prop ('$stackGap') and a token inside a\n// sizes template ('1fr $imageWidth') substitute with the same rule. An\n// unknown key stays as-is and fails the prop whitelist downstream — the prop\n// is dropped, same as any invalid literal.\nfunction substituteString(value, values) {\n if (!value.includes('$'))\n return value;\n return value\n .split(/(\\s+)/)\n .map((token) => {\n const key = VALUE_REF_PATTERN.exec(token)?.[1];\n // Own properties only: '$constructor' must stay an unknown ref, not\n // resolve to an Object.prototype member.\n return key !== undefined && Object.prototype.hasOwnProperty.call(values, key) ? values[key] : token;\n })\n .join('');\n}\n/**\n * Substitute a page's named values into its RAW layout tree — `$key` tokens\n * in string props become the values, verbatim. Runs BEFORE\n * normalizeWebPopupLayout (see resolveWebPopupPages), so a substituted value\n * passes exactly the whitelists/clamps a literal one would; substitution is\n * single-pass and normalizeWebPopupValues rejects values containing '$', so\n * refs can't chain. Binding keys (`content`, `image`, `backgroundImage`) are\n * never substituted — they already name params by design.\n */\nexport function substituteWebPopupLayoutValues(layout, values) {\n if (typeof layout !== 'object' || layout === null || Object.keys(values).length === 0)\n return layout;\n return substituteNode(layout, values, 0);\n}\nconst BINDING_PROPS = new Set(['content', 'image', 'backgroundImage']);\nfunction substituteNode(raw, values, depth) {\n if (depth > WEB_POPUP_LAYOUT_MAX_DEPTH || typeof raw !== 'object' || raw === null)\n return raw;\n const node = raw;\n const out = { ...node };\n if (typeof node.props === 'object' && node.props !== null) {\n const props = { ...node.props };\n for (const [key, value] of Object.entries(props)) {\n if (BINDING_PROPS.has(key))\n continue;\n if (typeof value === 'string') {\n props[key] = substituteString(value, values);\n }\n else if (typeof value === 'object' && value !== null && !Array.isArray(value)) {\n // Per-side paddings: one level of string sides.\n const sides = { ...value };\n for (const [side, sideValue] of Object.entries(sides)) {\n if (typeof sideValue === 'string')\n sides[side] = substituteString(sideValue, values);\n }\n props[key] = sides;\n }\n }\n out.props = props;\n }\n if (Array.isArray(node.children)) {\n out.children = node.children.map((child) => substituteNode(child, values, depth + 1));\n }\n return out;\n}\n// --- css conversion (shared by the reader and the editor's canvas) ---------\nexport function webPopupCssLength(value) {\n return typeof value === 'number' ? `${value}px` : value;\n}\nexport function webPopupPaddingValue(padding) {\n if (typeof padding === 'number' || typeof padding === 'string')\n return webPopupCssLength(padding);\n const side = (value) => (value === undefined ? '0' : webPopupCssLength(value));\n return `${side(padding.top)} ${side(padding.right)} ${side(padding.bottom)} ${side(padding.left)}`;\n}\n/** grid-template value for Columns/Rows: absent sizes = one 1fr per child. */\nexport function webPopupTracksValue(sizes, childCount) {\n if (typeof sizes === 'string')\n return sizes;\n const count = typeof sizes === 'number' ? sizes : Math.max(childCount, 1);\n return `repeat(${count}, 1fr)`;\n}\n/**\n * The cover-background css of a container that draws an image behind its\n * content. `dim` (0–1) is the image's scrim — a dark translucent layer\n * painted as a gradient stacked over the url() in the same property, so it\n * needs no extra element and rides along wherever the background is drawn.\n */\nexport function webPopupBackgroundImageStyle(src, dim = 0) {\n // JSON.stringify quotes + escapes the url, so an src can't break out of\n // the css function.\n const image = `url(${JSON.stringify(src)})`;\n const scrim = dim > 0 ? `rgba(16, 24, 40, ${Math.min(dim, 1)})` : null;\n return {\n backgroundImage: scrim ? `linear-gradient(${scrim}, ${scrim}), ${image}` : image,\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n };\n}\n/**\n * The inline style of a container node — grid, mirroring kit-helpers'\n * Vertical/Horizontal/Columns/Rows semantics. The background image is passed\n * resolved (looked up in the page's images by the caller) so this stays a\n * pure props → css mapping.\n */\nexport function webPopupContainerStyle(node, backgroundSrc, backgroundDim = 0) {\n const props = node.props ?? {};\n const style = { display: 'grid', minWidth: 0 };\n if (node.type === 'Horizontal')\n style.gridAutoFlow = 'column';\n if (node.type === 'Columns')\n style.gridTemplateColumns = webPopupTracksValue(props.sizes, node.children.length);\n if (node.type === 'Rows')\n style.gridTemplateRows = webPopupTracksValue(props.sizes, node.children.length);\n if (props.gap !== undefined)\n style.gap = webPopupCssLength(props.gap);\n if (props.padding !== undefined)\n style.padding = webPopupPaddingValue(props.padding);\n if (props.alignItems)\n style.alignItems = props.alignItems;\n if (props.justifyContent)\n style.justifyContent = props.justifyContent;\n if (backgroundSrc)\n Object.assign(style, webPopupBackgroundImageStyle(backgroundSrc, backgroundDim));\n return style;\n}\n","import { SAFE_URL_PROTOCOL, WEB_POPUP_DEFAULT_COLORS, WEB_POPUP_VERSION } from './constants';\nimport { normalizeWebPopupLayout, substituteWebPopupLayoutValues, WEB_POPUP_VALUE_KEY_PATTERN, } from './layout';\n// Sanitize a user-entered button URL before it lands in an href: https/http/\n// mailto/tel and page-relative links only.\nexport function safeUrl(url) {\n const trimmed = (url || '').trim();\n if (!trimmed)\n return undefined;\n if (trimmed.startsWith('#') || trimmed.startsWith('/') || trimmed.startsWith('?'))\n return trimmed;\n if (SAFE_URL_PROTOCOL.test(trimmed))\n return trimmed;\n return undefined;\n}\n/**\n * The target/rel pair a popup link renders with: only an exact '_self' opts\n * out of the default new tab (and of its noreferrer, which same-tab\n * navigation doesn't need). One rule for both link kinds — the reader's\n * button anchors and the sanitizer's inline text links.\n */\nexport function webPopupLinkTargetAttrs(target) {\n return target === '_self' ? { target: '_self' } : { target: '_blank', rel: 'noreferrer' };\n}\nconst SANITIZE_ALLOWED_TAGS = new Set(['STRONG', 'B', 'EM', 'I', 'U', 'BR', 'A']);\nfunction copySanitized(from, to, doc) {\n for (const child of Array.from(from.childNodes)) {\n if (child.nodeType === 3 /* text */) {\n to.appendChild(doc.createTextNode(child.textContent ?? ''));\n continue;\n }\n if (child.nodeType !== 1 /* element */)\n continue;\n const el = child;\n // Unknown tags are unwrapped — their children survive as plain content.\n if (!SANITIZE_ALLOWED_TAGS.has(el.tagName)) {\n copySanitized(el, to, doc);\n continue;\n }\n const clean = doc.createElement(el.tagName.toLowerCase());\n if (el.tagName === 'A') {\n const href = safeUrl(el.getAttribute('href') ?? undefined);\n if (href)\n clean.setAttribute('href', href);\n const { target, rel } = webPopupLinkTargetAttrs(el.getAttribute('target'));\n clean.setAttribute('target', target);\n if (rel)\n clean.setAttribute('rel', rel);\n }\n to.appendChild(clean);\n copySanitized(el, clean, doc);\n }\n}\n/**\n * Sanitize a text slot's html before it's injected into the page. The editor\n * only ever writes inline formatting, but the json travels through a public\n * API and renders on customers' sites — so on render only the inline tags\n * survive (anything else is unwrapped to its text), every attribute is\n * dropped, and links keep only a safeUrl-approved href plus their tab choice\n * (target=\"_self\" stays; everything else opens in a new tab).\n */\nexport function sanitizeWebPopupHtml(html) {\n // No '<' → no elements can form; entities in plain text are already-valid\n // html and pass through untouched.\n if (!html.includes('<'))\n return html;\n const parsed = new DOMParser().parseFromString(html, 'text/html');\n const out = parsed.createElement('div');\n copySanitized(parsed.body, out, parsed);\n return out.innerHTML;\n}\nfunction colorString(value) {\n return typeof value === 'string' && value ? value : undefined;\n}\n/**\n * The popup palette from API-writable params: `colors` entries when present,\n * the legacy top-level background/accent underneath, palette defaults for the\n * rest — always a complete WebPopupColors.\n */\nexport function normalizeWebPopupColors(params) {\n const colors = typeof params.colors === 'object' && params.colors !== null\n ? params.colors\n : {};\n return {\n background: colorString(colors.background)\n ?? colorString(params.background) ?? WEB_POPUP_DEFAULT_COLORS.background,\n accent: colorString(colors.accent) ?? colorString(params.accent) ?? WEB_POPUP_DEFAULT_COLORS.accent,\n text: colorString(colors.text) ?? WEB_POPUP_DEFAULT_COLORS.text,\n textSecondary: colorString(colors.textSecondary) ?? WEB_POPUP_DEFAULT_COLORS.textSecondary,\n textInverse: colorString(colors.textInverse) ?? WEB_POPUP_DEFAULT_COLORS.textInverse,\n };\n}\n// Parse stored PopupFormContent.json into the popup model. Returns null for\n// anything that isn't a version-2 popup with at least one page — including\n// the retired version-1 flat-layout format and pre-engine content with no\n// `version` field at all, which callers should treat as broken. The palette\n// comes out complete: colors entries → legacy top-level background/accent →\n// defaults.\nexport function parseWebPopupJson(json) {\n let raw;\n try {\n raw = JSON.parse(json);\n }\n catch {\n return null;\n }\n if (typeof raw !== 'object' || raw === null)\n return null;\n const candidate = raw;\n if (candidate.version !== WEB_POPUP_VERSION)\n return null;\n const params = candidate.params;\n if (typeof params !== 'object' || params === null)\n return null;\n if (!Array.isArray(params.pages) || params.pages.length === 0)\n return null;\n return { version: WEB_POPUP_VERSION, params: { ...params, colors: normalizeWebPopupColors(params) } };\n}\n/** The editor's save path: model → PopupFormContent.json string. */\nexport function stringifyWebPopup(params) {\n const compat = {\n ...params,\n background: params.colors.background,\n accent: params.colors.accent,\n };\n const payload = { version: WEB_POPUP_VERSION, params: compat };\n return JSON.stringify(payload);\n}\nconst IMAGE_FITS = ['cover', 'contain'];\nconst MAX_IMAGE_BLUR = 100;\n// Bomb protection for the page content, mirroring the layout tree's\n// depth/node caps: the tree allows up to ~100 Content nodes and several may\n// reference the same zone, so unbounded zones/slots would amplify into\n// thousands of sanitize+render passes on the customer's page.\nconst MAX_IMAGES = 20;\nconst MAX_ZONES = 20;\nconst MAX_ZONE_SLOTS = 50;\n// The images come from API-writable json — keep only well-formed entries,\n// with the presentation props (fit/blur) validated like the layout tree's.\nfunction normalizeImages(raw) {\n if (!Array.isArray(raw))\n return [];\n const out = [];\n for (const img of raw) {\n if (out.length >= MAX_IMAGES)\n break;\n if (typeof img !== 'object' || img === null)\n continue;\n if (typeof img.key !== 'string' || !img.key)\n continue;\n if (typeof img.src !== 'string')\n continue;\n out.push({\n key: img.key,\n label: typeof img.label === 'string' ? img.label : '',\n src: img.src,\n ...(IMAGE_FITS.includes(img.fit) ? { fit: img.fit } : {}),\n ...(typeof img.blur === 'number' && Number.isFinite(img.blur) && img.blur > 0\n ? { blur: Math.min(img.blur, MAX_IMAGE_BLUR) }\n : {}),\n ...(typeof img.dim === 'number' && Number.isFinite(img.dim) && img.dim > 0\n ? { dim: Math.min(img.dim, 1) }\n : {}),\n });\n }\n return out;\n}\nconst MAX_VALUES = 20;\nconst MAX_VALUE_LENGTH = 64;\nconst MAX_SELECT_OPTIONS = 20;\nconst LENGTH_CONTROL_UNITS = ['px', '%', 'em', 'rem', 'fr'];\nfunction finiteNumber(value) {\n return typeof value === 'number' && Number.isFinite(value) ? value : undefined;\n}\n// The control is editor metadata from API-writable json: enum-whitelisted\n// kind, clamped numbers, capped options. Anything malformed drops to\n// undefined — the editor falls back to a plain text input.\nfunction normalizeValueControl(raw) {\n if (typeof raw !== 'object' || raw === null)\n return undefined;\n const control = raw;\n if (control.kind === 'text')\n return { kind: 'text' };\n if (control.kind === 'length' || control.kind === 'percent') {\n const min = finiteNumber(control.min);\n const max = finiteNumber(control.max);\n const units = control.kind === 'length' && Array.isArray(control.units)\n ? control.units.filter((u) => (LENGTH_CONTROL_UNITS.includes(u)))\n : [];\n return {\n kind: control.kind,\n ...(min !== undefined ? { min } : {}),\n ...(max !== undefined ? { max } : {}),\n ...(units.length > 0 ? { units } : {}),\n };\n }\n if (control.kind === 'select' && Array.isArray(control.options)) {\n const options = [];\n for (const option of control.options) {\n if (options.length >= MAX_SELECT_OPTIONS)\n break;\n if (typeof option !== 'object' || option === null)\n continue;\n if (typeof option.value !== 'string' || option.value.length > MAX_VALUE_LENGTH)\n continue;\n options.push({ value: option.value, label: typeof option.label === 'string' ? option.label : option.value });\n }\n if (options.length > 0)\n return { kind: 'select', options };\n }\n return undefined;\n}\n/**\n * The page's named layout values from API-writable json: capped count,\n * whitelisted keys, short '$'-free value strings (substitution is single-pass\n * and this keeps refs from even *looking* chainable), validated controls.\n */\nexport function normalizeWebPopupValues(raw) {\n if (!Array.isArray(raw))\n return [];\n const out = [];\n for (const value of raw) {\n if (out.length >= MAX_VALUES)\n break;\n if (typeof value !== 'object' || value === null)\n continue;\n if (typeof value.key !== 'string' || !WEB_POPUP_VALUE_KEY_PATTERN.test(value.key))\n continue;\n if (typeof value.value !== 'string' || value.value.length > MAX_VALUE_LENGTH || value.value.includes('$'))\n continue;\n if (out.some((v) => v.key === value.key))\n continue;\n const control = normalizeValueControl(value.control);\n out.push({\n key: value.key,\n label: typeof value.label === 'string' ? value.label : '',\n value: value.value,\n ...(control ? { control } : {}),\n });\n }\n return out;\n}\n/** The values as a substitution map (see substituteWebPopupLayoutValues). */\nexport function webPopupValuesMap(values) {\n return Object.fromEntries(values.map((v) => [v.key, v.value]));\n}\n// The zones come from API-writable json — keep only well-formed entries\n// (capped, see above) so the renderer can trust the shape.\nfunction normalizeContents(raw) {\n if (!Array.isArray(raw))\n return [];\n const out = [];\n for (const zone of raw) {\n if (out.length >= MAX_ZONES)\n break;\n if (typeof zone !== 'object' || zone === null)\n continue;\n if (typeof zone.key !== 'string' || !zone.key)\n continue;\n if (!Array.isArray(zone.slots))\n continue;\n out.push({\n key: zone.key,\n label: typeof zone.label === 'string' ? zone.label : '',\n slots: zone.slots.slice(0, MAX_ZONE_SLOTS),\n });\n }\n return out;\n}\n/**\n * The popup box-size ceiling px, mirroring the layout tree's px clamp: the\n * json is API-writable and the size lands as inline style on the customer's\n * page. The editor clamps its Width/Height inputs to it too.\n */\nexport const WEB_POPUP_MAX_SIZE_PX = 2000;\nfunction validSize(value) {\n return typeof value === 'number' && Number.isFinite(value) && value > 0\n ? Math.min(value, WEB_POPUP_MAX_SIZE_PX)\n : undefined;\n}\n/**\n * A page's final box dimension: the page's own (null = explicitly auto) over\n * the chrome's, validated — a finite positive number clamped to the ceiling.\n * A malformed page value falls back to the chrome (like an absent one), a\n * malformed chrome value = auto. Exported for the editor — it must resolve\n * and validate exactly like the runtime (parity contract), never fork this.\n */\nexport function resolveWebPopupPageSize(own, shared) {\n if (own === null)\n return undefined;\n return validSize(own) ?? validSize(shared);\n}\n/**\n * The renderable pages: each page carries its own embedded layout tree — no\n * kind catalog at runtime. The page's named values are substituted into the\n * tree first ($key tokens), then the result is validated/normalized\n * (whitelisted props, unknown container types degrade to a Vertical stack) —\n * so substituted values pass the same clamps as literals; pages whose layout\n * isn't a tree at all are dropped. An empty result means the popup can't be\n * rendered. width/height come out FINAL (page override ?? chrome, validated)\n * — the renderer never falls back itself.\n */\nexport function resolveWebPopupPages(params) {\n const out = [];\n for (const page of params.pages) {\n const values = normalizeWebPopupValues(page.values);\n const layout = normalizeWebPopupLayout(substituteWebPopupLayoutValues(page.layout, webPopupValuesMap(values)));\n if (!layout)\n continue;\n const width = resolveWebPopupPageSize(page.width, params.width);\n const height = resolveWebPopupPageSize(page.height, params.height);\n out.push({\n key: page.key,\n layout,\n images: normalizeImages(page.images),\n contents: normalizeContents(page.contents),\n ...(width !== undefined ? { width } : {}),\n ...(height !== undefined ? { height } : {}),\n });\n }\n return out;\n}\n/** The page shown first: startPage when it exists, else the first page. */\nexport function startPageOf(params, pages) {\n return pages.find((p) => p.key === params.startPage) ?? pages[0];\n}\nexport function placementMaxSize(placement) {\n return `calc(100% - ${placement.offset * 2}px)`;\n}\n","import{options as n}from\"preact\";var t,r,u,i,o=0,f=[],c=n,e=c.__b,a=c.__r,v=c.diffed,l=c.__c,m=c.unmount,p=c.__;function s(n,t){c.__h&&c.__h(r,n,o||t),o=0;var u=r.__H||(r.__H={__:[],__h:[]});return n>=u.__.length&&u.__.push({}),u.__[n]}function d(n){return o=1,y(D,n)}function y(n,u,i){var o=s(t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):D(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=r,!r.__f)){var f=function(n,t,r){if(!o.__c.__H)return!0;var u=!1,i=o.__c.props!==n;if(o.__c.__H.__.some(function(n){if(n.__N){u=!0;var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),c){var f=c.call(this,n,t,r);return u?f||i:f}return!u||i};r.__f=!0;var c=r.shouldComponentUpdate,e=r.componentWillUpdate;r.componentWillUpdate=function(n,t,r){if(this.__e){var u=c;c=void 0,f(n,t,r),c=u}e&&e.call(this,n,t,r)},r.shouldComponentUpdate=f}return o.__N||o.__}function h(n,u){var i=s(t++,3);!c.__s&&C(i.__H,u)&&(i.__=n,i.u=u,r.__H.__h.push(i))}function _(n,u){var i=s(t++,4);!c.__s&&C(i.__H,u)&&(i.__=n,i.u=u,r.__h.push(i))}function A(n){return o=5,T(function(){return{current:n}},[])}function F(n,t,r){o=6,_(function(){if(\"function\"==typeof n){var r=n(t());return function(){n(null),r&&\"function\"==typeof r&&r()}}if(n)return n.current=t(),function(){return n.current=null}},null==r?r:r.concat(n))}function T(n,r){var u=s(t++,7);return C(u.__H,r)&&(u.__=n(),u.__H=r,u.__h=n),u.__}function q(n,t){return o=8,T(function(){return n},t)}function x(n){var u=r.context[n.__c],i=s(t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(r)),u.props.value):n.__}function P(n,t){c.useDebugValue&&c.useDebugValue(t?t(n):n)}function b(n){var u=s(t++,10),i=d();return u.__=n,r.componentDidCatch||(r.componentDidCatch=function(n,t){u.__&&u.__(n,t),i[1](n)}),[i[0],function(){i[1](void 0)}]}function g(){var n=s(t++,11);if(!n.__){for(var u=r.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;var i=u.__m||(u.__m=[0,0]);n.__=\"P\"+i[0]+\"-\"+i[1]++}return n.__}function j(){for(var n;n=f.shift();){var t=n.__H;if(n.__P&&t)try{t.__h.some(z),t.__h.some(B),t.__h=[]}catch(r){t.__h=[],c.__e(r,n.__v)}}}c.__b=function(n){r=null,e&&e(n)},c.__=function(n,t){n&&t.__k&&t.__k.__m&&(n.__m=t.__k.__m),p&&p(n,t)},c.__r=function(n){a&&a(n),t=0;var i=(r=n.__c).__H;i&&(u===r?(i.__h=[],r.__h=[],i.__.some(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(i.__h.some(z),i.__h.some(B),i.__h=[],t=0)),u=r},c.diffed=function(n){v&&v(n);var t=n.__c;t&&t.__H&&(t.__H.__h.length&&(1!==f.push(t)&&i===c.requestAnimationFrame||((i=c.requestAnimationFrame)||w)(j)),t.__H.__.some(function(n){n.u&&(n.__H=n.u,n.u=void 0)})),u=r=null},c.__c=function(n,t){t.some(function(n){try{n.__h.some(z),n.__h=n.__h.filter(function(n){return!n.__||B(n)})}catch(r){t.some(function(n){n.__h&&(n.__h=[])}),t=[],c.__e(r,n.__v)}}),l&&l(n,t)},c.unmount=function(n){m&&m(n);var t,r=n.__c;r&&r.__H&&(r.__H.__.some(function(n){try{z(n)}catch(n){t=n}}),r.__H=void 0,t&&c.__e(t,r.__v))};var k=\"function\"==typeof requestAnimationFrame;function w(n){var t,r=function(){clearTimeout(u),k&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,35);k&&(t=requestAnimationFrame(r))}function z(n){var t=r,u=n.__c;\"function\"==typeof u&&(n.__c=void 0,u()),r=t}function B(n){var t=r;n.__c=n.__(),r=t}function C(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function D(n,t){return\"function\"==typeof t?t(n):t}export{q as useCallback,x as useContext,P as useDebugValue,h as useEffect,b as useErrorBoundary,g as useId,F as useImperativeHandle,_ as useLayoutEffect,T as useMemo,y as useReducer,A as useRef,d as useState};\n//# sourceMappingURL=hooks.module.js.map\n","import{Component as n,createElement as t,options as e,toChildArray as r,Fragment as u,render as o,hydrate as i,createContext as l,createRef as c,cloneElement as f}from\"preact\";export{Component,Fragment,Fragment as StrictMode,createContext,createElement,createRef}from\"preact\";import{useState as a,useLayoutEffect as s,useEffect as h,useCallback as v,useContext as d,useDebugValue as m,useId as p,useImperativeHandle as y,useMemo as _,useReducer as b,useRef as S}from\"preact/hooks\";export*from\"preact/hooks\";function g(n,t){for(var e in t)n[e]=t[e];return n}function E(n,t){for(var e in n)if(\"__source\"!==e&&!(e in t))return!0;for(var r in t)if(\"__source\"!==r&&n[r]!==t[r])return!0;return!1}function C(n,t){var e=t(),r=a({t:{__:e,u:t}}),u=r[0].t,o=r[1];return s(function(){u.__=e,u.u=t,R(u)&&o({t:u})},[n,e,t]),h(function(){return R(u)&&o({t:u}),n(function(){R(u)&&o({t:u})})},[n]),e}function R(n){try{return!((t=n.__)===(e=n.u())&&(0!==t||1/t==1/e)||t!=t&&e!=e)}catch(n){return!0}var t,e}function x(n){n()}function w(n){return n}function k(){return[!1,x]}var I=s;function M(n,t){this.props=n,this.context=t}function N(n,e){function r(n){var t=this.props.ref;return t!=n.ref&&t&&(\"function\"==typeof t?t(null):t.current=null),e?!e(this.props,n)||t!=n.ref:E(this.props,n)}function u(e){return this.shouldComponentUpdate=r,t(n,e)}return u.displayName=\"Memo(\"+(n.displayName||n.name)+\")\",u.__f=u.prototype.isReactComponent=!0,u.type=n,u}(M.prototype=new n).isPureReactComponent=!0,M.prototype.shouldComponentUpdate=function(n,t){return E(this.props,n)||E(this.state,t)};var T=e.__b;e.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),T&&T(n)};var A=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.forward_ref\")||3911;function D(n){function t(t){var e=g({},t);return delete e.ref,n(e,t.ref||null)}return t.$$typeof=A,t.render=n,t.prototype.isReactComponent=t.__f=!0,t.displayName=\"ForwardRef(\"+(n.displayName||n.name)+\")\",t}var F=function(n,t){return null==n?null:r(r(n).map(t))},L={map:F,forEach:F,count:function(n){return n?r(n).length:0},only:function(n){var t=r(n);if(1!==t.length)throw\"Children.only\";return t[0]},toArray:r},O=e.__e;e.__e=function(n,t,e,r){if(n.then)for(var u,o=t;o=o.__;)if((u=o.__c)&&u.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k||[]),u.__c(n,t);O(n,t,e,r)};var U=e.unmount;function V(n,t,e){return n&&(n.__c&&n.__c.__H&&(n.__c.__H.__.forEach(function(n){\"function\"==typeof n.__c&&n.__c()}),n.__c.__H=null),null!=(n=g({},n)).__c&&(n.__c.__P===e&&(n.__c.__P=t),n.__c.__e=!0,n.__c=null),n.__k=n.__k&&n.__k.map(function(n){return V(n,t,e)})),n}function W(n,t,e){return n&&e&&(n.__v=null,n.__k=n.__k&&n.__k.map(function(n){return W(n,t,e)}),n.__c&&n.__c.__P===t&&(n.__e&&e.appendChild(n.__e),n.__c.__e=!0,n.__c.__P=e)),n}function P(){this.__u=0,this.o=null,this.__b=null}function j(n){var t=n.__&&n.__.__c;return t&&t.__a&&t.__a(n)}function z(n){var e,r,u,o=null;function i(i){if(e||(e=n()).then(function(n){n&&(o=n.default||n),u=!0},function(n){r=n,u=!0}),r)throw r;if(!u)throw e;return o?t(o,i):null}return i.displayName=\"Lazy\",i.__f=!0,i}function B(){this.i=null,this.l=null}e.unmount=function(n){var t=n.__c;t&&(t.__z=!0),t&&t.__R&&t.__R(),t&&32&n.__u&&(n.type=null),U&&U(n)},(P.prototype=new n).__c=function(n,t){var e=t.__c,r=this;null==r.o&&(r.o=[]),r.o.push(e);var u=j(r.__v),o=!1,i=function(){o||r.__z||(o=!0,e.__R=null,u?u(c):c())};e.__R=i;var l=e.__P;e.__P=null;var c=function(){if(!--r.__u){if(r.state.__a){var n=r.state.__a;r.__v.__k[0]=W(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__a:r.__b=null});t=r.o.pop();)t.__P=l,t.forceUpdate()}};r.__u++||32&t.__u||r.setState({__a:r.__b=r.__v.__k[0]}),n.then(i,i)},P.prototype.componentWillUnmount=function(){this.o=[]},P.prototype.render=function(n,e){if(this.__b){if(this.__v.__k){var r=document.createElement(\"div\"),o=this.__v.__k[0].__c;this.__v.__k[0]=V(this.__b,r,o.__O=o.__P)}this.__b=null}var i=e.__a&&t(u,null,n.fallback);return i&&(i.__u&=-33),[t(u,null,e.__a?null:n.children),i]};var H=function(n,t,e){if(++e[1]===e[0]&&n.l.delete(t),n.props.revealOrder&&(\"t\"!==n.props.revealOrder[0]||!n.l.size))for(e=n.i;e;){for(;e.length>3;)e.pop()();if(e[1]<e[0])break;n.i=e=e[2]}};function Z(n){return this.getChildContext=function(){return n.context},n.children}function Y(n){var e=this,r=n.h;if(e.componentWillUnmount=function(){o(null,e.v),e.v=null,e.h=null},e.h&&e.h!==r&&e.componentWillUnmount(),!e.v){for(var u=e.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;e.h=r,e.v={nodeType:1,parentNode:r,childNodes:[],__k:{__m:u.__m},contains:function(){return!0},namespaceURI:r.namespaceURI,insertBefore:function(n,t){this.childNodes.push(n),e.h.insertBefore(n,t)},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>1,1),e.h.removeChild(n)}}}o(t(Z,{context:e.context},n.__v),e.v)}function $(n,e){var r=t(Y,{__v:n,h:e});return r.containerInfo=e,r}(B.prototype=new n).__a=function(n){var t=this,e=j(t.__v),r=t.l.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),H(t,n,r)):u()};e?e(o):o()}},B.prototype.render=function(n){this.i=null,this.l=new Map;var t=r(n.children);n.revealOrder&&\"b\"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.l.set(t[e],this.i=[1,0,this.i]);return n.children},B.prototype.componentDidUpdate=B.prototype.componentDidMount=function(){var n=this;this.l.forEach(function(t,e){H(n,e,t)})};var q=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103,G=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,J=/^on(Ani|Tra|Tou|BeforeInp|Compo)/,K=/[A-Z0-9]/g,Q=\"undefined\"!=typeof document,X=function(n){return(\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol()?/fil|che|rad/:/fil|che|ra/).test(n)};function nn(n,t,e){return null==t.__k&&(t.textContent=\"\"),o(n,t),\"function\"==typeof e&&e(),n?n.__c:null}function tn(n,t,e){return i(n,t),\"function\"==typeof e&&e(),n?n.__c:null}n.prototype.isReactComponent=!0,[\"componentWillMount\",\"componentWillReceiveProps\",\"componentWillUpdate\"].forEach(function(t){Object.defineProperty(n.prototype,t,{configurable:!0,get:function(){return this[\"UNSAFE_\"+t]},set:function(n){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:n})}})});var en=e.event;e.event=function(n){return en&&(n=en(n)),n.persist=function(){},n.isPropagationStopped=function(){return this.cancelBubble},n.isDefaultPrevented=function(){return this.defaultPrevented},n.nativeEvent=n};var rn,un={configurable:!0,get:function(){return this.class}},on=e.vnode;e.vnode=function(n){\"string\"==typeof n.type&&function(n){var t=n.props,e=n.type,u={},o=-1==e.indexOf(\"-\");for(var i in t){var l=t[i];if(!(\"value\"===i&&\"defaultValue\"in t&&null==l||Q&&\"children\"===i&&\"noscript\"===e||\"class\"===i||\"className\"===i)){var c=i.toLowerCase();\"defaultValue\"===i&&\"value\"in t&&null==t.value?i=\"value\":\"download\"===i&&!0===l?l=\"\":\"translate\"===c&&\"no\"===l?l=!1:\"o\"===c[0]&&\"n\"===c[1]?\"ondoubleclick\"===c?i=\"ondblclick\":\"onchange\"!==c||\"input\"!==e&&\"textarea\"!==e||X(t.type)?\"onfocus\"===c?i=\"onfocusin\":\"onblur\"===c?i=\"onfocusout\":J.test(i)&&(i=c):c=i=\"oninput\":o&&G.test(i)?i=i.replace(K,\"-$&\").toLowerCase():null===l&&(l=void 0),\"oninput\"===c&&u[i=c]&&(i=\"oninputCapture\"),u[i]=l}}\"select\"==e&&(u.multiple&&Array.isArray(u.value)&&(u.value=r(t.children).forEach(function(n){n.props.selected=-1!=u.value.indexOf(n.props.value)})),null!=u.defaultValue&&(u.value=r(t.children).forEach(function(n){n.props.selected=u.multiple?-1!=u.defaultValue.indexOf(n.props.value):u.defaultValue==n.props.value}))),t.class&&!t.className?(u.class=t.class,Object.defineProperty(u,\"className\",un)):t.className&&(u.class=u.className=t.className),n.props=u}(n),n.$$typeof=q,on&&on(n)};var ln=e.__r;e.__r=function(n){ln&&ln(n),rn=n.__c};var cn=e.diffed;e.diffed=function(n){cn&&cn(n);var t=n.props,e=n.__e;null!=e&&\"textarea\"===n.type&&\"value\"in t&&t.value!==e.value&&(e.value=null==t.value?\"\":t.value),rn=null};var fn={ReactCurrentDispatcher:{current:{readContext:function(n){return rn.__n[n.__c].props.value},useCallback:v,useContext:d,useDebugValue:m,useDeferredValue:w,useEffect:h,useId:p,useImperativeHandle:y,useInsertionEffect:I,useLayoutEffect:s,useMemo:_,useReducer:b,useRef:S,useState:a,useSyncExternalStore:C,useTransition:k}}},an=\"18.3.1\";function sn(n){return t.bind(null,n)}function hn(n){return!!n&&n.$$typeof===q}function vn(n){return hn(n)&&n.type===u}function dn(n){return!!n&&\"string\"==typeof n.displayName&&0==n.displayName.indexOf(\"Memo(\")}function mn(n){return hn(n)?f.apply(null,arguments):n}function pn(n){return!!n.__k&&(o(null,n),!0)}function yn(n){return n&&(n.base||1===n.nodeType&&n)||null}var _n=function(n,t){return n(t)},bn=function(n,t){var r=e.debounceRendering;e.debounceRendering=function(n){return n()};var u=n(t);return e.debounceRendering=r,u},Sn=hn,gn={useState:a,useId:p,useReducer:b,useEffect:h,useLayoutEffect:s,useInsertionEffect:I,useTransition:k,useDeferredValue:w,useSyncExternalStore:C,startTransition:x,useRef:S,useImperativeHandle:y,useMemo:_,useCallback:v,useContext:d,useDebugValue:m,version:\"18.3.1\",Children:L,render:nn,hydrate:tn,unmountComponentAtNode:pn,createPortal:$,createElement:t,createContext:l,createFactory:sn,cloneElement:mn,createRef:c,Fragment:u,isValidElement:hn,isElement:Sn,isFragment:vn,isMemo:dn,findDOMNode:yn,Component:n,PureComponent:M,memo:N,forwardRef:D,flushSync:bn,unstable_batchedUpdates:_n,StrictMode:u,Suspense:P,SuspenseList:B,lazy:z,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:fn};export{L as Children,M as PureComponent,P as Suspense,B as SuspenseList,fn as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,mn as cloneElement,sn as createFactory,$ as createPortal,gn as default,yn as findDOMNode,bn as flushSync,D as forwardRef,tn as hydrate,Sn as isElement,vn as isFragment,dn as isMemo,hn as isValidElement,z as lazy,N as memo,nn as render,x as startTransition,pn as unmountComponentAtNode,_n as unstable_batchedUpdates,w as useDeferredValue,I as useInsertionEffect,C as useSyncExternalStore,k as useTransition,an as version};\n//# sourceMappingURL=compat.module.js.map\n","import React, { useEffect, useState } from 'react';\nimport { webPopupTextColor, WEB_POPUP_BG_SECTION_FALLBACK, WEB_POPUP_BUTTON_SLOT_PADDING, WEB_POPUP_FONT_STACK, WEB_POPUP_KEYFRAMES, WEB_POPUP_PAGE_TRANSITION_MS, WEB_POPUP_TEXT_SLOT_PADDING, WEB_POPUP_TEXT_VARIANT_STYLES, } from './constants';\nimport { placementMaxSize, resolveWebPopupPages, safeUrl, sanitizeWebPopupHtml, startPageOf, webPopupLinkTargetAttrs, } from './helpers';\nimport { webPopupBackgroundImageStyle, webPopupContainerStyle } from './layout';\n// Renders a popup from its model by interpreting each page's embedded layout\n// tree — the same node vocabulary the editor's canvas builds from: container\n// nodes become inline-styled grid divs, `Content` leaves render a named\n// zone's slot stack, `Image` leaves an image param. 'live' mode adds the\n// viewport chrome (overlay, placement, animation, close), 'preview' renders\n// just the popup box inline. Only one page renders at a time; buttons with a\n// `page` action switch pages. All styling is inline (shadow-DOM friendly, no\n// CSS files).\nconst ANIMATION_STYLE = {\n none: undefined,\n fade: 'pw-vpopup-fade 0.35s ease-out backwards',\n slide: 'pw-vpopup-slide 0.35s ease-out backwards',\n};\nfunction TextSlotView({ slot, align, inverse, colors }) {\n const style = {\n ...WEB_POPUP_TEXT_VARIANT_STYLES[slot.variant],\n textAlign: slot.align ?? align,\n padding: WEB_POPUP_TEXT_SLOT_PADDING,\n };\n const color = webPopupTextColor(slot.variant, colors, inverse);\n if (color)\n style.color = color;\n // The html comes from the editor's rich-text slots, but the json is\n // API-writable — sanitize on render (inline tags only, safe link hrefs).\n return React.createElement(\"div\", { style: style, dangerouslySetInnerHTML: { __html: sanitizeWebPopupHtml(slot.html) } });\n}\nfunction ButtonSlotView({ slot, accent, onRequestClose, onPageChange }) {\n const pill = {\n display: 'block',\n boxSizing: 'border-box',\n width: '100%',\n padding: '10px 25px',\n borderRadius: 3,\n fontSize: 14,\n fontWeight: 600,\n fontFamily: 'inherit',\n lineHeight: 1.5,\n textAlign: 'center',\n textDecoration: 'none',\n cursor: 'pointer',\n ...(slot.variant === 'secondary'\n ? { backgroundColor: '#FFFFFF', color: accent, border: `1px solid ${accent}` }\n : { backgroundColor: accent, color: '#FFFFFF', border: 'none' }),\n };\n const wrapper = { padding: WEB_POPUP_BUTTON_SLOT_PADDING };\n if (slot.action.type === 'close') {\n return (React.createElement(\"div\", { style: wrapper },\n React.createElement(\"button\", { type: \"button\", style: pill, onClick: onRequestClose }, slot.label)));\n }\n if (slot.action.type === 'page') {\n const target = slot.action.page;\n return (React.createElement(\"div\", { style: wrapper },\n React.createElement(\"button\", { type: \"button\", style: pill, onClick: () => onPageChange(target) }, slot.label)));\n }\n const href = safeUrl(slot.action.url);\n // No (safe) URL yet: an inert pill — not an '#' anchor opening a blank tab.\n if (!href) {\n return (React.createElement(\"div\", { style: wrapper },\n React.createElement(\"button\", { type: \"button\", style: pill }, slot.label)));\n }\n return (React.createElement(\"div\", { style: wrapper },\n React.createElement(\"a\", { href: href, ...webPopupLinkTargetAttrs(slot.action.target), style: pill }, slot.label)));\n}\n// A Content leaf: the named zone's slots (texts and buttons in order) as a\n// grid stack. An unknown zone key renders as an empty spot, not a crash.\nfunction ContentNodeView({ node, page, colors, leaf, onRequestClose, onPageChange }) {\n const zone = page.contents.find((z) => z.key === node.props.content);\n if (!zone)\n return null;\n if (leaf?.renderZone) {\n return React.createElement(\"div\", { style: { minWidth: 0 } }, leaf.renderZone(zone, node));\n }\n const align = node.props.align ?? 'left';\n const inverse = node.props.tone === 'inverse';\n return (React.createElement(\"div\", { style: { minWidth: 0 } }, zone.slots.map((slot) => (slot.type === 'text' ? (React.createElement(TextSlotView, { key: slot.key, slot: slot, align: align, inverse: inverse, colors: colors })) : (React.createElement(ButtonSlotView, { key: slot.key, slot: slot, accent: colors.accent, onRequestClose: onRequestClose, onPageChange: onPageChange }))))));\n}\nfunction ImageNodeView({ node, page, leaf }) {\n const image = page.images.find((i) => i.key === node.props.image);\n if (!image)\n return null;\n // The override sees srcless params too — an editor wants a placeholder\n // where the runtime shows nothing.\n if (leaf?.renderImage)\n return React.createElement(React.Fragment, null, leaf.renderImage(image, node));\n if (!image.src)\n return null;\n const style = { display: 'block', width: '100%', minWidth: 0 };\n if (image.fit) {\n style.height = '100%';\n style.objectFit = image.fit;\n }\n else {\n style.height = 'auto';\n }\n if (image.blur)\n style.filter = `blur(${image.blur}px)`;\n return React.createElement(\"img\", { src: image.src, alt: \"\", style: style });\n}\n// The tree interpreter: containers → grid divs, leaves → zone/image views.\nfunction LayoutNodeView({ node, page, colors, leaf, onRequestClose, onPageChange }) {\n if (node.type === 'Content') {\n return (React.createElement(ContentNodeView, { node: node, page: page, colors: colors, leaf: leaf, onRequestClose: onRequestClose, onPageChange: onPageChange }));\n }\n if (node.type === 'Image') {\n return React.createElement(ImageNodeView, { node: node, page: page, leaf: leaf });\n }\n const bgKey = node.props?.backgroundImage;\n const background = bgKey ? page.images.find((i) => i.key === bgKey) : undefined;\n const blur = background?.blur ?? 0;\n const dim = background?.dim ?? 0;\n const style = webPopupContainerStyle(node, blur > 0 ? undefined : background?.src || undefined, dim);\n if (bgKey)\n style.backgroundColor = WEB_POPUP_BG_SECTION_FALLBACK;\n const children = node.children.map((child, index) => (React.createElement(LayoutNodeView\n // Layout nodes are static per page render — positional keys are fine.\n , { \n // Layout nodes are static per page render — positional keys are fine.\n key: index, node: child, page: page, colors: colors, leaf: leaf, onRequestClose: onRequestClose, onPageChange: onPageChange })));\n if (blur > 0) {\n // backdrop-filter blurs what's painted BEHIND its element, never the\n // element's own background — so the image paints on an outer box and the\n // laid-out content rides an inner blurring layer covering it edge to\n // edge (grid/padding move onto that layer).\n const { backgroundColor, ...inner } = style;\n return (React.createElement(\"div\", { style: {\n minWidth: 0,\n backgroundColor,\n ...(background?.src ? webPopupBackgroundImageStyle(background.src, dim) : {}),\n } },\n React.createElement(\"div\", { style: {\n ...inner,\n backdropFilter: `blur(${blur}px)`,\n WebkitBackdropFilter: `blur(${blur}px)`,\n } }, children)));\n }\n return React.createElement(\"div\", { style: style }, children);\n}\n// The popup box: the shared chrome (background, radius, shadow) around one\n// resolved page's layout tree. Exported for the editor — its canvas is this\n// very interpreter with `leafRenderers` swapping the Content/Image leaves\n// for editable views (the container interpretation stays this component's,\n// which is what keeps the canvas true to the runtime); the viewport chrome\n// (placement, overlay, enter animation) is the caller's business there.\n// After a page switch (`animatePage`) the incoming content fades in — keyed\n// by page so the animation restarts per switch — and an explicit px height\n// glides via the transition (auto heights just snap).\nexport function WebPopupBox({ page, params, leafRenderers, animatePage = false, onRequestClose, onPageChange, }) {\n const style = {\n position: 'relative',\n boxSizing: 'border-box',\n overflow: 'hidden',\n backgroundColor: params.colors.background,\n fontFamily: WEB_POPUP_FONT_STACK,\n color: params.colors.text,\n borderRadius: params.borderRadius > 0 ? params.borderRadius : undefined,\n boxShadow: params.boxShadow && params.boxShadow !== 'none' ? params.boxShadow : undefined,\n transition: `height ${WEB_POPUP_PAGE_TRANSITION_MS}ms ease`,\n };\n if (page.height) {\n style.height = page.height;\n style.overflowY = 'auto';\n }\n return (React.createElement(\"div\", { style: style },\n React.createElement(\"div\", { key: page.key, style: animatePage ? { animation: `pw-vpopup-page ${WEB_POPUP_PAGE_TRANSITION_MS}ms ease-out backwards` } : undefined },\n React.createElement(LayoutNodeView, { node: page.layout, page: page, colors: params.colors, leaf: leafRenderers, onRequestClose: onRequestClose, onPageChange: onPageChange ?? (() => { }) }))));\n}\nfunction CloseButton({ onRequestClose }) {\n return (React.createElement(\"button\", { type: \"button\", \"aria-label\": \"Close\", onClick: onRequestClose, style: {\n position: 'absolute',\n top: 10,\n right: 10,\n width: 24,\n height: 24,\n padding: 0,\n border: 'none',\n borderRadius: '50%',\n background: 'rgba(255, 255, 255, 0.92)',\n boxShadow: '0 1px 3px rgba(16, 24, 40, 0.25)',\n color: '#667085',\n fontSize: 13,\n lineHeight: 1,\n cursor: 'pointer',\n } }, \"\\u2715\"));\n}\n// Fixed viewport placement from the placement param: anchored edges get the\n// offset, unanchored axes center via translate. No width = stretch between\n// the side gutters. The width is the ACTIVE page's (resolved page ?? chrome),\n// so the box re-anchors itself when a page switch changes the size.\nfunction fixedContainerStyle(params, width) {\n const { placement } = params;\n const style = {\n position: 'fixed',\n boxSizing: 'border-box',\n maxWidth: placementMaxSize(placement),\n maxHeight: placementMaxSize(placement),\n // The widget host is pointer-transparent (a corner banner must not block\n // the page); the popup itself takes clicks back.\n pointerEvents: 'auto',\n };\n if (width) {\n style.width = width;\n const h = placement.h;\n if (h === 'left')\n style.left = placement.offset;\n else if (h === 'right')\n style.right = placement.offset;\n else\n style.left = '50%';\n }\n else {\n // Stretch: pin both side edges regardless of the horizontal anchor.\n style.left = placement.offset;\n style.right = placement.offset;\n }\n if (placement.v === 'top')\n style.top = placement.offset;\n else if (placement.v === 'bottom')\n style.bottom = placement.offset;\n else\n style.top = '50%';\n const tx = width && placement.h === 'center' ? '-50%' : '0';\n const ty = placement.v === 'middle' ? '-50%' : '0';\n if (tx !== '0' || ty !== '0')\n style.transform = `translate(${tx}, ${ty})`;\n const anim = ANIMATION_STYLE[params.animation];\n if (anim)\n style.animation = anim;\n // A page switch that changes the (explicit) width glides instead of\n // jumping; the anchored edges keep the box pinned while it resizes.\n style.transition = `width ${WEB_POPUP_PAGE_TRANSITION_MS}ms ease`;\n return style;\n}\nexport function WebPopupReader({ params, mode = 'live', onRequestClose, leafRenderers }) {\n // null = never navigated: show the start page. Guarded against keys that\n // don't exist (anymore) — an edited/older document falls back gracefully.\n const [pageKey, setPageKey] = useState(null);\n // Only the active page's images are in the DOM — the rest would start\n // downloading on the page switch, leaving the previous picture on screen\n // until the new one arrives. Warm the browser cache for every page up front.\n useEffect(() => {\n resolveWebPopupPages(params).forEach((p) => p.images.forEach(({ src }) => {\n if (src)\n new Image().src = src;\n }));\n }, [params]);\n const pages = resolveWebPopupPages(params);\n if (pages.length === 0)\n return null;\n const page = pages.find((p) => p.key === pageKey) ?? startPageOf(params, pages);\n // null = the initial page: entry is the chrome's business (the enter\n // animation in live mode); the page fade only plays on actual switches.\n const animatePage = pageKey !== null;\n if (mode === 'preview') {\n return (React.createElement(\"div\", { style: {\n position: 'relative',\n width: page.width ?? '100%',\n transition: `width ${WEB_POPUP_PAGE_TRANSITION_MS}ms ease`,\n } },\n React.createElement(\"style\", null, WEB_POPUP_KEYFRAMES),\n React.createElement(WebPopupBox, { page: page, params: params, leafRenderers: leafRenderers, animatePage: animatePage, onRequestClose: onRequestClose, onPageChange: setPageKey })));\n }\n const overlay = params.overlay;\n return (React.createElement(React.Fragment, null,\n React.createElement(\"style\", null, WEB_POPUP_KEYFRAMES),\n overlay && (\n // Modal semantics: the dim is clickable and dismisses the popup.\n React.createElement(\"div\", { style: {\n position: 'fixed',\n inset: 0,\n backgroundColor: overlay.color,\n opacity: overlay.opacity,\n animation: 'pw-vpopup-overlay 0.2s ease-out backwards',\n pointerEvents: 'auto',\n }, onClick: onRequestClose })),\n React.createElement(\"div\", { style: fixedContainerStyle(params, page.width) },\n React.createElement(WebPopupBox, { page: page, params: params, leafRenderers: leafRenderers, animatePage: animatePage, onRequestClose: onRequestClose, onPageChange: setPageKey }),\n React.createElement(CloseButton, { onRequestClose: onRequestClose }))));\n}\n","import { render } from 'preact';\nimport {\n parseWebPopupJson, resolveWebPopupPages, WebPopupReader,\n type WebPopupParams,\n} from 'smart-blocks-utils';\n\n/**\n * Parse stored popup json into the renderable model. Returns null for\n * anything that is not a supported {version: 1, params} popup with at least\n * one resolvable page — including legacy pre-engine content (no `version`\n * field), which is deliberately unrenderable.\n */\nexport const parseWebPopupContent = (json: string): WebPopupParams | null => {\n const parsed = parseWebPopupJson(json);\n if (!parsed) {\n return null;\n }\n\n if (resolveWebPopupPages(parsed.params).length === 0) {\n return null;\n }\n\n return parsed.params;\n};\n\n/**\n * Mount the popup into the shadow-root container. The reader draws the whole\n * chrome itself: page-dim overlay (click closes), fixed viewport placement,\n * enter animation, the close button — and owns page switching for multi-page\n * popups (buttons with a `page` action).\n */\nexport const renderWebPopup = (\n container: HTMLElement,\n params: WebPopupParams,\n onRequestClose: () => void,\n): void => {\n render(\n <WebPopupReader\n params={params}\n mode=\"live\"\n onRequestClose={onRequestClose}\n />,\n container,\n );\n};\n","import { type TInboxMessagesStoreName, type TKeyValueStoreName, type TMainLogStoreName, type TMessageLogStoreName } from '../Storage.types';\n\nexport const STORE_NAME_KEY_VALUE: TKeyValueStoreName = 'keyValue';\nexport const STORE_NAME_MESSAGE_LOG: TMessageLogStoreName = 'messages';\nexport const STORE_NAME_MAIN_LOG: TMainLogStoreName = 'log';\nexport const STORE_NAME_INBOX_MESSAGES: TInboxMessagesStoreName = 'inboxMessages';\n\nexport const KEY_PATH_BASE_INCREMENT = 'id';\n","import { type TMigrationType, type TSdkStoreName } from '../Storage.types';\n\n/**\n * Check existed store, before create\n * @param name\n * @param storeCreator\n */\nexport function storeCreatorDecorator(name: TSdkStoreName, storeCreator: TMigrationType): TMigrationType {\n return function (database: IDBDatabase) {\n if (database.objectStoreNames.contains(name)) {\n return;\n }\n\n storeCreator(database);\n };\n}\n","import {\n STORE_NAME_INBOX_MESSAGES,\n STORE_NAME_KEY_VALUE,\n STORE_NAME_MAIN_LOG,\n STORE_NAME_MESSAGE_LOG,\n KEY_PATH_BASE_INCREMENT,\n} from './constants';\nimport { storeCreatorDecorator } from './helpers';\nimport {\n type TInboxMessagesIDBKeyPath,\n type TInboxMessagesIDBRemovalTimeIndex,\n type TInboxMessagesIDBStatusIndex,\n} from '../../../models/InboxMessages.types';\n\n/**\n * Create keyValue store migration\n * @param database\n */\nfunction createKeyValueStore(database: IDBDatabase) {\n database.createObjectStore(STORE_NAME_KEY_VALUE, { keyPath: 'key' });\n}\n\n/**\n * Create log store migration\n * @param database\n */\nfunction createLogStore(database: IDBDatabase) {\n const logStore = database.createObjectStore(\n STORE_NAME_MAIN_LOG,\n { keyPath: KEY_PATH_BASE_INCREMENT, autoIncrement: true },\n );\n logStore.createIndex('environment', 'environment', { unique: false });\n logStore.createIndex('date', 'date', { unique: false });\n logStore.createIndex('type', 'type', { unique: false });\n}\n\n/**\n * Create message log store migration\n * @param database\n */\nfunction createMessageLogStore(database: IDBDatabase) {\n const messagesStore = database.createObjectStore(\n STORE_NAME_MESSAGE_LOG,\n { keyPath: KEY_PATH_BASE_INCREMENT, autoIncrement: true },\n );\n messagesStore.createIndex('date', 'date', { unique: false });\n}\n\n/**\n * Create inbox messages store migration\n * @param database\n */\nfunction createInboxMessagesStore(database: IDBDatabase) {\n const keyPath: TInboxMessagesIDBKeyPath = 'inbox_id';\n const statusIndex: TInboxMessagesIDBStatusIndex = 'status';\n const removalTimeIndex: TInboxMessagesIDBRemovalTimeIndex = 'rt';\n\n const store = database.createObjectStore(STORE_NAME_INBOX_MESSAGES,\n { keyPath, autoIncrement: false },\n );\n store.createIndex(statusIndex, statusIndex, { unique: false, multiEntry: true });\n store.createIndex(removalTimeIndex, removalTimeIndex, { unique: false, multiEntry: true });\n}\n\nexport default [\n storeCreatorDecorator(STORE_NAME_KEY_VALUE, createKeyValueStore),\n storeCreatorDecorator(STORE_NAME_MAIN_LOG, createLogStore),\n storeCreatorDecorator(STORE_NAME_MESSAGE_LOG, createMessageLogStore),\n storeCreatorDecorator(STORE_NAME_INBOX_MESSAGES, createInboxMessagesStore),\n];\n","import { default as migrationsInitial } from './initial';\nimport { type TMigrationType } from '../Storage.types';\n\nexport default class Migrations {\n get all(): Array<TMigrationType> {\n return migrationsInitial;\n }\n}\n","import Migrations from './Migrations';\nimport { type TMigrationType } from '../Storage.types';\n\nexport default class MigrationExecutor {\n db: IDBDatabase;\n migrationsBuilder: Migrations;\n\n constructor(\n db: IDBDatabase,\n migrationsBuilder: Migrations = new Migrations(),\n ) {\n this.db = db;\n this.migrationsBuilder = migrationsBuilder;\n }\n\n applyMigrations() {\n this.applyMigrationsPack(this.migrationsBuilder.all);\n }\n\n applyMigrationsPack(migrationsPack: Array<TMigrationType>) {\n migrationsPack.forEach((migration) => {\n migration(this.db);\n });\n }\n}\n","import {\n STORE_NAME_KEY_VALUE,\n STORE_NAME_MAIN_LOG,\n STORE_NAME_MESSAGE_LOG,\n} from '../modules/storage/migrations/constants';\nimport MigrationExecutor from '../modules/storage/migrations/MigrationExecutor';\nimport { type IIDBOpenEventTargetWithResult } from '../modules/storage/Storage.types';\nimport version from '../modules/storage/version';\n\ndeclare const self: ServiceWorkerGlobalScope;\n\nfunction onversionchange(database: IDBDatabase, event: Event) {\n console.info('onversionchange', event);\n database.close();\n}\n\nlet databasePromise: Promise<IDBDatabase>;\nexport function getInstance(): Promise<IDBDatabase> {\n if (!databasePromise) {\n databasePromise = new Promise<IDBDatabase>((resolve, reject) => {\n const request: IDBOpenDBRequest = indexedDB.open('PUSHWOOSH_SDK_STORE', version);\n request.onsuccess = (event) => {\n const database: IDBDatabase = (event.target as IIDBOpenEventTargetWithResult).result;\n database.onversionchange = onversionchange.bind(null, database, reject);\n resolve(database);\n };\n\n request.onerror = () => reject(request.error);\n\n request.onupgradeneeded = (event) => {\n const database: IDBDatabase = (event.target as IIDBOpenEventTargetWithResult).result;\n database.onversionchange = onversionchange.bind(null, database, reject);\n\n const migrationExecutor = new MigrationExecutor(database);\n migrationExecutor.applyMigrations();\n };\n });\n }\n return databasePromise;\n}\n\nfunction getInstanceWithPromise(executor: any): any {\n return getInstance().then((database) => (\n new Promise((resolve, reject) => executor(database, resolve, reject))\n ));\n}\n\nfunction createKeyValue(name: string) {\n return {\n get<K extends string, D>(key: K, defaultValue?: D) {\n return getInstanceWithPromise((database: IDBDatabase, resolve: any, reject: any) => {\n const request = database.transaction(name).objectStore(name).get(key);\n\n /** @TODO\n * we cant invoke \"resolve\" or \"reject\" in onsuccess or onerror because\n * it leads to bugs in Safari when we try to get permissions for notifications\n *\n * Checking status of request in setTimeout fixes this bug\n */\n let isComplete = false;\n let isError = false;\n let timeout: any;\n\n const check = () => {\n clearTimeout(timeout);\n if (isComplete) {\n resolve(request.result?.value || defaultValue);\n } else if (isError) {\n reject(request.error);\n } else {\n timeout = setTimeout(check, 0);\n }\n };\n\n request.onsuccess = () => isComplete = true;\n request.onerror = () => isError = true;\n check();\n });\n },\n\n getAll() {\n return getInstanceWithPromise((database: IDBDatabase, resolve: any, reject: any) => {\n const result: { [key: string]: any } = {};\n const cursor = database.transaction(name).objectStore(name).openCursor();\n let isComplete = false;\n let isError = false;\n let timeout: any;\n\n /** @TODO\n * we cant invoke \"resolve\" or \"reject\" in onsuccess or onerror because\n * it leads to bugs in Safari when we try to get permissions for notifications\n *\n * Checking status of request in setTimeout fixes this bug\n */\n const check = () => {\n clearTimeout(timeout);\n if (isComplete) {\n resolve(result);\n } else if (isError) {\n reject(cursor.error);\n } else {\n timeout = setTimeout(check, 0);\n }\n };\n\n cursor.onsuccess = (event) => {\n const cursorResult = (event.target as any).result;\n if (cursorResult) {\n result[cursorResult.key] = cursorResult.value.value;\n cursorResult.continue();\n } else {\n isComplete = true;\n }\n };\n cursor.onerror = () => isError = true;\n check();\n });\n },\n\n async extend(key: string, value: any) {\n const oldValues = await this.get(key);\n const { ...newValues } = value;\n await this.set(key, { ...oldValues, ...newValues });\n },\n\n set<K, D>(key: K, value: D) {\n return getInstanceWithPromise((database: IDBDatabase, resolve: any, reject: any) => {\n const request = database.transaction([name], 'readwrite').objectStore(name).put({ key, value });\n let isComplete = false;\n let isError = false;\n let timeout: any;\n\n /** @TODO\n * we cant invoke \"resolve\" or \"reject\" in onsuccess or onerror because\n * it leads to bugs in Safari when we try to get permissions for notifications\n *\n * Checking status of request in setTimeout fixes this bug\n */\n const check = () => {\n clearTimeout(timeout);\n if (isComplete) {\n resolve(key);\n } else if (isError) {\n reject(request.error);\n } else {\n timeout = setTimeout(check, 0);\n }\n };\n\n request.onsuccess = () => isComplete = true;\n request.onerror = () => isError = true;\n check();\n });\n },\n };\n}\n\nexport abstract class LogBase {\n protected abstract name: string;\n protected abstract maxItems: number;\n _add(obj: any) {\n return getInstanceWithPromise((database: IDBDatabase, resolve: any, reject: any) => {\n const request = database.transaction([this.name], 'readwrite').objectStore(this.name).add(obj);\n request.onsuccess = () => {\n resolve(obj);\n };\n request.onerror = () => {\n reject(request.error);\n };\n }).then((obj: any) => {\n return this.getAll().then((items: { id: number }[]) => {\n if (Array.isArray(items)) {\n const ids = items.map((i) => i.id).sort((a, b) => {\n if (a == b) return 0;\n return a < b ? 1 : -1;\n });\n if (ids.length > this.maxItems) {\n return Promise.all(ids.slice(this.maxItems).map((id) => this.delete(id))).then(() => obj);\n }\n }\n return obj;\n });\n });\n }\n\n delete(key: any) {\n return getInstanceWithPromise((database: IDBDatabase, resolve: any, reject: any) => {\n const request = database.transaction([this.name], 'readwrite').objectStore(this.name).delete(key);\n request.onsuccess = () => {\n resolve(request.result);\n };\n request.onerror = () => {\n reject(request.error);\n };\n });\n }\n\n getAll() {\n return getInstanceWithPromise((database: IDBDatabase, resolve: any, reject: any) => {\n const result: any[] = [];\n const cursor = database.transaction(this.name).objectStore(this.name).openCursor();\n cursor.onsuccess = (ev) => {\n const cursorResult = (ev.target as any).result;\n if (cursorResult) {\n if (cursorResult.value) {\n result.push(cursorResult.value);\n }\n cursorResult.continue();\n } else {\n resolve(result);\n }\n };\n cursor.onerror = () => {\n reject(cursor.error);\n };\n });\n }\n}\n\nexport class LogLog extends LogBase {\n protected name = STORE_NAME_MAIN_LOG;\n protected maxItems = 100;\n protected environment = (typeof self !== 'undefined' && self.registration) ? 'worker' : 'browser';\n add(type: string, message: any, additional?: any) {\n const obj: any = {\n type,\n environment: this.environment,\n message: `${message}`,\n date: new Date(),\n };\n if (message instanceof Error) {\n obj.stack = message.stack;\n }\n if (additional) {\n obj.additional = additional;\n }\n return this._add(obj);\n }\n}\n\nexport class LogMessage extends LogBase {\n protected name = STORE_NAME_MESSAGE_LOG;\n protected maxItems = 25;\n add(log: any) {\n return this._add({\n ...log,\n date: new Date(),\n });\n }\n}\n\nexport const keyValue = createKeyValue(STORE_NAME_KEY_VALUE);\nexport const log = new LogLog();\nexport const message = new LogMessage();\n","import { log as logStorage } from './storage';\n\nconst levels: { [key: string]: number } = {\n error: 1,\n info: 2,\n debug: 3,\n};\n\nlet limitLevel = 3;\n\ntype TWriteType = 'error' | 'apirequest' | 'info';\n\ninterface ILogger {\n setLevel(level: string): void;\n error(...args: any[]): void;\n info(...args: any[]): void;\n debug(...args: any[]): void;\n write(type: TWriteType, message: any, additional?: any): Promise<void>;\n isManualLevel(): boolean;\n [key: string]: any;\n}\n\nconst Logger: ILogger = {\n setLevel(level) {\n if (!levels[level]) {\n level = 'error';\n }\n limitLevel = levels[level];\n },\n write(type: TWriteType, message: any, additional?: any) {\n if (type === 'error') {\n this.error(message);\n } else {\n this.info(message);\n }\n return logStorage.add(type, message, additional);\n },\n} as ILogger;\n\nObject.keys(levels).forEach((levelName: string) => {\n const levelNumber = levels[levelName];\n Logger[levelName] = (...args: any[]) => {\n if (levelNumber <= limitLevel) {\n console.groupCollapsed(levelName);\n console.info('', ...args);\n console.trace('trace');\n console.groupEnd();\n }\n };\n});\n\nexport function logAndThrowError(error: string) {\n const logText = new Error(error);\n Logger.write('error', logText, 'logAndThrowError');\n throw logText;\n}\n\nexport function logAndRejectError(error: string, reject: (e: any) => void) {\n const logText = new Error(error);\n Logger.write('error', logText, 'logAndRejectError');\n reject(logText);\n}\n\nexport { Logger };\n","import { type WebPopupParams } from 'smart-blocks-utils';\n\nimport { POPUP_HOST_Z_INDEX, WEB_POPUPS_WIDGET_NAMESPACE } from './constants';\nimport { parseWebPopupContent, renderWebPopup } from './renderer';\nimport { type WebPopup } from './types';\nimport { Logger } from '../../core/logger';\nimport { type Pushwoosh } from '../../core/Pushwoosh';\n\ntype LoadedWebPopup = {\n popup: WebPopup;\n parsed: WebPopupParams;\n};\n\nexport class WebPopupsWidget {\n private readonly pw: Pushwoosh;\n\n private isRecurringVisitor = false;\n\n private readonly loadedPopups = new Map<string, LoadedWebPopup>();\n\n private readonly pendingTimers = new Map<string, { timeoutId: number; loaded: LoadedWebPopup }>();\n\n private isNavigationSubscribed = false;\n\n private openPopupsCount = 0;\n\n private bodyOverflowBeforeLock: string | null = null;\n\n private lockBodyScroll(): void {\n if (this.openPopupsCount === 0) {\n this.bodyOverflowBeforeLock = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n }\n this.openPopupsCount += 1;\n }\n\n private unlockBodyScroll(): void {\n this.openPopupsCount = Math.max(0, this.openPopupsCount - 1);\n if (this.openPopupsCount === 0 && this.bodyOverflowBeforeLock !== null) {\n document.body.style.overflow = this.bodyOverflowBeforeLock;\n this.bodyOverflowBeforeLock = null;\n }\n }\n\n constructor(pw: Pushwoosh) {\n this.pw = pw;\n }\n\n public async run(): Promise<void> {\n const { pw } = this;\n\n await pw.api.ensureDeviceRegistered();\n\n this.isRecurringVisitor = await pw.data.getIsRecurringVisitor();\n\n const webPopups = await pw.api.getPopupForms();\n\n const results = await Promise.allSettled(webPopups.map((webPopup) => this.loadWebPopup(webPopup)));\n results.forEach((result, index) => {\n if (result.status === 'rejected') {\n Logger.error(result.reason, `Failed to load web popup \"${webPopups[index].code}\"`);\n }\n });\n\n this.subscribeToNavigation();\n this.renderForCurrentPage();\n\n await pw.data.setIsRecurringVisitor(true);\n }\n\n private async loadWebPopup(webPopup: WebPopup): Promise<void> {\n const canBeShown = await this.checkStrongCondition(webPopup);\n if (!canBeShown) {\n return;\n }\n\n const content = await this.pw.api.getPopupFormContent(webPopup.popup_form_content_code);\n const parsed = parseWebPopupContent(content.json);\n if (!parsed) {\n // Legacy / unknown format — this popup is broken and never shows.\n Logger.error(\n new Error('Unsupported popup content format'),\n `Web popup \"${webPopup.code}\" content is not a supported {version, params} popup; skipping`,\n );\n return;\n }\n\n this.loadedPopups.set(webPopup.code, { popup: webPopup, parsed });\n }\n\n private renderForCurrentPage(): void {\n this.cancelPendingForUnmatchedPages();\n\n const toRender: Array<[string, LoadedWebPopup]> = [];\n\n this.loadedPopups.forEach((loaded, code) => {\n if (this.checkSoftCondition(loaded.popup)) {\n toRender.push([code, loaded]);\n }\n });\n\n toRender.forEach(([code, { popup, parsed }]) => {\n this.addToQueue(popup, parsed);\n this.loadedPopups.delete(code);\n });\n }\n\n private cancelPendingForUnmatchedPages(): void {\n this.pendingTimers.forEach(({ timeoutId, loaded }, code) => {\n if (this.checkSoftCondition(loaded.popup)) {\n return;\n }\n\n window.clearTimeout(timeoutId);\n this.pendingTimers.delete(code);\n this.loadedPopups.set(code, loaded);\n });\n }\n\n private subscribeToNavigation(): void {\n if (this.isNavigationSubscribed) {\n return;\n }\n\n this.isNavigationSubscribed = true;\n\n const onNavigate = (): void => this.renderForCurrentPage();\n\n const nav = (window as Window & { navigation?: EventTarget }).navigation;\n if (nav && typeof nav.addEventListener === 'function') {\n nav.addEventListener('currententrychange', onNavigate);\n return;\n }\n\n window.addEventListener('popstate', onNavigate);\n window.addEventListener('hashchange', onNavigate);\n\n // Programmatic pushState/replaceState fires no event; poll location instead\n // of monkey-patching history so SPA routers stay untouched.\n let lastHref = window.location.href;\n window.setInterval(() => {\n if (window.location.href !== lastHref) {\n lastHref = window.location.href;\n onNavigate();\n }\n }, 500);\n }\n\n private async checkStrongCondition(webPopup: WebPopup): Promise<boolean> {\n const conditions: Array<boolean> = await Promise.all([\n this.checkCanBeShownByDeviceTypeCondition(webPopup),\n this.checkCanBeShownByFrequencyCondition(webPopup),\n this.checkCanBeShownByVisitorsTypeCondition(webPopup),\n ]);\n\n return conditions.every((condition) => condition);\n }\n\n private checkSoftCondition(webPopup: WebPopup): boolean {\n return this.checkCanBeShownByMatchingPagesCondition(webPopup);\n }\n\n private checkCanBeShownByDeviceTypeCondition(webPopup: WebPopup): boolean {\n const { device_type: deviceType } = webPopup;\n\n const formFactor = this.pw.platformChecker.formFactor;\n if (deviceType === 'ALL') {\n return true;\n }\n\n return deviceType === formFactor;\n }\n\n private async checkCanBeShownByFrequencyCondition(webPopup: WebPopup): Promise<boolean> {\n const { frequency, code } = webPopup;\n\n if (frequency === 'ONCE') {\n const shown = await this.pw.data.getShownWebPopups();\n return !shown.includes(code);\n }\n\n if (frequency === 'ONCE_PER_SESSION') {\n return sessionStorage.getItem(this.getSessionStorageKey(code)) === null;\n }\n\n return true;\n }\n\n private checkCanBeShownByMatchingPagesCondition(webPopup: WebPopup): boolean {\n const { matching_pages: matchingPages } = webPopup;\n if (!matchingPages) {\n return true;\n }\n\n if (matchingPages.length === 0) {\n return true;\n }\n\n return matchingPages.includes(window.location.pathname);\n }\n\n private checkCanBeShownByVisitorsTypeCondition(webPopup: WebPopup): boolean {\n const { visitors_type: visitorsType } = webPopup;\n\n if (visitorsType === 'NEW') {\n return !this.isRecurringVisitor;\n }\n\n if (visitorsType === 'RECURRING') {\n return this.isRecurringVisitor;\n }\n\n return true;\n }\n\n private async markAsShown(webPopup: WebPopup): Promise<void> {\n this.pw.api.recordPopupFormEvent(webPopup.code, 2).catch((error) => {\n Logger.error(error, `Failed to record web popup shown event for \"${webPopup.code}\"`);\n });\n const { frequency, code } = webPopup;\n\n if (frequency === 'ONCE') {\n await this.pw.data.addShownWebPopup(code);\n return;\n }\n\n if (frequency === 'ONCE_PER_SESSION') {\n sessionStorage.setItem(this.getSessionStorageKey(code), '1');\n }\n }\n\n private getSessionStorageKey(code: string): string {\n return `${WEB_POPUPS_WIDGET_NAMESPACE}.shown.${code}`;\n }\n\n private addToQueue(webPopup: WebPopup, parsed: WebPopupParams): void {\n this.pw.api.recordPopupFormEvent(webPopup.code, 1).catch((error) => {\n Logger.error(error, `Failed to record web popup queued event for \"${webPopup.code}\"`);\n });\n\n const timeoutId = window.setTimeout(() => {\n this.pendingTimers.delete(webPopup.code);\n\n // The host is pointer-transparent: the reader's overlay / popup box\n // re-enable pointer events themselves, so a corner banner without a\n // dim never blocks the page underneath.\n const host = document.createElement('div');\n host.id = `${WEB_POPUPS_WIDGET_NAMESPACE}-${webPopup.code}`;\n host.style.position = 'fixed';\n host.style.inset = '0';\n host.style.zIndex = String(POPUP_HOST_Z_INDEX);\n host.style.pointerEvents = 'none';\n document.body.appendChild(host);\n\n const shadow = host.attachShadow({ mode: 'open' });\n const container = document.createElement('div');\n shadow.appendChild(container);\n\n // Only a dimmed (modal) popup locks the page scroll; banners and bars\n // leave the page usable.\n const modal = !!parsed.overlay;\n if (modal) {\n this.lockBodyScroll();\n }\n\n const closePopup = (): void => {\n if (modal) {\n this.unlockBodyScroll();\n }\n host.remove();\n this.pw.dispatchEvent('hide-web-popup', { code: webPopup.code });\n };\n\n // The reader draws the whole chrome (overlay that closes on click,\n // placement, animation, the close button and close-action buttons).\n renderWebPopup(container, parsed, closePopup);\n\n this.markAsShown(webPopup).catch((error) => {\n Logger.error(error, `Failed to mark web popup \"${webPopup.code}\" as shown`);\n });\n this.pw.dispatchEvent('show-web-popup', { code: webPopup.code });\n }, webPopup.delay * 1000);\n\n this.pendingTimers.set(webPopup.code, {\n timeoutId,\n loaded: { popup: webPopup, parsed },\n });\n }\n}\n"],"names":["root","factory","exports","module","define","amd","a","i","this","__webpack_require__","definition","Array","isArray","length","key","binding","o","Object","defineProperty","enumerable","value","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","WEB_POPUPS_WIDGET_NAMESPACE","n","preact_module_l","u","r","e","f","c","s","h","p","v","y","d","w","_","g","m","l","b","parentNode","removeChild","k","t","arguments","children","defaultProps","x","type","props","ref","__k","__","__b","__e","__c","constructor","__v","__i","__u","vnode","S","C","context","$","I","__P","__d","q","__n","namespaceURI","D","P","base","some","A","push","H","__r","debounceRendering","sort","shift","L","T","J","j","nextSibling","String","O","K","insertBefore","nodeType","F","z","setProperty","test","N","style","cssText","replace","toLowerCase","slice","addEventListener","removeEventListener","removeAttribute","setAttribute","V","event","M","render","contextType","__E","Q","sub","state","__h","_sb","__s","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","apply","componentWillUpdate","componentDidUpdate","getChildContext","getSnapshotBeforeUpdate","E","then","indexOf","B","G","diffed","map","localName","document","createTextNode","createElementNS","is","__m","data","defaultValue","childNodes","attributes","name","__html","innerHTML","content","current","unmount","componentWillUnmount","R","documentElement","firstChild","U","W","getDerivedStateFromError","setState","componentDidCatch","forceUpdate","Promise","bind","resolve","setTimeout","Math","random","toString","jsxRuntime_module_f","jsxRuntime_module_u","__source","__self","SAFE_URL_PROTOCOL","WEB_POPUP_DEFAULT_COLORS","WEB_POPUP_TEXT_VARIANT_STYLES","h1","fontSize","fontWeight","lineHeight","h2","h3","body","caption","eyebrow","letterSpacing","icon","INVERSE_TEXT_ALPHAS","webPopupTextColor","variant","colors","inverse","color","alpha","hex","exec","full","split","join","parseInt","inverseColorAt","textInverse","textSecondary","text","WEB_POPUP_KEYFRAMES","CONTAINER_TYPES","ORDERS","ALIGN_ITEMS","JUSTIFY_CONTENT","TEXT_ALIGNS","TONES","MAX_LENGTH_PX","LENGTH_UNIT_MAX","px","em","rem","LENGTH_PATTERN","TRACK_UNIT_MAX","fr","TRACK_PATTERN","TRACK_KEYWORDS","oneOf","allowed","includes","undefined","cssLength","Number","isFinite","min","max","match","trim","amount","unit","parseFloat","BOX_SIDES","trackSize","token","nonEmptyString","containerProps","raw","gap","padding","whole","sides","side","sideValue","keys","boxPadding","alignItems","justifyContent","backgroundImage","sizes","isInteger","tokens","clamped","every","trackSizes","normalizeNode","depth","budget","nodes","node","out","align","tone","image","child","normalized","order","reverse","normalizeWebPopupLayout","WEB_POPUP_VALUE_KEY_PATTERN","VALUE_REF_PATTERN","substituteString","values","substituteWebPopupLayoutValues","layout","substituteNode","BINDING_PROPS","Set","entries","has","webPopupCssLength","webPopupTracksValue","childCount","webPopupBackgroundImageStyle","src","dim","JSON","stringify","scrim","backgroundSize","backgroundPosition","webPopupContainerStyle","backgroundSrc","backgroundDim","display","minWidth","gridAutoFlow","gridTemplateColumns","gridTemplateRows","top","right","bottom","left","webPopupPaddingValue","assign","safeUrl","url","trimmed","startsWith","webPopupLinkTargetAttrs","target","rel","SANITIZE_ALLOWED_TAGS","copySanitized","from","to","doc","appendChild","textContent","el","tagName","clean","createElement","href","getAttribute","sanitizeWebPopupHtml","html","parsed","DOMParser","parseFromString","colorString","normalizeWebPopupColors","params","background","accent","IMAGE_FITS","normalizeImages","img","label","fit","blur","LENGTH_CONTROL_UNITS","finiteNumber","normalizeValueControl","control","kind","units","filter","options","option","normalizeWebPopupValues","webPopupValuesMap","fromEntries","normalizeContents","zone","slots","validSize","resolveWebPopupPageSize","own","shared","resolveWebPopupPages","page","pages","width","height","images","contents","placementMaxSize","placement","offset","hooks_module_t","hooks_module_r","hooks_module_u","hooks_module_i","hooks_module_o","hooks_module_f","hooks_module_c","hooks_module_e","hooks_module_a","hooks_module_v","hooks_module_l","hooks_module_m","hooks_module_p","hooks_module_s","__H","hooks_module_d","hooks_module_y","hooks_module_D","__N","__f","hooks_module_h","hooks_module_C","hooks_module_","hooks_module_A","hooks_module_T","hooks_module_F","concat","hooks_module_q","hooks_module_x","hooks_module_P","useDebugValue","hooks_module_g","hooks_module_j","hooks_module_z","hooks_module_B","requestAnimationFrame","hooks_module_w","hooks_module_k","clearTimeout","cancelAnimationFrame","compat_module_g","compat_module_E","compat_module_C","compat_module_R","compat_module_x","compat_module_w","compat_module_k","compat_module_I","compat_module_M","isPureReactComponent","compat_module_T","compat_module_A","for","compat_module_F","compat_module_L","forEach","count","only","toArray","compat_module_O","compat_module_U","compat_module_V","compat_module_W","compat_module_P","compat_module_j","__a","compat_module_B","__z","__R","__O","pop","fallback","compat_module_H","delete","revealOrder","size","Z","Y","contains","splice","Map","set","compat_module_q","compat_module_G","compat_module_J","compat_module_K","compat_module_Q","compat_module_X","isReactComponent","configurable","writable","en","persist","isPropagationStopped","cancelBubble","isDefaultPrevented","defaultPrevented","nativeEvent","rn","un","class","on","multiple","selected","className","$$typeof","ln","cn","fn","ReactCurrentDispatcher","readContext","useCallback","useContext","useDeferredValue","useEffect","useId","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useSyncExternalStore","useTransition","hn","gn","startTransition","version","Children","hydrate","unmountComponentAtNode","createPortal","containerInfo","createContext","add","Provider","__l","Consumer","createFactory","cloneElement","createRef","Fragment","isValidElement","isElement","isFragment","isMemo","displayName","findDOMNode","Component","PureComponent","memo","forwardRef","flushSync","unstable_batchedUpdates","StrictMode","Suspense","SuspenseList","lazy","default","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ANIMATION_STYLE","none","fade","slide","TextSlotView","slot","textAlign","dangerouslySetInnerHTML","ButtonSlotView","onRequestClose","onPageChange","pill","boxSizing","borderRadius","fontFamily","textDecoration","cursor","backgroundColor","border","wrapper","action","onClick","ContentNodeView","leaf","find","renderZone","ImageNodeView","renderImage","objectFit","alt","LayoutNodeView","bgKey","index","inner","backdropFilter","WebkitBackdropFilter","WebPopupBox","leafRenderers","animatePage","position","overflow","boxShadow","transition","overflowY","animation","CloseButton","fixedContainerStyle","maxWidth","maxHeight","pointerEvents","tx","ty","transform","anim","WebPopupReader","mode","pageKey","setPageKey","Image","startPage","startPageOf","overlay","inset","opacity","parseWebPopupContent","json","parse","candidate","parseWebPopupJson","STORE_NAME_KEY_VALUE","STORE_NAME_MESSAGE_LOG","STORE_NAME_INBOX_MESSAGES","storeCreatorDecorator","storeCreator","database","objectStoreNames","initial","createObjectStore","keyPath","logStore","autoIncrement","createIndex","unique","statusIndex","store","multiEntry","Migrations","all","MigrationExecutor","db","migrationsBuilder","applyMigrations","applyMigrationsPack","migrationsPack","migration","onversionchange","console","info","close","databasePromise","getInstanceWithPromise","executor","reject","request","indexedDB","open","onsuccess","result","onerror","error","onupgradeneeded","LogBase","_add","transaction","objectStore","getAll","items","ids","id","maxItems","openCursor","ev","cursorResult","continue","log","environment","self","registration","message","additional","date","Date","Error","stack","levels","debug","limitLevel","Logger","setLevel","level","write","levelName","levelNumber","args","groupCollapsed","trace","groupEnd","WebPopupsWidget","lockBodyScroll","openPopupsCount","bodyOverflowBeforeLock","unlockBodyScroll","pw","isRecurringVisitor","loadedPopups","pendingTimers","isNavigationSubscribed","run","api","ensureDeviceRegistered","getIsRecurringVisitor","webPopups","getPopupForms","allSettled","webPopup","loadWebPopup","status","reason","code","subscribeToNavigation","renderForCurrentPage","setIsRecurringVisitor","checkStrongCondition","getPopupFormContent","popup_form_content_code","popup","cancelPendingForUnmatchedPages","toRender","loaded","checkSoftCondition","addToQueue","timeoutId","window","onNavigate","nav","navigation","lastHref","location","setInterval","checkCanBeShownByDeviceTypeCondition","checkCanBeShownByFrequencyCondition","checkCanBeShownByVisitorsTypeCondition","condition","checkCanBeShownByMatchingPagesCondition","device_type","deviceType","formFactor","platformChecker","frequency","getShownWebPopups","sessionStorage","getItem","getSessionStorageKey","matching_pages","matchingPages","pathname","visitors_type","visitorsType","markAsShown","recordPopupFormEvent","catch","setItem","addShownWebPopup","host","zIndex","shadow","attachShadow","container","modal","renderWebPopup","remove","dispatchEvent","delay"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"widget-web-popups.js","mappings":"CAAA,SAAAA,EAAAC,GACA,oBAAAC,SAAA,iBAAAC,OACAA,OAAAD,QAAAD,SACA,sBAAAG,QAAAA,OAAAC,IACAD,OAAA,GAAAH,OACA,CACA,IAAAK,EAAAL,IACA,QAAAM,KAAAD,GAAA,iBAAAJ,QAAAA,QAAAF,GAAAO,GAAAD,EAAAC,EACA,CACC,CATD,CASCC,KAAA,uBCRD,MAAAC,EAAA,CCAAA,EAAA,CAAAP,EAAAQ,KACA,GAAAC,MAAAC,QAAAF,GAEA,IADA,IAAAH,EAAA,EACAA,EAAAG,EAAAG,QAAA,CACA,IAAAC,EAAAJ,EAAAH,KACAQ,EAAAL,EAAAH,KACAE,EAAAO,EAAAd,EAAAY,GAMK,IAAAC,GAAyBR,IAL9B,IAAAQ,EACAE,OAAAC,eAAAhB,EAAAY,EAAA,CAA2CK,YAAA,EAAAC,MAAAV,EAAAH,OAE3CU,OAAAC,eAAAhB,EAAAY,EAAA,CAA2CK,YAAA,EAAAE,IAAAN,GAG3C,MAEA,QAAAD,KAAAJ,EACAD,EAAAO,EAAAN,EAAAI,KAAAL,EAAAO,EAAAd,EAAAY,IACAG,OAAAC,eAAAhB,EAAAY,EAAA,CAA0CK,YAAA,EAAAE,IAAAX,EAAAI,MClB1CL,EAAA,CAAAa,EAAAC,IAAAN,OAAAO,UAAAC,eAAAC,KAAAJ,EAAAC,GCCAd,EAAAP,IACAyB,OAAAC,aACAX,OAAAC,eAAAhB,EAAAyB,OAAAC,YAAA,CAAuDR,MAAA,WAEvDH,OAAAC,eAAAhB,EAAA,cAAgDkB,OAAA,sDCLzC,MAAMS,EAA8B,uBAI9BC,EAAgC,yDAEhCC,EAAgC,6BCN7C,IAAAC,EAAMC,EAACC,EAAA3B,EAAA4B,EAAAnB,EAAAoB,EAAAC,EAAAC,EAAAhC,EAAAiC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,GAAiCC,EAAA,GAAAC,EAAA,oEAAAC,EAAApC,MAAAC,QAA4F,SAAAoC,EAAAhB,EAAAiB,GAAgB,QAAAf,KAAAe,EAAAjB,EAAAE,GAAAe,EAAAf,GAAyB,OAAAF,CAAA,CAAS,SAAAkB,EAAAlB,GAAcA,GAAAA,EAAAmB,YAAAnB,EAAAmB,WAAAC,YAAApB,EAAA,CAA6C,SAAAqB,EAAAJ,EAAAf,EAAAoB,GAAkB,IAAA/C,EAAA4B,EAAAnB,EAAAoB,EAAA,GAAe,IAAApB,KAAAkB,EAAA,OAAAlB,EAAAT,EAAA2B,EAAAlB,GAAA,OAAAA,EAAAmB,EAAAD,EAAAlB,GAAAoB,EAAApB,GAAAkB,EAAAlB,GAAqD,GAAAuC,UAAA1C,OAAA,IAAAuB,EAAAoB,SAAAD,UAAA1C,OAAA,EAAAmB,EAAAN,KAAA6B,UAAA,GAAAD,GAAA,mBAAAL,GAAA,MAAAA,EAAAQ,aAAA,IAAAzC,KAAAiC,EAAAQ,kBAAA,IAAArB,EAAApB,KAAAoB,EAAApB,GAAAiC,EAAAQ,aAAAzC,IAAwL,OAAA0C,EAAAT,EAAAb,EAAA7B,EAAA4B,EAAA,MAAuB,SAAAuB,EAAA1B,EAAAsB,EAAA/C,EAAA4B,EAAAnB,GAAsB,IAAAoB,EAAA,CAAOuB,KAAA3B,EAAA4B,MAAAN,EAAAxC,IAAAP,EAAAsD,IAAA1B,EAAA2B,IAAA,KAAAC,GAAA,KAAAC,IAAA,EAAAC,IAAA,KAAAC,IAAA,KAAAC,iBAAA,EAAAC,IAAApD,KAAAkB,EAAAmC,KAAA,EAAAC,IAAA,GAAuH,aAAAtD,GAAA,MAAsBiB,EAACsC,OAAQtC,EAACsC,MAAAnC,GAAAA,CAAA,CAA8C,SAAAoC,EAAAxC,GAAc,OAAAA,EAAAwB,QAAA,CAAkB,SAAAiB,EAAAzC,EAAAiB,GAAgBzC,KAAAoD,MAAA5B,EAAAxB,KAAAkE,QAAAzB,CAAA,CAA4B,SAAA0B,EAAA3C,EAAAiB,GAAgB,SAAAA,EAAA,OAAAjB,EAAA+B,GAAAY,EAAA3C,EAAA+B,GAAA/B,EAAAqC,IAAA,QAA4C,QAAAnC,EAAUe,EAAAjB,EAAA8B,IAAAjD,OAAeoC,IAAA,UAAAf,EAAAF,EAAA8B,IAAAb,KAAA,MAAAf,EAAA+B,IAAA,OAAA/B,EAAA+B,IAAoD,yBAAAjC,EAAA2B,KAAAgB,EAAA3C,GAAA,KAA0C,SAAA4C,EAAA5C,GAAc,GAAAA,EAAA6C,KAAA7C,EAAA8C,IAAA,CAAiB,IAAA5C,EAAAF,EAAAoC,IAAAd,EAAApB,EAAA+B,IAAA1D,EAAA,GAAA4B,EAAA,GAAAnB,EAAAgC,EAAA,GAAoCd,GAAIlB,EAAAoD,IAAAlC,EAAAkC,IAAA,EAAcnC,EAACsC,OAAQtC,EAACsC,MAAAvD,GAAA+D,EAAA/C,EAAA6C,IAAA7D,EAAAkB,EAAAF,EAAAgD,IAAAhD,EAAA6C,IAAAI,aAAA,GAAA/C,EAAAoC,IAAA,CAAAhB,GAAA,KAAA/C,EAAA+C,GAAAqB,EAAAzC,MAAA,GAAAA,EAAAoC,KAAAnC,GAAAnB,EAAAoD,IAAAlC,EAAAkC,IAAApD,EAAA+C,GAAAD,IAAA9C,EAAAqD,KAAArD,EAAAkE,EAAA3E,EAAAS,EAAAmB,GAAAD,EAAA+B,IAAA/B,EAAA6B,GAAA,KAAA/C,EAAAiD,KAAAX,GAAA6B,EAAAnE,EAAA,EAAyK,SAAAmE,EAAAnD,GAAc,UAAAA,EAAAA,EAAA+B,KAAA,MAAA/B,EAAAkC,IAAA,OAAAlC,EAAAiC,IAAAjC,EAAAkC,IAAAkB,KAAA,KAAApD,EAAA8B,IAAAuB,KAAA,SAAApC,GAAmF,SAAAA,GAAA,MAAAA,EAAAgB,IAAA,OAAAjC,EAAAiC,IAAAjC,EAAAkC,IAAAkB,KAAAnC,EAAAgB,GAAA,GAAsDkB,EAAAnD,EAAA,CAAO,SAAAsD,EAAAtD,KAAcA,EAAA8C,MAAA9C,EAAA8C,KAAA,IAAAvE,EAAAgF,KAAAvD,KAAAwD,EAAAC,OAAAtD,GAA6CF,EAACyD,sBAAAvD,EAAyBF,EAACyD,oBAAA1E,GAAAwE,EAAA,CAA2B,SAAAA,IAAa,IAAI,QAAAxD,EAAAiB,EAAA,EAAc1C,EAAAM,QAASN,EAAAM,OAAAoC,GAAA1C,EAAAoF,KAAAvD,GAAAJ,EAAAzB,EAAAqF,QAAA3C,EAAA1C,EAAAM,OAAA+D,EAAA5C,EAAA,CAAmD,QAAQzB,EAAAM,OAAA2E,EAAAC,IAAA,GAAkB,SAAAI,EAAA7D,EAAAiB,EAAAf,EAAAoB,EAAA/C,EAAA4B,EAAAnB,EAAAoB,EAAAC,EAAAC,EAAAhC,GAAkC,IAAAiC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAG,EAAAC,EAAAC,EAAAM,GAAAA,EAAAQ,KAAAjB,EAAAK,EAAAD,EAAApC,OAA2C,IAAAwB,EAAAyD,EAAA5D,EAAAe,EAAAD,EAAAX,EAAAa,GAAAX,EAAA,EAAuBA,EAAAW,EAAIX,IAAA,OAAAE,EAAAP,EAAA4B,IAAAvB,MAAAC,GAAA,GAAAC,EAAA4B,KAAArB,EAAAP,EAAA4B,MAAAzB,EAAAH,EAAA4B,IAAA9B,EAAAO,EAAAiC,EAAA/C,EAAAS,EAAAD,EAAAjC,EAAA4B,EAAAnB,EAAAoB,EAAAC,EAAAC,EAAAhC,GAAAoC,EAAAD,EAAAwB,IAAAxB,EAAAoB,KAAArB,EAAAqB,KAAApB,EAAAoB,MAAArB,EAAAqB,KAAAkC,EAAAvD,EAAAqB,IAAA,KAAApB,GAAAnC,EAAAiF,KAAA9C,EAAAoB,IAAApB,EAAAyB,KAAAxB,EAAAD,IAAA,MAAAE,GAAA,MAAAD,IAAAC,EAAAD,IAAAK,KAAA,EAAAN,EAAA6B,OAAA9B,EAAAsB,MAAArB,EAAAqB,KAAAzB,EAAA2D,EAAAvD,EAAAJ,EAAAL,EAAAe,GAAAA,GAAAP,EAAAyB,MAAAzB,EAAAyB,IAAA,0BAAAxB,EAAAkB,WAAA,IAAAb,EAAAT,EAAAS,EAAAJ,IAAAL,EAAAK,EAAAuD,aAAAxD,EAAA6B,MAAA,GAAyU,OAAApC,EAAA+B,IAAAtB,EAAAN,CAAA,CAAiB,SAAAyD,EAAA9D,EAAAiB,EAAAf,EAAAoB,EAAA/C,GAAsB,IAAA4B,EAAAnB,EAAAoB,EAAAC,EAAAC,EAAAhC,EAAA4B,EAAArB,OAAA0B,EAAAjC,EAAAkC,EAAA,EAAiC,IAAAR,EAAA8B,IAAA,IAAAnD,MAAAJ,GAAA4B,EAAA,EAA2BA,EAAA5B,EAAI4B,IAAA,OAAAnB,EAAAiC,EAAAd,KAAA,kBAAAnB,GAAA,mBAAAA,GAAA,iBAAAA,GAAA,iBAAAA,GAAA,iBAAAA,GAAAA,EAAAmD,aAAA+B,OAAAlF,EAAAgB,EAAA8B,IAAA3B,GAAAuB,EAAA,KAAA1C,EAAA,gBAAA+B,EAAA/B,GAAAA,EAAAgB,EAAA8B,IAAA3B,GAAAuB,EAAAc,EAAA,CAA0MhB,SAAAxC,GAAW,yBAAAA,EAAAmD,aAAAnD,EAAAgD,IAAA,EAAAhD,EAAAgB,EAAA8B,IAAA3B,GAAAuB,EAAA1C,EAAA2C,KAAA3C,EAAA4C,MAAA5C,EAAAF,IAAAE,EAAA6C,IAAA7C,EAAA6C,IAAA,KAAA7C,EAAAoD,KAAApC,EAAA8B,IAAA3B,GAAAnB,EAAAqB,EAAAF,EAAAK,EAAAxB,EAAA+C,GAAA/B,EAAAhB,EAAAgD,IAAAhC,EAAAgC,IAAA,EAAA5B,EAAA,UAAAE,EAAAtB,EAAAqD,IAAA8B,EAAAnF,EAAAkB,EAAAG,EAAAE,MAAAA,KAAAH,EAAAF,EAAAI,MAAAF,EAAAkC,KAAA,UAAAlC,GAAA,MAAAA,EAAAgC,MAAA,GAAA9B,IAAA/B,EAAAD,EAAAkC,IAAAjC,EAAAD,GAAAkC,KAAA,mBAAAxB,EAAA2C,OAAA3C,EAAAsD,KAAA,IAAAhC,GAAAD,IAAAC,GAAAD,EAAA,EAAAG,IAAAF,GAAAD,EAAA,EAAAG,KAAAF,EAAAD,EAAAG,IAAAA,IAAAxB,EAAAsD,KAAA,KAAAtC,EAAA8B,IAAA3B,GAAA,KAAwW,GAAAI,EAAA,IAAAJ,EAAA,EAAaA,EAAA7B,EAAI6B,IAAA,OAAAC,EAAAF,EAAAC,OAAA,EAAAC,EAAAkC,OAAAlC,EAAA6B,KAAAX,IAAAA,EAAAqB,EAAAvC,IAAAgE,EAAAhE,EAAAA,IAA8D,OAAAkB,CAAA,CAAS,SAAA0C,EAAAhE,EAAAiB,EAAAf,EAAAoB,GAAoB,IAAA/C,EAAA4B,EAAQ,sBAAAH,EAAA2B,KAAA,CAA8B,IAAApD,EAAAyB,EAAA8B,IAAA3B,EAAA,EAAgB5B,GAAA4B,EAAA5B,EAAAM,OAAcsB,IAAA5B,EAAA4B,KAAA5B,EAAA4B,GAAA4B,GAAA/B,EAAAiB,EAAA+C,EAAAzF,EAAA4B,GAAAc,EAAAf,EAAAoB,IAAsC,OAAAL,CAAA,CAASjB,EAAAiC,KAAAhB,IAAAK,IAAAL,GAAAjB,EAAA2B,OAAAV,EAAAE,aAAAF,EAAA0B,EAAA3C,IAAAE,EAAAmE,aAAArE,EAAAiC,IAAAhB,GAAA,OAAAA,EAAAjB,EAAAiC,KAA0F,GAAGhB,EAAAA,GAAAA,EAAAgD,kBAAmB,MAAAhD,GAAA,GAAAA,EAAAqD,UAA8B,OAAArD,CAAA,CAAS,SAAAsD,EAAAvE,EAAAiB,GAAgB,OAAAA,EAAAA,GAAA,SAAAjB,GAAA,kBAAAA,IAAAe,EAAAf,GAAAA,EAAAqD,KAAA,SAAArD,GAAsEuE,EAAAvE,EAAAiB,EAAA,GAAOA,EAAAsC,KAAAvD,IAAAiB,CAAA,CAAe,SAAAkD,EAAAnE,EAAAiB,EAAAf,EAAAoB,GAAoB,IAAA/C,EAAA4B,EAAAnB,EAAAoB,EAAAJ,EAAAlB,IAAAuB,EAAAL,EAAA2B,KAAArB,EAAAW,EAAAf,GAAA5B,EAAA,MAAAgC,KAAA,EAAAA,EAAAgC,KAA0D,UAAAhC,GAAA,MAAAF,GAAA9B,GAAA8B,GAAAE,EAAAxB,KAAAuB,GAAAC,EAAAqB,KAAA,OAAAzB,EAAsD,GAAAoB,GAAAhD,EAAA,SAAAC,EAAA2B,EAAA,EAAAC,EAAAD,EAAA,EAA6B3B,GAAA,GAAA4B,EAAAc,EAAApC,QAAiB,UAAAyB,EAAAW,EAAAjC,EAAAT,GAAA,EAAAA,IAAA4B,SAAA,EAAAG,EAAAgC,MAAAlC,GAAAE,EAAAxB,KAAAuB,GAAAC,EAAAqB,KAAA,OAAA3C,EAA4E,SAAS,SAAAwF,EAAAxE,EAAAiB,EAAAf,GAAkB,KAAAe,EAAA,GAAAjB,EAAAyE,YAAAxD,EAAAf,GAAA,IAAAF,EAAAiB,GAAA,MAAAf,EAAA,oBAAAA,GAAAY,EAAA4D,KAAAzD,GAAAf,EAAAA,EAAA,KAA+F,SAAAyE,EAAA3E,EAAAiB,EAAAf,EAAAoB,EAAA/C,GAAsB,IAAA4B,EAAAnB,EAAQgB,EAAA,YAAAiB,EAAA,oBAAAf,EAAAF,EAAA4E,MAAAC,QAAA3E,MAAwD,CAAK,oBAAAoB,IAAAtB,EAAA4E,MAAAC,QAAAvD,EAAA,IAAAA,EAAA,IAAAL,KAAAK,EAAApB,GAAAe,KAAAf,GAAAsE,EAAAxE,EAAA4E,MAAA3D,EAAA,IAAsF,GAAAf,EAAA,IAAAe,KAAAf,EAAAoB,GAAApB,EAAAe,IAAAK,EAAAL,IAAAuD,EAAAxE,EAAA4E,MAAA3D,EAAAf,EAAAe,GAAA,MAAiD,QAAAA,EAAA,SAAAA,EAAA,GAAAd,EAAAc,IAAAA,EAAAA,EAAA6D,QAAAvE,EAAA,OAAAvB,EAAAiC,EAAA8D,cAAA9D,EAAAjC,KAAAgB,GAAA,cAAAiB,GAAA,aAAAA,EAAAjC,EAAAgG,MAAA,GAAA/D,EAAA+D,MAAA,GAAAhF,EAAAiB,IAAAjB,EAAAiB,EAAA,IAAsJjB,EAAAiB,EAAAA,EAAAd,GAAAD,EAAAA,EAAAoB,EAAApB,EAAA5B,GAAAgD,EAAAhD,IAAA4B,EAAA5B,GAAAkC,EAAAR,EAAAiF,iBAAAhE,EAAAd,EAAAO,EAAAD,EAAAN,IAAAH,EAAAkF,oBAAAjE,EAAAd,EAAAO,EAAAD,EAAAN,OAAmG,CAAK,iCAAA5B,EAAA0C,EAAAA,EAAA6D,QAAA,mBAAAA,QAAA,mBAAwF,YAAA7D,GAAA,UAAAA,GAAA,QAAAA,GAAA,QAAAA,GAAA,QAAAA,GAAA,YAAAA,GAAA,YAAAA,GAAA,WAAAA,GAAA,WAAAA,GAAA,QAAAA,GAAA,WAAAA,GAAAA,KAAAjB,EAAA,IAAgKA,EAAAiB,GAAAf,GAAA,GAAkB,MAAAF,CAAA,CAAQ,MAAAA,GAAA,CAAU,mBAAAE,IAAA,MAAAA,IAAA,IAAAA,GAAA,KAAAe,EAAA,GAAAjB,EAAAmF,gBAAAlE,GAAAjB,EAAAoF,aAAAnE,EAAA,WAAAA,GAAA,GAAAf,EAAA,GAAAA,GAAA,EAAmH,SAAAmF,EAAArF,GAAc,gBAAAE,GAAmB,GAAA1B,KAAAyC,EAAA,CAAW,IAAAK,EAAA9C,KAAAyC,EAAAf,EAAAyB,KAAA3B,GAAuB,SAAAE,EAAAI,GAAAJ,EAAAI,GAAAE,SAAuB,GAAAN,EAAAI,GAAAgB,EAAAhD,GAAA,OAAyB,OAAAgD,EAASrB,EAACqF,MAAOrF,EAACqF,MAAApF,GAAAA,EAAA,GAAe,SAAA6C,EAAA/C,EAAAE,EAAAoB,EAAA/C,EAAA4B,EAAAnB,EAAAoB,EAAAC,EAAAC,EAAAhC,GAAgC,IAAAiC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAE,EAAAO,EAAAK,EAAA6D,EAAA5C,EAAAC,EAAAO,EAAAG,EAAAE,EAAAM,EAAAE,EAAA9D,EAAAyB,KAA6C,YAAAzB,EAAAiC,YAAA,YAAsC,IAAAb,EAAAgB,MAAAhC,KAAA,GAAAgB,EAAAgB,KAAAtD,EAAA,CAAAqB,EAAAH,EAAA+B,IAAAX,EAAAW,OAAA1B,EAAiDN,EAAC+B,MAAAzB,EAAAL,GAAYF,EAAA,sBAAAgE,EAAA,CAA2BxD,EAAAJ,EAAAvB,OAAW,IAAI,GAAA6C,EAAAxB,EAAA0B,MAAA2D,EAAAvB,EAAAxE,WAAAwE,EAAAxE,UAAAgG,OAAA7C,GAAApC,EAAAyD,EAAAyB,cAAAlH,EAAAgC,EAAA2B,KAAAU,EAAArC,EAAAoC,EAAAA,EAAAf,MAAAxC,MAAAmB,EAAAwB,GAAAxD,EAAA+C,EAAAY,IAAAb,GAAAZ,EAAAP,EAAAgC,IAAAZ,EAAAY,KAAAH,GAAAtB,EAAAiF,KAAAH,EAAArF,EAAAgC,IAAAzB,EAAA,IAAAuD,EAAAtC,EAAAkB,IAAA1C,EAAAgC,IAAAzB,EAAA,IAAAgC,EAAAf,EAAAkB,GAAAnC,EAAA0B,YAAA6B,EAAAvD,EAAA+E,OAAAG,GAAAhD,GAAAA,EAAAiD,IAAAnF,GAAAA,EAAAoF,QAAApF,EAAAoF,MAAA,IAA+OpF,EAAAuC,IAAAzE,EAAAmC,EAAAD,EAAAqC,KAAA,EAAArC,EAAAqF,IAAA,GAAArF,EAAAsF,IAAA,IAAAR,GAAA,MAAA9E,EAAAuF,MAAAvF,EAAAuF,IAAAvF,EAAAoF,OAAAN,GAAA,MAAAvB,EAAAiC,2BAAAxF,EAAAuF,KAAAvF,EAAAoF,QAAApF,EAAAuF,IAAAhF,EAAA,GAAyIP,EAAAuF,MAAAhF,EAAAP,EAAAuF,IAAAhC,EAAAiC,yBAAAvE,EAAAjB,EAAAuF,OAAArF,EAAAF,EAAAmB,MAAAhB,EAAAH,EAAAoF,MAAApF,EAAA2B,IAAAlC,EAAAQ,EAAA6E,GAAA,MAAAvB,EAAAiC,0BAAA,MAAAxF,EAAAyF,oBAAAzF,EAAAyF,qBAAAX,GAAA,MAAA9E,EAAA0F,mBAAA1F,EAAAqF,IAAAvC,KAAA9C,EAAA0F,uBAA2O,CAAK,GAAAZ,GAAA,MAAAvB,EAAAiC,0BAAAvE,IAAAf,GAAA,MAAAF,EAAA2F,2BAAA3F,EAAA2F,0BAAA1E,EAAAkB,GAAA1C,EAAAkC,KAAAd,EAAAc,MAAA3B,EAAAwB,KAAA,MAAAxB,EAAA4F,wBAAA,IAAA5F,EAAA4F,sBAAA3E,EAAAjB,EAAAuF,IAAApD,GAAA,CAAiN1C,EAAAkC,KAAAd,EAAAc,MAAA3B,EAAAmB,MAAAF,EAAAjB,EAAAoF,MAAApF,EAAAuF,IAAAvF,EAAAqC,KAAA,GAAA5C,EAAA+B,IAAAX,EAAAW,IAAA/B,EAAA4B,IAAAR,EAAAQ,IAAA5B,EAAA4B,IAAAuB,KAAA,SAAArD,GAAgGA,IAAAA,EAAA+B,GAAA7B,EAAA,GAAYW,EAAA0C,KAAA+C,MAAA7F,EAAAqF,IAAArF,EAAAsF,KAAAtF,EAAAsF,IAAA,GAAAtF,EAAAqF,IAAAjH,QAAAuB,EAAAmD,KAAA9C,GAA6D,MAAAT,CAAA,CAAQ,MAAAS,EAAA8F,qBAAA9F,EAAA8F,oBAAA7E,EAAAjB,EAAAuF,IAAApD,GAAA2C,GAAA,MAAA9E,EAAA+F,oBAAA/F,EAAAqF,IAAAvC,KAAA,WAAmH9C,EAAA+F,mBAAA7F,EAAAC,EAAAE,EAAA,EAA4B,CAAE,GAAAL,EAAAiC,QAAAE,EAAAnC,EAAAmB,MAAAF,EAAAjB,EAAAoC,IAAA7C,EAAAS,EAAAwB,KAAA,EAAAkB,EAA4ClD,EAACwD,IAAAH,EAAA,EAAAiC,EAAA9E,EAAAoF,MAAApF,EAAAuF,IAAAvF,EAAAqC,KAAA,EAAAK,GAAAA,EAAAjD,GAAAK,EAAAE,EAAA+E,OAAA/E,EAAAmB,MAAAnB,EAAAoF,MAAApF,EAAAiC,SAAA7B,EAAA0C,KAAA+C,MAAA7F,EAAAqF,IAAArF,EAAAsF,KAAAtF,EAAAsF,IAAA,QAAmH,GAAQtF,EAAAqC,KAAA,EAAAK,GAAAA,EAAAjD,GAAAK,EAAAE,EAAA+E,OAAA/E,EAAAmB,MAAAnB,EAAAoF,MAAApF,EAAAiC,SAAAjC,EAAAoF,MAAApF,EAAAuF,UAAqEvF,EAAAqC,OAAAQ,EAAA,IAAqB7C,EAAAoF,MAAApF,EAAAuF,IAAA,MAAAvF,EAAAgG,kBAAAlI,EAAAyC,EAAAA,EAAA,GAAgDzC,GAAAkC,EAAAgG,oBAAAlB,IAAA7E,GAAA,MAAAD,EAAAiG,0BAAA5F,EAAAL,EAAAiG,wBAAA/F,EAAAC,IAAA4C,EAAA,MAAAjD,GAAAA,EAAAoB,OAAAa,GAAA,MAAAjC,EAAAzB,IAAA6H,EAAApG,EAAAqB,MAAAJ,UAAAjB,EAAAF,EAAAwD,EAAA7D,EAAAe,EAAAyC,GAAAA,EAAA,CAAAA,GAAAtD,EAAAoB,EAAA/C,EAAA4B,EAAAnB,EAAAoB,EAAAC,EAAAC,EAAAhC,GAAAmC,EAAA2C,KAAAlD,EAAA+B,IAAA/B,EAAAoC,MAAA,IAAA7B,EAAAqF,IAAAjH,QAAAuB,EAAAmD,KAAA9C,GAAAY,IAAAZ,EAAAiF,IAAAjF,EAAAsB,GAAA,MAAwQ,MAAA/B,GAAS,GAAAI,EAAAvB,OAAA2B,EAAAN,EAAAkC,IAAA,KAAA9B,GAAA,MAAAtB,GAAqC,GAAAgB,EAAA4G,KAAA,CAAW,IAAA1G,EAAAoC,KAAAhC,EAAA,QAAqBD,GAAA,GAAAA,EAAAiE,UAAAjE,EAAA4D,aAAgC5D,EAAAA,EAAA4D,YAAiB,MAAAjF,IAAAA,EAAAA,EAAA6H,QAAAxG,IAAA,MAAAH,EAAA+B,IAAA5B,CAAA,MAAwC,SAAArB,EAAA,IAAA8E,EAAA9E,EAAAH,OAA+BiF,KAAI5C,EAAAlC,EAAA8E,SAAS5D,EAAA+B,IAAAX,EAAAW,IAAiB,MAAA/B,EAAA4B,MAAA5B,EAAA4B,IAAAR,EAAAQ,KAAA,IAAA9B,EAAA4G,MAAAE,EAAA5G,GAA4CD,EAACgC,IAAAjC,EAAAE,EAAAoB,EAAA,OAAa,MAAAtC,GAAAkB,EAAAkC,KAAAd,EAAAc,KAAAlC,EAAA4B,IAAAR,EAAAQ,IAAA5B,EAAA+B,IAAAX,EAAAW,KAAA5B,EAAAH,EAAA+B,IAAA8E,EAAAzF,EAAAW,IAAA/B,EAAAoB,EAAA/C,EAAA4B,EAAAnB,EAAAoB,EAAAE,EAAAhC,GAAsF,OAAAiC,EAASN,EAAC+G,SAAAzG,EAAAL,GAAA,IAAAA,EAAAoC,SAAA,EAAAjC,CAAA,CAAkC,SAAAyG,EAAA9G,GAAcA,IAAAA,EAAAkC,MAAAlC,EAAAkC,IAAAD,KAAA,GAAAjC,EAAA8B,KAAA9B,EAAA8B,IAAAuB,KAAAyD,GAAA,CAAgD,SAAA5D,EAAAlD,EAAAE,EAAAoB,GAAkB,QAAA/C,EAAA,EAAYA,EAAA+C,EAAAzC,OAAWN,IAAAwF,EAAAzC,EAAA/C,GAAA+C,IAAA/C,GAAA+C,IAAA/C,IAA0B0B,EAACiC,KAAMjC,EAACiC,IAAAhC,EAAAF,GAAAA,EAAAqD,KAAA,SAAAnD,GAA6B,IAAIF,EAAAE,EAAA4F,IAAA5F,EAAA4F,IAAA,GAAA9F,EAAAqD,KAAA,SAAArD,GAAoCA,EAAAN,KAAAQ,EAAA,EAAU,CAAE,MAAAF,GAASC,EAACgC,IAAAjC,EAAAE,EAAAkC,IAAA,GAAe,CAAE,SAAAuE,EAAA3G,GAAc,uBAAAA,GAAA,MAAAA,GAAAA,EAAAgC,IAAA,EAAAhC,EAAAe,EAAAf,GAAAA,EAAAiH,IAAAN,QAAA,IAAA3G,EAAAmC,YAAA,KAAAnB,EAAA,GAA2FhB,EAAA,CAAI,SAAA+G,EAAA7G,EAAAoB,EAAA/C,EAAA4B,EAAAnB,EAAAoB,EAAAC,EAAAC,EAAAhC,GAA8B,IAAAiC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAE,EAAAC,EAAAE,EAAAzC,EAAAqD,OAAAhB,EAAAS,EAAAC,EAAAM,MAAAF,EAAAJ,EAAAK,KAAkD,UAAAD,EAAA1C,EAAA,qCAAA0C,EAAA1C,EAAA,qCAAAA,IAAAA,EAAA,sCAAAoB,EAAA,IAAAG,EAAA,EAAkJA,EAAAH,EAAAvB,OAAW0B,IAAA,IAAAI,EAAAP,EAAAG,KAAA,iBAAAI,KAAAe,IAAAA,EAAAf,EAAAuG,WAAAxF,EAAA,GAAAf,EAAA2D,UAAA,CAA4EpE,EAAAS,EAAAP,EAAAG,GAAA,KAAc,MAAM,SAAAL,EAAA,CAAY,SAAAwB,EAAA,OAAAyF,SAAAC,eAAA/F,GAA6CnB,EAAAiH,SAAAE,gBAAArI,EAAA0C,EAAAL,EAAAiG,IAAAjG,GAAAf,IAA4CL,EAACsH,KAAMtH,EAACsH,IAAAjG,EAAAlB,GAAAE,GAAA,GAAAF,EAAA,KAAuB,SAAAsB,EAAAV,IAAAK,GAAAf,GAAAJ,EAAAsH,MAAAnG,IAAAnB,EAAAsH,KAAAnG,OAA2C,CAAK,GAAAjB,EAAA,YAAAsB,GAAA,MAAAL,EAAAoG,aAAA,KAAArH,GAAAJ,EAAAN,KAAAQ,EAAAwH,aAAApH,GAAA,MAAAF,EAAA,IAAAY,EAAA,GAA0FT,EAAA,EAAKA,EAAAL,EAAAyH,WAAA9I,OAAsB0B,IAAAS,GAAAL,EAAAT,EAAAyH,WAAApH,IAAAqH,MAAAjH,EAAAvB,MAAwC,IAAAmB,KAAAS,EAAAL,EAAAK,EAAAT,GAAA,2BAAAA,EAAAE,EAAAE,EAAA,YAAAJ,GAAAA,KAAAc,GAAA,SAAAd,GAAA,iBAAAc,GAAA,WAAAd,GAAA,mBAAAc,GAAAsD,EAAAzE,EAAAK,EAAA,KAAAI,EAAA3B,GAA8J,IAAAuB,KAAAc,EAAAV,EAAAU,EAAAd,GAAA,YAAAA,EAAAG,EAAAC,EAAA,2BAAAJ,EAAAC,EAAAG,EAAA,SAAAJ,EAAAM,EAAAF,EAAA,WAAAJ,EAAAO,EAAAH,EAAAL,GAAA,mBAAAK,GAAAK,EAAAT,KAAAI,GAAAgE,EAAAzE,EAAAK,EAAAI,EAAAK,EAAAT,GAAAvB,GAAwJ,GAAAwB,EAAAF,GAAAG,IAAAD,EAAAqH,QAAApH,EAAAoH,QAAArH,EAAAqH,QAAA3H,EAAA4H,aAAA5H,EAAA4H,UAAAtH,EAAAqH,QAAAvG,EAAAQ,IAAA,QAAwF,GAAArB,IAAAP,EAAA4H,UAAA,IAAAjE,EAAA,YAAAvC,EAAAK,KAAAzB,EAAA6H,QAAA7H,EAAAa,EAAAL,GAAAA,EAAA,CAAAA,GAAAY,EAAA/C,EAAA4B,EAAA,iBAAAuB,EAAA,+BAAA1C,EAAAoB,EAAAC,EAAAD,EAAAA,EAAA,GAAA7B,EAAAuD,KAAAa,EAAApE,EAAA,GAAA+B,EAAAhC,GAAA,MAAA8B,EAAA,IAAAG,EAAAH,EAAAvB,OAAuL0B,KAAIW,EAAAd,EAAAG,IAASD,GAAA,YAAAoB,IAAAnB,EAAA,oBAAAmB,GAAA,MAAAb,EAAAX,EAAAiF,gBAAA,eAAAtE,IAAAA,IAAAX,EAAAK,IAAA,YAAAmB,IAAAb,GAAA,UAAAa,GAAAb,GAAAG,EAAAT,KAAAoE,EAAAzE,EAAAK,EAAAM,EAAAG,EAAAT,GAAAvB,GAAAuB,EAAA,gBAAAO,GAAAA,GAAAZ,EAAAK,IAAAoE,EAAAzE,EAAAK,EAAAO,EAAAE,EAAAT,GAAAvB,GAAA,CAA4M,OAAAkB,CAAA,CAAS,SAAA6D,EAAA/D,EAAAE,EAAAoB,GAAkB,IAAI,sBAAAtB,EAAA,CAAyB,IAAAzB,EAAA,mBAAAyB,EAAAsC,IAA+B/D,GAAAyB,EAAAsC,MAAA/D,GAAA,MAAA2B,IAAAF,EAAAsC,IAAAtC,EAAAE,GAAA,MAAoCF,EAAAgI,QAAA9H,CAAA,CAAiB,MAAAF,GAASC,EAACgC,IAAAjC,EAAAsB,EAAA,EAAW,SAAA8C,EAAApE,EAAAE,EAAAoB,GAAkB,IAAA/C,EAAA4B,EAAQ,GAAGF,EAACgI,SAAUhI,EAACgI,QAAAjI,IAAAzB,EAAAyB,EAAA6B,OAAAtD,EAAAyJ,SAAAzJ,EAAAyJ,SAAAhI,EAAAiC,KAAA8B,EAAAxF,EAAA,KAAA2B,IAAA,OAAA3B,EAAAyB,EAAAkC,KAAA,CAAmF,GAAA3D,EAAA2J,qBAAA,IAA8B3J,EAAA2J,sBAAA,CAAyB,MAAAlI,GAASC,EAACgC,IAAAjC,EAAAE,EAAA,CAAU3B,EAAA6E,KAAA7E,EAAAsE,IAAAtE,EAAAyE,IAAA,KAAwB,GAAAzE,EAAAyB,EAAA8B,IAAA,IAAA3B,EAAA,EAAmBA,EAAA5B,EAAAM,OAAWsB,IAAA5B,EAAA4B,IAAAiE,EAAA7F,EAAA4B,GAAAD,EAAAoB,GAAA,mBAAAtB,EAAA2B,MAAiDL,GAAAJ,EAAAlB,EAAAiC,KAAAjC,EAAAkC,IAAAlC,EAAA+B,GAAA/B,EAAAiC,SAAA,EAAoC,SAAA0D,EAAA3F,EAAAiB,EAAAf,GAAkB,OAAA1B,KAAA2D,YAAAnC,EAAAE,EAAA,CAA6B,SAAAiI,EAAAjI,EAAAoB,EAAA/C,GAAkB,IAAA4B,EAAAnB,EAAAoB,EAAAC,EAAYiB,GAAA6F,WAAA7F,EAAA6F,SAAAiB,iBAA0CnI,EAAC8B,IAAK9B,EAAC8B,GAAA7B,EAAAoB,GAAAtC,GAAAmB,EAAA,mBAAA5B,GAAA,KAAAA,GAAAA,EAAAuD,KAAAR,EAAAQ,IAAA1B,EAAA,GAAAC,EAAA,GAAA0C,EAAAzB,EAAApB,IAAAC,GAAA5B,GAAA+C,GAAAQ,IAAAT,EAAAmB,EAAA,MAAAtC,IAAAlB,GAAA4B,EAAAA,EAAAU,EAAA2B,cAAA9C,GAAA5B,EAAA,CAAAA,GAAAS,EAAA,KAAAsC,EAAA+G,WAAArI,EAAAN,KAAA4B,EAAAoG,YAAA,KAAAtH,GAAAD,GAAA5B,EAAAA,EAAAS,EAAAA,EAAAiD,IAAAX,EAAA+G,WAAAlI,EAAAE,GAAA6C,EAAA9C,EAAAF,EAAAG,GAAAH,EAAA0B,MAAAJ,SAAA,KAAuP,SAAA8G,EAAAtI,EAAAiB,GAAgBkH,EAAAnI,EAAAiB,EAAAqH,EAAA,CAAS,SAAAC,EAAAtH,EAAAf,EAAAoB,GAAkB,IAAA/C,EAAA4B,EAAAnB,EAAAoB,EAAAC,EAAAW,EAAA,GAAkBC,EAAAW,OAAU,IAAA5C,KAAAiC,EAAAU,MAAAV,EAAAU,KAAAF,eAAArB,EAAAa,EAAAU,KAAAF,cAAAvB,EAAA,OAAAlB,EAAAT,EAAA2B,EAAAlB,GAAA,OAAAA,EAAAmB,EAAAD,EAAAlB,GAAAqB,EAAArB,QAAA,IAAAkB,EAAAlB,IAAA,MAAAoB,EAAAA,EAAApB,GAAAkB,EAAAlB,GAAsI,OAAAuC,UAAA1C,OAAA,IAAAwB,EAAAmB,SAAAD,UAAA1C,OAAA,EAAAmB,EAAAN,KAAA6B,UAAA,GAAAD,GAAAI,EAAAT,EAAAU,KAAAtB,EAAA9B,GAAA0C,EAAAnC,IAAAqB,GAAAc,EAAAY,IAAA,MAA2oB7B,EAAAa,EAAAmE,MAAU/E,EAAC,CAAEgC,IAAA,SAAAjC,EAAAiB,EAAAf,EAAAoB,GAAsB,QAAA/C,EAAA4B,EAAAnB,EAAciC,EAAAA,EAAAc,IAAO,IAAAxD,EAAA0C,EAAAiB,OAAA3D,EAAAwD,GAAA,IAAyB,IAAA5B,EAAA5B,EAAA4D,cAAA,MAAAhC,EAAAqI,2BAAAjK,EAAAkK,SAAAtI,EAAAqI,yBAAAxI,IAAAhB,EAAAT,EAAAuE,KAAA,MAAAvE,EAAAmK,oBAAAnK,EAAAmK,kBAAA1I,EAAAsB,GAAA,IAAmKtC,EAAAT,EAAAuE,KAAA9D,EAAA,OAAAT,EAAAmH,IAAAnH,CAAA,CAA4B,MAAA0C,GAASjB,EAAAiB,CAAA,CAAI,MAAAjB,CAAA,GAASE,EAAA,EAA0DuC,EAAAjD,UAAAiJ,SAAA,SAAAzI,EAAAiB,GAAoC,IAAAf,EAAMA,EAAA,MAAA1B,KAAAwH,KAAAxH,KAAAwH,KAAAxH,KAAAqH,MAAArH,KAAAwH,IAAAxH,KAAAwH,IAAAhF,EAAA,GAA6DxC,KAAAqH,OAAA,mBAAA7F,IAAAA,EAAAA,EAAAgB,EAAA,GAA4Cd,GAAA1B,KAAAoD,QAAA5B,GAAAgB,EAAAd,EAAAF,GAAA,MAAAA,GAAAxB,KAAA4D,MAAAnB,GAAAzC,KAAAuH,IAAAxC,KAAAtC,GAAAqC,EAAA9E,MAAA,EAA4EiE,EAAAjD,UAAAmJ,YAAA,SAAA3I,GAAqCxB,KAAA4D,MAAA5D,KAAAyD,KAAA,EAAAjC,GAAAxB,KAAAsH,IAAAvC,KAAAvD,GAAAsD,EAAA9E,MAAA,EAAoDiE,EAAAjD,UAAAgG,OAAAhD,EAAAjE,EAAA,GAAAS,EAAA,mBAAA4J,QAAAA,QAAApJ,UAAAoH,KAAAiC,KAAAD,QAAAE,WAAAC,WAAA3I,EAAA,SAAAJ,EAAAiB,GAAkI,OAAAjB,EAAAoC,IAAAJ,IAAAf,EAAAmB,IAAAJ,GAAA,EAA2BwB,EAAAC,IAAA,EAAApD,EAAA2I,KAAAC,SAAAC,SAAA,GAAA5I,EAAA,MAAAD,EAAA/B,EAAA,MAAA+B,EAAAE,EAAA,8BAAAC,EAAA,EAAAC,EAAA4E,GAAA,GAAA3E,EAAA2E,GAAA,GAAA1E,EAAA,ECAtwV,IAA0EwI,GAAC,EAAIxK,MAAAC,QAAe,SAASwK,GAAChJ,EAAAkB,EAAAtB,EAAAhB,EAAAT,EAAA2B,GAAcoB,IAAAA,EAAA,IAAU,IAAAhD,EAAAgC,EAAAG,EAAAa,EAAY,WAAAb,EAAA,IAAAH,KAAAG,EAAA,GAA0Ba,EAAA,OAAAhB,EAAAhC,EAAAgD,EAAAhB,GAAAG,EAAAH,GAAAgB,EAAAhB,GAA6B,IAAAW,EAAA,CAAOU,KAAAvB,EAAAwB,MAAAnB,EAAA3B,IAAAkB,EAAA6B,IAAAvD,EAAAwD,IAAA,KAAAC,GAAA,KAAAC,IAAA,EAAAC,IAAA,KAAAC,IAAA,KAAAC,iBAAA,EAAAC,MAA6F+G,GAAC9G,KAAA,EAAAC,IAAA,EAAA+G,SAAA9K,EAAA+K,OAAApJ,GAAmC,sBAAAE,IAAA9B,EAAA8B,EAAAqB,cAAA,IAAAnB,KAAAhC,OAAA,IAAAmC,EAAAH,KAAAG,EAAAH,GAAAhC,EAAAgC,IAAkF,OAAOL,EAACsC,OAAQtC,EAACsC,MAAAtB,GAAAA,CAAA,CCOzxB,MAMAsI,GAAA,2BAQAC,GADA,UACAA,GAFA,UAEAA,GAJA,UAIAA,GAHA,UAGAA,GAKP,UAOOC,GAAA,CACPC,GAAA,CAAUC,SAAA,GAAAC,WAAA,IAAAC,WAAA,MACVC,GAAA,CAAUH,SAAA,GAAAC,WAAA,IAAAC,WAAA,KACVE,GAAA,CAAUJ,SAAA,GAAAC,WAAA,IAAAC,WAAA,MACVG,KAAA,CAAYL,SAAA,GAAAC,WAAA,SAAAC,WAAA,KACZI,QAAA,CAAeN,SAAA,GAAAC,WAAA,SAAAC,WAAA,KACfK,QAAA,CACAP,SAAA,GAAAC,WAAA,IAAAO,cAAA,SAAAN,WAAA,KAEAO,KAAA,CAAYT,SAAA,GAAAE,WAAA,MAKZQ,GAAA,CACAX,GAAA,EACAI,GAAA,EACAC,GAAA,EACAK,KAAA,EACAF,QAAA,GACAF,KAAA,GACAC,QAAA,KAqBO,SAAAK,GAAAC,EAAAC,EAAAC,GACP,OAAAA,EAjBA,SAAAC,EAAAC,GACA,GAAAA,GAAA,EACA,OAAAD,EACA,MAAAE,EAAA,qCAAiDC,KAAAH,KAAA,GACjD,IAAAE,EACA,OAAAF,EACA,MAAAI,EAAA,IAAAF,EAAA/L,OAAA+L,EAAAG,MAAA,IAAA9D,IAAA3G,GAAAA,EAAAA,GAAA0K,KAAA,IAAAJ,GACAzK,EAAAY,EAAAG,GAAA,QAAA+F,IAAA1I,GAAA0M,SAAAH,EAAA9F,MAAAzG,EAAAA,EAAA,QACA,cAAmB4B,MAAMY,MAAMG,MAAMyJ,IACrC,CASAO,CAAAV,EAAAW,YAAAd,GAAAE,IAAA,GACA,SAAAA,EAEA,YAAAA,GAAA,YAAAA,EAAAC,EAAAY,cAAAZ,EAAAa,UAFA,CAGA,CAEO,MAOAC,GAAA,4OCjFPC,GAAA,2CACAC,GAAA,qBACAC,GAAA,mCACAC,GAAA,yCACAC,GAAA,0BACAC,GAAA,sBACAC,GAAA,IAIAC,GAAA,CAA0BC,GAAAF,GAAA,QAAAG,GAAA,IAAAC,IAAA,KAC1BC,GAAA,qCACAC,GAAA,CAAyBJ,GAAAF,GAAA,QAAAO,GAAA,KACzBC,GAAA,iCACAC,GAAA,qCAEA,SAAAC,GAAAnN,EAAAoN,GACA,OAAAA,EAAAC,SAAArN,GAAAA,OAAAsN,CACA,CACA,SAAAC,GAAAvN,GACA,oBAAAA,GAAAwN,OAAAC,SAAAzN,GACA,OAAA4J,KAAA8D,IAAA9D,KAAA+D,IAAA3N,EAAA,GAAAyM,IAEA,oBAAAzM,EACA,OACA,MAAA4N,EAAAd,GAAArB,KAAAzL,EAAA6N,QACA,IAAAD,EACA,OACA,OAAAE,EAAAC,GAAAH,EACA,SAAchE,KAAA8D,IAAAM,WAAAF,GAAApB,GAAAqB,MAAsDA,GACpE,CACA,MAAAE,GAAA,gCAeA,SAAAC,GAAAC,GACA,GAAAjB,GAAAG,SAAAc,GACA,OAAAA,EACA,MAAAP,EAAAX,GAAAxB,KAAA0C,GACA,IAAAP,EACA,OACA,OAAAE,EAAAC,GAAAH,EACA,SAAchE,KAAA8D,IAAAM,WAAAF,GAAAf,GAAAgB,MAAqDA,GACnE,CAaA,SAAAK,GAAApO,GACA,uBAAAA,GAAAA,EAAAP,OAAA,EAAAO,OAAAsN,CACA,CACA,SAAAe,GAAAC,GACA,MAAA9L,EAAA,GACA+L,EAAAhB,GAAAe,EAAAC,UACAjB,IAAAiB,IACA/L,EAAA+L,IAAAA,GACA,MAAAC,EA3CA,SAAAxO,GACA,MAAAyO,EAAAlB,GAAAvN,GACA,QAAAsN,IAAAmB,EACA,OAAAA,EACA,oBAAAzO,GAAA,OAAAA,EACA,OACA,MAAA0O,EAAA,GACA,UAAAC,KAAAV,GAAA,CACA,MAAAW,EAAArB,GAAAvN,EAAA2O,SACArB,IAAAsB,IACAF,EAAAC,GAAAC,EACA,CACA,OAAA/O,OAAAgP,KAAAH,GAAAjP,OAAA,EAAAiP,OAAApB,CACA,CA8BAwB,CAAAR,EAAAE,cACAlB,IAAAkB,IACAhM,EAAAgM,QAAAA,GACA,MAAAO,EAAA5B,GAAAmB,EAAAS,WAAA1C,IACA0C,IACAvM,EAAAuM,WAAAA,GACA,MAAAC,EAAA7B,GAAAmB,EAAAU,eAAA1C,IACA0C,IACAxM,EAAAwM,eAAAA,GACA,MAAAC,EAAAb,GAAAE,EAAAW,iBACAA,IACAzM,EAAAyM,gBAAAA,GACA,MAAAC,EAhCA,SAAAlP,GACA,oBAAAA,EACA,OAAAwN,OAAA2B,UAAAnP,IAAAA,GAAA,GAAAA,GA1CA,GA0CAA,OAAAsN,EAEA,oBAAAtN,EACA,OACA,MAAAoP,EAAApP,EAAA6N,OAAAlC,MAAA,OACA,GAAAyD,EAAA3P,OAAA,GAAA2P,EAAA3P,OA/CA,GAgDA,OACA,MAAA4P,EAAAD,EAAAvH,IAAAqG,IACA,OAAAmB,EAAAC,MAAAnB,QAAAb,IAAAa,GAAAkB,EAAAzD,KAAA,UAAA0B,CACA,CAqBAiC,CAAAjB,EAAAY,OAGA,YAFA5B,IAAA4B,IACA1M,EAAA0M,MAAAA,GACA1M,CACA,CACA,SAAAgN,GAAAlB,EAAAmB,EAAAC,GACA,GAAAD,EAAgB,IAA0BC,EAAAC,OAAA,EAC1C,YACA,oBAAArB,GAAA,OAAAA,EACA,YACAoB,EAAAC,OAAA,EACA,MAAAC,EAAAtB,EACA9L,EAAA,iBAAAoN,EAAApN,OAAA,OAAAoN,EAAApN,MAAAoN,EAAApN,MAAA,GACA,eAAAoN,EAAArN,KAAA,CACA,MAAAoG,EAAAyF,GAAA5L,EAAAmG,SACA,IAAAA,EACA,YACA,MAAAkH,EAAA,CAAsBtN,KAAA,UAAAC,MAAA,CAA0BmG,YAChDmH,EAAA3C,GAAA3K,EAAAsN,MAAAvD,IACAuD,IACAD,EAAArN,MAAAsN,MAAAA,GACA,MAAAC,EAAA5C,GAAA3K,EAAAuN,KAAAvD,IAGA,OAFAuD,GAAA,YAAAA,IACAF,EAAArN,MAAAuN,KAAAA,GACAF,CACA,CACA,aAAAD,EAAArN,KAAA,CACA,MAAAyN,EAAA5B,GAAA5L,EAAAwN,OACA,IAAAA,EACA,YAEA,MADA,CAAsBzN,KAAA,QAAAC,MAAA,CAAwBwN,SAE9C,CACA,IAAAzQ,MAAAC,QAAAoQ,EAAAxN,UACA,YACA,MAAAG,EAAA4K,GAAAyC,EAAArN,KAAA4J,KAAA,WACA/J,EAAA,GACA,UAAA6N,KAAAL,EAAAxN,SAAA,CACA,MAAA8N,EAAAV,GAAAS,EAAAR,EAAA,EAAAC,GACAQ,GACA9N,EAAA+B,KAAA+L,EACA,CACA,MAAAL,EAAAxB,GAAA7L,GAaA,MALA,YAAA2K,GAAA3K,EAAA2N,MAAA/D,MACAhK,EAAAgO,UACA,iBAAAP,EAAAX,QACAW,EAAAX,MAAAW,EAAAX,MAAAvD,MAAA,KAAAyE,UAAAxE,KAAA,OAEA,CAAarJ,OAAAC,MAAAqN,EAAAzN,WACb,CAMO,SAAAiO,GAAA/B,GACP,OAAAkB,GAAAlB,EAAA,GAAmCqB,MAAO,KAC1C,CAGO,MAAAW,GAAA,0BACPC,GAAA,8BAMA,SAAAC,GAAAxQ,EAAAyQ,GACA,OAAAzQ,EAAAqN,SAAA,KAEArN,EACA2L,MAAA,SACA9D,IAAAsG,IACA,MAAAzO,EAAA6Q,GAAA9E,KAAA0C,KAAA,GAGA,YAAAb,IAAA5N,GAAAG,OAAAO,UAAAC,eAAAC,KAAAmQ,EAAA/Q,GAAA+Q,EAAA/Q,GAAAyO,IAEAvC,KAAA,IATA5L,CAUA,CAUO,SAAA0Q,GAAAC,EAAAF,GACP,uBAAAE,GAAA,OAAAA,GAAA,IAAA9Q,OAAAgP,KAAA4B,GAAAhR,OACAkR,EACAC,GAAAD,EAAAF,EAAA,EACA,CACA,MAAAI,GAAA,IAAAC,IAAA,uCACA,SAAAF,GAAAtC,EAAAmC,EAAAhB,GACA,GAAAA,EAAgB,IAA0B,iBAAAnB,GAAA,OAAAA,EAC1C,OAAAA,EACA,MAAAsB,EAAAtB,EACAuB,EAAA,IAAkBD,GAClB,oBAAAA,EAAApN,OAAA,OAAAoN,EAAApN,MAAA,CACA,MAAAA,EAAA,IAAwBoN,EAAApN,OACxB,UAAA9C,EAAAM,KAAAH,OAAAkR,QAAAvO,GACA,IAAAqO,GAAAG,IAAAtR,GAEA,oBAAAM,EACAwC,EAAA9C,GAAA8Q,GAAAxQ,EAAAyQ,QAEA,oBAAAzQ,GAAA,OAAAA,IAAAT,MAAAC,QAAAQ,GAAA,CAEA,MAAA0O,EAAA,IAAgC1O,GAChC,UAAA2O,EAAAC,KAAA/O,OAAAkR,QAAArC,GACA,iBAAAE,IACAF,EAAAC,GAAA6B,GAAA5B,EAAA6B,IAEAjO,EAAA9C,GAAAgP,CACA,CAEAmB,EAAArN,MAAAA,CACA,CAIA,OAHAjD,MAAAC,QAAAoQ,EAAAxN,YACAyN,EAAAzN,SAAAwN,EAAAxN,SAAAyF,IAAAoI,GAAAW,GAAAX,EAAAQ,EAAAhB,EAAA,KAEAI,CACA,CAEO,SAAAoB,GAAAjR,GACP,uBAAAA,EAAA,GAA0CA,MAAMA,CAChD,CAQO,SAAAkR,GAAAhC,EAAAiC,GACP,oBAAAjC,EACA,OAAAA,EAEA,gBADA,iBAAAA,EAAAA,EAAAtF,KAAA+D,IAAAwD,EAAA,UAEA,CAOO,SAAAC,GAAAC,EAAAC,EAAA,GAGP,MAAAtB,EAAA,OAAyBuB,KAAAC,UAAAH,MACzBI,EAAAH,EAAA,sBAAgD1H,KAAA8D,IAAA4D,EAAA,MAAiB,KACjE,OACArC,gBAAAwC,EAAA,mBAAoDA,MAAUA,OAAWzB,IAAMA,EAC/E0B,eAAA,QACAC,mBAAA,SAEA,CAOO,SAAAC,GAAAhC,EAAAiC,EAAAC,EAAA,GACP,MAAAtP,EAAAoN,EAAApN,OAAA,GACAgD,EAAA,CAAoBuM,QAAA,OAAAC,SAAA,GAiBpB,MAhBA,eAAApC,EAAArN,OACAiD,EAAAyM,aAAA,UACA,YAAArC,EAAArN,OACAiD,EAAA0M,oBAAAhB,GAAA1O,EAAA0M,MAAAU,EAAAxN,SAAA3C,SACA,SAAAmQ,EAAArN,OACAiD,EAAA2M,iBAAAjB,GAAA1O,EAAA0M,MAAAU,EAAAxN,SAAA3C,cACA6N,IAAA9K,EAAA+L,MACA/I,EAAA+I,IAAA0C,GAAAzO,EAAA+L,WACAjB,IAAA9K,EAAAgM,UACAhJ,EAAAgJ,QAhDO,SAAAA,GACP,oBAAAA,GAAA,iBAAAA,EACA,OAAAyC,GAAAzC,GACA,MAAAG,EAAA3O,QAAAsN,IAAAtN,EAAA,IAAAiR,GAAAjR,GACA,SAAc2O,EAAAH,EAAA4D,QAAqBzD,EAAAH,EAAA6D,UAAuB1D,EAAAH,EAAA8D,WAAwB3D,EAAAH,EAAA+D,OAClF,CA2CAC,CAAAhQ,EAAAgM,UACAhM,EAAAuM,aACAvJ,EAAAuJ,WAAAvM,EAAAuM,YACAvM,EAAAwM,iBACAxJ,EAAAwJ,eAAAxM,EAAAwM,gBACA6C,GACAhS,OAAA4S,OAAAjN,EAAA4L,GAAAS,EAAAC,IACAtM,CACA,CC5RO,SAAAkN,GAAAC,GACP,MAAAC,GAAAD,GAAA,IAAA9E,OACA,GAAA+E,EAEA,OAAAA,EAAAC,WAAA,MAAAD,EAAAC,WAAA,MAAAD,EAAAC,WAAA,MAEQ1I,GAAiB7E,KAAAsN,GADzBA,OACA,CAGA,CAOO,SAAAE,GAAAC,GACP,gBAAAA,EAAA,CAAkCA,OAAA,SAAkB,CAAIA,OAAA,SAAAC,IAAA,aACxD,CACA,MAAAC,GAAA,IAAAnC,IAAA,sCACA,SAAAoC,GAAAC,EAAAC,EAAAC,GACA,UAAApD,KAAA1Q,MAAA4T,KAAAA,EAAA7K,YAAA,CACA,OAAA2H,EAAA/K,SAAA,CACAkO,EAAAE,YAAAD,EAAArL,eAAAiI,EAAAsD,aAAA,KACA,QACA,CACA,OAAAtD,EAAA/K,SACA,SACA,MAAAsO,EAAAvD,EAEA,IAAAgD,GAAAjC,IAAAwC,EAAAC,SAAA,CACAP,GAAAM,EAAAJ,EAAAC,GACA,QACA,CACA,MAAAK,EAAAL,EAAAM,cAAAH,EAAAC,QAAA9N,eACA,SAAA6N,EAAAC,QAAA,CACA,MAAAG,EAAAlB,GAAAc,EAAAK,aAAA,cAAAvG,GACAsG,GACAF,EAAA1N,aAAA,OAAA4N,GACA,MAAAb,OAAoBA,EAAAC,IAAAA,GAAcF,GAAAU,EAAAK,aAAA,WAClCH,EAAA1N,aAAA,SAAA+M,GACAC,GACAU,EAAA1N,aAAA,MAAAgN,EACA,CACAI,EAAAE,YAAAI,GACAR,GAAAM,EAAAE,EAAAL,EACA,CACA,CASO,SAAAS,GAAAC,GAGP,IAAAA,EAAA1G,SAAA,KACA,OAAA0G,EACA,MAAAC,GAAA,IAAAC,WAAAC,gBAAAH,EAAA,aACAlE,EAAAmE,EAAAL,cAAA,OAEA,OADAT,GAAAc,EAAApJ,KAAAiF,EAAAmE,GACAnE,EAAAnH,SACA,CACA,SAAAyL,GAAAnU,GACA,uBAAAA,GAAAA,EAAAA,OAAAsN,CACA,CAMO,SAAA8G,GAAAC,GACP,MAAAjJ,EAAA,iBAAAiJ,EAAAjJ,QAAA,OAAAiJ,EAAAjJ,OACAiJ,EAAAjJ,OACA,GACA,OACAkJ,WAAAH,GAAA/I,EAAAkJ,aACAH,GAAAE,EAAAC,aAAiDlK,GACjDmK,OAAAJ,GAAA/I,EAAAmJ,SAAAJ,GAAAE,EAAAE,SAA4EnK,GAC5E6B,KAAAkI,GAAA/I,EAAAa,OAA0C7B,GAC1C4B,cAAAmI,GAAA/I,EAAAY,gBAA4D5B,GAC5D2B,YAAAoI,GAAA/I,EAAAW,cAAwD3B,GAExD,CAqCA,MAAAoK,GAAA,oBAWA,SAAAC,GAAAnG,GACA,IAAA/O,MAAAC,QAAA8O,GACA,SACA,MAAAuB,EAAA,GACA,UAAA6E,KAAApG,EAAA,CACA,GAAAuB,EAAApQ,QAVA,GAWA,MACA,iBAAAiV,GAAA,OAAAA,IAEA,iBAAAA,EAAAhV,KAAAgV,EAAAhV,KAEA,iBAAAgV,EAAArD,KAEAxB,EAAA1L,KAAA,CACAzE,IAAAgV,EAAAhV,IACAiV,MAAA,iBAAAD,EAAAC,MAAAD,EAAAC,MAAA,GACAtD,IAAAqD,EAAArD,OACAmD,GAAAnH,SAAAqH,EAAAE,KAAA,CAAiDA,IAAAF,EAAAE,KAAe,MAChE,iBAAAF,EAAAG,MAAArH,OAAAC,SAAAiH,EAAAG,OAAAH,EAAAG,KAAA,EACA,CAAoBA,KAAAjL,KAAA8D,IAAAgH,EAAAG,KA7BpB,MA8BA,MACA,iBAAAH,EAAApD,KAAA9D,OAAAC,SAAAiH,EAAApD,MAAAoD,EAAApD,IAAA,EACA,CAAoBA,IAAA1H,KAAA8D,IAAAgH,EAAApD,IAAA,IACpB,KAEA,CACA,OAAAzB,CACA,CACA,MAGAiF,GAAA,2BACA,SAAAC,GAAA/U,GACA,uBAAAA,GAAAwN,OAAAC,SAAAzN,GAAAA,OAAAsN,CACA,CAIA,SAAA0H,GAAA1G,GACA,oBAAAA,GAAA,OAAAA,EACA,OACA,MAAA2G,EAAA3G,EACA,YAAA2G,EAAAC,KACA,OAAiBA,KAAA,QACjB,cAAAD,EAAAC,MAAA,YAAAD,EAAAC,KAAA,CACA,MAAAxH,EAAAqH,GAAAE,EAAAvH,KACAC,EAAAoH,GAAAE,EAAAtH,KACAwH,EAAA,WAAAF,EAAAC,MAAA3V,MAAAC,QAAAyV,EAAAE,OACAF,EAAAE,MAAAC,OAAAtU,GAAAgU,GAAAzH,SAAAvM,IACA,GACA,OACAoU,KAAAD,EAAAC,aACA5H,IAAAI,EAAA,CAAsCA,OAAM,WAC5CJ,IAAAK,EAAA,CAAsCA,OAAM,MAC5CwH,EAAA1V,OAAA,GAAqC0V,SAAQ,GAE7C,CACA,cAAAF,EAAAC,MAAA3V,MAAAC,QAAAyV,EAAAI,SAAA,CACA,MAAAA,EAAA,GACA,UAAAC,KAAAL,EAAAI,QAAA,CACA,GAAAA,EAAA5V,QA9BA,GA+BA,MACA,iBAAA6V,GAAA,OAAAA,IAEA,iBAAAA,EAAAtV,OAAAsV,EAAAtV,MAAAP,OAnCA,IAqCA4V,EAAAlR,KAAA,CAA2BnE,MAAAsV,EAAAtV,MAAA2U,MAAA,iBAAAW,EAAAX,MAAAW,EAAAX,MAAAW,EAAAtV,QAC3B,CACA,GAAAqV,EAAA5V,OAAA,EACA,OAAqByV,KAAA,SAAAG,UACrB,CAEA,CAMO,SAAAE,GAAAjH,GACP,IAAA/O,MAAAC,QAAA8O,GACA,SACA,MAAAuB,EAAA,GACA,UAAA7P,KAAAsO,EAAA,CACA,GAAAuB,EAAApQ,QAvDA,GAwDA,MACA,oBAAAO,GAAA,OAAAA,EACA,SACA,oBAAAA,EAAAN,MAA8C4Q,GAA2BhL,KAAAtF,EAAAN,KACzE,SACA,oBAAAM,EAAAA,OAAAA,EAAAA,MAAAP,OA5DA,IA4DAO,EAAAA,MAAAqN,SAAA,KACA,SACA,GAAAwC,EAAA5L,KAAA3C,GAAAA,EAAA5B,MAAAM,EAAAN,KACA,SACA,MAAAuV,EAAAD,GAAAhV,EAAAiV,SACApF,EAAA1L,KAAA,CACAzE,IAAAM,EAAAN,IACAiV,MAAA,iBAAA3U,EAAA2U,MAAA3U,EAAA2U,MAAA,GACA3U,MAAAA,EAAAA,SACAiV,EAAA,CAA4BA,WAAU,IAEtC,CACA,OAAApF,CACA,CAEO,SAAA2F,GAAA/E,GACP,OAAA5Q,OAAA4V,YAAAhF,EAAA5I,IAAAvG,GAAA,CAAAA,EAAA5B,IAAA4B,EAAAtB,QACA,CAGA,SAAA0V,GAAApH,GACA,IAAA/O,MAAAC,QAAA8O,GACA,SACA,MAAAuB,EAAA,GACA,UAAA8F,KAAArH,EAAA,CACA,GAAAuB,EAAApQ,QAtHA,GAuHA,MACA,iBAAAkW,GAAA,OAAAA,IAEA,iBAAAA,EAAAjW,KAAAiW,EAAAjW,KAEAH,MAAAC,QAAAmW,EAAAC,QAEA/F,EAAA1L,KAAA,CACAzE,IAAAiW,EAAAjW,IACAiV,MAAA,iBAAAgB,EAAAhB,MAAAgB,EAAAhB,MAAA,GACAiB,MAAAD,EAAAC,MAAAhQ,MAAA,EAhIA,MAkIA,CACA,OAAAiK,CACA,CAOA,SAAAgG,GAAA7V,GACA,uBAAAA,GAAAwN,OAAAC,SAAAzN,IAAAA,EAAA,EACA4J,KAAA8D,IAAA1N,EAHO,UAIPsN,CACA,CAQO,SAAAwI,GAAAC,EAAAC,GACP,UAAAD,EAEA,OAAAF,GAAAE,IAAAF,GAAAG,EACA,CAWO,SAAAC,GAAA5B,GACP,MAAAxE,EAAA,GACA,UAAAqG,KAAA7B,EAAA8B,MAAA,CACA,MAAA1F,EAAA8E,GAAAW,EAAAzF,QACAE,EAAuBN,GAAwBK,GAA8BwF,EAAAvF,OAAA6E,GAAA/E,KAC7E,IAAAE,EACA,SACA,MAAAyF,EAAAN,GAAAI,EAAAE,MAAA/B,EAAA+B,OACAC,EAAAP,GAAAI,EAAAG,OAAAhC,EAAAgC,QACAxG,EAAA1L,KAAA,CACAzE,IAAAwW,EAAAxW,IACAiR,SACA2F,OAAA7B,GAAAyB,EAAAI,QACAC,SAAAb,GAAAQ,EAAAK,kBACAjJ,IAAA8I,EAAA,CAAwCA,SAAQ,WAChD9I,IAAA+I,EAAA,CAAyCA,UAAS,IAElD,CACA,OAAAxG,CACA,CAKO,SAAA2G,GAAAC,GACP,qBAA0B,EAAAA,EAAAC,WAC1B,CCvUiC,IAAIC,GAAEC,GAAEC,GAAEC,GAAEC,GAAC,EAAGC,GAAC,GAAIC,GAAEpW,EAAEqW,GAAED,GAACrU,IAAKuU,GAAEF,GAAC5S,IAAK+S,GAAEH,GAACrP,OAAQyP,GAAEJ,GAACnU,IAAKwU,GAAEL,GAACpO,QAAS0O,GAAEN,GAACtU,GAAI,SAAS6U,GAAC5W,EAAAsB,GAAM+U,GAACvQ,KAAMuQ,GAACvQ,IAAKkQ,GAAChW,EAAGmW,IAAC7U,GAAK6U,GAAC,EAAG,IAAAjW,EAAM8V,GAACa,MAAOb,GAACa,IAAA,CAAM9U,GAAA,GAAA+D,IAAA,KAAe,OAAA9F,GAAAE,EAAA6B,GAAAlD,QAAAqB,EAAA6B,GAAAwB,KAAA,IAAmCrD,EAAA6B,GAAA/B,EAAA,CAAU,SAAS8W,GAAC9W,GAAI,OAAOmW,GAAC,EAAGY,GAAEC,GAAChX,EAAA,CAAI,SAAS+W,GAAC/W,EAAAE,EAAA3B,GAAQ,IAAAS,EAAM4X,GAAEb,KAAC,GAAM,GAAA/W,EAAAsC,EAAAtB,GAAAhB,EAAAkD,MAAAlD,EAAA+C,GAAA,CAAAxD,EAAAA,EAAA2B,GAA+B8W,QAAC,EAAA9W,GAAA,SAAAF,GAAuB,IAAAsB,EAAAtC,EAAAiY,IAAAjY,EAAAiY,IAAA,GAAAjY,EAAA+C,GAAA,GAAA5B,EAAAnB,EAAAsC,EAAAA,EAAAtB,GAAwCsB,IAAAnB,IAAAnB,EAAAiY,IAAA,CAAA9W,EAAAnB,EAAA+C,GAAA,IAAA/C,EAAAkD,IAAAuG,SAAA,IAA2C,GAAGzJ,EAAAkD,IAAQ8T,IAAGA,GAACkB,KAAA,CAAO,IAAA7W,EAAA,SAAAL,EAAAsB,EAAAnB,GAAsB,IAAAnB,EAAAkD,IAAA2U,IAAA,SAAuB,IAAA3W,GAAA,EAAA3B,EAAAS,EAAAkD,IAAAN,QAAA5B,EAA2B,GAAAhB,EAAAkD,IAAA2U,IAAA9U,GAAAsB,KAAA,SAAArD,GAAiC,GAAAA,EAAAiX,IAAA,CAAU/W,GAAA,EAAK,IAAAoB,EAAAtB,EAAA+B,GAAA,GAAc/B,EAAA+B,GAAA/B,EAAAiX,IAAAjX,EAAAiX,SAAA,EAAA3V,IAAAtB,EAAA+B,GAAA,KAAAxD,GAAA,MAA6C+B,EAAA,CAAK,IAAAD,EAAAC,EAAAZ,KAAAlB,KAAAwB,EAAAsB,EAAAnB,GAAyB,OAAAD,EAAAG,GAAA9B,EAAA8B,CAAA,CAAgB,OAAAH,GAAA3B,CAAA,EAAayX,GAACkB,KAAA,EAAQ,IAAA5W,EAAM0V,GAAC3P,sBAAAjG,EAAyB4V,GAACzP,oBAAqByP,GAACzP,oBAAA,SAAAvG,EAAAsB,EAAAnB,GAAqC,GAAA3B,KAAAyD,IAAA,CAAa,IAAA/B,EAAAI,EAAQA,OAAA,EAAAD,EAAAL,EAAAsB,EAAAnB,GAAAG,EAAAJ,CAAA,CAAsBE,GAAAA,EAAAV,KAAAlB,KAAAwB,EAAAsB,EAAAnB,EAAA,EAAuB6V,GAAC3P,sBAAAhG,CAAA,CAAyB,OAAArB,EAAAiY,KAAAjY,EAAA+C,EAAA,CAAmB,SAASoV,GAACnX,EAAAE,GAAM,IAAA3B,EAAMqY,GAAEb,KAAC,IAAOM,GAACrQ,KAAMoR,GAAC7Y,EAAAsY,IAAA3W,KAAA3B,EAAAwD,GAAA/B,EAAAzB,EAAA2B,EAAAA,EAAyB8V,GAACa,IAAA/Q,IAAAvC,KAAAhF,GAAA,CAAkB,SAAS8Y,GAACrX,EAAAE,GAAM,IAAA3B,EAAMqY,GAAEb,KAAC,IAAOM,GAACrQ,KAAMoR,GAAC7Y,EAAAsY,IAAA3W,KAAA3B,EAAAwD,GAAA/B,EAAAzB,EAAA2B,EAAAA,EAAyB8V,GAAClQ,IAAAvC,KAAAhF,GAAA,CAAc,SAAS+Y,GAACtX,GAAI,OAAOmW,GAAC,EAAGoB,GAAC,WAAY,OAAOvP,QAAAhI,EAAA,EAAW,IAAK,SAASwX,GAACxX,EAAAsB,EAAAnB,GAAQgW,GAAC,EAAGkB,GAAC,WAAY,sBAAArX,EAAA,CAAyB,IAAAG,EAAAH,EAAAsB,KAAa,kBAAkBtB,EAAA,MAAAG,GAAA,mBAAAA,GAAAA,GAAA,EAAsC,GAAAH,EAAA,OAAAA,EAAAgI,QAAA1G,IAAA,WAAqC,OAAAtB,EAAAgI,QAAA,OAAuB,MAAA7H,EAAAA,EAAAA,EAAAsX,OAAAzX,GAAA,CAAwB,SAASuX,GAACvX,EAAAG,GAAM,IAAAD,EAAM0W,GAAEb,KAAC,GAAM,OAAOqB,GAAClX,EAAA2W,IAAA1W,KAAAD,EAAA6B,GAAA/B,IAAAE,EAAA2W,IAAA1W,EAAAD,EAAA4F,IAAA9F,GAAAE,EAAA6B,EAAA,CAA2C,SAAS2V,GAAC1X,EAAAsB,GAAM,OAAO6U,GAAC,EAAGoB,GAAC,WAAY,OAAAvX,CAAA,EAASsB,EAAA,CAAI,SAASqW,GAAC3X,GAAI,IAAAE,EAAM8V,GAACtT,QAAA1C,EAAAkC,KAAA3D,EAAkBqY,GAAEb,KAAC,GAAM,OAAAxX,EAAA+B,EAAAN,EAAAE,GAAA,MAAA3B,EAAAwD,KAAAxD,EAAAwD,IAAA,EAAA7B,EAAA0F,IAA2CoQ,KAAC9V,EAAA0B,MAAAxC,OAAAY,EAAA+B,EAAA,CAAuB,SAAS6V,GAAC5X,EAAAsB,GAAM+U,GAACwB,eAAgBxB,GAACwB,cAAAvW,EAAAA,EAAAtB,GAAAA,EAAA,CAA6L,SAAS8X,KAAI,IAAA9X,EAAM4W,GAAEb,KAAC,IAAO,IAAA/V,EAAA+B,GAAA,CAAU,QAAA7B,EAAU8V,GAAC5T,IAAK,OAAAlC,IAAAA,EAAAqH,KAAA,OAAArH,EAAA6B,IAA8B7B,EAAAA,EAAA6B,GAAQ,IAAAxD,EAAA2B,EAAAqH,MAAArH,EAAAqH,IAAA,OAA2BvH,EAAA+B,GAAA,IAAAxD,EAAA,OAAAA,EAAA,KAAyB,OAAAyB,EAAA+B,EAAA,CAAY,SAASgW,KAAI,QAAA/X,EAAUA,EAAEoW,GAACxS,SAAS,CAAE,IAAAtC,EAAAtB,EAAA6W,IAAY,GAAA7W,EAAA6C,KAAAvB,EAAA,IAAgBA,EAAAwE,IAAAzC,KAAW2U,IAAC1W,EAAAwE,IAAAzC,KAAa4U,IAAC3W,EAAAwE,IAAA,GAAW,MAAA3F,GAASmB,EAAAwE,IAAA,GAASuQ,GAACpU,IAAA9B,EAAAH,EAAAoC,IAAA,GAAgBiU,GAACrU,IAAA,SAAAhC,GAAiBgW,GAAC,KAAMM,IAAGA,GAACtW,EAAA,EAAKqW,GAACtU,GAAA,SAAA/B,EAAAsB,GAAkBtB,GAAAsB,EAAAQ,KAAAR,EAAAQ,IAAAyF,MAAAvH,EAAAuH,IAAAjG,EAAAQ,IAAAyF,KAAuCoP,IAAGA,GAAC3W,EAAAsB,EAAA,EAAO+U,GAAC5S,IAAA,SAAAzD,GAAiBuW,IAAGA,GAACvW,GAAI+V,GAAC,EAAG,IAAAxX,GAAOyX,GAAChW,EAAAkC,KAAA2U,IAAYtY,IAAI0X,KAAID,IAACzX,EAAAuH,IAAA,GAAWkQ,GAAClQ,IAAA,GAAAvH,EAAAwD,GAAAsB,KAAA,SAAArD,GAA8BA,EAAAiX,MAAAjX,EAAA+B,GAAA/B,EAAAiX,KAAAjX,EAAAE,EAAAF,EAAAiX,SAAA,MAAqC1Y,EAAAuH,IAAAzC,KAAe2U,IAACzZ,EAAAuH,IAAAzC,KAAa4U,IAAC1Z,EAAAuH,IAAA,GAAWiQ,GAAC,IAAKE,GAAED,EAAC,EAAEK,GAACrP,OAAA,SAAAhH,GAAoBwW,IAAGA,GAACxW,GAAI,IAAAsB,EAAAtB,EAAAkC,IAAYZ,GAAAA,EAAAuV,MAAAvV,EAAAuV,IAAA/Q,IAAAjH,SAAA,IAAkCuX,GAAC7S,KAAAjC,IAAU4U,KAAIG,GAAC6B,yBAA0BhC,GAAEG,GAAC6B,wBAAyBC,IAAGJ,KAACzW,EAAAuV,IAAA9U,GAAAsB,KAAA,SAAArD,GAA6BA,EAAAE,IAAAF,EAAA6W,IAAA7W,EAAAE,EAAAF,EAAAE,OAAA,MAA+B+V,GAAED,GAAC,MAAOK,GAACnU,IAAA,SAAAlC,EAAAsB,GAAmBA,EAAA+B,KAAA,SAAArD,GAAmB,IAAIA,EAAA8F,IAAAzC,KAAW2U,IAAChY,EAAA8F,IAAA9F,EAAA8F,IAAA0O,OAAA,SAAAxU,GAAiC,OAAAA,EAAA+B,IAAakW,GAACjY,EAAA,EAAI,CAAE,MAAAG,GAASmB,EAAA+B,KAAA,SAAArD,GAAmBA,EAAA8F,MAAA9F,EAAA8F,IAAA,MAAkBxE,EAAA,GAAO+U,GAACpU,IAAA9B,EAAAH,EAAAoC,IAAA,IAAiBqU,IAAGA,GAACzW,EAAAsB,EAAA,EAAO+U,GAACpO,QAAA,SAAAjI,GAAqB0W,IAAGA,GAAC1W,GAAI,IAAAsB,EAAAnB,EAAAH,EAAAkC,IAAc/B,GAAAA,EAAA0W,MAAA1W,EAAA0W,IAAA9U,GAAAsB,KAAA,SAAArD,GAAqC,IAAIgY,GAAChY,EAAA,CAAI,MAAAA,GAASsB,EAAAtB,CAAA,IAAKG,EAAA0W,SAAA,EAAAvV,GAAkB+U,GAACpU,IAAAX,EAAAnB,EAAAiC,KAAA,EAAgB,IAAIgW,GAAC,mBAAAF,sBAA0C,SAASC,GAACnY,GAAI,IAAAsB,EAAAnB,EAAA,WAAmBkY,aAAAnY,GAAgBkY,IAACE,qBAAAhX,GAAAyH,WAAA/I,EAAA,EAAwCE,EAAA6I,WAAA5I,EAAA,IAAoBiY,KAAC9W,EAAA4W,sBAAA/X,GAAA,CAA+B,SAAS6X,GAAChY,GAAI,IAAAsB,EAAM0U,GAAC9V,EAAAF,EAAAkC,IAAS,mBAAAhC,IAAAF,EAAAkC,SAAA,EAAAhC,KAAyC8V,GAAC1U,CAAA,CAAG,SAAS2W,GAACjY,GAAI,IAAAsB,EAAM0U,GAAEhW,EAAAkC,IAAAlC,EAAA+B,KAAaiU,GAAC1U,CAAA,CAAG,SAAS8V,GAACpX,EAAAsB,GAAM,OAAAtB,GAAAA,EAAAnB,SAAAyC,EAAAzC,QAAAyC,EAAA+B,KAAA,SAAA/B,EAAAnB,GAAoD,OAAAmB,IAAAtB,EAAAG,EAAA,EAAgB,CAAE,SAAS6W,GAAChX,EAAAsB,GAAM,yBAAAA,EAAAA,EAAAtB,GAAAsB,CAAA,CCAvyF,SAASiX,GAACvY,EAAAsB,GAAM,QAAAlB,KAAAkB,EAAAtB,EAAAI,GAAAkB,EAAAlB,GAAyB,OAAAJ,CAAA,CAAS,SAASwY,GAACxY,EAAAsB,GAAM,QAAAlB,KAAAJ,EAAA,gBAAAI,KAAAA,KAAAkB,GAAA,SAAqD,QAAAnB,KAAAmB,EAAA,gBAAAnB,GAAAH,EAAAG,KAAAmB,EAAAnB,GAAA,SAAuD,SAAS,SAASsY,GAACzY,EAAAsB,GAAM,IAAAlB,EAAAkB,IAAAnB,EAAY2W,GAAC,CAAExV,EAAA,CAAGS,GAAA3B,EAAAF,EAAAoB,KAAUpB,EAAAC,EAAA,GAAAmB,EAAAtC,EAAAmB,EAAA,GAAkB,OAAOkX,GAAC,WAAYnX,EAAA6B,GAAA3B,EAAAF,EAAAA,EAAAoB,EAAaoX,GAACxY,IAAAlB,EAAA,CAAQsC,EAAApB,GAAI,EAAE,CAAAF,EAAAI,EAAAkB,IAAU6V,GAAC,WAAY,OAAOuB,GAACxY,IAAAlB,EAAA,CAAQsC,EAAApB,IAAIF,EAAA,WAAe0Y,GAACxY,IAAAlB,EAAA,CAAQsC,EAAApB,GAAI,EAAE,EAAE,CAAAF,IAAAI,CAAA,CAAQ,SAASsY,GAAC1Y,GAAI,IAAI,SAAAsB,EAAAtB,EAAA+B,OAAA3B,EAAAJ,EAAAE,OAAA,IAAAoB,GAAA,EAAAA,GAAA,EAAAlB,IAAAkB,GAAAA,GAAAlB,GAAAA,EAAA,CAA6D,MAAAJ,GAAS,SAAS,IAAAsB,EAAAlB,CAAO,CAAC,SAASuY,GAAC3Y,GAAIA,GAAA,CAAI,SAAS4Y,GAAC5Y,GAAI,OAAAA,CAAA,CAAS,SAAS6Y,KAAI,UAAUF,GAAC,CAAE,IAAIG,GAAEzB,GAAE,SAAS0B,GAAC/Y,EAAAsB,GAAM9C,KAAAoD,MAAA5B,EAAAxB,KAAAkE,QAAApB,CAAA,EAAkWyX,GAACvZ,UAAA,IAAeiD,GAACuW,sBAAA,EAA0BD,GAACvZ,UAAA6G,sBAAA,SAAArG,EAAAsB,GAA+C,OAAOkX,GAACha,KAAAoD,MAAA5B,IAAgBwY,GAACha,KAAAqH,MAAAvE,EAAA,EAAgB,IAAI2X,GAAEhZ,EAAC+B,IAAK/B,EAAC+B,IAAA,SAAAhC,GAAiBA,EAAA2B,MAAA3B,EAAA2B,KAAAuV,KAAAlX,EAAA6B,MAAA7B,EAAA4B,MAAAC,IAAA7B,EAAA6B,IAAA7B,EAAA6B,IAAA,MAA0DoX,IAAGA,GAACjZ,EAAA,EAAK,IAAIkZ,GAAC,oBAAAvZ,QAAAA,OAAAwZ,KAAAxZ,OAAAwZ,IAAA,2BAA6R,IAAIC,GAAC,SAAApZ,EAAAsB,GAAe,aAAAtB,EAAA,KAAoBuE,EAAEA,EAACvE,GAAAiH,IAAA3F,GAAA,EAAa+X,GAAC,CAAEpS,IAAImS,GAACE,QAASF,GAACG,MAAA,SAAAvZ,GAAmB,OAAAA,EAASuE,EAACvE,GAAAnB,OAAA,GAAa2a,KAAA,SAAAxZ,GAAkB,IAAAsB,EAAMiD,EAACvE,GAAI,OAAAsB,EAAAzC,OAAA,qBAAqC,OAAAyC,EAAA,IAAYmY,QAASlV,GAAGmV,GAAEzZ,EAACgC,IAAKhC,EAACgC,IAAA,SAAAjC,EAAAsB,EAAAlB,EAAAD,GAAuB,GAAAH,EAAA4G,KAAA,QAAA1G,EAAAlB,EAAAsC,EAAwBtC,EAAAA,EAAA+C,IAAO,IAAA7B,EAAAlB,EAAAkD,MAAAhC,EAAAgC,IAAA,aAAAZ,EAAAW,MAAAX,EAAAW,IAAA7B,EAAA6B,IAAAX,EAAAQ,IAAA1B,EAAA0B,KAAA,IAAA5B,EAAAgC,IAAAlC,EAAAsB,GAAkFoY,GAAC1Z,EAAAsB,EAAAlB,EAAAD,EAAA,EAAW,IAAIwZ,GAAE1Z,EAACgI,QAAS,SAAS2R,GAAC5Z,EAAAsB,EAAAlB,GAAQ,OAAAJ,IAAAA,EAAAkC,KAAAlC,EAAAkC,IAAA2U,MAAA7W,EAAAkC,IAAA2U,IAAA9U,GAAAuX,QAAA,SAAAtZ,GAA+D,mBAAAA,EAAAkC,KAAAlC,EAAAkC,KAAA,GAAkClC,EAAAkC,IAAA2U,IAAA,aAAA7W,EAA2BuY,GAAC,GAAGvY,IAAAkC,MAAAlC,EAAAkC,IAAAW,MAAAzC,IAAAJ,EAAAkC,IAAAW,IAAAvB,GAAAtB,EAAAkC,IAAAD,KAAA,EAAAjC,EAAAkC,IAAA,MAAAlC,EAAA8B,IAAA9B,EAAA8B,KAAA9B,EAAA8B,IAAAmF,IAAA,SAAAjH,GAAoG,OAAO4Z,GAAC5Z,EAAAsB,EAAAlB,EAAA,IAAQJ,CAAA,CAAK,SAAS6Z,GAAC7Z,EAAAsB,EAAAlB,GAAQ,OAAAJ,GAAAI,IAAAJ,EAAAoC,IAAA,KAAApC,EAAA8B,IAAA9B,EAAA8B,KAAA9B,EAAA8B,IAAAmF,IAAA,SAAAjH,GAA4D,OAAO6Z,GAAC7Z,EAAAsB,EAAAlB,EAAA,GAAQJ,EAAAkC,KAAAlC,EAAAkC,IAAAW,MAAAvB,IAAAtB,EAAAiC,KAAA7B,EAAAsS,YAAA1S,EAAAiC,KAAAjC,EAAAkC,IAAAD,KAAA,EAAAjC,EAAAkC,IAAAW,IAAAzC,IAAAJ,CAAA,CAAkF,SAAS8Z,KAAItb,KAAA8D,IAAA,EAAA9D,KAAAQ,EAAA,KAAAR,KAAAwD,IAAA,KAAqC,SAAS+X,GAAC/Z,GAAI,IAAAsB,EAAAtB,EAAA+B,IAAA/B,EAAA+B,GAAAG,IAAqB,OAAAZ,GAAAA,EAAA0Y,KAAA1Y,EAAA0Y,IAAAha,EAAA,CAA2O,SAASia,KAAIzb,KAAAD,EAAA,KAAAC,KAAAyC,EAAA,KAAwBhB,EAACgI,QAAA,SAAAjI,GAAqB,IAAAsB,EAAAtB,EAAAkC,IAAYZ,IAAAA,EAAA4Y,KAAA,GAAA5Y,GAAAA,EAAA6Y,KAAA7Y,EAAA6Y,MAAA7Y,GAAA,GAAAtB,EAAAsC,MAAAtC,EAAA2B,KAAA,MAA2DgY,IAAGA,GAAC3Z,EAAA,GAAM8Z,GAACta,UAAA,IAAeiD,GAACP,IAAA,SAAAlC,EAAAsB,GAAoB,IAAAlB,EAAAkB,EAAAY,IAAA/B,EAAA3B,KAAmB,MAAA2B,EAAAnB,IAAAmB,EAAAnB,EAAA,IAAAmB,EAAAnB,EAAAuE,KAAAnD,GAAgC,IAAAF,EAAM6Z,GAAC5Z,EAAAiC,KAAApD,GAAA,EAAAT,EAAA,WAA0BS,GAAAmB,EAAA+Z,MAAAlb,GAAA,EAAAoB,EAAA+Z,IAAA,KAAAja,EAAAA,EAAAI,GAAAA,IAAA,EAAwCF,EAAA+Z,IAAA5b,EAAQ,IAAA0C,EAAAb,EAAAyC,IAAYzC,EAAAyC,IAAA,KAAW,IAAAvC,EAAA,WAAiB,OAAAH,EAAAmC,IAAA,CAAa,GAAAnC,EAAA0F,MAAAmU,IAAA,CAAgB,IAAAha,EAAAG,EAAA0F,MAAAmU,IAAkB7Z,EAAAiC,IAAAN,IAAA,GAAa+X,GAAC7Z,EAAAA,EAAAkC,IAAAW,IAAA7C,EAAAkC,IAAAkY,IAAA,CAAwB,IAAA9Y,EAAM,IAAAnB,EAAAsI,SAAA,CAAgBuR,IAAA7Z,EAAA6B,IAAA,OAAiBV,EAAAnB,EAAAnB,EAAAqb,OAAY/Y,EAAAuB,IAAA5B,EAAAK,EAAAqH,aAAA,GAA2BxI,EAAAmC,OAAA,GAAAhB,EAAAgB,KAAAnC,EAAAsI,SAAA,CAA+BuR,IAAA7Z,EAAA6B,IAAA7B,EAAAiC,IAAAN,IAAA,KAAuB9B,EAAA4G,KAAArI,EAAAA,EAAA,EAAeub,GAACta,UAAA0I,qBAAA,WAA2C1J,KAAAQ,EAAA,IAAW8a,GAACta,UAAAgG,OAAA,SAAAxF,EAAAI,GAAgC,GAAA5B,KAAAwD,IAAA,CAAa,GAAAxD,KAAA4D,IAAAN,IAAA,CAAiB,IAAA3B,EAAAgH,SAAA4L,cAAA,OAAA/T,EAAAR,KAAA4D,IAAAN,IAAA,GAAAI,IAA0D1D,KAAA4D,IAAAN,IAAA,GAAgB8X,GAACpb,KAAAwD,IAAA7B,EAAAnB,EAAAob,IAAApb,EAAA6D,IAAA,CAAyBrE,KAAAwD,IAAA,KAAc,IAAAzD,EAAA6B,EAAA4Z,KAAa3Y,EAAEmB,EAAC,KAAAxC,EAAAsa,UAAkB,OAAA/b,IAAAA,EAAA+D,MAAA,KAAwBjB,EAAEmB,EAAC,KAAApC,EAAA4Z,IAAA,KAAAha,EAAAwB,UAAAjD,EAAA,EAAiC,IAAIgc,GAAC,SAAAva,EAAAsB,EAAAlB,GAAiB,KAAAA,EAAA,KAAAA,EAAA,IAAAJ,EAAAiB,EAAAuZ,OAAAlZ,GAAAtB,EAAA4B,MAAA6Y,cAAA,MAAAza,EAAA4B,MAAA6Y,YAAA,KAAAza,EAAAiB,EAAAyZ,MAAA,IAAAta,EAAAJ,EAAAzB,EAAyG6B,GAAE,CAAE,KAAKA,EAAAvB,OAAA,GAAWuB,EAAAia,KAAAja,GAAW,GAAAA,EAAA,GAAAA,EAAA,SAAmBJ,EAAAzB,EAAA6B,EAAAA,EAAA,KAAa,SAAAua,GAAA3a,GAAc,OAAAxB,KAAAiI,gBAAA,WAAuC,OAAAzG,EAAA0C,OAAA,EAAiB1C,EAAAwB,QAAA,CAAY,SAAAoZ,GAAA5a,GAAc,IAAAI,EAAA5B,KAAA2B,EAAAH,EAAAQ,EAAiB,GAAAJ,EAAA8H,qBAAA,WAAqCC,EAAC,KAAA/H,EAAAM,GAAAN,EAAAM,EAAA,KAAAN,EAAAI,EAAA,MAA6BJ,EAAAI,GAAAJ,EAAAI,IAAAL,GAAAC,EAAA8H,wBAAA9H,EAAAM,EAAA,CAA8C,QAAAR,EAAAE,EAAAgC,IAAgB,OAAAlC,IAAAA,EAAAqH,KAAA,OAAArH,EAAA6B,IAA8B7B,EAAAA,EAAA6B,GAAQ3B,EAAAI,EAAAL,EAAAC,EAAAM,EAAA,CAAW4D,SAAA,EAAAnD,WAAAhB,EAAAuH,WAAA,GAAA5F,IAAA,CAA2CyF,IAAArH,EAAAqH,KAAUsT,SAAA,WAAqB,UAAS5X,aAAA9C,EAAA8C,aAAAoB,aAAA,SAAArE,EAAAsB,GAAwD9C,KAAAkJ,WAAAnE,KAAAvD,GAAAI,EAAAI,EAAA6D,aAAArE,EAAAsB,EAAA,EAA8CF,YAAA,SAAApB,GAAyBxB,KAAAkJ,WAAAoT,OAAAtc,KAAAkJ,WAAAb,QAAA7G,KAAA,KAAAI,EAAAI,EAAAY,YAAApB,EAAA,GAA8EmI,EAAE9G,EAACsZ,GAAA,CAAIjY,QAAAtC,EAAAsC,SAAkB1C,EAAAoC,KAAAhC,EAAAM,EAAA,EAAgFuZ,GAACza,UAAA,IAAeiD,GAACuX,IAAA,SAAAha,GAAkB,IAAAsB,EAAA9C,KAAA4B,EAAa2Z,GAACzY,EAAAc,KAAAjC,EAAAmB,EAAAL,EAAA5B,IAAAW,GAAqB,OAAAG,EAAA,cAAAD,GAA0B,IAAAlB,EAAA,WAAiBsC,EAAAM,MAAA6Y,aAAAta,EAAAoD,KAAArD,GAA+Bqa,GAACjZ,EAAAtB,EAAAG,IAAAD,GAAA,EAAcE,EAAAA,EAAApB,GAAAA,GAAA,GAAaib,GAACza,UAAAgG,OAAA,SAAAxF,GAA8BxB,KAAAD,EAAA,KAAAC,KAAAyC,EAAA,IAAA8Z,IAA2B,IAAAzZ,EAAMiD,EAACvE,EAAAwB,UAAaxB,EAAAya,aAAA,MAAAza,EAAAya,YAAA,IAAAnZ,EAAAkO,UAAmD,QAAApP,EAAAkB,EAAAzC,OAAmBuB,KAAI5B,KAAAyC,EAAA+Z,IAAA1Z,EAAAlB,GAAA5B,KAAAD,EAAA,KAAAC,KAAAD,IAAsC,OAAAyB,EAAAwB,QAAA,EAAmByY,GAACza,UAAAgH,mBAA8ByT,GAACza,UAAA2G,kBAAA,WAAwC,IAAAnG,EAAAxB,KAAWA,KAAAyC,EAAAqY,QAAA,SAAAhY,EAAAlB,GAA6Bma,GAACva,EAAAI,EAAAkB,EAAA,EAAQ,EAAG,IAAI2Z,GAAC,oBAAAtb,QAAAA,OAAAwZ,KAAAxZ,OAAAwZ,IAAA,wBAA4E+B,GAAC,8RAA+RC,GAAC,mCAAoCC,GAAC,YAAaC,GAAC,oBAAAlU,SAA8BmU,GAAC,SAAAtb,GAAa,2BAAAL,QAAA,iBAAAA,SAAA,4BAAA+E,KAAA1E,EAAA,EAAkRyC,EAACjD,UAAA+b,kBAAA,2EAAAjC,QAAA,SAAAhY,GAA4HrC,OAAAC,eAAsBuD,EAACjD,UAAA8B,EAAA,CAAcka,cAAA,EAAAnc,IAAA,WAA+B,OAAAb,KAAA,UAAA8C,EAAA,EAAyB0Z,IAAA,SAAAhb,GAAiBf,OAAAC,eAAAV,KAAA8C,EAAA,CAA8Bka,cAAA,EAAAC,UAAA,EAAArc,MAAAY,GAAoC,GAAG,GAAI,IAAA0b,GAAOzb,EAACqF,MAAOrF,EAACqF,MAAA,SAAAtF,GAAmB,OAAA0b,KAAA1b,EAAA0b,GAAA1b,IAAAA,EAAA2b,QAAA,aAA2C3b,EAAA4b,qBAAA,WAAmC,OAAApd,KAAAqd,YAAA,EAAyB7b,EAAA8b,mBAAA,WAAiC,OAAAtd,KAAAud,gBAAA,EAA6B/b,EAAAgc,YAAAhc,CAAA,EAAkB,IAAAic,GAAAC,GAAA,CAAWV,cAAA,EAAAnc,IAAA,WAA+B,OAAAb,KAAA2d,KAAA,GAAmBC,GAAInc,EAACsC,MAAOtC,EAACsC,MAAA,SAAAvC,GAAmB,iBAAAA,EAAA2B,MAAA,SAAA3B,GAAqC,IAAAsB,EAAAtB,EAAA4B,MAAAxB,EAAAJ,EAAA2B,KAAAzB,EAAA,GAA2BlB,GAAA,GAAAoB,EAAAyG,QAAA,KAAsB,QAAAtI,KAAA+C,EAAA,CAAgB,IAAAL,EAAAK,EAAA/C,GAAW,eAAAA,GAAA,iBAAA+C,GAAA,MAAAL,GAA+Coa,IAAC,aAAA9c,GAAA,aAAA6B,GAAA,UAAA7B,GAAA,cAAAA,GAAA,CAAiE,IAAA+B,EAAA/B,EAAAwG,cAAsB,iBAAAxG,GAAA,UAAA+C,GAAA,MAAAA,EAAAlC,MAAAb,EAAA,qBAAAA,IAAA,IAAA0C,EAAAA,EAAA,iBAAAX,GAAA,OAAAW,EAAAA,GAAA,QAAAX,EAAA,UAAAA,EAAA,qBAAAA,EAAA/B,EAAA,0BAAA+B,GAAA,UAAAF,GAAA,aAAAA,GAA2Nkb,GAACha,EAAAK,MAAA,YAAArB,EAAA/B,EAAA,uBAAA+B,EAAA/B,EAAA,aAAiE4c,GAACzW,KAAAnG,KAAAA,EAAA+B,GAAAA,EAAA/B,EAAA,UAAAS,GAAiCkc,GAACxW,KAAAnG,GAAAA,EAAAA,EAAAuG,QAAqBsW,GAAC,OAAArW,cAAA,OAAA9D,IAAAA,OAAA,eAAAX,GAAAJ,EAAA3B,EAAA+B,KAAA/B,EAAA,kBAAA2B,EAAA3B,GAAA0C,CAAA,EAA+F,UAAAb,IAAAF,EAAAmc,UAAA1d,MAAAC,QAAAsB,EAAAd,SAAAc,EAAAd,MAA2DmF,EAACjD,EAAAE,UAAA8X,QAAA,SAAAtZ,GAAiCA,EAAA4B,MAAA0a,UAAA,GAAApc,EAAAd,MAAAyH,QAAA7G,EAAA4B,MAAAxC,MAAA,IAAoD,MAAAc,EAAAuH,eAAAvH,EAAAd,MAAkCmF,EAACjD,EAAAE,UAAA8X,QAAA,SAAAtZ,GAAiCA,EAAA4B,MAAA0a,SAAApc,EAAAmc,UAAA,GAAAnc,EAAAuH,aAAAZ,QAAA7G,EAAA4B,MAAAxC,OAAAc,EAAAuH,cAAAzH,EAAA4B,MAAAxC,KAAA,KAAoGkC,EAAA6a,QAAA7a,EAAAib,WAAArc,EAAAic,MAAA7a,EAAA6a,MAAAld,OAAAC,eAAAgB,EAAA,YAAAgc,KAAA5a,EAAAib,YAAArc,EAAAic,MAAAjc,EAAAqc,UAAAjb,EAAAib,WAAAvc,EAAA4B,MAAA1B,CAAA,CAAt+B,CAAmnCF,GAAAA,EAAAwc,SAAevB,GAACmB,IAAAA,GAAApc,EAAA,EAAY,IAAAyc,GAAOxc,EAACwD,IAAKxD,EAACwD,IAAA,SAAAzD,GAAiByc,IAAAA,GAAAzc,GAAAic,GAAAjc,EAAAkC,GAAA,EAAoB,IAAAwa,GAAOzc,EAAC+G,OAAQ/G,EAAC+G,OAAA,SAAAhH,GAAoB0c,IAAAA,GAAA1c,GAAU,IAAAsB,EAAAtB,EAAA4B,MAAAxB,EAAAJ,EAAAiC,IAAsB,MAAA7B,GAAA,aAAAJ,EAAA2B,MAAA,UAAAL,GAAAA,EAAAlC,QAAAgB,EAAAhB,QAAAgB,EAAAhB,MAAA,MAAAkC,EAAAlC,MAAA,GAAAkC,EAAAlC,OAAA6c,GAAA,MAA0G,IAAAU,GAAA,CAAQC,uBAAA,CAAwB5U,QAAA,CAAS6U,YAAA,SAAA7c,GAAwB,OAAAic,GAAAjZ,IAAAhD,EAAAkC,KAAAN,MAAAxC,KAAA,EAAiC0d,YAAapF,GAACqF,WAAYpF,GAACE,cAAeD,GAACoF,iBAAkBpE,GAACqE,UAAW9F,GAAC+F,MAAOpF,GAACqF,oBAAqB3F,GAAC4F,mBAAoBtE,GAACuE,gBAAiBhG,GAACiG,QAAS/F,GAACgG,WAAYxG,GAACyG,OAAQlG,GAACmG,SAAU3G,GAAC4G,qBAAsBjF,GAACkF,cAAe9E,MAAsD,SAAA+E,GAAA5d,GAAe,QAAAA,GAAAA,EAAAwc,WAAwBvB,EAAC,CAAmS,IAAmK4C,GAAA,CAAWJ,SAAS3G,GAACoG,MAAOpF,GAACyF,WAAYxG,GAACkG,UAAW9F,GAACkG,gBAAiBhG,GAAC+F,mBAAoBtE,GAAC6E,cAAe9E,GAACmE,iBAAkBpE,GAAC8E,qBAAsBjF,GAACqF,gBAAiBnF,GAAC6E,OAAQlG,GAAC6F,oBAAqB3F,GAAC8F,QAAS/F,GAACuF,YAAapF,GAACqF,WAAYpF,GAACE,cAAeD,GAACmG,QAAA,SAAAC,SAA2B3E,GAAC7T,OAA3wG,SAAAxF,EAAAsB,EAAAlB,GAAmB,aAAAkB,EAAAQ,MAAAR,EAAAqR,YAAA,IAAuCxK,EAACnI,EAAAsB,GAAA,mBAAAlB,GAAAA,IAAAJ,EAAAA,EAAAkC,IAAA,MAAgtG+b,QAAnqG,SAAAje,EAAAsB,EAAAlB,GAAmB,OAAOkI,EAACtI,EAAAsB,GAAA,mBAAAlB,GAAAA,IAAAJ,EAAAA,EAAAkC,IAAA,MAAwoGgc,uBAApiB,SAAAle,GAAe,QAAAA,EAAA8B,MAAgBqG,EAAC,KAAAnI,IAAA,IAAogBme,aAA13I,SAAUne,EAAAI,GAAM,IAAAD,EAAMkB,EAACuZ,GAAA,CAAIxY,IAAApC,EAAAQ,EAAAJ,IAAY,OAAAD,EAAAie,cAAAhe,EAAAD,CAAA,EAAi5I4S,cAAe1R,EAACgd,cNA4pB,SAAAre,GAAc,SAAAiB,EAAAjB,GAAc,IAAAE,EAAAoB,EAAQ,OAAA9C,KAAAiI,kBAAAvG,EAAA,IAAAgQ,KAAA5O,EAAA,IAA6CL,EAAAiB,KAAA1D,KAAAA,KAAAiI,gBAAA,WAA8C,OAAAnF,CAAA,EAAS9C,KAAA0J,qBAAA,WAAsChI,EAAA,MAAO1B,KAAA6H,sBAAA,SAAArG,GAAwCxB,KAAAoD,MAAAxC,OAAAY,EAAAZ,OAAAc,EAAAoZ,QAAA,SAAAtZ,GAAiDA,EAAAiC,KAAA,EAAAqB,EAAAtD,EAAA,EAAc,EAAExB,KAAAoH,IAAA,SAAA5F,GAAsBE,EAAAoe,IAAAte,GAAS,IAAAiB,EAAAjB,EAAAkI,qBAA6BlI,EAAAkI,qBAAA,WAAkChI,GAAAA,EAAAsa,OAAAxa,GAAAiB,GAAAA,EAAAvB,KAAAM,EAAA,IAA6BA,EAAAwB,QAAA,CAAa,OAAAP,EAAAiB,IAAA,OAAAvB,IAAAM,EAAAc,GAAA/B,EAAAiB,EAAAsd,SAAAtd,EAAAud,KAAAvd,EAAAwd,SAAA,SAAAze,EAAAiB,GAA0E,OAAAjB,EAAAwB,SAAAP,EAAA,GAAqBwE,YAAAxE,EAAAA,CAAA,EMAjpCyd,cAA14B,SAAA1e,GAAe,OAAOqB,EAACwH,KAAA,KAAA7I,EAAA,EAAm3B2e,aAAxrB,SAAA3e,GAAe,OAAA4d,GAAA5d,GAAauI,EAACjC,MAAA,KAAA/E,WAAAvB,CAAA,EAA2pB4e,UNA18Q,WAAa,OAAO5W,QAAA,OMAm+Q6W,SAAUrc,EAACsc,eAAAlB,GAAAmB,UAA/anB,GAA+aoB,WAAp3B,SAAAhf,GAAe,OAAA4d,GAAA5d,IAAAA,EAAA2B,OAAuBa,CAAC,EAA60Byc,OAA50B,SAAAjf,GAAe,QAAAA,GAAA,iBAAAA,EAAAkf,aAAA,GAAAlf,EAAAkf,YAAArY,QAAA,UAA6zBsY,YAA7oB,SAAAnf,GAAe,OAAAA,IAAAA,EAAAoD,MAAA,IAAApD,EAAAsE,UAAAtE,IAAA,MAA8nBof,UAAiF3c,EAAC4c,cAAetG,GAACuG,KAAvuQ,SAAUtf,EAAAI,GAAM,SAAAD,EAAAH,GAAc,IAAAsB,EAAA9C,KAAAoD,MAAAC,IAAqB,OAAAP,GAAAtB,EAAA6B,KAAAP,IAAA,mBAAAA,EAAAA,EAAA,MAAAA,EAAA0G,QAAA,MAAA5H,GAAAA,EAAA5B,KAAAoD,MAAA5B,IAAAsB,GAAAtB,EAAA6B,IAA+F2W,GAACha,KAAAoD,MAAA5B,EAAA,CAAe,SAAAE,EAAAE,GAAc,OAAA5B,KAAA6H,sBAAAlG,EAAoCkB,EAACrB,EAAAI,EAAA,CAAM,OAAAF,EAAAgf,YAAA,SAAAlf,EAAAkf,aAAAlf,EAAA4H,MAAA,IAAA1H,EAAAgX,IAAAhX,EAAAV,UAAA+b,kBAAA,EAAArb,EAAAyB,KAAA3B,EAAAE,CAAA,EAAmhQqf,WAA/mP,SAAUvf,GAAI,SAAAsB,EAAAA,GAAc,IAAAlB,EAAMmY,GAAC,GAAGjX,GAAI,cAAAlB,EAAAyB,IAAA7B,EAAAI,EAAAkB,EAAAO,KAAA,MAAqC,OAAAP,EAAAkb,SAAkBtD,GAAC5X,EAAAkE,OAAAxF,EAAAsB,EAAA9B,UAAA+b,iBAAAja,EAAA4V,KAAA,EAAA5V,EAAA4d,YAAA,eAAAlf,EAAAkf,aAAAlf,EAAA4H,MAAA,IAAAtG,CAAA,EAA0hPke,UAAvqB,SAAAxf,EAAAsB,GAAkB,IAAAnB,EAAMF,EAACyD,kBAAmBzD,EAACyD,kBAAA,SAAA1D,GAA+B,OAAAA,GAAA,EAAY,IAAAE,EAAAF,EAAAsB,GAAW,OAAOrB,EAACyD,kBAAAvD,EAAAD,CAAA,EAA4jBuf,wBAAxsB,SAAAzf,EAAAsB,GAAqB,OAAAtB,EAAAsB,EAAA,EAAmrBoe,WAAoDld,EAACmd,SAAU7F,GAAC8F,aAAc3F,GAAC4F,KAAxlN,SAAU7f,GAAI,IAAAI,EAAAD,EAAAD,EAAAlB,EAAA,KAAiB,SAAAT,EAAAA,GAAc,GAAA6B,IAAAA,EAAAJ,KAAA4G,KAAA,SAAA5G,GAA+BA,IAAAhB,EAAAgB,EAAA8f,SAAA9f,GAAAE,GAAA,GAAyB,SAAAF,GAAaG,EAAAH,EAAAE,GAAA,IAASC,EAAA,MAAAA,EAAY,IAAAD,EAAA,MAAAE,EAAc,OAAApB,EAASqC,EAACrC,EAAAT,GAAA,KAAW,OAAAA,EAAA2gB,YAAA,OAAA3gB,EAAA2Y,KAAA,EAAA3Y,CAAA,EAAq7MwhB,mDAAApD,ICYp6S,MAAAqD,GAAA,CACAC,UAAAvT,EACAwT,KAAA,0CACAC,MAAA,4CAEA,SAAAC,IAAAC,KAAwBA,EAAAnR,MAAAA,EAAAzE,QAAAA,EAAAD,OAAAA,IACxB,MAAA5F,EAAA,IACW6E,GAA6B4W,EAAA9V,SACxC+V,UAAAD,EAAAnR,OAAAA,EACAtB,QAAiB,SAEjBlD,EAAkBJ,GAAiB+V,EAAA9V,QAAAC,EAAAC,GAKnC,OAJAC,IACA9F,EAAA8F,MAAAA,GAGWmT,GAAA9K,cAAmB,OAAUnO,MAAAA,EAAA2b,wBAAA,CAAyC1Y,OAAQqL,GAAoBmN,EAAAlN,QAC7G,CACA,SAAAqN,IAAAH,KAA0BA,EAAA1M,OAAAA,EAAA8M,eAAAA,EAAAC,aAAAA,IAC1B,MAAAC,EAAA,CACAxP,QAAA,QACAyP,UAAA,aACApL,MAAA,OACA5H,QAAA,YACAiT,aAAA,EACAlX,SAAA,GACAC,WAAA,IACAkX,WAAA,UACAjX,WAAA,IACAyW,UAAA,SACAS,eAAA,OACAC,OAAA,aACA,cAAAX,EAAA9V,QACA,CAAgB0W,gBAAA,UAAAvW,MAAAiJ,EAAAuN,OAAA,aAAgEvN,KAChF,CAAgBsN,gBAAAtN,EAAAjJ,MAAA,UAAAwW,OAAA,SAEhBC,EAAA,CAAsBvT,QLyCf,aKxCP,aAAAyS,EAAAe,OAAAzf,KACA,OAAgBkc,GAAA9K,cAAmB,OAAUnO,MAAAuc,GACjCtD,GAAA9K,cAAmB,UAAapR,KAAA,SAAAiD,MAAA+b,EAAAU,QAAAZ,GAAsDJ,EAAAtM,QAElG,YAAAsM,EAAAe,OAAAzf,KAAA,CACA,MAAAwQ,EAAAkO,EAAAe,OAAA9L,KACA,OAAgBuI,GAAA9K,cAAmB,OAAUnO,MAAAuc,GACjCtD,GAAA9K,cAAmB,UAAapR,KAAA,SAAAiD,MAAA+b,EAAAU,QAAA,IAAAX,EAAAvO,IAAkEkO,EAAAtM,OAC9G,CACA,MAAAf,EAAiBlB,GAAOuO,EAAAe,OAAArP,KAExB,OAAAiB,EAIY6K,GAAA9K,cAAmB,OAAUnO,MAAAuc,GACjCtD,GAAA9K,cAAmB,KAAQC,KAAAA,KAAed,GAAuBmO,EAAAe,OAAAjP,QAAAvN,MAAA+b,GAAmCN,EAAAtM,QAJ5F8J,GAAA9K,cAAmB,OAAUnO,MAAAuc,GACjCtD,GAAA9K,cAAmB,UAAapR,KAAA,SAAAiD,MAAA+b,GAA6BN,EAAAtM,OAIzE,CAGA,SAAAuN,IAAAtS,KAA2BA,EAAAsG,KAAAA,EAAA9K,OAAAA,EAAA+W,KAAAA,EAAAd,eAAAA,EAAAC,aAAAA,IAC3B,MAAA3L,EAAAO,EAAAK,SAAA6L,KAAAhd,GAAAA,EAAA1F,MAAAkQ,EAAApN,MAAAmG,SACA,IAAAgN,EACA,YACA,GAAAwM,GAAAE,WACA,OAAe5D,GAAA9K,cAAmB,OAAUnO,MAAA,CAASwM,SAAA,IAAemQ,EAAAE,WAAA1M,EAAA/F,IAEpE,MAAAE,EAAAF,EAAApN,MAAAsN,OAAA,OACAzE,EAAA,YAAAuE,EAAApN,MAAAuN,KACA,OAAY0O,GAAA9K,cAAmB,OAAUnO,MAAA,CAASwM,SAAA,IAAe2D,EAAAC,MAAA/N,IAAAoZ,GAAA,SAAAA,EAAA1e,KAAoDkc,GAAA9K,cAAmBqN,GAAA,CAAiBthB,IAAAuhB,EAAAvhB,IAAAuhB,KAAAA,EAAAnR,MAAAA,EAAAzE,QAAAA,EAAAD,OAAAA,IAAiFqT,GAAA9K,cAAmByN,GAAA,CAAmB1hB,IAAAuhB,EAAAvhB,IAAAuhB,KAAAA,EAAA1M,OAAAnJ,EAAAmJ,OAAA8M,eAAAA,EAAAC,aAAAA,KAChR,CACA,SAAAgB,IAAA1S,KAAyBA,EAAAsG,KAAAA,EAAAiM,KAAAA,IACzB,MAAAnS,EAAAkG,EAAAI,OAAA8L,KAAAjjB,GAAAA,EAAAO,MAAAkQ,EAAApN,MAAAwN,OACA,IAAAA,EACA,YAGA,GAAAmS,GAAAI,YACA,OAAe9D,GAAA9K,cAAoB8K,GAAAgB,SAAc,KAAA0C,EAAAI,YAAAvS,EAAAJ,IACjD,IAAAI,EAAAqB,IACA,YACA,MAAA7L,EAAA,CAAoBuM,QAAA,QAAAqE,MAAA,OAAApE,SAAA,GAUpB,OATAhC,EAAA4E,KACApP,EAAA6Q,OAAA,OACA7Q,EAAAgd,UAAAxS,EAAA4E,KAGApP,EAAA6Q,OAAA,OAEArG,EAAA6E,OACArP,EAAA4P,OAAA,QAA+BpF,EAAA6E,WACpB4J,GAAA9K,cAAmB,OAAUtC,IAAArB,EAAAqB,IAAAoR,IAAA,GAAAjd,MAAAA,GACxC,CAEA,SAAAkd,IAAA9S,KAA0BA,EAAAsG,KAAAA,EAAA9K,OAAAA,EAAA+W,KAAAA,EAAAd,eAAAA,EAAAC,aAAAA,IAC1B,eAAA1R,EAAArN,KACA,OAAgBkc,GAAA9K,cAAmBuO,GAAA,CAAoBtS,KAAAA,EAAAsG,KAAAA,EAAA9K,OAAAA,EAAA+W,KAAAA,EAAAd,eAAAA,EAAAC,aAAAA,IAEvD,aAAA1R,EAAArN,KACA,OAAekc,GAAA9K,cAAmB2O,GAAA,CAAkB1S,KAAAA,EAAAsG,KAAAA,EAAAiM,KAAAA,IAEpD,MAAAQ,EAAA/S,EAAApN,OAAAyM,gBACAqF,EAAAqO,EAAAzM,EAAAI,OAAA8L,KAAAjjB,GAAAA,EAAAO,MAAAijB,QAAArV,EACAuH,EAAAP,GAAAO,MAAA,EACAvD,EAAAgD,GAAAhD,KAAA,EACA9L,EAAkBoM,GAAsBhC,EAAAiF,EAAA,OAAAvH,EAAAgH,GAAAjD,UAAA/D,EAAAgE,GACxCqR,IACAnd,EAAAqc,gBLjCO,WKkCP,MAAAzf,EAAAwN,EAAAxN,SAAAyF,IAAA,CAAAoI,EAAA2S,IAA0DnE,GAAA9K,cAAmB+O,GAE7E,CAEAhjB,IAAAkjB,EAAAhT,KAAAK,EAAAiG,KAAAA,EAAA9K,OAAAA,EAAA+W,KAAAA,EAAAd,eAAAA,EAAAC,aAAAA,KACA,GAAAzM,EAAA,GAKA,MAAAgN,gBAAgBA,KAAAgB,GAA4Brd,EAC5C,OAAgBiZ,GAAA9K,cAAmB,OAAUnO,MAAA,CAC7CwM,SAAA,EACA6P,qBACAvN,GAAAjD,IAAsCD,GAA4BkD,EAAAjD,IAAAC,GAAA,KAEtDmN,GAAA9K,cAAmB,OAAUnO,MAAA,IACzCqd,EACAC,eAAA,QAA4CjO,OAC5CkO,qBAAA,QAAkDlO,SAC/BzS,GACnB,CACA,OAAWqc,GAAA9K,cAAmB,OAAUnO,MAAAA,GAAcpD,EACtD,CAUO,SAAA4gB,IAAA9M,KAAuBA,EAAA7B,OAAAA,EAAA4O,cAAAA,EAAAC,YAAAA,GAAA,EAAA7B,eAAAA,EAAAC,aAAAA,IAC9B,MAAA9b,EAAA,CACA2d,SAAA,WACA3B,UAAA,aACA4B,SAAA,SACAvB,gBAAAxN,EAAAjJ,OAAAkJ,WACAoN,WL9IO,8EK+IPpW,MAAA+I,EAAAjJ,OAAAa,KACAwV,aAAApN,EAAAoN,aAAA,EAAApN,EAAAoN,kBAAAnU,EACA+V,UAAAhP,EAAAgP,WAAA,SAAAhP,EAAAgP,UAAAhP,EAAAgP,eAAA/V,EACAgW,WAAA,qBAMA,OAJApN,EAAAG,SACA7Q,EAAA6Q,OAAAH,EAAAG,OACA7Q,EAAA+d,UAAA,QAEY9E,GAAA9K,cAAmB,OAAUnO,MAAAA,GACjCiZ,GAAA9K,cAAmB,OAAUjU,IAAAwW,EAAAxW,IAAA8F,MAAA0d,EAAA,CAAsCM,UAAA,gDAAmFlW,GAClJmR,GAAA9K,cAAmB+O,GAAA,CAAmB9S,KAAAsG,EAAAvF,OAAAuF,KAAAA,EAAA9K,OAAAiJ,EAAAjJ,OAAA+W,KAAAc,EAAA5B,eAAAA,EAAAC,aAAAA,GAAA,MAAmJ,MACrM,CACA,SAAAmC,IAAApC,eAAuBA,IACvB,OAAY5C,GAAA9K,cAAmB,UAAapR,KAAA,8BAAA0f,QAAAZ,EAAA7b,MAAA,CAC5C2d,SAAA,WACA/Q,IAAA,GACAC,MAAA,GACA+D,MAAA,GACAC,OAAA,GACA7H,QAAA,EACAsT,OAAA,OACAL,aAAA,MACAnN,WAAA,4BACA+O,UAAA,mCACA/X,MAAA,UACAf,SAAA,GACAE,WAAA,EACAmX,OAAA,YACW,IACX,CAKA,SAAA8B,GAAArP,EAAA+B,GACA,MAAAK,UAAYA,GAAYpC,EACxB7O,EAAA,CACA2d,SAAA,QACA3B,UAAA,aACAmC,SAAkBnN,GAAgBC,GAClCmN,UAAmBpN,GAAgBC,GAGnCoN,cAAA,QAEA,GAAAzN,EAAA,CACA5Q,EAAA4Q,MAAAA,EACA,MAAAhV,EAAAqV,EAAArV,EACA,SAAAA,EACAoE,EAAA+M,KAAAkE,EAAAC,OACA,UAAAtV,EACAoE,EAAA6M,MAAAoE,EAAAC,OAEAlR,EAAA+M,KAAA,KACA,MAGA/M,EAAA+M,KAAAkE,EAAAC,OACAlR,EAAA6M,MAAAoE,EAAAC,OAEA,QAAAD,EAAAnV,EACAkE,EAAA4M,IAAAqE,EAAAC,OACA,WAAAD,EAAAnV,EACAkE,EAAA8M,OAAAmE,EAAAC,OAEAlR,EAAA4M,IAAA,MACA,MAAA0R,EAAA1N,GAAA,WAAAK,EAAArV,EAAA,WACA2iB,EAAA,WAAAtN,EAAAnV,EAAA,WACA,MAAAwiB,GAAA,MAAAC,IACAve,EAAAwe,UAAA,aAAuCF,MAAOC,MAC9C,MAAAE,EAAArD,GAAAvM,EAAAmP,WAMA,OALAS,IACAze,EAAAge,UAAAS,GAGAze,EAAA8d,WAAA,mBACA9d,CACA,CACO,SAAA0e,IAAA7P,OAA0BA,EAAA8P,KAAAA,EAAA,OAAA9C,eAAAA,EAAA4B,cAAAA,IAGjC,MAAAmB,EAAAC,GAAkC3M,GAAQ,MAItCK,GAAS,KACL9B,GAAoB5B,GAAA6F,QAAA7Y,GAAAA,EAAAiV,OAAA4D,QAAA,EAA4C7I,UACxEA,KACA,IAAAiT,OAAAjT,IAAAA,OAEK,CAAAgD,IACL,MAAA8B,EAAkBF,GAAoB5B,GACtC,OAAA8B,EAAA1W,OACA,YACA,MAAAyW,EAAAC,EAAAiM,KAAA/gB,GAAAA,EAAA3B,MAAA0kB,IHsEO,SAAA/P,EAAA8B,GACP,OAAAA,EAAAiM,KAAA/gB,GAAAA,EAAA3B,MAAA2U,EAAAkQ,YAAApO,EAAA,EACA,CGxEyDqO,CAAWnQ,EAAA8B,GAGpE+M,EAAA,OAAAkB,EACA,eAAAD,EACA,OAAgB1F,GAAA9K,cAAmB,OAAUnO,MAAA,CAC7C2d,SAAA,WACA/M,MAAAF,EAAAE,OAAA,OACAkN,WAAA,qBAEY7E,GAAA9K,cAAmB,aAAgBzH,IACnCuS,GAAA9K,cAAmBqP,GAAA,CAAgB9M,KAAAA,EAAA7B,OAAAA,EAAA4O,cAAAA,EAAAC,YAAAA,EAAA7B,eAAAA,EAAAC,aAAA+C,KAE/C,MAAAI,EAAApQ,EAAAoQ,QACA,OAAYhG,GAAA9K,cAAoB8K,GAAAgB,SAAc,KACtChB,GAAA9K,cAAmB,aAAgBzH,IAC3CuY,GAEQhG,GAAA9K,cAAmB,OAAUnO,MAAA,CACrC2d,SAAA,QACAuB,MAAA,EACA7C,gBAAA4C,EAAAnZ,MACAqZ,QAAAF,EAAAE,QACAnB,UAAA,4CACAK,cAAA,QACa5B,QAAAZ,IACL5C,GAAA9K,cAAmB,OAAUnO,MAAAke,GAAArP,EAAA6B,EAAAE,QACzBqI,GAAA9K,cAAmBqP,GAAA,CAAgB9M,KAAAA,EAAA7B,OAAAA,EAAA4O,cAAAA,EAAAC,YAAAA,EAAA7B,eAAAA,EAAAC,aAAA+C,IACnC5F,GAAA9K,cAAmB8P,GAAA,CAAgBpC,eAAAA,KAC/C,CC7QO,MAAMuD,GAAwBC,IACnC,MAAM7Q,EJoFD,SAAA6Q,GACP,IAAAvW,EACA,IACAA,EAAAiD,KAAAuT,MAAAD,EACA,CACA,MACA,WACA,CACA,oBAAAvW,GAAA,OAAAA,EACA,YACA,MAAAyW,EAAAzW,EACA,GAA8B,IAA9ByW,EAAApG,QACA,YACA,MAAAtK,EAAA0Q,EAAA1Q,OACA,uBAAAA,GAAA,OAAAA,EACA,KACA9U,MAAAC,QAAA6U,EAAA8B,QAAA,IAAA9B,EAAA8B,MAAA1W,OAEA,CAAakf,QAAS,EAAiBtK,OAAA,IAAYA,EAAAjJ,OAAAgJ,GAAAC,KADnD,IAEA,CIvGiB2Q,CAAkBH,GACjC,OAAK7Q,EAI8C,IAA/CiC,GAAqBjC,EAAOK,QAAQ5U,OAC/B,KAGFuU,EAAOK,OAPL,MCXX,IAAI4Q,GAAoC,KCFjC,MAAMC,GAA2C,WAC3CC,GAA+C,WAE/CC,GAAqD,gBCE3D,SAASC,GAAsB7c,EAAqB8c,GACzD,OAAO,SAAUC,GACXA,EAASC,iBAAiB/J,SAASjT,IAIvC8c,EAAaC,EACf,CACF,CCiDA,MAAAE,GAAA,CACEJ,GAAsBH,GA/CxB,SAA6BK,GAC3BA,EAASG,kBAAkBR,GAAsB,CAAES,QAAS,OAC9D,GA8CEN,GAAsB,MAxCxB,SAAwBE,GACtB,MAAMK,EAAWL,EAASG,kBACxB,MACA,CAAEC,QAAS,KAAyBE,eAAe,IAErDD,EAASE,YAAY,cAAe,cAAe,CAAEC,QAAQ,IAC7DH,EAASE,YAAY,OAAQ,OAAQ,CAAEC,QAAQ,IAC/CH,EAASE,YAAY,OAAQ,OAAQ,CAAEC,QAAQ,GACjD,GAiCEV,GAAsBF,GA3BxB,SAA+BI,GACPA,EAASG,kBAC7BP,GACA,CAAEQ,QAAS,KAAyBE,eAAe,IAEvCC,YAAY,OAAQ,OAAQ,CAAEC,QAAQ,GACtD,GAsBEV,GAAsBD,GAhBxB,SAAkCG,GAChC,MACMS,EAA4C,SAG5CC,EAAQV,EAASG,kBAAkBN,GACvC,CAAEO,QALsC,WAK7BE,eAAe,IAE5BI,EAAMH,YAAYE,EAAaA,EAAa,CAAED,QAAQ,EAAOG,YAAY,IACzED,EAAMH,YANsD,UAMN,CAAEC,QAAQ,EAAOG,YAAY,GACrF,IC3De,MAAMC,GACnB,OAAIC,GACF,OAAOX,EACT,ECHa,MAAMY,GAInB,WAAAtjB,CACEujB,EACAC,EAAgC,IAAIJ,IAEpC/mB,KAAKknB,GAAKA,EACVlnB,KAAKmnB,kBAAoBA,CAC3B,CAEA,eAAAC,GACEpnB,KAAKqnB,oBAAoBrnB,KAAKmnB,kBAAkBH,IAClD,CAEA,mBAAAK,CAAoBC,GAClBA,EAAexM,QAASyM,IACtBA,EAAUvnB,KAAKknB,KAEnB,ECZF,SAASM,GAAgBrB,EAAuBrf,GAC9C2gB,QAAQC,KAAK,kBAAmB5gB,GAChCqf,EAASwB,OACX,CAEA,IAAIC,GAyBJ,SAASC,GAAuBC,GAC9B,OAxBKF,KACHA,GAAkB,IAAIxd,QAAqB,CAACE,EAASyd,KACnD,MAAMC,EAA4BC,UAAUC,KAAK,sBAAuB,GACxEF,EAAQG,UAAarhB,IACnB,MAAMqf,EAAyBrf,EAAM6M,OAAyCyU,OAC9EjC,EAASqB,gBAAkBA,GAAgBnd,KAAK,KAAM8b,EAAU4B,GAChEzd,EAAQ6b,IAGV6B,EAAQK,QAAU,IAAMN,EAAOC,EAAQM,OAEvCN,EAAQO,gBAAmBzhB,IACzB,MAAMqf,EAAyBrf,EAAM6M,OAAyCyU,OAC9EjC,EAASqB,gBAAkBA,GAAgBnd,KAAK,KAAM8b,EAAU4B,GAEtC,IAAId,GAAkBd,GAC9BiB,sBAIjBQ,IAIcxf,KAAM+d,GAAa,IAClC/b,QAAQ,CAACE,EAASyd,IAAWD,EAAS3B,EAAU7b,EAASyd,IAEjE,CAgHO,MAAeS,GAGpB,IAAAC,CAAK3nB,GACH,OAAO+mB,GAAuB,CAAC1B,EAAuB7b,EAAcyd,KAClE,MAAMC,EAAU7B,EAASuC,YAAY,CAAC1oB,KAAKoJ,MAAO,aAAauf,YAAY3oB,KAAKoJ,MAAM0W,IAAIhf,GAC1FknB,EAAQG,UAAY,KAClB7d,EAAQxJ,IAEVknB,EAAQK,QAAU,KAChBN,EAAOC,EAAQM,UAEhBlgB,KAAMtH,GACAd,KAAK4oB,SAASxgB,KAAMygB,IACzB,GAAI1oB,MAAMC,QAAQyoB,GAAQ,CACxB,MAAMC,EAAMD,EAAMpgB,IAAK1I,GAAMA,EAAEgpB,IAAI5jB,KAAK,CAACrF,EAAG4C,IACtC5C,GAAK4C,EAAU,EACZ5C,EAAI4C,EAAI,GAAK,GAEtB,GAAIomB,EAAIzoB,OAASL,KAAKgpB,SACpB,OAAO5e,QAAQ4c,IAAI8B,EAAItiB,MAAMxG,KAAKgpB,UAAUvgB,IAAKsgB,GAAO/oB,KAAKgc,OAAO+M,KAAM3gB,KAAK,IAAMtH,EAEzF,CACA,OAAOA,IAGb,CAEA,OAAOR,GACL,OAAOunB,GAAuB,CAAC1B,EAAuB7b,EAAcyd,KAClE,MAAMC,EAAU7B,EAASuC,YAAY,CAAC1oB,KAAKoJ,MAAO,aAAauf,YAAY3oB,KAAKoJ,MAAM4S,OAAO1b,GAC7F0nB,EAAQG,UAAY,KAClB7d,EAAQ0d,EAAQI,SAElBJ,EAAQK,QAAU,KAChBN,EAAOC,EAAQM,SAGrB,CAEA,MAAAM,GACE,OAAOf,GAAuB,CAAC1B,EAAuB7b,EAAcyd,KAClE,MAAMK,EAAgB,GAChB5F,EAAS2D,EAASuC,YAAY1oB,KAAKoJ,MAAMuf,YAAY3oB,KAAKoJ,MAAM6f,aACtEzG,EAAO2F,UAAae,IAClB,MAAMC,EAAgBD,EAAGvV,OAAeyU,OACpCe,GACEA,EAAavoB,OACfwnB,EAAOrjB,KAAKokB,EAAavoB,OAE3BuoB,EAAaC,YAEb9e,EAAQ8d,IAGZ5F,EAAO6F,QAAU,KACfN,EAAOvF,EAAO8F,SAGpB,EAzKsBlf,GA4Me0c,GA5MvC,IAAwB1c,GA6MjB,MAAMigB,GAAM,IAjCZ,cAAqBb,GAA5B,WAAA7kB,uBACY3D,KAAAoJ,KAAO,MACPpJ,KAAAgpB,SAAW,IACXhpB,KAAAspB,YAA+B,oBAATC,MAAwBA,KAAKC,aAAgB,SAAW,SAgB1F,CAfE,GAAA1J,CAAI3c,EAAcsmB,EAAcC,GAC9B,MAAM5oB,EAAW,CACfqC,OACAmmB,YAAatpB,KAAKspB,YAClBG,QAAS,GAAGA,IACZE,KAAM,IAAIC,MAQZ,OANIH,aAAmBI,QACrB/oB,EAAIgpB,MAAQL,EAAQK,OAElBJ,IACF5oB,EAAI4oB,WAAaA,GAEZ1pB,KAAKyoB,KAAK3nB,EACnB,GC3OIipB,ID2PiB,IAbhB,cAAyBvB,GAAhC,WAAA7kB,uBACY3D,KAAAoJ,KAAO2c,GACP/lB,KAAAgpB,SAAW,EAOvB,CANE,GAAAlJ,CAAIuJ,GACF,OAAOrpB,KAAKyoB,KAAK,IACZY,EACHM,KAAM,IAAIC,MAEd,GCtPwC,CACxCtB,MAAO,EACPZ,KAAM,EACNsC,MAAO,IAGT,IAAIC,GAAa,EAcjB,MAAMC,GAAkB,CACtB,QAAAC,CAASC,GACFL,GAAOK,KACVA,EAAQ,SAEVH,GAAaF,GAAOK,EACtB,EACA,KAAAC,CAAMlnB,EAAkBsmB,EAAcC,GAMpC,MALa,UAATvmB,EACFnD,KAAKsoB,MAAMmB,GAEXzpB,KAAK0nB,KAAK+B,GAELJ,GAAWvJ,IAAI3c,EAAMsmB,EAASC,EACvC,GAGFjpB,OAAOgP,KAAKsa,IAAQjP,QAASwP,IAC3B,MAAMC,EAAcR,GAAOO,GAC3BJ,GAAOI,GAAa,IAAIE,KAClBD,GAAeN,KACjBxC,QAAQgD,eAAeH,GACvB7C,QAAQC,KAAK,MAAO8C,GACpB/C,QAAQiD,MAAM,SACdjD,QAAQkD,eCjCP,MAAMC,GAeH,cAAAC,GACuB,IAAzB7qB,KAAK8qB,kBACP9qB,KAAK+qB,uBAAyBpiB,SAAS6C,KAAKpF,MAAM4d,SAClDrb,SAAS6C,KAAKpF,MAAM4d,SAAW,UAEjChkB,KAAK8qB,iBAAmB,CAC1B,CAEQ,gBAAAE,GACNhrB,KAAK8qB,gBAAkBtgB,KAAK+D,IAAI,EAAGvO,KAAK8qB,gBAAkB,GAC7B,IAAzB9qB,KAAK8qB,iBAAyD,OAAhC9qB,KAAK+qB,yBACrCpiB,SAAS6C,KAAKpF,MAAM4d,SAAWhkB,KAAK+qB,uBACpC/qB,KAAK+qB,uBAAyB,KAElC,CAEA,WAAApnB,CAAYsnB,GA5BJjrB,KAAAkrB,oBAAqB,EAEZlrB,KAAAmrB,aAAe,IAAI5O,IAEnBvc,KAAAorB,cAAgB,IAAI7O,IAE7Bvc,KAAAqrB,wBAAyB,EAEzBrrB,KAAA8qB,gBAAkB,EAElB9qB,KAAA+qB,uBAAwC,KAmB9C/qB,KAAKirB,GAAKA,CACZ,CAEO,SAAMK,GACX,MAAML,GAAEA,GAAOjrB,WAETirB,EAAGM,IAAIC,yBAEbxrB,KAAKkrB,yBAA2BD,EAAGjiB,KAAKyiB,wBAExC,MAAMC,QAAkBT,EAAGM,IAAII,uBAETvhB,QAAQwhB,WAAWF,EAAUjjB,IAAKojB,GAAa7rB,KAAK8rB,aAAaD,MAC/E/Q,QAAQ,CAACsN,EAAQ5E,KACD,aAAlB4E,EAAO2D,QACT7B,GAAO5B,MAAMF,EAAO4D,OAAQ,6BAA6BN,EAAUlI,GAAOyI,WAI9EjsB,KAAKksB,wBACLlsB,KAAKmsB,6BAEClB,EAAGjiB,KAAKojB,uBAAsB,EACtC,CAEQ,kBAAMN,CAAaD,GAEzB,UADyB7rB,KAAKqsB,qBAAqBR,GAEjD,OAGF,GAAIA,EAASS,uBASX,aRnEAzG,KAIA0G,eAAe1rB,IAAIU,IACrBskB,GAAczb,QAAQE,UACfub,KAGTA,GAAc,IAAIzb,QAAc,CAACE,EAASyd,KACxC,IAAIyE,EAAY,EAEhB,MAAMC,EAAQnE,IACZoE,OAAO7S,aAAa2S,GACpB3G,GAAc,KACdkC,EAAOO,IAGTkE,EAAYE,OAAOniB,WAAW,KAC5BkiB,EAAK,IAAI5C,MAAM,6CAA6CtoB,uBAnC7B,KAsCjC,MAAMorB,EAAShkB,SAAS4L,cAAc,UACtCoY,EAAOxpB,KAAO,SACdwpB,EAAO1a,IAAM3Q,EACbqrB,EAAOtE,QAAU,KACfoE,EAAK,IAAI5C,MAAM,oDAAoDvoB,OAErEqH,SAASikB,KAAK1Y,YAAYyY,GAE1BJ,eAAeM,YAAYtrB,GAA+B6G,KAAK,KAC7DskB,OAAO7S,aAAa2S,GACpBliB,QAIGub,WQ0BH7lB,KAAKmrB,aAAa3O,IAAIqP,EAASI,KAAM,CACnCa,MAAOjB,EACP/V,KAAM,oBACNiX,SAAUlB,EAASS,yBAKvB,IAAKT,EAASmB,wBAKZ,YAJA9C,GAAO5B,MACL,IAAIuB,MAAM,2BACV,cAAcgC,EAASI,6DAK3B,MAAM1iB,QAAgBvJ,KAAKirB,GAAGM,IAAI0B,oBAAoBpB,EAASmB,yBACzDpY,EAAS4Q,GAAqBjc,EAAQkc,MACvC7Q,EASL5U,KAAKmrB,aAAa3O,IAAIqP,EAASI,KAAM,CAAEa,MAAOjB,EAAU/V,KAAM,UAAWlB,WAPvEsV,GAAO5B,MACL,IAAIuB,MAAM,oCACV,cAAcgC,EAASI,qEAM7B,CAEQ,oBAAAE,GACNnsB,KAAKktB,iCAEL,MAAMC,EAA4C,GAElDntB,KAAKmrB,aAAarQ,QAAQ,CAACsS,EAAQnB,KAC7BjsB,KAAKqtB,mBAAmBD,EAAON,QACjCK,EAASpoB,KAAK,CAACknB,EAAMmB,MAIzBD,EAASrS,QAAQ,EAAEmR,EAAMmB,MACvBptB,KAAKstB,WAAWF,GAChBptB,KAAKmrB,aAAanP,OAAOiQ,IAE7B,CAEQ,8BAAAiB,GACNltB,KAAKorB,cAActQ,QAAQ,EAAG0R,YAAWY,UAAUnB,KAC7CjsB,KAAKqtB,mBAAmBD,EAAON,SAInCJ,OAAO7S,aAAa2S,GACpBxsB,KAAKorB,cAAcpP,OAAOiQ,GAC1BjsB,KAAKmrB,aAAa3O,IAAIyP,EAAMmB,KAEhC,CAEQ,qBAAAlB,GACN,GAAIlsB,KAAKqrB,uBACP,OAGFrrB,KAAKqrB,wBAAyB,EAE9B,MAAMkC,EAAa,IAAYvtB,KAAKmsB,uBAE9BqB,EAAOd,OAAiDe,WAC9D,GAAID,GAAuC,mBAAzBA,EAAI/mB,iBAEpB,YADA+mB,EAAI/mB,iBAAiB,qBAAsB8mB,GAI7Cb,OAAOjmB,iBAAiB,WAAY8mB,GACpCb,OAAOjmB,iBAAiB,aAAc8mB,GAItC,IAAIG,EAAWhB,OAAOiB,SAASnZ,KAC/BkY,OAAOkB,YAAY,KACblB,OAAOiB,SAASnZ,OAASkZ,IAC3BA,EAAWhB,OAAOiB,SAASnZ,KAC3B+Y,MAED,IACL,CAEQ,0BAAMlB,CAAqBR,GAOjC,aANyCzhB,QAAQ4c,IAAI,CACnDhnB,KAAK6tB,qCAAqChC,GAC1C7rB,KAAK8tB,oCAAoCjC,GACzC7rB,KAAK+tB,uCAAuClC,MAG5B3b,MAAO8d,GAAcA,EACzC,CAEQ,kBAAAX,CAAmBxB,GACzB,OAAO7rB,KAAKiuB,wCAAwCpC,EACtD,CAEQ,oCAAAgC,CAAqChC,GAC3C,MAAQqC,YAAaC,GAAetC,EAE9BuC,EAAapuB,KAAKirB,GAAGoD,gBAAgBD,WAC3C,MAAmB,QAAfD,GAIGA,IAAeC,CACxB,CAEQ,yCAAMN,CAAoCjC,GAChD,MAAMyC,UAAEA,EAASrC,KAAEA,GAASJ,EAE5B,GAAkB,SAAdyC,EAAsB,CAExB,cADoBtuB,KAAKirB,GAAGjiB,KAAKulB,qBACnBtgB,SAASge,EACzB,CAEA,MAAkB,qBAAdqC,GACiE,OAA5DE,eAAeC,QAAQzuB,KAAK0uB,qBAAqBzC,GAI5D,CAEQ,uCAAAgC,CAAwCpC,GAC9C,MAAQ8C,eAAgBC,GAAkB/C,EAC1C,OAAK+C,IAIwB,IAAzBA,EAAcvuB,QAIXuuB,EAAc3gB,SAASye,OAAOiB,SAASkB,UAChD,CAEQ,sCAAAd,CAAuClC,GAC7C,MAAQiD,cAAeC,GAAiBlD,EAExC,MAAqB,QAAjBkD,GACM/uB,KAAKkrB,mBAGM,cAAjB6D,GACK/uB,KAAKkrB,kBAIhB,CAEQ,iBAAM8D,CAAYnD,GACxB7rB,KAAKirB,GAAGM,IAAI0D,qBAAqBpD,EAASI,KAAM,GAAGiD,MAAO5G,IACxD4B,GAAO5B,MAAMA,EAAO,+CAA+CuD,EAASI,WAE9E,MAAMqC,UAAEA,EAASrC,KAAEA,GAASJ,EAEV,SAAdyC,EAKc,qBAAdA,GACFE,eAAeW,QAAQnvB,KAAK0uB,qBAAqBzC,GAAO,WALlDjsB,KAAKirB,GAAGjiB,KAAKomB,iBAAiBnD,EAOxC,CAEQ,oBAAAyC,CAAqBzC,GAC3B,MAAO,GAAG5qB,WAAqC4qB,GACjD,CAEQ,UAAAqB,CAAWF,GACjB,MAAMvB,EAAWuB,EAAON,MAExB9sB,KAAKirB,GAAGM,IAAI0D,qBAAqBpD,EAASI,KAAM,GAAGiD,MAAO5G,IACxD4B,GAAO5B,MAAMA,EAAO,gDAAgDuD,EAASI,WAG/E,MAAMO,EAAYE,OAAOniB,WAAW,KAClCvK,KAAKorB,cAAcpP,OAAO6P,EAASI,MAKnC,MAAMoD,EAAO1mB,SAAS4L,cAAc,OACpC8a,EAAKtG,GAAK,GAAG1nB,KAA+BwqB,EAASI,OACrDoD,EAAKjpB,MAAM2d,SAAW,QACtBsL,EAAKjpB,MAAMkf,MAAQ,IACnB+J,EAAKjpB,MAAMkpB,OAAS5pB,OlB9QQ,YkB+Q5B2pB,EAAKjpB,MAAMqe,cAAgB,OAC3B9b,SAAS6C,KAAK0I,YAAYmb,GAE1B,MAAME,EAASF,EAAKG,aAAa,CAAEzK,KAAM,SACnC0K,EAAY9mB,SAAS4L,cAAc,OACzCgb,EAAOrb,YAAYub,GAInB,MAAMC,EAAwB,sBAAhBtC,EAAOtX,QAAkCsX,EAAOxY,OAAOyQ,QACjEqK,GACF1vB,KAAK6qB,iBAGP,MAAM8E,EAAa,KACbD,GACF1vB,KAAKgrB,mBAEPqE,EAAKO,SACL5vB,KAAKirB,GAAG4E,cAAc,iBAAkB,CAAE5D,KAAMJ,EAASI,QAGvC,sBAAhBmB,EAAOtX,KAGT9V,KAAK8vB,uBAAuBL,EAAWrC,EAAOL,SAAU4C,GT3QlC,EAC5BF,EACAxa,EACAgN,KAEAtY,EACEiB,GAACka,GAAc,CACb7P,OAAQA,EACR8P,KAAK,OACL9C,eAAgBA,IAElBwN,ISoQIM,CAAeN,EAAWrC,EAAOxY,OAAQ+a,GAG3C3vB,KAAKgvB,YAAYnD,GAAUqD,MAAO5G,IAChC4B,GAAO5B,MAAMA,EAAO,6BAA6BuD,EAASI,oBAE5DjsB,KAAKirB,GAAG4E,cAAc,iBAAkB,CAAE5D,KAAMJ,EAASI,QACvC,IAAjBJ,EAASmE,OAEZhwB,KAAKorB,cAAc5O,IAAIqP,EAASI,KAAM,CAAEO,YAAWY,UACrD,CAEQ,sBAAA0C,CAAuBL,EAAwB1C,EAAkB9K,GACvE,MAAMgO,EAAWtnB,SAAS4L,cAAc,OACxC0b,EAAS7pB,MAAM2d,SAAW,WAC1BkM,EAAS7pB,MAAMkf,MAAQ,IACvB2K,EAAS7pB,MAAM8O,WAAa,qBAC5B+a,EAAS7pB,MAAMqe,cAAgB,OAC/BwL,EAAS7pB,MAAMuM,QAAU,OACzBsd,EAAS7pB,MAAMuJ,WAAa,SAC5BsgB,EAAS7pB,MAAMwJ,eAAiB,SAChCqgB,EAAS7pB,MAAMgJ,QAAU,OACzB6gB,EAAS7pB,MAAMgc,UAAY,aAC3B6N,EAASxpB,iBAAiB,QAAUK,IAC9BA,EAAM6M,SAAWsc,GACnBhO,MAIJ,MAAMiO,EAASvnB,SAAS4L,cAAchT,GACtC2uB,EAAOnD,SAAWA,EAGlBmD,EAAOtpB,aAAa,cAAe,IACnCspB,EAAOzpB,iBAAiB,YAAawb,GAErCgO,EAAS/b,YAAYgc,GACrBT,EAAUvb,YAAY+b,EACxB","sources":["webpack://web-push-notifications/webpack/universalModuleDefinition","webpack://web-push-notifications/webpack/bootstrap","webpack://web-push-notifications/webpack/runtime/define property getters","webpack://web-push-notifications/webpack/runtime/hasOwnProperty shorthand","webpack://web-push-notifications/webpack/runtime/make namespace object","webpack://web-push-notifications/./src/widgets/WebPopups/constants.ts","webpack://web-push-notifications/./node_modules/preact/dist/preact.module.js","webpack://web-push-notifications/./node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js","webpack://web-push-notifications/./node_modules/smart-blocks-utils/dist/views/WebPopup/constants.js","webpack://web-push-notifications/./node_modules/smart-blocks-utils/dist/views/WebPopup/layout.js","webpack://web-push-notifications/./node_modules/smart-blocks-utils/dist/views/WebPopup/helpers.js","webpack://web-push-notifications/./node_modules/preact/hooks/dist/hooks.module.js","webpack://web-push-notifications/./node_modules/preact/compat/dist/compat.module.js","webpack://web-push-notifications/./node_modules/smart-blocks-utils/dist/views/WebPopup/WebPopupReader.js","webpack://web-push-notifications/./src/widgets/WebPopups/renderer.tsx","webpack://web-push-notifications/./src/widgets/WebPopups/subscriptionFormsWidgetLoader.ts","webpack://web-push-notifications/./src/modules/storage/migrations/constants.ts","webpack://web-push-notifications/./src/modules/storage/migrations/helpers.ts","webpack://web-push-notifications/./src/modules/storage/migrations/initial.ts","webpack://web-push-notifications/./src/modules/storage/migrations/Migrations.ts","webpack://web-push-notifications/./src/modules/storage/migrations/MigrationExecutor.ts","webpack://web-push-notifications/./src/core/storage.ts","webpack://web-push-notifications/./src/core/logger.ts","webpack://web-push-notifications/./src/widgets/WebPopups/WebPopupsWidget.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(this, () => {\nreturn ","// The require scope\nconst __webpack_require__ = {};\n\n","// define getter/value functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tif(Array.isArray(definition)) {\n\t\tvar i = 0;\n\t\twhile(i < definition.length) {\n\t\t\tvar key = definition[i++];\n\t\t\tvar binding = definition[i++];\n\t\t\tif(!__webpack_require__.o(exports, key)) {\n\t\t\t\tif(binding === 0) {\n\t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, value: definition[i++] });\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: binding });\n\t\t\t\t}\n\t\t\t} else if(binding === 0) { i++; }\n\t\t}\n\t} else {\n\t\tfor(var key in definition) {\n\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t\t}\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export const WEB_POPUPS_WIDGET_NAMESPACE = 'pushwoosh-web-popups';\n\nexport const POPUP_HOST_Z_INDEX = 2147483647;\n\nexport const SUBSCRIPTION_FORMS_WIDGET_URL = 'https://cdn.pushwoosh.com/subscription-forms/widget.js';\n\nexport const SUBSCRIPTION_FORMS_WIDGET_TAG = 'pushwoosh-subscribe-widget';\n","var n,l,u,t,i,r,o,e,f,c,a,s,h,p,v,y,d={},w=[],_=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,g=Array.isArray;function m(n,l){for(var u in l)n[u]=l[u];return n}function b(n){n&&n.parentNode&&n.parentNode.removeChild(n)}function k(l,u,t){var i,r,o,e={};for(o in u)\"key\"==o?i=u[o]:\"ref\"==o?r=u[o]:e[o]=u[o];if(arguments.length>2&&(e.children=arguments.length>3?n.call(arguments,2):t),\"function\"==typeof l&&null!=l.defaultProps)for(o in l.defaultProps)void 0===e[o]&&(e[o]=l.defaultProps[o]);return x(l,e,i,r,null)}function x(n,t,i,r,o){var e={type:n,props:t,key:i,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:null==o?++u:o,__i:-1,__u:0};return null==o&&null!=l.vnode&&l.vnode(e),e}function M(){return{current:null}}function S(n){return n.children}function C(n,l){this.props=n,this.context=l}function $(n,l){if(null==l)return n.__?$(n.__,n.__i+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return\"function\"==typeof n.type?$(n):null}function I(n){if(n.__P&&n.__d){var u=n.__v,t=u.__e,i=[],r=[],o=m({},u);o.__v=u.__v+1,l.vnode&&l.vnode(o),q(n.__P,o,u,n.__n,n.__P.namespaceURI,32&u.__u?[t]:null,i,null==t?$(u):t,!!(32&u.__u),r),o.__v=u.__v,o.__.__k[o.__i]=o,D(i,o,r),u.__e=u.__=null,o.__e!=t&&P(o)}}function P(n){if(null!=(n=n.__)&&null!=n.__c)return n.__e=n.__c.base=null,n.__k.some(function(l){if(null!=l&&null!=l.__e)return n.__e=n.__c.base=l.__e}),P(n)}function A(n){(!n.__d&&(n.__d=!0)&&i.push(n)&&!H.__r++||r!=l.debounceRendering)&&((r=l.debounceRendering)||o)(H)}function H(){try{for(var n,l=1;i.length;)i.length>l&&i.sort(e),n=i.shift(),l=i.length,I(n)}finally{i.length=H.__r=0}}function L(n,l,u,t,i,r,o,e,f,c,a){var s,h,p,v,y,_,g,m=t&&t.__k||w,b=l.length;for(f=T(u,l,m,f,b),s=0;s<b;s++)null!=(p=u.__k[s])&&(h=-1!=p.__i&&m[p.__i]||d,p.__i=s,_=q(n,p,h,i,r,o,e,f,c,a),v=p.__e,p.ref&&h.ref!=p.ref&&(h.ref&&J(h.ref,null,p),a.push(p.ref,p.__c||v,p)),null==y&&null!=v&&(y=v),(g=!!(4&p.__u))||h.__k===p.__k?(f=j(p,f,n,g),g&&h.__e&&(h.__e=null)):\"function\"==typeof p.type&&void 0!==_?f=_:v&&(f=v.nextSibling),p.__u&=-7);return u.__e=y,f}function T(n,l,u,t,i){var r,o,e,f,c,a=u.length,s=a,h=0;for(n.__k=new Array(i),r=0;r<i;r++)null!=(o=l[r])&&\"boolean\"!=typeof o&&\"function\"!=typeof o?(\"string\"==typeof o||\"number\"==typeof o||\"bigint\"==typeof o||o.constructor==String?o=n.__k[r]=x(null,o,null,null,null):g(o)?o=n.__k[r]=x(S,{children:o},null,null,null):void 0===o.constructor&&o.__b>0?o=n.__k[r]=x(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):n.__k[r]=o,f=r+h,o.__=n,o.__b=n.__b+1,e=null,-1!=(c=o.__i=O(o,u,f,s))&&(s--,(e=u[c])&&(e.__u|=2)),null==e||null==e.__v?(-1==c&&(i>a?h--:i<a&&h++),\"function\"!=typeof o.type&&(o.__u|=4)):c!=f&&(c==f-1?h--:c==f+1?h++:(c>f?h--:h++,o.__u|=4))):n.__k[r]=null;if(s)for(r=0;r<a;r++)null!=(e=u[r])&&0==(2&e.__u)&&(e.__e==t&&(t=$(e)),K(e,e));return t}function j(n,l,u,t){var i,r;if(\"function\"==typeof n.type){for(i=n.__k,r=0;i&&r<i.length;r++)i[r]&&(i[r].__=n,l=j(i[r],l,u,t));return l}n.__e!=l&&(t&&(l&&n.type&&!l.parentNode&&(l=$(n)),u.insertBefore(n.__e,l||null)),l=n.__e);do{l=l&&l.nextSibling}while(null!=l&&8==l.nodeType);return l}function F(n,l){return l=l||[],null==n||\"boolean\"==typeof n||(g(n)?n.some(function(n){F(n,l)}):l.push(n)),l}function O(n,l,u,t){var i,r,o,e=n.key,f=n.type,c=l[u],a=null!=c&&0==(2&c.__u);if(null===c&&null==e||a&&e==c.key&&f==c.type)return u;if(t>(a?1:0))for(i=u-1,r=u+1;i>=0||r<l.length;)if(null!=(c=l[o=i>=0?i--:r++])&&0==(2&c.__u)&&e==c.key&&f==c.type)return o;return-1}function z(n,l,u){\"-\"==l[0]?n.setProperty(l,null==u?\"\":u):n[l]=null==u?\"\":\"number\"!=typeof u||_.test(l)?u:u+\"px\"}function N(n,l,u,t,i){var r,o;n:if(\"style\"==l)if(\"string\"==typeof u)n.style.cssText=u;else{if(\"string\"==typeof t&&(n.style.cssText=t=\"\"),t)for(l in t)u&&l in u||z(n.style,l,\"\");if(u)for(l in u)t&&u[l]==t[l]||z(n.style,l,u[l])}else if(\"o\"==l[0]&&\"n\"==l[1])r=l!=(l=l.replace(s,\"$1\")),o=l.toLowerCase(),l=o in n||\"onFocusOut\"==l||\"onFocusIn\"==l?o.slice(2):l.slice(2),n.l||(n.l={}),n.l[l+r]=u,u?t?u[a]=t[a]:(u[a]=h,n.addEventListener(l,r?v:p,r)):n.removeEventListener(l,r?v:p,r);else{if(\"http://www.w3.org/2000/svg\"==i)l=l.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(\"width\"!=l&&\"height\"!=l&&\"href\"!=l&&\"list\"!=l&&\"form\"!=l&&\"tabIndex\"!=l&&\"download\"!=l&&\"rowSpan\"!=l&&\"colSpan\"!=l&&\"role\"!=l&&\"popover\"!=l&&l in n)try{n[l]=null==u?\"\":u;break n}catch(n){}\"function\"==typeof u||(null==u||!1===u&&\"-\"!=l[4]?n.removeAttribute(l):n.setAttribute(l,\"popover\"==l&&1==u?\"\":u))}}function V(n){return function(u){if(this.l){var t=this.l[u.type+n];if(null==u[c])u[c]=h++;else if(u[c]<t[a])return;return t(l.event?l.event(u):u)}}}function q(n,u,t,i,r,o,e,f,c,a){var s,h,p,v,y,d,_,k,x,M,$,I,P,A,H,T,j=u.type;if(void 0!==u.constructor)return null;128&t.__u&&(c=!!(32&t.__u),o=[f=u.__e=t.__e]),(s=l.__b)&&s(u);n:if(\"function\"==typeof j){h=e.length;try{if(x=u.props,M=j.prototype&&j.prototype.render,$=(s=j.contextType)&&i[s.__c],I=s?$?$.props.value:s.__:i,t.__c?k=(p=u.__c=t.__c).__=p.__E:(M?u.__c=p=new j(x,I):(u.__c=p=new C(x,I),p.constructor=j,p.render=Q),$&&$.sub(p),p.state||(p.state={}),p.__n=i,v=p.__d=!0,p.__h=[],p._sb=[]),M&&null==p.__s&&(p.__s=p.state),M&&null!=j.getDerivedStateFromProps&&(p.__s==p.state&&(p.__s=m({},p.__s)),m(p.__s,j.getDerivedStateFromProps(x,p.__s))),y=p.props,d=p.state,p.__v=u,v)M&&null==j.getDerivedStateFromProps&&null!=p.componentWillMount&&p.componentWillMount(),M&&null!=p.componentDidMount&&p.__h.push(p.componentDidMount);else{if(M&&null==j.getDerivedStateFromProps&&x!==y&&null!=p.componentWillReceiveProps&&p.componentWillReceiveProps(x,I),u.__v==t.__v||!p.__e&&null!=p.shouldComponentUpdate&&!1===p.shouldComponentUpdate(x,p.__s,I)){u.__v!=t.__v&&(p.props=x,p.state=p.__s,p.__d=!1),u.__e=t.__e,u.__k=t.__k,u.__k.some(function(n){n&&(n.__=u)}),w.push.apply(p.__h,p._sb),p._sb=[],p.__h.length&&e.push(p);break n}null!=p.componentWillUpdate&&p.componentWillUpdate(x,p.__s,I),M&&null!=p.componentDidUpdate&&p.__h.push(function(){p.componentDidUpdate(y,d,_)})}if(p.context=I,p.props=x,p.__P=n,p.__e=!1,P=l.__r,A=0,M)p.state=p.__s,p.__d=!1,P&&P(u),s=p.render(p.props,p.state,p.context),w.push.apply(p.__h,p._sb),p._sb=[];else do{p.__d=!1,P&&P(u),s=p.render(p.props,p.state,p.context),p.state=p.__s}while(p.__d&&++A<25);p.state=p.__s,null!=p.getChildContext&&(i=m(m({},i),p.getChildContext())),M&&!v&&null!=p.getSnapshotBeforeUpdate&&(_=p.getSnapshotBeforeUpdate(y,d)),H=null!=s&&s.type===S&&null==s.key?E(s.props.children):s,f=L(n,g(H)?H:[H],u,t,i,r,o,e,f,c,a),p.base=u.__e,u.__u&=-161,p.__h.length&&e.push(p),k&&(p.__E=p.__=null)}catch(n){if(e.length=h,u.__v=null,c||null!=o){if(n.then){for(u.__u|=c?160:128;f&&8==f.nodeType&&f.nextSibling;)f=f.nextSibling;null!=o&&(o[o.indexOf(f)]=null),u.__e=f}else if(null!=o)for(T=o.length;T--;)b(o[T])}else u.__e=t.__e;null==u.__k&&(u.__k=t.__k||[]),n.then||B(u),l.__e(n,u,t)}}else null==o&&u.__v==t.__v?(u.__k=t.__k,u.__e=t.__e):f=u.__e=G(t.__e,u,t,i,r,o,e,c,a);return(s=l.diffed)&&s(u),128&u.__u?void 0:f}function B(n){n&&(n.__c&&(n.__c.__e=!0),n.__k&&n.__k.some(B))}function D(n,u,t){for(var i=0;i<t.length;i++)J(t[i],t[++i],t[++i]);l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function E(n){return\"object\"!=typeof n||null==n||n.__b>0?n:g(n)?n.map(E):void 0!==n.constructor?null:m({},n)}function G(u,t,i,r,o,e,f,c,a){var s,h,p,v,y,w,_,m=i.props||d,k=t.props,x=t.type;if(\"svg\"==x?o=\"http://www.w3.org/2000/svg\":\"math\"==x?o=\"http://www.w3.org/1998/Math/MathML\":o||(o=\"http://www.w3.org/1999/xhtml\"),null!=e)for(s=0;s<e.length;s++)if((y=e[s])&&\"setAttribute\"in y==!!x&&(x?y.localName==x:3==y.nodeType)){u=y,e[s]=null;break}if(null==u){if(null==x)return document.createTextNode(k);u=document.createElementNS(o,x,k.is&&k),c&&(l.__m&&l.__m(t,e),c=!1),e=null}if(null==x)m===k||c&&u.data==k||(u.data=k);else{if(e=\"textarea\"==x&&null!=k.defaultValue?null:e&&n.call(u.childNodes),!c&&null!=e)for(m={},s=0;s<u.attributes.length;s++)m[(y=u.attributes[s]).name]=y.value;for(s in m)y=m[s],\"dangerouslySetInnerHTML\"==s?p=y:\"children\"==s||s in k||\"value\"==s&&\"defaultValue\"in k||\"checked\"==s&&\"defaultChecked\"in k||N(u,s,null,y,o);for(s in k)y=k[s],\"children\"==s?v=y:\"dangerouslySetInnerHTML\"==s?h=y:\"value\"==s?w=y:\"checked\"==s?_=y:c&&\"function\"!=typeof y||m[s]===y||N(u,s,y,m[s],o);if(h)c||p&&(h.__html==p.__html||h.__html==u.innerHTML)||(u.innerHTML=h.__html),t.__k=[];else if(p&&(u.innerHTML=\"\"),L(\"template\"==t.type?u.content:u,g(v)?v:[v],t,i,r,\"foreignObject\"==x?\"http://www.w3.org/1999/xhtml\":o,e,f,e?e[0]:i.__k&&$(i,0),c,a),null!=e)for(s=e.length;s--;)b(e[s]);c&&\"textarea\"!=x||(s=\"value\",\"progress\"==x&&null==w?u.removeAttribute(\"value\"):null!=w&&(w!==u[s]||\"progress\"==x&&!w||\"option\"==x&&w!=m[s])&&N(u,s,w,m[s],o),s=\"checked\",null!=_&&_!=u[s]&&N(u,s,_,m[s],o))}return u}function J(n,u,t){try{if(\"function\"==typeof n){var i=\"function\"==typeof n.__u;i&&n.__u(),i&&null==u||(n.__u=n(u))}else n.current=u}catch(n){l.__e(n,t)}}function K(n,u,t){var i,r;if(l.unmount&&l.unmount(n),(i=n.ref)&&(i.current&&i.current!=n.__e||J(i,null,u)),null!=(i=n.__c)){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(n){l.__e(n,u)}i.base=i.__P=i.__n=null}if(i=n.__k)for(r=0;r<i.length;r++)i[r]&&K(i[r],u,t||\"function\"!=typeof n.type);t||b(n.__e),n.__c=n.__=n.__e=void 0}function Q(n,l,u){return this.constructor(n,u)}function R(u,t,i){var r,o,e,f;t==document&&(t=document.documentElement),l.__&&l.__(u,t),o=(r=\"function\"==typeof i)?null:i&&i.__k||t.__k,e=[],f=[],q(t,u=(!r&&i||t).__k=k(S,null,[u]),o||d,d,t.namespaceURI,!r&&i?[i]:o?null:t.firstChild?n.call(t.childNodes):null,e,!r&&i?i:o?o.__e:t.firstChild,r,f),D(e,u,f),u.props.children=null}function U(n,l){R(n,l,U)}function W(l,u,t){var i,r,o,e,f=m({},l.props);for(o in l.type&&l.type.defaultProps&&(e=l.type.defaultProps),u)\"key\"==o?i=u[o]:\"ref\"==o?r=u[o]:f[o]=void 0===u[o]&&null!=e?e[o]:u[o];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):t),x(l.type,f,i||l.key,r||l.ref,null)}function X(n){function l(n){var u,t;return this.getChildContext||(u=new Set,(t={})[l.__c]=this,this.getChildContext=function(){return t},this.componentWillUnmount=function(){u=null},this.shouldComponentUpdate=function(n){this.props.value!=n.value&&u.forEach(function(n){n.__e=!0,A(n)})},this.sub=function(n){u.add(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u&&u.delete(n),l&&l.call(n)}}),n.children}return l.__c=\"__cC\"+y++,l.__=n,l.Provider=l.__l=(l.Consumer=function(n,l){return n.children(l)}).contextType=l,l}n=w.slice,l={__e:function(n,l,u,t){for(var i,r,o;l=l.__;)if((i=l.__c)&&!i.__)try{if((r=i.constructor)&&null!=r.getDerivedStateFromError&&(i.setState(r.getDerivedStateFromError(n)),o=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(n,t||{}),o=i.__d),o)return i.__E=i}catch(l){n=l}throw n}},u=0,t=function(n){return null!=n&&void 0===n.constructor},C.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!=this.state?this.__s:this.__s=m({},this.state),\"function\"==typeof n&&(n=n(m({},u),this.props)),n&&m(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),A(this))},C.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),A(this))},C.prototype.render=S,i=[],o=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,e=function(n,l){return n.__v.__b-l.__v.__b},H.__r=0,f=Math.random().toString(8),c=\"__d\"+f,a=\"__a\"+f,s=/(PointerCapture)$|Capture$/i,h=0,p=V(!1),v=V(!0),y=0;export{C as Component,S as Fragment,W as cloneElement,X as createContext,k as createElement,M as createRef,k as h,U as hydrate,t as isValidElement,l as options,R as render,F as toChildArray};\n//# sourceMappingURL=preact.module.js.map\n","import{options as r,Fragment as e}from\"preact\";export{Fragment}from\"preact\";var t=/[\"&<]/;function n(r){if(0===r.length||!1===t.test(r))return r;for(var e=0,n=0,o=\"\",f=\"\";n<r.length;n++){switch(r.charCodeAt(n)){case 34:f=\""\";break;case 38:f=\"&\";break;case 60:f=\"<\";break;default:continue}n!==e&&(o+=r.slice(e,n)),o+=f,e=n+1}return n!==e&&(o+=r.slice(e,n)),o}var o=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,f=0,i=Array.isArray;function u(e,t,n,o,i,u){t||(t={});var a,c,p=t;if(\"ref\"in p)for(c in p={},t)\"ref\"==c?a=t[c]:p[c]=t[c];var l={type:e,props:p,key:n,ref:a,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--f,__i:-1,__u:0,__source:i,__self:u};if(\"function\"==typeof e&&(a=e.defaultProps))for(c in a)void 0===p[c]&&(p[c]=a[c]);return r.vnode&&r.vnode(l),l}function a(r){var t=u(e,{tpl:r,exprs:[].slice.call(arguments,1)});return t.key=t.__v,t}var c={},p=/[A-Z]/g;function l(e,t){if(r.attr){var f=r.attr(e,t);if(\"string\"==typeof f)return f}if(t=function(r){return null!==r&&\"object\"==typeof r&&\"function\"==typeof r.valueOf?r.valueOf():r}(t),\"ref\"===e||\"key\"===e)return\"\";if(\"style\"===e&&\"object\"==typeof t){var i=\"\";for(var u in t){var a=t[u];if(null!=a&&\"\"!==a){var l=\"-\"==u[0]?u:c[u]||(c[u]=u.replace(p,\"-$&\").toLowerCase()),s=\";\";\"number\"!=typeof a||l.startsWith(\"--\")||o.test(l)||(s=\"px;\"),i=i+l+\":\"+a+s}}return e+'=\"'+n(i)+'\"'}return null==t||!1===t||\"function\"==typeof t||\"object\"==typeof t?\"\":!0===t?e:e+'=\"'+n(\"\"+t)+'\"'}function s(r){if(null==r||\"boolean\"==typeof r||\"function\"==typeof r)return null;if(\"object\"==typeof r){if(void 0===r.constructor)return r;if(i(r)){for(var e=0;e<r.length;e++)r[e]=s(r[e]);return r}}return n(\"\"+r)}export{u as jsx,l as jsxAttr,u as jsxDEV,s as jsxEscape,a as jsxTemplate,u as jsxs};\n//# sourceMappingURL=jsxRuntime.module.js.map\n","/**\n * Current stored-format version (WebPopupJson.version). Version 2 = the\n * layout-tree format (nested containers + Content/Image leaves, named content\n * zones). Version 1 (flat layout + single slot list) is retired without a\n * migration path — v1 popups are treated as broken, same as the pre-engine\n * ai-builder format.\n */\nexport const WEB_POPUP_VERSION = 2;\n// Bomb protection for the embedded layout tree — the json travels through a\n// public API, so the parser refuses to walk pathological trees.\nexport const WEB_POPUP_LAYOUT_MAX_DEPTH = 10;\nexport const WEB_POPUP_LAYOUT_MAX_NODES = 100;\n/** Protocols allowed in button hrefs (plus relative `#`/`/`/`?` prefixes). */\nexport const SAFE_URL_PROTOCOL = /^(https?:|mailto:|tel:)/i;\nexport const WEB_POPUP_FONT_STACK = 'Inter, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif';\n// Palette defaults (mirror the editor's popup theme) — what a popup gets for\n// any WebPopupColors entry its json doesn't set.\nexport const WEB_POPUP_TEXT_COLOR = '#101828';\nexport const WEB_POPUP_TEXT_SECONDARY_COLOR = '#667085';\nexport const WEB_POPUP_ACCENT_COLOR = '#2970FF';\nexport const WEB_POPUP_BACKGROUND_COLOR = '#FFFFFF';\nexport const WEB_POPUP_DEFAULT_COLORS = {\n background: WEB_POPUP_BACKGROUND_COLOR,\n accent: WEB_POPUP_ACCENT_COLOR,\n text: WEB_POPUP_TEXT_COLOR,\n textSecondary: WEB_POPUP_TEXT_SECONDARY_COLOR,\n textInverse: '#FFFFFF',\n};\n/** Fallback width used when a fixed-width context needs a number anyway. */\nexport const WEB_POPUP_DEFAULT_WIDTH = 360;\n// Per-variant text styles — the same numbers the editor's canvas derives from\n// its theme presets. No colors here: those come from the popup palette via\n// webPopupTextColor below.\nexport const WEB_POPUP_TEXT_VARIANT_STYLES = {\n h1: { fontSize: 24, fontWeight: 600, lineHeight: 1.25 },\n h2: { fontSize: 18, fontWeight: 600, lineHeight: 1.3 },\n h3: { fontSize: 16, fontWeight: 600, lineHeight: 1.35 },\n body: { fontSize: 14, fontWeight: 'normal', lineHeight: 1.5 },\n caption: { fontSize: 12, fontWeight: 'normal', lineHeight: 1.4 },\n eyebrow: {\n fontSize: 11, fontWeight: 600, letterSpacing: '0.08em', lineHeight: 1.4,\n },\n icon: { fontSize: 24, lineHeight: 1.2 },\n};\n// Inverse-tone translucency per text style: headings full-strength, the\n// secondary variants toned down — same rhythm the palette's default white\n// set always had.\nconst INVERSE_TEXT_ALPHAS = {\n h1: 1,\n h2: 1,\n h3: 1,\n icon: 1,\n eyebrow: 0.8,\n body: 0.9,\n caption: 0.75,\n};\n// colors.textInverse at the given opacity. Only #rgb/#rrggbb can be blended;\n// any other author-supplied css color renders full-strength rather than\n// being guessed at.\nfunction inverseColorAt(color, alpha) {\n if (alpha >= 1)\n return color;\n const hex = /^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/.exec(color)?.[1];\n if (!hex)\n return color;\n const full = hex.length === 3 ? hex.split('').map((c) => c + c).join('') : hex;\n const [r, g, b] = [0, 2, 4].map((i) => parseInt(full.slice(i, i + 2), 16));\n return `rgba(${r}, ${g}, ${b}, ${alpha})`;\n}\n/**\n * A text slot's color: the palette's main/secondary role by variant; in an\n * 'inverse' zone (over a background image) — colors.textInverse, with the\n * secondary variants toned translucent. Undefined for a non-inverse 'icon'\n * (an emoji line inherits — its glyphs aren't recolorable anyway).\n */\nexport function webPopupTextColor(variant, colors, inverse) {\n if (inverse)\n return inverseColorAt(colors.textInverse, INVERSE_TEXT_ALPHAS[variant] ?? 1);\n if (variant === 'icon')\n return undefined;\n return variant === 'caption' || variant === 'eyebrow' ? colors.textSecondary : colors.text;\n}\n/** The dark fill under a container's background image while it loads. */\nexport const WEB_POPUP_BG_SECTION_FALLBACK = '#1D2939';\n// Content-zone rhythm: per-slot vertical paddings (horizontal spacing is the\n// layout tree's padding business). Per-slot paddings — not a grid gap — so\n// the editor's canvas, which renders slots as stacked blocks with these same\n// paddings, matches the runtime pixel for pixel.\nexport const WEB_POPUP_TEXT_SLOT_PADDING = '4px 0';\nexport const WEB_POPUP_BUTTON_SLOT_PADDING = '8px 0 4px';\nexport const WEB_POPUP_KEYFRAMES = `\n@keyframes pw-vpopup-fade { from { opacity: 0; } }\n@keyframes pw-vpopup-slide { from { opacity: 0; translate: 0 28px; } }\n@keyframes pw-vpopup-overlay { from { opacity: 0; } }\n@keyframes pw-vpopup-page { from { opacity: 0; } }\n`;\n// Page-switch transition: the incoming page's content fades in while explicit\n// px sizes glide instead of jumping (auto sizes still snap — 'auto' can't be\n// transitioned). One duration for both so they read as a single move.\nexport const WEB_POPUP_PAGE_TRANSITION_MS = 300;\n","import { WEB_POPUP_LAYOUT_MAX_DEPTH, WEB_POPUP_LAYOUT_MAX_NODES } from './constants';\n// Validation + css conversion for the embedded layout tree. The json is\n// API-writable and its styles land inline on customers' pages, so every prop\n// is normalized against a whitelist on parse: numbers are clamped, strings\n// must match a strict css-length/track pattern, enums fall back to defaults,\n// unknown props are dropped. Unknown node TYPES degrade instead of breaking:\n// a node with children renders as a Vertical stack (a container from a NEWER\n// editor keeps its content visible on an older engine build), a childless\n// unknown node is dropped.\nconst CONTAINER_TYPES = ['Vertical', 'Horizontal', 'Columns', 'Rows'];\nconst ORDERS = ['normal', 'reverse'];\nconst ALIGN_ITEMS = ['start', 'center', 'end', 'stretch'];\nconst JUSTIFY_CONTENT = ['start', 'center', 'end', 'space-between'];\nconst TEXT_ALIGNS = ['left', 'center', 'right'];\nconst TONES = ['default', 'inverse'];\nconst MAX_LENGTH_PX = 2000;\n// String lengths carry a unit — clamp each to its own sane ceiling, like the\n// numeric branch: a wire value (\"9999rem\" scales off the HOST page's root\n// font size) must not be able to blow the popup past the viewport.\nconst LENGTH_UNIT_MAX = { px: MAX_LENGTH_PX, '%': 100, em: 125, rem: 125 };\nconst LENGTH_PATTERN = /^(\\d{1,4}(?:\\.\\d+)?)(px|%|em|rem)$/;\nconst TRACK_UNIT_MAX = { px: MAX_LENGTH_PX, '%': 100, fr: 100 };\nconst TRACK_PATTERN = /^(\\d{1,4}(?:\\.\\d+)?)(px|%|fr)$/;\nconst TRACK_KEYWORDS = ['auto', 'min-content', 'max-content'];\nconst MAX_TRACKS = 12;\nfunction oneOf(value, allowed) {\n return allowed.includes(value) ? value : undefined;\n}\nfunction cssLength(value) {\n if (typeof value === 'number' && Number.isFinite(value)) {\n return Math.min(Math.max(value, 0), MAX_LENGTH_PX);\n }\n if (typeof value !== 'string')\n return undefined;\n const match = LENGTH_PATTERN.exec(value.trim());\n if (!match)\n return undefined;\n const [, amount, unit] = match;\n return `${Math.min(parseFloat(amount), LENGTH_UNIT_MAX[unit])}${unit}`;\n}\nconst BOX_SIDES = ['top', 'right', 'bottom', 'left'];\nfunction boxPadding(value) {\n const whole = cssLength(value);\n if (whole !== undefined)\n return whole;\n if (typeof value !== 'object' || value === null)\n return undefined;\n const sides = {};\n for (const side of BOX_SIDES) {\n const sideValue = cssLength(value[side]);\n if (sideValue !== undefined)\n sides[side] = sideValue;\n }\n return Object.keys(sides).length > 0 ? sides : undefined;\n}\nfunction trackSize(token) {\n if (TRACK_KEYWORDS.includes(token))\n return token;\n const match = TRACK_PATTERN.exec(token);\n if (!match)\n return undefined;\n const [, amount, unit] = match;\n return `${Math.min(parseFloat(amount), TRACK_UNIT_MAX[unit])}${unit}`;\n}\nfunction trackSizes(value) {\n if (typeof value === 'number') {\n return Number.isInteger(value) && value >= 1 && value <= MAX_TRACKS ? value : undefined;\n }\n if (typeof value !== 'string')\n return undefined;\n const tokens = value.trim().split(/\\s+/);\n if (tokens.length < 1 || tokens.length > MAX_TRACKS)\n return undefined;\n const clamped = tokens.map(trackSize);\n return clamped.every((token) => token !== undefined) ? clamped.join(' ') : undefined;\n}\nfunction nonEmptyString(value) {\n return typeof value === 'string' && value.length > 0 ? value : undefined;\n}\nfunction containerProps(raw) {\n const props = {};\n const gap = cssLength(raw.gap);\n if (gap !== undefined)\n props.gap = gap;\n const padding = boxPadding(raw.padding);\n if (padding !== undefined)\n props.padding = padding;\n const alignItems = oneOf(raw.alignItems, ALIGN_ITEMS);\n if (alignItems)\n props.alignItems = alignItems;\n const justifyContent = oneOf(raw.justifyContent, JUSTIFY_CONTENT);\n if (justifyContent)\n props.justifyContent = justifyContent;\n const backgroundImage = nonEmptyString(raw.backgroundImage);\n if (backgroundImage)\n props.backgroundImage = backgroundImage;\n const sizes = trackSizes(raw.sizes);\n if (sizes !== undefined)\n props.sizes = sizes;\n return props;\n}\nfunction normalizeNode(raw, depth, budget) {\n if (depth > WEB_POPUP_LAYOUT_MAX_DEPTH || budget.nodes <= 0)\n return null;\n if (typeof raw !== 'object' || raw === null)\n return null;\n budget.nodes -= 1;\n const node = raw;\n const props = (typeof node.props === 'object' && node.props !== null ? node.props : {});\n if (node.type === 'Content') {\n const content = nonEmptyString(props.content);\n if (!content)\n return null;\n const out = { type: 'Content', props: { content } };\n const align = oneOf(props.align, TEXT_ALIGNS);\n if (align)\n out.props.align = align;\n const tone = oneOf(props.tone, TONES);\n if (tone && tone !== 'default')\n out.props.tone = tone;\n return out;\n }\n if (node.type === 'Image') {\n const image = nonEmptyString(props.image);\n if (!image)\n return null;\n const out = { type: 'Image', props: { image } };\n return out;\n }\n if (!Array.isArray(node.children))\n return null;\n const type = oneOf(node.type, CONTAINER_TYPES) ?? 'Vertical';\n const children = [];\n for (const child of node.children) {\n const normalized = normalizeNode(child, depth + 1, budget);\n if (normalized)\n children.push(normalized);\n }\n const out = containerProps(props);\n // `order: 'reverse'` is applied right here and consumed: the normalized\n // tree carries the children already reordered (and the sizes template\n // reversed with them, so each child keeps its track) — the renderers and\n // the editor canvas never see the prop. Caveat for hand-authored json: the\n // \"keeps its track\" guarantee assumes one sizes token per child; with a\n // mismatched count the reversed template pairs children with different\n // tracks (grid itself would misalign such a template the same way).\n if (oneOf(props.order, ORDERS) === 'reverse') {\n children.reverse();\n if (typeof out.sizes === 'string')\n out.sizes = out.sizes.split(' ').reverse().join(' ');\n }\n return { type, props: out, children };\n}\n/**\n * Validate an embedded layout tree from the stored json. Returns the\n * normalized tree, or null when the value isn't a renderable tree at all —\n * the page is then dropped by resolveWebPopupPages.\n */\nexport function normalizeWebPopupLayout(raw) {\n return normalizeNode(raw, 0, { nodes: WEB_POPUP_LAYOUT_MAX_NODES });\n}\n// --- value substitution ($refs) ---------------------------------------------\n/** A page value key, as referenced from the tree by a `$key` token. */\nexport const WEB_POPUP_VALUE_KEY_PATTERN = /^[a-zA-Z][a-zA-Z0-9-]*$/;\nconst VALUE_REF_PATTERN = /^\\$([a-zA-Z][a-zA-Z0-9-]*)$/;\n// Every whitespace-separated token of the form $key is replaced; separators\n// survive, so both a whole-string prop ('$stackGap') and a token inside a\n// sizes template ('1fr $imageWidth') substitute with the same rule. An\n// unknown key stays as-is and fails the prop whitelist downstream — the prop\n// is dropped, same as any invalid literal.\nfunction substituteString(value, values) {\n if (!value.includes('$'))\n return value;\n return value\n .split(/(\\s+)/)\n .map((token) => {\n const key = VALUE_REF_PATTERN.exec(token)?.[1];\n // Own properties only: '$constructor' must stay an unknown ref, not\n // resolve to an Object.prototype member.\n return key !== undefined && Object.prototype.hasOwnProperty.call(values, key) ? values[key] : token;\n })\n .join('');\n}\n/**\n * Substitute a page's named values into its RAW layout tree — `$key` tokens\n * in string props become the values, verbatim. Runs BEFORE\n * normalizeWebPopupLayout (see resolveWebPopupPages), so a substituted value\n * passes exactly the whitelists/clamps a literal one would; substitution is\n * single-pass and normalizeWebPopupValues rejects values containing '$', so\n * refs can't chain. Binding keys (`content`, `image`, `backgroundImage`) are\n * never substituted — they already name params by design.\n */\nexport function substituteWebPopupLayoutValues(layout, values) {\n if (typeof layout !== 'object' || layout === null || Object.keys(values).length === 0)\n return layout;\n return substituteNode(layout, values, 0);\n}\nconst BINDING_PROPS = new Set(['content', 'image', 'backgroundImage']);\nfunction substituteNode(raw, values, depth) {\n if (depth > WEB_POPUP_LAYOUT_MAX_DEPTH || typeof raw !== 'object' || raw === null)\n return raw;\n const node = raw;\n const out = { ...node };\n if (typeof node.props === 'object' && node.props !== null) {\n const props = { ...node.props };\n for (const [key, value] of Object.entries(props)) {\n if (BINDING_PROPS.has(key))\n continue;\n if (typeof value === 'string') {\n props[key] = substituteString(value, values);\n }\n else if (typeof value === 'object' && value !== null && !Array.isArray(value)) {\n // Per-side paddings: one level of string sides.\n const sides = { ...value };\n for (const [side, sideValue] of Object.entries(sides)) {\n if (typeof sideValue === 'string')\n sides[side] = substituteString(sideValue, values);\n }\n props[key] = sides;\n }\n }\n out.props = props;\n }\n if (Array.isArray(node.children)) {\n out.children = node.children.map((child) => substituteNode(child, values, depth + 1));\n }\n return out;\n}\n// --- css conversion (shared by the reader and the editor's canvas) ---------\nexport function webPopupCssLength(value) {\n return typeof value === 'number' ? `${value}px` : value;\n}\nexport function webPopupPaddingValue(padding) {\n if (typeof padding === 'number' || typeof padding === 'string')\n return webPopupCssLength(padding);\n const side = (value) => (value === undefined ? '0' : webPopupCssLength(value));\n return `${side(padding.top)} ${side(padding.right)} ${side(padding.bottom)} ${side(padding.left)}`;\n}\n/** grid-template value for Columns/Rows: absent sizes = one 1fr per child. */\nexport function webPopupTracksValue(sizes, childCount) {\n if (typeof sizes === 'string')\n return sizes;\n const count = typeof sizes === 'number' ? sizes : Math.max(childCount, 1);\n return `repeat(${count}, 1fr)`;\n}\n/**\n * The cover-background css of a container that draws an image behind its\n * content. `dim` (0–1) is the image's scrim — a dark translucent layer\n * painted as a gradient stacked over the url() in the same property, so it\n * needs no extra element and rides along wherever the background is drawn.\n */\nexport function webPopupBackgroundImageStyle(src, dim = 0) {\n // JSON.stringify quotes + escapes the url, so an src can't break out of\n // the css function.\n const image = `url(${JSON.stringify(src)})`;\n const scrim = dim > 0 ? `rgba(16, 24, 40, ${Math.min(dim, 1)})` : null;\n return {\n backgroundImage: scrim ? `linear-gradient(${scrim}, ${scrim}), ${image}` : image,\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n };\n}\n/**\n * The inline style of a container node — grid, mirroring kit-helpers'\n * Vertical/Horizontal/Columns/Rows semantics. The background image is passed\n * resolved (looked up in the page's images by the caller) so this stays a\n * pure props → css mapping.\n */\nexport function webPopupContainerStyle(node, backgroundSrc, backgroundDim = 0) {\n const props = node.props ?? {};\n const style = { display: 'grid', minWidth: 0 };\n if (node.type === 'Horizontal')\n style.gridAutoFlow = 'column';\n if (node.type === 'Columns')\n style.gridTemplateColumns = webPopupTracksValue(props.sizes, node.children.length);\n if (node.type === 'Rows')\n style.gridTemplateRows = webPopupTracksValue(props.sizes, node.children.length);\n if (props.gap !== undefined)\n style.gap = webPopupCssLength(props.gap);\n if (props.padding !== undefined)\n style.padding = webPopupPaddingValue(props.padding);\n if (props.alignItems)\n style.alignItems = props.alignItems;\n if (props.justifyContent)\n style.justifyContent = props.justifyContent;\n if (backgroundSrc)\n Object.assign(style, webPopupBackgroundImageStyle(backgroundSrc, backgroundDim));\n return style;\n}\n","import { SAFE_URL_PROTOCOL, WEB_POPUP_DEFAULT_COLORS, WEB_POPUP_VERSION } from './constants';\nimport { normalizeWebPopupLayout, substituteWebPopupLayoutValues, WEB_POPUP_VALUE_KEY_PATTERN, } from './layout';\n// Sanitize a user-entered button URL before it lands in an href: https/http/\n// mailto/tel and page-relative links only.\nexport function safeUrl(url) {\n const trimmed = (url || '').trim();\n if (!trimmed)\n return undefined;\n if (trimmed.startsWith('#') || trimmed.startsWith('/') || trimmed.startsWith('?'))\n return trimmed;\n if (SAFE_URL_PROTOCOL.test(trimmed))\n return trimmed;\n return undefined;\n}\n/**\n * The target/rel pair a popup link renders with: only an exact '_self' opts\n * out of the default new tab (and of its noreferrer, which same-tab\n * navigation doesn't need). One rule for both link kinds — the reader's\n * button anchors and the sanitizer's inline text links.\n */\nexport function webPopupLinkTargetAttrs(target) {\n return target === '_self' ? { target: '_self' } : { target: '_blank', rel: 'noreferrer' };\n}\nconst SANITIZE_ALLOWED_TAGS = new Set(['STRONG', 'B', 'EM', 'I', 'U', 'BR', 'A']);\nfunction copySanitized(from, to, doc) {\n for (const child of Array.from(from.childNodes)) {\n if (child.nodeType === 3 /* text */) {\n to.appendChild(doc.createTextNode(child.textContent ?? ''));\n continue;\n }\n if (child.nodeType !== 1 /* element */)\n continue;\n const el = child;\n // Unknown tags are unwrapped — their children survive as plain content.\n if (!SANITIZE_ALLOWED_TAGS.has(el.tagName)) {\n copySanitized(el, to, doc);\n continue;\n }\n const clean = doc.createElement(el.tagName.toLowerCase());\n if (el.tagName === 'A') {\n const href = safeUrl(el.getAttribute('href') ?? undefined);\n if (href)\n clean.setAttribute('href', href);\n const { target, rel } = webPopupLinkTargetAttrs(el.getAttribute('target'));\n clean.setAttribute('target', target);\n if (rel)\n clean.setAttribute('rel', rel);\n }\n to.appendChild(clean);\n copySanitized(el, clean, doc);\n }\n}\n/**\n * Sanitize a text slot's html before it's injected into the page. The editor\n * only ever writes inline formatting, but the json travels through a public\n * API and renders on customers' sites — so on render only the inline tags\n * survive (anything else is unwrapped to its text), every attribute is\n * dropped, and links keep only a safeUrl-approved href plus their tab choice\n * (target=\"_self\" stays; everything else opens in a new tab).\n */\nexport function sanitizeWebPopupHtml(html) {\n // No '<' → no elements can form; entities in plain text are already-valid\n // html and pass through untouched.\n if (!html.includes('<'))\n return html;\n const parsed = new DOMParser().parseFromString(html, 'text/html');\n const out = parsed.createElement('div');\n copySanitized(parsed.body, out, parsed);\n return out.innerHTML;\n}\nfunction colorString(value) {\n return typeof value === 'string' && value ? value : undefined;\n}\n/**\n * The popup palette from API-writable params: `colors` entries when present,\n * the legacy top-level background/accent underneath, palette defaults for the\n * rest — always a complete WebPopupColors.\n */\nexport function normalizeWebPopupColors(params) {\n const colors = typeof params.colors === 'object' && params.colors !== null\n ? params.colors\n : {};\n return {\n background: colorString(colors.background)\n ?? colorString(params.background) ?? WEB_POPUP_DEFAULT_COLORS.background,\n accent: colorString(colors.accent) ?? colorString(params.accent) ?? WEB_POPUP_DEFAULT_COLORS.accent,\n text: colorString(colors.text) ?? WEB_POPUP_DEFAULT_COLORS.text,\n textSecondary: colorString(colors.textSecondary) ?? WEB_POPUP_DEFAULT_COLORS.textSecondary,\n textInverse: colorString(colors.textInverse) ?? WEB_POPUP_DEFAULT_COLORS.textInverse,\n };\n}\n// Parse stored PopupFormContent.json into the popup model. Returns null for\n// anything that isn't a version-2 popup with at least one page — including\n// the retired version-1 flat-layout format and pre-engine content with no\n// `version` field at all, which callers should treat as broken. The palette\n// comes out complete: colors entries → legacy top-level background/accent →\n// defaults.\nexport function parseWebPopupJson(json) {\n let raw;\n try {\n raw = JSON.parse(json);\n }\n catch {\n return null;\n }\n if (typeof raw !== 'object' || raw === null)\n return null;\n const candidate = raw;\n if (candidate.version !== WEB_POPUP_VERSION)\n return null;\n const params = candidate.params;\n if (typeof params !== 'object' || params === null)\n return null;\n if (!Array.isArray(params.pages) || params.pages.length === 0)\n return null;\n return { version: WEB_POPUP_VERSION, params: { ...params, colors: normalizeWebPopupColors(params) } };\n}\n/** The editor's save path: model → PopupFormContent.json string. */\nexport function stringifyWebPopup(params) {\n const compat = {\n ...params,\n background: params.colors.background,\n accent: params.colors.accent,\n };\n const payload = { version: WEB_POPUP_VERSION, params: compat };\n return JSON.stringify(payload);\n}\nconst IMAGE_FITS = ['cover', 'contain'];\nconst MAX_IMAGE_BLUR = 100;\n// Bomb protection for the page content, mirroring the layout tree's\n// depth/node caps: the tree allows up to ~100 Content nodes and several may\n// reference the same zone, so unbounded zones/slots would amplify into\n// thousands of sanitize+render passes on the customer's page.\nconst MAX_IMAGES = 20;\nconst MAX_ZONES = 20;\nconst MAX_ZONE_SLOTS = 50;\n// The images come from API-writable json — keep only well-formed entries,\n// with the presentation props (fit/blur) validated like the layout tree's.\nfunction normalizeImages(raw) {\n if (!Array.isArray(raw))\n return [];\n const out = [];\n for (const img of raw) {\n if (out.length >= MAX_IMAGES)\n break;\n if (typeof img !== 'object' || img === null)\n continue;\n if (typeof img.key !== 'string' || !img.key)\n continue;\n if (typeof img.src !== 'string')\n continue;\n out.push({\n key: img.key,\n label: typeof img.label === 'string' ? img.label : '',\n src: img.src,\n ...(IMAGE_FITS.includes(img.fit) ? { fit: img.fit } : {}),\n ...(typeof img.blur === 'number' && Number.isFinite(img.blur) && img.blur > 0\n ? { blur: Math.min(img.blur, MAX_IMAGE_BLUR) }\n : {}),\n ...(typeof img.dim === 'number' && Number.isFinite(img.dim) && img.dim > 0\n ? { dim: Math.min(img.dim, 1) }\n : {}),\n });\n }\n return out;\n}\nconst MAX_VALUES = 20;\nconst MAX_VALUE_LENGTH = 64;\nconst MAX_SELECT_OPTIONS = 20;\nconst LENGTH_CONTROL_UNITS = ['px', '%', 'em', 'rem', 'fr'];\nfunction finiteNumber(value) {\n return typeof value === 'number' && Number.isFinite(value) ? value : undefined;\n}\n// The control is editor metadata from API-writable json: enum-whitelisted\n// kind, clamped numbers, capped options. Anything malformed drops to\n// undefined — the editor falls back to a plain text input.\nfunction normalizeValueControl(raw) {\n if (typeof raw !== 'object' || raw === null)\n return undefined;\n const control = raw;\n if (control.kind === 'text')\n return { kind: 'text' };\n if (control.kind === 'length' || control.kind === 'percent') {\n const min = finiteNumber(control.min);\n const max = finiteNumber(control.max);\n const units = control.kind === 'length' && Array.isArray(control.units)\n ? control.units.filter((u) => (LENGTH_CONTROL_UNITS.includes(u)))\n : [];\n return {\n kind: control.kind,\n ...(min !== undefined ? { min } : {}),\n ...(max !== undefined ? { max } : {}),\n ...(units.length > 0 ? { units } : {}),\n };\n }\n if (control.kind === 'select' && Array.isArray(control.options)) {\n const options = [];\n for (const option of control.options) {\n if (options.length >= MAX_SELECT_OPTIONS)\n break;\n if (typeof option !== 'object' || option === null)\n continue;\n if (typeof option.value !== 'string' || option.value.length > MAX_VALUE_LENGTH)\n continue;\n options.push({ value: option.value, label: typeof option.label === 'string' ? option.label : option.value });\n }\n if (options.length > 0)\n return { kind: 'select', options };\n }\n return undefined;\n}\n/**\n * The page's named layout values from API-writable json: capped count,\n * whitelisted keys, short '$'-free value strings (substitution is single-pass\n * and this keeps refs from even *looking* chainable), validated controls.\n */\nexport function normalizeWebPopupValues(raw) {\n if (!Array.isArray(raw))\n return [];\n const out = [];\n for (const value of raw) {\n if (out.length >= MAX_VALUES)\n break;\n if (typeof value !== 'object' || value === null)\n continue;\n if (typeof value.key !== 'string' || !WEB_POPUP_VALUE_KEY_PATTERN.test(value.key))\n continue;\n if (typeof value.value !== 'string' || value.value.length > MAX_VALUE_LENGTH || value.value.includes('$'))\n continue;\n if (out.some((v) => v.key === value.key))\n continue;\n const control = normalizeValueControl(value.control);\n out.push({\n key: value.key,\n label: typeof value.label === 'string' ? value.label : '',\n value: value.value,\n ...(control ? { control } : {}),\n });\n }\n return out;\n}\n/** The values as a substitution map (see substituteWebPopupLayoutValues). */\nexport function webPopupValuesMap(values) {\n return Object.fromEntries(values.map((v) => [v.key, v.value]));\n}\n// The zones come from API-writable json — keep only well-formed entries\n// (capped, see above) so the renderer can trust the shape.\nfunction normalizeContents(raw) {\n if (!Array.isArray(raw))\n return [];\n const out = [];\n for (const zone of raw) {\n if (out.length >= MAX_ZONES)\n break;\n if (typeof zone !== 'object' || zone === null)\n continue;\n if (typeof zone.key !== 'string' || !zone.key)\n continue;\n if (!Array.isArray(zone.slots))\n continue;\n out.push({\n key: zone.key,\n label: typeof zone.label === 'string' ? zone.label : '',\n slots: zone.slots.slice(0, MAX_ZONE_SLOTS),\n });\n }\n return out;\n}\n/**\n * The popup box-size ceiling px, mirroring the layout tree's px clamp: the\n * json is API-writable and the size lands as inline style on the customer's\n * page. The editor clamps its Width/Height inputs to it too.\n */\nexport const WEB_POPUP_MAX_SIZE_PX = 2000;\nfunction validSize(value) {\n return typeof value === 'number' && Number.isFinite(value) && value > 0\n ? Math.min(value, WEB_POPUP_MAX_SIZE_PX)\n : undefined;\n}\n/**\n * A page's final box dimension: the page's own (null = explicitly auto) over\n * the chrome's, validated — a finite positive number clamped to the ceiling.\n * A malformed page value falls back to the chrome (like an absent one), a\n * malformed chrome value = auto. Exported for the editor — it must resolve\n * and validate exactly like the runtime (parity contract), never fork this.\n */\nexport function resolveWebPopupPageSize(own, shared) {\n if (own === null)\n return undefined;\n return validSize(own) ?? validSize(shared);\n}\n/**\n * The renderable pages: each page carries its own embedded layout tree — no\n * kind catalog at runtime. The page's named values are substituted into the\n * tree first ($key tokens), then the result is validated/normalized\n * (whitelisted props, unknown container types degrade to a Vertical stack) —\n * so substituted values pass the same clamps as literals; pages whose layout\n * isn't a tree at all are dropped. An empty result means the popup can't be\n * rendered. width/height come out FINAL (page override ?? chrome, validated)\n * — the renderer never falls back itself.\n */\nexport function resolveWebPopupPages(params) {\n const out = [];\n for (const page of params.pages) {\n const values = normalizeWebPopupValues(page.values);\n const layout = normalizeWebPopupLayout(substituteWebPopupLayoutValues(page.layout, webPopupValuesMap(values)));\n if (!layout)\n continue;\n const width = resolveWebPopupPageSize(page.width, params.width);\n const height = resolveWebPopupPageSize(page.height, params.height);\n out.push({\n key: page.key,\n layout,\n images: normalizeImages(page.images),\n contents: normalizeContents(page.contents),\n ...(width !== undefined ? { width } : {}),\n ...(height !== undefined ? { height } : {}),\n });\n }\n return out;\n}\n/** The page shown first: startPage when it exists, else the first page. */\nexport function startPageOf(params, pages) {\n return pages.find((p) => p.key === params.startPage) ?? pages[0];\n}\nexport function placementMaxSize(placement) {\n return `calc(100% - ${placement.offset * 2}px)`;\n}\n","import{options as n}from\"preact\";var t,r,u,i,o=0,f=[],c=n,e=c.__b,a=c.__r,v=c.diffed,l=c.__c,m=c.unmount,p=c.__;function s(n,t){c.__h&&c.__h(r,n,o||t),o=0;var u=r.__H||(r.__H={__:[],__h:[]});return n>=u.__.length&&u.__.push({}),u.__[n]}function d(n){return o=1,y(D,n)}function y(n,u,i){var o=s(t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):D(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=r,!r.__f)){var f=function(n,t,r){if(!o.__c.__H)return!0;var u=!1,i=o.__c.props!==n;if(o.__c.__H.__.some(function(n){if(n.__N){u=!0;var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),c){var f=c.call(this,n,t,r);return u?f||i:f}return!u||i};r.__f=!0;var c=r.shouldComponentUpdate,e=r.componentWillUpdate;r.componentWillUpdate=function(n,t,r){if(this.__e){var u=c;c=void 0,f(n,t,r),c=u}e&&e.call(this,n,t,r)},r.shouldComponentUpdate=f}return o.__N||o.__}function h(n,u){var i=s(t++,3);!c.__s&&C(i.__H,u)&&(i.__=n,i.u=u,r.__H.__h.push(i))}function _(n,u){var i=s(t++,4);!c.__s&&C(i.__H,u)&&(i.__=n,i.u=u,r.__h.push(i))}function A(n){return o=5,T(function(){return{current:n}},[])}function F(n,t,r){o=6,_(function(){if(\"function\"==typeof n){var r=n(t());return function(){n(null),r&&\"function\"==typeof r&&r()}}if(n)return n.current=t(),function(){return n.current=null}},null==r?r:r.concat(n))}function T(n,r){var u=s(t++,7);return C(u.__H,r)&&(u.__=n(),u.__H=r,u.__h=n),u.__}function q(n,t){return o=8,T(function(){return n},t)}function x(n){var u=r.context[n.__c],i=s(t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(r)),u.props.value):n.__}function P(n,t){c.useDebugValue&&c.useDebugValue(t?t(n):n)}function b(n){var u=s(t++,10),i=d();return u.__=n,r.componentDidCatch||(r.componentDidCatch=function(n,t){u.__&&u.__(n,t),i[1](n)}),[i[0],function(){i[1](void 0)}]}function g(){var n=s(t++,11);if(!n.__){for(var u=r.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;var i=u.__m||(u.__m=[0,0]);n.__=\"P\"+i[0]+\"-\"+i[1]++}return n.__}function j(){for(var n;n=f.shift();){var t=n.__H;if(n.__P&&t)try{t.__h.some(z),t.__h.some(B),t.__h=[]}catch(r){t.__h=[],c.__e(r,n.__v)}}}c.__b=function(n){r=null,e&&e(n)},c.__=function(n,t){n&&t.__k&&t.__k.__m&&(n.__m=t.__k.__m),p&&p(n,t)},c.__r=function(n){a&&a(n),t=0;var i=(r=n.__c).__H;i&&(u===r?(i.__h=[],r.__h=[],i.__.some(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(i.__h.some(z),i.__h.some(B),i.__h=[],t=0)),u=r},c.diffed=function(n){v&&v(n);var t=n.__c;t&&t.__H&&(t.__H.__h.length&&(1!==f.push(t)&&i===c.requestAnimationFrame||((i=c.requestAnimationFrame)||w)(j)),t.__H.__.some(function(n){n.u&&(n.__H=n.u,n.u=void 0)})),u=r=null},c.__c=function(n,t){t.some(function(n){try{n.__h.some(z),n.__h=n.__h.filter(function(n){return!n.__||B(n)})}catch(r){t.some(function(n){n.__h&&(n.__h=[])}),t=[],c.__e(r,n.__v)}}),l&&l(n,t)},c.unmount=function(n){m&&m(n);var t,r=n.__c;r&&r.__H&&(r.__H.__.some(function(n){try{z(n)}catch(n){t=n}}),r.__H=void 0,t&&c.__e(t,r.__v))};var k=\"function\"==typeof requestAnimationFrame;function w(n){var t,r=function(){clearTimeout(u),k&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,35);k&&(t=requestAnimationFrame(r))}function z(n){var t=r,u=n.__c;\"function\"==typeof u&&(n.__c=void 0,u()),r=t}function B(n){var t=r;n.__c=n.__(),r=t}function C(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function D(n,t){return\"function\"==typeof t?t(n):t}export{q as useCallback,x as useContext,P as useDebugValue,h as useEffect,b as useErrorBoundary,g as useId,F as useImperativeHandle,_ as useLayoutEffect,T as useMemo,y as useReducer,A as useRef,d as useState};\n//# sourceMappingURL=hooks.module.js.map\n","import{Component as n,createElement as t,options as e,toChildArray as r,Fragment as u,render as o,hydrate as i,createContext as l,createRef as c,cloneElement as f}from\"preact\";export{Component,Fragment,Fragment as StrictMode,createContext,createElement,createRef}from\"preact\";import{useState as a,useLayoutEffect as s,useEffect as h,useCallback as v,useContext as d,useDebugValue as m,useId as p,useImperativeHandle as y,useMemo as _,useReducer as b,useRef as S}from\"preact/hooks\";export*from\"preact/hooks\";function g(n,t){for(var e in t)n[e]=t[e];return n}function E(n,t){for(var e in n)if(\"__source\"!==e&&!(e in t))return!0;for(var r in t)if(\"__source\"!==r&&n[r]!==t[r])return!0;return!1}function C(n,t){var e=t(),r=a({t:{__:e,u:t}}),u=r[0].t,o=r[1];return s(function(){u.__=e,u.u=t,R(u)&&o({t:u})},[n,e,t]),h(function(){return R(u)&&o({t:u}),n(function(){R(u)&&o({t:u})})},[n]),e}function R(n){try{return!((t=n.__)===(e=n.u())&&(0!==t||1/t==1/e)||t!=t&&e!=e)}catch(n){return!0}var t,e}function x(n){n()}function w(n){return n}function k(){return[!1,x]}var I=s;function M(n,t){this.props=n,this.context=t}function N(n,e){function r(n){var t=this.props.ref;return t!=n.ref&&t&&(\"function\"==typeof t?t(null):t.current=null),e?!e(this.props,n)||t!=n.ref:E(this.props,n)}function u(e){return this.shouldComponentUpdate=r,t(n,e)}return u.displayName=\"Memo(\"+(n.displayName||n.name)+\")\",u.__f=u.prototype.isReactComponent=!0,u.type=n,u}(M.prototype=new n).isPureReactComponent=!0,M.prototype.shouldComponentUpdate=function(n,t){return E(this.props,n)||E(this.state,t)};var T=e.__b;e.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),T&&T(n)};var A=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.forward_ref\")||3911;function D(n){function t(t){var e=g({},t);return delete e.ref,n(e,t.ref||null)}return t.$$typeof=A,t.render=n,t.prototype.isReactComponent=t.__f=!0,t.displayName=\"ForwardRef(\"+(n.displayName||n.name)+\")\",t}var F=function(n,t){return null==n?null:r(r(n).map(t))},L={map:F,forEach:F,count:function(n){return n?r(n).length:0},only:function(n){var t=r(n);if(1!==t.length)throw\"Children.only\";return t[0]},toArray:r},O=e.__e;e.__e=function(n,t,e,r){if(n.then)for(var u,o=t;o=o.__;)if((u=o.__c)&&u.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k||[]),u.__c(n,t);O(n,t,e,r)};var U=e.unmount;function V(n,t,e){return n&&(n.__c&&n.__c.__H&&(n.__c.__H.__.forEach(function(n){\"function\"==typeof n.__c&&n.__c()}),n.__c.__H=null),null!=(n=g({},n)).__c&&(n.__c.__P===e&&(n.__c.__P=t),n.__c.__e=!0,n.__c=null),n.__k=n.__k&&n.__k.map(function(n){return V(n,t,e)})),n}function W(n,t,e){return n&&e&&(n.__v=null,n.__k=n.__k&&n.__k.map(function(n){return W(n,t,e)}),n.__c&&n.__c.__P===t&&(n.__e&&e.appendChild(n.__e),n.__c.__e=!0,n.__c.__P=e)),n}function P(){this.__u=0,this.o=null,this.__b=null}function j(n){var t=n.__&&n.__.__c;return t&&t.__a&&t.__a(n)}function z(n){var e,r,u,o=null;function i(i){if(e||(e=n()).then(function(n){n&&(o=n.default||n),u=!0},function(n){r=n,u=!0}),r)throw r;if(!u)throw e;return o?t(o,i):null}return i.displayName=\"Lazy\",i.__f=!0,i}function B(){this.i=null,this.l=null}e.unmount=function(n){var t=n.__c;t&&(t.__z=!0),t&&t.__R&&t.__R(),t&&32&n.__u&&(n.type=null),U&&U(n)},(P.prototype=new n).__c=function(n,t){var e=t.__c,r=this;null==r.o&&(r.o=[]),r.o.push(e);var u=j(r.__v),o=!1,i=function(){o||r.__z||(o=!0,e.__R=null,u?u(c):c())};e.__R=i;var l=e.__P;e.__P=null;var c=function(){if(!--r.__u){if(r.state.__a){var n=r.state.__a;r.__v.__k[0]=W(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__a:r.__b=null});t=r.o.pop();)t.__P=l,t.forceUpdate()}};r.__u++||32&t.__u||r.setState({__a:r.__b=r.__v.__k[0]}),n.then(i,i)},P.prototype.componentWillUnmount=function(){this.o=[]},P.prototype.render=function(n,e){if(this.__b){if(this.__v.__k){var r=document.createElement(\"div\"),o=this.__v.__k[0].__c;this.__v.__k[0]=V(this.__b,r,o.__O=o.__P)}this.__b=null}var i=e.__a&&t(u,null,n.fallback);return i&&(i.__u&=-33),[t(u,null,e.__a?null:n.children),i]};var H=function(n,t,e){if(++e[1]===e[0]&&n.l.delete(t),n.props.revealOrder&&(\"t\"!==n.props.revealOrder[0]||!n.l.size))for(e=n.i;e;){for(;e.length>3;)e.pop()();if(e[1]<e[0])break;n.i=e=e[2]}};function Z(n){return this.getChildContext=function(){return n.context},n.children}function Y(n){var e=this,r=n.h;if(e.componentWillUnmount=function(){o(null,e.v),e.v=null,e.h=null},e.h&&e.h!==r&&e.componentWillUnmount(),!e.v){for(var u=e.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;e.h=r,e.v={nodeType:1,parentNode:r,childNodes:[],__k:{__m:u.__m},contains:function(){return!0},namespaceURI:r.namespaceURI,insertBefore:function(n,t){this.childNodes.push(n),e.h.insertBefore(n,t)},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>1,1),e.h.removeChild(n)}}}o(t(Z,{context:e.context},n.__v),e.v)}function $(n,e){var r=t(Y,{__v:n,h:e});return r.containerInfo=e,r}(B.prototype=new n).__a=function(n){var t=this,e=j(t.__v),r=t.l.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),H(t,n,r)):u()};e?e(o):o()}},B.prototype.render=function(n){this.i=null,this.l=new Map;var t=r(n.children);n.revealOrder&&\"b\"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.l.set(t[e],this.i=[1,0,this.i]);return n.children},B.prototype.componentDidUpdate=B.prototype.componentDidMount=function(){var n=this;this.l.forEach(function(t,e){H(n,e,t)})};var q=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103,G=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,J=/^on(Ani|Tra|Tou|BeforeInp|Compo)/,K=/[A-Z0-9]/g,Q=\"undefined\"!=typeof document,X=function(n){return(\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol()?/fil|che|rad/:/fil|che|ra/).test(n)};function nn(n,t,e){return null==t.__k&&(t.textContent=\"\"),o(n,t),\"function\"==typeof e&&e(),n?n.__c:null}function tn(n,t,e){return i(n,t),\"function\"==typeof e&&e(),n?n.__c:null}n.prototype.isReactComponent=!0,[\"componentWillMount\",\"componentWillReceiveProps\",\"componentWillUpdate\"].forEach(function(t){Object.defineProperty(n.prototype,t,{configurable:!0,get:function(){return this[\"UNSAFE_\"+t]},set:function(n){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:n})}})});var en=e.event;e.event=function(n){return en&&(n=en(n)),n.persist=function(){},n.isPropagationStopped=function(){return this.cancelBubble},n.isDefaultPrevented=function(){return this.defaultPrevented},n.nativeEvent=n};var rn,un={configurable:!0,get:function(){return this.class}},on=e.vnode;e.vnode=function(n){\"string\"==typeof n.type&&function(n){var t=n.props,e=n.type,u={},o=-1==e.indexOf(\"-\");for(var i in t){var l=t[i];if(!(\"value\"===i&&\"defaultValue\"in t&&null==l||Q&&\"children\"===i&&\"noscript\"===e||\"class\"===i||\"className\"===i)){var c=i.toLowerCase();\"defaultValue\"===i&&\"value\"in t&&null==t.value?i=\"value\":\"download\"===i&&!0===l?l=\"\":\"translate\"===c&&\"no\"===l?l=!1:\"o\"===c[0]&&\"n\"===c[1]?\"ondoubleclick\"===c?i=\"ondblclick\":\"onchange\"!==c||\"input\"!==e&&\"textarea\"!==e||X(t.type)?\"onfocus\"===c?i=\"onfocusin\":\"onblur\"===c?i=\"onfocusout\":J.test(i)&&(i=c):c=i=\"oninput\":o&&G.test(i)?i=i.replace(K,\"-$&\").toLowerCase():null===l&&(l=void 0),\"oninput\"===c&&u[i=c]&&(i=\"oninputCapture\"),u[i]=l}}\"select\"==e&&(u.multiple&&Array.isArray(u.value)&&(u.value=r(t.children).forEach(function(n){n.props.selected=-1!=u.value.indexOf(n.props.value)})),null!=u.defaultValue&&(u.value=r(t.children).forEach(function(n){n.props.selected=u.multiple?-1!=u.defaultValue.indexOf(n.props.value):u.defaultValue==n.props.value}))),t.class&&!t.className?(u.class=t.class,Object.defineProperty(u,\"className\",un)):t.className&&(u.class=u.className=t.className),n.props=u}(n),n.$$typeof=q,on&&on(n)};var ln=e.__r;e.__r=function(n){ln&&ln(n),rn=n.__c};var cn=e.diffed;e.diffed=function(n){cn&&cn(n);var t=n.props,e=n.__e;null!=e&&\"textarea\"===n.type&&\"value\"in t&&t.value!==e.value&&(e.value=null==t.value?\"\":t.value),rn=null};var fn={ReactCurrentDispatcher:{current:{readContext:function(n){return rn.__n[n.__c].props.value},useCallback:v,useContext:d,useDebugValue:m,useDeferredValue:w,useEffect:h,useId:p,useImperativeHandle:y,useInsertionEffect:I,useLayoutEffect:s,useMemo:_,useReducer:b,useRef:S,useState:a,useSyncExternalStore:C,useTransition:k}}},an=\"18.3.1\";function sn(n){return t.bind(null,n)}function hn(n){return!!n&&n.$$typeof===q}function vn(n){return hn(n)&&n.type===u}function dn(n){return!!n&&\"string\"==typeof n.displayName&&0==n.displayName.indexOf(\"Memo(\")}function mn(n){return hn(n)?f.apply(null,arguments):n}function pn(n){return!!n.__k&&(o(null,n),!0)}function yn(n){return n&&(n.base||1===n.nodeType&&n)||null}var _n=function(n,t){return n(t)},bn=function(n,t){var r=e.debounceRendering;e.debounceRendering=function(n){return n()};var u=n(t);return e.debounceRendering=r,u},Sn=hn,gn={useState:a,useId:p,useReducer:b,useEffect:h,useLayoutEffect:s,useInsertionEffect:I,useTransition:k,useDeferredValue:w,useSyncExternalStore:C,startTransition:x,useRef:S,useImperativeHandle:y,useMemo:_,useCallback:v,useContext:d,useDebugValue:m,version:\"18.3.1\",Children:L,render:nn,hydrate:tn,unmountComponentAtNode:pn,createPortal:$,createElement:t,createContext:l,createFactory:sn,cloneElement:mn,createRef:c,Fragment:u,isValidElement:hn,isElement:Sn,isFragment:vn,isMemo:dn,findDOMNode:yn,Component:n,PureComponent:M,memo:N,forwardRef:D,flushSync:bn,unstable_batchedUpdates:_n,StrictMode:u,Suspense:P,SuspenseList:B,lazy:z,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:fn};export{L as Children,M as PureComponent,P as Suspense,B as SuspenseList,fn as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,mn as cloneElement,sn as createFactory,$ as createPortal,gn as default,yn as findDOMNode,bn as flushSync,D as forwardRef,tn as hydrate,Sn as isElement,vn as isFragment,dn as isMemo,hn as isValidElement,z as lazy,N as memo,nn as render,x as startTransition,pn as unmountComponentAtNode,_n as unstable_batchedUpdates,w as useDeferredValue,I as useInsertionEffect,C as useSyncExternalStore,k as useTransition,an as version};\n//# sourceMappingURL=compat.module.js.map\n","import React, { useEffect, useState } from 'react';\nimport { webPopupTextColor, WEB_POPUP_BG_SECTION_FALLBACK, WEB_POPUP_BUTTON_SLOT_PADDING, WEB_POPUP_FONT_STACK, WEB_POPUP_KEYFRAMES, WEB_POPUP_PAGE_TRANSITION_MS, WEB_POPUP_TEXT_SLOT_PADDING, WEB_POPUP_TEXT_VARIANT_STYLES, } from './constants';\nimport { placementMaxSize, resolveWebPopupPages, safeUrl, sanitizeWebPopupHtml, startPageOf, webPopupLinkTargetAttrs, } from './helpers';\nimport { webPopupBackgroundImageStyle, webPopupContainerStyle } from './layout';\n// Renders a popup from its model by interpreting each page's embedded layout\n// tree — the same node vocabulary the editor's canvas builds from: container\n// nodes become inline-styled grid divs, `Content` leaves render a named\n// zone's slot stack, `Image` leaves an image param. 'live' mode adds the\n// viewport chrome (overlay, placement, animation, close), 'preview' renders\n// just the popup box inline. Only one page renders at a time; buttons with a\n// `page` action switch pages. All styling is inline (shadow-DOM friendly, no\n// CSS files).\nconst ANIMATION_STYLE = {\n none: undefined,\n fade: 'pw-vpopup-fade 0.35s ease-out backwards',\n slide: 'pw-vpopup-slide 0.35s ease-out backwards',\n};\nfunction TextSlotView({ slot, align, inverse, colors }) {\n const style = {\n ...WEB_POPUP_TEXT_VARIANT_STYLES[slot.variant],\n textAlign: slot.align ?? align,\n padding: WEB_POPUP_TEXT_SLOT_PADDING,\n };\n const color = webPopupTextColor(slot.variant, colors, inverse);\n if (color)\n style.color = color;\n // The html comes from the editor's rich-text slots, but the json is\n // API-writable — sanitize on render (inline tags only, safe link hrefs).\n return React.createElement(\"div\", { style: style, dangerouslySetInnerHTML: { __html: sanitizeWebPopupHtml(slot.html) } });\n}\nfunction ButtonSlotView({ slot, accent, onRequestClose, onPageChange }) {\n const pill = {\n display: 'block',\n boxSizing: 'border-box',\n width: '100%',\n padding: '10px 25px',\n borderRadius: 3,\n fontSize: 14,\n fontWeight: 600,\n fontFamily: 'inherit',\n lineHeight: 1.5,\n textAlign: 'center',\n textDecoration: 'none',\n cursor: 'pointer',\n ...(slot.variant === 'secondary'\n ? { backgroundColor: '#FFFFFF', color: accent, border: `1px solid ${accent}` }\n : { backgroundColor: accent, color: '#FFFFFF', border: 'none' }),\n };\n const wrapper = { padding: WEB_POPUP_BUTTON_SLOT_PADDING };\n if (slot.action.type === 'close') {\n return (React.createElement(\"div\", { style: wrapper },\n React.createElement(\"button\", { type: \"button\", style: pill, onClick: onRequestClose }, slot.label)));\n }\n if (slot.action.type === 'page') {\n const target = slot.action.page;\n return (React.createElement(\"div\", { style: wrapper },\n React.createElement(\"button\", { type: \"button\", style: pill, onClick: () => onPageChange(target) }, slot.label)));\n }\n const href = safeUrl(slot.action.url);\n // No (safe) URL yet: an inert pill — not an '#' anchor opening a blank tab.\n if (!href) {\n return (React.createElement(\"div\", { style: wrapper },\n React.createElement(\"button\", { type: \"button\", style: pill }, slot.label)));\n }\n return (React.createElement(\"div\", { style: wrapper },\n React.createElement(\"a\", { href: href, ...webPopupLinkTargetAttrs(slot.action.target), style: pill }, slot.label)));\n}\n// A Content leaf: the named zone's slots (texts and buttons in order) as a\n// grid stack. An unknown zone key renders as an empty spot, not a crash.\nfunction ContentNodeView({ node, page, colors, leaf, onRequestClose, onPageChange }) {\n const zone = page.contents.find((z) => z.key === node.props.content);\n if (!zone)\n return null;\n if (leaf?.renderZone) {\n return React.createElement(\"div\", { style: { minWidth: 0 } }, leaf.renderZone(zone, node));\n }\n const align = node.props.align ?? 'left';\n const inverse = node.props.tone === 'inverse';\n return (React.createElement(\"div\", { style: { minWidth: 0 } }, zone.slots.map((slot) => (slot.type === 'text' ? (React.createElement(TextSlotView, { key: slot.key, slot: slot, align: align, inverse: inverse, colors: colors })) : (React.createElement(ButtonSlotView, { key: slot.key, slot: slot, accent: colors.accent, onRequestClose: onRequestClose, onPageChange: onPageChange }))))));\n}\nfunction ImageNodeView({ node, page, leaf }) {\n const image = page.images.find((i) => i.key === node.props.image);\n if (!image)\n return null;\n // The override sees srcless params too — an editor wants a placeholder\n // where the runtime shows nothing.\n if (leaf?.renderImage)\n return React.createElement(React.Fragment, null, leaf.renderImage(image, node));\n if (!image.src)\n return null;\n const style = { display: 'block', width: '100%', minWidth: 0 };\n if (image.fit) {\n style.height = '100%';\n style.objectFit = image.fit;\n }\n else {\n style.height = 'auto';\n }\n if (image.blur)\n style.filter = `blur(${image.blur}px)`;\n return React.createElement(\"img\", { src: image.src, alt: \"\", style: style });\n}\n// The tree interpreter: containers → grid divs, leaves → zone/image views.\nfunction LayoutNodeView({ node, page, colors, leaf, onRequestClose, onPageChange }) {\n if (node.type === 'Content') {\n return (React.createElement(ContentNodeView, { node: node, page: page, colors: colors, leaf: leaf, onRequestClose: onRequestClose, onPageChange: onPageChange }));\n }\n if (node.type === 'Image') {\n return React.createElement(ImageNodeView, { node: node, page: page, leaf: leaf });\n }\n const bgKey = node.props?.backgroundImage;\n const background = bgKey ? page.images.find((i) => i.key === bgKey) : undefined;\n const blur = background?.blur ?? 0;\n const dim = background?.dim ?? 0;\n const style = webPopupContainerStyle(node, blur > 0 ? undefined : background?.src || undefined, dim);\n if (bgKey)\n style.backgroundColor = WEB_POPUP_BG_SECTION_FALLBACK;\n const children = node.children.map((child, index) => (React.createElement(LayoutNodeView\n // Layout nodes are static per page render — positional keys are fine.\n , { \n // Layout nodes are static per page render — positional keys are fine.\n key: index, node: child, page: page, colors: colors, leaf: leaf, onRequestClose: onRequestClose, onPageChange: onPageChange })));\n if (blur > 0) {\n // backdrop-filter blurs what's painted BEHIND its element, never the\n // element's own background — so the image paints on an outer box and the\n // laid-out content rides an inner blurring layer covering it edge to\n // edge (grid/padding move onto that layer).\n const { backgroundColor, ...inner } = style;\n return (React.createElement(\"div\", { style: {\n minWidth: 0,\n backgroundColor,\n ...(background?.src ? webPopupBackgroundImageStyle(background.src, dim) : {}),\n } },\n React.createElement(\"div\", { style: {\n ...inner,\n backdropFilter: `blur(${blur}px)`,\n WebkitBackdropFilter: `blur(${blur}px)`,\n } }, children)));\n }\n return React.createElement(\"div\", { style: style }, children);\n}\n// The popup box: the shared chrome (background, radius, shadow) around one\n// resolved page's layout tree. Exported for the editor — its canvas is this\n// very interpreter with `leafRenderers` swapping the Content/Image leaves\n// for editable views (the container interpretation stays this component's,\n// which is what keeps the canvas true to the runtime); the viewport chrome\n// (placement, overlay, enter animation) is the caller's business there.\n// After a page switch (`animatePage`) the incoming content fades in — keyed\n// by page so the animation restarts per switch — and an explicit px height\n// glides via the transition (auto heights just snap).\nexport function WebPopupBox({ page, params, leafRenderers, animatePage = false, onRequestClose, onPageChange, }) {\n const style = {\n position: 'relative',\n boxSizing: 'border-box',\n overflow: 'hidden',\n backgroundColor: params.colors.background,\n fontFamily: WEB_POPUP_FONT_STACK,\n color: params.colors.text,\n borderRadius: params.borderRadius > 0 ? params.borderRadius : undefined,\n boxShadow: params.boxShadow && params.boxShadow !== 'none' ? params.boxShadow : undefined,\n transition: `height ${WEB_POPUP_PAGE_TRANSITION_MS}ms ease`,\n };\n if (page.height) {\n style.height = page.height;\n style.overflowY = 'auto';\n }\n return (React.createElement(\"div\", { style: style },\n React.createElement(\"div\", { key: page.key, style: animatePage ? { animation: `pw-vpopup-page ${WEB_POPUP_PAGE_TRANSITION_MS}ms ease-out backwards` } : undefined },\n React.createElement(LayoutNodeView, { node: page.layout, page: page, colors: params.colors, leaf: leafRenderers, onRequestClose: onRequestClose, onPageChange: onPageChange ?? (() => { }) }))));\n}\nfunction CloseButton({ onRequestClose }) {\n return (React.createElement(\"button\", { type: \"button\", \"aria-label\": \"Close\", onClick: onRequestClose, style: {\n position: 'absolute',\n top: 10,\n right: 10,\n width: 24,\n height: 24,\n padding: 0,\n border: 'none',\n borderRadius: '50%',\n background: 'rgba(255, 255, 255, 0.92)',\n boxShadow: '0 1px 3px rgba(16, 24, 40, 0.25)',\n color: '#667085',\n fontSize: 13,\n lineHeight: 1,\n cursor: 'pointer',\n } }, \"\\u2715\"));\n}\n// Fixed viewport placement from the placement param: anchored edges get the\n// offset, unanchored axes center via translate. No width = stretch between\n// the side gutters. The width is the ACTIVE page's (resolved page ?? chrome),\n// so the box re-anchors itself when a page switch changes the size.\nfunction fixedContainerStyle(params, width) {\n const { placement } = params;\n const style = {\n position: 'fixed',\n boxSizing: 'border-box',\n maxWidth: placementMaxSize(placement),\n maxHeight: placementMaxSize(placement),\n // The widget host is pointer-transparent (a corner banner must not block\n // the page); the popup itself takes clicks back.\n pointerEvents: 'auto',\n };\n if (width) {\n style.width = width;\n const h = placement.h;\n if (h === 'left')\n style.left = placement.offset;\n else if (h === 'right')\n style.right = placement.offset;\n else\n style.left = '50%';\n }\n else {\n // Stretch: pin both side edges regardless of the horizontal anchor.\n style.left = placement.offset;\n style.right = placement.offset;\n }\n if (placement.v === 'top')\n style.top = placement.offset;\n else if (placement.v === 'bottom')\n style.bottom = placement.offset;\n else\n style.top = '50%';\n const tx = width && placement.h === 'center' ? '-50%' : '0';\n const ty = placement.v === 'middle' ? '-50%' : '0';\n if (tx !== '0' || ty !== '0')\n style.transform = `translate(${tx}, ${ty})`;\n const anim = ANIMATION_STYLE[params.animation];\n if (anim)\n style.animation = anim;\n // A page switch that changes the (explicit) width glides instead of\n // jumping; the anchored edges keep the box pinned while it resizes.\n style.transition = `width ${WEB_POPUP_PAGE_TRANSITION_MS}ms ease`;\n return style;\n}\nexport function WebPopupReader({ params, mode = 'live', onRequestClose, leafRenderers }) {\n // null = never navigated: show the start page. Guarded against keys that\n // don't exist (anymore) — an edited/older document falls back gracefully.\n const [pageKey, setPageKey] = useState(null);\n // Only the active page's images are in the DOM — the rest would start\n // downloading on the page switch, leaving the previous picture on screen\n // until the new one arrives. Warm the browser cache for every page up front.\n useEffect(() => {\n resolveWebPopupPages(params).forEach((p) => p.images.forEach(({ src }) => {\n if (src)\n new Image().src = src;\n }));\n }, [params]);\n const pages = resolveWebPopupPages(params);\n if (pages.length === 0)\n return null;\n const page = pages.find((p) => p.key === pageKey) ?? startPageOf(params, pages);\n // null = the initial page: entry is the chrome's business (the enter\n // animation in live mode); the page fade only plays on actual switches.\n const animatePage = pageKey !== null;\n if (mode === 'preview') {\n return (React.createElement(\"div\", { style: {\n position: 'relative',\n width: page.width ?? '100%',\n transition: `width ${WEB_POPUP_PAGE_TRANSITION_MS}ms ease`,\n } },\n React.createElement(\"style\", null, WEB_POPUP_KEYFRAMES),\n React.createElement(WebPopupBox, { page: page, params: params, leafRenderers: leafRenderers, animatePage: animatePage, onRequestClose: onRequestClose, onPageChange: setPageKey })));\n }\n const overlay = params.overlay;\n return (React.createElement(React.Fragment, null,\n React.createElement(\"style\", null, WEB_POPUP_KEYFRAMES),\n overlay && (\n // Modal semantics: the dim is clickable and dismisses the popup.\n React.createElement(\"div\", { style: {\n position: 'fixed',\n inset: 0,\n backgroundColor: overlay.color,\n opacity: overlay.opacity,\n animation: 'pw-vpopup-overlay 0.2s ease-out backwards',\n pointerEvents: 'auto',\n }, onClick: onRequestClose })),\n React.createElement(\"div\", { style: fixedContainerStyle(params, page.width) },\n React.createElement(WebPopupBox, { page: page, params: params, leafRenderers: leafRenderers, animatePage: animatePage, onRequestClose: onRequestClose, onPageChange: setPageKey }),\n React.createElement(CloseButton, { onRequestClose: onRequestClose }))));\n}\n","import { render } from 'preact';\nimport {\n parseWebPopupJson, resolveWebPopupPages, WebPopupReader,\n type WebPopupParams,\n} from 'smart-blocks-utils';\n\n/**\n * Parse stored popup json into the renderable model. Returns null for\n * anything that is not a supported {version: 1, params} popup with at least\n * one resolvable page — including legacy pre-engine content (no `version`\n * field), which is deliberately unrenderable.\n */\nexport const parseWebPopupContent = (json: string): WebPopupParams | null => {\n const parsed = parseWebPopupJson(json);\n if (!parsed) {\n return null;\n }\n\n if (resolveWebPopupPages(parsed.params).length === 0) {\n return null;\n }\n\n return parsed.params;\n};\n\n/**\n * Mount the popup into the shadow-root container. The reader draws the whole\n * chrome itself: page-dim overlay (click closes), fixed viewport placement,\n * enter animation, the close button — and owns page switching for multi-page\n * popups (buttons with a `page` action).\n */\nexport const renderWebPopup = (\n container: HTMLElement,\n params: WebPopupParams,\n onRequestClose: () => void,\n): void => {\n render(\n <WebPopupReader\n params={params}\n mode=\"live\"\n onRequestClose={onRequestClose}\n />,\n container,\n );\n};\n","import { SUBSCRIPTION_FORMS_WIDGET_TAG, SUBSCRIPTION_FORMS_WIDGET_URL } from './constants';\n\nconst WIDGET_DEFINITION_TIMEOUT_MS = 10000;\n\nlet loadPromise: Promise<void> | null = null;\n\n/**\n * Loads the subscription forms widget (an ES module that registers the\n * <pushwoosh-subscribe-widget> custom element) exactly once per page.\n * Resolves when the custom element is defined.\n *\n * The wait is bounded by a timeout: a script that loads but throws during\n * evaluation never registers the element and never fires the script `error`\n * event, so `customElements.whenDefined()` alone would hang forever (and with\n * it the whole web popups pipeline). On failure the memoized promise is reset\n * so the next popup can retry.\n */\nexport function ensureSubscriptionFormsWidgetLoaded(): Promise<void> {\n if (loadPromise) {\n return loadPromise;\n }\n\n if (customElements.get(SUBSCRIPTION_FORMS_WIDGET_TAG)) {\n loadPromise = Promise.resolve();\n return loadPromise;\n }\n\n loadPromise = new Promise<void>((resolve, reject) => {\n let timeoutId = 0;\n\n const fail = (error: Error): void => {\n window.clearTimeout(timeoutId);\n loadPromise = null;\n reject(error);\n };\n\n timeoutId = window.setTimeout(() => {\n fail(new Error(`Subscription forms widget did not define <${SUBSCRIPTION_FORMS_WIDGET_TAG}> within ${WIDGET_DEFINITION_TIMEOUT_MS}ms`));\n }, WIDGET_DEFINITION_TIMEOUT_MS);\n\n const script = document.createElement('script');\n script.type = 'module';\n script.src = SUBSCRIPTION_FORMS_WIDGET_URL;\n script.onerror = () => {\n fail(new Error(`Failed to load subscription forms widget script: ${SUBSCRIPTION_FORMS_WIDGET_URL}`));\n };\n document.head.appendChild(script);\n\n customElements.whenDefined(SUBSCRIPTION_FORMS_WIDGET_TAG).then(() => {\n window.clearTimeout(timeoutId);\n resolve();\n });\n });\n\n return loadPromise;\n}\n","import { type TInboxMessagesStoreName, type TKeyValueStoreName, type TMainLogStoreName, type TMessageLogStoreName } from '../Storage.types';\n\nexport const STORE_NAME_KEY_VALUE: TKeyValueStoreName = 'keyValue';\nexport const STORE_NAME_MESSAGE_LOG: TMessageLogStoreName = 'messages';\nexport const STORE_NAME_MAIN_LOG: TMainLogStoreName = 'log';\nexport const STORE_NAME_INBOX_MESSAGES: TInboxMessagesStoreName = 'inboxMessages';\n\nexport const KEY_PATH_BASE_INCREMENT = 'id';\n","import { type TMigrationType, type TSdkStoreName } from '../Storage.types';\n\n/**\n * Check existed store, before create\n * @param name\n * @param storeCreator\n */\nexport function storeCreatorDecorator(name: TSdkStoreName, storeCreator: TMigrationType): TMigrationType {\n return function (database: IDBDatabase) {\n if (database.objectStoreNames.contains(name)) {\n return;\n }\n\n storeCreator(database);\n };\n}\n","import {\n STORE_NAME_INBOX_MESSAGES,\n STORE_NAME_KEY_VALUE,\n STORE_NAME_MAIN_LOG,\n STORE_NAME_MESSAGE_LOG,\n KEY_PATH_BASE_INCREMENT,\n} from './constants';\nimport { storeCreatorDecorator } from './helpers';\nimport {\n type TInboxMessagesIDBKeyPath,\n type TInboxMessagesIDBRemovalTimeIndex,\n type TInboxMessagesIDBStatusIndex,\n} from '../../../models/InboxMessages.types';\n\n/**\n * Create keyValue store migration\n * @param database\n */\nfunction createKeyValueStore(database: IDBDatabase) {\n database.createObjectStore(STORE_NAME_KEY_VALUE, { keyPath: 'key' });\n}\n\n/**\n * Create log store migration\n * @param database\n */\nfunction createLogStore(database: IDBDatabase) {\n const logStore = database.createObjectStore(\n STORE_NAME_MAIN_LOG,\n { keyPath: KEY_PATH_BASE_INCREMENT, autoIncrement: true },\n );\n logStore.createIndex('environment', 'environment', { unique: false });\n logStore.createIndex('date', 'date', { unique: false });\n logStore.createIndex('type', 'type', { unique: false });\n}\n\n/**\n * Create message log store migration\n * @param database\n */\nfunction createMessageLogStore(database: IDBDatabase) {\n const messagesStore = database.createObjectStore(\n STORE_NAME_MESSAGE_LOG,\n { keyPath: KEY_PATH_BASE_INCREMENT, autoIncrement: true },\n );\n messagesStore.createIndex('date', 'date', { unique: false });\n}\n\n/**\n * Create inbox messages store migration\n * @param database\n */\nfunction createInboxMessagesStore(database: IDBDatabase) {\n const keyPath: TInboxMessagesIDBKeyPath = 'inbox_id';\n const statusIndex: TInboxMessagesIDBStatusIndex = 'status';\n const removalTimeIndex: TInboxMessagesIDBRemovalTimeIndex = 'rt';\n\n const store = database.createObjectStore(STORE_NAME_INBOX_MESSAGES,\n { keyPath, autoIncrement: false },\n );\n store.createIndex(statusIndex, statusIndex, { unique: false, multiEntry: true });\n store.createIndex(removalTimeIndex, removalTimeIndex, { unique: false, multiEntry: true });\n}\n\nexport default [\n storeCreatorDecorator(STORE_NAME_KEY_VALUE, createKeyValueStore),\n storeCreatorDecorator(STORE_NAME_MAIN_LOG, createLogStore),\n storeCreatorDecorator(STORE_NAME_MESSAGE_LOG, createMessageLogStore),\n storeCreatorDecorator(STORE_NAME_INBOX_MESSAGES, createInboxMessagesStore),\n];\n","import { default as migrationsInitial } from './initial';\nimport { type TMigrationType } from '../Storage.types';\n\nexport default class Migrations {\n get all(): Array<TMigrationType> {\n return migrationsInitial;\n }\n}\n","import Migrations from './Migrations';\nimport { type TMigrationType } from '../Storage.types';\n\nexport default class MigrationExecutor {\n db: IDBDatabase;\n migrationsBuilder: Migrations;\n\n constructor(\n db: IDBDatabase,\n migrationsBuilder: Migrations = new Migrations(),\n ) {\n this.db = db;\n this.migrationsBuilder = migrationsBuilder;\n }\n\n applyMigrations() {\n this.applyMigrationsPack(this.migrationsBuilder.all);\n }\n\n applyMigrationsPack(migrationsPack: Array<TMigrationType>) {\n migrationsPack.forEach((migration) => {\n migration(this.db);\n });\n }\n}\n","import {\n STORE_NAME_KEY_VALUE,\n STORE_NAME_MAIN_LOG,\n STORE_NAME_MESSAGE_LOG,\n} from '../modules/storage/migrations/constants';\nimport MigrationExecutor from '../modules/storage/migrations/MigrationExecutor';\nimport { type IIDBOpenEventTargetWithResult } from '../modules/storage/Storage.types';\nimport version from '../modules/storage/version';\n\ndeclare const self: ServiceWorkerGlobalScope;\n\nfunction onversionchange(database: IDBDatabase, event: Event) {\n console.info('onversionchange', event);\n database.close();\n}\n\nlet databasePromise: Promise<IDBDatabase>;\nexport function getInstance(): Promise<IDBDatabase> {\n if (!databasePromise) {\n databasePromise = new Promise<IDBDatabase>((resolve, reject) => {\n const request: IDBOpenDBRequest = indexedDB.open('PUSHWOOSH_SDK_STORE', version);\n request.onsuccess = (event) => {\n const database: IDBDatabase = (event.target as IIDBOpenEventTargetWithResult).result;\n database.onversionchange = onversionchange.bind(null, database, reject);\n resolve(database);\n };\n\n request.onerror = () => reject(request.error);\n\n request.onupgradeneeded = (event) => {\n const database: IDBDatabase = (event.target as IIDBOpenEventTargetWithResult).result;\n database.onversionchange = onversionchange.bind(null, database, reject);\n\n const migrationExecutor = new MigrationExecutor(database);\n migrationExecutor.applyMigrations();\n };\n });\n }\n return databasePromise;\n}\n\nfunction getInstanceWithPromise(executor: any): any {\n return getInstance().then((database) => (\n new Promise((resolve, reject) => executor(database, resolve, reject))\n ));\n}\n\nfunction createKeyValue(name: string) {\n return {\n get<K extends string, D>(key: K, defaultValue?: D) {\n return getInstanceWithPromise((database: IDBDatabase, resolve: any, reject: any) => {\n const request = database.transaction(name).objectStore(name).get(key);\n\n /** @TODO\n * we cant invoke \"resolve\" or \"reject\" in onsuccess or onerror because\n * it leads to bugs in Safari when we try to get permissions for notifications\n *\n * Checking status of request in setTimeout fixes this bug\n */\n let isComplete = false;\n let isError = false;\n let timeout: any;\n\n const check = () => {\n clearTimeout(timeout);\n if (isComplete) {\n resolve(request.result?.value || defaultValue);\n } else if (isError) {\n reject(request.error);\n } else {\n timeout = setTimeout(check, 0);\n }\n };\n\n request.onsuccess = () => isComplete = true;\n request.onerror = () => isError = true;\n check();\n });\n },\n\n getAll() {\n return getInstanceWithPromise((database: IDBDatabase, resolve: any, reject: any) => {\n const result: { [key: string]: any } = {};\n const cursor = database.transaction(name).objectStore(name).openCursor();\n let isComplete = false;\n let isError = false;\n let timeout: any;\n\n /** @TODO\n * we cant invoke \"resolve\" or \"reject\" in onsuccess or onerror because\n * it leads to bugs in Safari when we try to get permissions for notifications\n *\n * Checking status of request in setTimeout fixes this bug\n */\n const check = () => {\n clearTimeout(timeout);\n if (isComplete) {\n resolve(result);\n } else if (isError) {\n reject(cursor.error);\n } else {\n timeout = setTimeout(check, 0);\n }\n };\n\n cursor.onsuccess = (event) => {\n const cursorResult = (event.target as any).result;\n if (cursorResult) {\n result[cursorResult.key] = cursorResult.value.value;\n cursorResult.continue();\n } else {\n isComplete = true;\n }\n };\n cursor.onerror = () => isError = true;\n check();\n });\n },\n\n async extend(key: string, value: any) {\n const oldValues = await this.get(key);\n const { ...newValues } = value;\n await this.set(key, { ...oldValues, ...newValues });\n },\n\n set<K, D>(key: K, value: D) {\n return getInstanceWithPromise((database: IDBDatabase, resolve: any, reject: any) => {\n const request = database.transaction([name], 'readwrite').objectStore(name).put({ key, value });\n let isComplete = false;\n let isError = false;\n let timeout: any;\n\n /** @TODO\n * we cant invoke \"resolve\" or \"reject\" in onsuccess or onerror because\n * it leads to bugs in Safari when we try to get permissions for notifications\n *\n * Checking status of request in setTimeout fixes this bug\n */\n const check = () => {\n clearTimeout(timeout);\n if (isComplete) {\n resolve(key);\n } else if (isError) {\n reject(request.error);\n } else {\n timeout = setTimeout(check, 0);\n }\n };\n\n request.onsuccess = () => isComplete = true;\n request.onerror = () => isError = true;\n check();\n });\n },\n };\n}\n\nexport abstract class LogBase {\n protected abstract name: string;\n protected abstract maxItems: number;\n _add(obj: any) {\n return getInstanceWithPromise((database: IDBDatabase, resolve: any, reject: any) => {\n const request = database.transaction([this.name], 'readwrite').objectStore(this.name).add(obj);\n request.onsuccess = () => {\n resolve(obj);\n };\n request.onerror = () => {\n reject(request.error);\n };\n }).then((obj: any) => {\n return this.getAll().then((items: { id: number }[]) => {\n if (Array.isArray(items)) {\n const ids = items.map((i) => i.id).sort((a, b) => {\n if (a == b) return 0;\n return a < b ? 1 : -1;\n });\n if (ids.length > this.maxItems) {\n return Promise.all(ids.slice(this.maxItems).map((id) => this.delete(id))).then(() => obj);\n }\n }\n return obj;\n });\n });\n }\n\n delete(key: any) {\n return getInstanceWithPromise((database: IDBDatabase, resolve: any, reject: any) => {\n const request = database.transaction([this.name], 'readwrite').objectStore(this.name).delete(key);\n request.onsuccess = () => {\n resolve(request.result);\n };\n request.onerror = () => {\n reject(request.error);\n };\n });\n }\n\n getAll() {\n return getInstanceWithPromise((database: IDBDatabase, resolve: any, reject: any) => {\n const result: any[] = [];\n const cursor = database.transaction(this.name).objectStore(this.name).openCursor();\n cursor.onsuccess = (ev) => {\n const cursorResult = (ev.target as any).result;\n if (cursorResult) {\n if (cursorResult.value) {\n result.push(cursorResult.value);\n }\n cursorResult.continue();\n } else {\n resolve(result);\n }\n };\n cursor.onerror = () => {\n reject(cursor.error);\n };\n });\n }\n}\n\nexport class LogLog extends LogBase {\n protected name = STORE_NAME_MAIN_LOG;\n protected maxItems = 100;\n protected environment = (typeof self !== 'undefined' && self.registration) ? 'worker' : 'browser';\n add(type: string, message: any, additional?: any) {\n const obj: any = {\n type,\n environment: this.environment,\n message: `${message}`,\n date: new Date(),\n };\n if (message instanceof Error) {\n obj.stack = message.stack;\n }\n if (additional) {\n obj.additional = additional;\n }\n return this._add(obj);\n }\n}\n\nexport class LogMessage extends LogBase {\n protected name = STORE_NAME_MESSAGE_LOG;\n protected maxItems = 25;\n add(log: any) {\n return this._add({\n ...log,\n date: new Date(),\n });\n }\n}\n\nexport const keyValue = createKeyValue(STORE_NAME_KEY_VALUE);\nexport const log = new LogLog();\nexport const message = new LogMessage();\n","import { log as logStorage } from './storage';\n\nconst levels: { [key: string]: number } = {\n error: 1,\n info: 2,\n debug: 3,\n};\n\nlet limitLevel = 3;\n\ntype TWriteType = 'error' | 'apirequest' | 'info';\n\ninterface ILogger {\n setLevel(level: string): void;\n error(...args: any[]): void;\n info(...args: any[]): void;\n debug(...args: any[]): void;\n write(type: TWriteType, message: any, additional?: any): Promise<void>;\n isManualLevel(): boolean;\n [key: string]: any;\n}\n\nconst Logger: ILogger = {\n setLevel(level) {\n if (!levels[level]) {\n level = 'error';\n }\n limitLevel = levels[level];\n },\n write(type: TWriteType, message: any, additional?: any) {\n if (type === 'error') {\n this.error(message);\n } else {\n this.info(message);\n }\n return logStorage.add(type, message, additional);\n },\n} as ILogger;\n\nObject.keys(levels).forEach((levelName: string) => {\n const levelNumber = levels[levelName];\n Logger[levelName] = (...args: any[]) => {\n if (levelNumber <= limitLevel) {\n console.groupCollapsed(levelName);\n console.info('', ...args);\n console.trace('trace');\n console.groupEnd();\n }\n };\n});\n\nexport function logAndThrowError(error: string) {\n const logText = new Error(error);\n Logger.write('error', logText, 'logAndThrowError');\n throw logText;\n}\n\nexport function logAndRejectError(error: string, reject: (e: any) => void) {\n const logText = new Error(error);\n Logger.write('error', logText, 'logAndRejectError');\n reject(logText);\n}\n\nexport { Logger };\n","import { type WebPopupParams } from 'smart-blocks-utils';\n\nimport { POPUP_HOST_Z_INDEX, SUBSCRIPTION_FORMS_WIDGET_TAG, WEB_POPUPS_WIDGET_NAMESPACE } from './constants';\nimport { parseWebPopupContent, renderWebPopup } from './renderer';\nimport { ensureSubscriptionFormsWidgetLoaded } from './subscriptionFormsWidgetLoader';\nimport { type WebPopup } from './types';\nimport { Logger } from '../../core/logger';\nimport { type Pushwoosh } from '../../core/Pushwoosh';\n\ntype LoadedWebPopup =\n | { popup: WebPopup; kind: 'content'; parsed: WebPopupParams }\n | { popup: WebPopup; kind: 'subscription-form'; formCode: string };\n\nexport class WebPopupsWidget {\n private readonly pw: Pushwoosh;\n\n private isRecurringVisitor = false;\n\n private readonly loadedPopups = new Map<string, LoadedWebPopup>();\n\n private readonly pendingTimers = new Map<string, { timeoutId: number; loaded: LoadedWebPopup }>();\n\n private isNavigationSubscribed = false;\n\n private openPopupsCount = 0;\n\n private bodyOverflowBeforeLock: string | null = null;\n\n private lockBodyScroll(): void {\n if (this.openPopupsCount === 0) {\n this.bodyOverflowBeforeLock = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n }\n this.openPopupsCount += 1;\n }\n\n private unlockBodyScroll(): void {\n this.openPopupsCount = Math.max(0, this.openPopupsCount - 1);\n if (this.openPopupsCount === 0 && this.bodyOverflowBeforeLock !== null) {\n document.body.style.overflow = this.bodyOverflowBeforeLock;\n this.bodyOverflowBeforeLock = null;\n }\n }\n\n constructor(pw: Pushwoosh) {\n this.pw = pw;\n }\n\n public async run(): Promise<void> {\n const { pw } = this;\n\n await pw.api.ensureDeviceRegistered();\n\n this.isRecurringVisitor = await pw.data.getIsRecurringVisitor();\n\n const webPopups = await pw.api.getPopupForms();\n\n const results = await Promise.allSettled(webPopups.map((webPopup) => this.loadWebPopup(webPopup)));\n results.forEach((result, index) => {\n if (result.status === 'rejected') {\n Logger.error(result.reason, `Failed to load web popup \"${webPopups[index].code}\"`);\n }\n });\n\n this.subscribeToNavigation();\n this.renderForCurrentPage();\n\n await pw.data.setIsRecurringVisitor(true);\n }\n\n private async loadWebPopup(webPopup: WebPopup): Promise<void> {\n const canBeShown = await this.checkStrongCondition(webPopup);\n if (!canBeShown) {\n return;\n }\n\n if (webPopup.subscription_form_code) {\n // The popup shows a hosted subscription form; the form itself is fetched\n // and rendered by the external widget, we only need its script ready.\n await ensureSubscriptionFormsWidgetLoaded();\n this.loadedPopups.set(webPopup.code, {\n popup: webPopup,\n kind: 'subscription-form',\n formCode: webPopup.subscription_form_code,\n });\n return;\n }\n\n if (!webPopup.popup_form_content_code) {\n Logger.error(\n new Error('Web popup has no source'),\n `Web popup \"${webPopup.code}\" has neither content nor subscription form; skipping`,\n );\n return;\n }\n\n const content = await this.pw.api.getPopupFormContent(webPopup.popup_form_content_code);\n const parsed = parseWebPopupContent(content.json);\n if (!parsed) {\n // Legacy / unknown format — this popup is broken and never shows.\n Logger.error(\n new Error('Unsupported popup content format'),\n `Web popup \"${webPopup.code}\" content is not a supported {version, params} popup; skipping`,\n );\n return;\n }\n\n this.loadedPopups.set(webPopup.code, { popup: webPopup, kind: 'content', parsed });\n }\n\n private renderForCurrentPage(): void {\n this.cancelPendingForUnmatchedPages();\n\n const toRender: Array<[string, LoadedWebPopup]> = [];\n\n this.loadedPopups.forEach((loaded, code) => {\n if (this.checkSoftCondition(loaded.popup)) {\n toRender.push([code, loaded]);\n }\n });\n\n toRender.forEach(([code, loaded]) => {\n this.addToQueue(loaded);\n this.loadedPopups.delete(code);\n });\n }\n\n private cancelPendingForUnmatchedPages(): void {\n this.pendingTimers.forEach(({ timeoutId, loaded }, code) => {\n if (this.checkSoftCondition(loaded.popup)) {\n return;\n }\n\n window.clearTimeout(timeoutId);\n this.pendingTimers.delete(code);\n this.loadedPopups.set(code, loaded);\n });\n }\n\n private subscribeToNavigation(): void {\n if (this.isNavigationSubscribed) {\n return;\n }\n\n this.isNavigationSubscribed = true;\n\n const onNavigate = (): void => this.renderForCurrentPage();\n\n const nav = (window as Window & { navigation?: EventTarget }).navigation;\n if (nav && typeof nav.addEventListener === 'function') {\n nav.addEventListener('currententrychange', onNavigate);\n return;\n }\n\n window.addEventListener('popstate', onNavigate);\n window.addEventListener('hashchange', onNavigate);\n\n // Programmatic pushState/replaceState fires no event; poll location instead\n // of monkey-patching history so SPA routers stay untouched.\n let lastHref = window.location.href;\n window.setInterval(() => {\n if (window.location.href !== lastHref) {\n lastHref = window.location.href;\n onNavigate();\n }\n }, 500);\n }\n\n private async checkStrongCondition(webPopup: WebPopup): Promise<boolean> {\n const conditions: Array<boolean> = await Promise.all([\n this.checkCanBeShownByDeviceTypeCondition(webPopup),\n this.checkCanBeShownByFrequencyCondition(webPopup),\n this.checkCanBeShownByVisitorsTypeCondition(webPopup),\n ]);\n\n return conditions.every((condition) => condition);\n }\n\n private checkSoftCondition(webPopup: WebPopup): boolean {\n return this.checkCanBeShownByMatchingPagesCondition(webPopup);\n }\n\n private checkCanBeShownByDeviceTypeCondition(webPopup: WebPopup): boolean {\n const { device_type: deviceType } = webPopup;\n\n const formFactor = this.pw.platformChecker.formFactor;\n if (deviceType === 'ALL') {\n return true;\n }\n\n return deviceType === formFactor;\n }\n\n private async checkCanBeShownByFrequencyCondition(webPopup: WebPopup): Promise<boolean> {\n const { frequency, code } = webPopup;\n\n if (frequency === 'ONCE') {\n const shown = await this.pw.data.getShownWebPopups();\n return !shown.includes(code);\n }\n\n if (frequency === 'ONCE_PER_SESSION') {\n return sessionStorage.getItem(this.getSessionStorageKey(code)) === null;\n }\n\n return true;\n }\n\n private checkCanBeShownByMatchingPagesCondition(webPopup: WebPopup): boolean {\n const { matching_pages: matchingPages } = webPopup;\n if (!matchingPages) {\n return true;\n }\n\n if (matchingPages.length === 0) {\n return true;\n }\n\n return matchingPages.includes(window.location.pathname);\n }\n\n private checkCanBeShownByVisitorsTypeCondition(webPopup: WebPopup): boolean {\n const { visitors_type: visitorsType } = webPopup;\n\n if (visitorsType === 'NEW') {\n return !this.isRecurringVisitor;\n }\n\n if (visitorsType === 'RECURRING') {\n return this.isRecurringVisitor;\n }\n\n return true;\n }\n\n private async markAsShown(webPopup: WebPopup): Promise<void> {\n this.pw.api.recordPopupFormEvent(webPopup.code, 2).catch((error) => {\n Logger.error(error, `Failed to record web popup shown event for \"${webPopup.code}\"`);\n });\n const { frequency, code } = webPopup;\n\n if (frequency === 'ONCE') {\n await this.pw.data.addShownWebPopup(code);\n return;\n }\n\n if (frequency === 'ONCE_PER_SESSION') {\n sessionStorage.setItem(this.getSessionStorageKey(code), '1');\n }\n }\n\n private getSessionStorageKey(code: string): string {\n return `${WEB_POPUPS_WIDGET_NAMESPACE}.shown.${code}`;\n }\n\n private addToQueue(loaded: LoadedWebPopup): void {\n const webPopup = loaded.popup;\n\n this.pw.api.recordPopupFormEvent(webPopup.code, 1).catch((error) => {\n Logger.error(error, `Failed to record web popup queued event for \"${webPopup.code}\"`);\n });\n\n const timeoutId = window.setTimeout(() => {\n this.pendingTimers.delete(webPopup.code);\n\n // The host is pointer-transparent: the reader's overlay / popup box\n // re-enable pointer events themselves, so a corner banner without a\n // dim never blocks the page underneath.\n const host = document.createElement('div');\n host.id = `${WEB_POPUPS_WIDGET_NAMESPACE}-${webPopup.code}`;\n host.style.position = 'fixed';\n host.style.inset = '0';\n host.style.zIndex = String(POPUP_HOST_Z_INDEX);\n host.style.pointerEvents = 'none';\n document.body.appendChild(host);\n\n const shadow = host.attachShadow({ mode: 'open' });\n const container = document.createElement('div');\n shadow.appendChild(container);\n\n // Only a dimmed (modal) popup locks the page scroll; banners and bars\n // leave the page usable. A subscription form popup is always modal.\n const modal = loaded.kind === 'subscription-form' || !!loaded.parsed.overlay;\n if (modal) {\n this.lockBodyScroll();\n }\n\n const closePopup = (): void => {\n if (modal) {\n this.unlockBodyScroll();\n }\n host.remove();\n this.pw.dispatchEvent('hide-web-popup', { code: webPopup.code });\n };\n\n if (loaded.kind === 'subscription-form') {\n // The widget draws only the form card (hosted mode); the SDK provides\n // the backdrop, centering and close-on-backdrop-click.\n this.renderSubscriptionForm(container, loaded.formCode, closePopup);\n } else {\n // The reader draws the whole chrome (overlay that closes on click,\n // placement, animation, the close button and close-action buttons).\n renderWebPopup(container, loaded.parsed, closePopup);\n }\n\n this.markAsShown(webPopup).catch((error) => {\n Logger.error(error, `Failed to mark web popup \"${webPopup.code}\" as shown`);\n });\n this.pw.dispatchEvent('show-web-popup', { code: webPopup.code });\n }, webPopup.delay * 1000);\n\n this.pendingTimers.set(webPopup.code, { timeoutId, loaded });\n }\n\n private renderSubscriptionForm(container: HTMLElement, formCode: string, onRequestClose: () => void): void {\n const backdrop = document.createElement('div');\n backdrop.style.position = 'absolute';\n backdrop.style.inset = '0';\n backdrop.style.background = 'rgba(0, 0, 0, 0.5)';\n backdrop.style.pointerEvents = 'auto';\n backdrop.style.display = 'flex';\n backdrop.style.alignItems = 'center';\n backdrop.style.justifyContent = 'center';\n backdrop.style.padding = '20px';\n backdrop.style.boxSizing = 'border-box';\n backdrop.addEventListener('click', (event) => {\n if (event.target === backdrop) {\n onRequestClose();\n }\n });\n\n const widget = document.createElement(SUBSCRIPTION_FORMS_WIDGET_TAG) as HTMLElement & { formCode: string };\n widget.formCode = formCode;\n // Hosted mode: the widget skips its own frequency/delay/overlay and\n // dispatches `esw-close` when it wants (or needs) to be dismissed.\n widget.setAttribute('hosted-mode', '');\n widget.addEventListener('esw-close', onRequestClose);\n\n backdrop.appendChild(widget);\n container.appendChild(backdrop);\n }\n}\n"],"names":["root","factory","exports","module","define","amd","a","i","this","__webpack_require__","definition","Array","isArray","length","key","binding","o","Object","defineProperty","enumerable","value","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","WEB_POPUPS_WIDGET_NAMESPACE","SUBSCRIPTION_FORMS_WIDGET_URL","SUBSCRIPTION_FORMS_WIDGET_TAG","n","preact_module_l","u","r","e","f","c","s","h","p","v","y","d","w","_","g","m","l","b","parentNode","removeChild","k","t","arguments","children","defaultProps","x","type","props","ref","__k","__","__b","__e","__c","constructor","__v","__i","__u","vnode","S","C","context","$","I","__P","__d","q","__n","namespaceURI","D","P","base","some","A","push","H","__r","debounceRendering","sort","shift","L","T","J","j","nextSibling","String","O","K","insertBefore","nodeType","F","z","setProperty","test","N","style","cssText","replace","toLowerCase","slice","addEventListener","removeEventListener","removeAttribute","setAttribute","V","event","M","render","contextType","__E","Q","sub","state","__h","_sb","__s","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","apply","componentWillUpdate","componentDidUpdate","getChildContext","getSnapshotBeforeUpdate","E","then","indexOf","B","G","diffed","map","localName","document","createTextNode","createElementNS","is","__m","data","defaultValue","childNodes","attributes","name","__html","innerHTML","content","current","unmount","componentWillUnmount","R","documentElement","firstChild","U","W","getDerivedStateFromError","setState","componentDidCatch","forceUpdate","Promise","bind","resolve","setTimeout","Math","random","toString","jsxRuntime_module_f","jsxRuntime_module_u","__source","__self","SAFE_URL_PROTOCOL","WEB_POPUP_DEFAULT_COLORS","WEB_POPUP_TEXT_VARIANT_STYLES","h1","fontSize","fontWeight","lineHeight","h2","h3","body","caption","eyebrow","letterSpacing","icon","INVERSE_TEXT_ALPHAS","webPopupTextColor","variant","colors","inverse","color","alpha","hex","exec","full","split","join","parseInt","inverseColorAt","textInverse","textSecondary","text","WEB_POPUP_KEYFRAMES","CONTAINER_TYPES","ORDERS","ALIGN_ITEMS","JUSTIFY_CONTENT","TEXT_ALIGNS","TONES","MAX_LENGTH_PX","LENGTH_UNIT_MAX","px","em","rem","LENGTH_PATTERN","TRACK_UNIT_MAX","fr","TRACK_PATTERN","TRACK_KEYWORDS","oneOf","allowed","includes","undefined","cssLength","Number","isFinite","min","max","match","trim","amount","unit","parseFloat","BOX_SIDES","trackSize","token","nonEmptyString","containerProps","raw","gap","padding","whole","sides","side","sideValue","keys","boxPadding","alignItems","justifyContent","backgroundImage","sizes","isInteger","tokens","clamped","every","trackSizes","normalizeNode","depth","budget","nodes","node","out","align","tone","image","child","normalized","order","reverse","normalizeWebPopupLayout","WEB_POPUP_VALUE_KEY_PATTERN","VALUE_REF_PATTERN","substituteString","values","substituteWebPopupLayoutValues","layout","substituteNode","BINDING_PROPS","Set","entries","has","webPopupCssLength","webPopupTracksValue","childCount","webPopupBackgroundImageStyle","src","dim","JSON","stringify","scrim","backgroundSize","backgroundPosition","webPopupContainerStyle","backgroundSrc","backgroundDim","display","minWidth","gridAutoFlow","gridTemplateColumns","gridTemplateRows","top","right","bottom","left","webPopupPaddingValue","assign","safeUrl","url","trimmed","startsWith","webPopupLinkTargetAttrs","target","rel","SANITIZE_ALLOWED_TAGS","copySanitized","from","to","doc","appendChild","textContent","el","tagName","clean","createElement","href","getAttribute","sanitizeWebPopupHtml","html","parsed","DOMParser","parseFromString","colorString","normalizeWebPopupColors","params","background","accent","IMAGE_FITS","normalizeImages","img","label","fit","blur","LENGTH_CONTROL_UNITS","finiteNumber","normalizeValueControl","control","kind","units","filter","options","option","normalizeWebPopupValues","webPopupValuesMap","fromEntries","normalizeContents","zone","slots","validSize","resolveWebPopupPageSize","own","shared","resolveWebPopupPages","page","pages","width","height","images","contents","placementMaxSize","placement","offset","hooks_module_t","hooks_module_r","hooks_module_u","hooks_module_i","hooks_module_o","hooks_module_f","hooks_module_c","hooks_module_e","hooks_module_a","hooks_module_v","hooks_module_l","hooks_module_m","hooks_module_p","hooks_module_s","__H","hooks_module_d","hooks_module_y","hooks_module_D","__N","__f","hooks_module_h","hooks_module_C","hooks_module_","hooks_module_A","hooks_module_T","hooks_module_F","concat","hooks_module_q","hooks_module_x","hooks_module_P","useDebugValue","hooks_module_g","hooks_module_j","hooks_module_z","hooks_module_B","requestAnimationFrame","hooks_module_w","hooks_module_k","clearTimeout","cancelAnimationFrame","compat_module_g","compat_module_E","compat_module_C","compat_module_R","compat_module_x","compat_module_w","compat_module_k","compat_module_I","compat_module_M","isPureReactComponent","compat_module_T","compat_module_A","for","compat_module_F","compat_module_L","forEach","count","only","toArray","compat_module_O","compat_module_U","compat_module_V","compat_module_W","compat_module_P","compat_module_j","__a","compat_module_B","__z","__R","__O","pop","fallback","compat_module_H","delete","revealOrder","size","Z","Y","contains","splice","Map","set","compat_module_q","compat_module_G","compat_module_J","compat_module_K","compat_module_Q","compat_module_X","isReactComponent","configurable","writable","en","persist","isPropagationStopped","cancelBubble","isDefaultPrevented","defaultPrevented","nativeEvent","rn","un","class","on","multiple","selected","className","$$typeof","ln","cn","fn","ReactCurrentDispatcher","readContext","useCallback","useContext","useDeferredValue","useEffect","useId","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useSyncExternalStore","useTransition","hn","gn","startTransition","version","Children","hydrate","unmountComponentAtNode","createPortal","containerInfo","createContext","add","Provider","__l","Consumer","createFactory","cloneElement","createRef","Fragment","isValidElement","isElement","isFragment","isMemo","displayName","findDOMNode","Component","PureComponent","memo","forwardRef","flushSync","unstable_batchedUpdates","StrictMode","Suspense","SuspenseList","lazy","default","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ANIMATION_STYLE","none","fade","slide","TextSlotView","slot","textAlign","dangerouslySetInnerHTML","ButtonSlotView","onRequestClose","onPageChange","pill","boxSizing","borderRadius","fontFamily","textDecoration","cursor","backgroundColor","border","wrapper","action","onClick","ContentNodeView","leaf","find","renderZone","ImageNodeView","renderImage","objectFit","alt","LayoutNodeView","bgKey","index","inner","backdropFilter","WebkitBackdropFilter","WebPopupBox","leafRenderers","animatePage","position","overflow","boxShadow","transition","overflowY","animation","CloseButton","fixedContainerStyle","maxWidth","maxHeight","pointerEvents","tx","ty","transform","anim","WebPopupReader","mode","pageKey","setPageKey","Image","startPage","startPageOf","overlay","inset","opacity","parseWebPopupContent","json","parse","candidate","parseWebPopupJson","loadPromise","STORE_NAME_KEY_VALUE","STORE_NAME_MESSAGE_LOG","STORE_NAME_INBOX_MESSAGES","storeCreatorDecorator","storeCreator","database","objectStoreNames","initial","createObjectStore","keyPath","logStore","autoIncrement","createIndex","unique","statusIndex","store","multiEntry","Migrations","all","MigrationExecutor","db","migrationsBuilder","applyMigrations","applyMigrationsPack","migrationsPack","migration","onversionchange","console","info","close","databasePromise","getInstanceWithPromise","executor","reject","request","indexedDB","open","onsuccess","result","onerror","error","onupgradeneeded","LogBase","_add","transaction","objectStore","getAll","items","ids","id","maxItems","openCursor","ev","cursorResult","continue","log","environment","self","registration","message","additional","date","Date","Error","stack","levels","debug","limitLevel","Logger","setLevel","level","write","levelName","levelNumber","args","groupCollapsed","trace","groupEnd","WebPopupsWidget","lockBodyScroll","openPopupsCount","bodyOverflowBeforeLock","unlockBodyScroll","pw","isRecurringVisitor","loadedPopups","pendingTimers","isNavigationSubscribed","run","api","ensureDeviceRegistered","getIsRecurringVisitor","webPopups","getPopupForms","allSettled","webPopup","loadWebPopup","status","reason","code","subscribeToNavigation","renderForCurrentPage","setIsRecurringVisitor","checkStrongCondition","subscription_form_code","customElements","timeoutId","fail","window","script","head","whenDefined","popup","formCode","popup_form_content_code","getPopupFormContent","cancelPendingForUnmatchedPages","toRender","loaded","checkSoftCondition","addToQueue","onNavigate","nav","navigation","lastHref","location","setInterval","checkCanBeShownByDeviceTypeCondition","checkCanBeShownByFrequencyCondition","checkCanBeShownByVisitorsTypeCondition","condition","checkCanBeShownByMatchingPagesCondition","device_type","deviceType","formFactor","platformChecker","frequency","getShownWebPopups","sessionStorage","getItem","getSessionStorageKey","matching_pages","matchingPages","pathname","visitors_type","visitorsType","markAsShown","recordPopupFormEvent","catch","setItem","addShownWebPopup","host","zIndex","shadow","attachShadow","container","modal","closePopup","remove","dispatchEvent","renderSubscriptionForm","renderWebPopup","delay","backdrop","widget"],"sourceRoot":""}
|