{"version":3,"file":"common-dialogs.DS2xjOAB.js","sources":["../../../src/modules/get-started/get-started-model.ts","../../../src/modules/get-started/get-started-step1-state.tsx","../../../src/modules/get-started/get-started-step2-user-type.tsx","../../../src/modules/get-started/get-started-step3-children.tsx","../../../src/modules/get-started/get-started-step4-email.tsx","../../../src/modules/get-started/get-started-navigation.ts","../../../src/modules/get-started/get-started-dialog.tsx","../../../src/components/ui/icons/closed-eye-icon.tsx","../../../src/components/ui/password-input.tsx","../../../src/modules/login/login-dialog.tsx","../../../src/components/layout/common-dialogs.tsx"],"sourcesContent":["import { trackFlowStepCompleted } from '@lib/analytics'\nimport { runQuery } from '@lib/graphql'\nimport { trackUserData } from '@lib/user-tracking'\n\nexport const ANALYTICS_FLOW_NAME = 'GetStarted'\n\nexport enum UserType {\n Parent = 'parent',\n Grandparent = 'grandparent',\n Advisor = 'advisor',\n Other = 'other'\n}\n\nexport const CHILD_AGES = [\n { value: -1, label: 'Not born yet' },\n { value: 0, label: 'newborn' },\n { value: 1, label: '1 year old' },\n { value: 2, label: '2 years old' },\n { value: 3, label: '3 years old' },\n { value: 4, label: '4 years old' },\n { value: 5, label: '5 years old' },\n { value: 6, label: '6 years old' },\n { value: 7, label: '7 years old' },\n { value: 8, label: '8 years old' },\n { value: 9, label: '9 years old' },\n { value: 10, label: '10 years old' },\n { value: 11, label: '11 years old' },\n { value: 12, label: '12 years old' },\n { value: 13, label: '13 years old' },\n { value: 14, label: '14 years old' },\n { value: 15, label: '15 years old' },\n { value: 16, label: '16 years old' },\n { value: 17, label: '17 years old' },\n { value: 18, label: '18+ years old' }\n]\n\nexport type GetStartedFlowData = {\n stateId: string | undefined\n userType: UserType | undefined\n youngestChildAge: number | undefined\n email: string\n}\n\nexport enum GetStartedFlowStep {\n Step1_StateStep = 1,\n Step2_UserTypeStep = 2,\n Step3_Children = 3,\n Step4_Email = 4\n}\n\nexport const signUpUser = async (data: GetStartedFlowData) => {\n const query = `\n mutation {\n college_savings_user_v3(\n type_of_user: \"${data.userType}\"\n next_step_v3: \"learn\"\n state_id: \"${data.stateId}\"\n email: \"${data.email}\"\n ) {\n id\n }\n }\n `\n\n try {\n await runQuery(query)\n } catch (error) {\n console.error(error)\n }\n}\n\nexport const trackSavingsCenterUserData = async (data: GetStartedFlowData) => {\n await trackUserData({\n email: data.email,\n userType: data.userType,\n stateId: data.stateId,\n childAge: data.youngestChildAge,\n isSavingsCenter: true,\n source: 'savings_center'\n })\n}\n\nexport const trackGetStartedFlowStepCompleted = ({\n step,\n value\n}: {\n step: GetStartedFlowStep\n value?: string\n}) => {\n trackFlowStepCompleted({\n flowName: ANALYTICS_FLOW_NAME,\n stepName: GetStartedFlowStep[step],\n value\n })\n}\n","import { Button } from '@components/ui/button'\nimport {\n GetStartedFlowStep,\n trackGetStartedFlowStepCompleted,\n type GetStartedFlowData\n} from './get-started-model'\nimport { ResponsiveCombobox, type SearchOption } from '@components/ui/responsive-combobox'\nimport { US_STATES_SEARCH } from '@lib/us-states'\n\ninterface Props {\n data: GetStartedFlowData\n setData: (data: GetStartedFlowData) => void\n continueToNextStep: () => void\n}\n\nexport const GetStartedStep1State = ({ data, setData, continueToNextStep }: Props) => {\n const completeStep = () => {\n trackGetStartedFlowStepCompleted({\n step: GetStartedFlowStep.Step1_StateStep,\n value: data.stateId\n })\n continueToNextStep()\n }\n\n return (\n
\n option.id === data.stateId) || null}\n onOptionChange={(option: SearchOption | null) => {\n if (option) {\n setData({ ...data, stateId: option.id })\n }\n }}\n placeholder=\"Select a state\"\n triggerButtonClassName=\"mb-[30px]\"\n autoFocus\n />\n \n Continue\n \n
\n )\n}\n","import { RadioGroup, RadioGroupItem } from '@components/ui/radio-group'\nimport {\n GetStartedFlowStep,\n trackGetStartedFlowStepCompleted,\n UserType,\n type GetStartedFlowData\n} from './get-started-model'\nimport { Label } from '@components/ui/label'\nimport { Button } from '@components/ui/button'\nimport { USER_TYPES } from '@lib/constants'\n\nconst getRadioGroupItem = (value: string, label: string, isFirst: boolean = false) => {\n return (\n
\n \n \n
\n )\n}\n\ninterface Props {\n data: GetStartedFlowData\n setData: (data: GetStartedFlowData) => void\n continueToNextStep: () => void\n}\n\nexport const GetStartedStep2UserType = ({ data, setData, continueToNextStep }: Props) => {\n const completeStep = () => {\n trackGetStartedFlowStepCompleted({\n step: GetStartedFlowStep.Step2_UserTypeStep,\n value: data.userType\n })\n continueToNextStep()\n }\n\n return (\n
\n {\n setData({ ...data, userType: value as UserType })\n }}\n className=\"mb-[30px]\"\n autoFocus\n >\n {USER_TYPES.map((userType) => getRadioGroupItem(userType.value, userType.label))}\n \n \n Continue\n \n
\n )\n}\n","import { Button } from '@components/ui/button'\nimport { CHILD_AGES, GetStartedFlowStep, trackGetStartedFlowStepCompleted, type GetStartedFlowData } from './get-started-model'\nimport { ResponsiveSelect } from '@components/ui/responsive-select'\n\ninterface Props {\n data: GetStartedFlowData\n setData: (data: GetStartedFlowData) => void\n continueToNextStep: () => void\n}\n\nconst CHILD_AGES_OPTIONS = CHILD_AGES.map((age) => ({\n label: age.label,\n value: age.value.toString()\n}))\n\nexport const GetStartedStep3Children = ({ data, setData, continueToNextStep }: Props) => {\n const completeStep = () => {\n trackGetStartedFlowStepCompleted({\n step: GetStartedFlowStep.Step3_Children,\n value: data.youngestChildAge?.toString()\n })\n continueToNextStep()\n }\n\n return (\n
\n {\n setData({ ...data, youngestChildAge: parseInt(value) })\n }}\n placeholder=\"Select your child’s age...\"\n scroll={true}\n triggerClassName=\"mb-[30px]\"\n autoFocus\n />\n \n Continue\n \n
\n )\n}\n","import { Input } from '@components/ui/input'\nimport {\n GetStartedFlowStep,\n trackGetStartedFlowStepCompleted,\n type GetStartedFlowData\n} from './get-started-model'\nimport { Form, FormField, FormItem, FormMessage } from '@components/ui/form'\nimport { z } from 'zod'\nimport { useForm } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport { Button } from '@components/ui/button'\nimport { useState } from 'react'\nimport { Loader2 } from 'lucide-react'\n\ninterface Props {\n data: GetStartedFlowData\n finish: (data: GetStartedFlowData) => Promise\n}\n\nexport const GetStartedStep4Email = ({ data, finish }: Props) => {\n const [isLoading, setIsLoading] = useState(false)\n\n const formSchema = z.object({\n email: z.string().email()\n })\n\n const form = useForm>({\n resolver: zodResolver(formSchema),\n defaultValues: {\n email: ''\n }\n })\n\n const onSubmit = async (values: z.infer) => {\n try {\n setIsLoading(true)\n trackGetStartedFlowStepCompleted({\n step: GetStartedFlowStep.Step4_Email\n })\n await finish({ ...data, email: values.email })\n } finally {\n setIsLoading(false)\n }\n }\n\n return (\n
\n
\n \n (\n \n \n \n \n )}\n />\n \n {isLoading && }Continue\n \n \n \n
\n )\n}\n","import { US_STATES } from '@lib/us-states'\nimport Cookies from 'js-cookie'\nimport type { GetStartedFlowData } from './get-started-model'\n\nconst COOKIE_NAME = 'savings-center-info'\n\nexport const createSavingsCenterCookie = async (data: GetStartedFlowData) => {\n const usState = US_STATES.find((state) => state.abbr === data.stateId)!\n\n const collegeSavingsUser = {\n state: {\n id: usState.sfcId,\n name: usState.name,\n string_id: usState.abbr\n },\n type_of_user: data.userType,\n childrenCount: 1,\n youngerAge: data.youngestChildAge?.toString(),\n olderAge: data.youngestChildAge?.toString(),\n email: data.email,\n next_step_v3: 'learn'\n }\n\n Cookies.set(COOKIE_NAME, JSON.stringify(collegeSavingsUser), { expires: 365 })\n}\n\nconst hasSavingsCenterCookie = () => {\n return !!Cookies.get(COOKIE_NAME)\n}\n\nexport const navigateToSavingsCenter = () => {\n window.location.href = '/savings-center/learn'\n}\n\nexport const tryOpenSavingsCenter = (): boolean => {\n if (hasSavingsCenterCookie()) {\n navigateToSavingsCenter()\n return true\n }\n\n return false\n}\n","import {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle\n} from '@components/ui/dialog'\nimport { forwardRef, useEffect, useImperativeHandle, useState } from 'react'\nimport { GetStartedStep1State } from './get-started-step1-state'\nimport { GetStartedStep2UserType } from './get-started-step2-user-type'\nimport { GetStartedStep3Children } from './get-started-step3-children'\nimport {\n ANALYTICS_FLOW_NAME,\n GetStartedFlowStep,\n signUpUser,\n trackSavingsCenterUserData,\n type GetStartedFlowData\n} from './get-started-model'\nimport { GetStartedStep4Email } from './get-started-step4-email'\nimport ArrowLeftIcon from '@components/ui/icons/arrow-left-icon'\nimport {\n createSavingsCenterCookie,\n navigateToSavingsCenter,\n tryOpenSavingsCenter\n} from './get-started-navigation'\nimport { getStateFromIp } from '@lib/us-states'\nimport { setGetStartedButtonEventListeners } from '@components/layout/header/header'\nimport { trackFlowEnded, trackFlowStarted } from '@lib/analytics'\n\nconst StepConfig: Map = new Map([\n [\n GetStartedFlowStep.Step1_StateStep,\n {\n title: 'Where do you live?',\n description: 'This will help us find the right 529 plans for you.'\n }\n ],\n [\n GetStartedFlowStep.Step2_UserTypeStep,\n {\n title: 'What role best describes you?',\n description: 'Knowing this will help us better customize your experience.'\n }\n ],\n [\n GetStartedFlowStep.Step3_Children,\n {\n title: 'How old is your child?',\n description: 'Knowing this will help us to make better recommendation.'\n }\n ],\n [\n GetStartedFlowStep.Step4_Email,\n {\n title: 'What’s your email address?',\n description: 'Access our Savings Center to compare 529 plans, project college costs, and create a plan to afford college.'\n }\n ]\n])\n\ninterface Props {}\n\nexport interface GetStartedDialogHandle {\n openGetStartedOrSavingsCenter: (stateId?: string) => void\n}\n\nexport const GetStartedDialog = forwardRef((_, ref) => {\n const fetchState = async () => {\n const stateFromIp = await getStateFromIp()\n if (stateFromIp && stateFromIp.id) {\n setData({ ...data, stateId: stateFromIp.id })\n }\n }\n\n useImperativeHandle(ref, () => ({\n openGetStartedOrSavingsCenter: (stateId?: string) => {\n openGetStartedOrSavingsCenter(stateId)\n }\n }))\n\n const openDialog = (stateId?: string) => {\n setData({\n stateId: stateId,\n userType: undefined,\n youngestChildAge: undefined,\n email: ''\n })\n\n if (stateId) {\n setStep(GetStartedFlowStep.Step2_UserTypeStep)\n } else {\n setStep(GetStartedFlowStep.Step1_StateStep)\n fetchState()\n }\n setIsOpen(true)\n\n trackFlowStarted({\n flowName: ANALYTICS_FLOW_NAME\n })\n }\n\n const openGetStartedOrSavingsCenter = (stateId?: string) => {\n if (!tryOpenSavingsCenter()) {\n openDialog(stateId)\n }\n }\n\n useEffect(() => {\n setGetStartedButtonEventListeners(openGetStartedOrSavingsCenter)\n }, [])\n\n const [isOpen, setIsOpen] = useState(false)\n\n const [step, setStep] = useState(GetStartedFlowStep.Step1_StateStep)\n const [data, setData] = useState({\n stateId: undefined,\n userType: undefined,\n youngestChildAge: undefined,\n email: ''\n })\n\n const backToPreviousStep = () => {\n if (step !== GetStartedFlowStep.Step1_StateStep) {\n setStep(step - 1)\n }\n }\n\n const continueToNextStep = () => {\n if (step === GetStartedFlowStep.Step4_Email) {\n finish(data)\n } else {\n setStep(step + 1)\n }\n }\n\n const finish = async (finalData: GetStartedFlowData) => {\n await signUpUser(finalData)\n await createSavingsCenterCookie(finalData)\n await trackSavingsCenterUserData(finalData)\n\n setData(finalData)\n navigateToSavingsCenter()\n setIsOpen(false)\n\n trackFlowEnded({\n flowName: ANALYTICS_FLOW_NAME,\n lastStep:GetStartedFlowStep[step],\n isCompleted: true\n })\n }\n\n const onOpenChange = (isOpen: boolean) => {\n if (!isOpen) {\n trackFlowEnded({\n flowName: ANALYTICS_FLOW_NAME,\n lastStep: GetStartedFlowStep[step],\n isCompleted: false\n })\n }\n\n setIsOpen(isOpen)\n }\n\n return (\n \n \n \n \n \n Step {step.valueOf()} of 4\n \n {StepConfig.get(step)?.title}\n \n {StepConfig.get(step)?.description}\n \n
\n {step === GetStartedFlowStep.Step1_StateStep && (\n \n )}\n {step === GetStartedFlowStep.Step2_UserTypeStep && (\n \n )}\n {step === GetStartedFlowStep.Step3_Children && (\n \n )}\n {step === GetStartedFlowStep.Step4_Email && (\n \n )}\n
\n {step !== GetStartedFlowStep.Step1_StateStep && (\n backToPreviousStep()}\n className=\"absolute left-[20px] top-[20px] rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\"\n >\n \n Back\n \n )}\n
\n
\n )\n})\n","export default function ClosedEyeIcon({\n width = 24,\n height = 24,\n className\n}: {\n width?: number\n height?: number\n className?: string\n}) {\n return (\n \n \n \n )\n}\n","import * as React from 'react'\n\nimport { useState } from 'react'\nimport EyeIcon from './icons/eye-icon'\nimport { cn } from '@lib/utils'\nimport ClosedEyeIcon from './icons/closed-eye-icon'\n\nexport interface InputProps extends React.InputHTMLAttributes {}\n\nconst PasswordInput = React.forwardRef(\n ({ className, type, ...props }, ref) => {\n const [visible, setVisible] = useState(false)\n\n return (\n \n \n setVisible(!visible)}\n >\n {visible ? : }\n \n \n )\n }\n)\nPasswordInput.displayName = 'PasswordInput'\n\nexport { PasswordInput }\n","import { setLoginButtonEventListener } from '@components/layout/header/header'\nimport { Button } from '@components/ui/button'\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle\n} from '@components/ui/dialog'\nimport { Form, FormField, FormItem, FormLabel, FormMessage } from '@components/ui/form'\nimport { Input } from '@components/ui/input'\nimport { Link } from '@components/ui/link'\nimport { PasswordInput } from '@components/ui/password-input'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport { GENERIC_LOGIN_ERROR_MESSAGE, logIn, LoginError } from '@lib/session'\nimport { Loader2 } from 'lucide-react'\nimport { useEffect, useState } from 'react'\nimport { useForm } from 'react-hook-form'\nimport { z } from 'zod'\n\nexport const LoginDialog = () => {\n useEffect(() => {\n setLoginButtonEventListener(open)\n })\n\n const open = () => {\n setIsOpen(true)\n }\n\n const [isOpen, setIsOpen] = useState(false)\n\n const formSchema = z.object({\n email: z.string().min(1, 'Please enter your email address'),\n password: z.string().min(1, 'Please enter your password')\n })\n\n const form = useForm>({\n resolver: zodResolver(formSchema),\n defaultValues: {\n email: '',\n password: ''\n }\n })\n\n const [isLoading, setIsLoading] = useState(false)\n const [error, setError] = useState(null)\n\n const onSubmit = async (data: z.infer) => {\n try {\n setIsLoading(true)\n setError(null)\n await logIn({ email: data.email, password: data.password })\n window.location.reload()\n } catch (error) {\n let errorMessage = GENERIC_LOGIN_ERROR_MESSAGE\n if (error instanceof LoginError) errorMessage = error.message\n\n setError(errorMessage)\n } finally {\n setIsLoading(false)\n }\n }\n\n return (\n setIsOpen(isOpen)}>\n \n \n Welcome back\n Log in to Saving For College\n \n
\n
\n \n (\n \n Email\n \n \n \n )}\n />\n (\n \n Password\n \n \n \n )}\n />\n
\n \n Forgot your password?\n \n
\n {error && (\n
\n )}\n
\n \n {isLoading && }Login\n \n \n Don't have an account yet? Sign Up\n \n
\n \n \n \n
\n
\n )\n}\n","import { GetStartedDialog, type GetStartedDialogHandle } from '@modules/get-started/get-started-dialog'\nimport { LoginDialog } from '@modules/login/login-dialog'\nimport type { RefObject } from 'react'\n\ninterface Props {\n getStartedDialogRef?: RefObject\n}\n\nexport const CommonDialogs = ({ getStartedDialogRef }: Props) => {\n return (\n <>\n \n \n \n )\n}\n"],"names":["ANALYTICS_FLOW_NAME","CHILD_AGES","GetStartedFlowStep","signUpUser","data","query","runQuery","error","trackSavingsCenterUserData","trackUserData","trackGetStartedFlowStepCompleted","step","value","trackFlowStepCompleted","GetStartedStep1State","setData","continueToNextStep","completeStep","jsxs","jsx","ResponsiveCombobox","US_STATES_SEARCH","option","Button","getRadioGroupItem","label","isFirst","RadioGroupItem","Label","GetStartedStep2UserType","RadioGroup","USER_TYPES","userType","CHILD_AGES_OPTIONS","age","GetStartedStep3Children","ResponsiveSelect","GetStartedStep4Email","finish","isLoading","setIsLoading","useState","formSchema","z","form","useForm","zodResolver","onSubmit","values","Form","FormField","field","FormItem","Input","FormMessage","Loader2","COOKIE_NAME","createSavingsCenterCookie","usState","US_STATES","state","collegeSavingsUser","Cookies","hasSavingsCenterCookie","navigateToSavingsCenter","tryOpenSavingsCenter","StepConfig","GetStartedDialog","forwardRef","_","ref","fetchState","stateFromIp","getStateFromIp","useImperativeHandle","stateId","openGetStartedOrSavingsCenter","openDialog","setStep","setIsOpen","trackFlowStarted","useEffect","setGetStartedButtonEventListeners","isOpen","backToPreviousStep","finalData","trackFlowEnded","onOpenChange","Dialog","DialogContent","DialogHeader","DialogTitle","DialogDescription","ArrowLeftIcon","ClosedEyeIcon","width","height","className","PasswordInput","React.forwardRef","type","props","visible","setVisible","cn","EyeIcon","LoginDialog","setLoginButtonEventListener","open","setError","logIn","errorMessage","GENERIC_LOGIN_ERROR_MESSAGE","LoginError","FormLabel","Link","CommonDialogs","getStartedDialogRef","Fragment"],"mappings":"g8CAIO,MAAMA,EAAsB,aAStBC,GAAa,CACxB,CAAE,MAAO,GAAI,MAAO,cAAe,EACnC,CAAE,MAAO,EAAG,MAAO,SAAU,EAC7B,CAAE,MAAO,EAAG,MAAO,YAAa,EAChC,CAAE,MAAO,EAAG,MAAO,aAAc,EACjC,CAAE,MAAO,EAAG,MAAO,aAAc,EACjC,CAAE,MAAO,EAAG,MAAO,aAAc,EACjC,CAAE,MAAO,EAAG,MAAO,aAAc,EACjC,CAAE,MAAO,EAAG,MAAO,aAAc,EACjC,CAAE,MAAO,EAAG,MAAO,aAAc,EACjC,CAAE,MAAO,EAAG,MAAO,aAAc,EACjC,CAAE,MAAO,EAAG,MAAO,aAAc,EACjC,CAAE,MAAO,GAAI,MAAO,cAAe,EACnC,CAAE,MAAO,GAAI,MAAO,cAAe,EACnC,CAAE,MAAO,GAAI,MAAO,cAAe,EACnC,CAAE,MAAO,GAAI,MAAO,cAAe,EACnC,CAAE,MAAO,GAAI,MAAO,cAAe,EACnC,CAAE,MAAO,GAAI,MAAO,cAAe,EACnC,CAAE,MAAO,GAAI,MAAO,cAAe,EACnC,CAAE,MAAO,GAAI,MAAO,cAAe,EACnC,CAAE,MAAO,GAAI,MAAO,eAAgB,CACtC,EASY,IAAAC,GAAAA,IACVA,EAAAA,EAAA,gBAAkB,CAAlB,EAAA,kBACAA,EAAAA,EAAA,mBAAqB,CAArB,EAAA,qBACAA,EAAAA,EAAA,eAAiB,CAAjB,EAAA,iBACAA,EAAAA,EAAA,YAAc,CAAd,EAAA,cAJUA,IAAAA,GAAA,CAAA,CAAA,EAOC,MAAAC,GAAa,MAAOC,GAA6B,CAC5D,MAAMC,EAAQ;AAAA;AAAA;AAAA,2BAGWD,EAAK,QAAQ;AAAA;AAAA,uBAEjBA,EAAK,OAAO;AAAA,oBACfA,EAAK,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,MAOxB,GAAA,CACF,MAAME,EAASD,CAAK,QACbE,EAAO,CACd,QAAQ,MAAMA,CAAK,CACrB,CACF,EAEaC,GAA6B,MAAOJ,GAA6B,CAC5E,MAAMK,EAAc,CAClB,MAAOL,EAAK,MACZ,SAAUA,EAAK,SACf,QAASA,EAAK,QACd,SAAUA,EAAK,iBACf,gBAAiB,GACjB,OAAQ,gBAAA,CACT,CACH,EAEaM,EAAmC,CAAC,CAC/C,KAAAC,EACA,MAAAC,CACF,IAGM,CACmBC,EAAA,CACrB,SAAUb,EACV,SAAUE,EAAmBS,CAAI,EACjC,MAAAC,CAAA,CACD,CACH,EC/EaE,GAAuB,CAAC,CAAE,KAAAV,EAAM,QAAAW,EAAS,mBAAAC,KAAgC,CACpF,MAAMC,EAAe,IAAM,CACQP,EAAA,CAC/B,KAAMR,EAAmB,gBACzB,MAAOE,EAAK,OAAA,CACb,EACkBY,GAAA,EAInB,OAAAE,EAAA,KAAC,MAAI,CAAA,UAAU,uBACb,SAAA,CAAAC,EAAA,IAACC,EAAA,CACC,QAASC,EACT,eAAgBA,EAAiB,KAAMC,GAAWA,EAAO,KAAOlB,EAAK,OAAO,GAAK,KACjF,eAAiBkB,GAAgC,CAC3CA,GACFP,EAAQ,CAAE,GAAGX,EAAM,QAASkB,EAAO,GAAI,CAE3C,EACA,YAAY,iBACZ,uBAAuB,YACvB,UAAS,EAAA,CACX,EACAH,EAAA,IAACI,EAAA,CACC,GAAG,0BACH,KAAK,KACL,QAASN,EACT,UAAU,iBACV,SAAU,CAACb,EAAK,QACjB,SAAA,UAAA,CAED,CACF,CAAA,CAAA,CAEJ,ECtCMoB,GAAoB,CAACZ,EAAea,EAAeC,EAAmB,KAExER,EAAA,KAAC,MAAgB,CAAA,UAAU,oBACzB,SAAA,CAAAC,EAAA,IAACQ,EAAe,CAAA,MAAAf,EAAc,GAAIA,EAAO,UAAWc,EAAS,QAC5DE,GAAM,CAAA,QAAShB,EAAO,UAAU,mDAC9B,SACHa,EAAA,CAAA,CAAA,EAJQb,CAKV,EAUSiB,GAA0B,CAAC,CAAE,KAAAzB,EAAM,QAAAW,EAAS,mBAAAC,KAAgC,CACvF,MAAMC,EAAe,IAAM,CACQP,EAAA,CAC/B,KAAMR,EAAmB,mBACzB,MAAOE,EAAK,QAAA,CACb,EACkBY,GAAA,EAInB,OAAAE,EAAA,KAAC,MAAI,CAAA,UAAU,uBACb,SAAA,CAAAC,EAAA,IAACW,EAAA,CACC,aAAc1B,EAAK,SACnB,cAAgBQ,GAAU,CACxBG,EAAQ,CAAE,GAAGX,EAAM,SAAUQ,CAAmB,CAAA,CAClD,EACA,UAAU,YACV,UAAS,GAER,SAAAmB,GAAW,IAAKC,GAAaR,GAAkBQ,EAAS,MAAOA,EAAS,KAAK,CAAC,CAAA,CACjF,EACAb,EAAA,IAACI,EAAA,CACC,GAAG,0BACH,KAAK,KACL,QAASN,EACT,UAAU,iBACV,SAAU,CAACb,EAAK,SACjB,SAAA,UAAA,CAED,CACF,CAAA,CAAA,CAEJ,EClDM6B,GAAqBhC,GAAW,IAAKiC,IAAS,CAClD,MAAOA,EAAI,MACX,MAAOA,EAAI,MAAM,SAAS,CAC5B,EAAE,EAEWC,GAA0B,CAAC,CAAE,KAAA/B,EAAM,QAAAW,EAAS,mBAAAC,KAAgC,CACvF,MAAMC,EAAe,IAAM,CACQP,EAAA,CAC/B,KAAMR,EAAmB,eACzB,MAAOE,EAAK,kBAAkB,SAAS,CAAA,CACxC,EACkBY,GAAA,EAInB,OAAAE,EAAA,KAAC,MAAI,CAAA,UAAU,uBACb,SAAA,CAAAC,EAAA,IAACiB,GAAA,CACC,QAASH,GACT,cAAe7B,EAAK,kBAAkB,SAAS,EAC/C,SAAWQ,GAAU,CACnBG,EAAQ,CAAE,GAAGX,EAAM,iBAAkB,SAASQ,CAAK,EAAG,CACxD,EACA,YAAY,6BACZ,OAAQ,GACR,iBAAiB,YACjB,UAAS,EAAA,CACX,EACAO,EAAA,IAACI,EAAA,CACC,GAAG,0BACH,KAAK,KACL,QAASN,EACT,UAAU,iBACV,SAAUb,EAAK,mBAAqB,OACrC,SAAA,UAAA,CAED,CACF,CAAA,CAAA,CAEJ,EC7BaiC,GAAuB,CAAC,CAAE,KAAAjC,EAAM,OAAAkC,KAAoB,CAC/D,KAAM,CAACC,EAAWC,CAAY,EAAIC,WAAS,EAAK,EAE1CC,EAAaC,EAAE,OAAO,CAC1B,MAAOA,EAAE,OAAO,EAAE,MAAM,CAAA,CACzB,EAEKC,EAAOC,EAAoC,CAC/C,SAAUC,EAAYJ,CAAU,EAChC,cAAe,CACb,MAAO,EACT,CAAA,CACD,EAEKK,EAAW,MAAOC,GAAuC,CACzD,GAAA,CACFR,EAAa,EAAI,EACgB9B,EAAA,CAC/B,KAAMR,EAAmB,WAAA,CAC1B,EACD,MAAMoC,EAAO,CAAE,GAAGlC,EAAM,MAAO4C,EAAO,MAAO,CAAA,QAC7C,CACAR,EAAa,EAAK,CACpB,CAAA,EAGF,aACG,MAAI,CAAA,UAAU,uBACb,SAAArB,EAAA,IAAC8B,GAAM,GAAGL,EACR,SAAC1B,OAAA,OAAA,CAAK,SAAU0B,EAAK,aAAaG,CAAQ,EAAG,UAAU,uBACrD,SAAA,CAAA5B,EAAA,IAAC+B,EAAA,CACC,QAASN,EAAK,QACd,KAAK,QACL,OAAQ,CAAC,CAAE,MAAAO,CAAM,WACdC,EACC,CAAA,SAAA,CAAAjC,EAAA,IAACkC,EAAA,CACE,GAAGF,EACJ,KAAK,QACL,YAAY,aACZ,UAAS,GACT,UAAU,WAAA,CACZ,QACCG,EAAY,EAAA,CAAA,EACf,CAAA,CAEJ,EACApC,EAAA,KAACK,EAAA,CACC,GAAG,0BACH,KAAK,SACL,KAAK,KACL,UAAU,iBACV,SAAU,CAACqB,EAAK,UAAU,SAAWL,EAEpC,SAAA,CAAaA,GAAApB,EAAAA,IAACoC,EAAQ,CAAA,UAAU,2BAA4B,CAAA,EAAG,UAAA,CAAA,CAClE,CAAA,EACF,EACF,CACF,CAAA,CAEJ,EC1EMC,EAAc,sBAEPC,GAA4B,MAAOrD,GAA6B,CACrE,MAAAsD,EAAUC,EAAU,KAAMC,GAAUA,EAAM,OAASxD,EAAK,OAAO,EAE/DyD,EAAqB,CACzB,MAAO,CACL,GAAIH,EAAQ,MACZ,KAAMA,EAAQ,KACd,UAAWA,EAAQ,IACrB,EACA,aAActD,EAAK,SACnB,cAAe,EACf,WAAYA,EAAK,kBAAkB,SAAS,EAC5C,SAAUA,EAAK,kBAAkB,SAAS,EAC1C,MAAOA,EAAK,MACZ,aAAc,OAAA,EAGR0D,EAAA,IAAIN,EAAa,KAAK,UAAUK,CAAkB,EAAG,CAAE,QAAS,GAAA,CAAK,CAC/E,EAEME,GAAyB,IACtB,CAAC,CAACD,EAAQ,IAAIN,CAAW,EAGrBQ,EAA0B,IAAM,CAC3C,OAAO,SAAS,KAAO,uBACzB,EAEaC,GAAuB,IAC9BF,MACsBC,IACjB,IAGF,GCXHE,MAAkF,IAAI,CAC1F,CACEhE,EAAmB,gBACnB,CACE,MAAO,qBACP,YAAa,qDACf,CACF,EACA,CACEA,EAAmB,mBACnB,CACE,MAAO,gCACP,YAAa,6DACf,CACF,EACA,CACEA,EAAmB,eACnB,CACE,MAAO,yBACP,YAAa,0DACf,CACF,EACA,CACEA,EAAmB,YACnB,CACE,MAAO,6BACP,YAAa,6GACf,CACF,CACF,CAAC,EAQYiE,GAAmBC,EAAA,WAA0C,CAACC,EAAGC,IAAQ,CACpF,MAAMC,EAAa,SAAY,CACvB,MAAAC,EAAc,MAAMC,IACtBD,GAAeA,EAAY,IAC7BzD,EAAQ,CAAE,GAAGX,EAAM,QAASoE,EAAY,GAAI,CAC9C,EAGFE,EAAA,oBAAoBJ,EAAK,KAAO,CAC9B,8BAAgCK,GAAqB,CACnDC,EAA8BD,CAAO,CACvC,CACA,EAAA,EAEI,MAAAE,EAAcF,GAAqB,CAC/B5D,EAAA,CACN,QAAA4D,EACA,SAAU,OACV,iBAAkB,OAClB,MAAO,EAAA,CACR,EAEGA,EACFG,EAAQ5E,EAAmB,kBAAkB,GAE7C4E,EAAQ5E,EAAmB,eAAe,EAC/BqE,KAEbQ,EAAU,EAAI,EAEGC,EAAA,CACf,SAAUhF,CAAA,CACX,CAAA,EAGG4E,EAAiCD,GAAqB,CACrDV,MACHY,EAAWF,CAAO,CACpB,EAGFM,EAAAA,UAAU,IAAM,CACdC,GAAkCN,CAA6B,CACjE,EAAG,CAAE,CAAA,EAEL,KAAM,CAACO,EAAQJ,CAAS,EAAItC,WAAS,EAAK,EAEpC,CAAC9B,EAAMmE,CAAO,EAAIrC,EAAAA,SAA6BvC,EAAmB,eAAe,EACjF,CAACE,EAAMW,CAAO,EAAI0B,WAA6B,CACnD,QAAS,OACT,SAAU,OACV,iBAAkB,OAClB,MAAO,EAAA,CACR,EAEK2C,EAAqB,IAAM,CAC3BzE,IAAST,EAAmB,iBAC9B4E,EAAQnE,EAAO,CAAC,CAClB,EAGIK,EAAqB,IAAM,CAC3BL,IAAST,EAAmB,YAC9BoC,EAAOlC,CAAI,EAEX0E,EAAQnE,EAAO,CAAC,CAClB,EAGI2B,EAAS,MAAO+C,GAAkC,CACtD,MAAMlF,GAAWkF,CAAS,EAC1B,MAAM5B,GAA0B4B,CAAS,EACzC,MAAM7E,GAA2B6E,CAAS,EAE1CtE,EAAQsE,CAAS,EACOrB,IACxBe,EAAU,EAAK,EAEAO,EAAA,CACb,SAAUtF,EACV,SAASE,EAAmBS,CAAI,EAChC,YAAa,EAAA,CACd,CAAA,EAGG4E,EAAgBJ,GAAoB,CACnCA,GACYG,EAAA,CACb,SAAUtF,EACV,SAAUE,EAAmBS,CAAI,EACjC,YAAa,EAAA,CACd,EAGHoE,EAAUI,CAAM,CAAA,EAIhB,OAAAhE,EAAA,IAACqE,GAAO,KAAML,EAAQ,aAAAI,EACpB,SAACrE,EAAAA,KAAAuE,EAAA,CAAc,UAAU,0BACvB,SAAA,CAAAvE,OAACwE,EACC,CAAA,SAAA,CAACxE,EAAAA,KAAAyE,EAAA,CAAY,UAAU,gBACrB,SAAA,CAACzE,EAAAA,KAAA,OAAA,CAAK,UAAU,wCAAwC,SAAA,CAAA,QAChDP,EAAK,QAAQ,EAAE,OAAA,EACvB,EACAQ,EAAAA,IAAC,QAAK,UAAU,2BAA4B,WAAW,IAAIR,CAAI,GAAG,MAAM,CAAA,EAC1E,QACCiF,EAAmB,CAAA,SAAA1B,EAAW,IAAIvD,CAAI,GAAG,YAAY,CAAA,EACxD,EACAO,EAAAA,KAAC,MAAI,CAAA,UAAU,cACZ,SAAA,CAAAP,IAAST,EAAmB,iBAC3BiB,EAAA,IAACL,GAAA,CACC,KAAAV,EACA,QAAAW,EACA,mBAAAC,CAAA,CACF,EAEDL,IAAST,EAAmB,oBAC3BiB,EAAA,IAACU,GAAA,CACC,KAAAzB,EACA,QAAAW,EACA,mBAAAC,CAAA,CACF,EAEDL,IAAST,EAAmB,gBAC3BiB,EAAA,IAACgB,GAAA,CACC,KAAA/B,EACA,QAAAW,EACA,mBAAAC,CAAA,CACF,EAEDL,IAAST,EAAmB,aAC1BiB,EAAAA,IAAAkB,GAAA,CAAqB,KAAAjC,EAAY,OAAAkC,EAAgB,CAAA,EAEtD,EACC3B,IAAST,EAAmB,iBAC3BgB,EAAA,KAAC,SAAA,CACC,GAAG,6BACH,QAAS,IAAMkE,EAAmB,EAClC,UAAU,yRAEV,SAAA,CAAAjE,EAAA,IAAC0E,GAAc,EAAA,EACd1E,EAAA,IAAA,OAAA,CAAK,UAAU,UAAU,SAAI,OAAA,CAAA,CAAA,CAChC,CAAA,CAEJ,CAAA,CACF,CAAA,CAEJ,CAAC,ECtND,SAAwB2E,GAAc,CACpC,MAAAC,EAAQ,GACR,OAAAC,EAAS,GACT,UAAAC,CACF,EAIG,CAEC,OAAA9E,EAAA,IAAC,MAAI,CAAA,MAAA4E,EAAc,OAAAC,EAAgB,UAAAC,EAAsB,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAC7F,SAAA9E,EAAA,IAAC,OAAA,CACC,EAAE,2hDACF,KAAK,cAAA,CAET,CAAA,CAAA,CAEJ,CCRA,MAAM+E,EAAgBC,EAAM,WAC1B,CAAC,CAAE,UAAAF,EAAW,KAAAG,EAAM,GAAGC,CAAA,EAAS/B,IAAQ,CACtC,KAAM,CAACgC,EAASC,CAAU,EAAI9D,WAAkB,EAAK,EAGnD,OAAAvB,EAAA,KAAC,MAAA,CACC,UAAWsF,GACT,oQACAP,CACF,EAEA,SAAA,CAAA9E,EAAA,IAAC,QAAA,CACE,GAAGkF,EACJ,KAAMC,EAAU,OAAS,WACzB,IAAAhC,EACA,UAAU,wHAAA,CACZ,EACAnD,EAAA,IAAC,MAAA,CACC,UAAU,qDACV,QAAS,IAAMoF,EAAW,CAACD,CAAO,EAEjC,SAAUA,EAAAnF,EAAAA,IAAC2E,GAAc,CAAA,CAAA,QAAMW,GAAQ,EAAA,CAAA,CAC1C,CAAA,CAAA,CAAA,CAGN,CACF,EACAP,EAAc,YAAc,gBChBrB,MAAMQ,GAAc,IAAM,CAC/BzB,EAAAA,UAAU,IAAM,CACd0B,GAA4BC,CAAI,CAAA,CACjC,EAED,MAAMA,EAAO,IAAM,CACjB7B,EAAU,EAAI,CAAA,EAGV,CAACI,EAAQJ,CAAS,EAAItC,WAAS,EAAK,EAEpCC,EAAaC,EAAE,OAAO,CAC1B,MAAOA,EAAE,OAAA,EAAS,IAAI,EAAG,iCAAiC,EAC1D,SAAUA,EAAE,OAAA,EAAS,IAAI,EAAG,4BAA4B,CAAA,CACzD,EAEKC,EAAOC,EAAoC,CAC/C,SAAUC,EAAYJ,CAAU,EAChC,cAAe,CACb,MAAO,GACP,SAAU,EACZ,CAAA,CACD,EAEK,CAACH,EAAWC,CAAY,EAAIC,WAAS,EAAK,EAC1C,CAAClC,EAAOsG,CAAQ,EAAIpE,WAAwB,IAAI,EAEhDM,EAAW,MAAO3C,GAAqC,CACvD,GAAA,CACFoC,EAAa,EAAI,EACjBqE,EAAS,IAAI,EACP,MAAAC,GAAM,CAAE,MAAO1G,EAAK,MAAO,SAAUA,EAAK,SAAU,EAC1D,OAAO,SAAS,eACTG,EAAO,CACd,IAAIwG,EAAeC,GACfzG,aAAiB0G,KAAYF,EAAexG,EAAM,SAEtDsG,EAASE,CAAY,CAAA,QACrB,CACAvE,EAAa,EAAK,CACpB,CAAA,EAGF,OACGrB,EAAAA,IAAAqE,EAAA,CAAO,KAAML,EAAQ,aAAeA,GAAWJ,EAAUI,CAAM,EAC9D,SAACjE,OAAAuE,EAAA,CAAc,UAAU,GACvB,SAAA,CAAAvE,OAACwE,EACC,CAAA,SAAA,CAACvE,EAAA,IAAAwE,EAAA,CAAY,UAAU,gBAAgB,SAAY,eAAA,EACnDxE,EAAAA,IAACyE,GAAkB,SAA4B,8BAAA,CAAA,CAAA,EACjD,QACC,MAAI,CAAA,UAAU,uBACb,SAAAzE,MAAC8B,GAAM,GAAGL,EACR,SAAC1B,EAAAA,KAAA,OAAA,CAAK,SAAU0B,EAAK,aAAaG,CAAQ,EAAG,UAAU,iBACrD,SAAA,CAAA5B,EAAA,IAAC+B,EAAA,CACC,QAASN,EAAK,QACd,KAAK,QACL,OAAQ,CAAC,CAAE,MAAAO,CAAM,WACdC,EACC,CAAA,SAAA,CAAAjC,EAAAA,IAAC+F,GAAU,SAAK,OAAA,CAAA,EAChB/F,EAAAA,IAACkC,EAAO,CAAA,GAAGF,EAAO,KAAK,OAAO,YAAY,aAAa,UAAS,GAAC,UAAU,EAAG,CAAA,QAC7EG,EAAY,EAAA,CAAA,EACf,CAAA,CAEJ,EACAnC,EAAA,IAAC+B,EAAA,CACC,QAASN,EAAK,QACd,KAAK,WACL,OAAQ,CAAC,CAAE,MAAAO,CAAM,WACdC,EACC,CAAA,SAAA,CAAAjC,EAAAA,IAAC+F,GAAU,SAAQ,UAAA,CAAA,EACnB/F,EAAAA,IAAC+E,GAAe,GAAG/C,EAAO,KAAK,WAAW,YAAY,WAAW,UAAU,GAAG,QAC7EG,EAAY,EAAA,CAAA,EACf,CAAA,CAEJ,QACC,MAAI,CAAA,UAAU,mBACb,SAAAnC,EAAAA,IAACgG,GAAK,KAAK,kBAAkB,QAAQ,OACnC,eAAC,OAAK,CAAA,UAAU,yBAAyB,SAAA,uBAAA,CAAqB,CAChE,CAAA,EACF,EACC5G,GACCY,EAAA,IAAC,MAAA,CACC,wBAAyB,CAAE,OAAQZ,CAAM,EACzC,UAAU,wBAAA,CACX,EAEHW,EAAAA,KAAC,MAAI,CAAA,UAAU,6BACb,SAAA,CAAAA,EAAA,KAACK,EAAA,CACC,KAAK,SACL,KAAK,KACL,UAAW,GAAGhB,EAAQ,YAAc,WAAW,WAC/C,SAAUgC,EAET,SAAA,CAAaA,GAAApB,EAAAA,IAACoC,EAAQ,CAAA,UAAU,2BAA4B,CAAA,EAAG,OAAA,CAAA,CAClE,EACCpC,EAAA,IAAAgG,EAAA,CAAK,KAAK,YAAY,QAAQ,OAAO,UAAU,cAC9C,SAAChG,EAAA,IAAA,OAAA,CAAK,UAAU,sBAAsB,6CAAkC,CAAA,EAC1E,CAAA,EACF,CAAA,CACF,CAAA,CACF,CAAA,EACF,CAAA,CACF,CAAA,CACF,CAAA,CAEJ,ECrHaiG,GAAgB,CAAC,CAAE,oBAAAC,KAG1BnG,EAAA,KAAAoG,WAAA,CAAA,SAAA,CAAAnG,EAAA,IAACuF,GAAY,EAAA,EACbvF,EAAAA,IAACgD,GAAiB,CAAA,IAAKkD,CAAqB,CAAA,CAC9C,CAAA,CAAA"}