@callimacus/thamyr-core 4.12.0 → 4.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.native.js +1 -1
- package/dist/esm/index.native.js.map +1 -1
- package/dist/types/index.d.ts +336 -2
- package/dist/types/index.native.d.ts +336 -2
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,20 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [4.13.1](https://github.com/callimacus/thamyr-sdk/compare/thamyr-core-v4.13.0...thamyr-core-v4.13.1) (2026-10-27)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **shopify:** the bag keeps one key, cart calls run one at a time, checkout goes only to https ([#857](https://github.com/callimacus/thamyr-sdk/issues/857)) ([dde6d17](https://github.com/callimacus/thamyr-sdk/commit/dde6d1790ab124f7bd83e23ab08adad7236644f4))
|
|
12
|
+
|
|
13
|
+
## [4.13.0](https://github.com/callimacus/thamyr-sdk/compare/thamyr-core-v4.12.0...thamyr-core-v4.13.0) (2026-10-27)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### Features
|
|
17
|
+
|
|
18
|
+
* **shopify:** thamyr-shopify, the Callimacus storefront as a Shopify app embed, and a Shopify cart in the SDK ([#821](https://github.com/callimacus/thamyr-sdk/issues/821)) ([2a9876b](https://github.com/callimacus/thamyr-sdk/commit/2a9876b7cafa27cc9e1540765335039d7e9ed645))
|
|
19
|
+
|
|
6
20
|
## [4.12.0](https://github.com/callimacus/thamyr-sdk/compare/thamyr-core-v4.11.1...thamyr-core-v4.12.0) (2026-10-27)
|
|
7
21
|
|
|
8
22
|
|
package/dist/esm/index.js
CHANGED
|
@@ -5,5 +5,5 @@
|
|
|
5
5
|
* See LICENSE.md for the full terms.
|
|
6
6
|
*
|
|
7
7
|
*/
|
|
8
|
-
export*from"@callimacus/intent";import{io as e}from"socket.io-client";const t={ERROR:"error",CHAPTER_EVENT:"chapter-event",CHAPTER_DELETED:"chapter-deleted",STORY_RESET:"story-reset",STORY_CREATED:"story-created",STORY_SHARED:"story-shared",BLOCK_PATCH:"block-patch"},s={ERROR:"error",SYSTEM_MESSAGE:"system-message",SERVER_STATUS:"server-status",SERVER_RESPONSE:"server-response"},n={CLIENT_READY:"client-ready",USER_INTERACTION:"user-interaction"},r={question:"question",content:"content",topic:"topic",tag:"tag",image:"image",video:"video",gallery:"gallery",relatedQuestion:"relatedQuestion",page:"page",customInteraction:"customInteraction",customPage:"customPage"},i={masonry:"masonry",carousel:"carousel"},o={understandingQuery:1,craftingAnswer:2,curatingContent:3,done:4};function a(e){return e.type.startsWith("custom:")}function c(e){return"set"in e.type&&e.type.set}function l(e){return"master"in e.type&&e.type.master}const u={debug:0,info:1,warn:2,error:3,silent:4};const d=new class{config={enabled:!1,level:"info",prefix:"[Thamyr]"};debug=(...e)=>{this.log("debug",...e)};info=(...e)=>{this.log("info",...e)};warn=(...e)=>{this.log("warn",...e)};error=(...e)=>{this.log("error",...e)};log(e,...t){if(!(this.config.enabled&&u[e]>=u[this.config.level]))return;const{prefix:s}=this.config,n=void 0===s||""===s?t:[s,...t];console[e](...n)}configure(e){this.config={...this.config,...e}}getConfig(){return{...this.config}}};function h(e,t){const s=new URL(e),n=decodeURIComponent(s.pathname.slice(1)),r=(new TextEncoder).encode(JSON.stringify({bucket:"storage.callimacus.ai",key:n,edits:t})).toBase64();return`${s.origin}/${encodeURIComponent(r)}`}function y(){const e="undefined"==typeof crypto?void 0:crypto;if("function"==typeof e?.randomUUID)return e.randomUUID();const t=new Uint8Array(16);if("function"==typeof e?.getRandomValues)e.getRandomValues(t);else for(let e=0;e<16;e++)t[e]=Math.floor(256*Math.random());t[6]=15&t[6]|64,t[8]=63&t[8]|128;const s=[...t].map(e=>e.toString(16).padStart(2,"0"));return[s.slice(0,4).join(""),s.slice(4,6).join(""),s.slice(6,8).join(""),s.slice(8,10).join(""),s.slice(10,16).join("")].join("-")}var p,f;function m(e){if("object"!=typeof e||null===e)return!1;const t=e;return"string"==typeof t.audioUrl&&"string"==typeof t.mimeType}function g(e){if("object"==typeof e&&null!==e)for(const t of Object.values(e))if(m(t))return t}!function(e){e.GET_STORY="get-story",e.CREATE_ROUND="create-round",e.RESET_STORY="reset-story",e.BACK_FROM_ROUND="back-from-round",e.SHARE_STORY="share-story",e.GET_SHARED_STORY="get-shared-story",e.SUGGEST="suggest"}(p||(p={})),function(e){e.ROUND_CREATED="round-created",e.ROUND_EVENT="round-event",e.ROUND_COMPLETED="round-completed",e.ERROR="error"}(f||(f={}));const b={productSelector:"[data-product-id]",blockSelector:"[data-block-id]",maxTrackedElements:40,minVisibilityRatio:.5};class v{elements=new Map;elementRefs=new Map;elementKeys=new WeakMap;blocks=new Map;blockRefs=new Map;blockKeys=new WeakMap;started=!1;config;constructor(e={}){const t=e.minVisibilityRatio??b.minVisibilityRatio;this.config={productSelector:e.productSelector??b.productSelector,blockSelector:e.blockSelector??b.blockSelector,maxTrackedElements:e.maxTrackedElements??b.maxTrackedElements,minVisibilityRatio:Math.min(1,Math.max(0,t))}}rescanUi(){if(!this.canUseDom())return;let e,t;try{e=document.querySelectorAll(this.config.productSelector),t=document.querySelectorAll(this.config.blockSelector)}catch(e){return void d.warn("UI Observer: invalid selector, skipping rescan:",e)}const s=Date.now();for(const t of e){const e=this.normalizeRect(t.getBoundingClientRect()),n=this.calculateVisibilityRatio(e);this.syncTrackedElement(t,{bounds:e,isVisible:n>=this.config.minVisibilityRatio,visibilityRatio:n,observedAt:s})}for(const e of t){const t=this.normalizeRect(e.getBoundingClientRect()),n=this.calculateVisibilityRatio(t);this.syncTrackedBlock(e,{bounds:t,isVisible:n>=this.config.minVisibilityRatio,visibilityRatio:n,observedAt:s})}this.pruneTrackedElements(),this.pruneTrackedBlocks()}pruneTrackedElements(){if(this.elements.size<=this.config.maxTrackedElements)return;const e=[...this.elements].sort(([,e],[,t])=>{const s=e.visibilityRatio-t.visibilityRatio;return 0===s||Number.isNaN(s)?e.observedAt-t.observedAt:s}).slice(0,this.elements.size-this.config.maxTrackedElements);for(const[t]of e)this.elements.delete(t),this.elementRefs.delete(t)}pruneTrackedBlocks(){if(this.blocks.size<=this.config.maxTrackedElements)return;const e=[...this.blocks].sort(([,e],[,t])=>{const s=e.visibilityRatio-t.visibilityRatio;return 0===s||Number.isNaN(s)?e.observedAt-t.observedAt:s}).slice(0,this.blocks.size-this.config.maxTrackedElements);for(const[t]of e)this.blocks.delete(t),this.blockRefs.delete(t)}syncTrackedElement(e,t){const s=this.resolveElementId(e),n=this.resolveBlockId(e),r=this.createTrackingKey(s,n),i=this.elementKeys.get(e);void 0!==i&&""!==i&&i!==r&&(this.elements.delete(i),this.elementRefs.delete(i)),this.elementKeys.set(e,r),this.elementRefs.set(r,e),this.elements.set(r,{id:s,blockId:n,trackingKey:r,...t})}syncTrackedBlock(e,t){const s=this.resolveTrackedBlockId(e),n=this.blockKeys.get(e),r=s;void 0!==n&&""!==n&&n!==r&&(this.blocks.delete(n),this.blockRefs.delete(n)),this.blockKeys.set(e,r),this.blockRefs.set(r,e),this.blocks.set(r,{id:s,...t})}resolveElementId(e){return[e.dataset.productId,e.dataset.productid,e.dataset.sku,e.id].find(e=>void 0!==e&&""!==e)??`${e.tagName}-${e.dataset.productId??this.elements.size}`}resolveBlockId(e){let t;try{t=e.closest(this.config.blockSelector)??void 0}catch{return}return t instanceof HTMLElement?this.resolveTrackedBlockId(t):void 0}resolveTrackedBlockId(e){return[e.dataset.blockId,e.dataset.blockid,e.id].find(e=>void 0!==e&&""!==e)??`${e.tagName}-${e.dataset.blockId??this.blocks.size}`}createTrackingKey(e,t){return void 0===t||""===t?e:`${e}::${t}`}normalizeRect(e){return{x:e.x,y:e.y,width:e.width,height:e.height,top:e.top,left:e.left,right:e.right,bottom:e.bottom}}calculateVisibilityRatio(e){const t=Math.max(0,Math.min(e.right,window.innerWidth)-Math.max(e.left,0))*Math.max(0,Math.min(e.bottom,window.innerHeight)-Math.max(e.top,0)),s=e.width*e.height;if(s<=0)return 0;const n=window.innerWidth*window.innerHeight,r=n>0?Math.min(s,n):s;return Math.min(1,Math.max(0,t/r))}canUseDom(){return void 0!==globalThis.window&&"undefined"!=typeof document}start(){!this.started&&this.canUseDom()&&(this.started=!0)}stop(){this.started&&(this.started=!1,this.elements.clear(),this.elementRefs.clear(),this.blocks.clear(),this.blockRefs.clear())}getSnapshot(){if(!this.canUseDom())return;this.rescanUi();const e=[],t=[],s=Date.now();for(const[t,s]of this.elements){const n=this.elementRefs.get(t);n?.isConnected?s.visibilityRatio<=0||e.push({blockId:s.blockId,element:{id:s.id,bounds:s.bounds,isVisible:s.visibilityRatio>=this.config.minVisibilityRatio,visibilityRatio:s.visibilityRatio}}):(this.elements.delete(t),this.elementRefs.delete(t))}for(const[e,s]of this.blocks){const n=this.blockRefs.get(e);n?.isConnected?s.visibilityRatio<this.config.minVisibilityRatio||t.push(s.id):(this.blocks.delete(e),this.blockRefs.delete(e))}const n=e.slice(0,this.config.maxTrackedElements);return{timestamp:s,viewport:{width:window.innerWidth,height:window.innerHeight},blockIds:[...new Set([...t,...n.flatMap(e=>e.blockId??[])])],elements:n.map(e=>e.element)}}}function k(e){const{data:t}=e;if("object"!=typeof t||null===t)return;const{code:s,reason:n}=t;return"number"==typeof s?{code:s,..."string"==typeof n&&{reason:n}}:void 0}const w=3;function R(e,t){return e>=500&&t<3}function E(e,t){return t?void 0:k(e)??{code:0}}class S{socket;serverResponseListeners=new Set;connectionStatusListeners=new Set;errorListeners=new Set;uiObserver;uiObserverConfig=b;handshakeRetryAttempts=0;handshakeRetryTimer;setupEventListeners(){this.socket&&(this.socket.on("connect",()=>{d.debug("Connected to Callimacus"),this.clearHandshakeRetry(),this.handshakeRetryAttempts=0,this.updateConnectionStatus(!0),this.socket?.emit(n.CLIENT_READY)}),this.socket.on("disconnect",()=>{d.info("Disconnected from Callimacus"),this.updateConnectionStatus(!1)}),this.socket.on("connect_error",e=>{this.updateConnectionStatus(!1);const t=E(e,this.socket?.active??!0);t&&(d.error("Connection refused by Callimacus:",e.message,t.reason??""),this.notifyRejection(t,e.message),this.scheduleHandshakeRetry(t.code))}),this.socket.on(s.ERROR,e=>{d.error("Received error from Callimacus:",e),this.notifyErrorListeners(e)}),this.socket.io.on("reconnect",e=>{d.info(`Reconnected to Callimacus after ${e} attempts`)}),this.socket.io.on("reconnect_attempt",e=>{d.info(`Attempting to reconnect: attempt ${e}`)}),this.socket.io.on("reconnect_error",e=>{d.error("Reconnection error:",e)}),this.socket.io.on("reconnect_failed",()=>{d.error("Failed to reconnect to Callimacus service!"),this.updateConnectionStatus(!1)}),this.socket.on(s.SERVER_RESPONSE,e=>{this.notifyServerResponseListeners(e)}))}notifyServerResponseListeners(e){this.serverResponseListeners.forEach(t=>{try{t(e)}catch(e){d.error("Error in server response listener:",e)}})}updateConnectionStatus(e){this.connectionStatusListeners.forEach(t=>{try{t(e)}catch(e){d.error("Error in connection status listener:",e)}})}notifyRejection(e,t){this.notifyErrorListeners({code:e.code,message:t,...void 0!==e.reason&&{reason:e.reason}})}scheduleHandshakeRetry(e){if(!this.socket)return;if(this.clearHandshakeRetry(),!R(e,this.handshakeRetryAttempts))return void(e>=500&&(d.error("Giving up on the Callimacus connection after 3 retries"),this.notifyRejection({code:e,reason:"retries_exhausted"},"Connection failed after 3 retries; call connect() to try again")));const t=2**(this.handshakeRetryAttempts+1);this.handshakeRetryAttempts+=1,d.info(`Retrying Callimacus connection in ${t}s (attempt ${this.handshakeRetryAttempts}/3)`),this.handshakeRetryTimer=setTimeout(()=>{this.socket?.connect()},1e3*t)}clearHandshakeRetry(){void 0!==this.handshakeRetryTimer&&(clearTimeout(this.handshakeRetryTimer),this.handshakeRetryTimer=void 0)}notifyErrorListeners(e){this.errorListeners.forEach(t=>{try{t(e)}catch(e){d.error("Error in error listener:",e)}})}async getLocation(){if("undefined"!=typeof navigator&&"function"==typeof navigator.geolocation?.getCurrentPosition)return new Promise(e=>{navigator.geolocation.getCurrentPosition(t=>{e(t)},()=>{e(void 0)})})}enrichPayloadWithUiContext(e){try{this.ensureUiObserver();const t=this.uiObserver?.getSnapshot();return t?{...e,context:{...e.context,uiSnapshot:t}}:e}catch(t){return d.error("Error enriching payload with UI context:",t),e}}ensureUiObserver(){"undefined"!=typeof window&&"undefined"!=typeof document&&this.uiObserverConfig.enabled&&(this.uiObserver??=new v(this.uiObserverConfig),this.uiObserver.start())}socketEndpoint(e){const t=new URL(e),s=new URL("thamyr",t).pathname;return{origin:t.origin,path:s}}connect(t="wss://localhost:4000",s,n){this.socket&&(d.warn("Already connected to Thamyr. Disconnecting first...."),this.disconnect());const r=this.socketEndpoint(t);let i;"undefined"!=typeof window&&void 0!==globalThis.location&&(i=globalThis.location.href);const o={...void 0!==i&&""!==i&&{referrer:i},...n};d.info("Connecting to Thamyr at",r),this.socket=e(r.origin,{path:r.path,transports:["websocket","polling"],tryAllTransports:!0,extraHeaders:s,auth:o}),this.setupEventListeners(),this.ensureUiObserver()}disconnect(){this.clearHandshakeRetry(),this.handshakeRetryAttempts=0,this.socket&&(this.socket.disconnect(),this.socket=void 0,this.uiObserver?.stop(),this.uiObserver=void 0,this.updateConnectionStatus(!1),d.info("Disconnected from Callimacus"))}configureUiObserver(e){if(!e)return this.uiObserver?.stop(),this.uiObserver=void 0,void(this.uiObserverConfig={...b,enabled:!1});const t=e.enabled??(void 0!==e.productSelector||void 0!==e.blockSelector||void 0!==e.maxTrackedElements||void 0!==e.minVisibilityRatio||this.uiObserverConfig.enabled);if(this.uiObserverConfig={...this.uiObserverConfig,...e,enabled:t},"undefined"==typeof window||"undefined"==typeof document||!this.uiObserverConfig.enabled)return this.uiObserver?.stop(),void(this.uiObserver=void 0);this.uiObserver&&this.uiObserver.stop(),this.uiObserver=new v(this.uiObserverConfig),this.uiObserver.start()}sendUserInteraction(e,t){if(!this.socket)return void d.error("Socket is not connected. Cannot send interaction.");if(e===p.SUGGEST)return void d.error("SUGGEST is a request/response command. Use suggest() instead.");if(e===p.BACK_FROM_ROUND){if(void 0===t.chapterId)return void d.error("BACK_FROM_ROUND requires chapterId.")}const s={type:e,payload:this.enrichPayloadWithUiContext(t)},r={id:y()};this.socket.emit(n.USER_INTERACTION,{type:s.type,payload:s.payload},r.id)}async suggest(e,t={}){if(!this.socket?.connected)return{suggestions:[]};try{return function(e){const t=e?.suggestions;return{suggestions:Array.isArray(t)?t.filter(e=>"string"==typeof e):[]}}(await this.socket.timeout(t.timeoutMs??4e3).emitWithAck(n.USER_INTERACTION,{type:p.SUGGEST,payload:e}))}catch(e){return d.warn("Suggestions failed or timed out; serving none.",e),{suggestions:[]}}}async gatherClientInfo(){const e="undefined"==typeof navigator?void 0:navigator,t="undefined"==typeof window?void 0:window.screen;return{userAgent:e?.userAgent??"",language:e?.language??"",timezone:(new Intl.DateTimeFormat).resolvedOptions().timeZone,localTime:(new Date).toLocaleString(),screenResolution:void 0===t?"":`${t.width}x${t.height}`,location:await this.getLocation()}}onServerResponse(e){return this.serverResponseListeners.add(e),()=>{this.serverResponseListeners.delete(e)}}onConnectionStatus(e){return this.connectionStatusListeners.add(e),()=>{this.connectionStatusListeners.delete(e)}}onError(e){return this.errorListeners.add(e),()=>{this.errorListeners.delete(e)}}}const T=new S,O=200;function x(e,t={}){if(void 0!==e&&e.length>200)throw new RangeError("[thamyr] landing value exceeds 200 characters");return{inputEvent:{type:"customPage",data:void 0===e?{}:{value:e}},...t}}function C(e,t={}){const{block:s,payload:n,submissionId:r,value:i,...o}=t;return{inputEvent:{type:"customInteraction",data:{interactionId:e,...void 0!==s&&{nodeKey:s},...void 0!==n&&{payload:n},...void 0!==r&&{submissionId:r},...void 0!==i&&{value:i}}},...o}}function I(e){return e.receptors??e.intent??[]}function A(e){return"key"in e?e.key:void 0}const j="custom:addToCartResult";function _(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}const U=e=>"string"==typeof e&&e.length>0,$=e=>_(e)&&U(e.size)&&U(e.variantId)&&"boolean"==typeof e.orderable;function D(e){if(!_(e.data)||!_(e.data.addToCart))return;const t=e.data.addToCart;return"error"===t.status?{status:"error"}:"resolved"===t.status&&U(t.variantId)&&U(t.productName)&&U(t.size)?{status:"resolved",variantId:t.variantId,productName:t.productName,size:t.size}:"size_selection_needed"===t.status&&U(t.productSku)&&U(t.productName)&&Array.isArray(t.availableSizes)&&t.availableSizes.every($)?{status:"size_selection_needed",productSku:t.productSku,productName:t.productName,availableSizes:t.availableSizes}:void 0}const N=e=>_(e)?e:{};function q(e,t,s){const[n,...r]=t;if(!_(e)||!Object.hasOwn(e,n))return;const i=0===r.length?function(e,t){if(_(e)&&"string"==typeof e.docId)return{...e,values:{...N(e.values),...t.values},inputs:{...N(e.inputs),...t.inputs},textRuns:{...N(e.textRuns),...t.textRuns}}}(e[n],s):q(e[n],r,s);return i&&{...e,[n]:i}}function z(e,t){const s=e.blocks??[],n=e.id===t.chapterId?s.findIndex(e=>e.id===t.blockId):-1;if(-1===n)return e;const r=s[n],i=q(r.data,t.contentId.split("."),t);return i?{...e,blocks:s.with(n,{...r,data:i})}:e}function L(e){const t=/^\/?map\/(?<language>[^\/]+)(?:\/(?<slug>.*))?$/v.exec(e)?.groups,s=t?.language;if(void 0===s||""===s)return;const n=t?.slug;return void 0===n||""===n?{language:s}:{language:s,slug:n}}async function K(e){try{const{data:t}=await e();return t}catch(e){if("object"==typeof e&&null!==e&&404===e.status)return;throw e}}async function B(e,t){const s=L(t);if(!s)return;const{language:n,slug:r}=s;if(void 0===r){const{data:t}=await e.content.listDocuments({language:n},{throwOnError:!0});return{kind:"index",language:n,entries:t}}const i=`/map/${n}/${r}`,o=await K(async()=>e.content.getDocumentByPath({path:i},{throwOnError:!0}));if(o)return{kind:"document",language:n,slug:r,document:o};if(!r.includes("/"))return;const a=await K(async()=>e.skesis.getItemByPath({path:i},{throwOnError:!0}));return a&&{kind:"item",language:n,slug:r,itemPage:a}}const M=["link","ask","interact","cart","submit"],P=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),V=e=>"string"==typeof e&&e.trim().length>0,H=new Set(["http:","https:","mailto:","tel:"]),W=e=>{try{return H.has(new URL(e,"https://relative.invalid").protocol)}catch{return!1}};function G(e){const{id:t,value:s,payload:n,block:r}=e,i=void 0===s||"string"==typeof s||(e=>Array.isArray(e)&&e.every(e=>"string"==typeof e))(s),o=void 0===n||P(n);if(i&&o&&(void 0===r||"string"==typeof r)&&V(t))return{type:"interact",id:t,...void 0!==s&&{value:s},...void 0!==n&&{payload:n},...void 0!==r&&{block:r}}}function F(e){if(P(e))switch(e.type){case"link":return function(e){const{url:t,newTab:s}=e;return(void 0===s||"boolean"==typeof s)&&V(t)&&W(t)?{type:"link",url:t,...void 0!==s&&{newTab:s}}:void 0}(e);case"ask":return V(e.value)?{type:"ask",value:e.value}:void 0;case"interact":return G(e);case"cart":return V(e.productId)?{type:"cart",productId:e.productId}:void 0;case"submit":return V(e.form)?{type:"submit",form:e.form}:void 0;default:return}}function Y(e){const t=e instanceof FormData?e:new FormData(e),s=[];for(const e of new Set(t.keys())){const n=t.getAll(e).filter(e=>"string"==typeof e),r=e.endsWith("[]");n.length>0&&s.push([r?e.slice(0,-2):e,r||n.length>1?n:n[0]])}return Object.fromEntries(s)}const J="custom:deliverResult",Q=new Set(["done","pending","ambiguous","skipped"]),Z=e=>void 0===e||"string"==typeof e,X=e=>P(e)&&"string"==typeof e.message&&Z(e.field),ee=e=>P(e)&&"string"==typeof e.status&&Q.has(e.status)&&Z(e.ref);function te(e){const t=e.type===J&&P(e.data)?e.data:void 0;if(void 0===t)return;const{status:s,submissionId:n,message:r,redirect:i,errors:o,results:a}=t;var c;return("accepted"===s||"refused"===s)&&V(n)&&Z(r)&&Z(i)&&(void 0===o||Array.isArray(o)&&o.every(X))&&(P(c=a)&&Object.values(c).every(ee))?{status:s,submissionId:n,results:a,...void 0!==r&&{message:r},...void 0!==i&&W(i)&&{redirect:i},...void 0!==o&&{errors:o}}:void 0}const se={bodySerializer:e=>JSON.stringify(e,(e,t)=>"bigint"==typeof t?t.toString():t)},ne=Object.entries({$body_:"body",$headers_:"headers",$path_:"path",$query_:"query"});function re(e,t){t||(t=new Map);for(const s of e)"in"in s?s.key&&t.set(s.key,{in:s.in,map:s.map}):"key"in s?t.set(s.key,{map:s.map}):s.args&&re(s.args,t);return t}function ie(e,t){const s={headers:Object.create(null),path:Object.create(null),query:Object.create(null)},n=re(t);function r(e,t,n){let r=s[e];void 0===r&&(r=Object.create(null),s[e]=r),r[t]=n}let i;for(const[o,a]of e.entries())if(t[o]&&(i=t[o]),i)if("in"in i)if(i.key){const e=n.get(i.key),t=e.map||i.key;e.in&&r(e.in,t,a)}else s.body=a;else for(const[e,t]of Object.entries(a??{})){const o=n.get(e);if(o)if(o.in){const s=o.map||e;r(o.in,s,t)}else s[o.map]=t;else{const s=ne.find(([t])=>e.startsWith(t));if(s){const[n,i]=s;r(i,e.slice(n.length),t)}else if("allowExtra"in i&&i.allowExtra)for(const[s,n]of Object.entries(i.allowExtra))if(n){r(s,e,t);break}}}return function(e){for(const[t,s]of Object.entries(e))"body"!==t&&(!s||"object"!=typeof s||Array.isArray(s)||Object.keys(s).length||delete e[t])}(s),s}const oe=({allowReserved:e,explode:t,name:s,style:n,value:r})=>{if(!t){const t=(e?r:r.map(e=>encodeURIComponent(e))).join((e=>{switch(e){case"form":default:return",";case"pipeDelimited":return"|";case"spaceDelimited":return"%20"}})(n));switch(n){case"label":return`.${t}`;case"matrix":return`;${s}=${t}`;case"simple":return t;default:return`${s}=${t}`}}const i=(e=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}})(n),o=r.map(t=>"label"===n||"simple"===n?e?t:encodeURIComponent(t):ae({allowReserved:e,name:s,value:t})).join(i);return"label"===n||"matrix"===n?i+o:o},ae=({allowReserved:e,name:t,value:s})=>{if(null==s)return"";if("object"==typeof s)throw new Error("Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.");return`${t}=${e?s:encodeURIComponent(s)}`},ce=({allowReserved:e,explode:t,name:s,style:n,value:r,valueOnly:i})=>{if(r instanceof Date)return i?r.toISOString():`${s}=${r.toISOString()}`;if("deepObject"!==n&&!t){let t=[];Object.entries(r).forEach(([s,n])=>{t=[...t,s,e?n:encodeURIComponent(n)]});const i=t.join(",");switch(n){case"form":return`${s}=${i}`;case"label":return`.${i}`;case"matrix":return`;${s}=${i}`;default:return i}}const o=(e=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}})(n),a=Object.entries(r).map(([t,r])=>ae({allowReserved:e,name:"deepObject"===n?`${s}[${t}]`:t,value:r})).join(o);return"label"===n||"matrix"===n?o+a:a},le=/\{[^{}]+\}/g,ue=({baseUrl:e,path:t,query:s,querySerializer:n,url:r})=>{let i=(e??"")+(r.startsWith("/")?r:`/${r}`);t&&(i=(({path:e,url:t})=>{let s=t;const n=t.match(le);if(n)for(const t of n){let n=!1,r=t.substring(1,t.length-1),i="simple";r.endsWith("*")&&(n=!0,r=r.substring(0,r.length-1)),r.startsWith(".")?(r=r.substring(1),i="label"):r.startsWith(";")&&(r=r.substring(1),i="matrix");const o=e[r];if(null==o)continue;if(Array.isArray(o)){s=s.replace(t,oe({explode:n,name:r,style:i,value:o}));continue}if("object"==typeof o){s=s.replace(t,ce({explode:n,name:r,style:i,value:o,valueOnly:!0}));continue}if("matrix"===i){s=s.replace(t,`;${ae({name:r,value:o})}`);continue}const a=encodeURIComponent("label"===i?`.${o}`:o);s=s.replace(t,a)}return s})({path:t,url:i}));let o=s?n(s):"";return o.startsWith("?")&&(o=o.substring(1)),o&&(i+=`?${o}`),i};function de(e){const t=void 0!==e.body;if(t&&e.bodySerializer){if("serializedBody"in e){return void 0!==e.serializedBody&&""!==e.serializedBody?e.serializedBody:null}return""!==e.body?e.body:null}if(t)return e.body}const he=async(e,t)=>{const s="function"==typeof t?await t(e):t;if(s)return"bearer"===e.scheme?`Bearer ${s}`:"basic"===e.scheme?`Basic ${btoa(s)}`:s},ye=({parameters:e={},...t}={})=>s=>{const n=[];if(s&&"object"==typeof s)for(const r in s){const i=s[r];if(null==i)continue;const o=e[r]||t;if(Array.isArray(i)){const e=oe({allowReserved:o.allowReserved,explode:!0,name:r,style:"form",value:i,...o.array});e&&n.push(e)}else if("object"==typeof i){const e=ce({allowReserved:o.allowReserved,explode:!0,name:r,style:"deepObject",value:i,...o.object});e&&n.push(e)}else{const e=ae({allowReserved:o.allowReserved,name:r,value:i});e&&n.push(e)}}return n.join("&")},pe=(e,t)=>!!t&&!!(e.headers.has(t)||e.query?.[t]||e.headers.get("Cookie")?.includes(`${t}=`));const fe=e=>ue({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:"function"==typeof e.querySerializer?e.querySerializer:ye(e.querySerializer),url:e.url}),me=(e,t)=>{const s={...e,...t};return s.baseUrl?.endsWith("/")&&(s.baseUrl=s.baseUrl.substring(0,s.baseUrl.length-1)),s.headers=be(e.headers,t.headers),s},ge=e=>{const t=[];return e.forEach((e,s)=>{t.push([s,e])}),t},be=(...e)=>{const t=new Headers;for(const s of e){if(!s)continue;const e=s instanceof Headers?ge(s):Object.entries(s);for(const[s,n]of e)if(null===n)t.delete(s);else if(Array.isArray(n))for(const e of n)t.append(s,e);else void 0!==n&&t.set(s,"object"==typeof n?JSON.stringify(n):n)}return t};class ve{fns=[];clear(){this.fns=[]}eject(e){const t=this.getInterceptorIndex(e);this.fns[t]&&(this.fns[t]=null)}exists(e){const t=this.getInterceptorIndex(e);return Boolean(this.fns[t])}getInterceptorIndex(e){return"number"==typeof e?this.fns[e]?e:-1:this.fns.indexOf(e)}update(e,t){const s=this.getInterceptorIndex(e);return!!this.fns[s]&&(this.fns[s]=t,e)}use(e){return this.fns.push(e),this.fns.length-1}}const ke=ye({allowReserved:!1,array:{explode:!0,style:"form"},object:{explode:!0,style:"deepObject"}}),we={"Content-Type":"application/json"},Re=(e={})=>({...se,headers:we,parseAs:"auto",querySerializer:ke,...e}),Ee=(e={})=>{let t=me(Re(),e);const s=()=>({...t}),n={error:new ve,request:new ve,response:new ve},r=async e=>{const s={...t,...e,fetch:e.fetch??t.fetch??globalThis.fetch,headers:be(t.headers,e.headers),serializedBody:void 0};s.security&&await async function(e){for(const t of e.security??[]){if(pe(e,t.name))continue;const s=await he(t,e.auth);if(!s)continue;const n=t.name??"Authorization";switch(t.in){case"query":e.query||(e.query={}),e.query[n]=s;break;case"cookie":e.headers.append("Cookie",`${n}=${s}`);break;default:e.headers.set(n,s)}}}(s),s.requestValidator&&await s.requestValidator(s),void 0!==s.body&&s.bodySerializer&&(s.serializedBody=s.bodySerializer(s.body)),void 0!==s.body&&""!==s.serializedBody||s.headers.delete("Content-Type");return{opts:s,url:fe(s)}},i=async e=>{const s=e.throwOnError??t.throwOnError,i=e.responseStyle??t.responseStyle;let o,a;try{const{opts:t,url:s}=await r(e),i={redirect:"follow",...t,body:de(t)};o=new Request(s,i);for(const e of n.request.fns)e&&(o=await e(o,t));const c=t.fetch;a=await c(o);for(const e of n.response.fns)e&&(a=await e(a,o,t));const l={request:o,response:a};if(a.ok){const e=("auto"===t.parseAs?(e=>{if(!e)return"stream";const t=e.split(";")[0]?.trim();return t?t.startsWith("application/json")||t.endsWith("+json")?"json":"multipart/form-data"===t?"formData":["application/","audio/","image/","video/"].some(e=>t.startsWith(e))?"blob":t.startsWith("text/")?"text":void 0:void 0})(a.headers.get("Content-Type")):t.parseAs)??"json";if(204===a.status||"0"===a.headers.get("Content-Length")){let s;switch(e){case"arrayBuffer":case"blob":case"text":s=await a[e]();break;case"formData":s=new FormData;break;case"stream":s=a.body;break;default:s={}}return"data"===t.responseStyle?s:{data:s,...l}}let s;switch(e){case"arrayBuffer":case"blob":case"formData":case"text":s=await a[e]();break;case"json":{const e=await a.text();s=e?JSON.parse(e):{};break}case"stream":return"data"===t.responseStyle?a.body:{data:a.body,...l}}return"json"===e&&(t.responseValidator&&await t.responseValidator(s),t.responseTransformer&&(s=await t.responseTransformer(s))),"data"===t.responseStyle?s:{data:s,...l}}const u=await a.text();let d;try{d=JSON.parse(u)}catch{}throw d??u}catch(t){let r=t;for(const t of n.error.fns)t&&(r=await t(r,a,o,e));if(r=r||{},s)throw r;return"data"===i?void 0:{error:r,request:o,response:a}}},o=e=>t=>i({...t,method:e}),a=e=>async t=>{const{opts:s,url:i}=await r(t);return function({onRequest:e,onSseError:t,onSseEvent:s,responseTransformer:n,responseValidator:r,sseDefaultRetryDelay:i,sseMaxRetryAttempts:o,sseMaxRetryDelay:a,sseSleepFn:c,url:l,...u}){let d;const h=c??(e=>new Promise(t=>setTimeout(t,e)));return{stream:async function*(){let c=i??3e3,y=0;const p=u.signal??(new AbortController).signal;for(;!p.aborted;){y++;const i=u.headers instanceof Headers?u.headers:new Headers(u.headers);void 0!==d&&i.set("Last-Event-ID",d);try{const t={redirect:"follow",...u,body:u.serializedBody,headers:i,signal:p};let o=new Request(l,t);e&&(o=await e(l,t));const a=u.fetch??globalThis.fetch,h=await a(o);if(!h.ok)throw new Error(`SSE failed: ${h.status} ${h.statusText}`);if(!h.body)throw new Error("No body in SSE response");const y=h.body.pipeThrough(new TextDecoderStream).getReader();let f="";const m=()=>{try{y.cancel()}catch{}};p.addEventListener("abort",m);try{for(;;){const{done:e,value:t}=await y.read();if(e)break;f+=t,f=f.replace(/\r\n?/g,"\n");const i=f.split("\n\n");f=i.pop()??"";for(const e of i){const t=e.split("\n"),i=[];let o,a;for(const e of t)if(e.startsWith("data:"))i.push(e.replace(/^data:\s*/,""));else if(e.startsWith("event:"))o=e.replace(/^event:\s*/,"");else if(e.startsWith("id:"))d=e.replace(/^id:\s*/,"");else if(e.startsWith("retry:")){const t=Number.parseInt(e.replace(/^retry:\s*/,""),10);Number.isNaN(t)||(c=t)}let l=!1;if(i.length){const e=i.join("\n");try{a=JSON.parse(e),l=!0}catch{a=e}}l&&(r&&await r(a),n&&(a=await n(a))),s?.({data:a,event:o,id:d,retry:c}),i.length&&(yield a)}}}finally{p.removeEventListener("abort",m),y.releaseLock()}break}catch(e){if(t?.(e),void 0!==o&&y>=o)break;const s=Math.min(c*2**(y-1),a??3e4);await h(s)}}}()}}({...s,body:s.body,method:e,onRequest:async(e,t)=>{let r=new Request(e,t);for(const e of n.request.fns)e&&(r=await e(r,s));return r},serializedBody:de(s),url:i})};return{buildUrl:e=>fe({...t,...e}),connect:o("CONNECT"),delete:o("DELETE"),get:o("GET"),getConfig:s,head:o("HEAD"),interceptors:n,options:o("OPTIONS"),patch:o("PATCH"),post:o("POST"),put:o("PUT"),request:i,setConfig:e=>(t=me(t,e),s()),sse:{connect:a("CONNECT"),delete:a("DELETE"),get:a("GET"),head:a("HEAD"),options:a("OPTIONS"),patch:a("PATCH"),post:a("POST"),put:a("PUT"),trace:a("TRACE")},trace:o("TRACE")}};class Se{client;constructor(e){this.client=e.client}}class Te{defaultKey="default";instances=new Map;get(e){const t=this.instances.get(e??this.defaultKey);if(!t)throw new Error('No SDK client found. Create one with "new CallimacusApi()" to fix this error.');return t}set(e,t){this.instances.set(t??this.defaultKey,e)}}class Oe extends Se{getPage(e,t){const s=ie([e],[{args:[{in:"path",key:"language"},{in:"path",key:"id"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/page/{language}/{id}",...t,...s})}listTopics(e,t){const s=ie([e],[{args:[{in:"path",key:"language"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/topic/{language}",...t,...s})}getTopicContents(e,t){const s=ie([e],[{args:[{in:"path",key:"language"},{in:"path",key:"idOrSlug"},{in:"query",key:"offset"},{in:"query",key:"limit"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/topic/{language}/{idOrSlug}",...t,...s})}getDocumentBySlug(e,t){const s=ie([e],[{args:[{in:"path",key:"language"},{in:"path",key:"slug"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/document/{language}/{slug}",...t,...s})}getDocumentByGroup(e,t){const s=ie([e],[{args:[{in:"path",key:"language"},{in:"path",key:"groupId"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/document/by-group/{language}/{groupId}",...t,...s})}getDocumentByPath(e,t){const s=ie([e],[{args:[{in:"query",key:"path"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/document/by-path",...t,...s})}listDocuments(e,t){const s=ie([e],[{args:[{in:"path",key:"language"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/documents/{language}",...t,...s})}}class xe extends Se{getShared(e,t){const s=ie([e],[{args:[{in:"path",key:"id"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/share/{id}",...t,...s})}share(e,t){const s=ie([e],[{args:[{in:"path",key:"id"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/share/{id}",...t,...s})}}class Ce extends Se{getSimilar(e,t){const s=ie([e],[{args:[{in:"path",key:"productId"},{in:"query",key:"topK"},{in:"query",key:"language"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/product/{productId}/similar",...t,...s})}getRecommendations(e,t){const s=ie([e],[{args:[{in:"path",key:"productId"},{in:"query",key:"language"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/product/{productId}/recommendations",...t,...s})}}class Ie extends Se{getLast(e,t){const s=ie([e],[{args:[{in:"query",key:"storyId"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/whisper",...t,...s})}}class Ae extends Se{trackEvent(e,t){const s=ie([e],[{args:[{in:"body",key:"storyId"},{in:"body",key:"eventName"},{in:"body",key:"content"},{in:"body",key:"payload"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/track-event",...t,...s,headers:{"Content-Type":"application/json",...t?.headers,...s.headers}})}}class je extends Se{getCart(e){return(e?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/cart",...e})}addItemToCart(e,t){const s=ie([e],[{args:[{in:"body",key:"productId"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/cart/add",...t,...s,headers:{"Content-Type":"application/json",...t?.headers,...s.headers}})}removeItemFromCart(e,t){const s=ie([e],[{args:[{in:"body",key:"productId"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/cart/remove",...t,...s,headers:{"Content-Type":"application/json",...t?.headers,...s.headers}})}updateProductQuantity(e,t){const s=ie([e],[{args:[{in:"body",key:"productId"},{in:"body",key:"quantity"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/cart/update",...t,...s,headers:{"Content-Type":"application/json",...t?.headers,...s.headers}})}}class _e extends Se{similar(e,t){const s=ie([e],[{args:[{in:"body",key:"anchorId"},{in:"body",key:"topK"},{in:"body",key:"locale"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/skesis/query/similar",...t,...s,headers:{"Content-Type":"application/json",...t?.headers,...s.headers}})}related(e,t){const s=ie([e],[{args:[{in:"body",key:"anchorId"},{in:"body",key:"locale"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/skesis/query/related",...t,...s,headers:{"Content-Type":"application/json",...t?.headers,...s.headers}})}getItemByPath(e,t){const s=ie([e],[{args:[{in:"query",key:"path"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/skesis/item/by-path",...t,...s})}}class Ue extends Se{static __registry=new Te;constructor(e){super(e),Ue.__registry.set(this,e.key)}_content;get content(){return this._content??=new Oe({client:this.client})}_stories;get stories(){return this._stories??=new xe({client:this.client})}_products;get products(){return this._products??=new Ce({client:this.client})}_whisper;get whisper(){return this._whisper??=new Ie({client:this.client})}_analytics;get analytics(){return this._analytics??=new Ae({client:this.client})}_cart;get cart(){return this._cart??=new je({client:this.client})}_skesis;get skesis(){return this._skesis??=new _e({client:this.client})}}class $e extends Error{status;body;response;request;constructor(e,t,s){const n=t?.status,r=s?`${s.method} ${s.url}`:"request";let i=`[thamyr] ${r} failed before a response arrived`;t&&(i=t.ok?`[thamyr] ${r} → ${t.status}, but the response could not be processed`:`[thamyr] ${r} → ${t.status}`),super(i,e instanceof Error?{cause:e}:void 0),this.name="ThamyrHttpError",this.status=n,this.body=e,this.response=t,this.request=s}}function De(e){const t=Ee(Re({baseUrl:new URL("api/v3",e.endpoint).href,headers:{Authorization:`Bearer ${e.accessToken}`,"x-sl-access-token":e.accessToken},credentials:e.withCredentials?"include":"same-origin"}));return t.interceptors.error.use((e,s,n,r)=>{if(!(r.throwOnError??t.getConfig().throwOnError??!1)||!0===r.signal?.aborted)return e;return new $e(""===e?{}:e??{},s,n)}),t}export{M as ACTION_TYPES,j as ADD_TO_CART_RESULT_BLOCK,Ue as CallimacusApi,f as CallimacusEvent,S as CallimacusService,o as ChapterStatus,n as ClientEvents,J as DELIVER_RESULT_BLOCK,i as GalleryMode,O as LANDING_VALUE_MAX_LENGTH,w as MAX_HANDSHAKE_RETRIES,r as SLInputEventType,s as ServerEvents,$e as ThamyrHttpError,t as ThamyrResponseType,p as UserInteractionType,F as actionOf,D as addToCartResultOf,z as applyBlockPatch,A as blockKeyOf,T as callimacusService,E as classifyConnectError,De as createContractClient,te as deliverResultOf,g as extractTtsAudio,Y as fieldsOf,C as interactionRound,a as isCustomBlock,l as isMasterProduct,c as isSetProduct,x as landingRound,d as logger,k as parseConnectRejection,L as parseMapPath,y as randomUuid,I as receptorsOf,B as resolveMapPage,R as shouldRetryHandshake,h as transformImageUrl};
|
|
8
|
+
export*from"@callimacus/intent";import{io as e}from"socket.io-client";const t={ERROR:"error",CHAPTER_EVENT:"chapter-event",CHAPTER_DELETED:"chapter-deleted",STORY_RESET:"story-reset",STORY_CREATED:"story-created",STORY_SHARED:"story-shared",BLOCK_PATCH:"block-patch",CART_COMMAND:"cart-command"},n={ERROR:"error",SYSTEM_MESSAGE:"system-message",SERVER_STATUS:"server-status",SERVER_RESPONSE:"server-response"},r={CLIENT_READY:"client-ready",USER_INTERACTION:"user-interaction"},s={question:"question",content:"content",topic:"topic",tag:"tag",image:"image",video:"video",gallery:"gallery",relatedQuestion:"relatedQuestion",page:"page",customInteraction:"customInteraction",customPage:"customPage"},i={masonry:"masonry",carousel:"carousel"},o={understandingQuery:1,craftingAnswer:2,curatingContent:3,done:4};function a(e){return e.type.startsWith("custom:")}function c(e){return"set"in e.type&&e.type.set}function u(e){return"master"in e.type&&e.type.master}const l={debug:0,info:1,warn:2,error:3,silent:4};const d=new class{config={enabled:!1,level:"info",prefix:"[Thamyr]"};debug=(...e)=>{this.log("debug",...e)};info=(...e)=>{this.log("info",...e)};warn=(...e)=>{this.log("warn",...e)};error=(...e)=>{this.log("error",...e)};log(e,...t){if(!(this.config.enabled&&l[e]>=l[this.config.level]))return;const{prefix:n}=this.config,r=void 0===n||""===n?t:[n,...t];console[e](...r)}configure(e){this.config={...this.config,...e}}getConfig(){return{...this.config}}};function h(e,t){const n=new URL(e),r=decodeURIComponent(n.pathname.slice(1)),s=(new TextEncoder).encode(JSON.stringify({bucket:"storage.callimacus.ai",key:r,edits:t})).toBase64();return`${n.origin}/${encodeURIComponent(s)}`}function y(){const e="undefined"==typeof crypto?void 0:crypto;if("function"==typeof e?.randomUUID)return e.randomUUID();const t=new Uint8Array(16);if("function"==typeof e?.getRandomValues)e.getRandomValues(t);else for(let e=0;e<16;e++)t[e]=Math.floor(256*Math.random());t[6]=15&t[6]|64,t[8]=63&t[8]|128;const n=[...t].map(e=>e.toString(16).padStart(2,"0"));return[n.slice(0,4).join(""),n.slice(4,6).join(""),n.slice(6,8).join(""),n.slice(8,10).join(""),n.slice(10,16).join("")].join("-")}var f,p;function m(e){if("object"!=typeof e||null===e)return!1;const t=e;return"string"==typeof t.audioUrl&&"string"==typeof t.mimeType}function g(e){if("object"==typeof e&&null!==e)for(const t of Object.values(e))if(m(t))return t}!function(e){e.GET_STORY="get-story",e.CREATE_ROUND="create-round",e.RESET_STORY="reset-story",e.BACK_FROM_ROUND="back-from-round",e.SHARE_STORY="share-story",e.GET_SHARED_STORY="get-shared-story",e.SUGGEST="suggest"}(f||(f={})),function(e){e.ROUND_CREATED="round-created",e.ROUND_EVENT="round-event",e.ROUND_COMPLETED="round-completed",e.ERROR="error"}(p||(p={}));const v={productSelector:"[data-product-id]",blockSelector:"[data-block-id]",maxTrackedElements:40,minVisibilityRatio:.5};class b{elements=new Map;elementRefs=new Map;elementKeys=new WeakMap;blocks=new Map;blockRefs=new Map;blockKeys=new WeakMap;started=!1;config;constructor(e={}){const t=e.minVisibilityRatio??v.minVisibilityRatio;this.config={productSelector:e.productSelector??v.productSelector,blockSelector:e.blockSelector??v.blockSelector,maxTrackedElements:e.maxTrackedElements??v.maxTrackedElements,minVisibilityRatio:Math.min(1,Math.max(0,t))}}rescanUi(){if(!this.canUseDom())return;let e,t;try{e=document.querySelectorAll(this.config.productSelector),t=document.querySelectorAll(this.config.blockSelector)}catch(e){return void d.warn("UI Observer: invalid selector, skipping rescan:",e)}const n=Date.now();for(const t of e){const e=this.normalizeRect(t.getBoundingClientRect()),r=this.calculateVisibilityRatio(e);this.syncTrackedElement(t,{bounds:e,isVisible:r>=this.config.minVisibilityRatio,visibilityRatio:r,observedAt:n})}for(const e of t){const t=this.normalizeRect(e.getBoundingClientRect()),r=this.calculateVisibilityRatio(t);this.syncTrackedBlock(e,{bounds:t,isVisible:r>=this.config.minVisibilityRatio,visibilityRatio:r,observedAt:n})}this.pruneTrackedElements(),this.pruneTrackedBlocks()}pruneTrackedElements(){if(this.elements.size<=this.config.maxTrackedElements)return;const e=[...this.elements].sort(([,e],[,t])=>{const n=e.visibilityRatio-t.visibilityRatio;return 0===n||Number.isNaN(n)?e.observedAt-t.observedAt:n}).slice(0,this.elements.size-this.config.maxTrackedElements);for(const[t]of e)this.elements.delete(t),this.elementRefs.delete(t)}pruneTrackedBlocks(){if(this.blocks.size<=this.config.maxTrackedElements)return;const e=[...this.blocks].sort(([,e],[,t])=>{const n=e.visibilityRatio-t.visibilityRatio;return 0===n||Number.isNaN(n)?e.observedAt-t.observedAt:n}).slice(0,this.blocks.size-this.config.maxTrackedElements);for(const[t]of e)this.blocks.delete(t),this.blockRefs.delete(t)}syncTrackedElement(e,t){const n=this.resolveElementId(e),r=this.resolveBlockId(e),s=this.createTrackingKey(n,r),i=this.elementKeys.get(e);void 0!==i&&""!==i&&i!==s&&(this.elements.delete(i),this.elementRefs.delete(i)),this.elementKeys.set(e,s),this.elementRefs.set(s,e),this.elements.set(s,{id:n,blockId:r,trackingKey:s,...t})}syncTrackedBlock(e,t){const n=this.resolveTrackedBlockId(e),r=this.blockKeys.get(e),s=n;void 0!==r&&""!==r&&r!==s&&(this.blocks.delete(r),this.blockRefs.delete(r)),this.blockKeys.set(e,s),this.blockRefs.set(s,e),this.blocks.set(s,{id:n,...t})}resolveElementId(e){return[e.dataset.productId,e.dataset.productid,e.dataset.sku,e.id].find(e=>void 0!==e&&""!==e)??`${e.tagName}-${e.dataset.productId??this.elements.size}`}resolveBlockId(e){let t;try{t=e.closest(this.config.blockSelector)??void 0}catch{return}return t instanceof HTMLElement?this.resolveTrackedBlockId(t):void 0}resolveTrackedBlockId(e){return[e.dataset.blockId,e.dataset.blockid,e.id].find(e=>void 0!==e&&""!==e)??`${e.tagName}-${e.dataset.blockId??this.blocks.size}`}createTrackingKey(e,t){return void 0===t||""===t?e:`${e}::${t}`}normalizeRect(e){return{x:e.x,y:e.y,width:e.width,height:e.height,top:e.top,left:e.left,right:e.right,bottom:e.bottom}}calculateVisibilityRatio(e){const t=Math.max(0,Math.min(e.right,window.innerWidth)-Math.max(e.left,0))*Math.max(0,Math.min(e.bottom,window.innerHeight)-Math.max(e.top,0)),n=e.width*e.height;if(n<=0)return 0;const r=window.innerWidth*window.innerHeight,s=r>0?Math.min(n,r):n;return Math.min(1,Math.max(0,t/s))}canUseDom(){return void 0!==globalThis.window&&"undefined"!=typeof document}start(){!this.started&&this.canUseDom()&&(this.started=!0)}stop(){this.started&&(this.started=!1,this.elements.clear(),this.elementRefs.clear(),this.blocks.clear(),this.blockRefs.clear())}getSnapshot(){if(!this.canUseDom())return;this.rescanUi();const e=[],t=[],n=Date.now();for(const[t,n]of this.elements){const r=this.elementRefs.get(t);r?.isConnected?n.visibilityRatio<=0||e.push({blockId:n.blockId,element:{id:n.id,bounds:n.bounds,isVisible:n.visibilityRatio>=this.config.minVisibilityRatio,visibilityRatio:n.visibilityRatio}}):(this.elements.delete(t),this.elementRefs.delete(t))}for(const[e,n]of this.blocks){const r=this.blockRefs.get(e);r?.isConnected?n.visibilityRatio<this.config.minVisibilityRatio||t.push(n.id):(this.blocks.delete(e),this.blockRefs.delete(e))}const r=e.slice(0,this.config.maxTrackedElements);return{timestamp:n,viewport:{width:window.innerWidth,height:window.innerHeight},blockIds:[...new Set([...t,...r.flatMap(e=>e.blockId??[])])],elements:r.map(e=>e.element)}}}function k(e){const{data:t}=e;if("object"!=typeof t||null===t)return;const{code:n,reason:r}=t;return"number"==typeof n?{code:n,..."string"==typeof r&&{reason:r}}:void 0}const w=3;function R(e,t){return e>=500&&t<3}function T(e,t){return t?void 0:k(e)??{code:0}}class E{socket;serverResponseListeners=new Set;connectionStatusListeners=new Set;errorListeners=new Set;uiObserver;uiObserverConfig=v;handshakeRetryAttempts=0;handshakeRetryTimer;setupEventListeners(){this.socket&&(this.socket.on("connect",()=>{d.debug("Connected to Callimacus"),this.clearHandshakeRetry(),this.handshakeRetryAttempts=0,this.updateConnectionStatus(!0),this.socket?.emit(r.CLIENT_READY)}),this.socket.on("disconnect",()=>{d.info("Disconnected from Callimacus"),this.updateConnectionStatus(!1)}),this.socket.on("connect_error",e=>{this.updateConnectionStatus(!1);const t=T(e,this.socket?.active??!0);t&&(d.error("Connection refused by Callimacus:",e.message,t.reason??""),this.notifyRejection(t,e.message),this.scheduleHandshakeRetry(t.code))}),this.socket.on(n.ERROR,e=>{d.error("Received error from Callimacus:",e),this.notifyErrorListeners(e)}),this.socket.io.on("reconnect",e=>{d.info(`Reconnected to Callimacus after ${e} attempts`)}),this.socket.io.on("reconnect_attempt",e=>{d.info(`Attempting to reconnect: attempt ${e}`)}),this.socket.io.on("reconnect_error",e=>{d.error("Reconnection error:",e)}),this.socket.io.on("reconnect_failed",()=>{d.error("Failed to reconnect to Callimacus service!"),this.updateConnectionStatus(!1)}),this.socket.on(n.SERVER_RESPONSE,e=>{this.notifyServerResponseListeners(e)}))}notifyServerResponseListeners(e){this.serverResponseListeners.forEach(t=>{try{t(e)}catch(e){d.error("Error in server response listener:",e)}})}updateConnectionStatus(e){this.connectionStatusListeners.forEach(t=>{try{t(e)}catch(e){d.error("Error in connection status listener:",e)}})}notifyRejection(e,t){this.notifyErrorListeners({code:e.code,message:t,...void 0!==e.reason&&{reason:e.reason}})}scheduleHandshakeRetry(e){if(!this.socket)return;if(this.clearHandshakeRetry(),!R(e,this.handshakeRetryAttempts))return void(e>=500&&(d.error("Giving up on the Callimacus connection after 3 retries"),this.notifyRejection({code:e,reason:"retries_exhausted"},"Connection failed after 3 retries; call connect() to try again")));const t=2**(this.handshakeRetryAttempts+1);this.handshakeRetryAttempts+=1,d.info(`Retrying Callimacus connection in ${t}s (attempt ${this.handshakeRetryAttempts}/3)`),this.handshakeRetryTimer=setTimeout(()=>{this.socket?.connect()},1e3*t)}clearHandshakeRetry(){void 0!==this.handshakeRetryTimer&&(clearTimeout(this.handshakeRetryTimer),this.handshakeRetryTimer=void 0)}notifyErrorListeners(e){this.errorListeners.forEach(t=>{try{t(e)}catch(e){d.error("Error in error listener:",e)}})}async getLocation(){if("undefined"!=typeof navigator&&"function"==typeof navigator.geolocation?.getCurrentPosition)return new Promise(e=>{navigator.geolocation.getCurrentPosition(t=>{e(t)},()=>{e(void 0)})})}enrichPayloadWithUiContext(e){try{this.ensureUiObserver();const t=this.uiObserver?.getSnapshot();return t?{...e,context:{...e.context,uiSnapshot:t}}:e}catch(t){return d.error("Error enriching payload with UI context:",t),e}}ensureUiObserver(){"undefined"!=typeof window&&"undefined"!=typeof document&&this.uiObserverConfig.enabled&&(this.uiObserver??=new b(this.uiObserverConfig),this.uiObserver.start())}socketEndpoint(e){const t=new URL(e),n=new URL("thamyr",t).pathname;return{origin:t.origin,path:n}}connect(t="wss://localhost:4000",n,r){this.socket&&(d.warn("Already connected to Thamyr. Disconnecting first...."),this.disconnect());const s=this.socketEndpoint(t);let i;"undefined"!=typeof window&&void 0!==globalThis.location&&(i=globalThis.location.href);const o={...void 0!==i&&""!==i&&{referrer:i},...r};d.info("Connecting to Thamyr at",s),this.socket=e(s.origin,{path:s.path,transports:["websocket","polling"],tryAllTransports:!0,extraHeaders:n,auth:o}),this.setupEventListeners(),this.ensureUiObserver()}disconnect(){this.clearHandshakeRetry(),this.handshakeRetryAttempts=0,this.socket&&(this.socket.disconnect(),this.socket=void 0,this.uiObserver?.stop(),this.uiObserver=void 0,this.updateConnectionStatus(!1),d.info("Disconnected from Callimacus"))}configureUiObserver(e){if(!e)return this.uiObserver?.stop(),this.uiObserver=void 0,void(this.uiObserverConfig={...v,enabled:!1});const t=e.enabled??(void 0!==e.productSelector||void 0!==e.blockSelector||void 0!==e.maxTrackedElements||void 0!==e.minVisibilityRatio||this.uiObserverConfig.enabled);if(this.uiObserverConfig={...this.uiObserverConfig,...e,enabled:t},"undefined"==typeof window||"undefined"==typeof document||!this.uiObserverConfig.enabled)return this.uiObserver?.stop(),void(this.uiObserver=void 0);this.uiObserver&&this.uiObserver.stop(),this.uiObserver=new b(this.uiObserverConfig),this.uiObserver.start()}sendUserInteraction(e,t){if(!this.socket)return void d.error("Socket is not connected. Cannot send interaction.");if(e===f.SUGGEST)return void d.error("SUGGEST is a request/response command. Use suggest() instead.");if(e===f.BACK_FROM_ROUND){if(void 0===t.chapterId)return void d.error("BACK_FROM_ROUND requires chapterId.")}const n={type:e,payload:this.enrichPayloadWithUiContext(t)},s={id:y()};this.socket.emit(r.USER_INTERACTION,{type:n.type,payload:n.payload},s.id)}async suggest(e,t={}){if(!this.socket?.connected)return{suggestions:[]};try{return function(e){const t=e?.suggestions;return{suggestions:Array.isArray(t)?t.filter(e=>"string"==typeof e):[]}}(await this.socket.timeout(t.timeoutMs??4e3).emitWithAck(r.USER_INTERACTION,{type:f.SUGGEST,payload:e}))}catch(e){return d.warn("Suggestions failed or timed out; serving none.",e),{suggestions:[]}}}async gatherClientInfo(){const e="undefined"==typeof navigator?void 0:navigator,t="undefined"==typeof window?void 0:window.screen;return{userAgent:e?.userAgent??"",language:e?.language??"",timezone:(new Intl.DateTimeFormat).resolvedOptions().timeZone,localTime:(new Date).toLocaleString(),screenResolution:void 0===t?"":`${t.width}x${t.height}`,location:await this.getLocation()}}onServerResponse(e){return this.serverResponseListeners.add(e),()=>{this.serverResponseListeners.delete(e)}}onConnectionStatus(e){return this.connectionStatusListeners.add(e),()=>{this.connectionStatusListeners.delete(e)}}onError(e){return this.errorListeners.add(e),()=>{this.errorListeners.delete(e)}}}const S=new E,I=200;function C(e,t={}){if(void 0!==e&&e.length>200)throw new RangeError("[thamyr] landing value exceeds 200 characters");return{inputEvent:{type:"customPage",data:void 0===e?{}:{value:e}},...t}}function O(e,t={}){const{block:n,payload:r,submissionId:s,value:i,...o}=t;return{inputEvent:{type:"customInteraction",data:{interactionId:e,...void 0!==n&&{nodeKey:n},...void 0!==r&&{payload:r},...void 0!==s&&{submissionId:s},...void 0!==i&&{value:i}}},...o}}function A(e){return e.receptors??e.intent??[]}function x(e){return"key"in e?e.key:void 0}const $="custom:addToCartResult";function _(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}const D=e=>"string"==typeof e&&e.length>0,q=e=>_(e)&&D(e.size)&&D(e.variantId)&&"boolean"==typeof e.orderable;function N(e){if(!_(e.data)||!_(e.data.addToCart))return;const t=e.data.addToCart;return"error"===t.status?{status:"error"}:"resolved"===t.status&&D(t.variantId)&&D(t.productName)&&D(t.size)?{status:"resolved",variantId:t.variantId,productName:t.productName,size:t.size}:"size_selection_needed"===t.status&&D(t.productSku)&&D(t.productName)&&Array.isArray(t.availableSizes)&&t.availableSizes.every(q)?{status:"size_selection_needed",productSku:t.productSku,productName:t.productName,availableSizes:t.availableSizes}:void 0}const j=e=>_(e)?e:{};function U(e,t,n){const[r,...s]=t;if(!_(e)||!Object.hasOwn(e,r))return;const i=0===s.length?function(e,t){if(_(e)&&"string"==typeof e.docId)return{...e,values:{...j(e.values),...t.values},inputs:{...j(e.inputs),...t.inputs},textRuns:{...j(e.textRuns),...t.textRuns}}}(e[r],n):U(e[r],s,n);return i&&{...e,[r]:i}}function L(e,t){const n=e.blocks??[],r=e.id===t.chapterId?n.findIndex(e=>e.id===t.blockId):-1;if(-1===r)return e;const s=n[r],i=U(s.data,t.contentId.split("."),t);return i?{...e,blocks:n.with(r,{...s,data:i})}:e}function K(e){const t=/^\/?map\/(?<language>[^\/]+)(?:\/(?<slug>.*))?$/v.exec(e)?.groups,n=t?.language;if(void 0===n||""===n)return;const r=t?.slug;return void 0===r||""===r?{language:n}:{language:n,slug:r}}async function z(e){try{const{data:t}=await e();return t}catch(e){if("object"==typeof e&&null!==e&&404===e.status)return;throw e}}async function M(e,t){const n=K(t);if(!n)return;const{language:r,slug:s}=n;if(void 0===s){const{data:t}=await e.content.listDocuments({language:r},{throwOnError:!0});return{kind:"index",language:r,entries:t}}const i=`/map/${r}/${s}`,o=await z(async()=>e.content.getDocumentByPath({path:i},{throwOnError:!0}));if(o)return{kind:"document",language:r,slug:s,document:o};if(!s.includes("/"))return;const a=await z(async()=>e.skesis.getItemByPath({path:i},{throwOnError:!0}));return a&&{kind:"item",language:r,slug:s,itemPage:a}}const B=["link","ask","interact","cart","submit"],P=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),V=e=>"string"==typeof e&&e.trim().length>0,H=new Set(["http:","https:","mailto:","tel:"]),W=e=>{try{return H.has(new URL(e,"https://relative.invalid").protocol)}catch{return!1}};function G(e){const{id:t,value:n,payload:r,block:s}=e,i=void 0===n||"string"==typeof n||(e=>Array.isArray(e)&&e.every(e=>"string"==typeof e))(n),o=void 0===r||P(r);if(i&&o&&(void 0===s||"string"==typeof s)&&V(t))return{type:"interact",id:t,...void 0!==n&&{value:n},...void 0!==r&&{payload:r},...void 0!==s&&{block:s}}}function F(e){if(P(e))switch(e.type){case"link":return function(e){const{url:t,newTab:n}=e;return(void 0===n||"boolean"==typeof n)&&V(t)&&W(t)?{type:"link",url:t,...void 0!==n&&{newTab:n}}:void 0}(e);case"ask":return V(e.value)?{type:"ask",value:e.value}:void 0;case"interact":return G(e);case"cart":return V(e.productId)?{type:"cart",productId:e.productId}:void 0;case"submit":return V(e.form)?{type:"submit",form:e.form}:void 0;default:return}}function J(e){const t=e instanceof FormData?e:new FormData(e),n=[];for(const e of new Set(t.keys())){const r=t.getAll(e).filter(e=>"string"==typeof e),s=e.endsWith("[]");r.length>0&&n.push([s?e.slice(0,-2):e,s||r.length>1?r:r[0]])}return Object.fromEntries(n)}const Y="custom:deliverResult",Q=new Set(["done","pending","ambiguous","skipped"]),Z=e=>void 0===e||"string"==typeof e,X=e=>P(e)&&"string"==typeof e.message&&Z(e.field),ee=e=>P(e)&&"string"==typeof e.status&&Q.has(e.status)&&Z(e.ref);function te(e){const t=e.type===Y&&P(e.data)?e.data:void 0;if(void 0===t)return;const{status:n,submissionId:r,message:s,redirect:i,errors:o,results:a}=t;var c;return("accepted"===n||"refused"===n)&&V(r)&&Z(s)&&Z(i)&&(void 0===o||Array.isArray(o)&&o.every(X))&&(P(c=a)&&Object.values(c).every(ee))?{status:n,submissionId:r,results:a,...void 0!==s&&{message:s},...void 0!==i&&W(i)&&{redirect:i},...void 0!==o&&{errors:o}}:void 0}const ne="2026-10",re=15e3,se=2e4,ie="fragment CartFields on Cart {\n\tid checkoutUrl totalQuantity\n\tcost {subtotalAmount {amount currencyCode} totalAmount {amount currencyCode}}\n\tlines(first: 100) {nodes {\n\t\tid quantity\n\t\tmerchandise {... on ProductVariant {id title product {title handle} image {url altText} price {amount currencyCode} selectedOptions {name value}}}\n\t\tcost {totalAmount {amount currencyCode}}\n\t}}\n}",oe=(e,t,n)=>`mutation ${e}(${t}, $country: CountryCode) @inContext(country: $country) {${n} {cart {...CartFields} userErrors {code field message} warnings {code message target}}}\n${ie}`,ae=`query CartQuery($id: ID!, $country: CountryCode) @inContext(country: $country) {cart(id: $id) {...CartFields}}\n${ie}`,ce=oe("CartCreate","$input: CartInput!","cartCreate(input: $input)"),ue=oe("CartLinesAdd","$cartId: ID!, $lines: [CartLineInput!]!","cartLinesAdd(cartId: $cartId, lines: $lines)"),le=oe("CartLinesUpdate","$cartId: ID!, $lines: [CartLineUpdateInput!]!","cartLinesUpdate(cartId: $cartId, lines: $lines)"),de=oe("CartLinesRemove","$cartId: ID!, $lineIds: [ID!]!","cartLinesRemove(cartId: $cartId, lineIds: $lineIds)"),he="The store is busy. Try again in a moment.",ye="The store is not open to the cart: its storefront password may be on.",fe=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),pe=e=>"string"==typeof e&&""!==e,me=(e,t)=>({error:{code:e,message:t},warnings:[]});const ge=(e,t=[])=>({data:e,warnings:t}),ve=(e,t,n)=>({error:{code:e,message:t,...void 0!==n&&{status:n}},isRefusedAccess:!1}),be=e=>({error:{code:"cart_unavailable",message:"The store refused the cart request.",status:e},isRefusedAccess:!0}),ke=/^gid:\/\/shopify\/ProductVariant\/\d+$/v,we=e=>ke.test(e);const Re=(e,t)=>Number.isSafeInteger(e)&&e>=t,Te=e=>({...e,lines:e.lines?.nodes??[]});const Ee=e=>e.lines.map(e=>({id:e.id,merchandiseId:e.merchandise.id,quantity:e.quantity})),Se=e=>e.map(({merchandiseId:e,quantity:t})=>({merchandiseId:e,quantity:t}));function Ie(e,t){const n=Se(e),r=n.find(e=>e.merchandiseId===t.merchandiseId);return r?r.quantity+=t.quantity:n.push(t),n}async function Ce(e){const{status:t}=e;if(0===t||"opaqueredirect"===e.type||t>=300&&t<400)return ve("cart_unavailable",ye,0===t?void 0:t);if(430===t||429===t)return ve("throttled",he,t);if(401===t||403===t)return be(t);if(!e.ok)return ve("http",`The store answered ${t}.`,t);let n;try{n=await e.json()}catch{return ve("cart_unavailable",ye,t)}return fe(n)&&fe(n.data)?{data:n.data}:function(e,t){const n=fe(e)&&Array.isArray(e.errors)?e.errors:[],r=new Set(n.map(e=>fe(e)&&fe(e.extensions)?e.extensions.code:void 0));if(r.has("THROTTLED"))return ve("throttled",he,t);if(r.has("ACCESS_DENIED")||r.has("UNAUTHORIZED")||r.has("FORBIDDEN"))return be(t);const s=n.find(e=>fe(e)&&pe(e.message));return ve("graphql",fe(s)&&pe(s.message)?s.message:"The store could not read the cart request.",t)}(n,t)}const Oe=e=>e instanceof Error?e.message:String(e);async function Ae(e){return new Promise(t=>{setTimeout(t,e)})}function xe(e){return"function"==typeof AbortSignal.timeout?AbortSignal.timeout(e):void 0}function $e(){try{return localStorage}catch{return}}function _e(e){const t=new Map;return{getItem(n){try{const t=e?.getItem(n);if("string"==typeof t)return t}catch{}return t.get(n)??null},setItem(n,r){try{if(void 0!==e)return e.setItem(n,r),void t.delete(n)}catch{}t.set(n,r)},removeItem(n){t.delete(n);try{e?.removeItem(n)}catch{}}}}function De(e,t={}){const{waitMs:n=se,ttlMs:r=re,retryMs:s=50,settleMs:i=30}=t;return async(t,o)=>{const a=`${t}:lease`,c=`${Date.now().toString(36)}.${Math.random().toString(36).slice(2)}`,u=()=>{const t=function(e){try{const t="string"==typeof e?JSON.parse(e):void 0;return fe(t)&&pe(t.owner)&&"number"==typeof t.expires?{owner:t.owner,expires:t.expires}:void 0}catch{return}}(e.getItem(a));return void 0!==t&&t.expires>Date.now()?t.owner:void 0},l=Date.now()+n;let d=!1;for(;!d;){if(void 0===u()){try{e.setItem(a,JSON.stringify({owner:c,expires:Date.now()+r}))}catch{return o()}if(await Ae(i),d=u()===c,d)continue}if(Date.now()>=l)throw new Error(`[thamyr] the ${t} lock was not granted within ${n} ms`);await Ae(s)}try{return await o()}finally{u()===c&&e.removeItem(a)}}}function qe(){return _e($e())}function Ne(e){const t=_e(e.storage??$e()),n=e.lock??function(){const e=globalThis.navigator?.locks;if("function"==typeof e?.request)return async(t,n)=>{const r=xe(se);return e.request(t,r?{signal:r}:{},async()=>n())}}()??De(t),r=e.fetch??(async(e,t)=>fetch(e,t)),s=e.navigate??(e=>{location.assign(e)});function i(e){const s=`callimacus:shopify-cart:${e.cartKey??e.storeDomain}`,i=`callimacus:shopify-cart-lock:${e.cartKey??e.storeDomain}`,o=void 0!==e.storefrontToken,a=()=>function(e){try{const t="string"==typeof e?JSON.parse(e):void 0;if(!fe(t)||!pe(t.id)||!t.id.startsWith("gid://shopify/Cart/"))return;const n=Array.isArray(t.lines)?t.lines:[];return{id:t.id,lines:n.filter(e=>fe(e)&&pe(e.id)&&pe(e.merchandiseId)&&"number"==typeof e.quantity)}}catch{return}}(t.getItem(s));function c(e){return t.setItem(s,JSON.stringify({id:e.id,lines:Ee(e)})),e}function u(e){a()?.id===e&&t.removeItem(s)}async function l(t,n){const s={"Content-Type":"application/json",Accept:"application/json"};void 0!==e.storefrontToken&&(s["X-Shopify-Storefront-Access-Token"]=e.storefrontToken);try{const i=await r(`https://${e.storeDomain}/api/${ne}/graphql.json`,{method:"POST",headers:s,body:JSON.stringify({query:t,variables:{...n,country:e.country??null}}),redirect:"manual",signal:xe(1e4)});return await Ce(i)}catch(e){const t=e instanceof Error&&"TimeoutError"===e.name;return ve("network",t?"The store did not answer in time.":"Could not reach the store. Check your connection and try again.")}}async function d(e){return l(ae,{id:e})}async function h(e,t,n){const r=await l(t,n);if("error"in r)return o&&r.isRefusedAccess?{refusedAccess:r.error}:{error:r.error,warnings:[]};const s=r.data[e];if(!fe(s))return me("graphql","The store answered without the cart.");const i=Array.isArray(s.userErrors)?s.userErrors:[],a=Array.isArray(s.warnings)?s.warnings:[];if(!s.cart&&i.every(e=>e.field?.includes("cartId")??!1))return{isGone:!0};const u=s.cart?c(Te(s.cart)):void 0;return i.length>0?{...void 0!==u&&{data:u},error:{code:"refused",message:i.map(e=>e.message).join(" "),userErrors:i},warnings:a}:ge(u,a)}function y(e,t){return"isGone"in e?(u(t),me("no_cart","The cart is no longer there.")):"refusedAccess"in e?{error:e.refusedAccess,warnings:[]}:e}async function f(t,r,s){let o,l=!1;try{o=await n(i,async()=>{l=!0;const n=a();return void 0!==n&&n.id!==s?n:0===t.length?(void 0!==s&&u(s),ge(void 0)):async function(t){const n={lines:t,...void 0!==e.country&&{buyerIdentity:{countryCode:e.country}},...void 0!==e.sourceName&&{sourceName:e.sourceName}},r=await h("cartCreate",ce,{input:n});return"isGone"in r?me("graphql","The store created no cart."):"refusedAccess"in r?{error:r.refusedAccess,warnings:[]}:r}(t)})}catch(e){return l?me("cart_unavailable",Oe(e)):me("busy","The cart is being set up in another tab. Try again in a moment.")}if("warnings"in o)return o;if(r.length>0)return y(await h("cartLinesAdd",ue,{cartId:o.id,lines:r}),o.id);const f=await d(o.id);return"error"in f?{error:f.error,warnings:[]}:ge(f.data.cart?c(Te(f.data.cart)):void 0)}return{hasToken:o,read:a,keep:c,drop:u,query:d,change:async function(e,t,n){const r=await h(t.field,t.document,{cartId:e.id,...t.variables});return"isGone"in r&&void 0!==n.whenGone?f(n.whenGone,n.added??[],e.id):"refusedAccess"in r?f(n.whenRefused,n.added??[],e.id):y(r,e.id)},createOnce:f}}let o=Promise.resolve();async function a(t){const n=o.then(async()=>async function(t){let n;try{n=await e.settings()}catch(e){return me("cart_unavailable",Oe(e))}if(!n.cartEnabled)return me("cart_disabled","The cart is off on this site.");const{storeDomain:r}=n;if(void 0===r)return me("cart_unavailable","No Shopify store is set up for this site.");try{return await t(i({...n,storeDomain:r}))}catch(e){return me("cart_unavailable",Oe(e))}}(t));return o=n.catch(()=>{}),n}async function c(){return a(async e=>{const t=e.read();if(void 0===t)return ge(void 0);const n=await e.query(t.id);return"error"in n?n.isRefusedAccess&&e.hasToken?e.createOnce(Se(t.lines),[],t.id):{error:n.error,warnings:[]}:n.data.cart?ge(e.keep(Te(n.data.cart))):(e.drop(t.id),ge(void 0))})}const u={getCart:c,async addItem(e,t=1){const n=function(e){if("string"==typeof e)return we(e)?e:/^\d+$/v.test(e)?`gid://shopify/ProductVariant/${e}`:void 0}(e);if(void 0===n)return me("invalid_input",`Not a Shopify product variant id: ${e}.`);if(!Re(t,1))return me("invalid_input",`Not a quantity to add: ${t}.`);const r={merchandiseId:n,quantity:t},s=await a(async e=>{const t=e.read();return void 0===t?e.createOnce([r],[r]):e.change(t,{field:"cartLinesAdd",document:ue,variables:{lines:[r]}},{whenGone:[r],whenRefused:Ie(t.lines,r),added:[r]})}),i=function(e,t){if(void 0!==e.error||void 0===e.data)return;const{lines:n}=e.data;for(const r of e.warnings){const e="MERCHANDISE_OUT_OF_STOCK"===r.code?n.find(e=>0===e.quantity&&e.merchandise.id===t):void 0;if(void 0!==e)return{line:e,warning:r}}}(s,n);if(void 0===i)return s;return{data:(await u.removeItem(i.line.id)).data??s.data,error:{code:"refused",message:i.warning.message},warnings:s.warnings}},removeItem:async e=>pe(e)?a(async t=>{const n=t.read();return void 0===n?me("no_cart","There is no cart yet."):t.change(n,{field:"cartLinesRemove",document:de,variables:{lineIds:[e]}},{whenRefused:Se(n.lines.filter(t=>t.id!==e))})}):me("invalid_input","No cart line to remove."),updateQuantity:async(e,t)=>pe(e)&&Re(t,0)?a(async n=>{const r=n.read();if(void 0===r)return me("no_cart","There is no cart yet.");const s=r.lines.map(n=>n.id===e?{...n,quantity:t}:n).filter(e=>e.quantity>0);return n.change(r,{field:"cartLinesUpdate",document:le,variables:{lines:[{id:e,quantity:t}]}},{whenRefused:Se(s)})}):me("invalid_input",`Not a cart line and quantity: ${e} × ${t}.`),async checkout(){const e=await c();if(void 0!==e.error)return{error:e.error,warnings:e.warnings};const t=e.data;if(void 0===t||0===t.totalQuantity)return me("no_cart","The cart is empty.");if(!function(e){try{return"https:"===new URL(e).protocol}catch{return!1}}(t.checkoutUrl))return me("cart_unavailable","The store answered without a checkout link.");try{s(t.checkoutUrl)}catch(e){return me("cart_unavailable",Oe(e))}return ge(t.checkoutUrl,e.warnings)}};return u}const je=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),Ue=e=>"string"==typeof e&&""!==e.trim()?e.trim():void 0;function Le(e){const t=e?.trim()??"";if(""!==t)try{const{host:e}=new URL(/^https?:\/\//iv.test(t)?t:`https://${t}`);return""===e?void 0:e}catch{return}}const Ke=e=>void 0!==e&&/^[a-z]{2}$/iv.test(e)?e.toUpperCase():void 0;const ze=(e,t)=>Le(e?.storeDomain)??t;function Me(e,t){const n=Le(e?.domain??t?.storeDomain),r=e?.storefrontToken??Ue(t?.storefrontToken),s=e?.sourceName??void 0,i=Ke(t?.country);return{cartEnabled:e?.cartEnabled??!0,...void 0!==n&&{storeDomain:n,cartKey:ze(t,n)},...void 0!==r&&{storefrontToken:r},...void 0!==s&&{sourceName:s},countries:e?.countries??{},...void 0!==i&&{country:i}}}async function Be(e,t){try{const n="function"==typeof AbortSignal.timeout?AbortSignal.timeout(5e3):void 0,{data:r,response:s}=await e.get({url:"/shopify/storefront",...void 0!==n&&{signal:n}});return Me(200===s?.status?function(e){if(!je(e)||"boolean"!=typeof e.cartEnabled)return;const t=je(e.countries)?Object.fromEntries(Object.entries(e.countries).filter(e=>"string"==typeof e[1])):{};return{domain:Ue(e.domain)??null,storefrontToken:Ue(e.storefrontToken)??null,sourceName:Ue(e.sourceName)??null,countries:t,cartEnabled:e.cartEnabled}}(r):void 0,t)}catch{return Me(void 0,t)}}function Pe(e,t){const{countries:n,country:r,...s}=e,i=function(e,t){if(void 0===t||""===t)return;const n=t.toLowerCase(),[r]=n.split(/[\-_]/v,1),s=Object.entries(e),i=s.find(([e])=>e.toLowerCase()===n)??s.find(([e])=>e.toLowerCase()===r);return Ke(i?.[1])}(n,t)??r;return{...s,...void 0!==i&&{country:i}}}const Ve={bodySerializer:e=>JSON.stringify(e,(e,t)=>"bigint"==typeof t?t.toString():t)},He=Object.entries({$body_:"body",$headers_:"headers",$path_:"path",$query_:"query"});function We(e,t){t||(t=new Map);for(const n of e)"in"in n?n.key&&t.set(n.key,{in:n.in,map:n.map}):"key"in n?t.set(n.key,{map:n.map}):n.args&&We(n.args,t);return t}function Ge(e,t){const n={headers:Object.create(null),path:Object.create(null),query:Object.create(null)},r=We(t);function s(e,t,r){let s=n[e];void 0===s&&(s=Object.create(null),n[e]=s),s[t]=r}let i;for(const[o,a]of e.entries())if(t[o]&&(i=t[o]),i)if("in"in i)if(i.key){const e=r.get(i.key),t=e.map||i.key;e.in&&s(e.in,t,a)}else n.body=a;else for(const[e,t]of Object.entries(a??{})){const o=r.get(e);if(o)if(o.in){const n=o.map||e;s(o.in,n,t)}else n[o.map]=t;else{const n=He.find(([t])=>e.startsWith(t));if(n){const[r,i]=n;s(i,e.slice(r.length),t)}else if("allowExtra"in i&&i.allowExtra)for(const[n,r]of Object.entries(i.allowExtra))if(r){s(n,e,t);break}}}return function(e){for(const[t,n]of Object.entries(e))"body"!==t&&(!n||"object"!=typeof n||Array.isArray(n)||Object.keys(n).length||delete e[t])}(n),n}const Fe=({allowReserved:e,explode:t,name:n,style:r,value:s})=>{if(!t){const t=(e?s:s.map(e=>encodeURIComponent(e))).join((e=>{switch(e){case"form":default:return",";case"pipeDelimited":return"|";case"spaceDelimited":return"%20"}})(r));switch(r){case"label":return`.${t}`;case"matrix":return`;${n}=${t}`;case"simple":return t;default:return`${n}=${t}`}}const i=(e=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}})(r),o=s.map(t=>"label"===r||"simple"===r?e?t:encodeURIComponent(t):Je({allowReserved:e,name:n,value:t})).join(i);return"label"===r||"matrix"===r?i+o:o},Je=({allowReserved:e,name:t,value:n})=>{if(null==n)return"";if("object"==typeof n)throw new Error("Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.");return`${t}=${e?n:encodeURIComponent(n)}`},Ye=({allowReserved:e,explode:t,name:n,style:r,value:s,valueOnly:i})=>{if(s instanceof Date)return i?s.toISOString():`${n}=${s.toISOString()}`;if("deepObject"!==r&&!t){let t=[];Object.entries(s).forEach(([n,r])=>{t=[...t,n,e?r:encodeURIComponent(r)]});const i=t.join(",");switch(r){case"form":return`${n}=${i}`;case"label":return`.${i}`;case"matrix":return`;${n}=${i}`;default:return i}}const o=(e=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}})(r),a=Object.entries(s).map(([t,s])=>Je({allowReserved:e,name:"deepObject"===r?`${n}[${t}]`:t,value:s})).join(o);return"label"===r||"matrix"===r?o+a:a},Qe=/\{[^{}]+\}/g,Ze=({baseUrl:e,path:t,query:n,querySerializer:r,url:s})=>{let i=(e??"")+(s.startsWith("/")?s:`/${s}`);t&&(i=(({path:e,url:t})=>{let n=t;const r=t.match(Qe);if(r)for(const t of r){let r=!1,s=t.substring(1,t.length-1),i="simple";s.endsWith("*")&&(r=!0,s=s.substring(0,s.length-1)),s.startsWith(".")?(s=s.substring(1),i="label"):s.startsWith(";")&&(s=s.substring(1),i="matrix");const o=e[s];if(null==o)continue;if(Array.isArray(o)){n=n.replace(t,Fe({explode:r,name:s,style:i,value:o}));continue}if("object"==typeof o){n=n.replace(t,Ye({explode:r,name:s,style:i,value:o,valueOnly:!0}));continue}if("matrix"===i){n=n.replace(t,`;${Je({name:s,value:o})}`);continue}const a=encodeURIComponent("label"===i?`.${o}`:o);n=n.replace(t,a)}return n})({path:t,url:i}));let o=n?r(n):"";return o.startsWith("?")&&(o=o.substring(1)),o&&(i+=`?${o}`),i};function Xe(e){const t=void 0!==e.body;if(t&&e.bodySerializer){if("serializedBody"in e){return void 0!==e.serializedBody&&""!==e.serializedBody?e.serializedBody:null}return""!==e.body?e.body:null}if(t)return e.body}const et=async(e,t)=>{const n="function"==typeof t?await t(e):t;if(n)return"bearer"===e.scheme?`Bearer ${n}`:"basic"===e.scheme?`Basic ${btoa(n)}`:n},tt=({parameters:e={},...t}={})=>n=>{const r=[];if(n&&"object"==typeof n)for(const s in n){const i=n[s];if(null==i)continue;const o=e[s]||t;if(Array.isArray(i)){const e=Fe({allowReserved:o.allowReserved,explode:!0,name:s,style:"form",value:i,...o.array});e&&r.push(e)}else if("object"==typeof i){const e=Ye({allowReserved:o.allowReserved,explode:!0,name:s,style:"deepObject",value:i,...o.object});e&&r.push(e)}else{const e=Je({allowReserved:o.allowReserved,name:s,value:i});e&&r.push(e)}}return r.join("&")},nt=(e,t)=>!!t&&!!(e.headers.has(t)||e.query?.[t]||e.headers.get("Cookie")?.includes(`${t}=`));const rt=e=>Ze({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:"function"==typeof e.querySerializer?e.querySerializer:tt(e.querySerializer),url:e.url}),st=(e,t)=>{const n={...e,...t};return n.baseUrl?.endsWith("/")&&(n.baseUrl=n.baseUrl.substring(0,n.baseUrl.length-1)),n.headers=ot(e.headers,t.headers),n},it=e=>{const t=[];return e.forEach((e,n)=>{t.push([n,e])}),t},ot=(...e)=>{const t=new Headers;for(const n of e){if(!n)continue;const e=n instanceof Headers?it(n):Object.entries(n);for(const[n,r]of e)if(null===r)t.delete(n);else if(Array.isArray(r))for(const e of r)t.append(n,e);else void 0!==r&&t.set(n,"object"==typeof r?JSON.stringify(r):r)}return t};class at{fns=[];clear(){this.fns=[]}eject(e){const t=this.getInterceptorIndex(e);this.fns[t]&&(this.fns[t]=null)}exists(e){const t=this.getInterceptorIndex(e);return Boolean(this.fns[t])}getInterceptorIndex(e){return"number"==typeof e?this.fns[e]?e:-1:this.fns.indexOf(e)}update(e,t){const n=this.getInterceptorIndex(e);return!!this.fns[n]&&(this.fns[n]=t,e)}use(e){return this.fns.push(e),this.fns.length-1}}const ct=tt({allowReserved:!1,array:{explode:!0,style:"form"},object:{explode:!0,style:"deepObject"}}),ut={"Content-Type":"application/json"},lt=(e={})=>({...Ve,headers:ut,parseAs:"auto",querySerializer:ct,...e}),dt=(e={})=>{let t=st(lt(),e);const n=()=>({...t}),r={error:new at,request:new at,response:new at},s=async e=>{const n={...t,...e,fetch:e.fetch??t.fetch??globalThis.fetch,headers:ot(t.headers,e.headers),serializedBody:void 0};n.security&&await async function(e){for(const t of e.security??[]){if(nt(e,t.name))continue;const n=await et(t,e.auth);if(!n)continue;const r=t.name??"Authorization";switch(t.in){case"query":e.query||(e.query={}),e.query[r]=n;break;case"cookie":e.headers.append("Cookie",`${r}=${n}`);break;default:e.headers.set(r,n)}}}(n),n.requestValidator&&await n.requestValidator(n),void 0!==n.body&&n.bodySerializer&&(n.serializedBody=n.bodySerializer(n.body)),void 0!==n.body&&""!==n.serializedBody||n.headers.delete("Content-Type");return{opts:n,url:rt(n)}},i=async e=>{const n=e.throwOnError??t.throwOnError,i=e.responseStyle??t.responseStyle;let o,a;try{const{opts:t,url:n}=await s(e),i={redirect:"follow",...t,body:Xe(t)};o=new Request(n,i);for(const e of r.request.fns)e&&(o=await e(o,t));const c=t.fetch;a=await c(o);for(const e of r.response.fns)e&&(a=await e(a,o,t));const u={request:o,response:a};if(a.ok){const e=("auto"===t.parseAs?(e=>{if(!e)return"stream";const t=e.split(";")[0]?.trim();return t?t.startsWith("application/json")||t.endsWith("+json")?"json":"multipart/form-data"===t?"formData":["application/","audio/","image/","video/"].some(e=>t.startsWith(e))?"blob":t.startsWith("text/")?"text":void 0:void 0})(a.headers.get("Content-Type")):t.parseAs)??"json";if(204===a.status||"0"===a.headers.get("Content-Length")){let n;switch(e){case"arrayBuffer":case"blob":case"text":n=await a[e]();break;case"formData":n=new FormData;break;case"stream":n=a.body;break;default:n={}}return"data"===t.responseStyle?n:{data:n,...u}}let n;switch(e){case"arrayBuffer":case"blob":case"formData":case"text":n=await a[e]();break;case"json":{const e=await a.text();n=e?JSON.parse(e):{};break}case"stream":return"data"===t.responseStyle?a.body:{data:a.body,...u}}return"json"===e&&(t.responseValidator&&await t.responseValidator(n),t.responseTransformer&&(n=await t.responseTransformer(n))),"data"===t.responseStyle?n:{data:n,...u}}const l=await a.text();let d;try{d=JSON.parse(l)}catch{}throw d??l}catch(t){let s=t;for(const t of r.error.fns)t&&(s=await t(s,a,o,e));if(s=s||{},n)throw s;return"data"===i?void 0:{error:s,request:o,response:a}}},o=e=>t=>i({...t,method:e}),a=e=>async t=>{const{opts:n,url:i}=await s(t);return function({onRequest:e,onSseError:t,onSseEvent:n,responseTransformer:r,responseValidator:s,sseDefaultRetryDelay:i,sseMaxRetryAttempts:o,sseMaxRetryDelay:a,sseSleepFn:c,url:u,...l}){let d;const h=c??(e=>new Promise(t=>setTimeout(t,e))),y=async function*(){let c=i??3e3,y=0;const f=l.signal??(new AbortController).signal;for(;!f.aborted;){y++;const i=l.headers instanceof Headers?l.headers:new Headers(l.headers);void 0!==d&&i.set("Last-Event-ID",d);try{const t={redirect:"follow",...l,body:l.serializedBody,headers:i,signal:f};let o=new Request(u,t);e&&(o=await e(u,t));const a=l.fetch??globalThis.fetch,h=await a(o);if(!h.ok)throw new Error(`SSE failed: ${h.status} ${h.statusText}`);if(!h.body)throw new Error("No body in SSE response");const y=h.body.pipeThrough(new TextDecoderStream).getReader();let p="";const m=()=>{try{y.cancel()}catch{}};f.addEventListener("abort",m);try{for(;;){const{done:e,value:t}=await y.read();if(e)break;p+=t,p=p.replace(/\r\n?/g,"\n");const i=p.split("\n\n");p=i.pop()??"";for(const e of i){const t=e.split("\n"),i=[];let o,a;for(const e of t)if(e.startsWith("data:"))i.push(e.replace(/^data:\s*/,""));else if(e.startsWith("event:"))o=e.replace(/^event:\s*/,"");else if(e.startsWith("id:"))d=e.replace(/^id:\s*/,"");else if(e.startsWith("retry:")){const t=Number.parseInt(e.replace(/^retry:\s*/,""),10);Number.isNaN(t)||(c=t)}let u=!1;if(i.length){const e=i.join("\n");try{a=JSON.parse(e),u=!0}catch{a=e}}u&&(s&&await s(a),r&&(a=await r(a))),n?.({data:a,event:o,id:d,retry:c}),i.length&&(yield a)}}}finally{f.removeEventListener("abort",m),y.releaseLock()}break}catch(e){if(t?.(e),void 0!==o&&y>=o)break;const n=Math.min(c*2**(y-1),a??3e4);await h(n)}}}();return{stream:y}}({...n,body:n.body,method:e,onRequest:async(e,t)=>{let s=new Request(e,t);for(const e of r.request.fns)e&&(s=await e(s,n));return s},serializedBody:Xe(n),url:i})};return{buildUrl:e=>rt({...t,...e}),connect:o("CONNECT"),delete:o("DELETE"),get:o("GET"),getConfig:n,head:o("HEAD"),interceptors:r,options:o("OPTIONS"),patch:o("PATCH"),post:o("POST"),put:o("PUT"),request:i,setConfig:e=>(t=st(t,e),n()),sse:{connect:a("CONNECT"),delete:a("DELETE"),get:a("GET"),head:a("HEAD"),options:a("OPTIONS"),patch:a("PATCH"),post:a("POST"),put:a("PUT"),trace:a("TRACE")},trace:o("TRACE")}};class ht{client;constructor(e){this.client=e.client}}class yt{defaultKey="default";instances=new Map;get(e){const t=this.instances.get(e??this.defaultKey);if(!t)throw new Error('No SDK client found. Create one with "new CallimacusApi()" to fix this error.');return t}set(e,t){this.instances.set(t??this.defaultKey,e)}}class ft extends ht{getPage(e,t){const n=Ge([e],[{args:[{in:"path",key:"language"},{in:"path",key:"id"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/page/{language}/{id}",...t,...n})}listTopics(e,t){const n=Ge([e],[{args:[{in:"path",key:"language"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/topic/{language}",...t,...n})}getTopicContents(e,t){const n=Ge([e],[{args:[{in:"path",key:"language"},{in:"path",key:"idOrSlug"},{in:"query",key:"offset"},{in:"query",key:"limit"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/topic/{language}/{idOrSlug}",...t,...n})}getDocumentBySlug(e,t){const n=Ge([e],[{args:[{in:"path",key:"language"},{in:"path",key:"slug"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/document/{language}/{slug}",...t,...n})}getDocumentByGroup(e,t){const n=Ge([e],[{args:[{in:"path",key:"language"},{in:"path",key:"groupId"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/document/by-group/{language}/{groupId}",...t,...n})}getDocumentByPath(e,t){const n=Ge([e],[{args:[{in:"query",key:"path"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/document/by-path",...t,...n})}listDocuments(e,t){const n=Ge([e],[{args:[{in:"path",key:"language"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/documents/{language}",...t,...n})}}class pt extends ht{getShared(e,t){const n=Ge([e],[{args:[{in:"path",key:"id"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/share/{id}",...t,...n})}share(e,t){const n=Ge([e],[{args:[{in:"path",key:"id"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/share/{id}",...t,...n})}}class mt extends ht{getSimilar(e,t){const n=Ge([e],[{args:[{in:"path",key:"productId"},{in:"query",key:"topK"},{in:"query",key:"language"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/product/{productId}/similar",...t,...n})}getRecommendations(e,t){const n=Ge([e],[{args:[{in:"path",key:"productId"},{in:"query",key:"language"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/product/{productId}/recommendations",...t,...n})}}class gt extends ht{getLast(e,t){const n=Ge([e],[{args:[{in:"query",key:"storyId"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/whisper",...t,...n})}}class vt extends ht{trackEvent(e,t){const n=Ge([e],[{args:[{in:"body",key:"storyId"},{in:"body",key:"eventName"},{in:"body",key:"content"},{in:"body",key:"payload"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/track-event",...t,...n,headers:{"Content-Type":"application/json",...t?.headers,...n.headers}})}}class bt extends ht{getCart(e){return(e?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/cart",...e})}addItemToCart(e,t){const n=Ge([e],[{args:[{in:"body",key:"productId"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/cart/add",...t,...n,headers:{"Content-Type":"application/json",...t?.headers,...n.headers}})}removeItemFromCart(e,t){const n=Ge([e],[{args:[{in:"body",key:"productId"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/cart/remove",...t,...n,headers:{"Content-Type":"application/json",...t?.headers,...n.headers}})}updateProductQuantity(e,t){const n=Ge([e],[{args:[{in:"body",key:"productId"},{in:"body",key:"quantity"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/cart/update",...t,...n,headers:{"Content-Type":"application/json",...t?.headers,...n.headers}})}}class kt extends ht{getStorefrontSettings(e){return(e?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/shopify/storefront",...e})}}class wt extends ht{similar(e,t){const n=Ge([e],[{args:[{in:"body",key:"anchorId"},{in:"body",key:"topK"},{in:"body",key:"locale"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/skesis/query/similar",...t,...n,headers:{"Content-Type":"application/json",...t?.headers,...n.headers}})}related(e,t){const n=Ge([e],[{args:[{in:"body",key:"anchorId"},{in:"body",key:"locale"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/skesis/query/related",...t,...n,headers:{"Content-Type":"application/json",...t?.headers,...n.headers}})}getItemByPath(e,t){const n=Ge([e],[{args:[{in:"query",key:"path"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/skesis/item/by-path",...t,...n})}}class Rt extends ht{static __registry=new yt;constructor(e){super(e),Rt.__registry.set(this,e.key)}_content;get content(){return this._content??=new ft({client:this.client})}_stories;get stories(){return this._stories??=new pt({client:this.client})}_products;get products(){return this._products??=new mt({client:this.client})}_whisper;get whisper(){return this._whisper??=new gt({client:this.client})}_analytics;get analytics(){return this._analytics??=new vt({client:this.client})}_cart;get cart(){return this._cart??=new bt({client:this.client})}_shopify;get shopify(){return this._shopify??=new kt({client:this.client})}_skesis;get skesis(){return this._skesis??=new wt({client:this.client})}}class Tt extends Error{status;body;response;request;constructor(e,t,n){const r=t?.status,s=n?`${n.method} ${n.url}`:"request";let i=`[thamyr] ${s} failed before a response arrived`;t&&(i=t.ok?`[thamyr] ${s} → ${t.status}, but the response could not be processed`:`[thamyr] ${s} → ${t.status}`),super(i,e instanceof Error?{cause:e}:void 0),this.name="ThamyrHttpError",this.status=r,this.body=e,this.response=t,this.request=n}}function Et(e){const t=dt(lt({baseUrl:new URL("api/v3",e.endpoint).href,headers:{Authorization:`Bearer ${e.accessToken}`,"x-sl-access-token":e.accessToken},credentials:e.withCredentials?"include":"same-origin"}));return t.interceptors.error.use((e,n,r,s)=>{if(!(s.throwOnError??t.getConfig().throwOnError??!1)||!0===s.signal?.aborted)return e;return new Tt(""===e?{}:e??{},n,r)}),t}export{B as ACTION_TYPES,$ as ADD_TO_CART_RESULT_BLOCK,Rt as CallimacusApi,p as CallimacusEvent,E as CallimacusService,o as ChapterStatus,r as ClientEvents,Y as DELIVER_RESULT_BLOCK,i as GalleryMode,I as LANDING_VALUE_MAX_LENGTH,w as MAX_HANDSHAKE_RETRIES,s as SLInputEventType,ne as STOREFRONT_API_VERSION,n as ServerEvents,Tt as ThamyrHttpError,t as ThamyrResponseType,f as UserInteractionType,F as actionOf,N as addToCartResultOf,L as applyBlockPatch,x as blockKeyOf,S as callimacusService,Pe as cartSettingsFor,T as classifyConnectError,Et as createContractClient,qe as createPageStorage,Ne as createShopifyCart,te as deliverResultOf,g as extractTtsAudio,J as fieldsOf,O as interactionRound,a as isCustomBlock,u as isMasterProduct,c as isSetProduct,we as isVariantGid,C as landingRound,d as logger,Me as mergeShopifySettings,k as parseConnectRejection,K as parseMapPath,y as randomUuid,Be as readShopifySettings,A as receptorsOf,M as resolveMapPage,R as shouldRetryHandshake,h as transformImageUrl};
|
|
9
9
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/contract/index.ts","../../../src/utils/logger.ts","../../../src/utils/image-transform.ts","../../../src/utils/uuid.ts","../../../src/services/callimacus/types/interactions.ts","../../../src/services/callimacus/types/responses.ts","../../../src/services/callimacus/types/tts.ts","../../../src/services/callimacus/ui-observer.ts","../../../src/services/callimacus/connect-rejection.ts","../../../src/services/callimacus/service.ts","../../../src/services/callimacus/rounds.ts","../../../src/services/callimacus/map.ts","../../../src/services/callimacus/actions.ts","../../../src/contract/generated/core/bodySerializer.gen.ts","../../../src/contract/generated/core/params.gen.ts","../../../src/contract/generated/core/pathSerializer.gen.ts","../../../src/contract/generated/core/utils.gen.ts","../../../src/contract/generated/core/auth.gen.ts","../../../src/contract/generated/client/utils.gen.ts","../../../src/contract/generated/client/client.gen.ts","../../../src/contract/generated/core/serverSentEvents.gen.ts","../../../src/contract/generated/sdk.gen.ts","../../../src/contract/http.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["ThamyrResponseType","ERROR","CHAPTER_EVENT","CHAPTER_DELETED","STORY_RESET","STORY_CREATED","STORY_SHARED","BLOCK_PATCH","ServerEvents","SYSTEM_MESSAGE","SERVER_STATUS","SERVER_RESPONSE","ClientEvents","CLIENT_READY","USER_INTERACTION","SLInputEventType","question","content","topic","tag","image","video","gallery","relatedQuestion","page","customInteraction","customPage","GalleryMode","masonry","carousel","ChapterStatus","understandingQuery","craftingAnswer","curatingContent","done","isCustomBlock","block","type","startsWith","isSetProduct","product","set","isMasterProduct","master","LOG_LEVELS","debug","info","warn","error","silent","logger","config","enabled","level","prefix","args","this","log","method","output","undefined","console","configure","getConfig","transformImageUrl","cdnUrl","edits","url","URL","key","decodeURIComponent","pathname","slice","request","TextEncoder","encode","JSON","stringify","bucket","toBase64","origin","encodeURIComponent","randomUuid","cryptoObject","crypto","randomUUID","bytes","Uint8Array","getRandomValues","index","Math","floor","random","hex","map","byte","toString","padStart","join","UserInteractionType","CallimacusEvent","isTtsAudio","value","v","audioUrl","mimeType","extractTtsAudio","data","Object","values","DEFAULT_OBSERVER_CONFIG","productSelector","blockSelector","maxTrackedElements","minVisibilityRatio","AutonomousUiObserver","elements","Map","elementRefs","elementKeys","WeakMap","blocks","blockRefs","blockKeys","started","constructor","min","max","rescanUi","canUseDom","nodes","blockNodes","document","querySelectorAll","now","Date","element","bounds","normalizeRect","getBoundingClientRect","visibilityRatio","calculateVisibilityRatio","syncTrackedElement","isVisible","observedAt","syncTrackedBlock","pruneTrackedElements","pruneTrackedBlocks","size","toRemove","sort","left","right","byVisibility","Number","isNaN","id","delete","updates","resolveElementId","blockId","resolveBlockId","trackingKey","createTrackingKey","previousTrackingKey","get","resolveTrackedBlockId","dataset","productId","productid","sku","find","candidate","tagName","blockElement","closest","HTMLElement","blockid","rect","x","y","width","height","top","bottom","visibleArea","window","innerWidth","innerHeight","totalArea","viewportArea","reference","globalThis","start","stop","clear","getSnapshot","visibleEntries","visibleBlockIds","domElement","isConnected","push","limitedVisibleEntries","timestamp","viewport","blockIds","Set","flatMap","entry","parseConnectRejection","code","reason","MAX_HANDSHAKE_RETRIES","shouldRetryHandshake","attemptsSoFar","classifyConnectError","isActive","CallimacusService","socket","serverResponseListeners","connectionStatusListeners","errorListeners","uiObserver","uiObserverConfig","handshakeRetryAttempts","handshakeRetryTimer","setupEventListeners","on","clearHandshakeRetry","updateConnectionStatus","emit","rejection","active","message","notifyRejection","scheduleHandshakeRetry","notifyErrorListeners","io","attempt","response","notifyServerResponseListeners","forEach","listener","delaySeconds","setTimeout","connect","clearTimeout","listenerError","getLocation","navigator","geolocation","getCurrentPosition","Promise","resolve","position","enrichPayloadWithUiContext","payload","ensureUiObserver","snapshot","context","uiSnapshot","socketEndpoint","endpoint","u","path","headers","auth","disconnect","referrer","location","href","finalAuth","transports","tryAllTransports","extraHeaders","configureUiObserver","shouldEnable","sendUserInteraction","SUGGEST","BACK_FROM_ROUND","chapterId","interaction","storedInteraction","suggest","options","connected","suggestions","list","Array","isArray","filter","suggestionsOf","timeout","timeoutMs","emitWithAck","gatherClientInfo","nav","screen","userAgent","language","timezone","Intl","DateTimeFormat","resolvedOptions","timeZone","localTime","toLocaleString","screenResolution","onServerResponse","callback","add","onConnectionStatus","onError","callimacusService","LANDING_VALUE_MAX_LENGTH","landingRound","length","RangeError","inputEvent","interactionRound","submissionId","round","interactionId","nodeKey","receptorsOf","chapter","receptors","intent","blockKeyOf","ADD_TO_CART_RESULT_BLOCK","isRecord","isText","isSize","variantId","orderable","addToCartResultOf","addToCart","result","status","productName","productSku","availableSizes","every","recordOrEmpty","mergedAt","node","patch","head","rest","hasOwn","next","docId","inputs","textRuns","mergedAnimation","applyBlockPatch","findIndex","contentId","split","with","parseMapPath","groups","exec","slug","async","unlessNotFound","read","resolveMapPage","api","parsed","entries","listDocuments","throwOnError","kind","getDocumentByPath","includes","itemPage","skesis","getItemByPath","ACTION_TYPES","trim","SAFE_PROTOCOLS","isSafeUrl","has","protocol","interactOf","fields","isValueOk","item","isStringList","isPayloadOk","actionOf","newTab","linkOf","form","fieldsOf","FormData","keys","getAll","isList","endsWith","fromEntries","DELIVER_RESULT_BLOCK","DESTINATION_STATUSES","isOptionalText","isFieldError","field","isDestinationResult","ref","deliverResultOf","redirect","errors","results","jsonBodySerializer","bodySerializer","body","_key","extraPrefixes","$body_","$headers_","$path_","$query_","buildKeyMap","in","buildClientParams","params","create","query","writeSlot","slot","record","arg","name","extra","allowExtra","allowed","stripEmptySlots","serializeArrayParam","allowReserved","explode","style","joinedValues","separatorArrayNoExplode","separator","separatorArrayExplode","serializePrimitiveParam","Error","serializeObjectParam","valueOnly","toISOString","separatorObjectExplode","PATH_PARAM_RE","getUrl","baseUrl","querySerializer","_url","matches","match","substring","replace","replaceValue","defaultPathSerializer","search","getValidRequestBody","hasBody","serializedBody","getAuthToken","token","scheme","btoa","createQuerySerializer","parameters","queryParams","serializedArray","array","serializedObject","object","serializedPrimitive","checkForExistence","buildUrl","mergeConfigs","a","b","mergeHeaders","headersEntries","mergedHeaders","Headers","header","iterator","append","Interceptors","fns","eject","getInterceptorIndex","exists","Boolean","indexOf","update","fn","use","defaultQuerySerializer","defaultHeaders","createConfig","override","parseAs","createClient","_config","interceptors","beforeRequest","opts","fetch","security","setAuthParams","requestValidator","responseStyle","requestInit","Request","_fetch","ok","contentType","cleanContent","some","getParseAs","emptyData","text","parse","responseValidator","responseTransformer","textError","jsonError","finalError","makeMethodFn","makeSseFn","onRequest","onSseError","onSseEvent","sseDefaultRetryDelay","sseMaxRetryAttempts","sseMaxRetryDelay","sseSleepFn","lastEventId","sleep","ms","stream","retryDelay","signal","AbortController","aborted","statusText","reader","pipeThrough","TextDecoderStream","getReader","buffer","abortHandler","cancel","addEventListener","chunks","pop","chunk","lines","dataLines","eventName","line","parseInt","parsedJson","rawData","event","retry","removeEventListener","releaseLock","backoff","createStream","createSseClient","init","post","put","setConfig","sse","trace","HeyApiClient","client","HeyApiRegistry","defaultKey","instances","instance","Content","getPage","listTopics","getTopicContents","getDocumentBySlug","getDocumentByGroup","Stories","getShared","share","Products","getSimilar","getRecommendations","Whisper","getLast","Analytics","trackEvent","Cart","getCart","addItemToCart","removeItemFromCart","updateProductQuantity","Skesis","similar","related","CallimacusApi","static","super","__registry","_content","_stories","stories","_products","products","_whisper","whisper","_analytics","analytics","_cart","cart","_skesis","ThamyrHttpError","target","cause","createContractClient","Authorization","accessToken","credentials","withCredentials"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/contract/index.ts","../../../src/utils/logger.ts","../../../src/utils/image-transform.ts","../../../src/utils/uuid.ts","../../../src/services/callimacus/types/interactions.ts","../../../src/services/callimacus/types/responses.ts","../../../src/services/callimacus/types/tts.ts","../../../src/services/callimacus/ui-observer.ts","../../../src/services/callimacus/connect-rejection.ts","../../../src/services/callimacus/service.ts","../../../src/services/callimacus/rounds.ts","../../../src/services/callimacus/map.ts","../../../src/services/callimacus/actions.ts","../../../src/services/shopify/cart.ts","../../../src/services/shopify/settings.ts","../../../src/contract/generated/core/bodySerializer.gen.ts","../../../src/contract/generated/core/params.gen.ts","../../../src/contract/generated/core/pathSerializer.gen.ts","../../../src/contract/generated/core/utils.gen.ts","../../../src/contract/generated/core/auth.gen.ts","../../../src/contract/generated/client/utils.gen.ts","../../../src/contract/generated/client/client.gen.ts","../../../src/contract/generated/core/serverSentEvents.gen.ts","../../../src/contract/generated/sdk.gen.ts","../../../src/contract/http.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["ThamyrResponseType","ERROR","CHAPTER_EVENT","CHAPTER_DELETED","STORY_RESET","STORY_CREATED","STORY_SHARED","BLOCK_PATCH","CART_COMMAND","ServerEvents","SYSTEM_MESSAGE","SERVER_STATUS","SERVER_RESPONSE","ClientEvents","CLIENT_READY","USER_INTERACTION","SLInputEventType","question","content","topic","tag","image","video","gallery","relatedQuestion","page","customInteraction","customPage","GalleryMode","masonry","carousel","ChapterStatus","understandingQuery","craftingAnswer","curatingContent","done","isCustomBlock","block","type","startsWith","isSetProduct","product","set","isMasterProduct","master","LOG_LEVELS","debug","info","warn","error","silent","logger","config","enabled","level","prefix","args","this","log","method","output","undefined","console","configure","getConfig","transformImageUrl","cdnUrl","edits","url","URL","key","decodeURIComponent","pathname","slice","request","TextEncoder","encode","JSON","stringify","bucket","toBase64","origin","encodeURIComponent","randomUuid","cryptoObject","crypto","randomUUID","bytes","Uint8Array","getRandomValues","index","Math","floor","random","hex","map","byte","toString","padStart","join","UserInteractionType","CallimacusEvent","isTtsAudio","value","v","audioUrl","mimeType","extractTtsAudio","data","Object","values","DEFAULT_OBSERVER_CONFIG","productSelector","blockSelector","maxTrackedElements","minVisibilityRatio","AutonomousUiObserver","elements","Map","elementRefs","elementKeys","WeakMap","blocks","blockRefs","blockKeys","started","constructor","min","max","rescanUi","canUseDom","nodes","blockNodes","document","querySelectorAll","now","Date","element","bounds","normalizeRect","getBoundingClientRect","visibilityRatio","calculateVisibilityRatio","syncTrackedElement","isVisible","observedAt","syncTrackedBlock","pruneTrackedElements","pruneTrackedBlocks","size","toRemove","sort","left","right","byVisibility","Number","isNaN","id","delete","updates","resolveElementId","blockId","resolveBlockId","trackingKey","createTrackingKey","previousTrackingKey","get","resolveTrackedBlockId","dataset","productId","productid","sku","find","candidate","tagName","blockElement","closest","HTMLElement","blockid","rect","x","y","width","height","top","bottom","visibleArea","window","innerWidth","innerHeight","totalArea","viewportArea","reference","globalThis","start","stop","clear","getSnapshot","visibleEntries","visibleBlockIds","domElement","isConnected","push","limitedVisibleEntries","timestamp","viewport","blockIds","Set","flatMap","entry","parseConnectRejection","code","reason","MAX_HANDSHAKE_RETRIES","shouldRetryHandshake","attemptsSoFar","classifyConnectError","isActive","CallimacusService","socket","serverResponseListeners","connectionStatusListeners","errorListeners","uiObserver","uiObserverConfig","handshakeRetryAttempts","handshakeRetryTimer","setupEventListeners","on","clearHandshakeRetry","updateConnectionStatus","emit","rejection","active","message","notifyRejection","scheduleHandshakeRetry","notifyErrorListeners","io","attempt","response","notifyServerResponseListeners","forEach","listener","delaySeconds","setTimeout","connect","clearTimeout","listenerError","getLocation","navigator","geolocation","getCurrentPosition","Promise","resolve","position","enrichPayloadWithUiContext","payload","ensureUiObserver","snapshot","context","uiSnapshot","socketEndpoint","endpoint","u","path","headers","auth","disconnect","referrer","location","href","finalAuth","transports","tryAllTransports","extraHeaders","configureUiObserver","shouldEnable","sendUserInteraction","SUGGEST","BACK_FROM_ROUND","chapterId","interaction","storedInteraction","suggest","options","connected","suggestions","list","Array","isArray","filter","suggestionsOf","timeout","timeoutMs","emitWithAck","gatherClientInfo","nav","screen","userAgent","language","timezone","Intl","DateTimeFormat","resolvedOptions","timeZone","localTime","toLocaleString","screenResolution","onServerResponse","callback","add","onConnectionStatus","onError","callimacusService","LANDING_VALUE_MAX_LENGTH","landingRound","length","RangeError","inputEvent","interactionRound","submissionId","round","interactionId","nodeKey","receptorsOf","chapter","receptors","intent","blockKeyOf","ADD_TO_CART_RESULT_BLOCK","isRecord","isText","isSize","variantId","orderable","addToCartResultOf","addToCart","result","status","productName","productSku","availableSizes","every","recordOrEmpty","mergedAt","node","patch","head","rest","hasOwn","next","docId","inputs","textRuns","mergedAnimation","applyBlockPatch","findIndex","contentId","split","with","parseMapPath","groups","exec","slug","async","unlessNotFound","read","resolveMapPage","api","parsed","entries","listDocuments","throwOnError","kind","getDocumentByPath","includes","itemPage","skesis","getItemByPath","ACTION_TYPES","trim","SAFE_PROTOCOLS","isSafeUrl","has","protocol","interactOf","fields","isValueOk","item","isStringList","isPayloadOk","actionOf","newTab","linkOf","form","fieldsOf","FormData","keys","getAll","isList","endsWith","fromEntries","DELIVER_RESULT_BLOCK","DESTINATION_STATUSES","isOptionalText","isFieldError","field","isDestinationResult","ref","deliverResultOf","redirect","errors","results","STOREFRONT_API_VERSION","LEASE_TTL_MS","LOCK_WAIT_MS","CART_FIELDS","mutation","name","parameters","call","CART_QUERY","CART_CREATE","LINES_ADD","LINES_UPDATE","LINES_REMOVE","BUSY_MESSAGE","PASSWORD_MESSAGE","failed","warnings","problem","isRefusedAccess","refusal","VARIANT_GID","isVariantGid","test","isQuantity","quantity","least","isSafeInteger","cartOf","raw","lines","linesOf","cart","line","merchandiseId","merchandise","inputsOf","withLine","same","input","answerOf","ok","body","json","codes","extensions","first","errorsOf","errorMessage","Error","String","sleep","ms","timeoutSignal","AbortSignal","browserStorage","localStorage","pageStorage","storage","memory","getItem","setItem","removeItem","leaseLock","timing","waitMs","ttlMs","retryMs","settleMs","task","owner","holder","lease","parse","expires","storedLease","deadline","isHeld","createPageStorage","createShopifyCart","lock","locks","signal","webLocks","send","fetch","init","navigate","assign","session","settings","cartKey","storeDomain","lockName","hasToken","storefrontToken","storedOf","keep","drop","goneId","variables","Accept","query","country","isTimeout","mutate","answer","refusedAccess","userErrors","isGone","settled","outcome","cartId","createOnce","linesToCreate","linesToAdd","replacing","isGranted","current","buyerIdentity","countryCode","sourceName","create","change","stored","recovery","whenGone","added","whenRefused","queue","run","work","turn","then","cartEnabled","runNow","catch","getCart","client","addItem","variantGidOf","soldOut","warning","soldOutLine","lineId","lineIds","checkout","totalQuantity","isHttps","checkoutUrl","textOf","hostOf","domain","trimmed","host","toUpperCase","cartKeyOf","mergeShopifySettings","storefront","countries","readShopifySettings","storefrontOf","cartSettingsFor","locale","buyerCountry","wanted","toLowerCase","match","countryFor","jsonBodySerializer","bodySerializer","_key","extraPrefixes","$body_","$headers_","$path_","$query_","buildKeyMap","in","buildClientParams","params","writeSlot","slot","record","arg","extra","allowExtra","allowed","stripEmptySlots","serializeArrayParam","allowReserved","explode","style","joinedValues","separatorArrayNoExplode","separator","separatorArrayExplode","serializePrimitiveParam","serializeObjectParam","valueOnly","toISOString","separatorObjectExplode","PATH_PARAM_RE","getUrl","baseUrl","querySerializer","_url","matches","substring","replace","replaceValue","defaultPathSerializer","search","getValidRequestBody","hasBody","serializedBody","getAuthToken","token","scheme","btoa","createQuerySerializer","queryParams","serializedArray","array","serializedObject","object","serializedPrimitive","checkForExistence","buildUrl","mergeConfigs","a","b","mergeHeaders","headersEntries","mergedHeaders","Headers","header","iterator","append","Interceptors","fns","eject","getInterceptorIndex","exists","Boolean","indexOf","update","fn","use","defaultQuerySerializer","defaultHeaders","createConfig","override","parseAs","createClient","_config","interceptors","beforeRequest","opts","security","setAuthParams","requestValidator","responseStyle","requestInit","Request","_fetch","contentType","cleanContent","some","getParseAs","emptyData","text","responseValidator","responseTransformer","textError","jsonError","finalError","makeMethodFn","makeSseFn","onRequest","onSseError","onSseEvent","sseDefaultRetryDelay","sseMaxRetryAttempts","sseMaxRetryDelay","sseSleepFn","lastEventId","stream","retryDelay","AbortController","aborted","statusText","reader","pipeThrough","TextDecoderStream","getReader","buffer","abortHandler","cancel","addEventListener","chunks","pop","chunk","dataLines","eventName","parseInt","parsedJson","rawData","event","retry","removeEventListener","releaseLock","backoff","createStream","createSseClient","post","put","setConfig","sse","trace","HeyApiClient","HeyApiRegistry","defaultKey","instances","instance","Content","getPage","listTopics","getTopicContents","getDocumentBySlug","getDocumentByGroup","Stories","getShared","share","Products","getSimilar","getRecommendations","Whisper","getLast","Analytics","trackEvent","Cart","addItemToCart","removeItemFromCart","updateProductQuantity","Shopify","getStorefrontSettings","Skesis","similar","related","CallimacusApi","static","super","__registry","_content","_stories","stories","_products","products","_whisper","whisper","_analytics","analytics","_cart","_shopify","shopify","_skesis","ThamyrHttpError","target","cause","createContractClient","Authorization","accessToken","credentials","withCredentials"],"mappings":";;;;;;;sEA+GO,MAAMA,EAAqB,CACjCC,MAAO,QACPC,cAAe,gBACfC,gBAAiB,kBACjBC,YAAa,cACbC,cAAe,gBACfC,aAAc,eACdC,YAAa,cACbC,aAAc,gBAOFC,EAAe,CAC3BR,MAAO,QACPS,eAAgB,iBAChBC,cAAe,gBACfC,gBAAiB,mBAOLC,EAAe,CAC3BC,aAAc,eACdC,iBAAkB,oBAINC,EAAmB,CAC/BC,SAAU,WACVC,QAAS,UACTC,MAAO,QACPC,IAAK,MACLC,MAAO,QACPC,MAAO,QACPC,QAAS,UACTC,gBAAiB,kBACjBC,KAAM,OACNC,kBAAmB,oBACnBC,WAAY,cAIAC,EAAc,CAC1BC,QAAS,UACTC,SAAU,YAIEC,EAAgB,CAC5BC,mBAAoB,EACpBC,eAAgB,EAChBC,gBAAiB,EACjBC,KAAM,GA0CD,SAAUC,EAAcC,GAC7B,OAAOA,EAAMC,KAAKC,WAAW,UAC9B,CAEM,SAAUC,EAAaC,GAC5B,MAAO,QAASA,EAAQH,MAAQG,EAAQH,KAAKI,GAC9C,CAEM,SAAUC,EAAgBF,GAC/B,MAAO,WAAYA,EAAQH,MAAQG,EAAQH,KAAKM,MACjD,CC7MA,MAAMC,EAAuC,CAC5CC,MAAO,EACPC,KAAM,EACNC,KAAM,EACNC,MAAO,EACPC,OAAQ,GAsDF,MAAMC,EAAS,IAnDtB,MACSC,OAAuB,CAC9BC,SAAS,EACTC,MAAO,OACPC,OAAQ,YAGTT,MAAQ,IAAIU,KACXC,KAAKC,IAAI,WAAYF,IAGtBT,KAAO,IAAIS,KACVC,KAAKC,IAAI,UAAWF,IAGrBR,KAAO,IAAIQ,KACVC,KAAKC,IAAI,UAAWF,IAGrBP,MAAQ,IAAIO,KACXC,KAAKC,IAAI,WAAYF,IAGd,GAAAE,CAAIC,KAAgDH,GAC3D,KAAMC,KAAKL,OAAOC,SAAWR,EAAWc,IAAWd,EAAWY,KAAKL,OAAOE,QACzE,OAGD,MAAMC,OAACA,GAAUE,KAAKL,OAChBQ,OAAoBC,IAAXN,GAAmC,KAAXA,EAAgBC,EAAO,CAACD,KAAWC,GAC1EM,QAAQH,MAAWC,EACpB,CAOA,SAAAG,CAAUX,GACTK,KAAKL,OAAS,IAAIK,KAAKL,UAAWA,EACnC,CAKA,SAAAY,GACC,MAAO,IAAIP,KAAKL,OACjB,GClBK,SAAUa,EAAkBC,EAAgBC,GACjD,MAAMC,EAAM,IAAIC,IAAIH,GACdI,EAAMC,mBAAmBH,EAAII,SAASC,MAAM,IAE5CC,GADQ,IAAIC,aAAcC,OAAOC,KAAKC,UAAU,CAACC,OA7CjC,wBA6CyDT,MAAKH,WAC9Da,WACtB,MAAO,GAAGZ,EAAIa,UAAUC,mBAAmBR,IAC5C,UC5CgBS,IACf,MAAMC,EAAqD,oBAAXC,YAAyBxB,EAAYwB,OAErF,GAAwC,mBAA7BD,GAAcE,WACxB,OAAOF,EAAaE,aAGrB,MAAMC,EAAQ,IAAIC,WAAW,IAC7B,GAA6C,mBAAlCJ,GAAcK,gBACxBL,EAAaK,gBAAgBF,QAE7B,IAAK,IAAIG,EAAQ,EAAGA,EAAQ,GAAIA,IAC/BH,EAAMG,GAASC,KAAKC,MAAsB,IAAhBD,KAAKE,UAMjCN,EAAM,GAAiB,GAAXA,EAAM,GAAa,GAC/BA,EAAM,GAAiB,GAAXA,EAAM,GAAa,IAG/B,MAAMO,EAAM,IAAIP,GAAOQ,IAAIC,GAAQA,EAAKC,SAAS,IAAIC,SAAS,EAAG,MAEjE,MAAO,CACNJ,EAAIrB,MAAM,EAAG,GAAG0B,KAAK,IACrBL,EAAIrB,MAAM,EAAG,GAAG0B,KAAK,IACrBL,EAAIrB,MAAM,EAAG,GAAG0B,KAAK,IACrBL,EAAIrB,MAAM,EAAG,IAAI0B,KAAK,IACtBL,EAAIrB,MAAM,GAAI,IAAI0B,KAAK,KACtBA,KAAK,IACR,KCvCYC,ECHAC,ECwBZ,SAASC,EAAWC,GACnB,GAAqB,iBAAVA,GAAgC,OAAVA,EAChC,OAAO,EAGR,MAAMC,EAAID,EACV,MAA6B,iBAAfC,EAAEC,UAA+C,iBAAfD,EAAEE,QACnD,CAQM,SAAUC,EAAgBC,GAC/B,GAAoB,iBAATA,GAA8B,OAATA,EAIhC,IAAK,MAAML,KAASM,OAAOC,OAAOF,GACjC,GAAIN,EAAWC,GACd,OAAOA,CAKV,EFhDA,SAAYH,GAIXA,EAAA,UAAA,YAIAA,EAAA,aAAA,eAIAA,EAAA,YAAA,cAIAA,EAAA,gBAAA,kBAIAA,EAAA,YAAA,cAIAA,EAAA,iBAAA,mBAIAA,EAAA,QAAA,SACA,CA7BD,CAAYA,IAAAA,EAAmB,CAAA,ICH/B,SAAYC,GAIXA,EAAA,cAAA,gBAIAA,EAAA,YAAA,cAIAA,EAAA,gBAAA,kBAIAA,EAAA,MAAA,OACA,CAjBD,CAAYA,IAAAA,EAAe,CAAA,IEmBpB,MAAMU,EAA0B,CACtCC,gBAAiB,oBACjBC,cAAe,kBACfC,mBAAoB,GACpBC,mBAAoB,UAGRC,EACKC,SAAW,IAAIC,IACfC,YAAc,IAAID,IAClBE,YAAc,IAAIC,QAClBC,OAAS,IAAIJ,IACbK,UAAY,IAAIL,IAChBM,UAAY,IAAIH,QACzBI,SAAU,EAEDzE,OAEjB,WAAA0E,CAAY1E,EAA2B,IACtC,MAAM+D,EAAqB/D,EAAO+D,oBAAsBJ,EAAwBI,mBAChF1D,KAAKL,OAAS,CACb4D,gBAAiB5D,EAAO4D,iBAAmBD,EAAwBC,gBACnEC,cAAe7D,EAAO6D,eAAiBF,EAAwBE,cAC/DC,mBAAoB9D,EAAO8D,oBAAsBH,EAAwBG,mBACzEC,mBAAoBxB,KAAKoC,IAAI,EAAGpC,KAAKqC,IAAI,EAAGb,IAE9C,CAEQ,QAAAc,GACP,IAAKxE,KAAKyE,YACT,OAGD,IAAIC,EACAC,EACJ,IACCD,EAAQE,SAASC,iBAA8B7E,KAAKL,OAAO4D,iBAC3DoB,EAAaC,SAASC,iBAA8B7E,KAAKL,OAAO6D,cACjE,CAAE,MAAOhE,GAER,YADAE,EAAOH,KAAK,kDAAmDC,EAEhE,CAEA,MAAMsF,EAAMC,KAAKD,MAEjB,IAAK,MAAME,KAAWN,EAAO,CAC5B,MAAMO,EAASjF,KAAKkF,cAAcF,EAAQG,yBACpCC,EAAkBpF,KAAKqF,yBAAyBJ,GACtDjF,KAAKsF,mBAAmBN,EAAS,CAChCC,SACAM,UAAWH,GAAmBpF,KAAKL,OAAO+D,mBAC1C0B,kBACAI,WAAYV,GAEd,CAEA,IAAK,MAAMlG,KAAS+F,EAAY,CAC/B,MAAMM,EAASjF,KAAKkF,cAActG,EAAMuG,yBAClCC,EAAkBpF,KAAKqF,yBAAyBJ,GACtDjF,KAAKyF,iBAAiB7G,EAAO,CAC5BqG,SACAM,UAAWH,GAAmBpF,KAAKL,OAAO+D,mBAC1C0B,kBACAI,WAAYV,GAEd,CAEA9E,KAAK0F,uBACL1F,KAAK2F,oBACN,CAEQ,oBAAAD,GACP,GAAI1F,KAAK4D,SAASgC,MAAQ5F,KAAKL,OAAO8D,mBACrC,OAGD,MASMoC,EATqB,IAAI7F,KAAK4D,UAElCkC,KAAK,EAAC,CAAGC,IAAO,CAAGC,MACnB,MAAMC,EAAeF,EAAKX,gBAAkBY,EAAMZ,gBAClD,OAAwB,IAAjBa,GAAsBC,OAAOC,MAAMF,GACvCF,EAAKP,WAAaQ,EAAMR,WACxBS,IAG+BjF,MAAM,EAAGhB,KAAK4D,SAASgC,KAAO5F,KAAKL,OAAO8D,oBAC9E,IAAK,MAAO2C,KAAOP,EAClB7F,KAAK4D,SAASyC,OAAOD,GACrBpG,KAAK8D,YAAYuC,OAAOD,EAE1B,CAEQ,kBAAAT,GACP,GAAI3F,KAAKiE,OAAO2B,MAAQ5F,KAAKL,OAAO8D,mBACnC,OAGD,MASMoC,EATqB,IAAI7F,KAAKiE,QAElC6B,KAAK,EAAC,CAAGC,IAAO,CAAGC,MACnB,MAAMC,EAAeF,EAAKX,gBAAkBY,EAAMZ,gBAClD,OAAwB,IAAjBa,GAAsBC,OAAOC,MAAMF,GACvCF,EAAKP,WAAaQ,EAAMR,WACxBS,IAG+BjF,MAAM,EAAGhB,KAAKiE,OAAO2B,KAAO5F,KAAKL,OAAO8D,oBAC5E,IAAK,MAAO2C,KAAOP,EAClB7F,KAAKiE,OAAOoC,OAAOD,GACnBpG,KAAKkE,UAAUmC,OAAOD,EAExB,CAEQ,kBAAAd,CACPN,EACAsB,GAEA,MAAMF,EAAKpG,KAAKuG,iBAAiBvB,GAC3BwB,EAAUxG,KAAKyG,eAAezB,GAC9B0B,EAAc1G,KAAK2G,kBAAkBP,EAAII,GACzCI,EAAsB5G,KAAK+D,YAAY8C,IAAI7B,QAErB5E,IAAxBwG,GAA6D,KAAxBA,GAA8BA,IAAwBF,IAC9F1G,KAAK4D,SAASyC,OAAOO,GACrB5G,KAAK8D,YAAYuC,OAAOO,IAGzB5G,KAAK+D,YAAY9E,IAAI+F,EAAS0B,GAC9B1G,KAAK8D,YAAY7E,IAAIyH,EAAa1B,GAClChF,KAAK4D,SAAS3E,IAAIyH,EAAa,CAC9BN,KACAI,UACAE,iBACGJ,GAEL,CAEQ,gBAAAb,CACPT,EACAsB,GAEA,MAAMF,EAAKpG,KAAK8G,sBAAsB9B,GAChC4B,EAAsB5G,KAAKmE,UAAU0C,IAAI7B,GACzC0B,EAAcN,OAEQhG,IAAxBwG,GAA6D,KAAxBA,GAA8BA,IAAwBF,IAC9F1G,KAAKiE,OAAOoC,OAAOO,GACnB5G,KAAKkE,UAAUmC,OAAOO,IAGvB5G,KAAKmE,UAAUlF,IAAI+F,EAAS0B,GAC5B1G,KAAKkE,UAAUjF,IAAIyH,EAAa1B,GAChChF,KAAKiE,OAAOhF,IAAIyH,EAAa,CAC5BN,QACGE,GAEL,CAEQ,gBAAAC,CAAiBvB,GAQxB,MAPmB,CAClBA,EAAQ+B,QAAQC,UAChBhC,EAAQ+B,QAAQE,UAChBjC,EAAQ+B,QAAQG,IAChBlC,EAAQoB,IAEae,KAAKC,QAA2BhH,IAAdgH,GAAyC,KAAdA,IACtD,GAAGpC,EAAQqC,WAAWrC,EAAQ+B,QAAQC,WAAahH,KAAK4D,SAASgC,MAC/E,CAEQ,cAAAa,CAAezB,GACtB,IAAIsC,EACJ,IACCA,EAAetC,EAAQuC,QAAQvH,KAAKL,OAAO6D,qBAAkBpD,CAC9D,CAAE,MACD,MACD,CAEA,OAAQkH,aAAwBE,YAAexH,KAAK8G,sBAAsBQ,QAAgBlH,CAC3F,CAEQ,qBAAA0G,CAAsB9B,GAO7B,MANmB,CAClBA,EAAQ+B,QAAQP,QAChBxB,EAAQ+B,QAAQU,QAChBzC,EAAQoB,IAEae,KAAKC,QAA2BhH,IAAdgH,GAAyC,KAAdA,IACtD,GAAGpC,EAAQqC,WAAWrC,EAAQ+B,QAAQP,SAAWxG,KAAKiE,OAAO2B,MAC3E,CAEQ,iBAAAe,CAAkBP,EAAYI,GACrC,YAAmBpG,IAAZoG,GAAqC,KAAZA,EAAiBJ,EAAK,GAAGA,MAAOI,GACjE,CAEQ,aAAAtB,CAAcwC,GACrB,MAAO,CACNC,EAAGD,EAAKC,EACRC,EAAGF,EAAKE,EACRC,MAAOH,EAAKG,MACZC,OAAQJ,EAAKI,OACbC,IAAKL,EAAKK,IACVhC,KAAM2B,EAAK3B,KACXC,MAAO0B,EAAK1B,MACZgC,OAAQN,EAAKM,OAEf,CAEQ,wBAAA3C,CAAyBJ,GAChC,MAEMgD,EAFe/F,KAAKqC,IAAI,EAAGrC,KAAKoC,IAAIW,EAAOe,MAAOkC,OAAOC,YAAcjG,KAAKqC,IAAIU,EAAOc,KAAM,IAC7E7D,KAAKqC,IAAI,EAAGrC,KAAKoC,IAAIW,EAAO+C,OAAQE,OAAOE,aAAelG,KAAKqC,IAAIU,EAAO8C,IAAK,IAE/FM,EAAYpD,EAAO4C,MAAQ5C,EAAO6C,OAExC,GAAIO,GAAa,EAChB,OAAO,EAGR,MAAMC,EAAeJ,OAAOC,WAAaD,OAAOE,YAC1CG,EAAYD,EAAe,EAAIpG,KAAKoC,IAAI+D,EAAWC,GAAgBD,EAEzE,OAAOnG,KAAKoC,IAAI,EAAGpC,KAAKqC,IAAI,EAAG0D,EAAcM,GAC9C,CAEQ,SAAA9D,GACP,YAA6BrE,IAAtBoI,WAAWN,QAA4C,oBAAbtD,QAClD,CAEA,KAAA6D,IACKzI,KAAKoE,SAAYpE,KAAKyE,cAI1BzE,KAAKoE,SAAU,EAChB,CAEA,IAAAsE,GACM1I,KAAKoE,UAIVpE,KAAKoE,SAAU,EACfpE,KAAK4D,SAAS+E,QACd3I,KAAK8D,YAAY6E,QACjB3I,KAAKiE,OAAO0E,QACZ3I,KAAKkE,UAAUyE,QAChB,CAEA,WAAAC,GACC,IAAK5I,KAAKyE,YACT,OAGDzE,KAAKwE,WAEL,MAAMqE,EAGD,GACCC,EAA4B,GAC5BhE,EAAMC,KAAKD,MAEjB,IAAK,MAAO4B,EAAa1B,KAAYhF,KAAK4D,SAAU,CACnD,MAAMmF,EAAa/I,KAAK8D,YAAY+C,IAAIH,GACnCqC,GAAYC,YAMbhE,EAAQI,iBAAmB,GAI/ByD,EAAeI,KAAK,CACnBzC,QAASxB,EAAQwB,QACjBxB,QAAS,CACRoB,GAAIpB,EAAQoB,GACZnB,OAAQD,EAAQC,OAChBM,UAAWP,EAAQI,iBAAmBpF,KAAKL,OAAO+D,mBAClD0B,gBAAiBJ,EAAQI,oBAf1BpF,KAAK4D,SAASyC,OAAOK,GACrB1G,KAAK8D,YAAYuC,OAAOK,GAiB1B,CAEA,IAAK,MAAOA,EAAa9H,KAAUoB,KAAKiE,OAAQ,CAC/C,MAAM8E,EAAa/I,KAAKkE,UAAU2C,IAAIH,GACjCqC,GAAYC,YAMbpK,EAAMwG,gBAAkBpF,KAAKL,OAAO+D,oBAIxCoF,EAAgBG,KAAKrK,EAAMwH,KAT1BpG,KAAKiE,OAAOoC,OAAOK,GACnB1G,KAAKkE,UAAUmC,OAAOK,GASxB,CAEA,MAAMwC,EAAwBL,EAAe7H,MAAM,EAAGhB,KAAKL,OAAO8D,oBAElE,MAAO,CACN0F,UAAWrE,EACXsE,SAAU,CACTvB,MAAOK,OAAOC,WACdL,OAAQI,OAAOE,aAEhBiB,SAAU,IAAI,IAAIC,IAAI,IAClBR,KACAI,EAAsBK,QAAQC,GAASA,EAAMhD,SAAW,OAE5D5C,SAAUsF,EAAsB5G,IAAIkH,GAASA,EAAMxE,SAErD,EC/TK,SAAUyE,EAAsBjK,GACrC,MAAM2D,KAACA,GAAQ3D,EACf,GAAoB,iBAAT2D,GAA8B,OAATA,EAC/B,OAGD,MAAMuG,KAACA,EAAIC,OAAEA,GAAUxG,EACvB,MAAuB,iBAATuG,EAAoB,CAACA,UAA4B,iBAAXC,GAAuB,CAACA,gBAAYvJ,CACzF,CAEO,MAAMwJ,EAAwB,EAQ/B,SAAUC,EAAqBH,EAAcI,GAClD,OAAOJ,GAAQ,KAAOI,EATc,CAUrC,CAWM,SAAUC,EAAqBvK,EAAcwK,GAClD,OAAOA,OAAW5J,EAAYqJ,EAAsBjK,IAAU,CAACkK,KAAM,EACtE,OCIaO,EACJC,OAESC,wBAA0B,IAAIb,IAC9Bc,0BAA4B,IAAId,IAChCe,eAAiB,IAAIf,IAC9BgB,WACAC,iBAAqCjH,EACrCkH,uBAAyB,EACzBC,oBAEA,mBAAAC,GACF1K,KAAKkK,SAIVlK,KAAKkK,OAAOS,GAAG,UAAW,KACzBjL,EAAOL,MAAM,2BACbW,KAAK4K,sBACL5K,KAAKwK,uBAAyB,EAC9BxK,KAAK6K,wBAAuB,GAE5B7K,KAAKkK,QAAQY,KAAK1N,EAAaC,gBAGhC2C,KAAKkK,OAAOS,GAAG,aAAc,KAC5BjL,EAAOJ,KAAK,gCACZU,KAAK6K,wBAAuB,KAG7B7K,KAAKkK,OAAOS,GAAG,gBAAiBnL,IAC/BQ,KAAK6K,wBAAuB,GAM5B,MAAME,EAAYhB,EAAqBvK,EAAOQ,KAAKkK,QAAQc,SAAU,GAChED,IAILrL,EAAOF,MAAM,oCAAqCA,EAAMyL,QAASF,EAAUpB,QAAU,IACrF3J,KAAKkL,gBAAgBH,EAAWvL,EAAMyL,SACtCjL,KAAKmL,uBAAuBJ,EAAUrB,SAGvC1J,KAAKkK,OAAOS,GAAG3N,EAAaR,MAAQgD,IACnCE,EAAOF,MAAM,kCAAmCA,GAChDQ,KAAKoL,qBAAqB5L,KAG3BQ,KAAKkK,OAAOmB,GAAGV,GAAG,YAAaW,IAC9B5L,EAAOJ,KAAK,mCAAmCgM,gBAGhDtL,KAAKkK,OAAOmB,GAAGV,GAAG,oBAAqBW,IACtC5L,EAAOJ,KAAK,oCAAoCgM,OAGjDtL,KAAKkK,OAAOmB,GAAGV,GAAG,kBAAmBnL,IACpCE,EAAOF,MAAM,sBAAuBA,KAGrCQ,KAAKkK,OAAOmB,GAAGV,GAAG,mBAAoB,KACrCjL,EAAOF,MAAM,8CACbQ,KAAK6K,wBAAuB,KAG7B7K,KAAKkK,OAAOS,GAAG3N,EAAaG,gBAAkBoO,IAC7CvL,KAAKwL,8BAA8BD,KAErC,CAOQ,6BAAAC,CAA8BD,GACrCvL,KAAKmK,wBAAwBsB,QAAQC,IACpC,IACCA,EAASH,EACV,CAAE,MAAO/L,GACRE,EAAOF,MAAM,qCAAsCA,EACpD,GAEF,CAOQ,sBAAAqL,CAAuB7B,GAC9BhJ,KAAKoK,0BAA0BqB,QAAQC,IACtC,IACCA,EAAS1C,EACV,CAAE,MAAOxJ,GACRE,EAAOF,MAAM,uCAAwCA,EACtD,GAEF,CAEQ,eAAA0L,CAAgBH,EAA6BE,GACpDjL,KAAKoL,qBAAqB,CACzB1B,KAAMqB,EAAUrB,KAChBuB,kBACyB7K,IAArB2K,EAAUpB,QAAwB,CAACA,OAAQoB,EAAUpB,SAE3D,CASQ,sBAAAwB,CAAuBzB,GAC9B,IAAK1J,KAAKkK,OACT,OAKD,GAFAlK,KAAK4K,uBAEAf,EAAqBH,EAAM1J,KAAKwK,wBAWpC,YARId,GAAQ,MACXhK,EAAOF,MAAM,0DACbQ,KAAKkL,gBACJ,CAACxB,OAAMC,OAAQ,qBACf,oEAQH,MAAMgC,EAAe,IAAM3L,KAAKwK,uBAAyB,GACzDxK,KAAKwK,wBAA0B,EAC/B9K,EAAOJ,KAAK,qCAAqCqM,eAA0B3L,KAAKwK,6BAChFxK,KAAKyK,oBAAsBmB,WAAW,KACrC5L,KAAKkK,QAAQ2B,WACI,IAAfF,EACJ,CAEQ,mBAAAf,QAC0BxK,IAA7BJ,KAAKyK,sBAITqB,aAAa9L,KAAKyK,qBAClBzK,KAAKyK,yBAAsBrK,EAC5B,CAOQ,oBAAAgL,CAAqB5L,GAC5BQ,KAAKqK,eAAeoB,QAAQC,IAC3B,IACCA,EAASlM,EACV,CAAE,MAAOuM,GACRrM,EAAOF,MAAM,2BAA4BuM,EAC1C,GAEF,CAYQ,iBAAMC,GACb,GAAyB,oBAAdC,WAAkF,mBAA9CA,UAAUC,aAAaC,mBAItE,OAAO,IAAIC,QAAQC,IAClBJ,UAAUC,YAAYC,mBAAmBG,IACxCD,EAAQC,IACN,KACFD,OAAQjM,MAGX,CAEQ,0BAAAmM,CAA0DC,GACjE,IACCxM,KAAKyM,mBACL,MAAMC,EAAW1M,KAAKsK,YAAY1B,cAClC,OAAK8D,EAIE,IACHF,EACHG,QAAS,IACLH,EAAQG,QACXC,WAAYF,IAPNF,CAUT,CAAE,MAAOhN,GAER,OADAE,EAAOF,MAAM,2CAA4CA,GAClDgN,CACR,CACD,CAEQ,gBAAAC,GACe,oBAAXvE,QAA8C,oBAAbtD,UAA6B5E,KAAKuK,iBAAiB3K,UAI/FI,KAAKsK,aAAe,IAAI3G,EAAqB3D,KAAKuK,kBAElDvK,KAAKsK,WAAW7B,QACjB,CAEA,cAAAoE,CAAeC,GACd,MAAMC,EAAI,IAAInM,IAAIkM,GACZE,EAAO,IAAIpM,IAAI,SAAUmM,GAAGhM,SAClC,MAAO,CAACS,OAAQuL,EAAEvL,OAAQwL,OAC3B,CAYA,OAAAnB,CAAQlL,EAAM,uBAAwBsM,EAAkCC,GACnElN,KAAKkK,SACRxK,EAAOH,KAAK,wDACZS,KAAKmN,cAGN,MAAML,EAAW9M,KAAK6M,eAAelM,GAErC,IAAIyM,EAEkB,oBAAXlF,aAAkD9H,IAAxBoI,WAAW6E,WAC/CD,EAAW5E,WAAW6E,SAASC,MAGhC,MAAMC,EAAY,SACAnN,IAAbgN,GAAuC,KAAbA,GAAmB,CAACA,eAC/CF,GAGJxN,EAAOJ,KAAK,0BAA2BwN,GAEvC9M,KAAKkK,OAASmB,EAAGyB,EAAStL,OAAQ,CACjCwL,KAAMF,EAASE,KACfQ,WAAY,CAAC,YAAa,WAc1BC,kBAAkB,EAClBC,aAAcT,EACdC,KAAMK,IAGPvN,KAAK0K,sBACL1K,KAAKyM,kBACN,CAOA,UAAAU,GACCnN,KAAK4K,sBACL5K,KAAKwK,uBAAyB,EAEzBxK,KAAKkK,SAIVlK,KAAKkK,OAAOiD,aACZnN,KAAKkK,YAAS9J,EACdJ,KAAKsK,YAAY5B,OACjB1I,KAAKsK,gBAAalK,EAClBJ,KAAK6K,wBAAuB,GAC5BnL,EAAOJ,KAAK,gCACb,CAEA,mBAAAqO,CAAoBhO,GACnB,IAAKA,EAOJ,OANAK,KAAKsK,YAAY5B,OACjB1I,KAAKsK,gBAAalK,OAClBJ,KAAKuK,iBAAmB,IACpBjH,EACH1D,SAAS,IAKX,MAAMgO,EAAejO,EAAOC,eACIQ,IAA3BT,EAAO4D,sBACkBnD,IAAzBT,EAAO6D,oBACuBpD,IAA9BT,EAAO8D,yBACuBrD,IAA9BT,EAAO+D,oBACP1D,KAAKuK,iBAAiB3K,SAQ3B,GANAI,KAAKuK,iBAAmB,IACpBvK,KAAKuK,oBACL5K,EACHC,QAASgO,GAGY,oBAAX1F,QAA8C,oBAAbtD,WAA6B5E,KAAKuK,iBAAiB3K,QAG9F,OAFAI,KAAKsK,YAAY5B,YACjB1I,KAAKsK,gBAAalK,GAIfJ,KAAKsK,YACRtK,KAAKsK,WAAW5B,OAGjB1I,KAAKsK,WAAa,IAAI3G,EAAqB3D,KAAKuK,kBAChDvK,KAAKsK,WAAW7B,OACjB,CASO,mBAAAoF,CAAmDhP,EAAS2N,GAClE,IAAKxM,KAAKkK,OAET,YADAxK,EAAOF,MAAM,qDAId,GAAIX,IAAS8D,EAAoBmL,QAIhC,YADApO,EAAOF,MAAM,iEAId,GAAIX,IAAS8D,EAAoBoL,gBAAiB,CAEjD,QAAoB3N,IADVoM,EACJwB,UAEL,YADAtO,EAAOF,MAAM,sCAGf,CAEA,MAAMyO,EAAc,CACnBpP,OACA2N,QAASxM,KAAKuM,2BAA2BC,IAEpC0B,EAA8C,CACnD9H,GAAI1E,KAML1B,KAAKkK,OAAOY,KAAK1N,EAAaE,iBAAkB,CAC/CuB,KAAMoP,EAAYpP,KAClB2N,QAASyB,EAAYzB,SACnB0B,EAAkB9H,GACtB,CAQO,aAAM+H,CAAQ3B,EAAyB4B,EAAgC,IAC7E,IAAKpO,KAAKkK,QAAQmE,UACjB,MAAO,CAACC,YAAa,IAGtB,IAGC,OA7ZH,SAAuB/C,GACtB,MAAMgD,EAAQhD,GAAkD+C,YAChE,MAAO,CAACA,YAAaE,MAAMC,QAAQF,GAAQA,EAAKG,OAAQlF,GAA4C,iBAAVA,GAAsB,GACjH,CA0ZUmF,OAAoB3O,KAAKkK,OAC9B0E,QAAQR,EAAQS,WAhaM,KAiatBC,YAAY1R,EAAaE,iBAAkB,CAACuB,KAAM8D,EAAoBmL,QAAStB,YAClF,CAAE,MAAOhN,GAER,OADAE,EAAOH,KAAK,iDAAkDC,GACvD,CAAC8O,YAAa,GACtB,CACD,CAkBA,sBAAMS,GACL,MAAMC,EAA2D,oBAAd/C,eAA4B7L,EAAY6L,UACrFgD,EAA2B,oBAAX/G,YAAyB9H,EAAY8H,OAAO+G,OAElE,MAAO,CACNC,UAAWF,GAAKE,WAAa,GAC7BC,SAAUH,GAAKG,UAAY,GAC3BC,UAAU,IAAIC,KAAKC,gBAAiBC,kBAAkBC,SACtDC,WAAW,IAAI1K,MAAO2K,iBACtBC,sBAA6BvP,IAAX6O,EAAuB,GAAK,GAAGA,EAAOpH,SAASoH,EAAOnH,SACxEuF,eAAgBrN,KAAKgM,cAEvB,CAEA,gBAAA4D,CAAiBC,GAEhB,OADA7P,KAAKmK,wBAAwB2F,IAAID,GAC1B,KACN7P,KAAKmK,wBAAwB9D,OAAOwJ,GAEtC,CAWA,kBAAAE,CAAmBF,GAElB,OADA7P,KAAKoK,0BAA0B0F,IAAID,GAC5B,KACN7P,KAAKoK,0BAA0B/D,OAAOwJ,GAExC,CAQA,OAAAG,CAAQH,GAEP,OADA7P,KAAKqK,eAAeyF,IAAID,GACjB,KACN7P,KAAKqK,eAAehE,OAAOwJ,GAE7B,EAIM,MAAMI,EAAoB,IAAIhG,EC3fxBiG,EAA2B,aASxBC,EAAarN,EAAgBsL,EAAwB,IACpE,QAAchO,IAAV0C,GAAuBA,EAAMsN,OAVM,IAWtC,MAAM,IAAIC,WAAW,iDAOtB,MAAO,CAACC,WAJyB,CAChCzR,KAAM,aACNsE,UAAgB/C,IAAV0C,EAAsB,CAAA,EAAK,CAACA,aAEZsL,EACxB,UAOgBmC,EAA0CnK,EAAOgI,EAAiC,IACjG,MAAMxP,MACLA,EAAK4N,QAAEA,EAAOgE,aAAEA,EAAY1N,MAAEA,KAAU2N,GACrCrC,EAWJ,MAAO,CAACkC,WAVyB,CAChCzR,KAAM,oBACNsE,KAAM,CACLuN,cAAetK,UACDhG,IAAVxB,GAAuB,CAAC+R,QAAS/R,WACrBwB,IAAZoM,GAAyB,CAACA,mBACTpM,IAAjBoQ,GAA8B,CAACA,wBACrBpQ,IAAV0C,GAAuB,CAACA,cAGP2N,EACxB,CAOM,SAAUG,EAAYC,GAE3B,OAAOA,EAAQC,WAAaD,EAAQE,QAAU,EAC/C,CAOM,SAAUC,EAAWpS,GAC1B,MAAO,QAASA,EAAQA,EAAMiC,SAAMT,CACrC,CAKO,MAAM6Q,EAA2B,yBAmBxC,SAASC,EAASpO,GACjB,MAAwB,iBAAVA,GAAgC,OAAVA,IAAmB0L,MAAMC,QAAQ3L,EACtE,CAEA,MAAMqO,EAAUrO,GAAqD,iBAAVA,GAAsBA,EAAMsN,OAAS,EAE1FgB,EAAUtO,GACfoO,EAASpO,IAAUqO,EAAOrO,EAAM8C,OAASuL,EAAOrO,EAAMuO,YAAyC,kBAApBvO,EAAMwO,UAS5E,SAAUC,EAAkB3S,GACjC,IAAKsS,EAAStS,EAAMuE,QAAU+N,EAAStS,EAAMuE,KAAKqO,WACjD,OAGD,MAAMC,EAAS7S,EAAMuE,KAAKqO,UAC1B,MAAsB,UAAlBC,EAAOC,OACH,CAACA,OAAQ,SAGK,aAAlBD,EAAOC,QAAyBP,EAAOM,EAAOJ,YAAcF,EAAOM,EAAOE,cAAgBR,EAAOM,EAAO7L,MACpG,CACN8L,OAAQ,WAAYL,UAAWI,EAAOJ,UAAWM,YAAaF,EAAOE,YAAa/L,KAAM6L,EAAO7L,MAI3E,0BAAlB6L,EAAOC,QACPP,EAAOM,EAAOG,aAAeT,EAAOM,EAAOE,cAC3CnD,MAAMC,QAAQgD,EAAOI,iBAAmBJ,EAAOI,eAAeC,MAAMV,GAChE,CACNM,OAAQ,wBACRE,WAAYH,EAAOG,WACnBD,YAAaF,EAAOE,YACpBE,eAAgBJ,EAAOI,qBAPzB,CAYD,CAIA,MAAME,EAAiBjP,GAA4CoO,EAASpO,GAASA,EAAQ,CAAA,EAgB7F,SAASkP,EAASC,EAAejF,EAAgBkF,GAChD,MAAOC,KAASC,GAAQpF,EACxB,IAAKkE,EAASe,KAAU7O,OAAOiP,OAAOJ,EAAME,GAC3C,OAGD,MAAMG,EAAuB,IAAhBF,EAAKhC,OAnBnB,SAAyB3S,EAAkByU,GAC1C,GAAKhB,EAASzT,IAAqC,iBAAlBA,EAAQ8U,MAIzC,MAAO,IACH9U,EACH4F,OAAQ,IAAI0O,EAActU,EAAQ4F,WAAY6O,EAAM7O,QACpDmP,OAAQ,IAAIT,EAActU,EAAQ+U,WAAYN,EAAMM,QACpDC,SAAU,IAAIV,EAActU,EAAQgV,aAAcP,EAAMO,UAE1D,CAQkCC,CAAgBT,EAAKE,GAAOD,GAASF,EAASC,EAAKE,GAAOC,EAAMF,GACjG,OAAOI,GAAQ,IAAIL,EAAME,CAACA,GAAOG,EAClC,CAYM,SAAUK,EAAgB9B,EAAkBqB,GACjD,MAAMjO,EAAS4M,EAAQ5M,QAAU,GAC3BhC,EAAQ4O,EAAQzK,KAAO8L,EAAMlE,UAAY/J,EAAO2O,UAAUhU,GAASA,EAAMwH,KAAO8L,EAAM1L,UAAW,EACvG,IAAc,IAAVvE,EACH,OAAO4O,EAGR,MAAMjS,EAAQqF,EAAOhC,GACfkB,EAAO6O,EAASpT,EAAMuE,KAAM+O,EAAMW,UAAUC,MAAM,KAAMZ,GAC9D,OAAO/O,EAAO,IAAI0N,EAAS5M,OAAQA,EAAO8O,KAAK9Q,EAAO,IAAIrD,EAAOuE,UAAmB0N,CACrF,CCxLM,SAAUmC,EAAajS,GAC5B,MAAMkS,EAAS,mDAAmDC,KAAKnS,IAAWkS,OAC5E9D,EAAW8D,GAAQ9D,SACzB,QAAiB/O,IAAb+O,GAAuC,KAAbA,EAC7B,OAGD,MAAMgE,EAAOF,GAAQE,KACrB,YAAgB/S,IAAT+S,GAA+B,KAATA,EAAc,CAAChE,YAAY,CAACA,WAAUgE,OACpE,CAaAC,eAAeC,EAAkBC,GAChC,IACC,MAAMnQ,KAACA,SAAcmQ,IACrB,OAAOnQ,CACR,CAAE,MAAO3D,GACR,GAAqB,iBAAVA,GAAgC,OAAVA,GAA2D,MAAxCA,EAA6BkS,OAChF,OAGD,MAAMlS,CACP,CACD,CAeO4T,eAAeG,EAAeC,EAAgDzS,GACpF,MAAM0S,EAAST,EAAajS,GAC5B,IAAK0S,EACJ,OAGD,MAAMtE,SAACA,EAAQgE,KAAEA,GAAQM,EACzB,QAAarT,IAAT+S,EAAoB,CACvB,MAAOhQ,KAAMuQ,SAAiBF,EAAI/V,QAAQkW,cAAc,CAACxE,YAAW,CAACyE,cAAc,IACnF,MAAO,CAACC,KAAM,QAAS1E,WAAUuE,UAClC,CAEA,MAAM1G,EAAO,QAAQmC,KAAYgE,IAC3BvO,QAAiByO,EAAeD,SAAYI,EAAI/V,QAAQqW,kBAAkB,CAAC9G,QAAO,CAAC4G,cAAc,KACvG,GAAIhP,EACH,MAAO,CACNiP,KAAM,WAAY1E,WAAUgE,OAAMvO,YAKpC,IAAKuO,EAAKY,SAAS,KAClB,OAGD,MAAMC,QAAiBX,EAAeD,SAAYI,EAAIS,OAAOC,cAAc,CAAClH,QAAO,CAAC4G,cAAc,KAClG,OAAOI,GAAY,CAClBH,KAAM,OAAQ1E,WAAUgE,OAAMa,WAEhC,CCrEO,MAAMG,EAAsC,CAAC,OAAQ,MAAO,WAAY,OAAQ,UAIjFjD,EAAYpO,GAAqD,iBAAVA,GAAgC,OAAVA,IAAmB0L,MAAMC,QAAQ3L,GAC9GqO,EAAUrO,GAAqD,iBAAVA,GAAsBA,EAAMsR,OAAOhE,OAAS,EAKjGiE,EAAiB,IAAI/K,IAAI,CAAC,QAAS,SAAU,UAAW,SACjDgL,EAAa3T,IACzB,IACC,OAAO0T,EAAeE,IAAI,IAAI3T,IAAID,EAAK,4BAA4B6T,SACpE,CAAE,MACD,OAAO,CACR,GASD,SAASC,EAAWC,GACnB,MAAMtO,GACLA,EAAEtD,MAAEA,EAAK0J,QAAEA,EAAO5N,MAAEA,GACjB8V,EACEC,OAAsBvU,IAAV0C,GAAwC,iBAAVA,GAvB5B,CAACA,GAAsC0L,MAAMC,QAAQ3L,IAAUA,EAAMgP,MAAM8C,GAAwB,iBAATA,GAuBxCC,CAAa/R,GAC7EgS,OAA0B1U,IAAZoM,GAAyB0E,EAAS1E,GAEtD,GAAKmI,GAAcG,SADS1U,IAAVxB,GAAwC,iBAAVA,IACCuS,EAAO/K,GAIxD,MAAO,CACNvH,KAAM,WACNuH,aACchG,IAAV0C,GAAuB,CAACA,iBACZ1C,IAAZoM,GAAyB,CAACA,mBAChBpM,IAAVxB,GAAuB,CAACA,SAE9B,CAOM,SAAUmW,EAASjS,GACxB,GAAKoO,EAASpO,GAId,OAAQA,EAAMjE,MACb,IAAK,OACJ,OAtCH,SAAgB6V,GACf,MAAM/T,IAACA,EAAGqU,OAAEA,GAAUN,EAEtB,YAD8BtU,IAAX4U,GAA0C,kBAAXA,IAC7B7D,EAAOxQ,IAAQ2T,EAAU3T,GAAO,CAAC9B,KAAM,OAAQ8B,cAAoBP,IAAX4U,GAAwB,CAACA,gBAAY5U,CACnH,CAkCU6U,CAAOnS,GAGf,IAAK,MACJ,OAAOqO,EAAOrO,EAAMA,OAAS,CAACjE,KAAM,MAAOiE,MAAOA,EAAMA,YAAS1C,EAGlE,IAAK,WACJ,OAAOqU,EAAW3R,GAGnB,IAAK,OACJ,OAAOqO,EAAOrO,EAAMkE,WAAa,CAACnI,KAAM,OAAQmI,UAAWlE,EAAMkE,gBAAa5G,EAG/E,IAAK,SACJ,OAAO+Q,EAAOrO,EAAMoS,MAAQ,CAACrW,KAAM,SAAUqW,KAAMpS,EAAMoS,WAAQ9U,EAGlE,QACC,OAGH,CAUM,SAAU+U,EAASD,GACxB,MAAM/R,EAAO+R,aAAgBE,SAAWF,EAAO,IAAIE,SAASF,GACtDR,EAA6C,GACnD,IAAK,MAAM7T,KAAO,IAAIyI,IAAInG,EAAKkS,QAAS,CACvC,MAAMhS,EAASF,EAAKmS,OAAOzU,GAAK6N,OAAO5L,GAA0B,iBAAVA,GACjDyS,EAAS1U,EAAI2U,SAAS,MACxBnS,EAAO+M,OAAS,GACnBsE,EAAOzL,KAAK,CAACsM,EAAS1U,EAAIG,MAAM,MAASH,EAAK0U,GAAUlS,EAAO+M,OAAS,EAAI/M,EAASA,EAAO,IAE9F,CAGA,OAAOD,OAAOqS,YAAYf,EAC3B,CAKO,MAAMgB,EAAuB,uBAe9BC,EAAuB,IAAIrM,IAAI,CAAC,OAAQ,UAAW,YAAa,YAChEsM,EAAkB9S,QAA0D1C,IAAV0C,GAAwC,iBAAVA,EAChG+S,EAAgB/S,GACrBoO,EAASpO,IAAmC,iBAAlBA,EAAMmI,SAAwB2K,EAAe9S,EAAMgT,OACxEC,GAAuBjT,GAC5BoO,EAASpO,IAAkC,iBAAjBA,EAAM4O,QAAuBiE,EAAqBpB,IAAIzR,EAAM4O,SAAWkE,EAAe9S,EAAMkT,KAQjH,SAAUC,GAAgBrX,GAC/B,MAAMuE,EAAOvE,EAAMC,OAAS6W,GAAwBxE,EAAStS,EAAMuE,MAAQvE,EAAMuE,UAAO/C,EACxF,QAAaA,IAAT+C,EACH,OAGD,MAAMuO,OACLA,EAAMlB,aAAEA,EAAYvF,QAAEA,EAAOiL,SAAEA,EAAQC,OAAEA,EAAMC,QAAEA,GAC9CjT,EAfa,IAACL,EAgBlB,OAAgB,aAAX4O,GAAoC,YAAXA,IAA0BP,EAAOX,IAAkBoF,EAAe3K,IAAa2K,EAAeM,UAC5G9V,IAAX+V,GAA0B3H,MAAMC,QAAQ0H,IAAWA,EAAOrE,MAAM+D,MAjBG3E,EAAtDpO,EAiBiFsT,IAjBRhT,OAAOC,OAAOP,GAAOgP,MAAMiE,KAqB/G,CACNrE,SACAlB,eACA4F,kBACgBhW,IAAZ6K,GAAyB,CAACA,mBACb7K,IAAb8V,GAA0B5B,EAAU4B,IAAa,CAACA,oBACvC9V,IAAX+V,GAAwB,CAACA,gBAX9B,CAaD,CC/KO,MAAME,GAAyB,UAKhCC,GAAe,KACfC,GAAe,IAgJfC,GAAc,+YAYdC,GAAW,CAACC,EAAcC,EAAoBC,IACnD,YAAYF,KAAQC,4DAAqEC,6FAAuBJ,KAE3GK,GAAa,mHAAmHL,KAChIM,GAAcL,GAAS,aAAc,qBAAsB,6BAC3DM,GAAYN,GAAS,eAAgB,0CAA2C,gDAChFO,GAAeP,GAAS,kBAAmB,gDAAiD,mDAC5FQ,GAAeR,GAAS,kBAAmB,iCAAkC,uDAY7ES,GAAe,4CACfC,GAAmB,wEAEnBjG,GAAYpO,GAAqD,iBAAVA,GAAgC,OAAVA,IAAmB0L,MAAMC,QAAQ3L,GAC9GqO,GAAUrO,GAAqD,iBAAVA,GAAgC,KAAVA,EAE3EsU,GAAS,CAAI1N,EAA4BuB,KAAe,CAA6BzL,MAAO,CAACkK,OAAMuB,WAAUoM,SAAU,KAwB7H,MAAM3Y,GAAO,CAAIyE,EAASkU,EAAiC,MAAE,CAA6BlU,OAAMkU,aAE1FC,GAAU,CAAC5N,EAA4BuB,EAAiByG,KAAe,CAC1ElS,MAAO,CAACkK,OAAMuB,kBAAwB7K,IAAXsR,GAAwB,CAACA,WAAW6F,iBAAiB,IAE7EC,GAAW9F,IAAc,CAC5BlS,MAAO,CAACkK,KAAM,mBAAoBuB,QAAS,sCAAuCyG,UAAS6F,iBAAiB,IAEzGE,GAAc,0CAKPC,GAAgBrG,GAA+BoG,GAAYE,KAAKtG,GAe7E,MAAMuG,GAAa,CAACC,EAAkBC,IAA2B5R,OAAO6R,cAAcF,IAAaA,GAAYC,EAEzGE,GAAUC,IAAY,IAAuBA,EAAKC,MAAOD,EAAIC,OAAOxT,OAAS,KAWnF,MAAMyT,GAAWC,GAChBA,EAAKF,MAAM5V,IAAI+V,IAAI,CAAMjS,GAAIiS,EAAKjS,GAAIkS,cAAeD,EAAKE,YAAYnS,GAAIyR,SAAUQ,EAAKR,YAEpFW,GAAYN,GAAoCA,EAAM5V,IAAI,EAAEgW,gBAAeT,eAAS,CAAOS,gBAAeT,cAEhH,SAASY,GAASP,EAAoBG,GACrC,MAAM7F,EAASgG,GAASN,GAClBQ,EAAOlG,EAAOrL,KAAKwR,GAASA,EAAML,gBAAkBD,EAAKC,eAO/D,OANII,EACHA,EAAKb,UAAYQ,EAAKR,SAEtBrF,EAAOvJ,KAAKoP,GAGN7F,CACR,CAoCAY,eAAewF,GAAYrN,GAC1B,MAAMmG,OAACA,GAAUnG,EAEjB,GAAe,IAAXmG,GAAkC,mBAAlBnG,EAAS1M,MAA8B6S,GAAU,KAAOA,EAAS,IACpF,OAAO4F,GAAQ,mBAAoBH,GAA6B,IAAXzF,OAAetR,EAAYsR,GAGjF,GAAe,MAAXA,GAA6B,MAAXA,EACrB,OAAO4F,GAAQ,YAAaJ,GAAcxF,GAG3C,GAAe,MAAXA,GAA6B,MAAXA,EACrB,OAAO8F,GAAQ9F,GAGhB,IAAKnG,EAASsN,GACb,OAAOvB,GAAQ,OAAQ,sBAAsB5F,KAAWA,GAGzD,IAAIoH,EACJ,IACCA,QAAavN,EAASwN,MACvB,CAAE,MACD,OAAOzB,GAAQ,mBAAoBH,GAAkBzF,EACtD,CAEA,OAAOR,GAAS4H,IAAS5H,GAAS4H,EAAK3V,MAAQ,CAACA,KAAM2V,EAAK3V,MA1C5D,SAAkB2V,EAAepH,GAChC,MAAMyE,EAAoBjF,GAAS4H,IAAStK,MAAMC,QAAQqK,EAAK3C,QAAU2C,EAAK3C,OAAS,GACjF6C,EAAQ,IAAI1P,IAAI6M,EAAO7T,IAAI9C,GAAS0R,GAAS1R,IAAU0R,GAAS1R,EAAMyZ,YAAczZ,EAAMyZ,WAAWvP,UAAOtJ,IAClH,GAAI4Y,EAAMzE,IAAI,aACb,OAAO+C,GAAQ,YAAaJ,GAAcxF,GAG3C,GAAIsH,EAAMzE,IAAI,kBAAoByE,EAAMzE,IAAI,iBAAmByE,EAAMzE,IAAI,aACxE,OAAOiD,GAAQ9F,GAGhB,MAAMwH,EAAQ/C,EAAOhP,KAAK3H,GAAS0R,GAAS1R,IAAU2R,GAAO3R,EAAMyL,UACnE,OAAOqM,GAAQ,UAAWpG,GAASgI,IAAU/H,GAAO+H,EAAMjO,SAAWiO,EAAMjO,QAAU,6CAA8CyG,EACpI,CA6ByEyH,CAASL,EAAMpH,EACxF,CAEA,MAAM0H,GAAgB5Z,GAA2BA,aAAiB6Z,MAAQ7Z,EAAMyL,QAAUqO,OAAO9Z,GAEjG4T,eAAemG,GAAMC,GACpB,OAAO,IAAIpN,QAAQC,IAClBT,WAAWS,EAASmN,IAEtB,CAEA,SAASC,GAAcD,GACtB,MAAsC,mBAAxBE,YAAY9K,QAAyB8K,YAAY9K,QAAQ4K,QAAMpZ,CAC9E,CAEA,SAASuZ,KACR,IAEC,OAAOC,YACR,CAAE,MACD,MACD,CACD,CAIA,SAASC,GAAYC,GACpB,MAAMC,EAAS,IAAIlW,IACnB,MAAO,CACN,OAAAmW,CAAQnZ,GACP,IACC,MAAMiC,EAAQgX,GAASE,QAAQnZ,GAC/B,GAAqB,iBAAViC,EACV,OAAOA,CAET,CAAE,MAAO,CAET,OAAOiX,EAAOlT,IAAIhG,IAAQ,IAC3B,EACA,OAAAoZ,CAAQpZ,EAAKiC,GACZ,IACC,QAAgB1C,IAAZ0Z,EAGH,OAFAA,EAAQG,QAAQpZ,EAAKiC,QACrBiX,EAAO1T,OAAOxF,EAGhB,CAAE,MAAO,CAETkZ,EAAO9a,IAAI4B,EAAKiC,EACjB,EACA,UAAAoX,CAAWrZ,GACVkZ,EAAO1T,OAAOxF,GACd,IACCiZ,GAASI,WAAWrZ,EACrB,CAAE,MAAO,CACV,EAEF,UASgBsZ,GAAUL,EAAsBM,EAAiF,IAChI,MAAMC,OACLA,EAAS9D,GAAY+D,MAAEA,EAAQhE,GAAYiE,QAAEA,EAAU,GAAEC,SAAEA,EAAW,IACnEJ,EAEJ,OAAOhH,MAAOsD,EAAM+D,KACnB,MAAM5Z,EAAM,GAAG6V,UACTgE,EAAQ,GAAG3V,KAAKD,MAAMtC,SAAS,OAAON,KAAKE,SAASI,SAAS,IAAIxB,MAAM,KACvE2Z,EAAS,KACd,MAAMC,EAyCT,SAAqB9X,GACpB,IACC,MAAM8X,EAAkC,iBAAV9X,EAAqB1B,KAAKyZ,MAAM/X,QAAS1C,EACvE,OAAO8Q,GAAS0J,IAAUzJ,GAAOyJ,EAAMF,QAAmC,iBAAlBE,EAAME,QAAuB,CAACJ,MAAOE,EAAMF,MAAOI,QAASF,EAAME,cAAW1a,CACrI,CAAE,MACD,MACD,CACD,CAhDiB2a,CAAYjB,EAAQE,QAAQnZ,IAC1C,YAAiBT,IAAVwa,GAAuBA,EAAME,QAAU/V,KAAKD,MAAQ8V,EAAMF,WAAQta,GAGpE4a,EAAWjW,KAAKD,MAAQuV,EAC9B,IAAIY,GAAS,EACb,MAAQA,GAAQ,CACf,QAAiB7a,IAAbua,IAAwB,CAC3B,IACCb,EAAQG,QAAQpZ,EAAKO,KAAKC,UAAU,CAACqZ,QAAOI,QAAS/V,KAAKD,MAAQwV,IACnE,CAAE,MAED,OAAOG,GACR,CAKA,SAFMlB,GAAMiB,GACZS,EAASN,MAAaD,EAClBO,EACH,QAEF,CAEA,GAAIlW,KAAKD,OAASkW,EACjB,MAAM,IAAI3B,MAAM,gBAAgB3C,iCAAoC2D,cAI/Dd,GAAMgB,EACb,CAEA,IACC,aAAaE,GACd,SACKE,MAAaD,GAChBZ,EAAQI,WAAWrZ,EAErB,EAEF,UA6BgBqa,KACf,OAAOrB,GAAYF,KACpB,CAaM,SAAUwB,GAAkB/M,GACjC,MAAM0L,EAAUD,GAAYzL,EAAQ0L,SAAWH,MACzCyB,EAAOhN,EAAQgN,MAnCtB,WACC,MAAMC,EAAS7S,WAAmDyD,WAAWoP,MAC7E,GAA8B,mBAAnBA,GAAOpa,QAIlB,OAAOmS,MAAOsD,EAAM+D,KACnB,MAAMa,EAAS7B,GAAclD,IAC7B,OAAO8E,EAAMpa,QAAQyV,EAAM4E,EAAS,CAACA,UAAU,CAAA,EAAIlI,SAAYqH,KAEjE,CAyB8Bc,IAAcpB,GAAUL,GAC/C0B,EAAOpN,EAAQqN,cAAiB9C,EAAe+C,IAAsBD,MAAM9C,EAAO+C,IAClFC,EAAWvN,EAAQuN,UAAQ,CAAMhb,IACtC0M,SAASuO,OAAOjb,EAChB,GAGD,SAASkb,EAAQC,GAQhB,MAAMjb,EAAM,2BAA2Bib,EAASC,SAAWD,EAASE,cAC9DC,EAAW,gCAAgCH,EAASC,SAAWD,EAASE,cAExEE,OAAwC9b,IAA7B0b,EAASK,gBAEpB7I,EAAO,IAhPf,SAAkBxQ,GACjB,IACC,MAAM2Q,EAAmC,iBAAV3Q,EAAqB1B,KAAKyZ,MAAM/X,QAAS1C,EACxE,IAAK8Q,GAASuC,KAAYtC,GAAOsC,EAAOrN,MAAQqN,EAAOrN,GAAGtH,WAAW,uBACpE,OAGD,MAAMoZ,EAAmB1J,MAAMC,QAAQgF,EAAOyE,OAASzE,EAAOyE,MAAQ,GACtE,MAAO,CACN9R,GAAIqN,EAAOrN,GACX8R,MAAOA,EAAMxJ,OAAQ2J,GAA4BnH,GAASmH,IAASlH,GAAOkH,EAAKjS,KAAO+K,GAAOkH,EAAKC,gBAA2C,iBAAlBD,EAAKR,UAElI,CAAE,MACD,MACD,CACD,CAiOyCuE,CAAStC,EAAQE,QAAQnZ,IAEhE,SAASwb,EAAKjE,GAEb,OADA0B,EAAQG,QAAQpZ,EAAKO,KAAKC,UAAU,CAAC+E,GAAIgS,EAAKhS,GAAI8R,MAAOC,GAAQC,MAC1DA,CACR,CAGA,SAASkE,EAAKC,GACTjJ,KAAQlN,KAAOmW,GAClBzC,EAAQI,WAAWrZ,EAErB,CAEAuS,eAAewD,EAAQhS,EAAkB4X,GAExC,MAAMvP,EAAkC,CAAC,eAAgB,mBAAoBwP,OAAQ,yBACpDrc,IAA7B0b,EAASK,kBACZlP,EAAQ,qCAAuC6O,EAASK,iBAGzD,IACC,MAAM5Q,QAAiBiQ,EAAK,WAAWM,EAASE,mBAAmB3F,kBAAuC,CACzGnW,OAAQ,OACR+M,UACA6L,KAAM1X,KAAKC,UAAU,CAACqb,MAAO9X,EAAU4X,UAAW,IAAIA,EAAWG,QAASb,EAASa,SAAW,QAC9FzG,SAAU,SACVoF,OAAQ7B,GAphBc,OAshBvB,aAAab,GAAYrN,EAC1B,CAAE,MAAO/L,GACR,MAAMod,EAAYpd,aAAiB6Z,OAAwB,iBAAf7Z,EAAMkX,KAClD,OAAOY,GAAQ,UAAWsF,EAAY,oCAAsC,kEAC7E,CACD,CAEAxJ,eAAesJ,EAAMtW,GACpB,OAAOwQ,EAAKC,GAAY,CAACzQ,MAC1B,CAEAgN,eAAeyJ,EAAO/G,EAAelR,EAAkB4X,GAGtD,MAAMM,QAAelG,EAA0ChS,EAAU4X,GACzE,GAAI,UAAWM,EACd,OAAOZ,GAAYY,EAAOvF,gBAAkB,CAACwF,cAAeD,EAAOtd,OAAS,CAACA,MAAOsd,EAAOtd,MAAO6X,SAAU,IAG7G,MAAM7K,EAAUsQ,EAAO3Z,KAAK2S,GAC5B,IAAK5E,GAAS1E,GACb,OAAO4K,GAAO,UAAW,wCAG1B,MAAM4F,EAAaxO,MAAMC,QAAQjC,EAAQwQ,YAAcxQ,EAAQwQ,WAAa,GACtE3F,EAAW7I,MAAMC,QAAQjC,EAAQ6K,UAAY7K,EAAQ6K,SAAW,GAEtE,IAAK7K,EAAQ4L,MAAQ4E,EAAWlL,MAAMtS,GAASA,EAAMsW,OAAO/B,SAAS,YAAa,GACjF,MAAO,CAACkJ,QAAQ,GAGjB,MAAM7E,EAAO5L,EAAQ4L,KAAOiE,EAAKrE,GAAOxL,EAAQ4L,YAAShY,EACzD,OAAI4c,EAAW5M,OAAS,EAChB,SACOhQ,IAATgY,GAAsB,CAACjV,KAAMiV,GACjC5Y,MAAO,CAACkK,KAAM,UAAWuB,QAAS+R,EAAW1a,IAAI9C,GAASA,EAAMyL,SAASvI,KAAK,KAAMsa,cACpF3F,YAIK3Y,GAAK0Z,EAAMf,EACnB,CAGA,SAAS6F,EAAQC,EAAkBC,GAClC,MAAI,WAAYD,GACfb,EAAKc,GACEhG,GAAO,UAAW,iCAGnB,kBAAmB+F,EAAU,CAAC3d,MAAO2d,EAAQJ,cAAe1F,SAAU,IAAM8F,CACpF,CAsBA/J,eAAeiK,EAAWC,EAA4BC,EAAyBC,GAC9E,IAAIL,EACAM,GAAY,EAChB,IACCN,QAAgB/B,EAAKa,EAAU7I,UAC9BqK,GAAY,EACZ,MAAMC,EAAUpK,IAChB,YAAgBlT,IAAZsd,GAAyBA,EAAQtX,KAAOoX,EACpCE,EAGqB,IAAzBJ,EAAclN,aACChQ,IAAdod,GACHlB,EAAKkB,GAGC9e,QAAK0B,IApChBgT,eAAsB8E,GACrB,MAAMS,EAAQ,CACbT,gBACyB9X,IAArB0b,EAASa,SAAyB,CAACgB,cAAe,CAACC,YAAa9B,EAASa,kBACjDvc,IAAxB0b,EAAS+B,YAA4B,CAACA,WAAY/B,EAAS+B,aAE1DV,QAAgBN,EAAO,aAAc/F,GAAa,CAAC6B,UACzD,MAAI,WAAYwE,EACR/F,GAAO,UAAW,8BAGnB,kBAAmB+F,EAAU,CAAC3d,MAAO2d,EAAQJ,cAAe1F,SAAU,IAAM8F,CACpF,CA2BUW,CAAOR,IAEhB,CAAE,MAAO9d,GAER,OAAOie,EAAYrG,GAAO,mBAAoBgC,GAAa5Z,IAAU4X,GAAO,OAAQ,kEACrF,CAEA,GAAI,aAAc+F,EACjB,OAAOA,EAGR,GAAII,EAAWnN,OAAS,EACvB,OAAO8M,QAAcL,EAAO,eAAgB9F,GAAW,CAACqG,OAAQD,EAAQ/W,GAAI8R,MAAOqF,IAAcJ,EAAQ/W,IAG1G,MAAM0W,QAAeJ,EAAMS,EAAQ/W,IACnC,MAAI,UAAW0W,EACP,CAACtd,MAAOsd,EAAOtd,MAAO6X,SAAU,IAGjC3Y,GAAKoe,EAAO3Z,KAAKiV,KAAOiE,EAAKrE,GAAO8E,EAAO3Z,KAAKiV,YAAShY,EACjE,CAkBA,MAAO,CACN8b,WAAU5I,OAAM+I,OAAMC,OAAMI,QAAOqB,OAVpC3K,eAAsB4K,EAAgB/c,EAA+Dgd,GACpG,MAAMd,QAAgBN,EAAO5b,EAAQ6U,MAAO7U,EAAQ2D,SAAU,CAACwY,OAAQY,EAAO5X,MAAOnF,EAAQub,YAC7F,MAAI,WAAYW,QAAiC/c,IAAtB6d,EAASC,SAC5Bb,EAAWY,EAASC,SAAUD,EAASE,OAAS,GAAIH,EAAO5X,IAG5D,kBAAmB+W,EAAUE,EAAWY,EAASG,YAAaH,EAASE,OAAS,GAAIH,EAAO5X,IAAM8W,EAAQC,EAASa,EAAO5X,GACjI,EAG4CiX,aAE7C,CAMA,IAAIgB,EAA0BjS,QAAQC,UACtC+G,eAAekL,EAAOC,GACrB,MAAMC,EAAOH,EAAMI,KAAKrL,SAMzBA,eAAyBmL,GACxB,IAAIzC,EACJ,IACCA,QAAiB1N,EAAQ0N,UAC1B,CAAE,MAAOtc,GACR,OAAO4X,GAAO,mBAAoBgC,GAAa5Z,GAChD,CAEA,IAAKsc,EAAS4C,YACb,OAAOtH,GAAO,gBAAiB,iCAGhC,MAAM4E,YAACA,GAAeF,EACtB,QAAoB1b,IAAhB4b,EACH,OAAO5E,GAAO,mBAAoB,6CAGnC,IACC,aAAamH,EAAK1C,EAAQ,IAAIC,EAAUE,gBACzC,CAAE,MAAOxc,GACR,OAAO4X,GAAO,mBAAoBgC,GAAa5Z,GAChD,CACD,CA5BqCmf,CAAOJ,IAE3C,OADAF,EAAQG,EAAKI,MAAM,QACZJ,CACR,CA2BApL,eAAeyL,IACd,OAAOP,EAAIlL,MAAMsK,IAChB,MAAMM,EAASN,EAAQpK,OACvB,QAAelT,IAAX4d,EACH,OAAOtf,QAAK0B,GAGb,MAAM0c,QAAeY,EAAQhB,MAAMsB,EAAO5X,IAC1C,MAAI,UAAW0W,EACPA,EAAOvF,iBAAmBmG,EAAQxB,SACtCwB,EAAQL,WAAW7E,GAASwF,EAAO9F,OAAQ,GAAI8F,EAAO5X,IACtD,CAAC5G,MAAOsd,EAAOtd,MAAO6X,SAAU,IAG/ByF,EAAO3Z,KAAKiV,KAMV1Z,GAAKgf,EAAQrB,KAAKrE,GAAO8E,EAAO3Z,KAAKiV,SAJ3CsF,EAAQpB,KAAK0B,EAAO5X,IACb1H,QAAK0B,KAKf,CAEA,MAAM0e,EAA4B,CACjCD,UAEA,aAAME,CAAQ1N,EAAWwG,EAAW,GACnC,MAAMS,EA/fT,SAAsBjH,GACrB,GAAyB,iBAAdA,EAIX,OAAIqG,GAAarG,GACTA,EAGD,SAASsG,KAAKtG,GAAa,gCAAgCA,SAAcjR,CACjF,CAqfyB4e,CAAa3N,GACnC,QAAsBjR,IAAlBkY,EACH,OAAOlB,GAAO,gBAAiB,qCAAqC/F,MAGrE,IAAKuG,GAAWC,EAAU,GACzB,OAAOT,GAAO,gBAAiB,0BAA0BS,MAG1D,MAAMQ,EAAO,CAACC,gBAAeT,YACvBsG,QAAcG,EAAIlL,MAAMsK,IAC7B,MAAMM,EAASN,EAAQpK,OACvB,YAAelT,IAAX4d,EACIN,EAAQL,WAAW,CAAChF,GAAO,CAACA,IAG7BqF,EAAQK,OACdC,EACA,CAAClI,MAAO,eAAgBlR,SAAUmS,GAAWyF,UAAW,CAACtE,MAAO,CAACG,KACjE,CAAC6F,SAAU,CAAC7F,GAAO+F,YAAa3F,GAASuF,EAAO9F,MAAOG,GAAO8F,MAAO,CAAC9F,OAGlE4G,EAvjBT,SAAqBxN,EAA2B6G,GAC/C,QAAqBlY,IAAjBqR,EAAOjS,YAAuCY,IAAhBqR,EAAOtO,KACxC,OAGD,MAAM+U,MAACA,GAASzG,EAAOtO,KACvB,IAAK,MAAM+b,KAAWzN,EAAO4F,SAAU,CACtC,MAAMgB,EAAwB,6BAAjB6G,EAAQxV,KAClBwO,EAAM/Q,KAAKC,GAAoC,IAAvBA,EAAUyQ,UAAkBzQ,EAAUmR,YAAYnS,KAAOkS,QACjFlY,EACH,QAAaA,IAATiY,EACH,MAAO,CAACA,OAAM6G,UAEhB,CAGD,CAuiBmBC,CAAYhB,EAAO7F,GACnC,QAAgBlY,IAAZ6e,EACH,OAAOd,EAKR,MAAO,CAAChb,YADc2b,EAAO5E,WAAW+E,EAAQ5G,KAAKjS,KAC/BjD,MAAQgb,EAAMhb,KAAM3D,MAAO,CAACkK,KAAM,UAAWuB,QAASgU,EAAQC,QAAQjU,SAAUoM,SAAU8G,EAAM9G,SACvH,EAEAjE,WAAgB,MAACgM,GACXjO,GAAOiO,GAILd,EAAIlL,MAAMsK,IAChB,MAAMM,EAASN,EAAQpK,OACvB,YAAelT,IAAX4d,EACI5G,GAAO,UAAW,yBAGnBsG,EAAQK,OACdC,EACA,CAAClI,MAAO,kBAAmBlR,SAAUqS,GAAcuF,UAAW,CAAC6C,QAAS,CAACD,KACzE,CAAChB,YAAa5F,GAASwF,EAAO9F,MAAMxJ,OAAO2J,GAAQA,EAAKjS,KAAOgZ,QAZzDhI,GAAO,gBAAiB,2BAiBjChE,eAAoB,MAACgM,EAAQvH,IACvB1G,GAAOiO,IAAYxH,GAAWC,EAAU,GAItCyG,EAAIlL,MAAMsK,IAChB,MAAMM,EAASN,EAAQpK,OACvB,QAAelT,IAAX4d,EACH,OAAO5G,GAAO,UAAW,yBAG1B,MAAMc,EAAQ8F,EAAO9F,MAAM5V,IAAI+V,GAAQA,EAAKjS,KAAOgZ,EAAS,IAAI/G,EAAMR,YAAYQ,GAAM3J,OAAO2J,GAAQA,EAAKR,SAAW,GACvH,OAAO6F,EAAQK,OACdC,EACA,CAAClI,MAAO,kBAAmBlR,SAAUoS,GAAcwF,UAAW,CAACtE,MAAO,CAAC,CAAC9R,GAAIgZ,EAAQvH,eACpF,CAACuG,YAAa5F,GAASN,OAbjBd,GAAO,gBAAiB,iCAAiCgI,OAAYvH,MAkB9E,cAAMyH,GACL,MAAM5B,QAAgBmB,IACtB,QAAsBze,IAAlBsd,EAAQle,MACX,MAAO,CAACA,MAAOke,EAAQle,MAAO6X,SAAUqG,EAAQrG,UAGjD,MAAMe,EAAOsF,EAAQva,KACrB,QAAa/C,IAATgY,GAA6C,IAAvBA,EAAKmH,cAC9B,OAAOnI,GAAO,UAAW,sBAG1B,IAhkBH,SAAiBzW,GAChB,IACC,MAAiC,WAA1B,IAAIC,IAAID,GAAK6T,QACrB,CAAE,MACD,OAAO,CACR,CACD,CA0jBQgL,CAAQpH,EAAKqH,aACjB,OAAOrI,GAAO,mBAAoB,+CAGnC,IACCuE,EAASvD,EAAKqH,YACf,CAAE,MAAOjgB,GACR,OAAO4X,GAAO,mBAAoBgC,GAAa5Z,GAChD,CAEA,OAAOd,GAAK0Z,EAAKqH,YAAa/B,EAAQrG,SACvC,GAGD,OAAOyH,CACR,CCxwBA,MAAM5N,GAAYpO,GAAqD,iBAAVA,GAAgC,OAAVA,IAAmB0L,MAAMC,QAAQ3L,GAC9G4c,GAAU5c,GAAwD,iBAAVA,GAAuC,KAAjBA,EAAMsR,OAAgBtR,EAAMsR,YAAShU,EAGzH,SAASuf,GAAOC,GACf,MAAMC,EAAUD,GAAQxL,QAAU,GAClC,GAAgB,KAAZyL,EAIJ,IACC,MAAMC,KAACA,GAAQ,IAAIlf,IAAI,iBAAiB+W,KAAKkI,GAAWA,EAAU,WAAWA,KAC7E,MAAgB,KAATC,OAAc1f,EAAY0f,CAClC,CAAE,MACD,MACD,CACD,CAEA,MAAMlC,GAAe9a,QAA4D1C,IAAV0C,GAAuB,eAAe6U,KAAK7U,GAASA,EAAMid,mBAAgB3f,EA2BjJ,MAAM4f,GAAY,CAACrgB,EAAmCqc,IAAgC2D,GAAOhgB,GAAQqc,cAAgBA,EAE/G,SAAUiE,GAAqBC,EAA2CvgB,GAC/E,MAAMqc,EAAc2D,GAAOO,GAAYN,QAAUjgB,GAAQqc,aACnDG,EAAkB+D,GAAY/D,iBAAmBuD,GAAO/f,GAAQwc,iBAChE0B,EAAaqC,GAAYrC,iBAAczd,EACvCuc,EAAUiB,GAAYje,GAAQgd,SACpC,MAAO,CACN+B,YAAawB,GAAYxB,cAAe,UACpBte,IAAhB4b,GAA6B,CAACA,cAAaD,QAASiE,GAAUrgB,EAAQqc,YAClD5b,IAApB+b,GAAiC,CAACA,2BACnB/b,IAAfyd,GAA4B,CAACA,cACjCsC,UAAWD,GAAYC,WAAa,CAAA,UACpB/f,IAAZuc,GAAyB,CAACA,WAEhC,CAgBOvJ,eAAegN,GAAoBtB,EAAwBnf,GACjE,IAEC,MAAM2b,EAAwC,mBAAxB5B,YAAY9K,QAAyB8K,YAAY9K,QAd7C,UAc4ExO,GAChG+C,KAACA,EAAIoI,SAAEA,SAAkBuT,EAAOjY,IAAoB,CAAClG,IAAK,8BAAsCP,IAAXkb,GAAwB,CAACA,YACpH,OAAO2E,GAA0C,MAArB1U,GAAUmG,OA5DxC,SAAsB5O,GACrB,IAAKoO,GAASpO,IAAuC,kBAAtBA,EAAM4b,YACpC,OAGD,MAAMyB,EAAYjP,GAASpO,EAAMqd,WAC9B/c,OAAOqS,YAAYrS,OAAOsQ,QAAQ5Q,EAAMqd,WAAWzR,OAAQlF,GAAyD,iBAAbA,EAAM,KAC7G,CAAA,EACH,MAAO,CACNoW,OAAQF,GAAO5c,EAAM8c,SAAW,KAChCzD,gBAAiBuD,GAAO5c,EAAMqZ,kBAAoB,KAClD0B,WAAY6B,GAAO5c,EAAM+a,aAAe,KACxCsC,YACAzB,YAAa5b,EAAM4b,YAErB,CA6CyD2B,CAAald,QAAQ/C,EAAWT,EACxF,CAAE,MACD,OAAOsgB,QAAqB7f,EAAWT,EACxC,CACD,CAoBM,SAAU2gB,GAAgBxE,EAA2ByE,GAC1D,MAAMJ,UAACA,EAASxD,QAAEA,KAAYvK,GAAQ0J,EAChC0E,EAnBP,SAAoBL,EAAmCI,GACtD,QAAengB,IAAXmgB,GAAmC,KAAXA,EAC3B,OAGD,MAAME,EAASF,EAAOG,eACfvR,GAAYsR,EAAO3N,MAAM,SAAU,GACpCY,EAAUtQ,OAAOsQ,QAAQyM,GACzBQ,EAAQjN,EAAQvM,KAAK,EAAEtG,KAASA,EAAI6f,gBAAkBD,IAAW/M,EAAQvM,KAAK,EAAEtG,KAASA,EAAI6f,gBAAkBvR,GACrH,OAAOyO,GAAY+C,IAAQ,GAC5B,CASsBC,CAAWT,EAAWI,IAAW5D,EACtD,MAAO,IAAIvK,UAA2BhS,IAAjBogB,GAA8B,CAAC7D,QAAS6D,GAC9D,CC7HO,MAAMK,GAAqB,CAChCC,eAAiBhI,GACf1X,KAAKC,UAAUyX,EAAM,CAACiI,EAAMje,IAA4B,iBAAVA,EAAqBA,EAAMN,WAAaM,ICXpFke,GAAgB5d,OAAOsQ,QANkB,CAC7CuN,OAAQ,OACRC,UAAW,UACXC,OAAQ,OACRC,QAAS,UAgBX,SAASC,GAAY3M,EAAsBpS,GACpCA,IACHA,EAAM,IAAIuB,KAGZ,IAAK,MAAMlE,KAAU+U,EACf,OAAQ/U,EACNA,EAAOkB,KACTyB,EAAIrD,IAAIU,EAAOkB,IAAK,CAClBygB,GAAI3hB,EAAO2hB,GACXhf,IAAK3C,EAAO2C,MAGP,QAAS3C,EAClB2C,EAAIrD,IAAIU,EAAOkB,IAAK,CAClByB,IAAK3C,EAAO2C,MAEL3C,EAAOI,MAChBshB,GAAY1hB,EAAOI,KAAMuC,GAI7B,OAAOA,CACT,CAkBM,SAAUif,GAAkBxhB,EAA8B2U,GAC9D,MAAM8M,EAAiB,CACrBvU,QAAS7J,OAAO0a,OAAO,MACvB9Q,KAAM5J,OAAO0a,OAAO,MACpBpB,MAAOtZ,OAAO0a,OAAO,OAGjBxb,EAAM+e,GAAY3M,GAExB,SAAS+M,EAAUC,EAAY7gB,EAAaiC,GAC1C,IAAI6e,EAASH,EAAOE,QACLthB,IAAXuhB,IACFA,EAASve,OAAO0a,OAAO,MACvB0D,EAAOE,GAAQC,GAEjBA,EAAO9gB,GAAOiC,CAChB,CAEA,IAAInD,EAEJ,IAAK,MAAOsC,EAAO2f,KAAQ7hB,EAAK2T,UAK9B,GAJIgB,EAAOzS,KACTtC,EAAS+U,EAAOzS,IAGbtC,EAIL,GAAI,OAAQA,EACV,GAAIA,EAAOkB,IAAK,CACd,MAAMiV,EAAQxT,EAAIuE,IAAIlH,EAAOkB,KACvB6V,EAAOZ,EAAMxT,KAAO3C,EAAOkB,IAC7BiV,EAAMwL,IACRG,EAAU3L,EAAMwL,GAAI5K,EAAMkL,EAE9B,MACEJ,EAAO1I,KAAO8I,OAGhB,IAAK,MAAO/gB,EAAKiC,KAAUM,OAAOsQ,QAAQkO,GAAO,CAAA,GAAK,CACpD,MAAM9L,EAAQxT,EAAIuE,IAAIhG,GAEtB,GAAIiV,EACF,GAAIA,EAAMwL,GAAI,CACZ,MAAM5K,EAAOZ,EAAMxT,KAAOzB,EAC1B4gB,EAAU3L,EAAMwL,GAAI5K,EAAM5T,EAC5B,MACE0e,EAAO1L,EAAMxT,KAAOQ,MAEjB,CACL,MAAM+e,EAAQb,GAAc7Z,KAAK,EAAErH,KAAYe,EAAI/B,WAAWgB,IAE9D,GAAI+hB,EAAO,CACT,MAAO/hB,EAAQ4hB,GAAQG,EACvBJ,EAAUC,EAAM7gB,EAAIG,MAAMlB,EAAOsQ,QAAStN,EAC5C,MAAO,GAAI,eAAgBnD,GAAUA,EAAOmiB,WAC1C,IAAK,MAAOJ,EAAMK,KAAY3e,OAAOsQ,QAAQ/T,EAAOmiB,YAClD,GAAIC,EAAS,CACXN,EAAUC,EAAc7gB,EAAKiC,GAC7B,KACF,CAGN,CACF,CAMJ,OAhFF,SAAyB0e,GACvB,IAAK,MAAOE,EAAM5e,KAAUM,OAAOsQ,QAAQ8N,GAC5B,SAATE,KACA5e,GAA0B,iBAAVA,GAAuB0L,MAAMC,QAAQ3L,IAAWM,OAAOiS,KAAKvS,GAAOsN,eAC9EoR,EAAOE,GAGpB,CAuEEM,CAAgBR,GAETA,CACT,CCtJO,MAuCMS,GAAsB,EACjCC,gBACAC,UACAzL,OACA0L,QACAtf,YAIA,IAAKqf,EAAS,CACZ,MAAME,GACJH,EAAgBpf,EAAQA,EAAMR,IAAKS,GAAMtB,mBAAmBsB,KAC5DL,KAtCiC,CAAC0f,IACtC,OAAQA,GACN,IAAK,OAML,QACE,MAAO,IALT,IAAK,gBACH,MAAO,IACT,IAAK,iBACH,MAAO,QA+BFE,CAAwBF,IAC/B,OAAQA,GACN,IAAK,QACH,MAAO,IAAIC,IACb,IAAK,SACH,MAAO,IAAI3L,KAAQ2L,IACrB,IAAK,SACH,OAAOA,EACT,QACE,MAAO,GAAG3L,KAAQ2L,IAExB,CAEA,MAAME,EAhE6B,CAACH,IACpC,OAAQA,GACN,IAAK,QACH,MAAO,IACT,IAAK,SACH,MAAO,IACT,IAAK,SACH,MAAO,IACT,QACE,MAAO,MAuDOI,CAAsBJ,GAClCC,EAAevf,EAClBR,IAAKS,GACU,UAAVqf,GAA+B,WAAVA,EAChBF,EAAgBnf,EAAItB,mBAAmBsB,GAGzC0f,GAAwB,CAC7BP,gBACAxL,OACA5T,MAAOC,KAGVL,KAAK6f,GACR,MAAiB,UAAVH,GAA+B,WAAVA,EAAqBG,EAAYF,EAAeA,GAGjEI,GAA0B,EACrCP,gBACAxL,OACA5T,YAEA,GAAIA,QACF,MAAO,GAGT,GAAqB,iBAAVA,EACT,MAAM,IAAIuW,MACR,wGAIJ,MAAO,GAAG3C,KAAQwL,EAAgBpf,EAAQrB,mBAAmBqB,MAGlD4f,GAAuB,EAClCR,gBACAC,UACAzL,OACA0L,QACAtf,QACA6f,gBAKA,GAAI7f,aAAiBiC,KACnB,OAAO4d,EAAY7f,EAAM8f,cAAgB,GAAGlM,KAAQ5T,EAAM8f,gBAG5D,GAAc,eAAVR,IAA2BD,EAAS,CACtC,IAAI9e,EAAmB,GACvBD,OAAOsQ,QAAQ5Q,GAAO2I,QAAQ,EAAE5K,EAAKkC,MACnCM,EAAS,IAAIA,EAAQxC,EAAKqhB,EAAiBnf,EAAetB,mBAAmBsB,MAE/E,MAAMsf,EAAehf,EAAOX,KAAK,KACjC,OAAQ0f,GACN,IAAK,OACH,MAAO,GAAG1L,KAAQ2L,IACpB,IAAK,QACH,MAAO,IAAIA,IACb,IAAK,SACH,MAAO,IAAI3L,KAAQ2L,IACrB,QACE,OAAOA,EAEb,CAEA,MAAME,EA1G8B,CAACH,IACrC,OAAQA,GACN,IAAK,QACH,MAAO,IACT,IAAK,SACH,MAAO,IACT,IAAK,SACH,MAAO,IACT,QACE,MAAO,MAiGOS,CAAuBT,GACnCC,EAAejf,OAAOsQ,QAAQ5Q,GACjCR,IAAI,EAAEzB,EAAKkC,KACV0f,GAAwB,CACtBP,gBACAxL,KAAgB,eAAV0L,EAAyB,GAAG1L,KAAQ7V,KAASA,EACnDiC,MAAOC,KAGVL,KAAK6f,GACR,MAAiB,UAAVH,GAA+B,WAAVA,EAAqBG,EAAYF,EAAeA,GC1JjES,GAAwB,cAqExBC,GAAS,EACpBC,UACAhW,OACA0P,QACAuG,kBACAtiB,IAAKuiB,MASL,IAAIviB,GAAOqiB,GAAW,KADNE,EAAKpkB,WAAW,KAAOokB,EAAO,IAAIA,KAE9ClW,IACFrM,EAnFiC,GAAGqM,OAAMrM,IAAKuiB,MACjD,IAAIviB,EAAMuiB,EACV,MAAMC,EAAUD,EAAKvC,MAAMmC,IAC3B,GAAIK,EACF,IAAK,MAAMxC,KAASwC,EAAS,CAC3B,IAAIhB,GAAU,EACVzL,EAAOiK,EAAMyC,UAAU,EAAGzC,EAAMvQ,OAAS,GACzCgS,EAA6B,SAE7B1L,EAAKlB,SAAS,OAChB2M,GAAU,EACVzL,EAAOA,EAAK0M,UAAU,EAAG1M,EAAKtG,OAAS,IAGrCsG,EAAK5X,WAAW,MAClB4X,EAAOA,EAAK0M,UAAU,GACtBhB,EAAQ,SACC1L,EAAK5X,WAAW,OACzB4X,EAAOA,EAAK0M,UAAU,GACtBhB,EAAQ,UAGV,MAAMtf,EAAQkK,EAAK0J,GAEnB,GAAI5T,QACF,SAGF,GAAI0L,MAAMC,QAAQ3L,GAAQ,CACxBnC,EAAMA,EAAI0iB,QAAQ1C,EAAOsB,GAAoB,CAAEE,UAASzL,OAAM0L,QAAOtf,WACrE,QACF,CAEA,GAAqB,iBAAVA,EAAoB,CAC7BnC,EAAMA,EAAI0iB,QACR1C,EACA+B,GAAqB,CACnBP,UACAzL,OACA0L,QACAtf,MAAOA,EACP6f,WAAW,KAGf,QACF,CAEA,GAAc,WAAVP,EAAoB,CACtBzhB,EAAMA,EAAI0iB,QACR1C,EACA,IAAI8B,GAAwB,CAC1B/L,OACA5T,MAAOA,OAGX,QACF,CAEA,MAAMwgB,EAAe7hB,mBACT,UAAV2gB,EAAoB,IAAItf,IAAqBA,GAE/CnC,EAAMA,EAAI0iB,QAAQ1C,EAAO2C,EAC3B,CAEF,OAAO3iB,GAmBC4iB,CAAsB,CAAEvW,OAAMrM,SAEtC,IAAI6iB,EAAS9G,EAAQuG,EAAgBvG,GAAS,GAO9C,OANI8G,EAAO1kB,WAAW,OACpB0kB,EAASA,EAAOJ,UAAU,IAExBI,IACF7iB,GAAO,IAAI6iB,KAEN7iB,GAGH,SAAU8iB,GAAoBrV,GAKlC,MAAMsV,OAA2BtjB,IAAjBgO,EAAQ0K,KAGxB,GAFyB4K,GAAWtV,EAAQ0S,eAEtB,CACpB,GAAI,mBAAoB1S,EAAS,CAI/B,YAF6BhO,IAA3BgO,EAAQuV,gBAA2D,KAA3BvV,EAAQuV,eAEvBvV,EAAQuV,eAAiB,IACtD,CAGA,MAAwB,KAAjBvV,EAAQ0K,KAAc1K,EAAQ0K,KAAO,IAC9C,CAGA,GAAI4K,EACF,OAAOtV,EAAQ0K,IAKnB,CC/GO,MAAM8K,GAAexQ,MAC1BlG,EACA2C,KAEA,MAAMgU,EAA4B,mBAAbhU,QAAgCA,EAAS3C,GAAQ2C,EAEtE,GAAKgU,EAIL,MAAoB,WAAhB3W,EAAK4W,OACA,UAAUD,IAGC,UAAhB3W,EAAK4W,OACA,SAASC,KAAKF,KAGhBA,GCjCIG,GAAwB,EACnCrN,aAAa,CAAA,KACV5W,GACuB,KACDkkB,IACvB,MAAMT,EAAmB,GACzB,GAAIS,GAAsC,iBAAhBA,EACxB,IAAK,MAAMvN,KAAQuN,EAAa,CAC9B,MAAMnhB,EAAQmhB,EAAYvN,GAE1B,GAAI5T,QACF,SAGF,MAAMsL,EAAUuI,EAAWD,IAAS3W,EAEpC,GAAIyO,MAAMC,QAAQ3L,GAAQ,CACxB,MAAMohB,EAAkBjC,GAAoB,CAC1CC,cAAe9T,EAAQ8T,cACvBC,SAAS,EACTzL,OACA0L,MAAO,OACPtf,WACGsL,EAAQ+V,QAETD,GAAiBV,EAAOva,KAAKib,EACnC,MAAO,GAAqB,iBAAVphB,EAAoB,CACpC,MAAMshB,EAAmB1B,GAAqB,CAC5CR,cAAe9T,EAAQ8T,cACvBC,SAAS,EACTzL,OACA0L,MAAO,aACPtf,MAAOA,KACJsL,EAAQiW,SAETD,GAAkBZ,EAAOva,KAAKmb,EACpC,KAAO,CACL,MAAME,EAAsB7B,GAAwB,CAClDP,cAAe9T,EAAQ8T,cACvBxL,OACA5T,MAAOA,IAELwhB,GAAqBd,EAAOva,KAAKqb,EACvC,CACF,CAEF,OAAOd,EAAO9gB,KAAK,MA0CjB6hB,GAAoB,CACxBnW,EAGAsI,MAEKA,MAIHtI,EAAQnB,QAAQsH,IAAImC,IACpBtI,EAAQsO,QAAQhG,IAChBtI,EAAQnB,QAAQpG,IAAI,WAAWkN,SAAS,GAAG2C,OA2CxC,MAAM8N,GAAgCpW,GAC3C2U,GAAO,CACLC,QAAS5U,EAAQ4U,QACjBhW,KAAMoB,EAAQpB,KACd0P,MAAOtO,EAAQsO,MACfuG,gBACqC,mBAA5B7U,EAAQ6U,gBACX7U,EAAQ6U,gBACRe,GAAsB5V,EAAQ6U,iBACpCtiB,IAAKyN,EAAQzN,MAGJ8jB,GAAe,CAACC,EAAWC,KACtC,MAAMhlB,EAAS,IAAK+kB,KAAMC,GAK1B,OAJIhlB,EAAOqjB,SAASxN,SAAS,OAC3B7V,EAAOqjB,QAAUrjB,EAAOqjB,QAAQI,UAAU,EAAGzjB,EAAOqjB,QAAQ5S,OAAS,IAEvEzQ,EAAOsN,QAAU2X,GAAaF,EAAEzX,QAAS0X,EAAE1X,SACpCtN,GAGHklB,GAAkB5X,IACtB,MAAMyG,EAAmC,GAIzC,OAHAzG,EAAQxB,QAAQ,CAAC3I,EAAOjC,KACtB6S,EAAQzK,KAAK,CAACpI,EAAKiC,MAEd4Q,GAGIkR,GAAe,IACvB3X,KAEH,MAAM6X,EAAgB,IAAIC,QAC1B,IAAK,MAAMC,KAAU/X,EAAS,CAC5B,IAAK+X,EACH,SAGF,MAAMC,EAAWD,aAAkBD,QAAUF,GAAeG,GAAU5hB,OAAOsQ,QAAQsR,GAErF,IAAK,MAAOnkB,EAAKiC,KAAUmiB,EACzB,GAAc,OAAVniB,EACFgiB,EAAcze,OAAOxF,QAChB,GAAI2N,MAAMC,QAAQ3L,GACvB,IAAK,MAAMC,KAAKD,EACdgiB,EAAcI,OAAOrkB,EAAKkC,aAET3C,IAAV0C,GAGTgiB,EAAc7lB,IACZ4B,EACiB,iBAAViC,EAAqB1B,KAAKC,UAAUyB,GAAUA,EAI7D,CACA,OAAOgiB,GAoBT,MAAMK,GACJC,IAAiC,GAEjC,KAAAzc,GACE3I,KAAKolB,IAAM,EACb,CAEA,KAAAC,CAAMjf,GACJ,MAAMnE,EAAQjC,KAAKslB,oBAAoBlf,GACnCpG,KAAKolB,IAAInjB,KACXjC,KAAKolB,IAAInjB,GAAS,KAEtB,CAEA,MAAAsjB,CAAOnf,GACL,MAAMnE,EAAQjC,KAAKslB,oBAAoBlf,GACvC,OAAOof,QAAQxlB,KAAKolB,IAAInjB,GAC1B,CAEA,mBAAAqjB,CAAoBlf,GAClB,MAAkB,iBAAPA,EACFpG,KAAKolB,IAAIhf,GAAMA,GAAK,EAEtBpG,KAAKolB,IAAIK,QAAQrf,EAC1B,CAEA,MAAAsf,CAAOtf,EAA0Buf,GAC/B,MAAM1jB,EAAQjC,KAAKslB,oBAAoBlf,GACvC,QAAIpG,KAAKolB,IAAInjB,KACXjC,KAAKolB,IAAInjB,GAAS0jB,EACXvf,EAGX,CAEA,GAAAwf,CAAID,GAEF,OADA3lB,KAAKolB,IAAInc,KAAK0c,GACP3lB,KAAKolB,IAAIhV,OAAS,CAC3B,EASK,MAWDyV,GAAyB7B,GAAsB,CACnD9B,eAAe,EACfiC,MAAO,CACLhC,SAAS,EACTC,MAAO,QAETiC,OAAQ,CACNlC,SAAS,EACTC,MAAO,gBAIL0D,GAAiB,CACrB,eAAgB,oBAGLC,GAAe,CAC1BC,EAAqD,MAAE,IAEpDnF,GACH5T,QAAS6Y,GACTG,QAAS,OACThD,gBAAiB4C,MACdG,ICrSQE,GAAe,CAACvmB,EAAiB,MAC5C,IAAIwmB,EAAU1B,GAAasB,KAAgBpmB,GAE3C,MAAMY,EAAY,KAAA,IAAoB4lB,IAOhCC,EDyP0B,CAMhC5mB,MAAO,IAAI2lB,GACXlkB,QAAS,IAAIkkB,GACb5Z,SAAU,IAAI4Z,IC/PRkB,EAAgBjT,MAMpBhF,IAEA,MAAMkY,EAAO,IACRH,KACA/X,EACHqN,MAAOrN,EAAQqN,OAAS0K,EAAQ1K,OAASjT,WAAWiT,MACpDxO,QAAS2X,GAAauB,EAAQlZ,QAASmB,EAAQnB,SAC/C0W,oBAAgBvjB,GAGdkmB,EAAKC,gBDuENnT,eACLhF,GAIA,IAAK,MAAMlB,KAAQkB,EAAQmY,UAAY,GAAI,CACzC,GAAIhC,GAAkBnW,EAASlB,EAAKwJ,MAClC,SAGF,MAAMmN,QAAcD,GAAa1W,EAAMkB,EAAQlB,MAE/C,IAAK2W,EACH,SAGF,MAAMnN,EAAOxJ,EAAKwJ,MAAQ,gBAE1B,OAAQxJ,EAAKoU,IACX,IAAK,QACElT,EAAQsO,QACXtO,EAAQsO,MAAQ,CAAA,GAElBtO,EAAQsO,MAAMhG,GAAQmN,EACtB,MACF,IAAK,SACHzV,EAAQnB,QAAQiY,OAAO,SAAU,GAAGxO,KAAQmN,KAC5C,MAEF,QACEzV,EAAQnB,QAAQhO,IAAIyX,EAAMmN,GAGhC,CACF,CCxGY2C,CAAcF,GAGlBA,EAAKG,wBACDH,EAAKG,iBAAiBH,QAGZlmB,IAAdkmB,EAAKxN,MAAsBwN,EAAKxF,iBAClCwF,EAAK3C,eAAiB2C,EAAKxF,eAAewF,EAAKxN,YAI/B1Y,IAAdkmB,EAAKxN,MAA8C,KAAxBwN,EAAK3C,gBAClC2C,EAAKrZ,QAAQ5G,OAAO,gBAOtB,MAAO,CAAEigB,KAJYA,EAIQ3lB,IAFjB6jB,GAFS8B,KAOjBrlB,EAA6BmS,MAAOhF,IACxC,MAAMwF,EAAexF,EAAQwF,cAAgBuS,EAAQvS,aAC/C8S,EAAgBtY,EAAQsY,eAAiBP,EAAQO,cAEvD,IAAIzlB,EACAsK,EAEJ,IACE,MAAM+a,KAAEA,EAAI3lB,IAAEA,SAAc0lB,EAAcjY,GACpCuY,EAAuB,CAC3BzQ,SAAU,YACPoQ,EACHxN,KAAM2K,GAAoB6C,IAG5BrlB,EAAU,IAAI2lB,QAAQjmB,EAAKgmB,GAE3B,IAAK,MAAMhB,KAAMS,EAAanlB,QAAQmkB,IAChCO,IACF1kB,QAAgB0kB,EAAG1kB,EAASqlB,IAMhC,MAAMO,EAASP,EAAK7K,MAEpBlQ,QAAiBsb,EAAO5lB,GAExB,IAAK,MAAM0kB,KAAMS,EAAa7a,SAAS6Z,IACjCO,IACFpa,QAAiBoa,EAAGpa,EAAUtK,EAASqlB,IAI3C,MAAM7U,EAAS,CACbxQ,UACAsK,YAGF,GAAIA,EAASsN,GAAI,CACf,MAAMoN,GACc,SAAjBK,EAAKL,QDhDU,CAACa,IACzB,IAAKA,EAGH,MAAO,SAGT,MAAMC,EAAeD,EAAYhU,MAAM,KAAK,IAAIsB,OAEhD,OAAK2S,EAIDA,EAAajoB,WAAW,qBAAuBioB,EAAavR,SAAS,SAChE,OAGY,wBAAjBuR,EACK,WAIP,CAAC,eAAgB,SAAU,SAAU,UAAUC,KAAMnoB,GAASkoB,EAAajoB,WAAWD,IAE/E,OAGLkoB,EAAajoB,WAAW,SACnB,YADT,OAlBA,GCwCYmoB,CAAW1b,EAAS0B,QAAQpG,IAAI,iBAChCyf,EAAKL,UAAY,OAEvB,GAAwB,MAApB1a,EAASmG,QAA6D,MAA3CnG,EAAS0B,QAAQpG,IAAI,kBAA2B,CAC7E,IAAIqgB,EACJ,OAAQjB,GACN,IAAK,cACL,IAAK,OACL,IAAK,OACHiB,QAAkB3b,EAAS0a,KAC3B,MACF,IAAK,WACHiB,EAAY,IAAI9R,SAChB,MACF,IAAK,SACH8R,EAAY3b,EAASuN,KACrB,MAEF,QACEoO,EAAY,CAAA,EAGhB,MAA8B,SAAvBZ,EAAKI,cACRQ,EACA,CACE/jB,KAAM+jB,KACHzV,EAEX,CAEA,IAAItO,EACJ,OAAQ8iB,GACN,IAAK,cACL,IAAK,OACL,IAAK,WACL,IAAK,OACH9iB,QAAaoI,EAAS0a,KACtB,MACF,IAAK,OAAQ,CAGX,MAAMkB,QAAa5b,EAAS4b,OAC5BhkB,EAAOgkB,EAAO/lB,KAAKyZ,MAAMsM,GAAQ,CAAA,EACjC,KACF,CACA,IAAK,SACH,MAA8B,SAAvBb,EAAKI,cACRnb,EAASuN,KACT,CACE3V,KAAMoI,EAASuN,QACZrH,GAcb,MAVgB,SAAZwU,IACEK,EAAKc,yBACDd,EAAKc,kBAAkBjkB,GAG3BmjB,EAAKe,sBACPlkB,QAAamjB,EAAKe,oBAAoBlkB,KAIZ,SAAvBmjB,EAAKI,cACRvjB,EACA,CACEA,UACGsO,EAEX,CAEA,MAAM6V,QAAkB/b,EAAS4b,OACjC,IAAII,EAEJ,IACEA,EAAYnmB,KAAKyZ,MAAMyM,EACzB,CAAE,MAEF,CAEA,MAAMC,GAAaD,CACrB,CAAE,MAAO9nB,GACP,IAAIgoB,EAAahoB,EAEjB,IAAK,MAAMmmB,KAAMS,EAAa5mB,MAAM4lB,IAC9BO,IACF6B,QAAmB7B,EAAG6B,EAAYjc,EAAUtK,EAASmN,IAMzD,GAFAoZ,EAAaA,GAAc,CAAA,EAEvB5T,EACF,MAAM4T,EAIR,MAAyB,SAAlBd,OACHtmB,EACA,CACEZ,MAAOgoB,EACPvmB,UACAsK,WAER,GAGIkc,EAAgBvnB,GAAmCkO,GACvDnN,EAAQ,IAAKmN,EAASlO,WAElBwnB,EAAaxnB,GAAkCkT,MAAOhF,IAC1D,MAAMkY,KAAEA,EAAI3lB,IAAEA,SAAc0lB,EAAcjY,GAC1C,OCpJE,UAA2CuZ,UAC/CA,EAASC,WACTA,EAAUC,WACVA,EAAUR,oBACVA,EAAmBD,kBACnBA,EAAiBU,qBACjBA,EAAoBC,oBACpBA,EAAmBC,iBACnBA,EAAgBC,WAChBA,EAAUtnB,IACVA,KACGyN,IAEH,IAAI8Z,EAEJ,MAAM3O,EAAQ0O,IAAgBzO,GAAe,IAAIpN,QAASC,GAAYT,WAAWS,EAASmN,KA8IpF2O,EA5Ie/U,kBACnB,IAAIgV,EAAqBN,GAAwB,IAC7Cxc,EAAU,EACd,MAAMgQ,EAASlN,EAAQkN,SAAU,IAAI+M,iBAAkB/M,OAEvD,MACMA,EAAOgN,SADA,CAGXhd,IAEA,MAAM2B,EACJmB,EAAQnB,mBAAmB8X,QACvB3W,EAAQnB,QACR,IAAI8X,QAAQ3W,EAAQnB,cAEN7M,IAAhB8nB,GACFjb,EAAQhO,IAAI,gBAAiBipB,GAG/B,IACE,MAAMvB,EAA2B,CAC/BzQ,SAAU,YACP9H,EACH0K,KAAM1K,EAAQuV,eACd1W,UACAqO,UAEF,IAAIra,EAAU,IAAI2lB,QAAQjmB,EAAKgmB,GAC3BgB,IACF1mB,QAAgB0mB,EAAUhnB,EAAKgmB,IAIjC,MAAME,EAASzY,EAAQqN,OAASjT,WAAWiT,MACrClQ,QAAiBsb,EAAO5lB,GAE9B,IAAKsK,EAASsN,GAAI,MAAM,IAAIQ,MAAM,eAAe9N,EAASmG,UAAUnG,EAASgd,cAE7E,IAAKhd,EAASuN,KAAM,MAAM,IAAIO,MAAM,2BAEpC,MAAMmP,EAASjd,EAASuN,KAAK2P,YAAY,IAAIC,mBAAqBC,YAElE,IAAIC,EAAS,GAEb,MAAMC,EAAe,KACnB,IACEL,EAAOM,QACT,CAAE,MAEF,GAGFxN,EAAOyN,iBAAiB,QAASF,GAEjC,IACE,OAAa,CACX,MAAMnqB,KAAEA,EAAIoE,MAAEA,SAAgB0lB,EAAOlV,OACrC,GAAI5U,EAAM,MACVkqB,GAAU9lB,EACV8lB,EAASA,EAAOvF,QAAQ,SAAU,MAElC,MAAM2F,EAASJ,EAAO9V,MAAM,QAC5B8V,EAASI,EAAOC,OAAS,GAEzB,IAAK,MAAMC,KAASF,EAAQ,CAC1B,MAAM9Q,EAAQgR,EAAMpW,MAAM,MACpBqW,EAA2B,GACjC,IAAIC,EAiBAjmB,EAfJ,IAAK,MAAMkV,KAAQH,EACjB,GAAIG,EAAKvZ,WAAW,SAClBqqB,EAAUlgB,KAAKoP,EAAKgL,QAAQ,YAAa,UACpC,GAAIhL,EAAKvZ,WAAW,UACzBsqB,EAAY/Q,EAAKgL,QAAQ,aAAc,SAClC,GAAIhL,EAAKvZ,WAAW,OACzBopB,EAAc7P,EAAKgL,QAAQ,UAAW,SACjC,GAAIhL,EAAKvZ,WAAW,UAAW,CACpC,MAAM2U,EAASvN,OAAOmjB,SAAShR,EAAKgL,QAAQ,aAAc,IAAK,IAC1Dnd,OAAOC,MAAMsN,KAChB2U,EAAa3U,EAEjB,CAIF,IAAI6V,GAAa,EAEjB,GAAIH,EAAU/Y,OAAQ,CACpB,MAAMmZ,EAAUJ,EAAUzmB,KAAK,MAC/B,IACES,EAAO/B,KAAKyZ,MAAM0O,GAClBD,GAAa,CACf,CAAE,MACAnmB,EAAOomB,CACT,CACF,CAEID,IACElC,SACIA,EAAkBjkB,GAGtBkkB,IACFlkB,QAAakkB,EAAoBlkB,KAIrC0kB,IAAa,CACX1kB,OACAqmB,MAAOJ,EACPhjB,GAAI8hB,EACJuB,MAAOrB,IAGLe,EAAU/Y,eACNjN,EAEV,CACF,CACF,SACEmY,EAAOoO,oBAAoB,QAASb,GACpCL,EAAOmB,aACT,CAEA,KACF,CAAE,MAAOnqB,GAIP,GAFAooB,IAAapoB,QAEeY,IAAxB2nB,GAAqCzc,GAAWyc,EAClD,MAIF,MAAM6B,EAAU1nB,KAAKoC,IAAI8jB,EAAa,IAAM9c,EAAU,GAAI0c,GAAoB,WACxEzO,EAAMqQ,EACd,CACF,CACF,CAEeC,GAEf,MAAO,CAAE1B,SACX,CDZW2B,CAAgB,IAClBxD,EACHxN,KAAMwN,EAAKxN,KACX5Y,SACAynB,UAAWvU,MAAOzS,EAAK+a,KACrB,IAAIza,EAAU,IAAI2lB,QAAQjmB,EAAK+a,GAC/B,IAAK,MAAMiK,KAAMS,EAAanlB,QAAQmkB,IAChCO,IACF1kB,QAAgB0kB,EAAG1kB,EAASqlB,IAGhC,OAAOrlB,GAET0iB,eAAgBF,GAAoB6C,GACpC3lB,SAMJ,MAAO,CACL6jB,SAHqCpW,GAAYoW,GAAS,IAAK2B,KAAY/X,IAI3EvC,QAAS4b,EAAa,WACtBphB,OAAQohB,EAAa,UACrB5gB,IAAK4gB,EAAa,OAClBlnB,YACA4R,KAAMsV,EAAa,QACnBrB,eACAhY,QAASqZ,EAAa,WACtBvV,MAAOuV,EAAa,SACpBsC,KAAMtC,EAAa,QACnBuC,IAAKvC,EAAa,OAClBxmB,UACAgpB,UA5OiBtqB,IACjBwmB,EAAU1B,GAAa0B,EAASxmB,GACzBY,KA2OP2pB,IAAK,CACHre,QAAS6b,EAAU,WACnBrhB,OAAQqhB,EAAU,UAClB7gB,IAAK6gB,EAAU,OACfvV,KAAMuV,EAAU,QAChBtZ,QAASsZ,EAAU,WACnBxV,MAAOwV,EAAU,SACjBqC,KAAMrC,EAAU,QAChBsC,IAAKtC,EAAU,OACfyC,MAAOzC,EAAU,UAEnByC,MAAO1C,EAAa,WE/PxB,MAAM2C,GACQtL,OAEV,WAAAza,CAAYtE,GAGRC,KAAK8e,OAAS/e,EAAK+e,MACvB,EAGJ,MAAMuL,GACeC,WAAa,UAEbC,UAA4B,IAAI1mB,IAEjD,GAAAgD,CAAIhG,GACA,MAAM2pB,EAAWxqB,KAAKuqB,UAAU1jB,IAAIhG,GAAOb,KAAKsqB,YAChD,IAAKE,EACD,MAAM,IAAInR,MAAM,iFAEpB,OAAOmR,CACX,CAEA,GAAAvrB,CAAI6D,EAAUjC,GACVb,KAAKuqB,UAAUtrB,IAAI4B,GAAOb,KAAKsqB,WAAYxnB,EAC/C,EAGE,MAAO2nB,WAAgBL,GAMlB,OAAAM,CAA8C/T,EAGlDvI,GACC,MAAMoT,EAASD,GAAkB,CAAC5K,GAAa,CAAC,CAAE5W,KAAM,CAAC,CAAEuhB,GAAI,OAAQzgB,IAAK,YAAc,CAAEygB,GAAI,OAAQzgB,IAAK,UAC7G,OAAQuN,GAAS0Q,QAAU9e,KAAK8e,QAAQjY,IAAiE,CACrG0f,SAAU,CAAC,CAAE7P,KAAM,oBAAqB7X,KAAM,WAC9C8B,IAAK,2BACFyN,KACAoT,GAEX,CAOO,UAAAmJ,CAAiDhU,EAErDvI,GACC,MAAMoT,EAASD,GAAkB,CAAC5K,GAAa,CAAC,CAAE5W,KAAM,CAAC,CAAEuhB,GAAI,OAAQzgB,IAAK,gBAC5E,OAAQuN,GAAS0Q,QAAU9e,KAAK8e,QAAQjY,IAAuE,CAC3G0f,SAAU,CAAC,CAAE7P,KAAM,oBAAqB7X,KAAM,WAC9C8B,IAAK,uBACFyN,KACAoT,GAEX,CAOO,gBAAAoJ,CAAuDjU,EAK3DvI,GACC,MAAMoT,EAASD,GAAkB,CAAC5K,GAAa,CAAC,CAAE5W,KAAM,CAC5C,CAAEuhB,GAAI,OAAQzgB,IAAK,YACnB,CAAEygB,GAAI,OAAQzgB,IAAK,YACnB,CAAEygB,GAAI,QAASzgB,IAAK,UACpB,CAAEygB,GAAI,QAASzgB,IAAK,aAEhC,OAAQuN,GAAS0Q,QAAU9e,KAAK8e,QAAQjY,IAAmF,CACvH0f,SAAU,CAAC,CAAE7P,KAAM,oBAAqB7X,KAAM,WAC9C8B,IAAK,kCACFyN,KACAoT,GAEX,CAKO,iBAAAqJ,CAAwDlU,EAG5DvI,GACC,MAAMoT,EAASD,GAAkB,CAAC5K,GAAa,CAAC,CAAE5W,KAAM,CAAC,CAAEuhB,GAAI,OAAQzgB,IAAK,YAAc,CAAEygB,GAAI,OAAQzgB,IAAK,YAC7G,OAAQuN,GAAS0Q,QAAU9e,KAAK8e,QAAQjY,IAAqF,CACzH0f,SAAU,CAAC,CAAE7P,KAAM,oBAAqB7X,KAAM,WAC9C8B,IAAK,iCACFyN,KACAoT,GAEX,CAKO,kBAAAsJ,CAAyDnU,EAG7DvI,GACC,MAAMoT,EAASD,GAAkB,CAAC5K,GAAa,CAAC,CAAE5W,KAAM,CAAC,CAAEuhB,GAAI,OAAQzgB,IAAK,YAAc,CAAEygB,GAAI,OAAQzgB,IAAK,eAC7G,OAAQuN,GAAS0Q,QAAU9e,KAAK8e,QAAQjY,IAAuF,CAC3H0f,SAAU,CAAC,CAAE7P,KAAM,oBAAqB7X,KAAM,WAC9C8B,IAAK,6CACFyN,KACAoT,GAEX,CAOO,iBAAA1N,CAAwD6C,EAE5DvI,GACC,MAAMoT,EAASD,GAAkB,CAAC5K,GAAa,CAAC,CAAE5W,KAAM,CAAC,CAAEuhB,GAAI,QAASzgB,IAAK,YAC7E,OAAQuN,GAAS0Q,QAAU9e,KAAK8e,QAAQjY,IAAqF,CACzH0f,SAAU,CAAC,CAAE7P,KAAM,oBAAqB7X,KAAM,WAC9C8B,IAAK,uBACFyN,KACAoT,GAEX,CAOO,aAAA7N,CAAoDgD,EAExDvI,GACC,MAAMoT,EAASD,GAAkB,CAAC5K,GAAa,CAAC,CAAE5W,KAAM,CAAC,CAAEuhB,GAAI,OAAQzgB,IAAK,gBAC5E,OAAQuN,GAAS0Q,QAAU9e,KAAK8e,QAAQjY,IAA6E,CACjH0f,SAAU,CAAC,CAAE7P,KAAM,oBAAqB7X,KAAM,WAC9C8B,IAAK,2BACFyN,KACAoT,GAEX,EAGE,MAAOuJ,WAAgBX,GAMlB,SAAAY,CAAgDrU,EAEpDvI,GACC,MAAMoT,EAASD,GAAkB,CAAC5K,GAAa,CAAC,CAAE5W,KAAM,CAAC,CAAEuhB,GAAI,OAAQzgB,IAAK,UAC5E,OAAQuN,GAAS0Q,QAAU9e,KAAK8e,QAAQjY,IAAqE,CACzG0f,SAAU,CAAC,CAAE7P,KAAM,oBAAqB7X,KAAM,WAC9C8B,IAAK,iBACFyN,KACAoT,GAEX,CAOO,KAAAyJ,CAA4CtU,EAEhDvI,GACC,MAAMoT,EAASD,GAAkB,CAAC5K,GAAa,CAAC,CAAE5W,KAAM,CAAC,CAAEuhB,GAAI,OAAQzgB,IAAK,UAC5E,OAAQuN,GAAS0Q,QAAU9e,KAAK8e,QAAQiL,KAA8D,CAClGxD,SAAU,CAAC,CAAE7P,KAAM,oBAAqB7X,KAAM,WAC9C8B,IAAK,iBACFyN,KACAoT,GAEX,EAGE,MAAO0J,WAAiBd,GAQnB,UAAAe,CAAiDxU,EAIrDvI,GACC,MAAMoT,EAASD,GAAkB,CAAC5K,GAAa,CAAC,CAAE5W,KAAM,CAC5C,CAAEuhB,GAAI,OAAQzgB,IAAK,aACnB,CAAEygB,GAAI,QAASzgB,IAAK,QACpB,CAAEygB,GAAI,QAASzgB,IAAK,gBAEhC,OAAQuN,GAAS0Q,QAAU9e,KAAK8e,QAAQjY,IAAyE,CAC7G0f,SAAU,CAAC,CAAE7P,KAAM,oBAAqB7X,KAAM,WAC9C8B,IAAK,kCACFyN,KACAoT,GAEX,CASO,kBAAA4J,CAAyDzU,EAG7DvI,GACC,MAAMoT,EAASD,GAAkB,CAAC5K,GAAa,CAAC,CAAE5W,KAAM,CAAC,CAAEuhB,GAAI,OAAQzgB,IAAK,aAAe,CAAEygB,GAAI,QAASzgB,IAAK,gBAC/G,OAAQuN,GAAS0Q,QAAU9e,KAAK8e,QAAQjY,IAAyF,CAC7H0f,SAAU,CAAC,CAAE7P,KAAM,oBAAqB7X,KAAM,WAC9C8B,IAAK,0CACFyN,KACAoT,GAEX,EAGE,MAAO6J,WAAgBjB,GAIlB,OAAAkB,CAA8C3U,EAElDvI,GACC,MAAMoT,EAASD,GAAkB,CAAC5K,GAAa,CAAC,CAAE5W,KAAM,CAAC,CAAEuhB,GAAI,QAASzgB,IAAK,eAC7E,OAAQuN,GAAS0Q,QAAU9e,KAAK8e,QAAQjY,IAAiE,CACrG0f,SAAU,CAAC,CAAE7P,KAAM,oBAAqB7X,KAAM,WAC9C8B,IAAK,cACFyN,KACAoT,GAEX,EAGE,MAAO+J,WAAkBnB,GAMpB,UAAAoB,CAAiD7U,EAOrDvI,GACC,MAAMoT,EAASD,GAAkB,CAAC5K,GAAa,CAAC,CAAE5W,KAAM,CAC5C,CAAEuhB,GAAI,OAAQzgB,IAAK,WACnB,CAAEygB,GAAI,OAAQzgB,IAAK,aACnB,CAAEygB,GAAI,OAAQzgB,IAAK,WACnB,CAAEygB,GAAI,OAAQzgB,IAAK,eAE/B,OAAQuN,GAAS0Q,QAAU9e,KAAK8e,QAAQiL,KAA4E,CAChHxD,SAAU,CAAC,CAAE7P,KAAM,oBAAqB7X,KAAM,WAC9C8B,IAAK,kBACFyN,KACAoT,EACHvU,QAAS,CACL,eAAgB,sBACbmB,GAASnB,WACTuU,EAAOvU,UAGtB,EAGE,MAAOwe,WAAarB,GAMf,OAAAvL,CAA8CzQ,GACjD,OAAQA,GAAS0Q,QAAU9e,KAAK8e,QAAQjY,IAA2D,CAC/F0f,SAAU,CAAC,CAAE7P,KAAM,oBAAqB7X,KAAM,WAC9C8B,IAAK,WACFyN,GAEX,CAOO,aAAAsd,CAAoD/U,EAExDvI,GACC,MAAMoT,EAASD,GAAkB,CAAC5K,GAAa,CAAC,CAAE5W,KAAM,CAAC,CAAEuhB,GAAI,OAAQzgB,IAAK,iBAC5E,OAAQuN,GAAS0Q,QAAU9e,KAAK8e,QAAQiL,KAAwE,CAC5GxD,SAAU,CAAC,CAAE7P,KAAM,oBAAqB7X,KAAM,WAC9C8B,IAAK,eACFyN,KACAoT,EACHvU,QAAS,CACL,eAAgB,sBACbmB,GAASnB,WACTuU,EAAOvU,UAGtB,CAOO,kBAAA0e,CAAyDhV,EAE7DvI,GACC,MAAMoT,EAASD,GAAkB,CAAC5K,GAAa,CAAC,CAAE5W,KAAM,CAAC,CAAEuhB,GAAI,OAAQzgB,IAAK,iBAC5E,OAAQuN,GAAS0Q,QAAU9e,KAAK8e,QAAQiL,KAAkF,CACtHxD,SAAU,CAAC,CAAE7P,KAAM,oBAAqB7X,KAAM,WAC9C8B,IAAK,kBACFyN,KACAoT,EACHvU,QAAS,CACL,eAAgB,sBACbmB,GAASnB,WACTuU,EAAOvU,UAGtB,CAOO,qBAAA2e,CAA4DjV,EAGhEvI,GACC,MAAMoT,EAASD,GAAkB,CAAC5K,GAAa,CAAC,CAAE5W,KAAM,CAAC,CAAEuhB,GAAI,OAAQzgB,IAAK,aAAe,CAAEygB,GAAI,OAAQzgB,IAAK,gBAC9G,OAAQuN,GAAS0Q,QAAU9e,KAAK8e,QAAQiL,KAAwF,CAC5HxD,SAAU,CAAC,CAAE7P,KAAM,oBAAqB7X,KAAM,WAC9C8B,IAAK,kBACFyN,KACAoT,EACHvU,QAAS,CACL,eAAgB,sBACbmB,GAASnB,WACTuU,EAAOvU,UAGtB,EAGE,MAAO4e,WAAgBzB,GAMlB,qBAAA0B,CAA4D1d,GAC/D,OAAQA,GAAS0Q,QAAU9e,KAAK8e,QAAQjY,IAA6F,CACjI0f,SAAU,CAAC,CAAE7P,KAAM,oBAAqB7X,KAAM,WAC9C8B,IAAK,yBACFyN,GAEX,EAGE,MAAO2d,WAAe3B,GAMjB,OAAA4B,CAA8CrV,EAIlDvI,GACC,MAAMoT,EAASD,GAAkB,CAAC5K,GAAa,CAAC,CAAE5W,KAAM,CAC5C,CAAEuhB,GAAI,OAAQzgB,IAAK,YACnB,CAAEygB,GAAI,OAAQzgB,IAAK,QACnB,CAAEygB,GAAI,OAAQzgB,IAAK,cAE/B,OAAQuN,GAAS0Q,QAAU9e,KAAK8e,QAAQiL,KAAgE,CACpGxD,SAAU,CAAC,CAAE7P,KAAM,oBAAqB7X,KAAM,WAC9C8B,IAAK,2BACFyN,KACAoT,EACHvU,QAAS,CACL,eAAgB,sBACbmB,GAASnB,WACTuU,EAAOvU,UAGtB,CAOO,OAAAgf,CAA8CtV,EAGlDvI,GACC,MAAMoT,EAASD,GAAkB,CAAC5K,GAAa,CAAC,CAAE5W,KAAM,CAAC,CAAEuhB,GAAI,OAAQzgB,IAAK,YAAc,CAAEygB,GAAI,OAAQzgB,IAAK,cAC7G,OAAQuN,GAAS0Q,QAAU9e,KAAK8e,QAAQiL,KAAgE,CACpGxD,SAAU,CAAC,CAAE7P,KAAM,oBAAqB7X,KAAM,WAC9C8B,IAAK,2BACFyN,KACAoT,EACHvU,QAAS,CACL,eAAgB,sBACbmB,GAASnB,WACTuU,EAAOvU,UAGtB,CAOO,aAAAiH,CAAoDyC,EAExDvI,GACC,MAAMoT,EAASD,GAAkB,CAAC5K,GAAa,CAAC,CAAE5W,KAAM,CAAC,CAAEuhB,GAAI,QAASzgB,IAAK,YAC7E,OAAQuN,GAAS0Q,QAAU9e,KAAK8e,QAAQjY,IAA2E,CAC/G0f,SAAU,CAAC,CAAE7P,KAAM,oBAAqB7X,KAAM,WAC9C8B,IAAK,0BACFyN,KACAoT,GAEX,EAGE,MAAO0K,WAAsB9B,GACxB+B,kBAA4D,IAAI9B,GAEvE,WAAAhmB,CAAYtE,GAIRqsB,MAAMrsB,GACNmsB,GAAcG,WAAWptB,IAAIe,KAAMD,EAAKc,IAC5C,CAEQyrB,SACR,WAAI7uB,GACA,OAAOuC,KAAKssB,WAAa,IAAI7B,GAAQ,CAAE3L,OAAQ9e,KAAK8e,QACxD,CAEQyN,SACR,WAAIC,GACA,OAAOxsB,KAAKusB,WAAa,IAAIxB,GAAQ,CAAEjM,OAAQ9e,KAAK8e,QACxD,CAEQ2N,UACR,YAAIC,GACA,OAAO1sB,KAAKysB,YAAc,IAAIvB,GAAS,CAAEpM,OAAQ9e,KAAK8e,QAC1D,CAEQ6N,SACR,WAAIC,GACA,OAAO5sB,KAAK2sB,WAAa,IAAItB,GAAQ,CAAEvM,OAAQ9e,KAAK8e,QACxD,CAEQ+N,WACR,aAAIC,GACA,OAAO9sB,KAAK6sB,aAAe,IAAItB,GAAU,CAAEzM,OAAQ9e,KAAK8e,QAC5D,CAEQiO,MACR,QAAI3U,GACA,OAAOpY,KAAK+sB,QAAU,IAAItB,GAAK,CAAE3M,OAAQ9e,KAAK8e,QAClD,CAEQkO,SACR,WAAIC,GACA,OAAOjtB,KAAKgtB,WAAa,IAAInB,GAAQ,CAAE/M,OAAQ9e,KAAK8e,QACxD,CAEQoO,QACR,UAAIjZ,GACA,OAAOjU,KAAKktB,UAAY,IAAInB,GAAO,CAAEjN,OAAQ9e,KAAK8e,QACtD,ECpfE,MAAOqO,WAAwB9T,MAC3B3H,OACAoH,KACAvN,SACAtK,QAET,WAAAoD,CAAYyU,EAAevN,EAAqBtK,GAC/C,MAAMyQ,EAASnG,GAAUmG,OACnB0b,EAASnsB,EAAU,GAAGA,EAAQf,UAAUe,EAAQN,MAAQ,UAC9D,IAAIsK,EAAU,YAAYmiB,qCACtB7hB,IACHN,EAAUM,EAASsN,GAChB,YAAYuU,OAAY7hB,EAASmG,kDACjC,YAAY0b,OAAY7hB,EAASmG,UAGrC0a,MAAMnhB,EAAS6N,aAAgBO,MAAQ,CAACgU,MAAOvU,QAAQ1Y,GACvDJ,KAAK0W,KAAO,kBACZ1W,KAAK0R,OAASA,EACd1R,KAAK8Y,KAAOA,EACZ9Y,KAAKuL,SAAWA,EAChBvL,KAAKiB,QAAUA,CAChB,EAQK,SAAUqsB,GAAqB3tB,GAQpC,MAAMmf,EAASoH,GAAaH,GAAa,CACxC/C,QAAS,IAAIpiB,IAAI,SAAUjB,EAAOmN,UAAUQ,KAC5CL,QAAS,CACRsgB,cAAe,UAAU5tB,EAAO6tB,cAChC,oBAAqB7tB,EAAO6tB,aAE7BC,YAAa9tB,EAAO+tB,gBAAkB,UAAY,iBAgBnD,OAdA5O,EAAOsH,aAAa5mB,MAAMomB,IAAI,CAACpmB,EAAO+L,EAAUtK,EAASmN,KAKxD,KAJoBA,EAAQwF,cAAgBkL,EAAOve,YAAYqT,eAAgB,KAI/B,IAA5BxF,EAAQkN,QAAQgN,QACnC,OAAO9oB,EAMR,OAAO,IAAI2tB,GAAyB,KADd3tB,EACmB,CAAA,EADnBA,GACgC,CAAA,EAAI+L,EAAUtK,KAE9D6d,CACR"}
|