{"version":3,"file":"StaggeredTextCycle_Prod.CuAtdffU.mjs","names":["useRef","useCallback","useState","useMemo","useRef","Children","useState","useCallback","end","start","startTransition","isSelected","dotStyle","useState","_Fragment"],"sources":["https:/framerusercontent.com/modules/lRDHiNWNVWmE0lqtoVHP/7qT0r3So12155VV5Jq5x/Video.js","https:/ga.jspm.io/npm:@motionone/utils@10.12.0/dist/index.es.js","https:/framerusercontent.com/modules/UIrMjSS6ZX89L0CsT8k6/zmbFgJVc8YCf1HAWjlM4/Carousel.js","https:/framerusercontent.com/modules/4lPJUInr9BbZwDYdxSgD/MtDBVuDoZ2YXDgn8MBbB/StaggeredTextCycle_Prod.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,useIsInCurrentNavigationTarget,RenderTarget}from\"framer\";import{isMotionValue,useInView}from\"framer-motion\";import{borderRadiusControl,defaultEvents,useIsBrowserSafari,useIsOnCanvas,useOnEnter,useOnExit,useRadius,useRenderTarget}from\"https://framerusercontent.com/modules/G4IfyjvwmaeSBpdb4TWu/OIjZRBmWDcIE2B6qgG1j/index.js\";// https://framer.com/m/framer/default-utils.js@^0.45.0\nimport{memo,useCallback,useEffect,useMemo,useRef,useState}from\"react\";var ObjectFitType;(function(ObjectFitType){ObjectFitType[\"Fill\"]=\"fill\";ObjectFitType[\"Contain\"]=\"contain\";ObjectFitType[\"Cover\"]=\"cover\";ObjectFitType[\"None\"]=\"none\";ObjectFitType[\"ScaleDown\"]=\"scale-down\";})(ObjectFitType||(ObjectFitType={}));var SrcType;(function(SrcType){SrcType[\"Video\"]=\"Upload\";SrcType[\"Url\"]=\"URL\";})(SrcType||(SrcType={}));const defaultVideo=\"https://framerusercontent.com/assets/MLWPbW1dUQawJLhhun3dBwpgJak.mp4\";// Reduce renders\nfunction getProps(props){const{width,height,topLeft,topRight,bottomRight,bottomLeft,id,children,...rest}=props;return rest;}/**\n * VIDEO\n *\n * @framerIntrinsicWidth 200\n * @framerIntrinsicHeight 112\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export function Video(props){const newProps=getProps(props);return /*#__PURE__*/_jsx(VideoMemo,{...newProps});}function usePlaybackControls(videoRef){const isInCurrentNavigationTarget=useIsInCurrentNavigationTarget();const requestingPlay=useRef(false);const isPlayingRef=useRef(false);const setProgress=useCallback(rawProgress=>{if(!videoRef.current)return;const newProgress=(rawProgress===1?.999:rawProgress)*videoRef.current.duration;const isAlreadySet=Math.abs(videoRef.current.currentTime-newProgress)<.1;if(videoRef.current.duration>0&&!isAlreadySet){videoRef.current.currentTime=newProgress;}},[]);const play=useCallback(()=>{const video=videoRef.current;if(!video)return;video.preload=\"auto\"// makes sure browsers don't throttle: https://html.spec.whatwg.org/multipage/media.html#:~:text=When%20the%20media%20resource%20is%20playing%2C%20hints%20to%20the%20user%20agent%20that%20bandwidth%20is%20to%20be%20considered%20scarce%2C%20e.g.%20suggesting%20throttling%20the%20download%20so%20that%20the%20media%20data%20is%20obtained%20at%20the%20slowest%20possible%20rate%20that%20still%20maintains%20consistent%20playback.\n;const isPlaying=video.currentTime>0&&video.onplaying&&!video.paused&&!video.ended&&video.readyState>=video.HAVE_CURRENT_DATA;if(!isPlaying&&video&&!requestingPlay.current&&isInCurrentNavigationTarget){requestingPlay.current=true;isPlayingRef.current=true;video.play().catch(e=>{})// It's likely fine, swallow error\n.finally(()=>requestingPlay.current=false);}},[]);const pause=useCallback(()=>{if(!videoRef.current||requestingPlay.current)return;videoRef.current.pause();isPlayingRef.current=false;},[]);return{play,pause,setProgress,isPlaying:isPlayingRef};}function useAutoplayBehavior({playingProp,muted,loop,playsinline,controls}){const[initialPlayingProp]=useState(()=>playingProp);const[hasPlayingPropChanged,setHasPlayingPropChanged]=useState(false);if(playingProp!==initialPlayingProp&&!hasPlayingPropChanged){setHasPlayingPropChanged(true);}const behavesAsGif=// passing `playing === true` on mount indicates that the video should\n// autoplay, like a GIF\ninitialPlayingProp&&muted&&loop&&playsinline&&!controls&&// Some users of the <Video> component use it by wrapping it with\n// another smart component and adding their own controls on top. (The\n// controls use transitions to control the video: e.g., when clicking\n// the play button, the smart component will transition to a state with\n// <Video playing={true} />.) In this case, we don't want the video to\n// behave as a gif, as it will be weird if the video suddenly started\n// acting as such (and auto-pausing when leaving the viewport) as soon\n// as the site visitor mutes it and clicks “Play”.\n!hasPlayingPropChanged;let autoplay;if(behavesAsGif)autoplay=\"on-viewport\";else if(initialPlayingProp)autoplay=\"on-mount\";else autoplay=\"no-autoplay\";return autoplay;}const VideoMemo=/*#__PURE__*/memo(function VideoInner(props){const{// default props\nsrcType=\"URL\",srcUrl,srcFile=\"\",posterEnabled=false,controls=false,playing=true,loop=true,muted=true,playsinline=true,restartOnEnter=false,objectFit=\"cover\",backgroundColor=\"rgba(0,0,0,0)\",radius=0,volume=25,startTime:startTimeProp=0,poster,playing:playingProp,progress,onSeeked,onPause,onPlay,onEnd,onClick,onMouseEnter,onMouseLeave,onMouseDown,onMouseUp}=props;const videoRef=useRef();const isSafari=useIsBrowserSafari();const wasPausedOnLeave=useRef(null);const wasEndedOnLeave=useRef(null);const isOnCanvas=useIsOnCanvas();const renderTarget=useRenderTarget();const isStaticRenderer=isOnCanvas||renderTarget===RenderTarget.export;const borderRadius=useRadius(props);// Hard-coding `autoplayBehavior` and `isInViewport` when on canvas as a\n// tiny perf optimization. isStaticRenderer won’t change through the lifecycle of\n// the component, so using these hooks conditionally should be safe\nconst autoplayBehavior=isStaticRenderer?\"no-autoplay\":useAutoplayBehavior({playingProp,muted,loop,playsinline,controls});const isInViewport=isStaticRenderer?true:useInView(videoRef);const isCloseToViewport=isStaticRenderer?false:useInView(videoRef,{margin:\"10%\",once:true});// Video elements behave oddly at 100% duration\nconst startTime=startTimeProp===100?99.9:startTimeProp;const{play,pause,setProgress,isPlaying}=usePlaybackControls(videoRef);// Pause/play via props\nuseEffect(()=>{if(isStaticRenderer)return;if(autoplayBehavior===\"on-viewport\")return;if(playingProp)play();else pause();},[autoplayBehavior,playingProp]);// Pause/play via viewport\nuseEffect(()=>{if(isStaticRenderer)return;// this also explicitly retries playing for videos that play on-mount, which could fail if they're not muted for example\nif(isInViewport&&playingProp&&autoplayBehavior!==\"no-autoplay\")play();if(autoplayBehavior!==\"on-viewport\")return;pause();},[autoplayBehavior,isInViewport,playingProp]);useEffect(()=>{if(!isOnCanvas||poster||posterEnabled||startTime||!videoRef.current)return;// forces a poster to show up when the video is in an iframe; this is needed when `poster` changes\nvideoRef.current.currentTime=.01;},[posterEnabled,poster,startTime]);/**\n     * The Video component has some effects that sync the video element with props\n     * like `startTime`, `progress`, etc. React calls these effects whenever these\n     * props change. However, it also calls them on the first mount, and this is\n     * troublesome – if we’re doing SSR, and the user changed the video state before\n     * the video was hydrated, the initial `useEffect` call will reset the video\n     * state. To avoid this, we use this flag.\n     */const isMountedAndReadyForProgressChanges=useRef(false);// Allow scrubbling via progress prop\n// 1) Handle cases when the progress prop itself changes\nuseEffect(()=>{if(!isMountedAndReadyForProgressChanges.current){isMountedAndReadyForProgressChanges.current=true;return;}const rawProgressValue=isMotionValue(progress)?progress.get():(progress??0)*.01;setProgress(// When the progress value exists (e.g. <Video startTime={10}\n// progress={50} />), we respect the `progress` value over\n// `startTime`, even if `startTime` changes. That’s because\n// `startTime` == start == changing it shouldn’t affect the current\n// progress\n(rawProgressValue??0)||// Then why fall back to `startTime` when `progress` doesn’t exist,\n// you might ask? Now, that’s for\n// - canvas UX: we want the video progress to change when the user\n//   is scrobbling the “Start Time” in component settings.\n// - backwards compatibility: maybe some users *are* scrobbling\n//   using `startTime` instead of `progress`? We don’t know, and it\n//   always supported it, so let’s not break it\n(startTime??0)/100);},[startTime,srcFile,srcUrl,progress]);// 2) Handle cases when the motion value inside the progress prop changes\nuseEffect(()=>{if(!isMotionValue(progress))return;return progress.on(\"change\",value=>setProgress(value));},[progress]);// (Prototyping) Checking if we need to play on navigation enter\nuseOnEnter(()=>{if(wasPausedOnLeave.current===null)return;if(videoRef.current){// if (restartOnEnter) setProgress(0)\nif(!wasEndedOnLeave&&loop||!wasPausedOnLeave.current)play();}});// (Prototyping) Pausing & saving playing state on navigation exit\nuseOnExit(()=>{if(videoRef.current){wasEndedOnLeave.current=videoRef.current.ended;wasPausedOnLeave.current=videoRef.current.paused;pause();}});const src=useMemo(()=>{let fragment=\"\";// if (\n//     startTime > 0 &&\n//     videoRef.current &&\n//     !isNaN(videoRef.current.duration) &&\n//     !isStaticRenderer\n// ) {\n//     console.log(startTime, videoRef.current.duration)\n//     fragment = `#t=${startTime * videoRef.current.duration}`\n// }\nif(srcType===\"URL\")return srcUrl+fragment;if(srcType===\"Upload\")return srcFile+fragment;},[srcType,srcFile,srcUrl,startTime]);// Autoplay via JS to work in Safari\nuseEffect(()=>{if(isSafari&&videoRef.current&&autoplayBehavior===\"on-mount\"){setTimeout(()=>play(),50);}},[]);// Volume Control\nuseEffect(()=>{if(videoRef.current&&!muted)videoRef.current.volume=(volume??0)/100;},[volume]);// When video is ready, set start-time, then autoplay if needed\nconst handleReady=()=>{const video=videoRef.current;if(!video)return;if(video.currentTime<.3&&startTime>0)setProgress((startTime??0)*.01);if(// when the component updates (e.g. only srcFile/url changes), and the video was already playing, keep playing\nisPlaying.current||autoplayBehavior===\"on-mount\"||playingProp&&autoplayBehavior===\"on-viewport\"&&isInViewport)play();};return /*#__PURE__*/_jsx(\"video\",{onClick,onMouseEnter,onMouseLeave,onMouseDown,onMouseUp,src:src,loop:loop,ref:videoRef,onSeeked:e=>onSeeked?.(e),onPause:e=>onPause?.(e),onPlay:e=>onPlay?.(e),onEnded:e=>onEnd?.(e),autoPlay:isPlaying.current||autoplayBehavior===\"on-mount\"||playingProp&&autoplayBehavior===\"on-viewport\"&&isInViewport,preload:isPlaying.current?\"auto\":isStaticRenderer&&!poster?\"metadata\":autoplayBehavior!==\"on-mount\"&&!isCloseToViewport?\"none\":// `autoplay` overrides this too\n\"metadata\",poster:posterEnabled&&!srcFile&&srcUrl===defaultVideo?\"https://framerusercontent.com/images/5ILRvlYXf72kHSVHqpa3snGzjU.jpg\":posterEnabled&&poster?poster:undefined,onLoadedData:handleReady,controls:controls,muted:isStaticRenderer?true:muted,playsInline:playsinline,style:{cursor:!!onClick?\"pointer\":\"auto\",width:\"100%\",height:\"100%\",borderRadius,display:\"block\",objectFit:objectFit,backgroundColor:backgroundColor,objectPosition:\"50% 50%\"}});});Video.displayName=\"Video\";function capitalizeFirstLetter(value){return value.charAt(0).toUpperCase()+value.slice(1);}export function titleCase(value){const groups=value.match(/[A-Z]{2,}|[A-Z][a-z]+|[a-z]+|[A-Z]|\\d+/gu)||[];return groups.map(capitalizeFirstLetter).join(\" \");}const objectFitOptions=[\"cover\",\"fill\",\"contain\",\"scale-down\",\"none\"];addPropertyControls(Video,{srcType:{type:ControlType.Enum,displaySegmentedControl:true,title:\"Source\",options:[\"URL\",\"Upload\"]},srcUrl:{type:ControlType.String,title:\"URL\",defaultValue:\"https://framerusercontent.com/assets/MLWPbW1dUQawJLhhun3dBwpgJak.mp4\",hidden(props){return props.srcType===\"Upload\";}},srcFile:{type:ControlType.File,title:\"File\",allowedFileTypes:[\"mp4\",\"webm\"],hidden(props){return props.srcType===\"URL\";}},playing:{type:ControlType.Boolean,title:\"Playing\",enabledTitle:\"Yes\",disabledTitle:\"No\"},...borderRadiusControl,posterEnabled:{type:ControlType.Boolean,title:\"Poster\",enabledTitle:\"Yes\",disabledTitle:\"No\"},poster:{type:ControlType.Image,title:\"Image\",hidden:({posterEnabled})=>!posterEnabled,description:\"We recommend adding a poster. [Learn more](https://www.framer.com/help/articles/how-are-videos-optimized-in-framer/).\"},backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"rgba(0,0,0,0)\"},startTime:{title:\"Start Time\",type:ControlType.Number,min:0,max:100,step:.1,unit:\"%\"},loop:{type:ControlType.Boolean,title:\"Loop\",enabledTitle:\"Yes\",disabledTitle:\"No\"},objectFit:{type:ControlType.Enum,title:\"Fit\",options:objectFitOptions,optionTitles:objectFitOptions.map(titleCase)},// restartOnEnter: {\n//     type: ControlType.Boolean,\n//     title: \"On ReEnter\",\n//     enabledTitle: \"Restart\",\n//     disabledTitle: \"Resume\",\n// },\ncontrols:{type:ControlType.Boolean,title:\"Controls\",enabledTitle:\"Show\",disabledTitle:\"Hide\",defaultValue:false},muted:{type:ControlType.Boolean,title:\"Muted\",enabledTitle:\"Yes\",disabledTitle:\"No\"},volume:{type:ControlType.Number,max:100,min:0,unit:\"%\",hidden:({muted})=>muted,defaultValue:25},onEnd:{type:ControlType.EventHandler},onSeeked:{type:ControlType.EventHandler},onPause:{type:ControlType.EventHandler},onPlay:{type:ControlType.EventHandler},...defaultEvents});\nexport const __FramerMetadata__ = {\"exports\":{\"VideoProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"titleCase\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Video\":{\"type\":\"reactComponent\",\"name\":\"Video\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"112\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerIntrinsicWidth\":\"200\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Video.map","function addUniqueItem(t,e){-1===t.indexOf(e)&&t.push(e)}function removeItem(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}const clamp=(t,e,n)=>Math.min(Math.max(n,t),e);const t={duration:.3,delay:0,endDelay:0,repeat:0,easing:\"ease\"};const isNumber=t=>\"number\"===typeof t;const isString=t=>\"string\"===typeof t;const isEasingGenerator=t=>\"object\"===typeof t&&Boolean(t.createAnimation);const isCubicBezier=t=>Array.isArray(t)&&isNumber(t[0]);const isEasingList=t=>Array.isArray(t)&&!isNumber(t[0]);const wrap=(t,e,n)=>{const o=e-t;return((n-t)%o+o)%o+t};function getEasingForSegment(t,e){return isEasingList(t)?t[wrap(0,t.length,e)]:t}const mix=(t,e,n)=>-n*t+n*e+t;const noop=()=>{};const noopReturn=t=>t;const progress=(t,e,n)=>e-t===0?1:(n-t)/(e-t);function fillOffset(t,e){const n=t[t.length-1];for(let o=1;o<=e;o++){const s=progress(0,e,o);t.push(mix(n,1,s))}}function defaultOffset(t){const e=[0];fillOffset(e,t-1);return e}function interpolate(t,e=defaultOffset(t.length),n=noopReturn){const o=t.length;const s=o-e.length;s>0&&fillOffset(e,s);return s=>{let r=0;for(;r<o-2;r++)if(s<e[r+1])break;let f=clamp(0,1,progress(e[r],e[r+1],s));const c=getEasingForSegment(n,r);f=c(f);return mix(t[r],t[r+1],f)}}const e={ms:t=>1e3*t,s:t=>t/1e3};\n/*\n  Convert velocity into velocity per second\n\n  @param [number]: Unit per frame\n  @param [number]: Frame duration in ms\n*/function velocityPerSecond(t,e){return e?t*(1e3/e):0}export{addUniqueItem,clamp,defaultOffset,t as defaults,fillOffset,getEasingForSegment,interpolate,isCubicBezier,isEasingGenerator,isEasingList,isNumber,isString,mix,noop,noopReturn,progress,removeItem,e as time,velocityPerSecond,wrap};\n\n//# sourceMappingURL=index.es.js.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{Children,useCallback,useEffect,useState,useRef,cloneElement,startTransition}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{scroll,resize}from\"@motionone/dom\";import{clamp}from\"@motionone/utils\";import{animate,motion,useMotionValue,useTransform,useReducedMotion}from\"framer-motion\";import{usePadding,paddingControl}from\"https://framer.com/m/framer/default-utils.js@^0.45.0\";/**\n * Calculate the width of the fade mask. Fade width and inset are provided\n * as percentages. There's a fade on the left and the right, so we return\n * a maximum of 50%.\n */function calcMaskWidth([inset,width]){return inset+(100-inset)*(width/100)*.5;}/**\n * Use media queries to determine if this device uses a mouse as\n * the primary input.\n * TODO: Commented out because of https://framer-team.slack.com/archives/C01B14R6E22/p1745051842676819\n *//*function useIsMouse() {\n    const [isMouseDevice, setIsMouseDevice] = useState(false)\n\n    useLayoutEffect(() => {\n        setIsMouseDevice(window.matchMedia(\"(pointer:fine)\").matches)\n    }, [])\n\n    return isMouseDevice\n}*//**\n * This checks a scroll position against the available scrollable\n * range. If we have hit an edge, start/end, we fade out the pagination\n * controls and mask. Likewise if we've just moved away from an edge we\n * fade them back in.\n */function checkLimit(progress,target,{edgeOpacity,moreItems,buttonRef},transition){if(moreItems.current&&progress===target){moreItems.current=false;animate(edgeOpacity,1,transition);buttonRef.current?.setAttribute(\"disabled\",\"\");}else if(!moreItems.current&&progress!==target){moreItems.current=true;animate(edgeOpacity,0,transition);buttonRef.current?.removeAttribute(\"disabled\");}}function useGUI(initialMoreItems,initialAlpha){const moreItems=useRef(initialMoreItems);const edgeOpacity=useMotionValue(moreItems.current?0:1);const fadeOpacity=useTransform(edgeOpacity,[0,1],[initialAlpha||0,1]);const buttonOpacity=useTransform(edgeOpacity,v=>1-v);const buttonRef=useRef(null);/**\n     * Returns a pointer-events CSS value for a given opacity.\n     * The threshold here is arbitrary, the theory being we\n     * should only enable pointer-events when the button is\n     * somewhat visible.\n     */const pointerEvents=useTransform(buttonOpacity,v=>v>.2?\"auto\":\"none\");/**\n     * Returns a cursor CSS value for a given pointer-events value.\n     * So only indicate\n     */const cursor=useTransform(pointerEvents,v=>v===\"auto\"?\"pointer\":\"default\");const buttonStyle={...baseButtonStyles,opacity:buttonOpacity,pointerEvents,cursor};return{moreItems,fadeOpacity,edgeOpacity,buttonStyle,buttonRef};}function setAriaVisible({element}){element.setAttribute(\"aria-hidden\",false);}function useScrollLimits(container,axis,scrollInfo,updateCurrentScroll,targetScroll,checkLimits,measureItems){useEffect(()=>{if(!container.current)return;const updateScrollInfo=info=>{scrollInfo.current=info[axis];/**\n             * If we've reached our target scroll, delete it.\n             * This way we know when to make calculations based on the\n             * actual current scroll or the target scroll.\n             */if(info[axis].current===targetScroll.current){targetScroll.current=undefined;}updateCurrentScroll(info[axis].current);checkLimits();};const stopScroll=scroll(updateScrollInfo,{container:container.current,axis});const stopResize=resize(container.current,()=>{measureItems();checkLimits();});return()=>{stopScroll();stopResize();};},[checkLimits,measureItems]);}/**\n *\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 200\n *\n * @framerDisableUnlink\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function Carousel({slots,gap,axis,align,sizingObject,fadeObject,arrowObject,snapObject,progressObject,ariaLabel,borderRadius,effectsObject,...props}){// Remove empty slots (such as hidden layers)\nconst filteredSlots=slots?.filter(Boolean);const numItems=Children.count(filteredSlots);const isCanvas=RenderTarget.current()===RenderTarget.canvas;const padding=usePadding(props);const axisLabel=axis?\"x\":\"y\";const{fadeContent,fadeWidth,fadeInset,fadeTransition,fadeAlpha}=fadeObject;const{snap,snapEdge,fluid}=snapObject;const{widthType,widthInset,widthColumns,heightType,heightInset,heightRows}=sizingObject;const{showScrollbar,showProgressDots,dotSize,dotsInset,dotsRadius,dotsPadding,dotsGap,dotsFill,dotsBackground,dotsActiveOpacity,dotsOpacity,dotsBlur}=progressObject;const{showMouseControls,arrowSize,arrowRadius,arrowFill,leftArrow,rightArrow,arrowPadding}=arrowObject;/**\n     * The latest scroll info on the scrollable axis as reported by Motion One.\n     */const scrollInfo=useRef(undefined);/**\n     * The target scroll we're currently animating to, calculated when\n     * a user presses a pagination button.\n     */const targetScroll=useRef(undefined);/**\n     * If we're performing a scroll animation, return the target scroll instead\n     * of the latest scroll position. This will help users paginate through\n     * a carousel much quicker.\n     */const currentScroll=useMotionValue(0);const updateCurrentScroll=newScroll=>{currentScroll.set(targetScroll.current!==undefined?targetScroll.current:newScroll);};/**\n     * We only want to display pagination buttons if the user has enabled the setting\n     * and this is actually a mouse device.\n     * TODO: Commented out because of https://framer-team.slack.com/archives/C01B14R6E22/p1745051842676819\n     *///const isMouseDevice = useIsMouse()\n/**\n     * Create all the motion values for the GUI at each end of the carousel.\n     */const start=useGUI(false,fadeAlpha);const end=useGUI(true,fadeAlpha);const startMaskInset=useMotionValue(fadeInset*.5);const endMaskInset=useTransform(startMaskInset,v=>100-v);const baseWidth=useMotionValue(fadeWidth);const startMaskWidth=useTransform([startMaskInset,baseWidth],calcMaskWidth);const endMaskWidth=useTransform(startMaskWidth,v=>100-v);const direction=useMotionValue(axis?\"right\":\"bottom\");const mask=useTransform([direction,start.fadeOpacity,startMaskInset,startMaskWidth,end.fadeOpacity,endMaskInset,endMaskWidth],latest=>{return`linear-gradient(to ${latest[0]}, rgb(0, 0, 0, ${latest[1]}) ${latest[2]}%, rgb(0, 0, 0, 1) ${latest[3]}%, rgba(0, 0, 0, 1) ${latest[6]}%, rgb(0, 0, 0, ${latest[4]}) ${latest[5]}%)`;});const carouselRef=useRef(null);/**\n     * Dots state\n     */const[numPages,setNumPages]=useState(isCanvas?4:1);/**\n     * Generate styles for components.\n     */const itemStyle={scrollSnapAlign:snapEdge,flexShrink:0};const childStyle={};if(align===\"stretch\"){if(axis){childStyle.height=\"100%\";itemStyle.height=\"auto\";}else{childStyle.width=\"100%\";itemStyle.width=\"auto\";}}if(!fluid){itemStyle.scrollSnapStop=\"always\";}if(widthType===\"stretch\"){itemStyle.width=`calc(100% - ${widthInset||0}px)`;childStyle.width=\"100%\";}else if(widthType===\"columns\"){itemStyle.width=`calc(${100/widthColumns}% - ${gap}px + ${gap/widthColumns}px)`;childStyle.width=\"100%\";}if(heightType===\"stretch\"){itemStyle.height=`calc(100% - ${heightInset||0}px)`;childStyle.height=\"100%\";}else if(heightType===\"rows\"){itemStyle.height=`calc(${100/heightRows}% - ${gap}px + ${gap/heightRows}px)`;childStyle.height=\"100%\";}const scrollOverflow=isCanvas?\"hidden\":\"auto\";const containerStyle={...baseContainerStyle,padding};const carouselStyle={...baseCarouselStyle,gap,alignItems:align,flexDirection:axis?\"row\":\"column\",overflowX:axis?scrollOverflow:\"hidden\",overflowY:axis?\"hidden\":scrollOverflow,scrollSnapType:snap?`${axisLabel} mandatory`:undefined,WebkitOverflowScrolling:\"touch\",WebkitMaskImage:fadeContent?mask:undefined,maskImage:fadeContent?mask:undefined,borderRadius};const carouselA11y={[\"aria-roledescription\"]:\"carousel\"};if(ariaLabel){carouselA11y[\"aria-title\"]=ariaLabel;}const itemA11y={};if(align===\"stretch\"){itemA11y[\"aria-role\"]=\"group\";itemA11y[\"aria-roledescription\"]=\"slide\";}if(!isCanvas){const itemSizes=useRef([]);useScrollLimits(carouselRef,axisLabel,scrollInfo,updateCurrentScroll,targetScroll,useCallback(()=>{if(!scrollInfo.current)return;const{targetLength,containerLength,scrollLength}=scrollInfo.current;const current=currentScroll.get();if(!targetLength&&!containerLength)return;if(targetLength>containerLength){checkLimit(current,0,start,fadeTransition);checkLimit(current,scrollLength,end,fadeTransition);for(let i=0;i<itemSizes.current.length;i++){const{element,start,end}=itemSizes.current[i];if(end<current||start>current+containerLength){element.setAttribute(\"aria-hidden\",true);}else{element.setAttribute(\"aria-hidden\",false);}}}else{checkLimit(0,0,start,fadeTransition);checkLimit(1,1,end,fadeTransition);itemSizes.current.forEach(setAriaVisible);}// This used to be Math.ceil, which would round 3.05 to 4.\n// This now uses Math.round to ensure people get a perfect amount of dots\n// when using Columns or Rows — Benjamin\n/**\n                 * Update by Matt: changing back to ceil, might break dots but round was incorrectly\n                 * paginating for all widths - overshooting items at shorter viewports and\n                 * not paginating at all for wide.\n                 */let newNumPages=Math.ceil(targetLength/containerLength);if(!isNaN(newNumPages)){// If the number of dots is 65% of the number of items, make it 100%\nif(newNumPages/numItems>.65)newNumPages=numItems;if(newNumPages!==numPages)setNumPages(newNumPages);}},[numPages]),useCallback(()=>{if(!carouselRef.current)return;itemSizes.current=Array.from(carouselRef.current.children).map(element=>{return axis?{element,start:element.offsetLeft,end:element.offsetLeft+element.offsetWidth}:{element,start:element.offsetTop,end:element.offsetTop+element.offsetHeight};});},[]));}/**\n     * On the canvas, we want to keep the motion values updated\n     * with the latest props. Outside of the canvas these will never\n     * update.\n     */if(isCanvas){useEffect(()=>{baseWidth.set(fadeWidth);},[fadeWidth]);useEffect(()=>{startMaskInset.set(fadeInset*.5);},[fadeInset]);useEffect(()=>{direction.set(axis?\"right\":\"bottom\");},[axis]);}/*const findNextItem = (delta: 1 | -1, target: number) => {\n        if (!scrollInfo.current) return\n        const { current } = scrollInfo.current\n        const { children } = carouselRef.current\n        let scrollTarget\n\n        let i = delta === 1 ? 0 : children.length - 1\n        while (scrollTarget === undefined) {\n            const item = children[i]\n\n            const start = axis ? item.offsetLeft : item.offsetTop\n            const length = axis ? item.offsetWidth : item.offsetHeight\n            const end = start + length\n\n            const threshold = 0.05\n            if (delta === 1) {\n                const visibility = progress(start, end, target)\n                if (visibility < 1 - threshold) {\n                    scrollTarget = start\n                } else if (i === children.length - 1) {\n                    scrollTarget = end\n                }\n            } else if (delta === -1) {\n                const visibility = progress(start, end, target)\n                if (visibility > threshold) {\n                    scrollTarget = end\n                } else if (i === 0) {\n                    scrollTarget = start\n                }\n            }\n\n            i += delta\n        }\n\n        return scrollTarget\n    }*/const isReducedMotion=useReducedMotion();const goto=scrollTo=>{targetScroll.current=scrollTo;const options=axis?{left:scrollTo}:{top:scrollTo};carouselRef.current.scrollTo({...options,behavior:isReducedMotion?\"auto\":\"smooth\"});};const gotoPage=(page,adjustment=0)=>{if(!scrollInfo.current)return;const{scrollLength}=scrollInfo.current;const totalLen=scrollLength/(numPages-1);goto(page*totalLen+adjustment*totalLen);};const gotoDelta=delta=>()=>{if(!scrollInfo.current)return;const{containerLength,scrollLength}=scrollInfo.current;const current=currentScroll.get();const pageLength=scrollLength/numPages;const currentPage=clamp(0,numPages-1,Math.floor(current/pageLength));let adjustment=0;if(snap&&(snapEdge===\"start\"||snapEdge===\"end\")&&delta>=1)adjustment=.4// this ensures it doesn't snap back to previous page*/\n    ;gotoPage(currentPage+delta,adjustment);};/**\n     * Return placeholder if no children\n     */if(numItems===0){return /*#__PURE__*/_jsx(Placeholder,{});}const dots=[];const dotsBlurStyle={};if(numPages>1&&showProgressDots&&!showScrollbar){for(let i=0;i<numPages;i++){const isSelected=isCanvas&&!i||false;dots.push(/*#__PURE__*/_jsx(Dot,{dotStyle:{...dotStyle,width:dotSize,height:dotSize,backgroundColor:dotsFill},buttonStyle:baseButtonStyles,isSelected:isSelected,selectedOpacity:dotsActiveOpacity,opacity:dotsOpacity,onClick:()=>startTransition(()=>gotoPage(i)),currentScroll:currentScroll,scrollInfo:scrollInfo,total:numPages,index:i,gap:dotsGap,padding:dotsPadding,axis:axis}));}if(dotsBlur){dotsBlurStyle.backdropFilter=dotsBlurStyle.WebkitBackdropFilter=`blur(${dotsBlur}px)`;}}return /*#__PURE__*/_jsxs(\"section\",{style:containerStyle,...carouselA11y,children:[/*#__PURE__*/_jsx(motion.ul,{ref:carouselRef,style:carouselStyle,className:\"framer--carousel\",\"data-show-scrollbar\":showScrollbar,\"aria-atomic\":\"false\",\"aria-live\":\"polite\",onWheel:()=>targetScroll.current=undefined,children:Children.map(filteredSlots,(child,index)=>/*#__PURE__*/_jsx(\"li\",{style:itemStyle,...itemA11y,\"aria-label\":`${index+1} of ${numItems}`,children:/*#__PURE__*/cloneElement(child,{...child.props,style:{...child.props?.style,...childStyle}})}))}),/*#__PURE__*/_jsxs(\"fieldset\",{style:{...controlsStyles,padding:arrowPadding,display:\"flex\",flexDirection:axis?\"row\":\"column\"},\"aria-label\":\"Carousel pagination controls\",className:\"framer--carousel-controls\",\"data-show-mouse-controls\":showMouseControls,children:[// isMouseDevice &&\n/*#__PURE__*/_jsx(motion.button,{ref:start.buttonRef,type:\"button\",style:{...start.buttonStyle,backgroundColor:arrowFill,width:arrowSize,height:arrowSize,borderRadius:arrowRadius,rotate:!axis?90:0,display:showMouseControls?\"block\":\"none\"},onClick:gotoDelta(-1),\"aria-label\":\"Previous\",whileTap:{scale:.9},transition:{duration:.05},children:/*#__PURE__*/_jsx(\"img\",{decoding:\"async\",alt:\"\",width:arrowSize,height:arrowSize,src:leftArrow||\"https://framerusercontent.com/images/6tTbkXggWgQCAJ4DO2QEdXXmgM.svg\"})}),// isMouseDevice &&\n/*#__PURE__*/_jsx(motion.button,{ref:end.buttonRef,type:\"button\",style:{...end.buttonStyle,backgroundColor:arrowFill,width:arrowSize,height:arrowSize,borderRadius:arrowRadius,rotate:!axis?90:0,display:showMouseControls?\"block\":\"none\"},onClick:gotoDelta(1),\"aria-label\":\"Next\",whileTap:{scale:.9},transition:{duration:.05},children:/*#__PURE__*/_jsx(\"img\",{decoding:\"async\",alt:\"\",width:arrowSize,height:arrowSize,src:rightArrow||\"https://framerusercontent.com/images/11KSGbIZoRSg4pjdnUoif6MKHI.svg\"})}),dots.length>1?/*#__PURE__*/_jsx(\"div\",{style:{...dotsContainerStyle,left:axis?\"50%\":dotsInset,top:!axis?\"50%\":\"unset\",transform:axis?\"translateX(-50%)\":\"translateY(-50%)\",flexDirection:axis?\"row\":\"column\",bottom:axis?dotsInset:\"unset\",borderRadius:dotsRadius,backgroundColor:dotsBackground,...dotsBlurStyle},children:dots}):null]}),/*#__PURE__*/_jsx(MouseStyles,{})]});}/* Default Properties */Carousel.defaultProps={gap:10,padding:10,progressObject:{showScrollbar:false,showProgressDots:false},sizingObject:{widthType:\"auto\",widthOffset:0,widthColumns:2,heightType:\"auto\",heightOffset:0,heightRows:2},borderRadius:0};/* Property Controls */addPropertyControls(Carousel,{slots:{type:ControlType.Array,title:\"Children\",control:{type:ControlType.ComponentInstance}},axis:{type:ControlType.Enum,title:\"Direction\",options:[true,false],optionIcons:[\"direction-horizontal\",\"direction-vertical\"],displaySegmentedControl:true},align:{type:ControlType.Enum,title:\"Align\",options:[\"flex-start\",\"center\",\"flex-end\"],optionIcons:{axis:{true:[\"align-top\",\"align-middle\",\"align-bottom\"],false:[\"align-left\",\"align-center\",\"align-right\"]}},defaultValue:\"center\",displaySegmentedControl:true},gap:{type:ControlType.Number,title:\"Gap\"},...paddingControl,sizingObject:{type:ControlType.Object,title:\"Sizing\",controls:{widthType:{type:ControlType.Enum,title:\"Width\",options:[\"auto\",\"stretch\",\"columns\"],optionTitles:[\"Auto\",\"Stretch\",\"Columns\"],defaultValue:\"auto\"},widthInset:{type:ControlType.Number,title:\"Inset\",min:0,max:500,defaultValue:0,hidden:props=>props.widthType!==\"stretch\"},widthColumns:{type:ControlType.Number,title:\"Columns\",min:1,max:10,defaultValue:2,displayStepper:true,hidden:props=>props.widthType!==\"columns\"},heightType:{type:ControlType.Enum,title:\"Height\",options:[\"auto\",\"stretch\",\"rows\"],optionTitles:[\"Auto\",\"Stretch\",\"Rows\"],defaultValue:\"auto\"},heightInset:{type:ControlType.Number,title:\"Inset\",min:0,max:500,defaultValue:0,hidden:props=>props.heightType!==\"stretch\"},heightRows:{type:ControlType.Number,title:\"Rows\",min:1,max:10,defaultValue:2,displayStepper:true,hidden:props=>props.heightType!==\"rows\"}}},snapObject:{type:ControlType.Object,title:\"Snapping\",controls:{snap:{type:ControlType.Boolean,title:\"Enable\"},snapEdge:{type:ControlType.Enum,title:\"Edge\",options:[\"start\",\"center\",\"end\"],optionTitles:[\"Left\",\"Center\",\"Right\"],defaultValue:\"center\",hidden:props=>!props.snap},fluid:{type:ControlType.Boolean,title:\"Fluid\",defaultValue:false,hidden:props=>!props.snap}}},fadeObject:{type:ControlType.Object,title:\"Fading\",controls:{fadeContent:{type:ControlType.Boolean,title:\"Enable\",defaultValue:false},fadeWidth:{type:ControlType.Number,title:\"Width\",defaultValue:25,min:0,max:100,unit:\"%\",hidden:props=>!props.fadeContent},fadeInset:{type:ControlType.Number,title:\"Inset\",defaultValue:0,min:0,max:100,unit:\"%\",hidden:props=>!props.fadeContent},fadeAlpha:{type:ControlType.Number,title:\"Opacity\",hidden:props=>!props.fadeContent,min:0,max:1,step:.05,defaultValue:0},fadeTransition:{type:ControlType.Transition,title:\"Transition\",hidden:props=>!props.fadeContent}}},progressObject:{type:ControlType.Object,title:\"Progress\",controls:{showScrollbar:{type:ControlType.Boolean,title:\"Scroll Bar\",defaultValue:false},showProgressDots:{type:ControlType.Boolean,title:\"Dots\",defaultValue:false,hidden:props=>props.showScrollbar},dotSize:{type:ControlType.Number,title:\"Size\",min:1,max:100,defaultValue:10,displayStepper:true,hidden:props=>!props.showProgressDots||props.showScrollbar},dotsInset:{type:ControlType.Number,title:\"Inset\",min:0,max:100,defaultValue:10,displayStepper:true,hidden:props=>!props.showProgressDots||props.showScrollbar},dotsGap:{type:ControlType.Number,title:\"Gap\",min:0,max:100,defaultValue:10,displayStepper:true,hidden:props=>!props.showProgressDots||props.showScrollbar},dotsPadding:{type:ControlType.Number,title:\"Padding\",min:0,max:100,defaultValue:10,displayStepper:true,hidden:props=>!props.showProgressDots||props.showScrollbar},dotsFill:{type:ControlType.Color,title:\"Fill\",defaultValue:\"#fff\",hidden:props=>!props.showProgressDots||props.showScrollbar},dotsBackground:{type:ControlType.Color,title:\"Backdrop\",defaultValue:\"rgba(0,0,0,0.2)\",hidden:props=>!props.showProgressDots||props.showScrollbar},dotsRadius:{type:ControlType.Number,title:\"Radius\",min:0,max:200,defaultValue:50,hidden:props=>!props.showProgressDots||props.showScrollbar},dotsOpacity:{type:ControlType.Number,title:\"Opacity\",min:0,max:1,defaultValue:.5,step:.1,displayStepper:true,hidden:props=>!props.showProgressDots||props.showScrollbar},dotsActiveOpacity:{type:ControlType.Number,title:\"Current\",min:0,max:1,defaultValue:1,step:.1,displayStepper:true,hidden:props=>!props.showProgressDots||props.showScrollbar},dotsBlur:{type:ControlType.Number,title:\"Blur\",min:0,max:50,defaultValue:4,step:1,hidden:props=>!props.showProgressDots||props.showScrollbar}}},arrowObject:{type:ControlType.Object,title:\"Arrows\",controls:{showMouseControls:{type:ControlType.Boolean,title:\"Show\",defaultValue:true},arrowFill:{type:ControlType.Color,title:\"Fill\",defaultValue:\"rgba(0,0,0,0.2)\",hidden:props=>!props.showMouseControls},leftArrow:{type:ControlType.Image,title:\"Previous\",hidden:props=>!props.showMouseControls},rightArrow:{type:ControlType.Image,title:\"Next\",hidden:props=>!props.showMouseControls},arrowSize:{type:ControlType.Number,title:\"Size\",min:0,max:200,displayStepper:true,defaultValue:40,hidden:props=>!props.showMouseControls},arrowRadius:{type:ControlType.Number,title:\"Radius\",min:0,max:500,defaultValue:40,hidden:props=>!props.showMouseControls},arrowPadding:{type:ControlType.Number,title:\"Inset\",min:0,max:100,defaultValue:20,displayStepper:true,hidden:props=>!props.showMouseControls}}},ariaLabel:{type:ControlType.String,title:\"Aria Label\",placeholder:\"Movies...\"},borderRadius:{type:ControlType.Number,title:\"Radius\",min:0,max:500,displayStepper:true,defaultValue:0}});function Dot({currentScroll,scrollInfo,isSelected,selectedOpacity,opacity:unselectedOpacity,total,index,dotStyle,buttonStyle,gap,padding,axis,...props}){const opacity=useTransform(currentScroll,v=>{if(!scrollInfo.current?.scrollLength){return index===0?selectedOpacity:unselectedOpacity;}const pageLength=scrollInfo.current?.scrollLength/total;const minScroll=pageLength*index;const maxScroll=minScroll+pageLength;const isSelected=v>=minScroll&&(index<total-1?v<maxScroll:index===total-1);return isSelected?selectedOpacity:unselectedOpacity;});const inlinePadding=gap/2;let top=!axis&&index>0?inlinePadding:padding;let bottom=!axis&&index!==total-1?inlinePadding:padding;let right=axis&&index!==total-1?inlinePadding:padding;let left=axis&&index>0?inlinePadding:padding;return /*#__PURE__*/_jsx(\"button\",{\"aria-label\":`Scroll to page ${index+1}`,type:\"button\",...props,style:{...buttonStyle,padding:`${top}px ${right}px ${bottom}px ${left}px`},children:/*#__PURE__*/_jsx(motion.div,{style:{...dotStyle,opacity}})});}function Placeholder(){return /*#__PURE__*/_jsxs(\"section\",{style:placeholderStyles,children:[/*#__PURE__*/_jsx(\"div\",{style:emojiStyles,children:\"✨\"}),/*#__PURE__*/_jsx(\"p\",{style:titleStyles,children:\"Connect to Content\"}),/*#__PURE__*/_jsx(\"p\",{style:subtitleStyles,children:\"Add layers or components to swipe between.\"})]});}function MouseStyles(){return /*#__PURE__*/_jsx(\"div\",{dangerouslySetInnerHTML:{__html:`<style>@media (pointer: fine) {\n                .framer--carousel[data-show-scrollbar=\"false\"]::-webkit-scrollbar {\n                    display: none;\n                    -webkit-appearance: none;\n                    width: 0;\n                    height: 0;\n                }\n\n                .framer--carousel[data-show-scrollbar=\"false\"]::-webkit-scrollbar-thumb {\n                    display: none;\n                }\n\n                .framer--carousel[data-show-scrollbar=\"false\"] {\n                    scrollbar-width: none;\n                    scrollbar-height: none;\n                }\n            }</style>`}});}/* Styles */const placeholderStyles={display:\"flex\",width:\"100%\",height:\"100%\",placeContent:\"center\",placeItems:\"center\",flexDirection:\"column\",color:\"#96F\",background:\"rgba(136, 85, 255, 0.1)\",fontSize:11,overflow:\"hidden\",padding:\"20px 20px 30px 20px\"};const emojiStyles={fontSize:32,marginBottom:10};const titleStyles={margin:0,marginBottom:10,fontWeight:600,textAlign:\"center\"};const subtitleStyles={margin:0,opacity:.7,maxWidth:130,lineHeight:1.5,textAlign:\"center\"};const labelStyle={clip:\"rect(0 0 0 0)\",WebkitClipPath:\"inset(50%)\",clipPath:\"inset(50%)\",height:1,width:1,margin:-1,padding:0,overflow:\"hidden\",position:\"absolute\",whiteSpace:\"nowrap\"};/**\n * GUI styles\n */const baseContainerStyle={display:\"flex\",overflow:\"hidden\",width:\"100%\",height:\"100%\",position:\"relative\"};const baseCarouselStyle={padding:0,margin:0,listStyle:\"none\",position:\"relative\",display:\"flex\",flex:\"1 1 100%\",width:\"100%\",height:\"100%\"};const baseButtonStyles={border:\"none\",display:\"flex\",placeContent:\"center\",placeItems:\"center\",overflow:\"hidden\",background:\"transparent\",cursor:\"pointer\",margin:0,padding:0};const controlsStyles={display:\"flex\",justifyContent:\"space-between\",alignItems:\"center\",position:\"absolute\",top:0,left:0,right:0,bottom:0,pointerEvents:\"none\",border:0,padding:0,margin:0};/**\n * Dot styles\n */const dotsContainerStyle={display:\"flex\",placeContent:\"center\",placeItems:\"center\",overflow:\"hidden\",position:\"absolute\",pointerEvents:\"auto\"};const dotStyle={borderRadius:\"50%\",background:\"white\",cursor:\"pointer\",border:\"none\",placeContent:\"center\",placeItems:\"center\",padding:0};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Carousel\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"200\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerDisableUnlink\":\"*\",\"framerIntrinsicWidth\":\"400\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Carousel.map","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useState,useEffect}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{motion,AnimatePresence}from\"framer-motion\";const MAX_SPEED=20;const defaultTransition={// ease: \"power4.out\",\nease:[.11,.72,0,1]};/**\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 200\n *\n * @framerDisableUnlink\n *\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */export default function StaggeredTextCycleV2({text,speed,delay,font,userSelect,color,alignment,tag,loop,stagger}){const Tag=tag;const content=text.split(\", \").map(phrase=>phrase.replace(/\\s+/g,\" \").trim());const[iteration,setIteration]=useState(0);const speedFormatted=(MAX_SPEED-speed+1)/MAX_SPEED*5;const delayFormattedMs=delay*1e3;const speedFormattedMs=speedFormatted*1e3;const isCanvas=RenderTarget.current()===RenderTarget.canvas;const[isFirstRender,setIsFirstRender]=useState(true);useEffect(()=>{const timeout=isFirstRender?speedFormattedMs/3+delayFormattedMs:speedFormattedMs+delayFormattedMs;const interval=setInterval(()=>{setIsFirstRender(false);if(iteration<content.length-1){setIteration(prev=>prev+1);}else if(loop){setIteration(0);}},timeout);return()=>clearInterval(interval);},[iteration,loop,isFirstRender]);return /*#__PURE__*/_jsxs(\"div\",{style:{userSelect:userSelect?\"auto\":\"none\",position:\"relative\",display:\"flex\",flexDirection:\"row\",overflow:\"visible\",justifyContent:alignment===\"center\"?\"center\":alignment===\"right\"?\"flex-end\":\"flex-start\"},children:[/*#__PURE__*/_jsx(Tag,{\"aria-hidden\":true,style:{fontSize:\"24px\",...font,marginBlockStart:\"0px\",marginBlockEnd:\"0px\",pointerEvents:\"none\",opacity:0,whiteSpace:\"pre-wrap\",width:\"100%\",textAlign:alignment},children:content.reduce((longest,current)=>current.length>longest.length?current:longest)}),isCanvas&&/*#__PURE__*/_jsx(Tag,{style:{fontSize:\"24px\",...font,color,marginBlockStart:\"0px\",marginBlockEnd:\"0px\",whiteSpace:\"pre-wrap\",position:\"absolute\",top:0,left:0,width:\"100%\",textAlign:alignment},children:content[0]}),!isCanvas&&/*#__PURE__*/_jsx(_Fragment,{children:content.map((sentence,sentenceIndex)=>{let charIndex=0;// Split sentence into segments\nconst segments=sentence.split(/(\\s+|\\b)/).map(segment=>({text:segment,chars:segment.split(\"\").map(char=>({char,originalIndex:charIndex++}))}));console.log(segments);return /*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",top:0,left:0,overflow:\"visible\",width:\"100%\",textAlign:alignment},children:/*#__PURE__*/_jsx(AnimatePresence,{mode:\"sync\",children:iteration===sentenceIndex&&/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexWrap:\"wrap\",width:\"100%\",justifyContent:alignment===\"center\"?\"center\":alignment===\"right\"?\"flex-end\":\"flex-start\",gap:0},children:segments.map((segment,segmentIndex)=>/*#__PURE__*/_jsx(\"div\",{style:{display:\"inline-flex\",flexWrap:\"nowrap\",whiteSpace:\"pre\",overflow:\"hidden\"},children:segment.chars.map(({char,originalIndex})=>{const baseDelay=originalIndex/(sentence.length-1);const delayInitial=baseDelay*(speedFormatted*.3)// 30% of speed\n    ;const delayAnimate=baseDelay*(speedFormatted*.4)// 40% of speed\n    ;const delayExit=baseDelay*(speedFormatted*.3)// 30% of speed\n    ;const itemTransition={initial:{transform:`translate(0px, 150%)`,transition:{...defaultTransition,duration:speedFormatted/2,delay:delayInitial*stagger}},animate:{transform:`translate(0px, 0px)`,transition:{...defaultTransition,duration:speedFormatted/2,delay:delayAnimate*stagger}},exit:{transform:`translate(0px, -150%)`,transition:{...defaultTransition,duration:speedFormatted/2,delay:delayExit*stagger}}};return /*#__PURE__*/_jsx(motion.div,{variants:itemTransition,initial:isFirstRender?false:\"initial\",animate:isFirstRender?false:\"animate\",exit:\"exit\",style:{display:\"inline-block\"},children:/*#__PURE__*/_jsx(Tag,{style:{fontSize:\"24px\",...font,color,marginBlockStart:\"0px\",marginBlockEnd:\"0px\",opacity:1},children:char})},sentence+originalIndex);})},segmentIndex))})})},sentenceIndex);})})]});}StaggeredTextCycleV2.displayName=\"Staggered Cycle\";addPropertyControls(StaggeredTextCycleV2,{text:{type:ControlType.String,title:\"Text\",defaultValue:\"DESIGNER, DEVELOPER\",description:\"Divide the words with a comma (,) if you want to display them separately.\"},speed:{type:ControlType.Number,title:\"Speed\",defaultValue:MAX_SPEED/2,min:1,max:MAX_SPEED},delay:{type:ControlType.Number,title:\"Delay\",defaultValue:1,min:0,max:10,unit:\"s\"},stagger:{title:\"Stagger\",description:\"The delay between each word.\",type:ControlType.Number,defaultValue:.5,step:.1,min:0,max:1},font:{title:\"Font\",type:ControlType.Font,controls:\"extended\"},alignment:{type:ControlType.Enum,displaySegmentedControl:true,title:\"Alignment\",defaultValue:\"left\",options:[\"left\",\"center\",\"right\"],optionTitles:[\"Left\",\"Center\",\"Right\"]},userSelect:{title:\"User Select\",type:ControlType.Boolean,defaultValue:false},color:{title:\"Color\",type:ControlType.Color,defaultValue:\"#ffffff\"},tag:{type:ControlType.Enum,title:\"Tag\",defaultValue:\"p\",displaySegmentedControl:true,segmentedControlDirection:\"horizontal\",options:[\"h1\",\"h2\",\"h3\",\"p\"],optionTitles:[\"H1\",\"H2\",\"H3\",\"P\"]},loop:{title:\"Loop\",type:ControlType.Boolean,defaultValue:true,description:\"More components at [Framer University](https://frameruni.link/cc).\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"StaggeredTextCycleV2\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any\",\"framerSupportedLayoutHeight\":\"any\",\"framerDisableUnlink\":\"*\",\"framerIntrinsicWidth\":\"400\",\"framerIntrinsicHeight\":\"200\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./StaggeredTextCycle_Prod.map"],"mappings":"ojCAEA,SAAS,EAAS,EAAM,CAAC,GAAK,CAAC,QAAM,SAAO,UAAQ,WAAS,cAAY,aAAW,KAAG,WAAS,GAAG,EAAK,CAAC,EAAM,OAAO,CAAM,CAQzH,SAAgB,EAAM,EAAM,CAAC,IAAM,EAAS,EAAS,GAAO,OAAoB,EAAK,EAAU,CAAC,GAAG,EAAS,CAAG,UAAS,GAAoB,EAAS,CAAC,IAAM,EAA4B,IAAuC,EAAeI,EAAO,IAAa,EAAaA,EAAO,IAAa,EAAYG,EAAY,GAAa,CAAC,GAAG,CAAC,EAAS,QAAQ,OAAO,IAAM,GAAa,IAAc,EAAE,KAAK,GAAa,EAAS,QAAQ,SAAe,EAAa,KAAK,IAAI,EAAS,QAAQ,YAAY,GAAa,GAAM,EAAS,QAAQ,SAAS,GAAG,CAAC,IAAc,EAAS,QAAQ,YAAY,EAAc,EAAC,EAAE,EAAQ,EAAKA,MAAgB,CAAC,IAAM,EAAM,EAAS,QAAQ,GAAG,CAAC,EAAM,OAAO,EAAM,QAAQ,OACtrB,IAAM,EAAU,EAAM,YAAY,GAAG,EAAM,WAAW,CAAC,EAAM,QAAQ,CAAC,EAAM,OAAO,EAAM,YAAY,EAAM,kBAAqB,CAAC,GAAW,GAAO,CAAC,EAAe,SAAS,IAA6B,EAAe,QAAQ,GAAK,EAAa,QAAQ,GAAK,EAAM,OAAO,MAAM,GAAG,CAAE,GACvR,YAAY,EAAe,QAAQ,IAAS,EAAC,EAAE,EAAQ,EAAMA,MAAgB,CAAI,CAAC,EAAS,SAAS,EAAe,UAAe,EAAS,QAAQ,QAAQ,EAAa,QAAQ,GAAO,EAAC,EAAE,EAAE,MAAM,CAAC,OAAK,QAAM,cAAY,UAAU,EAAa,AAAE,UAAS,GAAoB,CAAC,cAAY,QAAM,OAAK,cAAY,WAAS,CAAC,CAAC,GAAK,CAAC,EAAmB,CAACM,MAAa,GAAkB,CAAC,EAAsB,EAAyB,CAACA,EAAS,IAAU,IAAc,GAAoB,CAAC,GAAuB,EAAyB,IAAO,IAAM,EAE7hB,GAAoB,GAAO,GAAM,GAAa,CAAC,GAQ/C,CAAC,EAA0B,EAA2H,MAAlH,CAA2F,EAAxF,EAAsB,cAAsB,EAA4B,WAAyB,cAAqB,CAAU,CAgD0T,SAAS,GAAsB,EAAM,CAAC,OAAO,EAAM,OAAO,GAAG,cAAc,EAAM,MAAM,EAAI,UAAgB,EAAU,EAAM,CAAC,IAAM,EAAO,EAAM,MAAM,6CAA6C,EAAE,CAAC,OAAO,EAAO,IAAI,IAAuB,KAAK,IAAM,gDArEjoB,SAAS,EAAc,CAAC,EAAc,KAAQ,OAAO,EAAc,QAAW,UAAU,EAAc,MAAS,QAAQ,EAAc,KAAQ,OAAO,EAAc,UAAa,YAAc,GAAE,AAAgB,KAAc,EAAE,GAAgB,SAAS,EAAQ,CAAC,EAAQ,MAAS,SAAS,EAAQ,IAAO,KAAO,GAAE,AAAU,IAAQ,EAAE,EAAS,GAAa,uEAqBzQ,EAAuB,EAAK,SAAoB,EAAM,CAAC,GAAK,CACzO,UAAQ,MAAM,SAAO,UAAQ,GAAG,gBAAc,GAAM,WAAS,GAAM,UAAQ,GAAK,OAAK,GAAK,QAAM,GAAK,cAAY,GAAK,iBAAe,GAAM,YAAU,QAAQ,kBAAgB,gBAAgB,SAAO,EAAE,SAAO,GAAG,UAAU,EAAc,EAAE,SAAO,QAAQ,EAAY,WAAS,WAAS,UAAQ,SAAO,QAAM,WAAQ,gBAAa,gBAAa,cAAY,aAAU,CAAC,EAAY,EAAST,IAAe,GAAS,KAA2B,EAAiBA,EAAO,MAAY,EAAgBA,EAAO,MAAY,EAAW,KAAsB,GAAa,KAAwB,EAAiB,GAAY,KAAe,EAAa,OAAa,GAAa,GAAU,GAGjpB,EAAiB,EAAiB,cAAc,GAAoB,CAAC,cAAY,QAAM,OAAK,cAAY,WAAS,EAAQ,EAAa,EAAiB,GAAK,EAAU,GAAgB,EAAkB,EAAiB,GAAM,EAAU,EAAS,CAAC,OAAO,MAAM,KAAK,GAAK,EAC1Q,EAAU,IAAgB,IAAI,KAAK,EAAmB,CAAC,OAAK,QAAM,eAAY,YAAU,CAAC,GAAoB,GACnH,MAAc,CAAI,GAA2B,IAAmB,gBAAwB,EAAY,IAAY,IAAS,EAAC,CAAC,EAAiB,EAAY,EACxJ,MAAc,CAAI,IACf,GAAc,GAAa,IAAmB,eAAc,IAAU,IAAmB,eAAqB,IAAS,EAAC,CAAC,EAAiB,EAAa,EAAY,EAAE,MAAc,CAAI,CAAC,GAAY,GAAQ,GAAe,GAAW,CAAC,EAAS,UACnP,EAAS,QAAQ,YAAY,IAAK,EAAC,CAAC,EAAc,EAAO,EAAU,EAO5D,IAAM,GAAoCA,EAAO,IAExD,MAAc,CAAC,GAAG,CAAC,GAAoC,QAAQ,CAAC,GAAoC,QAAQ,GAAK,MAAQ,KAAM,EAAiB,EAAc,GAAU,EAAS,OAAO,GAAU,GAAG,IAAI,IAKxM,GAAkB,KAOlB,GAAW,GAAG,IAAM,EAAC,CAAC,EAAU,EAAQ,EAAO,EAAS,EACzD,MAAc,CAAK,KAAc,GAAiB,OAAO,EAAS,GAAG,SAAS,GAAO,GAAY,GAAS,EAAC,CAAC,EAAS,EACrH,OAAe,CAAI,EAAiB,UAAU,MAAe,EAAS,UACnE,CAAC,GAAiB,GAAM,CAAC,EAAiB,UAAQ,GAAS,GAC9D,MAAc,CAAI,EAAS,UAAS,EAAgB,QAAQ,EAAS,QAAQ,MAAM,EAAiB,QAAQ,EAAS,QAAQ,OAAO,IAAU,GAAE,IAAM,GAAID,MAAY,CAStK,GAAG,IAAU,MAAM,OAAO,EAAO,GAAS,GAAG,IAAU,SAAS,OAAO,EAAQ,EAAU,EAAC,CAAC,EAAQ,EAAQ,EAAO,EAAU,EAC5H,MAAc,CAAI,IAAU,EAAS,SAAS,IAAmB,YAAY,eAAe,IAAO,GAAM,EAAC,EAAE,EAC5G,MAAc,CAAI,EAAS,SAAS,CAAC,IAAM,EAAS,QAAQ,QAAQ,GAAQ,GAAG,IAAK,EAAC,CAAC,EAAO,EAC7F,IAAM,OAAgB,CAAC,IAAM,EAAM,EAAS,QAAY,IAAgB,EAAM,YAAY,IAAI,EAAU,GAAE,IAAa,GAAW,GAAG,MACrI,EAAU,SAAS,IAAmB,YAAY,GAAa,IAAmB,eAAe,IAAa,IAAQ,EAAC,OAAoB,EAAK,QAAQ,CAAC,WAAQ,gBAAa,gBAAa,cAAY,aAAc,OAAS,OAAK,IAAI,EAAS,SAAS,GAAG,IAAW,GAAG,QAAQ,GAAG,IAAU,GAAG,OAAO,GAAG,IAAS,GAAG,QAAQ,GAAG,IAAQ,GAAG,SAAS,EAAU,SAAS,IAAmB,YAAY,GAAa,IAAmB,eAAe,EAAa,QAAQ,EAAU,QAAQ,OAAO,GAAkB,CAAC,EAAO,WAAW,IAAmB,YAAY,CAAC,EAAkB,OAC7jB,WAAW,OAAO,GAAe,CAAC,GAAS,IAAS,GAAa,sEAAsE,GAAe,EAAO,EAAO,IAAA,GAAU,aAAa,GAAqB,WAAS,MAAM,EAAiB,GAAK,EAAM,YAAY,EAAY,MAAM,CAAC,OAAS,GAAQ,UAAU,OAAO,MAAM,OAAO,OAAO,OAAO,gBAAa,QAAQ,QAAkB,YAA0B,kBAAgB,eAAe,UAAU,CAAC,CAAG,GAAE,EAAM,YAAY,QAAuQ,EAAiB,CAAC,QAAQ,OAAO,UAAU,aAAa,OAAO,CAAC,EAAoB,EAAM,CAAC,QAAQ,CAAC,KAAK,EAAY,KAAK,wBAAwB,GAAK,MAAM,SAAS,QAAQ,CAAC,MAAM,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,MAAM,aAAa,uEAAuE,OAAO,EAAM,CAAC,OAAO,EAAM,UAAU,QAAU,EAAC,CAAC,QAAQ,CAAC,KAAK,EAAY,KAAK,MAAM,OAAO,iBAAiB,CAAC,MAAM,OAAO,CAAC,OAAO,EAAM,CAAC,OAAO,EAAM,UAAU,KAAO,EAAC,CAAC,QAAQ,CAAC,KAAK,EAAY,QAAQ,MAAM,UAAU,aAAa,MAAM,cAAc,KAAK,CAAC,GAAG,EAAoB,cAAc,CAAC,KAAK,EAAY,QAAQ,MAAM,SAAS,aAAa,MAAM,cAAc,KAAK,CAAC,OAAO,CAAC,KAAK,EAAY,MAAM,MAAM,QAAQ,QAAQ,CAAC,gBAAc,GAAG,CAAC,EAAc,YAAY,wHAAwH,CAAC,gBAAgB,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,gBAAgB,CAAC,UAAU,CAAC,MAAM,aAAa,KAAK,EAAY,OAAO,IAAI,EAAE,IAAI,IAAI,KAAK,GAAG,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,EAAY,QAAQ,MAAM,OAAO,aAAa,MAAM,cAAc,KAAK,CAAC,UAAU,CAAC,KAAK,EAAY,KAAK,MAAM,MAAM,QAAQ,EAAiB,aAAa,EAAiB,IAAI,GAAW,CAMz+D,SAAS,CAAC,KAAK,EAAY,QAAQ,MAAM,WAAW,aAAa,OAAO,cAAc,OAAO,aAAa,GAAM,CAAC,MAAM,CAAC,KAAK,EAAY,QAAQ,MAAM,QAAQ,aAAa,MAAM,cAAc,KAAK,CAAC,OAAO,CAAC,KAAK,EAAY,OAAO,IAAI,IAAI,IAAI,EAAE,KAAK,IAAI,QAAQ,CAAC,QAAM,GAAG,EAAM,aAAa,GAAG,CAAC,MAAM,CAAC,KAAK,EAAY,aAAa,CAAC,SAAS,CAAC,KAAK,EAAY,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAY,aAAa,CAAC,OAAO,CAAC,KAAK,EAAY,aAAa,CAAC,GAAG,GAAc,iBC5EpV,GAAO,EAAE,EAAE,IAAI,KAAK,IAAI,KAAK,IAAI,EAAE,GAAG,MCIpK,SAAS,GAAc,CAAC,EAAM,EAAM,CAAC,CAAC,OAAO,GAAO,IAAI,IAAQ,EAAM,KAAK,EAAI,CAiB/E,SAAS,EAAW,EAAS,EAAO,CAAC,cAAY,YAAU,YAAU,CAAC,EAAW,CAAI,EAAU,SAAS,IAAW,GAAQ,EAAU,QAAQ,GAAM,EAAQ,EAAY,EAAE,GAAY,EAAU,SAAS,aAAa,WAAW,KAAa,CAAC,EAAU,SAAS,IAAW,IAAQ,EAAU,QAAQ,GAAK,EAAQ,EAAY,EAAE,GAAY,EAAU,SAAS,gBAAgB,YAAc,UAAS,GAAO,EAAiB,EAAa,CAAC,IAAM,EAAUC,EAAO,GAAwB,EAAY,EAAe,EAAU,QAAQ,EAAE,GAAS,EAAY,EAAa,EAAY,CAAC,EAAE,EAAE,CAAC,CAAC,GAAc,EAAE,EAAE,EAAQ,EAAc,EAAa,EAAY,GAAG,EAAE,GAAS,EAAUA,EAAO,MAKtpB,EAAc,EAAa,EAAc,GAAG,EAAE,GAAG,OAAO,QAGxD,EAAO,EAAa,EAAc,GAAG,IAAI,OAAO,UAAU,WAAiB,EAAY,CAAC,GAAG,GAAiB,QAAQ,EAAc,gBAAc,SAAO,CAAC,MAAM,CAAC,YAAU,cAAY,cAAY,cAAY,YAAU,AAAE,UAAS,GAAe,CAAC,UAAQ,CAAC,CAAC,EAAQ,aAAa,cAAc,GAAQ,UAAS,GAAgB,EAAU,EAAK,EAAW,EAAoB,EAAa,EAAY,EAAa,CAAC,MAAc,CAAC,GAAG,CAAC,EAAU,QAAQ,OAAO,IAAM,EAAiB,GAAM,CAAC,EAAW,QAAQ,EAAK,GAIlf,EAAK,GAAM,UAAU,EAAa,UAAS,EAAa,QAAQ,IAAA,IAAW,EAAoB,EAAK,GAAM,SAAS,GAAe,EAAO,EAAW,GAAO,EAAiB,CAAC,UAAU,EAAU,QAAQ,OAAK,EAAQ,EAAW,EAAO,EAAU,YAAY,CAAC,IAAe,GAAe,GAAE,UAAU,CAAC,IAAa,GAAc,CAAE,EAAC,CAAC,EAAY,EAAa,CAAG,CASpX,SAAwB,GAAS,CAAC,QAAM,MAAI,OAAK,QAAM,eAAa,aAAW,cAAY,aAAW,iBAAe,YAAU,eAAa,gBAAc,GAAG,EAAM,CAAC,CACvK,IAAM,EAAc,GAAO,OAAO,SAAe,EAASC,EAAS,MAAM,GAAqB,EAAS,EAAa,YAAY,EAAa,OAAa,GAAQ,GAAW,GAAa,GAAU,EAAK,IAAI,IAAS,CAAC,eAAY,aAAU,aAAU,iBAAe,aAAU,CAAC,EAAgB,CAAC,QAAK,WAAS,SAAM,CAAC,EAAgB,CAAC,YAAU,cAAW,eAAa,aAAW,cAAY,cAAW,CAAC,EAAkB,CAAC,iBAAc,oBAAiB,UAAQ,aAAU,aAAW,eAAY,UAAQ,WAAS,iBAAe,oBAAkB,eAAY,YAAS,CAAC,EAAoB,CAAC,oBAAkB,YAAU,eAAY,aAAU,aAAU,aAAW,eAAa,CAAC,EAE7oB,EAAWD,EAAO,IAAA,IAGlB,EAAaA,EAAO,IAAA,IAIpB,GAAc,EAAe,GAAS,GAAoB,GAAW,CAAC,GAAc,IAAI,EAAa,UAAU,IAAA,GAA+B,EAArB,EAAa,QAAoB,EAO1J,EAAM,GAAO,GAAM,IAAiB,GAAI,GAAO,GAAK,IAAiB,GAAe,EAAe,GAAU,IAAU,GAAa,EAAa,GAAe,GAAG,IAAI,GAAS,GAAU,EAAe,IAAiB,GAAe,EAAa,CAAC,GAAe,GAAU,CAAC,IAAqB,GAAa,EAAa,GAAe,GAAG,IAAI,GAAS,GAAU,EAAe,EAAK,QAAQ,UAAgB,GAAK,EAAa,CAAC,GAAU,EAAM,YAAY,GAAe,GAAe,GAAI,YAAY,GAAa,GAAa,CAAC,GAAe,sBAAsB,EAAO,GAAG,iBAAiB,EAAO,GAAG,IAAI,EAAO,GAAG,qBAAqB,EAAO,GAAG,sBAAsB,EAAO,GAAG,kBAAkB,EAAO,GAAG,IAAI,EAAO,GAAG,KAAa,GAAYA,EAAO,MAE/uB,CAAC,EAAS,GAAY,CAACS,EAAS,EAAS,EAAE,GAE1C,EAAU,CAAC,gBAAgB,EAAS,WAAW,EAAE,CAAO,EAAW,EAAE,CAAI,IAAQ,YAAc,GAAM,EAAW,OAAO,OAAO,EAAU,OAAO,SAAa,EAAW,MAAM,OAAO,EAAU,MAAM,SAAa,KAAO,EAAU,eAAe,UAAa,IAAY,WAAW,EAAU,MAAM,eAAe,IAAY,EAAE,KAAK,EAAW,MAAM,QAAgB,IAAY,YAAW,EAAU,MAAM,QAAQ,IAAI,EAAa,MAAM,EAAI,OAAO,EAAI,EAAa,KAAK,EAAW,MAAM,QAAW,IAAa,WAAW,EAAU,OAAO,eAAe,GAAa,EAAE,KAAK,EAAW,OAAO,QAAgB,IAAa,SAAQ,EAAU,OAAO,QAAQ,IAAI,GAAW,MAAM,EAAI,OAAO,EAAI,GAAW,KAAK,EAAW,OAAO,YAAc,GAAe,EAAS,SAAS,OAAa,GAAe,CAAC,GAAG,GAAmB,WAAQ,CAAO,GAAc,CAAC,GAAG,GAAkB,MAAI,WAAW,EAAM,cAAc,EAAK,MAAM,SAAS,UAAU,EAAK,GAAe,SAAS,UAAU,EAAK,SAAS,GAAe,eAAe,GAAK,GAAG,GAAU,YAAY,IAAA,GAAU,wBAAwB,QAAQ,gBAAgB,GAAY,GAAK,IAAA,GAAU,UAAU,GAAY,GAAK,IAAA,GAAU,eAAa,CAAO,GAAa,CAAE,uBAAwB,WAAW,CAAI,IAAW,GAAa,cAAc,GAAW,IAAM,GAAS,EAAE,IAAI,IAAQ,YAAW,GAAS,aAAa,QAAQ,GAAS,wBAAwB,SAAY,CAAC,EAAS,CAAC,IAAM,EAAUT,EAAO,EAAE,EAAE,GAAgB,GAAY,GAAU,EAAW,GAAoB,EAAaG,MAAgB,CAAC,GAAG,CAAC,EAAW,QAAQ,OAAO,GAAK,CAAC,eAAa,kBAAgB,eAAa,CAAC,EAAW,QAAc,EAAQ,GAAc,MAAM,GAAG,CAAC,GAAc,CAAC,EAAgB,OAAO,GAAG,EAAa,EAAgB,CAAC,EAAW,EAAQ,EAAE,EAAM,GAAgB,EAAW,EAAQ,EAAa,GAAI,GAAgB,IAAI,IAAI,EAAE,EAAE,EAAE,EAAU,QAAQ,OAAO,IAAI,CAAC,GAAK,CAAC,UAAQ,MAAA,EAAM,IAAA,EAAI,CAAC,EAAU,QAAQ,GAAMC,EAAI,GAASC,EAAM,EAAQ,EAAiB,EAAQ,aAAa,cAAc,IAAY,EAAQ,aAAa,cAAc,GAAS,CAAC,MAAK,EAAW,EAAE,EAAE,EAAM,GAAgB,EAAW,EAAE,EAAE,GAAI,GAAgB,EAAU,QAAQ,QAAQ,IAOznE,IAAI,EAAY,KAAK,KAAK,EAAa,GAAqB,MAAM,KAClF,EAAY,EAAS,MAAI,EAAY,GAAY,IAAc,GAAS,GAAY,GAAe,EAAC,CAAC,EAAS,EAAEF,MAAgB,CAAK,GAAY,UAAe,EAAU,QAAQ,MAAM,KAAK,GAAY,QAAQ,UAAU,IAAI,GAAiB,EAAK,CAAC,UAAQ,MAAM,EAAQ,WAAW,IAAI,EAAQ,WAAW,EAAQ,YAAY,CAAC,CAAC,UAAQ,MAAM,EAAQ,UAAU,IAAI,EAAQ,UAAU,EAAQ,aAAa,EAAK,EAAC,EAAE,EAAI,CAIpZ,IAAU,MAAc,CAAC,GAAU,IAAI,GAAY,EAAC,CAAC,GAAU,EAAE,MAAc,CAAC,GAAe,IAAI,GAAU,GAAK,EAAC,CAAC,GAAU,EAAE,MAAc,CAAC,GAAU,IAAI,EAAK,QAAQ,SAAW,EAAC,CAAC,EAAK,GAmC/L,IAAM,GAAgB,IAAyB,GAAK,GAAU,CAAC,EAAa,QAAQ,EAAS,IAAM,EAAQ,EAAK,CAAC,KAAK,EAAS,CAAC,CAAC,IAAI,EAAS,CAAC,GAAY,QAAQ,SAAS,CAAC,GAAG,EAAQ,SAAS,GAAgB,OAAO,SAAS,CAAG,EAAO,IAAU,EAAK,EAAW,IAAI,CAAC,GAAG,CAAC,EAAW,QAAQ,OAAO,GAAK,CAAC,eAAa,CAAC,EAAW,QAAc,EAAS,GAAc,EAAS,GAAG,GAAK,EAAK,EAAS,EAAW,EAAW,EAAO,GAAU,OAAW,CAAC,GAAG,CAAC,EAAW,QAAQ,OAAO,GAAK,CAAC,kBAAgB,eAAa,CAAC,EAAW,QAAc,EAAQ,GAAc,MAAY,EAAW,EAAa,EAAe,EAAY,EAAM,EAAE,EAAS,EAAE,KAAK,MAAM,EAAQ,IAAiB,EAAW,EAAK,KAAO,IAAW,SAAS,IAAW,QAAQ,GAAO,IAAE,EAAW,IACzvB,GAAS,EAAY,EAAM,EAAa,EAEtC,GAAG,IAAW,EAAG,OAAoB,EAAK,GAAY,EAAE,EAAG,IAAM,GAAK,EAAE,CAAO,GAAc,EAAE,CAAC,GAAG,EAAS,GAAG,IAAkB,CAAC,GAAc,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,EAAS,IAAI,CAAC,IAAM,EAAW,GAAU,CAAC,GAAG,GAAM,GAAK,KAAkB,EAAK,GAAI,CAAC,SAAS,CAAC,GAAG,GAAS,MAAM,EAAQ,OAAO,EAAQ,gBAAgB,EAAS,CAAC,YAAY,GAA4B,aAAW,gBAAgB,EAAkB,QAAQ,GAAY,YAAYG,MAAoB,GAAS,IAAkB,iBAAyB,aAAW,MAAM,EAAS,MAAM,EAAE,IAAI,EAAQ,QAAQ,GAAiB,OAAK,EAAI,CAAG,KAAU,GAAc,eAAe,GAAc,qBAAqB,QAAQ,GAAS,KAAO,QAAoB,EAAM,UAAU,CAAC,MAAM,GAAe,GAAG,GAAa,SAAS,CAAc,EAAK,EAAO,GAAG,CAAC,IAAI,GAAY,MAAM,GAAc,UAAU,mBAAmB,sBAAsB,GAAc,cAAc,QAAQ,YAAY,SAAS,YAAY,EAAa,QAAQ,IAAA,GAAU,SAASL,EAAS,IAAI,GAAe,EAAM,IAAqB,EAAK,KAAK,CAAC,MAAM,EAAU,GAAG,GAAS,aAAa,GAAG,EAAM,EAAE,MAAM,IAAW,SAAsB,EAAa,EAAM,CAAC,GAAG,EAAM,MAAM,MAAM,CAAC,GAAG,EAAM,OAAO,MAAM,GAAG,EAAW,CAAC,EAAE,GAAG,EAAe,EAAM,WAAW,CAAC,MAAM,CAAC,GAAG,GAAe,QAAQ,EAAa,QAAQ,OAAO,cAAc,EAAK,MAAM,SAAS,CAAC,aAAa,+BAA+B,UAAU,4BAA4B,2BAA2B,EAAkB,SAAS,CAC39C,EAAK,EAAO,OAAO,CAAC,IAAI,EAAM,UAAU,KAAK,SAAS,MAAM,CAAC,GAAG,EAAM,YAAY,gBAAgB,GAAU,MAAM,EAAU,OAAO,EAAU,aAAa,GAAY,OAAQ,EAAQ,EAAH,GAAK,QAAQ,EAAkB,QAAQ,OAAO,CAAC,QAAQ,GAAU,IAAI,aAAa,WAAW,SAAS,CAAC,MAAM,GAAG,CAAC,WAAW,CAAC,SAAS,IAAI,CAAC,SAAsB,EAAK,MAAM,CAAC,SAAS,QAAQ,IAAI,GAAG,MAAM,EAAU,OAAO,EAAU,IAAI,IAAW,sEAAsE,EAAE,EAChf,EAAK,EAAO,OAAO,CAAC,IAAI,GAAI,UAAU,KAAK,SAAS,MAAM,CAAC,GAAG,GAAI,YAAY,gBAAgB,GAAU,MAAM,EAAU,OAAO,EAAU,aAAa,GAAY,OAAQ,EAAQ,EAAH,GAAK,QAAQ,EAAkB,QAAQ,OAAO,CAAC,QAAQ,GAAU,GAAG,aAAa,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,WAAW,CAAC,SAAS,IAAI,CAAC,SAAsB,EAAK,MAAM,CAAC,SAAS,QAAQ,IAAI,GAAG,MAAM,EAAU,OAAO,EAAU,IAAI,GAAY,sEAAsE,EAAE,EAAE,GAAK,OAAO,EAAe,EAAK,MAAM,CAAC,MAAM,CAAC,GAAG,GAAmB,KAAK,EAAK,MAAM,GAAU,IAAK,EAAW,QAAN,MAAc,UAAU,EAAK,mBAAmB,mBAAmB,cAAc,EAAK,MAAM,SAAS,OAAO,EAAK,GAAU,QAAQ,aAAa,EAAW,gBAAgB,EAAe,GAAG,GAAc,CAAC,SAAS,GAAK,EAAE,KAAK,CAAC,EAAe,EAAK,GAAY,EAAE,EAAE,CAAC,CAAG,CAA25K,SAAS,GAAI,CAAC,gBAAc,aAAW,aAAW,kBAAgB,QAAQ,EAAkB,QAAM,QAAM,SAAA,EAAS,cAAY,MAAI,UAAQ,OAAK,GAAG,EAAM,CAAC,CAAC,IAAM,EAAQ,EAAa,EAAc,GAAG,CAAC,GAAG,CAAC,EAAW,SAAS,aAAc,OAAO,IAAQ,EAAE,EAAgB,EAAmB,IAAM,EAAW,EAAW,SAAS,aAAa,EAAY,EAAU,EAAW,EAAY,EAAU,EAAU,EAAiBM,EAAW,GAAG,IAAY,EAAM,EAAM,EAAE,EAAE,EAAU,IAAQ,EAAM,GAAG,OAAOA,EAAW,EAAgB,CAAmB,GAAQ,EAAc,EAAI,EAAM,EAAI,CAAC,GAAM,EAAM,EAAE,EAAc,EAAY,EAAO,CAAC,GAAM,IAAQ,EAAM,EAAE,EAAc,EAAY,EAAM,GAAM,IAAQ,EAAM,EAAE,EAAc,EAAY,EAAK,GAAM,EAAM,EAAE,EAAc,EAAQ,OAAoB,EAAK,SAAS,CAAC,aAAa,kBAAkB,EAAM,IAAI,KAAK,SAAS,GAAG,EAAM,MAAM,CAAC,GAAG,EAAY,QAAQ,GAAG,EAAI,KAAK,EAAM,KAAK,EAAO,KAAK,EAAK,IAAI,CAAC,SAAsB,EAAK,EAAO,IAAI,CAAC,MAAM,CAAC,GAAGC,EAAS,UAAQ,CAAC,EAAE,CAAG,UAAS,IAAa,CAAC,OAAoB,EAAM,UAAU,CAAC,MAAM,GAAkB,SAAS,CAAc,EAAK,MAAM,CAAC,MAAM,EAAY,SAAS,IAAI,EAAe,EAAK,IAAI,CAAC,MAAM,EAAY,SAAS,qBAAqB,EAAe,EAAK,IAAI,CAAC,MAAM,GAAe,SAAS,6CAA6C,EAAE,CAAC,CAAG,UAAS,IAAa,CAAC,OAAoB,EAAK,MAAM,CAAC,wBAAwB,CAAC,OAAO;;;;;;;;;;;;;;;;uBAgBroP,CAAC,CAAG,yEAhBs2B,GAAS,aAAa,CAAC,IAAI,GAAG,QAAQ,GAAG,eAAe,CAAC,cAAc,GAAM,iBAAiB,GAAM,CAAC,aAAa,CAAC,UAAU,OAAO,YAAY,EAAE,aAAa,EAAE,WAAW,OAAO,aAAa,EAAE,WAAW,EAAE,CAAC,aAAa,EAAE,CAAwB,EAAoB,GAAS,CAAC,MAAM,CAAC,KAAK,EAAY,MAAM,MAAM,WAAW,QAAQ,CAAC,KAAK,EAAY,kBAAkB,CAAC,CAAC,KAAK,CAAC,KAAK,EAAY,KAAK,MAAM,YAAY,QAAQ,CAAC,GAAK,GAAM,CAAC,YAAY,CAAC,uBAAuB,qBAAqB,CAAC,wBAAwB,GAAK,CAAC,MAAM,CAAC,KAAK,EAAY,KAAK,MAAM,QAAQ,QAAQ,CAAC,aAAa,SAAS,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,eAAe,eAAe,CAAC,MAAM,CAAC,aAAa,eAAe,cAAc,CAAC,CAAC,CAAC,aAAa,SAAS,wBAAwB,GAAK,CAAC,IAAI,CAAC,KAAK,EAAY,OAAO,MAAM,MAAM,CAAC,GAAG,GAAe,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,SAAS,CAAC,UAAU,CAAC,KAAK,EAAY,KAAK,MAAM,QAAQ,QAAQ,CAAC,OAAO,UAAU,UAAU,CAAC,aAAa,CAAC,OAAO,UAAU,UAAU,CAAC,aAAa,OAAO,CAAC,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,IAAI,EAAE,IAAI,IAAI,aAAa,EAAE,OAAO,GAAO,EAAM,YAAY,UAAU,CAAC,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,IAAI,EAAE,IAAI,GAAG,aAAa,EAAE,eAAe,GAAK,OAAO,GAAO,EAAM,YAAY,UAAU,CAAC,WAAW,CAAC,KAAK,EAAY,KAAK,MAAM,SAAS,QAAQ,CAAC,OAAO,UAAU,OAAO,CAAC,aAAa,CAAC,OAAO,UAAU,OAAO,CAAC,aAAa,OAAO,CAAC,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,IAAI,EAAE,IAAI,IAAI,aAAa,EAAE,OAAO,GAAO,EAAM,aAAa,UAAU,CAAC,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,IAAI,EAAE,IAAI,GAAG,aAAa,EAAE,eAAe,GAAK,OAAO,GAAO,EAAM,aAAa,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,SAAS,CAAC,KAAK,CAAC,KAAK,EAAY,QAAQ,MAAM,SAAS,CAAC,SAAS,CAAC,KAAK,EAAY,KAAK,MAAM,OAAO,QAAQ,CAAC,QAAQ,SAAS,MAAM,CAAC,aAAa,CAAC,OAAO,SAAS,QAAQ,CAAC,aAAa,SAAS,OAAO,GAAO,CAAC,EAAM,KAAK,CAAC,MAAM,CAAC,KAAK,EAAY,QAAQ,MAAM,QAAQ,aAAa,GAAM,OAAO,GAAO,CAAC,EAAM,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,SAAS,CAAC,YAAY,CAAC,KAAK,EAAY,QAAQ,MAAM,SAAS,aAAa,GAAM,CAAC,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,GAAG,IAAI,EAAE,IAAI,IAAI,KAAK,IAAI,OAAO,GAAO,CAAC,EAAM,YAAY,CAAC,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,EAAE,IAAI,EAAE,IAAI,IAAI,KAAK,IAAI,OAAO,GAAO,CAAC,EAAM,YAAY,CAAC,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,OAAO,GAAO,CAAC,EAAM,YAAY,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,aAAa,EAAE,CAAC,eAAe,CAAC,KAAK,EAAY,WAAW,MAAM,aAAa,OAAO,GAAO,CAAC,EAAM,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,SAAS,CAAC,cAAc,CAAC,KAAK,EAAY,QAAQ,MAAM,aAAa,aAAa,GAAM,CAAC,iBAAiB,CAAC,KAAK,EAAY,QAAQ,MAAM,OAAO,aAAa,GAAM,OAAO,GAAO,EAAM,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,IAAI,EAAE,IAAI,IAAI,aAAa,GAAG,eAAe,GAAK,OAAO,GAAO,CAAC,EAAM,kBAAkB,EAAM,cAAc,CAAC,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,IAAI,EAAE,IAAI,IAAI,aAAa,GAAG,eAAe,GAAK,OAAO,GAAO,CAAC,EAAM,kBAAkB,EAAM,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,MAAM,IAAI,EAAE,IAAI,IAAI,aAAa,GAAG,eAAe,GAAK,OAAO,GAAO,CAAC,EAAM,kBAAkB,EAAM,cAAc,CAAC,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,IAAI,EAAE,IAAI,IAAI,aAAa,GAAG,eAAe,GAAK,OAAO,GAAO,CAAC,EAAM,kBAAkB,EAAM,cAAc,CAAC,SAAS,CAAC,KAAK,EAAY,MAAM,MAAM,OAAO,aAAa,OAAO,OAAO,GAAO,CAAC,EAAM,kBAAkB,EAAM,cAAc,CAAC,eAAe,CAAC,KAAK,EAAY,MAAM,MAAM,WAAW,aAAa,kBAAkB,OAAO,GAAO,CAAC,EAAM,kBAAkB,EAAM,cAAc,CAAC,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,IAAI,EAAE,IAAI,IAAI,aAAa,GAAG,OAAO,GAAO,CAAC,EAAM,kBAAkB,EAAM,cAAc,CAAC,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,IAAI,EAAE,IAAI,EAAE,aAAa,GAAG,KAAK,GAAG,eAAe,GAAK,OAAO,GAAO,CAAC,EAAM,kBAAkB,EAAM,cAAc,CAAC,kBAAkB,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,GAAG,eAAe,GAAK,OAAO,GAAO,CAAC,EAAM,kBAAkB,EAAM,cAAc,CAAC,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,IAAI,EAAE,IAAI,GAAG,aAAa,EAAE,KAAK,EAAE,OAAO,GAAO,CAAC,EAAM,kBAAkB,EAAM,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAY,QAAQ,MAAM,OAAO,aAAa,GAAK,CAAC,UAAU,CAAC,KAAK,EAAY,MAAM,MAAM,OAAO,aAAa,kBAAkB,OAAO,GAAO,CAAC,EAAM,kBAAkB,CAAC,UAAU,CAAC,KAAK,EAAY,MAAM,MAAM,WAAW,OAAO,GAAO,CAAC,EAAM,kBAAkB,CAAC,WAAW,CAAC,KAAK,EAAY,MAAM,MAAM,OAAO,OAAO,GAAO,CAAC,EAAM,kBAAkB,CAAC,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,IAAI,EAAE,IAAI,IAAI,eAAe,GAAK,aAAa,GAAG,OAAO,GAAO,CAAC,EAAM,kBAAkB,CAAC,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,IAAI,EAAE,IAAI,IAAI,aAAa,GAAG,OAAO,GAAO,CAAC,EAAM,kBAAkB,CAAC,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,IAAI,EAAE,IAAI,IAAI,aAAa,GAAG,eAAe,GAAK,OAAO,GAAO,CAAC,EAAM,kBAAkB,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,YAAY,YAAY,CAAC,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,IAAI,EAAE,IAAI,IAAI,eAAe,GAAK,aAAa,EAAE,CAAC,EAgBrtM,GAAkB,CAAC,QAAQ,OAAO,MAAM,OAAO,OAAO,OAAO,aAAa,SAAS,WAAW,SAAS,cAAc,SAAS,MAAM,OAAO,WAAW,0BAA0B,SAAS,GAAG,SAAS,SAAS,QAAQ,sBAAsB,CAAO,EAAY,CAAC,SAAS,GAAG,aAAa,GAAG,CAAO,EAAY,CAAC,OAAO,EAAE,aAAa,GAAG,WAAW,IAAI,UAAU,SAAS,CAAO,GAAe,CAAC,OAAO,EAAE,QAAQ,GAAG,SAAS,IAAI,WAAW,IAAI,UAAU,SAAS,CAEze,GAAmB,CAAC,QAAQ,OAAO,SAAS,SAAS,MAAM,OAAO,OAAO,OAAO,SAAS,WAAW,CAAO,GAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,OAAO,SAAS,WAAW,QAAQ,OAAO,KAAK,WAAW,MAAM,OAAO,OAAO,OAAO,CAAO,GAAiB,CAAC,OAAO,OAAO,QAAQ,OAAO,aAAa,SAAS,WAAW,SAAS,SAAS,SAAS,WAAW,cAAc,OAAO,UAAU,OAAO,EAAE,QAAQ,EAAE,CAAO,GAAe,CAAC,QAAQ,OAAO,eAAe,gBAAgB,WAAW,SAAS,SAAS,WAAW,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,OAAO,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAE3lB,GAAmB,CAAC,QAAQ,OAAO,aAAa,SAAS,WAAW,SAAS,SAAS,SAAS,SAAS,WAAW,cAAc,OAAO,CAAO,GAAS,CAAC,aAAa,MAAM,WAAW,QAAQ,OAAO,UAAU,OAAO,OAAO,aAAa,SAAS,WAAW,SAAS,QAAQ,EAAE,IC9HxR,SAAwB,GAAqB,CAAC,OAAK,QAAM,QAAM,OAAK,aAAW,QAAM,YAAU,MAAI,OAAK,UAAQ,CAAC,CAAC,IAAM,EAAI,EAAU,EAAQ,EAAK,MAAM,MAAM,IAAI,GAAQ,EAAO,QAAQ,OAAO,KAAK,QAAa,CAAC,EAAU,EAAa,CAACC,EAAS,GAAS,GAAgB,EAAU,EAAM,GAAG,EAAU,EAAQ,EAAiB,EAAM,IAAU,EAAiB,EAAe,IAAU,EAAS,EAAa,YAAY,EAAa,OAAY,CAAC,EAAc,EAAiB,CAACA,EAAS,IAAwV,OAAlV,MAAc,CAAC,IAAM,EAAQ,EAAc,EAAiB,EAAE,EAAiB,EAAiB,EAAuB,EAAS,gBAAgB,CAAC,EAAiB,IAAU,EAAU,EAAQ,OAAO,EAAG,EAAa,GAAM,EAAK,GAAY,GAAM,EAAa,EAAK,EAAC,GAAS,UAAU,cAAc,EAAW,EAAC,CAAC,EAAU,EAAK,EAAc,EAAsB,EAAM,MAAM,CAAC,MAAM,CAAC,WAAW,EAAW,OAAO,OAAO,SAAS,WAAW,QAAQ,OAAO,cAAc,MAAM,SAAS,UAAU,eAAe,IAAY,SAAS,SAAS,IAAY,QAAQ,WAAW,aAAa,CAAC,SAAS,CAAc,EAAK,EAAI,CAAC,cAAc,GAAK,MAAM,CAAC,SAAS,OAAO,GAAG,EAAK,iBAAiB,MAAM,eAAe,MAAM,cAAc,OAAO,QAAQ,EAAE,WAAW,WAAW,MAAM,OAAO,UAAU,EAAU,CAAC,SAAS,EAAQ,QAAQ,EAAQ,IAAU,EAAQ,OAAO,EAAQ,OAAO,EAAQ,GAAS,EAAE,GAAuB,EAAK,EAAI,CAAC,MAAM,CAAC,SAAS,OAAO,GAAG,EAAK,QAAM,iBAAiB,MAAM,eAAe,MAAM,WAAW,WAAW,SAAS,WAAW,IAAI,EAAE,KAAK,EAAE,MAAM,OAAO,UAAU,EAAU,CAAC,SAAS,EAAQ,GAAG,EAAE,CAAC,GAAuB,EAAKC,EAAU,CAAC,SAAS,EAAQ,KAAK,EAAS,IAAgB,CAAC,IAAI,EAAU,EACjqD,EAAS,EAAS,MAAM,YAAY,IAAI,IAAU,CAAC,KAAK,EAAQ,MAAM,EAAQ,MAAM,IAAI,IAAI,IAAO,CAAC,OAAK,cAAc,IAAY,GAAG,GAAyB,OAAtB,QAAQ,IAAI,GAA8B,EAAK,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,IAAI,EAAE,KAAK,EAAE,SAAS,UAAU,MAAM,OAAO,UAAU,EAAU,CAAC,SAAsB,EAAK,EAAgB,CAAC,KAAK,OAAO,SAAS,IAAY,GAA4B,EAAK,MAAM,CAAC,MAAM,CAAC,QAAQ,OAAO,SAAS,OAAO,MAAM,OAAO,eAAe,IAAY,SAAS,SAAS,IAAY,QAAQ,WAAW,aAAa,IAAI,EAAE,CAAC,SAAS,EAAS,KAAK,EAAQ,IAA4B,EAAK,MAAM,CAAC,MAAM,CAAC,QAAQ,cAAc,SAAS,SAAS,WAAW,MAAM,SAAS,SAAS,CAAC,SAAS,EAAQ,MAAM,KAAK,CAAC,OAAK,gBAAc,GAAG,CAAC,IAAM,EAAU,GAAe,EAAS,OAAO,GAAS,EAAa,GAAW,EAAe,IAC50B,EAAa,GAAW,EAAe,IACvC,EAAU,GAAW,EAAe,IACpC,EAAe,CAAC,QAAQ,CAAC,UAAU,uBAAuB,WAAW,CAAC,GAAG,EAAkB,SAAS,EAAe,EAAE,MAAM,EAAa,EAAQ,CAAC,CAAC,QAAQ,CAAC,UAAU,sBAAsB,WAAW,CAAC,GAAG,EAAkB,SAAS,EAAe,EAAE,MAAM,EAAa,EAAQ,CAAC,CAAC,KAAK,CAAC,UAAU,wBAAwB,WAAW,CAAC,GAAG,EAAkB,SAAS,EAAe,EAAE,MAAM,EAAU,EAAQ,CAAC,CAAC,CAAC,OAAoB,EAAK,EAAO,IAAI,CAAC,SAAS,EAAe,QAAQ,EAAc,GAAM,UAAU,QAAQ,EAAc,GAAM,UAAU,KAAK,OAAO,MAAM,CAAC,QAAQ,eAAe,CAAC,SAAsB,EAAK,EAAI,CAAC,MAAM,CAAC,SAAS,OAAO,GAAG,EAAK,QAAM,iBAAiB,MAAM,eAAe,MAAM,QAAQ,EAAE,CAAC,SAAS,EAAK,EAAE,CAAC,EAAS,EAAgB,GAAE,CAAC,IAAe,EAAE,EAAE,CAAC,EAAgB,GAAE,EAAE,CAAC,CAAG,mCAbvjB,EAAU,GAAS,EAAkB,CACnR,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAYkxB,GAAqB,YAAY,kBAAkB,EAAoB,GAAqB,CAAC,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,aAAa,sBAAsB,YAAY,4EAA4E,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,EAAU,EAAE,IAAI,EAAE,IAAI,EAAU,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,UAAU,YAAY,+BAA+B,KAAK,EAAY,OAAO,aAAa,GAAG,KAAK,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,OAAO,KAAK,EAAY,KAAK,SAAS,WAAW,CAAC,UAAU,CAAC,KAAK,EAAY,KAAK,wBAAwB,GAAK,MAAM,YAAY,aAAa,OAAO,QAAQ,CAAC,OAAO,SAAS,QAAQ,CAAC,aAAa,CAAC,OAAO,SAAS,QAAQ,CAAC,CAAC,WAAW,CAAC,MAAM,cAAc,KAAK,EAAY,QAAQ,aAAa,GAAM,CAAC,MAAM,CAAC,MAAM,QAAQ,KAAK,EAAY,MAAM,aAAa,UAAU,CAAC,IAAI,CAAC,KAAK,EAAY,KAAK,MAAM,MAAM,aAAa,IAAI,wBAAwB,GAAK,0BAA0B,aAAa,QAAQ,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,aAAa,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,OAAO,KAAK,EAAY,QAAQ,aAAa,GAAK,YAAY,qEAAqE,CAAC"}