@prose-reader/react-reader 1.275.0 → 1.277.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +872 -888
- package/dist/index.js.map +1 -1
- package/dist/index.umd.cjs +1 -1
- package/dist/index.umd.cjs.map +1 -1
- package/package.json +2 -2
package/dist/index.umd.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.umd.cjs","sources":["../src/constants.ts","../src/context/context.ts","../src/context/useReaderContext.ts","../src/common/FloatingMenu.tsx","../src/context/useReader.ts","../src/annotations/useReaderWithAnnotations.ts","../src/annotations/AnnotateControls.tsx","../src/common/utils.ts","../src/components/ui/close-button.tsx","../src/components/ui/drawer.tsx","../src/annotations/AnnotationDrawer.tsx","../src/components/ui/dialog.tsx","../src/annotations/useAnnotation.ts","../src/annotations/AnnotationListItem.tsx","../src/annotations/useAnnotations.ts","../src/annotations/useHighlights.ts","../src/annotations/AnnotationsList.tsx","../src/annotations/bookmarks/useBookmarks.ts","../src/annotations/bookmarks/BookmarksList.tsx","../src/annotations/AnnotationsDialogContent.tsx","../src/annotations/AnnotationsDialog.tsx","../src/common/Spine.tsx","../src/common/useSpineItem.ts","../src/common/useSpineItemReady.ts","../src/annotations/bookmarks/BookmarkPageMarker.tsx","../src/annotations/bookmarks/BookmarkPageMarkers.tsx","../src/annotations/bookmarks/useBookmarkOnCornerTap.ts","../src/annotations/usePreventInteractionOnSelection.ts","../src/annotations/useSyncAnnotationsWithReader.ts","../src/components/ui/toaster.tsx","../src/context/ReactReaderProvider.tsx","../src/components/ui/radio.tsx","../src/components/ui/slider.tsx","../src/settings/types.ts","../src/fonts/FontSizeControlsDialog.tsx","../src/fonts/SyncFontSettings.ts","../src/common/useMeasure.ts","../src/gallery/useAttachSnapshot.ts","../src/gallery/GalleryDialog.tsx","../src/help/HelpDialog.tsx","../src/pagination/usePagination.ts","../src/navigation/FloatingProgress.tsx","../src/quickmenu/TimeIndicator.tsx","../src/navigation/FloatingTime.tsx","../src/navigation/useInterceptExternalLinks.ts","../src/notifications/useNotifications.ts","../src/components/ui/toggle-tip.tsx","../src/components/ui/progress.tsx","../src/navigation/useNavigationContext.ts","../src/quickmenu/PaginationInfoSection.tsx","../src/quickmenu/QuickBar.tsx","../src/quickmenu/ThemedSlider.tsx","../src/quickmenu/Scrubber.tsx","../src/quickmenu/BottomBar.tsx","../src/common/useFullscreen.ts","../src/quickmenu/TopBar.tsx","../src/quickmenu/useQuickMenu.ts","../src/quickmenu/QuickMenu.tsx","../src/quickmenu/useQuickMenuToggleGesture.ts","../src/components/ui/field.tsx","../src/refit/RefitDialog.tsx","../src/search/SearchListItem.tsx","../src/search/useSearch.ts","../src/search/SearchDialogContent.tsx","../src/search/SearchDialog.tsx","../src/toc/TableOfContentsDialogContent.tsx","../src/toc/TableOfContentsDialog.tsx","../src/zoom/useZoomSettings.ts","../src/zoom/ZoomControls.tsx","../src/ReactReader.tsx"],"sourcesContent":["export const BOOKMARK_AREA_DATA_ATTRIBUTE = `data-bookmark-area`\nexport const MAX_ZOOM_SCALE = 5\n","import type { Reader } from \"@prose-reader/core\"\nimport type {\n Annotation,\n RuntimeAnnotation,\n} from \"@prose-reader/enhancer-annotations\"\nimport type { EnhancerAPI as GesturesEnhancerAPI } from \"@prose-reader/enhancer-gestures\"\nimport { createContext, type Dispatch, type SetStateAction } from \"react\"\nimport { type Signal, signal } from \"reactjrx\"\nimport { Subject } from \"rxjs\"\nimport type { ReaderNotification } from \"../notifications/types\"\nimport type {\n PROSE_REACT_READER_SETTINGS_SCOPE,\n PROSE_REACT_READER_SETTINGS_SCOPE_REFERENCE,\n} from \"../settings/types\"\n\nexport type PrivateContextType = {\n /**\n * Internal fallback values used for uncontrolled settings. This way the\n * Reader works as intended but:\n * - there are no persistent settings\n * - the settings are valid only for the current mount runtime\n */\n uncontrolledFontSize: number\n refitMenuOpen: boolean\n onRefitMenuOpenChange: (open: boolean) => void\n fontSizeMenuOpen: boolean\n onFontSizeMenuOpenChange: (open: boolean) => void\n notificationsSubject: Subject<ReaderNotification>\n quickMenuBottomBarBoundingBoxSignal: Signal<ResizeObserverEntry | undefined>\n fontSizeMin: number\n fontSizeMax: number\n _quickMenuOpen: boolean\n _onQuickMenuOpenChange: Dispatch<SetStateAction<boolean>>\n selectedHighlight:\n | {\n highlight?: RuntimeAnnotation\n selection?: {\n selection: Selection\n itemIndex: number\n }\n }\n | undefined\n}\n\nexport type PublicContextType = {\n reader: (Reader & GesturesEnhancerAPI) | undefined\n enableFloatingTime?: boolean\n enableFloatingProgress?: boolean\n onItemClick?: (\n item:\n | \"annotations\"\n | \"search\"\n | \"help\"\n | \"toc\"\n | \"bookmarks\"\n | \"more\"\n | \"back\"\n | \"gallery\",\n ) => void\n quickMenuOpen?: boolean\n onQuickMenuOpenChange?: Dispatch<SetStateAction<boolean>>\n fontSize?: number\n zoomMaxScale?: number\n onFontSizeChange?: (\n from: PROSE_REACT_READER_SETTINGS_SCOPE_REFERENCE | \"internal\",\n value: number,\n ) => void\n fontSizeScope?: PROSE_REACT_READER_SETTINGS_SCOPE_REFERENCE\n onFontSizeScopeChange?: (scope: PROSE_REACT_READER_SETTINGS_SCOPE) => void\n fontSizeValues?: Record<\n PROSE_REACT_READER_SETTINGS_SCOPE_REFERENCE,\n number | undefined\n >\n annotations?: Annotation[]\n onAnnotationCreate?: (annotation: Annotation) => void\n onAnnotationUpdate?: (\n annotation: Pick<Annotation, \"id\" | \"highlightColor\" | \"notes\">,\n ) => void\n onAnnotationDelete?: (id: string) => void\n}\n\nexport type ReaderContextType = PrivateContextType & PublicContextType\n\nexport const getDefaultValue = (): ReaderContextType => ({\n _quickMenuOpen: false,\n _onQuickMenuOpenChange: (prev) => prev,\n reader: undefined,\n quickMenuBottomBarBoundingBoxSignal: signal<ResizeObserverEntry | undefined>({\n default: undefined,\n }),\n notificationsSubject: new Subject<ReaderNotification>(),\n refitMenuOpen: false,\n onRefitMenuOpenChange: () => {},\n fontSizeMenuOpen: false,\n onFontSizeMenuOpenChange: () => {},\n fontSizeMin: 0.2,\n fontSizeMax: 5,\n uncontrolledFontSize: 1,\n enableFloatingProgress: true,\n selectedHighlight: undefined,\n})\n\nexport const ReaderContext = createContext(\n signal({ default: getDefaultValue() }),\n)\n","import { isShallowEqual, pick, watchKeys } from \"@prose-reader/core\"\nimport { useContext } from \"react\"\nimport { useObserve } from \"reactjrx\"\nimport { ReaderContext, type ReaderContextType } from \"./context\"\n\nexport const useReaderContextValue = <T extends keyof ReaderContextType>(\n keys: T[],\n) => {\n const context = useContext(ReaderContext)\n\n return useObserve(\n () => context.pipe(watchKeys(keys)),\n {\n compareFn: isShallowEqual,\n defaultValue: pick(context.value, keys),\n },\n [],\n ).data\n}\n\nexport const useReaderContext = () => {\n return useContext(ReaderContext)\n}\n","import { Presence, type PresenceProps } from \"@chakra-ui/react\"\nimport { memo } from \"react\"\nimport { useSignalValue } from \"reactjrx\"\nimport { useReaderContextValue } from \"../context/useReaderContext\"\n\nconst SAFE_MARGIN_FLOATING_BOTTOM_ELEMENTS = 24\n\n// @todo use Popover\nexport const FloatingMenu = memo(\n ({\n children,\n ...rest\n }: {\n present: boolean\n children: React.ReactNode\n } & PresenceProps) => {\n const { quickMenuBottomBarBoundingBoxSignal } = useReaderContextValue([\n \"quickMenuBottomBarBoundingBoxSignal\",\n \"zoomMaxScale\",\n ])\n const quickMenuBottomBarBoundingBox = useSignalValue(\n quickMenuBottomBarBoundingBoxSignal,\n )\n const bottomBarHeight =\n quickMenuBottomBarBoundingBox?.borderBoxSize?.[0]?.blockSize ||\n SAFE_MARGIN_FLOATING_BOTTOM_ELEMENTS\n\n return (\n <Presence\n animationName={{ _open: \"fade-in\", _closed: \"fade-out\" }}\n animationDuration=\"moderate\"\n position=\"absolute\"\n bottom={`calc(${bottomBarHeight}px + var(--chakra-spacing-4))`}\n right={4}\n backgroundColor=\"bg.panel\"\n shadow=\"sm\"\n borderRadius=\"md\"\n p={2}\n display=\"flex\"\n flexDirection=\"row\"\n gap={2}\n {...rest}\n >\n {children}\n </Presence>\n )\n },\n)\n","import type { Reader } from \"@prose-reader/core\"\nimport type { AnnotationsEnhancerAPI } from \"@prose-reader/enhancer-annotations\"\nimport type { GalleryEnhancerAPI } from \"@prose-reader/enhancer-gallery\"\nimport type { RefitEnhancerAPI } from \"@prose-reader/enhancer-refit\"\nimport type { SearchEnhancerAPI } from \"@prose-reader/enhancer-search\"\nimport { useReaderContextValue } from \"./useReaderContext\"\n\nexport const useReader = () => {\n const { reader } = useReaderContextValue([\"reader\"])\n\n return reader\n}\n\nexport const hasSearchEnhancer = (\n reader?: Reader,\n): reader is Reader & SearchEnhancerAPI => {\n return !!reader && \"__PROSE_READER_ENHANCER_SEARCH\" in reader\n}\n\nexport const hasAnnotationsEnhancer = (\n reader?: Reader,\n): reader is Reader & AnnotationsEnhancerAPI => {\n return !!reader && \"__PROSE_READER_ENHANCER_ANNOTATIONS\" in reader\n}\n\nexport const hasGalleryEnhancer = (\n reader?: Reader,\n): reader is Reader & GalleryEnhancerAPI => {\n return !!reader && \"__PROSE_READER_ENHANCER_GALLERY\" in reader\n}\n\nexport const hasRefitEnhancer = (\n reader?: Reader,\n): reader is Reader & RefitEnhancerAPI => {\n return !!reader && \"__PROSE_READER_ENHANCER_REFIT\" in reader\n}\n","import { hasAnnotationsEnhancer, useReader } from \"../context/useReader\"\n\nexport const useReaderWithAnnotations = () => {\n const reader = useReader()\n const readerWithBookmarks = hasAnnotationsEnhancer(reader)\n ? reader\n : undefined\n\n return readerWithBookmarks\n}\n","import { Button } from \"@chakra-ui/react\"\nimport { FaEdit } from \"react-icons/fa\"\nimport { LuNotebookPen } from \"react-icons/lu\"\nimport { useObserve } from \"reactjrx\"\nimport { EMPTY, map, startWith, switchMap } from \"rxjs\"\nimport { FloatingMenu } from \"../common/FloatingMenu\"\nimport {\n useReaderContext,\n useReaderContextValue,\n} from \"../context/useReaderContext\"\nimport { useReaderWithAnnotations } from \"./useReaderWithAnnotations\"\n\nexport const AnnotateControls = () => {\n const reader = useReaderWithAnnotations()\n const context = useReaderContext()\n const { selectedHighlight } = useReaderContextValue([\"selectedHighlight\"])\n const { data: isOpen } = useObserve(\n () =>\n reader?.selection.selectionOver$.pipe(\n switchMap(() =>\n reader.selection.selectionEnd$.pipe(\n map(() => false),\n startWith(true),\n ),\n ),\n ) ?? EMPTY,\n { defaultValue: false },\n [reader],\n )\n\n return (\n <FloatingMenu present={isOpen && !selectedHighlight}>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => {\n const selection = reader?.selection.getSelection()\n\n if (!selection) return\n\n context.update((state) => ({\n ...state,\n selectedHighlight: {\n selection,\n },\n }))\n }}\n >\n <FaEdit />\n Annotate\n </Button>\n <Button variant=\"outline\" size=\"sm\" disabled>\n <LuNotebookPen />\n Bookmark\n </Button>\n </FloatingMenu>\n )\n}\n","export const truncateText = (text: string, maxLength = 50): string => {\n if (text.length <= maxLength) return text\n return `${text.slice(0, maxLength)}...`\n}\n","import type { ButtonProps } from \"@chakra-ui/react\"\nimport { IconButton as ChakraIconButton } from \"@chakra-ui/react\"\nimport * as React from \"react\"\nimport { LuX } from \"react-icons/lu\"\n\nexport type CloseButtonProps = ButtonProps\n\nexport const CloseButton = React.forwardRef<\n HTMLButtonElement,\n CloseButtonProps\n>(function CloseButton(props, ref) {\n return (\n <ChakraIconButton variant=\"ghost\" aria-label=\"Close\" ref={ref} {...props}>\n {props.children ?? <LuX />}\n </ChakraIconButton>\n )\n})\n","import { Drawer as ChakraDrawer, Portal } from \"@chakra-ui/react\"\nimport { CloseButton } from \"./close-button\"\nimport * as React from \"react\"\n\ninterface DrawerContentProps extends ChakraDrawer.ContentProps {\n portalled?: boolean\n portalRef?: React.RefObject<HTMLElement>\n offset?: ChakraDrawer.ContentProps[\"padding\"]\n}\n\nexport const DrawerContent = React.forwardRef<\n HTMLDivElement,\n DrawerContentProps\n>(function DrawerContent(props, ref) {\n const { children, portalled = true, portalRef, offset, ...rest } = props\n return (\n <Portal disabled={!portalled} container={portalRef}>\n <ChakraDrawer.Positioner padding={offset}>\n <ChakraDrawer.Content ref={ref} {...rest} asChild={false}>\n {children}\n </ChakraDrawer.Content>\n </ChakraDrawer.Positioner>\n </Portal>\n )\n})\n\nexport const DrawerCloseTrigger = React.forwardRef<\n HTMLButtonElement,\n ChakraDrawer.CloseTriggerProps\n>(function DrawerCloseTrigger(props, ref) {\n return (\n <ChakraDrawer.CloseTrigger\n position=\"absolute\"\n top=\"2\"\n insetEnd=\"2\"\n {...props}\n asChild\n >\n <CloseButton size=\"sm\" ref={ref} />\n </ChakraDrawer.CloseTrigger>\n )\n})\n\nexport const DrawerTrigger = ChakraDrawer.Trigger\nexport const DrawerRoot = ChakraDrawer.Root\nexport const DrawerFooter = ChakraDrawer.Footer\nexport const DrawerHeader = ChakraDrawer.Header\nexport const DrawerBody = ChakraDrawer.Body\nexport const DrawerBackdrop = ChakraDrawer.Backdrop\nexport const DrawerDescription = ChakraDrawer.Description\nexport const DrawerTitle = ChakraDrawer.Title\nexport const DrawerActionTrigger = ChakraDrawer.ActionTrigger\n","import { Box, Button, Stack, Text, Textarea } from \"@chakra-ui/react\"\nimport { type ComponentProps, memo, useEffect, useState } from \"react\"\nimport { useSubscribe } from \"reactjrx\"\nimport { tap } from \"rxjs\"\nimport { truncateText } from \"../common/utils\"\nimport {\n DrawerBackdrop,\n DrawerBody,\n DrawerContent,\n DrawerHeader,\n DrawerRoot,\n} from \"../components/ui/drawer\"\nimport {\n useReaderContext,\n useReaderContextValue,\n} from \"../context/useReaderContext\"\nimport { useReaderWithAnnotations } from \"./useReaderWithAnnotations\"\n\nconst HIGHLIGHT_COLORS = [\n \"rgba(216, 191, 216, 1)\", // Light purple\n \"rgba(255, 225, 125, 1)\", // Soft yellow\n \"rgba(144, 238, 144, 1)\", // Light green\n \"rgba(173, 216, 230, 1)\", // Light blue\n \"rgba(255, 182, 193, 1)\", // Light pink\n] as const\n\nexport const AnnotationDrawer = memo(() => {\n const reader = useReaderWithAnnotations()\n const {\n selectedHighlight,\n onAnnotationCreate,\n onAnnotationUpdate,\n onAnnotationDelete,\n } = useReaderContextValue([\n \"selectedHighlight\",\n \"onAnnotationCreate\",\n \"onAnnotationUpdate\",\n \"onAnnotationDelete\",\n ])\n const context = useReaderContext()\n const { highlight, selection } = selectedHighlight ?? {}\n const [selectedColor, setSelectedColor] = useState<string>(\n HIGHLIGHT_COLORS[0],\n )\n const [contents, setContents] = useState<string>(\"\")\n const isOpen = !!(selection ?? highlight)\n\n const onClose = () => {\n context.update((state) => ({\n ...state,\n selectedHighlight: undefined,\n }))\n }\n\n const onOpenChange: ComponentProps<typeof DrawerRoot>[\"onOpenChange\"] = (\n event,\n ) => {\n if (!event.open) {\n onClose()\n }\n }\n\n const highlightColor = highlight?.highlightColor\n const highlightContent = highlight?.notes\n\n useEffect(() => {\n void isOpen\n\n setContents(\"\")\n }, [isOpen])\n\n useEffect(() => {\n setContents(highlightContent ?? \"\")\n }, [highlightContent])\n\n useEffect(() => {\n void isOpen\n\n if (highlightColor) {\n setSelectedColor(highlightColor)\n } else {\n setSelectedColor(HIGHLIGHT_COLORS[0])\n }\n }, [highlightColor, isOpen])\n\n useSubscribe(\n function openDrawerOnTap() {\n return reader?.annotations.highlightTap$.pipe(\n tap(({ highlight }) => {\n context.update((state) => ({\n ...state,\n selectedHighlight: {\n highlight,\n },\n }))\n }),\n )\n },\n [reader],\n )\n\n return (\n <DrawerRoot placement=\"bottom\" onOpenChange={onOpenChange} open={isOpen}>\n <DrawerBackdrop />\n <DrawerContent>\n <DrawerHeader borderBottomWidth=\"1px\">\n {highlight\n ? \"Highlight\"\n : `Selection: \"${truncateText(selection?.selection?.toString() ?? \"\", 10)}\"`}\n </DrawerHeader>\n <DrawerBody gap={4} display=\"flex\" flexDirection=\"column\" pb={4}>\n <Stack>\n <Stack gap={2} flexDirection=\"row\">\n {HIGHLIGHT_COLORS.map((color) => (\n <Box\n bgColor={color}\n height={10}\n width={10}\n key={color}\n borderRadius=\"50%\"\n cursor=\"pointer\"\n {...(selectedColor === color && {\n border: \"4px solid white\",\n })}\n onClick={() => setSelectedColor(color)}\n />\n ))}\n </Stack>\n <Text>Annotation:</Text>\n <Textarea\n value={contents}\n onChange={(event) => setContents(event.target.value)}\n />\n </Stack>\n {!!selection && (\n <Button\n onClick={() => {\n onClose()\n\n const annotation = reader?.annotations.createAnnotation({\n ...selection,\n highlightColor: selectedColor,\n notes: contents,\n })\n\n if (annotation) {\n onAnnotationCreate?.(annotation)\n }\n }}\n >\n Highlight\n </Button>\n )}\n {!!highlight && (\n <Stack direction=\"row\">\n <Button\n flex={1}\n onClick={() => {\n onClose()\n\n onAnnotationUpdate?.({\n id: highlight.id,\n highlightColor: selectedColor,\n notes: contents,\n })\n }}\n >\n Update\n </Button>\n <Button\n flex={1}\n variant=\"surface\"\n onClick={() => {\n onClose()\n\n onAnnotationDelete?.(highlight.id)\n }}\n >\n Remove\n </Button>\n </Stack>\n )}\n </DrawerBody>\n </DrawerContent>\n </DrawerRoot>\n )\n})\n","import { Dialog as ChakraDialog, Portal } from \"@chakra-ui/react\"\nimport * as React from \"react\"\nimport { CloseButton } from \"./close-button\"\n\ninterface DialogContentProps extends ChakraDialog.ContentProps {\n portalled?: boolean\n portalRef?: React.RefObject<HTMLElement>\n backdrop?: boolean\n}\n\nexport const DialogContent = React.forwardRef<\n HTMLDivElement,\n DialogContentProps\n>(function DialogContent(props, ref) {\n const {\n children,\n portalled = true,\n portalRef,\n backdrop = true,\n ...rest\n } = props\n\n return (\n <Portal disabled={!portalled} container={portalRef}>\n {backdrop && <ChakraDialog.Backdrop />}\n <ChakraDialog.Positioner>\n <ChakraDialog.Content ref={ref} {...rest} asChild={false}>\n {children}\n </ChakraDialog.Content>\n </ChakraDialog.Positioner>\n </Portal>\n )\n})\n\nexport const DialogCloseTrigger = React.forwardRef<\n HTMLButtonElement,\n ChakraDialog.CloseTriggerProps\n>(function DialogCloseTrigger(props, ref) {\n return (\n <ChakraDialog.CloseTrigger\n position=\"absolute\"\n top=\"2\"\n insetEnd=\"2\"\n {...props}\n asChild\n >\n <CloseButton size=\"sm\" ref={ref}>\n {props.children}\n </CloseButton>\n </ChakraDialog.CloseTrigger>\n )\n})\n\nexport const DialogRoot = ChakraDialog.Root\nexport const DialogFooter = ChakraDialog.Footer\nexport const DialogHeader = ChakraDialog.Header\nexport const DialogBody = ChakraDialog.Body\nexport const DialogBackdrop = ChakraDialog.Backdrop\nexport const DialogTitle = ChakraDialog.Title\nexport const DialogDescription = ChakraDialog.Description\nexport const DialogTrigger = ChakraDialog.Trigger\nexport const DialogActionTrigger = ChakraDialog.ActionTrigger\n","import { isDefined, useObserve } from \"reactjrx\"\nimport { filter, map, switchMap } from \"rxjs\"\nimport { hasAnnotationsEnhancer, useReader } from \"../context/useReader\"\n\nexport const useAnnotation = (id: string) => {\n const reader = useReader()\n const readerWithAnnotations = hasAnnotationsEnhancer(reader)\n ? reader\n : undefined\n\n return useObserve(\n () =>\n readerWithAnnotations?.annotations.annotations$.pipe(\n map((items) => items.find((item) => item.id === id)),\n filter(isDefined),\n switchMap((item) => readerWithAnnotations.locateResource(item)),\n ),\n [readerWithAnnotations],\n )\n}\n","import { Link, List, Stack, Text } from \"@chakra-ui/react\"\nimport { LuNotebookPen } from \"react-icons/lu\"\nimport { useReader } from \"../context/useReader\"\nimport { useAnnotation } from \"./useAnnotation\"\n\nexport const AnnotationListItem = ({\n id,\n onNavigate,\n allowLeftIcon = true,\n}: {\n id: string\n onNavigate: () => void\n allowLeftIcon?: boolean\n}) => {\n const reader = useReader()\n const { data: annotation } = useAnnotation(id)\n const textContent =\n annotation?.meta.range?.toString() || annotation?.meta.node?.textContent\n\n return (\n <List.Item>\n <Link\n href=\"#\"\n onClick={() => {\n onNavigate()\n\n reader?.navigation.goToCfi(annotation?.meta.cfi ?? \"\")\n }}\n >\n {annotation?.resource?.notes ? (\n <List.Indicator asChild>\n <LuNotebookPen />\n </List.Indicator>\n ) : allowLeftIcon ? (\n <List.Indicator asChild visibility=\"hidden\">\n <LuNotebookPen />\n </List.Indicator>\n ) : null}\n <Stack gap={0}>\n {textContent ? (\n <Text lineClamp={2} fontSize=\"md\">\n {textContent}\n </Text>\n ) : (\n <Text lineClamp={2} fontSize=\"md\" fontStyle=\"italic\">\n Page {(annotation?.meta.absolutePageIndex ?? 0) + 1}\n </Text>\n )}\n <Text\n fontStyle=\"italic\"\n fontWeight=\"bold\"\n fontSize=\"sm\"\n >{`Book page: ${\n annotation?.meta?.absolutePageIndex !== undefined\n ? annotation.meta.absolutePageIndex + 1\n : \"unknown (not loaded)\"\n }`}</Text>\n </Stack>\n </Link>\n </List.Item>\n )\n}\n","import { useObserve } from \"reactjrx\"\nimport { switchMap } from \"rxjs\"\nimport { hasAnnotationsEnhancer, useReader } from \"../context/useReader\"\n\nexport const useAnnotations = () => {\n const reader = useReader()\n const readerWithAnnotations = hasAnnotationsEnhancer(reader)\n ? reader\n : undefined\n\n return useObserve(\n () =>\n readerWithAnnotations?.annotations.annotations$.pipe(\n switchMap((highlights) => {\n return readerWithAnnotations.locateResource(highlights)\n }),\n ),\n [readerWithAnnotations],\n )\n}\n","import { useAnnotations } from \"./useAnnotations\"\n\nexport const useHighlights = () => {\n const { data: annotations } = useAnnotations()\n\n return {\n data: annotations?.filter((annotation) => annotation.meta.isCfiRange),\n }\n}\n","import { List } from \"@chakra-ui/react\"\nimport { AnnotationListItem } from \"./AnnotationListItem\"\nimport { useHighlights } from \"./useHighlights\"\n\nexport const AnnotationsList = ({ onNavigate }: { onNavigate: () => void }) => {\n const { data: annotations } = useHighlights()\n\n return (\n <List.Root overflowY=\"auto\" gap={3} pt={4} variant=\"plain\">\n {annotations?.map((item) => (\n <AnnotationListItem\n key={item.resource.id}\n id={item.resource.id}\n onNavigate={onNavigate}\n />\n ))}\n </List.Root>\n )\n}\n","import { useAnnotations } from \"../useAnnotations\"\n\nexport const useBookmarks = () => {\n const { data: annotations } = useAnnotations()\n\n return {\n data: annotations?.filter(\n (annotation) => !annotation.meta.isCfiRange && !annotation.resource.notes,\n ),\n }\n}\n","import { List } from \"@chakra-ui/react\"\nimport { AnnotationListItem } from \"../AnnotationListItem\"\nimport { useBookmarks } from \"./useBookmarks\"\n\nexport const BookmarksList = ({ onNavigate }: { onNavigate: () => void }) => {\n const { data: annotations } = useBookmarks()\n\n return (\n <List.Root overflowY=\"auto\" gap={3} pt={4} variant=\"plain\">\n {annotations?.map((item) => (\n <AnnotationListItem\n key={item.resource.id}\n id={item.resource.id}\n onNavigate={onNavigate}\n allowLeftIcon={false}\n />\n ))}\n </List.Root>\n )\n}\n","import { Tabs } from \"@chakra-ui/react\"\nimport { memo, useState } from \"react\"\nimport { LuBookmark, LuNotebookPen } from \"react-icons/lu\"\nimport { AnnotationsList } from \"./AnnotationsList\"\nimport { BookmarksList } from \"./bookmarks/BookmarksList\"\n\nexport const AnnotationsDialogContent = memo(\n ({\n onNavigate,\n defaultTab,\n }: {\n onNavigate: () => void\n defaultTab: \"bookmarks\" | \"annotations\" | undefined\n }) => {\n const [tab, setTab] = useState(defaultTab ?? \"bookmarks\")\n\n return (\n <Tabs.Root\n value={tab}\n onValueChange={(e) => setTab(e.value as \"bookmarks\" | \"annotations\")}\n >\n <Tabs.List>\n <Tabs.Trigger value=\"bookmarks\">\n <LuBookmark />\n Bookmarks\n </Tabs.Trigger>\n <Tabs.Trigger value=\"annotations\">\n <LuNotebookPen />\n Annotations\n </Tabs.Trigger>\n <Tabs.Indicator />\n </Tabs.List>\n <Tabs.Content value=\"bookmarks\">\n <BookmarksList onNavigate={onNavigate} />\n </Tabs.Content>\n <Tabs.Content value=\"annotations\">\n <AnnotationsList onNavigate={onNavigate} />\n </Tabs.Content>\n </Tabs.Root>\n )\n },\n)\n","import { Button } from \"@chakra-ui/react\"\nimport { memo } from \"react\"\nimport {\n DialogActionTrigger,\n DialogBody,\n DialogCloseTrigger,\n DialogContent,\n DialogFooter,\n DialogHeader,\n DialogRoot,\n DialogTitle,\n} from \"../components/ui/dialog\"\nimport { AnnotationsDialogContent } from \"./AnnotationsDialogContent\"\n\nexport const AnnotationsDialog = memo(\n ({\n openWith,\n setOpen,\n onNavigate,\n }: {\n openWith: \"bookmarks\" | \"annotations\" | undefined\n setOpen: (open: boolean) => void\n onNavigate: () => void\n }) => {\n return (\n <DialogRoot\n lazyMount\n placement=\"center\"\n open={!!openWith}\n onOpenChange={(e) => setOpen(e.open)}\n size={{ mdDown: \"full\", md: \"lg\" }}\n scrollBehavior=\"inside\"\n >\n <DialogContent height=\"100%\">\n <DialogHeader>\n <DialogTitle>Annotations</DialogTitle>\n </DialogHeader>\n <DialogBody flex={1}>\n <AnnotationsDialogContent\n onNavigate={onNavigate}\n defaultTab={openWith}\n />\n </DialogBody>\n <DialogFooter>\n <DialogActionTrigger asChild>\n <Button variant=\"outline\">Cancel</Button>\n </DialogActionTrigger>\n </DialogFooter>\n <DialogCloseTrigger />\n </DialogContent>\n </DialogRoot>\n )\n },\n)\n","import { memo } from \"react\"\nimport { createPortal } from \"react-dom\"\nimport { useObserve } from \"reactjrx\"\nimport { useReader } from \"../context/useReader\"\n\nexport const Spine = memo(({ children }: { children: React.ReactNode }) => {\n const reader = useReader()\n const { data: spineElement } = useObserve(\n () => reader?.spine.element$,\n [reader],\n )\n\n if (!spineElement) return null\n\n return <>{createPortal(children, spineElement)}</>\n})\n","import { useObserve } from \"reactjrx\"\nimport { EMPTY, map, of } from \"rxjs\"\nimport { useReader } from \"../context/useReader\"\n\nexport const useSpineItem = ({\n absolutePageIndex,\n itemIndex,\n}: {\n absolutePageIndex?: number\n itemIndex?: number\n}) => {\n const reader = useReader()\n\n return useObserve(() => {\n if (!reader) return EMPTY\n\n if (itemIndex !== undefined)\n return of(reader.spine.spineItemsManager.get(itemIndex))\n\n if (absolutePageIndex !== undefined) {\n return reader.spine.pages\n .observeFromAbsolutePageIndex(absolutePageIndex)\n .pipe(\n map((page) => reader.spine.spineItemsManager.get(page?.itemIndex)),\n )\n }\n\n return EMPTY\n }, [itemIndex, absolutePageIndex, reader])\n}\n","import { useObserve } from \"reactjrx\"\nimport { NEVER } from \"rxjs\"\nimport { useSpineItem } from \"./useSpineItem\"\n\nexport const useSpineItemReady = ({\n absolutePageIndex,\n itemIndex,\n}: {\n absolutePageIndex?: number\n itemIndex?: number\n}) => {\n const { data: spineItem } = useSpineItem({ absolutePageIndex, itemIndex })\n const { data: isReady } = useObserve(\n () => (!spineItem ? NEVER : spineItem.isReady$),\n [spineItem],\n )\n\n return { spineItem, isReady }\n}\n","import { Box, Presence } from \"@chakra-ui/react\"\nimport { memo } from \"react\"\nimport { useSpineItemReady } from \"../../common/useSpineItemReady\"\nimport { BOOKMARK_AREA_DATA_ATTRIBUTE } from \"../../constants\"\nimport { useAnnotations } from \"../useAnnotations\"\n\nexport const BookmarkPageMarker = memo(\n ({\n absolutePageIndex,\n left,\n top,\n width,\n }: {\n absolutePageIndex: number\n left: number\n top: number\n width: number\n }) => {\n const { isReady: isItemReady } = useSpineItemReady({\n absolutePageIndex,\n })\n const { data: bookmarks } = useAnnotations()\n const bookmarkForPage = bookmarks?.find(\n (bookmark) =>\n bookmark?.meta?.absolutePageIndex === absolutePageIndex &&\n !bookmark.meta.isCfiRange,\n )\n\n /**\n * Stale bookmarks means we cannot assert at the moment whether the page is marked or not.\n * In this case we just hide the bookmark button. You may want to have different UX to handle\n * this case.\n *\n * This also avoid having a flash where you show an non bookmarked icon and right away change it with\n * a valid marked page icon.\n */\n if (!isItemReady) return null\n\n const markerSize = (width * 0.1) / 2\n\n return (\n <Presence\n present={!!bookmarkForPage}\n lazyMount\n animationName={{ _open: \"fade-in\", _closed: \"fade-out\" }}\n animationDuration=\"moderate\"\n >\n <Box\n data-bookmark-area={BOOKMARK_AREA_DATA_ATTRIBUTE}\n position=\"absolute\"\n left={left + width}\n transform=\"translateX(-100%)\"\n pointerEvents=\"none\"\n top={top}\n width={markerSize}\n height={markerSize}\n _before={{\n content: '\"\"',\n position: \"absolute\",\n top: 0,\n left: 0,\n width: 0,\n height: 0,\n borderTop: `${markerSize}px solid #03030373`,\n borderLeft: `${markerSize}px solid transparent`,\n }}\n />\n </Presence>\n )\n },\n)\n","import { memo } from \"react\"\nimport { useObserve } from \"reactjrx\"\nimport { Spine } from \"../../common/Spine\"\nimport { useReader } from \"../../context/useReader\"\nimport { BookmarkPageMarker } from \"./BookmarkPageMarker\"\n\nexport const BookmarkPageMarkers = memo(() => {\n const reader = useReader()\n const { data: pages } = useObserve(() => reader?.layoutInfo$, [reader])\n\n return (\n <Spine>\n {pages?.pages.map(\n ({ absoluteLayout: { left, top, width } }, pageIndex) => (\n <BookmarkPageMarker\n key={pageIndex}\n absolutePageIndex={pageIndex}\n left={left}\n top={top}\n width={width}\n />\n ),\n )}\n </Spine>\n )\n})\n","import { isPositionInArea } from \"@prose-reader/enhancer-gestures\"\nimport { useEffect } from \"react\"\nimport { map, withLatestFrom } from \"rxjs\"\nimport { useReaderContext } from \"../../context/useReaderContext\"\nimport { useAnnotations } from \"../useAnnotations\"\nimport { useReaderWithAnnotations } from \"../useReaderWithAnnotations\"\n\nconst CONTINUE_TAP_GESTURE = true\n\nexport const useBookmarkOnCornerTap = () => {\n const reader = useReaderWithAnnotations()\n const { data: bookmarks } = useAnnotations()\n const readerContext = useReaderContext()\n\n useEffect(() => {\n if (!reader) return\n\n const unSub = reader.gestures.hooks.register(\n \"beforeTapGesture\",\n ({ event$ }) =>\n event$.pipe(\n withLatestFrom(reader?.annotations.candidates$),\n map(([context, candidates]) => {\n if (!context.page) return CONTINUE_TAP_GESTURE\n\n const {\n spineItem,\n spineItemPageIndex,\n spineItemPagePosition,\n pageSize,\n } = context.page\n\n const hasTapOnTopRightCorner = isPositionInArea(\n spineItemPagePosition,\n {\n type: \"corner\",\n corner: \"top-right\",\n size: 10,\n unit: \"%\",\n },\n pageSize,\n )\n\n if (hasTapOnTopRightCorner) {\n const pageEntry = reader.spine.pages.fromSpineItemPageIndex(\n spineItem,\n spineItemPageIndex,\n )\n\n if (!pageEntry) return CONTINUE_TAP_GESTURE\n\n const bookmarkForPage = bookmarks?.find(\n (bookmark) =>\n bookmark?.meta?.absolutePageIndex ===\n pageEntry.absolutePageIndex &&\n bookmark.meta.range === undefined,\n )\n\n if (bookmarkForPage) {\n readerContext.value.onAnnotationDelete?.(\n bookmarkForPage.resource.id,\n )\n\n return !CONTINUE_TAP_GESTURE\n }\n\n const canBookmarkPage = candidates?.[pageEntry.absolutePageIndex]\n\n if (canBookmarkPage) {\n const annotation = reader?.annotations.createAnnotation({\n absolutePageIndex: pageEntry.absolutePageIndex,\n })\n\n if (annotation) {\n readerContext.value.onAnnotationCreate?.(annotation)\n }\n\n return !CONTINUE_TAP_GESTURE\n }\n }\n\n return CONTINUE_TAP_GESTURE\n }),\n ),\n )\n\n return unSub\n }, [reader, bookmarks, readerContext])\n}\n","import { useSubscribe } from \"reactjrx\"\nimport { map, withLatestFrom } from \"rxjs\"\nimport { useReaderWithAnnotations } from \"./useReaderWithAnnotations\"\n\nexport const usePreventInteractionOnSelection = () => {\n const reader = useReaderWithAnnotations()\n\n useSubscribe(\n () =>\n /**\n * Hook used to prevent some gestures from being handled.\n */\n reader?.gestures.hooks.register(\"beforeTapGesture\", ({ event$ }) =>\n event$.pipe(\n withLatestFrom(reader.selection.lastSelectionOnPointerdown$),\n map(([{ event }, lastSelectionOnPointerdown]) => {\n const target = event.event.target\n\n /**\n * In this case if we have a gesture on an annotation, we want to prevent\n * it.\n */\n const wasOrIsOnSelection =\n (target && reader.annotations.isTargetWithinHighlight(target)) ||\n lastSelectionOnPointerdown\n\n return !wasOrIsOnSelection\n }),\n ),\n ),\n [reader],\n )\n}\n","import { useSubscribe } from \"reactjrx\"\nimport { combineLatest, distinctUntilChanged, map } from \"rxjs\"\nimport { useReaderContext } from \"../context/useReaderContext\"\nimport { useReaderWithAnnotations } from \"./useReaderWithAnnotations\"\n\nexport const useSyncAnnotationsWithReader = () => {\n const reader = useReaderWithAnnotations()\n const context = useReaderContext()\n\n useSubscribe(() => {\n if (reader) {\n const selectedHighlight$ = context.pipe(\n map((context) => context.selectedHighlight?.highlight?.id),\n distinctUntilChanged(),\n )\n\n const annotations$ = context.pipe(\n map((context) => context.annotations ?? []),\n distinctUntilChanged(),\n )\n\n const annotationsWithSelected$ = combineLatest([\n annotations$,\n selectedHighlight$,\n ]).pipe(\n map(([annotations, selectedHighlight]) =>\n annotations.map((annotation) => ({\n ...annotation,\n selected: annotation.id === selectedHighlight,\n })),\n ),\n )\n\n reader.annotations.update({ annotations$: annotationsWithSelected$ })\n }\n }, [reader, context])\n}\n","\"use client\"\n\nimport {\n Toaster as ChakraToaster,\n Portal,\n Spinner,\n Stack,\n Toast,\n createToaster,\n} from \"@chakra-ui/react\"\n\ntype Toaster = ReturnType<typeof createToaster>\n\nexport const toaster: Toaster = createToaster({\n placement: \"bottom-end\",\n pauseOnPageIdle: true,\n})\n\nexport const Toaster = () => {\n return (\n <Portal>\n <ChakraToaster toaster={toaster} insetInline={{ mdDown: \"4\" }}>\n {(toast) => (\n <Toast.Root width={{ md: \"sm\" }}>\n {toast.type === \"loading\" ? (\n <Spinner size=\"sm\" color=\"blue.solid\" />\n ) : (\n <Toast.Indicator />\n )}\n <Stack gap=\"1\" flex=\"1\" maxWidth=\"100%\">\n {toast.title && <Toast.Title>{toast.title}</Toast.Title>}\n {toast.description && (\n <Toast.Description>{toast.description}</Toast.Description>\n )}\n </Stack>\n {toast.action && (\n <Toast.ActionTrigger>{toast.action.label}</Toast.ActionTrigger>\n )}\n {toast.meta?.closable && <Toast.CloseTrigger />}\n </Toast.Root>\n )}\n </ChakraToaster>\n </Portal>\n )\n}\n","import { isShallowEqual } from \"@prose-reader/shared\"\nimport { type ComponentProps, memo, useCallback, useEffect } from \"react\"\nimport { signal, useConstant, useMemoCompare, useSignalValue } from \"reactjrx\"\nimport {\n getDefaultValue,\n type PrivateContextType,\n type PublicContextType,\n ReaderContext,\n} from \"./context\"\n\nconst SignalProvider = ({\n children,\n ...props\n}: {\n children: React.ReactNode\n} & PublicContextType) => {\n const valueSignal = useConstant(() => signal({ default: getDefaultValue() }))\n /**\n * font menu open\n */\n const uncontrolledFontSizeMenuOpen = useConstant(() =>\n signal({ default: valueSignal.value.fontSizeMenuOpen }),\n )\n const uncontrolledFontSizeMenuOpenValue = useSignalValue(\n uncontrolledFontSizeMenuOpen,\n )\n const uncontrolledOnFontSizeMenuOpenChange = useCallback(\n (open: boolean) => {\n uncontrolledFontSizeMenuOpen.update(open)\n },\n [uncontrolledFontSizeMenuOpen],\n )\n const _onQuickMenuOpenChange: PrivateContextType[\"_onQuickMenuOpenChange\"] =\n useCallback(\n (valueOrUpdater: boolean | ((prev: boolean) => boolean)) => {\n valueSignal.update((old) => ({\n ...old,\n _quickMenuOpen:\n typeof valueOrUpdater === \"function\"\n ? valueOrUpdater(old._quickMenuOpen)\n : valueOrUpdater,\n }))\n },\n [valueSignal],\n )\n const uncontrolledRefitMenuOpen = useConstant(() =>\n signal({ default: valueSignal.value.refitMenuOpen }),\n )\n const uncontrolledOnRefitMenuOpenChange = useCallback(\n (open: boolean) => {\n uncontrolledRefitMenuOpen.update(open)\n },\n [uncontrolledRefitMenuOpen],\n )\n const uncontrolledRefitMenuOpenValue = useSignalValue(\n uncontrolledRefitMenuOpen,\n )\n\n const memoizedProps = useMemoCompare(props, isShallowEqual)\n\n useEffect(() => {\n valueSignal.update((old) => ({\n ...old,\n ...memoizedProps,\n onFontSizeMenuOpenChange: uncontrolledOnFontSizeMenuOpenChange,\n fontSizeMenuOpen: uncontrolledFontSizeMenuOpenValue,\n onRefitMenuOpenChange: uncontrolledOnRefitMenuOpenChange,\n refitMenuOpen: uncontrolledRefitMenuOpenValue,\n _onQuickMenuOpenChange,\n }))\n }, [\n memoizedProps,\n _onQuickMenuOpenChange,\n valueSignal,\n uncontrolledFontSizeMenuOpenValue,\n uncontrolledOnFontSizeMenuOpenChange,\n uncontrolledRefitMenuOpenValue,\n uncontrolledOnRefitMenuOpenChange,\n ])\n\n return (\n <ReaderContext.Provider value={valueSignal}>\n {children}\n </ReaderContext.Provider>\n )\n}\n\nexport const ReactReaderProvider = memo(\n ({ children, ...props }: ComponentProps<typeof SignalProvider>) => {\n return <SignalProvider {...props}>{children}</SignalProvider>\n },\n)\n","import { RadioGroup as ChakraRadioGroup } from \"@chakra-ui/react\"\nimport * as React from \"react\"\n\nexport interface RadioProps extends ChakraRadioGroup.ItemProps {\n rootRef?: React.Ref<HTMLDivElement>\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>\n}\n\nexport const Radio = React.forwardRef<HTMLInputElement, RadioProps>(\n function Radio(props, ref) {\n const { children, inputProps, rootRef, ...rest } = props\n return (\n <ChakraRadioGroup.Item ref={rootRef} {...rest}>\n <ChakraRadioGroup.ItemHiddenInput ref={ref} {...inputProps} />\n <ChakraRadioGroup.ItemIndicator />\n {children && (\n <ChakraRadioGroup.ItemText>{children}</ChakraRadioGroup.ItemText>\n )}\n </ChakraRadioGroup.Item>\n )\n },\n)\n\nexport const RadioGroup = ChakraRadioGroup.Root\n","import { Slider as ChakraSlider, For, HStack } from \"@chakra-ui/react\"\nimport * as React from \"react\"\n\nexport interface SliderProps extends ChakraSlider.RootProps {\n marks?: Array<number | { value: number; label: React.ReactNode }>\n label?: React.ReactNode\n showValue?: boolean\n}\n\nexport const Slider = React.memo(function Slider({\n ref,\n ...props\n}: SliderProps & { ref?: React.RefObject<HTMLDivElement> }) {\n const { marks: marksProp, label, showValue, ...rest } = props\n const value = props.defaultValue ?? props.value\n\n const marks = marksProp?.map((mark) => {\n if (typeof mark === \"number\") return { value: mark, label: undefined }\n return mark\n })\n\n const hasMarkLabel = !!marks?.some((mark) => mark.label)\n\n return (\n <ChakraSlider.Root ref={ref} thumbAlignment=\"center\" {...rest}>\n {label && !showValue && <ChakraSlider.Label>{label}</ChakraSlider.Label>}\n {label && showValue && (\n <HStack justify=\"space-between\">\n <ChakraSlider.Label>{label}</ChakraSlider.Label>\n <ChakraSlider.ValueText />\n </HStack>\n )}\n <ChakraSlider.Control data-has-mark-label={hasMarkLabel || undefined}>\n <ChakraSlider.Track>\n <ChakraSlider.Range />\n </ChakraSlider.Track>\n <SliderThumbs value={value} />\n <SliderMarks marks={marks} />\n </ChakraSlider.Control>\n </ChakraSlider.Root>\n )\n})\n\nfunction SliderThumbs(props: { value?: number[] }) {\n const { value } = props\n return (\n <For each={value}>\n {(_, index) => (\n <ChakraSlider.Thumb key={index} index={index}>\n <ChakraSlider.HiddenInput />\n </ChakraSlider.Thumb>\n )}\n </For>\n )\n}\n\ninterface SliderMarksProps {\n marks?: Array<number | { value: number; label: React.ReactNode }>\n}\n\nconst SliderMarks = React.forwardRef<HTMLDivElement, SliderMarksProps>(\n function SliderMarks(props, ref) {\n const { marks } = props\n if (!marks?.length) return null\n\n return (\n <ChakraSlider.MarkerGroup ref={ref}>\n {marks.map((mark, index) => {\n const value = typeof mark === \"number\" ? mark : mark.value\n const label = typeof mark === \"number\" ? undefined : mark.label\n return (\n <ChakraSlider.Marker key={index} value={value}>\n <ChakraSlider.MarkerIndicator />\n {label}\n </ChakraSlider.Marker>\n )\n })}\n </ChakraSlider.MarkerGroup>\n )\n },\n)\n","export const PROSE_REACT_READER_SETTINGS_SCOPE_CONFIGURATION = [\n {\n value: \"global\",\n references: [\"global\"],\n },\n {\n value: \"book\",\n references: [\"book\"],\n },\n {\n value: \"screen\",\n references: [\"mobile\", \"tablet\", \"desktop\"],\n },\n] as const\nexport type PROSE_REACT_READER_SETTINGS_SCOPE =\n (typeof PROSE_REACT_READER_SETTINGS_SCOPE_CONFIGURATION)[number][\"value\"]\nexport type PROSE_REACT_READER_SETTINGS_SCOPE_REFERENCE =\n (typeof PROSE_REACT_READER_SETTINGS_SCOPE_CONFIGURATION)[number][\"references\"][number]\n","import {\n Button,\n Fieldset,\n HStack,\n type SliderValueChangeDetails,\n Stack,\n Tabs,\n type TabsValueChangeDetails,\n} from \"@chakra-ui/react\"\nimport {\n type ComponentProps,\n memo,\n useCallback,\n useEffect,\n useState,\n} from \"react\"\nimport { LuCheck } from \"react-icons/lu\"\nimport { useLiveRef } from \"reactjrx\"\nimport {\n DialogActionTrigger,\n DialogBody,\n DialogCloseTrigger,\n DialogContent,\n DialogFooter,\n DialogHeader,\n DialogRoot,\n DialogTitle,\n} from \"../components/ui/dialog\"\nimport { Radio, RadioGroup } from \"../components/ui/radio\"\nimport { Slider } from \"../components/ui/slider\"\nimport {\n useReaderContext,\n useReaderContextValue,\n} from \"../context/useReaderContext\"\nimport {\n type PROSE_REACT_READER_SETTINGS_SCOPE,\n PROSE_REACT_READER_SETTINGS_SCOPE_CONFIGURATION,\n type PROSE_REACT_READER_SETTINGS_SCOPE_REFERENCE,\n} from \"../settings/types\"\n\nconst SETTINGS_SCOPES_VALUES =\n PROSE_REACT_READER_SETTINGS_SCOPE_CONFIGURATION.map((item) => item.value)\nconst SETTINGS_SCOPES_REFERENCES =\n PROSE_REACT_READER_SETTINGS_SCOPE_CONFIGURATION.flatMap(\n (item) => item.references,\n )\n\nconst getScopeForReference = (\n reference: PROSE_REACT_READER_SETTINGS_SCOPE_REFERENCE | undefined,\n) => {\n if (!reference) {\n return undefined\n }\n\n return PROSE_REACT_READER_SETTINGS_SCOPE_CONFIGURATION.find((item) =>\n (item.references as readonly string[]).includes(reference),\n )?.value\n}\n\nexport const FontSizeControlsDialog = memo(() => {\n const context = useReaderContext()\n const {\n fontSizeMenuOpen,\n onFontSizeMenuOpenChange,\n uncontrolledFontSize,\n fontSize = uncontrolledFontSize,\n fontSizeMin,\n fontSizeMax,\n fontSizeScope,\n fontSizeValues,\n onFontSizeChange,\n onFontSizeScopeChange,\n } = useReaderContextValue([\n \"fontSizeMenuOpen\",\n \"onFontSizeMenuOpenChange\",\n \"fontSize\",\n \"fontSizeMin\",\n \"fontSizeMax\",\n \"fontSizeScope\",\n \"onFontSizeChange\",\n \"onFontSizeScopeChange\",\n \"uncontrolledFontSize\",\n \"fontSizeValues\",\n ])\n const onFontSizeChangeRef = useLiveRef(onFontSizeChange)\n const [tabValue, setTabValue] =\n useState<PROSE_REACT_READER_SETTINGS_SCOPE_REFERENCE>(\n fontSizeScope ?? \"global\",\n )\n const onFontUpdate = useCallback(\n (scope: PROSE_REACT_READER_SETTINGS_SCOPE_REFERENCE, value: number) => {\n if (onFontSizeChangeRef.current) {\n onFontSizeChangeRef.current(scope, value)\n } else {\n context.update((old) => ({\n ...old,\n uncontrolledFontSize: value,\n }))\n }\n },\n [onFontSizeChangeRef, context],\n )\n const getValueForScope = useCallback(\n (scope: PROSE_REACT_READER_SETTINGS_SCOPE_REFERENCE) => {\n return fontSizeValues?.[scope] ?? fontSize\n },\n [fontSize, fontSizeValues],\n )\n\n const onScopeValueChange = useCallback(\n (\n details: Parameters<\n NonNullable<ComponentProps<typeof RadioGroup>[\"onValueChange\"]>\n >[0],\n ) => {\n const value = details.value as PROSE_REACT_READER_SETTINGS_SCOPE\n\n onFontSizeScopeChange?.(value)\n },\n [onFontSizeScopeChange],\n )\n\n const onTabValueChange = useCallback((details: TabsValueChangeDetails) => {\n setTabValue(details.value as PROSE_REACT_READER_SETTINGS_SCOPE_REFERENCE)\n }, [])\n\n const onSliderValueChange = useCallback(\n (details: SliderValueChangeDetails) => {\n const value = details.value[0] ?? 0\n\n onFontUpdate(tabValue, value / 100)\n },\n [onFontUpdate, tabValue],\n )\n\n useEffect(\n function syncScopeChangeWithTabs() {\n setTabValue(fontSizeScope ?? \"global\")\n },\n [fontSizeScope],\n )\n\n return (\n <DialogRoot\n lazyMount\n open={fontSizeMenuOpen}\n onOpenChange={(e) => {\n onFontSizeMenuOpenChange(e.open)\n }}\n placement=\"center\"\n >\n <DialogContent maxH=\"40vh\" overflow=\"auto\">\n <DialogHeader>\n <DialogTitle>Font size</DialogTitle>\n </DialogHeader>\n <DialogBody>\n <Stack gap={4} flex={1}>\n <Fieldset.Root>\n <Fieldset.Legend>Scope</Fieldset.Legend>\n <Fieldset.HelperText>\n The scope to which apply the font size for this book.\n </Fieldset.HelperText>\n <Fieldset.Content>\n <RadioGroup\n onValueChange={onScopeValueChange}\n value={getScopeForReference(fontSizeScope) ?? \"global\"}\n disabled={!onFontSizeScopeChange}\n >\n <HStack gap={2}>\n {SETTINGS_SCOPES_VALUES.map((scope) => (\n <Radio value={scope} key={scope}>\n {scope}\n </Radio>\n ))}\n </HStack>\n </RadioGroup>\n </Fieldset.Content>\n </Fieldset.Root>\n <Tabs.Root\n value={tabValue}\n onValueChange={onTabValueChange}\n fitted={false}\n size=\"sm\"\n >\n <Tabs.List>\n {SETTINGS_SCOPES_REFERENCES.map((scope) => (\n <Tabs.Trigger\n value={scope}\n key={scope}\n textTransform=\"capitalize\"\n disabled={scope !== \"global\" && !fontSizeScope}\n >\n {fontSizeScope === scope && <LuCheck />}\n {scope}\n </Tabs.Trigger>\n ))}\n </Tabs.List>\n {SETTINGS_SCOPES_REFERENCES.map((scope) => (\n <Tabs.Content value={scope} key={scope}>\n <Slider\n label={`%`}\n value={[(getValueForScope(scope) ?? 1) * 100]}\n onValueChange={onSliderValueChange}\n showValue={true}\n marks={[\n { value: 100, label: \"Publisher\" },\n {\n value: fontSizeMin * 100,\n label: `${fontSizeMin * 100}%`,\n },\n {\n value: fontSizeMax * 100,\n label: `${fontSizeMax * 100}%`,\n },\n ]}\n max={fontSizeMax * 100}\n min={fontSizeMin * 100}\n width=\"100%\"\n step={0.1 * 100}\n />\n </Tabs.Content>\n ))}\n </Tabs.Root>\n </Stack>\n </DialogBody>\n <DialogFooter>\n <DialogActionTrigger asChild>\n <Button variant=\"outline\">Close</Button>\n </DialogActionTrigger>\n </DialogFooter>\n <DialogCloseTrigger />\n </DialogContent>\n </DialogRoot>\n )\n})\n","import { useEffect } from \"react\"\nimport { useSubscribe } from \"reactjrx\"\nimport { map } from \"rxjs\"\nimport { useReader } from \"../context/useReader\"\nimport {\n useReaderContext,\n useReaderContextValue,\n} from \"../context/useReaderContext\"\n\nexport const SyncFontSettings = () => {\n const reader = useReader()\n const context = useReaderContext()\n const { fontSize, uncontrolledFontSize } = useReaderContextValue([\n \"fontSize\",\n \"uncontrolledFontSize\",\n \"onFontSizeChange\",\n ])\n const _fontSize = fontSize ?? uncontrolledFontSize\n\n useEffect(\n function syncDownFontSize() {\n if (reader && _fontSize) {\n const timeout = setTimeout(() => {\n reader.settings.update({\n fontScale: _fontSize,\n })\n }, 200)\n\n return () => clearTimeout(timeout)\n }\n },\n [reader, _fontSize],\n )\n\n useSubscribe(\n function syncUpFontSize() {\n return reader?.settings.values$\n .pipe(map((settings) => settings.fontScale))\n .subscribe((fontScale) => {\n const _fontSize =\n context.value.fontSize ?? context.value.uncontrolledFontSize\n\n if (fontScale !== _fontSize) {\n context.value.onFontSizeChange?.(\"internal\", fontScale)\n context.update((old) => ({\n ...old,\n uncontrolledFontSize: fontScale,\n }))\n }\n })\n },\n [reader, context],\n )\n\n return null\n}\n","import { useLayoutEffect, useMemo, useState } from \"react\"\n\nexport type UseMeasureRect = Pick<\n DOMRectReadOnly,\n \"x\" | \"y\" | \"top\" | \"left\" | \"right\" | \"bottom\" | \"height\" | \"width\"\n>\nexport type UseMeasureRef<E extends Element = Element> = (element: E) => void\nexport type UseMeasureResult<E extends Element = Element> = [\n UseMeasureRef<E>,\n UseMeasureRect,\n E | null,\n]\n\nconst defaultState: UseMeasureRect = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n}\n\nexport function useMeasure<E extends Element = Element>(): UseMeasureResult<E> {\n const [element, setElement] = useState<E | null>(null)\n const [rect, setRect] = useState<UseMeasureRect>(defaultState)\n\n const observer = useMemo(\n () =>\n new ResizeObserver((entries) => {\n if (entries[0]) {\n const { x, y, width, height, top, left, bottom, right } =\n entries[0].contentRect\n setRect({ x, y, width, height, top, left, bottom, right })\n }\n }),\n [],\n )\n\n useLayoutEffect(() => {\n if (!element) return\n\n observer.observe(element)\n\n return () => {\n observer.disconnect()\n }\n }, [element, observer])\n\n return [setElement, rect, element]\n}\n","import {\n isShallowEqual,\n observeIntersection,\n type SpineItem,\n} from \"@prose-reader/core\"\nimport { useSubscribe } from \"reactjrx\"\nimport {\n distinctUntilChanged,\n filter,\n first,\n map,\n NEVER,\n startWith,\n switchMap,\n tap,\n throttleTime,\n} from \"rxjs\"\nimport type { UseMeasureRect } from \"../common/useMeasure\"\nimport { hasGalleryEnhancer, useReader } from \"../context/useReader\"\n\nexport const useAttachSnapshot = (\n element: Element | null,\n item: SpineItem,\n measures: UseMeasureRect,\n) => {\n const reader = useReader()\n const readerWithGalleryEnhancer = hasGalleryEnhancer(reader)\n ? reader\n : undefined\n\n useSubscribe(() => {\n if (!readerWithGalleryEnhancer || !element) return NEVER\n\n const itemLayoutChanged$ = item.didLayout$.pipe(\n startWith(item.layoutInfo),\n distinctUntilChanged(isShallowEqual),\n )\n\n const isItemIntersecting$ = observeIntersection(\n element as HTMLElement,\n ).pipe(map((entries) => entries.some((e) => e.isIntersecting)))\n\n return itemLayoutChanged$.pipe(\n throttleTime(100, undefined, { trailing: true }),\n switchMap(() => {\n return isItemIntersecting$\n .pipe(\n tap((isVisible) => {\n // if the layout change and the item is not visible anymore, cleanup the element\n if (!isVisible) {\n element.innerHTML = \"\"\n }\n }),\n filter((isVisible) => isVisible),\n first(),\n )\n .pipe(\n switchMap(() => {\n element.innerHTML = \"\"\n\n return readerWithGalleryEnhancer?.gallery.snapshot(\n item,\n element,\n measures,\n )\n }),\n )\n }),\n )\n }, [readerWithGalleryEnhancer, item, measures, element])\n}\n","import { Box, Button, Text } from \"@chakra-ui/react\"\nimport type { SpineItem } from \"@prose-reader/core\"\nimport { memo } from \"react\"\nimport { useObserve } from \"reactjrx\"\nimport { useMeasure } from \"../common/useMeasure\"\nimport {\n DialogActionTrigger,\n DialogBody,\n DialogCloseTrigger,\n DialogContent,\n DialogFooter,\n DialogHeader,\n DialogRoot,\n DialogTitle,\n} from \"../components/ui/dialog\"\nimport { useReader } from \"../context/useReader\"\nimport { useAttachSnapshot } from \"./useAttachSnapshot\"\n\nconst GalleryItem = memo(\n ({ item, onNavigated }: { item: SpineItem; onNavigated: () => void }) => {\n const [setElement, measures, element] = useMeasure()\n const reader = useReader()\n\n useAttachSnapshot(element, item, measures)\n\n const { data: locatedResource } = useObserve(\n () => reader?.locateResource(item, { mode: \"shallow\" }),\n [reader, item],\n )\n\n return (\n <Box\n width=\"100%\"\n aspectRatio=\"2/3\"\n border=\"1px solid\"\n borderColor=\"border\"\n borderRadius=\"md\"\n data-grid-item\n cursor=\"pointer\"\n position=\"relative\"\n overflow=\"hidden\"\n onClick={() => {\n onNavigated()\n reader?.navigation.goToSpineItem({ indexOrId: item })\n }}\n >\n <Box\n height=\"100%\"\n width=\"100%\"\n overflow=\"hidden\"\n pointerEvents=\"none\"\n ref={setElement}\n />\n <Text\n position=\"absolute\"\n bottom={0}\n left=\"0\"\n right=\"0\"\n textAlign=\"center\"\n bgColor=\"white\"\n p={4}\n fontSize=\"xs\"\n >\n Page {(locatedResource?.meta?.absolutePageIndex ?? 0) + 1}\n </Text>\n </Box>\n )\n },\n)\n\nexport const GalleryDialog = memo(\n ({ open, setOpen }: { open: boolean; setOpen: (open: boolean) => void }) => {\n const reader = useReader()\n const { data: items } = useObserve(\n () => reader?.spineItemsManager.items$,\n [reader],\n )\n\n return (\n <DialogRoot\n lazyMount\n placement=\"center\"\n open={open}\n onOpenChange={(e) => setOpen(e.open)}\n size={{ mdDown: \"full\", md: \"lg\" }}\n scrollBehavior=\"inside\"\n >\n <DialogContent height=\"100%\">\n <DialogHeader>\n <DialogTitle>Gallery</DialogTitle>\n </DialogHeader>\n <DialogBody>\n <Box\n gridTemplateColumns={[\n \"repeat(2, minmax(0, 1fr))\",\n \"repeat(3, minmax(0, 1fr))\",\n ]}\n display=\"grid\"\n gap={[2, 4]}\n pt={2}\n data-grid\n >\n {items?.map((item) => (\n <GalleryItem\n key={item.item.id}\n item={item}\n onNavigated={() => {\n setOpen(false)\n }}\n />\n ))}\n </Box>\n </DialogBody>\n <DialogFooter>\n <DialogActionTrigger asChild>\n <Button variant=\"outline\">Cancel</Button>\n </DialogActionTrigger>\n </DialogFooter>\n <DialogCloseTrigger />\n </DialogContent>\n </DialogRoot>\n )\n },\n)\n","import { Button, Heading, HStack, Kbd, Stack, Text } from \"@chakra-ui/react\"\nimport { memo } from \"react\"\nimport { LuArrowBigLeft, LuArrowBigRight } from \"react-icons/lu\"\nimport { name, version } from \"../../package.json\"\nimport {\n DialogActionTrigger,\n DialogBody,\n DialogCloseTrigger,\n DialogContent,\n DialogFooter,\n DialogHeader,\n DialogRoot,\n DialogTitle,\n} from \"../components/ui/dialog\"\n\nexport const HelpDialog = memo(\n ({ open, setOpen }: { open: boolean; setOpen: (open: boolean) => void }) => {\n return (\n <DialogRoot\n lazyMount\n placement=\"center\"\n open={open}\n onOpenChange={(e) => setOpen(e.open)}\n size={{ mdDown: \"full\", md: \"lg\" }}\n scrollBehavior=\"inside\"\n >\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Help</DialogTitle>\n </DialogHeader>\n <DialogBody\n overflowY=\"auto\"\n flex={1}\n display=\"flex\"\n flexDirection=\"column\"\n gap={4}\n >\n <Stack>\n <Heading mb={2} as=\"h3\" size=\"lg\">\n Shortcuts\n </Heading>\n <HStack mb={1}>\n <Kbd>\n <LuArrowBigRight />\n </Kbd>{\" \"}\n <Text>Navigate to right page</Text>\n </HStack>\n <HStack mb={1}>\n <Kbd>\n <LuArrowBigLeft />\n </Kbd>{\" \"}\n <Text>Navigate to left page</Text>\n </HStack>\n </Stack>\n <Stack>\n <Heading mb={2} as=\"h3\" size=\"lg\">\n Bookmarks\n </Heading>\n <HStack mb={1}>\n <Text>Tap on the top right corner of a page bookmark it</Text>\n </HStack>\n </Stack>\n <Stack>\n <Heading mb={2} as=\"h3\" size=\"lg\">\n About\n </Heading>\n <Text>\n {name} version: {version}\n </Text>\n </Stack>\n </DialogBody>\n <DialogFooter>\n <DialogActionTrigger asChild>\n <Button variant=\"outline\">Cancel</Button>\n </DialogActionTrigger>\n </DialogFooter>\n <DialogCloseTrigger />\n </DialogContent>\n </DialogRoot>\n )\n },\n)\n","import type { Reader } from \"@prose-reader/core\"\nimport { useObserve } from \"reactjrx\"\nimport { combineLatest, map, NEVER } from \"rxjs\"\nimport { useReader } from \"../context/useReader\"\n\nexport const usePagination = ():\n | (Reader[\"pagination\"][\"state\"] & { hasChapters: boolean })\n | undefined => {\n const reader = useReader()\n\n return useObserve(\n () =>\n !reader\n ? NEVER\n : combineLatest([reader.pagination.state$, reader.context]).pipe(\n map(([state, context]) => {\n const isOnlyImages = context.manifest?.spineItems.every((item) =>\n item.mediaType?.startsWith(\"image/\"),\n )\n\n return {\n ...state,\n hasChapters: !context.isFullyPrePaginated && !isOnlyImages,\n }\n }),\n ),\n [reader],\n ).data\n}\n","import { Box, Presence, Text } from \"@chakra-ui/react\"\nimport { useReaderContextValue } from \"../context/useReaderContext\"\nimport { usePagination } from \"../pagination/usePagination\"\n\nconst ANIMATION_NAME_IN_OUT = { _open: \"fade-in\", _closed: \"fade-out\" }\n\nexport const FloatingProgress = () => {\n const { enableFloatingProgress, quickMenuOpen } = useReaderContextValue([\n \"enableFloatingProgress\",\n \"quickMenuOpen\",\n ])\n const pagination = usePagination()\n const roundedProgress = Math.floor(\n (pagination?.percentageEstimateOfBook ?? 0) * 100,\n )\n const displayableProgress = roundedProgress > 0 ? roundedProgress : 1\n\n if (\n pagination?.percentageEstimateOfBook === undefined ||\n !enableFloatingProgress\n )\n return null\n\n return (\n <Presence\n present={!quickMenuOpen}\n animationName={ANIMATION_NAME_IN_OUT}\n animationDuration=\"moderate\"\n >\n <Box\n position=\"absolute\"\n right={0}\n bottom={0}\n p={2}\n WebkitTextStroke=\"2px black\"\n paintOrder=\"stroke fill\"\n pointerEvents=\"none\"\n letterSpacing={1}\n color=\"white\"\n >\n <Text fontSize=\"sm\">{displayableProgress} %</Text>\n </Box>\n </Presence>\n )\n}\n","import { Text, type TextProps } from \"@chakra-ui/react\"\nimport { useEffect, useState } from \"react\"\n\nexport const useTime = () => {\n const [time, setTime] = useState(new Date())\n\n useEffect(() => {\n const interval = setInterval(() => {\n setTime(new Date())\n }, 1000 * 60)\n\n return () => clearInterval(interval)\n }, [])\n\n return time\n}\n\nexport const TimeIndicator = (props: TextProps) => {\n const time = useTime()\n\n return (\n <Text fontSize=\"sm\" {...props}>\n {time.toLocaleTimeString(navigator.language, {\n hour: \"2-digit\",\n minute: \"2-digit\",\n })}\n </Text>\n )\n}\n","import { Box } from \"@chakra-ui/react\"\nimport { memo } from \"react\"\nimport { TimeIndicator } from \"../quickmenu/TimeIndicator\"\n\nexport const FloatingTime = memo(() => {\n return (\n <Box\n position=\"absolute\"\n left={0}\n bottom={0}\n p={2}\n color=\"white\"\n WebkitTextStroke=\"2px black\"\n paintOrder=\"stroke fill\"\n pointerEvents=\"none\"\n letterSpacing={1}\n >\n <TimeIndicator />\n </Box>\n )\n})\n","import { isHtmlTagElement } from \"@prose-reader/core\"\nimport { useSubscribe } from \"reactjrx\"\nimport { useReader } from \"../context/useReader\"\n\nexport const useInterceptExternalLinks = () => {\n const reader = useReader()\n\n useSubscribe(\n () =>\n reader?.links$.subscribe((event) => {\n if (event.type === \"click\" && isHtmlTagElement(event.target, \"a\")) {\n if (!event.target.href) return\n\n const url = new URL(event.target.href)\n\n if (window.location.host !== url.host) {\n const response = confirm(\n `You are going to be redirected to external link`,\n )\n\n if (response) {\n window.open(event.target.href, \"__blank\")\n }\n }\n }\n }),\n [reader],\n )\n}\n","import { isDefined, useSubscribe } from \"reactjrx\"\nimport {\n filter,\n finalize,\n first,\n merge,\n mergeMap,\n NEVER,\n Observable,\n skip,\n switchMap,\n timer,\n} from \"rxjs\"\nimport { toaster } from \"../components/ui/toaster\"\nimport { useReaderContextValue } from \"../context/useReaderContext\"\nimport { useFontSizeNotifications } from \"../fonts/useFontSizeNotifications\"\n\nexport const useNotifications = () => {\n const { notificationsSubject } = useReaderContextValue([\n \"notificationsSubject\",\n ])\n\n useFontSizeNotifications()\n\n useSubscribe(\n () =>\n notificationsSubject.pipe(\n filter(isDefined),\n mergeMap((notification) => {\n const duration = notification.duration ?? 3000\n\n const toast$ = new Observable<string>((subscriber) => {\n try {\n queueMicrotask(() => {\n const toastId = toaster.create({\n title: notification.title,\n description: notification.description,\n duration,\n })\n\n subscriber.next(toastId)\n subscriber.complete()\n })\n } catch (error) {\n subscriber.error(error)\n }\n })\n\n const sameNotification$ = notificationsSubject.pipe(\n skip(1),\n filter((n) => !!notification.key && n?.key === notification.key),\n )\n\n return toast$.pipe(\n switchMap((toast) =>\n merge(\n timer(duration),\n notification.abort ?? NEVER,\n sameNotification$,\n ).pipe(\n first(),\n finalize(() => {\n queueMicrotask(() => {\n toaster.dismiss(toast)\n })\n }),\n ),\n ),\n )\n }),\n ),\n [notificationsSubject],\n )\n}\n","import { Popover as ChakraPopover, IconButton, Portal } from \"@chakra-ui/react\"\nimport * as React from \"react\"\nimport { HiOutlineInformationCircle } from \"react-icons/hi\"\n\nexport interface ToggleTipProps extends ChakraPopover.RootProps {\n showArrow?: boolean\n portalled?: boolean\n portalRef?: React.RefObject<HTMLElement>\n content?: React.ReactNode\n}\n\nexport const ToggleTip = React.forwardRef<HTMLDivElement, ToggleTipProps>(\n function ToggleTip(props, ref) {\n const {\n showArrow,\n children,\n portalled = true,\n content,\n portalRef,\n ...rest\n } = props\n\n return (\n <ChakraPopover.Root\n {...rest}\n positioning={{ ...rest.positioning, gutter: 4 }}\n >\n <ChakraPopover.Trigger asChild>{children}</ChakraPopover.Trigger>\n <Portal disabled={!portalled} container={portalRef}>\n <ChakraPopover.Positioner>\n <ChakraPopover.Content\n width=\"auto\"\n px=\"2\"\n py=\"1\"\n textStyle=\"xs\"\n rounded=\"sm\"\n ref={ref}\n >\n {showArrow && (\n <ChakraPopover.Arrow>\n <ChakraPopover.ArrowTip />\n </ChakraPopover.Arrow>\n )}\n {content}\n </ChakraPopover.Content>\n </ChakraPopover.Positioner>\n </Portal>\n </ChakraPopover.Root>\n )\n },\n)\n\nexport const InfoTip = React.forwardRef<\n HTMLDivElement,\n Partial<ToggleTipProps>\n>(function InfoTip(props, ref) {\n const { children, ...rest } = props\n return (\n <ToggleTip content={children} {...rest} ref={ref}>\n <IconButton\n variant=\"ghost\"\n aria-label=\"info\"\n size=\"2xs\"\n colorPalette=\"gray\"\n >\n <HiOutlineInformationCircle />\n </IconButton>\n </ToggleTip>\n )\n})\n","import { Progress as ChakraProgress } from \"@chakra-ui/react\"\nimport { InfoTip } from \"./toggle-tip\"\nimport * as React from \"react\"\n\nexport const ProgressBar = React.forwardRef<\n HTMLDivElement,\n ChakraProgress.TrackProps\n>(function ProgressBar(props, ref) {\n return (\n <ChakraProgress.Track {...props} ref={ref}>\n <ChakraProgress.Range />\n </ChakraProgress.Track>\n )\n})\n\nexport interface ProgressLabelProps extends ChakraProgress.LabelProps {\n info?: React.ReactNode\n}\n\nexport const ProgressLabel = React.forwardRef<\n HTMLDivElement,\n ProgressLabelProps\n>(function ProgressLabel(props, ref) {\n const { children, info, ...rest } = props\n return (\n <ChakraProgress.Label {...rest} ref={ref}>\n {children}\n {info && <InfoTip>{info}</InfoTip>}\n </ChakraProgress.Label>\n )\n})\n\nexport const ProgressRoot = ChakraProgress.Root\nexport const ProgressValueText = ChakraProgress.ValueText\n","import { usePagination } from \"../pagination/usePagination\"\n\nexport const useNavigationContext = () => {\n const pagination = usePagination()\n const hasOnlyOnePage = pagination?.numberOfTotalPages === 1\n\n const isBeginWithinChapter =\n (pagination?.beginNumberOfPagesInSpineItem ?? 0) > 1\n\n const isEndWithinChapter = (pagination?.endNumberOfPagesInSpineItem ?? 0) > 1\n\n const beginPageIndex =\n (pagination?.hasChapters\n ? pagination?.beginPageIndexInSpineItem\n : pagination?.beginAbsolutePageIndex) ?? 0\n const endPageIndex =\n (pagination?.hasChapters\n ? pagination?.endPageIndexInSpineItem\n : pagination?.endAbsolutePageIndex) ?? 0\n\n const [leftPageIndex = 0, rightPageIndex = 0] = [\n beginPageIndex,\n endPageIndex,\n ].sort((a, b) => a - b)\n\n const beginAndEndAreDifferent =\n pagination?.beginPageIndexInSpineItem !==\n pagination?.endPageIndexInSpineItem ||\n pagination?.beginSpineItemIndex !== pagination?.endSpineItemIndex\n\n const totalApproximatePages = pagination?.hasChapters\n ? pagination?.beginNumberOfPagesInSpineItem\n : pagination?.numberOfTotalPages\n\n return {\n hasOnlyOnePage,\n beginPageIndex,\n endPageIndex,\n isBeginWithinChapter,\n isEndWithinChapter,\n beginAndEndAreDifferent,\n totalApproximatePages,\n leftPageIndex,\n rightPageIndex,\n }\n}\n","import { HStack, Stack, Text } from \"@chakra-ui/react\"\nimport {\n ProgressBar,\n ProgressRoot,\n ProgressValueText,\n} from \"../components/ui/progress\"\nimport { useNavigationContext } from \"../navigation/useNavigationContext\"\nimport { usePagination } from \"../pagination/usePagination\"\n\nexport const PaginationInfoSection = () => {\n const pagination = usePagination()\n const {\n hasOnlyOnePage,\n leftPageIndex,\n rightPageIndex,\n totalApproximatePages,\n beginAndEndAreDifferent,\n } = useNavigationContext()\n const progress = Math.round((pagination?.percentageEstimateOfBook ?? 0) * 100)\n\n const buildTitleChain = (\n chapterInfo: NonNullable<typeof pagination>[\"beginChapterInfo\"],\n ): string => {\n if (chapterInfo?.subChapter) {\n return `${chapterInfo.title} / ${buildTitleChain(chapterInfo.subChapter)}`\n }\n return chapterInfo?.title || \"\"\n }\n\n const chapterTitle = buildTitleChain(pagination?.beginChapterInfo)\n\n return (\n <Stack alignItems=\"center\" gap={1} maxW=\"100%\" overflow=\"auto\">\n <ProgressRoot value={progress} size=\"xs\" width={150}>\n <HStack justifyContent=\"space-between\">\n <ProgressBar width={110} />\n <ProgressValueText>{`${progress}%`}</ProgressValueText>\n </HStack>\n </ProgressRoot>\n <Text truncate maxWidth=\"100%\" fontSize=\"sm\" mt={1}>\n {chapterTitle ? `Chapter: ${chapterTitle}` : `\\u00A0`}\n </Text>\n {!hasOnlyOnePage && (\n <HStack>\n <Text fontSize=\"xs\">\n {beginAndEndAreDifferent\n ? `${leftPageIndex + 1} - ${rightPageIndex + 1} of ${totalApproximatePages}`\n : `${leftPageIndex + 1} of ${totalApproximatePages}`}\n </Text>\n {!!pagination?.hasChapters && (\n <>\n <Text>-</Text>\n <Text fontSize=\"xs\">\n ({(pagination?.beginAbsolutePageIndex ?? 0) + 1})\n </Text>\n </>\n )}\n </HStack>\n )}\n </Stack>\n )\n}\n","import { Presence, type PresenceProps } from \"@chakra-ui/react\"\nimport { memo } from \"react\"\n\nexport const QuickBar = memo(\n ({\n children,\n position,\n ...rest\n }: { position: \"top\" | \"bottom\" } & PresenceProps & {\n ref?: React.RefObject<HTMLDivElement | null>\n }) => {\n return (\n <Presence\n display=\"flex\"\n flexDirection=\"row\"\n width=\"100%\"\n position=\"absolute\"\n {...(position === \"bottom\" ? { bottom: 0 } : { top: 0 })}\n animationName={\n position === \"bottom\"\n ? {\n _open: \"slide-from-bottom, fade-in\",\n _closed: \"slide-to-bottom, fade-out\",\n }\n : {\n _open: \"slide-from-top, fade-in\",\n _closed: \"slide-to-top, fade-out\",\n }\n }\n animationDuration=\"moderate\"\n bgColor=\"bg.panel\"\n alignItems=\"center\"\n justifyContent=\"center\"\n shadow=\"md\"\n p={4}\n {...rest}\n >\n {children}\n </Presence>\n )\n },\n)\n","import RcSlider from \"rc-slider\"\nimport { type ComponentProps, memo } from \"react\"\nimport \"rc-slider/assets/index.css\"\nimport { Box, chakra } from \"@chakra-ui/react\"\n\nconst ChakraRcSlider = chakra(RcSlider)\n\nexport const ThemedSlider = memo((props: ComponentProps<typeof RcSlider>) => {\n return (\n <Box\n display=\"contents\"\n css={{\n \"--bg\": \"colors.bg\",\n \"--bg-emphasized\": \"colors.bg.emphasized\",\n \"--color-solid\": \"colors.colorPalette.solid\",\n }}\n >\n <ChakraRcSlider\n keyboard={false}\n style={{\n padding: 0,\n }}\n css={{\n \"& > .rc-slider-handle:focus-visible\": {\n boxShadow: \"0 0 0 2px var(--color-solid) !important\",\n },\n \"& > .rc-slider-handle:active\": {\n boxShadow: \"0 0 5px var(--color-solid) !important\",\n },\n \"& > .rc-slider-handle.rc-slider-handle-dragging\": {\n boxShadow: \"0 0 0 3px var(--color-solid) !important\",\n },\n }}\n styles={{\n rail: {\n height: \"8px\",\n top: \"50%\",\n transform: \"translateY(-50%)\",\n backgroundColor: \"var(--bg-emphasized)\",\n },\n track: {\n height: \"8px\",\n top: \"50%\",\n transform: \"translateY(-50%)\",\n backgroundColor: \"var(--color-solid)\",\n },\n handle: {\n width: \"24px\",\n height: \"24px\",\n top: \"50%\",\n borderColor: \"var(--color-solid)\",\n transform: `translate(${props.reverse ? \"50%\" : \"-50%\"}, -50%)`,\n backgroundColor: \"var(--bg)\",\n marginTop: \"0px\",\n },\n }}\n {...props}\n />\n </Box>\n )\n})\n","import { Box } from \"@chakra-ui/react\"\nimport { type ComponentProps, useCallback, useEffect } from \"react\"\nimport { signal, useObserve, useSignalState, useSubscribe } from \"reactjrx\"\nimport { useReader } from \"../context/useReader\"\nimport { useNavigationContext } from \"../navigation/useNavigationContext\"\nimport { usePagination } from \"../pagination/usePagination\"\nimport { ThemedSlider } from \"./ThemedSlider\"\n\nconst useSliderValues = () => {\n const pagination = usePagination()\n const isUsingSpread = pagination?.isUsingSpread\n const { beginPageIndex: currentRealPage, totalApproximatePages = 0 } =\n useNavigationContext()\n const currentPage = isUsingSpread\n ? Math.floor((currentRealPage || 0) / 2)\n : currentRealPage\n const [value, valueSignal] = useSignalState(() =>\n signal({\n default: currentPage || 0,\n }),\n )\n const min = 0\n const max = Math.max(\n 0,\n isUsingSpread\n ? Math.floor((totalApproximatePages - 1) / 2)\n : totalApproximatePages - 1,\n )\n\n useEffect(() => {\n valueSignal.update(currentPage || 0)\n }, [currentPage, valueSignal])\n\n return {\n value,\n valueSignal,\n min,\n max,\n }\n}\n\nexport const Scrubber = (props: ComponentProps<typeof ThemedSlider>) => {\n const reader = useReader()\n const pagination = usePagination()\n const { data: { manifest } = {} } =\n useObserve(() => reader?.context, [reader]) ?? {}\n const reverse = manifest?.readingDirection === \"rtl\"\n const isUsingSpread = pagination?.isUsingSpread\n const { totalApproximatePages = 0, isBeginWithinChapter } =\n useNavigationContext()\n const step = 1\n const isScrubberWithinChapter = isBeginWithinChapter\n const { value, valueSignal, min, max } = useSliderValues()\n\n const onChange: NonNullable<ComponentProps<typeof ThemedSlider>[\"onChange\"]> =\n useCallback(\n (values) => {\n const [value = 0] = Array.isArray(values) ? values : [values]\n\n valueSignal.update(value)\n\n const pageIndex = isUsingSpread\n ? Math.floor(value) * 2\n : Math.floor(value)\n\n if (!isScrubberWithinChapter) {\n reader?.navigation.goToAbsolutePageIndex({\n absolutePageIndex: pageIndex,\n animation: false,\n })\n } else {\n reader?.navigation.goToPageOfSpineItem({\n pageIndex,\n spineItemId: reader.pagination.state.beginSpineItemIndex ?? 0,\n animation: false,\n })\n }\n },\n [reader, isUsingSpread, valueSignal, isScrubberWithinChapter],\n )\n\n /**\n * @note\n * Scrubber can navigate fast and without lock we may end up with\n * slowness due to the reader\n * paginating and loading items in between.\n * This is good practice (but not required) to throttle it.\n */\n useSubscribe(\n () =>\n reader?.navigation.throttleLock({\n duration: 100,\n trigger: valueSignal.subject,\n }),\n [reader, valueSignal],\n )\n\n // const marks =\n // max > 1\n // ? Array.from({ length: max + 1 }, (_, i) => i).reduce(\n // (acc: number[], val) => [...acc, val],\n // [],\n // )\n // : []\n\n const disabled =\n totalApproximatePages === 1 ||\n (isUsingSpread && totalApproximatePages === 2)\n\n // @tmp not available yet in chakra\n // if (reverse) return null\n\n if (disabled) return <Box style={props.style} />\n\n return (\n <ThemedSlider\n value={[value]}\n max={max}\n min={min}\n reverse={reverse}\n step={step}\n onChange={onChange}\n {...props}\n />\n )\n // return (\n // <Slider\n // value={[value]}\n // max={max}\n // min={min}\n // marks={marks}\n // onChange={e => {\n // debugger\n // }}\n // onValueChange={onChange}\n // // reverse={reverse}\n // orientation=\"horizontal\"\n // step={step}\n // />\n // )\n}\n","import { Box, Collapsible, HStack, IconButton, Stack } from \"@chakra-ui/react\"\nimport { memo, useEffect, useRef, useState } from \"react\"\nimport { BiFontSize } from \"react-icons/bi\"\nimport { BsBookmarks } from \"react-icons/bs\"\nimport {\n LuChevronDown,\n LuCircleHelp,\n LuGalleryHorizontal,\n LuNotebookPen,\n LuSearch,\n LuTableOfContents,\n LuZoomIn,\n LuZoomOut,\n} from \"react-icons/lu\"\nimport { MdOutlineFitScreen } from \"react-icons/md\"\nimport { RiGalleryView2 } from \"react-icons/ri\"\nimport {\n RxDoubleArrowDown,\n RxDoubleArrowLeft,\n RxDoubleArrowRight,\n RxDoubleArrowUp,\n} from \"react-icons/rx\"\nimport { useObserve } from \"reactjrx\"\nimport { map } from \"rxjs\"\nimport {\n hasAnnotationsEnhancer,\n hasGalleryEnhancer,\n hasRefitEnhancer,\n hasSearchEnhancer,\n useReader,\n} from \"../context/useReader\"\nimport { useReaderContextValue } from \"../context/useReaderContext\"\nimport { PaginationInfoSection } from \"./PaginationInfoSection\"\nimport { QuickBar } from \"./QuickBar\"\nimport { Scrubber } from \"./Scrubber\"\n\nexport const BottomBar = memo(\n ({\n open,\n onItemClick,\n }: {\n open: boolean\n onItemClick: (\n item: \"annotations\" | \"search\" | \"help\" | \"toc\" | \"bookmarks\" | \"gallery\",\n ) => void\n }) => {\n const boxRef = useRef<HTMLDivElement>(null)\n const reader = useReader()\n const {\n quickMenuBottomBarBoundingBoxSignal,\n onFontSizeMenuOpenChange,\n onRefitMenuOpenChange,\n } = useReaderContextValue([\n \"quickMenuBottomBarBoundingBoxSignal\",\n \"onFontSizeMenuOpenChange\",\n \"onRefitMenuOpenChange\",\n ])\n const { data: navigation } = useObserve(\n () => reader?.navigation.state$,\n [reader],\n )\n const { data: settings } = useObserve(\n () => reader?.settings.values$,\n [reader],\n )\n const { data: zoomState } = useObserve(\n () =>\n reader?.zoom.state$.pipe(\n map((state) =>\n state.currentScale > 1\n ? \"in\"\n : state.currentScale < 1\n ? \"out\"\n : undefined,\n ),\n ),\n [reader],\n )\n const isZoomingIn = zoomState === \"in\"\n const isZoomingOut = zoomState === \"out\"\n const isScrollingMode = settings?.computedPageTurnMode === \"scrollable\"\n const isVerticalDirection =\n settings?.computedPageTurnDirection === \"vertical\"\n const [isExtraOpen, setIsExtraOpen] = useState(true)\n\n useEffect(() => {\n if (!boxRef.current) return\n\n const resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n quickMenuBottomBarBoundingBoxSignal.update(entry)\n }\n })\n\n resizeObserver.observe(boxRef.current)\n\n return () => {\n resizeObserver.disconnect()\n }\n }, [quickMenuBottomBarBoundingBoxSignal])\n\n return (\n <QuickBar\n present={open}\n position=\"bottom\"\n display=\"flex\"\n flexDirection=\"column\"\n overflow=\"auto\"\n pb={8}\n px={0}\n ref={boxRef}\n >\n <HStack\n flex={1}\n alignItems=\"center\"\n justifyContent=\"center\"\n maxWidth=\"100%\"\n px={4}\n >\n <IconButton\n aria-label=\"left\"\n size=\"lg\"\n variant=\"ghost\"\n flexShrink={0}\n onClick={() => reader?.navigation.goToLeftOrTopSpineItem()}\n disabled={\n !navigation?.canGoLeftSpineItem && !navigation?.canGoTopSpineItem\n }\n >\n {isVerticalDirection ? <RxDoubleArrowUp /> : <RxDoubleArrowLeft />}\n </IconButton>\n <Stack\n flex={1}\n maxW={400}\n gap={2}\n alignItems=\"center\"\n overflow=\"auto\"\n px={4}\n >\n <PaginationInfoSection />\n <Scrubber\n style={{\n width: \"100%\",\n maxWidth: \"300px\",\n height: \"35px\",\n }}\n />\n </Stack>\n <IconButton\n aria-label=\"right\"\n size=\"lg\"\n flexShrink={0}\n variant=\"ghost\"\n disabled={\n !navigation?.canGoRightSpineItem &&\n !navigation?.canGoBottomSpineItem\n }\n onClick={() => {\n reader?.navigation.goToRightOrBottomSpineItem()\n }}\n >\n {isVerticalDirection ? (\n <RxDoubleArrowDown />\n ) : (\n <RxDoubleArrowRight />\n )}\n </IconButton>\n </HStack>\n <HStack alignSelf=\"stretch\" alignItems=\"center\" justifyContent=\"center\">\n <Collapsible.Root\n open={isExtraOpen}\n flex={1}\n onOpenChange={({ open }) => {\n setIsExtraOpen(open)\n }}\n width=\"100%\"\n >\n <Collapsible.Trigger\n paddingY=\"3\"\n width=\"100%\"\n display=\"flex\"\n justifyContent=\"center\"\n >\n <LuChevronDown\n style={{\n transform: isExtraOpen ? \"rotate(0deg)\" : \"rotate(180deg)\",\n }}\n />\n </Collapsible.Trigger>\n <Collapsible.Content display=\"flex\" justifyContent=\"center\">\n <Box display=\"flex\" overflowX=\"auto\" px={4} pb={1}>\n <IconButton\n aria-label=\"Help\"\n size=\"lg\"\n variant=\"ghost\"\n onClick={() => onItemClick(\"help\")}\n >\n <LuCircleHelp />\n </IconButton>\n <IconButton\n aria-label=\"Table of contents\"\n size=\"lg\"\n variant=\"ghost\"\n onClick={() => onItemClick(\"toc\")}\n >\n <LuTableOfContents />\n </IconButton>\n {hasSearchEnhancer(reader) && (\n <IconButton\n aria-label=\"Search\"\n size=\"lg\"\n variant=\"ghost\"\n onClick={() => onItemClick(\"search\")}\n >\n <LuSearch />\n </IconButton>\n )}\n <IconButton\n aria-label=\"Zoom\"\n size=\"lg\"\n variant={isZoomingIn ? \"solid\" : \"ghost\"}\n onClick={() => {\n if (isZoomingIn) {\n reader?.zoom.exit({ animate: true })\n } else {\n reader?.zoom.enter({\n animate: true,\n scale: 2,\n })\n }\n }}\n >\n {isZoomingIn ? <LuZoomOut /> : <LuZoomIn />}\n </IconButton>\n <IconButton\n aria-label=\"font size\"\n size=\"lg\"\n onClick={() => {\n onFontSizeMenuOpenChange(true)\n }}\n variant=\"ghost\"\n >\n <BiFontSize />\n </IconButton>\n {hasAnnotationsEnhancer(reader) && (\n <IconButton\n aria-label=\"Bookmarks\"\n size=\"lg\"\n variant=\"ghost\"\n onClick={() => onItemClick(\"bookmarks\")}\n >\n <BsBookmarks />\n </IconButton>\n )}\n {hasAnnotationsEnhancer(reader) && (\n <IconButton\n aria-label=\"Annotations\"\n size=\"lg\"\n variant=\"ghost\"\n onClick={() => onItemClick(\"annotations\")}\n >\n <LuNotebookPen />\n </IconButton>\n )}\n {hasRefitEnhancer(reader) && (\n <IconButton\n aria-label=\"Refit\"\n size=\"lg\"\n variant=\"ghost\"\n onClick={() => {\n onRefitMenuOpenChange(true)\n }}\n disabled={!isScrollingMode}\n >\n <MdOutlineFitScreen />\n </IconButton>\n )}\n <IconButton\n aria-label=\"Thumbnails\"\n size=\"lg\"\n variant={isZoomingOut ? \"solid\" : \"ghost\"}\n onClick={() => {\n if (isZoomingOut) {\n reader?.zoom.exit({ animate: true })\n } else {\n reader?.zoom.enter({\n animate: true,\n scale: 0.5,\n })\n }\n }}\n >\n <LuGalleryHorizontal />\n </IconButton>\n {hasGalleryEnhancer(reader) && (\n <IconButton\n aria-label=\"Gallery\"\n size=\"lg\"\n variant=\"ghost\"\n onClick={() => onItemClick(\"gallery\")}\n >\n <RiGalleryView2 />\n </IconButton>\n )}\n </Box>\n </Collapsible.Content>\n </Collapsible.Root>\n </HStack>\n </QuickBar>\n )\n },\n)\n","import { useEffect } from \"react\"\n\nimport { useCallback } from \"react\"\n\nimport { useState } from \"react\"\n\nexport const useFullscreen = () => {\n const [isFullscreen, setIsFullscreen] = useState(false)\n\n const onToggleFullscreenClick = useCallback(() => {\n if (document.fullscreenElement) {\n return document\n .exitFullscreen()\n .catch(console.error)\n .then(() => {\n setIsFullscreen(false)\n })\n }\n\n return document.documentElement\n .requestFullscreen({ navigationUI: \"hide\" })\n .catch(console.error)\n .then(() => {\n setIsFullscreen(true)\n })\n }, [])\n\n useEffect(() => {\n function fullscreenchangeHandler() {\n setIsFullscreen(!!document.fullscreenElement)\n }\n\n document.addEventListener(\"fullscreenchange\", fullscreenchangeHandler)\n\n return () => {\n document.removeEventListener(\"fullscreenchange\", fullscreenchangeHandler)\n }\n }, [])\n\n return {\n isFullscreen,\n onToggleFullscreenClick,\n }\n}\n","import { HStack, IconButton, Stack, Text } from \"@chakra-ui/react\"\nimport { memo } from \"react\"\nimport { IoIosArrowBack, IoMdMore } from \"react-icons/io\"\nimport { MdFullscreen, MdFullscreenExit } from \"react-icons/md\"\nimport { useObserve } from \"reactjrx\"\nimport { useFullscreen } from \"../common/useFullscreen\"\nimport { useReader } from \"../context/useReader\"\nimport { QuickBar } from \"./QuickBar\"\n\nexport const TopBar = memo(\n ({\n open,\n onItemClick,\n }: {\n open: boolean\n onItemClick: (item: \"more\" | \"back\") => void\n }) => {\n const reader = useReader()\n const { data: manifest } = useObserve(\n () => reader?.context.manifest$,\n [reader],\n )\n const { isFullscreen, onToggleFullscreenClick } = useFullscreen()\n\n return (\n <QuickBar\n present={open}\n position=\"top\"\n height=\"80px\"\n justifyContent=\"space-between\"\n >\n <IconButton\n aria-label=\"left\"\n size=\"lg\"\n variant=\"ghost\"\n flexShrink={0}\n onClick={() => onItemClick(\"back\")}\n >\n <IoIosArrowBack />\n </IconButton>\n <Stack\n flex={1}\n maxW={600}\n gap={1}\n alignItems=\"center\"\n overflow=\"auto\"\n px={4}\n >\n <Text truncate maxWidth=\"100%\">\n {manifest?.title}\n </Text>\n </Stack>\n <HStack>\n <IconButton\n aria-label=\"right\"\n size=\"lg\"\n flexShrink={0}\n variant=\"ghost\"\n onClick={() => onItemClick(\"more\")}\n >\n <IoMdMore />\n </IconButton>\n <IconButton\n aria-label=\"right\"\n size=\"lg\"\n flexShrink={0}\n variant=\"ghost\"\n onClick={onToggleFullscreenClick}\n >\n {isFullscreen ? <MdFullscreenExit /> : <MdFullscreen />}\n </IconButton>\n </HStack>\n </QuickBar>\n )\n },\n)\n","import { useReaderContextValue } from \"../context/useReaderContext\"\n\nexport const useQuickMenu = () => {\n const {\n quickMenuOpen,\n onQuickMenuOpenChange,\n _quickMenuOpen,\n _onQuickMenuOpenChange,\n } = useReaderContextValue([\n \"quickMenuOpen\",\n \"onQuickMenuOpenChange\",\n \"_quickMenuOpen\",\n \"_onQuickMenuOpenChange\",\n ])\n\n return [\n quickMenuOpen ?? _quickMenuOpen,\n onQuickMenuOpenChange ?? _onQuickMenuOpenChange,\n ] as const\n}\n","import { memo } from \"react\"\nimport { useReaderContextValue } from \"../context/useReaderContext\"\nimport { BottomBar } from \"./BottomBar\"\nimport { TopBar } from \"./TopBar\"\nimport { useQuickMenu } from \"./useQuickMenu\"\n\nexport const QuickMenu = memo(\n ({\n onItemClick,\n }: {\n onItemClick: (\n item:\n | \"annotations\"\n | \"search\"\n | \"help\"\n | \"toc\"\n | \"bookmarks\"\n | \"more\"\n | \"back\"\n | \"gallery\",\n ) => void\n }) => {\n const [quickMenuOpen] = useQuickMenu()\n const { refitMenuOpen, fontSizeMenuOpen, selectedHighlight } =\n useReaderContextValue([\n \"refitMenuOpen\",\n \"fontSizeMenuOpen\",\n \"selectedHighlight\",\n ])\n\n return (\n <>\n <TopBar\n open={\n quickMenuOpen &&\n !refitMenuOpen &&\n !fontSizeMenuOpen &&\n !selectedHighlight\n }\n onItemClick={onItemClick}\n />\n <BottomBar\n open={quickMenuOpen && !refitMenuOpen && !fontSizeMenuOpen}\n onItemClick={onItemClick}\n />\n </>\n )\n },\n)\n","import { useSubscribe } from \"reactjrx\"\nimport { filter, tap, withLatestFrom } from \"rxjs\"\nimport { useReader } from \"../context/useReader\"\nimport { useQuickMenu } from \"./useQuickMenu\"\n\nexport const useQuickMenuToggleGesture = () => {\n const [_quickMenuOpen, onQuickMenuOpenChange] = useQuickMenu()\n const reader = useReader()\n\n /**\n * Subscribe to all unhandled events from gesture manager.\n *\n * These are \"app\" specific behavior that the enhancer would usually not\n * know about such as triggering the quick menu.\n */\n useSubscribe(() => {\n return reader?.gestures.gestures$.pipe(\n filter((event) => event.type === \"tap\" && !event.handled),\n withLatestFrom(\n reader.selection.selection$,\n reader.selection.lastSelectionOnPointerdown$,\n ),\n tap(([, selection, selectionOnPointerdown]) => {\n /**\n * Where there is or was a selection before or during the tap, we want to avoid\n * showing the quick menu.\n */\n if (selection || selectionOnPointerdown) {\n onQuickMenuOpenChange(false)\n } else {\n onQuickMenuOpenChange((val) => !val)\n }\n }),\n )\n }, [reader])\n}\n","import { Field as ChakraField } from \"@chakra-ui/react\"\nimport * as React from \"react\"\n\nexport interface FieldProps extends Omit<ChakraField.RootProps, \"label\"> {\n label?: React.ReactNode\n helperText?: React.ReactNode\n errorText?: React.ReactNode\n optionalText?: React.ReactNode\n}\n\nexport const Field = React.forwardRef<HTMLDivElement, FieldProps>(\n function Field(props, ref) {\n const { label, children, helperText, errorText, optionalText, ...rest } =\n props\n return (\n <ChakraField.Root ref={ref} {...rest}>\n {label && (\n <ChakraField.Label>\n {label}\n <ChakraField.RequiredIndicator fallback={optionalText} />\n </ChakraField.Label>\n )}\n {children}\n {helperText && (\n <ChakraField.HelperText>{helperText}</ChakraField.HelperText>\n )}\n {errorText && (\n <ChakraField.ErrorText>{errorText}</ChakraField.ErrorText>\n )}\n </ChakraField.Root>\n )\n },\n)\n","import { Button, Fieldset, Stack } from \"@chakra-ui/react\"\nimport type { RefitEnhancerOptions } from \"@prose-reader/enhancer-refit\"\nimport { memo } from \"react\"\nimport { useObserve } from \"reactjrx\"\nimport {\n DialogActionTrigger,\n DialogBody,\n DialogCloseTrigger,\n DialogContent,\n DialogFooter,\n DialogHeader,\n DialogRoot,\n DialogTitle,\n} from \"../components/ui/dialog\"\nimport { Field } from \"../components/ui/field\"\nimport { Radio, RadioGroup } from \"../components/ui/radio\"\nimport { Slider } from \"../components/ui/slider\"\nimport { hasRefitEnhancer, useReader } from \"../context/useReader\"\nimport { useReaderContextValue } from \"../context/useReaderContext\"\n\ntype OptionValue = RefitEnhancerOptions[\"viewportFit\"]\n\nexport const RefitDialog = memo(() => {\n const defaultCustomWidth = 60\n const { refitMenuOpen, onRefitMenuOpenChange } = useReaderContextValue([\n \"refitMenuOpen\",\n \"onRefitMenuOpenChange\",\n ])\n const reader = useReader()\n const readerWithRefit = hasRefitEnhancer(reader) ? reader : undefined\n const { data: refitSettings } = useObserve(\n () => readerWithRefit?.refit.settings$,\n [readerWithRefit],\n )\n\n return (\n <DialogRoot\n lazyMount\n open={refitMenuOpen}\n onOpenChange={(e) => onRefitMenuOpenChange(e.open)}\n placement=\"center\"\n >\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Viewport fit</DialogTitle>\n </DialogHeader>\n <DialogBody>\n <Fieldset.Root>\n <Fieldset.HelperText>\n Adjust the viewport for a more comfortable reading experience.\n </Fieldset.HelperText>\n <Fieldset.Content>\n <Field label=\"Profile\">\n <RadioGroup\n defaultValue={`fit` satisfies OptionValue}\n onValueChange={(e) => {\n const value = e.value as OptionValue\n readerWithRefit?.refit.update({\n viewportFit: value,\n customWidth: defaultCustomWidth,\n })\n }}\n value={refitSettings?.viewportFit ?? `fit`}\n >\n <Stack gap={2}>\n <Radio value={`desktop` satisfies OptionValue}>\n Desktop\n </Radio>\n <Radio value={`tablet` satisfies OptionValue}>Tablet</Radio>\n <Radio value={`fit` satisfies OptionValue}>\n Full width (default)\n </Radio>\n <Radio value={`custom` satisfies OptionValue}>Custom</Radio>\n </Stack>\n </RadioGroup>\n </Field>\n <Slider\n label=\"Maximum width (%)\"\n showValue\n max={100}\n min={10}\n step={1}\n disabled={refitSettings?.viewportFit !== `custom`}\n value={[refitSettings?.customWidth ?? defaultCustomWidth]}\n onValueChange={(e) => {\n const value = e.value[0] ?? 0\n\n readerWithRefit?.refit.update({\n customWidth: value,\n })\n }}\n />\n </Fieldset.Content>\n </Fieldset.Root>\n </DialogBody>\n <DialogFooter>\n <DialogActionTrigger asChild>\n <Button variant=\"outline\">Close</Button>\n </DialogActionTrigger>\n </DialogFooter>\n <DialogCloseTrigger />\n </DialogContent>\n </DialogRoot>\n )\n})\n","import { Link, Text } from \"@chakra-ui/react\"\nimport { memo } from \"react\"\n\nexport const SearchListItem = memo(\n ({\n contextText = \"\",\n startOffset = 0,\n text,\n cfi = \"#\",\n onClick,\n absolutePageIndex,\n }: {\n pageIndex: number | undefined\n absolutePageIndex?: number\n contextText?: string\n startOffset?: number\n text: string\n cfi?: string\n onClick: (cfi: string) => void\n }) => {\n const charsAroundText = 15\n const before = contextText.substring(\n Math.max(startOffset - charsAroundText, 0),\n Math.max(startOffset, 0),\n )\n const after = contextText.substring(\n Math.min(startOffset + text.length, contextText.length - 1),\n Math.min(\n startOffset + text.length + charsAroundText,\n contextText.length - 1,\n ),\n )\n\n return (\n <Link\n href={cfi}\n style={{ margin: 5, overflow: \"hidden\" }}\n onClick={(e) => {\n e.preventDefault()\n\n onClick(cfi)\n }}\n display=\"flex\"\n flexDirection=\"column\"\n alignItems=\"flex-start\"\n gap={0}\n >\n <Text lineClamp={1} as=\"cite\" style={{ display: \"block\" }}>\n \"{before}\n <b>{text}</b>\n {after}\"\n </Text>\n <Text fontSize=\"sm\" color=\"gray.500\" style={{ textDecoration: \"none\" }}>\n {`Book page: ${absolutePageIndex !== undefined ? absolutePageIndex + 1 : \"unknown (not loaded)\"}`}\n </Text>\n </Link>\n )\n },\n)\n","import { useConstant, useObserve } from \"reactjrx\"\nimport {\n BehaviorSubject,\n distinctUntilChanged,\n map,\n merge,\n of,\n switchMap,\n timer,\n} from \"rxjs\"\nimport { hasSearchEnhancer, useReader } from \"../context/useReader\"\n\nconst DEBOUNCE_TIME = 500\n\nexport const useSearch = () => {\n const searchSubject = useConstant(() => new BehaviorSubject(\"\"))\n const { data: searchValue } = useObserve(searchSubject)\n const reader = useReader()\n const readerWithSearch = hasSearchEnhancer(reader) ? reader : undefined\n\n const { data: search } = useObserve(() => {\n return searchSubject.pipe(\n distinctUntilChanged(),\n switchMap((value) =>\n value === \"\" || !readerWithSearch\n ? of(undefined)\n : merge(\n of({\n type: `start` as const,\n data: undefined,\n }),\n timer(DEBOUNCE_TIME).pipe(\n switchMap(() => readerWithSearch.search.search(value)),\n map((data) => ({ type: `end` as const, data })),\n ),\n ),\n ),\n )\n }, [readerWithSearch, searchSubject])\n\n return {\n value: searchValue,\n setValue: searchSubject.next.bind(searchSubject),\n status: search?.type ?? \"idle\",\n data: search?.data,\n }\n}\n","import { Input, Stack, Text } from \"@chakra-ui/react\"\nimport type React from \"react\"\nimport { memo, useCallback } from \"react\"\nimport { useObserve } from \"reactjrx\"\nimport { useReader } from \"../context/useReader\"\nimport { SearchListItem } from \"./SearchListItem\"\nimport { useSearch } from \"./useSearch\"\n\nexport const SearchDialogContent = memo(\n ({ onNavigate }: { onNavigate: () => void }) => {\n const reader = useReader()\n const { value: searchValue, setValue, status, data } = useSearch()\n\n const onValueChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setValue(e.target.value)\n }\n\n const onClick = useCallback(\n (cfi: string) => {\n onNavigate()\n reader?.navigation.goToCfi(cfi)\n },\n [reader, onNavigate],\n )\n\n const { data: consolidatedResults } = useObserve(\n () => reader?.locateResource(data?.slice(0, 100) ?? []),\n [data],\n )\n\n return (\n <Stack flex={1} height=\"100%\" gap={2}>\n <Input\n placeholder=\"Type something...\"\n value={searchValue}\n onChange={onValueChange}\n flexShrink={0}\n variant=\"subtle\"\n name=\"search\"\n focusRing=\"none\"\n focusVisibleRing=\"none\"\n outline=\"none\"\n focusRingColor=\"transparent\"\n />\n <Stack\n style={{ overflow: \"hidden\", overflowY: \"auto\" }}\n overflow=\"auto\"\n px={4}\n flex={1}\n >\n {status === \"start\" && <Text>Searching ...</Text>}\n {data?.length === 0 && <Text>No results</Text>}\n {status === \"end\" && (data?.length ?? 0) > 0 && (\n <Stack>\n <Text fontSize=\"md\">{data?.length} result(s)</Text>\n <Stack gap={0}>\n {consolidatedResults?.map((result, j) => {\n return (\n <SearchListItem\n key={j}\n contextText={\n result.meta?.range?.startContainer.parentElement\n ?.textContent ?? \"\"\n }\n pageIndex={result.meta?.itemPageIndex}\n startOffset={result.meta?.range?.startOffset ?? 0}\n text={searchValue}\n cfi={result.meta.cfi}\n onClick={onClick}\n absolutePageIndex={result.meta?.absolutePageIndex}\n />\n )\n })}\n </Stack>\n </Stack>\n )}\n </Stack>\n </Stack>\n )\n },\n)\n","import { Button } from \"@chakra-ui/react\"\nimport { memo } from \"react\"\nimport {\n DialogActionTrigger,\n DialogBody,\n DialogCloseTrigger,\n DialogContent,\n DialogFooter,\n DialogHeader,\n DialogRoot,\n DialogTitle,\n} from \"../components/ui/dialog\"\nimport { SearchDialogContent } from \"./SearchDialogContent\"\n\nexport const SearchDialog = memo(\n ({\n open,\n setOpen,\n onNavigate,\n }: {\n open: boolean\n setOpen: (open: boolean) => void\n onNavigate: () => void\n }) => {\n return (\n <DialogRoot\n lazyMount\n placement=\"center\"\n open={open}\n onOpenChange={(e) => setOpen(e.open)}\n size={{ mdDown: \"full\", md: \"lg\" }}\n scrollBehavior=\"inside\"\n >\n <DialogContent height=\"100%\">\n <DialogHeader>\n <DialogTitle>Search</DialogTitle>\n </DialogHeader>\n <DialogBody flex={1} p={0}>\n <SearchDialogContent onNavigate={onNavigate} />\n </DialogBody>\n <DialogFooter>\n <DialogActionTrigger asChild>\n <Button variant=\"outline\">Cancel</Button>\n </DialogActionTrigger>\n </DialogFooter>\n <DialogCloseTrigger />\n </DialogContent>\n </DialogRoot>\n )\n },\n)\n","import { Link, List, Stack, Text } from \"@chakra-ui/react\"\nimport React, { memo } from \"react\"\nimport { LuCircleCheck } from \"react-icons/lu\"\nimport { useObserve } from \"reactjrx\"\nimport { useReader } from \"../context/useReader\"\nimport { usePagination } from \"../pagination/usePagination\"\n\nexport const TableOfContentsDialogContent = memo(\n ({ onNavigate }: { onNavigate: () => void }) => {\n const reader = useReader()\n const { data: { manifest, assumedRenditionLayout } = {} } =\n useObserve(() => reader?.context, [reader]) ?? {}\n const { nav } = manifest ?? {}\n const pagination = usePagination()\n const toc = nav?.toc || []\n const { beginSpineItemIndex, beginPageIndexInSpineItem } = pagination ?? {}\n const currentSpineItemOrChapterPageIndex =\n (assumedRenditionLayout === \"reflowable\"\n ? beginPageIndexInSpineItem\n : beginSpineItemIndex) || 0\n\n let currentSubChapter = pagination?.beginChapterInfo\n\n while (currentSubChapter?.subChapter) {\n currentSubChapter = currentSubChapter?.subChapter\n }\n\n const buildTocForItem = (\n tocItem: (typeof toc)[number],\n index: number,\n lvl: number,\n ) => (\n <React.Fragment key={index}>\n <List.Item\n pl={4 * (lvl + 1)}\n style={{\n display: \"flex\",\n alignItems: \"center\",\n }}\n >\n <Link\n onClick={() => {\n onNavigate()\n\n reader?.navigation.goToUrl(tocItem.href)\n }}\n href=\"#\"\n >\n {currentSubChapter?.path === tocItem.path && (\n <List.Indicator asChild>\n <LuCircleCheck />\n </List.Indicator>\n )}\n {currentSubChapter?.path !== tocItem.path && (\n <List.Indicator asChild visibility=\"hidden\">\n <LuCircleCheck />\n </List.Indicator>\n )}\n <Stack gap={0}>\n <Text fontSize=\"md\">{tocItem.title || tocItem.path}</Text>\n {currentSubChapter?.path === tocItem.path && (\n <Text\n fontStyle=\"italic\"\n fontWeight=\"bold\"\n fontSize=\"sm\"\n >{`Currently on page ${\n currentSpineItemOrChapterPageIndex + 1\n }`}</Text>\n )}\n </Stack>\n </Link>\n </List.Item>\n {tocItem.contents.length > 0 && (\n <List.Root as=\"div\" gap={2}>\n {tocItem.contents.map((tocItem, index) =>\n buildTocForItem(tocItem, index, lvl + 1),\n )}\n </List.Root>\n )}\n </React.Fragment>\n )\n\n return (\n <List.Root gap={3} overflowY=\"auto\" py={4} flex={1}>\n {nav?.toc.map((tocItem, index) => buildTocForItem(tocItem, index, 0))}\n </List.Root>\n )\n },\n)\n","import { Button } from \"@chakra-ui/react\"\nimport { memo } from \"react\"\nimport {\n DialogActionTrigger,\n DialogBody,\n DialogCloseTrigger,\n DialogContent,\n DialogFooter,\n DialogHeader,\n DialogRoot,\n DialogTitle,\n} from \"../components/ui/dialog\"\nimport { TableOfContentsDialogContent } from \"./TableOfContentsDialogContent\"\n\nexport const TableOfContentsDialog = memo(\n ({\n open,\n setOpen,\n onNavigate,\n }: {\n open: boolean\n setOpen: (open: boolean) => void\n onNavigate: () => void\n }) => {\n return (\n <DialogRoot\n lazyMount\n placement=\"center\"\n open={open}\n onOpenChange={(e) => setOpen(e.open)}\n size={{ mdDown: \"full\", md: \"lg\" }}\n scrollBehavior=\"inside\"\n >\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Table of Contents</DialogTitle>\n </DialogHeader>\n <DialogBody overflowY=\"auto\" flex={1}>\n <TableOfContentsDialogContent onNavigate={onNavigate} />\n </DialogBody>\n <DialogFooter>\n <DialogActionTrigger asChild>\n <Button variant=\"outline\">Cancel</Button>\n </DialogActionTrigger>\n </DialogFooter>\n <DialogCloseTrigger />\n </DialogContent>\n </DialogRoot>\n )\n },\n)\n","import { useEffect } from \"react\"\nimport { MAX_ZOOM_SCALE } from \"../constants\"\nimport { useReader } from \"../context/useReader\"\nimport { useReaderContextValue } from \"../context/useReaderContext\"\n\nexport const useZoomSettings = () => {\n const reader = useReader()\n const { zoomMaxScale } = useReaderContextValue([\"zoomMaxScale\"])\n\n useEffect(\n function syncSettingsWithGesturesEnhancer() {\n reader?.gestures.settings.update({\n zoomMaxScale: zoomMaxScale ?? MAX_ZOOM_SCALE,\n })\n },\n [reader, zoomMaxScale],\n )\n}\n","import { memo } from \"react\"\nimport { useObserve } from \"reactjrx\"\nimport { animationFrameScheduler, map, throttleTime } from \"rxjs\"\nimport { FloatingMenu } from \"../common/FloatingMenu\"\nimport { Slider } from \"../components/ui/slider\"\nimport { MAX_ZOOM_SCALE } from \"../constants\"\nimport { useReader } from \"../context/useReader\"\nimport { useReaderContextValue } from \"../context/useReaderContext\"\n\nconst STEP = 0.5\nconst MIN = 1\n// const MAX = MAX_ZOOM_SCALE\n\nconst normalizeZoomValue = (\n value: number,\n min: number,\n max: number,\n step: number,\n): number => {\n if (value > min && value < min + step) {\n return min + step\n }\n\n // Clamp to min/max bounds\n const clamped = Math.min(Math.max(value, min), max)\n // Round to nearest step\n const stepped = Math.round((clamped - min) / step) * step + min\n // Round to avoid floating point precision issues\n return Math.round(stepped * 100) / 100\n}\n\nexport const ZoomControls = memo(() => {\n const { zoomMaxScale = MAX_ZOOM_SCALE } = useReaderContextValue([\n \"zoomMaxScale\",\n ])\n const reader = useReader()\n const { data: zoomScaleValue = 1 } = useObserve(\n () =>\n reader?.zoom.state$.pipe(\n map((state) => state.currentScale),\n throttleTime(100, animationFrameScheduler, {\n leading: true,\n trailing: true,\n }),\n ),\n [reader],\n )\n const { data: isZooming = false } = useObserve(\n () => reader?.zoom.state$.pipe(map((state) => state.isZooming)),\n [reader],\n )\n const normalizedZoomScaleValue = normalizeZoomValue(\n zoomScaleValue,\n MIN,\n zoomMaxScale,\n STEP,\n )\n\n return (\n <FloatingMenu present={isZooming && zoomScaleValue > 1}>\n <Slider\n value={[normalizedZoomScaleValue]}\n min={MIN}\n max={zoomMaxScale}\n step={STEP}\n minWidth={200}\n onValueChange={(e) => {\n const value = e.value?.[0] ?? 1\n\n if (value === 1) {\n reader?.zoom.exit()\n } else {\n reader?.zoom.scaleAt(value, {\n constrain: \"within-viewport\",\n })\n }\n }}\n />\n </FloatingMenu>\n )\n})\n","import { Box, type BoxProps, Presence } from \"@chakra-ui/react\"\nimport { type ComponentProps, memo, useCallback, useState } from \"react\"\nimport { AnnotateControls } from \"./annotations/AnnotateControls\"\nimport { AnnotationDrawer } from \"./annotations/AnnotationDrawer\"\nimport { AnnotationsDialog } from \"./annotations/AnnotationsDialog\"\nimport { BookmarkPageMarkers } from \"./annotations/bookmarks/BookmarkPageMarkers\"\nimport { useBookmarkOnCornerTap } from \"./annotations/bookmarks/useBookmarkOnCornerTap\"\nimport { usePreventInteractionOnSelection } from \"./annotations/usePreventInteractionOnSelection\"\nimport { useSyncAnnotationsWithReader } from \"./annotations/useSyncAnnotationsWithReader\"\nimport { Toaster } from \"./components/ui/toaster\"\nimport { ReactReaderProvider } from \"./context/ReactReaderProvider\"\nimport { useReaderContextValue } from \"./context/useReaderContext\"\nimport { FontSizeControlsDialog } from \"./fonts/FontSizeControlsDialog\"\nimport { SyncFontSettings } from \"./fonts/SyncFontSettings\"\nimport { GalleryDialog } from \"./gallery/GalleryDialog\"\nimport { HelpDialog } from \"./help/HelpDialog\"\nimport { FloatingProgress } from \"./navigation/FloatingProgress\"\nimport { FloatingTime } from \"./navigation/FloatingTime\"\nimport { useInterceptExternalLinks } from \"./navigation/useInterceptExternalLinks\"\nimport { useNotifications } from \"./notifications/useNotifications\"\nimport { QuickMenu } from \"./quickmenu/QuickMenu\"\nimport { useQuickMenu } from \"./quickmenu/useQuickMenu\"\nimport { useQuickMenuToggleGesture } from \"./quickmenu/useQuickMenuToggleGesture\"\nimport { RefitDialog } from \"./refit/RefitDialog\"\nimport { SearchDialog } from \"./search/SearchDialog\"\nimport { TableOfContentsDialog } from \"./toc/TableOfContentsDialog\"\nimport { useZoomSettings } from \"./zoom/useZoomSettings\"\nimport { ZoomControls } from \"./zoom/ZoomControls\"\n\nconst ANIMATION_NAME_IN_OUT = { _open: \"fade-in\", _closed: \"fade-out\" }\n\nconst BookmarksEffects = memo(() => {\n // Intensive\n useBookmarkOnCornerTap()\n\n return null\n})\n\nconst Effects = memo(() => {\n useZoomSettings()\n useInterceptExternalLinks()\n useNotifications()\n useQuickMenuToggleGesture()\n usePreventInteractionOnSelection()\n useSyncAnnotationsWithReader()\n\n return (\n <>\n <SyncFontSettings />\n <BookmarksEffects />\n </>\n )\n})\n\nconst InnerReactReader = memo(\n ({\n children,\n ...rest\n }: {\n children: React.ReactNode\n } & BoxProps) => {\n const { enableFloatingTime, onItemClick } = useReaderContextValue([\n \"enableFloatingTime\",\n \"onItemClick\",\n ])\n const [isTableOfContentsOpen, setIsTableOfContentsOpen] = useState(false)\n const [isHelpOpen, setIsHelpOpen] = useState(false)\n const [isSearchOpen, setIsSearchOpen] = useState(false)\n const [isAnnotationsOpenWith, setIsAnnotationsOpenWith] = useState<\n \"bookmarks\" | \"annotations\" | undefined\n >(undefined)\n const [isGalleryOpen, setIsGalleryOpen] = useState(false)\n const [quickMenuOpen, setQuickMenuOpen] = useQuickMenu()\n\n const onNavigate = useCallback(() => {\n setIsTableOfContentsOpen(false)\n setIsHelpOpen(false)\n setIsSearchOpen(false)\n setIsAnnotationsOpenWith(undefined)\n setQuickMenuOpen(false)\n setIsGalleryOpen(false)\n }, [setQuickMenuOpen])\n\n const _onItemClick: NonNullable<typeof onItemClick> = useCallback(\n (item) => {\n if (item === \"annotations\") {\n setIsAnnotationsOpenWith(\"annotations\")\n } else if (item === \"search\") {\n setIsSearchOpen(true)\n } else if (item === \"help\") {\n setIsHelpOpen(true)\n } else if (item === \"toc\") {\n setIsTableOfContentsOpen(true)\n } else if (item === \"bookmarks\") {\n setIsAnnotationsOpenWith(\"bookmarks\")\n } else if (item === \"gallery\") {\n setIsGalleryOpen(true)\n }\n onItemClick?.(item)\n },\n [onItemClick],\n )\n\n return (\n <>\n <Effects />\n <Box\n position=\"absolute\"\n top={0}\n left={0}\n height=\"100%\"\n width=\"100%\"\n overflow=\"hidden\"\n data-prose-react-reader\n {...rest}\n >\n {children}\n <FloatingProgress />\n <GalleryDialog open={isGalleryOpen} setOpen={setIsGalleryOpen} />\n <RefitDialog />\n <QuickMenu onItemClick={_onItemClick} />\n <ZoomControls />\n <AnnotateControls />\n <AnnotationDrawer />\n <FontSizeControlsDialog />\n <BookmarkPageMarkers />\n <HelpDialog open={isHelpOpen} setOpen={setIsHelpOpen} />\n <TableOfContentsDialog\n open={isTableOfContentsOpen}\n setOpen={setIsTableOfContentsOpen}\n onNavigate={onNavigate}\n />\n <SearchDialog\n open={isSearchOpen}\n setOpen={setIsSearchOpen}\n onNavigate={onNavigate}\n />\n <AnnotationsDialog\n openWith={isAnnotationsOpenWith}\n setOpen={(open) =>\n setIsAnnotationsOpenWith(open ? \"annotations\" : undefined)\n }\n onNavigate={onNavigate}\n />\n <Presence\n present={enableFloatingTime || quickMenuOpen}\n animationName={ANIMATION_NAME_IN_OUT}\n animationDuration=\"slow\"\n overflow=\"hidden\"\n >\n <FloatingTime />\n </Presence>\n <Toaster />\n </Box>\n </>\n )\n },\n)\n\nexport const ReactReader = memo(\n ({\n children,\n slots,\n ...props\n }: ComponentProps<typeof ReactReaderProvider> & {\n slots?: {\n container?: {\n props?: Omit<ComponentProps<typeof InnerReactReader>, \"children\">\n }\n }\n }) => {\n const { container: { props: containerProps = {} } = {} } = slots ?? {}\n\n return (\n <ReactReaderProvider {...props}>\n <InnerReactReader {...containerProps}>{children}</InnerReactReader>\n </ReactReaderProvider>\n )\n },\n)\n"],"names":["BOOKMARK_AREA_DATA_ATTRIBUTE","MAX_ZOOM_SCALE","getDefaultValue","_quickMenuOpen","_onQuickMenuOpenChange","prev","reader","undefined","quickMenuBottomBarBoundingBoxSignal","signal","default","notificationsSubject","Subject","refitMenuOpen","onRefitMenuOpenChange","fontSizeMenuOpen","onFontSizeMenuOpenChange","fontSizeMin","fontSizeMax","uncontrolledFontSize","enableFloatingProgress","selectedHighlight","ReaderContext","createContext","useReaderContextValue","keys","$","_c","context","useContext","t0","pipe","watchKeys","t1","value","pick","t2","compareFn","isShallowEqual","defaultValue","t3","Symbol","for","useObserve","data","useReaderContext","SAFE_MARGIN_FLOATING_BOTTOM_ELEMENTS","FloatingMenu","memo","children","rest","bottomBarHeight","useSignalValue","borderBoxSize","blockSize","_open","_closed","t4","jsx","Presence","useReader","hasSearchEnhancer","hasAnnotationsEnhancer","hasGalleryEnhancer","hasRefitEnhancer","useReaderWithAnnotations","AnnotateControls","selection","selectionOver$","switchMap","selectionEnd$","map","_temp","startWith","EMPTY","isOpen","t5","getSelection","update","state","t6","FaEdit","t7","Button","t8","LuNotebookPen","t9","truncateText","text","maxLength","length","slice","CloseButton","React","forwardRef","props","ref","LuX","ChakraIconButton","DrawerContent","offset","portalRef","portalled","ChakraDrawer","Portal","Trigger","DrawerRoot","Root","Footer","DrawerHeader","Header","DrawerBody","Body","DrawerBackdrop","Backdrop","Description","Title","ActionTrigger","HIGHLIGHT_COLORS","AnnotationDrawer","onAnnotationCreate","onAnnotationUpdate","onAnnotationDelete","highlight","selectedColor","setSelectedColor","useState","contents","setContents","onClose","event","open","onOpenChange","highlightColor","highlightContent","notes","useEffect","annotations","highlightTap$","tap","highlight_0","state_0","useSubscribe","T0","T1","T2","t10","toString","t11","t12","color","Box","border","t13","Stack","t14","Text","t15","event_0","target","t16","Textarea","t17","t18","annotation","createAnnotation","t19","jsxs","id","t20","t21","t22","DialogContent","backdrop","ChakraDialog","DialogCloseTrigger","DialogRoot","DialogFooter","DialogHeader","DialogBody","DialogTitle","DialogActionTrigger","useAnnotation","readerWithAnnotations","annotations$","items","find","item","filter","isDefined","locateResource","AnnotationListItem","onNavigate","allowLeftIcon","meta","node","textContent","range","navigation","goToCfi","cfi","resource","List","absolutePageIndex","Link","useAnnotations","highlights","useHighlights","isCfiRange","AnnotationsList","useBookmarks","BookmarksList","AnnotationsDialogContent","defaultTab","tab","setTab","e","Tabs","LuBookmark","AnnotationsDialog","openWith","setOpen","mdDown","md","Spine","spine","element$","spineElement","createPortal","useSpineItem","itemIndex","of","spineItemsManager","get","pages","observeFromAbsolutePageIndex","page","useSpineItemReady","spineItem","isReady$","NEVER","isReady","BookmarkPageMarker","left","top","width","isItemReady","bookmarks","bookmark","bookmarkForPage","markerSize","content","position","height","borderTop","borderLeft","BookmarkPageMarkers","layoutInfo$","pageIndex","absoluteLayout","CONTINUE_TAP_GESTURE","useBookmarkOnCornerTap","readerContext","gestures","hooks","register","event$","withLatestFrom","candidates$","candidates","spineItemPageIndex","spineItemPagePosition","pageSize","isPositionInArea","type","corner","size","unit","pageEntry","fromSpineItemPageIndex","usePreventInteractionOnSelection","lastSelectionOnPointerdown$","lastSelectionOnPointerdown","isTargetWithinHighlight","useSyncAnnotationsWithReader","selectedHighlight$","distinctUntilChanged","_temp2","annotationsWithSelected$","combineLatest","_temp3","context_0","context_1","selected","toaster","createToaster","placement","pauseOnPageIdle","Toaster","ChakraToaster","toast","Toast","Spinner","title","description","action","label","closable","SignalProvider","valueSignal","useConstant","uncontrolledFontSizeMenuOpen","uncontrolledFontSizeMenuOpenValue","uncontrolledOnFontSizeMenuOpenChange","valueOrUpdater","old","uncontrolledRefitMenuOpen","open_0","uncontrolledOnRefitMenuOpenChange","uncontrolledRefitMenuOpenValue","memoizedProps","useMemoCompare","old_0","ReactReaderProvider","Radio","inputProps","rootRef","ChakraRadioGroup","RadioGroup","Slider","marks","showValue","marksProp","some","hasMarkLabel","ChakraSlider","HStack","SliderThumbs","SliderMarks","For","_","index","_temp4","mark","mark_0","PROSE_REACT_READER_SETTINGS_SCOPE_CONFIGURATION","references","SETTINGS_SCOPES_VALUES","SETTINGS_SCOPES_REFERENCES","flatMap","getScopeForReference","reference","includes","FontSizeControlsDialog","fontSize","fontSizeScope","fontSizeValues","onFontSizeChange","onFontSizeScopeChange","onFontSizeChangeRef","useLiveRef","tabValue","setTabValue","scope","current","onFontUpdate","scope_0","getValueForScope","details","value_0","onScopeValueChange","details_0","onTabValueChange","details_1","value_1","onSliderValueChange","Fieldset","scope_2","LuCheck","scope_3","t23","t24","t25","scope_1","SyncFontSettings","_fontSize","timeout","setTimeout","settings","fontScale","clearTimeout","values$","subscribe","_fontSize_0","defaultState","x","y","bottom","right","useMeasure","element","setElement","rect","setRect","ResizeObserver","entries","contentRect","observer","observe","disconnect","useLayoutEffect","useAttachSnapshot","measures","readerWithGalleryEnhancer","itemLayoutChanged$","didLayout$","layoutInfo","isItemIntersecting$","observeIntersection","throttleTime","trailing","isVisible","innerHTML","first","gallery","snapshot","isIntersecting","isVisible_0","GalleryItem","onNavigated","mode","locatedResource","goToSpineItem","indexOrId","GalleryDialog","items$","HelpDialog","Heading","Kbd","LuArrowBigRight","LuArrowBigLeft","name","usePagination","pagination","state$","mediaType","startsWith","isOnlyImages","manifest","spineItems","every","hasChapters","isFullyPrePaginated","ANIMATION_NAME_IN_OUT","FloatingProgress","quickMenuOpen","roundedProgress","Math","floor","percentageEstimateOfBook","displayableProgress","useTime","Date","time","setTime","interval","setInterval","clearInterval","TimeIndicator","toLocaleTimeString","navigator","language","hour","minute","FloatingTime","useInterceptExternalLinks","links$","isHtmlTagElement","href","url","URL","window","location","host","confirm","useNotifications","mergeMap","notification","duration","toast$","Observable","subscriber","queueMicrotask","toastId","create","next","complete","error","sameNotification$","skip","n","key","merge","timer","abort","finalize","dismiss","ToggleTip","showArrow","positioning","gutter","ChakraPopover","InfoTip","IconButton","HiOutlineInformationCircle","ProgressBar","ChakraProgress","info","ProgressRoot","ProgressValueText","ValueText","useNavigationContext","hasOnlyOnePage","numberOfTotalPages","isBeginWithinChapter","beginNumberOfPagesInSpineItem","isEndWithinChapter","endNumberOfPagesInSpineItem","beginPageIndex","beginPageIndexInSpineItem","beginAbsolutePageIndex","endPageIndex","endPageIndexInSpineItem","endAbsolutePageIndex","leftPageIndex","rightPageIndex","sort","a","b","beginAndEndAreDifferent","beginSpineItemIndex","endSpineItemIndex","totalApproximatePages","PaginationInfoSection","round","progress","beginChapterInfo","buildTitleChain","chapterInfo","subChapter","chapterTitle","Fragment","QuickBar","ChakraRcSlider","chakra","RcSlider","ThemedSlider","padding","boxShadow","transform","backgroundColor","reverse","rail","track","handle","borderColor","marginTop","useSliderValues","isUsingSpread","currentRealPage","currentPage","useSignalState","max","min","Scrubber","readingDirection","isScrubberWithinChapter","values","Array","isArray","goToPageOfSpineItem","spineItemId","animation","goToAbsolutePageIndex","onChange","subject","throttleLock","trigger","style","step","BottomBar","onItemClick","boxRef","useRef","zoom","zoomState","isZoomingIn","isZoomingOut","isScrollingMode","computedPageTurnMode","isVerticalDirection","computedPageTurnDirection","isExtraOpen","setIsExtraOpen","resizeObserver","entry","goToLeftOrTopSpineItem","canGoLeftSpineItem","canGoTopSpineItem","RxDoubleArrowUp","RxDoubleArrowLeft","maxWidth","canGoRightSpineItem","canGoBottomSpineItem","goToRightOrBottomSpineItem","RxDoubleArrowDown","RxDoubleArrowRight","Collapsible","LuChevronDown","LuCircleHelp","t26","t27","t28","LuTableOfContents","t29","t30","LuSearch","t31","t32","exit","animate","enter","scale","t33","LuZoomOut","LuZoomIn","t34","t35","t36","BiFontSize","t37","t38","BsBookmarks","t39","t40","MdOutlineFitScreen","t41","t42","t43","LuGalleryHorizontal","t44","t45","RiGalleryView2","t46","t47","t48","currentScale","useFullscreen","isFullscreen","setIsFullscreen","document","fullscreenElement","exitFullscreen","catch","console","then","documentElement","requestFullscreen","navigationUI","onToggleFullscreenClick","fullscreenchangeHandler","addEventListener","removeEventListener","TopBar","manifest$","IoIosArrowBack","IoMdMore","MdFullscreenExit","MdFullscreen","useQuickMenu","onQuickMenuOpenChange","QuickMenu","useQuickMenuToggleGesture","gestures$","selection$","selectionOnPointerdown","handled","val","Field","errorText","helperText","optionalText","ChakraField","RefitDialog","readerWithRefit","refit","settings$","refitSettings","e_0","viewportFit","customWidth","e_1","SearchListItem","contextText","startOffset","onClick","substring","before","after","margin","overflow","preventDefault","display","textDecoration","DEBOUNCE_TIME","useSearch","searchSubject","searchValue","readerWithSearch","search","bind","setValue","status","BehaviorSubject","SearchDialogContent","onValueChange","consolidatedResults","Input","overflowY","result","j","startContainer","parentElement","itemPageIndex","SearchDialog","TableOfContentsDialogContent","assumedRenditionLayout","nav","toc","currentSpineItemOrChapterPageIndex","currentSubChapter","buildTocForItem","tocItem","lvl","alignItems","goToUrl","path","LuCircleCheck","tocItem_0","index_0","tocItem_1","index_1","TableOfContentsDialog","useZoomSettings","zoomMaxScale","STEP","MIN","normalizeZoomValue","clamped","stepped","ZoomControls","animationFrameScheduler","leading","zoomScaleValue","isZooming","normalizedZoomScaleValue","scaleAt","constrain","BookmarksEffects","Effects","InnerReactReader","enableFloatingTime","isTableOfContentsOpen","setIsTableOfContentsOpen","isHelpOpen","setIsHelpOpen","isSearchOpen","setIsSearchOpen","isAnnotationsOpenWith","setIsAnnotationsOpenWith","isGalleryOpen","setIsGalleryOpen","setQuickMenuOpen","_onItemClick","ReactReader","slots","container","containerProps"],"mappings":"ypDAAaA,GAA+B,qBAC/BC,GAAiB,ECkFjBC,GAAkBA,KAA0B,CACvDC,eAAgB,GAChBC,uBAAyBC,GAASA,EAClCC,OAAQC,OACRC,oCAAqCC,EAAAA,OAAwC,CAC3EC,QAASH,MAAAA,CACV,EACDI,qBAAsB,IAAIC,EAAAA,QAC1BC,cAAe,GACfC,sBAAuBA,IAAM,CAAC,EAC9BC,iBAAkB,GAClBC,yBAA0BA,IAAM,CAAC,EACjCC,YAAa,GACbC,YAAa,EACbC,qBAAsB,EACtBC,uBAAwB,GACxBC,kBAAmBd,MACrB,GAEae,GAAgBC,EAAAA,cAC3Bd,SAAO,CAAEC,QAASR,GAAAA,CAAkB,CAAC,CACvC,ECnGasB,GAAwBC,GAAA,CAAA,MAAAC,EAAAC,EAAAA,EAAA,CAAA,EAGnCC,EAAgBC,EAAAA,WAAWP,EAAa,EAAC,IAAAQ,EAAAJ,EAAA,CAAA,IAAAE,GAAAF,OAAAD,GAGvCK,EAAAA,IAAMF,EAAOG,KAAMC,GAAAA,UAAUP,CAAI,CAAC,EAACC,KAAAE,EAAAF,KAAAD,EAAAC,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAAA,IAAAO,EAAAP,OAAAE,EAAAM,OAAAR,OAAAD,GAGnBQ,EAAAE,GAAAA,KAAKP,EAAOM,MAAQT,CAAI,EAACC,EAAA,CAAA,EAAAE,EAAAM,MAAAR,KAAAD,EAAAC,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAAA,IAAAU,EAAAV,OAAAO,GAFzCG,EAAA,CAAAC,UACaC,GAAAA,eAAcC,aACXN,CAAAA,EACfP,KAAAO,EAAAP,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAAA,IAAAc,EAAA,OAAAd,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GACDF,EAAA,CAAA,EAAEd,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EANGiB,EAAAA,WACLb,EACAM,EAIAI,CACF,EAACI,IAAK,EAGKC,GAAmBA,IACvBhB,EAAAA,WAAWP,EAAa,EChB3BwB,GAAuC,GAGhCC,GAAeC,EAAAA,KAC1BlB,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,CAAA,EAAA,IAAAsB,EAAAC,EAAAxB,OAAAI,GAAC,CAAAmB,SAAAA,EAAA,GAAAC,CAAAA,EAAApB,EAMgBJ,KAAAI,EAAAJ,KAAAuB,EAAAvB,KAAAwB,IAAAD,EAAAvB,EAAA,CAAA,EAAAwB,EAAAxB,EAAA,CAAA,GAAA,IAAAO,EAAAP,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GACuDT,EAAA,CACpE,sCACA,cAAc,EACfP,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAHD,KAAA,CAAAlB,oCAAAA,CAAAA,EAAgDgB,GAAsBS,CAGrE,EAIDkB,EAHsCC,EAAAA,eACpC5C,CACF,GAE+B6C,gBAAoB,CAAA,GAAWC,WAA5DR,GACoC,IAAAV,EAAAV,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAInBN,EAAA,CAAAmB,MAAS,UAASC,QAAW,UAAA,EAAY9B,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAGhD,MAAAc,EAAA,QAAQW,CAAe,gCAA+B,IAAAM,EAAA,OAAA/B,EAAA,CAAA,IAAAuB,GAAAvB,OAAAwB,GAAAxB,EAAA,CAAA,IAAAc,GAJhEiB,EAAAC,EAAAA,IAACC,EAAAA,SAAA,CACgB,cAAAvB,EACG,kBAAA,WACT,SAAA,WACD,OAAAI,EACD,MAAA,EACS,gBAAA,WACT,OAAA,KACM,aAAA,KACV,EAAA,EACK,QAAA,OACM,cAAA,MACT,IAAA,EAAC,GACFU,EAEHD,SAAAA,CAAAA,CACH,EAAWvB,KAAAuB,EAAAvB,KAAAwB,EAAAxB,KAAAc,EAAAd,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EAhBX+B,CAgBW,CAGjB,ECxCaG,EAAYA,IAAA,CAAA,MAAAlC,EAAAC,EAAAA,EAAA,CAAA,EAAA,IAAAG,EAAAJ,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GACkBZ,EAAA,CAAC,QAAQ,EAACJ,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAAnD,KAAA,CAAApB,OAAAA,CAAAA,EAAmBkB,GAAsBM,CAAU,EAAC,OAE7CxB,CAAM,EAGFuD,GACXvD,GAEO,CAAC,CAACA,GAAU,mCAAoCA,EAG5CwD,GACXxD,GAEO,CAAC,CAACA,GAAU,wCAAyCA,EAGjDyD,GACXzD,GAEO,CAAC,CAACA,GAAU,oCAAqCA,EAG7C0D,GACX1D,GAEO,CAAC,CAACA,GAAU,kCAAmCA,EChC3C2D,GAA2BA,IAAA,CAAA,MAAAvC,EAAAC,EAAAA,EAAA,CAAA,EACtCrB,EAAesD,EAAAA,EAAW,IAAA9B,EAAA,OAAAJ,OAAApB,GACEwB,EAAAgC,GAAuBxD,CAEvC,EAFgBA,EAAAC,OAEfmB,KAAApB,EAAAoB,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAFeI,CAIF,ECIfoC,GAAmBA,IAAA,CAAA,MAAAxC,EAAAC,EAAAA,EAAA,EAAA,EAC9BrB,EAAe2D,GAAAA,EACfrC,EAAgBiB,GAAAA,EAAkB,IAAAf,EAAAJ,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GACkBZ,EAAA,CAAC,mBAAmB,EAACJ,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAAzE,KAAA,CAAAL,kBAAAA,CAAAA,EAA8BG,GAAsBM,CAAqB,EAAC,IAAAG,EAAAP,OAAApB,GAExE2B,EAAAA,IACE3B,GAAM6D,UAA0BC,eAAKrC,KACnCsC,EAAAA,UAAU,IACR/D,EAAM6D,UAAUG,cAAcvC,KAC5BwC,EAAAA,IAAIC,EAAW,EACfC,EAAAA,UAAU,EAAI,CAChB,CACF,CACO,GAPTC,EAAAA,MAOUhD,KAAApB,EAAAoB,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAAA,IAAAU,EAAAV,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GACZN,EAAA,CAAAG,aAAgB,EAAA,EAAOb,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAAA,IAAAc,EAAAd,OAAApB,GACvBkC,EAAA,CAAClC,CAAM,EAACoB,KAAApB,EAAAoB,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAXV,KAAA,CAAAkB,KAAA+B,CAAAA,EAAyBhC,aACvBV,EASAG,EACAI,CACF,EAGyBiB,EAAAkB,GAAA,CAAWtD,EAAiB,IAAAuD,EAAAlD,OAAAE,GAAAF,EAAA,CAAA,IAAApB,GAAA6D,WAItCS,EAAAA,IAAA,CACP,MAAAT,EAAkB7D,GAAM6D,UAAwBU,aAAAA,EAE3CV,GAELvC,EAAOkD,OAAQC,IAAY,CAAA,GACtBA,EAAK1D,kBACW,CAAA8C,UAAAA,CAAAA,CAEnB,EACA,CAAC,EACJzC,KAAAE,EAAAF,EAAA,CAAA,EAAApB,GAAA6D,UAAAzC,KAAAkD,GAAAA,EAAAlD,EAAA,CAAA,EAAA,IAAAsD,EAAAtD,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAEDsC,QAACC,GAAAA,OAAA,EAAM,EAAGvD,KAAAsD,GAAAA,EAAAtD,EAAA,CAAA,EAAA,IAAAwD,EAAAxD,QAAAkD,GAhBZM,SAACC,SAAA,CACS,QAAA,UACH,KAAA,KACI,QAAAP,EAaTI,SAAAA,CAAAA,EAAU,UAAA,EAEZ,EAAStD,MAAAkD,EAAAlD,MAAAwD,GAAAA,EAAAxD,EAAA,EAAA,EAAA,IAAA0D,EAAA1D,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GACT0C,SAACD,SAAA,CAAe,QAAA,UAAe,KAAA,KAAK,SAAA,GAClC,SAAA,CAAAzB,EAAAA,IAAC2B,GAAAA,cAAA,EAAa,EAAG,UAAA,EAEnB,EAAS3D,MAAA0D,GAAAA,EAAA1D,EAAA,EAAA,EAAA,IAAA4D,EAAA,OAAA5D,EAAA,EAAA,IAAA+B,GAAA/B,QAAAwD,GAvBXI,SAACvC,GAAA,CAAsB,QAAAU,EACrByB,SAAAA,CAAAA,EAmBAE,CAAAA,EAIF,EAAe1D,MAAA+B,EAAA/B,MAAAwD,EAAAxD,MAAA4D,GAAAA,EAAA5D,EAAA,EAAA,EAxBf4D,CAwBe,EA3Ca,SAAAd,IAAA,CAAA,MASV,EAAK,CCrBpB,MAAMe,GAAeA,CAACC,EAAcC,EAAY,KACjDD,EAAKE,QAAUD,EAAkBD,EAC9B,GAAGA,EAAKG,MAAM,EAAGF,CAAS,CAAC,MCKvBG,GAAcC,GAAMC,WAG/B,SAAAC,EAAAC,EAAA,CAAA,MAAAtE,EAAAC,EAAAA,EAAA,CAAA,EAAA,IAAAG,EAAAJ,EAAA,CAAA,IAAAqE,EAAA9C,UAGKnB,EAAAiE,EAAK9C,UAAaS,EAAAA,IAACuC,GAAAA,IAAA,CAAA,CAAG,EAAGvE,EAAA,CAAA,EAAAqE,EAAA9C,SAAAvB,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAAA,IAAAO,EAAA,OAAAP,EAAA,CAAA,IAAAqE,GAAArE,OAAAsE,GAAAtE,EAAA,CAAA,IAAAI,GAD5BG,EAAAyB,EAAAA,IAACwC,EAAAA,YAAyB,QAAA,QAAmB,aAAA,QAAaF,IAAAA,EAAG,GAAMD,EAChEjE,SAAAA,CAAAA,CACH,EAAmBJ,KAAAqE,EAAArE,KAAAsE,EAAAtE,KAAAI,EAAAJ,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAFnBO,CAEmB,CAEtB,ECNYkE,GAAgBN,GAAMC,WAGjC,SAAAC,EAAAC,EAAA,CAAA,MAAAtE,EAAAC,EAAAA,EAAA,EAAA,EAAA,IAAAsB,EAAAmD,EAAAC,EAAAnD,EAAApB,EAAAJ,OAAAqE,GACA,CAAA9C,SAAAA,EAAAqD,UAAAxE,EAAAuE,UAAAA,EAAAD,OAAAA,EAAA,GAAAlD,CAAAA,EAAmE6C,EAAKrE,KAAAqE,EAAArE,KAAAuB,EAAAvB,KAAA0E,EAAA1E,KAAA2E,EAAA3E,KAAAwB,EAAAxB,KAAAI,IAAAmB,EAAAvB,EAAA,CAAA,EAAA0E,EAAA1E,EAAA,CAAA,EAAA2E,EAAA3E,EAAA,CAAA,EAAAwB,EAAAxB,EAAA,CAAA,EAAAI,EAAAJ,EAAA,CAAA,GAEpD,MAAAO,IAFFH,IAAAvB,OAAA,GAAAuB,GAEY,IAAAM,EAAAV,EAAA,CAAA,IAAAuB,GAAAvB,OAAAsE,GAAAtE,EAAA,CAAA,IAAAwB,GAExBd,EAAAsB,EAAAA,IAAA6C,SAAA,QAAA,CAA2BP,IAAAA,EAAG,GAAM9C,EAAe,QAAA,GAChDD,SAAAA,EACH,EAAuBvB,KAAAuB,EAAAvB,KAAAsE,EAAAtE,KAAAwB,EAAAxB,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAAA,IAAAc,EAAAd,EAAA,EAAA,IAAA0E,GAAA1E,QAAAU,GAHzBI,QAAA+D,EAAAA,OAAA,WAAA,CAAkCH,QAAAA,EAChChE,SAAAA,EAGF,EAA0BV,MAAA0E,EAAA1E,MAAAU,EAAAV,MAAAc,GAAAA,EAAAd,EAAA,EAAA,EAAA,IAAA+B,EAAA,OAAA/B,EAAA,EAAA,IAAA2E,GAAA3E,QAAAO,GAAAP,EAAA,EAAA,IAAAc,GAL5BiB,QAAC+C,EAAAA,OAAA,CAAiB,SAAAvE,EAAuBoE,UAAAA,EACvC7D,SAAAA,EAKF,EAASd,MAAA2E,EAAA3E,MAAAO,EAAAP,MAAAc,EAAAd,MAAA+B,GAAAA,EAAA/B,EAAA,EAAA,EANT+B,CAMS,CAEZ,EAEiCoC,GAAMC,WAGtC,SAAAC,EAAAC,EAAA,CAAA,MAAAtE,EAAAC,EAAAA,EAAA,CAAA,EAAA,IAAAG,EAAAJ,OAAAsE,GASIlE,EAAA4B,EAAAA,IAACkC,GAAA,CAAiB,KAAA,KAAUI,IAAAA,EAAG,EAAItE,KAAAsE,EAAAtE,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAAA,IAAAO,EAAA,OAAAP,EAAA,CAAA,IAAAqE,GAAArE,OAAAI,GAPrCG,EAAAyB,EAAAA,IAAA6C,SAAA,aAAA,CACW,SAAA,WACL,IAAA,IACK,SAAA,IAAG,GACRR,EACJ,QAAA,GAEAjE,SAAAA,EACF,EAA4BJ,KAAAqE,EAAArE,KAAAI,EAAAJ,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAR5BO,CAQ4B,CAE/B,EAE4BsE,EAAAA,OAAaE,QACnC,MAAMC,GAAaH,EAAAA,OAAaI,KACXJ,EAAAA,OAAaK,OAClC,MAAMC,GAAeN,EAAAA,OAAaO,OAC5BC,GAAaR,EAAAA,OAAaS,KAC1BC,GAAiBV,EAAAA,OAAaW,SACVX,EAAAA,OAAaY,YACnBZ,EAAAA,OAAaa,MACLb,EAAAA,OAAac,cCjChD,MAAMC,GAAmB,CACvB,yBACA,yBACA,yBACA,yBACA,wBAA0B,EAGfC,GAAmBvE,EAAAA,KAAK,IAAA,CAAA,MAAAtB,EAAAC,EAAAA,EAAA,EAAA,EACnCrB,EAAe2D,GAAAA,EAA0B,IAAAnC,EAAAJ,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAMfZ,EAAA,CACxB,oBACA,qBACA,qBACA,oBAAoB,EACrBJ,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAVD,KAAA,CAAAL,kBAAAA,EAAAmG,mBAAAA,EAAAC,mBAAAA,EAAAC,mBAAAA,CAAAA,EAKIlG,GAAsBM,CAKzB,EACDF,EAAgBiB,GAAAA,EAChB,CAAA8E,UAAAA,EAAAxD,UAAAA,CAAAA,EAAiC9C,GAAA,CAAA,EACjC,CAAAuG,EAAAC,CAAA,EAA0CC,EAAAA,SACxCR,KACF,EACA,CAAAS,EAAAC,CAAA,EAAgCF,EAAAA,SAAiB,EAAE,EACnDnD,EAAe,CAAC,EAAER,GAAAwD,GAAuB,IAAA1F,EAAAP,OAAAE,GAEzBK,EAAAA,IAAA,CACdL,EAAOkD,OAAQN,EAGb,CAAC,EACJ9C,KAAAE,EAAAF,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EALD,MAAAuG,EAAgBhG,EAKf,IAAAG,EAAAV,OAAAuG,GAEuE7F,EAAA8F,GAAA,CAGjEA,EAAKC,MACRF,EAAAA,CACD,EACFvG,KAAAuG,EAAAvG,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAND,MAAA0G,EAAwEhG,EAQxEiG,EAAuBV,GAASU,eAChCC,EAAyBX,GAASY,MAAO,IAAA/F,EAAAd,OAAAsG,GAE/BxF,EAAAA,IAAA,CAGRwF,EAAY,EAAE,CAAC,EAChBtG,KAAAsG,EAAAtG,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAAA,IAAA+B,EAAA/B,OAAAiD,GAAElB,EAAA,CAACkB,CAAM,EAACjD,KAAAiD,EAAAjD,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EAJX8G,EAAAA,UAAUhG,EAIPiB,CAAQ,EAEX+E,EAAAA,UAAU,IAAA,CACRR,EAAYM,GAAA,EAAsB,CAAC,EAClC,CAACA,CAAgB,CAAC,EAErBE,EAAAA,UAAU,IAAA,CAINX,EADEQ,GAGef,GAAgB,CAAA,CAFF,CAGhC,EACA,CAACe,EAAgB1D,CAAM,CAAC,EAAC,IAAAC,EAAAlD,EAAA,CAAA,IAAAE,GAAAF,QAAApB,GAAAmI,YAAAC,eAG1B9D,YAAA,CAAA,OACStE,GAAMmI,YAA2BC,cAAK3G,KAC3C4G,EAAAA,IAAI3D,IAAA,CAAC,KAAA,CAAA2C,UAAAiB,CAAAA,EAAA5D,GACHpD,EAAOkD,OAAQ+D,KAAY,CAAA,GACtB9D,GAAK1D,kBACW,CAAAsG,UACjBA,CAAAA,CACF,EACA,CAAC,CACJ,CACH,CAAC,EACFjG,KAAAE,EAAAF,EAAA,EAAA,EAAApB,GAAAmI,YAAAC,cAAAhH,MAAAkD,GAAAA,EAAAlD,EAAA,EAAA,EAAA,IAAAsD,EAAAtD,QAAApB,GACD0E,EAAA,CAAC1E,CAAM,EAACoB,MAAApB,EAAAoB,MAAAsD,GAAAA,EAAAtD,EAAA,EAAA,EAbVoH,EAAAA,aACElE,EAYAI,CACF,EAGG,MAAA+D,EAAArC,GAAqBxB,EAAA,SAAQ,IAAAE,EAAA1D,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAC5B0C,QAAC6B,GAAA,EAAc,EAAGvF,MAAA0D,GAAAA,EAAA1D,EAAA,EAAA,EACjB,MAAAsH,EAAA7C,GACE8C,EAAApC,GAA+BvB,EAAA,MAC7B4D,EAAAvB,EAAA,YAAA,eAEkBpC,GAAapB,GAASA,WAAqBgF,SAAAA,GAA9B,GAAwC,EAAE,CAAC,IAAG,IAAAC,EAAA1H,EAAA,EAAA,IAAAuH,GAAAvH,QAAAwH,GAHhFE,EAAA1F,EAAAA,IAACuF,EAAA,CAA+B,kBAAA3D,EAC7B4D,SAAAA,EAGH,EAAexH,MAAAuH,EAAAvH,MAAAwH,EAAAxH,MAAA0H,GAAAA,EAAA1H,EAAA,EAAA,EAAA,IAAA2H,EAAA3H,EAAA,EAAA,IAAAkG,GAAAlG,QAAAmG,GAIRwB,EAAA/B,GAAgB/C,IAAK+E,GACpB5F,EAAAA,IAAC6F,EAAAA,IAAA,CACUD,QAAAA,EACD,UACD,SAEM,aAAA,MACN,OAAA,aACF1B,IAAkB0B,GAAlB,CAAAE,OACK,iBAAA,EAED,QAAA,IAAM3B,EAAiByB,CAAK,CAAA,EANhCA,CAMiC,CAEzC,EAAC5H,MAAAkG,EAAAlG,MAAAmG,EAAAnG,MAAA2H,GAAAA,EAAA3H,EAAA,EAAA,EAAA,IAAA+H,EAAA/H,QAAA2H,GAdJI,QAACC,EAAAA,MAAA,CAAW,MAAiB,cAAA,MAC1BL,SAAAA,EAcH,EAAQ3H,MAAA2H,EAAA3H,MAAA+H,GAAAA,EAAA/H,EAAA,EAAA,EAAA,IAAAiI,EAAAjI,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GACRiH,QAACC,EAAAA,MAAK,SAAA,aAAA,CAAW,EAAOlI,MAAAiI,GAAAA,EAAAjI,EAAA,EAAA,EAAA,IAAAmI,EAAAnI,QAAAsG,GAGZ6B,EAAAC,GAAW9B,EAAYE,EAAK6B,OAAO7H,KAAM,EAACR,MAAAsG,EAAAtG,MAAAmI,GAAAA,EAAAnI,EAAA,EAAA,EAAA,IAAAsI,EAAAtI,EAAA,EAAA,IAAAqG,GAAArG,QAAAmI,GAFtDG,EAAAtG,EAAAA,IAACuG,WAAA,CACQlC,MAAAA,EACG,SAAA8B,EAA0C,EACpDnI,MAAAqG,EAAArG,MAAAmI,EAAAnI,MAAAsI,GAAAA,EAAAtI,EAAA,EAAA,EAAA,IAAAwI,EAAAxI,EAAA,EAAA,IAAA+H,GAAA/H,QAAAsI,GArBJE,SAACR,QAAA,CACCD,SAAAA,CAAAA,EAgBAE,EACAK,CAAAA,EAIF,EAAQtI,MAAA+H,EAAA/H,MAAAsI,EAAAtI,MAAAwI,GAAAA,EAAAxI,EAAA,EAAA,EAAA,IAAAyI,EAAAzI,EAAA,EAAA,IAAAqG,GAAArG,QAAA8F,GAAA9F,EAAA,EAAA,IAAAuG,GAAAvG,EAAA,EAAA,IAAApB,GAAAmI,aAAA/G,QAAAkG,GAAAlG,EAAA,EAAA,IAAAyC,GACPgG,EAAA,CAAC,CAAChG,GACDT,EAAAA,IAACyB,EAAAA,OAAA,CACU,QAAA,IAAA,CACP8C,EAAAA,EAEA,MAAAmC,EAAmB9J,GAAMmI,YAA8B4B,iBAAC,CAAA,GACnDlG,EAASkE,eACIT,EAAaW,MACtBR,CAAAA,CACR,EAEGqC,GACF5C,IAAqB4C,CAAU,CAChC,EAEJ,SAAA,YAED,EACD1I,MAAAqG,EAAArG,MAAA8F,EAAA9F,MAAAuG,EAAAvG,EAAA,EAAA,EAAApB,GAAAmI,YAAA/G,MAAAkG,EAAAlG,MAAAyC,EAAAzC,MAAAyI,GAAAA,EAAAzI,EAAA,EAAA,EAAA,IAAA4I,EAAA5I,QAAAqG,GAAArG,EAAA,EAAA,IAAAiG,GAAAjG,EAAA,EAAA,IAAAgG,GAAAhG,EAAA,EAAA,IAAA+F,GAAA/F,QAAAuG,GAAAvG,EAAA,EAAA,IAAAkG,GACA0C,GAAC,CAAC3C,GACD4C,EAAAA,KAACb,EAAAA,MAAA,CAAgB,UAAA,MACf,SAAA,CAAAhG,EAAAA,IAACyB,EAAAA,OAAA,CACO,KAAA,EACG,QAAA,IAAA,CACP8C,EAAAA,EAEAR,IAAqB,CAAA+C,GACf7C,EAAS6C,GAAGnC,eACAT,EAAaW,MACtBR,CAAAA,CACR,CAAC,EAEL,SAAA,SAED,QACC5C,EAAAA,OAAA,CACO,OACE,QAAA,UACC,QAAA,IAAA,CACP8C,EAAAA,EAEAP,IAAqBC,EAAS6C,EAAG,CAAC,EAErC,SAAA,QAAA,CAED,CAAA,EACF,EACD9I,MAAAqG,EAAArG,MAAAiG,EAAAjG,MAAAgG,EAAAhG,MAAA+F,EAAA/F,MAAAuG,EAAAvG,MAAAkG,EAAAlG,MAAA4I,GAAAA,EAAA5I,EAAA,EAAA,EAAA,IAAA+I,EAAA/I,EAAA,EAAA,IAAAwI,GAAAxI,QAAAyI,GAAAzI,EAAA,EAAA,IAAA4I,GAvEHG,EAAAF,EAAAA,KAACxD,IAAgB,IAAA,EAAW,QAAA,OAAqB,cAAA,SAAa,GAAA,EAC5DmD,SAAAA,CAAAA,EAuBCC,EAmBAG,CAAAA,EA6BH,EAAa5I,MAAAwI,EAAAxI,MAAAyI,EAAAzI,MAAA4I,EAAA5I,MAAA+I,GAAAA,EAAA/I,EAAA,EAAA,EAAA,IAAAgJ,EAAAhJ,EAAA,EAAA,IAAAsH,GAAAtH,QAAA0H,GAAA1H,EAAA,EAAA,IAAA+I,GA9EfC,SAAC1B,EAAA,CACCI,SAAAA,CAAAA,EAKAqB,CAAAA,EAyEF,EAAgB/I,MAAAsH,EAAAtH,MAAA0H,EAAA1H,MAAA+I,EAAA/I,MAAAgJ,GAAAA,EAAAhJ,EAAA,EAAA,EAAA,IAAAiJ,EAAA,OAAAjJ,EAAA,EAAA,IAAAqH,GAAArH,EAAA,EAAA,IAAAiD,GAAAjD,EAAA,EAAA,IAAA0G,GAAA1G,EAAA,EAAA,IAAAgJ,GAAAhJ,QAAA0D,GAjFlBuF,SAAC5B,EAAA,CAAqB,UAAA7D,EAAuBkD,aAAAA,EAAoBzD,KAAAA,EAC/DS,SAAAA,CAAAA,EACAsF,CAAAA,EAgFF,EAAahJ,MAAAqH,EAAArH,MAAAiD,EAAAjD,MAAA0G,EAAA1G,MAAAgJ,EAAAhJ,MAAA0D,EAAA1D,MAAAiJ,GAAAA,EAAAjJ,EAAA,EAAA,EAlFbiJ,CAkFa,CAEhB,EAhKoC,SAAAnG,GAAAO,EAAA,CAAA,MAsBN,CAAA,GACtBA,EAAK1D,kBACWd,MAAAA,CACpB,CCzCE,MAAMqK,GAAgB/E,GAAMC,WAGjC,SAAAC,EAAAC,EAAA,CAAA,MAAAtE,EAAAC,EAAAA,EAAA,EAAA,EAAA,IAAAsB,EAAAoD,EAAAnD,EAAApB,EAAAG,EAAAP,OAAAqE,GACA,CAAA9C,SAAAA,EAAAqD,UAAAxE,EAAAuE,UAAAA,EAAAwE,SAAA5I,EAAA,GAAAiB,CAAAA,EAMI6C,EAAKrE,KAAAqE,EAAArE,KAAAuB,EAAAvB,KAAA2E,EAAA3E,KAAAwB,EAAAxB,KAAAI,EAAAJ,KAAAO,IAAAgB,EAAAvB,EAAA,CAAA,EAAA2E,EAAA3E,EAAA,CAAA,EAAAwB,EAAAxB,EAAA,CAAA,EAAAI,EAAAJ,EAAA,CAAA,EAAAO,EAAAP,EAAA,CAAA,GAJP,MAAA4E,EAAAxE,IAAAvB,OAAA,GAAAuB,EAEA+I,EAAA5I,IAAA1B,OAAA,GAAA0B,EAKkBG,GAACkE,EAAS,IAAA9D,EAAAd,OAAAmJ,GACzBrI,EAAAqI,GAAYnH,EAAAA,IAAAoH,EAAAA,OAAA,SAAA,CAAA,CAAA,EAAyBpJ,KAAAmJ,EAAAnJ,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAAA,IAAA+B,EAAA/B,EAAA,CAAA,IAAAuB,GAAAvB,OAAAsE,GAAAtE,EAAA,EAAA,IAAAwB,GACtCO,6BACE,eAAAqH,EAAAA,OAAA,QAAA,CAA2B9E,IAAAA,EAAG,GAAM9C,EAAe,QAAA,GAChDD,SAAAA,EACH,EACF,EAA0BvB,KAAAuB,EAAAvB,KAAAsE,EAAAtE,MAAAwB,EAAAxB,MAAA+B,GAAAA,EAAA/B,EAAA,EAAA,EAAA,IAAAkD,EAAA,OAAAlD,EAAA,EAAA,IAAA2E,GAAA3E,EAAA,EAAA,IAAAU,GAAAV,EAAA,EAAA,IAAAc,GAAAd,QAAA+B,GAN5BmB,EAAA2F,EAAAA,KAAC/D,EAAAA,OAAA,CAAiB,SAAApE,EAAuBiE,YACtC7D,SAAAA,CAAAA,EACDiB,CAAAA,EAKF,EAAS/B,MAAA2E,EAAA3E,MAAAU,EAAAV,MAAAc,EAAAd,MAAA+B,EAAA/B,MAAAkD,GAAAA,EAAAlD,EAAA,EAAA,EAPTkD,CAOS,CAEZ,EAEYmG,GAAqBlF,GAAMC,WAGtC,SAAAC,EAAAC,EAAA,CAAA,MAAAtE,EAAAC,EAAAA,EAAA,CAAA,EAAA,IAAAG,EAAAJ,OAAAqE,EAAA9C,UAAAvB,OAAAsE,GASIlE,QAAC8D,GAAA,CAAiB,KAAA,KAAUI,IAAAA,EACzBD,WAAK9C,SACR,EAAcvB,EAAA,CAAA,EAAAqE,EAAA9C,SAAAvB,KAAAsE,EAAAtE,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAAA,IAAAO,EAAA,OAAAP,EAAA,CAAA,IAAAqE,GAAArE,OAAAI,GAThBG,EAAAyB,EAAAA,IAAAoH,SAAA,aAAA,CACW,SAAA,WACL,IAAA,IACK,SAAA,IAAG,GACR/E,EACJ,QAAA,GAEAjE,SAAAA,EAGF,EAA4BJ,KAAAqE,EAAArE,KAAAI,EAAAJ,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAV5BO,CAU4B,CAE/B,EAEY+I,GAAaF,EAAAA,OAAanE,KAC1BsE,GAAeH,EAAAA,OAAalE,OAC5BsE,GAAeJ,EAAAA,OAAahE,OAC5BqE,GAAaL,EAAAA,OAAa9D,KACT8D,EAAAA,OAAa5D,SACpC,MAAMkE,GAAcN,EAAAA,OAAa1D,MACP0D,EAAAA,OAAa3D,YACjB2D,EAAAA,OAAarE,QACnC,MAAM4E,GAAsBP,EAAAA,OAAazD,cCzDnCiE,GAAgBd,GAAA,CAAA,MAAA9I,EAAAC,EAAAA,EAAA,CAAA,EAC3BrB,EAAesD,EAAAA,EAAW,IAAA9B,EAAAJ,OAAApB,GACIwB,EAAAgC,GAAuBxD,CAEzC,EAFkBA,EAAAC,OAEjBmB,KAAApB,EAAAoB,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAFb,MAAA6J,EAA8BzJ,EAEjB,IAAAG,EAAAP,EAAA,CAAA,IAAA8I,GAAA9I,OAAA6J,GAGXtJ,EAAAA,IACEsJ,GAAqB9C,YAA0B+C,aAAKzJ,KAClDwC,MAAIkH,GAAWA,EAAKC,KAAMC,GAAUA,EAAInB,KAAQA,CAAE,CAAC,EACnDoB,EAAAA,OAAOC,EAAAA,SAAS,EAChBxH,EAAAA,aAAoBkH,EAAqBO,eAAgBH,CAAI,CAAC,CAChE,EAACjK,KAAA8I,EAAA9I,KAAA6J,EAAA7J,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAAA,IAAAU,EAAA,OAAAV,OAAA6J,GACHnJ,EAAA,CAACmJ,CAAqB,EAAC7J,KAAA6J,EAAA7J,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAPlBiB,EAAAA,WACLV,EAMAG,CACF,CAAC,ECbU2J,GAAqBjK,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,EAAA,EAAC,CAAA6I,GAAAA,EAAAwB,WAAAA,EAAAC,cAAAhK,CAAAA,EAAAH,EAGjCmK,EAAAhK,IAAA1B,OAAA,GAAA0B,EAMA3B,EAAesD,EAAAA,EACf,CAAAhB,KAAAwH,CAAAA,EAA6BkB,GAAcd,CAAE,EAAC,IAAApI,EAAAV,EAAA,CAAA,IAAA0I,GAAA8B,KAAAC,MAAAC,aAAA1K,EAAA,CAAA,IAAA0I,GAAA8B,KAAAG,OAE5CjK,EAAAgI,GAAU8B,KAAYG,OAAUlD,YAAMiB,GAAU8B,KAAWC,MAAaC,YAAA1K,KAAA0I,GAAA8B,KAAAC,MAAAC,YAAA1K,EAAA,CAAA,EAAA0I,GAAA8B,KAAAG,MAAA3K,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAD1E,MAAA0K,EACEhK,EAAwE,IAAAI,EAAAd,EAAA,CAAA,IAAA0I,GAAA8B,MAAAxK,EAAA,CAAA,IAAAsK,GAAAtK,EAAA,CAAA,IAAApB,GAAAgM,YAM3D9J,EAAAA,IAAA,CACPwJ,EAAAA,EAEA1L,GAAMgM,WAAoBC,QAACnC,GAAU8B,KAAUM,KAApB,EAA0B,CAAC,EACvD9K,EAAA,CAAA,EAAA0I,GAAA8B,KAAAxK,KAAAsK,EAAAtK,EAAA,CAAA,EAAApB,GAAAgM,WAAA5K,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAAA,IAAA+B,EAAA/B,EAAA,CAAA,IAAAuK,GAAAvK,OAAA0I,GAAAqC,UAAAlE,OAEA9E,EAAA2G,GAAUqC,UAAiBlE,MAC1B7E,EAAAA,IAAAgJ,EAAAA,KAAA,UAAA,CAAgB,QAAA,GACd,SAAAhJ,EAAAA,IAAC2B,GAAAA,cAAA,CAAA,CAAa,CAAA,CAChB,EACE4G,EACFvI,EAAAA,IAAAgJ,EAAAA,KAAA,UAAA,CAAgB,QAAA,GAAmB,WAAA,SACjC,SAAAhJ,EAAAA,IAAC2B,GAAAA,cAAA,CAAA,CAAa,CAAA,CAChB,EAHE,KAII3D,KAAAuK,EAAAvK,EAAA,CAAA,EAAA0I,GAAAqC,UAAAlE,MAAA7G,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EAAA,IAAAkD,EAAAlD,QAAA0I,GAAA8B,MAAAxK,QAAA0K,GAELxH,EAAAwH,EACC1I,EAAAA,IAACkG,OAAA,CAAgB,UAAA,EAAY,SAAA,gBAE7B,EAEAW,EAAAA,KAACX,QAAgB,UAAA,EAAY,SAAA,KAAe,UAAA,SAAS,SAAA,CAAA,SAC5CQ,GAAU8B,KAAwBS,mBAAlC,GAA2C,CAAA,EACpD,EACDjL,EAAA,EAAA,EAAA0I,GAAA8B,KAAAxK,MAAA0K,EAAA1K,MAAAkD,GAAAA,EAAAlD,EAAA,EAAA,EAKC,MAAAsD,EAAA,cACAoF,GAAU8B,MAAyBS,oBAAKpM,OACpC6J,EAAU8B,KAAKS,kBAAqB,EADxC,sBAE0B,GAC1B,IAAAzH,EAAAxD,QAAAsD,GARFE,EAAAxB,EAAAA,IAACkG,QACW,UAAA,SACC,WAAA,OACF,SAAA,KACT5E,SAAAA,CAAAA,CAIC,EAAOtD,MAAAsD,EAAAtD,MAAAwD,GAAAA,EAAAxD,EAAA,EAAA,EAAA,IAAA0D,EAAA1D,EAAA,EAAA,IAAAkD,GAAAlD,QAAAwD,GAlBZE,EAAAmF,EAAAA,KAACb,EAAAA,MAAA,CAAW,IAAA,EACT9E,SAAAA,CAAAA,EASDM,CAAAA,EASF,EAAQxD,MAAAkD,EAAAlD,MAAAwD,EAAAxD,MAAA0D,GAAAA,EAAA1D,EAAA,EAAA,EAAA,IAAA4D,EAAA,OAAA5D,EAAA,EAAA,IAAAc,GAAAd,QAAA+B,GAAA/B,EAAA,EAAA,IAAA0D,GArCZE,EAAA5B,EAAAA,IAAAgJ,EAAAA,KAAA,KAAA,CACE,gBAACE,EAAAA,KAAA,CACM,KAAA,IACI,QAAApK,EAMRiB,SAAAA,CAAAA,EASD2B,CAAAA,CAAAA,CAoBF,CAAA,CACF,EAAY1D,MAAAc,EAAAd,MAAA+B,EAAA/B,MAAA0D,EAAA1D,MAAA4D,GAAAA,EAAA5D,EAAA,EAAA,EAvCZ4D,CAuCY,ECvDHuH,GAAiBA,IAAA,CAAA,MAAAnL,EAAAC,EAAAA,EAAA,CAAA,EAC5BrB,EAAesD,EAAAA,EAAW,IAAA9B,EAAAJ,OAAApB,GACIwB,EAAAgC,GAAuBxD,CAEzC,EAFkBA,EAAAC,OAEjBmB,KAAApB,EAAAoB,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAFb,MAAA6J,EAA8BzJ,EAEjB,IAAAG,EAAAG,EAAA,OAAAV,OAAA6J,GAGXtJ,EAAAA,IACEsJ,GAAqB9C,YAA0B+C,aAAKzJ,KAClDsC,YAAUyI,GACDvB,EAAqBO,eAAgBgB,CAAU,CACvD,CACH,EACF1K,EAAA,CAACmJ,CAAqB,EAAC7J,KAAA6J,EAAA7J,KAAAO,EAAAP,KAAAU,IAAAH,EAAAP,EAAA,CAAA,EAAAU,EAAAV,EAAA,CAAA,GAPlBiB,EAAAA,WACLV,EAMAG,CACF,CAAC,EChBU2K,GAAgBA,IAAA,CAAA,MAAArL,EAAAC,EAAAA,EAAA,CAAA,EAC3B,CAAAiB,KAAA6F,CAAAA,EAA8BoE,GAAAA,EAAgB,IAAA/K,EAAAJ,OAAA+G,GAGtC3G,EAAA2G,GAAWmD,OAASpH,EAA0C,EAAC9C,KAAA+G,EAAA/G,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAAA,IAAAO,EAAA,OAAAP,OAAAI,GADhEG,EAAA,CAAAW,KACCd,CAAAA,EACPJ,KAAAI,EAAAJ,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAFMO,CAEN,EAL0B,SAAAuC,GAAA4F,EAAA,CAAA,OAIiBA,EAAU8B,KAAKc,UAAW,CCFjE,MAAMC,GAAkBnL,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,CAAA,EAAC,CAAAqK,WAAAA,CAAAA,EAAAlK,EAC9B,CAAAc,KAAA6F,CAAAA,EAA8BsE,GAAAA,EAAe,IAAA9K,EAAAP,EAAA,CAAA,IAAA+G,GAAA/G,OAAAsK,GAIxC/J,EAAAwG,GAAWlE,IAAMoH,GAChBjI,EAAAA,IAACqI,GAAA,CAEK,GAAAJ,EAAIc,SAASjC,GACLwB,WAAAA,CAAAA,EAFPL,EAAIc,SAASjC,GAIrB,EAAC9I,KAAA+G,EAAA/G,KAAAsK,EAAAtK,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAAA,IAAAU,EAAA,OAAAV,OAAAO,GAPJG,EAAAsB,EAAAA,IAAAgJ,EAAAA,KAAA,KAAA,CAAqB,UAAA,OAAY,MAAO,GAAA,EAAW,QAAA,QAChDzK,SAAAA,EAOH,EAAYP,KAAAO,EAAAP,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EARZU,CAQY,ECdH8K,GAAeA,IAAA,CAAA,MAAAxL,EAAAC,EAAAA,EAAA,CAAA,EAC1B,CAAAiB,KAAA6F,CAAAA,EAA8BoE,GAAAA,EAAgB,IAAA/K,EAAAJ,OAAA+G,GAGtC3G,EAAA2G,GAAWmD,OACfpH,EACF,EAAC9C,KAAA+G,EAAA/G,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAAA,IAAAO,EAAA,OAAAP,OAAAI,GAHIG,EAAA,CAAAW,KACCd,CAAAA,EAGPJ,KAAAI,EAAAJ,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAJMO,CAIN,EAPyB,SAAAuC,GAAA4F,EAAA,CAAA,MAKN,CAACA,EAAU8B,KAAKc,YAAhB,CAAgC5C,EAAUqC,SAASlE,KAAM,CCHxE,MAAM4E,GAAgBrL,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,CAAA,EAAC,CAAAqK,WAAAA,CAAAA,EAAAlK,EAC5B,CAAAc,KAAA6F,CAAAA,EAA8ByE,GAAAA,EAAc,IAAAjL,EAAAP,EAAA,CAAA,IAAA+G,GAAA/G,OAAAsK,GAIvC/J,EAAAwG,GAAWlE,IAAMoH,GAChBjI,MAACqI,IAEK,GAAAJ,EAAIc,SAASjC,GACLwB,WAAAA,EACG,cAAA,EAAA,EAHVL,EAAIc,SAASjC,GAKrB,EAAC9I,KAAA+G,EAAA/G,KAAAsK,EAAAtK,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAAA,IAAAU,EAAA,OAAAV,OAAAO,GARJG,EAAAsB,EAAAA,IAAAgJ,EAAAA,KAAA,KAAA,CAAqB,UAAA,OAAY,MAAO,GAAA,EAAW,QAAA,QAChDzK,SAAAA,EAQH,EAAYP,KAAAO,EAAAP,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EATZU,CASY,ECXHgL,GAA2BpK,EAAAA,KACtClB,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,EAAA,EAAC,CAAAqK,WAAAA,EAAAqB,WAAAA,CAAAA,EAAAvL,EAOC,CAAAwL,EAAAC,CAAA,EAAsBzF,EAAAA,SAASuF,GAAA,WAAyB,EAAC,IAAApL,EAAAP,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAKtCT,EAAAuL,GAAOD,EAAOC,EAACtL,KAAqC,EAACR,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAAA,IAAAU,EAAAV,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAGlEN,EAAAmI,EAAAA,KAAAkD,OAAA,QAAA,CAAoB,MAAA,YAClB,SAAA,CAAA/J,EAAAA,IAACgK,GAAAA,WAAA,EAAU,EAAG,WAAA,EAEhB,EAAehM,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAAA,IAAAc,EAAAd,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAJjBF,EAAA+H,EAAAA,KAAAkD,EAAAA,KAAA,KAAA,CACErL,SAAAA,CAAAA,EAIAmI,EAAAA,qBAAoB,MAAA,cAClB,SAAA,CAAA7G,EAAAA,IAAC2B,GAAAA,cAAA,EAAa,EAAG,aAAA,EAEnB,EACA3B,4BACF,EAAYhC,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAAA,IAAA+B,EAAA/B,OAAAsK,GACZvI,EAAAC,EAAAA,IAAA+J,EAAAA,KAAA,QAAA,CAAoB,MAAA,YAClB,SAAA/J,EAAAA,IAACyJ,GAAA,CAA0BnB,WAAAA,CAAAA,GAC7B,EAAetK,KAAAsK,EAAAtK,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EAAA,IAAAkD,EAAAlD,OAAAsK,GACfpH,EAAAlB,EAAAA,IAAA+J,EAAAA,KAAA,QAAA,CAAoB,MAAA,cAClB,SAAA/J,EAAAA,IAACuJ,GAAA,CAA4BjB,WAAAA,CAAAA,GAC/B,EAAetK,KAAAsK,EAAAtK,KAAAkD,GAAAA,EAAAlD,EAAA,CAAA,EAAA,IAAAsD,EAAA,OAAAtD,EAAA,CAAA,IAAA+B,GAAA/B,OAAAkD,GAAAlD,EAAA,CAAA,IAAA4L,GApBjBtI,SAAAyI,EAAAA,KAAA,KAAA,CACSH,MAAAA,EACQ,cAAArL,EAEfO,SAAAA,CAAAA,EAWAiB,EAGAmB,CAAAA,EAGF,EAAYlD,KAAA+B,EAAA/B,KAAAkD,EAAAlD,KAAA4L,EAAA5L,MAAAsD,GAAAA,EAAAtD,EAAA,EAAA,EArBZsD,CAqBY,CAGlB,EC3Ba2I,GAAoB3K,EAAAA,KAC/BlB,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,EAAA,EAAC,CAAAiM,SAAAA,EAAAC,QAAAA,EAAA7B,WAAAA,CAAAA,EAAAlK,EAaWG,EAAA,CAAC,CAAC2L,EAAQ,IAAAxL,EAAAV,OAAAmM,GACFzL,EAAAoL,GAAOK,EAAQL,EAACrF,IAAK,EAACzG,KAAAmM,EAAAnM,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAAA,IAAAc,EAAAd,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAC9BF,EAAA,CAAAsL,OAAU,OAAMC,GAAM,IAAA,EAAMrM,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAAA,IAAA+B,EAAA/B,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAIhCe,EAAAC,EAAAA,IAACwH,GAAA,CACC,SAAAxH,EAAAA,IAAC0H,GAAA,CAAY,uBAAW,EAC1B,EAAe1J,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EAAA,IAAAkD,EAAAlD,EAAA,CAAA,IAAAsK,GAAAtK,OAAAkM,GACfhJ,EAAAlB,EAAAA,IAACyH,IAAiB,KAAA,EAChB,eAACiC,GAAA,CACapB,WAAAA,EACA4B,aAAQ,CAAA,CAExB,EAAalM,KAAAsK,EAAAtK,KAAAkM,EAAAlM,KAAAkD,GAAAA,EAAAlD,EAAA,CAAA,EAAA,IAAAsD,EAAAE,EAAAxD,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GACbsC,EAAAtB,EAAAA,IAACuH,GAAA,CACC,SAAAvH,EAAAA,IAAC2H,GAAA,CAAoB,QAAA,GACnB,SAAA3H,MAACyB,EAAAA,OAAA,CAAe,QAAA,UAAU,SAAA,QAAA,CAAM,CAAA,CAClC,EACF,EACAD,QAAC6F,GAAA,EAAkB,EAAGrJ,KAAAsD,EAAAtD,KAAAwD,IAAAF,EAAAtD,EAAA,CAAA,EAAAwD,EAAAxD,EAAA,CAAA,GAAA,IAAA0D,EAAA1D,OAAAkD,GAfxBQ,EAAAmF,EAAAA,KAACK,GAAA,CAAqB,OAAA,OACpBnH,SAAAA,CAAAA,EAGAmB,EAMAI,EAKAE,CAAAA,EACF,EAAgBxD,KAAAkD,EAAAlD,MAAA0D,GAAAA,EAAA1D,EAAA,EAAA,EAAA,IAAA4D,EAAA,OAAA5D,EAAA,EAAA,IAAAO,GAAAP,QAAAU,GAAAV,EAAA,EAAA,IAAA0D,GAxBlBE,QAAC0F,GAAA,CACC,aACU,UAAA,SACJ,KAAA/I,EACQ,aAAAG,EACR,KAAAI,EACS,eAAA,SAEf4C,SAAAA,EAiBF,EAAa1D,MAAAO,EAAAP,MAAAU,EAAAV,MAAA0D,EAAA1D,MAAA4D,GAAAA,EAAA5D,EAAA,EAAA,EAzBb4D,CAyBa,CAGnB,EChDa0I,GAAQhL,EAAAA,KAAKlB,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,CAAA,EAAC,CAAAsB,SAAAA,CAAAA,EAAAnB,EACzBxB,EAAesD,EAAAA,EAAW,IAAA3B,EAAAP,EAAA,CAAA,IAAApB,GAAA2N,MAAAC,UAExBjM,EAAAA,IAAM3B,GAAM2N,MAAgBC,SAAAxM,EAAA,CAAA,EAAApB,GAAA2N,MAAAC,SAAAxM,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAAA,IAAAU,EAAAV,OAAApB,GAC5B8B,EAAA,CAAC9B,CAAM,EAACoB,KAAApB,EAAAoB,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAFV,KAAA,CAAAkB,KAAAuL,CAAAA,EAA+BxL,EAAAA,WAC7BV,EACAG,CACF,EAEA,GAAI,CAAC+L,EAAY,OAAS,KAAI,IAAA3L,EAAAd,EAAA,CAAA,IAAAuB,GAAAvB,OAAAyM,GAEpB3L,EAAA4L,GAAAA,aAAanL,EAAUkL,CAAY,EAACzM,KAAAuB,EAAAvB,KAAAyM,EAAAzM,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAAA,IAAA+B,EAAA,OAAA/B,OAAAc,GAAvCiB,oBAAGjB,SAAAA,CAAAA,CAAoC,EAAId,KAAAc,EAAAd,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EAA3C+B,CAA2C,CACnD,ECXY4K,GAAevM,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,CAAA,EAAC,CAAAgL,kBAAAA,EAAA2B,UAAAA,CAAAA,EAAAxM,EAO3BxB,EAAesD,EAAAA,EAAW,IAAA3B,EAAAG,EAAA,OAAAV,EAAA,CAAA,IAAAiL,GAAAjL,OAAA4M,GAAA5M,EAAA,CAAA,IAAApB,GAER2B,EAAAA,IACX3B,EAEDgO,IAAc/N,OACTgO,EAAAA,GAAGjO,EAAM2N,MAAMO,kBAAkBC,IAAKH,CAAS,CAAC,EAErD3B,IAAsBpM,OACjBD,EAAM2N,MAAMS,MAAMC,6BACOhC,CAAiB,EAAC5K,KAE9CwC,EAAAA,IAAIqK,GAAUtO,EAAM2N,MAAMO,kBAAkBC,IAAKG,GAAIN,SAAW,CAAC,CACnE,EAGG5J,EAAAA,MAbaA,EAAAA,MAcnBtC,GAACkM,EAAW3B,EAAmBrM,CAAM,EAACoB,KAAAiL,EAAAjL,KAAA4M,EAAA5M,KAAApB,EAAAoB,KAAAO,EAAAP,KAAAU,IAAAH,EAAAP,EAAA,CAAA,EAAAU,EAAAV,EAAA,CAAA,GAflCiB,EAAAA,WAAWV,EAefG,CAAsC,CAAC,ECxB/ByM,GAAoB/M,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,CAAA,EAAC,CAAAgL,kBAAAA,EAAA2B,UAAAA,CAAAA,EAAAxM,EAMjC,IAAAG,EAAAP,EAAA,CAAA,IAAAiL,GAAAjL,OAAA4M,GAC0CrM,EAAA,CAAA0K,kBAAAA,EAAA2B,UAAAA,CAAAA,EAAgC5M,KAAAiL,EAAAjL,KAAA4M,EAAA5M,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAAzE,KAAA,CAAAkB,KAAAkM,CAAAA,EAA4BT,GAAapM,CAAgC,EAAC,IAAAG,EAAAI,EAAAd,OAAAoN,GAExE1M,EAAAA,IAAQ0M,EAAoBA,EAASC,SAA9BC,EAAAA,MACPxM,EAAA,CAACsM,CAAS,EAACpN,KAAAoN,EAAApN,KAAAU,EAAAV,KAAAc,IAAAJ,EAAAV,EAAA,CAAA,EAAAc,EAAAd,EAAA,CAAA,GAFb,KAAA,CAAAkB,KAAAqM,CAAAA,EAA0BtM,EAAAA,WACxBP,EACAI,CACF,EAAC,IAAAiB,EAAA,OAAA/B,EAAA,CAAA,IAAAuN,GAAAvN,OAAAoN,GAEMrL,EAAA,CAAAqL,UAAAA,EAAAG,QAAAA,CAAAA,EAAsBvN,KAAAuN,EAAAvN,KAAAoN,EAAApN,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EAAtB+B,CAAsB,ECXlByL,GAAqBlM,EAAAA,KAChClB,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,EAAA,EAAC,CAAAgL,kBAAAA,EAAAwC,KAAAA,EAAAC,IAAAA,EAAAC,MAAAA,CAAAA,EAAAvN,EAUA,IAAAG,EAAAP,OAAAiL,GACoD1K,EAAA,CAAA0K,kBAAAA,CAAAA,EAElDjL,KAAAiL,EAAAjL,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAFD,KAAA,CAAAuN,QAAAK,CAAAA,EAAiCT,GAAkB5M,CAElD,EACD,CAAAW,KAAA2M,CAAAA,EAA4B1C,GAAAA,EAAgB,IAAAzK,EAAAV,EAAA,CAAA,IAAAiL,GAAAjL,OAAA6N,GACpBnN,EAAAmN,GAAS7D,KAC/B8D,GACEA,GAAQtD,MAAyBS,oBAAKA,GAAtC,CACC6C,EAAQtD,KAAKc,UAClB,EAACtL,KAAAiL,EAAAjL,KAAA6N,EAAA7N,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAJD,MAAA+N,EAAwBrN,EAcxB,GAAI,CAACkN,EAAW,OAAS,KAEzB,MAAAI,EAAoBL,EAAQ,GAAO,EAItB7M,EAAA,CAAC,CAACiN,EAAe,IAAAhM,EAAA/B,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAEXe,EAAA,CAAAF,MAAS,UAASC,QAAW,UAAA,EAAY9B,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EAMhD,MAAAkD,EAAAuK,EAAOE,EAaArK,EAAA,GAAG0K,CAAU,qBACZxK,EAAA,GAAGwK,CAAU,uBAAsB,IAAAtK,EAAA1D,EAAA,CAAA,IAAAsD,GAAAtD,OAAAwD,GARxCE,EAAA,CAAAuK,QACE,KAAIC,SACH,WAAUR,IACf,EAACD,KACA,EAACE,MACA,EAACQ,OACA,EAACC,UACE9K,EAAiC+K,WAChC7K,CAAAA,EACbxD,KAAAsD,EAAAtD,KAAAwD,EAAAxD,KAAA0D,GAAAA,EAAA1D,EAAA,CAAA,EAAA,IAAA4D,EAAA5D,EAAA,CAAA,IAAAgO,GAAAhO,EAAA,EAAA,IAAAkD,GAAAlD,EAAA,EAAA,IAAA0D,GAAA1D,QAAA0N,GAlBH9J,QAACiE,EAAAA,IAAA,CACqBvJ,qBAAAA,GACX,SAAA,WACH,KAAA4E,EACI,UAAA,oBACI,cAAA,OACTwK,IAAAA,EACEM,MAAAA,EACCA,SACC,QAAAtK,EASR,EACD1D,KAAAgO,EAAAhO,MAAAkD,EAAAlD,MAAA0D,EAAA1D,MAAA0N,EAAA1N,MAAA4D,GAAAA,EAAA5D,EAAA,EAAA,EAAA,IAAAwH,EAAA,OAAAxH,EAAA,EAAA,IAAAc,GAAAd,QAAA4D,GAzBJ4D,EAAAxF,EAAAA,IAACC,EAAAA,SAAA,CACU,QAAAnB,EACT,UAAA,GACe,cAAAiB,EACG,kBAAA,WAElB6B,SAAAA,CAAAA,CAoBF,EAAW5D,MAAAc,EAAAd,MAAA4D,EAAA5D,MAAAwH,GAAAA,EAAAxH,EAAA,EAAA,EA1BXwH,CA0BW,CAGjB,EChEa8G,GAAsBhN,EAAAA,KAAK,IAAA,CAAA,MAAAtB,EAAAC,EAAAA,EAAA,CAAA,EACtCrB,EAAesD,EAAAA,EAAW,IAAA9B,EAAAJ,EAAA,CAAA,IAAApB,GAAA2P,aACSnO,EAAAA,IAAMxB,GAAM2P,YAAavO,EAAA,CAAA,EAAApB,GAAA2P,YAAAvO,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAAA,IAAAO,EAAAP,OAAApB,GAAE2B,EAAA,CAAC3B,CAAM,EAACoB,KAAApB,EAAAoB,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAAtE,KAAA,CAAAkB,KAAA8L,CAAAA,EAAwB/L,EAAAA,WAAWb,EAA2BG,CAAQ,EAAC,IAAAG,EAAAV,EAAA,CAAA,IAAAgN,GAAAA,OAIlEtM,EAAAsM,GAAKA,MAAWnK,IACfC,EASF,EAAC9C,EAAA,CAAA,EAAAgN,GAAAA,MAAAhN,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAAA,IAAAc,EAAA,OAAAd,OAAAU,GAXHI,EAAAkB,EAAAA,IAACsK,IACE5L,SAAAA,CAAAA,CAWH,EAAQV,KAAAU,EAAAV,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAZRc,CAYQ,CAEX,EAnBuC,SAAAgC,GAAA1C,EAAAoO,EAAA,CAO/B,KAAA,CAAAC,eAAAlO,CAAAA,EAAAH,EAAkB,CAAAqN,KAAAA,EAAAC,IAAAA,EAAAC,MAAAA,CAAAA,EAAApN,EAAoB,aACpCiN,GAAA,CAEoBgB,kBAAAA,EACbf,KAAAA,EACDC,IAAAA,EACEC,MAAAA,GAJFa,CAIO,CACZ,CCbZ,MAAME,GAAuB,GAEhBC,GAAyBA,IAAA,CAAA,MAAA3O,EAAAC,EAAAA,EAAA,CAAA,EACpCrB,EAAe2D,GAAAA,EACf,CAAArB,KAAA2M,CAAAA,EAA4B1C,GAAAA,EAC5ByD,EAAsBzN,GAAAA,EAAkB,IAAAf,EAAAG,EAAAP,EAAA,CAAA,IAAA6N,GAAA7N,OAAApB,GAAAoB,EAAA,CAAA,IAAA4O,GAE9BxO,EAAAA,IACHxB,EAESA,EAAMiQ,SAASC,MAAMC,SACjC,mBACArO,GAAA,CAAC,KAAA,CAAAsO,OAAAA,CAAAA,EAAAtO,EAAU,OACTsO,EAAM3O,KACJ4O,EAAAA,eAAerQ,GAAMmI,YAAyBmI,WAAA,EAC9CrM,MAAI/B,GAAA,CAAC,KAAA,CAAAZ,EAAAiP,CAAA,EAAArO,EACH,GAAI,CAACZ,EAAOgN,KAAK,OAASwB,GAE1B,KAAA,CAAAtB,UAAAA,EAAAgC,mBAAAA,EAAAC,sBAAAA,EAAAC,SAAAA,CAAAA,EAKIpP,EAAOgN,KAaX,GAX+BqC,GAAAA,iBAC7BF,EACA,CAAAG,KACQ,SAAQC,OACN,YAAWC,KACb,GAAEC,KACF,GAAA,EAERL,CACF,EAE0B,CACxB,MAAAM,EAAkBhR,EAAM2N,MAAMS,MAAM6C,uBAClCzC,EACAgC,CACF,EAEA,GAAI,CAACQ,EAAS,OAASlB,GAEvB,MAAAX,EAAwBF,GAAS7D,KAC/B8D,GACEA,GAAQtD,MAAyBS,oBAC/B2E,EAAS3E,mBACX6C,EAAQtD,KAAKG,QAAW9L,MAC5B,EAEA,GAAIkP,EACFa,OAAAA,EAAapO,MAAMwF,qBACjB+H,EAAehD,SAASjC,EAC1B,EAEO,CAAC4F,GAKV,GAFwBS,IAAaS,EAAS3E,iBAAkB,EAE7C,CACjB,MAAAvC,EAAmB9J,GAAMmI,YAA8B4B,iBAAC,CAAAsC,kBACnC2E,EAAS3E,iBAAAA,CAC7B,EAED,OAAIvC,GACFkG,EAAapO,MAAMsF,qBAAsB4C,CAAU,EAG9C,CAACgG,EAAoB,CAC7B,CACF,OAEMA,EAAoB,CAC5B,CACH,CAAC,CACL,EArEW,OAwEVnO,GAAC3B,EAAQiP,EAAWe,CAAa,EAAC5O,KAAA6N,EAAA7N,KAAApB,EAAAoB,KAAA4O,EAAA5O,KAAAI,EAAAJ,KAAAO,IAAAH,EAAAJ,EAAA,CAAA,EAAAO,EAAAP,EAAA,CAAA,GAzErC8G,EAAAA,UAAU1G,EAyEPG,CAAkC,CAAC,ECnF3BuP,GAAmCA,IAAA,CAAA,MAAA9P,EAAAC,EAAAA,EAAA,CAAA,EAC9CrB,EAAe2D,GAAAA,EAA0B,IAAAnC,EAAAG,EAAAP,OAAApB,GAGvCwB,EAAAA,IAIExB,GAAMiQ,SAAgBC,MAASC,SAAC,mBAAoBrO,GAAA,CAAC,KAAA,CAAAsO,OAAAA,CAAAA,EAAAtO,EAAU,OAC7DsO,EAAM3O,KACJ4O,EAAAA,eAAerQ,EAAM6D,UAAUsN,2BAA4B,EAC3DlN,MAAI/B,GAAA,CAAC,KAAA,CAAAiB,EAAAiO,CAAA,EAAAlP,EAAC,CAAA0F,MAAAA,CAAAA,EAAAzE,EACJsG,EAAe7B,EAAKA,MAAM6B,OAQE,MAErB,EAHJA,GAAUzJ,EAAMmI,YAAYkJ,wBAAyB5H,CAAM,GAA5D2H,EAGwB,CAC3B,CACH,CAAC,CACH,EACFzP,EAAA,CAAC3B,CAAM,EAACoB,KAAApB,EAAAoB,KAAAI,EAAAJ,KAAAO,IAAAH,EAAAJ,EAAA,CAAA,EAAAO,EAAAP,EAAA,CAAA,GAvBVoH,EAAAA,aACEhH,EAsBAG,CACF,CAAC,EC1BU2P,GAA+BA,IAAA,CAAA,MAAAlQ,EAAAC,EAAAA,EAAA,CAAA,EAC1CrB,EAAe2D,GAAAA,EACfrC,EAAgBiB,GAAAA,EAAkB,IAAAf,EAAAG,EAAAP,EAAA,CAAA,IAAAE,GAAAF,OAAApB,GAErBwB,EAAAA,IAAA,CACX,GAAIxB,EAAM,CACR,MAAAuR,EAA2BjQ,EAAOG,KAChCwC,EAAAA,IAAIC,EAAqD,EACzDsN,EAAAA,sBACF,EAEAtG,EAAqB5J,EAAOG,KAC1BwC,EAAAA,IAAIwN,EAAsC,EAC1CD,EAAAA,sBACF,EAEAE,EAAiCC,gBAAc,CAC7CzG,EACAqG,CAAkB,CACnB,EAAC9P,KACAwC,MAAI2N,EAKJ,CACF,EAEA5R,EAAMmI,YAAY3D,OAAQ,CAAA0G,aAAgBwG,CAAAA,CAA0B,CAAC,CACtE,EACA/P,EAAA,CAAC3B,EAAQsB,CAAO,EAACF,KAAAE,EAAAF,KAAApB,EAAAoB,KAAAI,EAAAJ,KAAAO,IAAAH,EAAAJ,EAAA,CAAA,EAAAO,EAAAP,EAAA,CAAA,GA1BpBoH,EAAAA,aAAahH,EA0BVG,CAAiB,CAAC,EA9BqB,SAAAuC,GAAA2N,EAAA,CAAA,OAOnBvQ,EAAOP,mBAA6BsG,WAAI6C,EAAA,CAPrB,SAAAuH,GAAAK,EAAA,CAAA,OAYnBxQ,EAAO6G,aAAP,CAAA,CAAyB,CAZN,SAAAyJ,GAAApQ,EAAA,CAoB/B,KAAA,CAAA2G,EAAApH,CAAA,EAAAS,EAAgC,OACnC2G,EAAWlE,IAAK6F,IAAiB,CAAA,GAC5BA,EAAUiI,SACHjI,EAAUI,KAAQnJ,CAAAA,EAC5B,CAAC,CChBN,MAAMiR,GAAmBC,EAAAA,cAAc,CAC5CC,UAAW,aACXC,gBAAiB,EACnB,CAAC,EAEYC,GAAUA,IAAA,CAAA,MAAAhR,EAAAC,EAAAA,EAAA,CAAA,EAAA,IAAAG,EAAA,OAAAJ,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAEnBZ,EAAA4B,EAAAA,IAAC8C,EAAAA,OAAA,CACC,SAAA9C,EAAAA,IAACiP,EAAAA,QAAA,CAAuBL,QAAAA,GAAsB,YAAA,CAAAxE,OAAU,GAAA,EACrDtJ,YAmBH,EACF,EAAS9C,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAtBTI,CAsBS,EAxBU,SAAA0C,GAAAoO,EAAA,CAAA,OAKbrI,OAAAsI,EAAAA,MAAA,KAAA,CAAmB,MAAA,CAAA9E,GAAM,IAAA,EACtB6E,SAAAA,CAAAA,EAAK1B,OAAU,UACdxN,EAAAA,IAACoP,EAAAA,QAAA,CAAa,KAAA,KAAW,MAAA,YAAA,GAEzBpP,EAAAA,IAAAmP,EAAAA,MAAA,UAAA,CAAA,CAAA,SAEDnJ,EAAAA,MAAA,CAAU,IAAA,IAAS,KAAA,IAAa,SAAA,OAC9BkJ,SAAAA,CAAAA,EAAKG,OAAUrP,EAAAA,mBAAckP,WAAKG,MAAO,EACzCH,EAAKI,aACJtP,EAAAA,IAAAmP,EAAAA,MAAA,YAAA,CAAoBD,WAAKI,WAAAA,CAAa,CAAA,EAE1C,EACCJ,EAAKK,QACJvP,EAAAA,2BAAsBkP,SAAAA,EAAKK,OAAOC,MAAO,EAE1CN,EAAK1G,MAAeiH,UAAIzP,EAAAA,IAAAmP,EAAAA,MAAA,aAAA,CAAA,CAAA,CAAA,EAC3B,CAAa,CC7BvB,MAAMO,GAAiBtR,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,EAAA,EAAA,IAAAsB,EAAA8C,EAAArE,OAAAI,GAAC,CAAAmB,SAAAA,EAAA,GAAA8C,CAAAA,EAAAjE,EAKHJ,KAAAI,EAAAJ,KAAAuB,EAAAvB,KAAAqE,IAAA9C,EAAAvB,EAAA,CAAA,EAAAqE,EAAArE,EAAA,CAAA,GACnB,MAAA2R,EAAoBC,EAAAA,YAAY9O,EAA4C,EAAC,IAAAvC,EAAAP,EAAA,CAAA,IAAA2R,EAAAnR,MAAAnB,kBAI5BkB,EAAAA,IAC/CxB,EAAAA,OAAO,CAAAC,QAAW2S,EAAWnR,MAAMnB,gBAAAA,CAAmB,EAACW,EAAA,CAAA,EAAA2R,EAAAnR,MAAAnB,iBAAAW,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EADzD,MAAA6R,EAAqCD,EAAAA,YAAYrR,CAEjD,EACAuR,EAA0CpQ,EAAAA,eACxCmQ,CACF,EAAC,IAAAnR,EAAAV,OAAA6R,GAECnR,EAAA+F,GAAA,CACEoL,EAA4BzO,OAAQqD,CAAI,CAAC,EAC1CzG,KAAA6R,EAAA7R,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAHH,MAAA+R,EAA6CrR,EAK5C,IAAAI,EAAAd,OAAA2R,GAGG7Q,EAAAkR,GAAA,CACEL,EAAWvO,OAAQ6O,IAAU,CAAA,GACxBA,EAAGxT,eAEJ,OAAOuT,GAAmB,WACtBA,EAAeC,EAAGxT,cACL,EAFjBuT,CAAAA,EAGF,CAAC,EACJhS,KAAA2R,EAAA3R,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAVL,MAAAtB,EACEoC,EAWC,IAAAiB,EAAA/B,EAAA,CAAA,IAAA2R,EAAAnR,MAAArB,eAC2C4C,EAAAA,IAC5ChD,EAAAA,OAAO,CAAAC,QAAW2S,EAAWnR,MAAMrB,aAAAA,CAAgB,EAACa,EAAA,CAAA,EAAA2R,EAAAnR,MAAArB,cAAAa,MAAA+B,GAAAA,EAAA/B,EAAA,EAAA,EADtD,MAAAkS,EAAkCN,EAAAA,YAAY7P,CAE9C,EAAC,IAAAmB,EAAAlD,QAAAkS,GAEChP,EAAAiP,GAAA,CACED,EAAyB9O,OAAQqD,CAAI,CAAC,EACvCzG,MAAAkS,EAAAlS,MAAAkD,GAAAA,EAAAlD,EAAA,EAAA,EAHH,MAAAoS,EAA0ClP,EAM1CmP,EAAuC3Q,EAAAA,eACrCwQ,CACF,EAEAI,EAAsBC,EAAAA,eAAelO,EAAOzD,iBAAc,EAAC,IAAA0C,EAAAE,EAAAxD,EAAA,EAAA,IAAAtB,GAAAsB,EAAA,EAAA,IAAAsS,GAAAtS,EAAA,EAAA,IAAA8R,GAAA9R,QAAA+R,GAAA/R,EAAA,EAAA,IAAAoS,GAAApS,EAAA,EAAA,IAAAqS,GAAArS,EAAA,EAAA,IAAA2R,GAEjDrO,EAAAA,IAAA,CACRqO,EAAWvO,OAAQoP,IAAU,CAAA,GACxBP,EAAG,GACHK,EAAahT,yBACUyS,EAAoC1S,iBAC5CyS,EAAiC1S,sBAC5BgT,EAAiCjT,cACzCkT,EAA8B3T,uBAAAA,CAAAA,EAE7C,CAAC,EACF8E,EAAA,CACD8O,EACA5T,EACAiT,EACAG,EACAC,EACAM,EACAD,CAAiC,EAClCpS,MAAAtB,EAAAsB,MAAAsS,EAAAtS,MAAA8R,EAAA9R,MAAA+R,EAAA/R,MAAAoS,EAAApS,MAAAqS,EAAArS,MAAA2R,EAAA3R,MAAAsD,EAAAtD,MAAAwD,IAAAF,EAAAtD,EAAA,EAAA,EAAAwD,EAAAxD,EAAA,EAAA,GAlBD8G,EAAAA,UAAUxD,EAUPE,CAQF,EAAC,IAAAE,EAAA,OAAA1D,EAAA,EAAA,IAAAuB,GAAAvB,QAAA2R,GAGAjO,QAAA9D,GAAA,SAAA,CAA+B+R,MAAAA,EAC5BpQ,SAAAA,EACH,EAAyBvB,MAAAuB,EAAAvB,MAAA2R,EAAA3R,MAAA0D,GAAAA,EAAA1D,EAAA,EAAA,EAFzB0D,CAEyB,EAIhB+O,GAAsBnR,EAAAA,KACjClB,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,CAAA,EAAA,IAAAsB,EAAA8C,EAAArE,OAAAI,GAAC,CAAAmB,SAAAA,EAAA,GAAA8C,CAAAA,EAAAjE,EAA6DJ,KAAAI,EAAAJ,KAAAuB,EAAAvB,KAAAqE,IAAA9C,EAAAvB,EAAA,CAAA,EAAAqE,EAAArE,EAAA,CAAA,GAAA,IAAAO,EAAA,OAAAP,EAAA,CAAA,IAAAuB,GAAAvB,OAAAqE,GACrD9D,EAAAyB,EAAAA,IAAC0P,GAAA,CAAc,GAAKrN,EAAQ9C,SAAAA,CAAAA,CAAS,EAAiBvB,KAAAuB,EAAAvB,KAAAqE,EAAArE,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAAtDO,CAAsD,CAEjE,EAjFuB,SAAAuC,IAAA,CAAA,OAMiB/D,SAAO,CAAAC,QAAWR,GAAAA,CAAgB,CAAG,CAAC,CCRvE,MAAMkU,GAAQvO,GAAMC,WACzB,SAAAC,EAAAC,EAAA,CAAA,MAAAtE,EAAAC,EAAAA,EAAA,EAAA,EAAA,IAAAsB,EAAAoR,EAAAnR,EAAAoR,EAAA5S,OAAAqE,GACE,CAAA9C,SAAAA,EAAAoR,WAAAA,EAAAC,QAAAA,EAAA,GAAApR,CAAAA,EAAmD6C,EAAKrE,KAAAqE,EAAArE,KAAAuB,EAAAvB,KAAA2S,EAAA3S,KAAAwB,EAAAxB,KAAA4S,IAAArR,EAAAvB,EAAA,CAAA,EAAA2S,EAAA3S,EAAA,CAAA,EAAAwB,EAAAxB,EAAA,CAAA,EAAA4S,EAAA5S,EAAA,CAAA,GAAA,IAAAI,EAAAJ,EAAA,CAAA,IAAA2S,GAAA3S,OAAAsE,GAGpDlE,sCAAuCkE,IAAAA,EAAG,GAAMqO,EAAU,EAAI3S,KAAA2S,EAAA3S,KAAAsE,EAAAtE,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAAA,IAAAO,EAAAP,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAC9DT,EAAAyB,EAAAA,IAAA6Q,aAAA,cAAA,CAAA,CAAA,EAAkC7S,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAAA,IAAAU,EAAAV,OAAAuB,GACjCb,EAAAa,GACCS,EAAAA,IAAA6Q,EAAAA,WAAA,SAAA,CAA4BtR,SAAAA,EAAS,EACtCvB,KAAAuB,EAAAvB,MAAAU,GAAAA,EAAAV,EAAA,EAAA,EAAA,IAAAc,EAAA,OAAAd,EAAA,EAAA,IAAAwB,GAAAxB,EAAA,EAAA,IAAA4S,GAAA5S,EAAA,EAAA,IAAAI,GAAAJ,QAAAU,GALHI,4BAA4B8R,IAAAA,KAAapR,EACvCpB,SAAAA,CAAAA,EACAG,EACCG,CAAAA,EAGH,EAAwBV,MAAAwB,EAAAxB,MAAA4S,EAAA5S,MAAAI,EAAAJ,MAAAU,EAAAV,MAAAc,GAAAA,EAAAd,EAAA,EAAA,EANxBc,CAMwB,CAG9B,EAEagS,GAAaD,EAAAA,WAAiB5N,KCd9B8N,GAAS5O,GAAM7C,KAAK,SAAAlB,EAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,EAAA,EAAA,IAAAuR,EAAAwB,EAAA1O,EAAA9C,EAAAyR,EAAA1S,EAAAC,EAAA,GAAAR,OAAAI,EAAA,CAAgB,KAAA,CAAAkE,IAAA5D,EAAA,GAAA2D,CAAAA,EAAAjE,EAAAkE,EAAA5D,EAI/C,KAAA,CAAAsS,MAAAE,EAAA1B,MAAA1Q,EAAAmS,UAAAlR,EAAA,GAAAmB,CAAAA,EAAwDmB,EAAxDmN,EAAA1Q,EAAAmS,EAAAlR,EAAAP,EAAA0B,EACA1C,EAAc6D,EAAKxD,cAAiBwD,EAAK7D,MAEzCwS,EAAcE,GAASrQ,IAAMC,EAG5B,EAEsBvC,EAAAyS,GAAKG,KAAO9C,EAAoB,EAACrQ,KAAAI,EAAAJ,KAAAwR,EAAAxR,KAAAgT,EAAAhT,KAAAsE,EAAAtE,KAAAwB,EAAAxB,KAAAiT,EAAAjT,KAAAO,EAAAP,KAAAQ,CAAA,MAAAgR,EAAAxR,EAAA,CAAA,EAAAgT,EAAAhT,EAAA,CAAA,EAAAsE,EAAAtE,EAAA,CAAA,EAAAwB,EAAAxB,EAAA,CAAA,EAAAiT,EAAAjT,EAAA,CAAA,EAAAO,EAAAP,EAAA,CAAA,EAAAQ,EAAAR,EAAA,CAAA,EAAxD,MAAAoT,EAAqB,CAAC,CAAC7S,EAAiC,IAAAG,EAAAV,EAAA,CAAA,IAAAwR,GAAAxR,OAAAiT,GAInDvS,EAAA8Q,GAAA,CAAUyB,SAAaI,EAAAA,OAAA,MAAA,CAAqB7B,SAAAA,EAAM,EAAqBxR,KAAAwR,EAAAxR,KAAAiT,EAAAjT,MAAAU,GAAAA,EAAAV,EAAA,EAAA,EAAA,IAAAc,EAAAd,EAAA,EAAA,IAAAwR,GAAAxR,QAAAiT,GACvEnS,EAAA0Q,GAAAyB,GACCpK,EAAAA,KAACyK,EAAAA,OAAA,CAAe,QAAA,gBACd,SAAA,CAAAtR,EAAAA,oBAAqBwP,SAAAA,CAAAA,CAAM,EAC3BxP,MAAAqR,EAAAA,OAAA,UAAA,CAAA,CAAA,CAAA,EACF,EACDrT,MAAAwR,EAAAxR,MAAAiT,EAAAjT,MAAAc,GAAAA,EAAAd,EAAA,EAAA,EAC0C,MAAA+B,EAAAqR,GAAAvU,OAAyB,IAAAqE,EAAAlD,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAClEkC,EAAAlB,EAAAA,IAAAqR,SAAA,MAAA,CACE,kCACF,EAAqBrT,MAAAkD,GAAAA,EAAAlD,EAAA,EAAA,EAAA,IAAAsD,EAAAtD,QAAAQ,GACrB8C,QAACiQ,IAAoB/S,MAAAA,CAAAA,CAAK,EAAIR,MAAAQ,EAAAR,MAAAsD,GAAAA,EAAAtD,EAAA,EAAA,EAAA,IAAAwD,EAAAxD,QAAAgT,GAC9BxP,QAACgQ,IAAmBR,MAAAA,CAAAA,CAAK,EAAIhT,MAAAgT,EAAAhT,MAAAwD,GAAAA,EAAAxD,EAAA,EAAA,EAAA,IAAA0D,EAAA1D,EAAA,EAAA,IAAA+B,GAAA/B,QAAAsD,GAAAtD,EAAA,EAAA,IAAAwD,GAL/BE,2BAA2C,sBAAA3B,EACzCmB,SAAAA,CAAAA,EAGAI,EACAE,CAAAA,EACF,EAAuBxD,MAAA+B,EAAA/B,MAAAsD,EAAAtD,MAAAwD,EAAAxD,MAAA0D,GAAAA,EAAA1D,EAAA,EAAA,EAAA,IAAA4D,EAAA,OAAA5D,EAAA,EAAA,IAAAsE,GAAAtE,EAAA,EAAA,IAAAwB,GAAAxB,EAAA,EAAA,IAAAU,GAAAV,EAAA,EAAA,IAAAc,GAAAd,QAAA0D,GAdzBE,EAAAiF,EAAAA,KAAAwK,EAAAA,OAAA,KAAA,CAAwB/O,IAAAA,EAAoB,eAAA,SAAQ,GAAK9C,EACtDd,SAAAA,CAAAA,EACAI,EAMD4C,CAAAA,EAOF,EAAoB1D,MAAAsE,EAAAtE,MAAAwB,EAAAxB,MAAAU,EAAAV,MAAAc,EAAAd,MAAA0D,EAAA1D,MAAA4D,GAAAA,EAAA5D,EAAA,EAAA,EAfpB4D,CAeoB,CAEvB,EAED,SAAA2P,GAAAlP,EAAA,CAAA,MAAArE,EAAAC,EAAAA,EAAA,CAAA,EACE,CAAAO,MAAAA,CAAAA,EAAkB6D,EAAK,IAAAjE,EAAA,OAAAJ,OAAAQ,GAErBJ,EAAA4B,EAAAA,IAACyR,MAAA,CAAUjT,KAAAA,EACRgQ,SAAAA,GAKH,EAAMxQ,KAAAQ,EAAAR,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EANNI,CAMM,CATV,SAAAoQ,GAAAkD,EAAAC,EAAA,CAAA,OAKQ3R,MAAAqR,EAAAA,OAAA,MAAA,CAAuCM,MAAAA,EACrC,eAAAN,EAAAA,OAAA,YAAA,EAAA,CAAA,EADuBM,CAEzB,CAAqB,CAU7B,MAAMH,GAAcrP,GAAMC,WACxB,SAAAC,EAAAC,EAAA,CAAA,MAAAtE,EAAAC,EAAAA,EAAA,CAAA,EACE,CAAA+S,MAAAA,CAAAA,EAAkB3O,EAClB,GAAI,CAAC2O,GAAKhP,OAAQ,OAAS,KAAI,IAAA5D,EAAAJ,OAAAgT,GAI1B5S,EAAA4S,EAAKnQ,IAAK+Q,EASV,EAAC5T,KAAAgT,EAAAhT,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAAA,IAAAO,EAAA,OAAAP,EAAA,CAAA,IAAAsE,GAAAtE,OAAAI,GAVJG,EAAAyB,EAAAA,IAAAqR,SAAA,YAAA,CAA+B/O,IAAAA,EAC5BlE,SAAAA,EAUH,EAA2BJ,KAAAsE,EAAAtE,KAAAI,EAAAJ,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAX3BO,CAW2B,CAGjC,EAvEiC,SAAAuC,GAAA+Q,EAAA,CAQ7B,OAAI,OAAOA,GAAS,SAAiB,CAAArT,MAASqT,EAAIrC,MAAS3S,MAAAA,EACpDgV,CAAI,CATkB,SAAAxD,GAAAyD,EAAA,CAAA,OAYcD,EAAIrC,KAAM,CAwCvD,SAAAoC,GAAAC,EAAAF,EAAA,CAOQ,MAAAnT,EAAc,OAAOqT,GAAS,SAAhBA,EAAkCA,EAAIrT,MACpDgR,EAAc,OAAOqC,GAAS,SAAhBhV,OAAuCgV,EAAIrC,MAAM,OAE7D3I,EAAAA,KAAAwK,EAAAA,OAAA,OAAA,CAAwC7S,MAAAA,EACtC,SAAA,CAAAwB,MAAAqR,EAAAA,OAAA,gBAAA,EAAA,EACC7B,CAAAA,CAAAA,EAFuBmC,CAG1B,CAAsB,CC1E3B,MAAMI,GAAkD,CAC7D,CACEvT,MAAO,SACPwT,WAAY,CAAC,QAAQ,CACvB,EACA,CACExT,MAAO,OACPwT,WAAY,CAAC,MAAM,CACrB,EACA,CACExT,MAAO,SACPwT,WAAY,CAAC,SAAU,SAAU,SAAS,CAC5C,CAAC,EC4BGC,GACJF,GAAgDlR,IAAKoH,GAASA,EAAKzJ,KAAK,EACpE0T,GACJH,GAAgDI,QAC7ClK,GAASA,EAAK+J,UACjB,EAEII,GACJC,GACG,CACH,GAAKA,EAIL,OAAON,GAAgD/J,KAAMC,GAC1DA,EAAK+J,WAAiCM,SAASD,CAAS,CAC3D,GAAG7T,KACL,EAEa+T,GAAyBjT,EAAAA,KAAK,IAAA,CAAA,MAAAtB,EAAAC,EAAAA,EAAA,EAAA,EACzCC,EAAgBiB,GAAAA,EAAkB,IAAAf,EAAAJ,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAYRZ,EAAA,CACxB,mBACA,2BACA,WACA,cACA,cACA,gBACA,mBACA,wBACA,uBACA,gBAAgB,EACjBJ,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAtBD,KAAA,CAAAX,iBAAAA,EAAAC,yBAAAA,EAAAG,qBAAAA,EAAA+U,SAAAjU,EAAAhB,YAAAA,EAAAC,YAAAA,EAAAiV,cAAAA,EAAAC,eAAAA,EAAAC,iBAAAA,EAAAC,sBAAAA,CAAAA,EAWI9U,GAAsBM,CAWzB,EAlBCoU,EAAAjU,IAAA1B,OAAAY,EAAAc,EAmBFsU,EAA4BC,EAAAA,WAAWH,CAAgB,EACvD,CAAAI,EAAAC,CAAA,EACE5O,EAAAA,SACEqO,GAAA,QACF,EAAC,IAAA/T,EAAAV,EAAA,CAAA,IAAAE,GAAAF,OAAA6U,GAEDnU,EAAAA,CAAAuU,EAAAzU,KAAA,CACMqU,EAAmBK,QACrBL,EAAmBK,QAASD,EAAOzU,EAAK,EAExCN,EAAOkD,OAAQ6O,KAAU,CAAA,GACpBA,GAAGxS,qBACgBe,EAAAA,EACtB,CACH,EACFR,KAAAE,EAAAF,KAAA6U,EAAA7U,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAVH,MAAAmV,EAAqBzU,EAYpB,IAAAI,EAAAd,EAAA,CAAA,IAAAwU,GAAAxU,OAAA0U,GAEC5T,EAAAsU,GACSV,IAAiBO,CAAK,GAAtBT,EACRxU,KAAAwU,EAAAxU,KAAA0U,EAAA1U,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAHH,MAAAqV,EAAyBvU,EAKxB,IAAAiB,EAAA/B,OAAA4U,GAGC7S,EAAAuT,GAAA,CAKE,MAAAC,GAAcD,EAAO9U,MAErBoU,IAAwBpU,EAAK,CAAC,EAC/BR,KAAA4U,EAAA5U,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EATH,MAAAwV,EAA2BzT,EAW1B,IAAAmB,EAAAlD,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAEoCkC,EAAAuS,GAAA,CACnCT,EAAYM,EAAO9U,KAAqD,CAAC,EAC1ER,KAAAkD,GAAAA,EAAAlD,EAAA,CAAA,EAFD,MAAA0V,EAAyBxS,EAEnB,IAAAI,EAAAtD,EAAA,EAAA,IAAAmV,GAAAnV,QAAA+U,GAGJzR,EAAAqS,GAAA,CACE,MAAAC,GAAcN,EAAO9U,MAAM,CAAA,GAAb,EAEd2U,EAAaJ,EAAUvU,GAAQ,GAAG,CAAC,EACpCR,MAAAmV,EAAAnV,MAAA+U,EAAA/U,MAAAsD,GAAAA,EAAAtD,EAAA,EAAA,EALH,MAAA6V,EAA4BvS,EAO3B,IAAAE,EAAAE,EAAA1D,QAAAyU,GAGCjR,YAAA,CACEwR,EAAYP,GAAA,QAAyB,CAAC,EAExC/Q,EAAA,CAAC+Q,CAAa,EAACzU,MAAAyU,EAAAzU,MAAAwD,EAAAxD,MAAA0D,IAAAF,EAAAxD,EAAA,EAAA,EAAA0D,EAAA1D,EAAA,EAAA,GAJjB8G,EAAAA,UACEtD,EAGAE,CACF,EAAC,IAAAE,EAAA5D,QAAAV,GAMiBsE,EAAAkI,GAAA,CACZxM,EAAyBwM,EAACrF,IAAK,CAAC,EACjCzG,MAAAV,EAAAU,MAAA4D,GAAAA,EAAA5D,EAAA,EAAA,EAAA,IAAAwH,EAAAxH,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAICwG,EAAAxF,EAAAA,IAACwH,GAAA,CACC,SAAAxH,EAAAA,IAAC0H,GAAA,CAAY,qBAAS,EACxB,EAAe1J,MAAAwH,GAAAA,EAAAxH,EAAA,EAAA,EAAA,IAAA0H,EAAAC,EAAA3H,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAIT0G,EAAA1F,EAAAA,IAAA8T,EAAAA,SAAA,OAAA,CAAiB,SAAA,QAAK,EACtBnO,EAAA3F,EAAAA,IAAA8T,EAAAA,SAAA,WAAA,CAAqB,SAAA,wDAErB,EAAsB9V,MAAA0H,EAAA1H,MAAA2H,IAAAD,EAAA1H,EAAA,EAAA,EAAA2H,EAAA3H,EAAA,EAAA,GAAA,IAAA+H,EAAA/H,QAAAyU,GAIX1M,EAAAqM,GAAqBK,CAAyB,GAA9C,SAA+CzU,MAAAyU,EAAAzU,MAAA+H,GAAAA,EAAA/H,EAAA,EAAA,EAC5C,MAAAiI,GAAC2M,EAAqB,IAAAzM,EAAAnI,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAEhCmH,QAACmL,SAAA,CAAY,MACVW,SAAAA,GAAsBpR,IAAKC,EAI3B,EACH,EAAS9C,MAAAmI,GAAAA,EAAAnI,EAAA,EAAA,EAAA,IAAAsI,EAAAtI,EAAA,EAAA,IAAAwV,GAAAxV,QAAA+H,GAAA/H,EAAA,EAAA,IAAAiI,GAjBfK,EAAAO,EAAAA,KAAAiN,EAAAA,SAAA,KAAA,CACEpO,SAAAA,CAAAA,EACAC,EAGA3F,EAAAA,IAAA8T,EAAAA,SAAA,QAAA,CACE,SAAA9T,EAAAA,IAAC8Q,GAAA,CACgB0C,cAAAA,EACR,MAAAzN,EACG,SAAAE,EAEVE,WAOF,CAAA,CACF,CAAA,EACF,EAAgBnI,MAAAwV,EAAAxV,MAAA+H,EAAA/H,MAAAiI,EAAAjI,MAAAsI,GAAAA,EAAAtI,EAAA,EAAA,EAAA,IAAAwI,EAAAxI,QAAAyU,GAQXjM,EAAA0L,GAA0BrR,IAAKkT,GAC9BlN,uBACSoM,QAEO,cAAA,aACJ,SAAAA,IAAU,UAAV,CAAuBR,EAEhCA,SAAAA,CAAAA,IAAkBQ,SAAUe,GAAAA,QAAA,CAAA,GAC5Bf,CAAAA,CAAAA,EALIA,CAMP,CACD,EAACjV,MAAAyU,EAAAzU,MAAAwI,GAAAA,EAAAxI,EAAA,EAAA,EAAA,IAAAyI,EAAAzI,QAAAwI,GAXJC,EAAAzG,EAAAA,IAAA+J,EAAAA,KAAA,KAAA,CACGvD,SAAAA,EAWH,EAAYxI,MAAAwI,EAAAxI,MAAAyI,GAAAA,EAAAzI,EAAA,EAAA,EAAA,IAAA4I,EAAA5I,EAAA,EAAA,IAAAR,GAAAQ,EAAA,EAAA,IAAAT,GAAAS,EAAA,EAAA,IAAAqV,GAAArV,QAAA6V,GACXjN,EAAAsL,GAA0BrR,IAAKoT,GAC9BjU,EAAAA,IAAA+J,EAAAA,KAAA,QAAA,CAAqBkJ,MAAAA,EACnB,SAAAjT,EAAAA,IAAC+Q,GAAA,CACQ,MAAA,IACA,MAAA,EAAEsC,EAAiBJ,CAAU,GAA3B,GAAgC,GAAG,EAC7BY,cAAAA,EACJ,aACJ,MAAA,CACL,CAAArV,MAAS,IAAGgR,MAAS,WAAA,EACrB,CAAAhR,MACSjB,EAAc,IAAGiS,MACjB,GAAGjS,EAAc,GAAG,GAAA,EAE7B,CAAAiB,MACShB,EAAc,IAAGgS,MACjB,GAAGhS,EAAc,GAAG,GAAA,CAC5B,EAEE,IAAAA,EAAc,IACd,IAAAD,EAAc,IACb,MAAA,OACA,KAAA,EAAA,CAAS,CAAA,EApBc0V,CAsBjC,CACD,EAACjV,MAAAR,EAAAQ,MAAAT,EAAAS,MAAAqV,EAAArV,MAAA6V,EAAA7V,MAAA4I,GAAAA,EAAA5I,EAAA,EAAA,EAAA,IAAA+I,EAAA/I,EAAA,EAAA,IAAAyI,GAAAzI,QAAA4I,GAAA5I,EAAA,EAAA,IAAA+U,GA3CJhM,EAAAF,EAAAA,KAAAkD,EAAAA,KAAA,KAAA,CACSgJ,MAAAA,EACQW,cAAAA,EACP,UACH,KAAA,KAELjN,SAAAA,CAAAA,EAaCG,CAAAA,EAyBH,EAAY5I,MAAAyI,EAAAzI,MAAA4I,EAAA5I,MAAA+U,EAAA/U,MAAA+I,GAAAA,EAAA/I,EAAA,EAAA,EAAA,IAAAgJ,EAAAhJ,EAAA,EAAA,IAAAsI,GAAAtI,QAAA+I,GAnEhBC,QAACS,GAAA,CACC,SAAAZ,EAAAA,KAACb,SAAW,IAAA,EAAS,OACnBM,SAAAA,CAAAA,EAqBAS,CAAAA,CAAAA,CA6CF,CAAA,CACF,EAAa/I,MAAAsI,EAAAtI,MAAA+I,EAAA/I,MAAAgJ,GAAAA,EAAAhJ,EAAA,EAAA,EAAA,IAAAiJ,EAAAiN,EAAAlW,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GACbiI,EAAAjH,EAAAA,IAACuH,GAAA,CACC,SAAAvH,EAAAA,IAAC2H,GAAA,CAAoB,QAAA,GACnB,SAAA3H,MAACyB,EAAAA,OAAA,CAAe,QAAA,UAAU,SAAA,OAAA,CAAK,CAAA,CACjC,EACF,EACAyS,QAAC7M,GAAA,EAAkB,EAAGrJ,MAAAiJ,EAAAjJ,MAAAkW,IAAAjN,EAAAjJ,EAAA,EAAA,EAAAkW,EAAAlW,EAAA,EAAA,GAAA,IAAAmW,EAAAnW,QAAAgJ,GA/ExBmN,EAAAtN,EAAAA,KAACK,GAAA,CAAmB,KAAA,OAAgB,SAAA,OAClC1B,SAAAA,CAAAA,EAGAwB,EAsEAC,EAKAiN,CAAAA,EACF,EAAgBlW,MAAAgJ,EAAAhJ,MAAAmW,GAAAA,EAAAnW,EAAA,EAAA,EAAA,IAAAoW,GAAA,OAAApW,EAAA,EAAA,IAAAX,GAAAW,QAAAmW,GAAAnW,EAAA,EAAA,IAAA4D,GAxFlBwS,GAAApU,EAAAA,IAACsH,GAAA,CACC,UAAA,GACMjK,KAAAA,EACQ,aAAAuE,EAGJ,UAAA,SAEVuS,SAAAA,CAAAA,CAiFF,EAAanW,MAAAX,EAAAW,MAAAmW,EAAAnW,MAAA4D,EAAA5D,MAAAoW,IAAAA,GAAApW,EAAA,EAAA,EAzFboW,EAyFa,CAEhB,EA/K0C,SAAAtT,GAAAuT,EAAA,CAAA,OA+GrBrU,EAAAA,IAAC0Q,GAAA,CAAauC,qBAEd,CAAQ,CCnKvB,MAAMqB,GAAmBA,IAAA,CAAA,MAAAtW,EAAAC,EAAAA,EAAA,EAAA,EAC9BrB,EAAesD,EAAAA,EACfhC,EAAgBiB,GAAAA,EAAkB,IAAAf,EAAAJ,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAC+BZ,GAC/D,WACA,uBACA,kBAAkB,EACnBJ,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAJD,KAAA,CAAAwU,SAAAA,EAAA/U,qBAAAA,CAAAA,EAA2CK,GAAsBM,CAIhE,EACDmW,EAAkB/B,GAAA/U,EAAgC,IAAAc,EAAAG,EAAAV,EAAA,CAAA,IAAAuW,GAAAvW,OAAApB,GAGhD2B,YAAA,CACE,GAAI3B,GAAA2X,EAAmB,CACrB,MAAAC,EAAgBC,WAAW,IAAA,CACzB7X,EAAM8X,SAAStT,OAAQ,CAAAuT,UACVJ,CAAAA,CACZ,CAAC,EACD,GAAG,EAAC,MAEA,IAAMK,aAAaJ,CAAO,CAAC,CACnC,EAEH9V,EAAA,CAAC9B,EAAQ2X,CAAS,EAACvW,KAAAuW,EAAAvW,KAAApB,EAAAoB,KAAAO,EAAAP,KAAAU,IAAAH,EAAAP,EAAA,CAAA,EAAAU,EAAAV,EAAA,CAAA,GAZrB8G,EAAAA,UACEvG,EAWAG,CACF,EAAC,IAAAI,EAAAd,EAAA,CAAA,IAAAE,GAAAF,OAAApB,GAAA8X,SAAAG,SAGC/V,YAAA,CAAA,OACSlC,GAAM8X,SAAkBG,QACxBxW,KAACwC,MAAIC,EAAgC,CACjC,EAACgU,UAACH,GAAA,CACT,MAAAI,EACE7W,EAAOM,MAAMgU,UAAatU,EAAOM,MAAMf,qBAErCkX,IAAcJ,IAChBrW,EAAOM,MAAMmU,mBAAoB,WAAYgC,CAAS,EACtDzW,EAAOkD,OAAQ6O,IAAU,CAAA,GACpBA,EAAGxS,qBACgBkX,CAAAA,EACtB,EACH,CACF,CAAC,EACL3W,KAAAE,EAAAF,EAAA,CAAA,EAAApB,GAAA8X,SAAAG,QAAA7W,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAAA,IAAA+B,EAAA,OAAA/B,EAAA,CAAA,IAAAE,GAAAF,OAAApB,GACDmD,EAAA,CAACnD,EAAQsB,CAAO,EAACF,KAAAE,EAAAF,KAAApB,EAAAoB,MAAA+B,GAAAA,EAAA/B,EAAA,EAAA,EAjBnBoH,EAAAA,aACEtG,EAgBAiB,CACF,EAEO,IAAI,EA7CmB,SAAAe,GAAA4T,EAAA,CAAA,OA4BAA,EAAQC,SAAU,CCxBlD,MAAMK,GAA+B,CACnCC,EAAG,EACHC,EAAG,EACHvJ,MAAO,EACPQ,OAAQ,EACRT,IAAK,EACLD,KAAM,EACN0J,OAAQ,EACRC,MAAO,CACT,EAEO,SAAAC,IAAA,CAAA,MAAArX,EAAAC,EAAAA,EAAA,CAAA,EACL,CAAAqX,EAAAC,CAAA,EAA8BnR,EAAAA,SAAmB,IAAI,EACrD,CAAAoR,EAAAC,CAAA,EAAwBrR,EAAAA,SAAyB4Q,EAAY,EAAC,IAAA5W,EAAAJ,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAI1DZ,EAAA,IAAIsX,eAAeC,GAAA,CACjB,GAAIA,EAAO,CAAA,EAAG,CACZ,KAAA,CAAAV,EAAAA,EAAAC,EAAAA,EAAAvJ,MAAAA,EAAAQ,OAAAA,EAAAT,IAAAA,EAAAD,KAAAA,EAAA0J,OAAAA,EAAAC,MAAAA,CAAAA,EACEO,EAAO,CAAA,EAAGC,YACZH,EAAQ,CAAAR,EAAAA,EAAAC,EAAAA,EAAAvJ,MAAAA,EAAAQ,OAAAA,EAAAT,IAAAA,EAAAD,KAAAA,EAAA0J,OAAAA,EAAAC,MAAAA,CAAAA,CAAiD,CAAC,CAC3D,CACF,EAACpX,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EARN,MAAA6X,EAEIzX,EAQH,IAAAG,EAAAG,EAAAV,OAAAsX,GAEe/W,EAAAA,IAAA,CACd,GAAK+W,EAELO,OAAAA,EAAQC,QAASR,CAAO,EAEjB,IAAA,CACLO,EAAQE,WAAAA,CAAa,CACtB,EACArX,EAAA,CAAC4W,EAASO,CAAQ,EAAC7X,KAAAsX,EAAAtX,KAAAO,EAAAP,KAAAU,IAAAH,EAAAP,EAAA,CAAA,EAAAU,EAAAV,EAAA,CAAA,GARtBgY,EAAAA,gBAAgBzX,EAQbG,CAAmB,EAAC,IAAAI,EAAA,OAAAd,EAAA,CAAA,IAAAsX,GAAAtX,OAAAwX,GAEhB1W,GAACyW,EAAYC,EAAMF,CAAO,EAACtX,KAAAsX,EAAAtX,KAAAwX,EAAAxX,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAA3Bc,CAA2B,CC9B7B,MAAMmX,GAAoBA,CAAAX,EAAArN,EAAAiO,IAAA,CAAA,MAAAlY,EAAAC,EAAAA,EAAA,CAAA,EAK/BrB,EAAesD,EAAAA,EAAW,IAAA9B,EAAAJ,OAAApB,GACQwB,EAAAiC,GAAmBzD,CAEzC,EAFsBA,EAAAC,OAErBmB,KAAApB,EAAAoB,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAFb,MAAAmY,EAAkC/X,EAErB,IAAAG,EAAAG,EAAAV,EAAA,CAAA,IAAAsX,GAAAtX,EAAA,CAAA,IAAAiK,GAAAjK,EAAA,CAAA,IAAAkY,GAAAlY,OAAAmY,GAEA5X,EAAAA,IAAA,CACX,GAAI,CAAC4X,GAAD,CAA+Bb,EAAO,OAAShK,EAAAA,MAEnD,MAAA8K,EAA2BnO,EAAIoO,WAAWhY,KACxC0C,EAAAA,UAAUkH,EAAIqO,UAAW,EACzBlI,uBAAqBxP,GAAAA,cAAc,CACrC,EAEA2X,EAA4BC,GAAAA,oBAC1BlB,CACF,EAACjX,KAAMwC,EAAAA,IAAIwN,EAAkD,CAAC,EAAC,OAExD+H,EAAkB/X,KACvBoY,eAAa,IAAK5Z,OAAW,CAAA6Z,SAAY,EAAA,CAAM,EAC/C/V,EAAAA,UAAU,IACD4V,EAAmBlY,KAEtB4G,EAAAA,IAAI0R,GAAA,CAEGA,IACHrB,EAAOsB,UAAa,GACrB,CACF,EACD1O,EAAAA,OAAOsG,EAAwB,EAC/BqI,EAAAA,OACF,EAACxY,KAECsC,EAAAA,UAAU,KACR2U,EAAOsB,UAAa,GAEbT,GAAyBW,QAAkBC,SAChD9O,EACAqN,EACAY,CACF,EACD,CACH,CACH,CACH,CAAC,EACAxX,EAAA,CAACyX,EAA2BlO,EAAMiO,EAAUZ,CAAO,EAACtX,KAAAsX,EAAAtX,KAAAiK,EAAAjK,KAAAkY,EAAAlY,KAAAmY,EAAAnY,KAAAO,EAAAP,KAAAU,IAAAH,EAAAP,EAAA,CAAA,EAAAU,EAAAV,EAAA,CAAA,GAvCvDoH,EAAAA,aAAa7G,EAuCVG,CAAoD,CAAC,EAjDzB,SAAAoC,GAAAgJ,EAAA,CAAA,OAoBeA,EAACkN,cAAe,CApB/B,SAAA3I,GAAAsH,EAAA,CAAA,OAoBLA,EAAOxE,KAAMrQ,EAAuB,CAAC,CApBhC,SAAA0N,GAAAyI,EAAA,CAAA,OAiCCN,CAAS,CCnC3C,MAAMO,GAAc5X,EAAAA,KAClBlB,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,EAAA,EAAC,CAAAgK,KAAAA,EAAAkP,YAAAA,CAAAA,EAAA/Y,EACC,CAAAmX,EAAAW,EAAAZ,CAAA,EAAwCD,GAAAA,EACxCzY,EAAesD,EAAAA,EAEf+V,GAAkBX,EAASrN,EAAMiO,CAAQ,EAAC,IAAA3X,EAAAG,EAAAV,EAAA,CAAA,IAAAiK,GAAAjK,OAAApB,GAGxC2B,EAAAA,IAAM3B,GAAMwL,eAAiBH,EAAM,CAAAmP,KAAQ,SAAA,CAAW,EACtD1Y,EAAA,CAAC9B,EAAQqL,CAAI,EAACjK,KAAAiK,EAAAjK,KAAApB,EAAAoB,KAAAO,EAAAP,KAAAU,IAAAH,EAAAP,EAAA,CAAA,EAAAU,EAAAV,EAAA,CAAA,GAFhB,KAAA,CAAAkB,KAAAmY,CAAAA,EAAkCpY,EAAAA,WAChCV,EACAG,CACF,EAAC,IAAAI,EAAAd,EAAA,CAAA,IAAAiK,GAAAjK,EAAA,CAAA,IAAAmZ,GAAAnZ,EAAA,CAAA,IAAApB,GAAAgM,YAaY9J,EAAAA,IAAA,CACPqY,EAAAA,EACAva,GAAMgM,WAA0B0O,cAAC,CAAAC,UAAatP,CAAAA,CAAM,CAAC,EACtDjK,KAAAiK,EAAAjK,KAAAmZ,EAAAnZ,EAAA,CAAA,EAAApB,GAAAgM,WAAA5K,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAAA,IAAA+B,EAAA/B,OAAAuX,GAEDxV,EAAAC,EAAAA,IAAC6F,EAAAA,IAAA,CACQ,OAAA,OACD,MAAA,OACG,SAAA,SACK,cAAA,OACT0P,IAAAA,CAAAA,CAAU,EACfvX,KAAAuX,EAAAvX,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EAWM,MAAAkD,GAACmW,GAAe7O,MAAyBS,mBAAxC,GAAiD,EAAC,IAAA3H,EAAAtD,QAAAkD,GAV3DI,SAAC4E,EAAAA,KAAA,CACU,SAAA,WACD,OAAA,EACH,KAAA,IACC,MAAA,IACI,UAAA,SACF,QAAA,QACL,EAAA,EACM,SAAA,KACV,SAAA,CAAA,QACOhF,CAAAA,EACR,EAAOlD,MAAAkD,EAAAlD,MAAAsD,GAAAA,EAAAtD,EAAA,EAAA,EAAA,IAAAwD,EAAA,OAAAxD,EAAA,EAAA,IAAAc,GAAAd,QAAA+B,GAAA/B,EAAA,EAAA,IAAAsD,GAjCTE,EAAAqF,EAAAA,KAAChB,OACO,MAAA,OACM,YAAA,MACL,OAAA,YACK,YAAA,SACC,aAAA,KACb,iBAAA,GACO,OAAA,UACE,SAAA,WACA,SAAA,SACA,QAAA/G,EAKTiB,SAAAA,CAAAA,EAOAuB,CAAAA,EAYF,EAAMtD,MAAAc,EAAAd,MAAA+B,EAAA/B,MAAAsD,EAAAtD,MAAAwD,GAAAA,EAAAxD,EAAA,EAAA,EAlCNwD,CAkCM,CAGZ,EAEagW,GAAgBlY,EAAAA,KAC3BlB,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,EAAA,EAAC,CAAAwG,KAAAA,EAAA0F,QAAAA,CAAAA,EAAA/L,EACCxB,EAAesD,EAAAA,EAAW,IAAA3B,EAAAP,EAAA,CAAA,IAAApB,GAAAkO,kBAAA2M,QAExBlZ,EAAAA,IAAM3B,GAAMkO,kBAA0B2M,OAAAzZ,EAAA,CAAA,EAAApB,GAAAkO,kBAAA2M,OAAAzZ,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAAA,IAAAU,EAAAV,OAAApB,GACtC8B,EAAA,CAAC9B,CAAM,EAACoB,KAAApB,EAAAoB,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAFV,KAAA,CAAAkB,KAAA6I,CAAAA,EAAwB9I,EAAAA,WACtBV,EACAG,CACF,EAAC,IAAAI,EAAAd,OAAAmM,GAOiBrL,EAAAgL,GAAOK,EAAQL,EAACrF,IAAK,EAACzG,KAAAmM,EAAAnM,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAAA,IAAA+B,EAAA/B,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAC9Be,EAAA,CAAAqK,OAAU,OAAMC,GAAM,IAAA,EAAMrM,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EAAA,IAAAkD,EAAAlD,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAIhCkC,EAAAlB,EAAAA,IAACwH,GAAA,CACC,SAAAxH,EAAAA,IAAC0H,GAAA,CAAY,mBAAO,EACtB,EAAe1J,KAAAkD,GAAAA,EAAAlD,EAAA,CAAA,EAAA,IAAAsD,EAAAtD,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAGUsC,EAAA,CACnB,4BACA,2BAA2B,EAC5BtD,KAAAsD,GAAAA,EAAAtD,EAAA,CAAA,EAAA,IAAAwD,EAAAxD,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAEIwC,EAAA,CAAC,EAAG,CAAC,EAACxD,KAAAwD,GAAAA,EAAAxD,EAAA,CAAA,EAAA,IAAA0D,EAAA1D,EAAA,EAAA,IAAA+J,GAAA/J,QAAAmM,GAIVzI,EAAAqG,GAAKlH,IAAMoH,SACTiP,GAAA,CAEOjP,KAAAA,EACO,YAAA,IAAA,CACXkC,EAAQ,EAAK,CAAC,GAHXlC,EAAIA,KAAKnB,GAMjB,EAAC9I,MAAA+J,EAAA/J,MAAAmM,EAAAnM,MAAA0D,GAAAA,EAAA1D,EAAA,EAAA,EAAA,IAAA4D,EAAA5D,QAAA0D,GAnBNE,QAAC6F,GAAA,CACC,SAAAzH,EAAAA,IAAC6F,MAAA,CACsB,oBAAAvE,EAIb,QAAA,OACH,IAAAE,EACD,KACJ,YAAA,GAECE,WASH,EACF,EAAa1D,MAAA0D,EAAA1D,MAAA4D,GAAAA,EAAA5D,EAAA,EAAA,EAAA,IAAAwH,EAAAE,EAAA1H,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GACbwG,EAAAxF,EAAAA,IAACuH,GAAA,CACC,SAAAvH,EAAAA,IAAC2H,GAAA,CAAoB,QAAA,GACnB,SAAA3H,MAACyB,EAAAA,OAAA,CAAe,QAAA,UAAU,SAAA,QAAA,CAAM,CAAA,CAClC,EACF,EACAiE,QAAC2B,GAAA,EAAkB,EAAGrJ,MAAAwH,EAAAxH,MAAA0H,IAAAF,EAAAxH,EAAA,EAAA,EAAA0H,EAAA1H,EAAA,EAAA,GAAA,IAAA2H,EAAA3H,QAAA4D,GA/BxB+D,EAAAkB,EAAAA,KAACK,GAAA,CAAqB,OAAA,OACpBhG,SAAAA,CAAAA,EAGAU,EAsBA4D,EAKAE,CAAAA,EACF,EAAgB1H,MAAA4D,EAAA5D,MAAA2H,GAAAA,EAAA3H,EAAA,EAAA,EAAA,IAAA+H,EAAA,OAAA/H,EAAA,EAAA,IAAAyG,GAAAzG,QAAA2H,GAAA3H,EAAA,EAAA,IAAAc,GAxClBiH,QAACuB,GAAA,CACC,aACU,UAAA,SACJ7C,KAAAA,EACQ,aAAA3F,EACR,KAAAiB,EACS,eAAA,SAEf4F,SAAAA,EAiCF,EAAa3H,MAAAyG,EAAAzG,MAAA2H,EAAA3H,MAAAc,EAAAd,MAAA+H,GAAAA,EAAA/H,EAAA,EAAA,EAzCb+H,CAyCa,CAGnB,+CC5Ga2R,GAAapY,EAAAA,KACxBlB,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,EAAA,EAAC,CAAAwG,KAAAA,EAAA0F,QAAAA,CAAAA,EAAA/L,EAAsE,IAAAG,EAAAP,OAAAmM,GAMnD5L,EAAAuL,GAAOK,EAAQL,EAACrF,IAAK,EAACzG,KAAAmM,EAAAnM,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAAA,IAAAU,EAAAV,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAC9BN,EAAA,CAAA0L,OAAU,OAAMC,GAAM,IAAA,EAAMrM,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAAA,IAAAc,EAAAd,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAIhCF,EAAAkB,EAAAA,IAACwH,GAAA,CACC,SAAAxH,EAAAA,IAAC0H,GAAA,CAAY,gBAAI,EACnB,EAAe1J,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAAA,IAAA+B,EAAA/B,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GASXe,QAAC4X,WAAY,GAAA,EAAM,GAAA,KAAU,KAAA,KAAK,SAAA,WAAA,CAElC,EAAU3Z,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EAAA,IAAAkD,EAAAlD,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAERkC,EAAAlB,EAAAA,IAAC4X,EAAAA,IAAA,CACC,SAAA5X,EAAAA,IAAC6X,GAAAA,gBAAA,CAAA,CAAe,EAClB,EAAM7Z,KAAAkD,GAAAA,EAAAlD,EAAA,CAAA,EAAA,IAAAsD,EAAAtD,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAHRsC,EAAAuF,EAAAA,KAACyK,EAAAA,OAAA,CAAW,GAAA,EACVpQ,SAAAA,CAAAA,MAGAlB,EAAAA,IAACkG,EAAAA,MAAK,SAAA,wBAAA,CAAsB,CAAA,EAC9B,EAASlI,KAAAsD,GAAAA,EAAAtD,EAAA,CAAA,EAAA,IAAAwD,EAAAxD,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAEPwC,EAAAxB,EAAAA,IAAC4X,EAAAA,IAAA,CACC,SAAA5X,EAAAA,IAAC8X,GAAAA,eAAA,CAAA,CAAc,EACjB,EAAM9Z,KAAAwD,GAAAA,EAAAxD,EAAA,CAAA,EAAA,IAAA0D,EAAA1D,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAbV0C,SAACsE,QAAA,CACCjG,SAAAA,CAAAA,EAGAuB,EAMAuF,EAAAA,KAACyK,EAAAA,OAAA,CAAW,GAAA,EACV9P,SAAAA,CAAAA,EAEO,IACPxB,EAAAA,IAACkG,EAAAA,MAAK,SAAA,uBAAA,CAAqB,CAAA,CAAA,CAC7B,CAAA,EACF,EAAQlI,KAAA0D,GAAAA,EAAA1D,EAAA,CAAA,EAAA,IAAA4D,EAAA5D,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAEN4C,QAAC+V,WAAY,GAAA,EAAM,GAAA,KAAU,KAAA,KAAK,SAAA,WAAA,CAElC,EAAU3Z,KAAA4D,GAAAA,EAAA5D,EAAA,CAAA,EAAA,IAAAwH,EAAAxH,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAHZwG,SAACQ,QAAA,CACCpE,SAAAA,CAAAA,QAGC0P,EAAAA,OAAA,CAAW,GAAA,EACV,SAAAtR,EAAAA,IAACkG,OAAA,CAAK,6DAAiD,CAAA,CACzD,CAAA,EACF,EAAQlI,MAAAwH,GAAAA,EAAAxH,EAAA,EAAA,EAAA,IAAA0H,EAAA1H,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GA/BV0G,EAAAmB,EAAAA,KAACY,GAAA,CACW,UAAA,OACJ,KAAA,EACE,QAAA,OACM,cAAA,SACT,MAEL/F,SAAAA,CAAAA,EAiBA8D,SAQCQ,EAAAA,MAAA,CACC,SAAA,CAAAhG,EAAAA,IAAC2X,EAAAA,SAAY,GAAA,EAAM,GAAA,KAAU,KAAA,KAAK,SAAA,OAAA,CAElC,SACCzR,EAAAA,KAAA,CACE6R,SAAAA,CAAAA,GAAK,iBACR,CAAA,CAAA,CACF,CAAA,EACF,EAAa/Z,MAAA0H,GAAAA,EAAA1H,EAAA,EAAA,EAAA,IAAA2H,EAAA3H,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GA5Cf2G,SAACuB,GAAA,CACCpI,SAAAA,CAAAA,EAGA4G,EAyCA1F,EAAAA,IAACuH,GAAA,CACC,SAAAvH,EAAAA,IAAC2H,GAAA,CAAoB,QAAA,GACnB,SAAA3H,EAAAA,IAACyB,EAAAA,OAAA,CAAe,QAAA,UAAU,SAAA,QAAA,CAAM,CAAA,CAClC,EACF,QACC4F,GAAA,CAAA,CAAkB,CAAA,EACrB,EAAgBrJ,MAAA2H,GAAAA,EAAA3H,EAAA,EAAA,EAAA,IAAA+H,EAAA,OAAA/H,EAAA,EAAA,IAAAyG,GAAAzG,QAAAO,GA3DlBwH,QAACuB,GAAA,CACC,aACU,UAAA,SACJ7C,KAAAA,EACQ,aAAAlG,EACR,KAAAG,EACS,eAAA,SAEfiH,SAAAA,EAoDF,EAAa3H,MAAAyG,EAAAzG,MAAAO,EAAAP,MAAA+H,GAAAA,EAAA/H,EAAA,EAAA,EA5Db+H,CA4Da,CAGnB,EC5EaiS,GAAgBA,IAAA,CAAA,MAAAha,EAAAC,EAAAA,EAAA,CAAA,EAG3BrB,EAAesD,EAAAA,EAAW,IAAA9B,EAAAG,EAAA,OAAAP,OAAApB,GAGxBwB,EAAAA,IACGxB,EAEG2R,EAAAA,cAAc,CAAC3R,EAAMqb,WAAWC,OAAStb,EAAMsB,OAAQ,CAAC,EAACG,KACvDwC,EAAAA,IAAIwN,EASH,CACH,EAbJ/C,EAAAA,MAcF/M,EAAA,CAAC3B,CAAM,EAACoB,KAAApB,EAAAoB,KAAAI,EAAAJ,KAAAO,IAAAH,EAAAJ,EAAA,CAAA,EAAAO,EAAAP,EAAA,CAAA,GAhBHiB,aACLb,EAeAG,CACF,EAACW,IAAK,EAtBqB,SAAA4B,GAAAmH,EAAA,CAAA,OAYbA,EAAIkQ,WAAsBC,WAAC,QAAQ,CAAC,CAZvB,SAAA/J,GAAAjQ,EAAA,CAUZ,KAAA,CAAAiD,EAAAnD,CAAA,EAAAE,EACHia,EAAqBna,EAAOoa,UAAqBC,WAAMC,MAAC1X,EAExD,EAAC,MAEM,CAAA,GACFO,EAAKoX,YACK,CAACva,EAAOwa,qBAAR,CAAiCL,CAAAA,CAC/C,CCnBf,MAAMM,GAAwB,CAAE9Y,MAAO,UAAWC,QAAS,UAAW,EAEzD8Y,GAAmBA,IAAA,CAAA,MAAA5a,EAAAC,EAAAA,EAAA,CAAA,EAAA,IAAAG,EAAAJ,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAC0CZ,EAAA,CACtE,yBACA,eAAe,EAChBJ,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAHD,KAAA,CAAAN,uBAAAA,EAAAmb,cAAAA,CAAAA,EAAkD/a,GAAsBM,CAGvE,EACD6Z,EAAmBD,GAAAA,EACnBc,EAAwBC,KAAIC,OACzBf,GAAUgB,0BAAV,GAA6C,GAChD,EACAC,EAA4BJ,EAAkB,EAAlBA,EAAA,EAE5B,GACEb,GAAUgB,2BAA+Bpc,QAAzC,CACCa,EAAsB,OAEhB,KAII,MAAAa,GAACsa,EAAa,IAAAna,EAAAV,OAAAkb,GAIvBxa,EAAAsB,EAAAA,IAAC6F,EAAAA,KACU,SAAA,WACF,MAAA,EACC,OAAA,EACL,EAAA,EACc,iBAAA,YACN,WAAA,cACG,cAAA,OACC,cAAA,EACT,MAAA,QAEN,SAAAgB,EAAAA,KAACX,EAAAA,KAAA,CAAc,SAAA,KAAMgT,SAAAA,CAAAA,EAAoB,IAAA,CAAA,CAAE,CAAA,CAC7C,EAAMlb,KAAAkb,EAAAlb,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAAA,IAAAc,EAAA,OAAAd,EAAA,CAAA,IAAAO,GAAAP,OAAAU,GAjBRI,EAAAkB,EAAAA,IAACC,YACU,QAAA1B,EACMoa,iBACG,kBAAA,WAElBja,SAAAA,CAAAA,CAaF,EAAWV,KAAAO,EAAAP,KAAAU,EAAAV,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAlBXc,CAkBW,ECvCFqa,GAAUA,IAAA,CAAA,MAAAnb,EAAAC,EAAAA,EAAA,CAAA,EAAA,IAAAG,EAAAJ,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GACYZ,MAAIgb,KAAMpb,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAA3C,KAAA,CAAAqb,EAAAC,CAAA,EAAwBlV,EAAAA,SAAShG,CAAU,EAAC,IAAAG,EAAAG,EAAA,OAAAV,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAElCT,EAAAA,IAAA,CACR,MAAAgb,EAAiBC,YAAY,IAAA,CAC3BF,EAAQ,IAAIF,IAAM,CAAC,EAClB,GAAS,EAAC,MAEN,IAAMK,cAAcF,CAAQ,CAAC,EACnC7a,EAAA,CAAA,EAAEV,KAAAO,EAAAP,KAAAU,IAAAH,EAAAP,EAAA,CAAA,EAAAU,EAAAV,EAAA,CAAA,GANL8G,EAAAA,UAAUvG,EAMPG,CAAE,EAEE2a,CAAI,EAGAK,GAAgBrX,GAAA,CAAA,MAAArE,EAAAC,EAAAA,EAAA,CAAA,EAC3Bob,EAAaF,GAAAA,EAAS,IAAA/a,EAAAJ,OAAAqb,GAIjBjb,EAAAib,EAAIM,mBAAoBC,UAASC,SAAW,CAAAC,KACrC,UAASC,OACP,SAAA,CACT,EAAC/b,KAAAqb,EAAArb,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAAA,IAAAO,EAAA,OAAAP,EAAA,CAAA,IAAAqE,GAAArE,OAAAI,GAJJG,QAAC2H,EAAAA,KAAA,CAAc,SAAA,KAAI,GAAK7D,EACrBjE,SAAAA,EAIH,EAAOJ,KAAAqE,EAAArE,KAAAI,EAAAJ,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EALPO,CAKO,ECtBEyb,GAAe1a,EAAAA,KAAK,IAAA,CAAA,MAAAtB,EAAAC,EAAAA,EAAA,CAAA,EAAA,IAAAG,EAAA,OAAAJ,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAE7BZ,EAAA4B,EAAAA,IAAC6F,EAAAA,KACU,SAAA,WACH,KAAA,EACE,SACL,EAAA,EACG,MAAA,QACW,iBAAA,YACN,WAAA,cACG,cAAA,OACC,gBAEf,SAAA7F,EAAAA,IAAC0Z,GAAA,CAAA,CAAa,CAAA,CAChB,EAAM1b,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAZNI,CAYM,CAET,EChBY6b,GAA4BA,IAAA,CAAA,MAAAjc,EAAAC,EAAAA,EAAA,CAAA,EACvCrB,EAAesD,EAAAA,EAAW,IAAA9B,EAAAJ,EAAA,CAAA,IAAApB,GAAAsd,QAGxB9b,EAAAA,IACExB,GAAMsd,OAAkBpF,UAAChU,EAgBxB,EAAC9C,EAAA,CAAA,EAAApB,GAAAsd,OAAAlc,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAAA,IAAAO,EAAAP,OAAApB,GACJ2B,EAAA,CAAC3B,CAAM,EAACoB,KAAApB,EAAAoB,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAnBVoH,EAAAA,aACEhH,EAkBAG,CACF,CAAC,EAvBsC,SAAAuC,GAAA0D,EAAA,CAMjC,GAAIA,EAAKgJ,OAAU,SAAW2M,GAAAA,iBAAiB3V,EAAK6B,OAAS,GAAG,EAAC,CAC/D,GAAI,CAAC7B,EAAK6B,OAAO+T,KAAK,OAEtB,MAAAC,EAAY,IAAIC,IAAI9V,EAAK6B,OAAO+T,IAAK,EAEjCG,OAAMC,SAASC,OAAUJ,EAAGI,MACbC,QACf,iDACF,GAGEH,OAAM9V,KAAMD,EAAK6B,OAAO+T,KAAO,SAAS,CAE3C,CACF,CCPF,MAAMO,GAAmBA,IAAA,CAAA,MAAA3c,EAAAC,EAAAA,EAAA,CAAA,EAAA,IAAAG,EAAAJ,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GACyBZ,EAAA,CACrD,sBAAsB,EACvBJ,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAFD,KAAA,CAAAf,qBAAAA,CAAAA,EAAiCa,GAAsBM,CAEtD,EAEyB,IAAAG,EAAAG,EAAAV,OAAAf,GAGxBsB,EAAAA,IACEtB,EAAoBoB,KAClB6J,EAAAA,OAAOC,EAAAA,SAAS,EAChByS,EAAAA,SAASC,GAAA,CACP,MAAAC,EAAiBD,EAAYC,UAAZ,IAEjBC,EAAe,IAAIC,aAAmBC,GAAA,CACpC,GAAA,CACEC,eAAe,IAAA,CACb,MAAAC,EAAgBvM,GAAOwM,OAAQ,CAAA/L,MACtBwL,EAAYxL,MAAMC,YACZuL,EAAYvL,YAAYwL,SAAAA,CAAAA,CAEtC,EAEDG,EAAUI,KAAMF,CAAO,EACvBF,EAAUK,SAAAA,CAAW,CACtB,CAAC,OAAAxc,EAAA,CACKyc,MAAAA,EAAAA,EACPN,EAAUM,MAAOA,CAAK,CAAC,CACxB,CACF,EAEDC,EAA0Bve,EAAoBoB,KAC5Cod,EAAAA,KAAK,CAAC,EACNvT,SAAOwT,GAAO,CAAC,CAACb,EAAYc,KAAQD,GAACC,MAAUd,EAAYc,GAAI,CACjE,EAAC,OAEMZ,EAAM1c,KACXsC,EAAAA,UAAUuO,GACR0M,EAAAA,MACEC,EAAAA,MAAMf,CAAQ,EACdD,EAAYiB,OAAZxQ,EAAAA,MACAkQ,CACF,EAACnd,KACCwY,EAAAA,MAAAA,EACAkF,EAAAA,SAAS,IAAA,CACPb,eAAe,IAAA,CACbtM,GAAOoN,QAAS9M,CAAK,CAAC,CACvB,CAAC,CACH,CACH,CACF,CACF,CAAC,CACF,CACH,EACFxQ,EAAA,CAACzB,CAAoB,EAACe,KAAAf,EAAAe,KAAAO,EAAAP,KAAAU,IAAAH,EAAAP,EAAA,CAAA,EAAAU,EAAAV,EAAA,CAAA,GA/CxBoH,EAAAA,aACE7G,EA8CAG,CACF,CAAC,EC7DUud,GAAY9Z,GAAMC,WAC7B,SAAAC,EAAAC,EAAA,CAAA,MAAAtE,EAAAC,EAAAA,EAAA,EAAA,EAAA,IAAAsB,EAAA0M,EAAAtJ,EAAAnD,EAAA0c,EAAA9d,EAAAJ,OAAAqE,GACE,CAAA6Z,UAAAA,EAAA3c,SAAAA,EAAAqD,UAAAxE,EAAA6N,QAAAA,EAAAtJ,UAAAA,EAAA,GAAAnD,CAAAA,EAOI6C,EAAKrE,KAAAqE,EAAArE,KAAAuB,EAAAvB,KAAAiO,EAAAjO,KAAA2E,EAAA3E,KAAAwB,EAAAxB,KAAAke,EAAAle,KAAAI,IAAAmB,EAAAvB,EAAA,CAAA,EAAAiO,EAAAjO,EAAA,CAAA,EAAA2E,EAAA3E,EAAA,CAAA,EAAAwB,EAAAxB,EAAA,CAAA,EAAAke,EAAAle,EAAA,CAAA,EAAAI,EAAAJ,EAAA,CAAA,GAJP,MAAA4E,EAAAxE,IAAAvB,OAAA,GAAAuB,EAAgB,IAAAG,EAAAP,EAAA,CAAA,IAAAwB,EAAA2c,aASD5d,EAAA,CAAA,GAAKiB,EAAI2c,YAAYC,OAAU,CAAA,EAAGpe,EAAA,CAAA,EAAAwB,EAAA2c,YAAAne,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAAA,IAAAU,EAAAV,OAAAuB,GAE/Cb,QAAA2d,UAAA,QAAA,CAAuB,QAAA,GAAS9c,SAAAA,EAAS,EAAwBvB,KAAAuB,EAAAvB,MAAAU,GAAAA,EAAAV,EAAA,EAAA,EAC/C,MAAAc,GAAC8D,EAAS,IAAA7C,EAAA/B,QAAAke,GAUrBnc,EAAAmc,SACCG,EAAAA,QAAA,MAAA,CACE,SAAArc,EAAAA,2BACF,EACDhC,MAAAke,EAAAle,MAAA+B,GAAAA,EAAA/B,EAAA,EAAA,EAAA,IAAAkD,EAAAlD,EAAA,EAAA,IAAAiO,GAAAjO,QAAAsE,GAAAtE,EAAA,EAAA,IAAA+B,GAbLmB,QAAAmb,EAAAA,QAAA,WAAA,CACE,SAAAxV,OAAAwV,EAAAA,QAAA,QAAA,CACQ,MAAA,OACH,GAAA,IACA,GAAA,IACO,UAAA,KACF,QAAA,KACH/Z,IAAAA,EAEJvC,SAAAA,CAAAA,EAKAkM,CAAAA,CAAAA,CACH,CAAA,CACF,EAA2BjO,MAAAiO,EAAAjO,MAAAsE,EAAAtE,MAAA+B,EAAA/B,MAAAkD,GAAAA,EAAAlD,EAAA,EAAA,EAAA,IAAAsD,EAAAtD,EAAA,EAAA,IAAA2E,GAAA3E,QAAAc,GAAAd,EAAA,EAAA,IAAAkD,GAjB7BI,QAACwB,EAAAA,OAAA,CAAiB,SAAAhE,EAAuB6D,UAAAA,EACvCzB,SAAAA,EAiBF,EAASlD,MAAA2E,EAAA3E,MAAAc,EAAAd,MAAAkD,EAAAlD,MAAAsD,GAAAA,EAAAtD,EAAA,EAAA,EAAA,IAAAwD,EAAA,OAAAxD,EAAA,EAAA,IAAAwB,GAAAxB,EAAA,EAAA,IAAAO,GAAAP,EAAA,EAAA,IAAAU,GAAAV,QAAAsD,GAvBXE,SAAA6a,EAAAA,QAAA,KAAA,CAAA,GACM7c,EACS,YAAAjB,EAEbG,SAAAA,CAAAA,EACA4C,CAAAA,EAmBF,EAAqBtD,MAAAwB,EAAAxB,MAAAO,EAAAP,MAAAU,EAAAV,MAAAsD,EAAAtD,MAAAwD,GAAAA,EAAAxD,EAAA,EAAA,EAxBrBwD,CAwBqB,CAG3B,EAEa8a,GAAUna,GAAMC,WAG3B,SAAAC,EAAAC,EAAA,CAAA,MAAAtE,EAAAC,EAAAA,EAAA,CAAA,EAAA,IAAAsB,EAAAC,EAAAxB,OAAAqE,GACA,CAAA9C,SAAAA,EAAA,GAAAC,CAAAA,EAA8B6C,EAAKrE,KAAAqE,EAAArE,KAAAuB,EAAAvB,KAAAwB,IAAAD,EAAAvB,EAAA,CAAA,EAAAwB,EAAAxB,EAAA,CAAA,GAAA,IAAAI,EAAAJ,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAG/BZ,EAAA4B,EAAAA,IAACuc,aAAA,CACS,QAAA,QACG,aAAA,OACN,KAAA,MACQ,aAAA,OAEb,SAAAvc,EAAAA,IAACwc,GAAAA,2BAAA,CAAA,CAA0B,EAC7B,EAAaxe,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAAA,IAAAO,EAAA,OAAAP,EAAA,CAAA,IAAAuB,GAAAvB,OAAAsE,GAAAtE,EAAA,CAAA,IAAAwB,GARfjB,QAAC0d,GAAA,CAAmB1c,QAAAA,KAAcC,EAAW8C,IAAAA,EAC3ClE,SAAAA,EAQF,EAAYJ,KAAAuB,EAAAvB,KAAAsE,EAAAtE,KAAAwB,EAAAxB,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EATZO,CASY,CAEf,ECjEYke,GAActa,GAAMC,WAG/B,SAAAC,EAAAC,EAAA,CAAA,MAAAtE,EAAAC,EAAAA,EAAA,CAAA,EAAA,IAAAG,EAAAJ,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAGIZ,EAAA4B,EAAAA,IAAA0c,WAAA,MAAA,CAAA,CAAA,EAAwB1e,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAAA,IAAAO,EAAA,OAAAP,EAAA,CAAA,IAAAqE,GAAArE,OAAAsE,GAD1B/D,QAAAme,EAAAA,SAAA,MAAA,CAAA,GAA0Bra,EAAYC,IAAAA,EACpClE,SAAAA,EACF,EAAuBJ,KAAAqE,EAAArE,KAAAsE,EAAAtE,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAFvBO,CAEuB,CAE1B,EAM4B4D,GAAMC,WAGjC,SAAAC,EAAAC,EAAA,CAAA,MAAAtE,EAAAC,EAAAA,EAAA,EAAA,EAAA,IAAAsB,EAAAod,EAAAnd,EAAAxB,OAAAqE,GACA,CAAA9C,SAAAA,EAAAod,KAAAA,EAAA,GAAAnd,CAAAA,EAAoC6C,EAAKrE,KAAAqE,EAAArE,KAAAuB,EAAAvB,KAAA2e,EAAA3e,KAAAwB,IAAAD,EAAAvB,EAAA,CAAA,EAAA2e,EAAA3e,EAAA,CAAA,EAAAwB,EAAAxB,EAAA,CAAA,GAAA,IAAAI,EAAAJ,OAAA2e,GAIpCve,EAAAue,GAAQ3c,EAAAA,IAACsc,GAAA,CAASK,SAAAA,EAAK,EAAU3e,KAAA2e,EAAA3e,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAAA,IAAAO,EAAA,OAAAP,EAAA,CAAA,IAAAuB,GAAAvB,EAAA,CAAA,IAAAsE,GAAAtE,EAAA,CAAA,IAAAwB,GAAAxB,OAAAI,GAFpCG,SAAAme,WAAA,MAAA,CAAA,GAA0Bld,EAAW8C,IAAAA,EAClC/C,SAAAA,CAAAA,EACAnB,CAAAA,EACH,EAAuBJ,KAAAuB,EAAAvB,KAAAsE,EAAAtE,KAAAwB,EAAAxB,KAAAI,EAAAJ,MAAAO,GAAAA,EAAAP,EAAA,EAAA,EAHvBO,CAGuB,CAE1B,EAEM,MAAMqe,GAAeF,EAAAA,SAAezZ,KAC9B4Z,GAAoBH,EAAAA,SAAeI,UC/BnCC,GAAuBA,IAAM,CACxC,MAAM9E,EAAaD,GAAAA,EACbgF,EAAiB/E,GAAYgF,qBAAuB,EAEpDC,GACHjF,GAAYkF,+BAAiC,GAAK,EAE/CC,GAAsBnF,GAAYoF,6BAA+B,GAAK,EAEtEC,GACHrF,GAAYQ,YACTR,GAAYsF,0BACZtF,GAAYuF,yBAA2B,EACvCC,GACHxF,GAAYQ,YACTR,GAAYyF,wBACZzF,GAAY0F,uBAAyB,EAErC,CAACC,EAAgB,EAAGC,EAAiB,CAAC,EAAI,CAC9CP,EACAG,CAAY,EACZK,KAAK,CAACC,EAAGC,IAAMD,EAAIC,CAAC,EAEhBC,EACJhG,GAAYsF,4BACVtF,GAAYyF,yBACdzF,GAAYiG,sBAAwBjG,GAAYkG,kBAE5CC,EAAwBnG,GAAYQ,YACtCR,GAAYkF,8BACZlF,GAAYgF,mBAEhB,MAAO,CACLD,eAAAA,EACAM,eAAAA,EACAG,aAAAA,EACAP,qBAAAA,EACAE,mBAAAA,EACAa,wBAAAA,EACAG,sBAAAA,EACAR,cAAAA,EACAC,eAAAA,CAAAA,CAEJ,ECpCaQ,GAAwBA,IAAA,CAAA,MAAArgB,EAAAC,EAAAA,EAAA,EAAA,EACnCga,EAAmBD,GAAAA,EACnB,CAAAgF,eAAAA,EAAAY,cAAAA,EAAAC,eAAAA,EAAAO,sBAAAA,EAAAH,wBAAAA,CAAAA,EAMIlB,GAAAA,EAAsB,IAAA3e,EAAAJ,EAAA,CAAA,IAAAia,GAAAgB,0BACT7a,EAAA2a,KAAIuF,OAAQrG,GAAUgB,0BAAV,GAA6C,GAAG,EAACjb,EAAA,CAAA,EAAAia,GAAAgB,yBAAAjb,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAA9E,MAAAugB,EAAiBngB,EAA6D,IAAAG,EAAA,GAAAP,EAAA,CAAA,IAAAia,GAAAuG,iBAAA,CAE9E,MAAAC,EAAwBC,GAGlBA,GAAWC,WACN,GAAGD,EAAWrP,KAAM,MAAMoP,EAAgBC,EAAWC,UAAW,CAAC,GAEnED,GAAWrP,OAAX,GAGY9Q,EAAAkgB,EAAgBxG,GAAUuG,gBAAkB,EAACxgB,EAAA,CAAA,EAAAia,GAAAuG,iBAAAxgB,KAAAO,CAAA,MAAAA,EAAAP,EAAA,CAAA,EAAlE,MAAA4gB,EAAqBrgB,EAA6C,IAAAG,EAAAV,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAM1DN,QAAC+d,GAAA,CAAmB,MAAA,GAAA,CAAG,EAAIze,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EACP,MAAAc,EAAA,GAAGyf,CAAQ,IAAG,IAAAxe,EAAA/B,OAAAc,GAFpCiB,EAAA8G,EAAAA,KAACyK,EAAAA,OAAA,CAAsB,eAAA,gBACrB5S,SAAAA,CAAAA,EACAsB,EAAAA,IAAC6c,IAAmB/d,SAAAA,CAAAA,CAAe,CAAA,EACrC,EAASd,KAAAc,EAAAd,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EAAA,IAAAkD,EAAAlD,EAAA,CAAA,IAAAugB,GAAAvgB,OAAA+B,GAJXmB,EAAAlB,EAAAA,IAAC4c,IAAoB2B,MAAAA,EAAe,KAAA,KAAY,UAC9Cxe,SAAAA,CAAAA,CAIF,EAAe/B,KAAAugB,EAAAvgB,KAAA+B,EAAA/B,KAAAkD,GAAAA,EAAAlD,EAAA,CAAA,EAEZ,MAAAsD,EAAAsd,EAAA,YAA2BA,CAAY,GAAvC,IAAoD,IAAApd,EAAAxD,QAAAsD,GADvDE,EAAAxB,EAAAA,IAACkG,EAAAA,KAAA,CAAK,YAAkB,SAAA,OAAgB,SAAA,KAAS,GAAA,EAC9C5E,SAAAA,CAAAA,CACH,EAAOtD,MAAAsD,EAAAtD,MAAAwD,GAAAA,EAAAxD,EAAA,EAAA,EAAA,IAAA0D,EAAA1D,EAAA,EAAA,IAAAigB,GAAAjgB,EAAA,EAAA,IAAAgf,GAAAhf,EAAA,EAAA,IAAA4f,GAAA5f,EAAA,EAAA,IAAAia,GAAAuF,wBAAAxf,EAAA,EAAA,IAAAia,GAAAQ,aAAAza,EAAA,EAAA,IAAA6f,GAAA7f,QAAAogB,GACN1c,GAACsb,GACAnW,EAAAA,KAACyK,EAAAA,OAAA,CACC,SAAA,CAAAtR,MAACkG,EAAAA,MAAc,SAAA,KACZ+X,WAAA,GACML,EAAgB,CAAC,MAAMC,EAAiB,CAAC,OAAOO,CAAqB,GAD3E,GAEMR,EAAgB,CAAC,OAAOQ,CAAqB,GACtD,EACC,CAAC,CAACnG,GAAUQ,aAAZ5R,EAAAA,KAAAgY,EAAAA,SAAA,CAEG,SAAA,CAAA7e,EAAAA,IAACkG,EAAAA,MAAK,SAAA,GAAA,CAAC,EACPW,EAAAA,KAACX,EAAAA,KAAA,CAAc,SAAA,KAAK,SAAA,CAAA,KACf+R,GAAUuF,wBAAV,GAA2C,EAAE,GAAA,CAAA,CAClD,CAAA,CAAA,CAAO,CAAA,EAGb,EACDxf,MAAAigB,EAAAjgB,MAAAgf,EAAAhf,MAAA4f,EAAA5f,EAAA,EAAA,EAAAia,GAAAuF,uBAAAxf,EAAA,EAAA,EAAAia,GAAAQ,YAAAza,MAAA6f,EAAA7f,MAAAogB,EAAApgB,MAAA0D,GAAAA,EAAA1D,EAAA,EAAA,EAAA,IAAA4D,EAAA,OAAA5D,EAAA,EAAA,IAAAkD,GAAAlD,QAAAwD,GAAAxD,EAAA,EAAA,IAAA0D,GA1BHE,EAAAiF,EAAAA,KAACb,EAAAA,OAAiB,WAAA,SAAc,IAAA,EAAQ,KAAA,OAAgB,SAAA,OACtD9E,SAAAA,CAAAA,EAMAM,EAGCE,CAAAA,EAiBH,EAAQ1D,MAAAkD,EAAAlD,MAAAwD,EAAAxD,MAAA0D,EAAA1D,MAAA4D,GAAAA,EAAA5D,EAAA,EAAA,EA3BR4D,CA2BQ,ECxDCkd,GAAWxf,EAAAA,KACtBlB,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,EAAA,EAAA,IAAAsB,EAAA2M,EAAA1M,EAAAxB,OAAAI,GAAC,CAAAmB,SAAAA,EAAA2M,SAAAA,EAAA,GAAA1M,CAAAA,EAAApB,EAMEJ,KAAAI,EAAAJ,KAAAuB,EAAAvB,KAAAkO,EAAAlO,KAAAwB,IAAAD,EAAAvB,EAAA,CAAA,EAAAkO,EAAAlO,EAAA,CAAA,EAAAwB,EAAAxB,EAAA,CAAA,GAAA,IAAAO,EAAAG,EAAAV,OAAAkO,GAOQ3N,EAAA2N,IAAa,SAAb,CAAAiJ,OAAkC,CAAA,EAAlC,CAAAzJ,IAA+C,CAAA,EAElDhN,EAAAwN,IAAa,SAAb,CAAArM,MAEa,6BAA4BC,QAC1B,2BAAA,EAHf,CAAAD,MAMa,0BAAyBC,QACvB,wBAAA,EACV9B,KAAAkO,EAAAlO,KAAAO,EAAAP,KAAAU,IAAAH,EAAAP,EAAA,CAAA,EAAAU,EAAAV,EAAA,CAAA,GAAA,IAAAc,EAAA,OAAAd,EAAA,CAAA,IAAAuB,GAAAvB,EAAA,CAAA,IAAAwB,GAAAxB,EAAA,CAAA,IAAAO,GAAAP,QAAAU,GAfTI,EAAAkB,EAAAA,IAACC,EAAAA,SAAA,CACS,QAAA,OACM,cAAA,MACR,MAAA,OACG,SAAA,WAAU,GACd1B,EAEH,cAAAG,EAUgB,kBAAA,WACV,QAAA,WACG,WAAA,SACI,eAAA,SACR,OAAA,KACJ,EAAA,EAAC,GACAc,EAEHD,SAAAA,CAAAA,CACH,EAAWvB,KAAAuB,EAAAvB,KAAAwB,EAAAxB,KAAAO,EAAAP,MAAAU,EAAAV,MAAAc,GAAAA,EAAAd,EAAA,EAAA,EA1BXc,CA0BW,CAGjB,ECpCMigB,GAAiBC,EAAAA,OAAOC,EAAQ,EAEzBC,GAAe5f,EAAAA,KAAK+C,GAAA,CAAA,MAAArE,EAAAC,EAAAA,EAAA,EAAA,EAAA,IAAAG,EAAAJ,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAItBZ,EAAA,CAAA,OACK,YAAW,kBACA,uBAAsB,gBACxB,2BAAA,EAClBJ,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAAA,IAAAO,EAAAG,EAAAI,EAAAiB,EAAA/B,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAIQT,EAAA,CAAA4gB,QACI,CAAA,EAENzgB,EAAA,CAAA,sCACoC,CAAA0gB,UAC1B,yCAAA,EACZ,+BAC+B,CAAAA,UACnB,uCAAA,EACZ,kDACkD,CAAAA,UACtC,yCAAA,CACb,EAGMtgB,EAAA,CAAAqN,OACI,MAAKT,IACR,MAAK2T,UACC,mBAAkBC,gBACZ,sBAAA,EAEZvf,EAAA,CAAAoM,OACG,MAAKT,IACR,MAAK2T,UACC,mBAAkBC,gBACZ,oBAAA,EAClBthB,KAAAO,EAAAP,KAAAU,EAAAV,KAAAc,EAAAd,KAAA+B,IAAAxB,EAAAP,EAAA,CAAA,EAAAU,EAAAV,EAAA,CAAA,EAAAc,EAAAd,EAAA,CAAA,EAAA+B,EAAA/B,EAAA,CAAA,GAMY,MAAAkD,eAAamB,EAAKkd,QAAL,MAAA,MAA8B,UAAS,IAAAje,EAAAtD,OAAAkD,GAlB3DI,EAAA,CAAAke,KACA1gB,EAKL2gB,MACM1f,EAKN2f,OACO,CAAA/T,MACC,OAAMQ,OACL,OAAMT,IACT,MAAKiU,YACG,qBAAoBN,UACtBne,EAAoDoe,gBAC9C,YAAWM,UACjB,KAAA,CACb,EACD5hB,KAAAkD,EAAAlD,KAAAsD,GAAAA,EAAAtD,EAAA,CAAA,EAAA,IAAAwD,EAAA,OAAAxD,EAAA,CAAA,IAAAqE,GAAArE,OAAAsD,GA9CLE,QAACqE,EAAAA,IAAA,CACS,QAAA,WACH,IAAAzH,EAML,eAAC2gB,GAAA,CACW,YACH,MAAAxgB,EAGF,IAAAG,EAWG,OAAA4C,EAsBP,GACGe,EAAK,EAEb,EAAMrE,KAAAqE,EAAArE,KAAAsD,EAAAtD,KAAAwD,GAAAA,EAAAxD,EAAA,CAAA,EAjDNwD,CAiDM,CAET,ECpDKqe,GAAkBA,IAAA,CAAA,MAAA7hB,EAAAC,EAAAA,EAAA,EAAA,EAEtB6hB,EADmB9H,GAAAA,GACa8H,cAChC,CAAAxC,eAAAyC,EAAA3B,sBAAAhgB,CAAAA,EACE2e,GAAAA,EADuCqB,EAAAhgB,IAAAvB,OAAA,EAAAuB,EAEzC4hB,EAAoBF,EAChB/G,KAAIC,OAAQ+G,GAAA,GAAwB,CACtB,EAFEA,EAED,IAAAxhB,EAAAP,OAAAgiB,GACyBzhB,EAAAA,IAC1CxB,EAAAA,OAAO,CAAAC,QACIgjB,GAAA,CAAA,CACV,EAAChiB,KAAAgiB,EAAAhiB,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAHJ,KAAA,CAAAQ,EAAAmR,CAAA,EAA6BsQ,EAAAA,eAAe1hB,CAI5C,EAEA2hB,EAAYnH,KAAImH,IACd,EACAJ,EACI/G,KAAIC,OAAQoF,EAAwB,GAAK,CACjB,EAAxBA,EAAwB,CAC9B,EAAC,IAAA1f,EAAAI,EAAAd,EAAA,CAAA,IAAAgiB,GAAAhiB,OAAA2R,GAESjR,EAAAA,IAAA,CACRiR,EAAWvO,OAAQ4e,GAAA,CAAgB,CAAC,EACnClhB,EAAA,CAACkhB,EAAarQ,CAAW,EAAC3R,KAAAgiB,EAAAhiB,KAAA2R,EAAA3R,KAAAU,EAAAV,KAAAc,IAAAJ,EAAAV,EAAA,CAAA,EAAAc,EAAAd,EAAA,CAAA,GAF7B8G,EAAAA,UAAUpG,EAEPI,CAA0B,EAAC,IAAAiB,EAAA,OAAA/B,EAAA,CAAA,IAAAkiB,GAAAliB,OAAAQ,GAAAR,EAAA,CAAA,IAAA2R,GAEvB5P,EAAA,CAAAvB,MAAAA,EAAAmR,YAAAA,EAAAwQ,IAZK,EAACD,IAAAA,CAAAA,EAiBZliB,KAAAkiB,EAAAliB,KAAAQ,EAAAR,KAAA2R,EAAA3R,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EALM+B,CAKN,EAGUqgB,GAAW/d,GAAA,CAAA,MAAArE,EAAAC,EAAAA,EAAA,EAAA,EACtBrB,EAAesD,EAAAA,EACf+X,EAAmBD,GAAAA,EACnB,CAAA9Y,KAAAd,CAAAA,EACEa,EAAAA,WAAW,IAAMrC,GAAMsB,QAAW,CAACtB,CAAM,CAAO,GAAhD,CAAA,EAAiD,IAAA2B,EAAAP,OAAAI,GADrCG,EAAAH,IAAAvB,OAAA,CAAA,EAAAuB,EAAiBJ,KAAAI,EAAAJ,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAAjB,KAAA,CAAAsa,SAAAA,CAAAA,EAAA/Z,EAEdghB,EAAgBjH,GAAQ+H,mBAAuB,MAC/CP,EAAsB7H,GAAU6H,cAChC,CAAA1B,sBAAA1f,EAAAwe,qBAAAA,CAAAA,EACEH,GAAAA,EADMqB,EAAA1f,IAAA7B,OAAA,EAAA6B,EAGR4hB,EAAgCpD,EAChC,CAAA1e,MAAAA,EAAAmR,YAAAA,EAAAwQ,IAAAA,EAAAD,IAAAA,CAAAA,EAAyCL,GAAAA,EAAiB,IAAA/gB,EAAAd,EAAA,CAAA,IAAAsiB,GAAAtiB,EAAA,CAAA,IAAA8hB,GAAA9hB,EAAA,CAAA,IAAApB,GAAAoB,OAAA2R,GAItD7Q,EAAAyhB,GAAA,CACE,KAAA,CAAAxgB,CAAA,EAAoBygB,MAAKC,QAASF,CAA0B,EAAxCA,EAAA,CAAkCA,CAAM,EAArDhN,EAAAxT,IAAAlD,OAAA,EAAAkD,EAEP4P,EAAWvO,OAAQ5C,CAAK,EAExB,MAAAgO,EAAkBsT,EACd/G,KAAIC,MAAOxa,CAAK,EAAI,EACpBua,KAAIC,MAAOxa,CAAK,EAEf8hB,EAMH1jB,GAAMgM,WAAgC8X,oBAAC,CAAAlU,UAAAA,EAAAmU,YAExB/jB,EAAMqb,WAAW5W,MAAM6c,qBAAvB,EAAgD0C,UAClD,EAAA,CACZ,EATDhkB,GAAMgM,WAAkCiY,sBAAC,CAAA5X,kBACpBuD,EAASoU,UACjB,EAAA,CACZ,CAOF,EACF5iB,KAAAsiB,EAAAtiB,KAAA8hB,EAAA9hB,KAAApB,EAAAoB,KAAA2R,EAAA3R,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAvBL,MAAA8iB,EACEhiB,EAwBC,IAAAiB,EAAA/B,EAAA,CAAA,IAAApB,GAAAgM,YAAA5K,EAAA,CAAA,IAAA2R,EAAAoR,SAUDhhB,EAAAA,IACEnD,GAAMgM,WAAyBoY,aAAC,CAAAlG,SACpB,IAAGmG,QACJtR,EAAWoR,OAAAA,CACrB,EAAC/iB,EAAA,CAAA,EAAApB,GAAAgM,WAAA5K,EAAA,CAAA,EAAA2R,EAAAoR,QAAA/iB,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EAAA,IAAAkD,EAmBN,GAnBMlD,EAAA,EAAA,IAAApB,GAAAoB,QAAA2R,GACJzO,EAAA,CAACtE,EAAQ+S,CAAW,EAAC3R,MAAApB,EAAAoB,MAAA2R,EAAA3R,MAAAkD,GAAAA,EAAAlD,EAAA,EAAA,EANvBoH,EAAAA,aACErF,EAKAmB,CACF,EAWEkd,IAA0B,GACzB0B,GAAiB1B,IAA0B,EAKlC,CAAA,IAAA9c,EAAA,OAAAtD,EAAA,EAAA,IAAAqE,EAAA6e,OAAS5f,EAAAtB,EAAAA,IAAC6F,EAAAA,IAAA,CAAW,MAAAxD,EAAK6e,MAAM,EAAIljB,EAAA,EAAA,EAAAqE,EAAA6e,MAAAljB,MAAAsD,GAAAA,EAAAtD,EAAA,EAAA,EAA3BsD,CAA2B,CAAA,IAAAA,EAAAtD,QAAAQ,GAIrC8C,EAAA,CAAC9C,CAAK,EAACR,MAAAQ,EAAAR,MAAAsD,GAAAA,EAAAtD,EAAA,EAAA,EAAA,IAAAwD,EAAA,OAAAxD,QAAAkiB,GAAAliB,EAAA,EAAA,IAAAmiB,GAAAniB,EAAA,EAAA,IAAA8iB,GAAA9iB,EAAA,EAAA,IAAAqE,GAAArE,QAAAuhB,GAAAvhB,EAAA,EAAA,IAAAsD,GADhBE,QAAC0d,GAAA,CACQ,MAAA5d,EACF4e,IAAAA,EACAC,IAAAA,EACIZ,QAAAA,EACH4B,KAtEGA,EAuECL,SAAAA,EAAQ,GACdze,CAAAA,CAAK,EACTrE,MAAAkiB,EAAAliB,MAAAmiB,EAAAniB,MAAA8iB,EAAA9iB,MAAAqE,EAAArE,MAAAuhB,EAAAvhB,MAAAsD,EAAAtD,MAAAwD,GAAAA,EAAAxD,EAAA,EAAA,EARFwD,CAQE,ECvFO4f,GAAY9hB,EAAAA,KACvBlB,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,GAAA,EAAC,CAAAwG,KAAAA,EAAA4c,YAAAA,CAAAA,EAAAjjB,EASCkjB,EAAeC,EAAAA,OAAuB,IAAI,EAC1C3kB,EAAesD,EAAAA,EAAW,IAAA3B,EAAAP,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAKAT,GACxB,sCACA,2BACA,uBAAuB,EACxBP,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EARD,KAAA,CAAAlB,oCAAAA,EAAAQ,yBAAAA,EAAAF,sBAAAA,CAAAA,EAIIU,GAAsBS,CAIzB,EAAC,IAAAG,EAAAV,EAAA,CAAA,IAAApB,GAAAgM,WAAAsP,QAEAxZ,EAAAA,IAAM9B,GAAMgM,WAAmBsP,OAAAla,EAAA,CAAA,EAAApB,GAAAgM,WAAAsP,OAAAla,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAAA,IAAAc,EAAAd,OAAApB,GAC/BkC,EAAA,CAAClC,CAAM,EAACoB,KAAApB,EAAAoB,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAFV,KAAA,CAAAkB,KAAA0J,CAAAA,EAA6B3J,EAAAA,WAC3BP,EACAI,CACF,EAAC,IAAAiB,EAAA/B,EAAA,CAAA,IAAApB,GAAA8X,SAAAG,SAEC9U,EAAAA,IAAMnD,GAAM8X,SAAkBG,QAAA7W,EAAA,CAAA,EAAApB,GAAA8X,SAAAG,QAAA7W,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EAAA,IAAAkD,EAAAlD,OAAApB,GAC9BsE,EAAA,CAACtE,CAAM,EAACoB,KAAApB,EAAAoB,KAAAkD,GAAAA,EAAAlD,EAAA,CAAA,EAFV,KAAA,CAAAkB,KAAAwV,CAAAA,EAA2BzV,EAAAA,WACzBc,EACAmB,CACF,EAAC,IAAAI,EAAAtD,EAAA,CAAA,IAAApB,GAAA4kB,KAAAtJ,QAEC5W,EAAAA,IACE1E,GAAM4kB,KAAatJ,OAAK7Z,KACtBwC,EAAAA,IAAIC,EAMJ,CACF,EAAC9C,EAAA,CAAA,EAAApB,GAAA4kB,KAAAtJ,OAAAla,MAAAsD,GAAAA,EAAAtD,EAAA,EAAA,EAAA,IAAAwD,EAAAxD,QAAApB,GACH4E,EAAA,CAAC5E,CAAM,EAACoB,MAAApB,EAAAoB,MAAAwD,GAAAA,EAAAxD,EAAA,EAAA,EAXV,KAAA,CAAAkB,KAAAuiB,CAAAA,EAA4BxiB,EAAAA,WAC1BqC,EAUAE,CACF,EACAkgB,EAAoBD,IAAc,KAClCE,EAAqBF,IAAc,MACnCG,EAAwBlN,GAAQmN,uBAA2B,aAC3DC,EACEpN,GAAQqN,4BAAgC,WAC1C,CAAAC,EAAAC,CAAA,EAAsC7d,EAAAA,SAAS,EAAI,EAAC,IAAA1C,EAAAE,EAAA5D,QAAAlB,GAE1C4E,EAAAA,IAAA,CACR,GAAI,CAAC4f,EAAMpO,QAAQ,OAEnB,MAAAgP,GAAuB,IAAIxM,eAAeC,IAAA,CACxC,UAAKwM,MAAexM,GAClB7Y,EAAmCsE,OAAQ+gB,EAAK,CACjD,CACF,EAEDD,OAAAA,GAAcpM,QAASwL,EAAMpO,OAAQ,EAE9B,IAAA,CACLgP,GAAcnM,WAAAA,CAAa,CAC5B,EACAnU,EAAA,CAAC9E,CAAmC,EAACkB,MAAAlB,EAAAkB,MAAA0D,EAAA1D,MAAA4D,IAAAF,EAAA1D,EAAA,EAAA,EAAA4D,EAAA5D,EAAA,EAAA,GAdxC8G,EAAAA,UAAUpD,EAcPE,CAAqC,EAAC,IAAA4D,EAAAxH,EAAA,EAAA,IAAApB,GAAAgM,YAyBxBpD,EAAAA,IAAM5I,GAAMgM,WAAmCwZ,uBAAAA,EAAEpkB,EAAA,EAAA,EAAApB,GAAAgM,WAAA5K,MAAAwH,GAAAA,EAAAxH,EAAA,EAAA,EAExD,MAAA0H,GAACkD,GAAUyZ,oBAAX,CAAoCzZ,GAAU0Z,kBAAmB,IAAA3c,EAAA3H,QAAA8jB,GAGlEnc,EAAAmc,EAAsB9hB,EAAAA,IAACuiB,GAAAA,gBAAA,CAAA,CAAe,QAAOC,GAAAA,kBAAA,EAAiB,EAAGxkB,MAAA8jB,EAAA9jB,MAAA2H,GAAAA,EAAA3H,EAAA,EAAA,EAAA,IAAA+H,EAAA/H,EAAA,EAAA,IAAAwH,GAAAxH,QAAA0H,GAAA1H,EAAA,EAAA,IAAA2H,GAVpEI,QAACwW,aAAA,CACY,aAAA,OACN,KAAA,KACG,QAAA,QACI,WAAA,EACH,QAAA/W,EAEP,SAAAE,EAGDC,SAAAA,EACH,EAAa3H,MAAAwH,EAAAxH,MAAA0H,EAAA1H,MAAA2H,EAAA3H,MAAA+H,GAAAA,EAAA/H,EAAA,EAAA,EAAA,IAAAiI,EAAAjI,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GASXiH,QAACoY,GAAA,EAAqB,EAAGrgB,MAAAiI,GAAAA,EAAAjI,EAAA,EAAA,EAAA,IAAAmI,EAAAnI,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAR3BmH,EAAAU,EAAAA,KAACb,QAAA,CACO,KAAA,EACA,SACD,MACM,WAAA,SACF,SAAA,OACL,GAAA,EAEJC,SAAAA,CAAAA,EACAjG,MAACogB,IACQ,MAAA,CAAAzU,MACE,OAAM8W,SACH,QAAOtW,OACT,MAAA,CACV,CAAC,CAAA,EAEL,EAAQnO,MAAAmI,GAAAA,EAAAnI,EAAA,EAAA,EAOJ,MAAAsI,GAACsC,GAAU8Z,qBAAX,CACC9Z,GAAU+Z,qBAAsB,IAAAnc,EAAAxI,EAAA,EAAA,IAAApB,GAAAgM,YAE1BpC,EAAAA,IAAA,CACP5J,GAAMgM,WAAuCga,2BAAAA,CAAE,EAChD5kB,EAAA,EAAA,EAAApB,GAAAgM,WAAA5K,MAAAwI,GAAAA,EAAAxI,EAAA,EAAA,EAAA,IAAAyI,EAAAzI,QAAA8jB,GAEArb,EAAAqb,EACC9hB,EAAAA,IAAC6iB,GAAAA,kBAAA,CAAA,CAAiB,QAEjBC,GAAAA,mBAAA,EAAkB,EACpB9kB,MAAA8jB,EAAA9jB,MAAAyI,GAAAA,EAAAzI,EAAA,EAAA,EAAA,IAAA4I,EAAA5I,EAAA,EAAA,IAAAsI,GAAAtI,QAAAwI,GAAAxI,EAAA,EAAA,IAAAyI,GAjBHG,QAAC2V,aAAA,CACY,aAAA,QACN,KAAA,KACO,WAAA,EACJ,QAAA,QAEN,SAAAjW,EAGO,QAAAE,EAIRC,SAAAA,EAKH,EAAazI,MAAAsI,EAAAtI,MAAAwI,EAAAxI,MAAAyI,EAAAzI,MAAA4I,GAAAA,EAAA5I,EAAA,EAAA,EAAA,IAAA+I,EAAA/I,EAAA,EAAA,IAAA+H,GAAA/H,QAAA4I,GAtDfG,EAAAF,EAAAA,KAACyK,EAAAA,OAAA,CACO,KAAA,EACK,WAAA,SACI,eAAA,SACN,SAAA,OACL,GAAA,EAEJvL,SAAAA,CAAAA,EAYAI,EAiBAS,CAAAA,EAmBF,EAAS5I,MAAA+H,EAAA/H,MAAA4I,EAAA5I,MAAA+I,GAAAA,EAAA/I,EAAA,EAAA,EAAA,IAAAgJ,EAAAhJ,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAKSgI,EAAAC,IAAA,CAAC,KAAA,CAAAxC,KAAA0L,EAAAA,EAAAlJ,GACbgb,EAAexd,EAAI,CAAC,EACrBzG,MAAAgJ,GAAAA,EAAAhJ,EAAA,EAAA,EAWgB,MAAAiJ,EAAA+a,EAAA,eAAA,iBAA+C,IAAA9N,EAAAlW,QAAAiJ,GARhEiN,EAAAlU,EAAAA,IAAA+iB,cAAA,QAAA,CACW,SAAA,IACH,MAAA,OACE,QAAA,OACO,eAAA,SAEf,SAAA/iB,MAACgjB,GAAAA,eACQ,MAAA,CAAA3D,UACMpY,CAAAA,IAGjB,EAAsBjJ,MAAAiJ,EAAAjJ,MAAAkW,GAAAA,EAAAlW,EAAA,EAAA,EAAA,IAAAmW,EAAAnW,QAAAqjB,GAOPlN,EAAAA,IAAMkN,EAAY,MAAM,EAACrjB,MAAAqjB,EAAArjB,MAAAmW,GAAAA,EAAAnW,EAAA,EAAA,EAAA,IAAAoW,EAAApW,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAElCoV,QAAC6O,GAAAA,aAAA,EAAY,EAAGjlB,MAAAoW,GAAAA,EAAApW,EAAA,EAAA,EAAA,IAAAklB,EAAAllB,QAAAmW,GANlB+O,EAAAljB,EAAAA,IAACuc,EAAAA,WAAA,CACY,aAAA,OACN,KAAA,KACG,QAAA,QACC,QAAApI,EAETC,SAAAA,CAAAA,CACF,EAAapW,MAAAmW,EAAAnW,MAAAklB,GAAAA,EAAAllB,EAAA,EAAA,EAAA,IAAAmlB,EAAAnlB,QAAAqjB,GAKF8B,EAAAA,IAAM9B,EAAY,KAAK,EAACrjB,MAAAqjB,EAAArjB,MAAAmlB,GAAAA,EAAAnlB,EAAA,EAAA,EAAA,IAAAolB,GAAAplB,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAEjCokB,SAACC,GAAAA,kBAAA,EAAiB,EAAGrlB,MAAAolB,IAAAA,GAAAplB,EAAA,EAAA,EAAA,IAAAslB,EAAAtlB,QAAAmlB,GANvBG,EAAAtjB,EAAAA,IAACuc,EAAAA,WAAA,CACY,aAAA,oBACN,KAAA,KACG,QAAA,QACC,QAAA4G,EAETC,SAAAA,EAAAA,CACF,EAAaplB,MAAAmlB,EAAAnlB,MAAAslB,GAAAA,EAAAtlB,EAAA,EAAA,EAAA,IAAAulB,GAAAvlB,EAAA,EAAA,IAAAqjB,GAAArjB,QAAApB,GACZ2mB,GAAApjB,GAAkBvD,CASnB,SARG2f,EAAAA,WAAA,CACY,aAAA,SACN,KAAA,KACG,QAAA,QACC,YAAM8E,EAAY,QAAQ,EAEnC,SAAArhB,MAACwjB,GAAAA,WAAQ,EACX,EACDxlB,MAAAqjB,EAAArjB,MAAApB,EAAAoB,MAAAulB,IAAAA,GAAAvlB,EAAA,EAAA,EAIU,MAAAylB,GAAA/B,EAAA,QAAA,QAA+B,IAAAgC,GAAA1lB,QAAA0jB,GAAA1jB,EAAA,EAAA,IAAApB,GAAA4kB,MAC/BkC,GAAAA,IAAA,CACHhC,EACF9kB,GAAM4kB,KAAWmC,KAAC,CAAAC,QAAW,EAAA,CAAM,EAEnChnB,GAAM4kB,KAAYqC,MAAC,CAAAD,QACR,GAAIE,MACN,CAAA,CACR,CACF,EACF9lB,MAAA0jB,EAAA1jB,EAAA,EAAA,EAAApB,GAAA4kB,KAAAxjB,MAAA0lB,IAAAA,GAAA1lB,EAAA,EAAA,EAAA,IAAA+lB,GAAA/lB,QAAA0jB,GAEAqC,GAAArC,EAAc1hB,EAAAA,IAACgkB,GAAAA,UAAA,CAAA,CAAS,QAAOC,GAAAA,SAAA,EAAQ,EAAGjmB,MAAA0jB,EAAA1jB,MAAA+lB,IAAAA,GAAA/lB,EAAA,EAAA,EAAA,IAAAkmB,GAAAlmB,EAAA,EAAA,IAAAylB,IAAAzlB,QAAA0lB,IAAA1lB,EAAA,EAAA,IAAA+lB,IAf7CG,GAAAlkB,EAAAA,IAACuc,EAAAA,WAAA,CACY,aAAA,OACN,KAAA,KACI,QAAAkH,GACA,QAAAC,GAWRK,SAAAA,EAAAA,CACH,EAAa/lB,MAAAylB,GAAAzlB,MAAA0lB,GAAA1lB,MAAA+lB,GAAA/lB,MAAAkmB,IAAAA,GAAAlmB,EAAA,EAAA,EAAA,IAAAmmB,GAAAnmB,QAAAV,GAIF6mB,GAAAA,IAAA,CACP7mB,EAAyB,EAAI,CAAC,EAC/BU,MAAAV,EAAAU,MAAAmmB,IAAAA,GAAAnmB,EAAA,EAAA,EAAA,IAAAomB,GAAApmB,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAGDolB,SAACC,GAAAA,WAAA,EAAU,EAAGrmB,MAAAomB,IAAAA,GAAApmB,EAAA,EAAA,EAAA,IAAAsmB,GAAAtmB,QAAAmmB,IARhBG,GAAAtkB,EAAAA,IAACuc,EAAAA,WAAA,CACY,aAAA,YACN,KAAA,KACI,QAAA4H,GAGD,QAAA,QAERC,SAAAA,EAAAA,CACF,EAAapmB,MAAAmmB,GAAAnmB,MAAAsmB,IAAAA,GAAAtmB,EAAA,EAAA,EAAA,IAAAumB,GAAAvmB,EAAA,EAAA,IAAAqjB,GAAArjB,QAAApB,GACZ2nB,GAAAnkB,GAAuBxD,CASxB,SARG2f,EAAAA,WAAA,CACY,aAAA,YACN,KAAA,KACG,QAAA,QACC,YAAM8E,EAAY,WAAW,EAEtC,SAAArhB,MAACwkB,GAAAA,cAAW,EACd,EACDxmB,MAAAqjB,EAAArjB,MAAApB,EAAAoB,MAAAumB,IAAAA,GAAAvmB,EAAA,EAAA,EAAA,IAAAymB,GAAAzmB,EAAA,EAAA,IAAAqjB,GAAArjB,QAAApB,GACA6nB,GAAArkB,GAAuBxD,CASxB,SARG2f,EAAAA,WAAA,CACY,aAAA,cACN,KAAA,KACG,QAAA,QACC,YAAM8E,EAAY,aAAa,EAExC,SAAArhB,MAAC2B,GAAAA,gBAAa,EAChB,EACD3D,MAAAqjB,EAAArjB,MAAApB,EAAAoB,MAAAymB,IAAAA,GAAAzmB,EAAA,EAAA,EAAA,IAAA0mB,GAAA1mB,EAAA,EAAA,IAAA4jB,GAAA5jB,QAAAZ,GAAAY,EAAA,EAAA,IAAApB,GACA8nB,GAAApkB,GAAiB1D,CAYlB,GAXEoD,EAAAA,IAACuc,EAAAA,WAAA,CACY,aAAA,QACN,KAAA,KACG,QAAA,QACC,QAAA,IAAA,CACPnf,EAAsB,EAAI,CAAC,EAEnB,SAAA,CAACwkB,EAEX,SAAA5hB,EAAAA,IAAC2kB,GAAAA,qBAAkB,EACrB,EACD3mB,MAAA4jB,EAAA5jB,MAAAZ,EAAAY,MAAApB,EAAAoB,MAAA0mB,IAAAA,GAAA1mB,EAAA,EAAA,EAIU,MAAA4mB,GAAAjD,EAAA,QAAA,QAAgC,IAAAkD,GAAA7mB,QAAA2jB,GAAA3jB,EAAA,EAAA,IAAApB,GAAA4kB,MAChCqD,GAAAA,IAAA,CACHlD,EACF/kB,GAAM4kB,KAAWmC,KAAC,CAAAC,QAAW,EAAA,CAAM,EAEnChnB,GAAM4kB,KAAYqC,MAAC,CAAAD,QACR,GAAIE,MACN,EAAA,CACR,CACF,EACF9lB,MAAA2jB,EAAA3jB,EAAA,EAAA,EAAApB,GAAA4kB,KAAAxjB,MAAA6mB,IAAAA,GAAA7mB,EAAA,EAAA,EAAA,IAAA8mB,GAAA9mB,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAED8lB,SAACC,GAAAA,oBAAA,EAAmB,EAAG/mB,MAAA8mB,IAAAA,GAAA9mB,EAAA,EAAA,EAAA,IAAAgnB,GAAAhnB,EAAA,EAAA,IAAA4mB,IAAA5mB,QAAA6mB,IAfzBG,GAAAhlB,EAAAA,IAACuc,EAAAA,WAAA,CACY,aAAA,aACN,KAAA,KACI,QAAAqI,GACA,QAAAC,GAWTC,SAAAA,EAAAA,CACF,EAAa9mB,MAAA4mB,GAAA5mB,MAAA6mB,GAAA7mB,MAAAgnB,IAAAA,GAAAhnB,EAAA,EAAA,EAAA,IAAAinB,GAAAjnB,EAAA,EAAA,IAAAqjB,GAAArjB,QAAApB,GACZqoB,GAAA5kB,GAAmBzD,CASpB,SARG2f,EAAAA,WAAA,CACY,aAAA,UACN,KAAA,KACG,QAAA,QACC,YAAM8E,EAAY,SAAS,EAEpC,SAAArhB,MAACklB,GAAAA,iBAAc,EACjB,EACDlnB,MAAAqjB,EAAArjB,MAAApB,EAAAoB,MAAAinB,IAAAA,GAAAjnB,EAAA,EAAA,EAAA,IAAAmnB,GAAAnnB,EAAA,EAAA,IAAAklB,GAAAllB,QAAAslB,GAAAtlB,EAAA,EAAA,IAAAulB,IAAAvlB,QAAAkmB,IAAAlmB,EAAA,EAAA,IAAAsmB,IAAAtmB,QAAAumB,IAAAvmB,EAAA,EAAA,IAAAymB,IAAAzmB,EAAA,EAAA,IAAA0mB,IAAA1mB,EAAA,EAAA,IAAAgnB,IAAAhnB,QAAAinB,IAlHLE,SAAApC,EAAAA,YAAA,QAAA,CAA6B,QAAA,OAAsB,eAAA,SACjD,SAAAlc,EAAAA,KAAChB,EAAAA,IAAA,CAAY,QAAA,OAAiB,UAAA,OAAW,GAAA,EAAO,GAAA,EAC9Cqd,SAAAA,CAAAA,EAQAI,EAQCC,GAUDW,GAiBAI,GAUCC,GAUAE,GAUAC,GAaDM,GAiBCC,EAAAA,CAAAA,CAUH,CAAA,CACF,EAAsBjnB,MAAAklB,EAAAllB,MAAAslB,EAAAtlB,MAAAulB,GAAAvlB,MAAAkmB,GAAAlmB,MAAAsmB,GAAAtmB,MAAAumB,GAAAvmB,MAAAymB,GAAAzmB,MAAA0mB,GAAA1mB,MAAAgnB,GAAAhnB,MAAAinB,GAAAjnB,MAAAmnB,IAAAA,GAAAnnB,EAAA,EAAA,EAAA,IAAAonB,GAAApnB,EAAA,EAAA,IAAAgkB,GAAAhkB,QAAAkW,GAAAlW,EAAA,GAAA,IAAAmnB,IAzI1BC,SAAC9T,SAAA,CAAiB,UAAA,UAAqB,WAAA,SAAwB,eAAA,SAC7D,SAAAzK,EAAAA,KAAAkc,EAAAA,YAAA,KAAA,CACQf,KAAAA,EACA,KAAA,EACQ,aAAAhb,EAGR,MAAA,OAENkN,SAAAA,CAAAA,EAYAiR,EAAAA,CAAAA,CAqHF,CAAA,CACF,EAASnnB,MAAAgkB,EAAAhkB,MAAAkW,EAAAlW,OAAAmnB,GAAAnnB,OAAAonB,IAAAA,GAAApnB,EAAA,GAAA,EAAA,IAAAqnB,GAAA,OAAArnB,EAAA,GAAA,IAAAyG,GAAAzG,SAAA+I,GAAA/I,EAAA,GAAA,IAAAonB,IA7MXC,UAACvG,GAAA,CACUra,QAAAA,EACA,SAAA,SACD,QAAA,OACM,cAAA,SACL,SAAA,OACL,GAAA,EACA,GAAA,EACC6c,MAELva,SAAAA,CAAAA,EAwDAqe,EAAAA,EA4IF,EAAWpnB,OAAAyG,EAAAzG,OAAA+I,EAAA/I,OAAAonB,GAAApnB,OAAAqnB,IAAAA,GAAArnB,EAAA,GAAA,EA9MXqnB,EA8MW,CAGjB,EAlRE,SAAAvkB,GAAAO,EAAA,CAAA,OAgCUA,EAAKikB,aAAgB,EAArB,KAEIjkB,EAAKikB,aAAgB,EAArB,MAAAzoB,MAEW,CCnEpB,MAAM0oB,GAAgBA,IAAA,CAAA,MAAAvnB,EAAAC,EAAAA,EAAA,CAAA,EAC3B,CAAAunB,EAAAC,CAAA,EAAwCrhB,EAAAA,SAAS,EAAK,EAAC,IAAAhG,EAAAJ,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAEXZ,EAAAA,IACtCsnB,SAAQC,kBACHD,SAAQE,iBACIC,MACVC,QAAOvK,KAAM,EAACwK,KACf,IAAA,CACJN,EAAgB,EAAK,CAAC,CACvB,EAGEC,SAAQM,gBAAgBC,kBACV,CAAAC,aAAgB,MAAA,CAAQ,EAACL,MACrCC,QAAOvK,KAAM,EAACwK,KACf,IAAA,CACJN,EAAgB,EAAI,CAAC,CACtB,EACJznB,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAhBD,MAAAmoB,EAAgC/nB,EAgB1B,IAAAG,EAAAG,EAAAV,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAEIT,EAAAA,IAAA,CACR,MAAA6nB,YAAA,CACEX,EAAgB,CAAC,CAACC,SAAQC,iBAAkB,CAAC,EAG/CD,gBAAQW,iBAAkB,mBAAoBD,CAAuB,EAE9D,IAAA,CACLV,SAAQY,oBAAqB,mBAAoBF,CAAuB,CAAC,CAC1E,EACA1nB,EAAA,CAAA,EAAEV,KAAAO,EAAAP,KAAAU,IAAAH,EAAAP,EAAA,CAAA,EAAAU,EAAAV,EAAA,CAAA,GAVL8G,EAAAA,UAAUvG,EAUPG,CAAE,EAAC,IAAAI,EAAA,OAAAd,OAAAwnB,GAEC1mB,EAAA,CAAA0mB,aAAAA,EAAAW,wBAAAA,CAAAA,EAGNnoB,KAAAwnB,EAAAxnB,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAHMc,CAGN,ECjCUynB,GAASjnB,EAAAA,KACpBlB,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,EAAA,EAAC,CAAAwG,KAAAA,EAAA4c,YAAAA,CAAAA,EAAAjjB,EAOCxB,EAAesD,EAAAA,EAAW,IAAA3B,EAAAP,EAAA,CAAA,IAAApB,GAAAsB,QAAAsoB,WAExBjoB,EAAAA,IAAM3B,GAAMsB,QAAmBsoB,UAAAxoB,EAAA,CAAA,EAAApB,GAAAsB,QAAAsoB,UAAAxoB,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAAA,IAAAU,EAAAV,OAAApB,GAC/B8B,EAAA,CAAC9B,CAAM,EAACoB,KAAApB,EAAAoB,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAFV,KAAA,CAAAkB,KAAAoZ,CAAAA,EAA2BrZ,EAAAA,WACzBV,EACAG,CACF,EACA,CAAA8mB,aAAAA,EAAAW,wBAAAA,CAAAA,EAAkDZ,GAAAA,EAAe,IAAAzmB,EAAAd,OAAAqjB,GAclDviB,EAAAA,IAAMuiB,EAAY,MAAM,EAACrjB,KAAAqjB,EAAArjB,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAAA,IAAA+B,EAAA/B,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAElCe,QAAC0mB,GAAAA,eAAA,EAAc,EAAGzoB,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EAAA,IAAAkD,EAAAlD,OAAAc,GAPpBoC,EAAAlB,EAAAA,IAACuc,EAAAA,WAAA,CACY,aAAA,OACN,KAAA,KACG,QAAA,QACI,WAAA,EACH,QAAAzd,EAETiB,SAAAA,EACF,EAAa/B,KAAAc,EAAAd,KAAAkD,GAAAA,EAAAlD,EAAA,CAAA,EAUR,MAAAsD,EAAAgX,GAAQjJ,MAAO,IAAA7N,EAAAxD,OAAAsD,GATpBE,EAAAxB,EAAAA,IAACgG,EAAAA,OACO,KAAA,EACA,KAAA,IACD,MACM,WAAA,SACF,SAAA,OACL,GAAA,EAEJ,SAAAhG,MAACkG,EAAAA,KAAA,CAAK,SAAA,GAAkB,SAAA,OACrB5E,SAAAA,CAAAA,CACH,CAAA,CACF,EAAQtD,KAAAsD,EAAAtD,MAAAwD,GAAAA,EAAAxD,EAAA,EAAA,EAAA,IAAA0D,EAAA1D,QAAAqjB,GAOK3f,EAAAA,IAAM2f,EAAY,MAAM,EAACrjB,MAAAqjB,EAAArjB,MAAA0D,GAAAA,EAAA1D,EAAA,EAAA,EAAA,IAAA4D,EAAA5D,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAElC4C,QAAC8kB,GAAAA,SAAA,EAAQ,EAAG1oB,MAAA4D,GAAAA,EAAA5D,EAAA,EAAA,EAAA,IAAAwH,EAAAxH,QAAA0D,GAPd8D,EAAAxF,EAAAA,IAACuc,EAAAA,WAAA,CACY,aAAA,QACN,KAAA,KACO,WAAA,EACJ,QAAA,QACC,QAAA7a,EAETE,SAAAA,EACF,EAAa5D,MAAA0D,EAAA1D,MAAAwH,GAAAA,EAAAxH,EAAA,EAAA,EAAA,IAAA0H,EAAA1H,QAAAwnB,GAQV9f,EAAA8f,EAAexlB,EAAAA,IAAC2mB,GAAAA,iBAAA,CAAA,CAAgB,QAAOC,GAAAA,aAAA,EAAY,EAAG5oB,MAAAwnB,EAAAxnB,MAAA0H,GAAAA,EAAA1H,EAAA,EAAA,EAAA,IAAA2H,EAAA3H,EAAA,EAAA,IAAAmoB,GAAAnoB,QAAA0H,GAPzDC,EAAA3F,EAAAA,IAACuc,EAAAA,WAAA,CACY,aAAA,QACN,KAAA,KACO,WAAA,EACJ,QAAA,QACC4J,QAAAA,EAERzgB,SAAAA,EACH,EAAa1H,MAAAmoB,EAAAnoB,MAAA0H,EAAA1H,MAAA2H,GAAAA,EAAA3H,EAAA,EAAA,EAAA,IAAA+H,EAAA/H,EAAA,EAAA,IAAAwH,GAAAxH,QAAA2H,GAlBfI,SAACuL,SAAA,CACC9L,SAAAA,CAAAA,EASAG,CAAAA,EASF,EAAS3H,MAAAwH,EAAAxH,MAAA2H,EAAA3H,MAAA+H,GAAAA,EAAA/H,EAAA,EAAA,EAAA,IAAAiI,EAAA,OAAAjI,EAAA,EAAA,IAAAyG,GAAAzG,EAAA,EAAA,IAAA+H,GAAA/H,EAAA,EAAA,IAAAkD,GAAAlD,QAAAwD,GA9CXyE,EAAAY,EAAAA,KAACiY,IACUra,QAAAA,EACA,SAAA,MACF,OAAA,OACQ,eAAA,gBAEfvD,SAAAA,CAAAA,EASAM,EAYAuE,CAAAA,EAoBF,EAAW/H,MAAAyG,EAAAzG,MAAA+H,EAAA/H,MAAAkD,EAAAlD,MAAAwD,EAAAxD,MAAAiI,GAAAA,EAAAjI,EAAA,EAAA,EA/CXiI,CA+CW,CAGjB,ECzEa4gB,GAAeA,IAAA,CAAA,MAAA7oB,EAAAC,EAAAA,EAAA,CAAA,EAAA,IAAAG,EAAAJ,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAMAZ,EAAA,CACxB,gBACA,wBACA,iBACA,wBAAwB,EACzBJ,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAVD,KAAA,CAAA6a,cAAAA,EAAAiO,sBAAAA,EAAArqB,eAAAA,EAAAC,uBAAAA,CAAAA,EAKIoB,GAAsBM,CAKzB,EAGCG,EAAAsa,GAAApc,EACAiC,EAAAooB,GAAApqB,EAA+C,IAAAoC,EAAA,OAAAd,EAAA,CAAA,IAAAO,GAAAP,OAAAU,GAF1CI,EAAA,CACLP,EACAG,CAA+C,EAChDV,KAAAO,EAAAP,KAAAU,EAAAV,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAHMc,CAGG,ECZCioB,GAAYznB,EAAAA,KACvBlB,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,EAAA,EAAC,CAAAojB,YAAAA,CAAAA,EAAAjjB,EAeC,CAAAya,CAAA,EAAwBgO,GAAAA,EAAc,IAAAtoB,EAAAP,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAEdT,GACpB,gBACA,mBACA,mBAAmB,EACpBP,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EALH,KAAA,CAAAb,cAAAA,EAAAE,iBAAAA,EAAAM,kBAAAA,CAAAA,EACEG,GAAsBS,CAIrB,EAMKG,EAAAma,GAAA,CACC1b,GADD,CAECE,GAFD,CAGCM,EAAiB,IAAAmB,EAAAd,EAAA,CAAA,IAAAqjB,GAAArjB,OAAAU,GALtBI,EAAAkB,EAAAA,IAACumB,GAAA,CAEG,KAAA7nB,EAKW2iB,YAAAA,EAAW,EACxBrjB,KAAAqjB,EAAArjB,KAAAU,EAAAV,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAEM,MAAA+B,EAAA8Y,GAAA,CAAkB1b,GAAlB,CAAoCE,EAAgB,IAAA6D,EAAAlD,EAAA,CAAA,IAAAqjB,GAAArjB,OAAA+B,GAD5DmB,EAAAlB,EAAAA,IAACohB,GAAA,CACO,KAAArhB,EACOshB,YAAAA,EAAW,EACxBrjB,KAAAqjB,EAAArjB,KAAA+B,EAAA/B,KAAAkD,GAAAA,EAAAlD,EAAA,CAAA,EAAA,IAAAsD,EAAA,OAAAtD,EAAA,CAAA,IAAAc,GAAAd,OAAAkD,GAbJI,qBACExC,SAAAA,CAAAA,EASAoC,CAAAA,EAGE,EACDlD,KAAAc,EAAAd,KAAAkD,EAAAlD,KAAAsD,GAAAA,EAAAtD,EAAA,CAAA,EAdHsD,CAcG,CAGT,EC3Ca0lB,GAA4BA,IAAA,CAAA,MAAAhpB,EAAAC,EAAAA,EAAA,CAAA,EACvC,CAAA,CAAA6oB,CAAA,EAAgDD,GAAAA,EAChDjqB,EAAesD,EAAAA,EAAW,IAAA9B,EAAAJ,EAAA,CAAA,IAAA8oB,GAAA9oB,OAAApB,GAQbwB,EAAAA,IACJxB,GAAMiQ,SAAoBoa,UAAK5oB,KACpC6J,EAAAA,OAAOpH,EAAiD,EACxDmM,EAAAA,eACErQ,EAAM6D,UAAUymB,WAChBtqB,EAAM6D,UAAUsN,2BAClB,EACA9I,EAAAA,IAAI1G,GAAA,CAAC,KAAA,CAAA,CAAAkC,EAAA0mB,CAAA,EAAA5oB,EAMDuoB,EADErmB,GAAA0mB,EACoB,GAEA9Y,EAFK,CAG5B,CACF,CACH,EACDrQ,KAAA8oB,EAAA9oB,KAAApB,EAAAoB,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAAA,IAAAO,EAAAP,OAAApB,GAAE2B,EAAA,CAAC3B,CAAM,EAACoB,KAAApB,EAAAoB,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAnBXoH,EAAAA,aAAahH,EAmBVG,CAAQ,CAAC,EA7B2B,SAAAuC,GAAA0D,EAAA,CAAA,OAYjBA,EAAKgJ,OAAU,OAAf,CAAyBhJ,EAAK4iB,OAAQ,CAZrB,SAAA/Y,GAAAgZ,EAAA,CAAA,MAyBA,CAACA,CAAG,CCpBtC,MAAMC,GAAQnlB,GAAMC,WACzB,SAAAC,EAAAC,EAAA,CAAA,MAAAtE,EAAAC,EAAAA,EAAA,EAAA,EAAA,IAAAsB,EAAAgoB,EAAAC,EAAAhY,EAAAiY,EAAAjoB,EAAAxB,OAAAqE,GACE,CAAAmN,MAAAA,EAAAjQ,SAAAA,EAAAioB,WAAAA,EAAAD,UAAAA,EAAAE,aAAAA,EAAA,GAAAjoB,CAAAA,EACE6C,EAAKrE,KAAAqE,EAAArE,KAAAuB,EAAAvB,KAAAupB,EAAAvpB,KAAAwpB,EAAAxpB,KAAAwR,EAAAxR,KAAAypB,EAAAzpB,KAAAwB,IAAAD,EAAAvB,EAAA,CAAA,EAAAupB,EAAAvpB,EAAA,CAAA,EAAAwpB,EAAAxpB,EAAA,CAAA,EAAAwR,EAAAxR,EAAA,CAAA,EAAAypB,EAAAzpB,EAAA,CAAA,EAAAwB,EAAAxB,EAAA,CAAA,GAAA,IAAAI,EAAAJ,EAAA,CAAA,IAAAwR,GAAAxR,OAAAypB,GAGFrpB,EAAAoR,GACC3I,EAAAA,KAAA6gB,EAAAA,MAAA,MAAA,CACGlY,SAAAA,CAAAA,EACDxP,EAAAA,IAAA0nB,EAAAA,MAAA,kBAAA,CAAyCD,SAAAA,CAAAA,CAAY,CAAA,EACvD,EACDzpB,KAAAwR,EAAAxR,KAAAypB,EAAAzpB,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAAA,IAAAO,EAAAP,QAAAwpB,GAEAjpB,EAAAipB,GACCxnB,MAAA0nB,EAAAA,MAAA,WAAA,CAAyBF,SAAAA,EAAW,EACrCxpB,MAAAwpB,EAAAxpB,MAAAO,GAAAA,EAAAP,EAAA,EAAA,EAAA,IAAAU,EAAAV,QAAAupB,GACA7oB,EAAA6oB,GACCvnB,MAAA0nB,EAAAA,MAAA,UAAA,CAAwBH,SAAAA,EAAU,EACnCvpB,MAAAupB,EAAAvpB,MAAAU,GAAAA,EAAAV,EAAA,EAAA,EAAA,IAAAc,EAAA,OAAAd,QAAAuB,GAAAvB,EAAA,EAAA,IAAAsE,GAAAtE,EAAA,EAAA,IAAAwB,GAAAxB,EAAA,EAAA,IAAAI,GAAAJ,QAAAO,GAAAP,EAAA,EAAA,IAAAU,GAbHI,uBAAuBwD,IAAAA,EAAG,GAAM9C,EAC7BpB,SAAAA,CAAAA,EAMAmB,EACAhB,EAGAG,CAAAA,EAGH,EAAmBV,MAAAuB,EAAAvB,MAAAsE,EAAAtE,MAAAwB,EAAAxB,MAAAI,EAAAJ,MAAAO,EAAAP,MAAAU,EAAAV,MAAAc,GAAAA,EAAAd,EAAA,EAAA,EAdnBc,CAcmB,CAGzB,ECVa6oB,GAAcroB,EAAAA,KAAK,IAAA,CAAA,MAAAtB,EAAAC,EAAAA,EAAA,EAAA,EAAA,IAAAG,EAAAJ,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAEyCZ,EAAA,CACrE,gBACA,uBAAuB,EACxBJ,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAHD,KAAA,CAAAb,cAAAA,EAAAC,sBAAAA,CAAAA,EAAiDU,GAAsBM,CAGtE,EACDxB,EAAesD,EAAAA,EAAW,IAAA3B,EAAAP,OAAApB,GACF2B,EAAA+B,GAAiB1D,CAA2B,EAA5CA,EAAAC,OAA6CmB,KAAApB,EAAAoB,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAArE,MAAA4pB,EAAwBrpB,EAA6C,IAAAG,EAAAV,EAAA,CAAA,IAAA4pB,GAAAC,MAAAC,WAEnEppB,EAAAA,IAAMkpB,GAAeC,MAAiBC,UAAA9pB,EAAA,CAAA,EAAA4pB,GAAAC,MAAAC,UAAA9pB,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAAA,IAAAc,EAAAd,OAAA4pB,GACtC9oB,EAAA,CAAC8oB,CAAe,EAAC5pB,KAAA4pB,EAAA5pB,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAFnB,KAAA,CAAAkB,KAAA6oB,CAAAA,EAAgC9oB,EAAAA,WAC9BP,EACAI,CACF,EAAC,IAAAiB,EAAA/B,OAAAZ,GAMiB2C,EAAA+J,GAAO1M,EAAsB0M,EAACrF,IAAK,EAACzG,KAAAZ,EAAAY,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EAAA,IAAAkD,EAAAlD,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAIhDkC,EAAAlB,EAAAA,IAACwH,GAAA,CACC,SAAAxH,EAAAA,IAAC0H,GAAA,CAAY,wBAAY,EAC3B,EAAe1J,KAAAkD,GAAAA,EAAAlD,EAAA,CAAA,EAAA,IAAAsD,EAAAtD,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAGXsC,EAAAtB,EAAAA,IAAA8T,EAAAA,SAAA,WAAA,CAAqB,SAAA,iEAErB,EAAsB9V,MAAAsD,GAAAA,EAAAtD,EAAA,EAAA,EAAA,IAAAwD,EAAAxD,EAAA,EAAA,IAAA4pB,GAAAC,OAKDrmB,EAAAwmB,GAAA,CACb,MAAAxpB,EAAcsL,EAACtL,MACfopB,GAAeC,MAAczmB,OAAC,CAAA6mB,YACfzpB,EAAK0pB,YAnCX,EAAA,CAqCR,CAAC,EACHlqB,EAAA,EAAA,EAAA4pB,GAAAC,MAAA7pB,MAAAwD,GAAAA,EAAAxD,EAAA,EAAA,EACM,MAAA0D,EAAAqmB,GAAaE,aAAb,MAAmC,IAAArmB,EAAA5D,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAGxC4C,EAAA5B,EAAAA,IAAC0Q,GAAA,CAAa,MAAA,UAAiC,SAAA,UAE/C,EAAQ1S,MAAA4D,GAAAA,EAAA5D,EAAA,EAAA,EAAA,IAAAwH,EAAAxH,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GACRwG,EAAAxF,EAAAA,IAAC0Q,GAAA,CAAa,MAAA,SAAgC,SAAA,SAAM,EAAQ1S,MAAAwH,GAAAA,EAAAxH,EAAA,EAAA,EAAA,IAAA0H,EAAA1H,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAC5D0G,EAAA1F,EAAAA,IAAC0Q,GAAA,CAAa,MAAA,MAA6B,SAAA,uBAE3C,EAAQ1S,MAAA0H,GAAAA,EAAA1H,EAAA,EAAA,EAAA,IAAA2H,EAAA3H,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAPV2G,EAAAkB,EAAAA,KAACb,EAAAA,MAAA,CAAW,IAAA,EACVpE,SAAAA,CAAAA,EAGA4D,EACAE,EAGA1F,EAAAA,IAAC0Q,GAAA,CAAa,MAAA,SAAgC,SAAA,QAAA,CAAM,CAAA,EACtD,EAAQ1S,MAAA2H,GAAAA,EAAA3H,EAAA,EAAA,EAAA,IAAA+H,EAAA/H,EAAA,EAAA,IAAAwD,GAAAxD,QAAA0D,GArBZqE,QAACuhB,GAAA,CAAY,MAAA,UACX,SAAAtnB,EAAAA,IAAC8Q,GAAA,CACe,aAAA,MACC,cAAAtP,EAOR,MAAAE,EAEPiE,WAUF,EACF,EAAQ3H,MAAAwD,EAAAxD,MAAA0D,EAAA1D,MAAA+H,GAAAA,EAAA/H,EAAA,EAAA,EAOI,MAAAiI,EAAA8hB,GAAaE,cAAkB,SACjC9hB,EAAA4hB,GAAaG,aAAb,GAAgD,IAAA5hB,EAAAtI,QAAAmI,GAAjDG,EAAA,CAACH,CAAgD,EAACnI,MAAAmI,EAAAnI,MAAAsI,GAAAA,EAAAtI,EAAA,EAAA,EAAA,IAAAwI,EAAAxI,EAAA,EAAA,IAAA4pB,GAAAC,OAC1CrhB,EAAA2hB,GAAA,CACb,MAAA5U,EAAczJ,EAACtL,MAAM,CAAA,GAAP,EAEdopB,GAAeC,MAAczmB,OAAC,CAAA8mB,YACf1pB,CAAAA,CACd,CAAC,EACHR,EAAA,EAAA,EAAA4pB,GAAAC,MAAA7pB,MAAAwI,GAAAA,EAAAxI,EAAA,EAAA,EAAA,IAAAyI,EAAAzI,EAAA,EAAA,IAAAiI,GAAAjI,QAAAsI,GAAAtI,EAAA,EAAA,IAAAwI,GAdHC,QAACsK,GAAA,CACO,MAAA,oBACN,aACK,IAAA,IACA,IAAA,GACC,OACI,SAAA9K,EACH,MAAAK,EACQ,cAAAE,EAMd,EACDxI,MAAAiI,EAAAjI,MAAAsI,EAAAtI,MAAAwI,EAAAxI,MAAAyI,GAAAA,EAAAzI,EAAA,EAAA,EAAA,IAAA4I,EAAA5I,EAAA,EAAA,IAAA+H,GAAA/H,QAAAyI,GA7CRG,QAACa,GAAA,CACC,SAAAZ,EAAAA,sBACEvF,SAAAA,CAAAA,EAGAuF,EAAAA,KAAAiN,EAAAA,SAAA,QAAA,CACE/N,SAAAA,CAAAA,EAwBAU,CAAAA,CAAAA,CAgBF,CAAA,CAAA,CACF,CAAA,CACF,EAAazI,MAAA+H,EAAA/H,MAAAyI,EAAAzI,MAAA4I,GAAAA,EAAA5I,EAAA,EAAA,EAAA,IAAA+I,EAAAC,EAAAhJ,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GACb+H,EAAA/G,EAAAA,IAACuH,GAAA,CACC,SAAAvH,EAAAA,IAAC2H,GAAA,CAAoB,QAAA,GACnB,SAAA3H,MAACyB,EAAAA,OAAA,CAAe,QAAA,UAAU,SAAA,OAAA,CAAK,CAAA,CACjC,EACF,EACAuF,QAACK,GAAA,EAAkB,EAAGrJ,MAAA+I,EAAA/I,MAAAgJ,IAAAD,EAAA/I,EAAA,EAAA,EAAAgJ,EAAAhJ,EAAA,EAAA,GAAA,IAAAiJ,EAAAjJ,QAAA4I,GA1DxBK,SAACC,GAAA,CACChG,SAAAA,CAAAA,EAGA0F,EAiDAG,EAKAC,CAAAA,EACF,EAAgBhJ,MAAA4I,EAAA5I,MAAAiJ,GAAAA,EAAAjJ,EAAA,EAAA,EAAA,IAAAkW,EAAA,OAAAlW,EAAA,EAAA,IAAAb,GAAAa,QAAAiJ,GAAAjJ,EAAA,EAAA,IAAA+B,GAjElBmU,EAAAlU,EAAAA,IAACsH,GAAA,CACC,UAAA,GACMnK,KAAAA,EACQ,aAAA4C,EACJ,UAAA,SAEVkH,SAAAA,CAAAA,CA4DF,EAAajJ,MAAAb,EAAAa,MAAAiJ,EAAAjJ,MAAA+B,EAAA/B,MAAAkW,GAAAA,EAAAlW,EAAA,EAAA,EAlEbkW,CAkEa,CAEhB,ECrGYkU,GAAiB9oB,EAAAA,KAC5BlB,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,EAAA,EAAC,CAAAoqB,YAAA9pB,EAAA+pB,YAAA5pB,EAAAoD,KAAAA,EAAAgH,IAAAhK,EAAAypB,QAAAA,EAAAtf,kBAAAA,CAAAA,EAAA7K,EACCiqB,EAAA9pB,IAAA1B,OAAA,GAAA0B,EACA+pB,EAAA5pB,IAAA7B,OAAA,EAAA6B,EAEAoK,EAAAhK,IAAAjC,OAAA,IAAAiC,EAAS,IAAAiB,EAAA/B,EAAA,CAAA,IAAAqqB,GAAArqB,OAAAsqB,GAaMvoB,EAAAsoB,EAAWG,UACxBzP,KAAImH,IAAKoI,EAFa,GAEkB,CAAC,EACzCvP,KAAImH,IAAKoI,EAAa,CAAC,CACzB,EAACtqB,KAAAqqB,EAAArqB,KAAAsqB,EAAAtqB,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EAHD,MAAAyqB,EAAe1oB,EAGd,IAAAmB,EAAAlD,EAAA,CAAA,IAAAqqB,GAAArqB,EAAA,CAAA,IAAAsqB,GAAAtqB,EAAA,CAAA,IAAA8D,EAAAE,QACad,EAAAmnB,EAAWG,UACvBzP,KAAIoH,IAAKmI,EAAcxmB,EAAIE,OAASqmB,EAAWrmB,OAAU,CAAC,EAC1D+W,KAAIoH,IACFmI,EAAcxmB,EAAIE,OARE,GASpBqmB,EAAWrmB,OAAU,CACvB,CACF,EAAChE,KAAAqqB,EAAArqB,KAAAsqB,EAAAtqB,EAAA,CAAA,EAAA8D,EAAAE,OAAAhE,KAAAkD,GAAAA,EAAAlD,EAAA,CAAA,EAND,MAAA0qB,EAAcxnB,EAMb,IAAAI,EAAAtD,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAKUsC,EAAA,CAAAqnB,OAAU,EAACC,SAAY,QAAA,EAAU5qB,KAAAsD,GAAAA,EAAAtD,EAAA,CAAA,EAAA,IAAAwD,EAAAxD,EAAA,CAAA,IAAA8K,GAAA9K,OAAAuqB,GAC/B/mB,EAAAsI,GAAA,CACPA,EAAC+e,eAAAA,EAEDN,EAAQzf,CAAG,CAAC,EACb9K,KAAA8K,EAAA9K,KAAAuqB,EAAAvqB,MAAAwD,GAAAA,EAAAxD,EAAA,EAAA,EAAA,IAAA0D,EAAA1D,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAMoC0C,EAAA,CAAAonB,QAAW,OAAA,EAAS9qB,MAAA0D,GAAAA,EAAA1D,EAAA,EAAA,EAAA,IAAA4D,EAAA5D,QAAA8D,GAEvDF,EAAA5B,EAAAA,IAAA,KAAI8B,SAAAA,CAAAA,CAAK,EAAI9D,MAAA8D,EAAA9D,MAAA4D,GAAAA,EAAA5D,EAAA,EAAA,EAAA,IAAAwH,EAAAxH,EAAA,EAAA,IAAA0qB,GAAA1qB,QAAAyqB,GAAAzqB,EAAA,EAAA,IAAA4D,GAFf4D,SAACU,OAAA,CAAgB,UAAA,EAAM,GAAA,OAAc,MAAAxE,EAAsB,SAAA,CAAA,IACvD+mB,EACF7mB,EACC8mB,EAAM,GAAA,EACT,EAAO1qB,MAAA0qB,EAAA1qB,MAAAyqB,EAAAzqB,MAAA4D,EAAA5D,MAAAwH,GAAAA,EAAAxH,EAAA,EAAA,EAAA,IAAA0H,EAAA1H,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GACqC0G,EAAA,CAAAqjB,eAAkB,MAAA,EAAQ/qB,MAAA0H,GAAAA,EAAA1H,EAAA,EAAA,EACnE,MAAA2H,EAAA,cAAcsD,IAAsBpM,OAAYoM,EAAoB,EAAtD,sBAAgF,GAAE,IAAAlD,EAAA/H,QAAA2H,GADnGI,EAAA/F,EAAAA,IAACkG,QAAc,SAAA,KAAW,MAAA,WAAkB,MAAAR,EACzCC,SAAAA,CAAAA,CACH,EAAO3H,MAAA2H,EAAA3H,MAAA+H,GAAAA,EAAA/H,EAAA,EAAA,EAAA,IAAAiI,EAAA,OAAAjI,EAAA,EAAA,IAAA8K,GAAA9K,EAAA,EAAA,IAAAwH,GAAAxH,EAAA,EAAA,IAAA+H,GAAA/H,QAAAwD,GApBTyE,EAAAY,EAAAA,KAACqC,EAAAA,KAAA,CACOJ,KAAAA,EACC,MAAAxH,EACE,QAAAE,EAKD,QAAA,OACM,cAAA,SACH,WAAA,aACN,MAELgE,SAAAA,CAAAA,EAKAO,CAAAA,EAGF,EAAO/H,MAAA8K,EAAA9K,MAAAwH,EAAAxH,MAAA+H,EAAA/H,MAAAwD,EAAAxD,MAAAiI,GAAAA,EAAAjI,EAAA,EAAA,EArBPiI,CAqBO,CAGb,EC9CM+iB,GAAgB,IAETC,GAAYA,IAAA,CAAA,MAAAjrB,EAAAC,EAAAA,EAAA,EAAA,EACvBirB,EAAsBtZ,EAAAA,YAAY9O,EAA6B,EAC/D,CAAA5B,KAAAiqB,CAAAA,EAA8BlqB,EAAAA,WAAWiqB,CAAa,EACtDtsB,EAAesD,EAAAA,EAAW,IAAA9B,EAAAJ,OAAApB,GACDwB,EAAA+B,GAAkBvD,CAA2B,EAA7CA,EAAAC,OAA8CmB,KAAApB,EAAAoB,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAAvE,MAAAorB,EAAyBhrB,EAA8C,IAAAG,EAAAG,EAAAV,EAAA,CAAA,IAAAorB,GAAAprB,OAAAkrB,GAEnC3qB,EAAAA,IAC3B2qB,EAAa7qB,KAClB+P,EAAAA,qBAAAA,EACAzN,EAAAA,UAAUnC,GACRA,IAAU,IAAV,CAAiB4qB,EACbve,EAAAA,GAAGhO,MAUH,EATA+e,EAAAA,MACE/Q,KAAG,CAAA2C,KACK,QAAgBtO,KAChBrC,MAAAA,CACP,EACDgf,EAAAA,MAAMmN,EAAa,EAAC3qB,KAClBsC,EAAAA,UAAU,IAAMyoB,EAAgBC,OAAOA,OAAQ7qB,CAAK,CAAC,EACrDqC,EAAAA,IAAIwN,EAA0C,CAChD,CACF,CACN,CACF,EACC3P,EAAA,CAAC0qB,EAAkBF,CAAa,EAAClrB,KAAAorB,EAAAprB,KAAAkrB,EAAAlrB,KAAAO,EAAAP,KAAAU,IAAAH,EAAAP,EAAA,CAAA,EAAAU,EAAAV,EAAA,CAAA,GAlBpC,KAAA,CAAAkB,KAAAmqB,CAAAA,EAAyBpqB,EAAAA,WAAWV,EAkBjCG,CAAiC,EAAC,IAAAI,EAAAd,OAAAkrB,GAIzBpqB,EAAAoqB,EAAa7N,KAAKiO,KAAMJ,CAAa,EAAClrB,KAAAkrB,EAAAlrB,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EACxC,MAAA+B,EAAAspB,GAAM7b,MAAN,OACFtM,EAAAmoB,GAAMnqB,KAAM,IAAAoC,EAAA,OAAAtD,EAAA,CAAA,IAAAmrB,GAAAnrB,EAAA,CAAA,IAAAc,GAAAd,EAAA,EAAA,IAAA+B,GAAA/B,QAAAkD,GAJbI,EAAA,CAAA9C,MACE2qB,EAAWI,SACRzqB,EAAsC0qB,OACxCzpB,EAAsBb,KACxBgC,CAAAA,EACPlD,KAAAmrB,EAAAnrB,KAAAc,EAAAd,MAAA+B,EAAA/B,MAAAkD,EAAAlD,MAAAsD,GAAAA,EAAAtD,EAAA,EAAA,EALMsD,CAKN,EA/BsB,SAAAR,IAAA,CAAA,OACiB,IAAI2oB,EAAAA,gBAAgB,EAAE,CAAC,CADxC,SAAApb,GAAAnP,EAAA,CAAA,MAmBM,CAAAsO,KAAQ,MAActO,KAAAA,CAAAA,CAAQ,CCzBtD,MAAMwqB,GAAsBpqB,EAAAA,KACjClB,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,EAAA,EAAC,CAAAqK,WAAAA,CAAAA,EAAAlK,EACCxB,EAAesD,EAAAA,EACf,CAAA1B,MAAA2qB,EAAAI,SAAAA,EAAAC,OAAAA,EAAAtqB,KAAAA,CAAAA,EAAuD+pB,GAAAA,EAAW,IAAA1qB,EAAAP,OAAAurB,GAE5ChrB,EAAAuL,GAAA,CACpByf,EAASzf,EAACzD,OAAO7H,KAAM,CAAC,EACzBR,KAAAurB,EAAAvrB,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAFD,MAAA2rB,EAAsBprB,EAErB,IAAAG,EAAAV,OAAAsK,GAAAtK,EAAA,CAAA,IAAApB,GAAAgM,YAGClK,EAAAoK,GAAA,CACER,EAAAA,EACA1L,GAAMgM,WAAoBC,QAACC,CAAG,CAAC,EAChC9K,KAAAsK,EAAAtK,EAAA,CAAA,EAAApB,GAAAgM,WAAA5K,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAJH,MAAAuqB,EAAgB7pB,EAMf,IAAAI,EAAAd,EAAA,CAAA,IAAAkB,GAAAlB,OAAApB,GAGCkC,EAAAA,IAAMlC,GAAMwL,eAAiBlJ,GAAI+C,MAAQ,EAAG,GAAS,GAAxB,EAAyB,EAACjE,KAAAkB,EAAAlB,KAAApB,EAAAoB,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAAA,IAAA+B,EAAA/B,OAAAkB,GACvDa,EAAA,CAACb,CAAI,EAAClB,KAAAkB,EAAAlB,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EAFR,KAAA,CAAAkB,KAAA0qB,CAAAA,EAAsC3qB,EAAAA,WACpCH,EACAiB,CACF,EAAC,IAAAmB,EAAAlD,EAAA,EAAA,IAAA2rB,GAAA3rB,QAAAmrB,GAIGjoB,EAAAlB,EAAAA,IAAC6pB,SACa,YAAA,oBACLV,MAAAA,EACGQ,SAAAA,EACE,aACJ,QAAA,SACH,KAAA,SACK,UAAA,OACO,iBAAA,OACT,QAAA,OACO,eAAA,aAAA,CAAa,EAC5B3rB,MAAA2rB,EAAA3rB,MAAAmrB,EAAAnrB,MAAAkD,GAAAA,EAAAlD,EAAA,EAAA,EAAA,IAAAsD,EAAAtD,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAEOsC,EAAA,CAAAsnB,SAAY,SAAQkB,UAAa,MAAA,EAAQ9rB,MAAAsD,GAAAA,EAAAtD,EAAA,EAAA,EAAA,IAAAwD,EAAAxD,QAAAwrB,GAK/ChoB,EAAAgoB,IAAW,SAAWxpB,EAAAA,IAACkG,EAAAA,KAAA,CAAK,SAAA,gBAAa,EAAOlI,MAAAwrB,EAAAxrB,MAAAwD,GAAAA,EAAAxD,EAAA,EAAA,EAAA,IAAA0D,EAAA1D,EAAA,EAAA,IAAAkB,GAAA8C,QAChDN,EAAAxC,GAAI8C,SAAa,GAAKhC,EAAAA,IAACkG,QAAK,SAAA,aAAU,EAAOlI,EAAA,EAAA,EAAAkB,GAAA8C,OAAAhE,MAAA0D,GAAAA,EAAA1D,EAAA,EAAA,EAAA,IAAA4D,EAAA5D,QAAA4rB,GAAA5rB,EAAA,EAAA,IAAAkB,GAAA8C,QAAAhE,EAAA,EAAA,IAAAuqB,GAAAvqB,EAAA,EAAA,IAAAmrB,GAAAnrB,QAAAwrB,GAC7C5nB,EAAA4nB,IAAW,QAAUtqB,GAAI8C,QAAJ,GAAqB,UACxCgE,EAAAA,MAAA,CACC,SAAA,CAAAa,EAAAA,KAACX,EAAAA,KAAA,CAAc,SAAA,KAAMhH,SAAAA,CAAAA,GAAI8C,OAAS,YAAA,EAAU,QAC3CgE,EAAAA,MAAA,CAAW,IAAA,EACT4jB,SAAAA,GAAmB/oB,IAAM,CAAAkpB,EAAAC,UAErB5B,GAAA,CAGG,YAAA2B,EAAMvhB,MAAYG,OAAgBshB,eAAcC,eACjCxhB,aADf,GAGS,UAAAqhB,EAAMvhB,MAAoB2hB,cACxB,YAAAJ,EAAMvhB,MAAYG,OAAa2f,aAA/B,EACPa,KAAAA,EACD,IAAAY,EAAMvhB,KAAKM,IACPyf,QAAAA,EACU,kBAAAwB,EAAMvhB,MAAwBS,iBAAAA,EAV5C+gB,CAU4C,CAGtD,CAAA,CACH,CAAA,EACF,EACDhsB,MAAA4rB,EAAA5rB,EAAA,EAAA,EAAAkB,GAAA8C,OAAAhE,MAAAuqB,EAAAvqB,MAAAmrB,EAAAnrB,MAAAwrB,EAAAxrB,MAAA4D,GAAAA,EAAA5D,EAAA,EAAA,EAAA,IAAAwH,EAAAxH,EAAA,EAAA,IAAAwD,GAAAxD,QAAA0D,GAAA1D,EAAA,EAAA,IAAA4D,GA/BH4D,EAAAqB,EAAAA,KAACb,EAAAA,OACQ,MAAA1E,EACE,SAAA,OACL,GAAA,EACE,KAAA,EAELE,SAAAA,CAAAA,EACAE,EACAE,CAAAA,EAwBH,EAAQ5D,MAAAwD,EAAAxD,MAAA0D,EAAA1D,MAAA4D,EAAA5D,MAAAwH,GAAAA,EAAAxH,EAAA,EAAA,EAAA,IAAA0H,EAAA,OAAA1H,EAAA,EAAA,IAAAwH,GAAAxH,QAAAkD,GA7CVwE,SAACM,QAAA,CAAY,KAAA,EAAU,OAAA,OAAY,IAAA,EACjC9E,SAAAA,CAAAA,EAYAsE,CAAAA,EAiCF,EAAQxH,MAAAwH,EAAAxH,MAAAkD,EAAAlD,MAAA0H,GAAAA,EAAA1H,EAAA,EAAA,EA9CR0H,CA8CQ,CAGd,EClEa0kB,GAAe9qB,EAAAA,KAC1BlB,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,EAAA,EAAC,CAAAwG,KAAAA,EAAA0F,QAAAA,EAAA7B,WAAAA,CAAAA,EAAAlK,EAQA,IAAAG,EAAAP,OAAAmM,GAMmB5L,EAAAuL,GAAOK,EAAQL,EAACrF,IAAK,EAACzG,KAAAmM,EAAAnM,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAAA,IAAAU,EAAAV,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAC9BN,EAAA,CAAA0L,OAAU,OAAMC,GAAM,IAAA,EAAMrM,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAAA,IAAAc,EAAAd,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAIhCF,EAAAkB,EAAAA,IAACwH,GAAA,CACC,SAAAxH,EAAAA,IAAC0H,GAAA,CAAY,kBAAM,EACrB,EAAe1J,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAAA,IAAA+B,EAAA/B,OAAAsK,GACfvI,EAAAC,EAAAA,IAACyH,IAAiB,KAAA,EAAM,EAAA,EACtB,SAAAzH,EAAAA,IAAC0pB,GAAA,CAAgCphB,WAAAA,CAAAA,CAAU,CAAA,CAC7C,EAAatK,KAAAsK,EAAAtK,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EAAA,IAAAkD,EAAAI,EAAAtD,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GACbkC,EAAAlB,EAAAA,IAACuH,GAAA,CACC,SAAAvH,EAAAA,IAAC2H,GAAA,CAAoB,QAAA,GACnB,SAAA3H,MAACyB,EAAAA,OAAA,CAAe,QAAA,UAAU,SAAA,QAAA,CAAM,CAAA,CAClC,EACF,EACAH,QAAC+F,GAAA,EAAkB,EAAGrJ,KAAAkD,EAAAlD,KAAAsD,IAAAJ,EAAAlD,EAAA,CAAA,EAAAsD,EAAAtD,EAAA,CAAA,GAAA,IAAAwD,EAAAxD,OAAA+B,GAZxByB,EAAAqF,EAAAA,KAACK,GAAA,CAAqB,OAAA,OACpBpI,SAAAA,CAAAA,EAGAiB,EAGAmB,EAKAI,CAAAA,EACF,EAAgBtD,KAAA+B,EAAA/B,KAAAwD,GAAAA,EAAAxD,EAAA,CAAA,EAAA,IAAA0D,EAAA,OAAA1D,EAAA,EAAA,IAAAyG,GAAAzG,QAAAO,GAAAP,EAAA,EAAA,IAAAwD,GArBlBE,QAAC4F,GAAA,CACC,aACU,UAAA,SACJ7C,KAAAA,EACQ,aAAAlG,EACR,KAAAG,EACS,eAAA,SAEf8C,SAAAA,EAcF,EAAaxD,MAAAyG,EAAAzG,MAAAO,EAAAP,MAAAwD,EAAAxD,MAAA0D,GAAAA,EAAA1D,EAAA,EAAA,EAtBb0D,CAsBa,CAGnB,EC3Ca2oB,GAA+B/qB,EAAAA,KAC1ClB,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,CAAA,EAAC,CAAAqK,WAAAA,CAAAA,EAAAlK,EACCxB,EAAesD,EAAAA,EACf,CAAAhB,KAAAX,CAAAA,EACEU,EAAAA,WAAW,IAAMrC,GAAMsB,QAAW,CAACtB,CAAM,CAAO,GAAhD,CAAA,EADY,CAAA0b,SAAAA,EAAAgS,uBAAAA,CAAAA,EAAA/rB,IAAA1B,OAAA,CAAA,EAAA0B,EAEd,CAAAgsB,IAAAA,CAAAA,EAAgBjS,GAAA,CAAA,EAChBL,EAAmBD,GAAAA,EACPuS,GAAGC,IAAW,IAAA9rB,EAAAV,OAAAia,GACiCvZ,EAAAuZ,GAAA,CAAA,EAAgBja,KAAAia,EAAAja,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAA3E,KAAA,CAAAkgB,oBAAAA,EAAAX,0BAAAA,CAAAA,EAA2D7e,EAC3D+rB,GACGH,IAA2B,aAA3B/M,EAAAW,IAAD,EAE6B,IAAAwM,EAAA,GAAA1sB,EAAA,CAAA,IAAAia,GAAAuG,iBAAA,CAI/B,IAFAkM,EAAwBzS,GAAUuG,iBAE3BkM,GAAiB/L,YACtB+L,EAAoBA,GAAiB/L,WACtC3gB,EAAA,CAAA,EAAAia,GAAAuG,iBAAAxgB,KAAA0sB,CAAA,MAAAA,EAAA1sB,EAAA,CAAA,EAED,MAAA2sB,EAAwBA,CAAAC,EAAAjZ,EAAAkZ,IAKtBhkB,EAAAA,KAAA1E,EAAA,SAAA,CACE,SAAA,CAAAnC,MAAAgJ,EAAAA,KAAA,KAAA,CACM,GAAA,GAAK6hB,EAAM,GACR,MAAA,CAAA/B,QACI,OAAMgC,WACH,QAAA,EAGd,SAAAjkB,EAAAA,KAACqC,OAAA,CACU,QAAA,IAAA,CACPZ,EAAAA,EAEA1L,GAAMgM,WAAoBmiB,QAACH,EAAOxQ,IAAK,CAAC,EAErC,KAAA,IAEJsQ,SAAAA,CAAAA,GAAiBM,OAAWJ,EAAOI,MAClChrB,EAAAA,sBAAgB,QAAA,GACd,SAAAA,EAAAA,IAACirB,GAAAA,cAAA,CAAA,CAAa,CAAA,CAChB,EAEDP,GAAiBM,OAAWJ,EAAOI,YAClChiB,EAAAA,KAAA,UAAA,CAAgB,QAAA,GAAmB,WAAA,SACjC,SAAAhJ,EAAAA,IAACirB,GAAAA,gBAAa,EAChB,EAEFpkB,EAAAA,KAACb,EAAAA,MAAA,CAAW,IAAA,EACV,SAAA,CAAAhG,MAACkG,EAAAA,MAAc,SAAA,KAAM0kB,SAAAA,EAAOvb,OAAUub,EAAOI,KAAM,EAClDN,GAAiBM,OAAWJ,EAAOI,YACjC9kB,EAAAA,KAAA,CACW,UAAA,SACC,WAAA,OACF,SAAA,KACT,SAAA,qBACAukB,EAAqC,CAAC,EAAA,CACrC,CAAA,CAAA,CAEP,CAAA,CAAA,CACF,CAAA,CACF,EACCG,EAAOvmB,SAASrC,OAAU,GACzBhC,EAAAA,IAAAgJ,OAAA,KAAA,CAAc,GAAA,MAAW,MACtB4hB,WAAOvmB,SAASxD,IAAK,CAAAqqB,EAAAC,IACpBR,EAAgBC,EAASjZ,EAAOkZ,EAAM,CAAC,CACzC,CAAA,CACF,CAAA,CAAA,EA7CiBlZ,CA+CrB,EAIC7S,EAAAkK,EAAAA,KAAejJ,EAAA,EAAamB,EAAA,OAAWI,EAAA,EAASE,EAAA,EAC9CE,EAAA6oB,GAAGC,IAAS3pB,IAAC,CAAAuqB,EAAAC,IAAoBV,EAAgBC,EAASjZ,EAAO,CAAC,CAAC,EAAC,IAAA/P,EAAA,OAAA5D,OAAAc,EAAAmE,MAAAjF,OAAA0D,GADvEE,EAAA5B,EAAAA,IAAAlB,EAAA,KAAA,CAAgB,IAAAiB,EAAa,UAAAmB,EAAW,GAAAI,EAAS,KAAAE,EAC9CE,SAAAA,EACH,EAAY1D,EAAA,CAAA,EAAAc,EAAAmE,KAAAjF,KAAA0D,EAAA1D,KAAA4D,GAAAA,EAAA5D,EAAA,CAAA,EAFZ4D,CAEY,CAGlB,EC1Ea0pB,GAAwBhsB,EAAAA,KACnClB,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,EAAA,EAAC,CAAAwG,KAAAA,EAAA0F,QAAAA,EAAA7B,WAAAA,CAAAA,EAAAlK,EAQA,IAAAG,EAAAP,OAAAmM,GAMmB5L,EAAAuL,GAAOK,EAAQL,EAACrF,IAAK,EAACzG,KAAAmM,EAAAnM,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAAA,IAAAU,EAAAV,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAC9BN,EAAA,CAAA0L,OAAU,OAAMC,GAAM,IAAA,EAAMrM,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAAA,IAAAc,EAAAd,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAIhCF,EAAAkB,EAAAA,IAACwH,GAAA,CACC,SAAAxH,EAAAA,IAAC0H,GAAA,CAAY,6BAAiB,EAChC,EAAe1J,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAAA,IAAA+B,EAAA/B,OAAAsK,GACfvI,EAAAC,EAAAA,IAACyH,IAAqB,UAAA,OAAa,KAAA,EACjC,SAAAzH,EAAAA,IAACqqB,GAAA,CAAyC/hB,WAAAA,CAAAA,CAAU,CAAA,CACtD,EAAatK,KAAAsK,EAAAtK,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EAAA,IAAAkD,EAAAI,EAAAtD,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GACbkC,EAAAlB,EAAAA,IAACuH,GAAA,CACC,SAAAvH,EAAAA,IAAC2H,GAAA,CAAoB,QAAA,GACnB,SAAA3H,MAACyB,EAAAA,OAAA,CAAe,QAAA,UAAU,SAAA,QAAA,CAAM,CAAA,CAClC,EACF,EACAH,QAAC+F,GAAA,EAAkB,EAAGrJ,KAAAkD,EAAAlD,KAAAsD,IAAAJ,EAAAlD,EAAA,CAAA,EAAAsD,EAAAtD,EAAA,CAAA,GAAA,IAAAwD,EAAAxD,OAAA+B,GAZxByB,SAAC0F,GAAA,CACCpI,SAAAA,CAAAA,EAGAiB,EAGAmB,EAKAI,CAAAA,EACF,EAAgBtD,KAAA+B,EAAA/B,KAAAwD,GAAAA,EAAAxD,EAAA,CAAA,EAAA,IAAA0D,EAAA,OAAA1D,EAAA,EAAA,IAAAyG,GAAAzG,QAAAO,GAAAP,EAAA,EAAA,IAAAwD,GArBlBE,QAAC4F,GAAA,CACC,aACU,UAAA,SACJ7C,KAAAA,EACQ,aAAAlG,EACR,KAAAG,EACS,eAAA,SAEf8C,SAAAA,EAcF,EAAaxD,MAAAyG,EAAAzG,MAAAO,EAAAP,MAAAwD,EAAAxD,MAAA0D,GAAAA,EAAA1D,EAAA,EAAA,EAtBb0D,CAsBa,CAGnB,EC7Ca6pB,GAAkBA,IAAA,CAAA,MAAAvtB,EAAAC,EAAAA,EAAA,CAAA,EAC7BrB,EAAesD,EAAAA,EAAW,IAAA9B,EAAAJ,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GACqBZ,EAAA,CAAC,cAAc,EAACJ,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAA/D,KAAA,CAAAwtB,aAAAA,CAAAA,EAAyB1tB,GAAsBM,CAAgB,EAAC,IAAAG,EAAAP,EAAA,CAAA,IAAApB,GAAAiQ,SAAA6H,UAAA1W,EAAA,CAAA,IAAAwtB,GAG9DjtB,YAAA,CACE3B,GAAMiQ,SAAmB6H,SAAOtT,OAAC,CAAAoqB,aACjBA,GAAAjvB,EAAAA,CACf,CAAC,EACHyB,EAAA,CAAA,EAAApB,GAAAiQ,SAAA6H,SAAA1W,KAAAwtB,EAAAxtB,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAAA,IAAAU,EAAAV,EAAA,CAAA,IAAApB,GAAAoB,OAAAwtB,GACD9sB,EAAA,CAAC9B,EAAQ4uB,CAAY,EAACxtB,KAAApB,EAAAoB,KAAAwtB,EAAAxtB,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EANxB8G,EAAAA,UACEvG,EAKAG,CACF,CAAC,ECPG+sB,GAAO,GACPC,GAAM,EAGNC,GAAqBA,CACzBntB,EACA2hB,EACAD,EACAiB,IACW,CACX,GAAI3iB,EAAQ2hB,GAAO3hB,EAAQ2hB,EAAMgB,EAC/B,OAAOhB,EAAMgB,EAIf,MAAMyK,EAAU7S,KAAKoH,IAAIpH,KAAKmH,IAAI1hB,EAAO2hB,CAAG,EAAGD,CAAG,EAE5C2L,EAAU9S,KAAKuF,OAAOsN,EAAUzL,GAAOgB,CAAI,EAAIA,EAAOhB,EAE5D,OAAOpH,KAAKuF,MAAMuN,EAAU,GAAG,EAAI,GACrC,EAEaC,GAAexsB,EAAAA,KAAK,IAAA,CAAA,MAAAtB,EAAAC,EAAAA,EAAA,EAAA,EAAA,IAAAG,EAAAJ,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GACiCZ,EAAA,CAC9D,cAAc,EACfJ,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAFD,KAAA,CAAAwtB,aAAAjtB,CAAAA,EAA0CT,GAAsBM,CAE/D,EAFOotB,EAAAjtB,IAAA1B,OAAAN,GAAAgC,EAGR3B,EAAesD,EAAAA,EAAW,IAAAxB,EAAAV,EAAA,CAAA,IAAApB,GAAA4kB,KAAAtJ,QAExBxZ,EAAAA,IACE9B,GAAM4kB,KAAatJ,OAAK7Z,KACtBwC,EAAAA,IAAIC,EAA6B,EACjC2V,eAAa,IAAKsV,EAAAA,wBAAyB,CAAAC,QAChC,GAAItV,SACH,EAAA,CACX,CACH,EAAC1Y,EAAA,CAAA,EAAApB,GAAA4kB,KAAAtJ,OAAAla,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAAA,IAAAc,EAAAd,OAAApB,GACHkC,EAAA,CAAClC,CAAM,EAACoB,KAAApB,EAAAoB,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EATV,KAAA,CAAAkB,KAAAa,CAAAA,EAAqCd,EAAAA,WACnCP,EAQAI,CACF,EAVcmtB,EAAAlsB,IAAAlD,OAAA,EAAAkD,EAAkB,IAAAmB,EAAAlD,EAAA,CAAA,IAAApB,GAAA4kB,KAAAtJ,QAY9BhX,EAAAA,IAAMtE,GAAM4kB,KAAatJ,OAAK7Z,KAACwC,EAAAA,IAAIwN,EAA0B,CAAC,EAACrQ,EAAA,CAAA,EAAApB,GAAA4kB,KAAAtJ,OAAAla,KAAAkD,GAAAA,EAAAlD,EAAA,CAAA,EAAA,IAAAsD,EAAAtD,OAAApB,GAC/D0E,EAAA,CAAC1E,CAAM,EAACoB,KAAApB,EAAAoB,KAAAsD,GAAAA,EAAAtD,EAAA,CAAA,EAFV,KAAA,CAAAkB,KAAAsC,CAAAA,EAAoCvC,EAAAA,WAClCiC,EACAI,CACF,EAHc4qB,EAAA1qB,IAAA3E,OAAA,GAAA2E,EAAiB,IAAAE,EAAA1D,EAAA,CAAA,IAAAwtB,GAAAxtB,QAAAiuB,GAIEvqB,EAAAiqB,GAC/BM,EACAP,GACAF,EACAC,EACF,EAACztB,KAAAwtB,EAAAxtB,MAAAiuB,EAAAjuB,MAAA0D,GAAAA,EAAA1D,EAAA,EAAA,EALD,MAAAmuB,EAAiCzqB,EAQRE,EAAAsqB,GAAaD,EAAiB,EAAC,IAAAzmB,EAAAxH,QAAAmuB,GAE3C3mB,EAAA,CAAC2mB,CAAwB,EAACnuB,MAAAmuB,EAAAnuB,MAAAwH,GAAAA,EAAAxH,EAAA,EAAA,EAAA,IAAA0H,EAAA1H,EAAA,EAAA,IAAApB,GAAA4kB,MAKlB9b,EAAAoE,GAAA,CACb,MAAAtL,EAAcsL,EAACtL,QAAW,CAAA,GAAZ,EAEVA,IAAU,EACZ5B,GAAM4kB,KAAWmC,KAAAA,EAEjB/mB,GAAM4kB,KAAc4K,QAAC5tB,EAAO,CAAA6tB,UACf,iBAAA,CACZ,CACF,EACFruB,EAAA,EAAA,EAAApB,GAAA4kB,KAAAxjB,MAAA0H,GAAAA,EAAA1H,EAAA,EAAA,EAAA,IAAA2H,EAAA3H,EAAA,EAAA,IAAAwH,GAAAxH,QAAA0H,GAAA1H,EAAA,EAAA,IAAAwtB,GAhBH7lB,EAAA3F,EAAAA,IAAC+Q,GAAA,CACQ,MAAAvL,EACFkmB,IAAAA,GACAF,IAAAA,EACCC,KAAAA,GACI,SAAA,IACK,cAAA/lB,EAUd,EACD1H,MAAAwH,EAAAxH,MAAA0H,EAAA1H,MAAAwtB,EAAAxtB,MAAA2H,GAAAA,EAAA3H,EAAA,EAAA,EAAA,IAAA+H,EAAA,OAAA/H,EAAA,EAAA,IAAA2H,GAAA3H,QAAA4D,GAlBJmE,EAAA/F,EAAAA,IAACX,GAAA,CAAsB,QAAAuC,EACrB+D,SAAAA,EAkBF,EAAe3H,MAAA2H,EAAA3H,MAAA4D,EAAA5D,MAAA+H,GAAAA,EAAA/H,EAAA,EAAA,EAnBf+H,CAmBe,CAElB,EAjDgC,SAAAjF,GAAAO,EAAA,CAAA,OAQVA,EAAKikB,YAAa,CARR,SAAAjX,GAAAlJ,EAAA,CAAA,OAiBiB9D,EAAK6qB,SAAU,CCnBjE,MAAMvT,GAAwB,CAAE9Y,MAAO,UAAWC,QAAS,UAAW,EAEhEwsB,GAAmBhtB,EAAAA,KAAK,KAE5BqN,GAAAA,EAEO,KACR,EAEK4f,GAAUjtB,EAAAA,KAAK,IAAA,CAAA,MAAAtB,EAAAC,EAAAA,EAAA,CAAA,EACnBstB,GAAAA,EACAtR,GAAAA,EACAU,GAAAA,EACAqM,GAAAA,EACAlZ,GAAAA,EACAI,GAAAA,EAA8B,IAAA9P,EAAA,OAAAJ,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAG5BZ,qBACE,SAAA,CAAA4B,EAAAA,IAACsU,GAAA,UACAgY,GAAA,CAAA,IAAmB,EACnBtuB,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAHHI,CAGG,CAEN,EAEKouB,GAAmBltB,EAAAA,KACvBlB,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,EAAA,EAAA,IAAAsB,EAAAC,EAAAxB,OAAAI,GAAC,CAAAmB,SAAAA,EAAA,GAAAC,CAAAA,EAAApB,EAKWJ,KAAAI,EAAAJ,KAAAuB,EAAAvB,KAAAwB,IAAAD,EAAAvB,EAAA,CAAA,EAAAwB,EAAAxB,EAAA,CAAA,GAAA,IAAAO,EAAAP,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GACwDT,EAAA,CAChE,qBACA,aAAa,EACdP,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAHD,KAAA,CAAAyuB,mBAAAA,EAAApL,YAAAA,CAAAA,EAA4CvjB,GAAsBS,CAGjE,EACD,CAAAmuB,EAAAC,CAAA,EAA0DvoB,EAAAA,SAAS,EAAK,EACxE,CAAAwoB,EAAAC,CAAA,EAAoCzoB,EAAAA,SAAS,EAAK,EAClD,CAAA0oB,EAAAC,CAAA,EAAwC3oB,EAAAA,SAAS,EAAK,EACtD,CAAA4oB,EAAAC,CAAA,EAA0D7oB,EAAAA,SAExDvH,MAAS,EACX,CAAAqwB,EAAAC,CAAA,EAA0C/oB,EAAAA,SAAS,EAAK,EACxD,CAAAyU,EAAAuU,CAAA,EAA0CvG,GAAAA,EAAc,IAAAnoB,EAAAV,OAAAovB,GAEzB1uB,EAAAA,IAAA,CAC7BiuB,EAAyB,EAAK,EAC9BE,EAAc,EAAK,EACnBE,EAAgB,EAAK,EACrBE,EAAyBpwB,MAAS,EAClCuwB,EAAiB,EAAK,EACtBD,EAAiB,EAAK,CAAC,EACxBnvB,KAAAovB,EAAApvB,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAPD,MAAAsK,EAAmB5J,EAOG,IAAAI,EAAAd,OAAAqjB,GAGpBviB,EAAAmJ,GAAA,CACMA,IAAS,cACXglB,EAAyB,aAAa,EAC7BhlB,IAAS,SAClB8kB,EAAgB,EAAI,EACX9kB,IAAS,OAClB4kB,EAAc,EAAI,EACT5kB,IAAS,MAClB0kB,EAAyB,EAAI,EACpB1kB,IAAS,YAClBglB,EAAyB,WAAW,EAC3BhlB,IAAS,WAClBklB,EAAiB,EAAI,EAEvB9L,IAAcpZ,CAAI,CAAC,EACpBjK,KAAAqjB,EAAArjB,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAhBH,MAAAqvB,EAAsDvuB,EAkBrD,IAAAiB,EAAA/B,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAIGe,QAACwsB,GAAA,EAAO,EAAGvuB,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EAAA,IAAAkD,EAAAlD,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAYTkC,QAAC0X,GAAA,EAAgB,EAAG5a,KAAAkD,GAAAA,EAAAlD,EAAA,CAAA,EAAA,IAAAsD,EAAAtD,QAAAkvB,GACpB5rB,EAAAtB,EAAAA,IAACwX,GAAA,CAAoB0V,KAAAA,EAAwBC,QAAAA,EAAgB,EAAInvB,MAAAkvB,EAAAlvB,MAAAsD,GAAAA,EAAAtD,EAAA,EAAA,EAAA,IAAAwD,EAAAxD,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GACjEwC,QAACmmB,GAAA,EAAW,EAAG3pB,MAAAwD,GAAAA,EAAAxD,EAAA,EAAA,EAAA,IAAA0D,EAAA1D,QAAAqvB,GACf3rB,QAACqlB,GAAA,CAAuBsG,YAAAA,CAAAA,CAAY,EAAIrvB,MAAAqvB,EAAArvB,MAAA0D,GAAAA,EAAA1D,EAAA,EAAA,EAAA,IAAAwH,EAAAE,EAAAC,EAAAI,EAAAnE,EAAA5D,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GACxC4C,QAACkqB,GAAA,EAAY,EACbtmB,QAAChF,GAAA,EAAgB,EACjBkF,QAAC7B,GAAA,EAAgB,EACjB8B,QAAC4M,GAAA,EAAsB,EACvBxM,QAACuG,GAAA,EAAmB,EAAGtO,MAAAwH,EAAAxH,MAAA0H,EAAA1H,MAAA2H,EAAA3H,MAAA+H,EAAA/H,MAAA4D,IAAA4D,EAAAxH,EAAA,EAAA,EAAA0H,EAAA1H,EAAA,EAAA,EAAA2H,EAAA3H,EAAA,EAAA,EAAA+H,EAAA/H,EAAA,EAAA,EAAA4D,EAAA5D,EAAA,EAAA,GAAA,IAAAiI,EAAAjI,QAAA4uB,GACvB3mB,EAAAjG,EAAAA,IAAC0X,GAAA,CAAiBkV,KAAAA,EAAqBC,QAAAA,EAAa,EAAI7uB,MAAA4uB,EAAA5uB,MAAAiI,GAAAA,EAAAjI,EAAA,EAAA,EAAA,IAAAmI,EAAAnI,EAAA,EAAA,IAAA0uB,GAAA1uB,QAAAsK,GACxDnC,QAACmlB,GAAA,CACOoB,OACGC,UACGrkB,WAAAA,EAAU,EACtBtK,MAAA0uB,EAAA1uB,MAAAsK,EAAAtK,MAAAmI,GAAAA,EAAAnI,EAAA,EAAA,EAAA,IAAAsI,EAAAtI,EAAA,EAAA,IAAA8uB,GAAA9uB,QAAAsK,GACFhC,QAAC8jB,GAAA,CACO0C,OACGC,UACGzkB,WAAAA,EAAU,EACtBtK,MAAA8uB,EAAA9uB,MAAAsK,EAAAtK,MAAAsI,GAAAA,EAAAtI,EAAA,EAAA,EAAA,IAAAwI,EAAAxI,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAGSwH,EAAA/B,GACPwoB,EAAyBxoB,EAAA,cAAA5H,MAAgC,EAACmB,MAAAwI,GAAAA,EAAAxI,EAAA,EAAA,EAAA,IAAAyI,EAAAzI,EAAA,EAAA,IAAAgvB,GAAAhvB,QAAAsK,GAH9D7B,QAACwD,GAAA,CACW+iB,SAAAA,EACD,QAAAxmB,EAGG8B,WAAAA,EAAU,EACtBtK,MAAAgvB,EAAAhvB,MAAAsK,EAAAtK,MAAAyI,GAAAA,EAAAzI,EAAA,EAAA,EAES,MAAA4I,EAAA6lB,GAAA5T,EAAmC,IAAA9R,EAAA/I,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAK5C+H,QAACiT,GAAA,EAAY,EAAGhc,MAAA+I,GAAAA,EAAA/I,EAAA,EAAA,EAAA,IAAAgJ,EAAAhJ,QAAA4I,GANlBI,EAAAhH,EAAAA,IAACC,EAAAA,SAAA,CACU,QAAA2G,EACM+R,cAAAA,GACG,kBAAA,OACT,SAAA,SAET5R,SAAAA,CAAAA,CACF,EAAW/I,MAAA4I,EAAA5I,MAAAgJ,GAAAA,EAAAhJ,EAAA,EAAA,EAAA,IAAAiJ,EAAAjJ,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GACXiI,QAAC+H,GAAA,EAAO,EAAGhR,MAAAiJ,GAAAA,EAAAjJ,EAAA,EAAA,EAAA,IAAAkW,EAAA,OAAAlW,EAAA,EAAA,IAAAuB,GAAAvB,EAAA,EAAA,IAAAwB,GAAAxB,QAAAiI,GAAAjI,EAAA,EAAA,IAAAmI,GAAAnI,EAAA,EAAA,IAAAsI,GAAAtI,EAAA,EAAA,IAAAyI,GAAAzI,EAAA,EAAA,IAAAgJ,GAAAhJ,EAAA,EAAA,IAAAsD,GAAAtD,QAAA0D,GAhDfwS,qBACEnU,SAAAA,CAAAA,SACC8F,EAAAA,IAAA,CACU,SAAA,WACJ,IAAA,EACC,KAAA,EACC,OAAA,OACD,MAAA,OACG,SAAA,SACT,0BAAA,MACIrG,cAGJ0B,EACAI,EACAE,EACAE,EACAE,EACA4D,EACAE,EACAC,EACAI,EACAE,EACAE,EAKAG,EAKAG,EAOAO,EAQAC,CAAAA,CAAAA,CACF,CAAA,EAAM,EACLjJ,MAAAuB,EAAAvB,MAAAwB,EAAAxB,MAAAiI,EAAAjI,MAAAmI,EAAAnI,MAAAsI,EAAAtI,MAAAyI,EAAAzI,MAAAgJ,EAAAhJ,MAAAsD,EAAAtD,MAAA0D,EAAA1D,MAAAkW,GAAAA,EAAAlW,EAAA,EAAA,EAlDHkW,CAkDG,CAGT,EAEaoZ,GAAchuB,EAAAA,KACzBlB,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,EAAA,EAAA,IAAAsB,EAAA8C,EAAAkrB,EAAAvvB,OAAAI,GAAC,CAAAmB,SAAAA,EAAAguB,MAAAA,EAAA,GAAAlrB,CAAAA,EAAAjE,EAUAJ,KAAAI,EAAAJ,KAAAuB,EAAAvB,KAAAqE,EAAArE,KAAAuvB,IAAAhuB,EAAAvB,EAAA,CAAA,EAAAqE,EAAArE,EAAA,CAAA,EAAAuvB,EAAAvvB,EAAA,CAAA,GAAA,IAAAO,EAAAP,OAAAuvB,GAC4DhvB,EAAAgvB,GAAA,CAAA,EAAWvvB,KAAAuvB,EAAAvvB,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAAtE,KAAA,CAAAwvB,UAAA9uB,CAAAA,EAA2DH,EAAW,IAAAO,EAAAd,OAAAU,GAAnDI,EAAAJ,IAAA7B,OAAA,CAAA,EAAA6B,EAAmCV,KAAAU,EAAAV,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAAnC,KAAA,CAAAqE,MAAAtC,CAAAA,EAAAjB,EAAmC,IAAAoC,EAAAlD,OAAA+B,GAA1BmB,EAAAnB,IAAAlD,OAAA,CAAA,EAAAkD,EAAmB/B,KAAA+B,EAAA/B,KAAAkD,GAAAA,EAAAlD,EAAA,CAAA,EAAnB,MAAAyvB,EAAAvsB,EAAmB,IAAAI,EAAAtD,EAAA,EAAA,IAAAuB,GAAAvB,QAAAyvB,GAI3CnsB,EAAAtB,EAAAA,IAACwsB,GAAA,CAAgB,GAAKiB,EAAiBluB,SAAAA,CAAAA,CAAS,EAAmBvB,MAAAuB,EAAAvB,MAAAyvB,EAAAzvB,MAAAsD,GAAAA,EAAAtD,EAAA,EAAA,EAAA,IAAAwD,EAAA,OAAAxD,EAAA,EAAA,IAAAqE,GAAArE,QAAAsD,GADrEE,EAAAxB,EAAAA,IAACyQ,GAAA,CAAmB,GAAKpO,EACvBf,SAAAA,EACF,EAAsBtD,MAAAqE,EAAArE,MAAAsD,EAAAtD,MAAAwD,GAAAA,EAAAxD,EAAA,EAAA,EAFtBwD,CAEsB,CAG5B"}
|
|
1
|
+
{"version":3,"file":"index.umd.cjs","sources":["../src/constants.ts","../src/context/context.ts","../src/context/useReaderContext.ts","../src/common/FloatingMenu.tsx","../src/context/useReader.ts","../src/annotations/useReaderWithAnnotations.ts","../src/annotations/AnnotateControls.tsx","../src/common/utils.ts","../src/components/ui/close-button.tsx","../src/components/ui/drawer.tsx","../src/annotations/AnnotationDrawer.tsx","../src/components/ui/dialog.tsx","../src/annotations/useAnnotation.ts","../src/annotations/AnnotationListItem.tsx","../src/annotations/useAnnotations.ts","../src/annotations/useHighlights.ts","../src/annotations/AnnotationsList.tsx","../src/annotations/bookmarks/useBookmarks.ts","../src/annotations/bookmarks/BookmarksList.tsx","../src/annotations/AnnotationsDialogContent.tsx","../src/annotations/AnnotationsDialog.tsx","../src/common/Spine.tsx","../src/common/useSpineItem.ts","../src/common/useSpineItemReady.ts","../src/annotations/bookmarks/BookmarkPageMarker.tsx","../src/annotations/bookmarks/BookmarkPageMarkers.tsx","../src/annotations/bookmarks/useBookmarkOnCornerTap.ts","../src/annotations/usePreventInteractionOnSelection.ts","../src/annotations/useSyncAnnotationsWithReader.ts","../src/components/ui/toaster.tsx","../src/context/ReactReaderProvider.tsx","../src/components/ui/radio.tsx","../src/components/ui/slider.tsx","../src/settings/types.ts","../src/fonts/FontSizeControlsDialog.tsx","../src/fonts/SyncFontSettings.ts","../src/common/useMeasure.ts","../src/gallery/useAttachSnapshot.ts","../src/gallery/GalleryDialog.tsx","../src/help/HelpDialog.tsx","../src/pagination/usePagination.ts","../src/navigation/FloatingProgress.tsx","../src/quickmenu/TimeIndicator.tsx","../src/navigation/FloatingTime.tsx","../src/navigation/useInterceptExternalLinks.ts","../src/notifications/useNotifications.ts","../src/components/ui/toggle-tip.tsx","../src/components/ui/progress.tsx","../src/navigation/useNavigationContext.ts","../src/quickmenu/PaginationInfoSection.tsx","../src/quickmenu/QuickBar.tsx","../src/quickmenu/ThemedSlider.tsx","../src/quickmenu/Scrubber.tsx","../src/quickmenu/BottomBar.tsx","../src/common/useFullscreen.ts","../src/quickmenu/TopBar.tsx","../src/quickmenu/useQuickMenu.ts","../src/quickmenu/QuickMenu.tsx","../src/quickmenu/useQuickMenuToggleGesture.ts","../src/components/ui/field.tsx","../src/refit/RefitDialog.tsx","../src/search/SearchListItem.tsx","../src/search/useSearch.ts","../src/search/SearchDialogContent.tsx","../src/search/SearchDialog.tsx","../src/toc/TableOfContentsDialogContent.tsx","../src/toc/TableOfContentsDialog.tsx","../src/zoom/useZoomSettings.ts","../src/zoom/ZoomControls.tsx","../src/ReactReader.tsx"],"sourcesContent":["export const BOOKMARK_AREA_DATA_ATTRIBUTE = `data-bookmark-area`\nexport const MAX_ZOOM_SCALE = 5\n","import type { Reader } from \"@prose-reader/core\"\nimport type {\n Annotation,\n RuntimeAnnotation,\n} from \"@prose-reader/enhancer-annotations\"\nimport type { EnhancerAPI as GesturesEnhancerAPI } from \"@prose-reader/enhancer-gestures\"\nimport { createContext, type Dispatch, type SetStateAction } from \"react\"\nimport { type Signal, signal } from \"reactjrx\"\nimport { Subject } from \"rxjs\"\nimport type { ReaderNotification } from \"../notifications/types\"\nimport type {\n PROSE_REACT_READER_SETTINGS_SCOPE,\n PROSE_REACT_READER_SETTINGS_SCOPE_REFERENCE,\n} from \"../settings/types\"\n\nexport type PrivateContextType = {\n /**\n * Internal fallback values used for uncontrolled settings. This way the\n * Reader works as intended but:\n * - there are no persistent settings\n * - the settings are valid only for the current mount runtime\n */\n uncontrolledFontSize: number\n refitMenuOpen: boolean\n onRefitMenuOpenChange: (open: boolean) => void\n fontSizeMenuOpen: boolean\n onFontSizeMenuOpenChange: (open: boolean) => void\n notificationsSubject: Subject<ReaderNotification>\n quickMenuBottomBarBoundingBoxSignal: Signal<ResizeObserverEntry | undefined>\n fontSizeMin: number\n fontSizeMax: number\n _quickMenuOpen: boolean\n _onQuickMenuOpenChange: Dispatch<SetStateAction<boolean>>\n selectedHighlight:\n | {\n highlight?: RuntimeAnnotation\n selection?: {\n selection: Selection\n itemIndex: number\n }\n }\n | undefined\n}\n\nexport type PublicContextType = {\n reader: (Reader & GesturesEnhancerAPI) | undefined\n enableFloatingTime?: boolean\n enableFloatingProgress?: boolean\n onItemClick?: (\n item:\n | \"annotations\"\n | \"search\"\n | \"help\"\n | \"toc\"\n | \"bookmarks\"\n | \"more\"\n | \"back\"\n | \"gallery\",\n ) => void\n quickMenuOpen?: boolean\n onQuickMenuOpenChange?: Dispatch<SetStateAction<boolean>>\n fontSize?: number\n zoomMaxScale?: number\n onFontSizeChange?: (\n from: PROSE_REACT_READER_SETTINGS_SCOPE_REFERENCE | \"internal\",\n value: number,\n ) => void\n fontSizeScope?: PROSE_REACT_READER_SETTINGS_SCOPE_REFERENCE\n onFontSizeScopeChange?: (scope: PROSE_REACT_READER_SETTINGS_SCOPE) => void\n fontSizeValues?: Record<\n PROSE_REACT_READER_SETTINGS_SCOPE_REFERENCE,\n number | undefined\n >\n annotations?: Annotation[]\n onAnnotationCreate?: (annotation: Annotation) => void\n onAnnotationUpdate?: (\n annotation: Pick<Annotation, \"id\" | \"highlightColor\" | \"notes\">,\n ) => void\n onAnnotationDelete?: (id: string) => void\n}\n\nexport type ReaderContextType = PrivateContextType & PublicContextType\n\nexport const getDefaultValue = (): ReaderContextType => ({\n _quickMenuOpen: false,\n _onQuickMenuOpenChange: (prev) => prev,\n reader: undefined,\n quickMenuBottomBarBoundingBoxSignal: signal<ResizeObserverEntry | undefined>({\n default: undefined,\n }),\n notificationsSubject: new Subject<ReaderNotification>(),\n refitMenuOpen: false,\n onRefitMenuOpenChange: () => {},\n fontSizeMenuOpen: false,\n onFontSizeMenuOpenChange: () => {},\n fontSizeMin: 0.2,\n fontSizeMax: 5,\n uncontrolledFontSize: 1,\n enableFloatingProgress: true,\n selectedHighlight: undefined,\n})\n\nexport const ReaderContext = createContext(\n signal({ default: getDefaultValue() }),\n)\n","import { isShallowEqual, pick, watchKeys } from \"@prose-reader/core\"\nimport { useContext } from \"react\"\nimport { useObserve } from \"reactjrx\"\nimport { ReaderContext, type ReaderContextType } from \"./context\"\n\nexport const useReaderContextValue = <T extends keyof ReaderContextType>(\n keys: T[],\n) => {\n const context = useContext(ReaderContext)\n\n return useObserve(\n () => context.pipe(watchKeys(keys)),\n {\n compareFn: isShallowEqual,\n defaultValue: pick(context.value, keys),\n },\n [],\n ).data\n}\n\nexport const useReaderContext = () => {\n return useContext(ReaderContext)\n}\n","import { Presence, type PresenceProps } from \"@chakra-ui/react\"\nimport { memo } from \"react\"\nimport { useSignalValue } from \"reactjrx\"\nimport { useReaderContextValue } from \"../context/useReaderContext\"\n\nconst SAFE_MARGIN_FLOATING_BOTTOM_ELEMENTS = 24\n\n// @todo use Popover\nexport const FloatingMenu = memo(\n ({\n children,\n ...rest\n }: {\n present: boolean\n children: React.ReactNode\n } & PresenceProps) => {\n const { quickMenuBottomBarBoundingBoxSignal } = useReaderContextValue([\n \"quickMenuBottomBarBoundingBoxSignal\",\n \"zoomMaxScale\",\n ])\n const quickMenuBottomBarBoundingBox = useSignalValue(\n quickMenuBottomBarBoundingBoxSignal,\n )\n const bottomBarHeight =\n quickMenuBottomBarBoundingBox?.borderBoxSize?.[0]?.blockSize ||\n SAFE_MARGIN_FLOATING_BOTTOM_ELEMENTS\n\n return (\n <Presence\n animationName={{ _open: \"fade-in\", _closed: \"fade-out\" }}\n animationDuration=\"moderate\"\n position=\"absolute\"\n bottom={`calc(${bottomBarHeight}px + var(--chakra-spacing-4))`}\n right={4}\n backgroundColor=\"bg.panel\"\n shadow=\"sm\"\n borderRadius=\"md\"\n p={2}\n display=\"flex\"\n flexDirection=\"row\"\n gap={2}\n {...rest}\n >\n {children}\n </Presence>\n )\n },\n)\n","import type { Reader } from \"@prose-reader/core\"\nimport type { AnnotationsEnhancerAPI } from \"@prose-reader/enhancer-annotations\"\nimport type { GalleryEnhancerAPI } from \"@prose-reader/enhancer-gallery\"\nimport type { RefitEnhancerAPI } from \"@prose-reader/enhancer-refit\"\nimport type { SearchEnhancerAPI } from \"@prose-reader/enhancer-search\"\nimport { useReaderContextValue } from \"./useReaderContext\"\n\nexport const useReader = () => {\n const { reader } = useReaderContextValue([\"reader\"])\n\n return reader\n}\n\nexport const hasSearchEnhancer = (\n reader?: Reader,\n): reader is Reader & SearchEnhancerAPI => {\n return !!reader && \"__PROSE_READER_ENHANCER_SEARCH\" in reader\n}\n\nexport const hasAnnotationsEnhancer = (\n reader?: Reader,\n): reader is Reader & AnnotationsEnhancerAPI => {\n return !!reader && \"__PROSE_READER_ENHANCER_ANNOTATIONS\" in reader\n}\n\nexport const hasGalleryEnhancer = (\n reader?: Reader,\n): reader is Reader & GalleryEnhancerAPI => {\n return !!reader && \"__PROSE_READER_ENHANCER_GALLERY\" in reader\n}\n\nexport const hasRefitEnhancer = (\n reader?: Reader,\n): reader is Reader & RefitEnhancerAPI => {\n return !!reader && \"__PROSE_READER_ENHANCER_REFIT\" in reader\n}\n","import { hasAnnotationsEnhancer, useReader } from \"../context/useReader\"\n\nexport const useReaderWithAnnotations = () => {\n const reader = useReader()\n const readerWithBookmarks = hasAnnotationsEnhancer(reader)\n ? reader\n : undefined\n\n return readerWithBookmarks\n}\n","import { Button } from \"@chakra-ui/react\"\nimport { FaEdit } from \"react-icons/fa\"\nimport { LuNotebookPen } from \"react-icons/lu\"\nimport { useObserve } from \"reactjrx\"\nimport { EMPTY, map, startWith, switchMap } from \"rxjs\"\nimport { FloatingMenu } from \"../common/FloatingMenu\"\nimport {\n useReaderContext,\n useReaderContextValue,\n} from \"../context/useReaderContext\"\nimport { useReaderWithAnnotations } from \"./useReaderWithAnnotations\"\n\nexport const AnnotateControls = () => {\n const reader = useReaderWithAnnotations()\n const context = useReaderContext()\n const { selectedHighlight } = useReaderContextValue([\"selectedHighlight\"])\n const { data: isOpen } = useObserve(\n () =>\n reader?.selection.selectionOver$.pipe(\n switchMap(() =>\n reader.selection.selectionEnd$.pipe(\n map(() => false),\n startWith(true),\n ),\n ),\n ) ?? EMPTY,\n { defaultValue: false },\n [reader],\n )\n\n return (\n <FloatingMenu present={isOpen && !selectedHighlight}>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => {\n const selection = reader?.selection.getSelection()\n\n if (!selection) return\n\n context.update((state) => ({\n ...state,\n selectedHighlight: {\n selection,\n },\n }))\n }}\n >\n <FaEdit />\n Annotate\n </Button>\n <Button variant=\"outline\" size=\"sm\" disabled>\n <LuNotebookPen />\n Bookmark\n </Button>\n </FloatingMenu>\n )\n}\n","export const truncateText = (text: string, maxLength = 50): string => {\n if (text.length <= maxLength) return text\n return `${text.slice(0, maxLength)}...`\n}\n","import type { ButtonProps } from \"@chakra-ui/react\"\nimport { IconButton as ChakraIconButton } from \"@chakra-ui/react\"\nimport * as React from \"react\"\nimport { LuX } from \"react-icons/lu\"\n\nexport type CloseButtonProps = ButtonProps\n\nexport const CloseButton = React.forwardRef<\n HTMLButtonElement,\n CloseButtonProps\n>(function CloseButton(props, ref) {\n return (\n <ChakraIconButton variant=\"ghost\" aria-label=\"Close\" ref={ref} {...props}>\n {props.children ?? <LuX />}\n </ChakraIconButton>\n )\n})\n","import { Drawer as ChakraDrawer, Portal } from \"@chakra-ui/react\"\nimport { CloseButton } from \"./close-button\"\nimport * as React from \"react\"\n\ninterface DrawerContentProps extends ChakraDrawer.ContentProps {\n portalled?: boolean\n portalRef?: React.RefObject<HTMLElement>\n offset?: ChakraDrawer.ContentProps[\"padding\"]\n}\n\nexport const DrawerContent = React.forwardRef<\n HTMLDivElement,\n DrawerContentProps\n>(function DrawerContent(props, ref) {\n const { children, portalled = true, portalRef, offset, ...rest } = props\n return (\n <Portal disabled={!portalled} container={portalRef}>\n <ChakraDrawer.Positioner padding={offset}>\n <ChakraDrawer.Content ref={ref} {...rest} asChild={false}>\n {children}\n </ChakraDrawer.Content>\n </ChakraDrawer.Positioner>\n </Portal>\n )\n})\n\nexport const DrawerCloseTrigger = React.forwardRef<\n HTMLButtonElement,\n ChakraDrawer.CloseTriggerProps\n>(function DrawerCloseTrigger(props, ref) {\n return (\n <ChakraDrawer.CloseTrigger\n position=\"absolute\"\n top=\"2\"\n insetEnd=\"2\"\n {...props}\n asChild\n >\n <CloseButton size=\"sm\" ref={ref} />\n </ChakraDrawer.CloseTrigger>\n )\n})\n\nexport const DrawerTrigger = ChakraDrawer.Trigger\nexport const DrawerRoot = ChakraDrawer.Root\nexport const DrawerFooter = ChakraDrawer.Footer\nexport const DrawerHeader = ChakraDrawer.Header\nexport const DrawerBody = ChakraDrawer.Body\nexport const DrawerBackdrop = ChakraDrawer.Backdrop\nexport const DrawerDescription = ChakraDrawer.Description\nexport const DrawerTitle = ChakraDrawer.Title\nexport const DrawerActionTrigger = ChakraDrawer.ActionTrigger\n","import { Box, Button, Stack, Text, Textarea } from \"@chakra-ui/react\"\nimport {\n type ComponentProps,\n memo,\n useCallback,\n useEffect,\n useState,\n} from \"react\"\nimport { useSubscribe } from \"reactjrx\"\nimport { tap } from \"rxjs\"\nimport { truncateText } from \"../common/utils\"\nimport {\n DrawerBackdrop,\n DrawerBody,\n DrawerContent,\n DrawerHeader,\n DrawerRoot,\n} from \"../components/ui/drawer\"\nimport {\n useReaderContext,\n useReaderContextValue,\n} from \"../context/useReaderContext\"\nimport { useReaderWithAnnotations } from \"./useReaderWithAnnotations\"\n\nconst HIGHLIGHT_COLORS = [\n \"rgba(216, 191, 216, 1)\", // Light purple\n \"rgba(255, 225, 125, 1)\", // Soft yellow\n \"rgba(144, 238, 144, 1)\", // Light green\n \"rgba(173, 216, 230, 1)\", // Light blue\n \"rgba(255, 182, 193, 1)\", // Light pink\n] as const\n\nexport const AnnotationDrawer = memo(() => {\n const reader = useReaderWithAnnotations()\n const {\n selectedHighlight,\n onAnnotationCreate,\n onAnnotationUpdate,\n onAnnotationDelete,\n } = useReaderContextValue([\n \"selectedHighlight\",\n \"onAnnotationCreate\",\n \"onAnnotationUpdate\",\n \"onAnnotationDelete\",\n ])\n const context = useReaderContext()\n const { highlight, selection } = selectedHighlight ?? {}\n const [selectedColor, setSelectedColor] = useState<string>(\n HIGHLIGHT_COLORS[0],\n )\n const [contents, setContents] = useState<string>(\"\")\n const isOpen = !!(selection ?? highlight)\n\n const onClose = () => {\n context.update((state) => ({\n ...state,\n selectedHighlight: undefined,\n }))\n }\n\n const onOpenChange: ComponentProps<typeof DrawerRoot>[\"onOpenChange\"] = (\n event,\n ) => {\n if (!event.open) {\n onClose()\n }\n }\n\n const highlightColor = highlight?.highlightColor\n const highlightContent = highlight?.notes\n\n useEffect(() => {\n void isOpen\n\n setContents(\"\")\n }, [isOpen])\n\n useEffect(() => {\n setContents(highlightContent ?? \"\")\n }, [highlightContent])\n\n useEffect(() => {\n void isOpen\n\n if (highlightColor) {\n setSelectedColor(highlightColor)\n } else {\n setSelectedColor(HIGHLIGHT_COLORS[0])\n }\n }, [highlightColor, isOpen])\n\n const onOpenDrawerOnTap = useCallback(\n function openDrawerOnTap() {\n return reader?.annotations.highlightTap$.pipe(\n tap(({ highlight }) => {\n context.update((state) => ({\n ...state,\n selectedHighlight: {\n highlight,\n },\n }))\n }),\n )\n },\n [reader, context],\n )\n\n useSubscribe(onOpenDrawerOnTap)\n\n return (\n <DrawerRoot placement=\"bottom\" onOpenChange={onOpenChange} open={isOpen}>\n <DrawerBackdrop />\n <DrawerContent>\n <DrawerHeader borderBottomWidth=\"1px\">\n {highlight\n ? \"Highlight\"\n : `Selection: \"${truncateText(selection?.selection?.toString() ?? \"\", 10)}\"`}\n </DrawerHeader>\n <DrawerBody gap={4} display=\"flex\" flexDirection=\"column\" pb={4}>\n <Stack>\n <Stack gap={2} flexDirection=\"row\">\n {HIGHLIGHT_COLORS.map((color) => (\n <Box\n bgColor={color}\n height={10}\n width={10}\n key={color}\n borderRadius=\"50%\"\n cursor=\"pointer\"\n {...(selectedColor === color && {\n border: \"4px solid white\",\n })}\n onClick={() => setSelectedColor(color)}\n />\n ))}\n </Stack>\n <Text>Annotation:</Text>\n <Textarea\n value={contents}\n onChange={(event) => setContents(event.target.value)}\n />\n </Stack>\n {!!selection && (\n <Button\n onClick={() => {\n onClose()\n\n const annotation = reader?.annotations.createAnnotation({\n ...selection,\n highlightColor: selectedColor,\n notes: contents,\n })\n\n if (annotation) {\n onAnnotationCreate?.(annotation)\n }\n }}\n >\n Highlight\n </Button>\n )}\n {!!highlight && (\n <Stack direction=\"row\">\n <Button\n flex={1}\n onClick={() => {\n onClose()\n\n onAnnotationUpdate?.({\n id: highlight.id,\n highlightColor: selectedColor,\n notes: contents,\n })\n }}\n >\n Update\n </Button>\n <Button\n flex={1}\n variant=\"surface\"\n onClick={() => {\n onClose()\n\n onAnnotationDelete?.(highlight.id)\n }}\n >\n Remove\n </Button>\n </Stack>\n )}\n </DrawerBody>\n </DrawerContent>\n </DrawerRoot>\n )\n})\n","import { Dialog as ChakraDialog, Portal } from \"@chakra-ui/react\"\nimport * as React from \"react\"\nimport { CloseButton } from \"./close-button\"\n\ninterface DialogContentProps extends ChakraDialog.ContentProps {\n portalled?: boolean\n portalRef?: React.RefObject<HTMLElement>\n backdrop?: boolean\n}\n\nexport const DialogContent = React.forwardRef<\n HTMLDivElement,\n DialogContentProps\n>(function DialogContent(props, ref) {\n const {\n children,\n portalled = true,\n portalRef,\n backdrop = true,\n ...rest\n } = props\n\n return (\n <Portal disabled={!portalled} container={portalRef}>\n {backdrop && <ChakraDialog.Backdrop />}\n <ChakraDialog.Positioner>\n <ChakraDialog.Content ref={ref} {...rest} asChild={false}>\n {children}\n </ChakraDialog.Content>\n </ChakraDialog.Positioner>\n </Portal>\n )\n})\n\nexport const DialogCloseTrigger = React.forwardRef<\n HTMLButtonElement,\n ChakraDialog.CloseTriggerProps\n>(function DialogCloseTrigger(props, ref) {\n return (\n <ChakraDialog.CloseTrigger\n position=\"absolute\"\n top=\"2\"\n insetEnd=\"2\"\n {...props}\n asChild\n >\n <CloseButton size=\"sm\" ref={ref}>\n {props.children}\n </CloseButton>\n </ChakraDialog.CloseTrigger>\n )\n})\n\nexport const DialogRoot = ChakraDialog.Root\nexport const DialogFooter = ChakraDialog.Footer\nexport const DialogHeader = ChakraDialog.Header\nexport const DialogBody = ChakraDialog.Body\nexport const DialogBackdrop = ChakraDialog.Backdrop\nexport const DialogTitle = ChakraDialog.Title\nexport const DialogDescription = ChakraDialog.Description\nexport const DialogTrigger = ChakraDialog.Trigger\nexport const DialogActionTrigger = ChakraDialog.ActionTrigger\n","import { isDefined, useObserve } from \"reactjrx\"\nimport { filter, map, switchMap } from \"rxjs\"\nimport { hasAnnotationsEnhancer, useReader } from \"../context/useReader\"\n\nexport const useAnnotation = (id: string) => {\n const reader = useReader()\n const readerWithAnnotations = hasAnnotationsEnhancer(reader)\n ? reader\n : undefined\n\n return useObserve(\n () =>\n readerWithAnnotations?.annotations.annotations$.pipe(\n map((items) => items.find((item) => item.id === id)),\n filter(isDefined),\n switchMap((item) => readerWithAnnotations.locateResource(item)),\n ),\n [readerWithAnnotations],\n )\n}\n","import { Link, List, Stack, Text } from \"@chakra-ui/react\"\nimport { LuNotebookPen } from \"react-icons/lu\"\nimport { useReader } from \"../context/useReader\"\nimport { useAnnotation } from \"./useAnnotation\"\n\nexport const AnnotationListItem = ({\n id,\n onNavigate,\n allowLeftIcon = true,\n}: {\n id: string\n onNavigate: () => void\n allowLeftIcon?: boolean\n}) => {\n const reader = useReader()\n const { data: annotation } = useAnnotation(id)\n const textContent =\n annotation?.meta.range?.toString() || annotation?.meta.node?.textContent\n\n return (\n <List.Item>\n <Link\n href=\"#\"\n onClick={() => {\n onNavigate()\n\n reader?.navigation.goToCfi(annotation?.meta.cfi ?? \"\")\n }}\n >\n {annotation?.resource?.notes ? (\n <List.Indicator asChild>\n <LuNotebookPen />\n </List.Indicator>\n ) : allowLeftIcon ? (\n <List.Indicator asChild visibility=\"hidden\">\n <LuNotebookPen />\n </List.Indicator>\n ) : null}\n <Stack gap={0}>\n {textContent ? (\n <Text lineClamp={2} fontSize=\"md\">\n {textContent}\n </Text>\n ) : (\n <Text lineClamp={2} fontSize=\"md\" fontStyle=\"italic\">\n Page {(annotation?.meta.absolutePageIndex ?? 0) + 1}\n </Text>\n )}\n <Text\n fontStyle=\"italic\"\n fontWeight=\"bold\"\n fontSize=\"sm\"\n >{`Book page: ${\n annotation?.meta?.absolutePageIndex !== undefined\n ? annotation.meta.absolutePageIndex + 1\n : \"unknown (not loaded)\"\n }`}</Text>\n </Stack>\n </Link>\n </List.Item>\n )\n}\n","import { useObserve } from \"reactjrx\"\nimport { switchMap } from \"rxjs\"\nimport { hasAnnotationsEnhancer, useReader } from \"../context/useReader\"\n\nexport const useAnnotations = () => {\n const reader = useReader()\n const readerWithAnnotations = hasAnnotationsEnhancer(reader)\n ? reader\n : undefined\n\n return useObserve(\n () =>\n readerWithAnnotations?.annotations.annotations$.pipe(\n switchMap((highlights) => {\n return readerWithAnnotations.locateResource(highlights)\n }),\n ),\n [readerWithAnnotations],\n )\n}\n","import { useAnnotations } from \"./useAnnotations\"\n\nexport const useHighlights = () => {\n const { data: annotations } = useAnnotations()\n\n return {\n data: annotations?.filter((annotation) => annotation.meta.isCfiRange),\n }\n}\n","import { List } from \"@chakra-ui/react\"\nimport { AnnotationListItem } from \"./AnnotationListItem\"\nimport { useHighlights } from \"./useHighlights\"\n\nexport const AnnotationsList = ({ onNavigate }: { onNavigate: () => void }) => {\n const { data: annotations } = useHighlights()\n\n return (\n <List.Root overflowY=\"auto\" gap={3} pt={4} variant=\"plain\">\n {annotations?.map((item) => (\n <AnnotationListItem\n key={item.resource.id}\n id={item.resource.id}\n onNavigate={onNavigate}\n />\n ))}\n </List.Root>\n )\n}\n","import { useAnnotations } from \"../useAnnotations\"\n\nexport const useBookmarks = () => {\n const { data: annotations } = useAnnotations()\n\n return {\n data: annotations?.filter(\n (annotation) => !annotation.meta.isCfiRange && !annotation.resource.notes,\n ),\n }\n}\n","import { List } from \"@chakra-ui/react\"\nimport { AnnotationListItem } from \"../AnnotationListItem\"\nimport { useBookmarks } from \"./useBookmarks\"\n\nexport const BookmarksList = ({ onNavigate }: { onNavigate: () => void }) => {\n const { data: annotations } = useBookmarks()\n\n return (\n <List.Root overflowY=\"auto\" gap={3} pt={4} variant=\"plain\">\n {annotations?.map((item) => (\n <AnnotationListItem\n key={item.resource.id}\n id={item.resource.id}\n onNavigate={onNavigate}\n allowLeftIcon={false}\n />\n ))}\n </List.Root>\n )\n}\n","import { Tabs } from \"@chakra-ui/react\"\nimport { memo, useState } from \"react\"\nimport { LuBookmark, LuNotebookPen } from \"react-icons/lu\"\nimport { AnnotationsList } from \"./AnnotationsList\"\nimport { BookmarksList } from \"./bookmarks/BookmarksList\"\n\nexport const AnnotationsDialogContent = memo(\n ({\n onNavigate,\n defaultTab,\n }: {\n onNavigate: () => void\n defaultTab: \"bookmarks\" | \"annotations\" | undefined\n }) => {\n const [tab, setTab] = useState(defaultTab ?? \"bookmarks\")\n\n return (\n <Tabs.Root\n value={tab}\n onValueChange={(e) => setTab(e.value as \"bookmarks\" | \"annotations\")}\n >\n <Tabs.List>\n <Tabs.Trigger value=\"bookmarks\">\n <LuBookmark />\n Bookmarks\n </Tabs.Trigger>\n <Tabs.Trigger value=\"annotations\">\n <LuNotebookPen />\n Annotations\n </Tabs.Trigger>\n <Tabs.Indicator />\n </Tabs.List>\n <Tabs.Content value=\"bookmarks\">\n <BookmarksList onNavigate={onNavigate} />\n </Tabs.Content>\n <Tabs.Content value=\"annotations\">\n <AnnotationsList onNavigate={onNavigate} />\n </Tabs.Content>\n </Tabs.Root>\n )\n },\n)\n","import { Button } from \"@chakra-ui/react\"\nimport { memo } from \"react\"\nimport {\n DialogActionTrigger,\n DialogBody,\n DialogCloseTrigger,\n DialogContent,\n DialogFooter,\n DialogHeader,\n DialogRoot,\n DialogTitle,\n} from \"../components/ui/dialog\"\nimport { AnnotationsDialogContent } from \"./AnnotationsDialogContent\"\n\nexport const AnnotationsDialog = memo(\n ({\n openWith,\n setOpen,\n onNavigate,\n }: {\n openWith: \"bookmarks\" | \"annotations\" | undefined\n setOpen: (open: boolean) => void\n onNavigate: () => void\n }) => {\n return (\n <DialogRoot\n lazyMount\n placement=\"center\"\n open={!!openWith}\n onOpenChange={(e) => setOpen(e.open)}\n size={{ mdDown: \"full\", md: \"lg\" }}\n scrollBehavior=\"inside\"\n >\n <DialogContent height=\"100%\">\n <DialogHeader>\n <DialogTitle>Annotations</DialogTitle>\n </DialogHeader>\n <DialogBody flex={1}>\n <AnnotationsDialogContent\n onNavigate={onNavigate}\n defaultTab={openWith}\n />\n </DialogBody>\n <DialogFooter>\n <DialogActionTrigger asChild>\n <Button variant=\"outline\">Cancel</Button>\n </DialogActionTrigger>\n </DialogFooter>\n <DialogCloseTrigger />\n </DialogContent>\n </DialogRoot>\n )\n },\n)\n","import { memo } from \"react\"\nimport { createPortal } from \"react-dom\"\nimport { useObserve } from \"reactjrx\"\nimport { useReader } from \"../context/useReader\"\n\nexport const Spine = memo(({ children }: { children: React.ReactNode }) => {\n const reader = useReader()\n const { data: spineElement } = useObserve(\n () => reader?.spine.element$,\n [reader],\n )\n\n if (!spineElement) return null\n\n return <>{createPortal(children, spineElement)}</>\n})\n","import { useObserve } from \"reactjrx\"\nimport { EMPTY, map, of } from \"rxjs\"\nimport { useReader } from \"../context/useReader\"\n\nexport const useSpineItem = ({\n absolutePageIndex,\n itemIndex,\n}: {\n absolutePageIndex?: number\n itemIndex?: number\n}) => {\n const reader = useReader()\n\n return useObserve(() => {\n if (!reader) return EMPTY\n\n if (itemIndex !== undefined)\n return of(reader.spine.spineItemsManager.get(itemIndex))\n\n if (absolutePageIndex !== undefined) {\n return reader.spine.pages\n .observeFromAbsolutePageIndex(absolutePageIndex)\n .pipe(\n map((page) => reader.spine.spineItemsManager.get(page?.itemIndex)),\n )\n }\n\n return EMPTY\n }, [itemIndex, absolutePageIndex, reader])\n}\n","import { useObserve } from \"reactjrx\"\nimport { NEVER } from \"rxjs\"\nimport { useSpineItem } from \"./useSpineItem\"\n\nexport const useSpineItemReady = ({\n absolutePageIndex,\n itemIndex,\n}: {\n absolutePageIndex?: number\n itemIndex?: number\n}) => {\n const { data: spineItem } = useSpineItem({ absolutePageIndex, itemIndex })\n const { data: isReady } = useObserve(\n () => (!spineItem ? NEVER : spineItem.isReady$),\n [spineItem],\n )\n\n return { spineItem, isReady }\n}\n","import { Box, Presence } from \"@chakra-ui/react\"\nimport { memo } from \"react\"\nimport { useSpineItemReady } from \"../../common/useSpineItemReady\"\nimport { BOOKMARK_AREA_DATA_ATTRIBUTE } from \"../../constants\"\nimport { useAnnotations } from \"../useAnnotations\"\n\nexport const BookmarkPageMarker = memo(\n ({\n absolutePageIndex,\n left,\n top,\n width,\n }: {\n absolutePageIndex: number\n left: number\n top: number\n width: number\n }) => {\n const { isReady: isItemReady } = useSpineItemReady({\n absolutePageIndex,\n })\n const { data: bookmarks } = useAnnotations()\n const bookmarkForPage = bookmarks?.find(\n (bookmark) =>\n bookmark?.meta?.absolutePageIndex === absolutePageIndex &&\n !bookmark.meta.isCfiRange,\n )\n\n /**\n * Stale bookmarks means we cannot assert at the moment whether the page is marked or not.\n * In this case we just hide the bookmark button. You may want to have different UX to handle\n * this case.\n *\n * This also avoid having a flash where you show an non bookmarked icon and right away change it with\n * a valid marked page icon.\n */\n if (!isItemReady) return null\n\n const markerSize = (width * 0.1) / 2\n\n return (\n <Presence\n present={!!bookmarkForPage}\n lazyMount\n animationName={{ _open: \"fade-in\", _closed: \"fade-out\" }}\n animationDuration=\"moderate\"\n >\n <Box\n data-bookmark-area={BOOKMARK_AREA_DATA_ATTRIBUTE}\n position=\"absolute\"\n left={left + width}\n transform=\"translateX(-100%)\"\n pointerEvents=\"none\"\n top={top}\n width={markerSize}\n height={markerSize}\n _before={{\n content: '\"\"',\n position: \"absolute\",\n top: 0,\n left: 0,\n width: 0,\n height: 0,\n borderTop: `${markerSize}px solid #03030373`,\n borderLeft: `${markerSize}px solid transparent`,\n }}\n />\n </Presence>\n )\n },\n)\n","import { memo } from \"react\"\nimport { useObserve } from \"reactjrx\"\nimport { Spine } from \"../../common/Spine\"\nimport { useReader } from \"../../context/useReader\"\nimport { BookmarkPageMarker } from \"./BookmarkPageMarker\"\n\nexport const BookmarkPageMarkers = memo(() => {\n const reader = useReader()\n const { data: pages } = useObserve(() => reader?.layoutInfo$, [reader])\n\n return (\n <Spine>\n {pages?.pages.map(\n ({ absoluteLayout: { left, top, width } }, pageIndex) => (\n <BookmarkPageMarker\n key={pageIndex}\n absolutePageIndex={pageIndex}\n left={left}\n top={top}\n width={width}\n />\n ),\n )}\n </Spine>\n )\n})\n","import { isPositionInArea } from \"@prose-reader/enhancer-gestures\"\nimport { useEffect } from \"react\"\nimport { map, withLatestFrom } from \"rxjs\"\nimport { useReaderContext } from \"../../context/useReaderContext\"\nimport { useAnnotations } from \"../useAnnotations\"\nimport { useReaderWithAnnotations } from \"../useReaderWithAnnotations\"\n\nconst CONTINUE_TAP_GESTURE = true\n\nexport const useBookmarkOnCornerTap = () => {\n const reader = useReaderWithAnnotations()\n const { data: bookmarks } = useAnnotations()\n const readerContext = useReaderContext()\n\n useEffect(() => {\n if (!reader) return\n\n const unSub = reader.gestures.hooks.register(\n \"beforeTapGesture\",\n ({ event$ }) =>\n event$.pipe(\n withLatestFrom(reader?.annotations.candidates$),\n map(([context, candidates]) => {\n if (!context.page) return CONTINUE_TAP_GESTURE\n\n const {\n spineItem,\n spineItemPageIndex,\n spineItemPagePosition,\n pageSize,\n } = context.page\n\n const hasTapOnTopRightCorner = isPositionInArea(\n spineItemPagePosition,\n {\n type: \"corner\",\n corner: \"top-right\",\n size: 10,\n unit: \"%\",\n },\n pageSize,\n )\n\n if (hasTapOnTopRightCorner) {\n const pageEntry = reader.spine.pages.fromSpineItemPageIndex(\n spineItem,\n spineItemPageIndex,\n )\n\n if (!pageEntry) return CONTINUE_TAP_GESTURE\n\n const bookmarkForPage = bookmarks?.find(\n (bookmark) =>\n bookmark?.meta?.absolutePageIndex ===\n pageEntry.absolutePageIndex &&\n bookmark.meta.range === undefined,\n )\n\n if (bookmarkForPage) {\n readerContext.value.onAnnotationDelete?.(\n bookmarkForPage.resource.id,\n )\n\n return !CONTINUE_TAP_GESTURE\n }\n\n const canBookmarkPage = candidates?.[pageEntry.absolutePageIndex]\n\n if (canBookmarkPage) {\n const annotation = reader?.annotations.createAnnotation({\n absolutePageIndex: pageEntry.absolutePageIndex,\n })\n\n if (annotation) {\n readerContext.value.onAnnotationCreate?.(annotation)\n }\n\n return !CONTINUE_TAP_GESTURE\n }\n }\n\n return CONTINUE_TAP_GESTURE\n }),\n ),\n )\n\n return unSub\n }, [reader, bookmarks, readerContext])\n}\n","import { useCallback } from \"react\"\nimport { useSubscribe } from \"reactjrx\"\nimport { map, withLatestFrom } from \"rxjs\"\nimport { useReaderWithAnnotations } from \"./useReaderWithAnnotations\"\n\nexport const usePreventInteractionOnSelection = () => {\n const reader = useReaderWithAnnotations()\n\n const beforeTapGesture = useCallback(\n () =>\n /**\n * Hook used to prevent some gestures from being handled.\n */\n reader?.gestures.hooks.register(\"beforeTapGesture\", ({ event$ }) =>\n event$.pipe(\n withLatestFrom(reader.selection.lastSelectionOnPointerdown$),\n map(([{ event }, lastSelectionOnPointerdown]) => {\n const target = event.event.target\n\n /**\n * In this case if we have a gesture on an annotation, we want to prevent\n * it.\n */\n const wasOrIsOnSelection =\n (target && reader.annotations.isTargetWithinHighlight(target)) ||\n lastSelectionOnPointerdown\n\n return !wasOrIsOnSelection\n }),\n ),\n ),\n [reader],\n )\n\n useSubscribe(beforeTapGesture)\n}\n","import { useCallback } from \"react\"\nimport { useSubscribe } from \"reactjrx\"\nimport { combineLatest, distinctUntilChanged, map } from \"rxjs\"\nimport { useReaderContext } from \"../context/useReaderContext\"\nimport { useReaderWithAnnotations } from \"./useReaderWithAnnotations\"\n\nexport const useSyncAnnotationsWithReader = () => {\n const reader = useReaderWithAnnotations()\n const context = useReaderContext()\n\n const syncAnnotationsWithReader = useCallback(() => {\n if (reader) {\n const selectedHighlight$ = context.pipe(\n map((context) => context.selectedHighlight?.highlight?.id),\n distinctUntilChanged(),\n )\n\n const annotations$ = context.pipe(\n map((context) => context.annotations ?? []),\n distinctUntilChanged(),\n )\n\n const annotationsWithSelected$ = combineLatest([\n annotations$,\n selectedHighlight$,\n ]).pipe(\n map(([annotations, selectedHighlight]) =>\n annotations.map((annotation) => ({\n ...annotation,\n selected: annotation.id === selectedHighlight,\n })),\n ),\n )\n\n reader.annotations.update({ annotations$: annotationsWithSelected$ })\n }\n }, [reader, context])\n\n useSubscribe(syncAnnotationsWithReader)\n}\n","\"use client\"\n\nimport {\n Toaster as ChakraToaster,\n Portal,\n Spinner,\n Stack,\n Toast,\n createToaster,\n} from \"@chakra-ui/react\"\n\ntype Toaster = ReturnType<typeof createToaster>\n\nexport const toaster: Toaster = createToaster({\n placement: \"bottom-end\",\n pauseOnPageIdle: true,\n})\n\nexport const Toaster = () => {\n return (\n <Portal>\n <ChakraToaster toaster={toaster} insetInline={{ mdDown: \"4\" }}>\n {(toast) => (\n <Toast.Root width={{ md: \"sm\" }}>\n {toast.type === \"loading\" ? (\n <Spinner size=\"sm\" color=\"blue.solid\" />\n ) : (\n <Toast.Indicator />\n )}\n <Stack gap=\"1\" flex=\"1\" maxWidth=\"100%\">\n {toast.title && <Toast.Title>{toast.title}</Toast.Title>}\n {toast.description && (\n <Toast.Description>{toast.description}</Toast.Description>\n )}\n </Stack>\n {toast.action && (\n <Toast.ActionTrigger>{toast.action.label}</Toast.ActionTrigger>\n )}\n {toast.meta?.closable && <Toast.CloseTrigger />}\n </Toast.Root>\n )}\n </ChakraToaster>\n </Portal>\n )\n}\n","import { isShallowEqual } from \"@prose-reader/shared\"\nimport { type ComponentProps, memo, useCallback, useEffect } from \"react\"\nimport { signal, useConstant, useMemoCompare, useSignalValue } from \"reactjrx\"\nimport {\n getDefaultValue,\n type PrivateContextType,\n type PublicContextType,\n ReaderContext,\n} from \"./context\"\n\nconst SignalProvider = ({\n children,\n ...props\n}: {\n children: React.ReactNode\n} & PublicContextType) => {\n const valueSignal = useConstant(() => signal({ default: getDefaultValue() }))\n /**\n * font menu open\n */\n const uncontrolledFontSizeMenuOpen = useConstant(() =>\n signal({ default: valueSignal.value.fontSizeMenuOpen }),\n )\n const uncontrolledFontSizeMenuOpenValue = useSignalValue(\n uncontrolledFontSizeMenuOpen,\n )\n const uncontrolledOnFontSizeMenuOpenChange = useCallback(\n (open: boolean) => {\n uncontrolledFontSizeMenuOpen.update(open)\n },\n [uncontrolledFontSizeMenuOpen],\n )\n const _onQuickMenuOpenChange: PrivateContextType[\"_onQuickMenuOpenChange\"] =\n useCallback(\n (valueOrUpdater: boolean | ((prev: boolean) => boolean)) => {\n valueSignal.update((old) => ({\n ...old,\n _quickMenuOpen:\n typeof valueOrUpdater === \"function\"\n ? valueOrUpdater(old._quickMenuOpen)\n : valueOrUpdater,\n }))\n },\n [valueSignal],\n )\n const uncontrolledRefitMenuOpen = useConstant(() =>\n signal({ default: valueSignal.value.refitMenuOpen }),\n )\n const uncontrolledOnRefitMenuOpenChange = useCallback(\n (open: boolean) => {\n uncontrolledRefitMenuOpen.update(open)\n },\n [uncontrolledRefitMenuOpen],\n )\n const uncontrolledRefitMenuOpenValue = useSignalValue(\n uncontrolledRefitMenuOpen,\n )\n\n const memoizedProps = useMemoCompare(props, isShallowEqual)\n\n useEffect(() => {\n valueSignal.update((old) => ({\n ...old,\n ...memoizedProps,\n onFontSizeMenuOpenChange: uncontrolledOnFontSizeMenuOpenChange,\n fontSizeMenuOpen: uncontrolledFontSizeMenuOpenValue,\n onRefitMenuOpenChange: uncontrolledOnRefitMenuOpenChange,\n refitMenuOpen: uncontrolledRefitMenuOpenValue,\n _onQuickMenuOpenChange,\n }))\n }, [\n memoizedProps,\n _onQuickMenuOpenChange,\n valueSignal,\n uncontrolledFontSizeMenuOpenValue,\n uncontrolledOnFontSizeMenuOpenChange,\n uncontrolledRefitMenuOpenValue,\n uncontrolledOnRefitMenuOpenChange,\n ])\n\n return (\n <ReaderContext.Provider value={valueSignal}>\n {children}\n </ReaderContext.Provider>\n )\n}\n\nexport const ReactReaderProvider = memo(\n ({ children, ...props }: ComponentProps<typeof SignalProvider>) => {\n return <SignalProvider {...props}>{children}</SignalProvider>\n },\n)\n","import { RadioGroup as ChakraRadioGroup } from \"@chakra-ui/react\"\nimport * as React from \"react\"\n\nexport interface RadioProps extends ChakraRadioGroup.ItemProps {\n rootRef?: React.Ref<HTMLDivElement>\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>\n}\n\nexport const Radio = React.forwardRef<HTMLInputElement, RadioProps>(\n function Radio(props, ref) {\n const { children, inputProps, rootRef, ...rest } = props\n return (\n <ChakraRadioGroup.Item ref={rootRef} {...rest}>\n <ChakraRadioGroup.ItemHiddenInput ref={ref} {...inputProps} />\n <ChakraRadioGroup.ItemIndicator />\n {children && (\n <ChakraRadioGroup.ItemText>{children}</ChakraRadioGroup.ItemText>\n )}\n </ChakraRadioGroup.Item>\n )\n },\n)\n\nexport const RadioGroup = ChakraRadioGroup.Root\n","import { Slider as ChakraSlider, For, HStack } from \"@chakra-ui/react\"\nimport * as React from \"react\"\n\nexport interface SliderProps extends ChakraSlider.RootProps {\n marks?: Array<number | { value: number; label: React.ReactNode }>\n label?: React.ReactNode\n showValue?: boolean\n}\n\nexport const Slider = React.memo(function Slider({\n ref,\n ...props\n}: SliderProps & { ref?: React.RefObject<HTMLDivElement> }) {\n const { marks: marksProp, label, showValue, ...rest } = props\n const value = props.defaultValue ?? props.value\n\n const marks = marksProp?.map((mark) => {\n if (typeof mark === \"number\") return { value: mark, label: undefined }\n return mark\n })\n\n const hasMarkLabel = !!marks?.some((mark) => mark.label)\n\n return (\n <ChakraSlider.Root ref={ref} thumbAlignment=\"center\" {...rest}>\n {label && !showValue && <ChakraSlider.Label>{label}</ChakraSlider.Label>}\n {label && showValue && (\n <HStack justify=\"space-between\">\n <ChakraSlider.Label>{label}</ChakraSlider.Label>\n <ChakraSlider.ValueText />\n </HStack>\n )}\n <ChakraSlider.Control data-has-mark-label={hasMarkLabel || undefined}>\n <ChakraSlider.Track>\n <ChakraSlider.Range />\n </ChakraSlider.Track>\n <SliderThumbs value={value} />\n <SliderMarks marks={marks} />\n </ChakraSlider.Control>\n </ChakraSlider.Root>\n )\n})\n\nfunction SliderThumbs(props: { value?: number[] }) {\n const { value } = props\n return (\n <For each={value}>\n {(_, index) => (\n <ChakraSlider.Thumb key={index} index={index}>\n <ChakraSlider.HiddenInput />\n </ChakraSlider.Thumb>\n )}\n </For>\n )\n}\n\ninterface SliderMarksProps {\n marks?: Array<number | { value: number; label: React.ReactNode }>\n}\n\nconst SliderMarks = React.forwardRef<HTMLDivElement, SliderMarksProps>(\n function SliderMarks(props, ref) {\n const { marks } = props\n if (!marks?.length) return null\n\n return (\n <ChakraSlider.MarkerGroup ref={ref}>\n {marks.map((mark, index) => {\n const value = typeof mark === \"number\" ? mark : mark.value\n const label = typeof mark === \"number\" ? undefined : mark.label\n return (\n <ChakraSlider.Marker key={index} value={value}>\n <ChakraSlider.MarkerIndicator />\n {label}\n </ChakraSlider.Marker>\n )\n })}\n </ChakraSlider.MarkerGroup>\n )\n },\n)\n","export const PROSE_REACT_READER_SETTINGS_SCOPE_CONFIGURATION = [\n {\n value: \"global\",\n references: [\"global\"],\n },\n {\n value: \"book\",\n references: [\"book\"],\n },\n {\n value: \"screen\",\n references: [\"mobile\", \"tablet\", \"desktop\"],\n },\n] as const\nexport type PROSE_REACT_READER_SETTINGS_SCOPE =\n (typeof PROSE_REACT_READER_SETTINGS_SCOPE_CONFIGURATION)[number][\"value\"]\nexport type PROSE_REACT_READER_SETTINGS_SCOPE_REFERENCE =\n (typeof PROSE_REACT_READER_SETTINGS_SCOPE_CONFIGURATION)[number][\"references\"][number]\n","import {\n Button,\n Fieldset,\n HStack,\n type SliderValueChangeDetails,\n Stack,\n Tabs,\n type TabsValueChangeDetails,\n} from \"@chakra-ui/react\"\nimport {\n type ComponentProps,\n memo,\n useCallback,\n useEffect,\n useState,\n} from \"react\"\nimport { LuCheck } from \"react-icons/lu\"\nimport { useLiveRef } from \"reactjrx\"\nimport {\n DialogActionTrigger,\n DialogBody,\n DialogCloseTrigger,\n DialogContent,\n DialogFooter,\n DialogHeader,\n DialogRoot,\n DialogTitle,\n} from \"../components/ui/dialog\"\nimport { Radio, RadioGroup } from \"../components/ui/radio\"\nimport { Slider } from \"../components/ui/slider\"\nimport {\n useReaderContext,\n useReaderContextValue,\n} from \"../context/useReaderContext\"\nimport {\n type PROSE_REACT_READER_SETTINGS_SCOPE,\n PROSE_REACT_READER_SETTINGS_SCOPE_CONFIGURATION,\n type PROSE_REACT_READER_SETTINGS_SCOPE_REFERENCE,\n} from \"../settings/types\"\n\nconst SETTINGS_SCOPES_VALUES =\n PROSE_REACT_READER_SETTINGS_SCOPE_CONFIGURATION.map((item) => item.value)\nconst SETTINGS_SCOPES_REFERENCES =\n PROSE_REACT_READER_SETTINGS_SCOPE_CONFIGURATION.flatMap(\n (item) => item.references,\n )\n\nconst getScopeForReference = (\n reference: PROSE_REACT_READER_SETTINGS_SCOPE_REFERENCE | undefined,\n) => {\n if (!reference) {\n return undefined\n }\n\n return PROSE_REACT_READER_SETTINGS_SCOPE_CONFIGURATION.find((item) =>\n (item.references as readonly string[]).includes(reference),\n )?.value\n}\n\nexport const FontSizeControlsDialog = memo(() => {\n const context = useReaderContext()\n const {\n fontSizeMenuOpen,\n onFontSizeMenuOpenChange,\n uncontrolledFontSize,\n fontSize = uncontrolledFontSize,\n fontSizeMin,\n fontSizeMax,\n fontSizeScope,\n fontSizeValues,\n onFontSizeChange,\n onFontSizeScopeChange,\n } = useReaderContextValue([\n \"fontSizeMenuOpen\",\n \"onFontSizeMenuOpenChange\",\n \"fontSize\",\n \"fontSizeMin\",\n \"fontSizeMax\",\n \"fontSizeScope\",\n \"onFontSizeChange\",\n \"onFontSizeScopeChange\",\n \"uncontrolledFontSize\",\n \"fontSizeValues\",\n ])\n const onFontSizeChangeRef = useLiveRef(onFontSizeChange)\n const [tabValue, setTabValue] =\n useState<PROSE_REACT_READER_SETTINGS_SCOPE_REFERENCE>(\n fontSizeScope ?? \"global\",\n )\n const onFontUpdate = useCallback(\n (scope: PROSE_REACT_READER_SETTINGS_SCOPE_REFERENCE, value: number) => {\n if (onFontSizeChangeRef.current) {\n onFontSizeChangeRef.current(scope, value)\n } else {\n context.update((old) => ({\n ...old,\n uncontrolledFontSize: value,\n }))\n }\n },\n [onFontSizeChangeRef, context],\n )\n const getValueForScope = useCallback(\n (scope: PROSE_REACT_READER_SETTINGS_SCOPE_REFERENCE) => {\n return fontSizeValues?.[scope] ?? fontSize\n },\n [fontSize, fontSizeValues],\n )\n\n const onScopeValueChange = useCallback(\n (\n details: Parameters<\n NonNullable<ComponentProps<typeof RadioGroup>[\"onValueChange\"]>\n >[0],\n ) => {\n const value = details.value as PROSE_REACT_READER_SETTINGS_SCOPE\n\n onFontSizeScopeChange?.(value)\n },\n [onFontSizeScopeChange],\n )\n\n const onTabValueChange = useCallback((details: TabsValueChangeDetails) => {\n setTabValue(details.value as PROSE_REACT_READER_SETTINGS_SCOPE_REFERENCE)\n }, [])\n\n const onSliderValueChange = useCallback(\n (details: SliderValueChangeDetails) => {\n const value = details.value[0] ?? 0\n\n onFontUpdate(tabValue, value / 100)\n },\n [onFontUpdate, tabValue],\n )\n\n useEffect(\n function syncScopeChangeWithTabs() {\n setTabValue(fontSizeScope ?? \"global\")\n },\n [fontSizeScope],\n )\n\n return (\n <DialogRoot\n lazyMount\n open={fontSizeMenuOpen}\n onOpenChange={(e) => {\n onFontSizeMenuOpenChange(e.open)\n }}\n placement=\"center\"\n >\n <DialogContent maxH=\"40vh\" overflow=\"auto\">\n <DialogHeader>\n <DialogTitle>Font size</DialogTitle>\n </DialogHeader>\n <DialogBody>\n <Stack gap={4} flex={1}>\n <Fieldset.Root>\n <Fieldset.Legend>Scope</Fieldset.Legend>\n <Fieldset.HelperText>\n The scope to which apply the font size for this book.\n </Fieldset.HelperText>\n <Fieldset.Content>\n <RadioGroup\n onValueChange={onScopeValueChange}\n value={getScopeForReference(fontSizeScope) ?? \"global\"}\n disabled={!onFontSizeScopeChange}\n >\n <HStack gap={2}>\n {SETTINGS_SCOPES_VALUES.map((scope) => (\n <Radio value={scope} key={scope}>\n {scope}\n </Radio>\n ))}\n </HStack>\n </RadioGroup>\n </Fieldset.Content>\n </Fieldset.Root>\n <Tabs.Root\n value={tabValue}\n onValueChange={onTabValueChange}\n fitted={false}\n size=\"sm\"\n >\n <Tabs.List>\n {SETTINGS_SCOPES_REFERENCES.map((scope) => (\n <Tabs.Trigger\n value={scope}\n key={scope}\n textTransform=\"capitalize\"\n disabled={scope !== \"global\" && !fontSizeScope}\n >\n {fontSizeScope === scope && <LuCheck />}\n {scope}\n </Tabs.Trigger>\n ))}\n </Tabs.List>\n {SETTINGS_SCOPES_REFERENCES.map((scope) => (\n <Tabs.Content value={scope} key={scope}>\n <Slider\n label={`%`}\n value={[(getValueForScope(scope) ?? 1) * 100]}\n onValueChange={onSliderValueChange}\n showValue={true}\n marks={[\n { value: 100, label: \"Publisher\" },\n {\n value: fontSizeMin * 100,\n label: `${fontSizeMin * 100}%`,\n },\n {\n value: fontSizeMax * 100,\n label: `${fontSizeMax * 100}%`,\n },\n ]}\n max={fontSizeMax * 100}\n min={fontSizeMin * 100}\n width=\"100%\"\n step={0.1 * 100}\n />\n </Tabs.Content>\n ))}\n </Tabs.Root>\n </Stack>\n </DialogBody>\n <DialogFooter>\n <DialogActionTrigger asChild>\n <Button variant=\"outline\">Close</Button>\n </DialogActionTrigger>\n </DialogFooter>\n <DialogCloseTrigger />\n </DialogContent>\n </DialogRoot>\n )\n})\n","import { useCallback, useEffect } from \"react\"\nimport { useSubscribe } from \"reactjrx\"\nimport { map } from \"rxjs\"\nimport { useReader } from \"../context/useReader\"\nimport {\n useReaderContext,\n useReaderContextValue,\n} from \"../context/useReaderContext\"\n\nexport const SyncFontSettings = () => {\n const reader = useReader()\n const context = useReaderContext()\n const { fontSize, uncontrolledFontSize } = useReaderContextValue([\n \"fontSize\",\n \"uncontrolledFontSize\",\n \"onFontSizeChange\",\n ])\n const _fontSize = fontSize ?? uncontrolledFontSize\n\n useEffect(\n function syncDownFontSize() {\n if (reader && _fontSize) {\n const timeout = setTimeout(() => {\n reader.settings.update({\n fontScale: _fontSize,\n })\n }, 200)\n\n return () => clearTimeout(timeout)\n }\n },\n [reader, _fontSize],\n )\n\n const syncUpFontSize = useCallback(\n function syncUpFontSize() {\n return reader?.settings.values$\n .pipe(map((settings) => settings.fontScale))\n .subscribe((fontScale) => {\n const _fontSize =\n context.value.fontSize ?? context.value.uncontrolledFontSize\n\n if (fontScale !== _fontSize) {\n context.value.onFontSizeChange?.(\"internal\", fontScale)\n context.update((old) => ({\n ...old,\n uncontrolledFontSize: fontScale,\n }))\n }\n })\n },\n [reader, context],\n )\n\n useSubscribe(syncUpFontSize)\n\n return null\n}\n","import { useLayoutEffect, useMemo, useState } from \"react\"\n\nexport type UseMeasureRect = Pick<\n DOMRectReadOnly,\n \"x\" | \"y\" | \"top\" | \"left\" | \"right\" | \"bottom\" | \"height\" | \"width\"\n>\nexport type UseMeasureRef<E extends Element = Element> = (element: E) => void\nexport type UseMeasureResult<E extends Element = Element> = [\n UseMeasureRef<E>,\n UseMeasureRect,\n E | null,\n]\n\nconst defaultState: UseMeasureRect = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n}\n\nexport function useMeasure<E extends Element = Element>(): UseMeasureResult<E> {\n const [element, setElement] = useState<E | null>(null)\n const [rect, setRect] = useState<UseMeasureRect>(defaultState)\n\n const observer = useMemo(\n () =>\n new ResizeObserver((entries) => {\n if (entries[0]) {\n const { x, y, width, height, top, left, bottom, right } =\n entries[0].contentRect\n setRect({ x, y, width, height, top, left, bottom, right })\n }\n }),\n [],\n )\n\n useLayoutEffect(() => {\n if (!element) return\n\n observer.observe(element)\n\n return () => {\n observer.disconnect()\n }\n }, [element, observer])\n\n return [setElement, rect, element]\n}\n","import {\n isShallowEqual,\n observeIntersection,\n type SpineItem,\n} from \"@prose-reader/core\"\nimport { useCallback } from \"react\"\nimport { useSubscribe } from \"reactjrx\"\nimport {\n distinctUntilChanged,\n filter,\n first,\n map,\n NEVER,\n startWith,\n switchMap,\n tap,\n throttleTime,\n} from \"rxjs\"\nimport type { UseMeasureRect } from \"../common/useMeasure\"\nimport { hasGalleryEnhancer, useReader } from \"../context/useReader\"\n\nexport const useAttachSnapshot = (\n element: Element | null,\n item: SpineItem,\n measures: UseMeasureRect,\n) => {\n const reader = useReader()\n const readerWithGalleryEnhancer = hasGalleryEnhancer(reader)\n ? reader\n : undefined\n\n const attachSnapshot = useCallback(() => {\n if (!readerWithGalleryEnhancer || !element) return NEVER\n\n const itemLayoutChanged$ = item.didLayout$.pipe(\n startWith(item.layoutInfo),\n distinctUntilChanged(isShallowEqual),\n )\n\n const isItemIntersecting$ = observeIntersection(\n element as HTMLElement,\n ).pipe(map((entries) => entries.some((e) => e.isIntersecting)))\n\n return itemLayoutChanged$.pipe(\n throttleTime(100, undefined, { trailing: true }),\n switchMap(() => {\n return isItemIntersecting$\n .pipe(\n tap((isVisible) => {\n // if the layout change and the item is not visible anymore, cleanup the element\n if (!isVisible) {\n element.innerHTML = \"\"\n }\n }),\n filter((isVisible) => isVisible),\n first(),\n )\n .pipe(\n switchMap(() => {\n element.innerHTML = \"\"\n\n return readerWithGalleryEnhancer?.gallery.snapshot(\n item,\n element,\n measures,\n )\n }),\n )\n }),\n )\n }, [readerWithGalleryEnhancer, item, measures, element])\n\n useSubscribe(attachSnapshot)\n}\n","import { Box, Button, Text } from \"@chakra-ui/react\"\nimport type { SpineItem } from \"@prose-reader/core\"\nimport { memo } from \"react\"\nimport { useObserve } from \"reactjrx\"\nimport { useMeasure } from \"../common/useMeasure\"\nimport {\n DialogActionTrigger,\n DialogBody,\n DialogCloseTrigger,\n DialogContent,\n DialogFooter,\n DialogHeader,\n DialogRoot,\n DialogTitle,\n} from \"../components/ui/dialog\"\nimport { useReader } from \"../context/useReader\"\nimport { useAttachSnapshot } from \"./useAttachSnapshot\"\n\nconst GalleryItem = memo(\n ({ item, onNavigated }: { item: SpineItem; onNavigated: () => void }) => {\n const [setElement, measures, element] = useMeasure()\n const reader = useReader()\n\n useAttachSnapshot(element, item, measures)\n\n const { data: locatedResource } = useObserve(\n () => reader?.locateResource(item, { mode: \"shallow\" }),\n [reader, item],\n )\n\n return (\n <Box\n width=\"100%\"\n aspectRatio=\"2/3\"\n border=\"1px solid\"\n borderColor=\"border\"\n borderRadius=\"md\"\n data-grid-item\n cursor=\"pointer\"\n position=\"relative\"\n overflow=\"hidden\"\n onClick={() => {\n onNavigated()\n reader?.navigation.goToSpineItem({ indexOrId: item })\n }}\n >\n <Box\n height=\"100%\"\n width=\"100%\"\n overflow=\"hidden\"\n pointerEvents=\"none\"\n ref={setElement}\n />\n <Text\n position=\"absolute\"\n bottom={0}\n left=\"0\"\n right=\"0\"\n textAlign=\"center\"\n bgColor=\"white\"\n p={4}\n fontSize=\"xs\"\n >\n Page {(locatedResource?.meta?.absolutePageIndex ?? 0) + 1}\n </Text>\n </Box>\n )\n },\n)\n\nexport const GalleryDialog = memo(\n ({ open, setOpen }: { open: boolean; setOpen: (open: boolean) => void }) => {\n const reader = useReader()\n const { data: items } = useObserve(\n () => reader?.spineItemsManager.items$,\n [reader],\n )\n\n return (\n <DialogRoot\n lazyMount\n placement=\"center\"\n open={open}\n onOpenChange={(e) => setOpen(e.open)}\n size={{ mdDown: \"full\", md: \"lg\" }}\n scrollBehavior=\"inside\"\n >\n <DialogContent height=\"100%\">\n <DialogHeader>\n <DialogTitle>Gallery</DialogTitle>\n </DialogHeader>\n <DialogBody>\n <Box\n gridTemplateColumns={[\n \"repeat(2, minmax(0, 1fr))\",\n \"repeat(3, minmax(0, 1fr))\",\n ]}\n display=\"grid\"\n gap={[2, 4]}\n pt={2}\n data-grid\n >\n {items?.map((item) => (\n <GalleryItem\n key={item.item.id}\n item={item}\n onNavigated={() => {\n setOpen(false)\n }}\n />\n ))}\n </Box>\n </DialogBody>\n <DialogFooter>\n <DialogActionTrigger asChild>\n <Button variant=\"outline\">Cancel</Button>\n </DialogActionTrigger>\n </DialogFooter>\n <DialogCloseTrigger />\n </DialogContent>\n </DialogRoot>\n )\n },\n)\n","import { Button, Heading, HStack, Kbd, Stack, Text } from \"@chakra-ui/react\"\nimport { memo } from \"react\"\nimport { LuArrowBigLeft, LuArrowBigRight } from \"react-icons/lu\"\nimport { name, version } from \"../../package.json\"\nimport {\n DialogActionTrigger,\n DialogBody,\n DialogCloseTrigger,\n DialogContent,\n DialogFooter,\n DialogHeader,\n DialogRoot,\n DialogTitle,\n} from \"../components/ui/dialog\"\n\nexport const HelpDialog = memo(\n ({ open, setOpen }: { open: boolean; setOpen: (open: boolean) => void }) => {\n return (\n <DialogRoot\n lazyMount\n placement=\"center\"\n open={open}\n onOpenChange={(e) => setOpen(e.open)}\n size={{ mdDown: \"full\", md: \"lg\" }}\n scrollBehavior=\"inside\"\n >\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Help</DialogTitle>\n </DialogHeader>\n <DialogBody\n overflowY=\"auto\"\n flex={1}\n display=\"flex\"\n flexDirection=\"column\"\n gap={4}\n >\n <Stack>\n <Heading mb={2} as=\"h3\" size=\"lg\">\n Shortcuts\n </Heading>\n <HStack mb={1}>\n <Kbd>\n <LuArrowBigRight />\n </Kbd>{\" \"}\n <Text>Navigate to right page</Text>\n </HStack>\n <HStack mb={1}>\n <Kbd>\n <LuArrowBigLeft />\n </Kbd>{\" \"}\n <Text>Navigate to left page</Text>\n </HStack>\n </Stack>\n <Stack>\n <Heading mb={2} as=\"h3\" size=\"lg\">\n Bookmarks\n </Heading>\n <HStack mb={1}>\n <Text>Tap on the top right corner of a page bookmark it</Text>\n </HStack>\n </Stack>\n <Stack>\n <Heading mb={2} as=\"h3\" size=\"lg\">\n About\n </Heading>\n <Text>\n {name} version: {version}\n </Text>\n </Stack>\n </DialogBody>\n <DialogFooter>\n <DialogActionTrigger asChild>\n <Button variant=\"outline\">Cancel</Button>\n </DialogActionTrigger>\n </DialogFooter>\n <DialogCloseTrigger />\n </DialogContent>\n </DialogRoot>\n )\n },\n)\n","import type { Reader } from \"@prose-reader/core\"\nimport { useObserve } from \"reactjrx\"\nimport { combineLatest, map, NEVER } from \"rxjs\"\nimport { useReader } from \"../context/useReader\"\n\nexport const usePagination = ():\n | (Reader[\"pagination\"][\"state\"] & { hasChapters: boolean })\n | undefined => {\n const reader = useReader()\n\n return useObserve(\n () =>\n !reader\n ? NEVER\n : combineLatest([reader.pagination.state$, reader.context]).pipe(\n map(([state, context]) => {\n const isOnlyImages = context.manifest?.spineItems.every((item) =>\n item.mediaType?.startsWith(\"image/\"),\n )\n\n return {\n ...state,\n hasChapters: !context.isFullyPrePaginated && !isOnlyImages,\n }\n }),\n ),\n [reader],\n ).data\n}\n","import { Box, Presence, Text } from \"@chakra-ui/react\"\nimport { useReaderContextValue } from \"../context/useReaderContext\"\nimport { usePagination } from \"../pagination/usePagination\"\n\nconst ANIMATION_NAME_IN_OUT = { _open: \"fade-in\", _closed: \"fade-out\" }\n\nexport const FloatingProgress = () => {\n const { enableFloatingProgress, quickMenuOpen } = useReaderContextValue([\n \"enableFloatingProgress\",\n \"quickMenuOpen\",\n ])\n const pagination = usePagination()\n const roundedProgress = Math.floor(\n (pagination?.percentageEstimateOfBook ?? 0) * 100,\n )\n const displayableProgress = roundedProgress > 0 ? roundedProgress : 1\n\n if (\n pagination?.percentageEstimateOfBook === undefined ||\n !enableFloatingProgress\n )\n return null\n\n return (\n <Presence\n present={!quickMenuOpen}\n animationName={ANIMATION_NAME_IN_OUT}\n animationDuration=\"moderate\"\n >\n <Box\n position=\"absolute\"\n right={0}\n bottom={0}\n p={2}\n WebkitTextStroke=\"2px black\"\n paintOrder=\"stroke fill\"\n pointerEvents=\"none\"\n letterSpacing={1}\n color=\"white\"\n >\n <Text fontSize=\"sm\">{displayableProgress} %</Text>\n </Box>\n </Presence>\n )\n}\n","import { Text, type TextProps } from \"@chakra-ui/react\"\nimport { useEffect, useState } from \"react\"\n\nexport const useTime = () => {\n const [time, setTime] = useState(new Date())\n\n useEffect(() => {\n const interval = setInterval(() => {\n setTime(new Date())\n }, 1000 * 60)\n\n return () => clearInterval(interval)\n }, [])\n\n return time\n}\n\nexport const TimeIndicator = (props: TextProps) => {\n const time = useTime()\n\n return (\n <Text fontSize=\"sm\" {...props}>\n {time.toLocaleTimeString(navigator.language, {\n hour: \"2-digit\",\n minute: \"2-digit\",\n })}\n </Text>\n )\n}\n","import { Box } from \"@chakra-ui/react\"\nimport { memo } from \"react\"\nimport { TimeIndicator } from \"../quickmenu/TimeIndicator\"\n\nexport const FloatingTime = memo(() => {\n return (\n <Box\n position=\"absolute\"\n left={0}\n bottom={0}\n p={2}\n color=\"white\"\n WebkitTextStroke=\"2px black\"\n paintOrder=\"stroke fill\"\n pointerEvents=\"none\"\n letterSpacing={1}\n >\n <TimeIndicator />\n </Box>\n )\n})\n","import { isHtmlTagElement } from \"@prose-reader/core\"\nimport { useCallback } from \"react\"\nimport { useSubscribe } from \"reactjrx\"\nimport { useReader } from \"../context/useReader\"\n\nexport const useInterceptExternalLinks = () => {\n const reader = useReader()\n\n const interceptExternalLinks = useCallback(\n () =>\n reader?.links$.subscribe((event) => {\n if (event.type === \"click\" && isHtmlTagElement(event.target, \"a\")) {\n if (!event.target.href) return\n\n const url = new URL(event.target.href)\n\n if (window.location.host !== url.host) {\n const response = confirm(\n `You are going to be redirected to external link`,\n )\n\n if (response) {\n window.open(event.target.href, \"__blank\")\n }\n }\n }\n }),\n [reader],\n )\n\n useSubscribe(interceptExternalLinks)\n}\n","import { useCallback } from \"react\"\nimport { isDefined, useSubscribe } from \"reactjrx\"\nimport {\n filter,\n finalize,\n first,\n merge,\n mergeMap,\n NEVER,\n Observable,\n skip,\n switchMap,\n timer,\n} from \"rxjs\"\nimport { toaster } from \"../components/ui/toaster\"\nimport { useReaderContextValue } from \"../context/useReaderContext\"\nimport { useFontSizeNotifications } from \"../fonts/useFontSizeNotifications\"\n\nexport const useNotifications = () => {\n const { notificationsSubject } = useReaderContextValue([\n \"notificationsSubject\",\n ])\n\n useFontSizeNotifications()\n\n const notifications = useCallback(\n () =>\n notificationsSubject.pipe(\n filter(isDefined),\n mergeMap((notification) => {\n const duration = notification.duration ?? 3000\n\n const toast$ = new Observable<string>((subscriber) => {\n try {\n queueMicrotask(() => {\n const toastId = toaster.create({\n title: notification.title,\n description: notification.description,\n duration,\n })\n\n subscriber.next(toastId)\n subscriber.complete()\n })\n } catch (error) {\n subscriber.error(error)\n }\n })\n\n const sameNotification$ = notificationsSubject.pipe(\n skip(1),\n filter((n) => !!notification.key && n?.key === notification.key),\n )\n\n return toast$.pipe(\n switchMap((toast) =>\n merge(\n timer(duration),\n notification.abort ?? NEVER,\n sameNotification$,\n ).pipe(\n first(),\n finalize(() => {\n queueMicrotask(() => {\n toaster.dismiss(toast)\n })\n }),\n ),\n ),\n )\n }),\n ),\n [notificationsSubject],\n )\n\n useSubscribe(notifications)\n}\n","import { Popover as ChakraPopover, IconButton, Portal } from \"@chakra-ui/react\"\nimport * as React from \"react\"\nimport { HiOutlineInformationCircle } from \"react-icons/hi\"\n\nexport interface ToggleTipProps extends ChakraPopover.RootProps {\n showArrow?: boolean\n portalled?: boolean\n portalRef?: React.RefObject<HTMLElement>\n content?: React.ReactNode\n}\n\nexport const ToggleTip = React.forwardRef<HTMLDivElement, ToggleTipProps>(\n function ToggleTip(props, ref) {\n const {\n showArrow,\n children,\n portalled = true,\n content,\n portalRef,\n ...rest\n } = props\n\n return (\n <ChakraPopover.Root\n {...rest}\n positioning={{ ...rest.positioning, gutter: 4 }}\n >\n <ChakraPopover.Trigger asChild>{children}</ChakraPopover.Trigger>\n <Portal disabled={!portalled} container={portalRef}>\n <ChakraPopover.Positioner>\n <ChakraPopover.Content\n width=\"auto\"\n px=\"2\"\n py=\"1\"\n textStyle=\"xs\"\n rounded=\"sm\"\n ref={ref}\n >\n {showArrow && (\n <ChakraPopover.Arrow>\n <ChakraPopover.ArrowTip />\n </ChakraPopover.Arrow>\n )}\n {content}\n </ChakraPopover.Content>\n </ChakraPopover.Positioner>\n </Portal>\n </ChakraPopover.Root>\n )\n },\n)\n\nexport const InfoTip = React.forwardRef<\n HTMLDivElement,\n Partial<ToggleTipProps>\n>(function InfoTip(props, ref) {\n const { children, ...rest } = props\n return (\n <ToggleTip content={children} {...rest} ref={ref}>\n <IconButton\n variant=\"ghost\"\n aria-label=\"info\"\n size=\"2xs\"\n colorPalette=\"gray\"\n >\n <HiOutlineInformationCircle />\n </IconButton>\n </ToggleTip>\n )\n})\n","import { Progress as ChakraProgress } from \"@chakra-ui/react\"\nimport { InfoTip } from \"./toggle-tip\"\nimport * as React from \"react\"\n\nexport const ProgressBar = React.forwardRef<\n HTMLDivElement,\n ChakraProgress.TrackProps\n>(function ProgressBar(props, ref) {\n return (\n <ChakraProgress.Track {...props} ref={ref}>\n <ChakraProgress.Range />\n </ChakraProgress.Track>\n )\n})\n\nexport interface ProgressLabelProps extends ChakraProgress.LabelProps {\n info?: React.ReactNode\n}\n\nexport const ProgressLabel = React.forwardRef<\n HTMLDivElement,\n ProgressLabelProps\n>(function ProgressLabel(props, ref) {\n const { children, info, ...rest } = props\n return (\n <ChakraProgress.Label {...rest} ref={ref}>\n {children}\n {info && <InfoTip>{info}</InfoTip>}\n </ChakraProgress.Label>\n )\n})\n\nexport const ProgressRoot = ChakraProgress.Root\nexport const ProgressValueText = ChakraProgress.ValueText\n","import { usePagination } from \"../pagination/usePagination\"\n\nexport const useNavigationContext = () => {\n const pagination = usePagination()\n const hasOnlyOnePage = pagination?.numberOfTotalPages === 1\n\n const isBeginWithinChapter =\n (pagination?.beginNumberOfPagesInSpineItem ?? 0) > 1\n\n const isEndWithinChapter = (pagination?.endNumberOfPagesInSpineItem ?? 0) > 1\n\n const beginPageIndex =\n (pagination?.hasChapters\n ? pagination?.beginPageIndexInSpineItem\n : pagination?.beginAbsolutePageIndex) ?? 0\n const endPageIndex =\n (pagination?.hasChapters\n ? pagination?.endPageIndexInSpineItem\n : pagination?.endAbsolutePageIndex) ?? 0\n\n const [leftPageIndex = 0, rightPageIndex = 0] = [\n beginPageIndex,\n endPageIndex,\n ].sort((a, b) => a - b)\n\n const beginAndEndAreDifferent =\n pagination?.beginPageIndexInSpineItem !==\n pagination?.endPageIndexInSpineItem ||\n pagination?.beginSpineItemIndex !== pagination?.endSpineItemIndex\n\n const totalApproximatePages = pagination?.hasChapters\n ? pagination?.beginNumberOfPagesInSpineItem\n : pagination?.numberOfTotalPages\n\n return {\n hasOnlyOnePage,\n beginPageIndex,\n endPageIndex,\n isBeginWithinChapter,\n isEndWithinChapter,\n beginAndEndAreDifferent,\n totalApproximatePages,\n leftPageIndex,\n rightPageIndex,\n }\n}\n","import { HStack, Stack, Text } from \"@chakra-ui/react\"\nimport {\n ProgressBar,\n ProgressRoot,\n ProgressValueText,\n} from \"../components/ui/progress\"\nimport { useNavigationContext } from \"../navigation/useNavigationContext\"\nimport { usePagination } from \"../pagination/usePagination\"\n\nexport const PaginationInfoSection = () => {\n const pagination = usePagination()\n const {\n hasOnlyOnePage,\n leftPageIndex,\n rightPageIndex,\n totalApproximatePages,\n beginAndEndAreDifferent,\n } = useNavigationContext()\n const progress = Math.round((pagination?.percentageEstimateOfBook ?? 0) * 100)\n\n const buildTitleChain = (\n chapterInfo: NonNullable<typeof pagination>[\"beginChapterInfo\"],\n ): string => {\n if (chapterInfo?.subChapter) {\n return `${chapterInfo.title} / ${buildTitleChain(chapterInfo.subChapter)}`\n }\n return chapterInfo?.title || \"\"\n }\n\n const chapterTitle = buildTitleChain(pagination?.beginChapterInfo)\n\n return (\n <Stack alignItems=\"center\" gap={1} maxW=\"100%\" overflow=\"auto\">\n <ProgressRoot value={progress} size=\"xs\" width={150}>\n <HStack justifyContent=\"space-between\">\n <ProgressBar width={110} />\n <ProgressValueText>{`${progress}%`}</ProgressValueText>\n </HStack>\n </ProgressRoot>\n <Text truncate maxWidth=\"100%\" fontSize=\"sm\" mt={1}>\n {chapterTitle ? `Chapter: ${chapterTitle}` : `\\u00A0`}\n </Text>\n {!hasOnlyOnePage && (\n <HStack>\n <Text fontSize=\"xs\">\n {beginAndEndAreDifferent\n ? `${leftPageIndex + 1} - ${rightPageIndex + 1} of ${totalApproximatePages}`\n : `${leftPageIndex + 1} of ${totalApproximatePages}`}\n </Text>\n {!!pagination?.hasChapters && (\n <>\n <Text>-</Text>\n <Text fontSize=\"xs\">\n ({(pagination?.beginAbsolutePageIndex ?? 0) + 1})\n </Text>\n </>\n )}\n </HStack>\n )}\n </Stack>\n )\n}\n","import { Presence, type PresenceProps } from \"@chakra-ui/react\"\nimport { memo } from \"react\"\n\nexport const QuickBar = memo(\n ({\n children,\n position,\n ...rest\n }: { position: \"top\" | \"bottom\" } & PresenceProps & {\n ref?: React.RefObject<HTMLDivElement | null>\n }) => {\n return (\n <Presence\n display=\"flex\"\n flexDirection=\"row\"\n width=\"100%\"\n position=\"absolute\"\n {...(position === \"bottom\" ? { bottom: 0 } : { top: 0 })}\n animationName={\n position === \"bottom\"\n ? {\n _open: \"slide-from-bottom, fade-in\",\n _closed: \"slide-to-bottom, fade-out\",\n }\n : {\n _open: \"slide-from-top, fade-in\",\n _closed: \"slide-to-top, fade-out\",\n }\n }\n animationDuration=\"moderate\"\n bgColor=\"bg.panel\"\n alignItems=\"center\"\n justifyContent=\"center\"\n shadow=\"md\"\n p={4}\n {...rest}\n >\n {children}\n </Presence>\n )\n },\n)\n","import RcSlider from \"rc-slider\"\nimport { type ComponentProps, memo } from \"react\"\nimport \"rc-slider/assets/index.css\"\nimport { Box, chakra } from \"@chakra-ui/react\"\n\nconst ChakraRcSlider = chakra(RcSlider)\n\nexport const ThemedSlider = memo((props: ComponentProps<typeof RcSlider>) => {\n return (\n <Box\n display=\"contents\"\n css={{\n \"--bg\": \"colors.bg\",\n \"--bg-emphasized\": \"colors.bg.emphasized\",\n \"--color-solid\": \"colors.colorPalette.solid\",\n }}\n >\n <ChakraRcSlider\n keyboard={false}\n style={{\n padding: 0,\n }}\n css={{\n \"& > .rc-slider-handle:focus-visible\": {\n boxShadow: \"0 0 0 2px var(--color-solid) !important\",\n },\n \"& > .rc-slider-handle:active\": {\n boxShadow: \"0 0 5px var(--color-solid) !important\",\n },\n \"& > .rc-slider-handle.rc-slider-handle-dragging\": {\n boxShadow: \"0 0 0 3px var(--color-solid) !important\",\n },\n }}\n styles={{\n rail: {\n height: \"8px\",\n top: \"50%\",\n transform: \"translateY(-50%)\",\n backgroundColor: \"var(--bg-emphasized)\",\n },\n track: {\n height: \"8px\",\n top: \"50%\",\n transform: \"translateY(-50%)\",\n backgroundColor: \"var(--color-solid)\",\n },\n handle: {\n width: \"24px\",\n height: \"24px\",\n top: \"50%\",\n borderColor: \"var(--color-solid)\",\n transform: `translate(${props.reverse ? \"50%\" : \"-50%\"}, -50%)`,\n backgroundColor: \"var(--bg)\",\n marginTop: \"0px\",\n },\n }}\n {...props}\n />\n </Box>\n )\n})\n","import { Box } from \"@chakra-ui/react\"\nimport { type ComponentProps, useCallback, useEffect } from \"react\"\nimport { signal, useObserve, useSignalState, useSubscribe } from \"reactjrx\"\nimport { useReader } from \"../context/useReader\"\nimport { useNavigationContext } from \"../navigation/useNavigationContext\"\nimport { usePagination } from \"../pagination/usePagination\"\nimport { ThemedSlider } from \"./ThemedSlider\"\n\nconst useSliderValues = () => {\n const pagination = usePagination()\n const isUsingSpread = pagination?.isUsingSpread\n const { beginPageIndex: currentRealPage, totalApproximatePages = 0 } =\n useNavigationContext()\n const currentPage = isUsingSpread\n ? Math.floor((currentRealPage || 0) / 2)\n : currentRealPage\n const [value, valueSignal] = useSignalState(() =>\n signal({\n default: currentPage || 0,\n }),\n )\n const min = 0\n const max = Math.max(\n 0,\n isUsingSpread\n ? Math.floor((totalApproximatePages - 1) / 2)\n : totalApproximatePages - 1,\n )\n\n useEffect(() => {\n valueSignal.update(currentPage || 0)\n }, [currentPage, valueSignal])\n\n return {\n value,\n valueSignal,\n min,\n max,\n }\n}\n\nexport const Scrubber = (props: ComponentProps<typeof ThemedSlider>) => {\n const reader = useReader()\n const pagination = usePagination()\n const { data: { manifest } = {} } =\n useObserve(() => reader?.context, [reader]) ?? {}\n const reverse = manifest?.readingDirection === \"rtl\"\n const isUsingSpread = pagination?.isUsingSpread\n const { totalApproximatePages = 0, isBeginWithinChapter } =\n useNavigationContext()\n const step = 1\n const isScrubberWithinChapter = isBeginWithinChapter\n const { value, valueSignal, min, max } = useSliderValues()\n\n const onChange: NonNullable<ComponentProps<typeof ThemedSlider>[\"onChange\"]> =\n useCallback(\n (values) => {\n const [value = 0] = Array.isArray(values) ? values : [values]\n\n valueSignal.update(value)\n\n const pageIndex = isUsingSpread\n ? Math.floor(value) * 2\n : Math.floor(value)\n\n if (!isScrubberWithinChapter) {\n reader?.navigation.goToAbsolutePageIndex({\n absolutePageIndex: pageIndex,\n animation: false,\n })\n } else {\n reader?.navigation.goToPageOfSpineItem({\n pageIndex,\n spineItemId: reader.pagination.state.beginSpineItemIndex ?? 0,\n animation: false,\n })\n }\n },\n [reader, isUsingSpread, valueSignal, isScrubberWithinChapter],\n )\n\n /**\n * @note\n * Scrubber can navigate fast and without lock we may end up with\n * slowness due to the reader\n * paginating and loading items in between.\n * This is good practice (but not required) to throttle it.\n */\n const throttleLock = useCallback(() => {\n return reader?.navigation.throttleLock({\n duration: 100,\n trigger: valueSignal.subject,\n })\n }, [reader, valueSignal])\n\n useSubscribe(throttleLock)\n\n // const marks =\n // max > 1\n // ? Array.from({ length: max + 1 }, (_, i) => i).reduce(\n // (acc: number[], val) => [...acc, val],\n // [],\n // )\n // : []\n\n const disabled =\n totalApproximatePages === 1 ||\n (isUsingSpread && totalApproximatePages === 2)\n\n // @tmp not available yet in chakra\n // if (reverse) return null\n\n if (disabled) return <Box style={props.style} />\n\n return (\n <ThemedSlider\n value={[value]}\n max={max}\n min={min}\n reverse={reverse}\n step={step}\n onChange={onChange}\n {...props}\n />\n )\n // return (\n // <Slider\n // value={[value]}\n // max={max}\n // min={min}\n // marks={marks}\n // onChange={e => {\n // debugger\n // }}\n // onValueChange={onChange}\n // // reverse={reverse}\n // orientation=\"horizontal\"\n // step={step}\n // />\n // )\n}\n","import { Box, Collapsible, HStack, IconButton, Stack } from \"@chakra-ui/react\"\nimport { memo, useEffect, useRef, useState } from \"react\"\nimport { BiFontSize } from \"react-icons/bi\"\nimport { BsBookmarks } from \"react-icons/bs\"\nimport {\n LuChevronDown,\n LuCircleHelp,\n LuGalleryHorizontal,\n LuNotebookPen,\n LuSearch,\n LuTableOfContents,\n LuZoomIn,\n LuZoomOut,\n} from \"react-icons/lu\"\nimport { MdOutlineFitScreen } from \"react-icons/md\"\nimport { RiGalleryView2 } from \"react-icons/ri\"\nimport {\n RxDoubleArrowDown,\n RxDoubleArrowLeft,\n RxDoubleArrowRight,\n RxDoubleArrowUp,\n} from \"react-icons/rx\"\nimport { useObserve } from \"reactjrx\"\nimport { map } from \"rxjs\"\nimport {\n hasAnnotationsEnhancer,\n hasGalleryEnhancer,\n hasRefitEnhancer,\n hasSearchEnhancer,\n useReader,\n} from \"../context/useReader\"\nimport { useReaderContextValue } from \"../context/useReaderContext\"\nimport { PaginationInfoSection } from \"./PaginationInfoSection\"\nimport { QuickBar } from \"./QuickBar\"\nimport { Scrubber } from \"./Scrubber\"\n\nexport const BottomBar = memo(\n ({\n open,\n onItemClick,\n }: {\n open: boolean\n onItemClick: (\n item: \"annotations\" | \"search\" | \"help\" | \"toc\" | \"bookmarks\" | \"gallery\",\n ) => void\n }) => {\n const boxRef = useRef<HTMLDivElement>(null)\n const reader = useReader()\n const {\n quickMenuBottomBarBoundingBoxSignal,\n onFontSizeMenuOpenChange,\n onRefitMenuOpenChange,\n } = useReaderContextValue([\n \"quickMenuBottomBarBoundingBoxSignal\",\n \"onFontSizeMenuOpenChange\",\n \"onRefitMenuOpenChange\",\n ])\n const { data: navigation } = useObserve(\n () => reader?.navigation.state$,\n [reader],\n )\n const { data: settings } = useObserve(\n () => reader?.settings.values$,\n [reader],\n )\n const { data: zoomState } = useObserve(\n () =>\n reader?.zoom.state$.pipe(\n map((state) =>\n state.currentScale > 1\n ? \"in\"\n : state.currentScale < 1\n ? \"out\"\n : undefined,\n ),\n ),\n [reader],\n )\n const isZoomingIn = zoomState === \"in\"\n const isZoomingOut = zoomState === \"out\"\n const isScrollingMode = settings?.computedPageTurnMode === \"scrollable\"\n const isVerticalDirection =\n settings?.computedPageTurnDirection === \"vertical\"\n const [isExtraOpen, setIsExtraOpen] = useState(true)\n\n useEffect(() => {\n if (!boxRef.current) return\n\n const resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n quickMenuBottomBarBoundingBoxSignal.update(entry)\n }\n })\n\n resizeObserver.observe(boxRef.current)\n\n return () => {\n resizeObserver.disconnect()\n }\n }, [quickMenuBottomBarBoundingBoxSignal])\n\n return (\n <QuickBar\n present={open}\n position=\"bottom\"\n display=\"flex\"\n flexDirection=\"column\"\n overflow=\"auto\"\n pb={8}\n px={0}\n ref={boxRef}\n >\n <HStack\n flex={1}\n alignItems=\"center\"\n justifyContent=\"center\"\n maxWidth=\"100%\"\n px={4}\n >\n <IconButton\n aria-label=\"left\"\n size=\"lg\"\n variant=\"ghost\"\n flexShrink={0}\n onClick={() => reader?.navigation.goToLeftOrTopSpineItem()}\n disabled={\n !navigation?.canGoLeftSpineItem && !navigation?.canGoTopSpineItem\n }\n >\n {isVerticalDirection ? <RxDoubleArrowUp /> : <RxDoubleArrowLeft />}\n </IconButton>\n <Stack\n flex={1}\n maxW={400}\n gap={2}\n alignItems=\"center\"\n overflow=\"auto\"\n px={4}\n >\n <PaginationInfoSection />\n <Scrubber\n style={{\n width: \"100%\",\n maxWidth: \"300px\",\n height: \"35px\",\n }}\n />\n </Stack>\n <IconButton\n aria-label=\"right\"\n size=\"lg\"\n flexShrink={0}\n variant=\"ghost\"\n disabled={\n !navigation?.canGoRightSpineItem &&\n !navigation?.canGoBottomSpineItem\n }\n onClick={() => {\n reader?.navigation.goToRightOrBottomSpineItem()\n }}\n >\n {isVerticalDirection ? (\n <RxDoubleArrowDown />\n ) : (\n <RxDoubleArrowRight />\n )}\n </IconButton>\n </HStack>\n <HStack alignSelf=\"stretch\" alignItems=\"center\" justifyContent=\"center\">\n <Collapsible.Root\n open={isExtraOpen}\n flex={1}\n onOpenChange={({ open }) => {\n setIsExtraOpen(open)\n }}\n width=\"100%\"\n >\n <Collapsible.Trigger\n paddingY=\"3\"\n width=\"100%\"\n display=\"flex\"\n justifyContent=\"center\"\n >\n <LuChevronDown\n style={{\n transform: isExtraOpen ? \"rotate(0deg)\" : \"rotate(180deg)\",\n }}\n />\n </Collapsible.Trigger>\n <Collapsible.Content display=\"flex\" justifyContent=\"center\">\n <Box display=\"flex\" overflowX=\"auto\" px={4} pb={1}>\n <IconButton\n aria-label=\"Help\"\n size=\"lg\"\n variant=\"ghost\"\n onClick={() => onItemClick(\"help\")}\n >\n <LuCircleHelp />\n </IconButton>\n <IconButton\n aria-label=\"Table of contents\"\n size=\"lg\"\n variant=\"ghost\"\n onClick={() => onItemClick(\"toc\")}\n >\n <LuTableOfContents />\n </IconButton>\n {hasSearchEnhancer(reader) && (\n <IconButton\n aria-label=\"Search\"\n size=\"lg\"\n variant=\"ghost\"\n onClick={() => onItemClick(\"search\")}\n >\n <LuSearch />\n </IconButton>\n )}\n <IconButton\n aria-label=\"Zoom\"\n size=\"lg\"\n variant={isZoomingIn ? \"solid\" : \"ghost\"}\n onClick={() => {\n if (isZoomingIn) {\n reader?.zoom.exit({ animate: true })\n } else {\n reader?.zoom.enter({\n animate: true,\n scale: 2,\n })\n }\n }}\n >\n {isZoomingIn ? <LuZoomOut /> : <LuZoomIn />}\n </IconButton>\n <IconButton\n aria-label=\"font size\"\n size=\"lg\"\n onClick={() => {\n onFontSizeMenuOpenChange(true)\n }}\n variant=\"ghost\"\n >\n <BiFontSize />\n </IconButton>\n {hasAnnotationsEnhancer(reader) && (\n <IconButton\n aria-label=\"Bookmarks\"\n size=\"lg\"\n variant=\"ghost\"\n onClick={() => onItemClick(\"bookmarks\")}\n >\n <BsBookmarks />\n </IconButton>\n )}\n {hasAnnotationsEnhancer(reader) && (\n <IconButton\n aria-label=\"Annotations\"\n size=\"lg\"\n variant=\"ghost\"\n onClick={() => onItemClick(\"annotations\")}\n >\n <LuNotebookPen />\n </IconButton>\n )}\n {hasRefitEnhancer(reader) && (\n <IconButton\n aria-label=\"Refit\"\n size=\"lg\"\n variant=\"ghost\"\n onClick={() => {\n onRefitMenuOpenChange(true)\n }}\n disabled={!isScrollingMode}\n >\n <MdOutlineFitScreen />\n </IconButton>\n )}\n <IconButton\n aria-label=\"Thumbnails\"\n size=\"lg\"\n variant={isZoomingOut ? \"solid\" : \"ghost\"}\n onClick={() => {\n if (isZoomingOut) {\n reader?.zoom.exit({ animate: true })\n } else {\n reader?.zoom.enter({\n animate: true,\n scale: 0.5,\n })\n }\n }}\n >\n <LuGalleryHorizontal />\n </IconButton>\n {hasGalleryEnhancer(reader) && (\n <IconButton\n aria-label=\"Gallery\"\n size=\"lg\"\n variant=\"ghost\"\n onClick={() => onItemClick(\"gallery\")}\n >\n <RiGalleryView2 />\n </IconButton>\n )}\n </Box>\n </Collapsible.Content>\n </Collapsible.Root>\n </HStack>\n </QuickBar>\n )\n },\n)\n","import { useEffect } from \"react\"\n\nimport { useCallback } from \"react\"\n\nimport { useState } from \"react\"\n\nexport const useFullscreen = () => {\n const [isFullscreen, setIsFullscreen] = useState(false)\n\n const onToggleFullscreenClick = useCallback(() => {\n if (document.fullscreenElement) {\n return document\n .exitFullscreen()\n .catch(console.error)\n .then(() => {\n setIsFullscreen(false)\n })\n }\n\n return document.documentElement\n .requestFullscreen({ navigationUI: \"hide\" })\n .catch(console.error)\n .then(() => {\n setIsFullscreen(true)\n })\n }, [])\n\n useEffect(() => {\n function fullscreenchangeHandler() {\n setIsFullscreen(!!document.fullscreenElement)\n }\n\n document.addEventListener(\"fullscreenchange\", fullscreenchangeHandler)\n\n return () => {\n document.removeEventListener(\"fullscreenchange\", fullscreenchangeHandler)\n }\n }, [])\n\n return {\n isFullscreen,\n onToggleFullscreenClick,\n }\n}\n","import { HStack, IconButton, Stack, Text } from \"@chakra-ui/react\"\nimport { memo } from \"react\"\nimport { IoIosArrowBack, IoMdMore } from \"react-icons/io\"\nimport { MdFullscreen, MdFullscreenExit } from \"react-icons/md\"\nimport { useObserve } from \"reactjrx\"\nimport { useFullscreen } from \"../common/useFullscreen\"\nimport { useReader } from \"../context/useReader\"\nimport { QuickBar } from \"./QuickBar\"\n\nexport const TopBar = memo(\n ({\n open,\n onItemClick,\n }: {\n open: boolean\n onItemClick: (item: \"more\" | \"back\") => void\n }) => {\n const reader = useReader()\n const { data: manifest } = useObserve(\n () => reader?.context.manifest$,\n [reader],\n )\n const { isFullscreen, onToggleFullscreenClick } = useFullscreen()\n\n return (\n <QuickBar\n present={open}\n position=\"top\"\n height=\"80px\"\n justifyContent=\"space-between\"\n >\n <IconButton\n aria-label=\"left\"\n size=\"lg\"\n variant=\"ghost\"\n flexShrink={0}\n onClick={() => onItemClick(\"back\")}\n >\n <IoIosArrowBack />\n </IconButton>\n <Stack\n flex={1}\n maxW={600}\n gap={1}\n alignItems=\"center\"\n overflow=\"auto\"\n px={4}\n >\n <Text truncate maxWidth=\"100%\">\n {manifest?.title}\n </Text>\n </Stack>\n <HStack>\n <IconButton\n aria-label=\"right\"\n size=\"lg\"\n flexShrink={0}\n variant=\"ghost\"\n onClick={() => onItemClick(\"more\")}\n >\n <IoMdMore />\n </IconButton>\n <IconButton\n aria-label=\"right\"\n size=\"lg\"\n flexShrink={0}\n variant=\"ghost\"\n onClick={onToggleFullscreenClick}\n >\n {isFullscreen ? <MdFullscreenExit /> : <MdFullscreen />}\n </IconButton>\n </HStack>\n </QuickBar>\n )\n },\n)\n","import { useReaderContextValue } from \"../context/useReaderContext\"\n\nexport const useQuickMenu = () => {\n const {\n quickMenuOpen,\n onQuickMenuOpenChange,\n _quickMenuOpen,\n _onQuickMenuOpenChange,\n } = useReaderContextValue([\n \"quickMenuOpen\",\n \"onQuickMenuOpenChange\",\n \"_quickMenuOpen\",\n \"_onQuickMenuOpenChange\",\n ])\n\n return [\n quickMenuOpen ?? _quickMenuOpen,\n onQuickMenuOpenChange ?? _onQuickMenuOpenChange,\n ] as const\n}\n","import { memo } from \"react\"\nimport { useReaderContextValue } from \"../context/useReaderContext\"\nimport { BottomBar } from \"./BottomBar\"\nimport { TopBar } from \"./TopBar\"\nimport { useQuickMenu } from \"./useQuickMenu\"\n\nexport const QuickMenu = memo(\n ({\n onItemClick,\n }: {\n onItemClick: (\n item:\n | \"annotations\"\n | \"search\"\n | \"help\"\n | \"toc\"\n | \"bookmarks\"\n | \"more\"\n | \"back\"\n | \"gallery\",\n ) => void\n }) => {\n const [quickMenuOpen] = useQuickMenu()\n const { refitMenuOpen, fontSizeMenuOpen, selectedHighlight } =\n useReaderContextValue([\n \"refitMenuOpen\",\n \"fontSizeMenuOpen\",\n \"selectedHighlight\",\n ])\n\n return (\n <>\n <TopBar\n open={\n quickMenuOpen &&\n !refitMenuOpen &&\n !fontSizeMenuOpen &&\n !selectedHighlight\n }\n onItemClick={onItemClick}\n />\n <BottomBar\n open={quickMenuOpen && !refitMenuOpen && !fontSizeMenuOpen}\n onItemClick={onItemClick}\n />\n </>\n )\n },\n)\n","import { useCallback } from \"react\"\nimport { useSubscribe } from \"reactjrx\"\nimport { filter, tap, withLatestFrom } from \"rxjs\"\nimport { useReader } from \"../context/useReader\"\nimport { useQuickMenu } from \"./useQuickMenu\"\n\nexport const useQuickMenuToggleGesture = () => {\n const [_quickMenuOpen, onQuickMenuOpenChange] = useQuickMenu()\n const reader = useReader()\n\n /**\n * Subscribe to all unhandled events from gesture manager.\n *\n * These are \"app\" specific behavior that the enhancer would usually not\n * know about such as triggering the quick menu.\n */\n const quickMenuToggleGesture = useCallback(() => {\n return reader?.gestures.gestures$.pipe(\n filter((event) => event.type === \"tap\" && !event.handled),\n withLatestFrom(\n reader.selection.selection$,\n reader.selection.lastSelectionOnPointerdown$,\n ),\n tap(([, selection, selectionOnPointerdown]) => {\n /**\n * Where there is or was a selection before or during the tap, we want to avoid\n * showing the quick menu.\n */\n if (selection || selectionOnPointerdown) {\n onQuickMenuOpenChange(false)\n } else {\n onQuickMenuOpenChange((val) => !val)\n }\n }),\n )\n }, [reader, onQuickMenuOpenChange])\n\n useSubscribe(quickMenuToggleGesture)\n}\n","import { Field as ChakraField } from \"@chakra-ui/react\"\nimport * as React from \"react\"\n\nexport interface FieldProps extends Omit<ChakraField.RootProps, \"label\"> {\n label?: React.ReactNode\n helperText?: React.ReactNode\n errorText?: React.ReactNode\n optionalText?: React.ReactNode\n}\n\nexport const Field = React.forwardRef<HTMLDivElement, FieldProps>(\n function Field(props, ref) {\n const { label, children, helperText, errorText, optionalText, ...rest } =\n props\n return (\n <ChakraField.Root ref={ref} {...rest}>\n {label && (\n <ChakraField.Label>\n {label}\n <ChakraField.RequiredIndicator fallback={optionalText} />\n </ChakraField.Label>\n )}\n {children}\n {helperText && (\n <ChakraField.HelperText>{helperText}</ChakraField.HelperText>\n )}\n {errorText && (\n <ChakraField.ErrorText>{errorText}</ChakraField.ErrorText>\n )}\n </ChakraField.Root>\n )\n },\n)\n","import { Button, Fieldset, Stack } from \"@chakra-ui/react\"\nimport type { RefitEnhancerOptions } from \"@prose-reader/enhancer-refit\"\nimport { memo } from \"react\"\nimport { useObserve } from \"reactjrx\"\nimport {\n DialogActionTrigger,\n DialogBody,\n DialogCloseTrigger,\n DialogContent,\n DialogFooter,\n DialogHeader,\n DialogRoot,\n DialogTitle,\n} from \"../components/ui/dialog\"\nimport { Field } from \"../components/ui/field\"\nimport { Radio, RadioGroup } from \"../components/ui/radio\"\nimport { Slider } from \"../components/ui/slider\"\nimport { hasRefitEnhancer, useReader } from \"../context/useReader\"\nimport { useReaderContextValue } from \"../context/useReaderContext\"\n\ntype OptionValue = RefitEnhancerOptions[\"viewportFit\"]\n\nexport const RefitDialog = memo(() => {\n const defaultCustomWidth = 60\n const { refitMenuOpen, onRefitMenuOpenChange } = useReaderContextValue([\n \"refitMenuOpen\",\n \"onRefitMenuOpenChange\",\n ])\n const reader = useReader()\n const readerWithRefit = hasRefitEnhancer(reader) ? reader : undefined\n const { data: refitSettings } = useObserve(\n () => readerWithRefit?.refit.settings$,\n [readerWithRefit],\n )\n\n return (\n <DialogRoot\n lazyMount\n open={refitMenuOpen}\n onOpenChange={(e) => onRefitMenuOpenChange(e.open)}\n placement=\"center\"\n >\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Viewport fit</DialogTitle>\n </DialogHeader>\n <DialogBody>\n <Fieldset.Root>\n <Fieldset.HelperText>\n Adjust the viewport for a more comfortable reading experience.\n </Fieldset.HelperText>\n <Fieldset.Content>\n <Field label=\"Profile\">\n <RadioGroup\n defaultValue={`fit` satisfies OptionValue}\n onValueChange={(e) => {\n const value = e.value as OptionValue\n readerWithRefit?.refit.update({\n viewportFit: value,\n customWidth: defaultCustomWidth,\n })\n }}\n value={refitSettings?.viewportFit ?? `fit`}\n >\n <Stack gap={2}>\n <Radio value={`desktop` satisfies OptionValue}>\n Desktop\n </Radio>\n <Radio value={`tablet` satisfies OptionValue}>Tablet</Radio>\n <Radio value={`fit` satisfies OptionValue}>\n Full width (default)\n </Radio>\n <Radio value={`custom` satisfies OptionValue}>Custom</Radio>\n </Stack>\n </RadioGroup>\n </Field>\n <Slider\n label=\"Maximum width (%)\"\n showValue\n max={100}\n min={10}\n step={1}\n disabled={refitSettings?.viewportFit !== `custom`}\n value={[refitSettings?.customWidth ?? defaultCustomWidth]}\n onValueChange={(e) => {\n const value = e.value[0] ?? 0\n\n readerWithRefit?.refit.update({\n customWidth: value,\n })\n }}\n />\n </Fieldset.Content>\n </Fieldset.Root>\n </DialogBody>\n <DialogFooter>\n <DialogActionTrigger asChild>\n <Button variant=\"outline\">Close</Button>\n </DialogActionTrigger>\n </DialogFooter>\n <DialogCloseTrigger />\n </DialogContent>\n </DialogRoot>\n )\n})\n","import { Link, Text } from \"@chakra-ui/react\"\nimport { memo } from \"react\"\n\nexport const SearchListItem = memo(\n ({\n contextText = \"\",\n startOffset = 0,\n text,\n cfi = \"#\",\n onClick,\n absolutePageIndex,\n }: {\n pageIndex: number | undefined\n absolutePageIndex?: number\n contextText?: string\n startOffset?: number\n text: string\n cfi?: string\n onClick: (cfi: string) => void\n }) => {\n const charsAroundText = 15\n const before = contextText.substring(\n Math.max(startOffset - charsAroundText, 0),\n Math.max(startOffset, 0),\n )\n const after = contextText.substring(\n Math.min(startOffset + text.length, contextText.length - 1),\n Math.min(\n startOffset + text.length + charsAroundText,\n contextText.length - 1,\n ),\n )\n\n return (\n <Link\n href={cfi}\n style={{ margin: 5, overflow: \"hidden\" }}\n onClick={(e) => {\n e.preventDefault()\n\n onClick(cfi)\n }}\n display=\"flex\"\n flexDirection=\"column\"\n alignItems=\"flex-start\"\n gap={0}\n >\n <Text lineClamp={1} as=\"cite\" style={{ display: \"block\" }}>\n \"{before}\n <b>{text}</b>\n {after}\"\n </Text>\n <Text fontSize=\"sm\" color=\"gray.500\" style={{ textDecoration: \"none\" }}>\n {`Book page: ${absolutePageIndex !== undefined ? absolutePageIndex + 1 : \"unknown (not loaded)\"}`}\n </Text>\n </Link>\n )\n },\n)\n","import { useConstant, useObserve } from \"reactjrx\"\nimport {\n BehaviorSubject,\n distinctUntilChanged,\n map,\n merge,\n of,\n switchMap,\n timer,\n} from \"rxjs\"\nimport { hasSearchEnhancer, useReader } from \"../context/useReader\"\n\nconst DEBOUNCE_TIME = 500\n\nexport const useSearch = () => {\n const searchSubject = useConstant(() => new BehaviorSubject(\"\"))\n const { data: searchValue } = useObserve(searchSubject)\n const reader = useReader()\n const readerWithSearch = hasSearchEnhancer(reader) ? reader : undefined\n\n const { data: search } = useObserve(() => {\n return searchSubject.pipe(\n distinctUntilChanged(),\n switchMap((value) =>\n value === \"\" || !readerWithSearch\n ? of(undefined)\n : merge(\n of({\n type: `start` as const,\n data: undefined,\n }),\n timer(DEBOUNCE_TIME).pipe(\n switchMap(() => readerWithSearch.search.search(value)),\n map((data) => ({ type: `end` as const, data })),\n ),\n ),\n ),\n )\n }, [readerWithSearch, searchSubject])\n\n return {\n value: searchValue,\n setValue: searchSubject.next.bind(searchSubject),\n status: search?.type ?? \"idle\",\n data: search?.data,\n }\n}\n","import { Input, Stack, Text } from \"@chakra-ui/react\"\nimport type React from \"react\"\nimport { memo, useCallback } from \"react\"\nimport { useObserve } from \"reactjrx\"\nimport { useReader } from \"../context/useReader\"\nimport { SearchListItem } from \"./SearchListItem\"\nimport { useSearch } from \"./useSearch\"\n\nexport const SearchDialogContent = memo(\n ({ onNavigate }: { onNavigate: () => void }) => {\n const reader = useReader()\n const { value: searchValue, setValue, status, data } = useSearch()\n\n const onValueChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setValue(e.target.value)\n }\n\n const onClick = useCallback(\n (cfi: string) => {\n onNavigate()\n reader?.navigation.goToCfi(cfi)\n },\n [reader, onNavigate],\n )\n\n const { data: consolidatedResults } = useObserve(\n () => reader?.locateResource(data?.slice(0, 100) ?? []),\n [data],\n )\n\n return (\n <Stack flex={1} height=\"100%\" gap={2}>\n <Input\n placeholder=\"Type something...\"\n value={searchValue}\n onChange={onValueChange}\n flexShrink={0}\n variant=\"subtle\"\n name=\"search\"\n focusRing=\"none\"\n focusVisibleRing=\"none\"\n outline=\"none\"\n focusRingColor=\"transparent\"\n />\n <Stack\n style={{ overflow: \"hidden\", overflowY: \"auto\" }}\n overflow=\"auto\"\n px={4}\n flex={1}\n >\n {status === \"start\" && <Text>Searching ...</Text>}\n {data?.length === 0 && <Text>No results</Text>}\n {status === \"end\" && (data?.length ?? 0) > 0 && (\n <Stack>\n <Text fontSize=\"md\">{data?.length} result(s)</Text>\n <Stack gap={0}>\n {consolidatedResults?.map((result, j) => {\n return (\n <SearchListItem\n key={j}\n contextText={\n result.meta?.range?.startContainer.parentElement\n ?.textContent ?? \"\"\n }\n pageIndex={result.meta?.itemPageIndex}\n startOffset={result.meta?.range?.startOffset ?? 0}\n text={searchValue}\n cfi={result.meta.cfi}\n onClick={onClick}\n absolutePageIndex={result.meta?.absolutePageIndex}\n />\n )\n })}\n </Stack>\n </Stack>\n )}\n </Stack>\n </Stack>\n )\n },\n)\n","import { Button } from \"@chakra-ui/react\"\nimport { memo } from \"react\"\nimport {\n DialogActionTrigger,\n DialogBody,\n DialogCloseTrigger,\n DialogContent,\n DialogFooter,\n DialogHeader,\n DialogRoot,\n DialogTitle,\n} from \"../components/ui/dialog\"\nimport { SearchDialogContent } from \"./SearchDialogContent\"\n\nexport const SearchDialog = memo(\n ({\n open,\n setOpen,\n onNavigate,\n }: {\n open: boolean\n setOpen: (open: boolean) => void\n onNavigate: () => void\n }) => {\n return (\n <DialogRoot\n lazyMount\n placement=\"center\"\n open={open}\n onOpenChange={(e) => setOpen(e.open)}\n size={{ mdDown: \"full\", md: \"lg\" }}\n scrollBehavior=\"inside\"\n >\n <DialogContent height=\"100%\">\n <DialogHeader>\n <DialogTitle>Search</DialogTitle>\n </DialogHeader>\n <DialogBody flex={1} p={0}>\n <SearchDialogContent onNavigate={onNavigate} />\n </DialogBody>\n <DialogFooter>\n <DialogActionTrigger asChild>\n <Button variant=\"outline\">Cancel</Button>\n </DialogActionTrigger>\n </DialogFooter>\n <DialogCloseTrigger />\n </DialogContent>\n </DialogRoot>\n )\n },\n)\n","import { Link, List, Stack, Text } from \"@chakra-ui/react\"\nimport React, { memo } from \"react\"\nimport { LuCircleCheck } from \"react-icons/lu\"\nimport { useObserve } from \"reactjrx\"\nimport { useReader } from \"../context/useReader\"\nimport { usePagination } from \"../pagination/usePagination\"\n\nexport const TableOfContentsDialogContent = memo(\n ({ onNavigate }: { onNavigate: () => void }) => {\n const reader = useReader()\n const { data: { manifest } = {} } =\n useObserve(() => reader?.context, [reader]) ?? {}\n const { nav } = manifest ?? {}\n const pagination = usePagination()\n const toc = nav?.toc || []\n const absolutePageIndex = pagination?.beginAbsolutePageIndex\n\n let currentSubChapter = pagination?.beginChapterInfo\n\n while (currentSubChapter?.subChapter) {\n currentSubChapter = currentSubChapter?.subChapter\n }\n\n const buildTocForItem = (\n tocItem: (typeof toc)[number],\n index: number,\n lvl: number,\n ) => (\n <React.Fragment key={index}>\n <List.Item\n pl={4 * (lvl + 1)}\n style={{\n display: \"flex\",\n alignItems: \"center\",\n }}\n >\n <Link\n onClick={() => {\n onNavigate()\n\n reader?.navigation.goToUrl(tocItem.href)\n }}\n href=\"#\"\n >\n {currentSubChapter?.path === tocItem.path && (\n <List.Indicator asChild>\n <LuCircleCheck />\n </List.Indicator>\n )}\n {currentSubChapter?.path !== tocItem.path && (\n <List.Indicator asChild visibility=\"hidden\">\n <LuCircleCheck />\n </List.Indicator>\n )}\n <Stack gap={0}>\n <Text fontSize=\"md\">{tocItem.title || tocItem.path}</Text>\n {currentSubChapter?.path === tocItem.path &&\n absolutePageIndex !== undefined && (\n <Text\n fontStyle=\"italic\"\n fontWeight=\"bold\"\n fontSize=\"sm\"\n >{`Currently on page ${absolutePageIndex + 1}`}</Text>\n )}\n </Stack>\n </Link>\n </List.Item>\n {tocItem.contents.length > 0 && (\n <List.Root as=\"div\" gap={2}>\n {tocItem.contents.map((tocItem, index) =>\n buildTocForItem(tocItem, index, lvl + 1),\n )}\n </List.Root>\n )}\n </React.Fragment>\n )\n\n return (\n <List.Root gap={3} overflowY=\"auto\" py={4} flex={1}>\n {nav?.toc.map((tocItem, index) => buildTocForItem(tocItem, index, 0))}\n </List.Root>\n )\n },\n)\n","import { Button } from \"@chakra-ui/react\"\nimport { memo } from \"react\"\nimport {\n DialogActionTrigger,\n DialogBody,\n DialogCloseTrigger,\n DialogContent,\n DialogFooter,\n DialogHeader,\n DialogRoot,\n DialogTitle,\n} from \"../components/ui/dialog\"\nimport { TableOfContentsDialogContent } from \"./TableOfContentsDialogContent\"\n\nexport const TableOfContentsDialog = memo(\n ({\n open,\n setOpen,\n onNavigate,\n }: {\n open: boolean\n setOpen: (open: boolean) => void\n onNavigate: () => void\n }) => {\n return (\n <DialogRoot\n lazyMount\n placement=\"center\"\n open={open}\n onOpenChange={(e) => setOpen(e.open)}\n size={{ mdDown: \"full\", md: \"lg\" }}\n scrollBehavior=\"inside\"\n >\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Table of Contents</DialogTitle>\n </DialogHeader>\n <DialogBody overflowY=\"auto\" flex={1}>\n <TableOfContentsDialogContent onNavigate={onNavigate} />\n </DialogBody>\n <DialogFooter>\n <DialogActionTrigger asChild>\n <Button variant=\"outline\">Cancel</Button>\n </DialogActionTrigger>\n </DialogFooter>\n <DialogCloseTrigger />\n </DialogContent>\n </DialogRoot>\n )\n },\n)\n","import { useEffect } from \"react\"\nimport { MAX_ZOOM_SCALE } from \"../constants\"\nimport { useReader } from \"../context/useReader\"\nimport { useReaderContextValue } from \"../context/useReaderContext\"\n\nexport const useZoomSettings = () => {\n const reader = useReader()\n const { zoomMaxScale } = useReaderContextValue([\"zoomMaxScale\"])\n\n useEffect(\n function syncSettingsWithGesturesEnhancer() {\n reader?.gestures.settings.update({\n zoomMaxScale: zoomMaxScale ?? MAX_ZOOM_SCALE,\n })\n },\n [reader, zoomMaxScale],\n )\n}\n","import { memo } from \"react\"\nimport { useObserve } from \"reactjrx\"\nimport { animationFrameScheduler, map, throttleTime } from \"rxjs\"\nimport { FloatingMenu } from \"../common/FloatingMenu\"\nimport { Slider } from \"../components/ui/slider\"\nimport { MAX_ZOOM_SCALE } from \"../constants\"\nimport { useReader } from \"../context/useReader\"\nimport { useReaderContextValue } from \"../context/useReaderContext\"\n\nconst STEP = 0.5\nconst MIN = 1\n// const MAX = MAX_ZOOM_SCALE\n\nconst normalizeZoomValue = (\n value: number,\n min: number,\n max: number,\n step: number,\n): number => {\n if (value > min && value < min + step) {\n return min + step\n }\n\n // Clamp to min/max bounds\n const clamped = Math.min(Math.max(value, min), max)\n // Round to nearest step\n const stepped = Math.round((clamped - min) / step) * step + min\n // Round to avoid floating point precision issues\n return Math.round(stepped * 100) / 100\n}\n\nexport const ZoomControls = memo(() => {\n const { zoomMaxScale = MAX_ZOOM_SCALE } = useReaderContextValue([\n \"zoomMaxScale\",\n ])\n const reader = useReader()\n const { data: zoomScaleValue = 1 } = useObserve(\n () =>\n reader?.zoom.state$.pipe(\n map((state) => state.currentScale),\n throttleTime(100, animationFrameScheduler, {\n leading: true,\n trailing: true,\n }),\n ),\n [reader],\n )\n const { data: isZooming = false } = useObserve(\n () => reader?.zoom.state$.pipe(map((state) => state.isZooming)),\n [reader],\n )\n const normalizedZoomScaleValue = normalizeZoomValue(\n zoomScaleValue,\n MIN,\n zoomMaxScale,\n STEP,\n )\n\n return (\n <FloatingMenu present={isZooming && zoomScaleValue > 1}>\n <Slider\n value={[normalizedZoomScaleValue]}\n min={MIN}\n max={zoomMaxScale}\n step={STEP}\n minWidth={200}\n onValueChange={(e) => {\n const value = e.value?.[0] ?? 1\n\n if (value === 1) {\n reader?.zoom.exit()\n } else {\n reader?.zoom.scaleAt(value, {\n constrain: \"within-viewport\",\n })\n }\n }}\n />\n </FloatingMenu>\n )\n})\n","import { Box, type BoxProps, Presence } from \"@chakra-ui/react\"\nimport { type ComponentProps, memo, useCallback, useState } from \"react\"\nimport { AnnotateControls } from \"./annotations/AnnotateControls\"\nimport { AnnotationDrawer } from \"./annotations/AnnotationDrawer\"\nimport { AnnotationsDialog } from \"./annotations/AnnotationsDialog\"\nimport { BookmarkPageMarkers } from \"./annotations/bookmarks/BookmarkPageMarkers\"\nimport { useBookmarkOnCornerTap } from \"./annotations/bookmarks/useBookmarkOnCornerTap\"\nimport { usePreventInteractionOnSelection } from \"./annotations/usePreventInteractionOnSelection\"\nimport { useSyncAnnotationsWithReader } from \"./annotations/useSyncAnnotationsWithReader\"\nimport { Toaster } from \"./components/ui/toaster\"\nimport { ReactReaderProvider } from \"./context/ReactReaderProvider\"\nimport { useReaderContextValue } from \"./context/useReaderContext\"\nimport { FontSizeControlsDialog } from \"./fonts/FontSizeControlsDialog\"\nimport { SyncFontSettings } from \"./fonts/SyncFontSettings\"\nimport { GalleryDialog } from \"./gallery/GalleryDialog\"\nimport { HelpDialog } from \"./help/HelpDialog\"\nimport { FloatingProgress } from \"./navigation/FloatingProgress\"\nimport { FloatingTime } from \"./navigation/FloatingTime\"\nimport { useInterceptExternalLinks } from \"./navigation/useInterceptExternalLinks\"\nimport { useNotifications } from \"./notifications/useNotifications\"\nimport { QuickMenu } from \"./quickmenu/QuickMenu\"\nimport { useQuickMenu } from \"./quickmenu/useQuickMenu\"\nimport { useQuickMenuToggleGesture } from \"./quickmenu/useQuickMenuToggleGesture\"\nimport { RefitDialog } from \"./refit/RefitDialog\"\nimport { SearchDialog } from \"./search/SearchDialog\"\nimport { TableOfContentsDialog } from \"./toc/TableOfContentsDialog\"\nimport { useZoomSettings } from \"./zoom/useZoomSettings\"\nimport { ZoomControls } from \"./zoom/ZoomControls\"\n\nconst ANIMATION_NAME_IN_OUT = { _open: \"fade-in\", _closed: \"fade-out\" }\n\nconst BookmarksEffects = memo(() => {\n // Intensive\n useBookmarkOnCornerTap()\n\n return null\n})\n\nconst Effects = memo(() => {\n useZoomSettings()\n useInterceptExternalLinks()\n useNotifications()\n useQuickMenuToggleGesture()\n usePreventInteractionOnSelection()\n useSyncAnnotationsWithReader()\n\n return (\n <>\n <SyncFontSettings />\n <BookmarksEffects />\n </>\n )\n})\n\nconst InnerReactReader = memo(\n ({\n children,\n ...rest\n }: {\n children: React.ReactNode\n } & BoxProps) => {\n const { enableFloatingTime, onItemClick } = useReaderContextValue([\n \"enableFloatingTime\",\n \"onItemClick\",\n ])\n const [isTableOfContentsOpen, setIsTableOfContentsOpen] = useState(false)\n const [isHelpOpen, setIsHelpOpen] = useState(false)\n const [isSearchOpen, setIsSearchOpen] = useState(false)\n const [isAnnotationsOpenWith, setIsAnnotationsOpenWith] = useState<\n \"bookmarks\" | \"annotations\" | undefined\n >(undefined)\n const [isGalleryOpen, setIsGalleryOpen] = useState(false)\n const [quickMenuOpen, setQuickMenuOpen] = useQuickMenu()\n\n const onNavigate = useCallback(() => {\n setIsTableOfContentsOpen(false)\n setIsHelpOpen(false)\n setIsSearchOpen(false)\n setIsAnnotationsOpenWith(undefined)\n setQuickMenuOpen(false)\n setIsGalleryOpen(false)\n }, [setQuickMenuOpen])\n\n const _onItemClick: NonNullable<typeof onItemClick> = useCallback(\n (item) => {\n if (item === \"annotations\") {\n setIsAnnotationsOpenWith(\"annotations\")\n } else if (item === \"search\") {\n setIsSearchOpen(true)\n } else if (item === \"help\") {\n setIsHelpOpen(true)\n } else if (item === \"toc\") {\n setIsTableOfContentsOpen(true)\n } else if (item === \"bookmarks\") {\n setIsAnnotationsOpenWith(\"bookmarks\")\n } else if (item === \"gallery\") {\n setIsGalleryOpen(true)\n }\n onItemClick?.(item)\n },\n [onItemClick],\n )\n\n return (\n <>\n <Effects />\n <Box\n position=\"absolute\"\n top={0}\n left={0}\n height=\"100%\"\n width=\"100%\"\n overflow=\"hidden\"\n data-prose-react-reader\n {...rest}\n >\n {children}\n <FloatingProgress />\n <GalleryDialog open={isGalleryOpen} setOpen={setIsGalleryOpen} />\n <RefitDialog />\n <QuickMenu onItemClick={_onItemClick} />\n <ZoomControls />\n <AnnotateControls />\n <AnnotationDrawer />\n <FontSizeControlsDialog />\n <BookmarkPageMarkers />\n <HelpDialog open={isHelpOpen} setOpen={setIsHelpOpen} />\n <TableOfContentsDialog\n open={isTableOfContentsOpen}\n setOpen={setIsTableOfContentsOpen}\n onNavigate={onNavigate}\n />\n <SearchDialog\n open={isSearchOpen}\n setOpen={setIsSearchOpen}\n onNavigate={onNavigate}\n />\n <AnnotationsDialog\n openWith={isAnnotationsOpenWith}\n setOpen={(open) =>\n setIsAnnotationsOpenWith(open ? \"annotations\" : undefined)\n }\n onNavigate={onNavigate}\n />\n <Presence\n present={enableFloatingTime || quickMenuOpen}\n animationName={ANIMATION_NAME_IN_OUT}\n animationDuration=\"slow\"\n overflow=\"hidden\"\n >\n <FloatingTime />\n </Presence>\n <Toaster />\n </Box>\n </>\n )\n },\n)\n\nexport const ReactReader = memo(\n ({\n children,\n slots,\n ...props\n }: ComponentProps<typeof ReactReaderProvider> & {\n slots?: {\n container?: {\n props?: Omit<ComponentProps<typeof InnerReactReader>, \"children\">\n }\n }\n }) => {\n const { container: { props: containerProps = {} } = {} } = slots ?? {}\n\n return (\n <ReactReaderProvider {...props}>\n <InnerReactReader {...containerProps}>{children}</InnerReactReader>\n </ReactReaderProvider>\n )\n },\n)\n"],"names":["BOOKMARK_AREA_DATA_ATTRIBUTE","MAX_ZOOM_SCALE","getDefaultValue","_quickMenuOpen","_onQuickMenuOpenChange","prev","reader","undefined","quickMenuBottomBarBoundingBoxSignal","signal","default","notificationsSubject","Subject","refitMenuOpen","onRefitMenuOpenChange","fontSizeMenuOpen","onFontSizeMenuOpenChange","fontSizeMin","fontSizeMax","uncontrolledFontSize","enableFloatingProgress","selectedHighlight","ReaderContext","createContext","useReaderContextValue","keys","$","_c","context","useContext","t0","pipe","watchKeys","t1","value","pick","t2","compareFn","isShallowEqual","defaultValue","t3","Symbol","for","useObserve","data","useReaderContext","SAFE_MARGIN_FLOATING_BOTTOM_ELEMENTS","FloatingMenu","memo","children","rest","bottomBarHeight","useSignalValue","borderBoxSize","blockSize","_open","_closed","t4","jsx","Presence","useReader","hasSearchEnhancer","hasAnnotationsEnhancer","hasGalleryEnhancer","hasRefitEnhancer","useReaderWithAnnotations","AnnotateControls","selection","selectionOver$","switchMap","selectionEnd$","map","_temp","startWith","EMPTY","isOpen","t5","getSelection","update","state","t6","FaEdit","t7","Button","t8","LuNotebookPen","t9","truncateText","text","maxLength","length","slice","CloseButton","React","forwardRef","props","ref","LuX","ChakraIconButton","DrawerContent","offset","portalRef","portalled","ChakraDrawer","Portal","Trigger","DrawerRoot","Root","Footer","DrawerHeader","Header","DrawerBody","Body","DrawerBackdrop","Backdrop","Description","Title","ActionTrigger","HIGHLIGHT_COLORS","AnnotationDrawer","onAnnotationCreate","onAnnotationUpdate","onAnnotationDelete","highlight","selectedColor","setSelectedColor","useState","contents","setContents","onClose","event","open","onOpenChange","highlightColor","highlightContent","notes","useEffect","annotations","highlightTap$","tap","highlight_0","state_0","onOpenDrawerOnTap","useSubscribe","T0","T1","T2","toString","t10","t11","color","Box","border","t12","Stack","t13","Text","t14","event_0","target","t15","Textarea","t16","t17","annotation","createAnnotation","t18","jsxs","id","t19","t20","t21","DialogContent","backdrop","ChakraDialog","DialogCloseTrigger","DialogRoot","DialogFooter","DialogHeader","DialogBody","DialogTitle","DialogActionTrigger","useAnnotation","readerWithAnnotations","annotations$","items","find","item","filter","isDefined","locateResource","AnnotationListItem","onNavigate","allowLeftIcon","meta","node","textContent","range","navigation","goToCfi","cfi","resource","List","absolutePageIndex","Link","useAnnotations","highlights","useHighlights","isCfiRange","AnnotationsList","useBookmarks","BookmarksList","AnnotationsDialogContent","defaultTab","tab","setTab","e","Tabs","LuBookmark","AnnotationsDialog","openWith","setOpen","mdDown","md","Spine","spine","element$","spineElement","createPortal","useSpineItem","itemIndex","of","spineItemsManager","get","pages","observeFromAbsolutePageIndex","page","useSpineItemReady","spineItem","isReady$","NEVER","isReady","BookmarkPageMarker","left","top","width","isItemReady","bookmarks","bookmark","bookmarkForPage","markerSize","content","position","height","borderTop","borderLeft","BookmarkPageMarkers","layoutInfo$","pageIndex","absoluteLayout","CONTINUE_TAP_GESTURE","useBookmarkOnCornerTap","readerContext","gestures","hooks","register","event$","withLatestFrom","candidates$","candidates","spineItemPageIndex","spineItemPagePosition","pageSize","isPositionInArea","type","corner","size","unit","pageEntry","fromSpineItemPageIndex","usePreventInteractionOnSelection","lastSelectionOnPointerdown$","lastSelectionOnPointerdown","isTargetWithinHighlight","beforeTapGesture","useSyncAnnotationsWithReader","selectedHighlight$","distinctUntilChanged","_temp2","annotationsWithSelected$","combineLatest","_temp3","syncAnnotationsWithReader","context_0","context_1","selected","toaster","createToaster","placement","pauseOnPageIdle","Toaster","ChakraToaster","toast","Toast","Spinner","title","description","action","label","closable","SignalProvider","valueSignal","useConstant","uncontrolledFontSizeMenuOpen","uncontrolledFontSizeMenuOpenValue","uncontrolledOnFontSizeMenuOpenChange","valueOrUpdater","old","uncontrolledRefitMenuOpen","open_0","uncontrolledOnRefitMenuOpenChange","uncontrolledRefitMenuOpenValue","memoizedProps","useMemoCompare","old_0","ReactReaderProvider","Radio","inputProps","rootRef","ChakraRadioGroup","RadioGroup","Slider","marks","showValue","marksProp","some","hasMarkLabel","ChakraSlider","HStack","SliderThumbs","SliderMarks","For","_","index","_temp4","mark","mark_0","PROSE_REACT_READER_SETTINGS_SCOPE_CONFIGURATION","references","SETTINGS_SCOPES_VALUES","SETTINGS_SCOPES_REFERENCES","flatMap","getScopeForReference","reference","includes","FontSizeControlsDialog","fontSize","fontSizeScope","fontSizeValues","onFontSizeChange","onFontSizeScopeChange","onFontSizeChangeRef","useLiveRef","tabValue","setTabValue","scope","current","onFontUpdate","scope_0","getValueForScope","details","value_0","onScopeValueChange","details_0","onTabValueChange","details_1","value_1","onSliderValueChange","Fieldset","scope_2","LuCheck","scope_3","t22","t23","t24","t25","scope_1","SyncFontSettings","_fontSize","timeout","setTimeout","settings","fontScale","clearTimeout","values$","subscribe","_fontSize_0","syncUpFontSize","defaultState","x","y","bottom","right","useMeasure","element","setElement","rect","setRect","ResizeObserver","entries","contentRect","observer","observe","disconnect","useLayoutEffect","useAttachSnapshot","measures","readerWithGalleryEnhancer","itemLayoutChanged$","didLayout$","layoutInfo","isItemIntersecting$","observeIntersection","throttleTime","trailing","isVisible","innerHTML","first","gallery","snapshot","attachSnapshot","isIntersecting","isVisible_0","GalleryItem","onNavigated","mode","locatedResource","goToSpineItem","indexOrId","GalleryDialog","items$","HelpDialog","Heading","Kbd","LuArrowBigRight","LuArrowBigLeft","name","usePagination","pagination","state$","mediaType","startsWith","isOnlyImages","manifest","spineItems","every","hasChapters","isFullyPrePaginated","ANIMATION_NAME_IN_OUT","FloatingProgress","quickMenuOpen","roundedProgress","Math","floor","percentageEstimateOfBook","displayableProgress","useTime","Date","time","setTime","interval","setInterval","clearInterval","TimeIndicator","toLocaleTimeString","navigator","language","hour","minute","FloatingTime","useInterceptExternalLinks","links$","interceptExternalLinks","isHtmlTagElement","href","url","URL","window","location","host","confirm","useNotifications","mergeMap","notification","duration","toast$","Observable","subscriber","queueMicrotask","toastId","create","next","complete","error","sameNotification$","skip","n","key","merge","timer","abort","finalize","dismiss","notifications","ToggleTip","showArrow","positioning","gutter","ChakraPopover","InfoTip","IconButton","HiOutlineInformationCircle","ProgressBar","ChakraProgress","info","ProgressRoot","ProgressValueText","ValueText","useNavigationContext","hasOnlyOnePage","numberOfTotalPages","isBeginWithinChapter","beginNumberOfPagesInSpineItem","isEndWithinChapter","endNumberOfPagesInSpineItem","beginPageIndex","beginPageIndexInSpineItem","beginAbsolutePageIndex","endPageIndex","endPageIndexInSpineItem","endAbsolutePageIndex","leftPageIndex","rightPageIndex","sort","a","b","beginAndEndAreDifferent","beginSpineItemIndex","endSpineItemIndex","totalApproximatePages","PaginationInfoSection","round","progress","beginChapterInfo","buildTitleChain","chapterInfo","subChapter","chapterTitle","Fragment","QuickBar","ChakraRcSlider","chakra","RcSlider","ThemedSlider","padding","boxShadow","transform","backgroundColor","reverse","rail","track","handle","borderColor","marginTop","useSliderValues","isUsingSpread","currentRealPage","currentPage","useSignalState","max","min","Scrubber","readingDirection","isScrubberWithinChapter","values","Array","isArray","goToPageOfSpineItem","spineItemId","animation","goToAbsolutePageIndex","onChange","subject","throttleLock","trigger","style","step","BottomBar","onItemClick","boxRef","useRef","zoom","zoomState","isZoomingIn","isZoomingOut","isScrollingMode","computedPageTurnMode","isVerticalDirection","computedPageTurnDirection","isExtraOpen","setIsExtraOpen","resizeObserver","entry","goToLeftOrTopSpineItem","canGoLeftSpineItem","canGoTopSpineItem","RxDoubleArrowUp","RxDoubleArrowLeft","maxWidth","canGoRightSpineItem","canGoBottomSpineItem","goToRightOrBottomSpineItem","RxDoubleArrowDown","RxDoubleArrowRight","Collapsible","LuChevronDown","LuCircleHelp","t26","t27","t28","LuTableOfContents","t29","t30","LuSearch","t31","t32","exit","animate","enter","scale","t33","LuZoomOut","LuZoomIn","t34","t35","t36","BiFontSize","t37","t38","BsBookmarks","t39","t40","MdOutlineFitScreen","t41","t42","t43","LuGalleryHorizontal","t44","t45","RiGalleryView2","t46","t47","t48","currentScale","useFullscreen","isFullscreen","setIsFullscreen","document","fullscreenElement","exitFullscreen","catch","console","then","documentElement","requestFullscreen","navigationUI","onToggleFullscreenClick","fullscreenchangeHandler","addEventListener","removeEventListener","TopBar","manifest$","IoIosArrowBack","IoMdMore","MdFullscreenExit","MdFullscreen","useQuickMenu","onQuickMenuOpenChange","QuickMenu","useQuickMenuToggleGesture","gestures$","selection$","selectionOnPointerdown","quickMenuToggleGesture","handled","val","Field","errorText","helperText","optionalText","ChakraField","RefitDialog","readerWithRefit","refit","settings$","refitSettings","e_0","viewportFit","customWidth","e_1","SearchListItem","contextText","startOffset","onClick","substring","before","after","margin","overflow","preventDefault","display","textDecoration","DEBOUNCE_TIME","useSearch","searchSubject","searchValue","readerWithSearch","search","bind","setValue","status","BehaviorSubject","SearchDialogContent","onValueChange","consolidatedResults","Input","overflowY","result","j","startContainer","parentElement","itemPageIndex","SearchDialog","TableOfContentsDialogContent","nav","toc","currentSubChapter","buildTocForItem","tocItem","lvl","alignItems","goToUrl","path","LuCircleCheck","tocItem_0","index_0","tocItem_1","index_1","TableOfContentsDialog","useZoomSettings","zoomMaxScale","STEP","MIN","normalizeZoomValue","clamped","stepped","ZoomControls","animationFrameScheduler","leading","zoomScaleValue","isZooming","normalizedZoomScaleValue","scaleAt","constrain","BookmarksEffects","Effects","InnerReactReader","enableFloatingTime","isTableOfContentsOpen","setIsTableOfContentsOpen","isHelpOpen","setIsHelpOpen","isSearchOpen","setIsSearchOpen","isAnnotationsOpenWith","setIsAnnotationsOpenWith","isGalleryOpen","setIsGalleryOpen","setQuickMenuOpen","_onItemClick","ReactReader","slots","container","containerProps"],"mappings":"ypDAAaA,GAA+B,qBAC/BC,GAAiB,ECkFjBC,GAAkBA,KAA0B,CACvDC,eAAgB,GAChBC,uBAAyBC,GAASA,EAClCC,OAAQC,OACRC,oCAAqCC,EAAAA,OAAwC,CAC3EC,QAASH,MAAAA,CACV,EACDI,qBAAsB,IAAIC,EAAAA,QAC1BC,cAAe,GACfC,sBAAuBA,IAAM,CAAC,EAC9BC,iBAAkB,GAClBC,yBAA0BA,IAAM,CAAC,EACjCC,YAAa,GACbC,YAAa,EACbC,qBAAsB,EACtBC,uBAAwB,GACxBC,kBAAmBd,MACrB,GAEae,GAAgBC,EAAAA,cAC3Bd,SAAO,CAAEC,QAASR,GAAAA,CAAkB,CAAC,CACvC,ECnGasB,GAAwBC,GAAA,CAAA,MAAAC,EAAAC,EAAAA,EAAA,CAAA,EAGnCC,EAAgBC,EAAAA,WAAWP,EAAa,EAAC,IAAAQ,EAAAJ,EAAA,CAAA,IAAAE,GAAAF,OAAAD,GAGvCK,EAAAA,IAAMF,EAAOG,KAAMC,GAAAA,UAAUP,CAAI,CAAC,EAACC,KAAAE,EAAAF,KAAAD,EAAAC,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAAA,IAAAO,EAAAP,OAAAE,EAAAM,OAAAR,OAAAD,GAGnBQ,EAAAE,GAAAA,KAAKP,EAAOM,MAAQT,CAAI,EAACC,EAAA,CAAA,EAAAE,EAAAM,MAAAR,KAAAD,EAAAC,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAAA,IAAAU,EAAAV,OAAAO,GAFzCG,EAAA,CAAAC,UACaC,GAAAA,eAAcC,aACXN,CAAAA,EACfP,KAAAO,EAAAP,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAAA,IAAAc,EAAA,OAAAd,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GACDF,EAAA,CAAA,EAAEd,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EANGiB,EAAAA,WACLb,EACAM,EAIAI,CACF,EAACI,IAAK,EAGKC,GAAmBA,IACvBhB,EAAAA,WAAWP,EAAa,EChB3BwB,GAAuC,GAGhCC,GAAeC,EAAAA,KAC1BlB,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,CAAA,EAAA,IAAAsB,EAAAC,EAAAxB,OAAAI,GAAC,CAAAmB,SAAAA,EAAA,GAAAC,CAAAA,EAAApB,EAMgBJ,KAAAI,EAAAJ,KAAAuB,EAAAvB,KAAAwB,IAAAD,EAAAvB,EAAA,CAAA,EAAAwB,EAAAxB,EAAA,CAAA,GAAA,IAAAO,EAAAP,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GACuDT,EAAA,CACpE,sCACA,cAAc,EACfP,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAHD,KAAA,CAAAlB,oCAAAA,CAAAA,EAAgDgB,GAAsBS,CAGrE,EAIDkB,EAHsCC,EAAAA,eACpC5C,CACF,GAE+B6C,gBAAoB,CAAA,GAAWC,WAA5DR,GACoC,IAAAV,EAAAV,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAInBN,EAAA,CAAAmB,MAAS,UAASC,QAAW,UAAA,EAAY9B,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAGhD,MAAAc,EAAA,QAAQW,CAAe,gCAA+B,IAAAM,EAAA,OAAA/B,EAAA,CAAA,IAAAuB,GAAAvB,OAAAwB,GAAAxB,EAAA,CAAA,IAAAc,GAJhEiB,EAAAC,EAAAA,IAACC,EAAAA,SAAA,CACgB,cAAAvB,EACG,kBAAA,WACT,SAAA,WACD,OAAAI,EACD,MAAA,EACS,gBAAA,WACT,OAAA,KACM,aAAA,KACV,EAAA,EACK,QAAA,OACM,cAAA,MACT,IAAA,EAAC,GACFU,EAEHD,SAAAA,CAAAA,CACH,EAAWvB,KAAAuB,EAAAvB,KAAAwB,EAAAxB,KAAAc,EAAAd,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EAhBX+B,CAgBW,CAGjB,ECxCaG,EAAYA,IAAA,CAAA,MAAAlC,EAAAC,EAAAA,EAAA,CAAA,EAAA,IAAAG,EAAAJ,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GACkBZ,EAAA,CAAC,QAAQ,EAACJ,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAAnD,KAAA,CAAApB,OAAAA,CAAAA,EAAmBkB,GAAsBM,CAAU,EAAC,OAE7CxB,CAAM,EAGFuD,GACXvD,GAEO,CAAC,CAACA,GAAU,mCAAoCA,EAG5CwD,GACXxD,GAEO,CAAC,CAACA,GAAU,wCAAyCA,EAGjDyD,GACXzD,GAEO,CAAC,CAACA,GAAU,oCAAqCA,EAG7C0D,GACX1D,GAEO,CAAC,CAACA,GAAU,kCAAmCA,EChC3C2D,GAA2BA,IAAA,CAAA,MAAAvC,EAAAC,EAAAA,EAAA,CAAA,EACtCrB,EAAesD,EAAAA,EAAW,IAAA9B,EAAA,OAAAJ,OAAApB,GACEwB,EAAAgC,GAAuBxD,CAEvC,EAFgBA,EAAAC,OAEfmB,KAAApB,EAAAoB,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAFeI,CAIF,ECIfoC,GAAmBA,IAAA,CAAA,MAAAxC,EAAAC,EAAAA,EAAA,EAAA,EAC9BrB,EAAe2D,GAAAA,EACfrC,EAAgBiB,GAAAA,EAAkB,IAAAf,EAAAJ,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GACkBZ,EAAA,CAAC,mBAAmB,EAACJ,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAAzE,KAAA,CAAAL,kBAAAA,CAAAA,EAA8BG,GAAsBM,CAAqB,EAAC,IAAAG,EAAAP,OAAApB,GAExE2B,EAAAA,IACE3B,GAAM6D,UAA0BC,eAAKrC,KACnCsC,EAAAA,UAAU,IACR/D,EAAM6D,UAAUG,cAAcvC,KAC5BwC,EAAAA,IAAIC,EAAW,EACfC,EAAAA,UAAU,EAAI,CAChB,CACF,CACO,GAPTC,EAAAA,MAOUhD,KAAApB,EAAAoB,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAAA,IAAAU,EAAAV,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GACZN,EAAA,CAAAG,aAAgB,EAAA,EAAOb,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAAA,IAAAc,EAAAd,OAAApB,GACvBkC,EAAA,CAAClC,CAAM,EAACoB,KAAApB,EAAAoB,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAXV,KAAA,CAAAkB,KAAA+B,CAAAA,EAAyBhC,aACvBV,EASAG,EACAI,CACF,EAGyBiB,EAAAkB,GAAA,CAAWtD,EAAiB,IAAAuD,EAAAlD,OAAAE,GAAAF,EAAA,CAAA,IAAApB,GAAA6D,WAItCS,EAAAA,IAAA,CACP,MAAAT,EAAkB7D,GAAM6D,UAAwBU,aAAAA,EAE3CV,GAELvC,EAAOkD,OAAQC,IAAY,CAAA,GACtBA,EAAK1D,kBACW,CAAA8C,UAAAA,CAAAA,CAEnB,EACA,CAAC,EACJzC,KAAAE,EAAAF,EAAA,CAAA,EAAApB,GAAA6D,UAAAzC,KAAAkD,GAAAA,EAAAlD,EAAA,CAAA,EAAA,IAAAsD,EAAAtD,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAEDsC,QAACC,GAAAA,OAAA,EAAM,EAAGvD,KAAAsD,GAAAA,EAAAtD,EAAA,CAAA,EAAA,IAAAwD,EAAAxD,QAAAkD,GAhBZM,SAACC,SAAA,CACS,QAAA,UACH,KAAA,KACI,QAAAP,EAaTI,SAAAA,CAAAA,EAAU,UAAA,EAEZ,EAAStD,MAAAkD,EAAAlD,MAAAwD,GAAAA,EAAAxD,EAAA,EAAA,EAAA,IAAA0D,EAAA1D,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GACT0C,SAACD,SAAA,CAAe,QAAA,UAAe,KAAA,KAAK,SAAA,GAClC,SAAA,CAAAzB,EAAAA,IAAC2B,GAAAA,cAAA,EAAa,EAAG,UAAA,EAEnB,EAAS3D,MAAA0D,GAAAA,EAAA1D,EAAA,EAAA,EAAA,IAAA4D,EAAA,OAAA5D,EAAA,EAAA,IAAA+B,GAAA/B,QAAAwD,GAvBXI,SAACvC,GAAA,CAAsB,QAAAU,EACrByB,SAAAA,CAAAA,EAmBAE,CAAAA,EAIF,EAAe1D,MAAA+B,EAAA/B,MAAAwD,EAAAxD,MAAA4D,GAAAA,EAAA5D,EAAA,EAAA,EAxBf4D,CAwBe,EA3Ca,SAAAd,IAAA,CAAA,MASV,EAAK,CCrBpB,MAAMe,GAAeA,CAACC,EAAcC,EAAY,KACjDD,EAAKE,QAAUD,EAAkBD,EAC9B,GAAGA,EAAKG,MAAM,EAAGF,CAAS,CAAC,MCKvBG,GAAcC,GAAMC,WAG/B,SAAAC,EAAAC,EAAA,CAAA,MAAAtE,EAAAC,EAAAA,EAAA,CAAA,EAAA,IAAAG,EAAAJ,EAAA,CAAA,IAAAqE,EAAA9C,UAGKnB,EAAAiE,EAAK9C,UAAaS,EAAAA,IAACuC,GAAAA,IAAA,CAAA,CAAG,EAAGvE,EAAA,CAAA,EAAAqE,EAAA9C,SAAAvB,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAAA,IAAAO,EAAA,OAAAP,EAAA,CAAA,IAAAqE,GAAArE,OAAAsE,GAAAtE,EAAA,CAAA,IAAAI,GAD5BG,EAAAyB,EAAAA,IAACwC,EAAAA,YAAyB,QAAA,QAAmB,aAAA,QAAaF,IAAAA,EAAG,GAAMD,EAChEjE,SAAAA,CAAAA,CACH,EAAmBJ,KAAAqE,EAAArE,KAAAsE,EAAAtE,KAAAI,EAAAJ,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAFnBO,CAEmB,CAEtB,ECNYkE,GAAgBN,GAAMC,WAGjC,SAAAC,EAAAC,EAAA,CAAA,MAAAtE,EAAAC,EAAAA,EAAA,EAAA,EAAA,IAAAsB,EAAAmD,EAAAC,EAAAnD,EAAApB,EAAAJ,OAAAqE,GACA,CAAA9C,SAAAA,EAAAqD,UAAAxE,EAAAuE,UAAAA,EAAAD,OAAAA,EAAA,GAAAlD,CAAAA,EAAmE6C,EAAKrE,KAAAqE,EAAArE,KAAAuB,EAAAvB,KAAA0E,EAAA1E,KAAA2E,EAAA3E,KAAAwB,EAAAxB,KAAAI,IAAAmB,EAAAvB,EAAA,CAAA,EAAA0E,EAAA1E,EAAA,CAAA,EAAA2E,EAAA3E,EAAA,CAAA,EAAAwB,EAAAxB,EAAA,CAAA,EAAAI,EAAAJ,EAAA,CAAA,GAEpD,MAAAO,IAFFH,IAAAvB,OAAA,GAAAuB,GAEY,IAAAM,EAAAV,EAAA,CAAA,IAAAuB,GAAAvB,OAAAsE,GAAAtE,EAAA,CAAA,IAAAwB,GAExBd,EAAAsB,EAAAA,IAAA6C,SAAA,QAAA,CAA2BP,IAAAA,EAAG,GAAM9C,EAAe,QAAA,GAChDD,SAAAA,EACH,EAAuBvB,KAAAuB,EAAAvB,KAAAsE,EAAAtE,KAAAwB,EAAAxB,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAAA,IAAAc,EAAAd,EAAA,EAAA,IAAA0E,GAAA1E,QAAAU,GAHzBI,QAAA+D,EAAAA,OAAA,WAAA,CAAkCH,QAAAA,EAChChE,SAAAA,EAGF,EAA0BV,MAAA0E,EAAA1E,MAAAU,EAAAV,MAAAc,GAAAA,EAAAd,EAAA,EAAA,EAAA,IAAA+B,EAAA,OAAA/B,EAAA,EAAA,IAAA2E,GAAA3E,QAAAO,GAAAP,EAAA,EAAA,IAAAc,GAL5BiB,QAAC+C,EAAAA,OAAA,CAAiB,SAAAvE,EAAuBoE,UAAAA,EACvC7D,SAAAA,EAKF,EAASd,MAAA2E,EAAA3E,MAAAO,EAAAP,MAAAc,EAAAd,MAAA+B,GAAAA,EAAA/B,EAAA,EAAA,EANT+B,CAMS,CAEZ,EAEiCoC,GAAMC,WAGtC,SAAAC,EAAAC,EAAA,CAAA,MAAAtE,EAAAC,EAAAA,EAAA,CAAA,EAAA,IAAAG,EAAAJ,OAAAsE,GASIlE,EAAA4B,EAAAA,IAACkC,GAAA,CAAiB,KAAA,KAAUI,IAAAA,EAAG,EAAItE,KAAAsE,EAAAtE,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAAA,IAAAO,EAAA,OAAAP,EAAA,CAAA,IAAAqE,GAAArE,OAAAI,GAPrCG,EAAAyB,EAAAA,IAAA6C,SAAA,aAAA,CACW,SAAA,WACL,IAAA,IACK,SAAA,IAAG,GACRR,EACJ,QAAA,GAEAjE,SAAAA,EACF,EAA4BJ,KAAAqE,EAAArE,KAAAI,EAAAJ,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAR5BO,CAQ4B,CAE/B,EAE4BsE,EAAAA,OAAaE,QACnC,MAAMC,GAAaH,EAAAA,OAAaI,KACXJ,EAAAA,OAAaK,OAClC,MAAMC,GAAeN,EAAAA,OAAaO,OAC5BC,GAAaR,EAAAA,OAAaS,KAC1BC,GAAiBV,EAAAA,OAAaW,SACVX,EAAAA,OAAaY,YACnBZ,EAAAA,OAAaa,MACLb,EAAAA,OAAac,cC3BhD,MAAMC,GAAmB,CACvB,yBACA,yBACA,yBACA,yBACA,wBAA0B,EAGfC,GAAmBvE,EAAAA,KAAK,IAAA,CAAA,MAAAtB,EAAAC,EAAAA,EAAA,EAAA,EACnCrB,EAAe2D,GAAAA,EAA0B,IAAAnC,EAAAJ,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAMfZ,EAAA,CACxB,oBACA,qBACA,qBACA,oBAAoB,EACrBJ,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAVD,KAAA,CAAAL,kBAAAA,EAAAmG,mBAAAA,EAAAC,mBAAAA,EAAAC,mBAAAA,CAAAA,EAKIlG,GAAsBM,CAKzB,EACDF,EAAgBiB,GAAAA,EAChB,CAAA8E,UAAAA,EAAAxD,UAAAA,CAAAA,EAAiC9C,GAAA,CAAA,EACjC,CAAAuG,EAAAC,CAAA,EAA0CC,EAAAA,SACxCR,KACF,EACA,CAAAS,EAAAC,CAAA,EAAgCF,EAAAA,SAAiB,EAAE,EACnDnD,EAAe,CAAC,EAAER,GAAAwD,GAAuB,IAAA1F,EAAAP,OAAAE,GAEzBK,EAAAA,IAAA,CACdL,EAAOkD,OAAQN,EAGb,CAAC,EACJ9C,KAAAE,EAAAF,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EALD,MAAAuG,EAAgBhG,EAKf,IAAAG,EAAAV,OAAAuG,GAEuE7F,EAAA8F,GAAA,CAGjEA,EAAKC,MACRF,EAAAA,CACD,EACFvG,KAAAuG,EAAAvG,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAND,MAAA0G,EAAwEhG,EAQxEiG,EAAuBV,GAASU,eAChCC,EAAyBX,GAASY,MAAO,IAAA/F,EAAAd,OAAAsG,GAE/BxF,EAAAA,IAAA,CAGRwF,EAAY,EAAE,CAAC,EAChBtG,KAAAsG,EAAAtG,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAAA,IAAA+B,EAAA/B,OAAAiD,GAAElB,EAAA,CAACkB,CAAM,EAACjD,KAAAiD,EAAAjD,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EAJX8G,EAAAA,UAAUhG,EAIPiB,CAAQ,EAEX+E,EAAAA,UAAU,IAAA,CACRR,EAAYM,GAAA,EAAsB,CAAC,EAClC,CAACA,CAAgB,CAAC,EAErBE,EAAAA,UAAU,IAAA,CAINX,EADEQ,GAGef,GAAgB,CAAA,CAFF,CAGhC,EACA,CAACe,EAAgB1D,CAAM,CAAC,EAAC,IAAAC,EAAAlD,EAAA,CAAA,IAAAE,GAAAF,QAAApB,GAAAmI,YAAAC,eAG1B9D,YAAA,CAAA,OACStE,GAAMmI,YAA2BC,cAAK3G,KAC3C4G,EAAAA,IAAI3D,IAAA,CAAC,KAAA,CAAA2C,UAAAiB,CAAAA,EAAA5D,GACHpD,EAAOkD,OAAQ+D,KAAY,CAAA,GACtB9D,GAAK1D,kBACW,CAAAsG,UACjBA,CAAAA,CACF,EACA,CAAC,CACJ,CACH,CAAC,EACFjG,KAAAE,EAAAF,EAAA,EAAA,EAAApB,GAAAmI,YAAAC,cAAAhH,MAAAkD,GAAAA,EAAAlD,EAAA,EAAA,EAZH,MAAAoH,EAA0BlE,EAgB1BmE,EAAAA,aAAaD,CAAiB,EAG3B,MAAAE,EAAAtC,GAAqB1B,EAAA,SAAQ,IAAAE,EAAAxD,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAC5BwC,QAAC+B,GAAA,EAAc,EAAGvF,MAAAwD,GAAAA,EAAAxD,EAAA,EAAA,EACjB,MAAAuH,EAAA9C,GACE+C,EAAArC,GAA+BzB,EAAA,MAC7BE,EAAAqC,EAAA,YAAA,eAEkBpC,GAAapB,GAASA,WAAqBgF,SAAAA,GAA9B,GAAwC,EAAE,CAAC,IAAG,IAAAC,EAAA1H,EAAA,EAAA,IAAAwH,GAAAxH,QAAA4D,GAHhF8D,EAAA1F,EAAAA,IAACwF,EAAA,CAA+B,kBAAA9D,EAC7BE,SAAAA,EAGH,EAAe5D,MAAAwH,EAAAxH,MAAA4D,EAAA5D,MAAA0H,GAAAA,EAAA1H,EAAA,EAAA,EAAA,IAAA2H,EAAA3H,EAAA,EAAA,IAAAkG,GAAAlG,QAAAmG,GAIRwB,EAAA/B,GAAgB/C,IAAK+E,GACpB5F,EAAAA,IAAC6F,EAAAA,IAAA,CACUD,QAAAA,EACD,UACD,SAEM,aAAA,MACN,OAAA,aACF1B,IAAkB0B,GAAlB,CAAAE,OACK,iBAAA,EAED,QAAA,IAAM3B,EAAiByB,CAAK,CAAA,EANhCA,CAMiC,CAEzC,EAAC5H,MAAAkG,EAAAlG,MAAAmG,EAAAnG,MAAA2H,GAAAA,EAAA3H,EAAA,EAAA,EAAA,IAAA+H,EAAA/H,QAAA2H,GAdJI,QAACC,EAAAA,MAAA,CAAW,MAAiB,cAAA,MAC1BL,SAAAA,EAcH,EAAQ3H,MAAA2H,EAAA3H,MAAA+H,GAAAA,EAAA/H,EAAA,EAAA,EAAA,IAAAiI,EAAAjI,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GACRiH,QAACC,EAAAA,MAAK,SAAA,aAAA,CAAW,EAAOlI,MAAAiI,GAAAA,EAAAjI,EAAA,EAAA,EAAA,IAAAmI,EAAAnI,QAAAsG,GAGZ6B,EAAAC,GAAW9B,EAAYE,EAAK6B,OAAO7H,KAAM,EAACR,MAAAsG,EAAAtG,MAAAmI,GAAAA,EAAAnI,EAAA,EAAA,EAAA,IAAAsI,EAAAtI,EAAA,EAAA,IAAAqG,GAAArG,QAAAmI,GAFtDG,EAAAtG,EAAAA,IAACuG,WAAA,CACQlC,MAAAA,EACG,SAAA8B,EAA0C,EACpDnI,MAAAqG,EAAArG,MAAAmI,EAAAnI,MAAAsI,GAAAA,EAAAtI,EAAA,EAAA,EAAA,IAAAwI,EAAAxI,EAAA,EAAA,IAAA+H,GAAA/H,QAAAsI,GArBJE,SAACR,QAAA,CACCD,SAAAA,CAAAA,EAgBAE,EACAK,CAAAA,EAIF,EAAQtI,MAAA+H,EAAA/H,MAAAsI,EAAAtI,MAAAwI,GAAAA,EAAAxI,EAAA,EAAA,EAAA,IAAAyI,EAAAzI,EAAA,EAAA,IAAAqG,GAAArG,QAAA8F,GAAA9F,EAAA,EAAA,IAAAuG,GAAAvG,EAAA,EAAA,IAAApB,GAAAmI,aAAA/G,QAAAkG,GAAAlG,EAAA,EAAA,IAAAyC,GACPgG,EAAA,CAAC,CAAChG,GACDT,EAAAA,IAACyB,EAAAA,OAAA,CACU,QAAA,IAAA,CACP8C,EAAAA,EAEA,MAAAmC,EAAmB9J,GAAMmI,YAA8B4B,iBAAC,CAAA,GACnDlG,EAASkE,eACIT,EAAaW,MACtBR,CAAAA,CACR,EAEGqC,GACF5C,IAAqB4C,CAAU,CAChC,EAEJ,SAAA,YAED,EACD1I,MAAAqG,EAAArG,MAAA8F,EAAA9F,MAAAuG,EAAAvG,EAAA,EAAA,EAAApB,GAAAmI,YAAA/G,MAAAkG,EAAAlG,MAAAyC,EAAAzC,MAAAyI,GAAAA,EAAAzI,EAAA,EAAA,EAAA,IAAA4I,EAAA5I,QAAAqG,GAAArG,EAAA,EAAA,IAAAiG,GAAAjG,EAAA,EAAA,IAAAgG,GAAAhG,EAAA,EAAA,IAAA+F,GAAA/F,QAAAuG,GAAAvG,EAAA,EAAA,IAAAkG,GACA0C,GAAC,CAAC3C,GACD4C,EAAAA,KAACb,EAAAA,MAAA,CAAgB,UAAA,MACf,SAAA,CAAAhG,EAAAA,IAACyB,EAAAA,OAAA,CACO,KAAA,EACG,QAAA,IAAA,CACP8C,EAAAA,EAEAR,IAAqB,CAAA+C,GACf7C,EAAS6C,GAAGnC,eACAT,EAAaW,MACtBR,CAAAA,CACR,CAAC,EAEL,SAAA,SAED,QACC5C,EAAAA,OAAA,CACO,OACE,QAAA,UACC,QAAA,IAAA,CACP8C,EAAAA,EAEAP,IAAqBC,EAAS6C,EAAG,CAAC,EAErC,SAAA,QAAA,CAED,CAAA,EACF,EACD9I,MAAAqG,EAAArG,MAAAiG,EAAAjG,MAAAgG,EAAAhG,MAAA+F,EAAA/F,MAAAuG,EAAAvG,MAAAkG,EAAAlG,MAAA4I,GAAAA,EAAA5I,EAAA,EAAA,EAAA,IAAA+I,EAAA/I,EAAA,EAAA,IAAAwI,GAAAxI,QAAAyI,GAAAzI,EAAA,EAAA,IAAA4I,GAvEHG,EAAAF,EAAAA,KAACxD,IAAgB,IAAA,EAAW,QAAA,OAAqB,cAAA,SAAa,GAAA,EAC5DmD,SAAAA,CAAAA,EAuBCC,EAmBAG,CAAAA,EA6BH,EAAa5I,MAAAwI,EAAAxI,MAAAyI,EAAAzI,MAAA4I,EAAA5I,MAAA+I,GAAAA,EAAA/I,EAAA,EAAA,EAAA,IAAAgJ,EAAAhJ,EAAA,EAAA,IAAAuH,GAAAvH,QAAA0H,GAAA1H,EAAA,EAAA,IAAA+I,GA9EfC,SAACzB,EAAA,CACCG,SAAAA,CAAAA,EAKAqB,CAAAA,EAyEF,EAAgB/I,MAAAuH,EAAAvH,MAAA0H,EAAA1H,MAAA+I,EAAA/I,MAAAgJ,GAAAA,EAAAhJ,EAAA,EAAA,EAAA,IAAAiJ,EAAA,OAAAjJ,EAAA,EAAA,IAAAsH,GAAAtH,EAAA,EAAA,IAAAiD,GAAAjD,EAAA,EAAA,IAAA0G,GAAA1G,EAAA,EAAA,IAAAgJ,GAAAhJ,QAAAwD,GAjFlByF,SAAC3B,EAAA,CAAqB,UAAAhE,EAAuBoD,aAAAA,EAAoBzD,KAAAA,EAC/DO,SAAAA,CAAAA,EACAwF,CAAAA,EAgFF,EAAahJ,MAAAsH,EAAAtH,MAAAiD,EAAAjD,MAAA0G,EAAA1G,MAAAgJ,EAAAhJ,MAAAwD,EAAAxD,MAAAiJ,GAAAA,EAAAjJ,EAAA,EAAA,EAlFbiJ,CAkFa,CAEhB,EAlKoC,SAAAnG,GAAAO,EAAA,CAAA,MAsBN,CAAA,GACtBA,EAAK1D,kBACWd,MAAAA,CACpB,CC/CE,MAAMqK,GAAgB/E,GAAMC,WAGjC,SAAAC,EAAAC,EAAA,CAAA,MAAAtE,EAAAC,EAAAA,EAAA,EAAA,EAAA,IAAAsB,EAAAoD,EAAAnD,EAAApB,EAAAG,EAAAP,OAAAqE,GACA,CAAA9C,SAAAA,EAAAqD,UAAAxE,EAAAuE,UAAAA,EAAAwE,SAAA5I,EAAA,GAAAiB,CAAAA,EAMI6C,EAAKrE,KAAAqE,EAAArE,KAAAuB,EAAAvB,KAAA2E,EAAA3E,KAAAwB,EAAAxB,KAAAI,EAAAJ,KAAAO,IAAAgB,EAAAvB,EAAA,CAAA,EAAA2E,EAAA3E,EAAA,CAAA,EAAAwB,EAAAxB,EAAA,CAAA,EAAAI,EAAAJ,EAAA,CAAA,EAAAO,EAAAP,EAAA,CAAA,GAJP,MAAA4E,EAAAxE,IAAAvB,OAAA,GAAAuB,EAEA+I,EAAA5I,IAAA1B,OAAA,GAAA0B,EAKkBG,GAACkE,EAAS,IAAA9D,EAAAd,OAAAmJ,GACzBrI,EAAAqI,GAAYnH,EAAAA,IAAAoH,EAAAA,OAAA,SAAA,CAAA,CAAA,EAAyBpJ,KAAAmJ,EAAAnJ,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAAA,IAAA+B,EAAA/B,EAAA,CAAA,IAAAuB,GAAAvB,OAAAsE,GAAAtE,EAAA,EAAA,IAAAwB,GACtCO,6BACE,eAAAqH,EAAAA,OAAA,QAAA,CAA2B9E,IAAAA,EAAG,GAAM9C,EAAe,QAAA,GAChDD,SAAAA,EACH,EACF,EAA0BvB,KAAAuB,EAAAvB,KAAAsE,EAAAtE,MAAAwB,EAAAxB,MAAA+B,GAAAA,EAAA/B,EAAA,EAAA,EAAA,IAAAkD,EAAA,OAAAlD,EAAA,EAAA,IAAA2E,GAAA3E,EAAA,EAAA,IAAAU,GAAAV,EAAA,EAAA,IAAAc,GAAAd,QAAA+B,GAN5BmB,EAAA2F,EAAAA,KAAC/D,EAAAA,OAAA,CAAiB,SAAApE,EAAuBiE,YACtC7D,SAAAA,CAAAA,EACDiB,CAAAA,EAKF,EAAS/B,MAAA2E,EAAA3E,MAAAU,EAAAV,MAAAc,EAAAd,MAAA+B,EAAA/B,MAAAkD,GAAAA,EAAAlD,EAAA,EAAA,EAPTkD,CAOS,CAEZ,EAEYmG,GAAqBlF,GAAMC,WAGtC,SAAAC,EAAAC,EAAA,CAAA,MAAAtE,EAAAC,EAAAA,EAAA,CAAA,EAAA,IAAAG,EAAAJ,OAAAqE,EAAA9C,UAAAvB,OAAAsE,GASIlE,QAAC8D,GAAA,CAAiB,KAAA,KAAUI,IAAAA,EACzBD,WAAK9C,SACR,EAAcvB,EAAA,CAAA,EAAAqE,EAAA9C,SAAAvB,KAAAsE,EAAAtE,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAAA,IAAAO,EAAA,OAAAP,EAAA,CAAA,IAAAqE,GAAArE,OAAAI,GAThBG,EAAAyB,EAAAA,IAAAoH,SAAA,aAAA,CACW,SAAA,WACL,IAAA,IACK,SAAA,IAAG,GACR/E,EACJ,QAAA,GAEAjE,SAAAA,EAGF,EAA4BJ,KAAAqE,EAAArE,KAAAI,EAAAJ,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAV5BO,CAU4B,CAE/B,EAEY+I,GAAaF,EAAAA,OAAanE,KAC1BsE,GAAeH,EAAAA,OAAalE,OAC5BsE,GAAeJ,EAAAA,OAAahE,OAC5BqE,GAAaL,EAAAA,OAAa9D,KACT8D,EAAAA,OAAa5D,SACpC,MAAMkE,GAAcN,EAAAA,OAAa1D,MACP0D,EAAAA,OAAa3D,YACjB2D,EAAAA,OAAarE,QACnC,MAAM4E,GAAsBP,EAAAA,OAAazD,cCzDnCiE,GAAgBd,GAAA,CAAA,MAAA9I,EAAAC,EAAAA,EAAA,CAAA,EAC3BrB,EAAesD,EAAAA,EAAW,IAAA9B,EAAAJ,OAAApB,GACIwB,EAAAgC,GAAuBxD,CAEzC,EAFkBA,EAAAC,OAEjBmB,KAAApB,EAAAoB,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAFb,MAAA6J,EAA8BzJ,EAEjB,IAAAG,EAAAP,EAAA,CAAA,IAAA8I,GAAA9I,OAAA6J,GAGXtJ,EAAAA,IACEsJ,GAAqB9C,YAA0B+C,aAAKzJ,KAClDwC,MAAIkH,GAAWA,EAAKC,KAAMC,GAAUA,EAAInB,KAAQA,CAAE,CAAC,EACnDoB,EAAAA,OAAOC,EAAAA,SAAS,EAChBxH,EAAAA,aAAoBkH,EAAqBO,eAAgBH,CAAI,CAAC,CAChE,EAACjK,KAAA8I,EAAA9I,KAAA6J,EAAA7J,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAAA,IAAAU,EAAA,OAAAV,OAAA6J,GACHnJ,EAAA,CAACmJ,CAAqB,EAAC7J,KAAA6J,EAAA7J,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAPlBiB,EAAAA,WACLV,EAMAG,CACF,CAAC,ECbU2J,GAAqBjK,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,EAAA,EAAC,CAAA6I,GAAAA,EAAAwB,WAAAA,EAAAC,cAAAhK,CAAAA,EAAAH,EAGjCmK,EAAAhK,IAAA1B,OAAA,GAAA0B,EAMA3B,EAAesD,EAAAA,EACf,CAAAhB,KAAAwH,CAAAA,EAA6BkB,GAAcd,CAAE,EAAC,IAAApI,EAAAV,EAAA,CAAA,IAAA0I,GAAA8B,KAAAC,MAAAC,aAAA1K,EAAA,CAAA,IAAA0I,GAAA8B,KAAAG,OAE5CjK,EAAAgI,GAAU8B,KAAYG,OAAUlD,YAAMiB,GAAU8B,KAAWC,MAAaC,YAAA1K,KAAA0I,GAAA8B,KAAAC,MAAAC,YAAA1K,EAAA,CAAA,EAAA0I,GAAA8B,KAAAG,MAAA3K,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAD1E,MAAA0K,EACEhK,EAAwE,IAAAI,EAAAd,EAAA,CAAA,IAAA0I,GAAA8B,MAAAxK,EAAA,CAAA,IAAAsK,GAAAtK,EAAA,CAAA,IAAApB,GAAAgM,YAM3D9J,EAAAA,IAAA,CACPwJ,EAAAA,EAEA1L,GAAMgM,WAAoBC,QAACnC,GAAU8B,KAAUM,KAApB,EAA0B,CAAC,EACvD9K,EAAA,CAAA,EAAA0I,GAAA8B,KAAAxK,KAAAsK,EAAAtK,EAAA,CAAA,EAAApB,GAAAgM,WAAA5K,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAAA,IAAA+B,EAAA/B,EAAA,CAAA,IAAAuK,GAAAvK,OAAA0I,GAAAqC,UAAAlE,OAEA9E,EAAA2G,GAAUqC,UAAiBlE,MAC1B7E,EAAAA,IAAAgJ,EAAAA,KAAA,UAAA,CAAgB,QAAA,GACd,SAAAhJ,EAAAA,IAAC2B,GAAAA,cAAA,CAAA,CAAa,CAAA,CAChB,EACE4G,EACFvI,EAAAA,IAAAgJ,EAAAA,KAAA,UAAA,CAAgB,QAAA,GAAmB,WAAA,SACjC,SAAAhJ,EAAAA,IAAC2B,GAAAA,cAAA,CAAA,CAAa,CAAA,CAChB,EAHE,KAII3D,KAAAuK,EAAAvK,EAAA,CAAA,EAAA0I,GAAAqC,UAAAlE,MAAA7G,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EAAA,IAAAkD,EAAAlD,QAAA0I,GAAA8B,MAAAxK,QAAA0K,GAELxH,EAAAwH,EACC1I,EAAAA,IAACkG,OAAA,CAAgB,UAAA,EAAY,SAAA,gBAE7B,EAEAW,EAAAA,KAACX,QAAgB,UAAA,EAAY,SAAA,KAAe,UAAA,SAAS,SAAA,CAAA,SAC5CQ,GAAU8B,KAAwBS,mBAAlC,GAA2C,CAAA,EACpD,EACDjL,EAAA,EAAA,EAAA0I,GAAA8B,KAAAxK,MAAA0K,EAAA1K,MAAAkD,GAAAA,EAAAlD,EAAA,EAAA,EAKC,MAAAsD,EAAA,cACAoF,GAAU8B,MAAyBS,oBAAKpM,OACpC6J,EAAU8B,KAAKS,kBAAqB,EADxC,sBAE0B,GAC1B,IAAAzH,EAAAxD,QAAAsD,GARFE,EAAAxB,EAAAA,IAACkG,QACW,UAAA,SACC,WAAA,OACF,SAAA,KACT5E,SAAAA,CAAAA,CAIC,EAAOtD,MAAAsD,EAAAtD,MAAAwD,GAAAA,EAAAxD,EAAA,EAAA,EAAA,IAAA0D,EAAA1D,EAAA,EAAA,IAAAkD,GAAAlD,QAAAwD,GAlBZE,EAAAmF,EAAAA,KAACb,EAAAA,MAAA,CAAW,IAAA,EACT9E,SAAAA,CAAAA,EASDM,CAAAA,EASF,EAAQxD,MAAAkD,EAAAlD,MAAAwD,EAAAxD,MAAA0D,GAAAA,EAAA1D,EAAA,EAAA,EAAA,IAAA4D,EAAA,OAAA5D,EAAA,EAAA,IAAAc,GAAAd,QAAA+B,GAAA/B,EAAA,EAAA,IAAA0D,GArCZE,EAAA5B,EAAAA,IAAAgJ,EAAAA,KAAA,KAAA,CACE,gBAACE,EAAAA,KAAA,CACM,KAAA,IACI,QAAApK,EAMRiB,SAAAA,CAAAA,EASD2B,CAAAA,CAAAA,CAoBF,CAAA,CACF,EAAY1D,MAAAc,EAAAd,MAAA+B,EAAA/B,MAAA0D,EAAA1D,MAAA4D,GAAAA,EAAA5D,EAAA,EAAA,EAvCZ4D,CAuCY,ECvDHuH,GAAiBA,IAAA,CAAA,MAAAnL,EAAAC,EAAAA,EAAA,CAAA,EAC5BrB,EAAesD,EAAAA,EAAW,IAAA9B,EAAAJ,OAAApB,GACIwB,EAAAgC,GAAuBxD,CAEzC,EAFkBA,EAAAC,OAEjBmB,KAAApB,EAAAoB,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAFb,MAAA6J,EAA8BzJ,EAEjB,IAAAG,EAAAG,EAAA,OAAAV,OAAA6J,GAGXtJ,EAAAA,IACEsJ,GAAqB9C,YAA0B+C,aAAKzJ,KAClDsC,YAAUyI,GACDvB,EAAqBO,eAAgBgB,CAAU,CACvD,CACH,EACF1K,EAAA,CAACmJ,CAAqB,EAAC7J,KAAA6J,EAAA7J,KAAAO,EAAAP,KAAAU,IAAAH,EAAAP,EAAA,CAAA,EAAAU,EAAAV,EAAA,CAAA,GAPlBiB,EAAAA,WACLV,EAMAG,CACF,CAAC,EChBU2K,GAAgBA,IAAA,CAAA,MAAArL,EAAAC,EAAAA,EAAA,CAAA,EAC3B,CAAAiB,KAAA6F,CAAAA,EAA8BoE,GAAAA,EAAgB,IAAA/K,EAAAJ,OAAA+G,GAGtC3G,EAAA2G,GAAWmD,OAASpH,EAA0C,EAAC9C,KAAA+G,EAAA/G,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAAA,IAAAO,EAAA,OAAAP,OAAAI,GADhEG,EAAA,CAAAW,KACCd,CAAAA,EACPJ,KAAAI,EAAAJ,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAFMO,CAEN,EAL0B,SAAAuC,GAAA4F,EAAA,CAAA,OAIiBA,EAAU8B,KAAKc,UAAW,CCFjE,MAAMC,GAAkBnL,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,CAAA,EAAC,CAAAqK,WAAAA,CAAAA,EAAAlK,EAC9B,CAAAc,KAAA6F,CAAAA,EAA8BsE,GAAAA,EAAe,IAAA9K,EAAAP,EAAA,CAAA,IAAA+G,GAAA/G,OAAAsK,GAIxC/J,EAAAwG,GAAWlE,IAAMoH,GAChBjI,EAAAA,IAACqI,GAAA,CAEK,GAAAJ,EAAIc,SAASjC,GACLwB,WAAAA,CAAAA,EAFPL,EAAIc,SAASjC,GAIrB,EAAC9I,KAAA+G,EAAA/G,KAAAsK,EAAAtK,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAAA,IAAAU,EAAA,OAAAV,OAAAO,GAPJG,EAAAsB,EAAAA,IAAAgJ,EAAAA,KAAA,KAAA,CAAqB,UAAA,OAAY,MAAO,GAAA,EAAW,QAAA,QAChDzK,SAAAA,EAOH,EAAYP,KAAAO,EAAAP,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EARZU,CAQY,ECdH8K,GAAeA,IAAA,CAAA,MAAAxL,EAAAC,EAAAA,EAAA,CAAA,EAC1B,CAAAiB,KAAA6F,CAAAA,EAA8BoE,GAAAA,EAAgB,IAAA/K,EAAAJ,OAAA+G,GAGtC3G,EAAA2G,GAAWmD,OACfpH,EACF,EAAC9C,KAAA+G,EAAA/G,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAAA,IAAAO,EAAA,OAAAP,OAAAI,GAHIG,EAAA,CAAAW,KACCd,CAAAA,EAGPJ,KAAAI,EAAAJ,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAJMO,CAIN,EAPyB,SAAAuC,GAAA4F,EAAA,CAAA,MAKN,CAACA,EAAU8B,KAAKc,YAAhB,CAAgC5C,EAAUqC,SAASlE,KAAM,CCHxE,MAAM4E,GAAgBrL,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,CAAA,EAAC,CAAAqK,WAAAA,CAAAA,EAAAlK,EAC5B,CAAAc,KAAA6F,CAAAA,EAA8ByE,GAAAA,EAAc,IAAAjL,EAAAP,EAAA,CAAA,IAAA+G,GAAA/G,OAAAsK,GAIvC/J,EAAAwG,GAAWlE,IAAMoH,GAChBjI,MAACqI,IAEK,GAAAJ,EAAIc,SAASjC,GACLwB,WAAAA,EACG,cAAA,EAAA,EAHVL,EAAIc,SAASjC,GAKrB,EAAC9I,KAAA+G,EAAA/G,KAAAsK,EAAAtK,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAAA,IAAAU,EAAA,OAAAV,OAAAO,GARJG,EAAAsB,EAAAA,IAAAgJ,EAAAA,KAAA,KAAA,CAAqB,UAAA,OAAY,MAAO,GAAA,EAAW,QAAA,QAChDzK,SAAAA,EAQH,EAAYP,KAAAO,EAAAP,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EATZU,CASY,ECXHgL,GAA2BpK,EAAAA,KACtClB,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,EAAA,EAAC,CAAAqK,WAAAA,EAAAqB,WAAAA,CAAAA,EAAAvL,EAOC,CAAAwL,EAAAC,CAAA,EAAsBzF,EAAAA,SAASuF,GAAA,WAAyB,EAAC,IAAApL,EAAAP,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAKtCT,EAAAuL,GAAOD,EAAOC,EAACtL,KAAqC,EAACR,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAAA,IAAAU,EAAAV,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAGlEN,EAAAmI,EAAAA,KAAAkD,OAAA,QAAA,CAAoB,MAAA,YAClB,SAAA,CAAA/J,EAAAA,IAACgK,GAAAA,WAAA,EAAU,EAAG,WAAA,EAEhB,EAAehM,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAAA,IAAAc,EAAAd,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAJjBF,EAAA+H,EAAAA,KAAAkD,EAAAA,KAAA,KAAA,CACErL,SAAAA,CAAAA,EAIAmI,EAAAA,qBAAoB,MAAA,cAClB,SAAA,CAAA7G,EAAAA,IAAC2B,GAAAA,cAAA,EAAa,EAAG,aAAA,EAEnB,EACA3B,4BACF,EAAYhC,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAAA,IAAA+B,EAAA/B,OAAAsK,GACZvI,EAAAC,EAAAA,IAAA+J,EAAAA,KAAA,QAAA,CAAoB,MAAA,YAClB,SAAA/J,EAAAA,IAACyJ,GAAA,CAA0BnB,WAAAA,CAAAA,GAC7B,EAAetK,KAAAsK,EAAAtK,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EAAA,IAAAkD,EAAAlD,OAAAsK,GACfpH,EAAAlB,EAAAA,IAAA+J,EAAAA,KAAA,QAAA,CAAoB,MAAA,cAClB,SAAA/J,EAAAA,IAACuJ,GAAA,CAA4BjB,WAAAA,CAAAA,GAC/B,EAAetK,KAAAsK,EAAAtK,KAAAkD,GAAAA,EAAAlD,EAAA,CAAA,EAAA,IAAAsD,EAAA,OAAAtD,EAAA,CAAA,IAAA+B,GAAA/B,OAAAkD,GAAAlD,EAAA,CAAA,IAAA4L,GApBjBtI,SAAAyI,EAAAA,KAAA,KAAA,CACSH,MAAAA,EACQ,cAAArL,EAEfO,SAAAA,CAAAA,EAWAiB,EAGAmB,CAAAA,EAGF,EAAYlD,KAAA+B,EAAA/B,KAAAkD,EAAAlD,KAAA4L,EAAA5L,MAAAsD,GAAAA,EAAAtD,EAAA,EAAA,EArBZsD,CAqBY,CAGlB,EC3Ba2I,GAAoB3K,EAAAA,KAC/BlB,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,EAAA,EAAC,CAAAiM,SAAAA,EAAAC,QAAAA,EAAA7B,WAAAA,CAAAA,EAAAlK,EAaWG,EAAA,CAAC,CAAC2L,EAAQ,IAAAxL,EAAAV,OAAAmM,GACFzL,EAAAoL,GAAOK,EAAQL,EAACrF,IAAK,EAACzG,KAAAmM,EAAAnM,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAAA,IAAAc,EAAAd,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAC9BF,EAAA,CAAAsL,OAAU,OAAMC,GAAM,IAAA,EAAMrM,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAAA,IAAA+B,EAAA/B,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAIhCe,EAAAC,EAAAA,IAACwH,GAAA,CACC,SAAAxH,EAAAA,IAAC0H,GAAA,CAAY,uBAAW,EAC1B,EAAe1J,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EAAA,IAAAkD,EAAAlD,EAAA,CAAA,IAAAsK,GAAAtK,OAAAkM,GACfhJ,EAAAlB,EAAAA,IAACyH,IAAiB,KAAA,EAChB,eAACiC,GAAA,CACapB,WAAAA,EACA4B,aAAQ,CAAA,CAExB,EAAalM,KAAAsK,EAAAtK,KAAAkM,EAAAlM,KAAAkD,GAAAA,EAAAlD,EAAA,CAAA,EAAA,IAAAsD,EAAAE,EAAAxD,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GACbsC,EAAAtB,EAAAA,IAACuH,GAAA,CACC,SAAAvH,EAAAA,IAAC2H,GAAA,CAAoB,QAAA,GACnB,SAAA3H,MAACyB,EAAAA,OAAA,CAAe,QAAA,UAAU,SAAA,QAAA,CAAM,CAAA,CAClC,EACF,EACAD,QAAC6F,GAAA,EAAkB,EAAGrJ,KAAAsD,EAAAtD,KAAAwD,IAAAF,EAAAtD,EAAA,CAAA,EAAAwD,EAAAxD,EAAA,CAAA,GAAA,IAAA0D,EAAA1D,OAAAkD,GAfxBQ,EAAAmF,EAAAA,KAACK,GAAA,CAAqB,OAAA,OACpBnH,SAAAA,CAAAA,EAGAmB,EAMAI,EAKAE,CAAAA,EACF,EAAgBxD,KAAAkD,EAAAlD,MAAA0D,GAAAA,EAAA1D,EAAA,EAAA,EAAA,IAAA4D,EAAA,OAAA5D,EAAA,EAAA,IAAAO,GAAAP,QAAAU,GAAAV,EAAA,EAAA,IAAA0D,GAxBlBE,QAAC0F,GAAA,CACC,aACU,UAAA,SACJ,KAAA/I,EACQ,aAAAG,EACR,KAAAI,EACS,eAAA,SAEf4C,SAAAA,EAiBF,EAAa1D,MAAAO,EAAAP,MAAAU,EAAAV,MAAA0D,EAAA1D,MAAA4D,GAAAA,EAAA5D,EAAA,EAAA,EAzBb4D,CAyBa,CAGnB,EChDa0I,GAAQhL,EAAAA,KAAKlB,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,CAAA,EAAC,CAAAsB,SAAAA,CAAAA,EAAAnB,EACzBxB,EAAesD,EAAAA,EAAW,IAAA3B,EAAAP,EAAA,CAAA,IAAApB,GAAA2N,MAAAC,UAExBjM,EAAAA,IAAM3B,GAAM2N,MAAgBC,SAAAxM,EAAA,CAAA,EAAApB,GAAA2N,MAAAC,SAAAxM,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAAA,IAAAU,EAAAV,OAAApB,GAC5B8B,EAAA,CAAC9B,CAAM,EAACoB,KAAApB,EAAAoB,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAFV,KAAA,CAAAkB,KAAAuL,CAAAA,EAA+BxL,EAAAA,WAC7BV,EACAG,CACF,EAEA,GAAI,CAAC+L,EAAY,OAAS,KAAI,IAAA3L,EAAAd,EAAA,CAAA,IAAAuB,GAAAvB,OAAAyM,GAEpB3L,EAAA4L,GAAAA,aAAanL,EAAUkL,CAAY,EAACzM,KAAAuB,EAAAvB,KAAAyM,EAAAzM,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAAA,IAAA+B,EAAA,OAAA/B,OAAAc,GAAvCiB,oBAAGjB,SAAAA,CAAAA,CAAoC,EAAId,KAAAc,EAAAd,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EAA3C+B,CAA2C,CACnD,ECXY4K,GAAevM,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,CAAA,EAAC,CAAAgL,kBAAAA,EAAA2B,UAAAA,CAAAA,EAAAxM,EAO3BxB,EAAesD,EAAAA,EAAW,IAAA3B,EAAAG,EAAA,OAAAV,EAAA,CAAA,IAAAiL,GAAAjL,OAAA4M,GAAA5M,EAAA,CAAA,IAAApB,GAER2B,EAAAA,IACX3B,EAEDgO,IAAc/N,OACTgO,EAAAA,GAAGjO,EAAM2N,MAAMO,kBAAkBC,IAAKH,CAAS,CAAC,EAErD3B,IAAsBpM,OACjBD,EAAM2N,MAAMS,MAAMC,6BACOhC,CAAiB,EAAC5K,KAE9CwC,EAAAA,IAAIqK,GAAUtO,EAAM2N,MAAMO,kBAAkBC,IAAKG,GAAIN,SAAW,CAAC,CACnE,EAGG5J,EAAAA,MAbaA,EAAAA,MAcnBtC,GAACkM,EAAW3B,EAAmBrM,CAAM,EAACoB,KAAAiL,EAAAjL,KAAA4M,EAAA5M,KAAApB,EAAAoB,KAAAO,EAAAP,KAAAU,IAAAH,EAAAP,EAAA,CAAA,EAAAU,EAAAV,EAAA,CAAA,GAflCiB,EAAAA,WAAWV,EAefG,CAAsC,CAAC,ECxB/ByM,GAAoB/M,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,CAAA,EAAC,CAAAgL,kBAAAA,EAAA2B,UAAAA,CAAAA,EAAAxM,EAMjC,IAAAG,EAAAP,EAAA,CAAA,IAAAiL,GAAAjL,OAAA4M,GAC0CrM,EAAA,CAAA0K,kBAAAA,EAAA2B,UAAAA,CAAAA,EAAgC5M,KAAAiL,EAAAjL,KAAA4M,EAAA5M,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAAzE,KAAA,CAAAkB,KAAAkM,CAAAA,EAA4BT,GAAapM,CAAgC,EAAC,IAAAG,EAAAI,EAAAd,OAAAoN,GAExE1M,EAAAA,IAAQ0M,EAAoBA,EAASC,SAA9BC,EAAAA,MACPxM,EAAA,CAACsM,CAAS,EAACpN,KAAAoN,EAAApN,KAAAU,EAAAV,KAAAc,IAAAJ,EAAAV,EAAA,CAAA,EAAAc,EAAAd,EAAA,CAAA,GAFb,KAAA,CAAAkB,KAAAqM,CAAAA,EAA0BtM,EAAAA,WACxBP,EACAI,CACF,EAAC,IAAAiB,EAAA,OAAA/B,EAAA,CAAA,IAAAuN,GAAAvN,OAAAoN,GAEMrL,EAAA,CAAAqL,UAAAA,EAAAG,QAAAA,CAAAA,EAAsBvN,KAAAuN,EAAAvN,KAAAoN,EAAApN,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EAAtB+B,CAAsB,ECXlByL,GAAqBlM,EAAAA,KAChClB,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,EAAA,EAAC,CAAAgL,kBAAAA,EAAAwC,KAAAA,EAAAC,IAAAA,EAAAC,MAAAA,CAAAA,EAAAvN,EAUA,IAAAG,EAAAP,OAAAiL,GACoD1K,EAAA,CAAA0K,kBAAAA,CAAAA,EAElDjL,KAAAiL,EAAAjL,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAFD,KAAA,CAAAuN,QAAAK,CAAAA,EAAiCT,GAAkB5M,CAElD,EACD,CAAAW,KAAA2M,CAAAA,EAA4B1C,GAAAA,EAAgB,IAAAzK,EAAAV,EAAA,CAAA,IAAAiL,GAAAjL,OAAA6N,GACpBnN,EAAAmN,GAAS7D,KAC/B8D,GACEA,GAAQtD,MAAyBS,oBAAKA,GAAtC,CACC6C,EAAQtD,KAAKc,UAClB,EAACtL,KAAAiL,EAAAjL,KAAA6N,EAAA7N,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAJD,MAAA+N,EAAwBrN,EAcxB,GAAI,CAACkN,EAAW,OAAS,KAEzB,MAAAI,EAAoBL,EAAQ,GAAO,EAItB7M,EAAA,CAAC,CAACiN,EAAe,IAAAhM,EAAA/B,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAEXe,EAAA,CAAAF,MAAS,UAASC,QAAW,UAAA,EAAY9B,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EAMhD,MAAAkD,EAAAuK,EAAOE,EAaArK,EAAA,GAAG0K,CAAU,qBACZxK,EAAA,GAAGwK,CAAU,uBAAsB,IAAAtK,EAAA1D,EAAA,CAAA,IAAAsD,GAAAtD,OAAAwD,GARxCE,EAAA,CAAAuK,QACE,KAAIC,SACH,WAAUR,IACf,EAACD,KACA,EAACE,MACA,EAACQ,OACA,EAACC,UACE9K,EAAiC+K,WAChC7K,CAAAA,EACbxD,KAAAsD,EAAAtD,KAAAwD,EAAAxD,KAAA0D,GAAAA,EAAA1D,EAAA,CAAA,EAAA,IAAA4D,EAAA5D,EAAA,CAAA,IAAAgO,GAAAhO,EAAA,EAAA,IAAAkD,GAAAlD,EAAA,EAAA,IAAA0D,GAAA1D,QAAA0N,GAlBH9J,QAACiE,EAAAA,IAAA,CACqBvJ,qBAAAA,GACX,SAAA,WACH,KAAA4E,EACI,UAAA,oBACI,cAAA,OACTwK,IAAAA,EACEM,MAAAA,EACCA,SACC,QAAAtK,EASR,EACD1D,KAAAgO,EAAAhO,MAAAkD,EAAAlD,MAAA0D,EAAA1D,MAAA0N,EAAA1N,MAAA4D,GAAAA,EAAA5D,EAAA,EAAA,EAAA,IAAA0H,EAAA,OAAA1H,EAAA,EAAA,IAAAc,GAAAd,QAAA4D,GAzBJ8D,EAAA1F,EAAAA,IAACC,EAAAA,SAAA,CACU,QAAAnB,EACT,UAAA,GACe,cAAAiB,EACG,kBAAA,WAElB6B,SAAAA,CAAAA,CAoBF,EAAW5D,MAAAc,EAAAd,MAAA4D,EAAA5D,MAAA0H,GAAAA,EAAA1H,EAAA,EAAA,EA1BX0H,CA0BW,CAGjB,EChEa4G,GAAsBhN,EAAAA,KAAK,IAAA,CAAA,MAAAtB,EAAAC,EAAAA,EAAA,CAAA,EACtCrB,EAAesD,EAAAA,EAAW,IAAA9B,EAAAJ,EAAA,CAAA,IAAApB,GAAA2P,aACSnO,EAAAA,IAAMxB,GAAM2P,YAAavO,EAAA,CAAA,EAAApB,GAAA2P,YAAAvO,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAAA,IAAAO,EAAAP,OAAApB,GAAE2B,EAAA,CAAC3B,CAAM,EAACoB,KAAApB,EAAAoB,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAAtE,KAAA,CAAAkB,KAAA8L,CAAAA,EAAwB/L,EAAAA,WAAWb,EAA2BG,CAAQ,EAAC,IAAAG,EAAAV,EAAA,CAAA,IAAAgN,GAAAA,OAIlEtM,EAAAsM,GAAKA,MAAWnK,IACfC,EASF,EAAC9C,EAAA,CAAA,EAAAgN,GAAAA,MAAAhN,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAAA,IAAAc,EAAA,OAAAd,OAAAU,GAXHI,EAAAkB,EAAAA,IAACsK,IACE5L,SAAAA,CAAAA,CAWH,EAAQV,KAAAU,EAAAV,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAZRc,CAYQ,CAEX,EAnBuC,SAAAgC,GAAA1C,EAAAoO,EAAA,CAO/B,KAAA,CAAAC,eAAAlO,CAAAA,EAAAH,EAAkB,CAAAqN,KAAAA,EAAAC,IAAAA,EAAAC,MAAAA,CAAAA,EAAApN,EAAoB,aACpCiN,GAAA,CAEoBgB,kBAAAA,EACbf,KAAAA,EACDC,IAAAA,EACEC,MAAAA,GAJFa,CAIO,CACZ,CCbZ,MAAME,GAAuB,GAEhBC,GAAyBA,IAAA,CAAA,MAAA3O,EAAAC,EAAAA,EAAA,CAAA,EACpCrB,EAAe2D,GAAAA,EACf,CAAArB,KAAA2M,CAAAA,EAA4B1C,GAAAA,EAC5ByD,EAAsBzN,GAAAA,EAAkB,IAAAf,EAAAG,EAAAP,EAAA,CAAA,IAAA6N,GAAA7N,OAAApB,GAAAoB,EAAA,CAAA,IAAA4O,GAE9BxO,EAAAA,IACHxB,EAESA,EAAMiQ,SAASC,MAAMC,SACjC,mBACArO,GAAA,CAAC,KAAA,CAAAsO,OAAAA,CAAAA,EAAAtO,EAAU,OACTsO,EAAM3O,KACJ4O,EAAAA,eAAerQ,GAAMmI,YAAyBmI,WAAA,EAC9CrM,MAAI/B,GAAA,CAAC,KAAA,CAAAZ,EAAAiP,CAAA,EAAArO,EACH,GAAI,CAACZ,EAAOgN,KAAK,OAASwB,GAE1B,KAAA,CAAAtB,UAAAA,EAAAgC,mBAAAA,EAAAC,sBAAAA,EAAAC,SAAAA,CAAAA,EAKIpP,EAAOgN,KAaX,GAX+BqC,GAAAA,iBAC7BF,EACA,CAAAG,KACQ,SAAQC,OACN,YAAWC,KACb,GAAEC,KACF,GAAA,EAERL,CACF,EAE0B,CACxB,MAAAM,EAAkBhR,EAAM2N,MAAMS,MAAM6C,uBAClCzC,EACAgC,CACF,EAEA,GAAI,CAACQ,EAAS,OAASlB,GAEvB,MAAAX,EAAwBF,GAAS7D,KAC/B8D,GACEA,GAAQtD,MAAyBS,oBAC/B2E,EAAS3E,mBACX6C,EAAQtD,KAAKG,QAAW9L,MAC5B,EAEA,GAAIkP,EACFa,OAAAA,EAAapO,MAAMwF,qBACjB+H,EAAehD,SAASjC,EAC1B,EAEO,CAAC4F,GAKV,GAFwBS,IAAaS,EAAS3E,iBAAkB,EAE7C,CACjB,MAAAvC,EAAmB9J,GAAMmI,YAA8B4B,iBAAC,CAAAsC,kBACnC2E,EAAS3E,iBAAAA,CAC7B,EAED,OAAIvC,GACFkG,EAAapO,MAAMsF,qBAAsB4C,CAAU,EAG9C,CAACgG,EAAoB,CAC7B,CACF,OAEMA,EAAoB,CAC5B,CACH,CAAC,CACL,EArEW,OAwEVnO,GAAC3B,EAAQiP,EAAWe,CAAa,EAAC5O,KAAA6N,EAAA7N,KAAApB,EAAAoB,KAAA4O,EAAA5O,KAAAI,EAAAJ,KAAAO,IAAAH,EAAAJ,EAAA,CAAA,EAAAO,EAAAP,EAAA,CAAA,GAzErC8G,EAAAA,UAAU1G,EAyEPG,CAAkC,CAAC,EClF3BuP,GAAmCA,IAAA,CAAA,MAAA9P,EAAAC,EAAAA,EAAA,CAAA,EAC9CrB,EAAe2D,GAAAA,EAA0B,IAAAnC,EAAAJ,OAAApB,GAGvCwB,EAAAA,IAIExB,GAAMiQ,SAAgBC,MAASC,SAAC,mBAAoBxO,GAAA,CAAC,KAAA,CAAAyO,OAAAA,CAAAA,EAAAzO,EAAU,OAC7DyO,EAAM3O,KACJ4O,EAAAA,eAAerQ,EAAM6D,UAAUsN,2BAA4B,EAC3DlN,MAAInC,GAAA,CAAC,KAAA,CAAAI,EAAAkP,CAAA,EAAAtP,EAAC,CAAA8F,MAAAA,CAAAA,EAAA1F,EACJuH,EAAe7B,EAAKA,MAAM6B,OAQE,MAErB,EAHJA,GAAUzJ,EAAMmI,YAAYkJ,wBAAyB5H,CAAM,GAA5D2H,EAGwB,CAC3B,CACH,CAAC,CACH,EAAChQ,KAAApB,EAAAoB,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAtBL,MAAAkQ,EAAyB9P,EA0BzBiH,EAAAA,aAAa6I,CAAgB,CAAC,EC5BnBC,GAA+BA,IAAA,CAAA,MAAAnQ,EAAAC,EAAAA,EAAA,CAAA,EAC1CrB,EAAe2D,GAAAA,EACfrC,EAAgBiB,GAAAA,EAAkB,IAAAf,EAAAJ,EAAA,CAAA,IAAAE,GAAAF,OAAApB,GAEYwB,EAAAA,IAAA,CAC5C,GAAIxB,EAAM,CACR,MAAAwR,EAA2BlQ,EAAOG,KAChCwC,EAAAA,IAAIC,EAAqD,EACzDuN,EAAAA,sBACF,EAEAvG,EAAqB5J,EAAOG,KAC1BwC,EAAAA,IAAIyN,EAAsC,EAC1CD,EAAAA,sBACF,EAEAE,EAAiCC,gBAAc,CAC7C1G,EACAsG,CAAkB,CACnB,EAAC/P,KACAwC,MAAI4N,EAKJ,CACF,EAEA7R,EAAMmI,YAAY3D,OAAQ,CAAA0G,aAAgByG,CAAAA,CAA0B,CAAC,CACtE,EACFvQ,KAAAE,EAAAF,KAAApB,EAAAoB,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EA1BD,MAAA0Q,EAAkCtQ,EA4BlCiH,EAAAA,aAAaqJ,CAAyB,CAAC,EAhCG,SAAA5N,GAAA6N,EAAA,CAAA,OAOnBzQ,EAAOP,mBAA6BsG,WAAI6C,EAAA,CAPrB,SAAAwH,GAAAM,EAAA,CAAA,OAYnB1Q,EAAO6G,aAAP,CAAA,CAAyB,CAZN,SAAA0J,GAAArQ,EAAA,CAoB/B,KAAA,CAAA2G,EAAApH,CAAA,EAAAS,EAAgC,OACnC2G,EAAWlE,IAAK6F,IAAiB,CAAA,GAC5BA,EAAUmI,SACHnI,EAAUI,KAAQnJ,CAAAA,EAC5B,CAAC,CCjBN,MAAMmR,GAAmBC,EAAAA,cAAc,CAC5CC,UAAW,aACXC,gBAAiB,EACnB,CAAC,EAEYC,GAAUA,IAAA,CAAA,MAAAlR,EAAAC,EAAAA,EAAA,CAAA,EAAA,IAAAG,EAAA,OAAAJ,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAEnBZ,EAAA4B,EAAAA,IAAC8C,EAAAA,OAAA,CACC,SAAA9C,EAAAA,IAACmP,EAAAA,QAAA,CAAuBL,QAAAA,GAAsB,YAAA,CAAA1E,OAAU,GAAA,EACrDtJ,YAmBH,EACF,EAAS9C,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAtBTI,CAsBS,EAxBU,SAAA0C,GAAAsO,EAAA,CAAA,OAKbvI,OAAAwI,EAAAA,MAAA,KAAA,CAAmB,MAAA,CAAAhF,GAAM,IAAA,EACtB+E,SAAAA,CAAAA,EAAK5B,OAAU,UACdxN,EAAAA,IAACsP,EAAAA,QAAA,CAAa,KAAA,KAAW,MAAA,YAAA,GAEzBtP,EAAAA,IAAAqP,EAAAA,MAAA,UAAA,CAAA,CAAA,SAEDrJ,EAAAA,MAAA,CAAU,IAAA,IAAS,KAAA,IAAa,SAAA,OAC9BoJ,SAAAA,CAAAA,EAAKG,OAAUvP,EAAAA,mBAAcoP,WAAKG,MAAO,EACzCH,EAAKI,aACJxP,EAAAA,IAAAqP,EAAAA,MAAA,YAAA,CAAoBD,WAAKI,WAAAA,CAAa,CAAA,EAE1C,EACCJ,EAAKK,QACJzP,EAAAA,2BAAsBoP,SAAAA,EAAKK,OAAOC,MAAO,EAE1CN,EAAK5G,MAAemH,UAAI3P,EAAAA,IAAAqP,EAAAA,MAAA,aAAA,CAAA,CAAA,CAAA,EAC3B,CAAa,CC7BvB,MAAMO,GAAiBxR,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,EAAA,EAAA,IAAAsB,EAAA8C,EAAArE,OAAAI,GAAC,CAAAmB,SAAAA,EAAA,GAAA8C,CAAAA,EAAAjE,EAKHJ,KAAAI,EAAAJ,KAAAuB,EAAAvB,KAAAqE,IAAA9C,EAAAvB,EAAA,CAAA,EAAAqE,EAAArE,EAAA,CAAA,GACnB,MAAA6R,EAAoBC,EAAAA,YAAYhP,EAA4C,EAAC,IAAAvC,EAAAP,EAAA,CAAA,IAAA6R,EAAArR,MAAAnB,kBAI5BkB,EAAAA,IAC/CxB,EAAAA,OAAO,CAAAC,QAAW6S,EAAWrR,MAAMnB,gBAAAA,CAAmB,EAACW,EAAA,CAAA,EAAA6R,EAAArR,MAAAnB,iBAAAW,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EADzD,MAAA+R,EAAqCD,EAAAA,YAAYvR,CAEjD,EACAyR,EAA0CtQ,EAAAA,eACxCqQ,CACF,EAAC,IAAArR,EAAAV,OAAA+R,GAECrR,EAAA+F,GAAA,CACEsL,EAA4B3O,OAAQqD,CAAI,CAAC,EAC1CzG,KAAA+R,EAAA/R,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAHH,MAAAiS,EAA6CvR,EAK5C,IAAAI,EAAAd,OAAA6R,GAGG/Q,EAAAoR,GAAA,CACEL,EAAWzO,OAAQ+O,IAAU,CAAA,GACxBA,EAAG1T,eAEJ,OAAOyT,GAAmB,WACtBA,EAAeC,EAAG1T,cACL,EAFjByT,CAAAA,EAGF,CAAC,EACJlS,KAAA6R,EAAA7R,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAVL,MAAAtB,EACEoC,EAWC,IAAAiB,EAAA/B,EAAA,CAAA,IAAA6R,EAAArR,MAAArB,eAC2C4C,EAAAA,IAC5ChD,EAAAA,OAAO,CAAAC,QAAW6S,EAAWrR,MAAMrB,aAAAA,CAAgB,EAACa,EAAA,CAAA,EAAA6R,EAAArR,MAAArB,cAAAa,MAAA+B,GAAAA,EAAA/B,EAAA,EAAA,EADtD,MAAAoS,EAAkCN,EAAAA,YAAY/P,CAE9C,EAAC,IAAAmB,EAAAlD,QAAAoS,GAEClP,EAAAmP,GAAA,CACED,EAAyBhP,OAAQqD,CAAI,CAAC,EACvCzG,MAAAoS,EAAApS,MAAAkD,GAAAA,EAAAlD,EAAA,EAAA,EAHH,MAAAsS,EAA0CpP,EAM1CqP,EAAuC7Q,EAAAA,eACrC0Q,CACF,EAEAI,EAAsBC,EAAAA,eAAepO,EAAOzD,iBAAc,EAAC,IAAA0C,EAAAE,EAAAxD,EAAA,EAAA,IAAAtB,GAAAsB,EAAA,EAAA,IAAAwS,GAAAxS,EAAA,EAAA,IAAAgS,GAAAhS,QAAAiS,GAAAjS,EAAA,EAAA,IAAAsS,GAAAtS,EAAA,EAAA,IAAAuS,GAAAvS,EAAA,EAAA,IAAA6R,GAEjDvO,EAAAA,IAAA,CACRuO,EAAWzO,OAAQsP,IAAU,CAAA,GACxBP,EAAG,GACHK,EAAalT,yBACU2S,EAAoC5S,iBAC5C2S,EAAiC5S,sBAC5BkT,EAAiCnT,cACzCoT,EAA8B7T,uBAAAA,CAAAA,EAE7C,CAAC,EACF8E,EAAA,CACDgP,EACA9T,EACAmT,EACAG,EACAC,EACAM,EACAD,CAAiC,EAClCtS,MAAAtB,EAAAsB,MAAAwS,EAAAxS,MAAAgS,EAAAhS,MAAAiS,EAAAjS,MAAAsS,EAAAtS,MAAAuS,EAAAvS,MAAA6R,EAAA7R,MAAAsD,EAAAtD,MAAAwD,IAAAF,EAAAtD,EAAA,EAAA,EAAAwD,EAAAxD,EAAA,EAAA,GAlBD8G,EAAAA,UAAUxD,EAUPE,CAQF,EAAC,IAAAE,EAAA,OAAA1D,EAAA,EAAA,IAAAuB,GAAAvB,QAAA6R,GAGAnO,QAAA9D,GAAA,SAAA,CAA+BiS,MAAAA,EAC5BtQ,SAAAA,EACH,EAAyBvB,MAAAuB,EAAAvB,MAAA6R,EAAA7R,MAAA0D,GAAAA,EAAA1D,EAAA,EAAA,EAFzB0D,CAEyB,EAIhBiP,GAAsBrR,EAAAA,KACjClB,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,CAAA,EAAA,IAAAsB,EAAA8C,EAAArE,OAAAI,GAAC,CAAAmB,SAAAA,EAAA,GAAA8C,CAAAA,EAAAjE,EAA6DJ,KAAAI,EAAAJ,KAAAuB,EAAAvB,KAAAqE,IAAA9C,EAAAvB,EAAA,CAAA,EAAAqE,EAAArE,EAAA,CAAA,GAAA,IAAAO,EAAA,OAAAP,EAAA,CAAA,IAAAuB,GAAAvB,OAAAqE,GACrD9D,EAAAyB,EAAAA,IAAC4P,GAAA,CAAc,GAAKvN,EAAQ9C,SAAAA,CAAAA,CAAS,EAAiBvB,KAAAuB,EAAAvB,KAAAqE,EAAArE,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAAtDO,CAAsD,CAEjE,EAjFuB,SAAAuC,IAAA,CAAA,OAMiB/D,SAAO,CAAAC,QAAWR,GAAAA,CAAgB,CAAG,CAAC,CCRvE,MAAMoU,GAAQzO,GAAMC,WACzB,SAAAC,EAAAC,EAAA,CAAA,MAAAtE,EAAAC,EAAAA,EAAA,EAAA,EAAA,IAAAsB,EAAAsR,EAAArR,EAAAsR,EAAA9S,OAAAqE,GACE,CAAA9C,SAAAA,EAAAsR,WAAAA,EAAAC,QAAAA,EAAA,GAAAtR,CAAAA,EAAmD6C,EAAKrE,KAAAqE,EAAArE,KAAAuB,EAAAvB,KAAA6S,EAAA7S,KAAAwB,EAAAxB,KAAA8S,IAAAvR,EAAAvB,EAAA,CAAA,EAAA6S,EAAA7S,EAAA,CAAA,EAAAwB,EAAAxB,EAAA,CAAA,EAAA8S,EAAA9S,EAAA,CAAA,GAAA,IAAAI,EAAAJ,EAAA,CAAA,IAAA6S,GAAA7S,OAAAsE,GAGpDlE,sCAAuCkE,IAAAA,EAAG,GAAMuO,EAAU,EAAI7S,KAAA6S,EAAA7S,KAAAsE,EAAAtE,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAAA,IAAAO,EAAAP,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAC9DT,EAAAyB,EAAAA,IAAA+Q,aAAA,cAAA,CAAA,CAAA,EAAkC/S,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAAA,IAAAU,EAAAV,OAAAuB,GACjCb,EAAAa,GACCS,EAAAA,IAAA+Q,EAAAA,WAAA,SAAA,CAA4BxR,SAAAA,EAAS,EACtCvB,KAAAuB,EAAAvB,MAAAU,GAAAA,EAAAV,EAAA,EAAA,EAAA,IAAAc,EAAA,OAAAd,EAAA,EAAA,IAAAwB,GAAAxB,EAAA,EAAA,IAAA8S,GAAA9S,EAAA,EAAA,IAAAI,GAAAJ,QAAAU,GALHI,4BAA4BgS,IAAAA,KAAatR,EACvCpB,SAAAA,CAAAA,EACAG,EACCG,CAAAA,EAGH,EAAwBV,MAAAwB,EAAAxB,MAAA8S,EAAA9S,MAAAI,EAAAJ,MAAAU,EAAAV,MAAAc,GAAAA,EAAAd,EAAA,EAAA,EANxBc,CAMwB,CAG9B,EAEakS,GAAaD,EAAAA,WAAiB9N,KCd9BgO,GAAS9O,GAAM7C,KAAK,SAAAlB,EAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,EAAA,EAAA,IAAAyR,EAAAwB,EAAA5O,EAAA9C,EAAA2R,EAAA5S,EAAAC,EAAA,GAAAR,OAAAI,EAAA,CAAgB,KAAA,CAAAkE,IAAA5D,EAAA,GAAA2D,CAAAA,EAAAjE,EAAAkE,EAAA5D,EAI/C,KAAA,CAAAwS,MAAAE,EAAA1B,MAAA5Q,EAAAqS,UAAApR,EAAA,GAAAmB,CAAAA,EAAwDmB,EAAxDqN,EAAA5Q,EAAAqS,EAAApR,EAAAP,EAAA0B,EACA1C,EAAc6D,EAAKxD,cAAiBwD,EAAK7D,MAEzC0S,EAAcE,GAASvQ,IAAMC,EAG5B,EAEsBvC,EAAA2S,GAAKG,KAAO/C,EAAoB,EAACtQ,KAAAI,EAAAJ,KAAA0R,EAAA1R,KAAAkT,EAAAlT,KAAAsE,EAAAtE,KAAAwB,EAAAxB,KAAAmT,EAAAnT,KAAAO,EAAAP,KAAAQ,CAAA,MAAAkR,EAAA1R,EAAA,CAAA,EAAAkT,EAAAlT,EAAA,CAAA,EAAAsE,EAAAtE,EAAA,CAAA,EAAAwB,EAAAxB,EAAA,CAAA,EAAAmT,EAAAnT,EAAA,CAAA,EAAAO,EAAAP,EAAA,CAAA,EAAAQ,EAAAR,EAAA,CAAA,EAAxD,MAAAsT,EAAqB,CAAC,CAAC/S,EAAiC,IAAAG,EAAAV,EAAA,CAAA,IAAA0R,GAAA1R,OAAAmT,GAInDzS,EAAAgR,GAAA,CAAUyB,SAAaI,EAAAA,OAAA,MAAA,CAAqB7B,SAAAA,EAAM,EAAqB1R,KAAA0R,EAAA1R,KAAAmT,EAAAnT,MAAAU,GAAAA,EAAAV,EAAA,EAAA,EAAA,IAAAc,EAAAd,EAAA,EAAA,IAAA0R,GAAA1R,QAAAmT,GACvErS,EAAA4Q,GAAAyB,GACCtK,EAAAA,KAAC2K,EAAAA,OAAA,CAAe,QAAA,gBACd,SAAA,CAAAxR,EAAAA,oBAAqB0P,SAAAA,CAAAA,CAAM,EAC3B1P,MAAAuR,EAAAA,OAAA,UAAA,CAAA,CAAA,CAAA,EACF,EACDvT,MAAA0R,EAAA1R,MAAAmT,EAAAnT,MAAAc,GAAAA,EAAAd,EAAA,EAAA,EAC0C,MAAA+B,EAAAuR,GAAAzU,OAAyB,IAAAqE,EAAAlD,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAClEkC,EAAAlB,EAAAA,IAAAuR,SAAA,MAAA,CACE,kCACF,EAAqBvT,MAAAkD,GAAAA,EAAAlD,EAAA,EAAA,EAAA,IAAAsD,EAAAtD,QAAAQ,GACrB8C,QAACmQ,IAAoBjT,MAAAA,CAAAA,CAAK,EAAIR,MAAAQ,EAAAR,MAAAsD,GAAAA,EAAAtD,EAAA,EAAA,EAAA,IAAAwD,EAAAxD,QAAAkT,GAC9B1P,QAACkQ,IAAmBR,MAAAA,CAAAA,CAAK,EAAIlT,MAAAkT,EAAAlT,MAAAwD,GAAAA,EAAAxD,EAAA,EAAA,EAAA,IAAA0D,EAAA1D,EAAA,EAAA,IAAA+B,GAAA/B,QAAAsD,GAAAtD,EAAA,EAAA,IAAAwD,GAL/BE,2BAA2C,sBAAA3B,EACzCmB,SAAAA,CAAAA,EAGAI,EACAE,CAAAA,EACF,EAAuBxD,MAAA+B,EAAA/B,MAAAsD,EAAAtD,MAAAwD,EAAAxD,MAAA0D,GAAAA,EAAA1D,EAAA,EAAA,EAAA,IAAA4D,EAAA,OAAA5D,EAAA,EAAA,IAAAsE,GAAAtE,EAAA,EAAA,IAAAwB,GAAAxB,EAAA,EAAA,IAAAU,GAAAV,EAAA,EAAA,IAAAc,GAAAd,QAAA0D,GAdzBE,EAAAiF,EAAAA,KAAA0K,EAAAA,OAAA,KAAA,CAAwBjP,IAAAA,EAAoB,eAAA,SAAQ,GAAK9C,EACtDd,SAAAA,CAAAA,EACAI,EAMD4C,CAAAA,EAOF,EAAoB1D,MAAAsE,EAAAtE,MAAAwB,EAAAxB,MAAAU,EAAAV,MAAAc,EAAAd,MAAA0D,EAAA1D,MAAA4D,GAAAA,EAAA5D,EAAA,EAAA,EAfpB4D,CAeoB,CAEvB,EAED,SAAA6P,GAAApP,EAAA,CAAA,MAAArE,EAAAC,EAAAA,EAAA,CAAA,EACE,CAAAO,MAAAA,CAAAA,EAAkB6D,EAAK,IAAAjE,EAAA,OAAAJ,OAAAQ,GAErBJ,EAAA4B,EAAAA,IAAC2R,MAAA,CAAUnT,KAAAA,EACRiQ,SAAAA,GAKH,EAAMzQ,KAAAQ,EAAAR,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EANNI,CAMM,CATV,SAAAqQ,GAAAmD,EAAAC,EAAA,CAAA,OAKQ7R,MAAAuR,EAAAA,OAAA,MAAA,CAAuCM,MAAAA,EACrC,eAAAN,EAAAA,OAAA,YAAA,EAAA,CAAA,EADuBM,CAEzB,CAAqB,CAU7B,MAAMH,GAAcvP,GAAMC,WACxB,SAAAC,EAAAC,EAAA,CAAA,MAAAtE,EAAAC,EAAAA,EAAA,CAAA,EACE,CAAAiT,MAAAA,CAAAA,EAAkB7O,EAClB,GAAI,CAAC6O,GAAKlP,OAAQ,OAAS,KAAI,IAAA5D,EAAAJ,OAAAkT,GAI1B9S,EAAA8S,EAAKrQ,IAAKiR,EASV,EAAC9T,KAAAkT,EAAAlT,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAAA,IAAAO,EAAA,OAAAP,EAAA,CAAA,IAAAsE,GAAAtE,OAAAI,GAVJG,EAAAyB,EAAAA,IAAAuR,SAAA,YAAA,CAA+BjP,IAAAA,EAC5BlE,SAAAA,EAUH,EAA2BJ,KAAAsE,EAAAtE,KAAAI,EAAAJ,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAX3BO,CAW2B,CAGjC,EAvEiC,SAAAuC,GAAAiR,EAAA,CAQ7B,OAAI,OAAOA,GAAS,SAAiB,CAAAvT,MAASuT,EAAIrC,MAAS7S,MAAAA,EACpDkV,CAAI,CATkB,SAAAzD,GAAA0D,EAAA,CAAA,OAYcD,EAAIrC,KAAM,CAwCvD,SAAAoC,GAAAC,EAAAF,EAAA,CAOQ,MAAArT,EAAc,OAAOuT,GAAS,SAAhBA,EAAkCA,EAAIvT,MACpDkR,EAAc,OAAOqC,GAAS,SAAhBlV,OAAuCkV,EAAIrC,MAAM,OAE7D7I,EAAAA,KAAA0K,EAAAA,OAAA,OAAA,CAAwC/S,MAAAA,EACtC,SAAA,CAAAwB,MAAAuR,EAAAA,OAAA,gBAAA,EAAA,EACC7B,CAAAA,CAAAA,EAFuBmC,CAG1B,CAAsB,CC1E3B,MAAMI,GAAkD,CAC7D,CACEzT,MAAO,SACP0T,WAAY,CAAC,QAAQ,CACvB,EACA,CACE1T,MAAO,OACP0T,WAAY,CAAC,MAAM,CACrB,EACA,CACE1T,MAAO,SACP0T,WAAY,CAAC,SAAU,SAAU,SAAS,CAC5C,CAAC,EC4BGC,GACJF,GAAgDpR,IAAKoH,GAASA,EAAKzJ,KAAK,EACpE4T,GACJH,GAAgDI,QAC7CpK,GAASA,EAAKiK,UACjB,EAEII,GACJC,GACG,CACH,GAAKA,EAIL,OAAON,GAAgDjK,KAAMC,GAC1DA,EAAKiK,WAAiCM,SAASD,CAAS,CAC3D,GAAG/T,KACL,EAEaiU,GAAyBnT,EAAAA,KAAK,IAAA,CAAA,MAAAtB,EAAAC,EAAAA,EAAA,EAAA,EACzCC,EAAgBiB,GAAAA,EAAkB,IAAAf,EAAAJ,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAYRZ,EAAA,CACxB,mBACA,2BACA,WACA,cACA,cACA,gBACA,mBACA,wBACA,uBACA,gBAAgB,EACjBJ,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAtBD,KAAA,CAAAX,iBAAAA,EAAAC,yBAAAA,EAAAG,qBAAAA,EAAAiV,SAAAnU,EAAAhB,YAAAA,EAAAC,YAAAA,EAAAmV,cAAAA,EAAAC,eAAAA,EAAAC,iBAAAA,EAAAC,sBAAAA,CAAAA,EAWIhV,GAAsBM,CAWzB,EAlBCsU,EAAAnU,IAAA1B,OAAAY,EAAAc,EAmBFwU,EAA4BC,EAAAA,WAAWH,CAAgB,EACvD,CAAAI,EAAAC,CAAA,EACE9O,EAAAA,SACEuO,GAAA,QACF,EAAC,IAAAjU,EAAAV,EAAA,CAAA,IAAAE,GAAAF,OAAA+U,GAEDrU,EAAAA,CAAAyU,EAAA3U,KAAA,CACMuU,EAAmBK,QACrBL,EAAmBK,QAASD,EAAO3U,EAAK,EAExCN,EAAOkD,OAAQ+O,KAAU,CAAA,GACpBA,GAAG1S,qBACgBe,EAAAA,EACtB,CACH,EACFR,KAAAE,EAAAF,KAAA+U,EAAA/U,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAVH,MAAAqV,EAAqB3U,EAYpB,IAAAI,EAAAd,EAAA,CAAA,IAAA0U,GAAA1U,OAAA4U,GAEC9T,EAAAwU,GACSV,IAAiBO,CAAK,GAAtBT,EACR1U,KAAA0U,EAAA1U,KAAA4U,EAAA5U,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAHH,MAAAuV,EAAyBzU,EAKxB,IAAAiB,EAAA/B,OAAA8U,GAGC/S,EAAAyT,GAAA,CAKE,MAAAC,GAAcD,EAAOhV,MAErBsU,IAAwBtU,EAAK,CAAC,EAC/BR,KAAA8U,EAAA9U,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EATH,MAAA0V,EAA2B3T,EAW1B,IAAAmB,EAAAlD,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAEoCkC,EAAAyS,GAAA,CACnCT,EAAYM,EAAOhV,KAAqD,CAAC,EAC1ER,KAAAkD,GAAAA,EAAAlD,EAAA,CAAA,EAFD,MAAA4V,EAAyB1S,EAEnB,IAAAI,EAAAtD,EAAA,EAAA,IAAAqV,GAAArV,QAAAiV,GAGJ3R,EAAAuS,GAAA,CACE,MAAAC,GAAcN,EAAOhV,MAAM,CAAA,GAAb,EAEd6U,EAAaJ,EAAUzU,GAAQ,GAAG,CAAC,EACpCR,MAAAqV,EAAArV,MAAAiV,EAAAjV,MAAAsD,GAAAA,EAAAtD,EAAA,EAAA,EALH,MAAA+V,EAA4BzS,EAO3B,IAAAE,EAAAE,EAAA1D,QAAA2U,GAGCnR,YAAA,CACE0R,EAAYP,GAAA,QAAyB,CAAC,EAExCjR,EAAA,CAACiR,CAAa,EAAC3U,MAAA2U,EAAA3U,MAAAwD,EAAAxD,MAAA0D,IAAAF,EAAAxD,EAAA,EAAA,EAAA0D,EAAA1D,EAAA,EAAA,GAJjB8G,EAAAA,UACEtD,EAGAE,CACF,EAAC,IAAAE,EAAA5D,QAAAV,GAMiBsE,EAAAkI,GAAA,CACZxM,EAAyBwM,EAACrF,IAAK,CAAC,EACjCzG,MAAAV,EAAAU,MAAA4D,GAAAA,EAAA5D,EAAA,EAAA,EAAA,IAAA0H,EAAA1H,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAIC0G,EAAA1F,EAAAA,IAACwH,GAAA,CACC,SAAAxH,EAAAA,IAAC0H,GAAA,CAAY,qBAAS,EACxB,EAAe1J,MAAA0H,GAAAA,EAAA1H,EAAA,EAAA,EAAA,IAAA2H,EAAAI,EAAA/H,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAIT2G,EAAA3F,EAAAA,IAAAgU,EAAAA,SAAA,OAAA,CAAiB,SAAA,QAAK,EACtBjO,EAAA/F,EAAAA,IAAAgU,EAAAA,SAAA,WAAA,CAAqB,SAAA,wDAErB,EAAsBhW,MAAA2H,EAAA3H,MAAA+H,IAAAJ,EAAA3H,EAAA,EAAA,EAAA+H,EAAA/H,EAAA,EAAA,GAAA,IAAAiI,EAAAjI,QAAA2U,GAIX1M,EAAAqM,GAAqBK,CAAyB,GAA9C,SAA+C3U,MAAA2U,EAAA3U,MAAAiI,GAAAA,EAAAjI,EAAA,EAAA,EAC5C,MAAAmI,GAAC2M,EAAqB,IAAAxM,EAAAtI,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAEhCsH,QAACkL,SAAA,CAAY,MACVW,SAAAA,GAAsBtR,IAAKC,EAI3B,EACH,EAAS9C,MAAAsI,GAAAA,EAAAtI,EAAA,EAAA,EAAA,IAAAwI,EAAAxI,EAAA,EAAA,IAAA0V,GAAA1V,QAAAiI,GAAAjI,EAAA,EAAA,IAAAmI,GAjBfK,EAAAK,EAAAA,KAAAmN,EAAAA,SAAA,KAAA,CACErO,SAAAA,CAAAA,EACAI,EAGA/F,EAAAA,IAAAgU,EAAAA,SAAA,QAAA,CACE,SAAAhU,EAAAA,IAACgR,GAAA,CACgB0C,cAAAA,EACR,MAAAzN,EACG,SAAAE,EAEVG,WAOF,CAAA,CACF,CAAA,EACF,EAAgBtI,MAAA0V,EAAA1V,MAAAiI,EAAAjI,MAAAmI,EAAAnI,MAAAwI,GAAAA,EAAAxI,EAAA,EAAA,EAAA,IAAAyI,EAAAzI,QAAA2U,GAQXlM,EAAA2L,GAA0BvR,IAAKoT,GAC9BpN,uBACSsM,QAEO,cAAA,aACJ,SAAAA,IAAU,UAAV,CAAuBR,EAEhCA,SAAAA,CAAAA,IAAkBQ,SAAUe,GAAAA,QAAA,CAAA,GAC5Bf,CAAAA,CAAAA,EALIA,CAMP,CACD,EAACnV,MAAA2U,EAAA3U,MAAAyI,GAAAA,EAAAzI,EAAA,EAAA,EAAA,IAAA4I,EAAA5I,QAAAyI,GAXJG,EAAA5G,EAAAA,IAAA+J,EAAAA,KAAA,KAAA,CACGtD,SAAAA,EAWH,EAAYzI,MAAAyI,EAAAzI,MAAA4I,GAAAA,EAAA5I,EAAA,EAAA,EAAA,IAAA+I,EAAA/I,EAAA,EAAA,IAAAR,GAAAQ,EAAA,EAAA,IAAAT,GAAAS,EAAA,EAAA,IAAAuV,GAAAvV,QAAA+V,GACXhN,EAAAqL,GAA0BvR,IAAKsT,GAC9BnU,EAAAA,IAAA+J,EAAAA,KAAA,QAAA,CAAqBoJ,MAAAA,EACnB,SAAAnT,EAAAA,IAACiR,GAAA,CACQ,MAAA,IACA,MAAA,EAAEsC,EAAiBJ,CAAU,GAA3B,GAAgC,GAAG,EAC7BY,cAAAA,EACJ,aACJ,MAAA,CACL,CAAAvV,MAAS,IAAGkR,MAAS,WAAA,EACrB,CAAAlR,MACSjB,EAAc,IAAGmS,MACjB,GAAGnS,EAAc,GAAG,GAAA,EAE7B,CAAAiB,MACShB,EAAc,IAAGkS,MACjB,GAAGlS,EAAc,GAAG,GAAA,CAC5B,EAEE,IAAAA,EAAc,IACd,IAAAD,EAAc,IACb,MAAA,OACA,KAAA,EAAA,CAAS,CAAA,EApBc4V,CAsBjC,CACD,EAACnV,MAAAR,EAAAQ,MAAAT,EAAAS,MAAAuV,EAAAvV,MAAA+V,EAAA/V,MAAA+I,GAAAA,EAAA/I,EAAA,EAAA,EAAA,IAAAgJ,EAAAhJ,EAAA,EAAA,IAAA4I,GAAA5I,QAAA+I,GAAA/I,EAAA,EAAA,IAAAiV,GA3CJjM,EAAAH,EAAAA,KAAAkD,EAAAA,KAAA,KAAA,CACSkJ,MAAAA,EACQW,cAAAA,EACP,UACH,KAAA,KAELhN,SAAAA,CAAAA,EAaCG,CAAAA,EAyBH,EAAY/I,MAAA4I,EAAA5I,MAAA+I,EAAA/I,MAAAiV,EAAAjV,MAAAgJ,GAAAA,EAAAhJ,EAAA,EAAA,EAAA,IAAAiJ,EAAAjJ,EAAA,EAAA,IAAAwI,GAAAxI,QAAAgJ,GAnEhBC,QAACQ,GAAA,CACC,SAAAZ,EAAAA,KAACb,SAAW,IAAA,EAAS,OACnBQ,SAAAA,CAAAA,EAqBAQ,CAAAA,CAAAA,CA6CF,CAAA,CACF,EAAahJ,MAAAwI,EAAAxI,MAAAgJ,EAAAhJ,MAAAiJ,GAAAA,EAAAjJ,EAAA,EAAA,EAAA,IAAAoW,EAAAC,EAAArW,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GACboV,EAAApU,EAAAA,IAACuH,GAAA,CACC,SAAAvH,EAAAA,IAAC2H,GAAA,CAAoB,QAAA,GACnB,SAAA3H,MAACyB,EAAAA,OAAA,CAAe,QAAA,UAAU,SAAA,OAAA,CAAK,CAAA,CACjC,EACF,EACA4S,QAAChN,GAAA,EAAkB,EAAGrJ,MAAAoW,EAAApW,MAAAqW,IAAAD,EAAApW,EAAA,EAAA,EAAAqW,EAAArW,EAAA,EAAA,GAAA,IAAAsW,EAAAtW,QAAAiJ,GA/ExBqN,EAAAzN,EAAAA,KAACK,GAAA,CAAmB,KAAA,OAAgB,SAAA,OAClCxB,SAAAA,CAAAA,EAGAuB,EAsEAmN,EAKAC,CAAAA,EACF,EAAgBrW,MAAAiJ,EAAAjJ,MAAAsW,GAAAA,EAAAtW,EAAA,EAAA,EAAA,IAAAuW,GAAA,OAAAvW,EAAA,EAAA,IAAAX,GAAAW,QAAAsW,GAAAtW,EAAA,EAAA,IAAA4D,GAxFlB2S,GAAAvU,EAAAA,IAACsH,GAAA,CACC,UAAA,GACMjK,KAAAA,EACQ,aAAAuE,EAGJ,UAAA,SAEV0S,SAAAA,CAAAA,CAiFF,EAAatW,MAAAX,EAAAW,MAAAsW,EAAAtW,MAAA4D,EAAA5D,MAAAuW,IAAAA,GAAAvW,EAAA,EAAA,EAzFbuW,EAyFa,CAEhB,EA/K0C,SAAAzT,GAAA0T,EAAA,CAAA,OA+GrBxU,EAAAA,IAAC4Q,GAAA,CAAauC,qBAEd,CAAQ,CCnKvB,MAAMsB,GAAmBA,IAAA,CAAA,MAAAzW,EAAAC,EAAAA,EAAA,CAAA,EAC9BrB,EAAesD,EAAAA,EACfhC,EAAgBiB,GAAAA,EAAkB,IAAAf,EAAAJ,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAC+BZ,GAC/D,WACA,uBACA,kBAAkB,EACnBJ,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAJD,KAAA,CAAA0U,SAAAA,EAAAjV,qBAAAA,CAAAA,EAA2CK,GAAsBM,CAIhE,EACDsW,EAAkBhC,GAAAjV,EAAgC,IAAAc,EAAAG,EAAAV,EAAA,CAAA,IAAA0W,GAAA1W,OAAApB,GAGhD2B,YAAA,CACE,GAAI3B,GAAA8X,EAAmB,CACrB,MAAAC,EAAgBC,WAAW,IAAA,CACzBhY,EAAMiY,SAASzT,OAAQ,CAAA0T,UACVJ,CAAAA,CACZ,CAAC,EACD,GAAG,EAAC,MAEA,IAAMK,aAAaJ,CAAO,CAAC,CACnC,EAEHjW,EAAA,CAAC9B,EAAQ8X,CAAS,EAAC1W,KAAA0W,EAAA1W,KAAApB,EAAAoB,KAAAO,EAAAP,KAAAU,IAAAH,EAAAP,EAAA,CAAA,EAAAU,EAAAV,EAAA,CAAA,GAZrB8G,EAAAA,UACEvG,EAWAG,CACF,EAAC,IAAAI,EAAAd,EAAA,CAAA,IAAAE,GAAAF,OAAApB,GAAAiY,SAAAG,SAGClW,YAAA,CAAA,OACSlC,GAAMiY,SAAkBG,QACxB3W,KAACwC,MAAIC,EAAgC,CACjC,EAACmU,UAACH,GAAA,CACT,MAAAI,EACEhX,EAAOM,MAAMkU,UAAaxU,EAAOM,MAAMf,qBAErCqX,IAAcJ,IAChBxW,EAAOM,MAAMqU,mBAAoB,WAAYiC,CAAS,EACtD5W,EAAOkD,OAAQ+O,IAAU,CAAA,GACpBA,EAAG1S,qBACgBqX,CAAAA,EACtB,EACH,CACF,CAAC,EACL9W,KAAAE,EAAAF,EAAA,CAAA,EAAApB,GAAAiY,SAAAG,QAAAhX,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAhBH,MAAAmX,EAAuBrW,EAoBvBuG,OAAAA,EAAAA,aAAa8P,CAAc,EAEpB,IAAI,EA/CmB,SAAArU,GAAA+T,EAAA,CAAA,OA4BAA,EAAQC,SAAU,CCxBlD,MAAMM,GAA+B,CACnCC,EAAG,EACHC,EAAG,EACH3J,MAAO,EACPQ,OAAQ,EACRT,IAAK,EACLD,KAAM,EACN8J,OAAQ,EACRC,MAAO,CACT,EAEO,SAAAC,IAAA,CAAA,MAAAzX,EAAAC,EAAAA,EAAA,CAAA,EACL,CAAAyX,EAAAC,CAAA,EAA8BvR,EAAAA,SAAmB,IAAI,EACrD,CAAAwR,EAAAC,CAAA,EAAwBzR,EAAAA,SAAyBgR,EAAY,EAAC,IAAAhX,EAAAJ,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAI1DZ,EAAA,IAAI0X,eAAeC,GAAA,CACjB,GAAIA,EAAO,CAAA,EAAG,CACZ,KAAA,CAAAV,EAAAA,EAAAC,EAAAA,EAAA3J,MAAAA,EAAAQ,OAAAA,EAAAT,IAAAA,EAAAD,KAAAA,EAAA8J,OAAAA,EAAAC,MAAAA,CAAAA,EACEO,EAAO,CAAA,EAAGC,YACZH,EAAQ,CAAAR,EAAAA,EAAAC,EAAAA,EAAA3J,MAAAA,EAAAQ,OAAAA,EAAAT,IAAAA,EAAAD,KAAAA,EAAA8J,OAAAA,EAAAC,MAAAA,CAAAA,CAAiD,CAAC,CAC3D,CACF,EAACxX,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EARN,MAAAiY,EAEI7X,EAQH,IAAAG,EAAAG,EAAAV,OAAA0X,GAEenX,EAAAA,IAAA,CACd,GAAKmX,EAELO,OAAAA,EAAQC,QAASR,CAAO,EAEjB,IAAA,CACLO,EAAQE,WAAAA,CAAa,CACtB,EACAzX,EAAA,CAACgX,EAASO,CAAQ,EAACjY,KAAA0X,EAAA1X,KAAAO,EAAAP,KAAAU,IAAAH,EAAAP,EAAA,CAAA,EAAAU,EAAAV,EAAA,CAAA,GARtBoY,EAAAA,gBAAgB7X,EAQbG,CAAmB,EAAC,IAAAI,EAAA,OAAAd,EAAA,CAAA,IAAA0X,GAAA1X,OAAA4X,GAEhB9W,GAAC6W,EAAYC,EAAMF,CAAO,EAAC1X,KAAA0X,EAAA1X,KAAA4X,EAAA5X,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAA3Bc,CAA2B,CC7B7B,MAAMuX,GAAoBA,CAAAX,EAAAzN,EAAAqO,IAAA,CAAA,MAAAtY,EAAAC,EAAAA,EAAA,CAAA,EAK/BrB,EAAesD,EAAAA,EAAW,IAAA9B,EAAAJ,OAAApB,GACQwB,EAAAiC,GAAmBzD,CAEzC,EAFsBA,EAAAC,OAErBmB,KAAApB,EAAAoB,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAFb,MAAAuY,EAAkCnY,EAErB,IAAAG,EAAAP,EAAA,CAAA,IAAA0X,GAAA1X,EAAA,CAAA,IAAAiK,GAAAjK,EAAA,CAAA,IAAAsY,GAAAtY,OAAAuY,GAEsBhY,EAAAA,IAAA,CACjC,GAAI,CAACgY,GAAD,CAA+Bb,EAAO,OAASpK,EAAAA,MAEnD,MAAAkL,EAA2BvO,EAAIwO,WAAWpY,KACxC0C,EAAAA,UAAUkH,EAAIyO,UAAW,EACzBrI,uBAAqBzP,GAAAA,cAAc,CACrC,EAEA+X,EAA4BC,GAAAA,oBAC1BlB,CACF,EAACrX,KAAMwC,EAAAA,IAAIyN,EAAkD,CAAC,EAAC,OAExDkI,EAAkBnY,KACvBwY,eAAa,IAAKha,OAAW,CAAAia,SAAY,EAAA,CAAM,EAC/CnW,EAAAA,UAAU,IACDgW,EAAmBtY,KAEtB4G,EAAAA,IAAI8R,GAAA,CAEGA,IACHrB,EAAOsB,UAAa,GACrB,CACF,EACD9O,EAAAA,OAAOuG,EAAwB,EAC/BwI,EAAAA,OACF,EAAC5Y,KAECsC,EAAAA,UAAU,KACR+U,EAAOsB,UAAa,GAEbT,GAAyBW,QAAkBC,SAChDlP,EACAyN,EACAY,CACF,EACD,CACH,CACH,CACH,CAAC,EACFtY,KAAA0X,EAAA1X,KAAAiK,EAAAjK,KAAAsY,EAAAtY,KAAAuY,EAAAvY,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAvCD,MAAAoZ,EAAuB7Y,EAyCvB8G,EAAAA,aAAa+R,CAAc,CAAC,EAnDG,SAAAtW,GAAAgJ,EAAA,CAAA,OAoBeA,EAACuN,cAAe,CApB/B,SAAA/I,GAAAyH,EAAA,CAAA,OAoBLA,EAAO1E,KAAMvQ,EAAuB,CAAC,CApBhC,SAAA2N,GAAA6I,EAAA,CAAA,OAiCCP,CAAS,CCpC3C,MAAMQ,GAAcjY,EAAAA,KAClBlB,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,EAAA,EAAC,CAAAgK,KAAAA,EAAAuP,YAAAA,CAAAA,EAAApZ,EACC,CAAAuX,EAAAW,EAAAZ,CAAA,EAAwCD,GAAAA,EACxC7Y,EAAesD,EAAAA,EAEfmW,GAAkBX,EAASzN,EAAMqO,CAAQ,EAAC,IAAA/X,EAAAG,EAAAV,EAAA,CAAA,IAAAiK,GAAAjK,OAAApB,GAGxC2B,EAAAA,IAAM3B,GAAMwL,eAAiBH,EAAM,CAAAwP,KAAQ,SAAA,CAAW,EACtD/Y,EAAA,CAAC9B,EAAQqL,CAAI,EAACjK,KAAAiK,EAAAjK,KAAApB,EAAAoB,KAAAO,EAAAP,KAAAU,IAAAH,EAAAP,EAAA,CAAA,EAAAU,EAAAV,EAAA,CAAA,GAFhB,KAAA,CAAAkB,KAAAwY,CAAAA,EAAkCzY,EAAAA,WAChCV,EACAG,CACF,EAAC,IAAAI,EAAAd,EAAA,CAAA,IAAAiK,GAAAjK,EAAA,CAAA,IAAAwZ,GAAAxZ,EAAA,CAAA,IAAApB,GAAAgM,YAaY9J,EAAAA,IAAA,CACP0Y,EAAAA,EACA5a,GAAMgM,WAA0B+O,cAAC,CAAAC,UAAa3P,CAAAA,CAAM,CAAC,EACtDjK,KAAAiK,EAAAjK,KAAAwZ,EAAAxZ,EAAA,CAAA,EAAApB,GAAAgM,WAAA5K,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAAA,IAAA+B,EAAA/B,OAAA2X,GAED5V,EAAAC,EAAAA,IAAC6F,EAAAA,IAAA,CACQ,OAAA,OACD,MAAA,OACG,SAAA,SACK,cAAA,OACT8P,IAAAA,CAAAA,CAAU,EACf3X,KAAA2X,EAAA3X,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EAWM,MAAAkD,GAACwW,GAAelP,MAAyBS,mBAAxC,GAAiD,EAAC,IAAA3H,EAAAtD,QAAAkD,GAV3DI,SAAC4E,EAAAA,KAAA,CACU,SAAA,WACD,OAAA,EACH,KAAA,IACC,MAAA,IACI,UAAA,SACF,QAAA,QACL,EAAA,EACM,SAAA,KACV,SAAA,CAAA,QACOhF,CAAAA,EACR,EAAOlD,MAAAkD,EAAAlD,MAAAsD,GAAAA,EAAAtD,EAAA,EAAA,EAAA,IAAAwD,EAAA,OAAAxD,EAAA,EAAA,IAAAc,GAAAd,QAAA+B,GAAA/B,EAAA,EAAA,IAAAsD,GAjCTE,EAAAqF,EAAAA,KAAChB,OACO,MAAA,OACM,YAAA,MACL,OAAA,YACK,YAAA,SACC,aAAA,KACb,iBAAA,GACO,OAAA,UACE,SAAA,WACA,SAAA,SACA,QAAA/G,EAKTiB,SAAAA,CAAAA,EAOAuB,CAAAA,EAYF,EAAMtD,MAAAc,EAAAd,MAAA+B,EAAA/B,MAAAsD,EAAAtD,MAAAwD,GAAAA,EAAAxD,EAAA,EAAA,EAlCNwD,CAkCM,CAGZ,EAEaqW,GAAgBvY,EAAAA,KAC3BlB,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,EAAA,EAAC,CAAAwG,KAAAA,EAAA0F,QAAAA,CAAAA,EAAA/L,EACCxB,EAAesD,EAAAA,EAAW,IAAA3B,EAAAP,EAAA,CAAA,IAAApB,GAAAkO,kBAAAgN,QAExBvZ,EAAAA,IAAM3B,GAAMkO,kBAA0BgN,OAAA9Z,EAAA,CAAA,EAAApB,GAAAkO,kBAAAgN,OAAA9Z,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAAA,IAAAU,EAAAV,OAAApB,GACtC8B,EAAA,CAAC9B,CAAM,EAACoB,KAAApB,EAAAoB,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAFV,KAAA,CAAAkB,KAAA6I,CAAAA,EAAwB9I,EAAAA,WACtBV,EACAG,CACF,EAAC,IAAAI,EAAAd,OAAAmM,GAOiBrL,EAAAgL,GAAOK,EAAQL,EAACrF,IAAK,EAACzG,KAAAmM,EAAAnM,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAAA,IAAA+B,EAAA/B,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAC9Be,EAAA,CAAAqK,OAAU,OAAMC,GAAM,IAAA,EAAMrM,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EAAA,IAAAkD,EAAAlD,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAIhCkC,EAAAlB,EAAAA,IAACwH,GAAA,CACC,SAAAxH,EAAAA,IAAC0H,GAAA,CAAY,mBAAO,EACtB,EAAe1J,KAAAkD,GAAAA,EAAAlD,EAAA,CAAA,EAAA,IAAAsD,EAAAtD,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAGUsC,EAAA,CACnB,4BACA,2BAA2B,EAC5BtD,KAAAsD,GAAAA,EAAAtD,EAAA,CAAA,EAAA,IAAAwD,EAAAxD,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAEIwC,EAAA,CAAC,EAAG,CAAC,EAACxD,KAAAwD,GAAAA,EAAAxD,EAAA,CAAA,EAAA,IAAA0D,EAAA1D,EAAA,EAAA,IAAA+J,GAAA/J,QAAAmM,GAIVzI,EAAAqG,GAAKlH,IAAMoH,SACTsP,GAAA,CAEOtP,KAAAA,EACO,YAAA,IAAA,CACXkC,EAAQ,EAAK,CAAC,GAHXlC,EAAIA,KAAKnB,GAMjB,EAAC9I,MAAA+J,EAAA/J,MAAAmM,EAAAnM,MAAA0D,GAAAA,EAAA1D,EAAA,EAAA,EAAA,IAAA4D,EAAA5D,QAAA0D,GAnBNE,QAAC6F,GAAA,CACC,SAAAzH,EAAAA,IAAC6F,MAAA,CACsB,oBAAAvE,EAIb,QAAA,OACH,IAAAE,EACD,KACJ,YAAA,GAECE,WASH,EACF,EAAa1D,MAAA0D,EAAA1D,MAAA4D,GAAAA,EAAA5D,EAAA,EAAA,EAAA,IAAA0H,EAAAC,EAAA3H,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GACb0G,EAAA1F,EAAAA,IAACuH,GAAA,CACC,SAAAvH,EAAAA,IAAC2H,GAAA,CAAoB,QAAA,GACnB,SAAA3H,MAACyB,EAAAA,OAAA,CAAe,QAAA,UAAU,SAAA,QAAA,CAAM,CAAA,CAClC,EACF,EACAkE,QAAC0B,GAAA,EAAkB,EAAGrJ,MAAA0H,EAAA1H,MAAA2H,IAAAD,EAAA1H,EAAA,EAAA,EAAA2H,EAAA3H,EAAA,EAAA,GAAA,IAAA+H,EAAA/H,QAAA4D,GA/BxBmE,EAAAc,EAAAA,KAACK,GAAA,CAAqB,OAAA,OACpBhG,SAAAA,CAAAA,EAGAU,EAsBA8D,EAKAC,CAAAA,EACF,EAAgB3H,MAAA4D,EAAA5D,MAAA+H,GAAAA,EAAA/H,EAAA,EAAA,EAAA,IAAAiI,EAAA,OAAAjI,EAAA,EAAA,IAAAyG,GAAAzG,QAAA+H,GAAA/H,EAAA,EAAA,IAAAc,GAxClBmH,QAACqB,GAAA,CACC,aACU,UAAA,SACJ7C,KAAAA,EACQ,aAAA3F,EACR,KAAAiB,EACS,eAAA,SAEfgG,SAAAA,EAiCF,EAAa/H,MAAAyG,EAAAzG,MAAA+H,EAAA/H,MAAAc,EAAAd,MAAAiI,GAAAA,EAAAjI,EAAA,EAAA,EAzCbiI,CAyCa,CAGnB,+CC5Ga8R,GAAazY,EAAAA,KACxBlB,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,EAAA,EAAC,CAAAwG,KAAAA,EAAA0F,QAAAA,CAAAA,EAAA/L,EAAsE,IAAAG,EAAAP,OAAAmM,GAMnD5L,EAAAuL,GAAOK,EAAQL,EAACrF,IAAK,EAACzG,KAAAmM,EAAAnM,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAAA,IAAAU,EAAAV,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAC9BN,EAAA,CAAA0L,OAAU,OAAMC,GAAM,IAAA,EAAMrM,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAAA,IAAAc,EAAAd,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAIhCF,EAAAkB,EAAAA,IAACwH,GAAA,CACC,SAAAxH,EAAAA,IAAC0H,GAAA,CAAY,gBAAI,EACnB,EAAe1J,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAAA,IAAA+B,EAAA/B,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GASXe,QAACiY,WAAY,GAAA,EAAM,GAAA,KAAU,KAAA,KAAK,SAAA,WAAA,CAElC,EAAUha,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EAAA,IAAAkD,EAAAlD,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAERkC,EAAAlB,EAAAA,IAACiY,EAAAA,IAAA,CACC,SAAAjY,EAAAA,IAACkY,GAAAA,gBAAA,CAAA,CAAe,EAClB,EAAMla,KAAAkD,GAAAA,EAAAlD,EAAA,CAAA,EAAA,IAAAsD,EAAAtD,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAHRsC,EAAAuF,EAAAA,KAAC2K,EAAAA,OAAA,CAAW,GAAA,EACVtQ,SAAAA,CAAAA,MAGAlB,EAAAA,IAACkG,EAAAA,MAAK,SAAA,wBAAA,CAAsB,CAAA,EAC9B,EAASlI,KAAAsD,GAAAA,EAAAtD,EAAA,CAAA,EAAA,IAAAwD,EAAAxD,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAEPwC,EAAAxB,EAAAA,IAACiY,EAAAA,IAAA,CACC,SAAAjY,EAAAA,IAACmY,GAAAA,eAAA,CAAA,CAAc,EACjB,EAAMna,KAAAwD,GAAAA,EAAAxD,EAAA,CAAA,EAAA,IAAA0D,EAAA1D,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAbV0C,SAACsE,QAAA,CACCjG,SAAAA,CAAAA,EAGAuB,EAMAuF,EAAAA,KAAC2K,EAAAA,OAAA,CAAW,GAAA,EACVhQ,SAAAA,CAAAA,EAEO,IACPxB,EAAAA,IAACkG,EAAAA,MAAK,SAAA,uBAAA,CAAqB,CAAA,CAAA,CAC7B,CAAA,EACF,EAAQlI,KAAA0D,GAAAA,EAAA1D,EAAA,CAAA,EAAA,IAAA4D,EAAA5D,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAEN4C,QAACoW,WAAY,GAAA,EAAM,GAAA,KAAU,KAAA,KAAK,SAAA,WAAA,CAElC,EAAUha,KAAA4D,GAAAA,EAAA5D,EAAA,CAAA,EAAA,IAAA0H,EAAA1H,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAHZ0G,SAACM,QAAA,CACCpE,SAAAA,CAAAA,QAGC4P,EAAAA,OAAA,CAAW,GAAA,EACV,SAAAxR,EAAAA,IAACkG,OAAA,CAAK,6DAAiD,CAAA,CACzD,CAAA,EACF,EAAQlI,MAAA0H,GAAAA,EAAA1H,EAAA,EAAA,EAAA,IAAA2H,EAAA3H,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GA/BV2G,EAAAkB,EAAAA,KAACY,GAAA,CACW,UAAA,OACJ,KAAA,EACE,QAAA,OACM,cAAA,SACT,MAEL/F,SAAAA,CAAAA,EAiBAgE,SAQCM,EAAAA,MAAA,CACC,SAAA,CAAAhG,EAAAA,IAACgY,EAAAA,SAAY,GAAA,EAAM,GAAA,KAAU,KAAA,KAAK,SAAA,OAAA,CAElC,SACC9R,EAAAA,KAAA,CACEkS,SAAAA,CAAAA,GAAK,iBACR,CAAA,CAAA,CACF,CAAA,EACF,EAAapa,MAAA2H,GAAAA,EAAA3H,EAAA,EAAA,EAAA,IAAA+H,EAAA/H,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GA5Cf+G,SAACmB,GAAA,CACCpI,SAAAA,CAAAA,EAGA6G,EAyCA3F,EAAAA,IAACuH,GAAA,CACC,SAAAvH,EAAAA,IAAC2H,GAAA,CAAoB,QAAA,GACnB,SAAA3H,EAAAA,IAACyB,EAAAA,OAAA,CAAe,QAAA,UAAU,SAAA,QAAA,CAAM,CAAA,CAClC,EACF,QACC4F,GAAA,CAAA,CAAkB,CAAA,EACrB,EAAgBrJ,MAAA+H,GAAAA,EAAA/H,EAAA,EAAA,EAAA,IAAAiI,EAAA,OAAAjI,EAAA,EAAA,IAAAyG,GAAAzG,QAAAO,GA3DlB0H,QAACqB,GAAA,CACC,aACU,UAAA,SACJ7C,KAAAA,EACQ,aAAAlG,EACR,KAAAG,EACS,eAAA,SAEfqH,SAAAA,EAoDF,EAAa/H,MAAAyG,EAAAzG,MAAAO,EAAAP,MAAAiI,GAAAA,EAAAjI,EAAA,EAAA,EA5DbiI,CA4Da,CAGnB,EC5EaoS,GAAgBA,IAAA,CAAA,MAAAra,EAAAC,EAAAA,EAAA,CAAA,EAG3BrB,EAAesD,EAAAA,EAAW,IAAA9B,EAAAG,EAAA,OAAAP,OAAApB,GAGxBwB,EAAAA,IACGxB,EAEG4R,EAAAA,cAAc,CAAC5R,EAAM0b,WAAWC,OAAS3b,EAAMsB,OAAQ,CAAC,EAACG,KACvDwC,EAAAA,IAAIyN,EASH,CACH,EAbJhD,EAAAA,MAcF/M,EAAA,CAAC3B,CAAM,EAACoB,KAAApB,EAAAoB,KAAAI,EAAAJ,KAAAO,IAAAH,EAAAJ,EAAA,CAAA,EAAAO,EAAAP,EAAA,CAAA,GAhBHiB,aACLb,EAeAG,CACF,EAACW,IAAK,EAtBqB,SAAA4B,GAAAmH,EAAA,CAAA,OAYbA,EAAIuQ,WAAsBC,WAAC,QAAQ,CAAC,CAZvB,SAAAnK,GAAAlQ,EAAA,CAUZ,KAAA,CAAAiD,EAAAnD,CAAA,EAAAE,EACHsa,EAAqBxa,EAAOya,UAAqBC,WAAMC,MAAC/X,EAExD,EAAC,MAEM,CAAA,GACFO,EAAKyX,YACK,CAAC5a,EAAO6a,qBAAR,CAAiCL,CAAAA,CAC/C,CCnBf,MAAMM,GAAwB,CAAEnZ,MAAO,UAAWC,QAAS,UAAW,EAEzDmZ,GAAmBA,IAAA,CAAA,MAAAjb,EAAAC,EAAAA,EAAA,CAAA,EAAA,IAAAG,EAAAJ,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAC0CZ,EAAA,CACtE,yBACA,eAAe,EAChBJ,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAHD,KAAA,CAAAN,uBAAAA,EAAAwb,cAAAA,CAAAA,EAAkDpb,GAAsBM,CAGvE,EACDka,EAAmBD,GAAAA,EACnBc,EAAwBC,KAAIC,OACzBf,GAAUgB,0BAAV,GAA6C,GAChD,EACAC,EAA4BJ,EAAkB,EAAlBA,EAAA,EAE5B,GACEb,GAAUgB,2BAA+Bzc,QAAzC,CACCa,EAAsB,OAEhB,KAII,MAAAa,GAAC2a,EAAa,IAAAxa,EAAAV,OAAAub,GAIvB7a,EAAAsB,EAAAA,IAAC6F,EAAAA,KACU,SAAA,WACF,MAAA,EACC,OAAA,EACL,EAAA,EACc,iBAAA,YACN,WAAA,cACG,cAAA,OACC,cAAA,EACT,MAAA,QAEN,SAAAgB,EAAAA,KAACX,EAAAA,KAAA,CAAc,SAAA,KAAMqT,SAAAA,CAAAA,EAAoB,IAAA,CAAA,CAAE,CAAA,CAC7C,EAAMvb,KAAAub,EAAAvb,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAAA,IAAAc,EAAA,OAAAd,EAAA,CAAA,IAAAO,GAAAP,OAAAU,GAjBRI,EAAAkB,EAAAA,IAACC,YACU,QAAA1B,EACMya,iBACG,kBAAA,WAElBta,SAAAA,CAAAA,CAaF,EAAWV,KAAAO,EAAAP,KAAAU,EAAAV,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAlBXc,CAkBW,ECvCF0a,GAAUA,IAAA,CAAA,MAAAxb,EAAAC,EAAAA,EAAA,CAAA,EAAA,IAAAG,EAAAJ,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GACYZ,MAAIqb,KAAMzb,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAA3C,KAAA,CAAA0b,EAAAC,CAAA,EAAwBvV,EAAAA,SAAShG,CAAU,EAAC,IAAAG,EAAAG,EAAA,OAAAV,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAElCT,EAAAA,IAAA,CACR,MAAAqb,EAAiBC,YAAY,IAAA,CAC3BF,EAAQ,IAAIF,IAAM,CAAC,EAClB,GAAS,EAAC,MAEN,IAAMK,cAAcF,CAAQ,CAAC,EACnClb,EAAA,CAAA,EAAEV,KAAAO,EAAAP,KAAAU,IAAAH,EAAAP,EAAA,CAAA,EAAAU,EAAAV,EAAA,CAAA,GANL8G,EAAAA,UAAUvG,EAMPG,CAAE,EAEEgb,CAAI,EAGAK,GAAgB1X,GAAA,CAAA,MAAArE,EAAAC,EAAAA,EAAA,CAAA,EAC3Byb,EAAaF,GAAAA,EAAS,IAAApb,EAAAJ,OAAA0b,GAIjBtb,EAAAsb,EAAIM,mBAAoBC,UAASC,SAAW,CAAAC,KACrC,UAASC,OACP,SAAA,CACT,EAACpc,KAAA0b,EAAA1b,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAAA,IAAAO,EAAA,OAAAP,EAAA,CAAA,IAAAqE,GAAArE,OAAAI,GAJJG,QAAC2H,EAAAA,KAAA,CAAc,SAAA,KAAI,GAAK7D,EACrBjE,SAAAA,EAIH,EAAOJ,KAAAqE,EAAArE,KAAAI,EAAAJ,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EALPO,CAKO,ECtBE8b,GAAe/a,EAAAA,KAAK,IAAA,CAAA,MAAAtB,EAAAC,EAAAA,EAAA,CAAA,EAAA,IAAAG,EAAA,OAAAJ,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAE7BZ,EAAA4B,EAAAA,IAAC6F,EAAAA,KACU,SAAA,WACH,KAAA,EACE,SACL,EAAA,EACG,MAAA,QACW,iBAAA,YACN,WAAA,cACG,cAAA,OACC,gBAEf,SAAA7F,EAAAA,IAAC+Z,GAAA,CAAA,CAAa,CAAA,CAChB,EAAM/b,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAZNI,CAYM,CAET,ECfYkc,GAA4BA,IAAA,CAAA,MAAAtc,EAAAC,EAAAA,EAAA,CAAA,EACvCrB,EAAesD,EAAAA,EAAW,IAAA9B,EAAAJ,EAAA,CAAA,IAAApB,GAAA2d,QAGxBnc,EAAAA,IACExB,GAAM2d,OAAkBtF,UAACnU,EAgBxB,EAAC9C,EAAA,CAAA,EAAApB,GAAA2d,OAAAvc,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAlBN,MAAAwc,EAA+Bpc,EAsB/BiH,EAAAA,aAAamV,CAAsB,CAAC,EAzBG,SAAA1Z,GAAA0D,EAAA,CAMjC,GAAIA,EAAKgJ,OAAU,SAAWiN,GAAAA,iBAAiBjW,EAAK6B,OAAS,GAAG,EAAC,CAC/D,GAAI,CAAC7B,EAAK6B,OAAOqU,KAAK,OAEtB,MAAAC,EAAY,IAAIC,IAAIpW,EAAK6B,OAAOqU,IAAK,EAEjCG,OAAMC,SAASC,OAAUJ,EAAGI,MACbC,QACf,iDACF,GAGEH,OAAMpW,KAAMD,EAAK6B,OAAOqU,KAAO,SAAS,CAE3C,CACF,CCPF,MAAMO,GAAmBA,IAAA,CAAA,MAAAjd,EAAAC,EAAAA,EAAA,CAAA,EAAA,IAAAG,EAAAJ,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GACyBZ,EAAA,CACrD,sBAAsB,EACvBJ,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAFD,KAAA,CAAAf,qBAAAA,CAAAA,EAAiCa,GAAsBM,CAEtD,EAEyB,IAAAG,EAAAP,OAAAf,GAGxBsB,EAAAA,IACEtB,EAAoBoB,KAClB6J,EAAAA,OAAOC,EAAAA,SAAS,EAChB+S,EAAAA,SAASC,GAAA,CACP,MAAAC,EAAiBD,EAAYC,UAAZ,IAEjBC,EAAe,IAAIC,aAAmBC,GAAA,CACpC,GAAA,CACEC,eAAe,IAAA,CACb,MAAAC,EAAgB3M,GAAO4M,OAAQ,CAAAnM,MACtB4L,EAAY5L,MAAMC,YACZ2L,EAAY3L,YAAY4L,SAAAA,CAAAA,CAEtC,EAEDG,EAAUI,KAAMF,CAAO,EACvBF,EAAUK,SAAAA,CAAW,CACtB,CAAC,OAAAld,EAAA,CACKmd,MAAAA,EAAAA,EACPN,EAAUM,MAAOA,CAAK,CAAC,CACxB,CACF,EAEDC,EAA0B7e,EAAoBoB,KAC5C0d,EAAAA,KAAK,CAAC,EACN7T,SAAO8T,GAAO,CAAC,CAACb,EAAYc,KAAQD,GAACC,MAAUd,EAAYc,GAAI,CACjE,EAAC,OAEMZ,EAAMhd,KACXsC,EAAAA,UAAUyO,GACR8M,EAAAA,MACEC,EAAAA,MAAMf,CAAQ,EACdD,EAAYiB,OAAZ9Q,EAAAA,MACAwQ,CACF,EAACzd,KACC4Y,EAAAA,MAAAA,EACAoF,EAAAA,SAAS,IAAA,CACPb,eAAe,IAAA,CACb1M,GAAOwN,QAASlN,CAAK,CAAC,CACvB,CAAC,CACH,CACH,CACF,CACF,CAAC,CACF,CACH,EAACpR,KAAAf,EAAAe,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EA9CL,MAAAue,EAAsBhe,EAkDtB8G,EAAAA,aAAakX,CAAa,CAAC,EChEhBC,GAAYra,GAAMC,WAC7B,SAAAC,EAAAC,EAAA,CAAA,MAAAtE,EAAAC,EAAAA,EAAA,EAAA,EAAA,IAAAsB,EAAA0M,EAAAtJ,EAAAnD,EAAAid,EAAAre,EAAAJ,OAAAqE,GACE,CAAAoa,UAAAA,EAAAld,SAAAA,EAAAqD,UAAAxE,EAAA6N,QAAAA,EAAAtJ,UAAAA,EAAA,GAAAnD,CAAAA,EAOI6C,EAAKrE,KAAAqE,EAAArE,KAAAuB,EAAAvB,KAAAiO,EAAAjO,KAAA2E,EAAA3E,KAAAwB,EAAAxB,KAAAye,EAAAze,KAAAI,IAAAmB,EAAAvB,EAAA,CAAA,EAAAiO,EAAAjO,EAAA,CAAA,EAAA2E,EAAA3E,EAAA,CAAA,EAAAwB,EAAAxB,EAAA,CAAA,EAAAye,EAAAze,EAAA,CAAA,EAAAI,EAAAJ,EAAA,CAAA,GAJP,MAAA4E,EAAAxE,IAAAvB,OAAA,GAAAuB,EAAgB,IAAAG,EAAAP,EAAA,CAAA,IAAAwB,EAAAkd,aASDne,EAAA,CAAA,GAAKiB,EAAIkd,YAAYC,OAAU,CAAA,EAAG3e,EAAA,CAAA,EAAAwB,EAAAkd,YAAA1e,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAAA,IAAAU,EAAAV,OAAAuB,GAE/Cb,QAAAke,UAAA,QAAA,CAAuB,QAAA,GAASrd,SAAAA,EAAS,EAAwBvB,KAAAuB,EAAAvB,MAAAU,GAAAA,EAAAV,EAAA,EAAA,EAC/C,MAAAc,GAAC8D,EAAS,IAAA7C,EAAA/B,QAAAye,GAUrB1c,EAAA0c,SACCG,EAAAA,QAAA,MAAA,CACE,SAAA5c,EAAAA,2BACF,EACDhC,MAAAye,EAAAze,MAAA+B,GAAAA,EAAA/B,EAAA,EAAA,EAAA,IAAAkD,EAAAlD,EAAA,EAAA,IAAAiO,GAAAjO,QAAAsE,GAAAtE,EAAA,EAAA,IAAA+B,GAbLmB,QAAA0b,EAAAA,QAAA,WAAA,CACE,SAAA/V,OAAA+V,EAAAA,QAAA,QAAA,CACQ,MAAA,OACH,GAAA,IACA,GAAA,IACO,UAAA,KACF,QAAA,KACHta,IAAAA,EAEJvC,SAAAA,CAAAA,EAKAkM,CAAAA,CAAAA,CACH,CAAA,CACF,EAA2BjO,MAAAiO,EAAAjO,MAAAsE,EAAAtE,MAAA+B,EAAA/B,MAAAkD,GAAAA,EAAAlD,EAAA,EAAA,EAAA,IAAAsD,EAAAtD,EAAA,EAAA,IAAA2E,GAAA3E,QAAAc,GAAAd,EAAA,EAAA,IAAAkD,GAjB7BI,QAACwB,EAAAA,OAAA,CAAiB,SAAAhE,EAAuB6D,UAAAA,EACvCzB,SAAAA,EAiBF,EAASlD,MAAA2E,EAAA3E,MAAAc,EAAAd,MAAAkD,EAAAlD,MAAAsD,GAAAA,EAAAtD,EAAA,EAAA,EAAA,IAAAwD,EAAA,OAAAxD,EAAA,EAAA,IAAAwB,GAAAxB,EAAA,EAAA,IAAAO,GAAAP,EAAA,EAAA,IAAAU,GAAAV,QAAAsD,GAvBXE,SAAAob,EAAAA,QAAA,KAAA,CAAA,GACMpd,EACS,YAAAjB,EAEbG,SAAAA,CAAAA,EACA4C,CAAAA,EAmBF,EAAqBtD,MAAAwB,EAAAxB,MAAAO,EAAAP,MAAAU,EAAAV,MAAAsD,EAAAtD,MAAAwD,GAAAA,EAAAxD,EAAA,EAAA,EAxBrBwD,CAwBqB,CAG3B,EAEaqb,GAAU1a,GAAMC,WAG3B,SAAAC,EAAAC,EAAA,CAAA,MAAAtE,EAAAC,EAAAA,EAAA,CAAA,EAAA,IAAAsB,EAAAC,EAAAxB,OAAAqE,GACA,CAAA9C,SAAAA,EAAA,GAAAC,CAAAA,EAA8B6C,EAAKrE,KAAAqE,EAAArE,KAAAuB,EAAAvB,KAAAwB,IAAAD,EAAAvB,EAAA,CAAA,EAAAwB,EAAAxB,EAAA,CAAA,GAAA,IAAAI,EAAAJ,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAG/BZ,EAAA4B,EAAAA,IAAC8c,aAAA,CACS,QAAA,QACG,aAAA,OACN,KAAA,MACQ,aAAA,OAEb,SAAA9c,EAAAA,IAAC+c,GAAAA,2BAAA,CAAA,CAA0B,EAC7B,EAAa/e,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAAA,IAAAO,EAAA,OAAAP,EAAA,CAAA,IAAAuB,GAAAvB,OAAAsE,GAAAtE,EAAA,CAAA,IAAAwB,GARfjB,QAACie,GAAA,CAAmBjd,QAAAA,KAAcC,EAAW8C,IAAAA,EAC3ClE,SAAAA,EAQF,EAAYJ,KAAAuB,EAAAvB,KAAAsE,EAAAtE,KAAAwB,EAAAxB,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EATZO,CASY,CAEf,ECjEYye,GAAc7a,GAAMC,WAG/B,SAAAC,EAAAC,EAAA,CAAA,MAAAtE,EAAAC,EAAAA,EAAA,CAAA,EAAA,IAAAG,EAAAJ,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAGIZ,EAAA4B,EAAAA,IAAAid,WAAA,MAAA,CAAA,CAAA,EAAwBjf,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAAA,IAAAO,EAAA,OAAAP,EAAA,CAAA,IAAAqE,GAAArE,OAAAsE,GAD1B/D,QAAA0e,EAAAA,SAAA,MAAA,CAAA,GAA0B5a,EAAYC,IAAAA,EACpClE,SAAAA,EACF,EAAuBJ,KAAAqE,EAAArE,KAAAsE,EAAAtE,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAFvBO,CAEuB,CAE1B,EAM4B4D,GAAMC,WAGjC,SAAAC,EAAAC,EAAA,CAAA,MAAAtE,EAAAC,EAAAA,EAAA,EAAA,EAAA,IAAAsB,EAAA2d,EAAA1d,EAAAxB,OAAAqE,GACA,CAAA9C,SAAAA,EAAA2d,KAAAA,EAAA,GAAA1d,CAAAA,EAAoC6C,EAAKrE,KAAAqE,EAAArE,KAAAuB,EAAAvB,KAAAkf,EAAAlf,KAAAwB,IAAAD,EAAAvB,EAAA,CAAA,EAAAkf,EAAAlf,EAAA,CAAA,EAAAwB,EAAAxB,EAAA,CAAA,GAAA,IAAAI,EAAAJ,OAAAkf,GAIpC9e,EAAA8e,GAAQld,EAAAA,IAAC6c,GAAA,CAASK,SAAAA,EAAK,EAAUlf,KAAAkf,EAAAlf,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAAA,IAAAO,EAAA,OAAAP,EAAA,CAAA,IAAAuB,GAAAvB,EAAA,CAAA,IAAAsE,GAAAtE,EAAA,CAAA,IAAAwB,GAAAxB,OAAAI,GAFpCG,SAAA0e,WAAA,MAAA,CAAA,GAA0Bzd,EAAW8C,IAAAA,EAClC/C,SAAAA,CAAAA,EACAnB,CAAAA,EACH,EAAuBJ,KAAAuB,EAAAvB,KAAAsE,EAAAtE,KAAAwB,EAAAxB,KAAAI,EAAAJ,MAAAO,GAAAA,EAAAP,EAAA,EAAA,EAHvBO,CAGuB,CAE1B,EAEM,MAAM4e,GAAeF,EAAAA,SAAeha,KAC9Bma,GAAoBH,EAAAA,SAAeI,UC/BnCC,GAAuBA,IAAM,CACxC,MAAMhF,EAAaD,GAAAA,EACbkF,EAAiBjF,GAAYkF,qBAAuB,EAEpDC,GACHnF,GAAYoF,+BAAiC,GAAK,EAE/CC,GAAsBrF,GAAYsF,6BAA+B,GAAK,EAEtEC,GACHvF,GAAYQ,YACTR,GAAYwF,0BACZxF,GAAYyF,yBAA2B,EACvCC,GACH1F,GAAYQ,YACTR,GAAY2F,wBACZ3F,GAAY4F,uBAAyB,EAErC,CAACC,EAAgB,EAAGC,EAAiB,CAAC,EAAI,CAC9CP,EACAG,CAAY,EACZK,KAAK,CAACC,EAAGC,IAAMD,EAAIC,CAAC,EAEhBC,EACJlG,GAAYwF,4BACVxF,GAAY2F,yBACd3F,GAAYmG,sBAAwBnG,GAAYoG,kBAE5CC,EAAwBrG,GAAYQ,YACtCR,GAAYoF,8BACZpF,GAAYkF,mBAEhB,MAAO,CACLD,eAAAA,EACAM,eAAAA,EACAG,aAAAA,EACAP,qBAAAA,EACAE,mBAAAA,EACAa,wBAAAA,EACAG,sBAAAA,EACAR,cAAAA,EACAC,eAAAA,CAAAA,CAEJ,ECpCaQ,GAAwBA,IAAA,CAAA,MAAA5gB,EAAAC,EAAAA,EAAA,EAAA,EACnCqa,EAAmBD,GAAAA,EACnB,CAAAkF,eAAAA,EAAAY,cAAAA,EAAAC,eAAAA,EAAAO,sBAAAA,EAAAH,wBAAAA,CAAAA,EAMIlB,GAAAA,EAAsB,IAAAlf,EAAAJ,EAAA,CAAA,IAAAsa,GAAAgB,0BACTlb,EAAAgb,KAAIyF,OAAQvG,GAAUgB,0BAAV,GAA6C,GAAG,EAACtb,EAAA,CAAA,EAAAsa,GAAAgB,yBAAAtb,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAA9E,MAAA8gB,EAAiB1gB,EAA6D,IAAAG,EAAA,GAAAP,EAAA,CAAA,IAAAsa,GAAAyG,iBAAA,CAE9E,MAAAC,EAAwBC,GAGlBA,GAAWC,WACN,GAAGD,EAAW1P,KAAM,MAAMyP,EAAgBC,EAAWC,UAAW,CAAC,GAEnED,GAAW1P,OAAX,GAGYhR,EAAAygB,EAAgB1G,GAAUyG,gBAAkB,EAAC/gB,EAAA,CAAA,EAAAsa,GAAAyG,iBAAA/gB,KAAAO,CAAA,MAAAA,EAAAP,EAAA,CAAA,EAAlE,MAAAmhB,EAAqB5gB,EAA6C,IAAAG,EAAAV,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAM1DN,QAACse,GAAA,CAAmB,MAAA,GAAA,CAAG,EAAIhf,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EACP,MAAAc,EAAA,GAAGggB,CAAQ,IAAG,IAAA/e,EAAA/B,OAAAc,GAFpCiB,EAAA8G,EAAAA,KAAC2K,EAAAA,OAAA,CAAsB,eAAA,gBACrB9S,SAAAA,CAAAA,EACAsB,EAAAA,IAACod,IAAmBte,SAAAA,CAAAA,CAAe,CAAA,EACrC,EAASd,KAAAc,EAAAd,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EAAA,IAAAkD,EAAAlD,EAAA,CAAA,IAAA8gB,GAAA9gB,OAAA+B,GAJXmB,EAAAlB,EAAAA,IAACmd,IAAoB2B,MAAAA,EAAe,KAAA,KAAY,UAC9C/e,SAAAA,CAAAA,CAIF,EAAe/B,KAAA8gB,EAAA9gB,KAAA+B,EAAA/B,KAAAkD,GAAAA,EAAAlD,EAAA,CAAA,EAEZ,MAAAsD,EAAA6d,EAAA,YAA2BA,CAAY,GAAvC,IAAoD,IAAA3d,EAAAxD,QAAAsD,GADvDE,EAAAxB,EAAAA,IAACkG,EAAAA,KAAA,CAAK,YAAkB,SAAA,OAAgB,SAAA,KAAS,GAAA,EAC9C5E,SAAAA,CAAAA,CACH,EAAOtD,MAAAsD,EAAAtD,MAAAwD,GAAAA,EAAAxD,EAAA,EAAA,EAAA,IAAA0D,EAAA1D,EAAA,EAAA,IAAAwgB,GAAAxgB,EAAA,EAAA,IAAAuf,GAAAvf,EAAA,EAAA,IAAAmgB,GAAAngB,EAAA,EAAA,IAAAsa,GAAAyF,wBAAA/f,EAAA,EAAA,IAAAsa,GAAAQ,aAAA9a,EAAA,EAAA,IAAAogB,GAAApgB,QAAA2gB,GACNjd,GAAC6b,GACA1W,EAAAA,KAAC2K,EAAAA,OAAA,CACC,SAAA,CAAAxR,MAACkG,EAAAA,MAAc,SAAA,KACZsY,WAAA,GACML,EAAgB,CAAC,MAAMC,EAAiB,CAAC,OAAOO,CAAqB,GAD3E,GAEMR,EAAgB,CAAC,OAAOQ,CAAqB,GACtD,EACC,CAAC,CAACrG,GAAUQ,aAAZjS,EAAAA,KAAAuY,EAAAA,SAAA,CAEG,SAAA,CAAApf,EAAAA,IAACkG,EAAAA,MAAK,SAAA,GAAA,CAAC,EACPW,EAAAA,KAACX,EAAAA,KAAA,CAAc,SAAA,KAAK,SAAA,CAAA,KACfoS,GAAUyF,wBAAV,GAA2C,EAAE,GAAA,CAAA,CAClD,CAAA,CAAA,CAAO,CAAA,EAGb,EACD/f,MAAAwgB,EAAAxgB,MAAAuf,EAAAvf,MAAAmgB,EAAAngB,EAAA,EAAA,EAAAsa,GAAAyF,uBAAA/f,EAAA,EAAA,EAAAsa,GAAAQ,YAAA9a,MAAAogB,EAAApgB,MAAA2gB,EAAA3gB,MAAA0D,GAAAA,EAAA1D,EAAA,EAAA,EAAA,IAAA4D,EAAA,OAAA5D,EAAA,EAAA,IAAAkD,GAAAlD,QAAAwD,GAAAxD,EAAA,EAAA,IAAA0D,GA1BHE,EAAAiF,EAAAA,KAACb,EAAAA,OAAiB,WAAA,SAAc,IAAA,EAAQ,KAAA,OAAgB,SAAA,OACtD9E,SAAAA,CAAAA,EAMAM,EAGCE,CAAAA,EAiBH,EAAQ1D,MAAAkD,EAAAlD,MAAAwD,EAAAxD,MAAA0D,EAAA1D,MAAA4D,GAAAA,EAAA5D,EAAA,EAAA,EA3BR4D,CA2BQ,ECxDCyd,GAAW/f,EAAAA,KACtBlB,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,EAAA,EAAA,IAAAsB,EAAA2M,EAAA1M,EAAAxB,OAAAI,GAAC,CAAAmB,SAAAA,EAAA2M,SAAAA,EAAA,GAAA1M,CAAAA,EAAApB,EAMEJ,KAAAI,EAAAJ,KAAAuB,EAAAvB,KAAAkO,EAAAlO,KAAAwB,IAAAD,EAAAvB,EAAA,CAAA,EAAAkO,EAAAlO,EAAA,CAAA,EAAAwB,EAAAxB,EAAA,CAAA,GAAA,IAAAO,EAAAG,EAAAV,OAAAkO,GAOQ3N,EAAA2N,IAAa,SAAb,CAAAqJ,OAAkC,CAAA,EAAlC,CAAA7J,IAA+C,CAAA,EAElDhN,EAAAwN,IAAa,SAAb,CAAArM,MAEa,6BAA4BC,QAC1B,2BAAA,EAHf,CAAAD,MAMa,0BAAyBC,QACvB,wBAAA,EACV9B,KAAAkO,EAAAlO,KAAAO,EAAAP,KAAAU,IAAAH,EAAAP,EAAA,CAAA,EAAAU,EAAAV,EAAA,CAAA,GAAA,IAAAc,EAAA,OAAAd,EAAA,CAAA,IAAAuB,GAAAvB,EAAA,CAAA,IAAAwB,GAAAxB,EAAA,CAAA,IAAAO,GAAAP,QAAAU,GAfTI,EAAAkB,EAAAA,IAACC,EAAAA,SAAA,CACS,QAAA,OACM,cAAA,MACR,MAAA,OACG,SAAA,WAAU,GACd1B,EAEH,cAAAG,EAUgB,kBAAA,WACV,QAAA,WACG,WAAA,SACI,eAAA,SACR,OAAA,KACJ,EAAA,EAAC,GACAc,EAEHD,SAAAA,CAAAA,CACH,EAAWvB,KAAAuB,EAAAvB,KAAAwB,EAAAxB,KAAAO,EAAAP,MAAAU,EAAAV,MAAAc,GAAAA,EAAAd,EAAA,EAAA,EA1BXc,CA0BW,CAGjB,ECpCMwgB,GAAiBC,EAAAA,OAAOC,EAAQ,EAEzBC,GAAengB,EAAAA,KAAK+C,GAAA,CAAA,MAAArE,EAAAC,EAAAA,EAAA,EAAA,EAAA,IAAAG,EAAAJ,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAItBZ,EAAA,CAAA,OACK,YAAW,kBACA,uBAAsB,gBACxB,2BAAA,EAClBJ,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAAA,IAAAO,EAAAG,EAAAI,EAAAiB,EAAA/B,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAIQT,EAAA,CAAAmhB,QACI,CAAA,EAENhhB,EAAA,CAAA,sCACoC,CAAAihB,UAC1B,yCAAA,EACZ,+BAC+B,CAAAA,UACnB,uCAAA,EACZ,kDACkD,CAAAA,UACtC,yCAAA,CACb,EAGM7gB,EAAA,CAAAqN,OACI,MAAKT,IACR,MAAKkU,UACC,mBAAkBC,gBACZ,sBAAA,EAEZ9f,EAAA,CAAAoM,OACG,MAAKT,IACR,MAAKkU,UACC,mBAAkBC,gBACZ,oBAAA,EAClB7hB,KAAAO,EAAAP,KAAAU,EAAAV,KAAAc,EAAAd,KAAA+B,IAAAxB,EAAAP,EAAA,CAAA,EAAAU,EAAAV,EAAA,CAAA,EAAAc,EAAAd,EAAA,CAAA,EAAA+B,EAAA/B,EAAA,CAAA,GAMY,MAAAkD,eAAamB,EAAKyd,QAAL,MAAA,MAA8B,UAAS,IAAAxe,EAAAtD,OAAAkD,GAlB3DI,EAAA,CAAAye,KACAjhB,EAKLkhB,MACMjgB,EAKNkgB,OACO,CAAAtU,MACC,OAAMQ,OACL,OAAMT,IACT,MAAKwU,YACG,qBAAoBN,UACtB1e,EAAoD2e,gBAC9C,YAAWM,UACjB,KAAA,CACb,EACDniB,KAAAkD,EAAAlD,KAAAsD,GAAAA,EAAAtD,EAAA,CAAA,EAAA,IAAAwD,EAAA,OAAAxD,EAAA,CAAA,IAAAqE,GAAArE,OAAAsD,GA9CLE,QAACqE,EAAAA,IAAA,CACS,QAAA,WACH,IAAAzH,EAML,eAACkhB,GAAA,CACW,YACH,MAAA/gB,EAGF,IAAAG,EAWG,OAAA4C,EAsBP,GACGe,EAAK,EAEb,EAAMrE,KAAAqE,EAAArE,KAAAsD,EAAAtD,KAAAwD,GAAAA,EAAAxD,EAAA,CAAA,EAjDNwD,CAiDM,CAET,ECpDK4e,GAAkBA,IAAA,CAAA,MAAApiB,EAAAC,EAAAA,EAAA,EAAA,EAEtBoiB,EADmBhI,GAAAA,GACagI,cAChC,CAAAxC,eAAAyC,EAAA3B,sBAAAvgB,CAAAA,EACEkf,GAAAA,EADuCqB,EAAAvgB,IAAAvB,OAAA,EAAAuB,EAEzCmiB,EAAoBF,EAChBjH,KAAIC,OAAQiH,GAAA,GAAwB,CACtB,EAFEA,EAED,IAAA/hB,EAAAP,OAAAuiB,GACyBhiB,EAAAA,IAC1CxB,EAAAA,OAAO,CAAAC,QACIujB,GAAA,CAAA,CACV,EAACviB,KAAAuiB,EAAAviB,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAHJ,KAAA,CAAAQ,EAAAqR,CAAA,EAA6B2Q,EAAAA,eAAejiB,CAI5C,EAEAkiB,EAAYrH,KAAIqH,IACd,EACAJ,EACIjH,KAAIC,OAAQsF,EAAwB,GAAK,CACjB,EAAxBA,EAAwB,CAC9B,EAAC,IAAAjgB,EAAAI,EAAAd,EAAA,CAAA,IAAAuiB,GAAAviB,OAAA6R,GAESnR,EAAAA,IAAA,CACRmR,EAAWzO,OAAQmf,GAAA,CAAgB,CAAC,EACnCzhB,EAAA,CAACyhB,EAAa1Q,CAAW,EAAC7R,KAAAuiB,EAAAviB,KAAA6R,EAAA7R,KAAAU,EAAAV,KAAAc,IAAAJ,EAAAV,EAAA,CAAA,EAAAc,EAAAd,EAAA,CAAA,GAF7B8G,EAAAA,UAAUpG,EAEPI,CAA0B,EAAC,IAAAiB,EAAA,OAAA/B,EAAA,CAAA,IAAAyiB,GAAAziB,OAAAQ,GAAAR,EAAA,CAAA,IAAA6R,GAEvB9P,EAAA,CAAAvB,MAAAA,EAAAqR,YAAAA,EAAA6Q,IAZK,EAACD,IAAAA,CAAAA,EAiBZziB,KAAAyiB,EAAAziB,KAAAQ,EAAAR,KAAA6R,EAAA7R,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EALM+B,CAKN,EAGU4gB,GAAWte,GAAA,CAAA,MAAArE,EAAAC,EAAAA,EAAA,EAAA,EACtBrB,EAAesD,EAAAA,EACfoY,EAAmBD,GAAAA,EACnB,CAAAnZ,KAAAd,CAAAA,EACEa,EAAAA,WAAW,IAAMrC,GAAMsB,QAAW,CAACtB,CAAM,CAAO,GAAhD,CAAA,EAAiD,IAAA2B,EAAAP,OAAAI,GADrCG,EAAAH,IAAAvB,OAAA,CAAA,EAAAuB,EAAiBJ,KAAAI,EAAAJ,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAAjB,KAAA,CAAA2a,SAAAA,CAAAA,EAAApa,EAEduhB,EAAgBnH,GAAQiI,mBAAuB,MAC/CP,EAAsB/H,GAAU+H,cAChC,CAAA1B,sBAAAjgB,EAAA+e,qBAAAA,CAAAA,EACEH,GAAAA,EADMqB,EAAAjgB,IAAA7B,OAAA,EAAA6B,EAGRmiB,EAAgCpD,EAChC,CAAAjf,MAAAA,EAAAqR,YAAAA,EAAA6Q,IAAAA,EAAAD,IAAAA,CAAAA,EAAyCL,GAAAA,EAAiB,IAAAthB,EAAAd,EAAA,CAAA,IAAA6iB,GAAA7iB,EAAA,CAAA,IAAAqiB,GAAAriB,EAAA,CAAA,IAAApB,GAAAoB,OAAA6R,GAItD/Q,EAAAgiB,GAAA,CACE,KAAA,CAAA/gB,CAAA,EAAoBghB,MAAKC,QAASF,CAA0B,EAAxCA,EAAA,CAAkCA,CAAM,EAArDrN,EAAA1T,IAAAlD,OAAA,EAAAkD,EAEP8P,EAAWzO,OAAQ5C,CAAK,EAExB,MAAAgO,EAAkB6T,EACdjH,KAAIC,MAAO7a,CAAK,EAAI,EACpB4a,KAAIC,MAAO7a,CAAK,EAEfqiB,EAMHjkB,GAAMgM,WAAgCqY,oBAAC,CAAAzU,UAAAA,EAAA0U,YAExBtkB,EAAM0b,WAAWjX,MAAMod,qBAAvB,EAAgD0C,UAClD,EAAA,CACZ,EATDvkB,GAAMgM,WAAkCwY,sBAAC,CAAAnY,kBACpBuD,EAAS2U,UACjB,EAAA,CACZ,CAOF,EACFnjB,KAAA6iB,EAAA7iB,KAAAqiB,EAAAriB,KAAApB,EAAAoB,KAAA6R,EAAA7R,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAvBL,MAAAqjB,EACEviB,EAwBC,IAAAiB,EAAA/B,EAAA,CAAA,IAAApB,GAAAgM,YAAA5K,EAAA,CAAA,IAAA6R,EAAAyR,SAS8BvhB,EAAAA,IACxBnD,GAAMgM,WAAyB2Y,aAAC,CAAAnG,SAC3B,IAAGoG,QACJ3R,EAAWyR,OAAAA,CACrB,EACFtjB,EAAA,CAAA,EAAApB,GAAAgM,WAAA5K,EAAA,CAAA,EAAA6R,EAAAyR,QAAAtjB,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EALD,MAAAujB,EAAqBxhB,EAwBrB,GAjBAsF,EAAAA,aAAakc,CAAY,EAWvB5C,IAA0B,GACzB0B,GAAiB1B,IAA0B,EAKlC,CAAA,IAAAzd,EAAA,OAAAlD,EAAA,EAAA,IAAAqE,EAAAof,OAASvgB,EAAAlB,EAAAA,IAAC6F,EAAAA,IAAA,CAAW,MAAAxD,EAAKof,MAAM,EAAIzjB,EAAA,EAAA,EAAAqE,EAAAof,MAAAzjB,MAAAkD,GAAAA,EAAAlD,EAAA,EAAA,EAA3BkD,CAA2B,CAAA,IAAAA,EAAAlD,QAAAQ,GAIrC0C,EAAA,CAAC1C,CAAK,EAACR,MAAAQ,EAAAR,MAAAkD,GAAAA,EAAAlD,EAAA,EAAA,EAAA,IAAAsD,EAAA,OAAAtD,QAAAyiB,GAAAziB,EAAA,EAAA,IAAA0iB,GAAA1iB,EAAA,EAAA,IAAAqjB,GAAArjB,EAAA,EAAA,IAAAqE,GAAArE,QAAA8hB,GAAA9hB,EAAA,EAAA,IAAAkD,GADhBI,QAACme,GAAA,CACQ,MAAAve,EACFuf,IAAAA,EACAC,IAAAA,EACIZ,QAAAA,EACH4B,KAtEGA,EAuECL,SAAAA,EAAQ,GACdhf,CAAAA,CAAK,EACTrE,MAAAyiB,EAAAziB,MAAA0iB,EAAA1iB,MAAAqjB,EAAArjB,MAAAqE,EAAArE,MAAA8hB,EAAA9hB,MAAAkD,EAAAlD,MAAAsD,GAAAA,EAAAtD,EAAA,EAAA,EARFsD,CAQE,ECvFOqgB,GAAYriB,EAAAA,KACvBlB,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,GAAA,EAAC,CAAAwG,KAAAA,EAAAmd,YAAAA,CAAAA,EAAAxjB,EASCyjB,EAAeC,EAAAA,OAAuB,IAAI,EAC1CllB,EAAesD,EAAAA,EAAW,IAAA3B,EAAAP,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAKAT,GACxB,sCACA,2BACA,uBAAuB,EACxBP,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EARD,KAAA,CAAAlB,oCAAAA,EAAAQ,yBAAAA,EAAAF,sBAAAA,CAAAA,EAIIU,GAAsBS,CAIzB,EAAC,IAAAG,EAAAV,EAAA,CAAA,IAAApB,GAAAgM,WAAA2P,QAEA7Z,EAAAA,IAAM9B,GAAMgM,WAAmB2P,OAAAva,EAAA,CAAA,EAAApB,GAAAgM,WAAA2P,OAAAva,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAAA,IAAAc,EAAAd,OAAApB,GAC/BkC,EAAA,CAAClC,CAAM,EAACoB,KAAApB,EAAAoB,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAFV,KAAA,CAAAkB,KAAA0J,CAAAA,EAA6B3J,EAAAA,WAC3BP,EACAI,CACF,EAAC,IAAAiB,EAAA/B,EAAA,CAAA,IAAApB,GAAAiY,SAAAG,SAECjV,EAAAA,IAAMnD,GAAMiY,SAAkBG,QAAAhX,EAAA,CAAA,EAAApB,GAAAiY,SAAAG,QAAAhX,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EAAA,IAAAkD,EAAAlD,OAAApB,GAC9BsE,EAAA,CAACtE,CAAM,EAACoB,KAAApB,EAAAoB,KAAAkD,GAAAA,EAAAlD,EAAA,CAAA,EAFV,KAAA,CAAAkB,KAAA2V,CAAAA,EAA2B5V,EAAAA,WACzBc,EACAmB,CACF,EAAC,IAAAI,EAAAtD,EAAA,CAAA,IAAApB,GAAAmlB,KAAAxJ,QAECjX,EAAAA,IACE1E,GAAMmlB,KAAaxJ,OAAKla,KACtBwC,EAAAA,IAAIC,EAMJ,CACF,EAAC9C,EAAA,CAAA,EAAApB,GAAAmlB,KAAAxJ,OAAAva,MAAAsD,GAAAA,EAAAtD,EAAA,EAAA,EAAA,IAAAwD,EAAAxD,QAAApB,GACH4E,EAAA,CAAC5E,CAAM,EAACoB,MAAApB,EAAAoB,MAAAwD,GAAAA,EAAAxD,EAAA,EAAA,EAXV,KAAA,CAAAkB,KAAA8iB,CAAAA,EAA4B/iB,EAAAA,WAC1BqC,EAUAE,CACF,EACAygB,EAAoBD,IAAc,KAClCE,EAAqBF,IAAc,MACnCG,EAAwBtN,GAAQuN,uBAA2B,aAC3DC,EACExN,GAAQyN,4BAAgC,WAC1C,CAAAC,EAAAC,CAAA,EAAsCpe,EAAAA,SAAS,EAAI,EAAC,IAAA1C,EAAAE,EAAA5D,QAAAlB,GAE1C4E,EAAAA,IAAA,CACR,GAAI,CAACmgB,EAAMzO,QAAQ,OAEnB,MAAAqP,GAAuB,IAAI3M,eAAeC,IAAA,CACxC,UAAK2M,MAAe3M,GAClBjZ,EAAmCsE,OAAQshB,EAAK,CACjD,CACF,EAEDD,OAAAA,GAAcvM,QAAS2L,EAAMzO,OAAQ,EAE9B,IAAA,CACLqP,GAActM,WAAAA,CAAa,CAC5B,EACAvU,EAAA,CAAC9E,CAAmC,EAACkB,MAAAlB,EAAAkB,MAAA0D,EAAA1D,MAAA4D,IAAAF,EAAA1D,EAAA,EAAA,EAAA4D,EAAA5D,EAAA,EAAA,GAdxC8G,EAAAA,UAAUpD,EAcPE,CAAqC,EAAC,IAAA8D,EAAA1H,EAAA,EAAA,IAAApB,GAAAgM,YAyBxBlD,EAAAA,IAAM9I,GAAMgM,WAAmC+Z,uBAAAA,EAAE3kB,EAAA,EAAA,EAAApB,GAAAgM,WAAA5K,MAAA0H,GAAAA,EAAA1H,EAAA,EAAA,EAExD,MAAA2H,GAACiD,GAAUga,oBAAX,CAAoCha,GAAUia,kBAAmB,IAAA9c,EAAA/H,QAAAqkB,GAGlEtc,EAAAsc,EAAsBriB,EAAAA,IAAC8iB,GAAAA,gBAAA,CAAA,CAAe,QAAOC,GAAAA,kBAAA,EAAiB,EAAG/kB,MAAAqkB,EAAArkB,MAAA+H,GAAAA,EAAA/H,EAAA,EAAA,EAAA,IAAAiI,EAAAjI,EAAA,EAAA,IAAA0H,GAAA1H,QAAA2H,GAAA3H,EAAA,EAAA,IAAA+H,GAVpEE,QAAC6W,aAAA,CACY,aAAA,OACN,KAAA,KACG,QAAA,QACI,WAAA,EACH,QAAApX,EAEP,SAAAC,EAGDI,SAAAA,EACH,EAAa/H,MAAA0H,EAAA1H,MAAA2H,EAAA3H,MAAA+H,EAAA/H,MAAAiI,GAAAA,EAAAjI,EAAA,EAAA,EAAA,IAAAmI,EAAAnI,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GASXmH,QAACyY,GAAA,EAAqB,EAAG5gB,MAAAmI,GAAAA,EAAAnI,EAAA,EAAA,EAAA,IAAAsI,EAAAtI,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAR3BsH,EAAAO,EAAAA,KAACb,QAAA,CACO,KAAA,EACA,SACD,MACM,WAAA,SACF,SAAA,OACL,GAAA,EAEJG,SAAAA,CAAAA,EACAnG,MAAC2gB,IACQ,MAAA,CAAAhV,MACE,OAAMqX,SACH,QAAO7W,OACT,MAAA,CACV,CAAC,CAAA,EAEL,EAAQnO,MAAAsI,GAAAA,EAAAtI,EAAA,EAAA,EAOJ,MAAAwI,GAACoC,GAAUqa,qBAAX,CACCra,GAAUsa,qBAAsB,IAAAzc,EAAAzI,EAAA,EAAA,IAAApB,GAAAgM,YAE1BnC,EAAAA,IAAA,CACP7J,GAAMgM,WAAuCua,2BAAAA,CAAE,EAChDnlB,EAAA,EAAA,EAAApB,GAAAgM,WAAA5K,MAAAyI,GAAAA,EAAAzI,EAAA,EAAA,EAAA,IAAA4I,EAAA5I,QAAAqkB,GAEAzb,EAAAyb,EACCriB,EAAAA,IAACojB,GAAAA,kBAAA,CAAA,CAAiB,QAEjBC,GAAAA,mBAAA,EAAkB,EACpBrlB,MAAAqkB,EAAArkB,MAAA4I,GAAAA,EAAA5I,EAAA,EAAA,EAAA,IAAA+I,EAAA/I,EAAA,EAAA,IAAAwI,GAAAxI,QAAAyI,GAAAzI,EAAA,EAAA,IAAA4I,GAjBHG,QAAC+V,aAAA,CACY,aAAA,QACN,KAAA,KACO,WAAA,EACJ,QAAA,QAEN,SAAAtW,EAGO,QAAAC,EAIRG,SAAAA,EAKH,EAAa5I,MAAAwI,EAAAxI,MAAAyI,EAAAzI,MAAA4I,EAAA5I,MAAA+I,GAAAA,EAAA/I,EAAA,EAAA,EAAA,IAAAgJ,EAAAhJ,EAAA,EAAA,IAAAiI,GAAAjI,QAAA+I,GAtDfC,EAAAH,EAAAA,KAAC2K,EAAAA,OAAA,CACO,KAAA,EACK,WAAA,SACI,eAAA,SACN,SAAA,OACL,GAAA,EAEJvL,SAAAA,CAAAA,EAYAK,EAiBAS,CAAAA,EAmBF,EAAS/I,MAAAiI,EAAAjI,MAAA+I,EAAA/I,MAAAgJ,GAAAA,EAAAhJ,EAAA,EAAA,EAAA,IAAAiJ,EAAAjJ,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAKSiI,EAAAmN,IAAA,CAAC,KAAA,CAAA3P,KAAA4L,EAAAA,EAAA+D,GACboO,EAAe/d,EAAI,CAAC,EACrBzG,MAAAiJ,GAAAA,EAAAjJ,EAAA,EAAA,EAWgB,MAAAoW,EAAAmO,EAAA,eAAA,iBAA+C,IAAAlO,EAAArW,QAAAoW,GARhEC,EAAArU,EAAAA,IAAAsjB,cAAA,QAAA,CACW,SAAA,IACH,MAAA,OACE,QAAA,OACO,eAAA,SAEf,SAAAtjB,MAACujB,GAAAA,eACQ,MAAA,CAAA3D,UACMxL,CAAAA,IAGjB,EAAsBpW,MAAAoW,EAAApW,MAAAqW,GAAAA,EAAArW,EAAA,EAAA,EAAA,IAAAsW,EAAAtW,QAAA4jB,GAOPtN,EAAAA,IAAMsN,EAAY,MAAM,EAAC5jB,MAAA4jB,EAAA5jB,MAAAsW,GAAAA,EAAAtW,EAAA,EAAA,EAAA,IAAAuW,EAAAvW,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAElCuV,QAACiP,GAAAA,aAAA,EAAY,EAAGxlB,MAAAuW,GAAAA,EAAAvW,EAAA,EAAA,EAAA,IAAAylB,EAAAzlB,QAAAsW,GANlBmP,EAAAzjB,EAAAA,IAAC8c,EAAAA,WAAA,CACY,aAAA,OACN,KAAA,KACG,QAAA,QACC,QAAAxI,EAETC,SAAAA,CAAAA,CACF,EAAavW,MAAAsW,EAAAtW,MAAAylB,GAAAA,EAAAzlB,EAAA,EAAA,EAAA,IAAA0lB,EAAA1lB,QAAA4jB,GAKF8B,EAAAA,IAAM9B,EAAY,KAAK,EAAC5jB,MAAA4jB,EAAA5jB,MAAA0lB,GAAAA,EAAA1lB,EAAA,EAAA,EAAA,IAAA2lB,GAAA3lB,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAEjC2kB,SAACC,GAAAA,kBAAA,EAAiB,EAAG5lB,MAAA2lB,IAAAA,GAAA3lB,EAAA,EAAA,EAAA,IAAA6lB,EAAA7lB,QAAA0lB,GANvBG,EAAA7jB,EAAAA,IAAC8c,EAAAA,WAAA,CACY,aAAA,oBACN,KAAA,KACG,QAAA,QACC,QAAA4G,EAETC,SAAAA,EAAAA,CACF,EAAa3lB,MAAA0lB,EAAA1lB,MAAA6lB,GAAAA,EAAA7lB,EAAA,EAAA,EAAA,IAAA8lB,GAAA9lB,EAAA,EAAA,IAAA4jB,GAAA5jB,QAAApB,GACZknB,GAAA3jB,GAAkBvD,CASnB,SARGkgB,EAAAA,WAAA,CACY,aAAA,SACN,KAAA,KACG,QAAA,QACC,YAAM8E,EAAY,QAAQ,EAEnC,SAAA5hB,MAAC+jB,GAAAA,WAAQ,EACX,EACD/lB,MAAA4jB,EAAA5jB,MAAApB,EAAAoB,MAAA8lB,IAAAA,GAAA9lB,EAAA,EAAA,EAIU,MAAAgmB,GAAA/B,EAAA,QAAA,QAA+B,IAAAgC,GAAAjmB,QAAAikB,GAAAjkB,EAAA,EAAA,IAAApB,GAAAmlB,MAC/BkC,GAAAA,IAAA,CACHhC,EACFrlB,GAAMmlB,KAAWmC,KAAC,CAAAC,QAAW,EAAA,CAAM,EAEnCvnB,GAAMmlB,KAAYqC,MAAC,CAAAD,QACR,GAAIE,MACN,CAAA,CACR,CACF,EACFrmB,MAAAikB,EAAAjkB,EAAA,EAAA,EAAApB,GAAAmlB,KAAA/jB,MAAAimB,IAAAA,GAAAjmB,EAAA,EAAA,EAAA,IAAAsmB,GAAAtmB,QAAAikB,GAEAqC,GAAArC,EAAcjiB,EAAAA,IAACukB,GAAAA,UAAA,CAAA,CAAS,QAAOC,GAAAA,SAAA,EAAQ,EAAGxmB,MAAAikB,EAAAjkB,MAAAsmB,IAAAA,GAAAtmB,EAAA,EAAA,EAAA,IAAAymB,GAAAzmB,EAAA,EAAA,IAAAgmB,IAAAhmB,QAAAimB,IAAAjmB,EAAA,EAAA,IAAAsmB,IAf7CG,GAAAzkB,EAAAA,IAAC8c,EAAAA,WAAA,CACY,aAAA,OACN,KAAA,KACI,QAAAkH,GACA,QAAAC,GAWRK,SAAAA,EAAAA,CACH,EAAatmB,MAAAgmB,GAAAhmB,MAAAimB,GAAAjmB,MAAAsmB,GAAAtmB,MAAAymB,IAAAA,GAAAzmB,EAAA,EAAA,EAAA,IAAA0mB,GAAA1mB,QAAAV,GAIFonB,GAAAA,IAAA,CACPpnB,EAAyB,EAAI,CAAC,EAC/BU,MAAAV,EAAAU,MAAA0mB,IAAAA,GAAA1mB,EAAA,EAAA,EAAA,IAAA2mB,GAAA3mB,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAGD2lB,SAACC,GAAAA,WAAA,EAAU,EAAG5mB,MAAA2mB,IAAAA,GAAA3mB,EAAA,EAAA,EAAA,IAAA6mB,GAAA7mB,QAAA0mB,IARhBG,GAAA7kB,EAAAA,IAAC8c,EAAAA,WAAA,CACY,aAAA,YACN,KAAA,KACI,QAAA4H,GAGD,QAAA,QAERC,SAAAA,EAAAA,CACF,EAAa3mB,MAAA0mB,GAAA1mB,MAAA6mB,IAAAA,GAAA7mB,EAAA,EAAA,EAAA,IAAA8mB,GAAA9mB,EAAA,EAAA,IAAA4jB,GAAA5jB,QAAApB,GACZkoB,GAAA1kB,GAAuBxD,CASxB,SARGkgB,EAAAA,WAAA,CACY,aAAA,YACN,KAAA,KACG,QAAA,QACC,YAAM8E,EAAY,WAAW,EAEtC,SAAA5hB,MAAC+kB,GAAAA,cAAW,EACd,EACD/mB,MAAA4jB,EAAA5jB,MAAApB,EAAAoB,MAAA8mB,IAAAA,GAAA9mB,EAAA,EAAA,EAAA,IAAAgnB,GAAAhnB,EAAA,EAAA,IAAA4jB,GAAA5jB,QAAApB,GACAooB,GAAA5kB,GAAuBxD,CASxB,SARGkgB,EAAAA,WAAA,CACY,aAAA,cACN,KAAA,KACG,QAAA,QACC,YAAM8E,EAAY,aAAa,EAExC,SAAA5hB,MAAC2B,GAAAA,gBAAa,EAChB,EACD3D,MAAA4jB,EAAA5jB,MAAApB,EAAAoB,MAAAgnB,IAAAA,GAAAhnB,EAAA,EAAA,EAAA,IAAAinB,GAAAjnB,EAAA,EAAA,IAAAmkB,GAAAnkB,QAAAZ,GAAAY,EAAA,EAAA,IAAApB,GACAqoB,GAAA3kB,GAAiB1D,CAYlB,GAXEoD,EAAAA,IAAC8c,EAAAA,WAAA,CACY,aAAA,QACN,KAAA,KACG,QAAA,QACC,QAAA,IAAA,CACP1f,EAAsB,EAAI,CAAC,EAEnB,SAAA,CAAC+kB,EAEX,SAAAniB,EAAAA,IAACklB,GAAAA,qBAAkB,EACrB,EACDlnB,MAAAmkB,EAAAnkB,MAAAZ,EAAAY,MAAApB,EAAAoB,MAAAinB,IAAAA,GAAAjnB,EAAA,EAAA,EAIU,MAAAmnB,GAAAjD,EAAA,QAAA,QAAgC,IAAAkD,GAAApnB,QAAAkkB,GAAAlkB,EAAA,EAAA,IAAApB,GAAAmlB,MAChCqD,GAAAA,IAAA,CACHlD,EACFtlB,GAAMmlB,KAAWmC,KAAC,CAAAC,QAAW,EAAA,CAAM,EAEnCvnB,GAAMmlB,KAAYqC,MAAC,CAAAD,QACR,GAAIE,MACN,EAAA,CACR,CACF,EACFrmB,MAAAkkB,EAAAlkB,EAAA,EAAA,EAAApB,GAAAmlB,KAAA/jB,MAAAonB,IAAAA,GAAApnB,EAAA,EAAA,EAAA,IAAAqnB,GAAArnB,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAEDqmB,SAACC,GAAAA,oBAAA,EAAmB,EAAGtnB,MAAAqnB,IAAAA,GAAArnB,EAAA,EAAA,EAAA,IAAAunB,GAAAvnB,EAAA,EAAA,IAAAmnB,IAAAnnB,QAAAonB,IAfzBG,GAAAvlB,EAAAA,IAAC8c,EAAAA,WAAA,CACY,aAAA,aACN,KAAA,KACI,QAAAqI,GACA,QAAAC,GAWTC,SAAAA,EAAAA,CACF,EAAarnB,MAAAmnB,GAAAnnB,MAAAonB,GAAApnB,MAAAunB,IAAAA,GAAAvnB,EAAA,EAAA,EAAA,IAAAwnB,GAAAxnB,EAAA,EAAA,IAAA4jB,GAAA5jB,QAAApB,GACZ4oB,GAAAnlB,GAAmBzD,CASpB,SARGkgB,EAAAA,WAAA,CACY,aAAA,UACN,KAAA,KACG,QAAA,QACC,YAAM8E,EAAY,SAAS,EAEpC,SAAA5hB,MAACylB,GAAAA,iBAAc,EACjB,EACDznB,MAAA4jB,EAAA5jB,MAAApB,EAAAoB,MAAAwnB,IAAAA,GAAAxnB,EAAA,EAAA,EAAA,IAAA0nB,GAAA1nB,EAAA,EAAA,IAAAylB,GAAAzlB,QAAA6lB,GAAA7lB,EAAA,EAAA,IAAA8lB,IAAA9lB,QAAAymB,IAAAzmB,EAAA,EAAA,IAAA6mB,IAAA7mB,QAAA8mB,IAAA9mB,EAAA,EAAA,IAAAgnB,IAAAhnB,EAAA,EAAA,IAAAinB,IAAAjnB,EAAA,EAAA,IAAAunB,IAAAvnB,QAAAwnB,IAlHLE,SAAApC,EAAAA,YAAA,QAAA,CAA6B,QAAA,OAAsB,eAAA,SACjD,SAAAzc,EAAAA,KAAChB,EAAAA,IAAA,CAAY,QAAA,OAAiB,UAAA,OAAW,GAAA,EAAO,GAAA,EAC9C4d,SAAAA,CAAAA,EAQAI,EAQCC,GAUDW,GAiBAI,GAUCC,GAUAE,GAUAC,GAaDM,GAiBCC,EAAAA,CAAAA,CAUH,CAAA,CACF,EAAsBxnB,MAAAylB,EAAAzlB,MAAA6lB,EAAA7lB,MAAA8lB,GAAA9lB,MAAAymB,GAAAzmB,MAAA6mB,GAAA7mB,MAAA8mB,GAAA9mB,MAAAgnB,GAAAhnB,MAAAinB,GAAAjnB,MAAAunB,GAAAvnB,MAAAwnB,GAAAxnB,MAAA0nB,IAAAA,GAAA1nB,EAAA,EAAA,EAAA,IAAA2nB,GAAA3nB,EAAA,EAAA,IAAAukB,GAAAvkB,QAAAqW,GAAArW,EAAA,GAAA,IAAA0nB,IAzI1BC,SAACnU,SAAA,CAAiB,UAAA,UAAqB,WAAA,SAAwB,eAAA,SAC7D,SAAA3K,EAAAA,KAAAyc,EAAAA,YAAA,KAAA,CACQf,KAAAA,EACA,KAAA,EACQ,aAAAtb,EAGR,MAAA,OAENoN,SAAAA,CAAAA,EAYAqR,EAAAA,CAAAA,CAqHF,CAAA,CACF,EAAS1nB,MAAAukB,EAAAvkB,MAAAqW,EAAArW,OAAA0nB,GAAA1nB,OAAA2nB,IAAAA,GAAA3nB,EAAA,GAAA,EAAA,IAAA4nB,GAAA,OAAA5nB,EAAA,GAAA,IAAAyG,GAAAzG,SAAAgJ,GAAAhJ,EAAA,GAAA,IAAA2nB,IA7MXC,UAACvG,GAAA,CACU5a,QAAAA,EACA,SAAA,SACD,QAAA,OACM,cAAA,SACL,SAAA,OACL,GAAA,EACA,GAAA,EACCod,MAEL7a,SAAAA,CAAAA,EAwDA2e,EAAAA,EA4IF,EAAW3nB,OAAAyG,EAAAzG,OAAAgJ,EAAAhJ,OAAA2nB,GAAA3nB,OAAA4nB,IAAAA,GAAA5nB,EAAA,GAAA,EA9MX4nB,EA8MW,CAGjB,EAlRE,SAAA9kB,GAAAO,EAAA,CAAA,OAgCUA,EAAKwkB,aAAgB,EAArB,KAEIxkB,EAAKwkB,aAAgB,EAArB,MAAAhpB,MAEW,CCnEpB,MAAMipB,GAAgBA,IAAA,CAAA,MAAA9nB,EAAAC,EAAAA,EAAA,CAAA,EAC3B,CAAA8nB,EAAAC,CAAA,EAAwC5hB,EAAAA,SAAS,EAAK,EAAC,IAAAhG,EAAAJ,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAEXZ,EAAAA,IACtC6nB,SAAQC,kBACHD,SAAQE,iBACIC,MACVC,QAAOxK,KAAM,EAACyK,KACf,IAAA,CACJN,EAAgB,EAAK,CAAC,CACvB,EAGEC,SAAQM,gBAAgBC,kBACV,CAAAC,aAAgB,MAAA,CAAQ,EAACL,MACrCC,QAAOxK,KAAM,EAACyK,KACf,IAAA,CACJN,EAAgB,EAAI,CAAC,CACtB,EACJhoB,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAhBD,MAAA0oB,EAAgCtoB,EAgB1B,IAAAG,EAAAG,EAAAV,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAEIT,EAAAA,IAAA,CACR,MAAAooB,YAAA,CACEX,EAAgB,CAAC,CAACC,SAAQC,iBAAkB,CAAC,EAG/CD,gBAAQW,iBAAkB,mBAAoBD,CAAuB,EAE9D,IAAA,CACLV,SAAQY,oBAAqB,mBAAoBF,CAAuB,CAAC,CAC1E,EACAjoB,EAAA,CAAA,EAAEV,KAAAO,EAAAP,KAAAU,IAAAH,EAAAP,EAAA,CAAA,EAAAU,EAAAV,EAAA,CAAA,GAVL8G,EAAAA,UAAUvG,EAUPG,CAAE,EAAC,IAAAI,EAAA,OAAAd,OAAA+nB,GAECjnB,EAAA,CAAAinB,aAAAA,EAAAW,wBAAAA,CAAAA,EAGN1oB,KAAA+nB,EAAA/nB,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAHMc,CAGN,ECjCUgoB,GAASxnB,EAAAA,KACpBlB,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,EAAA,EAAC,CAAAwG,KAAAA,EAAAmd,YAAAA,CAAAA,EAAAxjB,EAOCxB,EAAesD,EAAAA,EAAW,IAAA3B,EAAAP,EAAA,CAAA,IAAApB,GAAAsB,QAAA6oB,WAExBxoB,EAAAA,IAAM3B,GAAMsB,QAAmB6oB,UAAA/oB,EAAA,CAAA,EAAApB,GAAAsB,QAAA6oB,UAAA/oB,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAAA,IAAAU,EAAAV,OAAApB,GAC/B8B,EAAA,CAAC9B,CAAM,EAACoB,KAAApB,EAAAoB,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAFV,KAAA,CAAAkB,KAAAyZ,CAAAA,EAA2B1Z,EAAAA,WACzBV,EACAG,CACF,EACA,CAAAqnB,aAAAA,EAAAW,wBAAAA,CAAAA,EAAkDZ,GAAAA,EAAe,IAAAhnB,EAAAd,OAAA4jB,GAclD9iB,EAAAA,IAAM8iB,EAAY,MAAM,EAAC5jB,KAAA4jB,EAAA5jB,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAAA,IAAA+B,EAAA/B,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAElCe,QAACinB,GAAAA,eAAA,EAAc,EAAGhpB,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EAAA,IAAAkD,EAAAlD,OAAAc,GAPpBoC,EAAAlB,EAAAA,IAAC8c,EAAAA,WAAA,CACY,aAAA,OACN,KAAA,KACG,QAAA,QACI,WAAA,EACH,QAAAhe,EAETiB,SAAAA,EACF,EAAa/B,KAAAc,EAAAd,KAAAkD,GAAAA,EAAAlD,EAAA,CAAA,EAUR,MAAAsD,EAAAqX,GAAQpJ,MAAO,IAAA/N,EAAAxD,OAAAsD,GATpBE,EAAAxB,EAAAA,IAACgG,EAAAA,OACO,KAAA,EACA,KAAA,IACD,MACM,WAAA,SACF,SAAA,OACL,GAAA,EAEJ,SAAAhG,MAACkG,EAAAA,KAAA,CAAK,SAAA,GAAkB,SAAA,OACrB5E,SAAAA,CAAAA,CACH,CAAA,CACF,EAAQtD,KAAAsD,EAAAtD,MAAAwD,GAAAA,EAAAxD,EAAA,EAAA,EAAA,IAAA0D,EAAA1D,QAAA4jB,GAOKlgB,EAAAA,IAAMkgB,EAAY,MAAM,EAAC5jB,MAAA4jB,EAAA5jB,MAAA0D,GAAAA,EAAA1D,EAAA,EAAA,EAAA,IAAA4D,EAAA5D,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAElC4C,QAACqlB,GAAAA,SAAA,EAAQ,EAAGjpB,MAAA4D,GAAAA,EAAA5D,EAAA,EAAA,EAAA,IAAA0H,EAAA1H,QAAA0D,GAPdgE,EAAA1F,EAAAA,IAAC8c,EAAAA,WAAA,CACY,aAAA,QACN,KAAA,KACO,WAAA,EACJ,QAAA,QACC,QAAApb,EAETE,SAAAA,EACF,EAAa5D,MAAA0D,EAAA1D,MAAA0H,GAAAA,EAAA1H,EAAA,EAAA,EAAA,IAAA2H,EAAA3H,QAAA+nB,GAQVpgB,EAAAogB,EAAe/lB,EAAAA,IAACknB,GAAAA,iBAAA,CAAA,CAAgB,QAAOC,GAAAA,aAAA,EAAY,EAAGnpB,MAAA+nB,EAAA/nB,MAAA2H,GAAAA,EAAA3H,EAAA,EAAA,EAAA,IAAA+H,EAAA/H,EAAA,EAAA,IAAA0oB,GAAA1oB,QAAA2H,GAPzDI,EAAA/F,EAAAA,IAAC8c,EAAAA,WAAA,CACY,aAAA,QACN,KAAA,KACO,WAAA,EACJ,QAAA,QACC4J,QAAAA,EAER/gB,SAAAA,EACH,EAAa3H,MAAA0oB,EAAA1oB,MAAA2H,EAAA3H,MAAA+H,GAAAA,EAAA/H,EAAA,EAAA,EAAA,IAAAiI,EAAAjI,EAAA,EAAA,IAAA0H,GAAA1H,QAAA+H,GAlBfE,SAACuL,SAAA,CACC9L,SAAAA,CAAAA,EASAK,CAAAA,EASF,EAAS/H,MAAA0H,EAAA1H,MAAA+H,EAAA/H,MAAAiI,GAAAA,EAAAjI,EAAA,EAAA,EAAA,IAAAmI,EAAA,OAAAnI,EAAA,EAAA,IAAAyG,GAAAzG,EAAA,EAAA,IAAAiI,GAAAjI,EAAA,EAAA,IAAAkD,GAAAlD,QAAAwD,GA9CX2E,EAAAU,EAAAA,KAACwY,IACU5a,QAAAA,EACA,SAAA,MACF,OAAA,OACQ,eAAA,gBAEfvD,SAAAA,CAAAA,EASAM,EAYAyE,CAAAA,EAoBF,EAAWjI,MAAAyG,EAAAzG,MAAAiI,EAAAjI,MAAAkD,EAAAlD,MAAAwD,EAAAxD,MAAAmI,GAAAA,EAAAnI,EAAA,EAAA,EA/CXmI,CA+CW,CAGjB,ECzEaihB,GAAeA,IAAA,CAAA,MAAAppB,EAAAC,EAAAA,EAAA,CAAA,EAAA,IAAAG,EAAAJ,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAMAZ,EAAA,CACxB,gBACA,wBACA,iBACA,wBAAwB,EACzBJ,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAVD,KAAA,CAAAkb,cAAAA,EAAAmO,sBAAAA,EAAA5qB,eAAAA,EAAAC,uBAAAA,CAAAA,EAKIoB,GAAsBM,CAKzB,EAGCG,EAAA2a,GAAAzc,EACAiC,EAAA2oB,GAAA3qB,EAA+C,IAAAoC,EAAA,OAAAd,EAAA,CAAA,IAAAO,GAAAP,OAAAU,GAF1CI,EAAA,CACLP,EACAG,CAA+C,EAChDV,KAAAO,EAAAP,KAAAU,EAAAV,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAHMc,CAGG,ECZCwoB,GAAYhoB,EAAAA,KACvBlB,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,EAAA,EAAC,CAAA2jB,YAAAA,CAAAA,EAAAxjB,EAeC,CAAA8a,CAAA,EAAwBkO,GAAAA,EAAc,IAAA7oB,EAAAP,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAEdT,GACpB,gBACA,mBACA,mBAAmB,EACpBP,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EALH,KAAA,CAAAb,cAAAA,EAAAE,iBAAAA,EAAAM,kBAAAA,CAAAA,EACEG,GAAsBS,CAIrB,EAMKG,EAAAwa,GAAA,CACC/b,GADD,CAECE,GAFD,CAGCM,EAAiB,IAAAmB,EAAAd,EAAA,CAAA,IAAA4jB,GAAA5jB,OAAAU,GALtBI,EAAAkB,EAAAA,IAAC8mB,GAAA,CAEG,KAAApoB,EAKWkjB,YAAAA,EAAW,EACxB5jB,KAAA4jB,EAAA5jB,KAAAU,EAAAV,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAEM,MAAA+B,EAAAmZ,GAAA,CAAkB/b,GAAlB,CAAoCE,EAAgB,IAAA6D,EAAAlD,EAAA,CAAA,IAAA4jB,GAAA5jB,OAAA+B,GAD5DmB,EAAAlB,EAAAA,IAAC2hB,GAAA,CACO,KAAA5hB,EACO6hB,YAAAA,EAAW,EACxB5jB,KAAA4jB,EAAA5jB,KAAA+B,EAAA/B,KAAAkD,GAAAA,EAAAlD,EAAA,CAAA,EAAA,IAAAsD,EAAA,OAAAtD,EAAA,CAAA,IAAAc,GAAAd,OAAAkD,GAbJI,qBACExC,SAAAA,CAAAA,EASAoC,CAAAA,EAGE,EACDlD,KAAAc,EAAAd,KAAAkD,EAAAlD,KAAAsD,GAAAA,EAAAtD,EAAA,CAAA,EAdHsD,CAcG,CAGT,EC1CaimB,GAA4BA,IAAA,CAAA,MAAAvpB,EAAAC,EAAAA,EAAA,CAAA,EACvC,CAAA,CAAAopB,CAAA,EAAgDD,GAAAA,EAChDxqB,EAAesD,EAAAA,EAAW,IAAA9B,EAAAJ,EAAA,CAAA,IAAAqpB,GAAArpB,OAAApB,GAQiBwB,EAAAA,IAClCxB,GAAMiQ,SAAoB2a,UAAKnpB,KACpC6J,EAAAA,OAAOpH,EAAiD,EACxDmM,EAAAA,eACErQ,EAAM6D,UAAUgnB,WAChB7qB,EAAM6D,UAAUsN,2BAClB,EACA9I,EAAAA,IAAI1G,GAAA,CAAC,KAAA,CAAA,CAAAkC,EAAAinB,CAAA,EAAAnpB,EAMD8oB,EADE5mB,GAAAinB,EACoB,GAEApZ,EAFK,CAG5B,CACF,CACH,EACDtQ,KAAAqpB,EAAArpB,KAAApB,EAAAoB,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAnBD,MAAA2pB,EAA+BvpB,EAqB/BiH,EAAAA,aAAasiB,CAAsB,CAAC,EA/BG,SAAA7mB,GAAA0D,EAAA,CAAA,OAYjBA,EAAKgJ,OAAU,OAAf,CAAyBhJ,EAAKojB,OAAQ,CAZrB,SAAAtZ,GAAAuZ,EAAA,CAAA,MAyBA,CAACA,CAAG,CCrBtC,MAAMC,GAAQ3lB,GAAMC,WACzB,SAAAC,EAAAC,EAAA,CAAA,MAAAtE,EAAAC,EAAAA,EAAA,EAAA,EAAA,IAAAsB,EAAAwoB,EAAAC,EAAAtY,EAAAuY,EAAAzoB,EAAAxB,OAAAqE,GACE,CAAAqN,MAAAA,EAAAnQ,SAAAA,EAAAyoB,WAAAA,EAAAD,UAAAA,EAAAE,aAAAA,EAAA,GAAAzoB,CAAAA,EACE6C,EAAKrE,KAAAqE,EAAArE,KAAAuB,EAAAvB,KAAA+pB,EAAA/pB,KAAAgqB,EAAAhqB,KAAA0R,EAAA1R,KAAAiqB,EAAAjqB,KAAAwB,IAAAD,EAAAvB,EAAA,CAAA,EAAA+pB,EAAA/pB,EAAA,CAAA,EAAAgqB,EAAAhqB,EAAA,CAAA,EAAA0R,EAAA1R,EAAA,CAAA,EAAAiqB,EAAAjqB,EAAA,CAAA,EAAAwB,EAAAxB,EAAA,CAAA,GAAA,IAAAI,EAAAJ,EAAA,CAAA,IAAA0R,GAAA1R,OAAAiqB,GAGF7pB,EAAAsR,GACC7I,EAAAA,KAAAqhB,EAAAA,MAAA,MAAA,CACGxY,SAAAA,CAAAA,EACD1P,EAAAA,IAAAkoB,EAAAA,MAAA,kBAAA,CAAyCD,SAAAA,CAAAA,CAAY,CAAA,EACvD,EACDjqB,KAAA0R,EAAA1R,KAAAiqB,EAAAjqB,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAAA,IAAAO,EAAAP,QAAAgqB,GAEAzpB,EAAAypB,GACChoB,MAAAkoB,EAAAA,MAAA,WAAA,CAAyBF,SAAAA,EAAW,EACrChqB,MAAAgqB,EAAAhqB,MAAAO,GAAAA,EAAAP,EAAA,EAAA,EAAA,IAAAU,EAAAV,QAAA+pB,GACArpB,EAAAqpB,GACC/nB,MAAAkoB,EAAAA,MAAA,UAAA,CAAwBH,SAAAA,EAAU,EACnC/pB,MAAA+pB,EAAA/pB,MAAAU,GAAAA,EAAAV,EAAA,EAAA,EAAA,IAAAc,EAAA,OAAAd,QAAAuB,GAAAvB,EAAA,EAAA,IAAAsE,GAAAtE,EAAA,EAAA,IAAAwB,GAAAxB,EAAA,EAAA,IAAAI,GAAAJ,QAAAO,GAAAP,EAAA,EAAA,IAAAU,GAbHI,uBAAuBwD,IAAAA,EAAG,GAAM9C,EAC7BpB,SAAAA,CAAAA,EAMAmB,EACAhB,EAGAG,CAAAA,EAGH,EAAmBV,MAAAuB,EAAAvB,MAAAsE,EAAAtE,MAAAwB,EAAAxB,MAAAI,EAAAJ,MAAAO,EAAAP,MAAAU,EAAAV,MAAAc,GAAAA,EAAAd,EAAA,EAAA,EAdnBc,CAcmB,CAGzB,ECVaqpB,GAAc7oB,EAAAA,KAAK,IAAA,CAAA,MAAAtB,EAAAC,EAAAA,EAAA,EAAA,EAAA,IAAAG,EAAAJ,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAEyCZ,EAAA,CACrE,gBACA,uBAAuB,EACxBJ,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAHD,KAAA,CAAAb,cAAAA,EAAAC,sBAAAA,CAAAA,EAAiDU,GAAsBM,CAGtE,EACDxB,EAAesD,EAAAA,EAAW,IAAA3B,EAAAP,OAAApB,GACF2B,EAAA+B,GAAiB1D,CAA2B,EAA5CA,EAAAC,OAA6CmB,KAAApB,EAAAoB,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAArE,MAAAoqB,EAAwB7pB,EAA6C,IAAAG,EAAAV,EAAA,CAAA,IAAAoqB,GAAAC,MAAAC,WAEnE5pB,EAAAA,IAAM0pB,GAAeC,MAAiBC,UAAAtqB,EAAA,CAAA,EAAAoqB,GAAAC,MAAAC,UAAAtqB,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAAA,IAAAc,EAAAd,OAAAoqB,GACtCtpB,EAAA,CAACspB,CAAe,EAACpqB,KAAAoqB,EAAApqB,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAFnB,KAAA,CAAAkB,KAAAqpB,CAAAA,EAAgCtpB,EAAAA,WAC9BP,EACAI,CACF,EAAC,IAAAiB,EAAA/B,OAAAZ,GAMiB2C,EAAA+J,GAAO1M,EAAsB0M,EAACrF,IAAK,EAACzG,KAAAZ,EAAAY,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EAAA,IAAAkD,EAAAlD,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAIhDkC,EAAAlB,EAAAA,IAACwH,GAAA,CACC,SAAAxH,EAAAA,IAAC0H,GAAA,CAAY,wBAAY,EAC3B,EAAe1J,KAAAkD,GAAAA,EAAAlD,EAAA,CAAA,EAAA,IAAAsD,EAAAtD,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAGXsC,EAAAtB,EAAAA,IAAAgU,EAAAA,SAAA,WAAA,CAAqB,SAAA,iEAErB,EAAsBhW,MAAAsD,GAAAA,EAAAtD,EAAA,EAAA,EAAA,IAAAwD,EAAAxD,EAAA,EAAA,IAAAoqB,GAAAC,OAKD7mB,EAAAgnB,GAAA,CACb,MAAAhqB,EAAcsL,EAACtL,MACf4pB,GAAeC,MAAcjnB,OAAC,CAAAqnB,YACfjqB,EAAKkqB,YAnCX,EAAA,CAqCR,CAAC,EACH1qB,EAAA,EAAA,EAAAoqB,GAAAC,MAAArqB,MAAAwD,GAAAA,EAAAxD,EAAA,EAAA,EACM,MAAA0D,EAAA6mB,GAAaE,aAAb,MAAmC,IAAA7mB,EAAA5D,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAGxC4C,EAAA5B,EAAAA,IAAC4Q,GAAA,CAAa,MAAA,UAAiC,SAAA,UAE/C,EAAQ5S,MAAA4D,GAAAA,EAAA5D,EAAA,EAAA,EAAA,IAAA0H,EAAA1H,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GACR0G,EAAA1F,EAAAA,IAAC4Q,GAAA,CAAa,MAAA,SAAgC,SAAA,SAAM,EAAQ5S,MAAA0H,GAAAA,EAAA1H,EAAA,EAAA,EAAA,IAAA2H,EAAA3H,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAC5D2G,EAAA3F,EAAAA,IAAC4Q,GAAA,CAAa,MAAA,MAA6B,SAAA,uBAE3C,EAAQ5S,MAAA2H,GAAAA,EAAA3H,EAAA,EAAA,EAAA,IAAA+H,EAAA/H,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAPV+G,EAAAc,EAAAA,KAACb,EAAAA,MAAA,CAAW,IAAA,EACVpE,SAAAA,CAAAA,EAGA8D,EACAC,EAGA3F,EAAAA,IAAC4Q,GAAA,CAAa,MAAA,SAAgC,SAAA,QAAA,CAAM,CAAA,EACtD,EAAQ5S,MAAA+H,GAAAA,EAAA/H,EAAA,EAAA,EAAA,IAAAiI,EAAAjI,EAAA,EAAA,IAAAwD,GAAAxD,QAAA0D,GArBZuE,QAAC6hB,GAAA,CAAY,MAAA,UACX,SAAA9nB,EAAAA,IAACgR,GAAA,CACe,aAAA,MACC,cAAAxP,EAOR,MAAAE,EAEPqE,WAUF,EACF,EAAQ/H,MAAAwD,EAAAxD,MAAA0D,EAAA1D,MAAAiI,GAAAA,EAAAjI,EAAA,EAAA,EAOI,MAAAmI,EAAAoiB,GAAaE,cAAkB,SACjCniB,EAAAiiB,GAAaG,aAAb,GAAgD,IAAAliB,EAAAxI,QAAAsI,GAAjDE,EAAA,CAACF,CAAgD,EAACtI,MAAAsI,EAAAtI,MAAAwI,GAAAA,EAAAxI,EAAA,EAAA,EAAA,IAAAyI,EAAAzI,EAAA,EAAA,IAAAoqB,GAAAC,OAC1C5hB,EAAAkiB,GAAA,CACb,MAAAlV,EAAc3J,EAACtL,MAAM,CAAA,GAAP,EAEd4pB,GAAeC,MAAcjnB,OAAC,CAAAsnB,YACflqB,CAAAA,CACd,CAAC,EACHR,EAAA,EAAA,EAAAoqB,GAAAC,MAAArqB,MAAAyI,GAAAA,EAAAzI,EAAA,EAAA,EAAA,IAAA4I,EAAA5I,EAAA,EAAA,IAAAmI,GAAAnI,QAAAwI,GAAAxI,EAAA,EAAA,IAAAyI,GAdHG,QAACqK,GAAA,CACO,MAAA,oBACN,aACK,IAAA,IACA,IAAA,GACC,OACI,SAAA9K,EACH,MAAAK,EACQ,cAAAC,EAMd,EACDzI,MAAAmI,EAAAnI,MAAAwI,EAAAxI,MAAAyI,EAAAzI,MAAA4I,GAAAA,EAAA5I,EAAA,EAAA,EAAA,IAAA+I,EAAA/I,EAAA,EAAA,IAAAiI,GAAAjI,QAAA4I,GA7CRG,QAACU,GAAA,CACC,SAAAZ,EAAAA,sBACEvF,SAAAA,CAAAA,EAGAuF,EAAAA,KAAAmN,EAAAA,SAAA,QAAA,CACE/N,SAAAA,CAAAA,EAwBAW,CAAAA,CAAAA,CAgBF,CAAA,CAAA,CACF,CAAA,CACF,EAAa5I,MAAAiI,EAAAjI,MAAA4I,EAAA5I,MAAA+I,GAAAA,EAAA/I,EAAA,EAAA,EAAA,IAAAgJ,EAAAC,EAAAjJ,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GACbgI,EAAAhH,EAAAA,IAACuH,GAAA,CACC,SAAAvH,EAAAA,IAAC2H,GAAA,CAAoB,QAAA,GACnB,SAAA3H,MAACyB,EAAAA,OAAA,CAAe,QAAA,UAAU,SAAA,OAAA,CAAK,CAAA,CACjC,EACF,EACAwF,QAACI,GAAA,EAAkB,EAAGrJ,MAAAgJ,EAAAhJ,MAAAiJ,IAAAD,EAAAhJ,EAAA,EAAA,EAAAiJ,EAAAjJ,EAAA,EAAA,GAAA,IAAAoW,EAAApW,QAAA+I,GA1DxBqN,SAAClN,GAAA,CACChG,SAAAA,CAAAA,EAGA6F,EAiDAC,EAKAC,CAAAA,EACF,EAAgBjJ,MAAA+I,EAAA/I,MAAAoW,GAAAA,EAAApW,EAAA,EAAA,EAAA,IAAAqW,EAAA,OAAArW,EAAA,EAAA,IAAAb,GAAAa,QAAAoW,GAAApW,EAAA,EAAA,IAAA+B,GAjElBsU,EAAArU,EAAAA,IAACsH,GAAA,CACC,UAAA,GACMnK,KAAAA,EACQ,aAAA4C,EACJ,UAAA,SAEVqU,SAAAA,CAAAA,CA4DF,EAAapW,MAAAb,EAAAa,MAAAoW,EAAApW,MAAA+B,EAAA/B,MAAAqW,GAAAA,EAAArW,EAAA,EAAA,EAlEbqW,CAkEa,CAEhB,ECrGYuU,GAAiBtpB,EAAAA,KAC5BlB,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,EAAA,EAAC,CAAA4qB,YAAAtqB,EAAAuqB,YAAApqB,EAAAoD,KAAAA,EAAAgH,IAAAhK,EAAAiqB,QAAAA,EAAA9f,kBAAAA,CAAAA,EAAA7K,EACCyqB,EAAAtqB,IAAA1B,OAAA,GAAA0B,EACAuqB,EAAApqB,IAAA7B,OAAA,EAAA6B,EAEAoK,EAAAhK,IAAAjC,OAAA,IAAAiC,EAAS,IAAAiB,EAAA/B,EAAA,CAAA,IAAA6qB,GAAA7qB,OAAA8qB,GAaM/oB,EAAA8oB,EAAWG,UACxB5P,KAAIqH,IAAKqI,EAFa,GAEkB,CAAC,EACzC1P,KAAIqH,IAAKqI,EAAa,CAAC,CACzB,EAAC9qB,KAAA6qB,EAAA7qB,KAAA8qB,EAAA9qB,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EAHD,MAAAirB,EAAelpB,EAGd,IAAAmB,EAAAlD,EAAA,CAAA,IAAA6qB,GAAA7qB,EAAA,CAAA,IAAA8qB,GAAA9qB,EAAA,CAAA,IAAA8D,EAAAE,QACad,EAAA2nB,EAAWG,UACvB5P,KAAIsH,IAAKoI,EAAchnB,EAAIE,OAAS6mB,EAAW7mB,OAAU,CAAC,EAC1DoX,KAAIsH,IACFoI,EAAchnB,EAAIE,OARE,GASpB6mB,EAAW7mB,OAAU,CACvB,CACF,EAAChE,KAAA6qB,EAAA7qB,KAAA8qB,EAAA9qB,EAAA,CAAA,EAAA8D,EAAAE,OAAAhE,KAAAkD,GAAAA,EAAAlD,EAAA,CAAA,EAND,MAAAkrB,EAAchoB,EAMb,IAAAI,EAAAtD,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAKUsC,EAAA,CAAA6nB,OAAU,EAACC,SAAY,QAAA,EAAUprB,KAAAsD,GAAAA,EAAAtD,EAAA,CAAA,EAAA,IAAAwD,EAAAxD,EAAA,CAAA,IAAA8K,GAAA9K,OAAA+qB,GAC/BvnB,EAAAsI,GAAA,CACPA,EAACuf,eAAAA,EAEDN,EAAQjgB,CAAG,CAAC,EACb9K,KAAA8K,EAAA9K,KAAA+qB,EAAA/qB,MAAAwD,GAAAA,EAAAxD,EAAA,EAAA,EAAA,IAAA0D,EAAA1D,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAMoC0C,EAAA,CAAA4nB,QAAW,OAAA,EAAStrB,MAAA0D,GAAAA,EAAA1D,EAAA,EAAA,EAAA,IAAA4D,EAAA5D,QAAA8D,GAEvDF,EAAA5B,EAAAA,IAAA,KAAI8B,SAAAA,CAAAA,CAAK,EAAI9D,MAAA8D,EAAA9D,MAAA4D,GAAAA,EAAA5D,EAAA,EAAA,EAAA,IAAA0H,EAAA1H,EAAA,EAAA,IAAAkrB,GAAAlrB,QAAAirB,GAAAjrB,EAAA,EAAA,IAAA4D,GAFf8D,SAACQ,OAAA,CAAgB,UAAA,EAAM,GAAA,OAAc,MAAAxE,EAAsB,SAAA,CAAA,IACvDunB,EACFrnB,EACCsnB,EAAM,GAAA,EACT,EAAOlrB,MAAAkrB,EAAAlrB,MAAAirB,EAAAjrB,MAAA4D,EAAA5D,MAAA0H,GAAAA,EAAA1H,EAAA,EAAA,EAAA,IAAA2H,EAAA3H,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GACqC2G,EAAA,CAAA4jB,eAAkB,MAAA,EAAQvrB,MAAA2H,GAAAA,EAAA3H,EAAA,EAAA,EACnE,MAAA+H,EAAA,cAAckD,IAAsBpM,OAAYoM,EAAoB,EAAtD,sBAAgF,GAAE,IAAAhD,EAAAjI,QAAA+H,GADnGE,EAAAjG,EAAAA,IAACkG,QAAc,SAAA,KAAW,MAAA,WAAkB,MAAAP,EACzCI,SAAAA,CAAAA,CACH,EAAO/H,MAAA+H,EAAA/H,MAAAiI,GAAAA,EAAAjI,EAAA,EAAA,EAAA,IAAAmI,EAAA,OAAAnI,EAAA,EAAA,IAAA8K,GAAA9K,EAAA,EAAA,IAAA0H,GAAA1H,EAAA,EAAA,IAAAiI,GAAAjI,QAAAwD,GApBT2E,EAAAU,EAAAA,KAACqC,EAAAA,KAAA,CACOJ,KAAAA,EACC,MAAAxH,EACE,QAAAE,EAKD,QAAA,OACM,cAAA,SACH,WAAA,aACN,MAELkE,SAAAA,CAAAA,EAKAO,CAAAA,EAGF,EAAOjI,MAAA8K,EAAA9K,MAAA0H,EAAA1H,MAAAiI,EAAAjI,MAAAwD,EAAAxD,MAAAmI,GAAAA,EAAAnI,EAAA,EAAA,EArBPmI,CAqBO,CAGb,EC9CMqjB,GAAgB,IAETC,GAAYA,IAAA,CAAA,MAAAzrB,EAAAC,EAAAA,EAAA,EAAA,EACvByrB,EAAsB5Z,EAAAA,YAAYhP,EAA6B,EAC/D,CAAA5B,KAAAyqB,CAAAA,EAA8B1qB,EAAAA,WAAWyqB,CAAa,EACtD9sB,EAAesD,EAAAA,EAAW,IAAA9B,EAAAJ,OAAApB,GACDwB,EAAA+B,GAAkBvD,CAA2B,EAA7CA,EAAAC,OAA8CmB,KAAApB,EAAAoB,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAAvE,MAAA4rB,EAAyBxrB,EAA8C,IAAAG,EAAAG,EAAAV,EAAA,CAAA,IAAA4rB,GAAA5rB,OAAA0rB,GAEnCnrB,EAAAA,IAC3BmrB,EAAarrB,KAClBgQ,EAAAA,qBAAAA,EACA1N,EAAAA,UAAUnC,GACRA,IAAU,IAAV,CAAiBorB,EACb/e,EAAAA,GAAGhO,MAUH,EATAqf,EAAAA,MACErR,KAAG,CAAA2C,KACK,QAAgBtO,KAChBrC,MAAAA,CACP,EACDsf,EAAAA,MAAMqN,EAAa,EAACnrB,KAClBsC,EAAAA,UAAU,IAAMipB,EAAgBC,OAAOA,OAAQrrB,CAAK,CAAC,EACrDqC,EAAAA,IAAIyN,EAA0C,CAChD,CACF,CACN,CACF,EACC5P,EAAA,CAACkrB,EAAkBF,CAAa,EAAC1rB,KAAA4rB,EAAA5rB,KAAA0rB,EAAA1rB,KAAAO,EAAAP,KAAAU,IAAAH,EAAAP,EAAA,CAAA,EAAAU,EAAAV,EAAA,CAAA,GAlBpC,KAAA,CAAAkB,KAAA2qB,CAAAA,EAAyB5qB,EAAAA,WAAWV,EAkBjCG,CAAiC,EAAC,IAAAI,EAAAd,OAAA0rB,GAIzB5qB,EAAA4qB,EAAa/N,KAAKmO,KAAMJ,CAAa,EAAC1rB,KAAA0rB,EAAA1rB,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EACxC,MAAA+B,EAAA8pB,GAAMrc,MAAN,OACFtM,EAAA2oB,GAAM3qB,KAAM,IAAAoC,EAAA,OAAAtD,EAAA,CAAA,IAAA2rB,GAAA3rB,EAAA,CAAA,IAAAc,GAAAd,EAAA,EAAA,IAAA+B,GAAA/B,QAAAkD,GAJbI,EAAA,CAAA9C,MACEmrB,EAAWI,SACRjrB,EAAsCkrB,OACxCjqB,EAAsBb,KACxBgC,CAAAA,EACPlD,KAAA2rB,EAAA3rB,KAAAc,EAAAd,MAAA+B,EAAA/B,MAAAkD,EAAAlD,MAAAsD,GAAAA,EAAAtD,EAAA,EAAA,EALMsD,CAKN,EA/BsB,SAAAR,IAAA,CAAA,OACiB,IAAImpB,EAAAA,gBAAgB,EAAE,CAAC,CADxC,SAAA3b,GAAApP,EAAA,CAAA,MAmBM,CAAAsO,KAAQ,MAActO,KAAAA,CAAAA,CAAQ,CCzBtD,MAAMgrB,GAAsB5qB,EAAAA,KACjClB,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,EAAA,EAAC,CAAAqK,WAAAA,CAAAA,EAAAlK,EACCxB,EAAesD,EAAAA,EACf,CAAA1B,MAAAmrB,EAAAI,SAAAA,EAAAC,OAAAA,EAAA9qB,KAAAA,CAAAA,EAAuDuqB,GAAAA,EAAW,IAAAlrB,EAAAP,OAAA+rB,GAE5CxrB,EAAAuL,GAAA,CACpBigB,EAASjgB,EAACzD,OAAO7H,KAAM,CAAC,EACzBR,KAAA+rB,EAAA/rB,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAFD,MAAAmsB,EAAsB5rB,EAErB,IAAAG,EAAAV,OAAAsK,GAAAtK,EAAA,CAAA,IAAApB,GAAAgM,YAGClK,EAAAoK,GAAA,CACER,EAAAA,EACA1L,GAAMgM,WAAoBC,QAACC,CAAG,CAAC,EAChC9K,KAAAsK,EAAAtK,EAAA,CAAA,EAAApB,GAAAgM,WAAA5K,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAJH,MAAA+qB,EAAgBrqB,EAMf,IAAAI,EAAAd,EAAA,CAAA,IAAAkB,GAAAlB,OAAApB,GAGCkC,EAAAA,IAAMlC,GAAMwL,eAAiBlJ,GAAI+C,MAAQ,EAAG,GAAS,GAAxB,EAAyB,EAACjE,KAAAkB,EAAAlB,KAAApB,EAAAoB,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAAA,IAAA+B,EAAA/B,OAAAkB,GACvDa,EAAA,CAACb,CAAI,EAAClB,KAAAkB,EAAAlB,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EAFR,KAAA,CAAAkB,KAAAkrB,CAAAA,EAAsCnrB,EAAAA,WACpCH,EACAiB,CACF,EAAC,IAAAmB,EAAAlD,EAAA,EAAA,IAAAmsB,GAAAnsB,QAAA2rB,GAIGzoB,EAAAlB,EAAAA,IAACqqB,SACa,YAAA,oBACLV,MAAAA,EACGQ,SAAAA,EACE,aACJ,QAAA,SACH,KAAA,SACK,UAAA,OACO,iBAAA,OACT,QAAA,OACO,eAAA,aAAA,CAAa,EAC5BnsB,MAAAmsB,EAAAnsB,MAAA2rB,EAAA3rB,MAAAkD,GAAAA,EAAAlD,EAAA,EAAA,EAAA,IAAAsD,EAAAtD,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAEOsC,EAAA,CAAA8nB,SAAY,SAAQkB,UAAa,MAAA,EAAQtsB,MAAAsD,GAAAA,EAAAtD,EAAA,EAAA,EAAA,IAAAwD,EAAAxD,QAAAgsB,GAK/CxoB,EAAAwoB,IAAW,SAAWhqB,EAAAA,IAACkG,EAAAA,KAAA,CAAK,SAAA,gBAAa,EAAOlI,MAAAgsB,EAAAhsB,MAAAwD,GAAAA,EAAAxD,EAAA,EAAA,EAAA,IAAA0D,EAAA1D,EAAA,EAAA,IAAAkB,GAAA8C,QAChDN,EAAAxC,GAAI8C,SAAa,GAAKhC,EAAAA,IAACkG,QAAK,SAAA,aAAU,EAAOlI,EAAA,EAAA,EAAAkB,GAAA8C,OAAAhE,MAAA0D,GAAAA,EAAA1D,EAAA,EAAA,EAAA,IAAA4D,EAAA5D,QAAAosB,GAAApsB,EAAA,EAAA,IAAAkB,GAAA8C,QAAAhE,EAAA,EAAA,IAAA+qB,GAAA/qB,EAAA,EAAA,IAAA2rB,GAAA3rB,QAAAgsB,GAC7CpoB,EAAAooB,IAAW,QAAU9qB,GAAI8C,QAAJ,GAAqB,UACxCgE,EAAAA,MAAA,CACC,SAAA,CAAAa,EAAAA,KAACX,EAAAA,KAAA,CAAc,SAAA,KAAMhH,SAAAA,CAAAA,GAAI8C,OAAS,YAAA,EAAU,QAC3CgE,EAAAA,MAAA,CAAW,IAAA,EACTokB,SAAAA,GAAmBvpB,IAAM,CAAA0pB,EAAAC,UAErB5B,GAAA,CAGG,YAAA2B,EAAM/hB,MAAYG,OAAgB8hB,eAAcC,eACjChiB,aADf,GAGS,UAAA6hB,EAAM/hB,MAAoBmiB,cACxB,YAAAJ,EAAM/hB,MAAYG,OAAamgB,aAA/B,EACPa,KAAAA,EACD,IAAAY,EAAM/hB,KAAKM,IACPigB,QAAAA,EACU,kBAAAwB,EAAM/hB,MAAwBS,iBAAAA,EAV5CuhB,CAU4C,CAGtD,CAAA,CACH,CAAA,EACF,EACDxsB,MAAAosB,EAAApsB,EAAA,EAAA,EAAAkB,GAAA8C,OAAAhE,MAAA+qB,EAAA/qB,MAAA2rB,EAAA3rB,MAAAgsB,EAAAhsB,MAAA4D,GAAAA,EAAA5D,EAAA,EAAA,EAAA,IAAA0H,EAAA1H,EAAA,EAAA,IAAAwD,GAAAxD,QAAA0D,GAAA1D,EAAA,EAAA,IAAA4D,GA/BH8D,EAAAmB,EAAAA,KAACb,EAAAA,OACQ,MAAA1E,EACE,SAAA,OACL,GAAA,EACE,KAAA,EAELE,SAAAA,CAAAA,EACAE,EACAE,CAAAA,EAwBH,EAAQ5D,MAAAwD,EAAAxD,MAAA0D,EAAA1D,MAAA4D,EAAA5D,MAAA0H,GAAAA,EAAA1H,EAAA,EAAA,EAAA,IAAA2H,EAAA,OAAA3H,EAAA,EAAA,IAAA0H,GAAA1H,QAAAkD,GA7CVyE,SAACK,QAAA,CAAY,KAAA,EAAU,OAAA,OAAY,IAAA,EACjC9E,SAAAA,CAAAA,EAYAwE,CAAAA,EAiCF,EAAQ1H,MAAA0H,EAAA1H,MAAAkD,EAAAlD,MAAA2H,GAAAA,EAAA3H,EAAA,EAAA,EA9CR2H,CA8CQ,CAGd,EClEailB,GAAetrB,EAAAA,KAC1BlB,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,EAAA,EAAC,CAAAwG,KAAAA,EAAA0F,QAAAA,EAAA7B,WAAAA,CAAAA,EAAAlK,EAQA,IAAAG,EAAAP,OAAAmM,GAMmB5L,EAAAuL,GAAOK,EAAQL,EAACrF,IAAK,EAACzG,KAAAmM,EAAAnM,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAAA,IAAAU,EAAAV,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAC9BN,EAAA,CAAA0L,OAAU,OAAMC,GAAM,IAAA,EAAMrM,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAAA,IAAAc,EAAAd,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAIhCF,EAAAkB,EAAAA,IAACwH,GAAA,CACC,SAAAxH,EAAAA,IAAC0H,GAAA,CAAY,kBAAM,EACrB,EAAe1J,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAAA,IAAA+B,EAAA/B,OAAAsK,GACfvI,EAAAC,EAAAA,IAACyH,IAAiB,KAAA,EAAM,EAAA,EACtB,SAAAzH,EAAAA,IAACkqB,GAAA,CAAgC5hB,WAAAA,CAAAA,CAAU,CAAA,CAC7C,EAAatK,KAAAsK,EAAAtK,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EAAA,IAAAkD,EAAAI,EAAAtD,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GACbkC,EAAAlB,EAAAA,IAACuH,GAAA,CACC,SAAAvH,EAAAA,IAAC2H,GAAA,CAAoB,QAAA,GACnB,SAAA3H,MAACyB,EAAAA,OAAA,CAAe,QAAA,UAAU,SAAA,QAAA,CAAM,CAAA,CAClC,EACF,EACAH,QAAC+F,GAAA,EAAkB,EAAGrJ,KAAAkD,EAAAlD,KAAAsD,IAAAJ,EAAAlD,EAAA,CAAA,EAAAsD,EAAAtD,EAAA,CAAA,GAAA,IAAAwD,EAAAxD,OAAA+B,GAZxByB,EAAAqF,EAAAA,KAACK,GAAA,CAAqB,OAAA,OACpBpI,SAAAA,CAAAA,EAGAiB,EAGAmB,EAKAI,CAAAA,EACF,EAAgBtD,KAAA+B,EAAA/B,KAAAwD,GAAAA,EAAAxD,EAAA,CAAA,EAAA,IAAA0D,EAAA,OAAA1D,EAAA,EAAA,IAAAyG,GAAAzG,QAAAO,GAAAP,EAAA,EAAA,IAAAwD,GArBlBE,QAAC4F,GAAA,CACC,aACU,UAAA,SACJ7C,KAAAA,EACQ,aAAAlG,EACR,KAAAG,EACS,eAAA,SAEf8C,SAAAA,EAcF,EAAaxD,MAAAyG,EAAAzG,MAAAO,EAAAP,MAAAwD,EAAAxD,MAAA0D,GAAAA,EAAA1D,EAAA,EAAA,EAtBb0D,CAsBa,CAGnB,EC3CampB,GAA+BvrB,EAAAA,KAC1ClB,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,CAAA,EAAC,CAAAqK,WAAAA,CAAAA,EAAAlK,EACCxB,EAAesD,EAAAA,EACf,CAAAhB,KAAAX,CAAAA,EACEU,EAAAA,WAAW,IAAMrC,GAAMsB,QAAW,CAACtB,CAAM,CAAO,GAAhD,CAAA,EADY,CAAA+b,SAAAA,CAAAA,EAAApa,IAAA1B,OAAA,CAAA,EAAA0B,EAEd,CAAAusB,IAAAA,CAAAA,EAAgBnS,GAAA,CAAA,EAChBL,EAAmBD,GAAAA,EACPyS,GAAGC,IACf,MAAA9hB,EAA0BqP,GAAUyF,uBAAwB,IAAAiN,EAAA,GAAAhtB,EAAA,CAAA,IAAAsa,GAAAyG,iBAAA,CAI5D,IAFAiM,EAAwB1S,GAAUyG,iBAE3BiM,GAAiB9L,YACtB8L,EAAoBA,GAAiB9L,WACtClhB,EAAA,CAAA,EAAAsa,GAAAyG,iBAAA/gB,KAAAgtB,CAAA,MAAAA,EAAAhtB,EAAA,CAAA,EAED,MAAAitB,EAAwBA,CAAAC,EAAArZ,EAAAsZ,IAKtBtkB,EAAAA,KAAA1E,EAAA,SAAA,CACE,SAAA,CAAAnC,MAAAgJ,EAAAA,KAAA,KAAA,CACM,GAAA,GAAKmiB,EAAM,GACR,MAAA,CAAA7B,QACI,OAAM8B,WACH,QAAA,EAGd,SAAAvkB,EAAAA,KAACqC,OAAA,CACU,QAAA,IAAA,CACPZ,EAAAA,EAEA1L,GAAMgM,WAAoByiB,QAACH,EAAOxQ,IAAK,CAAC,EAErC,KAAA,IAEJsQ,SAAAA,CAAAA,GAAiBM,OAAWJ,EAAOI,MAClCtrB,EAAAA,IAAAgJ,EAAAA,KAAA,UAAA,CAAgB,QAAA,GACd,SAAAhJ,EAAAA,IAACurB,GAAAA,cAAA,CAAA,CAAa,CAAA,CAChB,EAEDP,GAAiBM,OAAWJ,EAAOI,YAClCtiB,EAAAA,KAAA,UAAA,CAAgB,QAAA,GAAmB,WAAA,SACjC,SAAAhJ,EAAAA,IAACurB,GAAAA,kBACH,EAEF1kB,EAAAA,KAACb,EAAAA,MAAA,CAAW,MACV,SAAA,CAAAhG,MAACkG,EAAAA,MAAc,SAAA,KAAMglB,SAAAA,EAAO3b,OAAU2b,EAAOI,KAAM,EAClDN,GAAiBM,OAAWJ,EAAOI,MAClCriB,IAAsBpM,QACpBmD,EAAAA,IAACkG,EAAAA,KAAA,CACW,UAAA,SACC,WAAA,OACF,SAAA,KACT,SAAA,qBAAqB+C,EAAoB,CAAC,EAAA,CAAG,CAAA,CAAA,CAErD,CAAA,CAAA,CACF,CAAA,CACF,EACCiiB,EAAO7mB,SAASrC,OAAU,GACzBhC,EAAAA,IAAAgJ,OAAA,KAAA,CAAc,GAAA,MAAW,IAAA,EACtBkiB,WAAO7mB,SAASxD,IAAK,CAAA2qB,EAAAC,IACpBR,EAAgBC,EAASrZ,EAAOsZ,EAAM,CAAC,CACzC,CAAA,CACF,CAAA,CAAA,EA5CiBtZ,CA8CrB,EAICnT,EAAAsK,EAAAA,KAAelK,EAAA,EAAaiB,EAAA,OAAWmB,EAAA,EAASI,EAAA,EAC9CE,EAAAspB,GAAGC,IAASlqB,IAAC,CAAA6qB,EAAAC,IAAoBV,EAAgBC,EAASrZ,EAAO,CAAC,CAAC,EAAC,IAAAnQ,EAAA,OAAA1D,OAAAU,EAAAuE,MAAAjF,OAAAwD,GADvEE,EAAA1B,EAAAA,IAAAtB,EAAA,KAAA,CAAgB,IAAAI,EAAa,UAAAiB,EAAW,GAAAmB,EAAS,KAAAI,EAC9CE,SAAAA,EACH,EAAYxD,EAAA,CAAA,EAAAU,EAAAuE,KAAAjF,KAAAwD,EAAAxD,KAAA0D,GAAAA,EAAA1D,EAAA,CAAA,EAFZ0D,CAEY,CAGlB,ECrEakqB,GAAwBtsB,EAAAA,KACnClB,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,EAAA,EAAC,CAAAwG,KAAAA,EAAA0F,QAAAA,EAAA7B,WAAAA,CAAAA,EAAAlK,EAQA,IAAAG,EAAAP,OAAAmM,GAMmB5L,EAAAuL,GAAOK,EAAQL,EAACrF,IAAK,EAACzG,KAAAmM,EAAAnM,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAAA,IAAAU,EAAAV,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAC9BN,EAAA,CAAA0L,OAAU,OAAMC,GAAM,IAAA,EAAMrM,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAAA,IAAAc,EAAAd,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAIhCF,EAAAkB,EAAAA,IAACwH,GAAA,CACC,SAAAxH,EAAAA,IAAC0H,GAAA,CAAY,6BAAiB,EAChC,EAAe1J,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAAA,IAAA+B,EAAA/B,OAAAsK,GACfvI,EAAAC,EAAAA,IAACyH,IAAqB,UAAA,OAAa,KAAA,EACjC,SAAAzH,EAAAA,IAAC6qB,GAAA,CAAyCviB,WAAAA,CAAAA,CAAU,CAAA,CACtD,EAAatK,KAAAsK,EAAAtK,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EAAA,IAAAkD,EAAAI,EAAAtD,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GACbkC,EAAAlB,EAAAA,IAACuH,GAAA,CACC,SAAAvH,EAAAA,IAAC2H,GAAA,CAAoB,QAAA,GACnB,SAAA3H,MAACyB,EAAAA,OAAA,CAAe,QAAA,UAAU,SAAA,QAAA,CAAM,CAAA,CAClC,EACF,EACAH,QAAC+F,GAAA,EAAkB,EAAGrJ,KAAAkD,EAAAlD,KAAAsD,IAAAJ,EAAAlD,EAAA,CAAA,EAAAsD,EAAAtD,EAAA,CAAA,GAAA,IAAAwD,EAAAxD,OAAA+B,GAZxByB,SAAC0F,GAAA,CACCpI,SAAAA,CAAAA,EAGAiB,EAGAmB,EAKAI,CAAAA,EACF,EAAgBtD,KAAA+B,EAAA/B,KAAAwD,GAAAA,EAAAxD,EAAA,CAAA,EAAA,IAAA0D,EAAA,OAAA1D,EAAA,EAAA,IAAAyG,GAAAzG,QAAAO,GAAAP,EAAA,EAAA,IAAAwD,GArBlBE,QAAC4F,GAAA,CACC,aACU,UAAA,SACJ7C,KAAAA,EACQ,aAAAlG,EACR,KAAAG,EACS,eAAA,SAEf8C,SAAAA,EAcF,EAAaxD,MAAAyG,EAAAzG,MAAAO,EAAAP,MAAAwD,EAAAxD,MAAA0D,GAAAA,EAAA1D,EAAA,EAAA,EAtBb0D,CAsBa,CAGnB,EC7CamqB,GAAkBA,IAAA,CAAA,MAAA7tB,EAAAC,EAAAA,EAAA,CAAA,EAC7BrB,EAAesD,EAAAA,EAAW,IAAA9B,EAAAJ,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GACqBZ,EAAA,CAAC,cAAc,EAACJ,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAA/D,KAAA,CAAA8tB,aAAAA,CAAAA,EAAyBhuB,GAAsBM,CAAgB,EAAC,IAAAG,EAAAP,EAAA,CAAA,IAAApB,GAAAiQ,SAAAgI,UAAA7W,EAAA,CAAA,IAAA8tB,GAG9DvtB,YAAA,CACE3B,GAAMiQ,SAAmBgI,SAAOzT,OAAC,CAAA0qB,aACjBA,GAAAvvB,EAAAA,CACf,CAAC,EACHyB,EAAA,CAAA,EAAApB,GAAAiQ,SAAAgI,SAAA7W,KAAA8tB,EAAA9tB,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAAA,IAAAU,EAAAV,EAAA,CAAA,IAAApB,GAAAoB,OAAA8tB,GACDptB,EAAA,CAAC9B,EAAQkvB,CAAY,EAAC9tB,KAAApB,EAAAoB,KAAA8tB,EAAA9tB,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EANxB8G,EAAAA,UACEvG,EAKAG,CACF,CAAC,ECPGqtB,GAAO,GACPC,GAAM,EAGNC,GAAqBA,CACzBztB,EACAkiB,EACAD,EACAiB,IACW,CACX,GAAIljB,EAAQkiB,GAAOliB,EAAQkiB,EAAMgB,EAC/B,OAAOhB,EAAMgB,EAIf,MAAMwK,EAAU9S,KAAKsH,IAAItH,KAAKqH,IAAIjiB,EAAOkiB,CAAG,EAAGD,CAAG,EAE5C0L,EAAU/S,KAAKyF,OAAOqN,EAAUxL,GAAOgB,CAAI,EAAIA,EAAOhB,EAE5D,OAAOtH,KAAKyF,MAAMsN,EAAU,GAAG,EAAI,GACrC,EAEaC,GAAe9sB,EAAAA,KAAK,IAAA,CAAA,MAAAtB,EAAAC,EAAAA,EAAA,EAAA,EAAA,IAAAG,EAAAJ,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GACiCZ,EAAA,CAC9D,cAAc,EACfJ,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAFD,KAAA,CAAA8tB,aAAAvtB,CAAAA,EAA0CT,GAAsBM,CAE/D,EAFO0tB,EAAAvtB,IAAA1B,OAAAN,GAAAgC,EAGR3B,EAAesD,EAAAA,EAAW,IAAAxB,EAAAV,EAAA,CAAA,IAAApB,GAAAmlB,KAAAxJ,QAExB7Z,EAAAA,IACE9B,GAAMmlB,KAAaxJ,OAAKla,KACtBwC,EAAAA,IAAIC,EAA6B,EACjC+V,eAAa,IAAKwV,EAAAA,wBAAyB,CAAAC,QAChC,GAAIxV,SACH,EAAA,CACX,CACH,EAAC9Y,EAAA,CAAA,EAAApB,GAAAmlB,KAAAxJ,OAAAva,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAAA,IAAAc,EAAAd,OAAApB,GACHkC,EAAA,CAAClC,CAAM,EAACoB,KAAApB,EAAAoB,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EATV,KAAA,CAAAkB,KAAAa,CAAAA,EAAqCd,EAAAA,WACnCP,EAQAI,CACF,EAVcytB,EAAAxsB,IAAAlD,OAAA,EAAAkD,EAAkB,IAAAmB,EAAAlD,EAAA,CAAA,IAAApB,GAAAmlB,KAAAxJ,QAY9BrX,EAAAA,IAAMtE,GAAMmlB,KAAaxJ,OAAKla,KAACwC,EAAAA,IAAIyN,EAA0B,CAAC,EAACtQ,EAAA,CAAA,EAAApB,GAAAmlB,KAAAxJ,OAAAva,KAAAkD,GAAAA,EAAAlD,EAAA,CAAA,EAAA,IAAAsD,EAAAtD,OAAApB,GAC/D0E,EAAA,CAAC1E,CAAM,EAACoB,KAAApB,EAAAoB,KAAAsD,GAAAA,EAAAtD,EAAA,CAAA,EAFV,KAAA,CAAAkB,KAAAsC,CAAAA,EAAoCvC,EAAAA,WAClCiC,EACAI,CACF,EAHckrB,EAAAhrB,IAAA3E,OAAA,GAAA2E,EAAiB,IAAAE,EAAA1D,EAAA,CAAA,IAAA8tB,GAAA9tB,QAAAuuB,GAIE7qB,EAAAuqB,GAC/BM,EACAP,GACAF,EACAC,EACF,EAAC/tB,KAAA8tB,EAAA9tB,MAAAuuB,EAAAvuB,MAAA0D,GAAAA,EAAA1D,EAAA,EAAA,EALD,MAAAyuB,EAAiC/qB,EAQRE,EAAA4qB,GAAaD,EAAiB,EAAC,IAAA7mB,EAAA1H,QAAAyuB,GAE3C/mB,EAAA,CAAC+mB,CAAwB,EAACzuB,MAAAyuB,EAAAzuB,MAAA0H,GAAAA,EAAA1H,EAAA,EAAA,EAAA,IAAA2H,EAAA3H,EAAA,EAAA,IAAApB,GAAAmlB,MAKlBpc,EAAAmE,GAAA,CACb,MAAAtL,EAAcsL,EAACtL,QAAW,CAAA,GAAZ,EAEVA,IAAU,EACZ5B,GAAMmlB,KAAWmC,KAAAA,EAEjBtnB,GAAMmlB,KAAc2K,QAACluB,EAAO,CAAAmuB,UACf,iBAAA,CACZ,CACF,EACF3uB,EAAA,EAAA,EAAApB,GAAAmlB,KAAA/jB,MAAA2H,GAAAA,EAAA3H,EAAA,EAAA,EAAA,IAAA+H,EAAA/H,EAAA,EAAA,IAAA0H,GAAA1H,QAAA2H,GAAA3H,EAAA,EAAA,IAAA8tB,GAhBH/lB,EAAA/F,EAAAA,IAACiR,GAAA,CACQ,MAAAvL,EACFsmB,IAAAA,GACAF,IAAAA,EACCC,KAAAA,GACI,SAAA,IACK,cAAApmB,EAUd,EACD3H,MAAA0H,EAAA1H,MAAA2H,EAAA3H,MAAA8tB,EAAA9tB,MAAA+H,GAAAA,EAAA/H,EAAA,EAAA,EAAA,IAAAiI,EAAA,OAAAjI,EAAA,EAAA,IAAA+H,GAAA/H,QAAA4D,GAlBJqE,EAAAjG,EAAAA,IAACX,GAAA,CAAsB,QAAAuC,EACrBmE,SAAAA,EAkBF,EAAe/H,MAAA+H,EAAA/H,MAAA4D,EAAA5D,MAAAiI,GAAAA,EAAAjI,EAAA,EAAA,EAnBfiI,CAmBe,CAElB,EAjDgC,SAAAnF,GAAAO,EAAA,CAAA,OAQVA,EAAKwkB,YAAa,CARR,SAAAvX,GAAAnJ,EAAA,CAAA,OAiBiB9D,EAAKmrB,SAAU,CCnBjE,MAAMxT,GAAwB,CAAEnZ,MAAO,UAAWC,QAAS,UAAW,EAEhE8sB,GAAmBttB,EAAAA,KAAK,KAE5BqN,GAAAA,EAEO,KACR,EAEKkgB,GAAUvtB,EAAAA,KAAK,IAAA,CAAA,MAAAtB,EAAAC,EAAAA,EAAA,CAAA,EACnB4tB,GAAAA,EACAvR,GAAAA,EACAW,GAAAA,EACAsM,GAAAA,EACAzZ,GAAAA,EACAK,GAAAA,EAA8B,IAAA/P,EAAA,OAAAJ,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAG5BZ,qBACE,SAAA,CAAA4B,EAAAA,IAACyU,GAAA,UACAmY,GAAA,CAAA,IAAmB,EACnB5uB,KAAAI,GAAAA,EAAAJ,EAAA,CAAA,EAHHI,CAGG,CAEN,EAEK0uB,GAAmBxtB,EAAAA,KACvBlB,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,EAAA,EAAA,IAAAsB,EAAAC,EAAAxB,OAAAI,GAAC,CAAAmB,SAAAA,EAAA,GAAAC,CAAAA,EAAApB,EAKWJ,KAAAI,EAAAJ,KAAAuB,EAAAvB,KAAAwB,IAAAD,EAAAvB,EAAA,CAAA,EAAAwB,EAAAxB,EAAA,CAAA,GAAA,IAAAO,EAAAP,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GACwDT,EAAA,CAChE,qBACA,aAAa,EACdP,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAHD,KAAA,CAAA+uB,mBAAAA,EAAAnL,YAAAA,CAAAA,EAA4C9jB,GAAsBS,CAGjE,EACD,CAAAyuB,EAAAC,CAAA,EAA0D7oB,EAAAA,SAAS,EAAK,EACxE,CAAA8oB,EAAAC,CAAA,EAAoC/oB,EAAAA,SAAS,EAAK,EAClD,CAAAgpB,EAAAC,CAAA,EAAwCjpB,EAAAA,SAAS,EAAK,EACtD,CAAAkpB,EAAAC,CAAA,EAA0DnpB,EAAAA,SAExDvH,MAAS,EACX,CAAA2wB,EAAAC,CAAA,EAA0CrpB,EAAAA,SAAS,EAAK,EACxD,CAAA8U,EAAAwU,CAAA,EAA0CtG,GAAAA,EAAc,IAAA1oB,EAAAV,OAAA0vB,GAEzBhvB,EAAAA,IAAA,CAC7BuuB,EAAyB,EAAK,EAC9BE,EAAc,EAAK,EACnBE,EAAgB,EAAK,EACrBE,EAAyB1wB,MAAS,EAClC6wB,EAAiB,EAAK,EACtBD,EAAiB,EAAK,CAAC,EACxBzvB,KAAA0vB,EAAA1vB,KAAAU,GAAAA,EAAAV,EAAA,CAAA,EAPD,MAAAsK,EAAmB5J,EAOG,IAAAI,EAAAd,OAAA4jB,GAGpB9iB,EAAAmJ,GAAA,CACMA,IAAS,cACXslB,EAAyB,aAAa,EAC7BtlB,IAAS,SAClBolB,EAAgB,EAAI,EACXplB,IAAS,OAClBklB,EAAc,EAAI,EACTllB,IAAS,MAClBglB,EAAyB,EAAI,EACpBhlB,IAAS,YAClBslB,EAAyB,WAAW,EAC3BtlB,IAAS,WAClBwlB,EAAiB,EAAI,EAEvB7L,IAAc3Z,CAAI,CAAC,EACpBjK,KAAA4jB,EAAA5jB,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAhBH,MAAA2vB,EAAsD7uB,EAkBrD,IAAAiB,EAAA/B,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAIGe,QAAC8sB,GAAA,EAAO,EAAG7uB,KAAA+B,GAAAA,EAAA/B,EAAA,CAAA,EAAA,IAAAkD,EAAAlD,EAAA,CAAA,IAAAe,OAAAC,IAAA,2BAAA,GAYTkC,QAAC+X,GAAA,EAAgB,EAAGjb,KAAAkD,GAAAA,EAAAlD,EAAA,CAAA,EAAA,IAAAsD,EAAAtD,QAAAwvB,GACpBlsB,EAAAtB,EAAAA,IAAC6X,GAAA,CAAoB2V,KAAAA,EAAwBC,QAAAA,EAAgB,EAAIzvB,MAAAwvB,EAAAxvB,MAAAsD,GAAAA,EAAAtD,EAAA,EAAA,EAAA,IAAAwD,EAAAxD,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GACjEwC,QAAC2mB,GAAA,EAAW,EAAGnqB,MAAAwD,GAAAA,EAAAxD,EAAA,EAAA,EAAA,IAAA0D,EAAA1D,QAAA2vB,GACfjsB,QAAC4lB,GAAA,CAAuBqG,YAAAA,CAAAA,CAAY,EAAI3vB,MAAA2vB,EAAA3vB,MAAA0D,GAAAA,EAAA1D,EAAA,EAAA,EAAA,IAAA0H,EAAAC,EAAAI,EAAAE,EAAArE,EAAA5D,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GACxC4C,QAACwqB,GAAA,EAAY,EACb1mB,QAAClF,GAAA,EAAgB,EACjBmF,QAAC9B,GAAA,EAAgB,EACjBkC,QAAC0M,GAAA,EAAsB,EACvBxM,QAACqG,GAAA,EAAmB,EAAGtO,MAAA0H,EAAA1H,MAAA2H,EAAA3H,MAAA+H,EAAA/H,MAAAiI,EAAAjI,MAAA4D,IAAA8D,EAAA1H,EAAA,EAAA,EAAA2H,EAAA3H,EAAA,EAAA,EAAA+H,EAAA/H,EAAA,EAAA,EAAAiI,EAAAjI,EAAA,EAAA,EAAA4D,EAAA5D,EAAA,EAAA,GAAA,IAAAmI,EAAAnI,QAAAkvB,GACvB/mB,EAAAnG,EAAAA,IAAC+X,GAAA,CAAiBmV,KAAAA,EAAqBC,QAAAA,EAAa,EAAInvB,MAAAkvB,EAAAlvB,MAAAmI,GAAAA,EAAAnI,EAAA,EAAA,EAAA,IAAAsI,EAAAtI,EAAA,EAAA,IAAAgvB,GAAAhvB,QAAAsK,GACxDhC,QAACslB,GAAA,CACOoB,OACGC,UACG3kB,WAAAA,EAAU,EACtBtK,MAAAgvB,EAAAhvB,MAAAsK,EAAAtK,MAAAsI,GAAAA,EAAAtI,EAAA,EAAA,EAAA,IAAAwI,EAAAxI,EAAA,EAAA,IAAAovB,GAAApvB,QAAAsK,GACF9B,QAACokB,GAAA,CACOwC,OACGC,UACG/kB,WAAAA,EAAU,EACtBtK,MAAAovB,EAAApvB,MAAAsK,EAAAtK,MAAAwI,GAAAA,EAAAxI,EAAA,EAAA,EAAA,IAAAyI,EAAAzI,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAGSyH,EAAAhC,GACP8oB,EAAyB9oB,EAAA,cAAA5H,MAAgC,EAACmB,MAAAyI,GAAAA,EAAAzI,EAAA,EAAA,EAAA,IAAA4I,EAAA5I,EAAA,EAAA,IAAAsvB,GAAAtvB,QAAAsK,GAH9D1B,QAACqD,GAAA,CACWqjB,SAAAA,EACD,QAAA7mB,EAGG6B,WAAAA,EAAU,EACtBtK,MAAAsvB,EAAAtvB,MAAAsK,EAAAtK,MAAA4I,GAAAA,EAAA5I,EAAA,EAAA,EAES,MAAA+I,EAAAgmB,GAAA7T,EAAmC,IAAAlS,EAAAhJ,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GAK5CgI,QAACqT,GAAA,EAAY,EAAGrc,MAAAgJ,GAAAA,EAAAhJ,EAAA,EAAA,EAAA,IAAAiJ,EAAAjJ,QAAA+I,GANlBE,EAAAjH,EAAAA,IAACC,EAAAA,SAAA,CACU,QAAA8G,EACMiS,cAAAA,GACG,kBAAA,OACT,SAAA,SAEThS,SAAAA,CAAAA,CACF,EAAWhJ,MAAA+I,EAAA/I,MAAAiJ,GAAAA,EAAAjJ,EAAA,EAAA,EAAA,IAAAoW,EAAApW,EAAA,EAAA,IAAAe,OAAAC,IAAA,2BAAA,GACXoV,QAAClF,GAAA,EAAO,EAAGlR,MAAAoW,GAAAA,EAAApW,EAAA,EAAA,EAAA,IAAAqW,EAAA,OAAArW,EAAA,EAAA,IAAAuB,GAAAvB,EAAA,EAAA,IAAAwB,GAAAxB,QAAAmI,GAAAnI,EAAA,EAAA,IAAAsI,GAAAtI,EAAA,EAAA,IAAAwI,GAAAxI,EAAA,EAAA,IAAA4I,GAAA5I,EAAA,EAAA,IAAAiJ,GAAAjJ,EAAA,EAAA,IAAAsD,GAAAtD,QAAA0D,GAhDf2S,qBACEtU,SAAAA,CAAAA,SACC8F,EAAAA,IAAA,CACU,SAAA,WACJ,IAAA,EACC,KAAA,EACC,OAAA,OACD,MAAA,OACG,SAAA,SACT,0BAAA,MACIrG,cAGJ0B,EACAI,EACAE,EACAE,EACAE,EACA8D,EACAC,EACAI,EACAE,EACAE,EACAG,EAKAE,EAKAI,EAOAK,EAQAmN,CAAAA,CAAAA,CACF,CAAA,EAAM,EACLpW,MAAAuB,EAAAvB,MAAAwB,EAAAxB,MAAAmI,EAAAnI,MAAAsI,EAAAtI,MAAAwI,EAAAxI,MAAA4I,EAAA5I,MAAAiJ,EAAAjJ,MAAAsD,EAAAtD,MAAA0D,EAAA1D,MAAAqW,GAAAA,EAAArW,EAAA,EAAA,EAlDHqW,CAkDG,CAGT,EAEauZ,GAActuB,EAAAA,KACzBlB,GAAA,CAAA,MAAAJ,EAAAC,EAAAA,EAAA,EAAA,EAAA,IAAAsB,EAAA8C,EAAAwrB,EAAA7vB,OAAAI,GAAC,CAAAmB,SAAAA,EAAAsuB,MAAAA,EAAA,GAAAxrB,CAAAA,EAAAjE,EAUAJ,KAAAI,EAAAJ,KAAAuB,EAAAvB,KAAAqE,EAAArE,KAAA6vB,IAAAtuB,EAAAvB,EAAA,CAAA,EAAAqE,EAAArE,EAAA,CAAA,EAAA6vB,EAAA7vB,EAAA,CAAA,GAAA,IAAAO,EAAAP,OAAA6vB,GAC4DtvB,EAAAsvB,GAAA,CAAA,EAAW7vB,KAAA6vB,EAAA7vB,KAAAO,GAAAA,EAAAP,EAAA,CAAA,EAAtE,KAAA,CAAA8vB,UAAApvB,CAAAA,EAA2DH,EAAW,IAAAO,EAAAd,OAAAU,GAAnDI,EAAAJ,IAAA7B,OAAA,CAAA,EAAA6B,EAAmCV,KAAAU,EAAAV,KAAAc,GAAAA,EAAAd,EAAA,CAAA,EAAnC,KAAA,CAAAqE,MAAAtC,CAAAA,EAAAjB,EAAmC,IAAAoC,EAAAlD,OAAA+B,GAA1BmB,EAAAnB,IAAAlD,OAAA,CAAA,EAAAkD,EAAmB/B,KAAA+B,EAAA/B,KAAAkD,GAAAA,EAAAlD,EAAA,CAAA,EAAnB,MAAA+vB,EAAA7sB,EAAmB,IAAAI,EAAAtD,EAAA,EAAA,IAAAuB,GAAAvB,QAAA+vB,GAI3CzsB,EAAAtB,EAAAA,IAAC8sB,GAAA,CAAgB,GAAKiB,EAAiBxuB,SAAAA,CAAAA,CAAS,EAAmBvB,MAAAuB,EAAAvB,MAAA+vB,EAAA/vB,MAAAsD,GAAAA,EAAAtD,EAAA,EAAA,EAAA,IAAAwD,EAAA,OAAAxD,EAAA,EAAA,IAAAqE,GAAArE,QAAAsD,GADrEE,EAAAxB,EAAAA,IAAC2Q,GAAA,CAAmB,GAAKtO,EACvBf,SAAAA,EACF,EAAsBtD,MAAAqE,EAAArE,MAAAsD,EAAAtD,MAAAwD,GAAAA,EAAAxD,EAAA,EAAA,EAFtBwD,CAEsB,CAG5B"}
|