{"version":3,"file":"AuthFormSwitcher.DnQ8vZ3n.mjs","names":["__legacyOverrideHOC_DataObserverContext","_jsx","React.useState","_Fragment"],"sources":["https:/framerusercontent.com/modules/ikWDM2j1IKcGFRD8Aoe1/xt3MZqXMwLhJsyebj2RW/authFormStore.js","https:/framerusercontent.com/modules/XExgIQLrKCgk0lLTjVJ7/xjoO9TxD5zynH9RGrIXv/Auth.js","https:/framerusercontent.com/modules/Yw8QPqXW07VIIM9bK6UU/AuEJNs4ONJeQ7mmFHo90/GoogleAuthButton.js","https:/framerusercontent.com/modules/XiVpi8CGD7ZxQSN5QkOd/0cvKUWpBHYAy4X3fCHGT/AuthFormSwitcher.js"],"sourcesContent":["/**\n * FILE: authFormStore.ts\n * LOCATION: framer/stores/authStore.ts\n * LAYER: Store (UI State – Authentication Form)\n *\n * RESPONSIBILITY:\n * - Hold login/signup form input state\n * - Track submission status and flow state\n * - Store temporary validation and messaging\n *\n * DOES NOT:\n * - Represent authenticated session state\n * - Persist tokens\n * - Communicate with backend directly\n *\n * AUTHORITY:\n * - UI-only state; no backend authority\n *\n * DATA FLOW:\n * Auth Overrides → authStore → Login UI\n */import{createStore}from\"https://framer.com/m/framer/store.js@^1.0.0\";export const useAuthStore=createStore({// core fields\nemail:\"\",fullName:\"\",// flow state\nflowState:\"Default\",status:\"\",// validation states\nemailState:\"Default\",nameState:\"Default\"});\nexport const __FramerMetadata__ = {\"exports\":{\"useAuthStore\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./authFormStore.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{useAuthStore}from\"https://framerusercontent.com/modules/ikWDM2j1IKcGFRD8Aoe1/xt3MZqXMwLhJsyebj2RW/authFormStore.js\";import{apiFetch}from\"https://framerusercontent.com/modules/pBL9xlYciLON0IYG5ZYl/bYjtj8ul2uIPjV2V279d/apiClient.js\";import{API_BASE,AUTH_LOGOUT_PATH,AUTH_START_PATH}from\"https://framerusercontent.com/modules/6XP7Q2uMwCNydLEakM1u/gdzjJ7mPKwl6bmPac7k4/constants.js\";import{SHARED_BUTTON,withMobileSuffix}from\"https://framerusercontent.com/modules/WHMTE0M11z0oQ84GaoCH/akCtzEcmqiZGdg2sJU6F/canvasContract.js\";import{useIsMobile}from\"https://framerusercontent.com/modules/JpvINtoM2wZGxSlidC5m/oquiAAoyNtUoBxUEX0ui/useIsMobile.js\";/* =========================================================\n   INTERNAL\n========================================================= */async function startAuth(payload){// Harvest subscription intent from the URL if the user arrived via a\n// marketing CTA (e.g. /auth/signup?intent=subscribe). The Lambda gates\n// the magic-link redirect on this value; without it, signup falls through\n// to the default dashboard. See docs/subscription-flow-audit.md §1.4.\nconst search=typeof window!==\"undefined\"?window.location.search:\"\";const intent=new URLSearchParams(search).get(\"intent\");const body=intent?{...payload,intent}:payload;const res=await apiFetch(AUTH_START_PATH,{method:\"POST\",body:JSON.stringify(body)});if(!res.ok){const err=new Error(\"Auth start failed\");err.status=res.status;throw err;}}/* =========================================================\n   INPUTS\n========================================================= */export function EmailInput(){const[state,set]=useAuthStore();return{value:state.email||\"\",onChange(e){const v=e.target.value.trim();const looksValid=/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(v);set({email:v,emailState:!v||!looksValid?\"Missing\":\"Default\"});}};}export function FullNameInput(){const[state,set]=useAuthStore();return{value:state.fullName||\"\",onChange(e){set({fullName:e.target.value,nameState:\"Default\"});}};}/* =========================================================\n   INPUT VARIANTS\n========================================================= */export function EmailVariant(){const[state]=useAuthStore();const isMobile=useIsMobile();if(state.emailState===\"Default\")return{};return{variant:withMobileSuffix(state.emailState,isMobile)};}export function NameVariant(){const[state]=useAuthStore();const isMobile=useIsMobile();if(state.nameState===\"Default\")return{};return{variant:withMobileSuffix(state.nameState,isMobile)};}/* =========================================================\n   BUTTONS\n========================================================= */export function ContinueSignup(){const[state,set]=useAuthStore();const run=async e=>{if(e?.preventDefault)e.preventDefault();const email=(state.email||\"\").trim();const fullName=(state.fullName||\"\").trim();const looksValid=/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(email);let nextEmailState=\"Default\";let nextNameState=\"Default\";if(!email||!looksValid)nextEmailState=\"Missing\";if(!fullName)nextNameState=\"Missing\";if(nextEmailState!==\"Default\"||nextNameState!==\"Default\"){set({emailState:nextEmailState,nameState:nextNameState,flowState:\"Default\"});return;}set({flowState:\"Submitting\",emailState:\"Default\",nameState:\"Default\"});try{await startAuth({email,full_name:fullName});set({flowState:\"Success\",status:\"Check your email to finish signing up.\"});}catch(err){if(err.status===409){set({emailState:\"Taken\",flowState:\"Default\"});}else{set({status:\"Something went wrong. Please try again.\",flowState:\"Default\"});}}};return{type:\"button\",onTap:run,onClick:run,// While the magic-link request is in flight, swap the button to its\n// loading variant in place — the form stays visible (AuthFormSwitcher\n// keeps showing the form slot for both Default and Submitting). Same\n// precedent as CheckoutButton (SHARED_BUTTON.loading) / NextStep.\n...state.flowState===\"Submitting\"?{variant:SHARED_BUTTON.loading}:{}};}export function ContinueLogin(){const[state,set]=useAuthStore();const run=async e=>{if(e?.preventDefault)e.preventDefault();const email=(state.email||\"\").trim();const looksValid=/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(email);if(!email||!looksValid){set({emailState:\"Missing\",flowState:\"Default\"});return;}set({flowState:\"Submitting\",emailState:\"Default\"});try{await startAuth({email});set({flowState:\"Success\",status:\"Check your email to log in.\"});}catch(err){if(err.status===404){set({emailState:\"Missing\",flowState:\"Default\"});}else{set({status:\"Something went wrong. Please try again.\",flowState:\"Default\"});}}};return{type:\"button\",onTap:run,onClick:run,// See ContinueSignup: loading variant during the in-flight submit.\n...state.flowState===\"Submitting\"?{variant:SHARED_BUTTON.loading}:{}};}/* =========================================================\n   STATUS\n   The form↔success swap is now AuthFormSwitcher (driven by flowState).\n   The success message is static text inside each page's success layer, so\n   StatusText is effectively the inline-error line on the form: errors keep\n   flowState === \"Default\" (form stays visible) and surface here.\n========================================================= */export function StatusText(){const[state]=useAuthStore();return{text:state.status};}/* =========================================================\n   LOGOUT\n========================================================= */export function Logout(){return{type:\"button\",onTap(){window.location.href=`${API_BASE}${AUTH_LOGOUT_PATH}?next=/auth/login`;},onClick(){window.location.href=`${API_BASE}${AUTH_LOGOUT_PATH}?next=/auth/login`;}};}import{useContext as __legacyOverrideHOC_useContext}from\"react\";import{DataObserverContext as __legacyOverrideHOC_DataObserverContext}from\"framer\";export function withEmailInput(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...EmailInput(props)});};}withEmailInput.displayName=\"EmailInput\";export function withFullNameInput(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...FullNameInput(props)});};}withFullNameInput.displayName=\"FullNameInput\";export function withEmailVariant(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...EmailVariant(props)});};}withEmailVariant.displayName=\"EmailVariant\";export function withNameVariant(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...NameVariant(props)});};}withNameVariant.displayName=\"NameVariant\";export function withContinueSignup(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...ContinueSignup(props)});};}withContinueSignup.displayName=\"ContinueSignup\";export function withContinueLogin(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...ContinueLogin(props)});};}withContinueLogin.displayName=\"ContinueLogin\";export function withStatusText(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...StatusText(props)});};}withStatusText.displayName=\"StatusText\";export function withLogout(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...Logout(props)});};}withLogout.displayName=\"Logout\";\nexport const __FramerMetadata__ = {\"exports\":{\"withContinueSignup\":{\"type\":\"reactHoc\",\"name\":\"withContinueSignup\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ContinueSignup\":{\"type\":\"override\",\"name\":\"ContinueSignup\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ContinueLogin\":{\"type\":\"override\",\"name\":\"ContinueLogin\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withFullNameInput\":{\"type\":\"reactHoc\",\"name\":\"withFullNameInput\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withNameVariant\":{\"type\":\"reactHoc\",\"name\":\"withNameVariant\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"EmailInput\":{\"type\":\"override\",\"name\":\"EmailInput\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withLogout\":{\"type\":\"reactHoc\",\"name\":\"withLogout\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withEmailInput\":{\"type\":\"reactHoc\",\"name\":\"withEmailInput\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"NameVariant\":{\"type\":\"override\",\"name\":\"NameVariant\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withEmailVariant\":{\"type\":\"reactHoc\",\"name\":\"withEmailVariant\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"EmailVariant\":{\"type\":\"override\",\"name\":\"EmailVariant\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"StatusText\":{\"type\":\"override\",\"name\":\"StatusText\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withContinueLogin\":{\"type\":\"reactHoc\",\"name\":\"withContinueLogin\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FullNameInput\":{\"type\":\"override\",\"name\":\"FullNameInput\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Logout\":{\"type\":\"override\",\"name\":\"Logout\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withStatusText\":{\"type\":\"reactHoc\",\"name\":\"withStatusText\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType}from\"framer\";import{SPACE}from\"https://framerusercontent.com/modules/1VwocatbFhWtgmcnhxSy/mN21nupnJUaU4603SKpy/tokens.js\";export function GoogleSignInButton(props){const{text,widthMode,width,shape,disabled,variant,link,openInNewTab}=props;const[isHovered,setHovered]=React.useState(false);const[isPressed,setPressed]=React.useState(false);const borderRadius=shape===\"pill\"?999:6;const computedWidth=widthMode===\"auto\"?\"auto\":width;const variants={white:{backgroundColor:\"#FFFFFF\",border:\"1px solid #747775\",color:\"#1f1f1f\",overlay:\"#303030\"},gray:{backgroundColor:\"#f2f2f2\",border:\"none\",color:\"#1f1f1f\",overlay:\"#001d35\"},black:{backgroundColor:\"#131314\",border:\"1px solid #8e918f\",color:\"#e3e3e3\",overlay:\"#FFFFFF\"}};const current=variants[variant];const overlayOpacity=disabled?0:isPressed?.12:isHovered?.08:0;const sharedStyles={userSelect:\"none\",appearance:\"none\",backgroundColor:current.backgroundColor,border:current.border,borderRadius:borderRadius,boxSizing:\"border-box\",color:current.color,cursor:disabled?\"default\":\"pointer\",fontFamily:\"Roboto, Arial, sans-serif\",fontSize:14,height:40,letterSpacing:.25,outline:\"none\",overflow:\"hidden\",// Google brand-spec button: colors/Roboto/dimensions/gap are locked to\n// Google's sign-in spec and intentionally NOT tokenized. Only the\n// horizontal padding maps cleanly to the scale (SPACE.s === 12, no change).\npadding:`0 ${SPACE.s}px`,position:\"relative\",textAlign:\"center\",whiteSpace:\"nowrap\",width:computedWidth,maxWidth:400,minWidth:\"min-content\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",gap:10,opacity:disabled?.6:1,textDecoration:\"none\",transition:\"box-shadow .2s ease\",boxShadow:isHovered&&!disabled?\"0 1px 2px 0 rgba(60, 64, 67, .30), 0 1px 3px 1px rgba(60, 64, 67, .15)\":\"none\"};const Content=/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,backgroundColor:current.overlay,opacity:overlayOpacity,transition:\"opacity .2s ease\",pointerEvents:\"none\"}}),/*#__PURE__*/_jsxs(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 48 48\",style:{position:\"relative\",zIndex:1},children:[/*#__PURE__*/_jsx(\"path\",{fill:\"#EA4335\",d:\"M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z\"}),/*#__PURE__*/_jsx(\"path\",{fill:\"#4285F4\",d:\"M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z\"}),/*#__PURE__*/_jsx(\"path\",{fill:\"#FBBC05\",d:\"M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z\"}),/*#__PURE__*/_jsx(\"path\",{fill:\"#34A853\",d:\"M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z\"})]}),/*#__PURE__*/_jsx(\"span\",{style:{fontWeight:500,overflow:\"hidden\",textOverflow:\"ellipsis\",position:\"relative\",zIndex:1},children:text})]});const commonHandlers={onMouseEnter:()=>setHovered(true),onMouseLeave:()=>{setHovered(false);setPressed(false);},onMouseDown:()=>setPressed(true),onMouseUp:()=>setPressed(false)};if(link&&!disabled){return /*#__PURE__*/_jsx(\"a\",{href:link,target:openInNewTab?\"_blank\":\"_self\",rel:openInNewTab?\"noopener noreferrer\":undefined,style:sharedStyles,...commonHandlers,children:Content});}return /*#__PURE__*/_jsx(\"button\",{disabled:disabled,style:sharedStyles,...commonHandlers,children:Content});}GoogleSignInButton.defaultProps={text:\"Continue with Google\",widthMode:\"fixed\",width:220,shape:\"pill\",disabled:false,variant:\"white\",link:\"\",openInNewTab:false};addPropertyControls(GoogleSignInButton,{text:{type:ControlType.String,title:\"Text\"},link:{type:ControlType.Link,title:\"Link\"},openInNewTab:{type:ControlType.Boolean,title:\"New Tab\",hidden:props=>!props.link},widthMode:{type:ControlType.Enum,title:\"Width\",options:[\"fixed\",\"auto\"],optionTitles:[\"Fixed\",\"Auto\"]},width:{type:ControlType.Number,title:\"Fixed Width\",min:120,max:400,unit:\"px\",hidden:props=>props.widthMode!==\"fixed\"},shape:{type:ControlType.Enum,title:\"Shape\",options:[\"rectangular\",\"pill\"],optionTitles:[\"Rectangular\",\"Pill\"]},variant:{type:ControlType.Enum,title:\"Color\",options:[\"white\",\"gray\",\"black\"],optionTitles:[\"White\",\"Gray\",\"Black\"]},disabled:{type:ControlType.Boolean,title:\"Disabled\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"GoogleSignInButton\":{\"type\":\"reactComponent\",\"name\":\"GoogleSignInButton\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{useAuthStore}from\"https://framerusercontent.com/modules/ikWDM2j1IKcGFRD8Aoe1/xt3MZqXMwLhJsyebj2RW/authFormStore.js\";import{useProfileStore}from\"https://framerusercontent.com/modules/lgBoQxNllKFfCc4ryt8E/2rEtHbzzbNZOEE5MWkaE/profileStore.js\";import{useCrossFade}from\"https://framerusercontent.com/modules/q0nqbX11iRfI37rG7en4/HEMMWNHyLKw4GG9n2T88/transitions.js\";import{BreakpointSlot}from\"https://framerusercontent.com/modules/PBW5n8IP7UMOK4bJVd1g/uSiCveJGxIcfEuaXgBuj/BreakpointSlot.js\";/**\n * AuthFormSwitcher — drag-and-drop replacement for Auth.tsx's AuthFormVariant\n * override. Switches between the auth FORM and the \"check your email\" SUCCESS\n * view, driven by `authFormStore.flowState`.\n *\n * NOT the same as AuthSwitcher (that one is the nav login/logout swap, driven by\n * profileStore). This one hosts an auth PAGE.\n *\n * One component, used as two instances on two distinct pages:\n *   /auth/signup → drop in the signup form + the signup success message\n *   /auth/login  → drop in the login form  + the login  success message\n * Signup-vs-login is decided by what you drop into each instance, not by this\n * component — distinct pages and URLs are preserved.\n *\n * flowState mapping (authFormStore is the single source of truth):\n *   \"Default\"    → form    (resting)\n *   \"Submitting\" → form    (the Continue button shows its own loading variant —\n *                           see ContinueSignup / ContinueLogin in Auth.tsx)\n *   \"Success\"    → success\n *\n * The success message is static text inside the success layer, per page, so the\n * old dynamic StatusText was only ever needed for inline errors (which keep\n * flowState === \"Default\", i.e. stay on the form).\n *\n * BreakpointSlot handles the desktop/mobile pick (see framer/ui/BreakpointSlot.tsx).\n */export default function AuthFormSwitcher(props){const{form,success,formMobile,successMobile,transitionMs}=props;const[auth]=useAuthStore();const[profile]=useProfileStore();const isCanvas=RenderTarget.current()===RenderTarget.canvas;// Preserve AuthFormVariant's redirect: a visitor who is already authenticated\n// should not sit on the auth page — bounce them to the dashboard. (Moved here\n// from the useEffect that lived in AuthFormVariant.) Never in the Framer\n// editor — a window.location redirect on the canvas is the repo-wide no-no.\nReact.useEffect(()=>{if(isCanvas)return;if(!profile.loading&&profile.authenticated){window.location.href=\"https://importa-coffee.com/dashboard\";}},[isCanvas,profile.authenticated,profile.loading]);const activeView=auth.flowState===\"Success\"?\"success\":\"form\";const{visibleKey:visibleView,fadeStyle}=useCrossFade(activeView,transitionMs);// Until the active slot is filled, render a fixed-size placeholder instead of\n// an empty, content-less host. A bare `<div style={{height:\"100%\"}}>` with no\n// children is an intrinsically-sized void: dropped freely on a page in the\n// Framer editor it gives the canvas nothing stable to measure → measurement\n// loop → freeze. The sibling SubscriptionCreationSwitcher avoids the same trap\n// by rendering a sized skeleton in its not-ready state.\nconst activeSlotEmpty=visibleView===\"form\"?form==null:success==null;if(activeSlotEmpty){return /*#__PURE__*/_jsx(Placeholder,{label:visibleView===\"form\"?'Assign the \"Form\" layer':'Assign the \"Success\" layer'});}let content=null;if(visibleView===\"form\")content=/*#__PURE__*/_jsx(BreakpointSlot,{desktop:form,mobile:formMobile});if(visibleView===\"success\")content=/*#__PURE__*/_jsx(BreakpointSlot,{desktop:success,mobile:successMobile});// No height:100% — the host sizes to the active slot's own height. Width-wise\n// BreakpointSlot stretches the linked layers to fill, same as every other\n// switcher.\nreturn /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",display:\"block\",...fadeStyle},children:content});}function Placeholder({label}){return /*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\",minHeight:96,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",boxSizing:\"border-box\",padding:16,textAlign:\"center\",border:\"1px dashed #c9c9c9\",borderRadius:8,color:\"#8a8a8a\",font:\"500 13px/1.4 -apple-system, system-ui, sans-serif\"},children:[\"AuthFormSwitcher — \",label]});}addPropertyControls(AuthFormSwitcher,{form:{type:ControlType.ComponentInstance,title:\"Form\"},success:{type:ControlType.ComponentInstance,title:\"Success\"},formMobile:{type:ControlType.ComponentInstance,title:\"Form (Mobile)\"},successMobile:{type:ControlType.ComponentInstance,title:\"Success (Mobile)\"},transitionMs:{type:ControlType.Number,title:\"Fade\",defaultValue:120,min:0,max:600,unit:\"ms\",step:10}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"AuthFormSwitcher\",\"slots\":[\"form\",\"success\",\"formMobile\",\"successMobile\"],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./AuthFormSwitcher.map"],"mappings":"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"}