{"version":3,"file":"PathReveal.CkWukVAZ.mjs","names":["React"],"sources":["https:/framerusercontent.com/modules/dp6Tpe7qrIY1nmhu1gw8/crTP4GhB1UI34YiFyin6/PathReveal.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import React,{useEffect,useLayoutEffect}from\"react\";import{motion,useTransform,useMotionValue,animate}from\"framer-motion\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";const clamp01=n=>Math.max(0,Math.min(1,n));const uid=()=>typeof crypto!==\"undefined\"&&crypto.randomUUID?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;const isFramerLocalSpecifier=value=>value.startsWith(\"#framer/\")||value.startsWith(\"ssg-module-not-found:\");const extractPathsFromSVG=svgContent=>{const parser=new DOMParser;const svgDoc=parser.parseFromString(svgContent,\"image/svg+xml\");const pathElements=Array.from(svgDoc.querySelectorAll(\"path\"));const items=pathElements.map(p=>{const d=p.getAttribute(\"d\");if(!d)return null;return{d,stroke:p.getAttribute(\"stroke\"),fill:p.getAttribute(\"fill\"),strokeOpacity:p.getAttribute(\"stroke-opacity\"),fillOpacity:p.getAttribute(\"fill-opacity\"),strokeLinecap:p.getAttribute(\"stroke-linecap\"),strokeLinejoin:p.getAttribute(\"stroke-linejoin\")};}).filter(x=>!!x);const lengths=[];let longestPathLength=0;let maxPathWidth=0;let maxPathHeight=0;if(pathElements.length>0){const tempSvg=document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\");tempSvg.style.position=\"absolute\";tempSvg.style.visibility=\"hidden\";document.body.appendChild(tempSvg);items.forEach(it=>{const tempPath=document.createElementNS(\"http://www.w3.org/2000/svg\",\"path\");tempPath.setAttribute(\"d\",it.d||\"\");tempSvg.appendChild(tempPath);const pathLength=tempPath.getTotalLength();lengths.push(pathLength);longestPathLength=Math.max(longestPathLength,pathLength);const boundingBox=tempPath.getBBox();maxPathWidth=Math.max(maxPathWidth,boundingBox.width);maxPathHeight=Math.max(maxPathHeight,boundingBox.height);});document.body.removeChild(tempSvg);}return{items,lengths,longestPathLength,maxPathWidth,maxPathHeight};};const FALLBACK_SVG=`\n<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M12.4952 18.5868L16.5874 20.7373C16.7603 20.8282 16.9552 20.8688 17.15 20.8544C17.3448 20.84 17.5316 20.7713 17.6893 20.656C17.847 20.5408 17.9692 20.3836 18.042 20.2023C18.1148 20.0211 18.1352 19.823 18.1011 19.6307L17.3181 15.0792C17.289 14.9114 17.3013 14.739 17.3541 14.577C17.4069 14.4151 17.4984 14.2685 17.6209 14.1501L20.9301 10.9243C21.0709 10.7888 21.1707 10.6166 21.2184 10.4271C21.2661 10.2377 21.2597 10.0387 21.1999 9.8527C21.14 9.66672 21.0292 9.50127 20.8801 9.37514C20.7309 9.24902 20.5493 9.16728 20.356 9.13923L15.7836 8.48155C15.6163 8.45643 15.4577 8.39105 15.3213 8.29103C15.1849 8.19102 15.0749 8.05936 15.0006 7.90739L12.9128 3.73168C12.8273 3.55518 12.6938 3.40633 12.5276 3.30218C12.3615 3.19803 12.1693 3.14279 11.9732 3.14279C11.7771 3.14279 11.585 3.19803 11.4188 3.30218C11.2526 3.40633 11.1192 3.55518 11.0337 3.73168L8.94584 7.90739C8.87161 8.05936 8.76156 8.19102 8.62518 8.29103C8.48879 8.39105 8.33015 8.45643 8.16289 8.48155L3.65312 9.13923C3.45894 9.16566 3.27611 9.24622 3.12556 9.37169C2.97502 9.49716 2.86283 9.66248 2.80183 9.84872C2.74084 10.035 2.73351 10.2346 2.78067 10.4248C2.82783 10.6151 2.92759 10.7882 3.06853 10.9243L6.37778 14.1501C6.5002 14.2685 6.5918 14.4151 6.64457 14.577C6.69734 14.739 6.70968 14.9114 6.68052 15.0792L5.89757 19.6307C5.86341 19.823 5.88388 20.0211 5.95667 20.2023C6.02946 20.3836 6.15164 20.5408 6.30932 20.656C6.46701 20.7713 6.65387 20.84 6.84867 20.8544C7.04347 20.8688 7.23838 20.8282 7.41126 20.7373L11.5035 18.5868C11.6558 18.5045 11.8262 18.4615 11.9993 18.4615C12.1724 18.4615 12.3428 18.5045 12.4952 18.5868Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</svg>\n`;/**\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n * @framerIntrinsicWidth 200\n * @framerIntrinsicHeight 200\n */export default function PathReveal(props){const{svgFile,svgCode,inputType,beamColor,beamWidth,opacity,progress,onViewOnce,onViewThreshold,onViewDuration,onViewDelay,onViewEase,alignX,alignY,offsetX,offsetY,responsive,lockAspectRatio,colorMode}=props;const groupRef=React.useRef(null);const[pathItems,setPathItems]=React.useState([]);const sectionProgressMV=useMotionValue(0);const opacityStart=opacity&&typeof opacity.start===\"number\"?opacity.start:0;const opacityEnd=opacity&&typeof opacity.end===\"number\"?opacity.end:1;const rangeStart=Math.max(0,Math.min(1,progress?.start??0));const rangeEnd=Math.max(0,Math.min(1,progress?.end??1));const pathDrawProgress=useTransform(sectionProgressMV,p=>rangeStart+(rangeEnd-rangeStart)*(Number(p)||0));const[pathProgressValue,setPathProgressValue]=React.useState(()=>{const initial=pathDrawProgress?.get?.();return typeof initial===\"number\"?initial:rangeStart;});useEffect(()=>{const current=pathDrawProgress?.get?.();if(typeof current===\"number\")setPathProgressValue(current);const unsub=pathDrawProgress.onChange(v=>setPathProgressValue(v));return()=>unsub&&unsub();},[pathDrawProgress,rangeStart,rangeEnd]);const svgRef=React.useRef(null);const containerRef=React.useRef(null);const zoomProbeRef=React.useRef(null);const[viewBox,setViewBox]=React.useState(undefined);const[aspectRatio,setAspectRatio]=React.useState(null);// Allow 0..50 in controls: keep internal value >= 0\nconst safeBeamWidth=Math.max(0,Number(beamWidth)||0);const[computedStrokeWidth,setComputedStrokeWidth]=React.useState(safeBeamWidth);const[maxPathWidth,setMaxPathWidth]=React.useState(0);const[maxPathHeight,setMaxPathHeight]=React.useState(0);// ===== SVG LOADING =====\nuseEffect(()=>{let cancelled=false;const setItemsAndLengths=(items,lengths)=>{if(cancelled)return;setPathItems(items.map((it,i)=>({id:uid(),d:it.d,length:lengths[i]??0,stroke:it.stroke,fill:it.fill,strokeOpacity:it.strokeOpacity,fillOpacity:it.fillOpacity,strokeLinecap:it.strokeLinecap,strokeLinejoin:it.strokeLinejoin})));};const run=async()=>{try{if(inputType===\"file\"&&svgFile){const val=String(svgFile);if(isFramerLocalSpecifier(val)){const result=extractPathsFromSVG(FALLBACK_SVG);setItemsAndLengths(result.items,result.lengths);return;}const txt=await fetch(val).then(r=>r.text());const result=extractPathsFromSVG(txt);setItemsAndLengths(result.items,result.lengths);return;}if(inputType===\"code\"&&svgCode){const result=extractPathsFromSVG(String(svgCode));setItemsAndLengths(result.items,result.lengths);return;}const result=extractPathsFromSVG(FALLBACK_SVG);setItemsAndLengths(result.items,result.lengths);}catch{const result=extractPathsFromSVG(FALLBACK_SVG);setItemsAndLengths(result.items,result.lengths);}};if(typeof window===\"undefined\"){const result=extractPathsFromSVG(FALLBACK_SVG);setItemsAndLengths(result.items,result.lengths);return;}run();return()=>{cancelled=true;};},[inputType,svgFile,svgCode]);// ===== ON VIEW =====\nuseEffect(()=>{const el=containerRef.current;if(!el)return;if(RenderTarget.hasRestrictions()){sectionProgressMV.set(1);return;}sectionProgressMV.set(0);let hasPlayed=false;let controls=null;const easeMap={linear:[0,0,1,1],easeIn:[.42,0,1,1],easeOut:[0,0,.58,1],easeInOut:[.42,0,.58,1]};const startAnim=()=>{if(controls?.stop)controls.stop();sectionProgressMV.set(0);controls=animate(sectionProgressMV,1,{duration:Math.max(.01,Number(onViewDuration)||1),delay:Math.max(0,Number(onViewDelay)||0),ease:easeMap[String(onViewEase)]??easeMap.easeInOut});};const io=new IntersectionObserver(entries=>{const entry=entries[0];if(!entry)return;if(entry.isIntersecting){if(onViewOnce&&hasPlayed)return;hasPlayed=true;startAnim();}else{if(!onViewOnce){if(controls?.stop)controls.stop();sectionProgressMV.set(0);}}},{threshold:clamp01(Number(onViewThreshold)??.2)});io.observe(el);return()=>{if(controls?.stop)controls.stop();io.disconnect();};},[onViewOnce,onViewThreshold,onViewDuration,onViewDelay,onViewEase,sectionProgressMV]);// ===== VIEWBOX + ASPECT =====\nuseLayoutEffect(()=>{if(!pathItems.length||!groupRef.current)return;const bbox=groupRef.current.getBBox();if(bbox&&bbox.width>0&&bbox.height>0){const strokePadding=Math.max(0,(computedStrokeWidth||0)/2);const vb=`${bbox.x-strokePadding} ${bbox.y-strokePadding} ${bbox.width+strokePadding*2} ${bbox.height+strokePadding*2}`;setViewBox(vb);const vbW=bbox.width+strokePadding*2;const vbH=bbox.height+strokePadding*2;setAspectRatio(vbH>0?vbW/vbH:null);}else{setViewBox(\"0 0 100 100\");setAspectRatio(1);}},[pathItems,computedStrokeWidth]);// ===== PATH DIMENSIONS (optional) =====\nuseLayoutEffect(()=>{if(!pathItems.length||!groupRef.current)return;const paths=Array.from(groupRef.current.querySelectorAll(\"path\"));if(paths.length===0)return;let widest=0;let tallest=0;for(const p of paths){const b=p.getBBox();widest=Math.max(widest,b.width);tallest=Math.max(tallest,b.height);}const strokePadding=Math.max(0,(computedStrokeWidth||0)/2);setMaxPathWidth(Math.ceil(widest+strokePadding*2));setMaxPathHeight(Math.ceil(tallest+strokePadding*2));},[pathItems,computedStrokeWidth]);// ===== STROKE WIDTH (zoom-safe in canvas) =====\nuseEffect(()=>{const compute=()=>{// If width is 0, keep it 0 (and avoid divisions / noise)\nif(safeBeamWidth<=0){setComputedStrokeWidth(0);return;}const svgEl=svgRef.current;if(!svgEl){setComputedStrokeWidth(safeBeamWidth);return;}const probe=zoomProbeRef.current;const editorZoom=probe?probe.getBoundingClientRect().width/20:1;const rect=svgEl.getBoundingClientRect();const parts=(viewBox||\"0 0 100 100\").split(\" \").map(Number);const vbWidth=parts[2]||100;const vbHeight=parts[3]||100;const safeZoom=Math.max(editorZoom,1e-4);const scaleX=rect.width/safeZoom/vbWidth;const scaleY=rect.height/safeZoom/vbHeight;const scale=Math.min(scaleX,scaleY)||1;const adjustedStrokeWidth=safeBeamWidth/scale;setComputedStrokeWidth(prev=>Math.abs(prev-adjustedStrokeWidth)>.05?adjustedStrokeWidth:prev);};if(RenderTarget.current()===RenderTarget.canvas){let rafId=0;const last={ts:0,zoom:0,w:0,h:0};const TICK_MS=250;const EPS_ZOOM=.001;const EPS_SIZE=.5;const tick=now=>{const probe=zoomProbeRef.current;const svgEl=svgRef.current;if(probe&&svgEl){const currentZoom=probe.getBoundingClientRect().width/20;const r=svgEl.getBoundingClientRect();const timeOk=!last.ts||(now||performance.now())-last.ts>=TICK_MS;const zoomChanged=Math.abs(currentZoom-last.zoom)>EPS_ZOOM;const sizeChanged=Math.abs(r.width-last.w)>EPS_SIZE||Math.abs(r.height-last.h)>EPS_SIZE;if(timeOk&&(zoomChanged||sizeChanged)){last.ts=now||performance.now();last.zoom=currentZoom;last.w=r.width;last.h=r.height;compute();}}rafId=requestAnimationFrame(tick);};rafId=requestAnimationFrame(tick);return()=>cancelAnimationFrame(rafId);}compute();const ro=new ResizeObserver(()=>compute());if(containerRef.current)ro.observe(containerRef.current);window.addEventListener(\"resize\",compute);return()=>{ro.disconnect();window.removeEventListener(\"resize\",compute);};},[safeBeamWidth,viewBox]);// ===== ALIGNMENT =====\nconst preserveAspectRatio=React.useMemo(()=>{const x=alignX===\"left\"?\"xMin\":alignX===\"right\"?\"xMax\":\"xMid\";const y=alignY===\"top\"?\"YMin\":alignY===\"bottom\"?\"YMax\":\"YMid\";return`${x}${y} meet`;},[alignX,alignY]);const isCanvas=RenderTarget.hasRestrictions();const effectiveMinWidth=responsive||lockAspectRatio?undefined:maxPathWidth||undefined;const effectiveMinHeight=responsive||lockAspectRatio?undefined:maxPathHeight||undefined;return /*#__PURE__*/_jsxs(\"div\",{ref:containerRef,style:{position:\"relative\",width:\"100%\",height:lockAspectRatio&&aspectRatio?\"auto\":\"100%\",display:\"block\",overflow:\"hidden\",minWidth:effectiveMinWidth,minHeight:effectiveMinHeight,aspectRatio:lockAspectRatio&&aspectRatio?String(aspectRatio):undefined},children:[/*#__PURE__*/_jsxs(\"div\",{style:{position:\"absolute\",inset:0},children:[/*#__PURE__*/_jsx(\"div\",{ref:zoomProbeRef,style:{position:\"absolute\",width:20,height:20,opacity:0,pointerEvents:\"none\"}}),/*#__PURE__*/_jsx(\"svg\",{ref:svgRef,width:\"100%\",height:\"100%\",viewBox:viewBox,preserveAspectRatio:preserveAspectRatio,style:{display:\"block\",transform:`translate(${offsetX||0}px, ${offsetY||0}px)`,transformOrigin:\"50% 50%\"},children:/*#__PURE__*/_jsx(\"g\",{ref:groupRef,children:pathItems.map(item=>{const pathLength=item.length??0;const dasharray=pathLength>0?`${pathLength}`:\"1\";const effectiveProgress=isCanvas?1:pathProgressValue;const dashoffset=pathLength>0?(1-effectiveProgress)*pathLength:0;const opacityValue=isCanvas?1:opacityStart+(opacityEnd-opacityStart)*effectiveProgress;const originalStroke=item.stroke&&item.stroke!==\"none\"?item.stroke:undefined;const finalStroke=colorMode===\"original\"?originalStroke??beamColor:beamColor;const finalFill=colorMode===\"original\"?item.fill&&item.fill!==\"none\"?item.fill:\"none\":\"none\";const finalLinecap=colorMode===\"original\"?item.strokeLinecap??\"round\":\"round\";const finalLinejoin=colorMode===\"original\"?item.strokeLinejoin??\"round\":\"round\";// If stroke width is 0 => render nothing (keeps layout + viewBox)\nif((computedStrokeWidth||0)<=0){return null;}return /*#__PURE__*/_jsx(motion.path,{d:item.d,stroke:finalStroke,fill:finalFill,strokeWidth:computedStrokeWidth,strokeLinecap:finalLinecap,strokeLinejoin:finalLinejoin,strokeOpacity:opacityValue,strokeDasharray:dasharray,strokeDashoffset:dashoffset},item.id);})})})]}),lockAspectRatio&&/*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",paddingTop:aspectRatio&&aspectRatio>0?`${1/aspectRatio*100}%`:\"100%\",pointerEvents:\"none\",opacity:0}})]});}// ===== DEFAULT PROPS =====\nPathReveal.defaultProps={svgFile:\"\",svgCode:\"\",inputType:\"file\",colorMode:\"custom\",beamColor:\"#fc5025\",beamWidth:3,opacity:{start:0,end:1},progress:{start:0,end:1},onViewOnce:true,onViewThreshold:.2,onViewDuration:1,onViewDelay:0,onViewEase:\"easeInOut\",alignX:\"center\",alignY:\"center\",offsetX:0,offsetY:0,responsive:true,lockAspectRatio:false};// ===== PROPERTY CONTROLS =====\naddPropertyControls(PathReveal,{inputType:{type:ControlType.Enum,title:\"Type\",options:[\"file\",\"code\"],optionTitles:[\"File\",\"Code\"],displaySegmentedControl:true,defaultValue:\"file\"},svgFile:{type:ControlType.File,title:\"SVG File\",allowedFileTypes:[\"svg\"],hidden:props=>props.inputType!==\"file\"},svgCode:{type:ControlType.String,title:\" \",displayTextArea:true,hidden:props=>props.inputType!==\"code\"},responsive:{type:ControlType.Boolean,title:\"Responsive\",defaultValue:true},lockAspectRatio:{type:ControlType.Boolean,title:\"Lock Ratio\",defaultValue:false},onViewOnce:{type:ControlType.Boolean,title:\"Once\",defaultValue:true},onViewThreshold:{type:ControlType.Number,title:\"Threshold\",min:0,max:1,step:.05,defaultValue:.2},onViewDuration:{type:ControlType.Number,title:\"Duration\",min:.05,max:20,step:.05,defaultValue:1},onViewDelay:{type:ControlType.Number,title:\"Delay\",min:0,max:10,step:.05,defaultValue:0},onViewEase:{type:ControlType.Enum,title:\"Ease\",options:[\"easeInOut\",\"linear\",\"easeOut\",\"easeIn\"],optionTitles:[\"InOut\",\"Linear\",\"Out\",\"In\"],displaySegmentedControl:true,defaultValue:\"easeInOut\"},colorMode:{type:ControlType.Enum,title:\"Color\",options:[\"custom\",\"original\"],optionTitles:[\"Custom\",\"Original\"],displaySegmentedControl:true,defaultValue:\"custom\"},beamColor:{type:ControlType.Color,title:\"Beam Color\",hidden:props=>props.colorMode===\"original\"},beamWidth:{type:ControlType.Number,title:\"Beam Width\",min:0,max:50,step:.5,defaultValue:3},alignX:{type:ControlType.Enum,title:\"Align X\",options:[\"left\",\"center\",\"right\"],optionTitles:[\"Left\",\"Center\",\"Right\"],displaySegmentedControl:true,defaultValue:\"center\"},alignY:{type:ControlType.Enum,title:\"Align Y\",options:[\"top\",\"center\",\"bottom\"],optionTitles:[\"Top\",\"Center\",\"Bottom\"],displaySegmentedControl:true,defaultValue:\"center\"},offsetX:{type:ControlType.Number,title:\"Move X\",min:-2e3,max:2e3,step:1,defaultValue:0},offsetY:{type:ControlType.Number,title:\"Move Y\",min:-2e3,max:2e3,step:1,defaultValue:0},progress:{type:ControlType.Object,title:\"Progress\",controls:{start:{type:ControlType.Number,title:\"Start\",min:0,max:1,step:.01,defaultValue:0},end:{type:ControlType.Number,title:\"End\",min:0,max:1,step:.01,defaultValue:1}}},opacity:{type:ControlType.Object,title:\"Opacity\",controls:{start:{type:ControlType.Number,title:\"Start\",min:0,max:1,step:.01,defaultValue:0},end:{type:ControlType.Number,title:\"End\",min:0,max:1,step:.01,defaultValue:1}},description:\"More components at [Memselon ☁️](http://memselon.com)\"}});PathReveal.displayName=\"PathReveal\";\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"PathReveal\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"200\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerIntrinsicWidth\":\"200\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./PathReveal.map"],"mappings":"wRASG,SAAwB,EAAW,EAAM,CAAC,GAAK,CAAC,UAAQ,UAAQ,YAAU,YAAU,YAAU,UAAQ,WAAS,aAAW,kBAAgB,iBAAe,cAAY,aAAW,SAAO,SAAO,WAAQ,UAAQ,aAAW,kBAAgB,aAAW,EAAY,EAASA,EAAM,OAAO,IAAI,EAAO,CAAC,EAAU,GAAcA,EAAM,SAAS,CAAC,CAAC,EAAQ,EAAkB,EAAe,CAAC,EAAQ,EAAa,GAAS,OAAO,EAAQ,OAAQ,SAAS,EAAQ,MAAM,EAAQ,EAAW,GAAS,OAAO,EAAQ,KAAM,SAAS,EAAQ,IAAI,EAAQ,EAAW,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,GAAU,OAAO,CAAC,CAAC,EAAQ,EAAS,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,GAAU,KAAK,CAAC,CAAC,EAAQ,EAAiB,EAAa,EAAkB,GAAG,GAAY,EAAS,IAAa,OAAO,CAAC,GAAG,EAAE,EAAO,CAAC,GAAkB,GAAsBA,EAAM,aAAa,CAAC,IAAM,EAAQ,GAAkB,MAAM,EAAE,OAAO,OAAO,GAAU,SAAS,EAAQ,CAAW,CAAC,EAAE,MAAc,CAAC,IAAM,EAAQ,GAAkB,MAAM,EAAK,OAAO,GAAU,UAAS,EAAqB,CAAO,EAAE,IAAM,EAAM,EAAiB,SAAS,GAAG,EAAqB,CAAC,CAAC,EAAE,UAAU,GAAO,EAAM,CAAE,EAAE,CAAC,EAAiB,EAAW,CAAQ,CAAC,EAAE,IAAM,EAAOA,EAAM,OAAO,IAAI,EAAQ,EAAaA,EAAM,OAAO,IAAI,EAAQ,EAAaA,EAAM,OAAO,IAAI,EAAO,CAAC,EAAQ,GAAYA,EAAM,SAAS,IAAA,EAAS,EAAO,CAAC,EAAY,GAAgBA,EAAM,SAAS,IAAI,EACj1C,EAAc,KAAK,IAAI,EAAE,OAAO,CAAS,GAAG,CAAC,EAAO,CAAC,EAAoB,GAAwBA,EAAM,SAAS,CAAa,EAAO,CAAC,GAAa,IAAiBA,EAAM,SAAS,CAAC,EAAO,CAAC,GAAc,IAAkBA,EAAM,SAAS,CAAC,EACjP,MAAc,CAAC,IAAI,EAAU,GAAY,GAAoB,EAAM,IAAU,CAAI,GAAiB,EAAa,EAAM,KAAK,EAAG,KAAK,CAAC,GAAG,EAAI,EAAE,EAAE,EAAG,EAAE,OAAO,EAAQ,IAAI,EAAE,OAAO,EAAG,OAAO,KAAK,EAAG,KAAK,cAAc,EAAG,cAAc,YAAY,EAAG,YAAY,cAAc,EAAG,cAAc,eAAe,EAAG,cAAc,EAAE,CAAC,CAAE,EAAQ,EAAI,SAAS,CAAC,GAAG,CAAC,GAAG,IAAY,QAAQ,EAAQ,CAAC,IAAM,EAAI,OAAO,CAAO,EAAE,GAAG,EAAuB,CAAG,EAAE,CAAC,IAAM,EAAO,EAAoB,CAAY,EAAE,EAAmB,EAAO,MAAM,EAAO,OAAO,EAAE,MAAO,CAAC,IAAM,EAAI,MAAM,MAAM,CAAG,CAAC,CAAC,KAAK,GAAG,EAAE,KAAK,CAAC,EAAQ,EAAO,EAAoB,CAAG,EAAE,EAAmB,EAAO,MAAM,EAAO,OAAO,EAAE,MAAO,CAAC,GAAG,IAAY,QAAQ,EAAQ,CAAC,IAAM,EAAO,EAAoB,OAAO,CAAO,CAAC,EAAE,EAAmB,EAAO,MAAM,EAAO,OAAO,EAAE,MAAO,CAAC,IAAM,EAAO,EAAoB,CAAY,EAAE,EAAmB,EAAO,MAAM,EAAO,OAAO,CAAE,MAAM,CAAC,IAAM,EAAO,EAAoB,CAAY,EAAE,EAAmB,EAAO,MAAM,EAAO,OAAO,CAAE,CAAC,EAAE,GAAU,IAAS,OAAY,CAAC,IAAM,EAAO,EAAoB,CAAY,EAAE,EAAmB,EAAO,MAAM,EAAO,OAAO,EAAE,MAAO,CAAO,OAAN,EAAI,MAAY,CAAC,EAAU,EAAK,CAAE,EAAE,CAAC,EAAU,EAAQ,CAAO,CAAC,EAClsC,MAAc,CAAC,IAAM,EAAG,EAAa,QAAQ,GAAG,CAAC,EAAG,OAAO,GAAG,EAAa,gBAAgB,EAAE,CAAC,EAAkB,IAAI,CAAC,EAAE,MAAO,CAAC,EAAkB,IAAI,CAAC,EAAE,IAAI,EAAU,GAAU,EAAS,KAAW,EAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAQ,MAAc,CAAI,GAAU,MAAK,EAAS,KAAK,EAAE,EAAkB,IAAI,CAAC,EAAE,EAAS,GAAQ,EAAkB,EAAE,CAAC,SAAS,KAAK,IAAI,IAAI,OAAO,CAAc,GAAG,CAAC,EAAE,MAAM,KAAK,IAAI,EAAE,OAAO,CAAW,GAAG,CAAC,EAAE,KAAK,EAAQ,OAAO,CAAU,IAAI,EAAQ,SAAS,CAAC,CAAE,EAAQ,EAAG,IAAI,qBAAqB,GAAS,CAAC,IAAM,EAAM,EAAQ,GAAO,KAAa,GAAG,EAAM,eAAe,CAAC,GAAG,GAAY,EAAU,OAAO,EAAU,GAAK,EAAU,CAAE,MAAU,IAAe,GAAU,MAAK,EAAS,KAAK,EAAE,EAAkB,IAAI,CAAC,EAAI,EAAE,CAAC,UAAU,EAAQ,OAAO,CAAe,GAAG,EAAE,CAAC,CAAC,EAAiB,OAAf,EAAG,QAAQ,CAAE,MAAY,CAAI,GAAU,MAAK,EAAS,KAAK,EAAE,EAAG,WAAW,CAAE,CAAE,EAAE,CAAC,EAAW,EAAgB,EAAe,EAAY,EAAW,CAAiB,CAAC,EACz/B,MAAoB,CAAC,GAAG,CAAC,EAAU,QAAQ,CAAC,EAAS,QAAQ,OAAO,IAAM,EAAK,EAAS,QAAQ,QAAQ,EAAE,GAAG,GAAM,EAAK,MAAM,GAAG,EAAK,OAAO,EAAE,CAAC,IAAM,EAAc,KAAK,IAAI,GAAG,GAAqB,GAAG,CAAC,EAAQ,EAAG,GAAG,EAAK,EAAE,EAAc,GAAG,EAAK,EAAE,EAAc,GAAG,EAAK,MAAM,EAAc,EAAE,GAAG,EAAK,OAAO,EAAc,IAAI,EAAW,CAAE,EAAE,IAAM,EAAI,EAAK,MAAM,EAAc,EAAQ,EAAI,EAAK,OAAO,EAAc,EAAE,EAAe,EAAI,EAAE,EAAI,EAAI,IAAI,CAAE,MAAM,EAAW,aAAa,EAAE,EAAe,CAAC,CAAG,EAAE,CAAC,EAAU,CAAmB,CAAC,EACphB,MAAoB,CAAC,GAAG,CAAC,EAAU,QAAQ,CAAC,EAAS,QAAQ,OAAO,IAAM,EAAM,MAAM,KAAK,EAAS,QAAQ,iBAAiB,MAAM,CAAC,EAAE,GAAG,EAAM,SAAS,EAAE,OAAO,IAAI,EAAO,EAAM,EAAQ,EAAE,IAAI,IAAM,KAAK,EAAM,CAAC,IAAM,EAAE,EAAE,QAAQ,EAAE,EAAO,KAAK,IAAI,EAAO,EAAE,KAAK,EAAE,EAAQ,KAAK,IAAI,EAAQ,EAAE,MAAM,CAAE,CAAC,IAAM,EAAc,KAAK,IAAI,GAAG,GAAqB,GAAG,CAAC,EAAE,GAAgB,KAAK,KAAK,EAAO,EAAc,CAAC,CAAC,EAAE,GAAiB,KAAK,KAAK,EAAQ,EAAc,CAAC,CAAC,CAAE,EAAE,CAAC,EAAU,CAAmB,CAAC,EAC9e,MAAc,CAAC,IAAM,MAAY,CACjC,GAAG,GAAe,EAAE,CAAC,EAAuB,CAAC,EAAE,MAAO,CAAC,IAAM,EAAM,EAAO,QAAQ,GAAG,CAAC,EAAM,CAAC,EAAuB,CAAa,EAAE,MAAO,CAAC,IAAM,EAAM,EAAa,QAAc,EAAW,EAAM,EAAM,sBAAsB,CAAC,CAAC,MAAM,GAAG,EAAQ,EAAK,EAAM,sBAAsB,EAAQ,GAAO,GAAS,cAAA,CAAe,MAAM,GAAG,CAAC,CAAC,IAAI,MAAM,EAAQ,EAAQ,EAAM,IAAI,IAAU,EAAS,EAAM,IAAI,IAAU,EAAS,KAAK,IAAI,EAAW,IAAI,EAAQ,EAAO,EAAK,MAAM,EAAS,EAAc,EAAO,EAAK,OAAO,EAAS,EAAsD,EAAoB,GAArD,KAAK,IAAI,EAAO,CAAM,GAAG,GAAgD,EAAuB,GAAM,KAAK,IAAI,EAAK,CAAmB,EAAE,IAAI,EAAoB,CAAI,CAAE,EAAE,GAAG,EAAa,QAAQ,IAAI,EAAa,OAAO,CAAC,IAAI,EAAM,EAAQ,EAAK,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,EAA8C,EAAS,GAAS,EAAK,GAAK,CAAC,IAAM,EAAM,EAAa,QAAc,EAAM,EAAO,QAAQ,GAAG,GAAO,EAAM,CAAC,IAAM,EAAY,EAAM,sBAAsB,CAAC,CAAC,MAAM,GAAS,EAAE,EAAM,sBAAsB,EAAQ,EAAO,CAAC,EAAK,KAAK,GAAK,YAAY,IAAI,GAAG,EAAK,IAAI,IAAc,EAAY,KAAK,IAAI,EAAY,EAAK,IAAI,EAAE,KAAe,EAAY,KAAK,IAAI,EAAE,MAAM,EAAK,CAAC,EAAE,GAAU,KAAK,IAAI,EAAE,OAAO,EAAK,CAAC,EAAE,EAAY,IAAS,GAAa,KAAc,EAAK,GAAG,GAAK,YAAY,IAAI,EAAE,EAAK,KAAK,EAAY,EAAK,EAAE,EAAE,MAAM,EAAK,EAAE,EAAE,OAAO,EAAQ,EAAG,CAAC,EAAM,sBAAsB,CAAI,CAAE,EAAoC,MAAlC,GAAM,sBAAsB,CAAI,MAAY,qBAAqB,CAAK,CAAE,CAAC,EAAQ,EAAE,IAAM,EAAG,IAAI,mBAAmB,EAAQ,CAAC,EAAqG,OAAhG,EAAa,SAAQ,EAAG,QAAQ,EAAa,OAAO,EAAE,EAAO,iBAAiB,SAAS,CAAO,MAAY,CAAC,EAAG,WAAW,EAAE,EAAO,oBAAoB,SAAS,CAAO,CAAE,CAAE,EAAE,CAAC,EAAc,CAAO,CAAC,EACltD,IAAM,GAAoBA,EAAM,YAA+I,GAA1H,IAAS,OAAO,OAAO,IAAS,QAAQ,OAAO,SAAe,IAAS,MAAM,OAAO,IAAS,SAAS,OAAO,OAAsB,OAAS,CAAC,EAAO,CAAM,CAAC,EAAQ,EAAS,EAAa,gBAAgB,EAAgL,OAAoB,EAAM,MAAM,CAAC,IAAI,EAAa,MAAM,CAAC,SAAS,WAAW,MAAM,OAAO,OAAO,GAAiB,EAAY,OAAO,OAAO,QAAQ,QAAQ,SAAS,SAAS,SAApU,GAAY,EAAgB,IAAA,GAAU,IAAc,IAAA,GAA2S,UAAxQ,GAAY,EAAgB,IAAA,GAAU,IAAe,IAAA,GAAgP,YAAY,GAAiB,EAAY,OAAO,CAAW,EAAE,IAAA,EAAS,EAAE,SAAS,CAAc,EAAM,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,MAAM,CAAC,EAAE,SAAS,CAAc,EAAK,MAAM,CAAC,IAAI,EAAa,MAAM,CAAC,SAAS,WAAW,MAAM,GAAG,OAAO,GAAG,QAAQ,EAAE,cAAc,MAAM,CAAC,CAAC,EAAe,EAAK,MAAM,CAAC,IAAI,EAAO,MAAM,OAAO,OAAO,OAAe,UAA4B,uBAAoB,MAAM,CAAC,QAAQ,QAAQ,UAAU,aAAa,IAAS,EAAE,MAAM,GAAS,EAAE,KAAK,gBAAgB,SAAS,EAAE,SAAsB,EAAK,IAAI,CAAC,IAAI,EAAS,SAAS,EAAU,IAAI,GAAM,CAAC,IAAM,EAAW,EAAK,QAAQ,EAAQ,EAAU,EAAW,EAAE,GAAG,IAAa,IAAU,EAAkB,EAAS,EAAE,GAAwB,EAAW,EAAW,GAAG,EAAE,GAAmB,EAAW,EAAQ,EAAa,EAAS,EAAE,GAAc,EAAW,GAAc,EAAwB,EAAe,EAAK,QAAQ,EAAK,SAAS,OAAO,EAAK,OAAO,IAAA,GAAgB,EAAY,IAAY,WAAW,GAAgB,EAAU,EAAgB,EAAU,IAAY,YAAW,EAAK,MAAM,EAAK,OAAO,OAAO,EAAK,KAAK,OAAoB,EAAa,IAAY,WAAW,EAAK,eAAe,QAAQ,QAAc,EAAc,IAAY,WAAW,EAAK,gBAAgB,QAAQ,QACl1D,OAAzC,GAAqB,IAAI,EAAU,KAA0B,EAAK,GAAO,KAAK,CAAC,EAAE,EAAK,EAAE,OAAO,EAAY,KAAK,EAAU,YAAY,EAAoB,cAAc,EAAa,eAAe,EAAc,cAAc,EAAa,gBAAgB,EAAU,iBAAiB,CAAU,EAAE,EAAK,EAAE,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAA8B,EAAK,MAAM,CAAC,MAAM,CAAC,MAAM,OAAO,WAAW,GAAa,EAAY,EAAE,GAAG,EAAE,EAAY,IAAI,GAAG,OAAO,cAAc,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,+BAlB3a,IAAoD,IAAsE,IAAiE,EAAO,EAAQ,GAAG,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAQ,MAAQ,OAAO,OAAS,KAAa,OAAO,WAAW,OAAO,WAAW,EAAE,GAAG,KAAK,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,IAAU,EAAuB,GAAO,EAAM,WAAW,UAAU,GAAG,EAAM,WAAW,uBAAuB,EAAQ,EAAoB,GAAY,CAA4B,IAAM,EAAO,IAAvB,UAA4B,CAAC,CAAC,gBAAgB,EAAW,eAAe,EAAQ,EAAa,MAAM,KAAK,EAAO,iBAAiB,MAAM,CAAC,EAAQ,EAAM,EAAa,IAAI,GAAG,CAAC,IAAM,EAAE,EAAE,aAAa,GAAG,EAAoB,OAAd,EAAoB,CAAC,IAAE,OAAO,EAAE,aAAa,QAAQ,EAAE,KAAK,EAAE,aAAa,MAAM,EAAE,cAAc,EAAE,aAAa,gBAAgB,EAAE,YAAY,EAAE,aAAa,cAAc,EAAE,cAAc,EAAE,aAAa,gBAAgB,EAAE,eAAe,EAAE,aAAa,iBAAiB,CAAC,EAAnQ,IAAqQ,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAQ,EAAQ,CAAC,EAAM,EAAkB,EAAM,EAAa,EAAM,EAAc,EAAE,GAAG,EAAa,OAAO,EAAE,CAAC,IAAM,EAAQ,SAAS,gBAAgB,6BAA6B,KAAK,EAAE,EAAQ,MAAM,SAAS,WAAW,EAAQ,MAAM,WAAW,SAAS,SAAS,KAAK,YAAY,CAAO,EAAE,EAAM,QAAQ,GAAI,CAAC,IAAM,EAAS,SAAS,gBAAgB,6BAA6B,MAAM,EAAE,EAAS,aAAa,IAAI,EAAG,GAAG,EAAE,EAAE,EAAQ,YAAY,CAAQ,EAAE,IAAM,EAAW,EAAS,eAAe,EAAE,EAAQ,KAAK,CAAU,EAAE,EAAkB,KAAK,IAAI,EAAkB,CAAU,EAAE,IAAM,EAAY,EAAS,QAAQ,EAAE,EAAa,KAAK,IAAI,EAAa,EAAY,KAAK,EAAE,EAAc,KAAK,IAAI,EAAc,EAAY,MAAM,CAAE,CAAC,EAAE,SAAS,KAAK,YAAY,CAAO,CAAE,CAAC,MAAM,CAAC,QAAM,UAAQ,oBAAkB,eAAa,eAAa,CAAE,EAAQ,EAAa;;;;EAmBh5D,EAAW,aAAa,CAAC,QAAQ,GAAG,QAAQ,GAAG,UAAU,OAAO,UAAU,SAAS,UAAU,UAAU,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAK,gBAAgB,GAAG,eAAe,EAAE,YAAY,EAAE,WAAW,YAAY,OAAO,SAAS,OAAO,SAAS,QAAQ,EAAE,QAAQ,EAAE,WAAW,GAAK,gBAAgB,EAAK,EACtV,EAAoB,EAAW,CAAC,UAAU,CAAC,KAAK,EAAY,KAAK,MAAM,OAAO,QAAQ,CAAC,OAAO,MAAM,EAAE,aAAa,CAAC,OAAO,MAAM,EAAE,wBAAwB,GAAK,aAAa,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAY,KAAK,MAAM,WAAW,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAO,EAAM,YAAY,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,IAAI,gBAAgB,GAAK,OAAO,GAAO,EAAM,YAAY,MAAM,EAAE,WAAW,CAAC,KAAK,EAAY,QAAQ,MAAM,aAAa,aAAa,EAAI,EAAE,gBAAgB,CAAC,KAAK,EAAY,QAAQ,MAAM,aAAa,aAAa,EAAK,EAAE,WAAW,CAAC,KAAK,EAAY,QAAQ,MAAM,OAAO,aAAa,EAAI,EAAE,gBAAgB,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,aAAa,EAAE,EAAE,eAAe,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,IAAI,IAAI,IAAI,GAAG,KAAK,IAAI,aAAa,CAAC,EAAE,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,IAAI,EAAE,IAAI,GAAG,KAAK,IAAI,aAAa,CAAC,EAAE,WAAW,CAAC,KAAK,EAAY,KAAK,MAAM,OAAO,QAAQ,CAAC,YAAY,SAAS,UAAU,QAAQ,EAAE,aAAa,CAAC,QAAQ,SAAS,MAAM,IAAI,EAAE,wBAAwB,GAAK,aAAa,WAAW,EAAE,UAAU,CAAC,KAAK,EAAY,KAAK,MAAM,QAAQ,QAAQ,CAAC,SAAS,UAAU,EAAE,aAAa,CAAC,SAAS,UAAU,EAAE,wBAAwB,GAAK,aAAa,QAAQ,EAAE,UAAU,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,OAAO,GAAO,EAAM,YAAY,UAAU,EAAE,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,aAAa,CAAC,EAAE,OAAO,CAAC,KAAK,EAAY,KAAK,MAAM,UAAU,QAAQ,CAAC,OAAO,SAAS,OAAO,EAAE,aAAa,CAAC,OAAO,SAAS,OAAO,EAAE,wBAAwB,GAAK,aAAa,QAAQ,EAAE,OAAO,CAAC,KAAK,EAAY,KAAK,MAAM,UAAU,QAAQ,CAAC,MAAM,SAAS,QAAQ,EAAE,aAAa,CAAC,MAAM,SAAS,QAAQ,EAAE,wBAAwB,GAAK,aAAa,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,IAAI,KAAK,IAAI,IAAI,KAAK,EAAE,aAAa,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,IAAI,KAAK,IAAI,IAAI,KAAK,EAAE,aAAa,CAAC,EAAE,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,SAAS,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,aAAa,CAAC,EAAE,IAAI,CAAC,KAAK,EAAY,OAAO,MAAM,MAAM,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,SAAS,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,aAAa,CAAC,EAAE,IAAI,CAAC,KAAK,EAAY,OAAO,MAAM,MAAM,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,aAAa,CAAC,CAAC,EAAE,YAAY,uDAAuD,CAAC,CAAC,EAAE,EAAW,YAAY"}