{"version":3,"file":"ImageCarousel.DvvS1d_t.mjs","names":["useId","useMemo","useState","useRef","useCallback"],"sources":["https:/framerusercontent.com/modules/c76vHQEbcuoBNsmi8JkA/bv8ETlMHvNAjYEPime3Q/ImageCarousel.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useCallback,useEffect,useId,useMemo,useRef,useState}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";// Distance past which a slow drag still commits, as a fraction of one step.\nconst DISTANCE_THRESHOLD=.2;// Pointer speed (px/ms) past which a short flick commits regardless of distance.\nconst FLICK_VELOCITY=.35;// Resistance applied when dragging past the first or last slide.\nconst EDGE_RESISTANCE=.35;const EASING=\"cubic-bezier(0.22, 1, 0.36, 1)\";const CAROUSEL_CSS=`\n.framer-ic-stage {\n    position: relative;\n    width: 100%;\n    display: grid;\n    grid-template-columns: var(--ic-gutter, 56px) minmax(0, 1fr) var(--ic-gutter, 56px);\n    column-gap: var(--ic-arrow-gap, 0px);\n    align-items: center;\n}\n.framer-ic-stage[data-arrows=\"false\"] { grid-template-columns: minmax(0, 1fr); }\n.framer-ic-arrow { transition: transform 160ms ease, opacity 200ms ease; }\n.framer-ic-arrow:not(:disabled):hover { transform: scale(1.06); }\n.framer-ic-arrow:not(:disabled):active { transform: scale(0.94); }\n.framer-ic-dot > span {\n    transition: transform 220ms ${EASING}, background 200ms ease, opacity 200ms ease;\n}\n.framer-ic-dot:not([aria-current=\"true\"]):hover > span { filter: brightness(0.85); }\n.framer-ic-arrow:focus-visible,\n.framer-ic-dot:focus-visible,\n.framer-ic-viewport:focus-visible {\n    outline: 2px solid currentColor;\n    outline-offset: 3px;\n}\n@media (prefers-reduced-motion: reduce) {\n    .framer-ic-track,\n    .framer-ic-dot-strip,\n    .framer-ic-dot > span { transition: none !important; }\n    .framer-ic-arrow { transition: none !important; }\n}\n`;const fallbackImages=[{src:\"https://framerusercontent.com/images/f9RiWoNpmlCMqVRIHz8l8wYfeI.jpg\",alt:\"Gradient 5 - Green\"},{src:\"https://framerusercontent.com/images/2uTNEj5aTl2K3NJaEFWMbnrA.jpg\",alt:\"Gradient 4 - Yellow\"},{src:\"https://framerusercontent.com/images/BYnxEV1zjYb9bhWh1IwBZ1ZoS60.jpg\",alt:\"Gradient 3 - Orange\"}];function Chevron({size,flip}){return /*#__PURE__*/_jsx(\"svg\",{width:size,height:size,viewBox:\"0 0 24 24\",fill:\"none\",\"aria-hidden\":\"true\",focusable:\"false\",style:{display:\"block\",transform:flip?\"scaleX(-1)\":undefined},children:/*#__PURE__*/_jsx(\"path\",{d:\"M9.5 5.5 16 12l-6.5 6.5\",stroke:\"currentColor\",strokeWidth:2,strokeLinecap:\"round\",strokeLinejoin:\"round\"})});}// Reads the track's live translateX so a drag started mid-settle picks up\n// exactly where the animation had got to, instead of jumping.\nfunction readOffset(node){try{const value=window.getComputedStyle(node).transform;if(!value||value===\"none\")return 0;const Matrix=window.DOMMatrixReadOnly||window.WebKitCSSMatrix;if(!Matrix)return 0;return new Matrix(value).m41||0;}catch{return 0;}}/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n */export default function Swwwipe(props){const{Images,images,aspectRatio,objectFit,slideGap,borderRadius,mediaBackground,showArrows,hideArrowsBelow,gutter,arrowGap,arrowColor,arrowBackground,arrowDisabledOpacity,showDots,dotSize,dotSpacing,dotShape,maxDots,dotEdgeScale,dotActiveColor,dotInactiveColor,transitionDuration,draggable,maxWidth,style}=props;const isStatic=useIsStaticRenderer();const rawId=useId();const scope=useMemo(()=>`framer-ic-${rawId.replace(/[^a-zA-Z0-9]/g,\"\")}`,[rawId]);const[current,setCurrent]=useState(0);const[reducedMotion,setReducedMotion]=useState(false);const trackRef=useRef(null);const currentRef=useRef(0);const mountedRef=useRef(false);// Lets a drag release choose its own settle duration based on how far and\n// how fast it was travelling, instead of always using the prop value.\nconst settleRef=useRef(null);const dragRef=useRef({active:false,pointerId:-1,startX:0,startY:0,baseOffset:0,dx:0,axis:\"none\",step:1});const samplesRef=useRef([]);const ratio=useMemo(()=>{if(aspectRatio===\"4:5\")return\"4 / 5\";if(aspectRatio===\"16:9\")return\"16 / 9\";return\"1 / 1\";},[aspectRatio]);const slides=useMemo(()=>{const source=(Images??images??[]).filter(Boolean);const base=source.length>0?source:[{},{},{}];return base.map((item,index)=>{const fallback=fallbackImages[index%fallbackImages.length];return{src:item.image?.src||fallback.src,srcSet:item.image?.srcSet,alt:item.alt||item.image?.alt||fallback.alt};});},[Images,images]);const count=slides.length;const safeGap=Math.max(0,slideGap);const safeDotSize=Math.max(4,dotSize);const safeDuration=Math.max(120,transitionDuration);const arrowSize=Math.max(44,gutter);const animate=!isStatic&&!reducedMotion;const scopedCss=useMemo(()=>{if(!showArrows||hideArrowsBelow<=0)return\"\";const collapse=`\n    .${scope} .framer-ic-arrow { display: none; }\n    .${scope} .framer-ic-stage { grid-template-columns: minmax(0, 1fr); }`;return`\n.${scope} { container-type: inline-size; container-name: ${scope}; }\n@container ${scope} (max-width: ${hideArrowsBelow}px) {${collapse}\n}\n@supports not (container-type: inline-size) {\n    @media (max-width: ${hideArrowsBelow}px) {${collapse}\n    }\n}\n`;},[hideArrowsBelow,scope,showArrows]);useEffect(()=>{setCurrent(value=>Math.min(Math.max(0,value),count-1));},[count]);useEffect(()=>{if(typeof window===\"undefined\"||!window.matchMedia)return;const query=window.matchMedia(\"(prefers-reduced-motion: reduce)\");const update=()=>setReducedMotion(query.matches);update();query.addEventListener?.(\"change\",update);return()=>query.removeEventListener?.(\"change\",update);},[]);const activeIndex=Math.min(Math.max(0,current),count-1);const canGoPrevious=activeIndex>0;const canGoNext=activeIndex<count-1;// One slide plus one gap: the distance the track travels per step. The\n// percentage half survives resizes without measuring; the gap is fixed px.\nconst applyPosition=useCallback((index,dx,duration)=>{const node=trackRef.current;if(!node)return;node.style.transition=duration>0?`transform ${duration}ms ${EASING}`:\"none\";node.style.transform=`translate3d(calc(${-index*100}% - ${index*safeGap}px + ${dx}px), 0, 0)`;},[safeGap]);useEffect(()=>{currentRef.current=activeIndex;const requested=settleRef.current;settleRef.current=null;const duration=!mountedRef.current||!animate?0:requested??safeDuration;applyPosition(activeIndex,0,duration);mountedRef.current=true;},[activeIndex,animate,applyPosition,safeDuration,safeGap]);const goToIndex=useCallback(nextIndex=>{const clamped=Math.min(Math.max(0,nextIndex),count-1);if(clamped===currentRef.current)return;setCurrent(clamped);},[count]);const handleNavigate=useCallback(direction=>goToIndex(currentRef.current+direction),[goToIndex]);const onPointerDown=useCallback(event=>{if(!draggable||count<2)return;if(event.pointerType===\"mouse\"&&event.button!==0)return;const node=event.currentTarget;const track=trackRef.current;const step=(node.offsetWidth||1)+safeGap;// Where the track actually is right now, relative to its resting\n// position for the current slide.\nconst live=track?readOffset(track):0;const baseOffset=live+currentRef.current*step;dragRef.current={active:true,pointerId:event.pointerId,startX:event.clientX,startY:event.clientY,baseOffset,dx:baseOffset,axis:\"none\",step};samplesRef.current=[{x:event.clientX,t:event.timeStamp}];node.setPointerCapture?.(event.pointerId);applyPosition(currentRef.current,baseOffset,0);},[applyPosition,count,draggable,safeGap]);const onPointerMove=useCallback(event=>{const drag=dragRef.current;if(!drag.active||drag.pointerId!==event.pointerId)return;const deltaX=event.clientX-drag.startX;const deltaY=event.clientY-drag.startY;// Wait until the gesture declares itself, so a vertical page scroll\n// that starts on the image isn't swallowed.\nif(drag.axis===\"none\"){if(Math.abs(deltaX)<6&&Math.abs(deltaY)<6)return;drag.axis=Math.abs(deltaX)>Math.abs(deltaY)?\"x\":\"y\";}if(drag.axis!==\"x\")return;const samples=samplesRef.current;samples.push({x:event.clientX,t:event.timeStamp});if(samples.length>6)samples.shift();let offset=drag.baseOffset+deltaX;const min=-(count-1-currentRef.current)*drag.step;const max=currentRef.current*drag.step;if(offset>max)offset=max+(offset-max)*EDGE_RESISTANCE;if(offset<min)offset=min+(offset-min)*EDGE_RESISTANCE;drag.dx=offset;applyPosition(currentRef.current,offset,0);},[applyPosition,count]);const endDrag=useCallback(event=>{const drag=dragRef.current;if(!drag.active||drag.pointerId!==event.pointerId)return;drag.active=false;event.currentTarget.releasePointerCapture?.(event.pointerId);if(drag.axis!==\"x\")return;const samples=samplesRef.current;const first=samples[0];const last=samples[samples.length-1];const elapsed=last&&first?last.t-first.t:0;const velocity=elapsed>0?(last.x-first.x)/elapsed:0;const index=currentRef.current;let target=index;if(Math.abs(velocity)>FLICK_VELOCITY){target=index+(velocity<0?1:-1);}else if(Math.abs(drag.dx)>drag.step*DISTANCE_THRESHOLD){target=index+(drag.dx<0?1:-1);}target=Math.min(Math.max(0,target),count-1);// Settle at roughly the speed the finger was already moving, so a\n// fast flick lands fast and a slow release eases home.\nconst remaining=Math.abs((index-target)*drag.step-drag.dx);const speed=Math.max(.4,Math.abs(velocity));const duration=Math.round(Math.min(safeDuration,Math.max(140,remaining/speed)));if(target===index){applyPosition(index,0,animate?duration:0);}else{settleRef.current=duration;setCurrent(target);}drag.dx=0;drag.axis=\"none\";samplesRef.current=[];},[animate,applyPosition,count,safeDuration]);const onKeyDown=useCallback(event=>{if(event.key===\"ArrowLeft\"){event.preventDefault();handleNavigate(-1);}if(event.key===\"ArrowRight\"){event.preventDefault();handleNavigate(1);}},[handleNavigate]);// --- Dot window -------------------------------------------------------\n// A fixed number of dots stay visible; the strip slides to keep the active\n// one centred. A dot sitting at a window edge that still has slides beyond\n// it renders small, which is what signals \"there is more this way\".\nconst dotSlot=safeDotSize+Math.max(0,dotSpacing);const windowSize=Math.max(1,Math.min(Math.round(maxDots),count));const windowStart=Math.min(Math.max(0,activeIndex-Math.floor(windowSize/2)),Math.max(0,count-windowSize));const windowEnd=windowStart+windowSize-1;const dotScale=useCallback(index=>{if(index<windowStart||index>windowEnd)return 0;if(index===windowStart&&windowStart>0)return dotEdgeScale;if(index===windowEnd&&windowEnd<count-1)return dotEdgeScale;return 1;},[count,dotEdgeScale,windowEnd,windowStart]);const arrowStyle=enabled=>({width:arrowSize,height:arrowSize,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",justifySelf:\"center\",padding:0,border:\"none\",borderRadius:999,background:arrowBackground,color:arrowColor,cursor:enabled?\"pointer\":\"default\",opacity:enabled?1:arrowDisabledOpacity,WebkitTapHighlightColor:\"transparent\"});return /*#__PURE__*/_jsxs(\"div\",{className:scope,style:{position:\"relative\",width:\"100%\",maxWidth,marginInline:\"auto\",display:\"flex\",flexDirection:\"column\",gap:12,...style},children:[/*#__PURE__*/_jsx(\"style\",{children:CAROUSEL_CSS+scopedCss}),/*#__PURE__*/_jsxs(\"div\",{className:\"framer-ic-stage\",\"data-arrows\":showArrows?\"true\":\"false\",role:\"group\",\"aria-roledescription\":\"carousel\",\"aria-label\":\"Image carousel\",style:{\"--ic-gutter\":`${arrowSize}px`,\"--ic-arrow-gap\":`${Math.max(0,arrowGap)}px`},children:[showArrows&&/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"framer-ic-arrow\",\"aria-label\":\"Previous image\",onClick:()=>handleNavigate(-1),disabled:!canGoPrevious,style:arrowStyle(canGoPrevious),children:/*#__PURE__*/_jsx(Chevron,{size:arrowSize*.42,flip:true})}),/*#__PURE__*/_jsx(\"div\",{className:\"framer-ic-viewport\",tabIndex:0,onKeyDown:onKeyDown,onPointerDown:onPointerDown,onPointerMove:onPointerMove,onPointerUp:endDrag,onPointerCancel:endDrag,style:{position:\"relative\",width:\"100%\",aspectRatio:ratio,borderRadius,overflow:\"hidden\",background:mediaBackground,touchAction:draggable?\"pan-y pinch-zoom\":\"auto\",userSelect:\"none\",WebkitUserSelect:\"none\",WebkitTapHighlightColor:\"transparent\",cursor:draggable&&count>1?\"grab\":\"default\"},children:/*#__PURE__*/_jsx(\"div\",{ref:trackRef,className:\"framer-ic-track\",style:{display:\"flex\",gap:safeGap,width:\"100%\",height:\"100%\",willChange:\"transform\"},children:slides.map((slide,index)=>/*#__PURE__*/_jsx(\"div\",{role:\"group\",\"aria-roledescription\":\"slide\",\"aria-label\":`${index+1} of ${count}`,\"aria-hidden\":index!==activeIndex,style:{position:\"relative\",flex:\"0 0 100%\",width:\"100%\",height:\"100%\",borderRadius,overflow:\"hidden\",background:mediaBackground},children:/*#__PURE__*/_jsx(\"img\",{src:slide.src,srcSet:slide.srcSet,alt:slide.alt||\"\",draggable:false,decoding:\"async\",loading:Math.abs(index-activeIndex)<=1?\"eager\":\"lazy\",style:{display:\"block\",width:\"100%\",height:\"100%\",objectFit,pointerEvents:\"none\"}})},index))})}),showArrows&&/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"framer-ic-arrow\",\"aria-label\":\"Next image\",onClick:()=>handleNavigate(1),disabled:!canGoNext,style:arrowStyle(canGoNext),children:/*#__PURE__*/_jsx(Chevron,{size:arrowSize*.42,flip:false})})]}),showDots&&count>1&&/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",justifyContent:\"center\",alignItems:\"center\"},children:/*#__PURE__*/_jsx(\"div\",{style:{width:windowSize*dotSlot,overflow:\"hidden\"},children:/*#__PURE__*/_jsx(\"div\",{className:\"framer-ic-dot-strip\",style:{display:\"flex\",alignItems:\"center\",transform:`translate3d(${-windowStart*dotSlot}px, 0, 0)`,transition:animate?`transform 260ms ${EASING}`:\"none\"},children:slides.map((slide,index)=>{const isActive=index===activeIndex;const scale=dotScale(index);return /*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"framer-ic-dot\",\"aria-label\":`Go to image ${index+1}`,\"aria-current\":isActive,tabIndex:scale===0?-1:0,onClick:()=>goToIndex(index),style:{flex:`0 0 ${dotSlot}px`,width:dotSlot,height:Math.max(24,dotSlot),display:\"grid\",placeItems:\"center\",padding:0,border:\"none\",background:\"transparent\",cursor:isActive?\"default\":\"pointer\",WebkitTapHighlightColor:\"transparent\"},children:/*#__PURE__*/_jsx(\"span\",{style:{display:\"block\",width:safeDotSize,height:safeDotSize,borderRadius:dotShape===\"square\"?Math.max(1,safeDotSize*.25):999,background:isActive?dotActiveColor:dotInactiveColor,transform:`scale(${scale})`,opacity:scale===0?0:1}})},index);})})})}),/*#__PURE__*/_jsx(\"span\",{\"aria-live\":\"polite\",style:{position:\"absolute\",width:1,height:1,overflow:\"hidden\",clip:\"rect(0 0 0 0)\",whiteSpace:\"nowrap\"},children:`Image ${activeIndex+1} of ${count}`})]});}addPropertyControls(Swwwipe,{Images:{type:ControlType.Array,title:\"Images\",defaultValue:[{alt:\"Image 1\"},{alt:\"Image 2\"},{alt:\"Image 3\"}],control:{type:ControlType.Object,controls:{image:{type:ControlType.ResponsiveImage,title:\"Image\"},alt:{type:ControlType.String,title:\"Alt\",defaultValue:\"\"}}},maxCount:12},aspectRatio:{type:ControlType.Enum,title:\"Aspect Ratio\",options:[\"1:1\",\"4:5\",\"16:9\"],optionTitles:[\"1:1\",\"4:5\",\"16:9\"],defaultValue:\"1:1\"},objectFit:{type:ControlType.Enum,title:\"Fit\",options:[\"cover\",\"contain\"],optionTitles:[\"Fill\",\"Fit\"],defaultValue:\"cover\",displaySegmentedControl:true},slideGap:{type:ControlType.Number,title:\"Slide Gap\",description:\"Space revealed between slides while swiping.\",defaultValue:0,min:0,max:64,step:1,unit:\"px\"},borderRadius:{type:ControlType.Number,title:\"Slide Radius\",defaultValue:16,min:0,max:64,step:1,unit:\"px\"},mediaBackground:{type:ControlType.Color,title:\"Media BG\",defaultValue:\"#F5F5F5\"},showArrows:{type:ControlType.Boolean,title:\"Arrows\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},hideArrowsBelow:{type:ControlType.Number,title:\"Hide Below\",description:\"Collapses the arrows when the carousel is narrower than this. Set to 0 to always show them.\",defaultValue:520,min:0,max:900,step:10,unit:\"px\",hidden:props=>!props.showArrows},gutter:{type:ControlType.Number,title:\"Arrow Gutter\",defaultValue:56,min:44,max:120,step:1,hidden:props=>!props.showArrows},arrowGap:{type:ControlType.Number,title:\"Arrow Gap\",description:\"Space between each arrow and the edge of the slide.\",defaultValue:12,min:0,max:64,step:1,unit:\"px\",hidden:props=>!props.showArrows},arrowColor:{type:ControlType.Color,title:\"Arrow\",defaultValue:\"#000000\",hidden:props=>!props.showArrows},arrowBackground:{type:ControlType.Color,title:\"Arrow BG\",defaultValue:\"#FFFFFF\",hidden:props=>!props.showArrows},arrowDisabledOpacity:{type:ControlType.Number,title:\"Arrow Off\",defaultValue:.35,min:.1,max:1,step:.05,hidden:props=>!props.showArrows},showDots:{type:ControlType.Boolean,title:\"Dots\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},dotShape:{type:ControlType.Enum,title:\"Dot Shape\",options:[\"circle\",\"square\"],optionTitles:[\"Circle\",\"Square\"],defaultValue:\"circle\",displaySegmentedControl:true,hidden:props=>!props.showDots},dotSize:{type:ControlType.Number,title:\"Dot Size\",defaultValue:8,min:4,max:24,step:1,unit:\"px\",hidden:props=>!props.showDots},dotSpacing:{type:ControlType.Number,title:\"Dot Spacing\",defaultValue:8,min:0,max:32,step:1,unit:\"px\",hidden:props=>!props.showDots},maxDots:{type:ControlType.Number,title:\"Max Dots\",description:\"How many dots stay visible. Beyond this the strip slides and the edge dots shrink.\",defaultValue:5,min:3,max:12,step:1,hidden:props=>!props.showDots},dotEdgeScale:{type:ControlType.Number,title:\"Edge Dot\",description:\"Size of a dot at the edge of the window when more slides remain in that direction.\",defaultValue:.5,min:.2,max:1,step:.05,hidden:props=>!props.showDots},dotActiveColor:{type:ControlType.Color,title:\"Dot Active\",defaultValue:\"#000000\",hidden:props=>!props.showDots},dotInactiveColor:{type:ControlType.Color,title:\"Dot Inactive\",defaultValue:\"#CCCCCC\",hidden:props=>!props.showDots},transitionDuration:{type:ControlType.Number,title:\"Transition\",description:\"Used for arrow and dot navigation. Swipes settle at the speed of the gesture, capped at this value.\",defaultValue:320,min:120,max:1e3,step:10,unit:\"ms\"},draggable:{type:ControlType.Boolean,title:\"Draggable\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},maxWidth:{type:ControlType.Number,title:\"Max Width\",defaultValue:720,min:220,max:1440,step:10}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Swwwipe\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"auto\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ImageCarousel.map"],"mappings":"2OAgCyU,SAAS,EAAQ,CAAC,OAAK,QAAM,CAAC,OAAoB,EAAK,MAAM,CAAC,MAAM,EAAK,OAAO,EAAK,QAAQ,YAAY,KAAK,OAAO,cAAc,OAAO,UAAU,QAAQ,MAAM,CAAC,QAAQ,QAAQ,UAAU,EAAK,aAAa,IAAA,EAAS,EAAE,SAAsB,EAAK,OAAO,CAAC,EAAE,0BAA0B,OAAO,eAAe,YAAY,EAAE,cAAc,QAAQ,eAAe,OAAO,CAAC,CAAC,CAAC,CAAE,CAEvrB,SAAS,GAAW,EAAK,CAAC,GAAG,CAAC,IAAM,EAAM,EAAO,iBAAiB,CAAI,CAAC,CAAC,UAAU,GAAG,CAAC,GAAO,IAAQ,OAAO,MAAO,GAAE,IAAM,EAAO,EAAO,mBAAmB,EAAO,gBAAoC,OAAhB,GAAuB,IAAI,EAAO,CAAK,CAAC,CAAC,KAA3B,CAAkC,MAAM,CAAC,MAAO,EAAE,CAAC,CAGrP,SAAwB,EAAQ,EAAM,CAAC,GAAK,CAAC,SAAO,SAAO,cAAY,YAAU,WAAS,eAAa,kBAAgB,aAAW,kBAAgB,UAAO,YAAS,cAAW,mBAAgB,wBAAqB,YAAS,WAAQ,cAAW,YAAS,WAAQ,eAAa,kBAAe,oBAAiB,sBAAmB,YAAU,YAAS,UAAO,EAAY,GAAS,GAAoB,EAAQ,EAAMA,EAAM,EAAQ,EAAMC,MAAY,aAAa,EAAM,QAAQ,gBAAgB,EAAE,IAAI,CAAC,CAAK,CAAC,EAAO,CAAC,GAAQ,GAAYC,EAAS,CAAC,EAAO,CAAC,GAAc,IAAkBA,EAAS,EAAK,EAAQ,EAASC,EAAO,IAAI,EAAQ,EAAWA,EAAO,CAAC,EAAQ,EAAWA,EAAO,EAAK,EAEvpB,EAAUA,EAAO,IAAI,EAAQ,EAAQA,EAAO,CAAC,OAAO,GAAM,UAAU,GAAG,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,OAAO,KAAK,CAAC,CAAC,EAAQ,EAAWA,EAAO,CAAC,CAAC,EAAQ,GAAMF,MAAgB,IAAc,MAAY,QAAW,IAAc,OAAa,SAAe,QAAU,CAAC,CAAW,CAAC,EAAQ,EAAOA,MAAY,CAAC,IAAM,GAAQ,GAAQ,GAAQ,CAAC,EAAA,CAAG,OAAO,OAAO,EAA+C,OAAlC,EAAO,OAAO,EAAE,EAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAA,CAAc,KAAK,EAAK,IAAQ,CAAC,IAAM,EAAS,EAAe,EAAM,EAAe,QAAQ,MAAM,CAAC,IAAI,EAAK,OAAO,KAAK,EAAS,IAAI,OAAO,EAAK,OAAO,OAAO,IAAI,EAAK,KAAK,EAAK,OAAO,KAAK,EAAS,GAAG,CAAE,CAAC,CAAE,EAAE,CAAC,EAAO,CAAM,CAAC,EAAQ,EAAM,EAAO,OAAa,EAAQ,KAAK,IAAI,EAAE,CAAQ,EAAQ,EAAY,KAAK,IAAI,EAAE,EAAO,EAAQ,EAAa,KAAK,IAAI,IAAI,EAAkB,EAAQ,EAAU,KAAK,IAAI,GAAG,EAAM,EAAQ,EAAQ,CAAC,IAAU,CAAC,GAAoB,GAAUA,MAAY,CAAC,GAAG,CAAC,GAAY,GAAiB,EAAE,MAAM,GAAG,IAAM,EAAS;OACn7B,EAAM;OACN,EAAM,8DAA8D,MAAM;GAC9E,EAAM,kDAAkD,EAAM;aACpD,EAAM,eAAe,EAAgB,OAAO,EAAS;;;yBAGzC,EAAgB,OAAO,EAAS;;;CAGvD,EAAE,CAAC,EAAgB,EAAM,CAAU,CAAC,EAAE,MAAc,CAAC,EAAW,GAAO,KAAK,IAAI,KAAK,IAAI,EAAE,CAAK,EAAE,EAAM,CAAC,CAAC,CAAE,EAAE,CAAC,CAAK,CAAC,EAAE,MAAc,CAAC,GAAU,IAAS,QAAa,CAAC,EAAO,WAAW,OAAO,IAAM,EAAM,EAAO,WAAW,kCAAkC,EAAQ,MAAW,GAAiB,EAAM,OAAO,EAAqD,OAAnD,EAAO,EAAE,EAAM,mBAAmB,SAAS,CAAM,MAAY,EAAM,sBAAsB,SAAS,CAAM,CAAE,EAAE,CAAC,CAAC,EAAE,IAAM,EAAY,KAAK,IAAI,KAAK,IAAI,EAAE,EAAO,EAAE,EAAM,CAAC,EAAQ,EAAc,EAAY,EAAQ,EAAU,EAAY,EAAM,EAE3hB,EAAcG,GAAa,EAAM,EAAG,IAAW,CAAC,IAAM,EAAK,EAAS,QAAY,IAAY,EAAK,MAAM,WAAW,EAAS,EAAE,aAAa,EAAS,KAAK,IAAS,OAAO,EAAK,MAAM,UAAU,oBAAoB,CAAC,EAAM,IAAI,MAAM,EAAM,EAAQ,OAAO,EAAG,YAAY,EAAE,CAAC,CAAO,CAAC,EAAE,MAAc,CAAC,EAAW,QAAQ,EAAY,IAAM,EAAU,EAAU,QAAQ,EAAU,QAAQ,KAAK,IAAM,EAAS,CAAC,EAAW,SAAS,CAAC,EAAQ,EAAE,GAAW,EAAa,EAAc,EAAY,EAAE,CAAQ,EAAE,EAAW,QAAQ,EAAK,EAAE,CAAC,EAAY,EAAQ,EAAc,EAAa,CAAO,CAAC,EAAE,IAAM,EAAUA,EAAY,GAAW,CAAC,IAAM,EAAQ,KAAK,IAAI,KAAK,IAAI,EAAE,CAAS,EAAE,EAAM,CAAC,EAAK,IAAU,EAAW,SAAe,EAAW,CAAO,CAAE,EAAE,CAAC,CAAK,CAAC,EAAQ,EAAeA,EAAY,GAAW,EAAU,EAAW,QAAQ,CAAS,EAAE,CAAC,CAAS,CAAC,EAAQ,GAAcA,EAAY,GAAO,CAA+B,GAA3B,CAAC,GAAW,EAAM,GAAY,EAAM,cAAc,SAAS,EAAM,SAAS,EAAE,OAAO,IAAM,EAAK,EAAM,cAAoB,EAAM,EAAS,QAAc,GAAM,EAAK,aAAa,GAAG,EAEt/B,GAAhC,EAAM,GAAW,CAAK,EAAE,GAAwB,EAAW,QAAQ,EAAK,EAAQ,QAAQ,CAAC,OAAO,GAAK,UAAU,EAAM,UAAU,OAAO,EAAM,QAAQ,OAAO,EAAM,QAAQ,aAAW,GAAG,EAAW,KAAK,OAAO,MAAI,EAAE,EAAW,QAAQ,CAAC,CAAC,EAAE,EAAM,QAAQ,EAAE,EAAM,SAAS,CAAC,EAAE,EAAK,oBAAoB,EAAM,SAAS,EAAE,EAAc,EAAW,QAAQ,EAAW,CAAC,CAAE,EAAE,CAAC,EAAc,EAAM,EAAU,CAAO,CAAC,EAAQ,GAAcA,EAAY,GAAO,CAAC,IAAM,EAAK,EAAQ,QAAQ,GAAG,CAAC,EAAK,QAAQ,EAAK,YAAY,EAAM,UAAU,OAAO,IAAM,EAAO,EAAM,QAAQ,EAAK,OAAa,EAAO,EAAM,QAAQ,EAAK,OAE/lB,GAAG,EAAK,OAAO,OAAO,CAAC,GAAG,KAAK,IAAI,CAAM,EAAE,GAAG,KAAK,IAAI,CAAM,EAAE,EAAE,OAAO,EAAK,KAAK,KAAK,IAAI,CAAM,EAAE,KAAK,IAAI,CAAM,EAAE,IAAI,GAAI,CAAC,GAAG,EAAK,OAAO,IAAI,OAAO,IAAM,EAAQ,EAAW,QAAQ,EAAQ,KAAK,CAAC,EAAE,EAAM,QAAQ,EAAE,EAAM,SAAS,CAAC,EAAK,EAAQ,OAAO,GAAE,EAAQ,MAAM,EAAE,IAAI,EAAO,EAAK,WAAW,EAAa,EAAI,EAAE,EAAM,EAAE,EAAW,SAAS,EAAK,KAAW,EAAI,EAAW,QAAQ,EAAK,KAAQ,EAAO,IAAI,EAAO,GAAK,EAAO,GAAK,GAAmB,EAAO,IAAI,EAAO,GAAK,EAAO,GAAK,GAAgB,EAAK,GAAG,EAAO,EAAc,EAAW,QAAQ,EAAO,CAAC,CAAE,EAAE,CAAC,EAAc,CAAK,CAAC,EAAQ,EAAQA,EAAY,GAAO,CAAC,IAAM,EAAK,EAAQ,QAAgJ,GAArI,CAAC,EAAK,QAAQ,EAAK,YAAY,EAAM,YAAiB,EAAK,OAAO,GAAM,EAAM,cAAc,wBAAwB,EAAM,SAAS,EAAK,EAAK,OAAO,KAAI,OAAO,IAAM,EAAQ,EAAW,QAAc,EAAM,EAAQ,GAAS,EAAK,EAAQ,EAAQ,OAAO,GAAS,EAAQ,GAAM,EAAM,EAAK,EAAE,EAAM,EAAE,EAAQ,EAAS,EAAQ,GAAG,EAAK,EAAE,EAAM,GAAG,EAAQ,EAAQ,EAAM,EAAW,QAAY,EAAO,EAAS,KAAK,IAAI,CAAQ,EAAE,EAAgB,EAAO,GAAO,EAAS,EAAE,EAAE,IAAa,KAAK,IAAI,EAAK,EAAE,EAAE,EAAK,KAAK,KAAoB,EAAO,GAAO,EAAK,GAAG,EAAE,EAAE,KAAK,EAAO,KAAK,IAAI,KAAK,IAAI,EAAE,CAAM,EAAE,EAAM,CAAC,EAE1tC,IAAM,EAAU,KAAK,KAAK,EAAM,GAAQ,EAAK,KAAK,EAAK,EAAE,EAAoD,EAAS,KAAK,MAAM,KAAK,IAAI,EAAa,KAAK,IAAI,IAAI,EAA7F,KAAK,IAAI,GAAG,KAAK,IAAI,CAAQ,CAA8E,CAAC,CAAC,CAAC,EAAK,IAAS,EAAO,EAAc,EAAM,EAAE,EAAQ,EAAS,CAAC,GAAQ,EAAU,QAAQ,EAAS,EAAW,CAAM,GAAG,EAAK,GAAG,EAAE,EAAK,KAAK,OAAO,EAAW,QAAQ,CAAC,CAAE,EAAE,CAAC,EAAQ,EAAc,EAAM,CAAY,CAAC,EAAQ,GAAUA,EAAY,GAAO,CAAI,EAAM,MAAM,cAAa,EAAM,eAAe,EAAE,EAAe,EAAE,GAAM,EAAM,MAAM,eAAc,EAAM,eAAe,EAAE,EAAe,CAAC,EAAG,EAAE,CAAC,CAAc,CAAC,EAItkB,EAAQ,EAAY,KAAK,IAAI,EAAE,EAAU,EAAQ,EAAW,KAAK,IAAI,EAAE,KAAK,IAAI,KAAK,MAAM,EAAO,EAAE,CAAK,CAAC,EAAQ,EAAY,KAAK,IAAI,KAAK,IAAI,EAAE,EAAY,KAAK,MAAM,EAAW,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE,EAAM,CAAU,CAAC,EAAQ,EAAU,EAAY,EAAW,EAAQ,GAASA,EAAY,GAAW,EAAM,GAAa,EAAM,EAAiB,EAAK,IAAQ,GAAa,EAAY,GAAyB,IAAQ,GAAW,EAAU,EAAM,EAAS,EAAoB,EAAI,CAAC,EAAM,EAAa,EAAU,CAAW,CAAC,EAAQ,GAAW,IAAU,CAAC,MAAM,EAAU,OAAO,EAAU,QAAQ,OAAO,WAAW,SAAS,eAAe,SAAS,YAAY,SAAS,QAAQ,EAAE,OAAO,OAAO,aAAa,IAAI,WAAW,GAAgB,MAAM,GAAW,OAAO,EAAQ,UAAU,UAAU,QAAQ,EAAQ,EAAE,GAAqB,wBAAwB,aAAa,GAAG,OAAoB,EAAM,MAAM,CAAC,UAAU,EAAM,MAAM,CAAC,SAAS,WAAW,MAAM,OAAO,YAAS,aAAa,OAAO,QAAQ,OAAO,cAAc,SAAS,IAAI,GAAG,GAAG,EAAK,EAAE,SAAS,CAAc,EAAK,QAAQ,CAAC,SAAS,EAAa,EAAS,CAAC,EAAe,EAAM,MAAM,CAAC,UAAU,kBAAkB,cAAc,EAAW,OAAO,QAAQ,KAAK,QAAQ,uBAAuB,WAAW,aAAa,iBAAiB,MAAM,CAAC,cAAc,GAAG,EAAU,IAAI,iBAAiB,GAAG,KAAK,IAAI,EAAE,EAAQ,EAAE,GAAG,EAAE,SAAS,CAAC,GAAyB,EAAK,SAAS,CAAC,KAAK,SAAS,UAAU,kBAAkB,aAAa,iBAAiB,YAAY,EAAe,EAAE,EAAE,SAAS,CAAC,EAAc,MAAM,GAAW,CAAa,EAAE,SAAsB,EAAK,EAAQ,CAAC,KAAK,EAAU,IAAI,KAAK,EAAI,CAAC,CAAC,CAAC,EAAe,EAAK,MAAM,CAAC,UAAU,qBAAqB,SAAS,EAAY,aAAwB,iBAA4B,iBAAc,YAAY,EAAQ,gBAAgB,EAAQ,MAAM,CAAC,SAAS,WAAW,MAAM,OAAO,YAAY,GAAM,eAAa,SAAS,SAAS,WAAW,EAAgB,YAAY,EAAU,mBAAmB,OAAO,WAAW,OAAO,iBAAiB,OAAO,wBAAwB,cAAc,OAAO,GAAW,EAAM,EAAE,OAAO,SAAS,EAAE,SAAsB,EAAK,MAAM,CAAC,IAAI,EAAS,UAAU,kBAAkB,MAAM,CAAC,QAAQ,OAAO,IAAI,EAAQ,MAAM,OAAO,OAAO,OAAO,WAAW,WAAW,EAAE,SAAS,EAAO,KAAK,EAAM,IAAqB,EAAK,MAAM,CAAC,KAAK,QAAQ,uBAAuB,QAAQ,aAAa,GAAG,EAAM,EAAE,MAAM,IAAQ,cAAc,IAAQ,EAAY,MAAM,CAAC,SAAS,WAAW,KAAK,WAAW,MAAM,OAAO,OAAO,OAAO,eAAa,SAAS,SAAS,WAAW,CAAe,EAAE,SAAsB,EAAK,MAAM,CAAC,IAAI,EAAM,IAAI,OAAO,EAAM,OAAO,IAAI,EAAM,KAAK,GAAG,UAAU,GAAM,SAAS,QAAQ,QAAQ,KAAK,IAAI,EAAM,CAAW,GAAG,EAAE,QAAQ,OAAO,MAAM,CAAC,QAAQ,QAAQ,MAAM,OAAO,OAAO,OAAO,YAAU,cAAc,MAAM,CAAC,CAAC,CAAC,EAAE,CAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAyB,EAAK,SAAS,CAAC,KAAK,SAAS,UAAU,kBAAkB,aAAa,aAAa,YAAY,EAAe,CAAC,EAAE,SAAS,CAAC,EAAU,MAAM,GAAW,CAAS,EAAE,SAAsB,EAAK,EAAQ,CAAC,KAAK,EAAU,IAAI,KAAK,EAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAU,EAAM,GAAgB,EAAK,MAAM,CAAC,MAAM,CAAC,QAAQ,OAAO,eAAe,SAAS,WAAW,QAAQ,EAAE,SAAsB,EAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAW,EAAQ,SAAS,QAAQ,EAAE,SAAsB,EAAK,MAAM,CAAC,UAAU,sBAAsB,MAAM,CAAC,QAAQ,OAAO,WAAW,SAAS,UAAU,eAAe,CAAC,EAAY,EAAQ,WAAW,WAAW,EAAQ,mBAAmB,IAAS,MAAM,EAAE,SAAS,EAAO,KAAK,EAAM,IAAQ,CAAC,IAAM,EAAS,IAAQ,EAAkB,EAAM,GAAS,CAAK,EAAE,OAAoB,EAAK,SAAS,CAAC,KAAK,SAAS,UAAU,gBAAgB,aAAa,eAAe,EAAM,IAAI,eAAe,EAAS,SAAS,IAAQ,EAAE,GAAG,EAAE,YAAY,EAAU,CAAK,EAAE,MAAM,CAAC,KAAK,OAAO,EAAQ,IAAI,MAAM,EAAQ,OAAO,KAAK,IAAI,GAAG,CAAO,EAAE,QAAQ,OAAO,WAAW,SAAS,QAAQ,EAAE,OAAO,OAAO,WAAW,cAAc,OAAO,EAAS,UAAU,UAAU,wBAAwB,aAAa,EAAE,SAAsB,EAAK,OAAO,CAAC,MAAM,CAAC,QAAQ,QAAQ,MAAM,EAAY,OAAO,EAAY,aAAa,KAAW,SAAS,KAAK,IAAI,EAAE,EAAY,GAAG,EAAE,IAAI,WAAW,EAAS,GAAe,GAAiB,UAAU,SAAS,EAAM,GAAG,QAAQ,IAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAK,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAe,EAAK,OAAO,CAAC,YAAY,SAAS,MAAM,CAAC,SAAS,WAAW,MAAM,EAAE,OAAO,EAAE,SAAS,SAAS,KAAK,gBAAgB,WAAW,QAAQ,EAAE,SAAS,SAAS,EAAY,EAAE,MAAM,GAAO,CAAC,CAAC,CAAC,CAAC,CAAE,kCA7Dn3I,IAAuE,IAAwE,EACjM,GAAmB,GACnB,EAAe,IACf,EAAgB,IAAU,EAAO,iCAAuC,EAAa;;;;;;;;;;;;;;kCAczD,EAAO;;;;;;;;;;;;;;;EAejC,EAAe,CAAC,CAAC,IAAI,sEAAsE,IAAI,oBAAoB,EAAE,CAAC,IAAI,oEAAoE,IAAI,qBAAqB,EAAE,CAAC,IAAI,uEAAuE,IAAI,qBAAqB,CAAC,EA6BqmI,EAAoB,EAAQ,CAAC,OAAO,CAAC,KAAK,EAAY,MAAM,MAAM,SAAS,aAAa,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC,IAAI,SAAS,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAY,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,EAAY,gBAAgB,MAAM,OAAO,EAAE,IAAI,CAAC,KAAK,EAAY,OAAO,MAAM,MAAM,aAAa,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,YAAY,CAAC,KAAK,EAAY,KAAK,MAAM,eAAe,QAAQ,CAAC,MAAM,MAAM,MAAM,EAAE,aAAa,CAAC,MAAM,MAAM,MAAM,EAAE,aAAa,KAAK,EAAE,UAAU,CAAC,KAAK,EAAY,KAAK,MAAM,MAAM,QAAQ,CAAC,QAAQ,SAAS,EAAE,aAAa,CAAC,OAAO,KAAK,EAAE,aAAa,QAAQ,wBAAwB,EAAI,EAAE,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,YAAY,+CAA+C,aAAa,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,KAAK,IAAI,EAAE,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,eAAe,aAAa,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,KAAK,IAAI,EAAE,gBAAgB,CAAC,KAAK,EAAY,MAAM,MAAM,WAAW,aAAa,SAAS,EAAE,WAAW,CAAC,KAAK,EAAY,QAAQ,MAAM,SAAS,aAAa,GAAK,aAAa,OAAO,cAAc,MAAM,EAAE,gBAAgB,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,YAAY,8FAA8F,aAAa,IAAI,IAAI,EAAE,IAAI,IAAI,KAAK,GAAG,KAAK,KAAK,OAAO,GAAO,CAAC,EAAM,UAAU,EAAE,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,eAAe,aAAa,GAAG,IAAI,GAAG,IAAI,IAAI,KAAK,EAAE,OAAO,GAAO,CAAC,EAAM,UAAU,EAAE,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,YAAY,sDAAsD,aAAa,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,KAAK,KAAK,OAAO,GAAO,CAAC,EAAM,UAAU,EAAE,WAAW,CAAC,KAAK,EAAY,MAAM,MAAM,QAAQ,aAAa,UAAU,OAAO,GAAO,CAAC,EAAM,UAAU,EAAE,gBAAgB,CAAC,KAAK,EAAY,MAAM,MAAM,WAAW,aAAa,UAAU,OAAO,GAAO,CAAC,EAAM,UAAU,EAAE,qBAAqB,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,aAAa,IAAI,IAAI,GAAG,IAAI,EAAE,KAAK,IAAI,OAAO,GAAO,CAAC,EAAM,UAAU,EAAE,SAAS,CAAC,KAAK,EAAY,QAAQ,MAAM,OAAO,aAAa,GAAK,aAAa,OAAO,cAAc,MAAM,EAAE,SAAS,CAAC,KAAK,EAAY,KAAK,MAAM,YAAY,QAAQ,CAAC,SAAS,QAAQ,EAAE,aAAa,CAAC,SAAS,QAAQ,EAAE,aAAa,SAAS,wBAAwB,GAAK,OAAO,GAAO,CAAC,EAAM,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,aAAa,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,KAAK,KAAK,OAAO,GAAO,CAAC,EAAM,QAAQ,EAAE,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,aAAa,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,KAAK,KAAK,OAAO,GAAO,CAAC,EAAM,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,YAAY,qFAAqF,aAAa,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,OAAO,GAAO,CAAC,EAAM,QAAQ,EAAE,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,YAAY,qFAAqF,aAAa,GAAG,IAAI,GAAG,IAAI,EAAE,KAAK,IAAI,OAAO,GAAO,CAAC,EAAM,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,UAAU,OAAO,GAAO,CAAC,EAAM,QAAQ,EAAE,iBAAiB,CAAC,KAAK,EAAY,MAAM,MAAM,eAAe,aAAa,UAAU,OAAO,GAAO,CAAC,EAAM,QAAQ,EAAE,mBAAmB,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,YAAY,sGAAsG,aAAa,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,GAAG,KAAK,IAAI,EAAE,UAAU,CAAC,KAAK,EAAY,QAAQ,MAAM,YAAY,aAAa,GAAK,aAAa,KAAK,cAAc,KAAK,EAAE,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,aAAa,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC"}