{"version":3,"file":"GridDrift.Cy88cd2B.mjs","names":["useState","useRef","useMemo","_Fragment","useRef"],"sources":["https:/framerusercontent.com/modules/Row7x1i4H7USrs7H2b3Z/H06BsXkPumPV7yzmGj8P/PixelButton.js","https:/framerusercontent.com/modules/7hvnFz6Da3AESYNMYRry/ub0aGl6aYWz3XLmX3Xvy/GridDrift.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useState,useRef,useMemo,useEffect,useLayoutEffect}from\"react\";import{motion}from\"framer-motion\";import{addPropertyControls,ControlType,useIsStaticRenderer,Link}from\"framer\";/**\n * PixelButton\n *\n * Button whose hover state loads in as a pixelated dissolve — the\n * new background color builds up in blocky cells on a canvas under\n * the label. Sweep or sprinkle order, optional dither shimmer,\n * primary/secondary variants.\n *\n * @framerDisableUnlink\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n */const EASE=[.45,0,.15,1];// Framer's Link resolves link descriptors (internal routes + external\n// URLs) correctly. It's a routing wrapper, not a styleable element,\n// so it wraps the styled/measured button rather than becoming it.\n// Deterministic per-cell hash so the dissolve pattern is stable\nfunction cellHash(i){let h=i*374761393+668265263|0;h=(h^h>>13)*1274126177|0;return((h^h>>16)>>>0)/4294967295;}// Framer color styles arrive as \"var(--token-xxx, <fallback>)\".\n// CSS handles that, but canvas fillStyle and motion color\n// interpolation can't — unwrap to the concrete fallback value.\nfunction resolveColor(color){if(!color)return\"rgba(0,0,0,0)\";const m=color.match(/var\\([^,]+,\\s*(.+)\\)\\s*$/);return m?m[1].trim():color;}export default function PixelButton(props){const{label,link,variant,primary,secondary,pixel,size,radius,font,style}=props;const isStatic=useIsStaticRenderer();const colors=variant===\"secondary\"?secondary:primary;const[hovering,setHovering]=useState(false);const[pastThreshold,setPastThreshold]=useState(false);const rootRef=useRef(null);const canvasRef=useRef(null);const progressRef=useRef(0);const lastRef=useRef(0);const[dims,setDims]=useState({w:0,h:0});useLayoutEffect(()=>{const el=rootRef.current;if(!el||typeof ResizeObserver===\"undefined\")return;const ro=new ResizeObserver(entries=>{const r=entries[0]?.contentRect;if(r)setDims({w:r.width,h:r.height});});ro.observe(el);return()=>ro.disconnect();},[]);const cols=Math.max(1,Math.ceil(dims.w/pixel.size));const rows=Math.max(1,Math.ceil(dims.h/pixel.size));// Per-cell activation thresholds, normalized to [0, 0.92] so\n// progress = 1 always fills every cell\nconst thresholds=useMemo(()=>{const t=new Float32Array(cols*rows);for(let r=0;r<rows;r++){for(let c=0;c<cols;c++){const i=r*cols+c;t[i]=pixel.mode===\"sweep\"?(c/Math.max(cols-1,1)*.65+cellHash(i)*.35)*.92:cellHash(i)*.92;}}return t;},[cols,rows,pixel.mode]);// ---- Dissolve loop: animates progress toward hover target and\n// paints the cell grid each frame, idling when settled ----\nuseEffect(()=>{const canvas=canvasRef.current;if(!canvas||dims.w===0||dims.h===0||isStatic)return;const dpr=Math.min(window.devicePixelRatio||1,2);canvas.width=dims.w*dpr;canvas.height=dims.h*dpr;const ctx=canvas.getContext(\"2d\");if(!ctx)return;ctx.scale(dpr,dpr);const px=pixel.size;const target=hovering?1:0;const speed=1/Math.max(pixel.speed,.1);const draw=p=>{ctx.clearRect(0,0,dims.w,dims.h);if(p<=0)return;ctx.fillStyle=resolveColor(colors.hoverBg);for(let r=0;r<rows;r++){for(let c=0;c<cols;c++){const t=thresholds[r*cols+c];if(p<=t)continue;const shimmering=pixel.shimmer&&p-t<.12;ctx.globalAlpha=shimmering?.45:1;ctx.fillRect(c*px,r*px,px,px);}}ctx.globalAlpha=1;};let raf=0;lastRef.current=performance.now();const tick=now=>{const dt=(now-lastRef.current)/1e3;lastRef.current=now;const p=progressRef.current;const next=target>p?Math.min(p+dt*speed,1):Math.max(p-dt*speed,0);progressRef.current=next;draw(next);setPastThreshold(next>.6);if(next!==target){raf=requestAnimationFrame(tick);}};// Repaint current state immediately (covers prop changes),\n// then animate if not already at target\ndraw(progressRef.current);setPastThreshold(progressRef.current>.6);if(progressRef.current!==target){raf=requestAnimationFrame(tick);}return()=>cancelAnimationFrame(raf);},[hovering,dims,cols,rows,thresholds,isStatic,colors.hoverBg,pixel.size,pixel.speed,pixel.shimmer]);const labelColor=resolveColor(pastThreshold?colors.hoverText:colors.text);const buttonStyle={...style,position:\"relative\",display:\"inline-flex\",alignItems:\"center\",justifyContent:\"center\",padding:`${size.paddingY}px ${size.paddingX}px`,background:resolveColor(colors.bg),border:`1px solid ${resolveColor(colors.border)}`,borderRadius:radius,overflow:\"hidden\",textDecoration:\"none\",cursor:\"pointer\",WebkitTapHighlightColor:\"transparent\"};const inner=/*#__PURE__*/_jsxs(_Fragment,{children:[!isStatic?/*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,\"aria-hidden\":true,style:{position:\"absolute\",inset:0,width:\"100%\",height:\"100%\",pointerEvents:\"none\"}}):null,/*#__PURE__*/_jsx(motion.span,{initial:false,animate:{color:labelColor},transition:{duration:.15},style:{position:\"relative\",zIndex:1,...font,whiteSpace:\"nowrap\"},children:label})]});return /*#__PURE__*/_jsxs(motion.div,{ref:rootRef,onHoverStart:()=>setHovering(true),onHoverEnd:()=>setHovering(false),style:buttonStyle,children:[inner,link&&!isStatic?/*#__PURE__*/_jsx(Link,{href:link,children:/*#__PURE__*/_jsx(\"a\",{\"aria-label\":label,style:{position:\"absolute\",inset:0,zIndex:2,display:\"block\"}})}):null]});}PixelButton.defaultProps={label:\"Learn More\",variant:\"primary\",primary:{bg:\"#111111\",text:\"#FFFFFF\",border:\"rgba(0,0,0,0)\",hoverBg:\"#FFFFFF\",hoverText:\"#111111\"},secondary:{bg:\"rgba(0,0,0,0)\",text:\"#111111\",border:\"#111111\",hoverBg:\"#111111\",hoverText:\"#FFFFFF\"},pixel:{size:6,speed:.45,mode:\"sweep\",shimmer:true},size:{paddingX:28,paddingY:16},radius:0,font:{family:\"Space Mono\",size:13,weight:\"Regular\",lineHeight:\"1em\",letterSpacing:\"0.08em\"}};addPropertyControls(PixelButton,{label:{type:ControlType.String,title:\"Label\",defaultValue:\"Learn More\"},link:{type:ControlType.Link,title:\"Link\"},variant:{type:ControlType.Enum,title:\"Variant\",options:[\"primary\",\"secondary\"],optionTitles:[\"Primary\",\"Secondary\"],displaySegmentedControl:true,defaultValue:\"primary\"},primary:{type:ControlType.Object,title:\"Primary\",icon:\"color\",controls:{bg:{type:ControlType.Color,title:\"BG\",defaultValue:\"#111111\"},text:{type:ControlType.Color,title:\"Text\",defaultValue:\"#FFFFFF\"},border:{type:ControlType.Color,title:\"Border\",defaultValue:\"rgba(0,0,0,0)\"},hoverBg:{type:ControlType.Color,title:\"Hover BG\",defaultValue:\"#FFFFFF\"},hoverText:{type:ControlType.Color,title:\"Hover Text\",defaultValue:\"#111111\"}},hidden:p=>p.variant!==\"primary\"},secondary:{type:ControlType.Object,title:\"Secondary\",icon:\"color\",controls:{bg:{type:ControlType.Color,title:\"BG\",defaultValue:\"rgba(0,0,0,0)\"},text:{type:ControlType.Color,title:\"Text\",defaultValue:\"#111111\"},border:{type:ControlType.Color,title:\"Border\",defaultValue:\"#111111\"},hoverBg:{type:ControlType.Color,title:\"Hover BG\",defaultValue:\"#111111\"},hoverText:{type:ControlType.Color,title:\"Hover Text\",defaultValue:\"#FFFFFF\"}},hidden:p=>p.variant!==\"secondary\"},pixel:{type:ControlType.Object,title:\"Pixels\",icon:\"effect\",controls:{size:{type:ControlType.Number,title:\"Size\",min:2,max:20,step:1,unit:\"px\",defaultValue:6},speed:{type:ControlType.Number,title:\"Duration\",min:.15,max:1.5,step:.05,unit:\"s\",defaultValue:.45},mode:{type:ControlType.Enum,title:\"Mode\",options:[\"sweep\",\"sprinkle\"],optionTitles:[\"Sweep\",\"Sprinkle\"],displaySegmentedControl:true,defaultValue:\"sweep\"},shimmer:{type:ControlType.Boolean,title:\"Shimmer\",defaultValue:true}}},size:{type:ControlType.Object,title:\"Size\",controls:{paddingX:{type:ControlType.Number,title:\"Padding X\",min:8,max:80,unit:\"px\",defaultValue:28},paddingY:{type:ControlType.Number,title:\"Padding Y\",min:4,max:48,unit:\"px\",defaultValue:16}}},radius:{type:ControlType.Number,title:\"Radius\",min:0,max:999,defaultValue:0},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultValue:PixelButton.defaultProps.font}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"PixelButton\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./PixelButton.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useRef,useEffect}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerIntrinsicWidth 1200\n * @framerIntrinsicHeight 600\n * @framerDisableUnlink\n */export default function GridDrift(props){const{columns=2,rows=2,inset=18,line={},dot={},motion={},style}=props;// Defensive reads — nested Object control values can arrive partial.\nconst lineColor=line?.color??\"rgba(0,0,0,0.10)\";const lineWidth=line?.width??1;const dotColor=dot?.color??\"rgba(0,0,0,0.18)\";const dotSize=dot?.size??9;const drift=motion?.drift??12;const ease=motion?.ease??.07;const isStatic=useIsStaticRenderer();const rootRef=useRef(null);const layerRef=useRef(null);const targetRef=useRef({x:0,y:0});const currentRef=useRef({x:0,y:0});const visibleRef=useRef(false);const rafRef=useRef(null);// Live settings ref so tuning props never restarts the loop.\nconst settingsRef=useRef({drift,ease});settingsRef.current.drift=drift;settingsRef.current.ease=ease;useEffect(()=>{if(isStatic)return;const root=rootRef.current;const layer=layerRef.current;if(!root||!layer)return;const lerp=(a,b,t)=>a+(b-a)*t;const clamp=v=>Math.max(-1.5,Math.min(1.5,v));const onMove=e=>{const r=root.getBoundingClientRect();if(r.width===0||r.height===0)return;targetRef.current.x=clamp((e.clientX-r.left)/r.width*2-1);targetRef.current.y=clamp((e.clientY-r.top)/r.height*2-1);};const tick=()=>{const{drift,ease}=settingsRef.current;const t=targetRef.current;const c=currentRef.current;// settle to rest when off-screen\nconst goalX=visibleRef.current?t.x:0;const goalY=visibleRef.current?t.y:0;c.x=lerp(c.x,goalX,ease);c.y=lerp(c.y,goalY,ease);layer.style.transform=`translate3d(${(-c.x*drift).toFixed(2)}px, ${(-c.y*drift).toFixed(2)}px, 0)`;rafRef.current=requestAnimationFrame(tick);};const io=new IntersectionObserver(([entry])=>{visibleRef.current=entry.isIntersecting;},{threshold:0});io.observe(root);window.addEventListener(\"pointermove\",onMove,{passive:true});rafRef.current=requestAnimationFrame(tick);return()=>{window.removeEventListener(\"pointermove\",onMove);io.disconnect();if(rafRef.current!=null)cancelAnimationFrame(rafRef.current);};},[isStatic]);const xs=latticePositions(columns,inset);const ys=latticePositions(rows,inset);return /*#__PURE__*/_jsx(\"div\",{ref:rootRef,style:{width:\"100%\",height:\"100%\",...style,position:\"relative\",overflow:\"hidden\"},children:/*#__PURE__*/_jsxs(\"div\",{ref:layerRef,style:{position:\"absolute\",inset:0,pointerEvents:\"none\",willChange:\"transform\"},children:[xs.map((x,i)=>/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",top:\"-15%\",height:\"130%\",left:`${x}%`,width:`${lineWidth}px`,background:lineColor,transform:\"translateX(-50%)\"}},\"v\"+i)),ys.map((y,i)=>/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",left:\"-15%\",width:\"130%\",top:`${y}%`,height:`${lineWidth}px`,background:lineColor,transform:\"translateY(-50%)\"}},\"h\"+i)),dotSize>0&&xs.map((x,i)=>ys.map((y,j)=>/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",left:`${x}%`,top:`${y}%`,width:`${dotSize}px`,height:`${dotSize}px`,borderRadius:\"50%\",background:dotColor,transform:\"translate(-50%, -50%)\"}},`d${i}-${j}`)))]})});}// Evenly spaced positions (in %), inset from each edge. Single line centers.\nfunction latticePositions(n,inset){const a=inset;const b=100-inset;if(n<=1)return[(a+b)/2];return Array.from({length:n},(_,i)=>a+(b-a)*i/(n-1));}GridDrift.defaultProps={columns:2,rows:2,inset:18,line:{color:\"rgba(0,0,0,0.10)\",width:1},dot:{color:\"rgba(0,0,0,0.18)\",size:9},motion:{drift:12,ease:.07}};addPropertyControls(GridDrift,{columns:{type:ControlType.Number,title:\"Columns\",min:1,max:8,step:1,defaultValue:2,displayStepper:true},rows:{type:ControlType.Number,title:\"Rows\",min:1,max:8,step:1,defaultValue:2,displayStepper:true},inset:{type:ControlType.Number,title:\"Inset\",min:0,max:45,step:1,unit:\"%\",defaultValue:18},line:{type:ControlType.Object,title:\"Lines\",controls:{color:{type:ControlType.Color,title:\"Color\",defaultValue:\"rgba(0,0,0,0.10)\"},width:{type:ControlType.Number,title:\"Width\",min:1,max:4,step:1,unit:\"px\",defaultValue:1}}},dot:{type:ControlType.Object,title:\"Dots\",controls:{color:{type:ControlType.Color,title:\"Color\",defaultValue:\"rgba(0,0,0,0.18)\"},size:{type:ControlType.Number,title:\"Size\",min:0,max:20,step:1,unit:\"px\",defaultValue:9}}},motion:{type:ControlType.Object,title:\"Motion\",controls:{drift:{type:ControlType.Number,title:\"Drift\",min:0,max:40,step:1,unit:\"px\",defaultValue:12},ease:{type:ControlType.Number,title:\"Ease\",min:.02,max:.18,step:.005,defaultValue:.07}}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"GridDrift\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"600\",\"framerDisableUnlink\":\"\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicWidth\":\"1200\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./GridDrift.map"],"mappings":"kSAeA,SAAS,EAAS,EAAE,CAAC,IAAI,EAAE,EAAE,UAAU,UAAU,EAA2B,MAAzB,IAAG,EAAE,GAAG,IAAI,WAAW,IAAU,EAAE,GAAG,MAAM,GAAG,UAAW,CAG7G,SAAS,EAAa,EAAM,CAAC,GAAG,CAAC,EAAM,MAAM,gBAAgB,IAAM,EAAE,EAAM,MAAM,0BAA0B,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,CAAM,CAAC,SAAwB,EAAY,EAAM,CAAC,GAAK,CAAC,QAAM,OAAK,UAAQ,UAAQ,YAAU,QAAM,OAAK,SAAO,OAAK,SAAO,EAAY,EAAS,EAAoB,EAAQ,EAAO,IAAU,YAAY,EAAU,EAAa,CAAC,EAAS,GAAaA,EAAS,EAAK,EAAO,CAAC,EAAc,GAAkBA,EAAS,EAAK,EAAQ,EAAQC,EAAO,IAAI,EAAQ,EAAUA,EAAO,IAAI,EAAQ,EAAYA,EAAO,CAAC,EAAQ,EAAQA,EAAO,CAAC,EAAO,CAAC,EAAK,GAASD,EAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,MAAoB,CAAC,IAAM,EAAG,EAAQ,QAAQ,GAAG,CAAC,GAAI,OAAO,eAAiB,IAAY,OAAO,IAAM,EAAG,IAAI,eAAe,GAAS,CAAC,IAAM,EAAE,EAAQ,EAAE,EAAE,YAAe,GAAE,EAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,CAAE,CAAC,EAAiB,OAAf,EAAG,QAAQ,CAAE,MAAY,EAAG,WAAW,CAAE,EAAE,CAAC,CAAC,EAAE,IAAM,EAAK,KAAK,IAAI,EAAE,KAAK,KAAK,EAAK,EAAE,EAAM,IAAI,CAAC,EAAQ,EAAK,KAAK,IAAI,EAAE,KAAK,KAAK,EAAK,EAAE,EAAM,IAAI,CAAC,EAEj7B,EAAWE,MAAY,CAAC,IAAM,EAAE,IAAI,aAAa,EAAK,CAAI,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAK,IAAK,IAAI,IAAI,EAAE,EAAE,EAAE,EAAK,IAAI,CAAC,IAAM,EAAE,EAAE,EAAK,EAAE,EAAE,GAAG,EAAM,OAAO,SAAS,EAAE,KAAK,IAAI,EAAK,EAAE,CAAC,EAAE,IAAI,EAAS,CAAC,EAAE,KAAK,IAAI,EAAS,CAAC,EAAE,GAAI,CAAE,OAAO,CAAE,EAAE,CAAC,EAAK,EAAK,EAAM,IAAI,CAAC,EAE/P,MAAc,CAAC,IAAM,EAAO,EAAU,QAAQ,GAAG,CAAC,GAAQ,EAAK,IAAI,GAAG,EAAK,IAAI,GAAG,EAAS,OAAO,IAAM,EAAI,KAAK,IAAI,EAAO,kBAAkB,EAAE,CAAC,EAAE,EAAO,MAAM,EAAK,EAAE,EAAI,EAAO,OAAO,EAAK,EAAE,EAAI,IAAM,EAAI,EAAO,WAAW,IAAI,EAAE,GAAG,CAAC,EAAI,OAAO,EAAI,MAAM,EAAI,CAAG,EAAE,IAAM,EAAG,EAAM,KAAW,EAAO,KAAmB,EAAM,EAAE,KAAK,IAAI,EAAM,MAAM,EAAE,EAAQ,EAAK,GAAG,CAAC,KAAI,UAAU,EAAE,EAAE,EAAK,EAAE,EAAK,CAAC,EAAK,KAAG,GAAS,GAAI,UAAU,EAAa,EAAO,OAAO,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAK,IAAK,IAAI,IAAI,EAAE,EAAE,EAAE,EAAK,IAAI,CAAC,IAAM,EAAE,EAAW,EAAE,EAAK,GAAG,GAAG,GAAG,EAAE,SAAS,IAAM,EAAW,EAAM,SAAS,EAAE,EAAE,IAAI,EAAI,YAAY,EAAW,IAAI,EAAE,EAAI,SAAS,EAAE,EAAG,EAAE,EAAG,EAAG,CAAE,CAAE,CAAE,EAAI,YAAY,CAAzN,CAA2N,EAAM,EAAI,EAAE,EAAQ,QAAQ,YAAY,IAAI,EAAE,IAAM,EAAK,GAAK,CAAC,IAAM,GAAI,EAAI,EAAQ,SAAS,IAAI,EAAQ,QAAQ,EAAI,IAAM,EAAE,EAAY,QAAc,EAAK,EAAO,EAAE,KAAK,IAAI,EAAE,EAAG,EAAM,CAAC,EAAE,KAAK,IAAI,EAAE,EAAG,EAAM,CAAC,EAAE,EAAY,QAAQ,EAAK,EAAK,CAAI,EAAE,EAAiB,EAAK,EAAE,EAAK,IAAO,IAAQ,EAAI,sBAAsB,CAAI,EAAG,EAEh2B,OAArI,EAAK,EAAY,OAAO,EAAE,EAAiB,EAAY,QAAQ,EAAE,EAAK,EAAY,UAAU,IAAQ,EAAI,sBAAsB,CAAI,OAAa,qBAAqB,CAAG,CAAE,EAAE,CAAC,EAAS,EAAK,EAAK,EAAK,EAAW,EAAS,EAAO,QAAQ,EAAM,KAAK,EAAM,MAAM,EAAM,OAAO,CAAC,EAAE,IAAM,EAAW,EAAa,EAAc,EAAO,UAAU,EAAO,IAAI,EAAQ,EAAY,CAAC,GAAG,EAAM,SAAS,WAAW,QAAQ,cAAc,WAAW,SAAS,eAAe,SAAS,QAAQ,GAAG,EAAK,SAAS,KAAK,EAAK,SAAS,IAAI,WAAW,EAAa,EAAO,EAAE,EAAE,OAAO,aAAa,EAAa,EAAO,MAAM,IAAI,aAAa,EAAO,SAAS,SAAS,eAAe,OAAO,OAAO,UAAU,wBAAwB,aAAa,EAAQ,EAAmB,EAAMC,EAAU,CAAC,SAAS,CAAE,EAA4J,KAAtI,EAAK,SAAS,CAAC,IAAI,EAAU,cAAc,GAAK,MAAM,CAAC,SAAS,WAAW,MAAM,EAAE,MAAM,OAAO,OAAO,OAAO,cAAc,MAAM,CAAC,CAAC,EAAoB,EAAK,EAAO,KAAK,CAAC,QAAQ,GAAM,QAAQ,CAAC,MAAM,CAAU,EAAE,WAAW,CAAC,SAAS,GAAG,EAAE,MAAM,CAAC,SAAS,WAAW,OAAO,EAAE,GAAG,EAAK,WAAW,QAAQ,EAAE,SAAS,CAAK,CAAC,CAAC,CAAC,CAAC,EAAE,OAAoB,EAAM,EAAO,IAAI,CAAC,IAAI,EAAQ,iBAAiB,EAAY,EAAI,EAAE,eAAe,EAAY,EAAK,EAAE,MAAM,EAAY,SAAS,CAAC,EAAM,GAAM,CAAC,EAAsB,EAAK,EAAK,CAAC,KAAK,EAAK,SAAsB,EAAK,IAAI,CAAC,aAAa,EAAM,MAAM,CAAC,SAAS,WAAW,MAAM,EAAE,OAAO,EAAE,QAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAE,qBAxBz0C,IAAqE,IAAkC,IAA6E,EAwBspC,EAAY,aAAa,CAAC,MAAM,aAAa,QAAQ,UAAU,QAAQ,CAAC,GAAG,UAAU,KAAK,UAAU,OAAO,gBAAgB,QAAQ,UAAU,UAAU,SAAS,EAAE,UAAU,CAAC,GAAG,gBAAgB,KAAK,UAAU,OAAO,UAAU,QAAQ,UAAU,UAAU,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,QAAQ,QAAQ,EAAI,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,aAAa,KAAK,GAAG,OAAO,UAAU,WAAW,MAAM,cAAc,QAAQ,CAAC,EAAE,EAAoB,EAAY,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,YAAY,EAAE,KAAK,CAAC,KAAK,EAAY,KAAK,MAAM,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAY,KAAK,MAAM,UAAU,QAAQ,CAAC,UAAU,WAAW,EAAE,aAAa,CAAC,UAAU,WAAW,EAAE,wBAAwB,GAAK,aAAa,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,KAAK,QAAQ,SAAS,CAAC,GAAG,CAAC,KAAK,EAAY,MAAM,MAAM,KAAK,aAAa,SAAS,EAAE,KAAK,CAAC,KAAK,EAAY,MAAM,MAAM,OAAO,aAAa,SAAS,EAAE,OAAO,CAAC,KAAK,EAAY,MAAM,MAAM,SAAS,aAAa,eAAe,EAAE,QAAQ,CAAC,KAAK,EAAY,MAAM,MAAM,WAAW,aAAa,SAAS,EAAE,UAAU,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,SAAS,CAAC,EAAE,OAAO,GAAG,EAAE,UAAU,SAAS,EAAE,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,KAAK,QAAQ,SAAS,CAAC,GAAG,CAAC,KAAK,EAAY,MAAM,MAAM,KAAK,aAAa,eAAe,EAAE,KAAK,CAAC,KAAK,EAAY,MAAM,MAAM,OAAO,aAAa,SAAS,EAAE,OAAO,CAAC,KAAK,EAAY,MAAM,MAAM,SAAS,aAAa,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAY,MAAM,MAAM,WAAW,aAAa,SAAS,EAAE,UAAU,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,SAAS,CAAC,EAAE,OAAO,GAAG,EAAE,UAAU,WAAW,EAAE,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,KAAK,SAAS,SAAS,CAAC,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,KAAK,KAAK,aAAa,CAAC,EAAE,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,aAAa,GAAG,EAAE,KAAK,CAAC,KAAK,EAAY,KAAK,MAAM,OAAO,QAAQ,CAAC,QAAQ,UAAU,EAAE,aAAa,CAAC,QAAQ,UAAU,EAAE,wBAAwB,GAAK,aAAa,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAY,QAAQ,MAAM,UAAU,aAAa,EAAI,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,SAAS,CAAC,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,IAAI,EAAE,IAAI,GAAG,KAAK,KAAK,aAAa,EAAE,EAAE,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,IAAI,EAAE,IAAI,GAAG,KAAK,KAAK,aAAa,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,IAAI,EAAE,IAAI,IAAI,aAAa,CAAC,EAAE,KAAK,CAAC,KAAK,EAAY,KAAK,MAAM,OAAO,SAAS,WAAW,aAAa,EAAY,aAAa,IAAI,CAAC,CAAC,KClBx7H,SAAwB,EAAU,EAAM,CAAC,GAAK,CAAC,UAAQ,EAAE,OAAK,EAAE,QAAM,GAAG,OAAK,CAAC,EAAE,MAAI,CAAC,EAAE,SAAO,CAAC,EAAE,SAAO,EACtG,EAAU,GAAM,OAAO,mBAAyB,EAAU,GAAM,OAAO,EAAQ,EAAS,GAAK,OAAO,mBAAyB,EAAQ,GAAK,MAAM,EAAQ,EAAM,GAAQ,OAAO,GAAS,EAAK,GAAQ,MAAM,IAAU,EAAS,EAAoB,EAAQ,EAAQC,EAAO,IAAI,EAAQ,EAASA,EAAO,IAAI,EAAQ,EAAUA,EAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAQ,EAAWA,EAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAQ,EAAWA,EAAO,EAAK,EAAQ,EAAOA,EAAO,IAAI,EACra,EAAYA,EAAO,CAAC,QAAM,MAAI,CAAC,EAAE,EAAY,QAAQ,MAAM,EAAM,EAAY,QAAQ,KAAK,EAAK,MAAc,CAAC,GAAG,EAAS,OAAO,IAAM,EAAK,EAAQ,QAAc,EAAM,EAAS,QAAQ,GAAG,CAAC,GAAM,CAAC,EAAM,OAAO,IAAM,GAAM,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAQ,EAAM,GAAG,KAAK,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,EAAQ,EAAO,GAAG,CAAC,IAAM,EAAE,EAAK,sBAAsB,EAAK,EAAE,QAAQ,GAAG,EAAE,SAAS,IAAS,EAAU,QAAQ,EAAE,GAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,EAAU,QAAQ,EAAE,GAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,EAAQ,MAAS,CAAC,GAAK,CAAC,QAAM,QAAM,EAAY,QAAc,EAAE,EAAU,QAAc,EAAE,EAAW,QAChlB,EAAM,EAAW,QAAQ,EAAE,EAAE,EAAQ,EAAM,EAAW,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,EAAK,EAAE,EAAE,EAAM,CAAI,EAAE,EAAE,EAAE,EAAK,EAAE,EAAE,EAAM,CAAI,EAAE,EAAM,MAAM,UAAU,gBAAgB,CAAC,EAAE,EAAE,EAAA,CAAO,QAAQ,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,EAAA,CAAO,QAAQ,CAAC,EAAE,QAAQ,EAAO,QAAQ,sBAAsB,CAAI,CAAE,EAAQ,EAAG,IAAI,sBAAsB,CAAC,KAAS,CAAC,EAAW,QAAQ,EAAM,cAAe,EAAE,CAAC,UAAU,CAAC,CAAC,EAA2H,OAAzH,EAAG,QAAQ,CAAI,EAAE,EAAO,iBAAiB,cAAc,EAAO,CAAC,QAAQ,EAAI,CAAC,EAAE,EAAO,QAAQ,sBAAsB,CAAI,MAAY,CAAC,EAAO,oBAAoB,cAAc,CAAM,EAAE,EAAG,WAAW,EAAK,EAAO,SAAS,MAAK,qBAAqB,EAAO,OAAO,CAAE,CAAE,EAAE,CAAC,CAAQ,CAAC,EAAE,IAAM,EAAG,EAAiB,EAAQ,CAAK,EAAQ,EAAG,EAAiB,EAAK,CAAK,EAAE,OAAoB,EAAK,MAAM,CAAC,IAAI,EAAQ,MAAM,CAAC,MAAM,OAAO,OAAO,OAAO,GAAG,EAAM,SAAS,WAAW,SAAS,QAAQ,EAAE,SAAsB,EAAM,MAAM,CAAC,IAAI,EAAS,MAAM,CAAC,SAAS,WAAW,MAAM,EAAE,cAAc,OAAO,WAAW,WAAW,EAAE,SAAS,CAAC,EAAG,KAAK,EAAE,IAAiB,EAAK,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,IAAI,OAAO,OAAO,OAAO,KAAK,GAAG,EAAE,GAAG,MAAM,GAAG,EAAU,IAAI,WAAW,EAAU,UAAU,kBAAkB,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,EAAG,KAAK,EAAE,IAAiB,EAAK,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,KAAK,OAAO,MAAM,OAAO,IAAI,GAAG,EAAE,GAAG,OAAO,GAAG,EAAU,IAAI,WAAW,EAAU,UAAU,kBAAkB,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,EAAQ,GAAG,EAAG,KAAK,EAAE,IAAI,EAAG,KAAK,EAAE,IAAiB,EAAK,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,KAAK,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,MAAM,GAAG,EAAQ,IAAI,OAAO,GAAG,EAAQ,IAAI,aAAa,MAAM,WAAW,EAAS,UAAU,uBAAuB,CAAC,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CACjlD,SAAS,EAAiB,EAAE,EAAM,CAAC,IAAM,EAAE,EAAY,EAAE,IAAI,EAA8B,OAArB,GAAG,EAAQ,EAAE,EAAE,GAAG,CAAC,EAAS,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,CAAE,qBAVxF,IAAoC,IAAwE,EAUnB,EAAU,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,mBAAmB,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,mBAAmB,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,EAAE,EAAoB,EAAU,CAAC,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,eAAe,EAAI,EAAE,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,eAAe,EAAI,EAAE,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,KAAK,IAAI,aAAa,EAAE,EAAE,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,SAAS,CAAC,MAAM,CAAC,KAAK,EAAY,MAAM,MAAM,QAAQ,aAAa,kBAAkB,EAAE,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,EAAY,MAAM,MAAM,QAAQ,aAAa,kBAAkB,EAAE,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,SAAS,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,KAAK,KAAK,aAAa,EAAE,EAAE,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC"}