{"version":3,"file":"ROLCheckout.DdaJ-R8O.mjs","names":["useState","useState","useAtomValue","useMemo","useAtom","useCallback","useEffect","useLayoutEffect","useAtomValue","useRef","__esmMin","ne","init_ssg_sandbox_shims","init_npm_react_18_3_1","window","pe","le","_e","de","init_jsx_runtime","c","ce","addPropertyControls","init_framer_BWFVvmND","ControlType","priceCode","configAtom","init__framer_utils","ProductBaseControls","SupportControl","init_jotai_2_15","VersionControl","init__test_data","init__atoms","init__utils","ComponentWrapper","init_ComponentWrapper","useInitializeShopify","init__useShopify","xt","Nt","productsLoadableAtom","DefaultProduct","parseGid","selectedProductsAtom","useIsStaticWebsite","loadScript","isScriptLoaded","SCRIPTS_LOADED","src","promise","script","options","resolve","reject","attributes","key","useLoadScript","status","setStatus","url","init__useLoadScript","useProduct","isStatic","hasMounted","setHasMounted","config","productsState","cmsProduct","parseProductPayload","productID","selectedProducts","setSelectedProducts","product","item","selected","storedSelection","addToSelected","resolveSelectedProduct","activeConfig","getPrice","comparePriceValue","camparePrice","priceValue","price","changeQuantity","state","DefaultSelectedOption","selectVariant","normalizeAvailableQuantity","useSelectionEffect","currentSelection","resolvedSelection","selectedVariant","multiplePrice","init__useProduct","quantity","defaultVariant","Shopify_ShopPayButton","props","shopPayLoadedStatus","SHOPJS_URL","variantId","style","init_Shopify_ShopPayButton","lastId","gid","parseProduct","productData","buildCheckoutUrl","p","variants","n","plan","onlyWithPlan","add","qty","findProductData","depth","val","found","withPlanCheckout","Component","withPreselectPlan","ref","tries","timer","root","buttons","b","ROLCheckout","textColor","radius","font","label","init_ROLCheckout"],"sources":["https:/framerusercontent.com/modules/5RNyIzBVhOLYhJjEkl69/d8gKFgI3WBd8iuEOJrBm/_useLoadScript.js","https:/framerusercontent.com/modules/xEahqZEsyG5uoZky61jQ/Jq5xpVB2EtHRhNbukrHt/_useProduct.js","https:/framerusercontent.com/modules/PK54QWHW6tRgZKNp6Vfx/GsuOcYJsSRW9XOmpFV0b/Shopify_ShopPayButton.js","https:/framerusercontent.com/modules/pTnMDC98byXvrlSlE319/AzC93ofuJhmu1GQDEHHf/ROLCheckout.js"],"sourcesContent":["import{useState,useEffect}from\"react\";const SCRIPTS_LOADED={};export function loadScript(src,options){const isScriptLoaded=SCRIPTS_LOADED[src];if(isScriptLoaded){return isScriptLoaded;}const promise=new Promise((resolve,reject)=>{const script=document.createElement(\"script\");if(options?.module){script.type=\"module\";}else{script.type=\"text/javascript\";}script.src=src;script.onload=()=>{resolve(true);};script.onerror=()=>{reject(false);};if(options?.in===\"head\"){document.head.appendChild(script);}else{document.body.appendChild(script);}const attributes=options?.attributes;if(attributes){Object.keys(attributes).forEach(key=>{script.setAttribute(key,attributes[key]);});}});SCRIPTS_LOADED[src]=promise;return promise;}/**\n * The `useLoadScript` hook loads an external script tag in the browser. It allows React components to lazy-load large third-party dependencies.\n */export function useLoadScript(url,options){const[status,setStatus]=useState(\"loading\");useEffect(()=>{loadScript(url,options).then(()=>setStatus(\"done\")).catch(()=>setStatus(\"error\"));},// Ignore options changes since it won't trigger a new load.\n// eslint-disable-next-line react-hooks/exhaustive-deps\n[url]);return status;}\nexport const __FramerMetadata__ = {\"exports\":{\"useLoadScript\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"loadScript\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./_useLoadScript.map","import{useCallback,useEffect,useLayoutEffect,useMemo,useState}from\"react\";import{useAtom,useAtomValue}from\"https://esm.sh/jotai@2.15.0?external=react\";import{parseProductPayload,priceCode}from\"https://framerusercontent.com/modules/7dEgbg7qo3lsQk361YtS/ThUoOgwiB0dnN03sGTvb/_utils.js\";import{configAtom,productsLoadableAtom,selectedProductsAtom}from\"https://framerusercontent.com/modules/yZBbIevRfN36MGDPpltx/89RrH2Io0vUgcxyspY67/_atoms.js\";import{DefaultProduct}from\"https://framerusercontent.com/modules/fWwtzMT2tYXMW4IKB8On/qkWzXbhYbATozMlhaVV8/_test_data.js\";import{useIsStaticWebsite}from\"https://framerusercontent.com/modules/eAejHXy6apg0StNmpKvK/GfiUlYgjnAB0Az7cClGa/_framer_utils.js\";import{useInitializeShopify}from\"https://framerusercontent.com/modules/tdCHCV0pSkxlDaX5GkOX/WKo1sACwoziPHO6aRe0i/_useShopify.js\";const DefaultSelectedOption={quantity:1,quantityAvailable:null,selectedOption:null,sellingPlan:null};const normalizeAvailableQuantity=quantity=>typeof quantity===\"number\"?Math.max(0,quantity):null;// Persist the initial selection before the browser paints, while keeping SSR\n// safe by falling back to useEffect when window is unavailable.\nconst useSelectionEffect=typeof window===\"undefined\"?useEffect:useLayoutEffect;const resolveSelectedProduct=(product,storedSelection)=>{const selectedVariant=product.variants.nodes.find(item=>item.id===storedSelection?.selectedOption);if(storedSelection&&selectedVariant){return{...storedSelection,quantityAvailable:normalizeAvailableQuantity(selectedVariant.quantityAvailable)};}const defaultVariant=product.variants.nodes[0];if(!defaultVariant)return null;return{...DefaultSelectedOption,quantityAvailable:normalizeAvailableQuantity(defaultVariant.quantityAvailable),selectedOption:defaultVariant.id};};/** Resolve a CMS payload on static output and Storefront data interactively. */export function useProduct(productID,addToSelected){const isStatic=useIsStaticWebsite();// Other Shopiframe boundaries can finish loading products or selections while\n// this boundary is hydrating. Preserve its server snapshot until it commits.\nconst[hasMounted,setHasMounted]=useState(false);useInitializeShopify(isStatic);useEffect(()=>{setHasMounted(true);},[]);const config=useAtomValue(configAtom);const productsState=useAtomValue(productsLoadableAtom);const cmsProduct=useMemo(()=>parseProductPayload(productID),[productID]);const[selectedProducts,setSelectedProducts]=useAtom(selectedProductsAtom);const product=useMemo(()=>{if(!cmsProduct)return DefaultProduct;if(!hasMounted||isStatic)return cmsProduct;if(productsState.state!==\"hasData\")return cmsProduct;return productsState.data.find(item=>item.id===cmsProduct.id)??cmsProduct;},[cmsProduct,hasMounted,isStatic,productsState]);const selected=useMemo(()=>{const storedSelection=hasMounted&&product?.id?selectedProducts[product.id]:null;if(!addToSelected||!product)return storedSelection;return resolveSelectedProduct(product,storedSelection);},[addToSelected,hasMounted,product,selectedProducts]);const activeConfig=hasMounted?config:null;const getPrice=useCallback((camparePrice,price)=>{const comparePriceValue=camparePrice&&camparePrice.amount!==\"0.0\"?priceCode(camparePrice,activeConfig??undefined):null;const priceValue=priceCode(price,activeConfig??undefined);return{camparePrice:comparePriceValue!==priceValue?comparePriceValue:null,price:priceValue};},[activeConfig]);const changeQuantity=quantity=>{if(!product)return;setSelectedProducts(state=>({...state,[product.id]:{...DefaultSelectedOption,...resolveSelectedProduct(product,state[product.id]),quantity}}));};const selectVariant=(item,sellingPlan)=>{if(!product||!item)return;setSelectedProducts(state=>({...state,[product.id]:{...DefaultSelectedOption,...resolveSelectedProduct(product,state[product.id]),sellingPlan,quantityAvailable:normalizeAvailableQuantity(item.quantityAvailable),selectedOption:item.id}}));};useSelectionEffect(()=>{if(!product||!addToSelected)return;setSelectedProducts(state=>{const currentSelection=state[product.id];const resolvedSelection=resolveSelectedProduct(product,currentSelection);if(!resolvedSelection)return state;if(currentSelection?.selectedOption===resolvedSelection.selectedOption&&currentSelection?.quantity===resolvedSelection.quantity&&currentSelection?.quantityAvailable===resolvedSelection.quantityAvailable&&currentSelection?.sellingPlan===resolvedSelection.sellingPlan){return state;}return{...state,[product.id]:resolvedSelection};});},[product,addToSelected,setSelectedProducts]);const result=useMemo(()=>{if(!product)return{product:null,availableForSale:null,multiplePrice:null,price:null,stock:null,selectedVariant:null,selectedProduct:null};const selectedVariant=product.variants.nodes.find(item=>item.id===selected?.selectedOption);if(selectedVariant){const selectedSellingPlan=selectedVariant.sellingPlanAllocations?.nodes.find(item=>item.sellingPlan.id===selected?.sellingPlan);const price=selectedSellingPlan?.checkoutChargeAmount??selectedVariant.priceV2;return{product,price:getPrice(selectedVariant.compareAtPriceV2,price),multiplePrice:false,availableForSale:selectedVariant.availableForSale,stock:normalizeAvailableQuantity(selectedVariant.quantityAvailable),selectedVariant,selectedProduct:selected};}const multiplePrice=product.priceRange.minVariantPrice.amount!==product.priceRange.maxVariantPrice.amount;return{product,price:getPrice(product.compareAtPriceRange.minVariantPrice,product.priceRange.minVariantPrice),multiplePrice,availableForSale:product.availableForSale,stock:normalizeAvailableQuantity(product.totalInventory),selectedVariant:null,selectedProduct:selected};},[product,getPrice,selected]);return{...result,changeQuantity,selectVariant};}\nexport const __FramerMetadata__ = {\"exports\":{\"useProduct\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./_useProduct.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{VersionControl,SupportControl}from\"https://framerusercontent.com/modules/eAejHXy6apg0StNmpKvK/GfiUlYgjnAB0Az7cClGa/_framer_utils.js\";import{addPropertyControls}from\"framer\";import{ProductBaseControls}from\"https://framerusercontent.com/modules/eAejHXy6apg0StNmpKvK/GfiUlYgjnAB0Az7cClGa/_framer_utils.js\";import{useLoadScript}from\"https://framerusercontent.com/modules/5RNyIzBVhOLYhJjEkl69/d8gKFgI3WBd8iuEOJrBm/_useLoadScript.js\";import{useProduct}from\"https://framerusercontent.com/modules/xEahqZEsyG5uoZky61jQ/Jq5xpVB2EtHRhNbukrHt/_useProduct.js\";import ComponentWrapper from\"https://framerusercontent.com/modules/hQlZBgGeLDev5WuUJA4d/oaySxJQXUpmZC40m1Nws/ComponentWrapper.js\";import{parseGid}from\"https://framerusercontent.com/modules/7dEgbg7qo3lsQk361YtS/ThUoOgwiB0dnN03sGTvb/_utils.js\";import{useAtomValue}from\"https://esm.sh/jotai@2.15.0?external=react\";import{configAtom}from\"https://framerusercontent.com/modules/yZBbIevRfN36MGDPpltx/89RrH2Io0vUgcxyspY67/_atoms.js\";const SHOPJS_URL=\"https://cdn.shopify.com/shopifycloud/shop-js/v1.0/client.js\";/**\n * @framerDisableUnlink\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n */export default function Shopify_ShopPayButton(props){const config=useAtomValue(configAtom);const{selectedVariant,product}=useProduct(props.productID??null);const shopPayLoadedStatus=useLoadScript(SHOPJS_URL);const variantId=selectedVariant?.id?parseGid(selectedVariant.id).id:parseGid(product?.variants.nodes?.[0].id).id;const style=props?.style?.width?{\"--shop-pay-button-width\":props.style.width}:undefined;return /*#__PURE__*/_jsx(ComponentWrapper,{style:style,name:\"ShopPayButton\",productID:props.productID||\"EMPTY\",hidden:shopPayLoadedStatus!==\"done\",children:()=>/*#__PURE__*/_jsx(\"shop-pay-button\",{\"store-url\":config?.storeDomain&&`https://${config.storeDomain}`,variants:variantId??\"\",\"data-shopiframe\":\"component\"})});}Shopify_ShopPayButton.displayName=\"Shop Pay Button\";addPropertyControls(Shopify_ShopPayButton,{...VersionControl,...ProductBaseControls,...SupportControl});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Shopify_ShopPayButton\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"auto\",\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"* @framerSupportedLayoutWidth auto\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef}from\"react\";import{addPropertyControls,ControlType}from\"framer\";// Your Shopify store domain (checkout runs here)\nconst STORE=\"dczjs1-ns.myshopify.com\";function lastId(gid){return gid?String(gid).split(\"/\").pop():undefined;}function parseProduct(productData){try{return typeof productData===\"string\"?JSON.parse(productData):productData;}catch{return null;}}// Builds a checkout link from the CMS \"Product Data\" field.\n// onlyWithPlan = true -> returns null for products without a subscription plan.\nfunction buildCheckoutUrl(productData,onlyWithPlan=false,qty=1){const p=parseProduct(productData);if(!p)return null;const variants=p?.variants?.nodes||[];const v=variants.find(n=>n?.availableForSale!==false)||variants[0];const variantId=lastId(v?.id);if(!variantId)return null;const plan=lastId(p?.sellingPlanGroups?.nodes?.[0]?.sellingPlans?.nodes?.[0]?.id);if(onlyWithPlan&&!plan)return null;let add=\"/cart/add?items[][id]=\"+variantId+\"%26items[][quantity]=\"+qty;if(plan)add+=\"%26items[][selling_plan]=\"+plan;add+=\"%26return_to=/checkout\";return\"https://\"+STORE+\"/cart/clear?return_to=\"+add;}// Finds the Product Data JSON among a component's props\nfunction findProductData(props,depth=0){if(!props||depth>2)return null;for(const val of Object.values(props)){if(typeof val===\"string\"&&val.includes(\"sellingPlanGroups\")&&val.includes(\"variants\"))return val;if(val&&typeof val===\"object\"&&!Array.isArray(val)&&val.variants&&val.sellingPlanGroups)return val;}for(const val of Object.values(props)){if(val&&typeof val===\"object\"&&!Array.isArray(val)&&!val.$$typeof){const found=findProductData(val,depth+1);if(found)return found;}}return null;}// OVERRIDE for the original Shop Pay button.\n// Subscription products: click goes to checkout with the plan attached.\n// One-time products: does nothing, the button works as normal.\nexport function withPlanCheckout(Component){return props=>{const onClickCapture=e=>{const url=buildCheckoutUrl(findProductData(props),true);if(!url)return;e.preventDefault();e.stopPropagation();window.location.href=url;};return /*#__PURE__*/_jsx(\"div\",{onClickCapture:onClickCapture,style:{display:\"contents\"},children:/*#__PURE__*/_jsx(Component,{...props})});};}// OVERRIDE for the plan selector: ticks the subscription plan when the page opens.\nexport function withPreselectPlan(Component){return props=>{const ref=useRef(null);useEffect(()=>{let tries=0;const timer=setInterval(()=>{tries++;const root=ref.current;const buttons=root?Array.from(root.querySelectorAll(\"button[aria-pressed]\")):[];if(buttons.length){const anySelected=buttons.some(b=>b.getAttribute(\"aria-pressed\")===\"true\");if(!anySelected){const plan=buttons.find(b=>!/one[\\s-]?time/i.test(b.textContent||\"\"));if(plan)plan.click();}clearInterval(timer);}else if(tries>50){clearInterval(timer);}},100);return()=>clearInterval(timer);},[]);return /*#__PURE__*/_jsx(\"div\",{ref:ref,style:{display:\"contents\"},children:/*#__PURE__*/_jsx(Component,{...props})});};}/**\n * FALLBACK: our own Buy Now button (only used if the override doesn't work).\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */export default function ROLCheckout(props){const{productData,label,background,textColor,radius,font,style}=props;const onClick=()=>{const url=buildCheckoutUrl(productData);if(url)window.location.href=url;};return /*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:onClick,style:{...style,width:\"100%\",height:\"100%\",border:\"none\",cursor:\"pointer\",background,color:textColor,borderRadius:radius,...font},children:label});}addPropertyControls(ROLCheckout,{productData:{type:ControlType.String,title:\"Product Data\",defaultValue:\"\"},label:{type:ControlType.String,title:\"Label\",defaultValue:\"Buy with Shop Pay\"},background:{type:ControlType.Color,title:\"Background\",defaultValue:\"#5A31F4\"},textColor:{type:ControlType.Color,title:\"Text\",defaultValue:\"#FFFFFF\"},radius:{type:ControlType.Number,title:\"Radius\",defaultValue:4,min:0,max:50},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:16,fontWeight:600}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ROLCheckout\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any\"}},\"withPlanCheckout\":{\"type\":\"reactHoc\",\"name\":\"withPlanCheckout\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withPreselectPlan\":{\"type\":\"reactHoc\",\"name\":\"withPreselectPlan\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ROLCheckout.map"],"mappings":"A,uZAA8D,SAAgB8C,EAAW,EAAI,EAAQ,CAAC,IAAMC,EAAeC,EAAeC,GAAK,GAAGF,EAAgB,OAAOA,EAAgB,IAAMG,EAAQ,IAAI,SAAS,EAAQ,IAAS,CAAC,IAAMC,EAAO,SAAS,cAAc,QAAQ,EAAE,AAA+CA,EAAO,KAAnDC,GAAS,OAAoB,SAA2B,kBAAmB,EAAO,IAAIH,EAAI,EAAO,WAAW,CAACI,EAAQ,EAAI,CAAE,EAAE,EAAO,YAAY,CAACC,EAAO,EAAK,CAAE,EAAKF,GAAS,KAAK,OAAQ,SAAS,KAAK,YAAYD,CAAM,EAAQ,SAAS,KAAK,YAAYA,CAAM,EAAG,IAAMI,EAAWH,GAAS,WAAcG,GAAY,OAAO,KAAKA,CAAU,CAAC,CAAC,QAAQ,GAAK,CAACJ,EAAO,aAAaK,EAAID,EAAWC,EAAI,CAAE,CAAC,CAAG,CAAC,EAA8B,MAA5B,GAAeP,GAAKC,EAAeA,CAAQ,CAE9sB,SAAgBO,EAAc,EAAI,EAAQ,CAAC,GAAK,CAACC,EAAOC,GAAW3D,EAAS,SAAS,EAEjF,OAFmFqB,MAAc,CAACyB,EAAWc,EAAIR,CAAO,CAAC,CAAC,SAASO,EAAU,MAAM,CAAC,CAAC,CAAC,UAAUA,EAAU,OAAO,CAAC,CAAE,EAE3L,CAACC,CAAG,CAAC,EAASF,CAAO,C,wCAJuB,EAAe,CAAC,C,OCEinB,SAAgBI,EAAW,EAAU,EAAc,CAAC,IAAMC,EAASlB,EAAmB,EAE9vB,CAACmB,EAAWC,GAAehE,EAAS,EAAK,EAAEoC,EAAqB0B,CAAQ,EAAE1C,MAAc,CAAC4C,EAAc,EAAI,CAAE,EAAE,CAAC,CAAC,EAAE,IAAMC,EAAOhE,EAAawB,CAAU,EAAQyC,EAAcjE,EAAauC,CAAoB,EAAQ2B,EAAWjE,MAAYkE,EAAoBC,CAAS,EAAE,CAACA,CAAS,CAAC,EAAO,CAACC,EAAiBC,GAAqBpE,EAAQwC,CAAoB,EAAQ6B,EAAQtE,MAAiBiE,EAAoC,CAACJ,GAAYD,GAA8BI,EAAc,QAAQ,UAAiBC,EAAkBD,EAAc,KAAK,KAAK,GAAMO,EAAK,KAAKN,EAAW,EAAE,GAAGA,EAA9K1B,EAA2L,CAAC0B,EAAWJ,EAAWD,EAASI,CAAa,CAAC,EAAQQ,EAASxE,MAAY,CAAC,IAAMyE,EAAgBZ,GAAYS,GAAS,GAAGF,EAAiBE,EAAQ,IAAI,KAAwD,MAAhD,CAACI,GAAe,CAACJ,EAAeG,EAAuBE,EAAuBL,EAAQG,CAAe,CAAE,EAAE,CAACC,EAAcb,EAAWS,EAAQF,CAAgB,CAAC,EAAQQ,EAAaf,EAAWE,EAAO,KAAWc,EAAS3E,GAAa,EAAa,IAAQ,CAAC,IAAM4E,EAAkBC,GAAcA,EAAa,SAAS,MAAMzD,EAAUyD,EAAaH,GAAc,IAAA,EAAS,EAAE,KAAWI,EAAW1D,EAAU2D,EAAML,GAAc,IAAA,EAAS,EAAE,MAAM,CAAC,aAAaE,IAAoBE,EAA6B,KAAlBF,EAAuB,MAAME,CAAU,CAAE,EAAE,CAACJ,CAAY,CAAC,EAAQM,EAAe,GAAU,CAAKZ,GAAeD,EAAoB,IAAQ,CAAC,GAAGc,GAAOb,EAAQ,IAAI,CAAC,GAAGc,EAAsB,GAAGT,EAAuBL,EAAQa,EAAMb,EAAQ,GAAG,EAAE,UAAQ,CAAC,EAAE,CAAE,EAAQe,GAAe,EAAK,IAAc,CAAKf,GAAUC,GAAYF,EAAoB,IAAQ,CAAC,GAAGc,GAAOb,EAAQ,IAAI,CAAC,GAAGc,EAAsB,GAAGT,EAAuBL,EAAQa,EAAMb,EAAQ,GAAG,EAAE,cAAY,kBAAkBgB,EAA2Bf,EAAK,iBAAiB,EAAE,eAAeA,EAAK,EAAE,CAAC,EAAE,CAAE,EAA8tD,OAA5tDgB,MAAuB,CAAKjB,GAAUI,GAAqBL,EAAoB,GAAO,CAAC,IAAMmB,EAAiBL,EAAMb,EAAQ,IAAUmB,EAAkBd,EAAuBL,EAAQkB,CAAgB,EAA8T,MAAzT,CAACC,GAAkCD,GAAkB,iBAAiBC,EAAkB,gBAAgBD,GAAkB,WAAWC,EAAkB,UAAUD,GAAkB,oBAAoBC,EAAkB,mBAAmBD,GAAkB,cAAcC,EAAkB,YAAoBN,EAAa,CAAC,GAAGA,GAAOb,EAAQ,IAAImB,CAAiB,CAAE,CAAC,CAAE,EAAE,CAACnB,EAAQI,EAAcL,CAAmB,CAAC,EAA6nC,CAAC,GAA/mCrE,MAAY,CAAC,GAAG,CAACsE,EAAQ,MAAM,CAAC,QAAQ,KAAK,iBAAiB,KAAK,cAAc,KAAK,MAAM,KAAK,MAAM,KAAK,gBAAgB,KAAK,gBAAgB,IAAI,EAAE,IAAMoB,EAAgBpB,EAAQ,SAAS,MAAM,KAAK,GAAMC,EAAK,KAAKC,GAAU,cAAc,EAAE,GAAGkB,EAAgB,CAAiI,IAAMT,EAA5GS,EAAgB,wBAAwB,MAAM,KAAK,GAAMnB,EAAK,YAAY,KAAKC,GAAU,WAAW,CAAA,EAAmC,sBAAsBkB,EAAgB,QAAQ,MAAM,CAAC,UAAQ,MAAMb,EAASa,EAAgB,iBAAiBT,CAAK,EAAE,cAAc,GAAM,iBAAiBS,EAAgB,iBAAiB,MAAMJ,EAA2BI,EAAgB,iBAAiB,EAAE,kBAAgB,gBAAgBlB,CAAQ,CAAE,CAAC,IAAMmB,EAAcrB,EAAQ,WAAW,gBAAgB,SAASA,EAAQ,WAAW,gBAAgB,OAAO,MAAM,CAAC,UAAQ,MAAMO,EAASP,EAAQ,oBAAoB,gBAAgBA,EAAQ,WAAW,eAAe,EAAE,gBAAc,iBAAiBA,EAAQ,iBAAiB,MAAMgB,EAA2BhB,EAAQ,cAAc,EAAE,gBAAgB,KAAK,gBAAgBE,CAAQ,CAAE,EAAE,CAACF,EAAQO,EAASL,CAAQ,CAAkB,EAAE,iBAAe,eAAa,CAAE,C,0EAJptF,EAAsB,CAAC,SAAS,EAAE,kBAAkB,KAAK,eAAe,KAAK,YAAY,IAAI,EAAQ,EAA2B,GAAU,OAAOqB,GAAW,SAAS,KAAK,IAAI,EAAEA,CAAQ,EAAE,KAE9+B,EAA0BlF,IAAS,OAAYR,EAAUC,EAAsB,GAAwB,EAAQ,IAAkB,CAAC,IAAMsF,EAAgBpB,EAAQ,SAAS,MAAM,KAAK,GAAMC,EAAK,KAAKE,GAAiB,cAAc,EAAE,GAAGA,GAAiBiB,EAAiB,MAAM,CAAC,GAAGjB,EAAgB,kBAAkBa,EAA2BI,EAAgB,iBAAiB,CAAC,EAAG,IAAMI,EAAexB,EAAQ,SAAS,MAAM,GAAkC,OAA3BwB,EAAiC,CAAC,GAAGV,EAAsB,kBAAkBE,EAA2BQ,EAAe,iBAAiB,EAAE,eAAeA,EAAe,EAAE,EAApJ,IAAsJ,C,OCExlB,SAAwBC,EAAsB,EAAM,CAAC,IAAMhC,EAAO1D,EAAakB,CAAU,EAAO,CAAC,kBAAgB,WAASoC,EAAWqC,EAAM,WAAW,IAAI,EAAQC,EAAoB3C,EAAc4C,CAAU,EAAQC,EAAUT,GAAiB,GAAGlD,EAASkD,EAAgB,EAAE,CAAC,CAAC,GAAGlD,EAAS8B,GAAS,SAAS,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,GAAS8B,EAAMJ,GAAO,OAAO,MAAM,CAAC,0BAA0BA,EAAM,MAAM,KAAK,EAAE,IAAA,GAAU,MAAoB,gBAAKhE,EAAiB,CAAO,QAAM,KAAK,gBAAgB,UAAUgE,EAAM,WAAW,QAAQ,OAAOC,IAAsB,OAAO,aAA0B,gBAAK,kBAAkB,CAAC,YAAYlC,GAAQ,aAAa,WAAWA,EAAO,cAAc,SAASoC,GAAW,GAAG,kBAAkB,WAAW,CAAC,CAAC,CAAC,CAAE,C,wEAJyS,EAAW,8DAInT,EAAsB,YAAY,kBAAkBhF,EAAoB4E,EAAsB,CAAC,GAAGnE,EAAe,GAAGH,EAAoB,GAAGC,CAAc,CAAC,C,OCHh1B,SAAS4E,EAAO,EAAI,CAAC,OAAOC,EAAI,OAAOA,CAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,IAAA,EAAU,CAAC,SAASC,GAAa,EAAY,CAAC,GAAG,CAAC,OAAO,OAAOC,GAAc,SAAS,KAAK,MAAMA,CAAW,EAAEA,CAAY,MAAM,CAAC,OAAO,IAAK,CAAC,CAElP,SAASC,EAAiB,EAAY,EAAa,GAAM,EAAI,EAAE,CAAC,IAAMC,EAAEH,GAAaC,CAAW,EAAE,GAAG,CAACE,EAAE,OAAO,KAAK,IAAMC,EAASD,GAAG,UAAU,OAAO,CAAC,EAA2ER,EAAUG,GAA3EM,EAAS,KAAK,GAAGC,GAAG,mBAAmB,EAAK,GAAGD,EAAS,GAAA,EAA6B,EAAE,EAAE,GAAG,CAACT,EAAU,OAAO,KAAK,IAAMW,EAAKR,EAAOK,GAAG,mBAAmB,QAAQ,EAAE,EAAE,cAAc,QAAQ,EAAE,EAAE,EAAE,EAAE,GAAGI,GAAc,CAACD,EAAK,OAAO,KAAK,IAAIE,EAAI,yBAAyBb,EAAU,wBAAwBc,EAAgF,OAAzEH,IAAK,GAAK,4BAA4BA,GAAK,GAAK,yBAA+B,wDAA0CE,CAAI,CACjlB,SAASE,EAAgB,EAAM,EAAM,EAAE,CAAC,GAAG,CAAClB,GAAOmB,EAAM,EAAE,OAAO,KAAK,IAAI,IAAMC,KAAO,OAAO,OAAOpB,CAAK,EAAoG,GAA9F,OAAOoB,GAAM,UAAUA,EAAI,SAAS,mBAAmB,GAAGA,EAAI,SAAS,UAAU,GAAgBA,GAAK,OAAOA,GAAM,UAAU,CAAC,MAAM,QAAQA,CAAG,GAAGA,EAAI,UAAUA,EAAI,kBAAkB,OAAOA,EAAK,IAAI,IAAMA,KAAO,OAAO,OAAOpB,CAAK,EAAG,GAAGoB,GAAK,OAAOA,GAAM,UAAU,CAAC,MAAM,QAAQA,CAAG,GAAG,CAACA,EAAI,SAAS,CAAC,IAAMC,EAAMH,EAAgBE,EAAID,EAAM,CAAC,EAAE,GAAGE,EAAM,OAAOA,CAAM,CAAE,OAAO,IAAK,CAG1e,SAAgBC,GAAiB,EAAU,CAAC,MAAO,IAA8L,gBAAK,MAAM,CAAgB,eAA5L,GAAG,CAAC,IAAM7D,EAAIiD,EAAiBQ,EAAgBlB,CAAK,EAAE,EAAI,EAAMvC,IAAW,EAAE,eAAe,EAAE,EAAE,gBAAgB,EAAE,EAAO,SAAS,KAAKA,EAAI,EAAgE,MAAM,CAAC,QAAQ,UAAU,EAAE,SAAsB,gBAAK8D,EAAU,CAAC,GAAGvB,CAAK,CAAC,CAAC,CAAC,CAAI,CAC3W,SAAgBwB,GAAkB,EAAU,CAAC,MAAO,IAAO,CAAC,IAAMC,EAAInH,EAAO,IAAI,EAA8d,OAA5dY,MAAc,CAAC,IAAIwG,EAAM,EAAQC,EAAM,gBAAgB,CAAC,IAAQ,IAAMC,EAAKH,EAAI,QAAcI,EAAQD,EAAK,MAAM,KAAKA,EAAK,iBAAiB,sBAAsB,CAAC,EAAE,CAAC,EAAE,GAAGC,EAAQ,OAAO,CAA4E,GAAG,CAA5DA,EAAQ,KAAK,GAAGC,EAAE,aAAa,cAAc,IAAI,MAAsB,EAAE,CAAC,IAAMhB,EAAKe,EAAQ,KAAK,GAAG,CAAC,iBAAiB,KAAKC,EAAE,aAAa,EAAE,CAAC,EAAKhB,GAAKA,EAAK,MAAM,CAAE,CAAC,cAAca,CAAK,CAAE,MAASD,EAAM,IAAI,cAAcC,CAAK,CAAG,EAAE,GAAG,EAAE,UAAU,cAAcA,CAAK,CAAE,EAAE,CAAC,CAAC,EAAsB,gBAAK,MAAM,CAAK,MAAI,MAAM,CAAC,QAAQ,UAAU,EAAE,SAAsB,gBAAKJ,EAAU,CAAC,GAAGvB,CAAK,CAAC,CAAC,CAAC,CAAE,CAAE,CAIpqB,SAAwB+B,GAAY,EAAM,CAAC,GAAK,CAAC,cAAY,QAAM,aAAW,YAAU,SAAO,OAAK,SAAO/B,EAAmG,MAAoB,gBAAK,SAAS,CAAC,KAAK,SAAiB,YAApI,CAAC,IAAMvC,EAAIiD,EAAiBD,CAAW,EAAKhD,IAAI,EAAO,SAAS,KAAKA,EAAI,EAAmE,MAAM,CAAC,GAAG2C,EAAM,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,UAAU,aAAW,MAAM4B,EAAU,aAAaC,EAAO,GAAGC,CAAI,EAAE,SAASC,CAAK,CAAC,CAAE,C,8CAAChH,EAAoB4G,GAAY,CAAC,YAAY,CAAC,KAAK1G,EAAY,OAAO,MAAM,eAAe,aAAa,EAAE,EAAE,MAAM,CAAC,KAAKA,EAAY,OAAO,MAAM,QAAQ,aAAa,mBAAmB,EAAE,WAAW,CAAC,KAAKA,EAAY,MAAM,MAAM,aAAa,aAAa,SAAS,EAAE,UAAU,CAAC,KAAKA,EAAY,MAAM,MAAM,OAAO,aAAa,SAAS,EAAE,OAAO,CAAC,KAAKA,EAAY,OAAO,MAAM,SAAS,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,KAAKA,EAAY,KAAK,MAAM,OAAO,SAAS,WAAW,gBAAgB,aAAa,aAAa,CAAC,SAAS,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,C"}