{"version":3,"file":"ChatMessages.BbSjRnpX.mjs","names":["React","useMemo","useState","useRef"],"sources":["https:/framerusercontent.com/modules/YHnSk6STU9Nll6MQXCZe/KpqnWmn0YnvLZZwrStGc/ChatMessages.js"],"sourcesContent":["// Chat sequence component with sender/receiver text color distinction for each theme\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import React,{useState,useEffect,useRef,useMemo,startTransition}from\"react\";import{addPropertyControls,ControlType}from\"framer\";import{motion,useReducedMotion,useInView}from\"framer-motion\";// === THEME PRESETS ===\nconst themes={iMessage:{receiverColor:\"#e5e5ea\",receiverTextColor:\"#000000\",senderGradient:false,senderColor:\"#007aff\",senderGradientStart:\"#007aff\",senderGradientEnd:\"#0051a8\",senderTextColor:\"#ffffff\"},WhatsApp:{receiverColor:\"#ffffff\",receiverTextColor:\"#000000\",senderGradient:true,senderColor:\"#075e54\",senderGradientStart:\"#25d366\",senderGradientEnd:\"#075e54\",senderTextColor:\"#ffffff\"},Messenger:{receiverColor:\"#f1f0f0\",receiverTextColor:\"#000000\",senderGradient:true,senderColor:\"#0084ff\",senderGradientStart:\"#0084ff\",senderGradientEnd:\"#006aff\",senderTextColor:\"#ffffff\"},Custom:{}};const TypingIndicator=({sender,colors,font})=>{const reduced=useReducedMotion();const bubbleColor=sender?colors.sender:colors.receiver;const textColor=sender?colors.senderText:colors.receiverText;return /*#__PURE__*/_jsx(motion.div,{initial:{opacity:0,y:8,scale:.9},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:-8,scale:.9},transition:{duration:.3,ease:\"easeOut\"},style:{alignSelf:sender?\"flex-end\":\"flex-start\",background:bubbleColor,color:textColor,borderRadius:16,padding:\"12px 16px\",maxWidth:\"80%\",display:\"flex\",gap:4,alignItems:\"center\",...font},children:[0,1,2].map(i=>/*#__PURE__*/_jsx(motion.span,{style:{width:6,height:6,borderRadius:\"50%\",backgroundColor:textColor,display:\"block\"},animate:reduced?{opacity:.6}:{opacity:[.3,1,.3]},transition:{duration:1.2,repeat:Infinity,delay:i*.2}},i))});};const MessageBubble=({text,sender,colors,font,borderRadius})=>{const bubbleColor=sender?colors.sender:colors.receiver;const textColor=sender?colors.senderText:colors.receiverText;const parseText=text=>{const parts=text.split(/\\*\\*(.*?)\\*\\*/g);return parts.map((part,i)=>i%2===1?/*#__PURE__*/_jsx(\"strong\",{children:part},i):part);};return /*#__PURE__*/_jsx(motion.div,{initial:{opacity:0,y:12,scale:.95},animate:{opacity:1,y:0,scale:1},transition:{duration:.3,ease:\"easeOut\"},style:{alignSelf:sender?\"flex-end\":\"flex-start\",background:bubbleColor,color:textColor,borderRadius,padding:\"12px 16px\",maxWidth:\"80%\",wordBreak:\"break-word\",...font},children:parseText(text)});};// Utility functions\nconst clamp=(v,min,max)=>Math.max(min,Math.min(max,v));const isHex=s=>!!s&&/^#([0-9a-f]{3}|[0-9a-f]{6})$/i.test(s);const normalizeHex=(hex,fallback=\"#000000\")=>{if(!isHex(hex))return fallback;const h=hex.replace(\"#\",\"\");const full=h.length===3?h.split(\"\").map(c=>c+c).join(\"\"):h;return`#${full}`.toLowerCase();};const contrastYIQ=hex=>{const safe=normalizeHex(hex,\"#000000\");const r=parseInt(safe.slice(1,3),16);const g=parseInt(safe.slice(3,5),16);const b=parseInt(safe.slice(5,7),16);return(r*299+g*587+b*114)/1e3>=128?\"#000000\":\"#FFFFFF\";};const autoDuration=msg=>{const cps=12;return clamp(Math.round((msg?.length||0)/cps*1e3),600,3200);};// Central theme/colors logic\nfunction resolveTheme(opts){const{theme,autoTextColor,receiverColor,receiverTextColor,receiverGradient,receiverGradientStart,receiverGradientEnd,senderGradient,senderColor,senderGradientStart,senderGradientEnd,senderTextColor}=opts;if(theme!==\"Custom\"){const t=themes[theme];const senderSample=t.senderGradient?t.senderGradientEnd:t.senderColor;return{receiver:t.receiverColor,sender:t.senderGradient?`linear-gradient(135deg, ${t.senderGradientStart}, ${t.senderGradientEnd})`:t.senderColor,receiverText:autoTextColor?contrastYIQ(t.receiverColor):t.receiverTextColor??\"#000000\",senderText:autoTextColor?contrastYIQ(senderSample):t.senderTextColor??\"#000000\",text:\"#000000\"};}const rc=receiverColor??\"#f1f0f0\";const rg=!!receiverGradient;const rgs=receiverGradientStart??\"#f1f0f0\";const rge=receiverGradientEnd??\"#e5e5ea\";const sg=!!senderGradient;const sc=senderColor??\"#0084ff\";const sgs=senderGradientStart??\"#0084ff\";const sge=senderGradientEnd??\"#0066cc\";const senderSample=sg?sge:sc;const receiverSample=rg?rge:rc;return{receiver:rg?`linear-gradient(135deg, ${rgs}, ${rge})`:rc,sender:sg?`linear-gradient(135deg, ${sgs}, ${sge})`:sc,receiverText:autoTextColor?contrastYIQ(receiverSample):receiverTextColor??\"#000000\",senderText:autoTextColor?contrastYIQ(senderSample):senderTextColor??\"#000000\",text:\"#000000\"};}/**\n * Chat Sequence - Animated chat conversation with typing indicators\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function ChatSequence(props){const{message1=\"Need a way to manage all my projects in one place.\",message2=\"FlowDesk keeps tasks, chat, and files together so your team never loses track.\",message3=\"Can I invite clients?\",showMessage3=false,startWithSender=false,typingDurationMs=\"auto\",messageRevealGapMs=600,theme=\"iMessage\",autoTextColor=true,receiverColor,receiverTextColor,receiverGradient=false,receiverGradientStart=\"#f1f0f0\",receiverGradientEnd=\"#e5e5ea\",senderGradient,senderColor,senderGradientStart,senderGradientEnd,senderTextColor,textColor=\"#000000\",font={fontSize:\"14px\",fontFamily:\"Inter, system-ui, sans-serif\"},borderRadius=16,triggerMode=\"auto\",resetOnTrigger=true,onMessageComplete,onSequenceComplete,style,messages}=props;// Build sequence from array or legacy fields\nconst sequence=React.useMemo(()=>{if(Array.isArray(messages)&&messages.length>0)return messages;const steps=[{text:message1,sender:startWithSender},{text:message2,sender:!startWithSender}];if(showMessage3)steps.push({text:message3,sender:startWithSender});return steps;},[messages,message1,message2,message3,showMessage3,startWithSender]);const durations=useMemo(()=>sequence.map(s=>typingDurationMs===\"auto\"?autoDuration(s.text):typingDurationMs),[sequence,typingDurationMs]);const colors=useMemo(()=>resolveTheme({theme,autoTextColor,receiverColor,receiverTextColor,receiverGradient,receiverGradientStart,receiverGradientEnd,senderGradient,senderColor,senderGradientStart,senderGradientEnd,senderTextColor}),[theme,autoTextColor,receiverColor,receiverTextColor,receiverGradient,receiverGradientStart,receiverGradientEnd,senderGradient,senderColor,senderGradientStart,senderGradientEnd,senderTextColor]);const[hasStarted,setHasStarted]=useState(false);const[index,setIndex]=useState(0);const[stage,setStage]=useState(\"typing\");const timeoutRef=useRef(null);const containerRef=useRef(null);const isInView=useInView(containerRef,{once:true,amount:.3});useEffect(()=>()=>{if(timeoutRef.current)clearTimeout(timeoutRef.current);},[]);useEffect(()=>{if(triggerMode===\"inView\"&&isInView&&!hasStarted||triggerMode===\"auto\"&&!hasStarted){startTransition(()=>{setHasStarted(true);setIndex(0);setStage(\"typing\");});}},[triggerMode,isInView,hasStarted]);const handleTrigger=()=>{if(resetOnTrigger||!hasStarted){startTransition(()=>{setHasStarted(true);setIndex(0);setStage(\"typing\");});}};const handleClick=()=>{if(triggerMode===\"click\")handleTrigger();};const handleMouseEnter=()=>{if(triggerMode===\"hover\")handleTrigger();};useEffect(()=>{if(!hasStarted)return;if(sequence.length===0){onSequenceComplete?.();return;}// ADDED sequence length correction guard\nif(index>=sequence.length){setIndex(0);setStage(\"typing\");return;}if(timeoutRef.current)clearTimeout(timeoutRef.current);const wait=stage===\"typing\"?durations[index]:messageRevealGapMs;timeoutRef.current=setTimeout(()=>{startTransition(()=>{if(stage===\"typing\"){setStage(\"message\");onMessageComplete?.();}else{const next=index+1;if(next<sequence.length){setIndex(next);setStage(\"typing\");}else{onSequenceComplete?.();}}});},wait);return()=>{if(timeoutRef.current)clearTimeout(timeoutRef.current);};},[hasStarted,index,stage,sequence,durations,messageRevealGapMs,onMessageComplete,onSequenceComplete]);// ADDED: resets index and stage if sequence array shrinks while animating\nuseEffect(()=>{if(index>=sequence.length){setIndex(0);setStage(\"typing\");}},[sequence.length]);return /*#__PURE__*/_jsxs(\"div\",{ref:containerRef,onClick:handleClick,onMouseEnter:handleMouseEnter,style:{display:\"flex\",flexDirection:\"column\",gap:12,width:\"100%\",height:\"100%\",padding:16,backgroundColor:\"transparent\",overflowY:\"auto\",overscrollBehavior:\"contain\",cursor:triggerMode===\"click\"||triggerMode===\"hover\"?\"pointer\":\"default\",position:\"relative\",justifyContent:\"flex-end\",...style},children:[/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:12,justifyContent:\"flex-end\",width:\"100%\"},children:sequence.map((step,i)=>{// Always display every message so far as a MessageBubble\n// Typing indicator only for the next message about to be shown\nconst isActive=i===index;return /*#__PURE__*/_jsxs(React.Fragment,{children:[isActive&&stage===\"typing\"&&/*#__PURE__*/_jsx(TypingIndicator,{sender:step.sender,colors:{...colors,text:textColor},font:font}),(i<index||isActive&&stage===\"message\")&&/*#__PURE__*/_jsx(MessageBubble,{text:step.text,sender:step.sender,colors:{...colors,text:textColor},font:font,borderRadius:borderRadius})]},`row-${i}`);})}),!hasStarted&&triggerMode!==\"auto\"&&/*#__PURE__*/_jsxs(motion.div,{initial:{opacity:0},animate:{opacity:.5},transition:{delay:.5},style:{position:\"absolute\",top:\"50%\",left:\"50%\",transform:\"translate(-50%, -50%)\",textAlign:\"center\",color:\"#999999\",pointerEvents:\"none\",...font},children:[triggerMode===\"click\"&&\"Click to start chat\",triggerMode===\"hover\"&&\"Hover to start chat\",triggerMode===\"inView\"&&\"Scroll to view chat\"]})]});}addPropertyControls(ChatSequence,{// Array-based flexible messages\nmessages:{type:ControlType.Array,title:\"Messages (array)\",group:\"Messages\",defaultValue:[{text:\"Need a way to manage all my projects in one place.\",sender:false},{text:\"FlowDesk keeps tasks, chat, and files together so your team never loses track.\",sender:false},{text:\"Can I invite clients?\",sender:true},{text:\"Sure, just share a link — no account needed.\",sender:false},{text:\"Is there a free plan?\",sender:true},{text:\"Yep, get started free at flowdesk.app.\",sender:false}],propertyControl:{type:ControlType.Object,controls:{text:{type:ControlType.String,title:\"Message Text\",displayTextArea:true,defaultValue:\"Type message...\"},sender:{type:ControlType.Boolean,title:\"Sender?\",enabledTitle:\"Sender\",disabledTitle:\"Receiver\",defaultValue:false}}}},// Messages\nmessage1:{type:ControlType.String,title:\"Message 1 (from Receiver)\",defaultValue:\"Need a way to manage all my projects in one place.\",group:\"Messages\",displayTextArea:true,hidden:p=>Array.isArray(p.messages)&&p.messages.length>0},message2:{type:ControlType.String,title:\"Message 2 (from Sender)\",defaultValue:\"FlowDesk keeps tasks, chat, and files together so your team never loses track.\",group:\"Messages\",displayTextArea:true,hidden:p=>Array.isArray(p.messages)&&p.messages.length>0},showMessage3:{type:ControlType.Boolean,title:\"Show Message 3\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\",group:\"Messages\",hidden:p=>Array.isArray(p.messages)&&p.messages.length>0},message3:{type:ControlType.String,title:\"Message 3 (optional)\",defaultValue:\"Can I invite clients?\",group:\"Messages\",displayTextArea:true,hidden:p=>Array.isArray(p.messages)&&p.messages.length>0||!p.showMessage3},startWithSender:{type:ControlType.Boolean,title:\"Start With\",defaultValue:false,enabledTitle:\"Sender\",disabledTitle:\"Receiver\",group:\"Messages\",hidden:p=>Array.isArray(p.messages)&&p.messages.length>0},// Pacing\ntypingDurationMs:{type:ControlType.Enum,title:\"Typing Duration\",options:[\"auto\",600,900,1200,1500,2e3],optionTitles:[\"Auto (natural)\",\"600ms\",\"900ms\",\"1200ms\",\"1500ms\",\"2000ms\"],defaultValue:\"auto\",group:\"Pacing\",description:\"Auto scales with message length\"},messageRevealGapMs:{type:ControlType.Number,title:\"Message Gap\",defaultValue:600,min:100,max:3e3,step:50,unit:\"ms\",group:\"Pacing\",description:\"Delay between messages.\"},// Theme\ntheme:{type:ControlType.Enum,title:\"Theme\",options:[\"iMessage\",\"WhatsApp\",\"Messenger\",\"Custom\"],optionTitles:[\"iMessage\",\"WhatsApp\",\"Messenger\",\"Custom\"],defaultValue:\"iMessage\",group:\"Theme\"},autoTextColor:{type:ControlType.Boolean,title:\"Auto Text Contrast\",defaultValue:true,enabledTitle:\"Auto\",disabledTitle:\"Manual\",group:\"Theme\",description:\"Auto text color based on bubble background\"},// Custom receiver\nreceiverColor:{type:ControlType.Color,title:\"Receiver Bubble\",defaultValue:\"#f1f0f0\",group:\"Receiver Style\",hidden:p=>p.theme!==\"Custom\"},receiverTextColor:{type:ControlType.Color,title:\"Receiver Text\",defaultValue:\"#000000\",group:\"Receiver Style\",description:\"Text color in receiver bubble\",hidden:p=>p.theme!==\"Custom\"||p.autoTextColor!==false},// Add receiverGradient controls\nreceiverGradient:{type:ControlType.Boolean,title:\"Receiver Fill\",defaultValue:false,enabledTitle:\"Gradient\",disabledTitle:\"Solid\",group:\"Receiver Style\",hidden:p=>p.theme!==\"Custom\"},receiverGradientStart:{type:ControlType.Color,title:\"Gradient Start\",defaultValue:\"#f1f0f0\",group:\"Receiver Style\",hidden:p=>p.theme!==\"Custom\"||!p.receiverGradient},receiverGradientEnd:{type:ControlType.Color,title:\"Gradient End\",defaultValue:\"#e5e5ea\",group:\"Receiver Style\",hidden:p=>p.theme!==\"Custom\"||!p.receiverGradient},// Custom sender\nsenderGradient:{type:ControlType.Boolean,title:\"Sender Fill\",defaultValue:false,enabledTitle:\"Gradient\",disabledTitle:\"Solid\",group:\"Sender Style\",hidden:p=>p.theme!==\"Custom\"},senderColor:{type:ControlType.Color,title:\"Sender Bubble\",defaultValue:\"#0084ff\",group:\"Sender Style\",hidden:p=>p.theme!==\"Custom\"||p.senderGradient},senderGradientStart:{type:ControlType.Color,title:\"Gradient Start\",defaultValue:\"#0084ff\",group:\"Sender Style\",hidden:p=>p.theme!==\"Custom\"||!p.senderGradient},senderGradientEnd:{type:ControlType.Color,title:\"Gradient End\",defaultValue:\"#0066cc\",group:\"Sender Style\",hidden:p=>p.theme!==\"Custom\"||!p.senderGradient},senderTextColor:{type:ControlType.Color,title:\"Sender Text\",defaultValue:\"#000000\",group:\"Sender Style\",description:\"Text color in sender bubble\",hidden:p=>p.theme!==\"Custom\"||p.autoTextColor!==false},// Style\nfont:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"14px\",variant:\"Regular\",letterSpacing:\"-0.01em\",lineHeight:\"1.4em\"},group:\"General Style\"},borderRadius:{type:ControlType.Number,title:\"Bubble Radius\",defaultValue:16,min:0,max:32,step:1,unit:\"px\",group:\"General Style\"},textColor:{type:ControlType.Color,title:\"Fallback Text Color\",defaultValue:\"#000000\",group:\"General Style\",hidden:p=>p.autoTextColor!==false&&p.theme!==\"Custom\"},// Triggers\ntriggerMode:{type:ControlType.Enum,title:\"Trigger Mode\",options:[\"auto\",\"click\",\"hover\",\"inView\"],optionTitles:[\"Auto Start\",\"On Click\",\"On Hover\",\"On Scroll\"],defaultValue:\"auto\",group:\"Triggers\"},resetOnTrigger:{type:ControlType.Boolean,title:\"Reset on Trigger\",defaultValue:true,enabledTitle:\"Reset\",disabledTitle:\"Once\",group:\"Triggers\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ChatSequence\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ChatMessages.map"],"mappings":"mRAIA,SAAS,EAAa,EAAK,CAAC,GAAK,CAAC,QAAM,gBAAc,gBAAc,oBAAkB,mBAAiB,wBAAsB,sBAAoB,iBAAe,cAAY,sBAAoB,oBAAkB,mBAAiB,EAAK,GAAG,IAAQ,SAAS,CAAC,IAAM,EAAE,EAAO,GAAa,EAAa,EAAE,eAAe,EAAE,kBAAkB,EAAE,YAAY,MAAM,CAAC,SAAS,EAAE,cAAc,OAAO,EAAE,eAAe,2BAA2B,EAAE,oBAAoB,IAAI,EAAE,kBAAkB,GAAG,EAAE,YAAY,aAAa,EAAc,EAAY,EAAE,aAAa,EAAE,EAAE,mBAAmB,UAAU,WAAW,EAAc,EAAY,CAAY,EAAE,EAAE,iBAAiB,UAAU,KAAK,SAAS,CAAE,CAAC,IAAM,EAAG,GAAe,UAAgB,EAAG,CAAC,CAAC,EAAuB,EAAI,GAAuB,UAAgB,EAAI,GAAqB,UAAgB,EAAG,CAAC,CAAC,EAAqB,EAAG,GAAa,UAAgB,EAAI,GAAqB,UAAgB,EAAI,GAAmB,UAAgB,EAAa,EAAG,EAAI,EAAS,EAAe,EAAG,EAAI,EAAG,MAAM,CAAC,SAAS,EAAG,2BAA2B,EAAI,IAAI,EAAI,GAAG,EAAG,OAAO,EAAG,2BAA2B,EAAI,IAAI,EAAI,GAAG,EAAG,aAAa,EAAc,EAAY,CAAc,EAAE,GAAmB,UAAU,WAAW,EAAc,EAAY,CAAY,EAAE,GAAiB,UAAU,KAAK,SAAS,CAAE,CAIjyC,SAAwB,EAAa,EAAM,CAAC,GAAK,CAAC,WAAS,qDAAqD,WAAS,iFAAiF,WAAS,wBAAwB,eAAa,GAAM,kBAAgB,GAAM,mBAAiB,OAAO,qBAAmB,IAAI,QAAM,WAAW,gBAAc,GAAK,gBAAc,oBAAkB,mBAAiB,GAAM,wBAAsB,UAAU,sBAAoB,UAAU,iBAAe,cAAY,sBAAoB,oBAAkB,kBAAgB,YAAU,UAAU,OAAK,CAAC,SAAS,OAAO,WAAW,8BAA8B,EAAE,gBAAa,GAAG,cAAY,OAAO,kBAAe,GAAK,oBAAkB,qBAAmB,QAAM,YAAU,EAC3uB,EAASA,EAAM,YAAY,CAAC,GAAG,MAAM,QAAQ,CAAQ,GAAG,EAAS,OAAO,EAAE,OAAO,EAAS,IAAM,EAAM,CAAC,CAAC,KAAK,EAAS,OAAO,CAAe,EAAE,CAAC,KAAK,EAAS,OAAO,CAAC,CAAe,CAAC,EAAqE,OAAhE,GAAa,EAAM,KAAK,CAAC,KAAK,EAAS,OAAO,CAAe,CAAC,EAAS,CAAM,EAAE,CAAC,EAAS,EAAS,EAAS,EAAS,EAAa,CAAe,CAAC,EAAQ,EAAUC,MAAY,EAAS,IAAI,GAAG,IAAmB,OAAO,EAAa,EAAE,IAAI,EAAE,CAAgB,EAAE,CAAC,EAAS,CAAgB,CAAC,EAAQ,EAAOA,MAAY,EAAa,CAAC,QAAM,gBAAc,gBAAc,oBAAkB,mBAAiB,wBAAsB,sBAAoB,iBAAe,cAAY,sBAAoB,oBAAkB,iBAAe,CAAC,EAAE,CAAC,EAAM,EAAc,EAAc,EAAkB,EAAiB,EAAsB,EAAoB,EAAe,EAAY,EAAoB,EAAkB,CAAe,CAAC,EAAO,CAAC,EAAW,GAAeC,EAAS,EAAK,EAAO,CAAC,EAAM,GAAUA,EAAS,CAAC,EAAO,CAAC,EAAM,GAAUA,EAAS,QAAQ,EAAQ,EAAWC,EAAO,IAAI,EAAQ,EAAaA,EAAO,IAAI,EAAQ,EAAS,EAAU,EAAa,CAAC,KAAK,GAAK,OAAO,EAAE,CAAC,EAAE,UAAkB,CAAI,EAAW,SAAQ,aAAa,EAAW,OAAO,CAAE,EAAE,CAAC,CAAC,EAAE,MAAc,EAAI,IAAc,UAAU,GAAU,CAAC,GAAY,IAAc,QAAQ,CAAC,IAAY,MAAoB,CAAC,EAAc,EAAI,EAAE,EAAS,CAAC,EAAE,EAAS,QAAQ,CAAE,CAAC,CAAG,EAAE,CAAC,EAAY,EAAS,CAAU,CAAC,EAAE,IAAM,MAAkB,EAAI,IAAgB,CAAC,IAAY,MAAoB,CAAC,EAAc,EAAI,EAAE,EAAS,CAAC,EAAE,EAAS,QAAQ,CAAE,CAAC,CAAG,EAE18C,OAFqlD,MAAc,CAAC,GAAG,CAAC,EAAW,OAAO,GAAG,EAAS,SAAS,EAAE,CAAC,IAAqB,EAAE,MAAO,CAC/wD,GAAG,GAAO,EAAS,OAAO,CAAC,EAAS,CAAC,EAAE,EAAS,QAAQ,EAAE,MAAO,CAAI,EAAW,SAAQ,aAAa,EAAW,OAAO,EAAE,IAAM,EAAK,IAAQ,SAAS,EAAU,GAAO,EAAwQ,MAArP,GAAW,QAAQ,eAAe,CAAC,MAAoB,CAAC,GAAG,IAAQ,SAAU,EAAS,SAAS,EAAE,IAAoB,MAAO,CAAC,IAAM,EAAK,EAAM,EAAK,EAAK,EAAS,QAAQ,EAAS,CAAI,EAAE,EAAS,QAAQ,GAAQ,IAAqB,CAAG,CAAC,CAAC,CAAE,EAAE,CAAI,MAAY,CAAI,EAAW,SAAQ,aAAa,EAAW,OAAO,CAAE,CAAE,EAAE,CAAC,EAAW,EAAM,EAAM,EAAS,EAAU,EAAmB,EAAkB,CAAkB,CAAC,EACvlB,MAAc,CAAI,GAAO,EAAS,SAAQ,EAAS,CAAC,EAAE,EAAS,QAAQ,EAAG,EAAE,CAAC,EAAS,MAAM,CAAC,EAAsB,EAAM,MAAM,CAAC,IAAI,EAAa,YAFg7C,CAAI,IAAc,SAAQ,EAAc,CAAE,EAEt8C,iBAFm+C,CAAI,IAAc,SAAQ,EAAc,CAAE,EAE/+C,MAAM,CAAC,QAAQ,OAAO,cAAc,SAAS,IAAI,GAAG,MAAM,OAAO,OAAO,OAAO,QAAQ,GAAG,gBAAgB,cAAc,UAAU,OAAO,mBAAmB,UAAU,OAAO,IAAc,SAAS,IAAc,QAAQ,UAAU,UAAU,SAAS,WAAW,eAAe,WAAW,GAAG,CAAK,EAAE,SAAS,CAAc,EAAK,MAAM,CAAC,MAAM,CAAC,QAAQ,OAAO,cAAc,SAAS,IAAI,GAAG,eAAe,WAAW,MAAM,MAAM,EAAE,SAAS,EAAS,KAAK,EAAK,IAAI,CAExoB,IAAM,EAAS,IAAI,EAAM,OAAoB,EAAMH,EAAM,SAAS,CAAC,SAAS,CAAC,GAAU,IAAQ,UAAuB,EAAK,EAAgB,CAAC,OAAO,EAAK,OAAO,OAAO,CAAC,GAAG,EAAO,KAAK,CAAS,EAAO,MAAI,CAAC,GAAG,EAAE,GAAO,GAAU,IAAQ,YAAyB,EAAK,EAAc,CAAC,KAAK,EAAK,KAAK,OAAO,EAAK,OAAO,OAAO,CAAC,GAAG,EAAO,KAAK,CAAS,EAAO,OAAkB,eAAY,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,CAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAY,IAAc,QAAqB,EAAM,EAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,SAAS,WAAW,IAAI,MAAM,KAAK,MAAM,UAAU,wBAAwB,UAAU,SAAS,MAAM,UAAU,cAAc,OAAO,GAAG,CAAI,EAAE,SAAS,CAAC,IAAc,SAAS,sBAAsB,IAAc,SAAS,sBAAsB,IAAc,UAAU,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,iCAZvwB,IAA4E,IAAoD,IAA6D,EAC/O,EAAO,CAAC,SAAS,CAAC,cAAc,UAAU,kBAAkB,UAAU,eAAe,GAAM,YAAY,UAAU,oBAAoB,UAAU,kBAAkB,UAAU,gBAAgB,SAAS,EAAE,SAAS,CAAC,cAAc,UAAU,kBAAkB,UAAU,eAAe,GAAK,YAAY,UAAU,oBAAoB,UAAU,kBAAkB,UAAU,gBAAgB,SAAS,EAAE,UAAU,CAAC,cAAc,UAAU,kBAAkB,UAAU,eAAe,GAAK,YAAY,UAAU,oBAAoB,UAAU,kBAAkB,UAAU,gBAAgB,SAAS,EAAE,OAAO,CAAC,CAAC,EAAQ,GAAiB,CAAC,SAAO,SAAO,UAAQ,CAAC,IAAM,EAAQ,EAAiB,EAAQ,EAAY,EAAO,EAAO,OAAO,EAAO,SAAe,EAAU,EAAO,EAAO,WAAW,EAAO,aAAa,OAAoB,EAAK,EAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,GAAG,MAAM,EAAE,EAAE,WAAW,CAAC,SAAS,GAAG,KAAK,SAAS,EAAE,MAAM,CAAC,UAAU,EAAO,WAAW,aAAa,WAAW,EAAY,MAAM,EAAU,aAAa,GAAG,QAAQ,YAAY,SAAS,MAAM,QAAQ,OAAO,IAAI,EAAE,WAAW,SAAS,GAAG,CAAI,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAgB,EAAK,EAAO,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,MAAM,gBAAgB,EAAU,QAAQ,OAAO,EAAE,QAAQ,EAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,WAAW,CAAC,SAAS,IAAI,OAAO,IAAS,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAE,EAAQ,GAAe,CAAC,OAAK,SAAO,SAAO,OAAK,kBAAgB,CAAC,IAAM,EAAY,EAAO,EAAO,OAAO,EAAO,SAAe,EAAU,EAAO,EAAO,WAAW,EAAO,aAAmB,EAAU,GAAmB,EAAK,MAAM,gBAA6B,CAAC,CAAC,KAAK,EAAK,IAAI,EAAE,GAAI,EAAe,EAAK,SAAS,CAAC,SAAS,CAAI,EAAE,CAAC,EAAE,CAAI,EAAI,OAAoB,EAAK,EAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,GAAG,MAAM,GAAG,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,WAAW,CAAC,SAAS,GAAG,KAAK,SAAS,EAAE,MAAM,CAAC,UAAU,EAAO,WAAW,aAAa,WAAW,EAAY,MAAM,EAAU,eAAa,QAAQ,YAAY,SAAS,MAAM,UAAU,aAAa,GAAG,CAAI,EAAE,SAAS,EAAU,CAAI,CAAC,CAAC,CAAE,EACnhE,GAAO,EAAE,EAAI,IAAM,KAAK,IAAI,EAAI,KAAK,IAAI,EAAI,CAAC,CAAC,EAAQ,EAAM,GAAG,CAAC,CAAC,GAAG,gCAAgC,KAAK,CAAC,EAAQ,GAAc,EAAI,EAAS,YAAY,CAAC,GAAG,CAAC,EAAM,CAAG,EAAE,OAAO,EAAS,IAAM,EAAE,EAAI,QAAQ,IAAI,EAAE,EAA6D,MAAM,IAAtD,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,IAAmB,YAAY,CAAE,EAAQ,EAAY,GAAK,CAAC,IAAM,EAAK,EAAa,EAAI,SAAS,EAAQ,EAAE,SAAS,EAAK,MAAM,EAAE,CAAC,EAAE,EAAE,EAAQ,EAAE,SAAS,EAAK,MAAM,EAAE,CAAC,EAAE,EAAE,EAAQ,EAAE,SAAS,EAAK,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,KAAK,IAAI,UAAU,SAAU,EAAQ,EAAa,GAA0B,EAAM,KAAK,OAAO,GAAK,QAAQ,GAAG,GAAI,GAAG,EAAE,IAAI,IAAI,EAUiM,EAAoB,EAAa,CACj2B,SAAS,CAAC,KAAK,EAAY,MAAM,MAAM,mBAAmB,MAAM,WAAW,aAAa,CAAC,CAAC,KAAK,qDAAqD,OAAO,EAAK,EAAE,CAAC,KAAK,iFAAiF,OAAO,EAAK,EAAE,CAAC,KAAK,wBAAwB,OAAO,EAAI,EAAE,CAAC,KAAK,+CAA+C,OAAO,EAAK,EAAE,CAAC,KAAK,wBAAwB,OAAO,EAAI,EAAE,CAAC,KAAK,yCAAyC,OAAO,EAAK,CAAC,EAAE,gBAAgB,CAAC,KAAK,EAAY,OAAO,SAAS,CAAC,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,eAAe,gBAAgB,GAAK,aAAa,iBAAiB,EAAE,OAAO,CAAC,KAAK,EAAY,QAAQ,MAAM,UAAU,aAAa,SAAS,cAAc,WAAW,aAAa,EAAK,CAAC,CAAC,CAAC,EAC9uB,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,4BAA4B,aAAa,qDAAqD,MAAM,WAAW,gBAAgB,GAAK,OAAO,GAAG,MAAM,QAAQ,EAAE,QAAQ,GAAG,EAAE,SAAS,OAAO,CAAC,EAAE,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,0BAA0B,aAAa,iFAAiF,MAAM,WAAW,gBAAgB,GAAK,OAAO,GAAG,MAAM,QAAQ,EAAE,QAAQ,GAAG,EAAE,SAAS,OAAO,CAAC,EAAE,aAAa,CAAC,KAAK,EAAY,QAAQ,MAAM,iBAAiB,aAAa,GAAK,aAAa,OAAO,cAAc,OAAO,MAAM,WAAW,OAAO,GAAG,MAAM,QAAQ,EAAE,QAAQ,GAAG,EAAE,SAAS,OAAO,CAAC,EAAE,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,uBAAuB,aAAa,wBAAwB,MAAM,WAAW,gBAAgB,GAAK,OAAO,GAAG,MAAM,QAAQ,EAAE,QAAQ,GAAG,EAAE,SAAS,OAAO,GAAG,CAAC,EAAE,YAAY,EAAE,gBAAgB,CAAC,KAAK,EAAY,QAAQ,MAAM,aAAa,aAAa,GAAM,aAAa,SAAS,cAAc,WAAW,MAAM,WAAW,OAAO,GAAG,MAAM,QAAQ,EAAE,QAAQ,GAAG,EAAE,SAAS,OAAO,CAAC,EACvkC,iBAAiB,CAAC,KAAK,EAAY,KAAK,MAAM,kBAAkB,QAAQ,CAAC,OAAO,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,aAAa,CAAC,iBAAiB,QAAQ,QAAQ,SAAS,SAAS,QAAQ,EAAE,aAAa,OAAO,MAAM,SAAS,YAAY,iCAAiC,EAAE,mBAAmB,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,aAAa,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,GAAG,KAAK,KAAK,MAAM,SAAS,YAAY,yBAAyB,EAC3a,MAAM,CAAC,KAAK,EAAY,KAAK,MAAM,QAAQ,QAAQ,CAAC,WAAW,WAAW,YAAY,QAAQ,EAAE,aAAa,CAAC,WAAW,WAAW,YAAY,QAAQ,EAAE,aAAa,WAAW,MAAM,OAAO,EAAE,cAAc,CAAC,KAAK,EAAY,QAAQ,MAAM,qBAAqB,aAAa,GAAK,aAAa,OAAO,cAAc,SAAS,MAAM,QAAQ,YAAY,4CAA4C,EACvY,cAAc,CAAC,KAAK,EAAY,MAAM,MAAM,kBAAkB,aAAa,UAAU,MAAM,iBAAiB,OAAO,GAAG,EAAE,QAAQ,QAAQ,EAAE,kBAAkB,CAAC,KAAK,EAAY,MAAM,MAAM,gBAAgB,aAAa,UAAU,MAAM,iBAAiB,YAAY,gCAAgC,OAAO,GAAG,EAAE,QAAQ,UAAU,EAAE,gBAAgB,EAAK,EACzV,iBAAiB,CAAC,KAAK,EAAY,QAAQ,MAAM,gBAAgB,aAAa,GAAM,aAAa,WAAW,cAAc,QAAQ,MAAM,iBAAiB,OAAO,GAAG,EAAE,QAAQ,QAAQ,EAAE,sBAAsB,CAAC,KAAK,EAAY,MAAM,MAAM,iBAAiB,aAAa,UAAU,MAAM,iBAAiB,OAAO,GAAG,EAAE,QAAQ,UAAU,CAAC,EAAE,gBAAgB,EAAE,oBAAoB,CAAC,KAAK,EAAY,MAAM,MAAM,eAAe,aAAa,UAAU,MAAM,iBAAiB,OAAO,GAAG,EAAE,QAAQ,UAAU,CAAC,EAAE,gBAAgB,EAC7f,eAAe,CAAC,KAAK,EAAY,QAAQ,MAAM,cAAc,aAAa,GAAM,aAAa,WAAW,cAAc,QAAQ,MAAM,eAAe,OAAO,GAAG,EAAE,QAAQ,QAAQ,EAAE,YAAY,CAAC,KAAK,EAAY,MAAM,MAAM,gBAAgB,aAAa,UAAU,MAAM,eAAe,OAAO,GAAG,EAAE,QAAQ,UAAU,EAAE,cAAc,EAAE,oBAAoB,CAAC,KAAK,EAAY,MAAM,MAAM,iBAAiB,aAAa,UAAU,MAAM,eAAe,OAAO,GAAG,EAAE,QAAQ,UAAU,CAAC,EAAE,cAAc,EAAE,kBAAkB,CAAC,KAAK,EAAY,MAAM,MAAM,eAAe,aAAa,UAAU,MAAM,eAAe,OAAO,GAAG,EAAE,QAAQ,UAAU,CAAC,EAAE,cAAc,EAAE,gBAAgB,CAAC,KAAK,EAAY,MAAM,MAAM,cAAc,aAAa,UAAU,MAAM,eAAe,YAAY,8BAA8B,OAAO,GAAG,EAAE,QAAQ,UAAU,EAAE,gBAAgB,EAAK,EAC10B,KAAK,CAAC,KAAK,EAAY,KAAK,MAAM,OAAO,SAAS,WAAW,gBAAgB,aAAa,aAAa,CAAC,SAAS,OAAO,QAAQ,UAAU,cAAc,UAAU,WAAW,OAAO,EAAE,MAAM,eAAe,EAAE,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,gBAAgB,aAAa,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,KAAK,KAAK,MAAM,eAAe,EAAE,UAAU,CAAC,KAAK,EAAY,MAAM,MAAM,sBAAsB,aAAa,UAAU,MAAM,gBAAgB,OAAO,GAAG,EAAE,gBAAgB,IAAO,EAAE,QAAQ,QAAQ,EAC9e,YAAY,CAAC,KAAK,EAAY,KAAK,MAAM,eAAe,QAAQ,CAAC,OAAO,QAAQ,QAAQ,QAAQ,EAAE,aAAa,CAAC,aAAa,WAAW,WAAW,WAAW,EAAE,aAAa,OAAO,MAAM,UAAU,EAAE,eAAe,CAAC,KAAK,EAAY,QAAQ,MAAM,mBAAmB,aAAa,GAAK,aAAa,QAAQ,cAAc,OAAO,MAAM,UAAU,CAAC,CAAC"}