{"version":3,"file":"LoadingBP.DAlW-JKB.mjs","names":["p","React.useState","elapsed","minWait"],"sources":["https:/framerusercontent.com/modules/QmnvHZzZ5rgB5kk2Z037/o09iy3yYFu3DRuYkR380/LoadingBP.js"],"sourcesContent":["// CentoLoadingResolver2Step.tsx\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{motion}from\"framer-motion\";import{addPropertyControls,ControlType}from\"framer\";import{resolveUrlWithOrigin}from\"https://framerusercontent.com/modules/vvysgs1RvBkHukJEo4qL/bhjhRziUTdEfzn6nwwD7/resolver.js\";/* ===========================\n   CENTO GENERIC LOADING RESOLVER (2 STEPS)\n   Reusable for Heart-Check, BP, etc.\n   - Namespaced localStorage key: cc_result_${programmeKey}\n   - Optionally also writes cc_result (shared)\n   - Backwards compatible payload fields (risk_tier/score_*)\n   - NEW: Always persists `normalized` and `raw_answers` (if present) for richer result pages\n   =========================== */const RESOLVE_URL=\"https://dev.jonaswilbert.com/webhook/cdac7f48-1776-409e-83fb-8825e7b60026\";const ERROR_WEBHOOK=\"https://dev.jonaswilbert.com/webhook/5bb5ad17-96e8-43a7-bfdc-dd5d126bf120\";const MIN_SPIN=1600;const INITIAL_WAIT=800;const MAX_TOTAL=12e3;const COOKIE_AGE=60*60*24*90;const DELAYS=[600,800,1e3,1200,1500,1800,2e3];const wait=ms=>new Promise(resolve=>setTimeout(resolve,ms));const qs=()=>new URLSearchParams(window.location.search);const safe=x=>x==null?\"\":String(x).trim();const setCookie=(n,v)=>{try{document.cookie=`${n}=${encodeURIComponent(String(v??\"\"))}; Path=/; Max-Age=${COOKIE_AGE}; Secure; SameSite=Lax`;}catch{}};/** Beacon logger (survives navigation) */const ccLog=(type,extra={})=>{try{const base={type,ts:Date.now(),cid:localStorage.getItem(\"cc_cid\")||null,path:location.pathname,href:location.href,ref:qs().get(\"ref\")||\"cento\"};const body=JSON.stringify({...base,...extra});if(!navigator.sendBeacon||!navigator.sendBeacon(ERROR_WEBHOOK,new Blob([body],{type:\"application/json\"}))){fetch(ERROR_WEBHOOK,{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body,keepalive:true}).catch(()=>{});}}catch{}};const redirectToError=(type,context={})=>{ccLog(\"loader_error\",{type,...context});window.location.href=`/error?type=${type}`;};/** Ready if payload contains meaningful fields */const isReady=data=>{if(!data)return false;const n=data.normalized??data;return Boolean(n?.result_code??data?.result_code)||n?.score_percent!=null||n?.score_points!=null||Boolean(n?.display_texts??data?.display_texts);};/** GET with timeout + pending detection (HTTP/JSON/302) */async function getResolve(url,timeoutMs=2500){const ctrl=new AbortController;const t=setTimeout(()=>ctrl.abort(),timeoutMs);try{const res=await fetch(url,{method:\"GET\",cache:\"no-store\",headers:{Accept:\"application/json\"},signal:ctrl.signal,redirect:\"manual\"});clearTimeout(t);if(res.status>=300&&res.status<400)return{kind:\"pending\",status:res.status};if(res.status===202||res.status===204)return{kind:\"pending\",status:res.status};if(!res.ok)return{kind:\"error\",status:res.status};const data=await res.json().catch(()=>undefined);if(data&&typeof data===\"object\"){const s=data.status??data?.json?.status;if(s===\"pending\")return{kind:\"pending\",status:200};}return{kind:\"ok\",status:res.status,data};}catch{clearTimeout(t);return{kind:\"error\",status:0};}}export default function CentoLoadingResolver2Step(p){const props={/* Flow defaults (set to HC, override in Framer for BP) */loadingPath:\"/heart-check/loading\",refDefault:\"heart-check\",programmeKey:\"hc\",qualifiedPath:\"/heart-check/result-qualified\",unqualifiedPath:\"/heart-check/result-unqualified\",scriptTag:\"cento_loading_2step\",/* Content */showHeadline:false,headline:\"Analysing your responses…\",showSubheadline:false,subheadline:\"\",step1Label:\"Analysing your response\",step1Text:\"Reviewing your answers and identifying what matters most…\",step2Label:\"Matching you with a wellness coach\",step2Text:\"Selecting the best next step based on your profile…\",/* Timing */minDisplaySeconds:3,/* Card style */cardBg:\"#ffffff\",cardRadius:18,cardShadow:24,padding:20,sectionGap:14,stepGap:14,/* Bars */barHeight:8,barRadius:999,barTrackColor:\"#E5E7EB\",barFillColor:\"#111827\",/* Colours */textColor:\"#111827\",mutedTextColor:\"#6B7280\",checkColor:\"#111827\",checkBg:\"rgba(17,24,39,0.08)\",/* Typography */headlineFont:undefined,headlineSize:18,headlineWeight:700,bodyFont:undefined,labelSize:14,labelWeight:650,sublineSize:13,/* Storage */writeGenericCcResult:true,...p};const steps=[{label:props.step1Label,text:props.step1Text},{label:props.step2Label,text:props.step2Text}];const[completed,setCompleted]=React.useState(()=>new Array(steps.length).fill(false));const key=safe(props.programmeKey||\"cento\").toLowerCase();const toObj=v=>{if(!v||typeof v!==\"object\")return null;if(Array.isArray(v))return null;return v;};const saveResult=data=>{// Support both shapes:\n// 1) { normalized: {...}, raw_answers: {...}, ... }\n// 2) { data: {...} } or other wrappers handled earlier (we already unwrap)\nconst normalized=toObj(data?.normalized)||toObj(data)||{};const raw_answers=toObj(data?.raw_answers)||null;const result_code=(data?.result_code??normalized?.result_code??normalized?.resultCode??\"\")+\"\";const display_texts=normalized?.display_texts??data?.display_texts??(toObj(data?.display_texts)||{})??{};// Backwards compatible score fields:\nconst score_points=Number(normalized?.score_points??data?.score_points??data?.scores?.total_points??0);const score_percent=Number(normalized?.score_percent??data?.score_percent??data?.scores?.total_percent??0);const disqualified=Boolean(normalized?.disqualified??data?.disqualified??false);const scoring_fallback=Boolean(normalized?.scoring_fallback??data?.scoring_fallback??false);const payload={// Keep original ref logic (works for any product)\nref:safe(qs().get(\"ref\")||props.refDefault||\"cento\"),product_code:safe(data?.product_code??normalized?.product_code??data?.ref??normalized?.ref??props.refDefault??\"\"),cid:localStorage.getItem(\"cc_cid\")||null,first_name:data?.first_name||\"\",email:data?.email||\"\",// Core resolver identifiers\nresult_code,ts:Date.now(),// Back-compat fields (hc/lab/etc)\nrisk_tier:normalized?.risk_tier??data?.risk_tier??\"unknown\",score_points,score_percent,disqualified,scoring_fallback,display_texts,// NEW: preserve full server payload for richer result pages\nnormalized,raw_answers};// Namespaced programme result (used by each product)\nlocalStorage.setItem(`cc_result_${key}`,JSON.stringify(payload));// Optional shared result (kept for old pages relying on cc_result)\nif(props.writeGenericCcResult){localStorage.setItem(\"cc_result\",JSON.stringify(data));}if(payload.result_code){localStorage.setItem(`cc_rc_${key}`,payload.result_code);setCookie(`cc_rc_${key}`,payload.result_code);}// These cookies are safe even if they’re 0 / false\nsetCookie(`cc_score_${key}`,payload.score_percent);setCookie(`cc_dq_${key}`,payload.disqualified?1:0);if(payload.first_name)setCookie(`cc_fn_${key}`,payload.first_name);return payload;};/* Resolver logic (runs once on mount) */React.useEffect(()=>{(async()=>{const path=window.location.pathname.replace(/\\/+$/,\"\");const target=safe(props.loadingPath).replace(/\\/+$/,\"\");if(target&&path!==target)return;const minDisplayMs=Math.max(500,(props.minDisplaySeconds||3)*1e3);const Q=qs();const ref=safe(Q.get(\"ref\")||props.refDefault||\"cento\").toLowerCase();const cid=safe(Q.get(\"cid\")||localStorage.getItem(\"cc_cid\"));const start=Date.now();if(!cid){await wait(minDisplayMs);return redirectToError(\"not-found\",{ref,error_details:\"Missing client_id (cid)\"});}// Note: ref is optional. If your resolve ignores ref, it’s harmless.\nconst base=`${RESOLVE_URL}?cid=${encodeURIComponent(cid)}&ref=${encodeURIComponent(ref)}`;let attempts=0;ccLog(\"loader_start\",{ref,cid,programmeKey:key});await wait(INITIAL_WAIT);while(Date.now()-start<MAX_TOTAL){attempts++;const resolveUrl=resolveUrlWithOrigin(base,{script:props.scriptTag||\"cento_loading_2step\",cid,attempt:attempts,programmeKey:key});const r=await getResolve(resolveUrl,3e3);if(r.kind===\"error\"){if(r.status>=500&&Date.now()-start<MAX_TOTAL){// keep trying within time budget\n}else{const elapsed=Date.now()-start;const minWait=Math.max(minDisplayMs,MIN_SPIN);if(elapsed<minWait)await wait(minWait-elapsed);return redirectToError(\"network\",{ref,cid,status:r.status,polling_attempts:attempts,total_duration_ms:elapsed,error_details:\"fetch failed\"});}}else if(r.kind===\"ok\"){const payload=r.data&&(r.data.data??r.data)||null;if(isReady(payload)){try{const saved=saveResult(payload);ccLog(\"loader_success\",{ref,cid,programmeKey:key,disqualified:saved.disqualified,attempts,duration_ms:Date.now()-start});const elapsed=Date.now()-start;if(elapsed<minDisplayMs)await wait(minDisplayMs-elapsed);window.location.href=saved.disqualified?props.unqualifiedPath:props.qualifiedPath;return;}catch(e){const elapsed=Date.now()-start;const minWait=Math.max(minDisplayMs,MIN_SPIN);if(elapsed<minWait)await wait(minWait-elapsed);return redirectToError(\"invalid-data\",{ref,cid,programmeKey:key,polling_attempts:attempts,total_duration_ms:elapsed,error_details:e?.message||\"save failed\"});}}}const idx=Math.min(attempts-1,DELAYS.length-1);const jitter=Math.floor(Math.random()*200);const delay=DELAYS[idx]+jitter;if(Date.now()-start+delay>=MAX_TOTAL)break;await wait(delay);}// timeout\nconst elapsed=Date.now()-start;const minWait=Math.max(minDisplayMs,MIN_SPIN);if(elapsed<minWait)await wait(minWait-elapsed);return redirectToError(\"timeout\",{ref,cid,programmeKey:key,polling_attempts:attempts,total_duration_ms:elapsed,error_details:\"Result not ready after polling\"});})();// eslint-disable-next-line react-hooks/exhaustive-deps\n},[]);/* Step completion timing */React.useEffect(()=>{const totalMs=Math.max(500,(props.minDisplaySeconds||3)*1e3);const perStepMs=totalMs/steps.length;const timeouts=[];steps.forEach((_,idx)=>{const delayMs=perStepMs*(idx+1);const id=window.setTimeout(()=>{setCompleted(prev=>{const next=[...prev];next[idx]=true;return next;});},delayMs);timeouts.push(id);});return()=>timeouts.forEach(id=>window.clearTimeout(id));},[steps.length,props.minDisplaySeconds]);const headlineFamily=props.headlineFont?.family||props.headlineFont?.fontFamily||\"system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif\";const bodyFamily=props.bodyFont?.family||props.bodyFont?.fontFamily||\"system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif\";// Styles\nconst cardStyle={width:\"100%\",height:\"100%\",boxSizing:\"border-box\",background:props.cardBg,borderRadius:props.cardRadius,boxShadow:props.cardShadow?`0 ${Math.round(props.cardShadow/2)}px ${props.cardShadow}px rgba(15,23,42,0.16)`:\"none\",padding:props.padding,display:\"flex\",flexDirection:\"column\",justifyContent:\"flex-start\",gap:props.sectionGap};const headerStyle={display:\"flex\",flexDirection:\"column\",gap:6};const headlineStyle={fontFamily:headlineFamily,fontSize:props.headlineSize,fontWeight:props.headlineWeight,color:props.textColor,lineHeight:1.2};const subheadlineStyle={fontFamily:bodyFamily,fontSize:props.sublineSize,fontWeight:400,color:props.mutedTextColor,lineHeight:1.5};const listStyle={display:\"flex\",flexDirection:\"column\",gap:props.stepGap};const rowStyle={display:\"flex\",flexDirection:\"column\",gap:6};const labelRowStyle={display:\"flex\",alignItems:\"center\",justifyContent:\"space-between\",gap:12};const labelStyle={fontFamily:bodyFamily,fontSize:props.labelSize,fontWeight:props.labelWeight,color:props.textColor};const sublineStyle={fontFamily:bodyFamily,fontSize:props.sublineSize,fontWeight:400,color:props.mutedTextColor};const barTrackStyle={width:\"100%\",height:props.barHeight,borderRadius:props.barRadius,background:props.barTrackColor,overflow:\"hidden\",position:\"relative\"};const checkBase={width:20,height:20,borderRadius:\"999px\",border:`1px solid ${props.checkColor}`,background:props.checkBg,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",flexShrink:0};const CheckIcon=({visible})=>{if(!visible)return /*#__PURE__*/_jsx(\"div\",{style:checkBase});return /*#__PURE__*/_jsx(\"div\",{style:checkBase,children:/*#__PURE__*/_jsx(\"svg\",{width:\"12\",height:\"12\",viewBox:\"0 0 24 24\",fill:\"none\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M5 12.5 9.5 17 19 7.5\",stroke:props.checkColor,strokeWidth:2,strokeLinecap:\"round\",strokeLinejoin:\"round\"})})});};return /*#__PURE__*/_jsxs(\"div\",{style:cardStyle,children:[props.showHeadline||props.showSubheadline?/*#__PURE__*/_jsxs(\"div\",{style:headerStyle,children:[props.showHeadline?/*#__PURE__*/_jsx(\"div\",{style:headlineStyle,children:props.headline}):null,props.showSubheadline?/*#__PURE__*/_jsx(\"div\",{style:subheadlineStyle,children:props.subheadline}):null]}):null,/*#__PURE__*/_jsx(\"div\",{style:listStyle,children:steps.map((step,index)=>{const totalMs=Math.max(500,(props.minDisplaySeconds||3)*1e3);const perStepMs=totalMs/steps.length;const startDelay=perStepMs*index;const fillDuration=perStepMs;return /*#__PURE__*/_jsxs(\"div\",{style:rowStyle,children:[/*#__PURE__*/_jsxs(\"div\",{style:labelRowStyle,children:[/*#__PURE__*/_jsx(\"div\",{style:labelStyle,children:step.label}),/*#__PURE__*/_jsx(CheckIcon,{visible:completed[index]})]}),/*#__PURE__*/_jsx(\"div\",{style:sublineStyle,children:step.text}),/*#__PURE__*/_jsx(\"div\",{style:barTrackStyle,children:/*#__PURE__*/_jsx(motion.div,{initial:{width:\"0%\"},animate:{width:\"100%\"},transition:{delay:startDelay/1e3,duration:fillDuration/1e3,ease:\"easeInOut\"},style:{position:\"absolute\",inset:0,background:props.barFillColor}})})]},index);})})]});}/* ===========================\n   Property Controls\n   =========================== */addPropertyControls(CentoLoadingResolver2Step,{// Flow config\nloadingPath:{type:ControlType.String,title:\"Loading path\",defaultValue:\"/heart-check/loading\"},refDefault:{type:ControlType.String,title:\"Ref default\",defaultValue:\"heart-check\"},programmeKey:{type:ControlType.String,title:\"Key\",defaultValue:\"hc\"},qualifiedPath:{type:ControlType.String,title:\"Qualified →\",defaultValue:\"/heart-check/result-qualified\"},unqualifiedPath:{type:ControlType.String,title:\"Unqual →\",defaultValue:\"/heart-check/result-unqualified\"},scriptTag:{type:ControlType.String,title:\"Script tag\",defaultValue:\"cento_loading_2step\"},writeGenericCcResult:{type:ControlType.Boolean,title:\"Write cc_result\",defaultValue:true},// Content\nshowHeadline:{type:ControlType.Boolean,title:\"Show headline\",defaultValue:false},headline:{type:ControlType.String,title:\"Headline\",defaultValue:\"Analysing your responses…\",hidden:p=>!p.showHeadline},showSubheadline:{type:ControlType.Boolean,title:\"Show subline\",defaultValue:false},subheadline:{type:ControlType.String,title:\"Subline\",defaultValue:\"\",hidden:p=>!p.showSubheadline},step1Label:{type:ControlType.String,title:\"Step 1 label\",defaultValue:\"Analysing your response\"},step1Text:{type:ControlType.String,title:\"Step 1 text\",defaultValue:\"Reviewing your answers and identifying what matters most…\"},step2Label:{type:ControlType.String,title:\"Step 2 label\",defaultValue:\"Matching you with a wellness coach\"},step2Text:{type:ControlType.String,title:\"Step 2 text\",defaultValue:\"Selecting the best next step based on your profile…\"},// Timing\nminDisplaySeconds:{type:ControlType.Number,title:\"Min display (s)\",defaultValue:3,min:1,max:12,step:.5},// Card style\ncardBg:{type:ControlType.Color,title:\"Card BG\",defaultValue:\"#ffffff\"},cardRadius:{type:ControlType.Number,title:\"Radius\",defaultValue:18,min:0,max:48},cardShadow:{type:ControlType.Number,title:\"Shadow\",defaultValue:24,min:0,max:60},padding:{type:ControlType.Number,title:\"Padding\",defaultValue:20,min:8,max:48},sectionGap:{type:ControlType.Number,title:\"Section gap\",defaultValue:14,min:4,max:40},stepGap:{type:ControlType.Number,title:\"Step gap\",defaultValue:14,min:4,max:40},// Bars\nbarHeight:{type:ControlType.Number,title:\"Bar height\",defaultValue:8,min:4,max:24},barRadius:{type:ControlType.Number,title:\"Bar radius\",defaultValue:999,min:0,max:999},barTrackColor:{type:ControlType.Color,title:\"Bar track\",defaultValue:\"#E5E7EB\"},barFillColor:{type:ControlType.Color,title:\"Bar fill\",defaultValue:\"#111827\"},// Colours\ntextColor:{type:ControlType.Color,title:\"Text\",defaultValue:\"#111827\"},mutedTextColor:{type:ControlType.Color,title:\"Subtext\",defaultValue:\"#6B7280\"},checkColor:{type:ControlType.Color,title:\"Tick colour\",defaultValue:\"#111827\"},checkBg:{type:ControlType.Color,title:\"Tick BG\",defaultValue:\"rgba(17,24,39,0.08)\"},// Typography\nheadlineFont:{type:ControlType.Font,title:\"Headline font\"},headlineSize:{type:ControlType.Number,title:\"Headline size\",defaultValue:18,min:12,max:40},headlineWeight:{type:ControlType.Number,title:\"Headline weight\",defaultValue:700,min:400,max:900,step:50},bodyFont:{type:ControlType.Font,title:\"Body font\"},labelSize:{type:ControlType.Number,title:\"Label size\",defaultValue:14,min:10,max:24},labelWeight:{type:ControlType.Number,title:\"Label weight\",defaultValue:650,min:300,max:900,step:50},sublineSize:{type:ControlType.Number,title:\"Subline size\",defaultValue:13,min:10,max:22}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CentoLoadingResolver2Step\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./LoadingBP.map"],"mappings":"iTAQ2lD,eAAe,EAAW,EAAI,EAAU,KAAK,CAAC,IAAM,EAAK,IAAI,gBAAsB,EAAE,eAAe,EAAK,OAAO,CAAC,EAAU,CAAC,GAAG,CAAC,IAAM,EAAI,MAAM,MAAM,EAAI,CAAC,OAAO,MAAM,MAAM,WAAW,QAAQ,CAAC,OAAO,mBAAmB,CAAC,OAAO,EAAK,OAAO,SAAS,SAAS,CAAC,CAA6F,GAA5F,aAAa,EAAE,CAAI,EAAI,QAAQ,KAAK,EAAI,OAAO,KAAgD,EAAI,SAAS,KAAK,EAAI,SAAS,IAAI,MAAM,CAAC,KAAK,UAAU,OAAO,EAAI,OAAO,CAAC,GAAG,CAAC,EAAI,GAAG,MAAM,CAAC,KAAK,QAAQ,OAAO,EAAI,OAAO,CAAC,IAAM,EAAK,MAAM,EAAI,MAAM,CAAC,UAAU,IAAA,GAAU,CAA8H,OAA1H,GAAM,OAAO,GAAO,WAAkB,EAAK,QAAQ,GAAM,MAAM,UAAc,UAAgB,CAAC,KAAK,UAAU,OAAO,IAAI,CAAQ,CAAC,KAAK,KAAK,OAAO,EAAI,OAAO,OAAK,MAAO,CAAiB,OAAhB,aAAa,EAAE,CAAO,CAAC,KAAK,QAAQ,OAAO,EAAE,EAAG,SAAwB,EAA0B,EAAE,CAAC,IAAM,EAAM,CAA2D,YAAY,uBAAuB,WAAW,cAAc,aAAa,KAAK,cAAc,gCAAgC,gBAAgB,kCAAkC,UAAU,sBAAmC,aAAa,GAAM,SAAS,4BAA4B,gBAAgB,GAAM,YAAY,GAAG,WAAW,0BAA0B,UAAU,4DAA4D,WAAW,qCAAqC,UAAU,sDAAkE,kBAAkB,EAAkB,OAAO,UAAU,WAAW,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAa,UAAU,EAAE,UAAU,IAAI,cAAc,UAAU,aAAa,UAAuB,UAAU,UAAU,eAAe,UAAU,WAAW,UAAU,QAAQ,sBAAsC,aAAa,IAAA,GAAU,aAAa,GAAG,eAAe,IAAI,SAAS,IAAA,GAAU,UAAU,GAAG,YAAY,IAAI,YAAY,GAAgB,qBAAqB,GAAK,GAAGA,EAAE,CAAO,EAAM,CAAC,CAAC,MAAM,EAAM,WAAW,KAAK,EAAM,UAAU,CAAC,CAAC,MAAM,EAAM,WAAW,KAAK,EAAM,UAAU,CAAC,CAAM,CAAC,EAAU,GAAcC,MAAuB,MAAM,EAAM,OAAO,CAAC,KAAK,GAAM,CAAC,CAAO,EAAI,EAAK,EAAM,cAAc,QAAQ,CAAC,aAAa,CAAO,EAAM,GAAO,CAAC,GAAG,OAAO,GAAI,UAAwB,MAAM,QAAQ,EAAE,CAAQ,KAAY,EAAU,EAAW,GAAM,CAGn0H,IAAM,EAAW,EAAM,GAAM,WAAW,EAAE,EAAM,EAAK,EAAE,EAAE,CAAO,EAAY,EAAM,GAAM,YAAY,EAAE,KAAW,GAAa,GAAM,aAAa,GAAY,aAAa,GAAY,YAAY,IAAI,GAAS,EAAc,GAAY,eAAe,GAAM,gBAAgB,EAAM,GAAM,cAAc,EAAE,EAAE,GAAG,EAAE,CAC3S,EAAa,OAAO,GAAY,cAAc,GAAM,cAAc,GAAM,QAAQ,cAAc,EAAE,CAAO,EAAc,OAAO,GAAY,eAAe,GAAM,eAAe,GAAM,QAAQ,eAAe,EAAE,CAAO,EAAa,GAAQ,GAAY,cAAc,GAAM,cAAc,IAAa,EAAiB,GAAQ,GAAY,kBAAkB,GAAM,kBAAkB,IAAa,EAAQ,CAC5Y,IAAI,EAAK,GAAI,CAAC,IAAI,MAAM,EAAE,EAAM,YAAY,QAAQ,CAAC,aAAa,EAAK,GAAM,cAAc,GAAY,cAAc,GAAM,KAAK,GAAY,KAAK,EAAM,YAAY,GAAG,CAAC,IAAI,aAAa,QAAQ,SAAS,EAAE,KAAK,WAAW,GAAM,YAAY,GAAG,MAAM,GAAM,OAAO,GACnQ,cAAY,GAAG,KAAK,KAAK,CACzB,UAAU,GAAY,WAAW,GAAM,WAAW,UAAU,eAAa,gBAAc,eAAa,mBAAiB,gBACrH,aAAW,cAAY,CAGkJ,OAFzK,aAAa,QAAQ,aAAa,IAAM,KAAK,UAAU,EAAQ,CAAC,CAC7D,EAAM,sBAAsB,aAAa,QAAQ,YAAY,KAAK,UAAU,EAAK,CAAC,CAAK,EAAQ,cAAa,aAAa,QAAQ,SAAS,IAAM,EAAQ,YAAY,CAAC,EAAU,SAAS,IAAM,EAAQ,YAAY,EACrN,EAAU,YAAY,IAAM,EAAQ,cAAc,CAAC,EAAU,SAAS,IAAM,EAAQ,aAAa,EAAE,EAAE,CAAI,EAAQ,YAAW,EAAU,SAAS,IAAM,EAAQ,WAAW,CAAQ,GAAmD,MAAoB,EAAE,SAAS,CAAC,IAAM,EAAK,EAAO,SAAS,SAAS,QAAQ,OAAO,GAAG,CAAO,EAAO,EAAK,EAAM,YAAY,CAAC,QAAQ,OAAO,GAAG,CAAC,GAAG,GAAQ,IAAO,EAAO,OAAO,IAAM,EAAa,KAAK,IAAI,KAAK,EAAM,mBAAmB,GAAG,IAAI,CAAO,EAAE,GAAI,CAAO,EAAI,EAAK,EAAE,IAAI,MAAM,EAAE,EAAM,YAAY,QAAQ,CAAC,aAAa,CAAO,EAAI,EAAK,EAAE,IAAI,MAAM,EAAE,aAAa,QAAQ,SAAS,CAAC,CAAO,EAAM,KAAK,KAAK,CAAC,GAAG,CAAC,EAA8B,OAAzB,MAAM,EAAK,EAAa,CAAQ,EAAgB,YAAY,CAAC,MAAI,cAAc,0BAA0B,CAAC,CAC9uB,IAAM,EAAK,GAAG,EAAY,OAAO,mBAAmB,EAAI,CAAC,OAAO,mBAAmB,EAAI,GAAO,EAAS,EAA4E,IAA1E,EAAM,eAAe,CAAC,MAAI,MAAI,aAAa,EAAI,CAAC,CAAC,MAAM,EAAK,EAAa,CAAO,KAAK,KAAK,CAAC,EAAM,GAAU,CAAC,IAA6I,IAAM,EAAE,MAAM,EAA/H,EAAqB,EAAK,CAAC,OAAO,EAAM,WAAW,sBAAsB,MAAI,QAAQ,EAAS,aAAa,EAAI,CAAC,CAAqC,IAAI,CAAC,GAAG,EAAE,OAAO,QAAS,IAAG,IAAE,QAAQ,KAAK,KAAK,KAAK,CAAC,EAAM,GAC9b,CAAC,IAAMC,EAAQ,KAAK,KAAK,CAAC,EAAYC,EAAQ,KAAK,IAAI,EAAa,EAAS,CAAgD,OAA5CD,EAAQC,GAAQ,MAAM,EAAKA,EAAQD,EAAQ,CAAQ,EAAgB,UAAU,CAAC,MAAI,MAAI,OAAO,EAAE,OAAO,iBAAiB,EAAS,kBAAkBA,EAAQ,cAAc,eAAe,CAAC,UAAW,EAAE,OAAO,KAAK,CAAC,IAAM,EAAQ,EAAE,OAAO,EAAE,KAAK,MAAM,EAAE,OAAO,KAAK,GAAG,EAAQ,EAAQ,CAAE,GAAG,CAAC,IAAM,EAAM,EAAW,EAAQ,CAAC,EAAM,iBAAiB,CAAC,MAAI,MAAI,aAAa,EAAI,aAAa,EAAM,aAAa,WAAS,YAAY,KAAK,KAAK,CAAC,EAAM,CAAC,CAAC,IAAMA,EAAQ,KAAK,KAAK,CAAC,EAASA,EAAQ,GAAa,MAAM,EAAK,EAAaA,EAAQ,CAAC,EAAO,SAAS,KAAK,EAAM,aAAa,EAAM,gBAAgB,EAAM,cAAc,aAAc,EAAE,CAAC,IAAMA,EAAQ,KAAK,KAAK,CAAC,EAAYC,EAAQ,KAAK,IAAI,EAAa,EAAS,CAAgD,OAA5CD,EAAQC,GAAQ,MAAM,EAAKA,EAAQD,EAAQ,CAAQ,EAAgB,eAAe,CAAC,MAAI,MAAI,aAAa,EAAI,iBAAiB,EAAS,kBAAkBA,EAAQ,cAAc,GAAG,SAAS,cAAc,CAAC,EAAI,IAAM,EAAI,KAAK,IAAI,EAAS,EAAE,EAAO,OAAO,EAAE,CAAO,EAAO,KAAK,MAAM,KAAK,QAAQ,CAAC,IAAI,CAAO,EAAM,EAAO,GAAK,EAAO,GAAG,KAAK,KAAK,CAAC,EAAM,GAAO,EAAU,MAAM,MAAM,EAAK,EAAM,CACzpC,IAAM,EAAQ,KAAK,KAAK,CAAC,EAAY,EAAQ,KAAK,IAAI,EAAa,EAAS,CAAgD,OAA5C,EAAQ,GAAQ,MAAM,EAAK,EAAQ,EAAQ,CAAQ,EAAgB,UAAU,CAAC,MAAI,MAAI,aAAa,EAAI,iBAAiB,EAAS,kBAAkB,EAAQ,cAAc,iCAAiC,CAAC,IAAK,EAC9R,EAAE,CAAC,CAA6B,MAAoB,CAA8D,IAAM,EAArD,KAAK,IAAI,KAAK,EAAM,mBAAmB,GAAG,IAAI,CAAyB,EAAM,OAAa,EAAS,EAAE,CAAgM,OAA/L,EAAM,SAAS,EAAE,IAAM,CAAC,IAAM,EAAQ,GAAW,EAAI,GAAS,EAAG,EAAO,eAAe,CAAC,EAAa,GAAM,CAAC,IAAM,EAAK,CAAC,GAAG,EAAK,CAAgB,MAAf,GAAK,GAAK,GAAY,GAAO,EAAG,EAAQ,CAAC,EAAS,KAAK,EAAG,EAAG,KAAW,EAAS,QAAQ,GAAI,EAAO,aAAa,EAAG,CAAC,EAAG,CAAC,EAAM,OAAO,EAAM,kBAAkB,CAAC,CAAC,IAAM,EAAe,EAAM,cAAc,QAAQ,EAAM,cAAc,YAAY,uEAA6E,EAAW,EAAM,UAAU,QAAQ,EAAM,UAAU,YAAY,uEACnqB,EAAU,CAAC,MAAM,OAAO,OAAO,OAAO,UAAU,aAAa,WAAW,EAAM,OAAO,aAAa,EAAM,WAAW,UAAU,EAAM,WAAW,KAAK,KAAK,MAAM,EAAM,WAAW,EAAE,CAAC,KAAK,EAAM,WAAW,wBAAwB,OAAO,QAAQ,EAAM,QAAQ,QAAQ,OAAO,cAAc,SAAS,eAAe,aAAa,IAAI,EAAM,WAAW,CAAO,EAAY,CAAC,QAAQ,OAAO,cAAc,SAAS,IAAI,EAAE,CAAO,EAAc,CAAC,WAAW,EAAe,SAAS,EAAM,aAAa,WAAW,EAAM,eAAe,MAAM,EAAM,UAAU,WAAW,IAAI,CAAO,EAAiB,CAAC,WAAW,EAAW,SAAS,EAAM,YAAY,WAAW,IAAI,MAAM,EAAM,eAAe,WAAW,IAAI,CAAO,EAAU,CAAC,QAAQ,OAAO,cAAc,SAAS,IAAI,EAAM,QAAQ,CAAO,EAAS,CAAC,QAAQ,OAAO,cAAc,SAAS,IAAI,EAAE,CAAO,EAAc,CAAC,QAAQ,OAAO,WAAW,SAAS,eAAe,gBAAgB,IAAI,GAAG,CAAO,EAAW,CAAC,WAAW,EAAW,SAAS,EAAM,UAAU,WAAW,EAAM,YAAY,MAAM,EAAM,UAAU,CAAO,EAAa,CAAC,WAAW,EAAW,SAAS,EAAM,YAAY,WAAW,IAAI,MAAM,EAAM,eAAe,CAAO,EAAc,CAAC,MAAM,OAAO,OAAO,EAAM,UAAU,aAAa,EAAM,UAAU,WAAW,EAAM,cAAc,SAAS,SAAS,SAAS,WAAW,CAAO,EAAU,CAAC,MAAM,GAAG,OAAO,GAAG,aAAa,QAAQ,OAAO,aAAa,EAAM,aAAa,WAAW,EAAM,QAAQ,QAAQ,OAAO,WAAW,SAAS,eAAe,SAAS,WAAW,EAAE,CAAO,GAAW,CAAC,aAAgB,EAA8E,EAAK,MAAM,CAAC,MAAM,EAAU,SAAsB,EAAK,MAAM,CAAC,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,cAAc,OAAO,SAAsB,EAAK,OAAO,CAAC,EAAE,wBAAwB,OAAO,EAAM,WAAW,YAAY,EAAE,cAAc,QAAQ,eAAe,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAjV,EAAK,MAAM,CAAC,MAAM,EAAU,CAAC,CAAuT,OAAoB,EAAM,MAAM,CAAC,MAAM,EAAU,SAAS,CAAC,EAAM,cAAc,EAAM,gBAA6B,EAAM,MAAM,CAAC,MAAM,EAAY,SAAS,CAAC,EAAM,aAA0B,EAAK,MAAM,CAAC,MAAM,EAAc,SAAS,EAAM,SAAS,CAAC,CAAC,KAAK,EAAM,gBAA6B,EAAK,MAAM,CAAC,MAAM,EAAiB,SAAS,EAAM,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAkB,EAAK,MAAM,CAAC,MAAM,EAAU,SAAS,EAAM,KAAK,EAAK,IAAQ,CAA8D,IAAM,EAArD,KAAK,IAAI,KAAK,EAAM,mBAAmB,GAAG,IAAI,CAAyB,EAAM,OAAa,EAAW,EAAU,EAAY,EAAa,EAAU,OAAoB,EAAM,MAAM,CAAC,MAAM,EAAS,SAAS,CAAc,EAAM,MAAM,CAAC,MAAM,EAAc,SAAS,CAAc,EAAK,MAAM,CAAC,MAAM,EAAW,SAAS,EAAK,MAAM,CAAC,CAAc,EAAK,EAAU,CAAC,QAAQ,EAAU,GAAO,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,MAAM,CAAC,MAAM,EAAa,SAAS,EAAK,KAAK,CAAC,CAAc,EAAK,MAAM,CAAC,MAAM,EAAc,SAAsB,EAAK,EAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,MAAM,OAAO,CAAC,WAAW,CAAC,MAAM,EAAW,IAAI,SAAS,EAAa,IAAI,KAAK,YAAY,CAAC,MAAM,CAAC,SAAS,WAAW,MAAM,EAAE,WAAW,EAAM,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAM,EAAG,CAAC,CAAC,CAAC,CAAC,CAAC,kDAvBv9F,IAA4B,IAAkC,IAAoD,IAA8H,CAOlQ,EAAY,4EAAkF,EAAc,4EAAkF,EAAS,KAAW,EAAa,IAAU,EAAU,KAAW,EAAW,KAAM,GAAG,GAAS,EAAO,CAAC,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,CAAO,EAAK,GAAI,IAAI,QAAQ,GAAS,WAAW,EAAQ,EAAG,CAAC,CAAO,MAAO,IAAI,gBAAgB,EAAO,SAAS,OAAO,CAAO,EAAK,GAAG,GAAG,KAAK,GAAG,OAAO,EAAE,CAAC,MAAM,CAAO,GAAW,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,OAAO,GAAG,EAAE,GAAG,mBAAmB,OAAO,GAAG,GAAG,CAAC,CAAC,oBAAoB,EAAW,6BAA8B,IAAoD,GAAO,EAAK,EAAM,EAAE,GAAG,CAAC,GAAG,CAAC,IAAM,EAAK,CAAC,OAAK,GAAG,KAAK,KAAK,CAAC,IAAI,aAAa,QAAQ,SAAS,EAAE,KAAK,KAAK,SAAS,SAAS,KAAK,SAAS,KAAK,IAAI,GAAI,CAAC,IAAI,MAAM,EAAE,QAAQ,CAAO,EAAK,KAAK,UAAU,CAAC,GAAG,EAAK,GAAG,EAAM,CAAC,EAAI,CAAC,EAAU,YAAY,CAAC,EAAU,WAAW,EAAc,IAAI,KAAK,CAAC,EAAK,CAAC,CAAC,KAAK,mBAAmB,CAAC,CAAC,GAAE,MAAM,EAAc,CAAC,OAAO,OAAO,QAAQ,CAAC,eAAe,mBAAmB,CAAC,OAAK,UAAU,GAAK,CAAC,CAAC,UAAU,GAAG,MAAQ,IAAU,GAAiB,EAAK,EAAQ,EAAE,GAAG,CAAC,EAAM,eAAe,CAAC,OAAK,GAAG,EAAQ,CAAC,CAAC,EAAO,SAAS,KAAK,eAAe,KAAiE,EAAQ,GAAM,CAAC,GAAG,CAAC,EAAK,MAAO,GAAM,IAAM,EAAE,EAAK,YAAY,EAAK,MAAO,GAAQ,GAAG,aAAa,GAAM,cAAc,GAAG,eAAe,MAAM,GAAG,cAAc,MAAM,GAAQ,GAAG,eAAe,GAAM,gBAkB9+C,EAAoB,EAA0B,CAC/E,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,eAAe,aAAa,uBAAuB,CAAC,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,aAAa,cAAc,CAAC,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,MAAM,aAAa,KAAK,CAAC,cAAc,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,aAAa,gCAAgC,CAAC,gBAAgB,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,aAAa,kCAAkC,CAAC,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,aAAa,sBAAsB,CAAC,qBAAqB,CAAC,KAAK,EAAY,QAAQ,MAAM,kBAAkB,aAAa,GAAK,CAC9nB,aAAa,CAAC,KAAK,EAAY,QAAQ,MAAM,gBAAgB,aAAa,GAAM,CAAC,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,aAAa,4BAA4B,OAAO,GAAG,CAACF,EAAE,aAAa,CAAC,gBAAgB,CAAC,KAAK,EAAY,QAAQ,MAAM,eAAe,aAAa,GAAM,CAAC,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,aAAa,GAAG,OAAO,GAAG,CAACA,EAAE,gBAAgB,CAAC,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,eAAe,aAAa,0BAA0B,CAAC,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,aAAa,4DAA4D,CAAC,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,eAAe,aAAa,qCAAqC,CAAC,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,aAAa,sDAAsD,CACt0B,kBAAkB,CAAC,KAAK,EAAY,OAAO,MAAM,kBAAkB,aAAa,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,CACvG,OAAO,CAAC,KAAK,EAAY,MAAM,MAAM,UAAU,aAAa,UAAU,CAAC,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,GAAG,IAAI,EAAE,IAAI,GAAG,CAAC,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,GAAG,IAAI,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,aAAa,GAAG,IAAI,EAAE,IAAI,GAAG,CAAC,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,aAAa,GAAG,IAAI,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,aAAa,GAAG,IAAI,EAAE,IAAI,GAAG,CAC7d,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,aAAa,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,aAAa,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,EAAY,MAAM,MAAM,YAAY,aAAa,UAAU,CAAC,aAAa,CAAC,KAAK,EAAY,MAAM,MAAM,WAAW,aAAa,UAAU,CACtU,UAAU,CAAC,KAAK,EAAY,MAAM,MAAM,OAAO,aAAa,UAAU,CAAC,eAAe,CAAC,KAAK,EAAY,MAAM,MAAM,UAAU,aAAa,UAAU,CAAC,WAAW,CAAC,KAAK,EAAY,MAAM,MAAM,cAAc,aAAa,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAY,MAAM,MAAM,UAAU,aAAa,sBAAsB,CACxT,aAAa,CAAC,KAAK,EAAY,KAAK,MAAM,gBAAgB,CAAC,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,gBAAgB,aAAa,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,KAAK,EAAY,OAAO,MAAM,kBAAkB,aAAa,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,GAAG,CAAC,SAAS,CAAC,KAAK,EAAY,KAAK,MAAM,YAAY,CAAC,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,aAAa,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,eAAe,aAAa,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,GAAG,CAAC,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,eAAe,aAAa,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC"}