@omnikit-js/ui 0.9.20 → 0.9.21

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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/cjs/react-is.development.js","../node_modules/react-is/index.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/lib/has.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs","../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../node_modules/next/src/shared/lib/app-router-context.shared-runtime.ts","../node_modules/next/src/client/components/readonly-url-search-params.ts","../node_modules/next/src/shared/lib/hooks-client-context.shared-runtime.ts","../node_modules/next/src/shared/lib/segment.ts","../node_modules/next/src/shared/lib/server-inserted-html.shared-runtime.tsx","../node_modules/next/src/client/components/unrecognized-action-error.ts","../node_modules/next/src/client/components/redirect-status-code.ts","../node_modules/next/src/client/components/redirect-error.ts","../node_modules/next/src/server/app-render/async-local-storage.ts","../node_modules/next/src/server/app-render/action-async-storage-instance.ts","../node_modules/next/src/server/app-render/action-async-storage.external.ts","../node_modules/next/src/client/components/redirect.ts","../node_modules/next/src/client/components/http-access-fallback/http-access-fallback.ts","../node_modules/next/src/client/components/not-found.ts","../node_modules/next/src/client/components/forbidden.ts","../node_modules/next/src/client/components/unauthorized.ts","../node_modules/next/src/server/dynamic-rendering-utils.ts","../node_modules/next/src/server/lib/router-utils/is-postpone.ts","../node_modules/next/src/shared/lib/lazy-dynamic/bailout-to-csr.ts","../node_modules/next/src/client/components/is-next-router-error.ts","../node_modules/next/src/client/components/hooks-server-context.ts","../node_modules/next/src/client/components/static-generation-bailout.ts","../node_modules/next/src/server/app-render/work-unit-async-storage-instance.ts","../node_modules/next/src/client/components/app-router-headers.ts","../node_modules/next/src/shared/lib/invariant-error.ts","../node_modules/next/src/server/app-render/work-unit-async-storage.external.ts","../node_modules/next/src/server/app-render/work-async-storage-instance.ts","../node_modules/next/src/server/app-render/work-async-storage.external.ts","../node_modules/next/src/lib/framework/boundary-constants.tsx","../node_modules/next/src/lib/scheduler.ts","../node_modules/next/src/server/app-render/dynamic-rendering.ts","../node_modules/next/src/client/components/unstable-rethrow.server.ts","../node_modules/next/src/client/components/unstable-rethrow.browser.ts","../node_modules/next/src/client/components/unstable-rethrow.ts","../node_modules/next/src/client/components/navigation.react-server.ts","../node_modules/next/src/client/components/navigation.ts","../node_modules/next/navigation.js","../node_modules/@marcoschwartz/lite-ui/src/theme/themes.ts","../node_modules/@marcoschwartz/lite-ui/src/theme/ThemeProvider.tsx","../node_modules/@marcoschwartz/lite-ui/src/components/Button.tsx","../node_modules/@marcoschwartz/lite-ui/src/components/Select.tsx","../node_modules/@marcoschwartz/lite-ui/src/components/SidebarProvider.tsx","../node_modules/@marcoschwartz/lite-ui/src/components/TextInput.tsx","../node_modules/@marcoschwartz/lite-ui/src/components/Card.tsx","../node_modules/@marcoschwartz/lite-ui/src/components/Alert.tsx","../node_modules/@marcoschwartz/lite-ui/src/components/Checkbox.tsx","../node_modules/@marcoschwartz/lite-ui/src/components/Toggle.tsx","../node_modules/@marcoschwartz/lite-ui/src/components/Spinner.tsx","../node_modules/@marcoschwartz/lite-ui/src/components/Tabs.tsx","../node_modules/@marcoschwartz/lite-ui/src/components/Table.tsx","../node_modules/@marcoschwartz/lite-ui/src/components/TimePicker.tsx","../node_modules/@marcoschwartz/lite-ui/src/components/Radio.tsx","../node_modules/@marcoschwartz/lite-ui/src/components/Toast.tsx","../src/components/client/Modal/index.tsx","../node_modules/@stripe/stripe-js/dist/index.mjs","../node_modules/@stripe/react-stripe-js/dist/react-stripe.esm.mjs","../src/components/client/AddPaymentMethodForm/index.tsx","../src/components/client/BillingContent/index.tsx","../src/components/server/Billing/actions.ts"],"names":["exports","Fragment","i","checker","nodeInterop","AppRouterContext","GlobalLayoutRouterContext","LayoutRouterContext","MissingSlotContext","TemplateContext","React","createContext","process","env","NODE_ENV","displayName","Set","ReadonlyURLSearchParams","ReadonlyURLSearchParamsError","Error","constructor","URLSearchParams","append","delete","set","sort","NavigationPromisesContext","PathParamsContext","PathnameContext","SearchParamsContext","createDevToolsInstrumentedPromise","value","promise","Promise","resolve","status","DEFAULT_SEGMENT_KEY","NOT_FOUND_SEGMENT_KEY","PAGE_SEGMENT_KEY","addSearchParamsIfPageSegment","computeSelectedLayoutSegment","getSegmentValue","getSelectedLayoutSegmentPath","isGroupSegment","isParallelRouteSegment","segment","Array","isArray","endsWith","startsWith","searchParams","isPageSegment","includes","stringifiedQuery","JSON","stringify","segments","parallelRouteKey","length","rawSegment","tree","first","segmentPath","node","parallelRoutes","children","Object","values","segmentValue","push","ServerInsertedHTMLContext","useServerInsertedHTML","callback","addInsertedServerHTMLCallback","useContext","UnrecognizedActionError","unstable_isUnrecognizedActionError","args","name","error","RedirectStatusCode","REDIRECT_ERROR_CODE","RedirectType","isRedirectError","digest","split","errorCode","type","destination","slice","join","at","statusCode","Number","isNaN","bindSnapshot","createAsyncLocalStorage","createSnapshot","sharedAsyncLocalStorageNotAvailableError","FakeAsyncLocalStorage","disable","getStore","undefined","run","exit","enterWith","bind","fn","maybeGlobalAsyncLocalStorage","globalThis","AsyncLocalStorage","snapshot","actionAsyncStorageInstance","actionAsyncStorage","getRedirectError","getRedirectStatusCodeFromError","getRedirectTypeFromError","getURLFromRedirectError","permanentRedirect","redirect","window","require","url","TemporaryRedirect","isAction","replace","PermanentRedirect","HTTPAccessErrorStatus","HTTP_ERROR_FALLBACK_ERROR_CODE","getAccessFallbackErrorTypeByStatus","getAccessFallbackHTTPStatus","isHTTPAccessFallbackError","NOT_FOUND","FORBIDDEN","UNAUTHORIZED","ALLOWED_CODES","prefix","httpStatus","has","notFound","DIGEST","forbidden","__NEXT_EXPERIMENTAL_AUTH_INTERRUPTS","unauthorized","isHangingPromiseRejectionError","makeDevtoolsIOAwarePromise","makeHangingPromise","err","HANGING_PROMISE_REJECTION","HangingPromiseRejectionError","route","expression","abortListenersBySignal","WeakMap","signal","aborted","reject","hangingPromise","_","boundRejection","currentListeners","get","listeners","addEventListener","once","catch","ignoreReject","underlying","requestStore","stage","stagedRendering","delayUntilStage","setTimeout","isPostpone","REACT_POSTPONE_TYPE","Symbol","for","$$typeof","BailoutToCSRError","isBailoutToCSRError","BAILOUT_TO_CSR","reason","isNextRouterError","DynamicServerError","isDynamicServerError","DYNAMIC_ERROR_CODE","description","StaticGenBailoutError","isStaticGenBailoutError","NEXT_STATIC_GEN_BAILOUT","code","workUnitAsyncStorageInstance","ACTION_HEADER","FLIGHT_HEADERS","NEXT_ACTION_NOT_FOUND_HEADER","NEXT_ACTION_REVALIDATED_HEADER","NEXT_DID_POSTPONE_HEADER","NEXT_HMR_REFRESH_HASH_COOKIE","NEXT_HMR_REFRESH_HEADER","NEXT_HTML_REQUEST_ID_HEADER","NEXT_IS_PRERENDER_HEADER","NEXT_REQUEST_ID_HEADER","NEXT_REWRITTEN_PATH_HEADER","NEXT_REWRITTEN_QUERY_HEADER","NEXT_ROUTER_PREFETCH_HEADER","NEXT_ROUTER_SEGMENT_PREFETCH_HEADER","NEXT_ROUTER_STALE_TIME_HEADER","NEXT_ROUTER_STATE_TREE_HEADER","NEXT_RSC_UNION_QUERY","NEXT_URL","RSC_CONTENT_TYPE_HEADER","RSC_HEADER","InvariantError","message","options","getCacheSignal","getDraftModeProviderForCacheScope","getHmrRefreshHash","getPrerenderResumeDataCache","getRenderResumeDataCache","getRuntimeStagePromise","getServerComponentsHmrCache","isHmrRefresh","throwForMissingRequestStore","throwInvariantForMissingStore","workUnitAsyncStorage","callingExpression","workUnitStore","prerenderResumeDataCache","renderResumeDataCache","workStore","dev","hmrRefreshHash","cookies","serverComponentsHmrCache","isDraftMode","draftMode","cacheSignal","runtimeStagePromise","workAsyncStorageInstance","workAsyncStorage","METADATA_BOUNDARY_NAME","OUTLET_BOUNDARY_NAME","ROOT_LAYOUT_BOUNDARY_NAME","VIEWPORT_BOUNDARY_NAME","atLeastOneTask","scheduleImmediate","scheduleOnNextTick","waitAtLeastOneReactRenderTask","cb","then","NEXT_RUNTIME","nextTick","setImmediate","r","Postpone","PreludeState","abortAndThrowOnSynchronousRequestDataAccess","abortOnSynchronousPlatformIOAccess","accessedDynamicData","annotateDynamicAccess","consumeDynamicAccess","createDynamicTrackingState","createDynamicValidationState","createHangingInputAbortSignal","createRenderInBrowserAbortSignal","delayUntilRuntimeStage","formatDynamicAPIAccesses","getFirstDynamicReason","getStaticShellDisallowedDynamicReasons","isDynamicPostpone","isPrerenderInterruptedError","logDisallowedDynamicError","markCurrentScopeAsDynamic","postponeWithTracking","throwIfDisallowedDynamic","throwToInterruptStaticGeneration","trackAllowedDynamicAccess","trackDynamicDataInDynamicRender","trackDynamicHoleInRuntimeShell","trackDynamicHoleInStaticShell","useDynamicRouteParams","useDynamicSearchParams","hasPostpone","unstable_postpone","isDebugDynamicAccesses","dynamicAccesses","syncDynamicErrorWithStack","hasSuspenseAboveBody","hasDynamicMetadata","dynamicMetadata","hasDynamicViewport","hasAllowedDynamic","dynamicErrors","trackingState","store","forceDynamic","forceStatic","dynamicShouldError","dynamicTracking","revalidate","dynamicUsageDescription","dynamicUsageStack","stack","usedDynamic","prerenderStore","abortOnSynchronousDynamicDataAccess","createPrerenderInterruptedError","controller","abort","errorWithStack","prerenderSignal","assertPostpone","createPostponeReason","isDynamicPostponeReason","NEXT_PRERENDER_INTERRUPTED","serverDynamic","clientDynamic","filter","access","map","line","AbortController","inputReady","fallbackParams","fallbackRouteParams","size","use","renderSignal","hasSuspenseRegex","bodyAndImplicitTags","hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex","RegExp","hasMetadataRegex","hasViewportRegex","hasOutletRegex","componentStack","dynamicValidation","test","createErrorWithComponentOrOwnerStack","ownerStack","captureOwnerStack","console","hasReadableErrorStacks","prelude","result","unstable_rethrow","cause","useParams","usePathname","useRouter","useSearchParams","useSelectedLayoutSegment","useSelectedLayoutSegments","readonlySearchParams","useMemo","navigationPromises","pathname","router","params","context","selectedLayoutSegmentsPromises","parentTree","selectedLayoutSegments","selectedLayoutSegmentPromises","require_navigation","variantStyles","sizeStyles","jsx","useState","useEffect","jsxs","sizeClasses","forwardRef","runtimeVersionToUrlVersion","isStripeJSURL","findScript","injectScript","registerWrapper","onError","onLoad","loadScript","initStripe","getStripePromise","loadStripe","obj","useAttachEvent","decoratedCb","usePrevious","isUnknownObject","isPromise","isStripe","isEqual","pred","extractAllowedOptionsUpdates","validateStripe","parseStripeProp","registerWithStripeJs","parseElementsContext","Elements","safeSetContext","ctx","PropTypes","useElementsContextWithUseCase","useElements","useElementsOrCheckoutContextWithUseCase","capitalized","createElementComponent","isServer","ClientElement","readyCallback","ServerElement","useStripe","stripePromise","isDark"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAA,+BAAA,GAAA,UAAA,CAAA;AAAA,EAAA,sDAAA,CAAAA,SAAA,EAAA;AASa,IAAA,IAAI,CAAA,GAAE,UAAA,KAAa,OAAO,MAAA,IAAQ,MAAA,CAAO,GAAA;AAAzC,IAAA,IAA6C,CAAA,GAAE,CAAA,mBAAE,MAAA,CAAO,GAAA,CAAI,eAAe,CAAA,GAAE,KAAA;AAA7E,IAAA,IAAmF,CAAA,GAAE,CAAA,mBAAE,MAAA,CAAO,GAAA,CAAI,cAAc,CAAA,GAAE,KAAA;AAAlH,IAAA,IAAwH,CAAA,GAAE,CAAA,mBAAE,MAAA,CAAO,GAAA,CAAI,gBAAgB,CAAA,GAAE,KAAA;AAAzJ,IAAA,IAA+J,CAAA,GAAE,CAAA,mBAAE,MAAA,CAAO,GAAA,CAAI,mBAAmB,CAAA,GAAE,KAAA;AAAnM,IAAA,IAAyM,CAAA,GAAE,CAAA,mBAAE,MAAA,CAAO,GAAA,CAAI,gBAAgB,CAAA,GAAE,KAAA;AAA1O,IAAA,IAAgP,CAAA,GAAE,CAAA,mBAAE,MAAA,CAAO,GAAA,CAAI,gBAAgB,CAAA,GAAE,KAAA;AAAjR,IAAA,IAAuR,CAAA,GAAE,CAAA,mBAAE,MAAA,CAAO,GAAA,CAAI,eAAe,CAAA,GAAE,KAAA;AAAvT,IAAA,IAA6T,CAAA,GAAE,CAAA,mBAAE,MAAA,CAAO,GAAA,CAAI,kBAAkB,CAAA,GAAE,KAAA;AAAhW,IAAA,IAAsW,CAAA,GAAE,CAAA,mBAAE,MAAA,CAAO,GAAA,CAAI,uBAAuB,CAAA,GAAE,KAAA;AAA9Y,IAAA,IAAoZ,CAAA,GAAE,CAAA,mBAAE,MAAA,CAAO,GAAA,CAAI,mBAAmB,CAAA,GAAE,KAAA;AAAxb,IAAA,IAA8b,CAAA,GAAE,CAAA,mBAAE,MAAA,CAAO,GAAA,CAAI,gBAAgB,CAAA,GAAE,KAAA;AAA/d,IAAA,IAAqe,CAAA,GAAE,CAAA,mBACpf,MAAA,CAAO,GAAA,CAAI,qBAAqB,CAAA,GAAE,KAAA;AADrB,IAAA,IAC2B,CAAA,GAAE,CAAA,mBAAE,MAAA,CAAO,GAAA,CAAI,YAAY,CAAA,GAAE,KAAA;AADxD,IAAA,IAC8D,CAAA,GAAE,CAAA,mBAAE,MAAA,CAAO,GAAA,CAAI,YAAY,CAAA,GAAE,KAAA;AAD3F,IAAA,IACiG,CAAA,GAAE,CAAA,mBAAE,MAAA,CAAO,GAAA,CAAI,aAAa,CAAA,GAAE,KAAA;AAD/H,IAAA,IACqI,CAAA,GAAE,CAAA,mBAAE,MAAA,CAAO,GAAA,CAAI,mBAAmB,CAAA,GAAE,KAAA;AADzK,IAAA,IAC+K,CAAA,GAAE,CAAA,mBAAE,MAAA,CAAO,GAAA,CAAI,iBAAiB,CAAA,GAAE,KAAA;AADjN,IAAA,IACuN,CAAA,GAAE,CAAA,mBAAE,MAAA,CAAO,GAAA,CAAI,aAAa,CAAA,GAAE,KAAA;AAClQ,IAAA,SAAS,EAAE,CAAA,EAAE;AAAC,MAAA,IAAG,QAAA,KAAW,OAAO,CAAA,IAAG,IAAA,KAAO,CAAA,EAAE;AAAC,QAAA,IAAI,IAAE,CAAA,CAAE,QAAA;AAAS,QAAA,QAAO,CAAA;AAAE,UAAC,KAAK,CAAA;AAAE,YAAA,QAAO,CAAA,GAAE,CAAA,CAAE,IAAA,EAAK,CAAA;AAAE,cAAC,KAAK,CAAA;AAAA,cAAE,KAAK,CAAA;AAAA,cAAE,KAAK,CAAA;AAAA,cAAE,KAAK,CAAA;AAAA,cAAE,KAAK,CAAA;AAAA,cAAE,KAAK,CAAA;AAAE,gBAAA,OAAO,CAAA;AAAA,cAAE;AAAQ,gBAAA,QAAO,CAAA,GAAE,CAAA,IAAG,CAAA,CAAE,QAAA,EAAS,CAAA;AAAE,kBAAC,KAAK,CAAA;AAAA,kBAAE,KAAK,CAAA;AAAA,kBAAE,KAAK,CAAA;AAAA,kBAAE,KAAK,CAAA;AAAA,kBAAE,KAAK,CAAA;AAAE,oBAAA,OAAO,CAAA;AAAA,kBAAE;AAAQ,oBAAA,OAAO,CAAA;AAAA;AAAC;AAAC,UAAC,KAAK,CAAA;AAAE,YAAA,OAAO,CAAA;AAAA;AAAC,MAAC;AAAA,IAAC;AAAC,IAAA,SAAS,EAAE,CAAA,EAAE;AAAC,MAAA,OAAO,CAAA,CAAE,CAAC,CAAA,KAAI,CAAA;AAAA,IAAC;AAAC,IAAAA,SAAA,CAAQ,SAAA,GAAU,CAAA;AAAE,IAAAA,SAAA,CAAQ,cAAA,GAAe,CAAA;AAAE,IAAAA,SAAA,CAAQ,eAAA,GAAgB,CAAA;AAAE,IAAAA,SAAA,CAAQ,eAAA,GAAgB,CAAA;AAAE,IAAAA,SAAA,CAAQ,OAAA,GAAQ,CAAA;AAAE,IAAAA,SAAA,CAAQ,UAAA,GAAW,CAAA;AAAE,IAAAA,SAAA,CAAQ,QAAA,GAAS,CAAA;AAAE,IAAAA,SAAA,CAAQ,IAAA,GAAK,CAAA;AAAE,IAAAA,SAAA,CAAQ,IAAA,GAAK,CAAA;AAAE,IAAAA,SAAA,CAAQ,MAAA,GAAO,CAAA;AAChf,IAAAA,SAAA,CAAQ,QAAA,GAAS,CAAA;AAAE,IAAAA,SAAA,CAAQ,UAAA,GAAW,CAAA;AAAE,IAAAA,SAAA,CAAQ,QAAA,GAAS,CAAA;AAAE,IAAAA,SAAA,CAAQ,WAAA,GAAY,SAAS,CAAA,EAAE;AAAC,MAAA,OAAO,CAAA,CAAE,CAAC,CAAA,IAAG,CAAA,CAAE,CAAC,CAAA,KAAI,CAAA;AAAA,IAAC,CAAA;AAAE,IAAAA,SAAA,CAAQ,gBAAA,GAAiB,CAAA;AAAE,IAAAA,SAAA,CAAQ,iBAAA,GAAkB,SAAS,CAAA,EAAE;AAAC,MAAA,OAAO,CAAA,CAAE,CAAC,CAAA,KAAI,CAAA;AAAA,IAAC,CAAA;AAAE,IAAAA,SAAA,CAAQ,iBAAA,GAAkB,SAAS,CAAA,EAAE;AAAC,MAAA,OAAO,CAAA,CAAE,CAAC,CAAA,KAAI,CAAA;AAAA,IAAC,CAAA;AAAE,IAAAA,SAAA,CAAQ,SAAA,GAAU,SAAS,CAAA,EAAE;AAAC,MAAA,OAAM,aAAW,OAAO,CAAA,IAAG,IAAA,KAAO,CAAA,IAAG,EAAE,QAAA,KAAW,CAAA;AAAA,IAAC,CAAA;AAAE,IAAAA,SAAA,CAAQ,YAAA,GAAa,SAAS,CAAA,EAAE;AAAC,MAAA,OAAO,CAAA,CAAE,CAAC,CAAA,KAAI,CAAA;AAAA,IAAC,CAAA;AAAE,IAAAA,SAAA,CAAQ,UAAA,GAAW,SAAS,CAAA,EAAE;AAAC,MAAA,OAAO,CAAA,CAAE,CAAC,CAAA,KAAI,CAAA;AAAA,IAAC,CAAA;AAAE,IAAAA,SAAA,CAAQ,MAAA,GAAO,SAAS,CAAA,EAAE;AAAC,MAAA,OAAO,CAAA,CAAE,CAAC,CAAA,KAAI,CAAA;AAAA,IAAC,CAAA;AAC1d,IAAAA,SAAA,CAAQ,MAAA,GAAO,SAAS,CAAA,EAAE;AAAC,MAAA,OAAO,CAAA,CAAE,CAAC,CAAA,KAAI,CAAA;AAAA,IAAC,CAAA;AAAE,IAAAA,SAAA,CAAQ,QAAA,GAAS,SAAS,CAAA,EAAE;AAAC,MAAA,OAAO,CAAA,CAAE,CAAC,CAAA,KAAI,CAAA;AAAA,IAAC,CAAA;AAAE,IAAAA,SAAA,CAAQ,UAAA,GAAW,SAAS,CAAA,EAAE;AAAC,MAAA,OAAO,CAAA,CAAE,CAAC,CAAA,KAAI,CAAA;AAAA,IAAC,CAAA;AAAE,IAAAA,SAAA,CAAQ,YAAA,GAAa,SAAS,CAAA,EAAE;AAAC,MAAA,OAAO,CAAA,CAAE,CAAC,CAAA,KAAI,CAAA;AAAA,IAAC,CAAA;AAAE,IAAAA,SAAA,CAAQ,UAAA,GAAW,SAAS,CAAA,EAAE;AAAC,MAAA,OAAO,CAAA,CAAE,CAAC,CAAA,KAAI,CAAA;AAAA,IAAC,CAAA;AAC1O,IAAAA,SAAA,CAAQ,kBAAA,GAAmB,SAAS,CAAA,EAAE;AAAC,MAAA,OAAM,QAAA,KAAW,OAAO,CAAA,IAAG,UAAA,KAAa,OAAO,CAAA,IAAG,CAAA,KAAI,CAAA,IAAG,CAAA,KAAI,CAAA,IAAG,CAAA,KAAI,KAAG,CAAA,KAAI,CAAA,IAAG,MAAI,CAAA,IAAG,CAAA,KAAI,KAAG,QAAA,KAAW,OAAO,CAAA,IAAG,IAAA,KAAO,CAAA,KAAI,CAAA,CAAE,aAAW,CAAA,IAAG,CAAA,CAAE,aAAW,CAAA,IAAG,CAAA,CAAE,aAAW,CAAA,IAAG,CAAA,CAAE,QAAA,KAAW,CAAA,IAAG,CAAA,CAAE,QAAA,KAAW,KAAG,CAAA,CAAE,QAAA,KAAW,KAAG,CAAA,CAAE,QAAA,KAAW,KAAG,CAAA,CAAE,QAAA,KAAW,CAAA,IAAG,CAAA,CAAE,QAAA,KAAW,CAAA,CAAA;AAAA,IAAE,CAAA;AAAE,IAAAA,SAAA,CAAQ,MAAA,GAAO,CAAA;AAAA,EAAA;AAAA,CAAA,CAAA;;;ACdnU,IAAA,4BAAA,GAAA,UAAA,CAAA;AAAA,EAAA,mDAAA,CAAAA,SAAA,EAAA;AAaA,IAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,YAAA,EAAc;AACzC,MAAA,CAAC,WAAW;AAKd,QAAA,IAAI,SAAA,GAAY,OAAO,MAAA,KAAW,UAAA,IAAc,MAAA,CAAO,GAAA;AACvD,QAAA,IAAI,kBAAA,GAAqB,SAAA,mBAAY,MAAA,CAAO,GAAA,CAAI,eAAe,CAAA,GAAI,KAAA;AACnE,QAAA,IAAI,iBAAA,GAAoB,SAAA,mBAAY,MAAA,CAAO,GAAA,CAAI,cAAc,CAAA,GAAI,KAAA;AACjE,QAAA,IAAI,mBAAA,GAAsB,SAAA,mBAAY,MAAA,CAAO,GAAA,CAAI,gBAAgB,CAAA,GAAI,KAAA;AACrE,QAAA,IAAI,sBAAA,GAAyB,SAAA,mBAAY,MAAA,CAAO,GAAA,CAAI,mBAAmB,CAAA,GAAI,KAAA;AAC3E,QAAA,IAAI,mBAAA,GAAsB,SAAA,mBAAY,MAAA,CAAO,GAAA,CAAI,gBAAgB,CAAA,GAAI,KAAA;AACrE,QAAA,IAAI,mBAAA,GAAsB,SAAA,mBAAY,MAAA,CAAO,GAAA,CAAI,gBAAgB,CAAA,GAAI,KAAA;AACrE,QAAA,IAAI,kBAAA,GAAqB,SAAA,mBAAY,MAAA,CAAO,GAAA,CAAI,eAAe,CAAA,GAAI,KAAA;AAGnE,QAAA,IAAI,qBAAA,GAAwB,SAAA,mBAAY,MAAA,CAAO,GAAA,CAAI,kBAAkB,CAAA,GAAI,KAAA;AACzE,QAAA,IAAI,0BAAA,GAA6B,SAAA,mBAAY,MAAA,CAAO,GAAA,CAAI,uBAAuB,CAAA,GAAI,KAAA;AACnF,QAAA,IAAI,sBAAA,GAAyB,SAAA,mBAAY,MAAA,CAAO,GAAA,CAAI,mBAAmB,CAAA,GAAI,KAAA;AAC3E,QAAA,IAAI,mBAAA,GAAsB,SAAA,mBAAY,MAAA,CAAO,GAAA,CAAI,gBAAgB,CAAA,GAAI,KAAA;AACrE,QAAA,IAAI,wBAAA,GAA2B,SAAA,mBAAY,MAAA,CAAO,GAAA,CAAI,qBAAqB,CAAA,GAAI,KAAA;AAC/E,QAAA,IAAI,eAAA,GAAkB,SAAA,mBAAY,MAAA,CAAO,GAAA,CAAI,YAAY,CAAA,GAAI,KAAA;AAC7D,QAAA,IAAI,eAAA,GAAkB,SAAA,mBAAY,MAAA,CAAO,GAAA,CAAI,YAAY,CAAA,GAAI,KAAA;AAC7D,QAAA,IAAI,gBAAA,GAAmB,SAAA,mBAAY,MAAA,CAAO,GAAA,CAAI,aAAa,CAAA,GAAI,KAAA;AAC/D,QAAA,IAAI,sBAAA,GAAyB,SAAA,mBAAY,MAAA,CAAO,GAAA,CAAI,mBAAmB,CAAA,GAAI,KAAA;AAC3E,QAAA,IAAI,oBAAA,GAAuB,SAAA,mBAAY,MAAA,CAAO,GAAA,CAAI,iBAAiB,CAAA,GAAI,KAAA;AACvE,QAAA,IAAI,gBAAA,GAAmB,SAAA,mBAAY,MAAA,CAAO,GAAA,CAAI,aAAa,CAAA,GAAI,KAAA;AAE/D,QAAA,SAAS,mBAAmB,IAAA,EAAM;AAChC,UAAA,OAAO,OAAO,IAAA,KAAS,QAAA,IAAY,OAAO,IAAA,KAAS,UAAA;AAAA,UACnD,SAAS,mBAAA,IAAuB,IAAA,KAAS,8BAA8B,IAAA,KAAS,mBAAA,IAAuB,SAAS,sBAAA,IAA0B,IAAA,KAAS,uBAAuB,IAAA,KAAS,wBAAA,IAA4B,OAAO,IAAA,KAAS,QAAA,IAAY,SAAS,IAAA,KAAS,IAAA,CAAK,aAAa,eAAA,IAAmB,IAAA,CAAK,QAAA,KAAa,eAAA,IAAmB,KAAK,QAAA,KAAa,mBAAA,IAAuB,KAAK,QAAA,KAAa,kBAAA,IAAsB,KAAK,QAAA,KAAa,sBAAA,IAA0B,KAAK,QAAA,KAAa,sBAAA,IAA0B,KAAK,QAAA,KAAa,oBAAA,IAAwB,KAAK,QAAA,KAAa,gBAAA,IAAoB,KAAK,QAAA,KAAa,gBAAA,CAAA;AAAA,QACplB;AAEA,QAAA,SAAS,OAAO,MAAA,EAAQ;AACtB,UAAA,IAAI,OAAO,MAAA,KAAW,QAAA,IAAY,MAAA,KAAW,IAAA,EAAM;AACjD,YAAA,IAAI,WAAW,MAAA,CAAO,QAAA;AAEtB,YAAA,QAAQ,QAAA;AAAU,cAChB,KAAK,kBAAA;AACH,gBAAA,IAAI,OAAO,MAAA,CAAO,IAAA;AAElB,gBAAA,QAAQ,IAAA;AAAM,kBACZ,KAAK,qBAAA;AAAA,kBACL,KAAK,0BAAA;AAAA,kBACL,KAAK,mBAAA;AAAA,kBACL,KAAK,mBAAA;AAAA,kBACL,KAAK,sBAAA;AAAA,kBACL,KAAK,mBAAA;AACH,oBAAA,OAAO,IAAA;AAAA,kBAET;AACE,oBAAA,IAAI,YAAA,GAAe,QAAQ,IAAA,CAAK,QAAA;AAEhC,oBAAA,QAAQ,YAAA;AAAc,sBACpB,KAAK,kBAAA;AAAA,sBACL,KAAK,sBAAA;AAAA,sBACL,KAAK,eAAA;AAAA,sBACL,KAAK,eAAA;AAAA,sBACL,KAAK,mBAAA;AACH,wBAAA,OAAO,YAAA;AAAA,sBAET;AACE,wBAAA,OAAO,QAAA;AAAA;AACX;AAEJ,cAEF,KAAK,iBAAA;AACH,gBAAA,OAAO,QAAA;AAAA;AACX,UACF;AAEA,UAAA,OAAO,MAAA;AAAA,QACT;AAEA,QAAA,IAAI,SAAA,GAAY,qBAAA;AAChB,QAAA,IAAI,cAAA,GAAiB,0BAAA;AACrB,QAAA,IAAI,eAAA,GAAkB,kBAAA;AACtB,QAAA,IAAI,eAAA,GAAkB,mBAAA;AACtB,QAAA,IAAI,OAAA,GAAU,kBAAA;AACd,QAAA,IAAI,UAAA,GAAa,sBAAA;AACjB,QAAA,IAAIC,UAAAA,GAAW,mBAAA;AACf,QAAA,IAAI,IAAA,GAAO,eAAA;AACX,QAAA,IAAI,IAAA,GAAO,eAAA;AACX,QAAA,IAAI,MAAA,GAAS,iBAAA;AACb,QAAA,IAAI,QAAA,GAAW,mBAAA;AACf,QAAA,IAAI,UAAA,GAAa,sBAAA;AACjB,QAAA,IAAI,QAAA,GAAW,mBAAA;AACf,QAAA,IAAI,mCAAA,GAAsC,KAAA;AAE1C,QAAA,SAAS,YAAY,MAAA,EAAQ;AAC3B,UAAA;AACE,YAAA,IAAI,CAAC,mCAAA,EAAqC;AACxC,cAAA,mCAAA,GAAsC,IAAA;AAEtC,cAAA,OAAA,CAAQ,MAAM,EAAE,+KAAyL,CAAA;AAAA,YAC3M;AAAA,UACF;AAEA,UAAA,OAAO,gBAAA,CAAiB,MAAM,CAAA,IAAK,MAAA,CAAO,MAAM,CAAA,KAAM,qBAAA;AAAA,QACxD;AACA,QAAA,SAAS,iBAAiB,MAAA,EAAQ;AAChC,UAAA,OAAO,MAAA,CAAO,MAAM,CAAA,KAAM,0BAAA;AAAA,QAC5B;AACA,QAAA,SAAS,kBAAkB,MAAA,EAAQ;AACjC,UAAA,OAAO,MAAA,CAAO,MAAM,CAAA,KAAM,kBAAA;AAAA,QAC5B;AACA,QAAA,SAAS,kBAAkB,MAAA,EAAQ;AACjC,UAAA,OAAO,MAAA,CAAO,MAAM,CAAA,KAAM,mBAAA;AAAA,QAC5B;AACA,QAAA,SAAS,UAAU,MAAA,EAAQ;AACzB,UAAA,OAAO,OAAO,MAAA,KAAW,QAAA,IAAY,MAAA,KAAW,IAAA,IAAQ,OAAO,QAAA,KAAa,kBAAA;AAAA,QAC9E;AACA,QAAA,SAAS,aAAa,MAAA,EAAQ;AAC5B,UAAA,OAAO,MAAA,CAAO,MAAM,CAAA,KAAM,sBAAA;AAAA,QAC5B;AACA,QAAA,SAAS,WAAW,MAAA,EAAQ;AAC1B,UAAA,OAAO,MAAA,CAAO,MAAM,CAAA,KAAM,mBAAA;AAAA,QAC5B;AACA,QAAA,SAAS,OAAO,MAAA,EAAQ;AACtB,UAAA,OAAO,MAAA,CAAO,MAAM,CAAA,KAAM,eAAA;AAAA,QAC5B;AACA,QAAA,SAAS,OAAO,MAAA,EAAQ;AACtB,UAAA,OAAO,MAAA,CAAO,MAAM,CAAA,KAAM,eAAA;AAAA,QAC5B;AACA,QAAA,SAAS,SAAS,MAAA,EAAQ;AACxB,UAAA,OAAO,MAAA,CAAO,MAAM,CAAA,KAAM,iBAAA;AAAA,QAC5B;AACA,QAAA,SAAS,WAAW,MAAA,EAAQ;AAC1B,UAAA,OAAO,MAAA,CAAO,MAAM,CAAA,KAAM,mBAAA;AAAA,QAC5B;AACA,QAAA,SAAS,aAAa,MAAA,EAAQ;AAC5B,UAAA,OAAO,MAAA,CAAO,MAAM,CAAA,KAAM,sBAAA;AAAA,QAC5B;AACA,QAAA,SAAS,WAAW,MAAA,EAAQ;AAC1B,UAAA,OAAO,MAAA,CAAO,MAAM,CAAA,KAAM,mBAAA;AAAA,QAC5B;AAEA,QAAAD,SAAA,CAAQ,SAAA,GAAY,SAAA;AACpB,QAAAA,SAAA,CAAQ,cAAA,GAAiB,cAAA;AACzB,QAAAA,SAAA,CAAQ,eAAA,GAAkB,eAAA;AAC1B,QAAAA,SAAA,CAAQ,eAAA,GAAkB,eAAA;AAC1B,QAAAA,SAAA,CAAQ,OAAA,GAAU,OAAA;AAClB,QAAAA,SAAA,CAAQ,UAAA,GAAa,UAAA;AACrB,QAAAA,SAAA,CAAQ,QAAA,GAAWC,UAAAA;AACnB,QAAAD,SAAA,CAAQ,IAAA,GAAO,IAAA;AACf,QAAAA,SAAA,CAAQ,IAAA,GAAO,IAAA;AACf,QAAAA,SAAA,CAAQ,MAAA,GAAS,MAAA;AACjB,QAAAA,SAAA,CAAQ,QAAA,GAAW,QAAA;AACnB,QAAAA,SAAA,CAAQ,UAAA,GAAa,UAAA;AACrB,QAAAA,SAAA,CAAQ,QAAA,GAAW,QAAA;AACnB,QAAAA,SAAA,CAAQ,WAAA,GAAc,WAAA;AACtB,QAAAA,SAAA,CAAQ,gBAAA,GAAmB,gBAAA;AAC3B,QAAAA,SAAA,CAAQ,iBAAA,GAAoB,iBAAA;AAC5B,QAAAA,SAAA,CAAQ,iBAAA,GAAoB,iBAAA;AAC5B,QAAAA,SAAA,CAAQ,SAAA,GAAY,SAAA;AACpB,QAAAA,SAAA,CAAQ,YAAA,GAAe,YAAA;AACvB,QAAAA,SAAA,CAAQ,UAAA,GAAa,UAAA;AACrB,QAAAA,SAAA,CAAQ,MAAA,GAAS,MAAA;AACjB,QAAAA,SAAA,CAAQ,MAAA,GAAS,MAAA;AACjB,QAAAA,SAAA,CAAQ,QAAA,GAAW,QAAA;AACnB,QAAAA,SAAA,CAAQ,UAAA,GAAa,UAAA;AACrB,QAAAA,SAAA,CAAQ,YAAA,GAAe,YAAA;AACvB,QAAAA,SAAA,CAAQ,UAAA,GAAa,UAAA;AACrB,QAAAA,SAAA,CAAQ,kBAAA,GAAqB,kBAAA;AAC7B,QAAAA,SAAA,CAAQ,MAAA,GAAS,MAAA;AAAA,MACf,CAAA,GAAG;AAAA,IACL;AAAA,EAAA;AAAA,CAAA,CAAA;;;ACpLA,IAAA,gBAAA,GAAA,UAAA,CAAA;AAAA,EAAA,gCAAA,CAAAA,SAAA,EAAA,MAAA,EAAA;AAEA,IAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,YAAA,EAAc;AACzC,MAAA,MAAA,CAAO,OAAA,GAAU,+BAAA,EAAA;AAAA,IACnB,CAAA,MAAO;AACL,MAAA,MAAA,CAAO,OAAA,GAAU,4BAAA,EAAA;AAAA,IACnB;AAAA,EAAA;AAAA,CAAA,CAAA;;;ACNA,IAAA,qBAAA,GAAA,UAAA,CAAA;AAAA,EAAA,qCAAA,CAAAA,SAAA,EAAA,MAAA,EAAA;AAQA,IAAA,IAAI,wBAAwB,MAAA,CAAO,qBAAA;AACnC,IAAA,IAAI,cAAA,GAAiB,OAAO,SAAA,CAAU,cAAA;AACtC,IAAA,IAAI,gBAAA,GAAmB,OAAO,SAAA,CAAU,oBAAA;AAExC,IAAA,SAAS,SAAS,GAAA,EAAK;AACtB,MAAA,IAAI,GAAA,KAAQ,IAAA,IAAQ,GAAA,KAAQ,MAAA,EAAW;AACtC,QAAA,MAAM,IAAI,UAAU,uDAAuD,CAAA;AAAA,MAC5E;AAEA,MAAA,OAAO,OAAO,GAAG,CAAA;AAAA,IAClB;AAEA,IAAA,SAAS,eAAA,GAAkB;AAC1B,MAAA,IAAI;AACH,QAAA,IAAI,CAAC,OAAO,MAAA,EAAQ;AACnB,UAAA,OAAO,KAAA;AAAA,QACR;AAKA,QAAA,IAAI,KAAA,GAAQ,IAAI,MAAA,CAAO,KAAK,CAAA;AAC5B,QAAA,KAAA,CAAM,CAAC,CAAA,GAAI,IAAA;AACX,QAAA,IAAI,OAAO,mBAAA,CAAoB,KAAK,CAAA,CAAE,CAAC,MAAM,GAAA,EAAK;AACjD,UAAA,OAAO,KAAA;AAAA,QACR;AAGA,QAAA,IAAI,QAAQ,EAAC;AACb,QAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,EAAA,EAAI,CAAA,EAAA,EAAK;AAC5B,UAAA,KAAA,CAAM,GAAA,GAAM,MAAA,CAAO,YAAA,CAAa,CAAC,CAAC,CAAA,GAAI,CAAA;AAAA,QACvC;AACA,QAAA,IAAI,SAAS,MAAA,CAAO,mBAAA,CAAoB,KAAK,CAAA,CAAE,GAAA,CAAI,SAAU,CAAA,EAAG;AAC/D,UAAA,OAAO,MAAM,CAAC,CAAA;AAAA,QACf,CAAC,CAAA;AACD,QAAA,IAAI,MAAA,CAAO,IAAA,CAAK,EAAE,CAAA,KAAM,YAAA,EAAc;AACrC,UAAA,OAAO,KAAA;AAAA,QACR;AAGA,QAAA,IAAI,QAAQ,EAAC;AACb,QAAA,sBAAA,CAAuB,KAAA,CAAM,EAAE,CAAA,CAAE,OAAA,CAAQ,SAAU,MAAA,EAAQ;AAC1D,UAAA,KAAA,CAAM,MAAM,CAAA,GAAI,MAAA;AAAA,QACjB,CAAC,CAAA;AACD,QAAA,IAAI,MAAA,CAAO,IAAA,CAAK,MAAA,CAAO,MAAA,CAAO,EAAC,EAAG,KAAK,CAAC,CAAA,CAAE,IAAA,CAAK,EAAE,CAAA,KAC/C,sBAAA,EAAwB;AACzB,UAAA,OAAO,KAAA;AAAA,QACR;AAEA,QAAA,OAAO,IAAA;AAAA,MACR,SAAS,GAAA,EAAK;AAEb,QAAA,OAAO,KAAA;AAAA,MACR;AAAA,IACD;AAEA,IAAA,MAAA,CAAO,UAAU,eAAA,EAAgB,GAAI,OAAO,MAAA,GAAS,SAAU,QAAQ,MAAA,EAAQ;AAC9E,MAAA,IAAI,IAAA;AACJ,MAAA,IAAI,EAAA,GAAK,SAAS,MAAM,CAAA;AACxB,MAAA,IAAI,OAAA;AAEJ,MAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,SAAA,CAAU,QAAQ,CAAA,EAAA,EAAK;AAC1C,QAAA,IAAA,GAAO,MAAA,CAAO,SAAA,CAAU,CAAC,CAAC,CAAA;AAE1B,QAAA,KAAA,IAAS,OAAO,IAAA,EAAM;AACrB,UAAA,IAAI,cAAA,CAAe,IAAA,CAAK,IAAA,EAAM,GAAG,CAAA,EAAG;AACnC,YAAA,EAAA,CAAG,GAAG,CAAA,GAAI,IAAA,CAAK,GAAG,CAAA;AAAA,UACnB;AAAA,QACD;AAEA,QAAA,IAAI,qBAAA,EAAuB;AAC1B,UAAA,OAAA,GAAU,sBAAsB,IAAI,CAAA;AACpC,UAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,OAAA,CAAQ,QAAQ,CAAA,EAAA,EAAK;AACxC,YAAA,IAAI,iBAAiB,IAAA,CAAK,IAAA,EAAM,OAAA,CAAQ,CAAC,CAAC,CAAA,EAAG;AAC5C,cAAA,EAAA,CAAG,QAAQ,CAAC,CAAC,IAAI,IAAA,CAAK,OAAA,CAAQ,CAAC,CAAC,CAAA;AAAA,YACjC;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAEA,MAAA,OAAO,EAAA;AAAA,IACR,CAAA;AAAA,EAAA;AAAA,CAAA,CAAA;;;ACzFA,IAAA,4BAAA,GAAA,UAAA,CAAA;AAAA,EAAA,qDAAA,CAAAA,SAAA,EAAA,MAAA,EAAA;AASA,IAAA,IAAI,oBAAA,GAAuB,8CAAA;AAE3B,IAAA,MAAA,CAAO,OAAA,GAAU,oBAAA;AAAA,EAAA;AAAA,CAAA,CAAA;;;ACXjB,IAAA,WAAA,GAAA,UAAA,CAAA;AAAA,EAAA,oCAAA,CAAAA,SAAA,EAAA,MAAA,EAAA;AAAA,IAAA,MAAA,CAAO,UAAU,QAAA,CAAS,IAAA,CAAK,IAAA,CAAK,MAAA,CAAO,UAAU,cAAc,CAAA;AAAA,EAAA;AAAA,CAAA,CAAA;;;ACAnE,IAAA,sBAAA,GAAA,UAAA,CAAA;AAAA,EAAA,2CAAA,CAAAA,SAAA,EAAA,MAAA,EAAA;AASA,IAAA,IAAI,eAAe,WAAW;AAAA,IAAC,CAAA;AAE/B,IAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,YAAA,EAAc;AACrC,MAAA,oBAAA,GAAuB,4BAAA,EAAA;AACvB,MAAA,kBAAA,GAAqB,EAAC;AACtB,MAAA,GAAA,GAAM,WAAA,EAAA;AAEV,MAAA,YAAA,GAAe,SAAS,IAAA,EAAM;AAC5B,QAAA,IAAI,UAAU,WAAA,GAAc,IAAA;AAC5B,QAAA,IAAI,OAAO,YAAY,WAAA,EAAa;AAClC,UAAA,OAAA,CAAQ,MAAM,OAAO,CAAA;AAAA,QACvB;AACA,QAAA,IAAI;AAIF,UAAA,MAAM,IAAI,MAAM,OAAO,CAAA;AAAA,QACzB,SAAS,CAAA,EAAG;AAAA,QAAO;AAAA,MACrB,CAAA;AAAA,IACF;AAhBM,IAAA,IAAA,oBAAA;AACA,IAAA,IAAA,kBAAA;AACA,IAAA,IAAA,GAAA;AA2BN,IAAA,SAAS,cAAA,CAAe,SAAA,EAAW,MAAA,EAAQ,QAAA,EAAU,eAAe,QAAA,EAAU;AAC5E,MAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,YAAA,EAAc;AACzC,QAAA,KAAA,IAAS,gBAAgB,SAAA,EAAW;AAClC,UAAA,IAAI,GAAA,CAAI,SAAA,EAAW,YAAY,CAAA,EAAG;AAChC,YAAA,IAAI,KAAA;AAIJ,YAAA,IAAI;AAGF,cAAA,IAAI,OAAO,SAAA,CAAU,YAAY,CAAA,KAAM,UAAA,EAAY;AACjD,gBAAA,IAAI,GAAA,GAAM,KAAA;AAAA,kBAAA,CACP,aAAA,IAAiB,aAAA,IAAiB,IAAA,GAAO,QAAA,GAAW,SAAA,GAAY,eAAe,4FAAA,GACC,OAAO,SAAA,CAAU,YAAY,CAAA,GAAI;AAAA,iBAEpH;AACA,gBAAA,GAAA,CAAI,IAAA,GAAO,qBAAA;AACX,gBAAA,MAAM,GAAA;AAAA,cACR;AACA,cAAA,KAAA,GAAQ,SAAA,CAAU,YAAY,CAAA,CAAE,MAAA,EAAQ,cAAc,aAAA,EAAe,QAAA,EAAU,MAAM,oBAAoB,CAAA;AAAA,YAC3G,SAAS,EAAA,EAAI;AACX,cAAA,KAAA,GAAQ,EAAA;AAAA,YACV;AACA,YAAA,IAAI,KAAA,IAAS,EAAE,KAAA,YAAiB,KAAA,CAAA,EAAQ;AACtC,cAAA,YAAA;AAAA,gBAAA,CACG,aAAA,IAAiB,iBAAiB,0BAAA,GACnC,QAAA,GAAW,OAAO,YAAA,GAAe,0FAAA,GAC6B,OAAO,KAAA,GAAQ;AAAA,eAI/E;AAAA,YACF;AACA,YAAA,IAAI,KAAA,YAAiB,KAAA,IAAS,EAAE,KAAA,CAAM,WAAW,kBAAA,CAAA,EAAqB;AAGpE,cAAA,kBAAA,CAAmB,KAAA,CAAM,OAAO,CAAA,GAAI,IAAA;AAEpC,cAAA,IAAI,KAAA,GAAQ,QAAA,GAAW,QAAA,EAAS,GAAI,EAAA;AAEpC,cAAA,YAAA;AAAA,gBACE,YAAY,QAAA,GAAW,SAAA,GAAY,MAAM,OAAA,IAAW,KAAA,IAAS,OAAO,KAAA,GAAQ,EAAA;AAAA,eAC9E;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAOA,IAAA,cAAA,CAAe,oBAAoB,WAAW;AAC5C,MAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,YAAA,EAAc;AACzC,QAAA,kBAAA,GAAqB,EAAC;AAAA,MACxB;AAAA,IACF,CAAA;AAEA,IAAA,MAAA,CAAO,OAAA,GAAU,cAAA;AAAA,EAAA;AAAA,CAAA,CAAA;;;ACtGjB,IAAA,+BAAA,GAAA,UAAA,CAAA;AAAA,EAAA,oDAAA,CAAAA,SAAA,EAAA,MAAA,EAAA;AASA,IAAA,IAAI,OAAA,GAAU,gBAAA,EAAA;AACd,IAAA,IAAI,MAAA,GAAS,qBAAA,EAAA;AAEb,IAAA,IAAI,oBAAA,GAAuB,4BAAA,EAAA;AAC3B,IAAA,IAAI,GAAA,GAAM,WAAA,EAAA;AACV,IAAA,IAAI,cAAA,GAAiB,sBAAA,EAAA;AAErB,IAAA,IAAI,eAAe,WAAW;AAAA,IAAC,CAAA;AAE/B,IAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,YAAA,EAAc;AACzC,MAAA,YAAA,GAAe,SAAS,IAAA,EAAM;AAC5B,QAAA,IAAI,UAAU,WAAA,GAAc,IAAA;AAC5B,QAAA,IAAI,OAAO,YAAY,WAAA,EAAa;AAClC,UAAA,OAAA,CAAQ,MAAM,OAAO,CAAA;AAAA,QACvB;AACA,QAAA,IAAI;AAIF,UAAA,MAAM,IAAI,MAAM,OAAO,CAAA;AAAA,QACzB,SAAS,CAAA,EAAG;AAAA,QAAC;AAAA,MACf,CAAA;AAAA,IACF;AAEA,IAAA,SAAS,4BAAA,GAA+B;AACtC,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,MAAA,CAAO,OAAA,GAAU,SAAS,cAAA,EAAgB,mBAAA,EAAqB;AAE7D,MAAA,IAAI,eAAA,GAAkB,OAAO,MAAA,KAAW,UAAA,IAAc,MAAA,CAAO,QAAA;AAC7D,MAAA,IAAI,oBAAA,GAAuB,YAAA;AAgB3B,MAAA,SAAS,cAAc,aAAA,EAAe;AACpC,QAAA,IAAI,aAAa,aAAA,KAAkB,eAAA,IAAmB,cAAc,eAAe,CAAA,IAAK,cAAc,oBAAoB,CAAA,CAAA;AAC1H,QAAA,IAAI,OAAO,eAAe,UAAA,EAAY;AACpC,UAAA,OAAO,UAAA;AAAA,QACT;AAAA,MACF;AAiDA,MAAA,IAAI,SAAA,GAAY,eAAA;AAIhB,MAAA,IAAI,cAAA,GAAiB;AAAA,QACnB,KAAA,EAAO,2BAA2B,OAAO,CAAA;AAAA,QACzC,MAAA,EAAQ,2BAA2B,QAAQ,CAAA;AAAA,QAC3C,IAAA,EAAM,2BAA2B,SAAS,CAAA;AAAA,QAC1C,IAAA,EAAM,2BAA2B,UAAU,CAAA;AAAA,QAC3C,MAAA,EAAQ,2BAA2B,QAAQ,CAAA;AAAA,QAC3C,MAAA,EAAQ,2BAA2B,QAAQ,CAAA;AAAA,QAC3C,MAAA,EAAQ,2BAA2B,QAAQ,CAAA;AAAA,QAC3C,MAAA,EAAQ,2BAA2B,QAAQ,CAAA;AAAA,QAE3C,KAAK,oBAAA,EAAqB;AAAA,QAC1B,OAAA,EAAS,wBAAA;AAAA,QACT,SAAS,wBAAA,EAAyB;AAAA,QAClC,aAAa,4BAAA,EAA6B;AAAA,QAC1C,UAAA,EAAY,yBAAA;AAAA,QACZ,MAAM,iBAAA,EAAkB;AAAA,QACxB,QAAA,EAAU,yBAAA;AAAA,QACV,KAAA,EAAO,qBAAA;AAAA,QACP,SAAA,EAAW,sBAAA;AAAA,QACX,KAAA,EAAO,sBAAA;AAAA,QACP,KAAA,EAAO;AAAA,OACT;AAOA,MAAA,SAAS,EAAA,CAAG,GAAG,CAAA,EAAG;AAEhB,QAAA,IAAI,MAAM,CAAA,EAAG;AAGX,UAAA,OAAO,CAAA,KAAM,CAAA,IAAK,CAAA,GAAI,CAAA,KAAM,CAAA,GAAI,CAAA;AAAA,QAClC,CAAA,MAAO;AAEL,UAAA,OAAO,CAAA,KAAM,KAAK,CAAA,KAAM,CAAA;AAAA,QAC1B;AAAA,MACF;AAUA,MAAA,SAAS,aAAA,CAAc,SAAS,IAAA,EAAM;AACpC,QAAA,IAAA,CAAK,OAAA,GAAU,OAAA;AACf,QAAA,IAAA,CAAK,OAAO,IAAA,IAAQ,OAAO,IAAA,KAAS,QAAA,GAAW,OAAM,EAAC;AACtD,QAAA,IAAA,CAAK,KAAA,GAAQ,EAAA;AAAA,MACf;AAEA,MAAA,aAAA,CAAc,YAAY,KAAA,CAAM,SAAA;AAEhC,MAAA,SAAS,2BAA2B,QAAA,EAAU;AAC5C,QAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,YAAA,EAAc;AACzC,UAAA,IAAI,0BAA0B,EAAC;AAC/B,UAAA,IAAI,0BAAA,GAA6B,CAAA;AAAA,QACnC;AACA,QAAA,SAAS,UAAU,UAAA,EAAY,KAAA,EAAO,UAAU,aAAA,EAAe,QAAA,EAAU,cAAc,MAAA,EAAQ;AAC7F,UAAA,aAAA,GAAgB,aAAA,IAAiB,SAAA;AACjC,UAAA,YAAA,GAAe,YAAA,IAAgB,QAAA;AAE/B,UAAA,IAAI,WAAW,oBAAA,EAAsB;AACnC,YAAA,IAAI,mBAAA,EAAqB;AAEvB,cAAA,IAAI,MAAM,IAAI,KAAA;AAAA,gBACZ;AAAA,eAGF;AACA,cAAA,GAAA,CAAI,IAAA,GAAO,qBAAA;AACX,cAAA,MAAM,GAAA;AAAA,YACR,WAAW,OAAA,CAAQ,GAAA,CAAI,aAAa,YAAA,IAAgB,OAAO,YAAY,WAAA,EAAa;AAElF,cAAA,IAAI,QAAA,GAAW,gBAAgB,GAAA,GAAM,QAAA;AACrC,cAAA,IACE,CAAC,wBAAwB,QAAQ,CAAA;AAAA,cAEjC,6BAA6B,CAAA,EAC7B;AACA,gBAAA,YAAA;AAAA,kBACE,0EAAA,GACuB,YAAA,GAAe,aAAA,GAAgB,aAAA,GAAgB;AAAA,iBAIxE;AACA,gBAAA,uBAAA,CAAwB,QAAQ,CAAA,GAAI,IAAA;AACpC,gBAAA,0BAAA,EAAA;AAAA,cACF;AAAA,YACF;AAAA,UACF;AACA,UAAA,IAAI,KAAA,CAAM,QAAQ,CAAA,IAAK,IAAA,EAAM;AAC3B,YAAA,IAAI,UAAA,EAAY;AACd,cAAA,IAAI,KAAA,CAAM,QAAQ,CAAA,KAAM,IAAA,EAAM;AAC5B,gBAAA,OAAO,IAAI,cAAc,MAAA,GAAS,QAAA,GAAW,OAAO,YAAA,GAAe,0BAAA,IAA8B,MAAA,GAAS,aAAA,GAAgB,6BAAA,CAA8B,CAAA;AAAA,cAC1J;AACA,cAAA,OAAO,IAAI,cAAc,MAAA,GAAS,QAAA,GAAW,OAAO,YAAA,GAAe,6BAAA,IAAiC,GAAA,GAAM,aAAA,GAAgB,kCAAA,CAAmC,CAAA;AAAA,YAC/J;AACA,YAAA,OAAO,IAAA;AAAA,UACT,CAAA,MAAO;AACL,YAAA,OAAO,QAAA,CAAS,KAAA,EAAO,QAAA,EAAU,aAAA,EAAe,UAAU,YAAY,CAAA;AAAA,UACxE;AAAA,QACF;AAEA,QAAA,IAAI,gBAAA,GAAmB,SAAA,CAAU,IAAA,CAAK,IAAA,EAAM,KAAK,CAAA;AACjD,QAAA,gBAAA,CAAiB,UAAA,GAAa,SAAA,CAAU,IAAA,CAAK,IAAA,EAAM,IAAI,CAAA;AAEvD,QAAA,OAAO,gBAAA;AAAA,MACT;AAEA,MAAA,SAAS,2BAA2B,YAAA,EAAc;AAChD,QAAA,SAAS,SAAS,KAAA,EAAO,QAAA,EAAU,aAAA,EAAe,QAAA,EAAU,cAAc,MAAA,EAAQ;AAChF,UAAA,IAAI,SAAA,GAAY,MAAM,QAAQ,CAAA;AAC9B,UAAA,IAAI,QAAA,GAAW,YAAY,SAAS,CAAA;AACpC,UAAA,IAAI,aAAa,YAAA,EAAc;AAI7B,YAAA,IAAI,WAAA,GAAc,eAAe,SAAS,CAAA;AAE1C,YAAA,OAAO,IAAI,aAAA;AAAA,cACT,UAAA,GAAa,QAAA,GAAW,IAAA,GAAO,YAAA,GAAe,YAAA,IAAgB,GAAA,GAAM,WAAA,GAAc,iBAAA,GAAoB,aAAA,GAAgB,cAAA,CAAA,IAAmB,GAAA,GAAM,YAAA,GAAe,IAAA,CAAA;AAAA,cAC9J,EAAC,YAAA;AAA0B,aAC7B;AAAA,UACF;AACA,UAAA,OAAO,IAAA;AAAA,QACT;AACA,QAAA,OAAO,2BAA2B,QAAQ,CAAA;AAAA,MAC5C;AAEA,MAAA,SAAS,oBAAA,GAAuB;AAC9B,QAAA,OAAO,2BAA2B,4BAA4B,CAAA;AAAA,MAChE;AAEA,MAAA,SAAS,yBAAyB,WAAA,EAAa;AAC7C,QAAA,SAAS,QAAA,CAAS,KAAA,EAAO,QAAA,EAAU,aAAA,EAAe,UAAU,YAAA,EAAc;AACxE,UAAA,IAAI,OAAO,gBAAgB,UAAA,EAAY;AACrC,YAAA,OAAO,IAAI,aAAA,CAAc,YAAA,GAAe,YAAA,GAAe,kBAAA,GAAqB,gBAAgB,iDAAiD,CAAA;AAAA,UAC/I;AACA,UAAA,IAAI,SAAA,GAAY,MAAM,QAAQ,CAAA;AAC9B,UAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,SAAS,CAAA,EAAG;AAC7B,YAAA,IAAI,QAAA,GAAW,YAAY,SAAS,CAAA;AACpC,YAAA,OAAO,IAAI,aAAA,CAAc,UAAA,GAAa,QAAA,GAAW,IAAA,GAAO,YAAA,GAAe,YAAA,IAAgB,GAAA,GAAM,QAAA,GAAW,iBAAA,GAAoB,aAAA,GAAgB,uBAAA,CAAwB,CAAA;AAAA,UACtK;AACA,UAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,SAAA,CAAU,QAAQ,CAAA,EAAA,EAAK;AACzC,YAAA,IAAI,KAAA,GAAQ,WAAA,CAAY,SAAA,EAAW,CAAA,EAAG,aAAA,EAAe,UAAU,YAAA,GAAe,GAAA,GAAM,CAAA,GAAI,GAAA,EAAK,oBAAoB,CAAA;AACjH,YAAA,IAAI,iBAAiB,KAAA,EAAO;AAC1B,cAAA,OAAO,KAAA;AAAA,YACT;AAAA,UACF;AACA,UAAA,OAAO,IAAA;AAAA,QACT;AACA,QAAA,OAAO,2BAA2B,QAAQ,CAAA;AAAA,MAC5C;AAEA,MAAA,SAAS,wBAAA,GAA2B;AAClC,QAAA,SAAS,QAAA,CAAS,KAAA,EAAO,QAAA,EAAU,aAAA,EAAe,UAAU,YAAA,EAAc;AACxE,UAAA,IAAI,SAAA,GAAY,MAAM,QAAQ,CAAA;AAC9B,UAAA,IAAI,CAAC,cAAA,CAAe,SAAS,CAAA,EAAG;AAC9B,YAAA,IAAI,QAAA,GAAW,YAAY,SAAS,CAAA;AACpC,YAAA,OAAO,IAAI,aAAA,CAAc,UAAA,GAAa,QAAA,GAAW,IAAA,GAAO,YAAA,GAAe,YAAA,IAAgB,GAAA,GAAM,QAAA,GAAW,iBAAA,GAAoB,aAAA,GAAgB,oCAAA,CAAqC,CAAA;AAAA,UACnL;AACA,UAAA,OAAO,IAAA;AAAA,QACT;AACA,QAAA,OAAO,2BAA2B,QAAQ,CAAA;AAAA,MAC5C;AAEA,MAAA,SAAS,4BAAA,GAA+B;AACtC,QAAA,SAAS,QAAA,CAAS,KAAA,EAAO,QAAA,EAAU,aAAA,EAAe,UAAU,YAAA,EAAc;AACxE,UAAA,IAAI,SAAA,GAAY,MAAM,QAAQ,CAAA;AAC9B,UAAA,IAAI,CAAC,OAAA,CAAQ,kBAAA,CAAmB,SAAS,CAAA,EAAG;AAC1C,YAAA,IAAI,QAAA,GAAW,YAAY,SAAS,CAAA;AACpC,YAAA,OAAO,IAAI,aAAA,CAAc,UAAA,GAAa,QAAA,GAAW,IAAA,GAAO,YAAA,GAAe,YAAA,IAAgB,GAAA,GAAM,QAAA,GAAW,iBAAA,GAAoB,aAAA,GAAgB,yCAAA,CAA0C,CAAA;AAAA,UACxL;AACA,UAAA,OAAO,IAAA;AAAA,QACT;AACA,QAAA,OAAO,2BAA2B,QAAQ,CAAA;AAAA,MAC5C;AAEA,MAAA,SAAS,0BAA0B,aAAA,EAAe;AAChD,QAAA,SAAS,QAAA,CAAS,KAAA,EAAO,QAAA,EAAU,aAAA,EAAe,UAAU,YAAA,EAAc;AACxE,UAAA,IAAI,EAAE,KAAA,CAAM,QAAQ,CAAA,YAAa,aAAA,CAAA,EAAgB;AAC/C,YAAA,IAAI,iBAAA,GAAoB,cAAc,IAAA,IAAQ,SAAA;AAC9C,YAAA,IAAI,eAAA,GAAkB,YAAA,CAAa,KAAA,CAAM,QAAQ,CAAC,CAAA;AAClD,YAAA,OAAO,IAAI,aAAA,CAAc,UAAA,GAAa,QAAA,GAAW,OAAO,YAAA,GAAe,YAAA,IAAgB,GAAA,GAAM,eAAA,GAAkB,iBAAA,GAAoB,aAAA,GAAgB,cAAA,CAAA,IAAmB,eAAA,GAAkB,oBAAoB,IAAA,CAAK,CAAA;AAAA,UACnN;AACA,UAAA,OAAO,IAAA;AAAA,QACT;AACA,QAAA,OAAO,2BAA2B,QAAQ,CAAA;AAAA,MAC5C;AAEA,MAAA,SAAS,sBAAsB,cAAA,EAAgB;AAC7C,QAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,cAAc,CAAA,EAAG;AAClC,UAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,YAAA,EAAc;AACzC,YAAA,IAAI,SAAA,CAAU,SAAS,CAAA,EAAG;AACxB,cAAA,YAAA;AAAA,gBACE,8DAAA,GAAiE,UAAU,MAAA,GAAS;AAAA,eAEtF;AAAA,YACF,CAAA,MAAO;AACL,cAAA,YAAA,CAAa,wDAAwD,CAAA;AAAA,YACvE;AAAA,UACF;AACA,UAAA,OAAO,4BAAA;AAAA,QACT;AAEA,QAAA,SAAS,QAAA,CAAS,KAAA,EAAO,QAAA,EAAU,aAAA,EAAe,UAAU,YAAA,EAAc;AACxE,UAAA,IAAI,SAAA,GAAY,MAAM,QAAQ,CAAA;AAC9B,UAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,cAAA,CAAe,QAAQ,CAAA,EAAA,EAAK;AAC9C,YAAA,IAAI,EAAA,CAAG,SAAA,EAAW,cAAA,CAAe,CAAC,CAAC,CAAA,EAAG;AACpC,cAAA,OAAO,IAAA;AAAA,YACT;AAAA,UACF;AAEA,UAAA,IAAI,eAAe,IAAA,CAAK,SAAA,CAAU,gBAAgB,SAAS,QAAA,CAAS,KAAK,KAAA,EAAO;AAC9E,YAAA,IAAI,IAAA,GAAO,eAAe,KAAK,CAAA;AAC/B,YAAA,IAAI,SAAS,QAAA,EAAU;AACrB,cAAA,OAAO,OAAO,KAAK,CAAA;AAAA,YACrB;AACA,YAAA,OAAO,KAAA;AAAA,UACT,CAAC,CAAA;AACD,UAAA,OAAO,IAAI,aAAA,CAAc,UAAA,GAAa,QAAA,GAAW,OAAO,YAAA,GAAe,cAAA,GAAiB,MAAA,CAAO,SAAS,IAAI,IAAA,IAAQ,eAAA,GAAkB,aAAA,GAAgB,qBAAA,GAAwB,eAAe,GAAA,CAAI,CAAA;AAAA,QACnM;AACA,QAAA,OAAO,2BAA2B,QAAQ,CAAA;AAAA,MAC5C;AAEA,MAAA,SAAS,0BAA0B,WAAA,EAAa;AAC9C,QAAA,SAAS,QAAA,CAAS,KAAA,EAAO,QAAA,EAAU,aAAA,EAAe,UAAU,YAAA,EAAc;AACxE,UAAA,IAAI,OAAO,gBAAgB,UAAA,EAAY;AACrC,YAAA,OAAO,IAAI,aAAA,CAAc,YAAA,GAAe,YAAA,GAAe,kBAAA,GAAqB,gBAAgB,kDAAkD,CAAA;AAAA,UAChJ;AACA,UAAA,IAAI,SAAA,GAAY,MAAM,QAAQ,CAAA;AAC9B,UAAA,IAAI,QAAA,GAAW,YAAY,SAAS,CAAA;AACpC,UAAA,IAAI,aAAa,QAAA,EAAU;AACzB,YAAA,OAAO,IAAI,aAAA,CAAc,UAAA,GAAa,QAAA,GAAW,IAAA,GAAO,YAAA,GAAe,YAAA,IAAgB,GAAA,GAAM,QAAA,GAAW,iBAAA,GAAoB,aAAA,GAAgB,wBAAA,CAAyB,CAAA;AAAA,UACvK;AACA,UAAA,KAAA,IAAS,OAAO,SAAA,EAAW;AACzB,YAAA,IAAI,GAAA,CAAI,SAAA,EAAW,GAAG,CAAA,EAAG;AACvB,cAAA,IAAI,KAAA,GAAQ,YAAY,SAAA,EAAW,GAAA,EAAK,eAAe,QAAA,EAAU,YAAA,GAAe,GAAA,GAAM,GAAA,EAAK,oBAAoB,CAAA;AAC/G,cAAA,IAAI,iBAAiB,KAAA,EAAO;AAC1B,gBAAA,OAAO,KAAA;AAAA,cACT;AAAA,YACF;AAAA,UACF;AACA,UAAA,OAAO,IAAA;AAAA,QACT;AACA,QAAA,OAAO,2BAA2B,QAAQ,CAAA;AAAA,MAC5C;AAEA,MAAA,SAAS,uBAAuB,mBAAA,EAAqB;AACnD,QAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,mBAAmB,CAAA,EAAG;AACvC,UAAA,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,YAAA,GAAe,YAAA,CAAa,wEAAwE,CAAA,GAAI,MAAA;AACjI,UAAA,OAAO,4BAAA;AAAA,QACT;AAEA,QAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,mBAAA,CAAoB,QAAQ,CAAA,EAAA,EAAK;AACnD,UAAA,IAAI,OAAA,GAAU,oBAAoB,CAAC,CAAA;AACnC,UAAA,IAAI,OAAO,YAAY,UAAA,EAAY;AACjC,YAAA,YAAA;AAAA,cACE,6FAAA,GACc,wBAAA,CAAyB,OAAO,CAAA,GAAI,eAAe,CAAA,GAAI;AAAA,aACvE;AACA,YAAA,OAAO,4BAAA;AAAA,UACT;AAAA,QACF;AAEA,QAAA,SAAS,QAAA,CAAS,KAAA,EAAO,QAAA,EAAU,aAAA,EAAe,UAAU,YAAA,EAAc;AACxE,UAAA,IAAI,gBAAgB,EAAC;AACrB,UAAA,KAAA,IAASE,EAAAA,GAAI,CAAA,EAAGA,EAAAA,GAAI,mBAAA,CAAoB,QAAQA,EAAAA,EAAAA,EAAK;AACnD,YAAA,IAAIC,QAAAA,GAAU,oBAAoBD,EAAC,CAAA;AACnC,YAAA,IAAI,gBAAgBC,QAAAA,CAAQ,KAAA,EAAO,UAAU,aAAA,EAAe,QAAA,EAAU,cAAc,oBAAoB,CAAA;AACxG,YAAA,IAAI,iBAAiB,IAAA,EAAM;AACzB,cAAA,OAAO,IAAA;AAAA,YACT;AACA,YAAA,IAAI,cAAc,IAAA,IAAQ,GAAA,CAAI,aAAA,CAAc,IAAA,EAAM,cAAc,CAAA,EAAG;AACjE,cAAA,aAAA,CAAc,IAAA,CAAK,aAAA,CAAc,IAAA,CAAK,YAAY,CAAA;AAAA,YACpD;AAAA,UACF;AACA,UAAA,IAAI,oBAAA,GAAwB,cAAc,MAAA,GAAS,CAAA,GAAK,6BAA6B,aAAA,CAAc,IAAA,CAAK,IAAI,CAAA,GAAI,GAAA,GAAK,EAAA;AACrH,UAAA,OAAO,IAAI,aAAA,CAAc,UAAA,GAAa,QAAA,GAAW,IAAA,GAAO,YAAA,GAAe,gBAAA,IAAoB,GAAA,GAAM,aAAA,GAAgB,GAAA,GAAM,oBAAA,GAAuB,GAAA,CAAI,CAAA;AAAA,QACpJ;AACA,QAAA,OAAO,2BAA2B,QAAQ,CAAA;AAAA,MAC5C;AAEA,MAAA,SAAS,iBAAA,GAAoB;AAC3B,QAAA,SAAS,QAAA,CAAS,KAAA,EAAO,QAAA,EAAU,aAAA,EAAe,UAAU,YAAA,EAAc;AACxE,UAAA,IAAI,CAAC,MAAA,CAAO,KAAA,CAAM,QAAQ,CAAC,CAAA,EAAG;AAC5B,YAAA,OAAO,IAAI,cAAc,UAAA,GAAa,QAAA,GAAW,OAAO,YAAA,GAAe,gBAAA,IAAoB,GAAA,GAAM,aAAA,GAAgB,0BAAA,CAA2B,CAAA;AAAA,UAC9I;AACA,UAAA,OAAO,IAAA;AAAA,QACT;AACA,QAAA,OAAO,2BAA2B,QAAQ,CAAA;AAAA,MAC5C;AAEA,MAAA,SAAS,qBAAA,CAAsB,aAAA,EAAe,QAAA,EAAU,YAAA,EAAc,KAAK,IAAA,EAAM;AAC/E,QAAA,OAAO,IAAI,aAAA;AAAA,UAAA,CACR,aAAA,IAAiB,iBAAiB,IAAA,GAAO,QAAA,GAAW,YAAY,YAAA,GAAe,GAAA,GAAM,GAAA,GAAM,4FAAA,GACX,IAAA,GAAO;AAAA,SAC1F;AAAA,MACF;AAEA,MAAA,SAAS,uBAAuB,UAAA,EAAY;AAC1C,QAAA,SAAS,QAAA,CAAS,KAAA,EAAO,QAAA,EAAU,aAAA,EAAe,UAAU,YAAA,EAAc;AACxE,UAAA,IAAI,SAAA,GAAY,MAAM,QAAQ,CAAA;AAC9B,UAAA,IAAI,QAAA,GAAW,YAAY,SAAS,CAAA;AACpC,UAAA,IAAI,aAAa,QAAA,EAAU;AACzB,YAAA,OAAO,IAAI,aAAA,CAAc,UAAA,GAAa,QAAA,GAAW,IAAA,GAAO,YAAA,GAAe,aAAA,GAAgB,QAAA,GAAW,IAAA,IAAQ,eAAA,GAAkB,aAAA,GAAgB,uBAAA,CAAwB,CAAA;AAAA,UACtK;AACA,UAAA,KAAA,IAAS,OAAO,UAAA,EAAY;AAC1B,YAAA,IAAI,OAAA,GAAU,WAAW,GAAG,CAAA;AAC5B,YAAA,IAAI,OAAO,YAAY,UAAA,EAAY;AACjC,cAAA,OAAO,sBAAsB,aAAA,EAAe,QAAA,EAAU,cAAc,GAAA,EAAK,cAAA,CAAe,OAAO,CAAC,CAAA;AAAA,YAClG;AACA,YAAA,IAAI,KAAA,GAAQ,QAAQ,SAAA,EAAW,GAAA,EAAK,eAAe,QAAA,EAAU,YAAA,GAAe,GAAA,GAAM,GAAA,EAAK,oBAAoB,CAAA;AAC3G,YAAA,IAAI,KAAA,EAAO;AACT,cAAA,OAAO,KAAA;AAAA,YACT;AAAA,UACF;AACA,UAAA,OAAO,IAAA;AAAA,QACT;AACA,QAAA,OAAO,2BAA2B,QAAQ,CAAA;AAAA,MAC5C;AAEA,MAAA,SAAS,6BAA6B,UAAA,EAAY;AAChD,QAAA,SAAS,QAAA,CAAS,KAAA,EAAO,QAAA,EAAU,aAAA,EAAe,UAAU,YAAA,EAAc;AACxE,UAAA,IAAI,SAAA,GAAY,MAAM,QAAQ,CAAA;AAC9B,UAAA,IAAI,QAAA,GAAW,YAAY,SAAS,CAAA;AACpC,UAAA,IAAI,aAAa,QAAA,EAAU;AACzB,YAAA,OAAO,IAAI,aAAA,CAAc,UAAA,GAAa,QAAA,GAAW,IAAA,GAAO,YAAA,GAAe,aAAA,GAAgB,QAAA,GAAW,IAAA,IAAQ,eAAA,GAAkB,aAAA,GAAgB,uBAAA,CAAwB,CAAA;AAAA,UACtK;AAEA,UAAA,IAAI,UAAU,MAAA,CAAO,IAAI,KAAA,CAAM,QAAQ,GAAG,UAAU,CAAA;AACpD,UAAA,KAAA,IAAS,OAAO,OAAA,EAAS;AACvB,YAAA,IAAI,OAAA,GAAU,WAAW,GAAG,CAAA;AAC5B,YAAA,IAAI,IAAI,UAAA,EAAY,GAAG,CAAA,IAAK,OAAO,YAAY,UAAA,EAAY;AACzD,cAAA,OAAO,sBAAsB,aAAA,EAAe,QAAA,EAAU,cAAc,GAAA,EAAK,cAAA,CAAe,OAAO,CAAC,CAAA;AAAA,YAClG;AACA,YAAA,IAAI,CAAC,OAAA,EAAS;AACZ,cAAA,OAAO,IAAI,aAAA;AAAA,gBACT,UAAA,GAAa,QAAA,GAAW,IAAA,GAAO,YAAA,GAAe,SAAA,GAAY,MAAM,iBAAA,GAAoB,aAAA,GAAgB,kBAAA,GACjF,IAAA,CAAK,SAAA,CAAU,KAAA,CAAM,QAAQ,CAAA,EAAG,IAAA,EAAM,IAAI,CAAA,GAC7D,gBAAA,GAAmB,IAAA,CAAK,SAAA,CAAU,MAAA,CAAO,IAAA,CAAK,UAAU,CAAA,EAAG,IAAA,EAAM,IAAI;AAAA,eACvE;AAAA,YACF;AACA,YAAA,IAAI,KAAA,GAAQ,QAAQ,SAAA,EAAW,GAAA,EAAK,eAAe,QAAA,EAAU,YAAA,GAAe,GAAA,GAAM,GAAA,EAAK,oBAAoB,CAAA;AAC3G,YAAA,IAAI,KAAA,EAAO;AACT,cAAA,OAAO,KAAA;AAAA,YACT;AAAA,UACF;AACA,UAAA,OAAO,IAAA;AAAA,QACT;AAEA,QAAA,OAAO,2BAA2B,QAAQ,CAAA;AAAA,MAC5C;AAEA,MAAA,SAAS,OAAO,SAAA,EAAW;AACzB,QAAA,QAAQ,OAAO,SAAA;AAAW,UACxB,KAAK,QAAA;AAAA,UACL,KAAK,QAAA;AAAA,UACL,KAAK,WAAA;AACH,YAAA,OAAO,IAAA;AAAA,UACT,KAAK,SAAA;AACH,YAAA,OAAO,CAAC,SAAA;AAAA,UACV,KAAK,QAAA;AACH,YAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,SAAS,CAAA,EAAG;AAC5B,cAAA,OAAO,SAAA,CAAU,MAAM,MAAM,CAAA;AAAA,YAC/B;AACA,YAAA,IAAI,SAAA,KAAc,IAAA,IAAQ,cAAA,CAAe,SAAS,CAAA,EAAG;AACnD,cAAA,OAAO,IAAA;AAAA,YACT;AAEA,YAAA,IAAI,UAAA,GAAa,cAAc,SAAS,CAAA;AACxC,YAAA,IAAI,UAAA,EAAY;AACd,cAAA,IAAI,QAAA,GAAW,UAAA,CAAW,IAAA,CAAK,SAAS,CAAA;AACxC,cAAA,IAAI,IAAA;AACJ,cAAA,IAAI,UAAA,KAAe,UAAU,OAAA,EAAS;AACpC,gBAAA,OAAO,CAAA,CAAE,IAAA,GAAO,QAAA,CAAS,IAAA,IAAQ,IAAA,EAAM;AACrC,kBAAA,IAAI,CAAC,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA,EAAG;AACvB,oBAAA,OAAO,KAAA;AAAA,kBACT;AAAA,gBACF;AAAA,cACF,CAAA,MAAO;AAEL,gBAAA,OAAO,CAAA,CAAE,IAAA,GAAO,QAAA,CAAS,IAAA,IAAQ,IAAA,EAAM;AACrC,kBAAA,IAAI,QAAQ,IAAA,CAAK,KAAA;AACjB,kBAAA,IAAI,KAAA,EAAO;AACT,oBAAA,IAAI,CAAC,MAAA,CAAO,KAAA,CAAM,CAAC,CAAC,CAAA,EAAG;AACrB,sBAAA,OAAO,KAAA;AAAA,oBACT;AAAA,kBACF;AAAA,gBACF;AAAA,cACF;AAAA,YACF,CAAA,MAAO;AACL,cAAA,OAAO,KAAA;AAAA,YACT;AAEA,YAAA,OAAO,IAAA;AAAA,UACT;AACE,YAAA,OAAO,KAAA;AAAA;AACX,MACF;AAEA,MAAA,SAAS,QAAA,CAAS,UAAU,SAAA,EAAW;AAErC,QAAA,IAAI,aAAa,QAAA,EAAU;AACzB,UAAA,OAAO,IAAA;AAAA,QACT;AAGA,QAAA,IAAI,CAAC,SAAA,EAAW;AACd,UAAA,OAAO,KAAA;AAAA,QACT;AAGA,QAAA,IAAI,SAAA,CAAU,eAAe,CAAA,KAAM,QAAA,EAAU;AAC3C,UAAA,OAAO,IAAA;AAAA,QACT;AAGA,QAAA,IAAI,OAAO,MAAA,KAAW,UAAA,IAAc,SAAA,YAAqB,MAAA,EAAQ;AAC/D,UAAA,OAAO,IAAA;AAAA,QACT;AAEA,QAAA,OAAO,KAAA;AAAA,MACT;AAGA,MAAA,SAAS,YAAY,SAAA,EAAW;AAC9B,QAAA,IAAI,WAAW,OAAO,SAAA;AACtB,QAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,SAAS,CAAA,EAAG;AAC5B,UAAA,OAAO,OAAA;AAAA,QACT;AACA,QAAA,IAAI,qBAAqB,MAAA,EAAQ;AAI/B,UAAA,OAAO,QAAA;AAAA,QACT;AACA,QAAA,IAAI,QAAA,CAAS,QAAA,EAAU,SAAS,CAAA,EAAG;AACjC,UAAA,OAAO,QAAA;AAAA,QACT;AACA,QAAA,OAAO,QAAA;AAAA,MACT;AAIA,MAAA,SAAS,eAAe,SAAA,EAAW;AACjC,QAAA,IAAI,OAAO,SAAA,KAAc,WAAA,IAAe,SAAA,KAAc,IAAA,EAAM;AAC1D,UAAA,OAAO,EAAA,GAAK,SAAA;AAAA,QACd;AACA,QAAA,IAAI,QAAA,GAAW,YAAY,SAAS,CAAA;AACpC,QAAA,IAAI,aAAa,QAAA,EAAU;AACzB,UAAA,IAAI,qBAAqB,IAAA,EAAM;AAC7B,YAAA,OAAO,MAAA;AAAA,UACT,CAAA,MAAA,IAAW,qBAAqB,MAAA,EAAQ;AACtC,YAAA,OAAO,QAAA;AAAA,UACT;AAAA,QACF;AACA,QAAA,OAAO,QAAA;AAAA,MACT;AAIA,MAAA,SAAS,yBAAyB,KAAA,EAAO;AACvC,QAAA,IAAI,IAAA,GAAO,eAAe,KAAK,CAAA;AAC/B,QAAA,QAAQ,IAAA;AAAM,UACZ,KAAK,OAAA;AAAA,UACL,KAAK,QAAA;AACH,YAAA,OAAO,KAAA,GAAQ,IAAA;AAAA,UACjB,KAAK,SAAA;AAAA,UACL,KAAK,MAAA;AAAA,UACL,KAAK,QAAA;AACH,YAAA,OAAO,IAAA,GAAO,IAAA;AAAA,UAChB;AACE,YAAA,OAAO,IAAA;AAAA;AACX,MACF;AAGA,MAAA,SAAS,aAAa,SAAA,EAAW;AAC/B,QAAA,IAAI,CAAC,SAAA,CAAU,WAAA,IAAe,CAAC,SAAA,CAAU,YAAY,IAAA,EAAM;AACzD,UAAA,OAAO,SAAA;AAAA,QACT;AACA,QAAA,OAAO,UAAU,WAAA,CAAY,IAAA;AAAA,MAC/B;AAEA,MAAA,cAAA,CAAe,cAAA,GAAiB,cAAA;AAChC,MAAA,cAAA,CAAe,oBAAoB,cAAA,CAAe,iBAAA;AAClD,MAAA,cAAA,CAAe,SAAA,GAAY,cAAA;AAE3B,MAAA,OAAO,cAAA;AAAA,IACT,CAAA;AAAA,EAAA;AAAA,CAAA,CAAA;;;ACjmBA,IAAA,gCAAA,GAAA,UAAA,CAAA;AAAA,EAAA,qDAAA,CAAAH,SAAA,EAAA,MAAA,EAAA;AASA,IAAA,IAAI,oBAAA,GAAuB,4BAAA,EAAA;AAE3B,IAAA,SAAS,aAAA,GAAgB;AAAA,IAAC;AAC1B,IAAA,SAAS,sBAAA,GAAyB;AAAA,IAAC;AACnC,IAAA,sBAAA,CAAuB,iBAAA,GAAoB,aAAA;AAE3C,IAAA,MAAA,CAAO,UAAU,WAAW;AAC1B,MAAA,SAAS,KAAK,KAAA,EAAO,QAAA,EAAU,aAAA,EAAe,QAAA,EAAU,cAAc,MAAA,EAAQ;AAC5E,QAAA,IAAI,WAAW,oBAAA,EAAsB;AAEnC,UAAA;AAAA,QACF;AACA,QAAA,IAAI,MAAM,IAAI,KAAA;AAAA,UACZ;AAAA,SAGF;AACA,QAAA,GAAA,CAAI,IAAA,GAAO,qBAAA;AACX,QAAA,MAAM,GAAA;AAAA,MACR;AACA,MAAA,IAAA,CAAK,UAAA,GAAa,IAAA;AAClB,MAAA,SAAS,OAAA,GAAU;AACjB,QAAA,OAAO,IAAA;AAAA,MACT;AAGA,MAAA,IAAI,cAAA,GAAiB;AAAA,QACnB,KAAA,EAAO,IAAA;AAAA,QACP,MAAA,EAAQ,IAAA;AAAA,QACR,IAAA,EAAM,IAAA;AAAA,QACN,IAAA,EAAM,IAAA;AAAA,QACN,MAAA,EAAQ,IAAA;AAAA,QACR,MAAA,EAAQ,IAAA;AAAA,QACR,MAAA,EAAQ,IAAA;AAAA,QACR,MAAA,EAAQ,IAAA;AAAA,QAER,GAAA,EAAK,IAAA;AAAA,QACL,OAAA,EAAS,OAAA;AAAA,QACT,OAAA,EAAS,IAAA;AAAA,QACT,WAAA,EAAa,IAAA;AAAA,QACb,UAAA,EAAY,OAAA;AAAA,QACZ,IAAA,EAAM,IAAA;AAAA,QACN,QAAA,EAAU,OAAA;AAAA,QACV,KAAA,EAAO,OAAA;AAAA,QACP,SAAA,EAAW,OAAA;AAAA,QACX,KAAA,EAAO,OAAA;AAAA,QACP,KAAA,EAAO,OAAA;AAAA,QAEP,cAAA,EAAgB,sBAAA;AAAA,QAChB,iBAAA,EAAmB;AAAA,OACrB;AAEA,MAAA,cAAA,CAAe,SAAA,GAAY,cAAA;AAE3B,MAAA,OAAO,cAAA;AAAA,IACT,CAAA;AAAA,EAAA;AAAA,CAAA,CAAA;;;AChEA,IAAA,kBAAA,GAAA,UAAA,CAAA;AAAA,EAAA,kCAAA,CAAAA,SAAA,EAAA,MAAA,EAAA;AAOA,IAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,YAAA,EAAc;AACrC,MAAA,OAAA,GAAU,gBAAA,EAAA;AAIV,MAAA,mBAAA,GAAsB,IAAA;AAC1B,MAAA,MAAA,CAAO,OAAA,GAAU,+BAAA,EAAA,CAAqC,OAAA,CAAQ,SAAA,EAAW,mBAAmB,CAAA;AAAA,IAC9F,CAAA,MAAO;AAGL,MAAA,MAAA,CAAO,UAAU,gCAAA,EAAA,EAAsC;AAAA,IACzD;AAVM,IAAA,IAAA,OAAA;AAIA,IAAA,IAAA,mBAAA;AAAA,EAAA;AAAA,CAAA,CAAA;;;ACZN,IAAA,gCAAA,GAAA,UAAA,CAAA;AAAA,EAAA,6DAAA,CAAAA,SAAA,EAAA;AAEA,IAAA,SAAS,yBAAyB,WAAA,EAAa;AAC3C,MAAA,IAAI,OAAO,OAAA,KAAY,UAAA,EAAY,OAAO,IAAA;AAE1C,MAAA,IAAI,iBAAA,uBAAwB,OAAA,EAAQ;AACpC,MAAA,IAAI,gBAAA,uBAAuB,OAAA,EAAQ;AAEnC,MAAA,OAAA,CAAQ,wBAAA,GAA2B,SAASI,YAAAA,EAAa;AACrD,QAAA,OAAOA,eAAc,gBAAA,GAAmB,iBAAA;AAAA,MAC5C,GAAG,WAAW,CAAA;AAAA,IAClB;AACA,IAAA,SAAS,yBAAA,CAA0B,KAAK,WAAA,EAAa;AACjD,MAAA,IAAI,CAAC,WAAA,IAAe,GAAA,IAAO,GAAA,CAAI,YAAY,OAAO,GAAA;AAClD,MAAA,IAAI,GAAA,KAAQ,IAAA,IAAQ,OAAO,GAAA,KAAQ,QAAA,IAAY,OAAO,GAAA,KAAQ,UAAA,EAAY,OAAO,EAAE,OAAA,EAAS,GAAA,EAAI;AAEhG,MAAA,IAAI,KAAA,GAAQ,yBAAyB,WAAW,CAAA;AAEhD,MAAA,IAAI,KAAA,IAAS,MAAM,GAAA,CAAI,GAAG,GAAG,OAAO,KAAA,CAAM,IAAI,GAAG,CAAA;AAEjD,MAAA,IAAI,MAAA,GAAS,EAAE,SAAA,EAAW,IAAA,EAAK;AAC/B,MAAA,IAAI,qBAAA,GAAwB,MAAA,CAAO,cAAA,IAAkB,MAAA,CAAO,wBAAA;AAE5D,MAAA,KAAA,IAAS,OAAO,GAAA,EAAK;AACjB,QAAA,IAAI,GAAA,KAAQ,aAAa,MAAA,CAAO,SAAA,CAAU,eAAe,IAAA,CAAK,GAAA,EAAK,GAAG,CAAA,EAAG;AACrE,UAAA,IAAI,OAAO,qBAAA,GAAwB,MAAA,CAAO,wBAAA,CAAyB,GAAA,EAAK,GAAG,CAAA,GAAI,IAAA;AAC/E,UAAA,IAAI,IAAA,KAAS,KAAK,GAAA,IAAO,IAAA,CAAK,MAAM,MAAA,CAAO,cAAA,CAAe,MAAA,EAAQ,GAAA,EAAK,IAAI,CAAA;AAAA,eACtE,MAAA,CAAO,GAAG,CAAA,GAAI,GAAA,CAAI,GAAG,CAAA;AAAA,QAC9B;AAAA,MACJ;AAEA,MAAA,MAAA,CAAO,OAAA,GAAU,GAAA;AAEjB,MAAA,IAAI,KAAA,EAAO,KAAA,CAAM,GAAA,CAAI,GAAA,EAAK,MAAM,CAAA;AAEhC,MAAA,OAAO,MAAA;AAAA,IACX;AACA,IAAAJ,SAAA,CAAQ,CAAA,GAAI,yBAAA;AAAA,EAAA;AAAA,CAAA,CAAA;;;ACrCZ,IAAA,+BAAA,GAAA,UAAA,CAAA;AAAA,EAAA,4DAAA,CAAAA,SAAA,EAAA;AAEA,IAAA,SAAS,yBAAyB,GAAA,EAAK;AACnC,MAAA,OAAO,OAAO,GAAA,CAAI,UAAA,GAAa,GAAA,GAAM,EAAE,SAAS,GAAA,EAAI;AAAA,IACxD;AACA,IAAAA,SAAA,CAAQ,CAAA,GAAI,wBAAA;AAAA,EAAA;AAAA,CAAA,CAAA;;;ACLZ,IAAA,yCAAA,GAAA,UAAA,CAAA;;;;;;;;;;;;;AAyDaK,MAAAA,gBAAAA,EAAgB,WAAA;AAAhBA,QAAAA,OAAAA,gBAAAA;;AAaAC,MAAAA,yBAAAA,EAAyB,WAAA;AAAzBA,QAAAA,OAAAA,yBAAAA;;AAVAC,MAAAA,mBAAAA,EAAmB,WAAA;AAAnBA,QAAAA,OAAAA,mBAAAA;;AA0BAC,MAAAA,kBAAAA,EAAkB,WAAA;AAAlBA,QAAAA,OAAAA,kBAAAA;;AATAC,MAAAA,eAAAA,EAAe,WAAA;AAAfA,QAAAA,OAAAA,eAAAA;;;;AAjEK,IAAA,IAAA,MAAA,mBAAA,wBAAA,CAAA,CAAA,CAAA,SAAA,CAAA,OAAA,CAAA,CAAA;AA6CX,IAAA,IAAMJ,gBAAAA,GAAmBK,MAAAA,CAAAA,OAAAA,CAAMC,aAAAA,CACpC,IAAA,CAAA;AAEK,IAAA,IAAMJ,mBAAAA,GAAsBG,MAAAA,CAAAA,OAAAA,CAAMC,aAAAA,CAQ/B,IAAA,CAAA;AAEH,IAAA,IAAML,yBAAAA,GAA4BI,MAAAA,CAAAA,OAAAA,CAAMC,aAAAA,CAK5C,IAAA,CAAA;AAEI,IAAA,IAAMF,eAAAA,GAAkBC,MAAAA,CAAAA,OAAAA,CAAMC,aAAAA,CAA+B,IAAA,CAAA;AAEpE,IAAA,IAAIC,OAAAA,CAAQC,GAAAA,CAAIC,QAAAA,KAAa,YAAA,EAAc;AACzCT,MAAAA,gBAAAA,CAAiBU,WAAAA,GAAc,kBAAA;AAC/BR,MAAAA,mBAAAA,CAAoBQ,WAAAA,GAAc,qBAAA;AAClCT,MAAAA,yBAAAA,CAA0BS,WAAAA,GAAc,2BAAA;AACxCN,MAAAA,eAAAA,CAAgBM,WAAAA,GAAc,iBAAA;AAChC,IAAA;AAEO,IAAA,IAAMP,qBAAqBE,MAAAA,CAAAA,OAAAA,CAAMC,aAAAA,iBAA2B,IAAIK,KAAAA,CAAAA;;;;;ACtFvE,IAAA,kCAAA,GAAA,UAAA,CAAA;;;;;qCAmBaC,yBAAAA,EAAAA;;;AAAAA,QAAAA,OAAAA,uBAAAA;;;AAZb,IAAA,IAAMC,4BAAAA,GAAN,cAA2CC,KAAAA,CAAAA;MACzCC,WAAAA,GAAc;AACZ,QAAA,KAAA,CACE,yJAAA,CAAA;AAEJ,MAAA;AACF,KAAA;AAMO,IAAA,IAAMH,uBAAAA,GAAN,cAAsCI,eAAAA,CAAAA;;MAE3CC,MAAAA,GAAS;AACP,QAAA,MAAM,IAAIJ,4BAAAA,EAAAA;AACZ,MAAA;;MAEAK,MAAAA,GAAS;AACP,QAAA,MAAM,IAAIL,4BAAAA,EAAAA;AACZ,MAAA;;MAEAM,GAAAA,GAAM;AACJ,QAAA,MAAM,IAAIN,4BAAAA,EAAAA;AACZ,MAAA;;MAEAO,IAAAA,GAAO;AACL,QAAA,MAAM,IAAIP,4BAAAA,EAAAA;AACZ,MAAA;AACF,KAAA;;;;;;;;;;ACpCA,IAAA,2CAAA,GAAA,UAAA,CAAA;;;;;;;;;;;;;AA8BaQ,MAAAA,yBAAAA,EAAyB,WAAA;AAAzBA,QAAAA,OAAAA,yBAAAA;;AAtBAC,MAAAA,iBAAAA,EAAiB,WAAA;AAAjBA,QAAAA,OAAAA,iBAAAA;;AADAC,MAAAA,eAAAA,EAAe,WAAA;AAAfA,QAAAA,OAAAA,eAAAA;;AAwCJX,MAAAA,uBAAAA,EAAuB,WAAA;eAAvBA,wBAAAA,CAAAA,uBAAAA;;AAzCIY,MAAAA,mBAAAA,EAAmB,WAAA;AAAnBA,QAAAA,OAAAA,mBAAAA;;AA8BGC,MAAAA,iCAAAA,EAAiC,WAAA;AAAjCA,QAAAA,OAAAA,iCAAAA;;;2BAlCc,OAAA,CAAA;;AAIvB,IAAA,IAAMD,mBAAAA,GAAAA,IAAsBlB,MAAAA,CAAAA,aAAAA,EAAsC,IAAA,CAAA;AAClE,IAAA,IAAMiB,eAAAA,GAAAA,IAAkBjB,MAAAA,CAAAA,aAAAA,EAA6B,IAAA,CAAA;AACrD,IAAA,IAAMgB,iBAAAA,GAAAA,IAAoBhB,MAAAA,CAAAA,aAAAA,EAA6B,IAAA,CAAA;AAsBvD,IAAA,IAAMe,yBAAAA,GAAAA,IACXf,MAAAA,CAAAA,aAAAA,EAAyC,IAAA,CAAA;AAKpC,IAAA,SAASmB,iCAAAA,CACdf,aACAgB,KAAAA,EAAQ;AAER,MAAA,MAAMC,OAAAA,GAAUC,OAAAA,CAAQC,OAAAA,CAAQH,KAAAA,CAAAA;AAChCC,MAAAA,OAAAA,CAAQG,MAAAA,GAAS,WAAA;AACjBH,MAAAA,OAAAA,CAAQD,KAAAA,GAAQA,KAAAA;AAChBC,MAAAA,OAAAA,CAAQjB,WAAAA,GAAc,GAAGA,WAAAA,CAAAA,MAAAA,CAAAA;AACzB,MAAA,OAAOiB,OAAAA;AACT,IAAA;AAIA,IAAA,IAAIpB,OAAAA,CAAQC,GAAAA,CAAIC,QAAAA,KAAa,YAAA,EAAc;AACzCe,MAAAA,mBAAAA,CAAoBd,WAAAA,GAAc,qBAAA;AAClCa,MAAAA,eAAAA,CAAgBb,WAAAA,GAAc,iBAAA;AAC9BY,MAAAA,iBAAAA,CAAkBZ,WAAAA,GAAc,mBAAA;AAChCW,MAAAA,yBAAAA,CAA0BX,WAAAA,GAAc,2BAAA;AAC1C,IAAA;;;;;;;;;;;;;;;;;ACiCaqB,MAAAA,mBAAAA,EAAmB,WAAA;AAAnBA,QAAAA,OAAAA,mBAAAA;;AACAC,MAAAA,qBAAAA,EAAqB,WAAA;AAArBA,QAAAA,OAAAA,qBAAAA;;AAFAC,MAAAA,gBAAAA,EAAgB,WAAA;AAAhBA,QAAAA,OAAAA,gBAAAA;;AAvEGC,MAAAA,4BAAAA,EAA4B,WAAA;AAA5BA,QAAAA,OAAAA,4BAAAA;;AAgBAC,MAAAA,4BAAAA,EAA4B,WAAA;AAA5BA,QAAAA,OAAAA,4BAAAA;;AA7BAC,MAAAA,eAAAA,EAAe,WAAA;AAAfA,QAAAA,OAAAA,eAAAA;;AAiDAC,MAAAA,4BAAAA,EAA4B,WAAA;AAA5BA,QAAAA,OAAAA,4BAAAA;;AA7CAC,MAAAA,cAAAA,EAAc,WAAA;AAAdA,QAAAA,OAAAA,cAAAA;;AAKAC,MAAAA,sBAAAA,EAAsB,WAAA;AAAtBA,QAAAA,OAAAA,sBAAAA;;;AATT,IAAA,SAASH,gBAAgBI,OAAAA,EAAgB;AAC9C,MAAA,OAAOC,MAAMC,OAAAA,CAAQF,OAAAA,CAAAA,GAAWA,OAAAA,CAAQ,CAAA,CAAA,GAAKA,OAAAA;AAC/C,IAAA;AAEO,IAAA,SAASF,eAAeE,OAAAA,EAAe;AAE5C,MAAA,OAAOA,QAAQ,CAAA,CAAA,KAAO,GAAA,IAAOA,OAAAA,CAAQG,SAAS,GAAA,CAAA;AAChD,IAAA;AAEO,IAAA,SAASJ,uBAAuBC,OAAAA,EAAe;AACpD,MAAA,OAAOA,OAAAA,CAAQI,UAAAA,CAAW,GAAA,CAAA,IAAQJ,OAAAA,KAAY,WAAA;AAChD,IAAA;AAEO,IAAA,SAASN,4BAAAA,CACdM,SACAK,YAAAA,EAA2D;AAE3D,MAAA,MAAMC,aAAAA,GAAgBN,OAAAA,CAAQO,QAAAA,CAASd,gBAAAA,CAAAA;AAEvC,MAAA,IAAIa,aAAAA,EAAe;AACjB,QAAA,MAAME,gBAAAA,GAAmBC,IAAAA,CAAKC,SAAAA,CAAUL,YAAAA,CAAAA;AACxC,QAAA,OAAOG,gBAAAA,KAAqB,IAAA,GACxBf,gBAAAA,GAAmB,GAAA,GAAMe,gBAAAA,GACzBf,gBAAAA;AACN,MAAA;AAEA,MAAA,OAAOO,OAAAA;AACT,IAAA;AAEO,IAAA,SAASL,4BAAAA,CACdgB,UACAC,gBAAAA,EAAwB;AAExB,MAAA,IAAI,CAACD,QAAAA,IAAYA,QAAAA,CAASE,MAAAA,KAAW,CAAA,EAAG;AACtC,QAAA,OAAO,IAAA;AACT,MAAA;AAGA,MAAA,MAAMC,UAAAA,GACJF,qBAAqB,UAAA,GACjBD,QAAAA,CAAS,CAAA,CAAA,GACTA,QAAAA,CAASA,QAAAA,CAASE,MAAAA,GAAS,CAAA,CAAA;AAIjC,MAAA,OAAOC,UAAAA,KAAevB,sBAAsB,IAAA,GAAOuB,UAAAA;AACrD,IAAA;AAGO,IAAA,SAASjB,6BACdkB,IAAAA,EACAH,gBAAAA,EACAI,QAAQ,IAAA,EACRC,WAAAA,GAAwB,EAAA,EAAE;AAE1B,MAAA,IAAIC,IAAAA;AACJ,MAAA,IAAIF,KAAAA,EAAO;AAETE,QAAAA,IAAAA,GAAOH,IAAAA,CAAK,CAAA,CAAA,CAAGH,gBAAAA,CAAAA;MACjB,CAAA,MAAO;AAEL,QAAA,MAAMO,cAAAA,GAAiBJ,KAAK,CAAA,CAAA;AAC5BG,QAAAA,IAAAA,GAAOC,eAAeC,QAAAA,IAAYC,MAAAA,CAAOC,MAAAA,CAAOH,cAAAA,EAAgB,CAAA,CAAA;AAClE,MAAA;AAEA,MAAA,IAAI,CAACD,MAAM,OAAOD,WAAAA;AAClB,MAAA,MAAMjB,OAAAA,GAAUkB,KAAK,CAAA,CAAA;AAErB,MAAA,IAAIK,YAAAA,GAAe3B,gBAAgBI,OAAAA,CAAAA;AAEnC,MAAA,IAAI,CAACuB,YAAAA,IAAgBA,YAAAA,CAAanB,UAAAA,CAAWX,gBAAAA,CAAAA,EAAmB;AAC9D,QAAA,OAAOwB,WAAAA;AACT,MAAA;AAEAA,MAAAA,WAAAA,CAAYO,KAAKD,YAAAA,CAAAA;AAEjB,MAAA,OAAO1B,4BAAAA,CACLqB,IAAAA,EACAN,gBAAAA,EACA,KAAA,EACAK,WAAAA,CAAAA;AAEJ,IAAA;AAEO,IAAA,IAAMxB,gBAAAA,GAAmB,UAAA;AACzB,IAAA,IAAMF,mBAAAA,GAAsB,aAAA;AAC5B,IAAA,IAAMC,qBAAAA,GAAwB,aAAA;;;;;ACxFrC,IAAA,2CAAA,GAAA,UAAA,CAAA;;;;;;;;;;;;;AAYaiC,MAAAA,yBAAAA,EAAyB,WAAA;AAAzBA,QAAAA,OAAAA,yBAAAA;;AAGGC,MAAAA,qBAAAA,EAAqB,WAAA;AAArBA,QAAAA,OAAAA,qBAAAA;;;;AAbkB,IAAA,IAAA,MAAA,mBAAA,yBAAA,CAAA,CAAA,CAAA,SAAA,CAAA,OAAA,CAAA,CAAA;AAU3B,IAAA,IAAMD,yBAAAA,mBACX5D,MAAAA,CAAAA,OAAAA,CAAMC,aAAAA,CAA6C,IAAA,CAAA;AAE9C,IAAA,SAAS4D,sBAAsBC,QAAAA,EAA+B;AACnE,MAAA,MAAMC,6BAAAA,GAAAA,IAAgCC,MAAAA,CAAAA,UAAAA,EAAWJ,yBAAAA,CAAAA;AAEjD,MAAA,IAAIG,6BAAAA,EAA+B;AACjCA,QAAAA,6BAAAA,CAA8BD,QAAAA,CAAAA;AAChC,MAAA;AACF,IAAA;;;;;;;;;;;;;;;;;ACrBaG,MAAAA,uBAAAA,EAAuB,WAAA;AAAvBA,QAAAA,OAAAA,uBAAAA;;AAyBGC,MAAAA,kCAAAA,EAAkC,WAAA;AAAlCA,QAAAA,OAAAA,kCAAAA;;;AAzBT,IAAA,IAAMD,uBAAAA,GAAN,cAAsCxD,KAAAA,CAAAA;AAC3CC,MAAAA,WAAAA,CAAAA,GAAeyD,IAAAA,EAA2C;AACxD,QAAA,KAAA,CAAK,GAAIA,IAAAA,CAAAA;AACT,QAAA,IAAA,CAAKC,IAAAA,GAAO,yBAAA;AACd,MAAA;AACF,KAAA;AAoBO,IAAA,SAASF,mCACdG,KAAAA,EAAc;AAEd,MAAA,OAAO,CAAC,EACNA,KAAAA,IACA,OAAOA,KAAAA,KAAU,YACjBA,KAAAA,YAAiBJ,uBAAAA,CAAAA;AAErB,IAAA;;;;;;;;;;;;;;;qCCjCYK,oBAAAA,EAAAA;;;AAAAA,QAAAA,OAAAA,kBAAAA;;;AAAL,IAAA,IAAKA,kBAAAA,6BAAAA,mBAAAA,EAAAA;;;;AAAAA,MAAAA,OAAAA,mBAAAA;;;;;;;;;;;;;;;;;;;;;;;ACECC,MAAAA,mBAAAA,EAAmB,WAAA;AAAnBA,QAAAA,OAAAA,mBAAAA;;AAEDC,MAAAA,YAAAA,EAAY,WAAA;AAAZA,QAAAA,OAAAA,YAAAA;;AAgBIC,MAAAA,eAAAA,EAAe,WAAA;AAAfA,QAAAA,OAAAA,eAAAA;;;;AAlBT,IAAA,IAAMF,mBAAAA,GAAsB,eAAA;AAE5B,IAAA,IAAKC,YAAAA,6BAAAA,aAAAA,EAAAA;;;AAAAA,MAAAA,OAAAA,aAAAA;;AAgBL,IAAA,SAASC,gBAAgBJ,KAAAA,EAAc;AAC5C,MAAA,IACE,OAAOA,KAAAA,KAAU,QAAA,IACjBA,KAAAA,KAAU,IAAA,IACV,EAAE,QAAA,IAAYA,KAAAA,CAAAA,IACd,OAAOA,KAAAA,CAAMK,MAAAA,KAAW,QAAA,EACxB;AACA,QAAA,OAAO,KAAA;AACT,MAAA;AAEA,MAAA,MAAMA,MAAAA,GAASL,KAAAA,CAAMK,MAAAA,CAAOC,KAAAA,CAAM,GAAA,CAAA;AAClC,MAAA,MAAM,CAACC,SAAAA,EAAWC,IAAAA,CAAAA,GAAQH,MAAAA;AAC1B,MAAA,MAAMI,cAAcJ,MAAAA,CAAOK,KAAAA,CAAM,GAAG,EAAC,CAAA,CAAGC,KAAK,GAAA,CAAA;AAC7C,MAAA,MAAMvD,MAAAA,GAASiD,MAAAA,CAAOO,EAAAA,CAAG,EAAC,CAAA;AAE1B,MAAA,MAAMC,UAAAA,GAAaC,OAAO1D,MAAAA,CAAAA;AAE1B,MAAA,OACEmD,SAAAA,KAAcL,mBAAAA,KACbM,IAAAA,KAAS,SAAA,IAAaA,SAAS,MAAA,CAAA,IAChC,OAAOC,WAAAA,KAAgB,QAAA,IACvB,CAACM,KAAAA,CAAMF,UAAAA,CAAAA,IACPA,cAAcZ,mBAAAA,CAAAA,kBAAAA;AAElB,IAAA;;;;;;;;;;;;;;;;;;;;;;ACGgBe,MAAAA,YAAAA,EAAY,WAAA;AAAZA,QAAAA,OAAAA,YAAAA;;AATAC,MAAAA,uBAAAA,EAAuB,WAAA;AAAvBA,QAAAA,OAAAA,uBAAAA;;AAmBAC,MAAAA,cAAAA,EAAc,WAAA;AAAdA,QAAAA,OAAAA,cAAAA;;;AAvDhB,IAAA,IAAMC,2CAA2C,MAAA,CAAA,cAAA,CAAA,IAAI/E,KAAAA,CACnD,4EAAA,GAD+C,mBAAA,EAAA;AAAA,MAAA,KAAA,EAAA,MAAA;AAAA,MAAA,UAAA,EAAA,KAAA;AAAA,MAAA,YAAA,EAAA;KAEjD,CAAA;AAEA,IAAA,IAAMgF,wBAAN,MAAMA;MAGJC,OAAAA,GAAgB;AACd,QAAA,MAAMF,wCAAAA;AACR,MAAA;MAEAG,QAAAA,GAA8B;AAE5B,QAAA,OAAOC,MAAAA;AACT,MAAA;MAEAC,GAAAA,GAAY;AACV,QAAA,MAAML,wCAAAA;AACR,MAAA;MAEAM,IAAAA,GAAa;AACX,QAAA,MAAMN,wCAAAA;AACR,MAAA;MAEAO,SAAAA,GAAkB;AAChB,QAAA,MAAMP,wCAAAA;AACR,MAAA;AAEA,MAAA,OAAOQ,KAAQC,EAAAA,EAAU;AACvB,QAAA,OAAOA,EAAAA;AACT,MAAA;AACF,KAAA;AAEA,IAAA,IAAMC,4BAAAA,GACJ,OAAOC,UAAAA,KAAe,WAAA,IAAgBA,UAAAA,CAAmBC,iBAAAA;AAEpD,IAAA,SAASd,uBAAAA,GAAAA;AAGd,MAAA,IAAIY,4BAAAA,EAA8B;AAChC,QAAA,OAAO,IAAIA,4BAAAA,EAAAA;AACb,MAAA;AACA,MAAA,OAAO,IAAIT,qBAAAA,EAAAA;AACb,IAAA;AAEO,IAAA,SAASJ,aAEdY,EAAAA,EAAK;AAEL,MAAA,IAAIC,4BAAAA,EAA8B;AAChC,QAAA,OAAOA,4BAAAA,CAA6BF,KAAKC,EAAAA,CAAAA;AAC3C,MAAA;AACA,MAAA,OAAOR,qBAAAA,CAAsBO,KAAKC,EAAAA,CAAAA;AACpC,IAAA;AAEO,IAAA,SAASV,cAAAA,GAAAA;AAId,MAAA,IAAIW,4BAAAA,EAA8B;AAChC,QAAA,OAAOA,6BAA6BG,QAAAA,EAAQ;AAC9C,MAAA;AACA,MAAA,OAAO,SAAUJ,OAAY9B,IAAAA,EAAW;AACtC,QAAA,OAAO8B,EAAAA,CAAAA,GAAM9B,IAAAA,CAAAA;AACf,MAAA,CAAA;AACF,IAAA;;;;;;;;;;qCChEamC,4BAAAA,EAAAA;;;AAAAA,QAAAA,OAAAA,0BAAAA;;;;AAAN,IAAA,IAAMA,0BAAAA,GAAAA,IACXhB,kBAAAA,CAAAA,uBAAAA,GAAuB;;;;;;;;;;qCCOciB,oBAAAA,EAAAA;;;eAA9BD,2BAAAA,CAAAA,0BAAAA;;;;;;;;;;;;;;;;;;;;ACIOE,MAAAA,gBAAAA,EAAgB,WAAA;AAAhBA,QAAAA,OAAAA,gBAAAA;;AA6EAC,MAAAA,8BAAAA,EAA8B,WAAA;AAA9BA,QAAAA,OAAAA,8BAAAA;;AARAC,MAAAA,wBAAAA,EAAwB,WAAA;AAAxBA,QAAAA,OAAAA,wBAAAA;;AARAC,MAAAA,uBAAAA,EAAuB,WAAA;AAAvBA,QAAAA,OAAAA,uBAAAA;;AAhBAC,MAAAA,iBAAAA,EAAiB,WAAA;AAAjBA,QAAAA,OAAAA,iBAAAA;;AAvBAC,MAAAA,QAAAA,EAAQ,WAAA;AAARA,QAAAA,OAAAA,QAAAA;;;;;AA7BhB,IAAA,IAAMN,kBAAAA,GACJ,OAAOO,MAAAA,KAAW,WAAA,GAEZC,wCACAR,kBAAAA,GACFX,MAAAA;AAEC,IAAA,SAASY,iBACdQ,GAAAA,EACAnC,IAAAA,EACAK,UAAAA,GAAiCZ,mBAAAA,CAAAA,mBAAmB2C,iBAAAA,EAAiB;AAErE,MAAA,MAAM5C,KAAAA,GAAQ,OAAA,cAAA,CAAA,IAAI5D,MAAM8D,cAAAA,CAAAA,mBAAmB,GAA7B,mBAAA,EAAA;AAAA,QAAA,KAAA,EAAA,MAAA;AAAA,QAAA,UAAA,EAAA,KAAA;AAAA,QAAA,YAAA,EAAA;OAA6B,CAAA;AAC3CF,MAAAA,KAAAA,CAAMK,MAAAA,GAAS,GAAGH,cAAAA,CAAAA,mBAAmB,IAAIM,IAAAA,CAAAA,CAAAA,EAAQmC,GAAAA,CAAAA,CAAAA,EAAO9B,UAAAA,CAAAA,CAAAA,CAAAA;AACxD,MAAA,OAAOb,KAAAA;AACT,IAAA;AAcO,IAAA,SAASwC,QAAAA,CAEdG,KACAnC,IAAAA,EAAmB;AAEnBA,MAAAA,IAAAA,KAAAA,IAAAA,GAAS0B,kBAAAA,EAAoBZ,UAAAA,EAAYuB,QAAAA,GACrC1C,eAAAA,YAAAA,CAAab,IAAAA,GACba,eAAAA,YAAAA,CAAa2C,OAAAA,CAAAA;AAEjB,MAAA,MAAMX,gBAAAA,CAAiBQ,GAAAA,EAAKnC,IAAAA,EAAMP,mBAAAA,CAAAA,mBAAmB2C,iBAAiB,CAAA;AACxE,IAAA;AAaO,IAAA,SAASL,iBAAAA,CAEdI,GAAAA,EACAnC,IAAAA,GAAqBL,cAAAA,CAAAA,aAAa2C,OAAAA,EAAO;AAEzC,MAAA,MAAMX,gBAAAA,CAAiBQ,GAAAA,EAAKnC,IAAAA,EAAMP,mBAAAA,CAAAA,mBAAmB8C,iBAAiB,CAAA;AACxE,IAAA;AAUO,IAAA,SAAST,wBAAwBtC,KAAAA,EAAc;AACpD,MAAA,IAAI,KAACI,cAAAA,CAAAA,eAAAA,EAAgBJ,KAAAA,GAAQ,OAAO,IAAA;AAIpC,MAAA,OAAOA,KAAAA,CAAMK,MAAAA,CAAOC,KAAAA,CAAM,GAAA,CAAA,CAAKI,MAAM,CAAA,EAAG,EAAC,CAAA,CAAGC,IAAAA,CAAK,GAAA,CAAA;AACnD,IAAA;AAEO,IAAA,SAAS0B,yBAAyBrC,KAAAA,EAAoB;AAC3D,MAAA,IAAI,CAAA,IAACI,cAAAA,CAAAA,eAAAA,EAAgBJ,KAAAA,CAAAA,EAAQ;AAC3B,QAAA,MAAM,OAAA,cAAA,CAAA,IAAI5D,KAAAA,CAAM,sBAAA,GAAV,mBAAA,EAAA;AAAA,UAAA,KAAA,EAAA,MAAA;AAAA,UAAA,UAAA,EAAA,KAAA;AAAA,UAAA,YAAA,EAAA;SAAgC,CAAA;AACxC,MAAA;AAEA,MAAA,OAAO4D,MAAMK,MAAAA,CAAOC,KAAAA,CAAM,GAAA,EAAK,CAAA,EAAG,CAAA,CAAA;AACpC,IAAA;AAEO,IAAA,SAAS8B,+BAA+BpC,KAAAA,EAAoB;AACjE,MAAA,IAAI,CAAA,IAACI,cAAAA,CAAAA,eAAAA,EAAgBJ,KAAAA,CAAAA,EAAQ;AAC3B,QAAA,MAAM,OAAA,cAAA,CAAA,IAAI5D,KAAAA,CAAM,sBAAA,GAAV,mBAAA,EAAA;AAAA,UAAA,KAAA,EAAA,MAAA;AAAA,UAAA,UAAA,EAAA,KAAA;AAAA,UAAA,YAAA,EAAA;SAAgC,CAAA;AACxC,MAAA;AAEA,MAAA,OAAO0E,MAAAA,CAAOd,MAAMK,MAAAA,CAAOC,KAAAA,CAAM,GAAA,CAAA,CAAKM,EAAAA,CAAG,EAAC,CAAA,CAAA;AAC5C,IAAA;;;;;;;;;;;;;;;;;;;;;;AClGaoC,MAAAA,qBAAAA,EAAqB,WAAA;AAArBA,QAAAA,OAAAA,qBAAAA;;AAQAC,MAAAA,8BAAAA,EAA8B,WAAA;AAA9BA,QAAAA,OAAAA,8BAAAA;;AAuCGC,MAAAA,kCAAAA,EAAkC,WAAA;AAAlCA,QAAAA,OAAAA,kCAAAA;;AAPAC,MAAAA,2BAAAA,EAA2B,WAAA;AAA3BA,QAAAA,OAAAA,2BAAAA;;AAnBAC,MAAAA,yBAAAA,EAAyB,WAAA;AAAzBA,QAAAA,OAAAA,yBAAAA;;;AArBT,IAAA,IAAMJ,qBAAAA,GAAwB;MACnCK,SAAAA,EAAW,GAAA;MACXC,SAAAA,EAAW,GAAA;MACXC,YAAAA,EAAc;AAChB,KAAA;AAEA,IAAA,IAAMC,gBAAgB,IAAIvH,GAAAA,CAAIkD,MAAAA,CAAOC,MAAAA,CAAO4D,qBAAAA,CAAAA,CAAAA;AAErC,IAAA,IAAMC,8BAAAA,GAAiC,0BAAA;AAavC,IAAA,SAASG,0BACdpD,KAAAA,EAAc;AAEd,MAAA,IACE,OAAOA,KAAAA,KAAU,QAAA,IACjBA,KAAAA,KAAU,IAAA,IACV,EAAE,QAAA,IAAYA,KAAAA,CAAAA,IACd,OAAOA,KAAAA,CAAMK,MAAAA,KAAW,QAAA,EACxB;AACA,QAAA,OAAO,KAAA;AACT,MAAA;AACA,MAAA,MAAM,CAACoD,MAAAA,EAAQC,UAAAA,IAAc1D,KAAAA,CAAMK,MAAAA,CAAOC,MAAM,GAAA,CAAA;AAEhD,MAAA,OACEmD,WAAWR,8BAAAA,IACXO,aAAAA,CAAcG,GAAAA,CAAI7C,MAAAA,CAAO4C,UAAAA,CAAAA,CAAAA;AAE7B,IAAA;AAEO,IAAA,SAASP,4BACdnD,KAAAA,EAA8B;AAE9B,MAAA,MAAM0D,aAAa1D,KAAAA,CAAMK,MAAAA,CAAOC,KAAAA,CAAM,GAAA,EAAK,CAAA,CAAA;AAC3C,MAAA,OAAOQ,OAAO4C,UAAAA,CAAAA;AAChB,IAAA;AAEO,IAAA,SAASR,mCACd9F,MAAAA,EAAc;AAEd,MAAA,QAAQA,MAAAA;QACN,KAAK,GAAA;AACH,UAAA,OAAO,cAAA;QACT,KAAK,GAAA;AACH,UAAA,OAAO,WAAA;QACT,KAAK,GAAA;AACH,UAAA,OAAO,WAAA;AACT,QAAA;AACE,UAAA;AACJ;AACF,IAAA;;;;;;;;;;;;;;;qCCtCgBwG,UAAAA,EAAAA;;;AAAAA,QAAAA,OAAAA,QAAAA;;;;AAFhB,IAAA,IAAMC,MAAAA,GAAS,CAAA,EAAGZ,mBAAAA,CAAAA,8BAA8B,CAAA,IAAA,CAAA;AAEzC,IAAA,SAASW,QAAAA,GAAAA;AACd,MAAA,MAAM5D,QAAQ,MAAA,CAAA,cAAA,CAAA,IAAI5D,KAAAA,CAAMyH,MAAAA,GAAV,mBAAA,EAAA;AAAA,QAAA,KAAA,EAAA,MAAA;AAAA,QAAA,UAAA,EAAA,KAAA;AAAA,QAAA,YAAA,EAAA;OAAgB,CAAA;AAC5B7D,MAAAA,KAAAA,CAAkCK,MAAAA,GAASwD,MAAAA;AAE7C,MAAA,MAAM7D,KAAAA;AACR,IAAA;;;;;;;;;;;;;;;qCCNgB8D,WAAAA,EAAAA;;;AAAAA,QAAAA,OAAAA,SAAAA;;;;AAFhB,IAAA,IAAMD,MAAAA,GAAS,CAAA,EAAGZ,mBAAAA,CAAAA,8BAA8B,CAAA,IAAA,CAAA;AAEzC,IAAA,SAASa,SAAAA,GAAAA;AACd,MAAA,IAAI,CAACjI,OAAAA,CAAQC,GAAAA,CAAIiI,mCAAAA,EAAqC;AACpD,QAAA,MAAM,OAAA,cAAA,CAAA,IAAI3H,KAAAA,CACR,CAAA,+GAAA,CAAiH,GAD7G,mBAAA,EAAA;AAAA,UAAA,KAAA,EAAA,MAAA;AAAA,UAAA,UAAA,EAAA,KAAA;AAAA,UAAA,YAAA,EAAA;SAEN,CAAA;AACF,MAAA;AAEA,MAAA,MAAM4D,QAAQ,MAAA,CAAA,cAAA,CAAA,IAAI5D,KAAAA,CAAMyH,MAAAA,GAAV,mBAAA,EAAA;AAAA,QAAA,KAAA,EAAA,MAAA;AAAA,QAAA,UAAA,EAAA,KAAA;AAAA,QAAA,YAAA,EAAA;OAAgB,CAAA;AAC5B7D,MAAAA,KAAAA,CAAkCK,MAAAA,GAASwD,MAAAA;AAC7C,MAAA,MAAM7D,KAAAA;AACR,IAAA;;;;;;;;;;;;;;;qCCTgBgE,cAAAA,EAAAA;;;AAAAA,QAAAA,OAAAA,YAAAA;;;;AAFhB,IAAA,IAAMH,MAAAA,GAAS,CAAA,EAAGZ,mBAAAA,CAAAA,8BAA8B,CAAA,IAAA,CAAA;AAEzC,IAAA,SAASe,YAAAA,GAAAA;AACd,MAAA,IAAI,CAACnI,OAAAA,CAAQC,GAAAA,CAAIiI,mCAAAA,EAAqC;AACpD,QAAA,MAAM,OAAA,cAAA,CAAA,IAAI3H,KAAAA,CACR,CAAA,+GAAA,CAAiH,GAD7G,mBAAA,EAAA;AAAA,UAAA,KAAA,EAAA,MAAA;AAAA,UAAA,UAAA,EAAA,KAAA;AAAA,UAAA,YAAA,EAAA;SAEN,CAAA;AACF,MAAA;AAEA,MAAA,MAAM4D,QAAQ,MAAA,CAAA,cAAA,CAAA,IAAI5D,KAAAA,CAAMyH,MAAAA,GAAV,mBAAA,EAAA;AAAA,QAAA,KAAA,EAAA,MAAA;AAAA,QAAA,UAAA,EAAA,KAAA;AAAA,QAAA,YAAA,EAAA;OAAgB,CAAA;AAC5B7D,MAAAA,KAAAA,CAAkCK,MAAAA,GAASwD,MAAAA;AAC7C,MAAA,MAAM7D,KAAAA;AACR,IAAA;;;;;;;;;;;;;;;;;;;;;;AC7BgBiE,MAAAA,8BAAAA,EAA8B,WAAA;AAA9BA,QAAAA,OAAAA,8BAAAA;;AA2EAC,MAAAA,0BAAAA,EAA0B,WAAA;AAA1BA,QAAAA,OAAAA,0BAAAA;;AAxCAC,MAAAA,kBAAAA,EAAkB,WAAA;AAAlBA,QAAAA,OAAAA,kBAAAA;;;AAnCT,IAAA,SAASF,+BACdG,GAAAA,EAAY;AAEZ,MAAA,IAAI,OAAOA,GAAAA,KAAQ,QAAA,IAAYA,QAAQ,IAAA,IAAQ,EAAE,YAAYA,GAAAA,CAAAA,EAAM;AACjE,QAAA,OAAO,KAAA;AACT,MAAA;AAEA,MAAA,OAAOA,IAAI/D,MAAAA,KAAWgE,yBAAAA;AACxB,IAAA;AAEA,IAAA,IAAMA,yBAAAA,GAA4B,2BAAA;AAElC,IAAA,IAAMC,4BAAAA,GAAN,cAA2ClI,KAAAA,CAAAA;AAGzCC,MAAAA,WAAAA,CACkBkI,OACAC,UAAAA,EAChB;AACA,QAAA,KAAA,CACE,CAAA,qBAAA,EAAwBA,UAAAA,CAAAA,qGAAAA,EAAkHA,UAAAA,iLAA2LD,KAAAA,CAAAA,EAAAA,CAAS,CAAA,EAAA,IAAA,CAJhUA,QAAAA,KAAAA,EAAAA,IAAAA,CACAC,UAAAA,GAAAA,UAAAA,EAAAA,KAJFnE,MAAAA,GAASgE,yBAAAA;AASzB,MAAA;AACF,KAAA;AAGA,IAAA,IAAMI,sBAAAA,uBAA6BC,OAAAA,EAAAA;AAS5B,IAAA,SAASP,kBAAAA,CACdQ,MAAAA,EACAJ,KAAAA,EACAC,UAAAA,EAAkB;AAElB,MAAA,IAAIG,OAAOC,OAAAA,EAAS;AAClB,QAAA,OAAO1H,QAAQ2H,MAAAA,CAAO,IAAIP,4BAAAA,CAA6BC,KAAAA,EAAOC,UAAAA,CAAAA,CAAAA;MAChE,CAAA,MAAO;AACL,QAAA,MAAMM,cAAAA,GAAiB,IAAI5H,OAAAA,CAAW,CAAC6H,GAAGF,MAAAA,KAAAA;AACxC,UAAA,MAAMG,cAAAA,GAAiBH,OAAOlD,IAAAA,CAC5B,IAAA,EACA,IAAI2C,4BAAAA,CAA6BC,KAAAA,EAAOC,UAAAA,CAAAA,CAAAA;AAE1C,UAAA,IAAIS,gBAAAA,GAAmBR,sBAAAA,CAAuBS,GAAAA,CAAIP,MAAAA,CAAAA;AAClD,UAAA,IAAIM,gBAAAA,EAAkB;AACpBA,YAAAA,gBAAAA,CAAiB3F,KAAK0F,cAAAA,CAAAA;UACxB,CAAA,MAAO;AACL,YAAA,MAAMG,SAAAA,GAAY;AAACH,cAAAA;;AACnBP,YAAAA,sBAAAA,CAAuBhI,GAAAA,CAAIkI,QAAQQ,SAAAA,CAAAA;AACnCR,YAAAA,MAAAA,CAAOS,gBAAAA,CACL,SACA,MAAA;AACE,cAAA,KAAA,IAASjK,CAAAA,GAAI,CAAA,EAAGA,CAAAA,GAAIgK,SAAAA,CAAUxG,QAAQxD,CAAAA,EAAAA,EAAK;AACzCgK,gBAAAA,SAAAA,CAAUhK,CAAAA,CAAAA,EAAE;AACd,cAAA;YACF,CAAA,EACA;cAAEkK,IAAAA,EAAM;aAAK,CAAA;AAEjB,UAAA;QACF,CAAA,CAAA;AAIAP,QAAAA,cAAAA,CAAeQ,MAAMC,YAAAA,CAAAA;AACrB,QAAA,OAAOT,cAAAA;AACT,MAAA;AACF,IAAA;AAEA,IAAA,SAASS,YAAAA,GAAAA;AAAgB,IAAA;AAElB,IAAA,SAASrB,0BAAAA,CACdsB,UAAAA,EACAC,YAAAA,EACAC,KAAAA,EAA2B;AAE3B,MAAA,IAAID,aAAaE,eAAAA,EAAiB;AAEhC,QAAA,OAAOF,YAAAA,CAAaE,eAAAA,CAAgBC,eAAAA,CAClCF,KAAAA,EACAnE,QACAiE,UAAAA,CAAAA;AAEJ,MAAA;AAGA,MAAA,OAAO,IAAItI,OAAAA,CAAW,CAACC,OAAAA,KAAAA;AAErB0I,QAAAA,UAAAA,CAAW,MAAA;AACT1I,UAAAA,OAAAA,CAAQqI,UAAAA,CAAAA;AACV,QAAA,CAAA,EAAG,CAAA,CAAA;MACL,CAAA,CAAA;AACF,IAAA;;;;;;;;;;qCCjGgBM,YAAAA,EAAAA;;;AAAAA,QAAAA,OAAAA,UAAAA;;;AAFhB,IAAA,IAAMC,mBAAAA,mBAA8BC,MAAAA,CAAOC,GAAAA,CAAI,gBAAA,CAAA;AAExC,IAAA,SAASH,WAAW9F,KAAAA,EAAU;AACnC,MAAA,OACE,OAAOA,KAAAA,KAAU,QAAA,IACjBA,KAAAA,KAAU,IAAA,IACVA,MAAMkG,QAAAA,KAAaH,mBAAAA;AAEvB,IAAA;;;;;ACRA,IAAA,sBAAA,GAAA,UAAA,CAAA;;;;;;;;;;;;AAIaI,MAAAA,iBAAAA,EAAiB,WAAA;AAAjBA,QAAAA,OAAAA,iBAAAA;;AASGC,MAAAA,mBAAAA,EAAmB,WAAA;AAAnBA,QAAAA,OAAAA,mBAAAA;;;AAZhB,IAAA,IAAMC,cAAAA,GAAiB,kCAAA;AAGhB,IAAA,IAAMF,iBAAAA,GAAN,cAAgC/J,KAAAA,CAAAA;AAGrCC,MAAAA,WAAAA,CAA4BiK,MAAAA,EAAgB;AAC1C,QAAA,KAAA,CAAM,CAAA,mCAAA,EAAsCA,MAAAA,CAAAA,CAAQ,CAAA,EAAA,KAD1BA,MAAAA,GAAAA,MAAAA,EAAAA,KAFZjG,MAAAA,GAASgG,cAAAA;AAIzB,MAAA;AACF,KAAA;AAGO,IAAA,SAASD,oBAAoBhC,GAAAA,EAAY;AAC9C,MAAA,IAAI,OAAOA,GAAAA,KAAQ,QAAA,IAAYA,QAAQ,IAAA,IAAQ,EAAE,YAAYA,GAAAA,CAAAA,EAAM;AACjE,QAAA,OAAO,KAAA;AACT,MAAA;AAEA,MAAA,OAAOA,IAAI/D,MAAAA,KAAWgG,cAAAA;AACxB,IAAA;;;;;;;;;;qCCRgBE,mBAAAA,EAAAA;;;AAAAA,QAAAA,OAAAA,iBAAAA;;;;;AAAT,IAAA,SAASA,kBACdvG,KAAAA,EAAc;AAEd,MAAA,OAAA,IAAOI,eAAAA,eAAAA,EAAgBJ,KAAAA,SAAUoD,mBAAAA,CAAAA,2BAA0BpD,KAAAA,CAAAA;AAC7D,IAAA;;;;;;;;;;;;;;;;;;;;;;ACbawG,MAAAA,kBAAAA,EAAkB,WAAA;AAAlBA,QAAAA,OAAAA,kBAAAA;;AAQGC,MAAAA,oBAAAA,EAAoB,WAAA;AAApBA,QAAAA,OAAAA,oBAAAA;;;AAVhB,IAAA,IAAMC,kBAAAA,GAAqB,sBAAA;AAEpB,IAAA,IAAMF,kBAAAA,GAAN,cAAiCpK,KAAAA,CAAAA;AAGtCC,MAAAA,WAAAA,CAA4BsK,WAAAA,EAAqB;AAC/C,QAAA,KAAA,CAAM,CAAA,sBAAA,EAAyBA,WAAAA,CAAAA,CAAa,CAAA,EAAA,KADlBA,WAAAA,GAAAA,WAAAA,EAAAA,KAF5BtG,MAAAA,GAAoCqG,kBAAAA;AAIpC,MAAA;AACF,KAAA;AAEO,IAAA,SAASD,qBAAqBrC,GAAAA,EAAY;AAC/C,MAAA,IACE,OAAOA,GAAAA,KAAQ,QAAA,IACfA,GAAAA,KAAQ,IAAA,IACR,EAAE,QAAA,IAAYA,GAAAA,CAAAA,IACd,OAAOA,GAAAA,CAAI/D,MAAAA,KAAW,QAAA,EACtB;AACA,QAAA,OAAO,KAAA;AACT,MAAA;AAEA,MAAA,OAAO+D,IAAI/D,MAAAA,KAAWqG,kBAAAA;AACxB,IAAA;;;;;;;;;;;;;;;;;;;;;;ACnBaE,MAAAA,qBAAAA,EAAqB,WAAA;AAArBA,QAAAA,OAAAA,qBAAAA;;AAIGC,MAAAA,uBAAAA,EAAuB,WAAA;AAAvBA,QAAAA,OAAAA,uBAAAA;;;AANhB,IAAA,IAAMC,uBAAAA,GAA0B,yBAAA;AAEzB,IAAA,IAAMF,qBAAAA,GAAN,cAAoCxK,KAAAA,CAAAA;;AAApC,QAAA,KAAA,CAAA,GAAA,IAAA,CAAA,EAAA,IAAA,CACW2K,IAAAA,GAAOD,uBAAAA;;AACzB,KAAA;AAEO,IAAA,SAASD,wBACd7G,KAAAA,EAAc;AAEd,MAAA,IAAI,OAAOA,KAAAA,KAAU,QAAA,IAAYA,UAAU,IAAA,IAAQ,EAAE,UAAUA,KAAAA,CAAAA,EAAQ;AACrE,QAAA,OAAO,KAAA;AACT,MAAA;AAEA,MAAA,OAAOA,MAAM+G,IAAAA,KAASD,uBAAAA;AACxB,IAAA;;;;;;;;;;;;;;;qCCXaE,8BAAAA,EAAAA;;;AAAAA,QAAAA,OAAAA,4BAAAA;;;;AAAN,IAAA,IAAMA,4BAAAA,GAAAA,IACX/F,kBAAAA,CAAAA,uBAAAA,GAAuB;;;;;;;;;;;;;;;;;ACHZgG,MAAAA,aAAAA,EAAa,WAAA;AAAbA,QAAAA,OAAAA,aAAAA;;AAiBAC,MAAAA,cAAAA,EAAc,WAAA;AAAdA,QAAAA,OAAAA,cAAAA;;AAeAC,MAAAA,4BAAAA,EAA4B,WAAA;AAA5BA,QAAAA,OAAAA,4BAAAA;;AAKAC,MAAAA,8BAAAA,EAA8B,WAAA;AAA9BA,QAAAA,OAAAA,8BAAAA;;AATAC,MAAAA,wBAAAA,EAAwB,WAAA;AAAxBA,QAAAA,OAAAA,wBAAAA;;AAfAC,MAAAA,4BAAAA,EAA4B,WAAA;AAA5BA,QAAAA,OAAAA,4BAAAA;;AADAC,MAAAA,uBAAAA,EAAuB,WAAA;AAAvBA,QAAAA,OAAAA,uBAAAA;;AAsBAC,MAAAA,2BAAAA,EAA2B,WAAA;AAA3BA,QAAAA,OAAAA,2BAAAA;;AAHAC,MAAAA,wBAAAA,EAAwB,WAAA;AAAxBA,QAAAA,OAAAA,wBAAAA;;AAEAC,MAAAA,sBAAAA,EAAsB,WAAA;AAAtBA,QAAAA,OAAAA,sBAAAA;;AAJAC,MAAAA,0BAAAA,EAA0B,WAAA;AAA1BA,QAAAA,OAAAA,0BAAAA;;AACAC,MAAAA,2BAAAA,EAA2B,WAAA;AAA3BA,QAAAA,OAAAA,2BAAAA;;AAzBAC,MAAAA,2BAAAA,EAA2B,WAAA;AAA3BA,QAAAA,OAAAA,2BAAAA;;AAKAC,MAAAA,mCAAAA,EAAmC,WAAA;AAAnCA,QAAAA,OAAAA,mCAAAA;;AAiBAC,MAAAA,6BAAAA,EAA6B,WAAA;AAA7BA,QAAAA,OAAAA,6BAAAA;;AAvBAC,MAAAA,6BAAAA,EAA6B,WAAA;AAA7BA,QAAAA,OAAAA,6BAAAA;;AAqBAC,MAAAA,oBAAAA,EAAoB,WAAA;AAApBA,QAAAA,OAAAA,oBAAAA;;AAXAC,MAAAA,QAAAA,EAAQ,WAAA;AAARA,QAAAA,OAAAA,QAAAA;;AACAC,MAAAA,uBAAAA,EAAuB,WAAA;AAAvBA,QAAAA,OAAAA,uBAAAA;;AAhBAC,MAAAA,UAAAA,EAAU,WAAA;AAAVA,QAAAA,OAAAA,UAAAA;;;AAAN,IAAA,IAAMA,UAAAA,GAAa,KAAA;AACnB,IAAA,IAAMnB,aAAAA,GAAgB,aAAA;AAItB,IAAA,IAAMe,6BAAAA,GAAgC,wBAAA;AACtC,IAAA,IAAMH,2BAAAA,GAA8B,sBAAA;AAKpC,IAAA,IAAMC,mCAAAA,GACX,8BAAA;AACK,IAAA,IAAMP,uBAAAA,GAA0B,kBAAA;AAChC,IAAA,IAAMD,4BAAAA,GAA+B,2BAAA;AACrC,IAAA,IAAMY,QAAAA,GAAW,UAAA;AACjB,IAAA,IAAMC,uBAAAA,GAA0B,kBAAA;AAEhC,IAAA,IAAMjB,cAAAA,GAAiB;AAC5BkB,MAAAA,UAAAA;AACAJ,MAAAA,6BAAAA;AACAH,MAAAA,2BAAAA;AACAN,MAAAA,uBAAAA;AACAO,MAAAA;;AAGK,IAAA,IAAMG,oBAAAA,GAAuB,MAAA;AAE7B,IAAA,IAAMF,6BAAAA,GAAgC,qBAAA;AACtC,IAAA,IAAMV,wBAAAA,GAA2B,oBAAA;AACjC,IAAA,IAAMM,0BAAAA,GAA6B,yBAAA;AACnC,IAAA,IAAMC,2BAAAA,GAA8B,0BAAA;AACpC,IAAA,IAAMH,wBAAAA,GAA2B,oBAAA;AACjC,IAAA,IAAMN,4BAAAA,GAA+B,2BAAA;AACrC,IAAA,IAAMO,sBAAAA,GAAyB,qBAAA;AAC/B,IAAA,IAAMF,2BAAAA,GAA8B,0BAAA;AAGpC,IAAA,IAAMJ,8BAAAA,GAAiC,sBAAA;;;;;;;;;;;;;;;qCCtCjCiB,gBAAAA,EAAAA;;;AAAAA,QAAAA,OAAAA,cAAAA;;;AAAN,IAAA,IAAMA,cAAAA,GAAN,cAA6BjM,KAAAA,CAAAA;AAClCC,MAAAA,WAAAA,CAAYiM,SAAiBC,OAAAA,EAAwB;AACnD,QAAA,KAAA,CACE,CAAA,WAAA,EAAcD,QAAQrK,QAAAA,CAAS,GAAA,IAAOqK,OAAAA,GAAUA,OAAAA,GAAU,GAAA,CAAA,0BAAA,CAAA,EAC1DC,OAAAA,CAAAA;AAEF,QAAA,IAAA,CAAKxI,IAAAA,GAAO,gBAAA;AACd,MAAA;AACF,KAAA;;;;;;;;;;;;;;;;;ACwfgByI,MAAAA,cAAAA,EAAc,WAAA;AAAdA,QAAAA,OAAAA,cAAAA;;AAzBAC,MAAAA,iCAAAA,EAAiC,WAAA;AAAjCA,QAAAA,OAAAA,iCAAAA;;AA/EAC,MAAAA,iBAAAA,EAAiB,WAAA;AAAjBA,QAAAA,OAAAA,iBAAAA;;AAzDAC,MAAAA,2BAAAA,EAA2B,WAAA;AAA3BA,QAAAA,OAAAA,2BAAAA;;AA6BAC,MAAAA,wBAAAA,EAAwB,WAAA;AAAxBA,QAAAA,OAAAA,wBAAAA;;AA8JAC,MAAAA,sBAAAA,EAAsB,WAAA;AAAtBA,QAAAA,OAAAA,sBAAAA;;AA/EAC,MAAAA,2BAAAA,EAA2B,WAAA;AAA3BA,QAAAA,OAAAA,2BAAAA;;AAzBAC,MAAAA,YAAAA,EAAY,WAAA;AAAZA,QAAAA,OAAAA,YAAAA;;AA7FAC,MAAAA,2BAAAA,EAA2B,WAAA;AAA3BA,QAAAA,OAAAA,2BAAAA;;AAMAC,MAAAA,6BAAAA,EAA6B,WAAA;AAA7BA,QAAAA,OAAAA,6BAAAA;;AARyBC,MAAAA,oBAAAA,EAAoB,WAAA;eAApDlC,6BAAAA,CAAAA,4BAAAA;;;;;;AAEF,IAAA,SAASgC,4BAA4BG,iBAAAA,EAAyB;AACnE,MAAA,MAAM,MAAA,CAAA,eAAA,IAAI/M,KAAAA,CACR,KAAK+M,iBAAAA,CAAAA,iHAAAA,CAAoI,GADrI,mBAAA,EAAA;AAAA,QAAA,KAAA,EAAA,MAAA;AAAA,QAAA,UAAA,EAAA,KAAA;AAAA,QAAA,YAAA,EAAA;OAEN,CAAA;AACF,IAAA;AAEO,IAAA,SAASF,6BAAAA,GAAAA;AACd,MAAA,MAAM,OAAA,cAAA,CAAA,IAAIZ,gBAAAA,cAAAA,CAAe,gDAAA,GAAnB,mBAAA,EAAA;AAAA,QAAA,KAAA,EAAA,MAAA;AAAA,QAAA,UAAA,EAAA,KAAA;AAAA,QAAA,YAAA,EAAA;OAAmE,CAAA;AAC3E,IAAA;AAEO,IAAA,SAASM,4BACdS,aAAAA,EAA4B;AAE5B,MAAA,QAAQA,cAAc5I,IAAAA;QACpB,KAAK,WAAA;QACL,KAAK,mBAAA;QACL,KAAK,eAAA;AACH,UAAA,OAAO4I,aAAAA,CAAcC,wBAAAA;QACvB,KAAK,kBAAA;AAGH,UAAA,OAAOD,aAAAA,CAAcC,wBAAAA;AACvB,QAAA,KAAK,SAAA,EAAW;AAEd,UAAA,IAAID,cAAcC,wBAAAA,EAA0B;AAC1C,YAAA,OAAOD,aAAAA,CAAcC,wBAAAA;AACvB,UAAA;AAEF,QAAA;QACA,KAAK,kBAAA;QACL,KAAK,OAAA;QACL,KAAK,eAAA;QACL,KAAK,gBAAA;AACH,UAAA,OAAO,IAAA;AACT,QAAA;AACE,UAAA,OAAOD,aAAAA;AACX;AACF,IAAA;AAEO,IAAA,SAASR,yBACdQ,aAAAA,EAA4B;AAE5B,MAAA,QAAQA,cAAc5I,IAAAA;QACpB,KAAK,SAAA;QACL,KAAK,WAAA;QACL,KAAK,mBAAA;QACL,KAAK,kBAAA;AACH,UAAA,IAAI4I,cAAcE,qBAAAA,EAAuB;AAGvC,YAAA,OAAOF,aAAAA,CAAcE,qBAAAA;AACvB,UAAA;;QAEF,KAAK,eAAA;AAGH,UAAA,OAAOF,cAAcC,wBAAAA,IAA4B,IAAA;QACnD,KAAK,OAAA;QACL,KAAK,eAAA;QACL,KAAK,gBAAA;QACL,KAAK,kBAAA;AACH,UAAA,OAAO,IAAA;AACT,QAAA;AACE,UAAA,OAAOD,aAAAA;AACX;AACF,IAAA;AAEO,IAAA,SAASV,iBAAAA,CACda,WACAH,aAAAA,EAA4B;AAE5B,MAAA,IAAIG,UAAUC,GAAAA,EAAK;AACjB,QAAA,QAAQJ,cAAc5I,IAAAA;UACpB,KAAK,OAAA;UACL,KAAK,eAAA;UACL,KAAK,WAAA;UACL,KAAK,mBAAA;AACH,YAAA,OAAO4I,aAAAA,CAAcK,cAAAA;UACvB,KAAK,SAAA;AACIL,YAAAA,IAAAA,0BAAAA;AAAP,YAAA,OAAA,CAAOA,0BAAAA,GAAAA,cAAcM,OAAAA,CAAQxE,GAAAA,CAAIoC,kBAAAA,4BAA4B,CAAA,KAAA,IAAA,GAAA,MAAA,GAAtD8B,0BAAAA,CAAyDpM,KAAAA;AAQpE;AACF,MAAA;AAEA,MAAA,OAAOuE,MAAAA;AACT,IAAA;AAEO,IAAA,SAASwH,YAAAA,CACdQ,WACAH,aAAAA,EAA4B;AAE5B,MAAA,IAAIG,UAAUC,GAAAA,EAAK;AACjB,QAAA,QAAQJ,cAAc5I,IAAAA;UACpB,KAAK,OAAA;UACL,KAAK,eAAA;UACL,KAAK,SAAA;AACH,YAAA,OAAO4I,cAAcL,YAAAA,IAAgB,KAAA;AAUzC;AACF,MAAA;AAEA,MAAA,OAAO,KAAA;AACT,IAAA;AAEO,IAAA,SAASD,2BAAAA,CACdS,WACAH,aAAAA,EAA4B;AAE5B,MAAA,IAAIG,UAAUC,GAAAA,EAAK;AACjB,QAAA,QAAQJ,cAAc5I,IAAAA;UACpB,KAAK,OAAA;UACL,KAAK,eAAA;UACL,KAAK,SAAA;AACH,YAAA,OAAO4I,aAAAA,CAAcO,wBAAAA;AAUzB;AACF,MAAA;AAEA,MAAA,OAAOpI,MAAAA;AACT,IAAA;AAKO,IAAA,SAASkH,iCAAAA,CACdc,WACAH,aAAAA,EAA4B;AAE5B,MAAA,IAAIG,UAAUK,WAAAA,EAAa;AACzB,QAAA,QAAQR,cAAc5I,IAAAA;UACpB,KAAK,OAAA;UACL,KAAK,eAAA;UACL,KAAK,gBAAA;UACL,KAAK,mBAAA;UACL,KAAK,SAAA;AACH,YAAA,OAAO4I,aAAAA,CAAcS,SAAAA;AAQzB;AACF,MAAA;AAEA,MAAA,OAAOtI,MAAAA;AACT,IAAA;AAEO,IAAA,SAASiH,eACdY,aAAAA,EAA4B;AAE5B,MAAA,QAAQA,cAAc5I,IAAAA;QACpB,KAAK,WAAA;QACL,KAAK,kBAAA;QACL,KAAK,mBAAA;AACH,UAAA,OAAO4I,aAAAA,CAAcU,WAAAA;AACvB,QAAA,KAAK,SAAA,EAAW;AAEd,UAAA,IAAIV,cAAcU,WAAAA,EAAa;AAC7B,YAAA,OAAOV,aAAAA,CAAcU,WAAAA;AACvB,UAAA;AAEF,QAAA;QACA,KAAK,eAAA;QACL,KAAK,kBAAA;QACL,KAAK,OAAA;QACL,KAAK,eAAA;QACL,KAAK,gBAAA;AACH,UAAA,OAAO,IAAA;AACT,QAAA;AACE,UAAA,OAAOV,aAAAA;AACX;AACF,IAAA;AAEO,IAAA,SAASP,uBACdO,aAAAA,EAA4B;AAE5B,MAAA,QAAQA,cAAc5I,IAAAA;QACpB,KAAK,mBAAA;QACL,KAAK,eAAA;AACH,UAAA,OAAO4I,aAAAA,CAAcW,mBAAAA;QACvB,KAAK,WAAA;QACL,KAAK,kBAAA;QACL,KAAK,eAAA;QACL,KAAK,kBAAA;QACL,KAAK,SAAA;QACL,KAAK,OAAA;QACL,KAAK,gBAAA;AACH,UAAA,OAAO,IAAA;AACT,QAAA;AACE,UAAA,OAAOX,aAAAA;AACX;AACF,IAAA;;;;;;;;;;qCCziBaY,0BAAAA,EAAAA;;;AAAAA,QAAAA,OAAAA,wBAAAA;;;;AAAN,IAAA,IAAMA,wBAAAA,GAAAA,IACX/I,kBAAAA,CAAAA,uBAAAA,GAAuB;;;;;;;;;;qCCwHYgJ,kBAAAA,EAAAA;;;eAA5BD,yBAAAA,CAAAA,wBAAAA;;;;;;;;;;;;;;;;;;;;AC5HIE,MAAAA,sBAAAA,EAAsB,WAAA;AAAtBA,QAAAA,OAAAA,sBAAAA;;AAEAC,MAAAA,oBAAAA,EAAoB,WAAA;AAApBA,QAAAA,OAAAA,oBAAAA;;AACAC,MAAAA,yBAAAA,EAAyB,WAAA;AAAzBA,QAAAA,OAAAA,yBAAAA;;AAFAC,MAAAA,sBAAAA,EAAsB,WAAA;AAAtBA,QAAAA,OAAAA,sBAAAA;;;AADN,IAAA,IAAMH,sBAAAA,GAAyB,4BAAA;AAC/B,IAAA,IAAMG,sBAAAA,GAAyB,4BAAA;AAC/B,IAAA,IAAMF,oBAAAA,GAAuB,0BAAA;AAC7B,IAAA,IAAMC,yBAAAA,GAA4B,+BAAA;;;;;;;;;;;;;;;;;ACyCzBE,MAAAA,cAAAA,EAAc,WAAA;AAAdA,QAAAA,OAAAA,cAAAA;;AAbHC,MAAAA,iBAAAA,EAAiB,WAAA;AAAjBA,QAAAA,OAAAA,iBAAAA;;AAtBAC,MAAAA,kBAAAA,EAAkB,WAAA;AAAlBA,QAAAA,OAAAA,kBAAAA;;AAgDGC,MAAAA,6BAAAA,EAA6B,WAAA;AAA7BA,QAAAA,OAAAA,6BAAAA;;;AAhDT,IAAA,IAAMD,kBAAAA,GAAqB,CAACE,EAAAA,KAAAA;AAOjCxN,MAAAA,OAAAA,CAAQC,OAAAA,EAAO,CAAGwN,IAAAA,CAAK,MAAA;AACrB,QAAA,IAAI9O,OAAAA,CAAQC,GAAAA,CAAI8O,YAAAA,KAAiB,MAAA,EAAQ;AACvC/E,UAAAA,UAAAA,CAAW6E,IAAI,CAAA,CAAA;QACjB,CAAA,MAAO;AACL7O,UAAAA,OAAAA,CAAQgP,SAASH,EAAAA,CAAAA;AACnB,QAAA;MACF,CAAA,CAAA;AACF,IAAA,CAAA;AAQO,IAAA,IAAMH,iBAAAA,GAAoB,CAACG,EAAAA,KAAAA;AAChC,MAAA,IAAI7O,OAAAA,CAAQC,GAAAA,CAAI8O,YAAAA,KAAiB,MAAA,EAAQ;AACvC/E,QAAAA,UAAAA,CAAW6E,IAAI,CAAA,CAAA;MACjB,CAAA,MAAO;AACLI,QAAAA,YAAAA,CAAaJ,EAAAA,CAAAA;AACf,MAAA;AACF,IAAA,CAAA;AAOO,IAAA,SAASJ,cAAAA,GAAAA;AACd,MAAA,OAAO,IAAIpN,OAAAA,CAAc,CAACC,OAAAA,KAAYoN,iBAAAA,CAAkBpN,OAAAA,CAAAA,CAAAA;AAC1D,IAAA;AAWO,IAAA,SAASsN,6BAAAA,GAAAA;AACd,MAAA,IAAI5O,OAAAA,CAAQC,GAAAA,CAAI8O,YAAAA,KAAiB,MAAA,EAAQ;AACvC,QAAA,OAAO,IAAI1N,OAAAA,CAAQ,CAAC6N,MAAMlF,UAAAA,CAAWkF,CAAAA,EAAG,CAAA,CAAA,CAAA;MAC1C,CAAA,MAAO;AACL,QAAA,OAAO,IAAI7N,OAAAA,CAAQ,CAAC6N,CAAAA,KAAMD,YAAAA,CAAaC,CAAAA,CAAAA,CAAAA;AACzC,MAAA;AACF,IAAA;;;;;AC/DA,IAAA,yBAAA,GAAA,UAAA,CAAA;;;;;;;;;;;;AAwVgBC,MAAAA,QAAAA,EAAQ,WAAA;AAARA,QAAAA,OAAAA,QAAAA;;AAshBJC,MAAAA,YAAAA,EAAY,WAAA;AAAZA,QAAAA,OAAAA,YAAAA;;AA3jBIC,MAAAA,2CAAAA,EAA2C,WAAA;AAA3CA,QAAAA,OAAAA,2CAAAA;;AA7BAC,MAAAA,kCAAAA,EAAkC,WAAA;AAAlCA,QAAAA,OAAAA,kCAAAA;;AA4JAC,MAAAA,mBAAAA,EAAmB,WAAA;AAAnBA,QAAAA,OAAAA,mBAAAA;;AAkIAC,MAAAA,qBAAAA,EAAqB,WAAA;AAArBA,QAAAA,OAAAA,qBAAAA;;AA5HAC,MAAAA,oBAAAA,EAAoB,WAAA;AAApBA,QAAAA,OAAAA,oBAAAA;;AA3VAC,MAAAA,0BAAAA,EAA0B,WAAA;AAA1BA,QAAAA,OAAAA,0BAAAA;;AAUAC,MAAAA,4BAAAA,EAA4B,WAAA;AAA5BA,QAAAA,OAAAA,4BAAAA;;AAyZAC,MAAAA,6BAAAA,EAA6B,WAAA;AAA7BA,QAAAA,OAAAA,6BAAAA;;AAXAC,MAAAA,gCAAAA,EAAgC,WAAA;AAAhCA,QAAAA,OAAAA,gCAAAA;;AAkgBAC,MAAAA,sBAAAA,EAAsB,WAAA;AAAtBA,QAAAA,OAAAA,sBAAAA;;AApjBAC,MAAAA,wBAAAA,EAAwB,WAAA;AAAxBA,QAAAA,OAAAA,wBAAAA;;AAjVAC,MAAAA,qBAAAA,EAAqB,WAAA;AAArBA,QAAAA,OAAAA,qBAAAA;;AAw1BAC,MAAAA,sCAAAA,EAAsC,WAAA;AAAtCA,QAAAA,OAAAA,sCAAAA;;AA7kBAC,MAAAA,iBAAAA,EAAiB,WAAA;AAAjBA,QAAAA,OAAAA,iBAAAA;;AAwCAC,MAAAA,2BAAAA,EAA2B,WAAA;AAA3BA,QAAAA,OAAAA,2BAAAA;;AA+cAC,MAAAA,yBAAAA,EAAyB,WAAA;AAAzBA,QAAAA,OAAAA,yBAAAA;;AArvBAC,MAAAA,yBAAAA,EAAyB,WAAA;AAAzBA,QAAAA,OAAAA,yBAAAA;;AAkOAC,MAAAA,oBAAAA,EAAoB,WAAA;AAApBA,QAAAA,OAAAA,oBAAAA;;AAsiBAC,MAAAA,wBAAAA,EAAwB,WAAA;AAAxBA,QAAAA,OAAAA,wBAAAA;;AA9rBAC,MAAAA,gCAAAA,EAAgC,WAAA;AAAhCA,QAAAA,OAAAA,gCAAAA;;AA8fAC,MAAAA,yBAAAA,EAAyB,WAAA;AAAzBA,QAAAA,OAAAA,yBAAAA;;AAreAC,MAAAA,+BAAAA,EAA+B,WAAA;AAA/BA,QAAAA,OAAAA,+BAAAA;;AAshBAC,MAAAA,8BAAAA,EAA8B,WAAA;AAA9BA,QAAAA,OAAAA,8BAAAA;;AAiDAC,MAAAA,6BAAAA,EAA6B,WAAA;AAA7BA,QAAAA,OAAAA,6BAAAA;;AAtOAC,MAAAA,qBAAAA,EAAqB,WAAA;AAArBA,QAAAA,OAAAA,qBAAAA;;AAqDAC,MAAAA,sBAAAA,EAAsB,WAAA;AAAtBA,QAAAA,OAAAA,sBAAAA;;;AAzlBE,IAAA,IAAA,MAAA,mBAAA,wBAAA,CAAA,SAAA,CAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;AAqBlB,IAAA,IAAMC,WAAAA,GAAc,OAAOjR,MAAAA,CAAAA,OAAAA,CAAMkR,iBAAAA,KAAsB,UAAA;AAyChD,IAAA,SAAStB,2BACduB,sBAAAA,EAA2C;AAE3C,MAAA,OAAO;AACLA,QAAAA,sBAAAA;AACAC,QAAAA,eAAAA,EAAiB,EAAA;QACjBC,yBAAAA,EAA2B;AAC7B,OAAA;AACF,IAAA;AAEO,IAAA,SAASxB,4BAAAA,GAAAA;AACd,MAAA,OAAO;QACLyB,oBAAAA,EAAsB,KAAA;QACtBC,kBAAAA,EAAoB,KAAA;QACpBC,eAAAA,EAAiB,IAAA;QACjBC,kBAAAA,EAAoB,KAAA;QACpBC,iBAAAA,EAAmB,KAAA;AACnBC,QAAAA,aAAAA,EAAe;AACjB,OAAA;AACF,IAAA;AAEO,IAAA,SAASzB,sBACd0B,aAAAA,EAAmC;AAE5BA,MAAAA,IAAAA,+BAAAA;AAAP,MAAA,OAAA,CAAOA,kCAAAA,aAAAA,CAAcR,eAAAA,CAAgB,CAAA,CAAA,KAAE,IAAA,GAAA,SAAhCQ,+BAAAA,CAAkC/I,UAAAA;AAC3C,IAAA;AASO,IAAA,SAAS0H,yBAAAA,CACdsB,KAAAA,EACApE,aAAAA,EACA5E,UAAAA,EAAkB;AAElB,MAAA,IAAI4E,aAAAA,EAAe;AACjB,QAAA,QAAQA,cAAc5I,IAAAA;UACpB,KAAK,OAAA;UACL,KAAK,gBAAA;AAKH,YAAA;UACF,KAAK,eAAA;AAEH,YAAA;AAOJ;AACF,MAAA;AAKA,MAAA,IAAIgN,KAAAA,CAAMC,YAAAA,IAAgBD,KAAAA,CAAME,WAAAA,EAAa;AAE7C,MAAA,IAAIF,MAAMG,kBAAAA,EAAoB;AAC5B,QAAA,MAAM,MAAA,CAAA,cAAA,CAAA,IAAI/G,wBAAAA,CAAAA,qBAAAA,CACR,CAAA,MAAA,EAAS4G,KAAAA,CAAMjJ,KAAK,CAAA,8EAAA,EAAiFC,UAAAA,CAAAA,4HAAAA,CAAwI,CAAA,EADzO,mBAAA,EAAA;AAAA,UAAA,KAAA,EAAA,MAAA;AAAA,UAAA,UAAA,EAAA,KAAA;AAAA,UAAA,YAAA,EAAA;SAEN,CAAA;AACF,MAAA;AAEA,MAAA,IAAI4E,aAAAA,EAAe;AACjB,QAAA,QAAQA,cAAc5I,IAAAA;UACpB,KAAK,eAAA;AACH,YAAA,OAAO2L,oBAAAA,CACLqB,KAAAA,CAAMjJ,KAAAA,EACNC,UAAAA,EACA4E,cAAcwE,eAAe,CAAA;UAEjC,KAAK,kBAAA;AACHxE,YAAAA,aAAAA,CAAcyE,UAAAA,GAAa,CAAA;AAI3B,YAAA,MAAMzJ,GAAAA,GAAM,MAAA,CAAA,cAAA,CAAA,IAAIoC,mBAAAA,CAAAA,kBAAAA,CACd,CAAA,MAAA,EAASgH,KAAAA,CAAMjJ,KAAK,CAAA,iDAAA,EAAoDC,UAAAA,CAAAA,2EAAAA,CAAuF,GADrJ,mBAAA,EAAA;AAAA,cAAA,KAAA,EAAA,MAAA;AAAA,cAAA,UAAA,EAAA,KAAA;AAAA,cAAA,YAAA,EAAA;aAEZ,CAAA;AACAgJ,YAAAA,KAAAA,CAAMM,uBAAAA,GAA0BtJ,UAAAA;AAChCgJ,YAAAA,KAAAA,CAAMO,oBAAoB3J,GAAAA,CAAI4J,KAAAA;AAE9B,YAAA,MAAM5J,GAAAA;UACR,KAAK,SAAA;AACH,YAAA,IAAIvI,OAAAA,CAAQC,GAAAA,CAAIC,QAAAA,KAAa,YAAA,EAAc;AACzCqN,cAAAA,aAAAA,CAAc6E,WAAAA,GAAc,IAAA;AAC9B,YAAA;AACA,YAAA;AAGJ;AACF,MAAA;AACF,IAAA;AAQO,IAAA,SAAS5B,gCAAAA,CACd7H,UAAAA,EACAgJ,KAAAA,EACAU,cAAAA,EAAoC;AAGpC,MAAA,MAAM9J,GAAAA,GAAM,MAAA,CAAA,cAAA,CAAA,IAAIoC,mBAAAA,CAAAA,kBAAAA,CACd,CAAA,MAAA,EAASgH,KAAAA,CAAMjJ,KAAK,CAAA,mDAAA,EAAsDC,UAAAA,CAAAA,6EAAAA,CAAyF,GADzJ,mBAAA,EAAA;AAAA,QAAA,KAAA,EAAA,MAAA;AAAA,QAAA,UAAA,EAAA,KAAA;AAAA,QAAA,YAAA,EAAA;OAEZ,CAAA;AAEA0J,MAAAA,cAAAA,CAAeL,UAAAA,GAAa,CAAA;AAE5BL,MAAAA,KAAAA,CAAMM,uBAAAA,GAA0BtJ,UAAAA;AAChCgJ,MAAAA,KAAAA,CAAMO,oBAAoB3J,GAAAA,CAAI4J,KAAAA;AAE9B,MAAA,MAAM5J,GAAAA;AACR,IAAA;AASO,IAAA,SAASmI,gCAAgCnD,aAAAA,EAA4B;AAC1E,MAAA,QAAQA,cAAc5I,IAAAA;QACpB,KAAK,OAAA;QACL,KAAK,gBAAA;AAKH,UAAA;QACF,KAAK,eAAA;AAEH,UAAA;QACF,KAAK,WAAA;QACL,KAAK,mBAAA;QACL,KAAK,kBAAA;QACL,KAAK,eAAA;QACL,KAAK,kBAAA;AACH,UAAA;QACF,KAAK,SAAA;AACH,UAAA,IAAI3E,OAAAA,CAAQC,GAAAA,CAAIC,QAAAA,KAAa,YAAA,EAAc;AACzCqN,YAAAA,aAAAA,CAAc6E,WAAAA,GAAc,IAAA;AAC9B,UAAA;AACA,UAAA;AAGJ;AACF,IAAA;AAEA,IAAA,SAASE,mCAAAA,CACP5J,KAAAA,EACAC,UAAAA,EACA0J,cAAAA,EAAoC;AAEpC,MAAA,MAAM5H,MAAAA,GAAS,CAAA,MAAA,EAAS/B,KAAAA,CAAAA,iEAAAA,EAAyEC,UAAAA,CAAAA,CAAAA,CAAAA;AAEjG,MAAA,MAAMxE,KAAAA,GAAQoO,gCAAgC9H,MAAAA,CAAAA;AAE9C4H,MAAAA,cAAAA,CAAeG,UAAAA,CAAWC,MAAMtO,KAAAA,CAAAA;AAEhC,MAAA,MAAM4N,kBAAkBM,cAAAA,CAAeN,eAAAA;AACvC,MAAA,IAAIA,eAAAA,EAAiB;AACnBA,QAAAA,eAAAA,CAAgBb,gBAAgBzN,IAAAA,CAAK;;;AAGnC0O,UAAAA,KAAAA,EAAOJ,eAAAA,CAAgBd,sBAAAA,GACnB,IAAI1Q,KAAAA,GAAQ4R,KAAAA,GACZzM,MAAAA;AACJiD,UAAAA;SACF,CAAA;AACF,MAAA;AACF,IAAA;AAEO,IAAA,SAAS2G,kCAAAA,CACd5G,KAAAA,EACAC,UAAAA,EACA+J,cAAAA,EACAL,cAAAA,EAAoC;AAEpC,MAAA,MAAMN,kBAAkBM,cAAAA,CAAeN,eAAAA;AACvCO,MAAAA,mCAAAA,CAAoC5J,KAAAA,EAAOC,YAAY0J,cAAAA,CAAAA;AAKvD,MAAA,IAAIN,eAAAA,EAAiB;AACnB,QAAA,IAAIA,eAAAA,CAAgBZ,8BAA8B,IAAA,EAAM;AACtDY,UAAAA,eAAAA,CAAgBZ,yBAAAA,GAA4BuB,cAAAA;AAC9C,QAAA;AACF,MAAA;AACF,IAAA;AAYO,IAAA,SAASrD,2CAAAA,CACd3G,KAAAA,EACAC,UAAAA,EACA+J,cAAAA,EACAL,cAAAA,EAAoC;AAEpC,MAAA,MAAMM,eAAAA,GAAkBN,eAAeG,UAAAA,CAAW1J,MAAAA;AAClD,MAAA,IAAI6J,eAAAA,CAAgB5J,YAAY,KAAA,EAAO;AAMrCuJ,QAAAA,mCAAAA,CAAoC5J,KAAAA,EAAOC,YAAY0J,cAAAA,CAAAA;AAKvD,QAAA,MAAMN,kBAAkBM,cAAAA,CAAeN,eAAAA;AACvC,QAAA,IAAIA,eAAAA,EAAiB;AACnB,UAAA,IAAIA,eAAAA,CAAgBZ,8BAA8B,IAAA,EAAM;AACtDY,YAAAA,eAAAA,CAAgBZ,yBAAAA,GAA4BuB,cAAAA;AAC9C,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA,MAAMH,+BAAAA,CACJ,CAAA,MAAA,EAAS7J,KAAAA,CAAAA,iEAAAA,EAAyEC,UAAAA,CAAAA,CAAAA,CAAa,CAAA;AAEnG,IAAA;AASO,IAAA,SAASwG,QAAAA,CAAS,EAAE1E,MAAAA,EAAQ/B,KAAAA,EAAK,EAAiB;AACvD,MAAA,MAAM2J,cAAAA,GAAiBhF,6BAAAA,CAAAA,oBAAAA,CAAqB5H,QAAAA,EAAQ;AACpD,MAAA,MAAMsM,kBACJM,cAAAA,IAAkBA,cAAAA,CAAe1N,IAAAA,KAAS,eAAA,GACtC0N,eAAeN,eAAAA,GACf,IAAA;AACNzB,MAAAA,oBAAAA,CAAqB5H,KAAAA,EAAO+B,QAAQsH,eAAAA,CAAAA;AACtC,IAAA;AAEO,IAAA,SAASzB,oBAAAA,CACd5H,KAAAA,EACAC,UAAAA,EACAoJ,eAAAA,EAA4C;AAE5Ca,MAAAA,cAAAA,EAAAA;AACA,MAAA,IAAIb,eAAAA,EAAiB;AACnBA,QAAAA,eAAAA,CAAgBb,gBAAgBzN,IAAAA,CAAK;;;AAGnC0O,UAAAA,KAAAA,EAAOJ,eAAAA,CAAgBd,sBAAAA,GACnB,IAAI1Q,KAAAA,GAAQ4R,KAAAA,GACZzM,MAAAA;AACJiD,UAAAA;SACF,CAAA;AACF,MAAA;AAEA7I,MAAAA,MAAAA,CAAAA,OAAAA,CAAMkR,iBAAAA,CAAkB6B,oBAAAA,CAAqBnK,KAAAA,EAAOC,UAAAA,CAAAA,CAAAA;AACtD,IAAA;AAEA,IAAA,SAASkK,oBAAAA,CAAqBnK,OAAeC,UAAAA,EAAkB;AAC7D,MAAA,OACE,CAAA,MAAA,EAASD,KAAAA,CAAAA,iEAAAA,EAAyEC,UAAAA,CAAAA,kKAAAA,CAAAA;AAItF,IAAA;AAEO,IAAA,SAASuH,kBAAkB3H,GAAAA,EAAY;AAC5C,MAAA,IACE,OAAOA,QAAQ,QAAA,IACfA,GAAAA,KAAQ,QACR,OAAQA,GAAAA,CAAYkE,YAAY,QAAA,EAChC;AACA,QAAA,OAAOqG,uBAAAA,CAAyBvK,IAAYkE,OAAO,CAAA;AACrD,MAAA;AACA,MAAA,OAAO,KAAA;AACT,IAAA;AAEA,IAAA,SAASqG,wBAAwBrI,MAAAA,EAAc;AAC7C,MAAA,OACEA,OAAOjI,QAAAA,CACL,iEAAA,CAAA,IAEFiI,MAAAA,CAAOjI,SACL,+DAAA,CAAA;AAGN,IAAA;AAEA,IAAA,IAAIsQ,wBAAwBD,oBAAAA,CAAqB,KAAA,EAAO,KAAA,CAAA,MAAY,KAAA,EAAO;AACzE,MAAA,MAAM,OAAA,cAAA,CAAA,IAAItS,KAAAA,CACR,wFAAA,GADI,mBAAA,EAAA;AAAA,QAAA,KAAA,EAAA,MAAA;AAAA,QAAA,UAAA,EAAA,KAAA;AAAA,QAAA,YAAA,EAAA;OAEN,CAAA;AACF,IAAA;AAEA,IAAA,IAAMwS,0BAAAA,GAA6B,4BAAA;AAEnC,IAAA,SAASR,gCAAgC9F,OAAAA,EAAe;AACtD,MAAA,MAAMtI,QAAQ,MAAA,CAAA,cAAA,CAAA,IAAI5D,KAAAA,CAAMkM,OAAAA,GAAV,mBAAA,EAAA;AAAA,QAAA,KAAA,EAAA,MAAA;AAAA,QAAA,UAAA,EAAA,KAAA;AAAA,QAAA,YAAA,EAAA;OAAiB,CAAA;AAC7BtI,MAAAA,KAAAA,CAAcK,MAAAA,GAASuO,0BAAAA;AACzB,MAAA,OAAO5O,KAAAA;AACT,IAAA;AAMO,IAAA,SAASgM,4BACdhM,KAAAA,EAAc;AAEd,MAAA,OACE,OAAOA,KAAAA,KAAU,QAAA,IACjBA,KAAAA,KAAU,IAAA,IACTA,KAAAA,CAAcK,MAAAA,KAAWuO,0BAAAA,IAC1B,MAAA,IAAU5O,KAAAA,IACV,SAAA,IAAaA,KAAAA,IACbA,KAAAA,YAAiB5D,KAAAA;AAErB,IAAA;AAEO,IAAA,SAASgP,oBACd2B,eAAAA,EAAqC;AAErC,MAAA,OAAOA,gBAAgBpO,MAAAA,GAAS,CAAA;AAClC,IAAA;AAEO,IAAA,SAAS2M,oBAAAA,CACduD,eACAC,aAAAA,EAAmC;AAKnCD,MAAAA,aAAAA,CAAc9B,eAAAA,CAAgBzN,IAAAA,CAAI,GAAIwP,aAAAA,CAAc/B,eAAe,CAAA;AACnE,MAAA,OAAO8B,aAAAA,CAAc9B,eAAAA;AACvB,IAAA;AAEO,IAAA,SAASnB,yBACdmB,eAAAA,EAAqC;AAErC,MAAA,OAAOA,gBACJgC,MAAAA,CACC,CAACC,WACC,OAAOA,MAAAA,CAAOhB,UAAU,QAAA,IAAYgB,MAAAA,CAAOhB,KAAAA,CAAMrP,MAAAA,GAAS,CAAA,CAAA,CAE7DsQ,GAAAA,CAAI,CAAC,EAAEzK,UAAAA,EAAYwJ,OAAK,KAAE;AACzBA,QAAAA,KAAAA,GAAQA,KAAAA,CACL1N,MAAM,IAAA,CAAA,CAINI,MAAM,CAAA,CAAA,CACNqO,MAAAA,CAAO,CAACG,IAAAA,KAAAA;AAEP,UAAA,IAAIA,IAAAA,CAAK7Q,QAAAA,CAAS,oBAAA,CAAA,EAAuB;AACvC,YAAA,OAAO,KAAA;AACT,UAAA;AAGA,UAAA,IAAI6Q,IAAAA,CAAK7Q,QAAAA,CAAS,gBAAA,CAAA,EAAmB;AACnC,YAAA,OAAO,KAAA;AACT,UAAA;AAGA,UAAA,IAAI6Q,IAAAA,CAAK7Q,QAAAA,CAAS,SAAA,CAAA,EAAY;AAC5B,YAAA,OAAO,KAAA;AACT,UAAA;AAEA,UAAA,OAAO,IAAA;QACT,CAAA,CAAA,CACCsC,KAAK,IAAA,CAAA;AACR,QAAA,OAAO,6BAA6B6D,UAAAA,CAAAA;EAAgBwJ,KAAAA,CAAAA,CAAAA;MACtD,CAAA,CAAA;AACJ,IAAA;AAEA,IAAA,SAASS,cAAAA,GAAAA;AACP,MAAA,IAAI,CAAC7B,WAAAA,EAAa;AAChB,QAAA,MAAM,OAAA,cAAA,CAAA,IAAIxQ,KAAAA,CACR,CAAA,gIAAA,CAAkI,GAD9H,mBAAA,EAAA;AAAA,UAAA,KAAA,EAAA,MAAA;AAAA,UAAA,UAAA,EAAA,KAAA;AAAA,UAAA,YAAA,EAAA;SAEN,CAAA;AACF,MAAA;AACF,IAAA;AAMO,IAAA,SAASsP,gCAAAA,GAAAA;AACd,MAAA,MAAM2C,UAAAA,GAAa,IAAIc,eAAAA,EAAAA;AACvBd,MAAAA,UAAAA,CAAWC,KAAAA,CAAM,OAAA,cAAA,CAAA,IAAInI,cAAAA,iBAAAA,CAAkB,mBAAA,GAAtB,mBAAA,EAAA;AAAA,QAAA,KAAA,EAAA,MAAA;AAAA,QAAA,UAAA,EAAA,KAAA;AAAA,QAAA,YAAA,EAAA;AAAyC,OAAA,CAAA,CAAA;AAC1D,MAAA,OAAOkI,UAAAA,CAAW1J,MAAAA;AACpB,IAAA;AAOO,IAAA,SAAS8G,8BACdrC,aAAAA,EAA4B;AAE5B,MAAA,QAAQA,cAAc5I,IAAAA;QACpB,KAAK,WAAA;QACL,KAAK,mBAAA;AACH,UAAA,MAAM6N,UAAAA,GAAa,IAAIc,eAAAA,EAAAA;AAEvB,UAAA,IAAI/F,cAAcU,WAAAA,EAAa;AAI7BV,YAAAA,aAAAA,CAAcU,WAAAA,CAAYsF,UAAAA,EAAU,CAAGzE,IAAAA,CAAK,MAAA;AAC1C0D,cAAAA,UAAAA,CAAWC,KAAAA,EAAK;YAClB,CAAA,CAAA;UACF,CAAA,MAAO;AAaL,YAAA,MAAMvE,mBAAAA,GAAAA,IAAsBlB,6BAAAA,CAAAA,sBAAAA,EAAuBO,aAAAA,CAAAA;AACnD,YAAA,IAAIW,mBAAAA,EAAqB;AACvBA,cAAAA,mBAAAA,CAAoBY,IAAAA,CAAK,UACvBH,UAAAA,CAAAA,oBAAmB,MAAM6D,UAAAA,CAAWC,KAAAA,EAAK,CAAA,CAAA;YAE7C,CAAA,MAAO;AACL9D,cAAAA,IAAAA,UAAAA,CAAAA,kBAAAA,EAAmB,MAAM6D,UAAAA,CAAWC,OAAK,CAAA;AAC3C,YAAA;AACF,UAAA;AAEA,UAAA,OAAOD,UAAAA,CAAW1J,MAAAA;QACpB,KAAK,kBAAA;QACL,KAAK,eAAA;QACL,KAAK,kBAAA;QACL,KAAK,SAAA;QACL,KAAK,OAAA;QACL,KAAK,eAAA;QACL,KAAK,gBAAA;AACH,UAAA,OAAOpD,MAAAA;AAGX;AACF,IAAA;AAEO,IAAA,SAAS8J,qBAAAA,CACd7G,YACA0J,cAAAA,EAAoC;AAEpC,MAAA,MAAMN,kBAAkBM,cAAAA,CAAeN,eAAAA;AACvC,MAAA,IAAIA,eAAAA,EAAiB;AACnBA,QAAAA,eAAAA,CAAgBb,gBAAgBzN,IAAAA,CAAK;AACnC0O,UAAAA,KAAAA,EAAOJ,eAAAA,CAAgBd,sBAAAA,GACnB,IAAI1Q,KAAAA,GAAQ4R,KAAAA,GACZzM,MAAAA;AACJiD,UAAAA;SACF,CAAA;AACF,MAAA;AACF,IAAA;AAEO,IAAA,SAASkI,sBAAsBlI,UAAAA,EAAkB;AACtD,MAAA,MAAM+E,SAAAA,GAAYU,yBAAAA,CAAAA,gBAAAA,CAAiB3I,QAAAA,EAAQ;AAC3C,MAAA,MAAM8H,aAAAA,GAAgBF,6BAAAA,CAAAA,oBAAAA,CAAqB5H,QAAAA,EAAQ;AACnD,MAAA,IAAIiI,aAAaH,aAAAA,EAAe;AAC9B,QAAA,QAAQA,cAAc5I,IAAAA;UACpB,KAAK,kBAAA;AACL,UAAA,KAAK,WAAA,EAAa;AAChB,YAAA,MAAM6O,iBAAiBjG,aAAAA,CAAckG,mBAAAA;AAErC,YAAA,IAAID,cAAAA,IAAkBA,cAAAA,CAAeE,IAAAA,GAAO,CAAA,EAAG;AAI7C5T,cAAAA,MAAAA,CAAAA,OAAAA,CAAM6T,GAAAA,CAAAA,IACJrL,sBAAAA,CAAAA,kBAAAA,EACEiF,cAAcqG,YAAAA,EACdlG,SAAAA,CAAUhF,KAAAA,EACVC,UAAAA,CAAAA,CAAAA;AAGN,YAAA;AACA,YAAA;AACF,UAAA;AACA,UAAA,KAAK,eAAA,EAAiB;AACpB,YAAA,MAAM6K,iBAAiBjG,aAAAA,CAAckG,mBAAAA;AACrC,YAAA,IAAID,cAAAA,IAAkBA,cAAAA,CAAeE,IAAAA,GAAO,CAAA,EAAG;AAC7C,cAAA,OAAOpD,oBAAAA,CACL5C,SAAAA,CAAUhF,KAAAA,EACVC,UAAAA,EACA4E,cAAcwE,eAAe,CAAA;AAEjC,YAAA;AACA,YAAA;AACF,UAAA;UACA,KAAK,mBAAA;AACH,YAAA,MAAM,MAAA,CAAA,cAAA,CAAA,IAAIvF,eAAAA,CAAAA,cAAAA,CACR,CAAA,EAAA,EAAK7D,UAAAA,CAAAA,uEAAAA,EAAoFA,UAAAA,CAAAA,+EAAAA,CAA2F,CAAA,EADhL,mBAAA,EAAA;AAAA,cAAA,KAAA,EAAA,MAAA;AAAA,cAAA,UAAA,EAAA,KAAA;AAAA,cAAA,YAAA,EAAA;aAEN,CAAA;UACF,KAAK,OAAA;UACL,KAAK,eAAA;AACH,YAAA,MAAM,MAAA,CAAA,cAAA,CAAA,IAAI6D,eAAAA,CAAAA,cAAAA,CACR,CAAA,EAAA,EAAK7D,UAAAA,CAAAA,iEAAAA,EAA8EA,UAAAA,CAAAA,+EAAAA,CAA2F,CAAA,EAD1K,mBAAA,EAAA;AAAA,cAAA,KAAA,EAAA,MAAA;AAAA,cAAA,UAAA,EAAA,KAAA;AAAA,cAAA,YAAA,EAAA;aAEN,CAAA;AAOJ;AACF,MAAA;AACF,IAAA;AAEO,IAAA,SAASmI,uBAAuBnI,UAAAA,EAAkB;AACvD,MAAA,MAAM+E,SAAAA,GAAYU,yBAAAA,CAAAA,gBAAAA,CAAiB3I,QAAAA,EAAQ;AAC3C,MAAA,MAAM8H,aAAAA,GAAgBF,6BAAAA,CAAAA,oBAAAA,CAAqB5H,QAAAA,EAAQ;AAEnD,MAAA,IAAI,CAACiI,SAAAA,EAAW;AAEd,QAAA;AACF,MAAA;AAEA,MAAA,IAAI,CAACH,aAAAA,EAAe;AAClBJ,QAAAA,IAAAA,6BAAAA,CAAAA,2BAAAA,EAA4BxE,UAAAA,CAAAA;AAC9B,MAAA;AAEA,MAAA,QAAQ4E,cAAc5I,IAAAA;AACpB,QAAA,KAAK,kBAAA,EAAoB;AACvB7E,UAAAA,MAAAA,CAAAA,OAAAA,CAAM6T,GAAAA,CAAAA,IACJrL,sBAAAA,CAAAA,kBAAAA,EACEiF,cAAcqG,YAAAA,EACdlG,SAAAA,CAAUhF,KAAAA,EACVC,UAAAA,CAAAA,CAAAA;AAGJ,UAAA;AACF,QAAA;QACA,KAAK,kBAAA;AACL,QAAA,KAAK,eAAA,EAAiB;AACpB,UAAA,IAAI+E,UAAUmE,WAAAA,EAAa;AACzB,YAAA;AACF,UAAA;AACA,UAAA,MAAM,OAAA,cAAA,CAAA,IAAIvH,cAAAA,iBAAAA,CAAkB3B,UAAAA,GAAtB,mBAAA,EAAA;AAAA,YAAA,KAAA,EAAA,MAAA;AAAA,YAAA,UAAA,EAAA,KAAA;AAAA,YAAA,YAAA,EAAA;WAAgC,CAAA;AACxC,QAAA;QACA,KAAK,WAAA;QACL,KAAK,mBAAA;AACH,UAAA,MAAM,MAAA,CAAA,cAAA,CAAA,IAAI6D,eAAAA,CAAAA,cAAAA,CACR,CAAA,EAAA,EAAK7D,UAAAA,CAAAA,oEAAAA,EAAiFA,UAAAA,CAAAA,+EAAAA,CAA2F,CAAA,EAD7K,mBAAA,EAAA;AAAA,YAAA,KAAA,EAAA,MAAA;AAAA,YAAA,UAAA,EAAA,KAAA;AAAA,YAAA,YAAA,EAAA;WAEN,CAAA;QACF,KAAK,OAAA;QACL,KAAK,gBAAA;QACL,KAAK,eAAA;AACH,UAAA,MAAM,MAAA,CAAA,cAAA,CAAA,IAAI6D,eAAAA,CAAAA,cAAAA,CACR,CAAA,EAAA,EAAK7D,UAAAA,CAAAA,iEAAAA,EAA8EA,UAAAA,CAAAA,+EAAAA,CAA2F,CAAA,EAD1K,mBAAA,EAAA;AAAA,YAAA,KAAA,EAAA,MAAA;AAAA,YAAA,UAAA,EAAA,KAAA;AAAA,YAAA,YAAA,EAAA;WAEN,CAAA;QACF,KAAK,SAAA;AACH,UAAA;AAGJ;AACF,IAAA;AAEA,IAAA,IAAMkL,gBAAAA,GAAmB,kCAAA;AAGzB,IAAA,IAAMC,mBAAAA,GACJ,qFAAA;AAcF,IAAA,IAAMC,yDAAAA,GAA4D,IAAIC,MAAAA,CACpE,CAAA,uDAAA,EAA0DF,mBAAAA,CAAAA,yCAAAA,EAA+DvF,kBAAAA,CAAAA,yBAAyB,CAAA,cAAA,CAAgB,CAAA;AAGpK,IAAA,IAAM0F,mBAAmB,IAAID,MAAAA,CAC3B,CAAA,UAAA,EAAa3F,kBAAAA,CAAAA,sBAAsB,CAAA,QAAA,CAAU,CAAA;AAE/C,IAAA,IAAM6F,mBAAmB,IAAIF,MAAAA,CAC3B,CAAA,UAAA,EAAaxF,kBAAAA,CAAAA,sBAAsB,CAAA,QAAA,CAAU,CAAA;AAE/C,IAAA,IAAM2F,iBAAiB,IAAIH,MAAAA,CAAO,CAAA,UAAA,EAAa1F,kBAAAA,CAAAA,oBAAoB,CAAA,QAAA,CAAU,CAAA;AAEtE,IAAA,SAASmC,yBAAAA,CACd/C,SAAAA,EACA0G,cAAAA,EACAC,iBAAAA,EACApB,aAAAA,EAAmC;AAEnC,MAAA,IAAIkB,cAAAA,CAAeG,IAAAA,CAAKF,cAAAA,CAAAA,EAAiB;AAEvC,QAAA;MACF,CAAA,MAAA,IAAWH,gBAAAA,CAAiBK,IAAAA,CAAKF,cAAAA,CAAAA,EAAiB;AAChDC,QAAAA,iBAAAA,CAAkBhD,kBAAAA,GAAqB,IAAA;AACvC,QAAA;MACF,CAAA,MAAA,IAAW6C,gBAAAA,CAAiBI,IAAAA,CAAKF,cAAAA,CAAAA,EAAiB;AAChDC,QAAAA,iBAAAA,CAAkB9C,kBAAAA,GAAqB,IAAA;AACvC,QAAA;MACF,CAAA,MAAA,IACEwC,yDAAAA,CAA0DO,IAAAA,CACxDF,cAAAA,CAAAA,EAEF;AAIAC,QAAAA,iBAAAA,CAAkB7C,iBAAAA,GAAoB,IAAA;AACtC6C,QAAAA,iBAAAA,CAAkBjD,oBAAAA,GAAuB,IAAA;AACzC,QAAA;MACF,CAAA,MAAA,IAAWyC,gBAAAA,CAAiBS,IAAAA,CAAKF,cAAAA,CAAAA,EAAiB;AAGhDC,QAAAA,iBAAAA,CAAkB7C,iBAAAA,GAAoB,IAAA;AACtC,QAAA;AACF,MAAA,CAAA,MAAA,IAAWyB,cAAc9B,yBAAAA,EAA2B;AAElDkD,QAAAA,iBAAAA,CAAkB5C,aAAAA,CAAchO,IAAAA,CAC9BwP,aAAAA,CAAc9B,yBAAyB,CAAA;AAEzC,QAAA;MACF,CAAA,MAAO;AACL,QAAA,MAAM1E,OAAAA,GACJ,CAAA,OAAA,EAAUiB,SAAAA,CAAUhF,KAAK,CAAA,iMAAA,CAAA;AAI3B,QAAA,MAAMvE,KAAAA,GAAQoQ,oCAAAA,CAAqC9H,OAAAA,EAAS2H,cAAAA,CAAAA;AAC5DC,QAAAA,iBAAAA,CAAkB5C,aAAAA,CAAchO,KAAKU,KAAAA,CAAAA;AACrC,QAAA;AACF,MAAA;AACF,IAAA;AAEO,IAAA,SAASwM,8BAAAA,CACdjD,SAAAA,EACA0G,cAAAA,EACAC,iBAAAA,EACApB,aAAAA,EAAmC;AAEnC,MAAA,IAAIkB,cAAAA,CAAeG,IAAAA,CAAKF,cAAAA,CAAAA,EAAiB;AAEvC,QAAA;MACF,CAAA,MAAA,IAAWH,gBAAAA,CAAiBK,IAAAA,CAAKF,cAAAA,CAAAA,EAAiB;AAChD,QAAA,MAAM3H,OAAAA,GAAU,CAAA,OAAA,EAAUiB,SAAAA,CAAUhF,KAAK,CAAA,wRAAA,CAAA;AACzC,QAAA,MAAMvE,KAAAA,GAAQoQ,oCAAAA,CAAqC9H,OAAAA,EAAS2H,cAAAA,CAAAA;AAC5DC,QAAAA,iBAAAA,CAAkB/C,eAAAA,GAAkBnN,KAAAA;AACpC,QAAA;MACF,CAAA,MAAA,IAAW+P,gBAAAA,CAAiBI,IAAAA,CAAKF,cAAAA,CAAAA,EAAiB;AAChD,QAAA,MAAM3H,OAAAA,GAAU,CAAA,OAAA,EAAUiB,SAAAA,CAAUhF,KAAK,CAAA,4OAAA,CAAA;AACzC,QAAA,MAAMvE,KAAAA,GAAQoQ,oCAAAA,CAAqC9H,OAAAA,EAAS2H,cAAAA,CAAAA;AAC5DC,QAAAA,iBAAAA,CAAkB5C,aAAAA,CAAchO,KAAKU,KAAAA,CAAAA;AACrC,QAAA;MACF,CAAA,MAAA,IACE4P,yDAAAA,CAA0DO,IAAAA,CACxDF,cAAAA,CAAAA,EAEF;AAIAC,QAAAA,iBAAAA,CAAkB7C,iBAAAA,GAAoB,IAAA;AACtC6C,QAAAA,iBAAAA,CAAkBjD,oBAAAA,GAAuB,IAAA;AACzC,QAAA;MACF,CAAA,MAAA,IAAWyC,gBAAAA,CAAiBS,IAAAA,CAAKF,cAAAA,CAAAA,EAAiB;AAGhDC,QAAAA,iBAAAA,CAAkB7C,iBAAAA,GAAoB,IAAA;AACtC,QAAA;AACF,MAAA,CAAA,MAAA,IAAWyB,cAAc9B,yBAAAA,EAA2B;AAElDkD,QAAAA,iBAAAA,CAAkB5C,aAAAA,CAAchO,IAAAA,CAC9BwP,aAAAA,CAAc9B,yBAAyB,CAAA;AAEzC,QAAA;MACF,CAAA,MAAO;AACL,QAAA,MAAM1E,OAAAA,GAAU,CAAA,OAAA,EAAUiB,SAAAA,CAAUhF,KAAK,CAAA,yNAAA,CAAA;AACzC,QAAA,MAAMvE,KAAAA,GAAQoQ,oCAAAA,CAAqC9H,OAAAA,EAAS2H,cAAAA,CAAAA;AAC5DC,QAAAA,iBAAAA,CAAkB5C,aAAAA,CAAchO,KAAKU,KAAAA,CAAAA;AACrC,QAAA;AACF,MAAA;AACF,IAAA;AAEO,IAAA,SAASyM,6BAAAA,CACdlD,SAAAA,EACA0G,cAAAA,EACAC,iBAAAA,EACApB,aAAAA,EAAmC;AAEnC,MAAA,IAAIkB,cAAAA,CAAeG,IAAAA,CAAKF,cAAAA,CAAAA,EAAiB;AAEvC,QAAA;MACF,CAAA,MAAA,IAAWH,gBAAAA,CAAiBK,IAAAA,CAAKF,cAAAA,CAAAA,EAAiB;AAChD,QAAA,MAAM3H,OAAAA,GAAU,CAAA,OAAA,EAAUiB,SAAAA,CAAUhF,KAAK,CAAA,8ZAAA,CAAA;AACzC,QAAA,MAAMvE,KAAAA,GAAQoQ,oCAAAA,CAAqC9H,OAAAA,EAAS2H,cAAAA,CAAAA;AAC5DC,QAAAA,iBAAAA,CAAkB/C,eAAAA,GAAkBnN,KAAAA;AACpC,QAAA;MACF,CAAA,MAAA,IAAW+P,gBAAAA,CAAiBI,IAAAA,CAAKF,cAAAA,CAAAA,EAAiB;AAChD,QAAA,MAAM3H,OAAAA,GAAU,CAAA,OAAA,EAAUiB,SAAAA,CAAUhF,KAAK,CAAA,6RAAA,CAAA;AACzC,QAAA,MAAMvE,KAAAA,GAAQoQ,oCAAAA,CAAqC9H,OAAAA,EAAS2H,cAAAA,CAAAA;AAC5DC,QAAAA,iBAAAA,CAAkB5C,aAAAA,CAAchO,KAAKU,KAAAA,CAAAA;AACrC,QAAA;MACF,CAAA,MAAA,IACE4P,yDAAAA,CAA0DO,IAAAA,CACxDF,cAAAA,CAAAA,EAEF;AAIAC,QAAAA,iBAAAA,CAAkB7C,iBAAAA,GAAoB,IAAA;AACtC6C,QAAAA,iBAAAA,CAAkBjD,oBAAAA,GAAuB,IAAA;AACzC,QAAA;MACF,CAAA,MAAA,IAAWyC,gBAAAA,CAAiBS,IAAAA,CAAKF,cAAAA,CAAAA,EAAiB;AAGhDC,QAAAA,iBAAAA,CAAkB7C,iBAAAA,GAAoB,IAAA;AACtC,QAAA;AACF,MAAA,CAAA,MAAA,IAAWyB,cAAc9B,yBAAAA,EAA2B;AAElDkD,QAAAA,iBAAAA,CAAkB5C,aAAAA,CAAchO,IAAAA,CAC9BwP,aAAAA,CAAc9B,yBAAyB,CAAA;AAEzC,QAAA;MACF,CAAA,MAAO;AACL,QAAA,MAAM1E,OAAAA,GAAU,CAAA,OAAA,EAAUiB,SAAAA,CAAUhF,KAAK,CAAA,0QAAA,CAAA;AACzC,QAAA,MAAMvE,KAAAA,GAAQoQ,oCAAAA,CAAqC9H,OAAAA,EAAS2H,cAAAA,CAAAA;AAC5DC,QAAAA,iBAAAA,CAAkB5C,aAAAA,CAAchO,KAAKU,KAAAA,CAAAA;AACrC,QAAA;AACF,MAAA;AACF,IAAA;AAMA,IAAA,SAASoQ,oCAAAA,CACP9H,SACA2H,cAAAA,EAAsB;AAEtB,MAAA,MAAMI,UAAAA,GACJxU,OAAAA,CAAQC,GAAAA,CAAIC,QAAAA,KAAa,YAAA,IAAgBJ,MAAAA,CAAAA,OAAAA,CAAM2U,iBAAAA,GAC3C3U,MAAAA,CAAAA,OAAAA,CAAM2U,iBAAAA,EAAiB,GACvB,IAAA;AAEN,MAAA,MAAMtQ,QAAQ,MAAA,CAAA,cAAA,CAAA,IAAI5D,KAAAA,CAAMkM,OAAAA,GAAV,mBAAA,EAAA;AAAA,QAAA,KAAA,EAAA,MAAA;AAAA,QAAA,UAAA,EAAA,KAAA;AAAA,QAAA,YAAA,EAAA;OAAiB,CAAA;AAG/BtI,MAAAA,KAAAA,CAAMgO,KAAAA,GAAQhO,KAAAA,CAAMD,IAAAA,GAAO,IAAA,GAAOuI,WAAW+H,UAAAA,IAAcJ,cAAAA,CAAAA;AAC3D,MAAA,OAAOjQ,KAAAA;AACT,IAAA;AAEO,IAAA,IAAKiL,YAAAA,6BAAAA,aAAAA,EAAAA;;;;AAAAA,MAAAA,OAAAA,aAAAA;;AAML,IAAA,SAASgB,yBAAAA,CACd1C,WACAvJ,KAAAA,EAAY;AAEZuQ,MAAAA,OAAAA,CAAQvQ,MAAMA,KAAAA,CAAAA;AAEd,MAAA,IAAI,CAACuJ,UAAUC,GAAAA,EAAK;AAClB,QAAA,IAAID,UAAUiH,sBAAAA,EAAwB;AACpCD,UAAAA,OAAAA,CAAQvQ,KAAAA,CACN,CAAA,iIAAA,EAAoIuJ,SAAAA,CAAUhF,KAAK,CAAA,2CAAA,CAA6C,CAAA;QAEpM,CAAA,MAAO;AACLgM,UAAAA,OAAAA,CAAQvQ,KAAAA,CAAM,CAAA;AACwDuJ,0EAAAA,EAAAA,SAAAA,CAAUhF,KAAK,CAAA;AACW,qGAAA,CAAA,CAAA;AAClG,QAAA;AACF,MAAA;AACF,IAAA;AAEO,IAAA,SAAS6H,wBAAAA,CACd7C,SAAAA,EACAkH,OAAAA,EACAP,iBAAAA,EACArB,aAAAA,EAAmC;AAEnC,MAAA,IAAIA,cAAc7B,yBAAAA,EAA2B;AAC3Cf,QAAAA,yBAAAA,CACE1C,SAAAA,EACAsF,cAAc7B,yBAAyB,CAAA;AAEzC,QAAA,MAAM,IAAIpG,yBAAAA,qBAAAA,EAAqB;AACjC,MAAA;AAEA,MAAA,IAAI6J,YAAAA,CAAAA,EAA+B;AACjC,QAAA,IAAIP,kBAAkBjD,oBAAAA,EAAsB;AAI1C,UAAA;AACF,QAAA;AAKA,QAAA,MAAMK,gBAAgB4C,iBAAAA,CAAkB5C,aAAAA;AACxC,QAAA,IAAIA,aAAAA,CAAc3O,SAAS,CAAA,EAAG;AAC5B,UAAA,KAAA,IAASxD,CAAAA,GAAI,CAAA,EAAGA,CAAAA,GAAImS,aAAAA,CAAc3O,QAAQxD,CAAAA,EAAAA,EAAK;AAC7C8Q,YAAAA,yBAAAA,CAA0B1C,SAAAA,EAAW+D,aAAAA,CAAcnS,CAAAA,CAAE,CAAA;AACvD,UAAA;AAEA,UAAA,MAAM,IAAIyL,yBAAAA,qBAAAA,EAAqB;AACjC,QAAA;AAMA,QAAA,IAAIsJ,kBAAkB9C,kBAAAA,EAAoB;AACxCmD,UAAAA,OAAAA,CAAQvQ,KAAAA,CACN,CAAA,OAAA,EAAUuJ,SAAAA,CAAUhF,KAAK,CAAA,8QAAA,CAAgR,CAAA;AAE3S,UAAA,MAAM,IAAIqC,yBAAAA,qBAAAA,EAAqB;AACjC,QAAA;AAEA,QAAA,IAAI6J,YAAAA,CAAAA,EAAgC;AAIlCF,UAAAA,OAAAA,CAAQvQ,KAAAA,CACN,CAAA,OAAA,EAAUuJ,SAAAA,CAAUhF,KAAK,CAAA,wGAAA,CAA0G,CAAA;AAErI,UAAA,MAAM,IAAIqC,yBAAAA,qBAAAA,EAAqB;AACjC,QAAA;MACF,CAAA,MAAO;AACL,QAAA,IACEsJ,iBAAAA,CAAkB7C,iBAAAA,KAAsB,KAAA,IACxC6C,iBAAAA,CAAkBhD,kBAAAA,EAClB;AACAqD,UAAAA,OAAAA,CAAQvQ,KAAAA,CACN,CAAA,OAAA,EAAUuJ,SAAAA,CAAUhF,KAAK,CAAA,8PAAA,CAAgQ,CAAA;AAE3R,UAAA,MAAM,IAAIqC,yBAAAA,qBAAAA,EAAqB;AACjC,QAAA;AACF,MAAA;AACF,IAAA;AAEO,IAAA,SAASkF,sCAAAA,CACdvC,SAAAA,EACAkH,OAAAA,EACAP,iBAAAA,EAAyC;AAEzC,MAAA,IAAIA,kBAAkBjD,oBAAAA,EAAsB;AAI1C,QAAA,OAAO,EAAA;AACT,MAAA;AAEA,MAAA,IAAIwD,YAAAA,CAAAA,EAA+B;AAIjC,QAAA,MAAMnD,gBAAgB4C,iBAAAA,CAAkB5C,aAAAA;AACxC,QAAA,IAAIA,aAAAA,CAAc3O,SAAS,CAAA,EAAG;AAC5B,UAAA,OAAO2O,aAAAA;AACT,QAAA;AAEA,QAAA,IAAImD,YAAAA,CAAAA,EAAgC;AAIlC,UAAA,OAAO;YACL,MAAA,CAAA,cAAA,CAAA,IAAIpI,eAAAA,CAAAA,cAAAA,CACF,UAAUkB,SAAAA,CAAUhF,KAAK,CAAA,8EAAA,CAAgF,CAAA,EAD3G,mBAAA,EAAA;AAAA,cAAA,KAAA,EAAA,MAAA;AAAA,cAAA,UAAA,EAAA,KAAA;AAAA,cAAA,YAAA,EAAA;aAEA;;AAEJ,QAAA;MACF,CAAA,MAAO;AAEL,QAAA,IACE2L,iBAAAA,CAAkB7C,sBAAsB,KAAA,IACxC6C,iBAAAA,CAAkB5C,cAAc3O,MAAAA,KAAW,CAAA,IAC3CuR,kBAAkB/C,eAAAA,EAClB;AACA,UAAA,OAAO;YAAC+C,iBAAAA,CAAkB/C;;AAC5B,QAAA;AACF,MAAA;AAEA,MAAA,OAAO,EAAA;AACT,IAAA;AAEO,IAAA,SAASxB,sBAAAA,CACduC,gBACAwC,MAAAA,EAAkB;AAElB,MAAA,IAAIxC,eAAenE,mBAAAA,EAAqB;AACtC,QAAA,OAAOmE,cAAAA,CAAenE,mBAAAA,CAAoBY,IAAAA,CAAK,MAAM+F,MAAAA,CAAAA;AACvD,MAAA;AACA,MAAA,OAAOA,MAAAA;AACT,IAAA;;;;;;;;;;qCCr/BgBC,kBAAAA,EAAAA;;;AAAAA,QAAAA,OAAAA,gBAAAA;;;;;;;;;AAAT,IAAA,SAASA,iBAAiB3Q,KAAAA,EAAc;AAC7C,MAAA,IAAA,IACEuG,kBAAAA,CAAAA,iBAAAA,EAAkBvG,KAAAA,SAClBoG,aAAAA,CAAAA,mBAAAA,EAAoBpG,KAAAA,SACpByG,mBAAAA,CAAAA,oBAAAA,EAAqBzG,KAAAA,SACrB+L,iBAAAA,CAAAA,iBAAAA,EAAkB/L,KAAAA,CAAAA,IAAAA,IAClB8F,WAAAA,CAAAA,UAAAA,EAAW9F,KAAAA,CAAAA,IAAAA,IACXiE,sBAAAA,CAAAA,8BAAAA,EAA+BjE,KAAAA,CAAAA,IAAAA,IAC/BgM,iBAAAA,CAAAA,2BAAAA,EAA4BhM,KAAAA,CAAAA,EAC5B;AACA,QAAA,MAAMA,KAAAA;AACR,MAAA;AAEA,MAAA,IAAIA,KAAAA,YAAiB5D,KAAAA,IAAS,OAAA,IAAW4D,KAAAA,EAAO;AAC9C2Q,QAAAA,gBAAAA,CAAiB3Q,MAAM4Q,KAAK,CAAA;AAC9B,MAAA;AACF,IAAA;;;;;;;;;;;;;;;qCCvBgBD,kBAAAA,EAAAA;;;AAAAA,QAAAA,OAAAA,gBAAAA;;;;;AAAT,IAAA,SAASA,iBAAiB3Q,KAAAA,EAAc;AAC7C,MAAA,IAAA,IAAIuG,mBAAAA,iBAAAA,EAAkBvG,KAAAA,SAAUoG,aAAAA,CAAAA,mBAAAA,EAAoBpG,KAAAA,CAAAA,EAAQ;AAC1D,QAAA,MAAMA,KAAAA;AACR,MAAA;AAEA,MAAA,IAAIA,KAAAA,YAAiB5D,KAAAA,IAAS,OAAA,IAAW4D,KAAAA,EAAO;AAC9C2Q,QAAAA,gBAAAA,CAAiB3Q,MAAM4Q,KAAK,CAAA;AAC9B,MAAA;AACF,IAAA;;;;;;;;;;ACXA,IAAA,wBAAA,GAAA,UAAA,CAAA;;;;;qCAOaD,kBAAAA,EAAAA;;;AAAAA,QAAAA,OAAAA,gBAAAA;;;AAAN,IAAA,IAAMA,mBACX,OAAOlO,MAAAA,KAAW,WAAA,GAEZC,+BAAAA,EAAAA,CACAiO,mBAEAjO,gCAAAA,EAAAA,CACAiO,gBAAAA;;;;;;;;;;;;;;;;;;;;;;ACACzU,MAAAA,uBAAAA,EAAuB,WAAA;eAAvBA,wBAAAA,CAAAA,uBAAAA;;AALAiE,MAAAA,YAAAA,EAAY,WAAA;eAAZA,cAAAA,CAAAA,YAAAA;;AAEA2D,MAAAA,SAAAA,EAAS,WAAA;eAATA,UAAAA,CAAAA,SAAAA;;AADAF,MAAAA,QAAAA,EAAQ,WAAA;eAARA,SAAAA,CAAAA,QAAAA;;AAFUrB,MAAAA,iBAAAA,EAAiB,WAAA;eAAjBA,SAAAA,CAAAA,iBAAAA;;AAAVC,MAAAA,QAAAA,EAAQ,WAAA;eAARA,SAAAA,CAAAA,QAAAA;;AAIAwB,MAAAA,YAAAA,EAAY,WAAA;eAAZA,aAAAA,CAAAA,YAAAA;;AAVOnE,MAAAA,kCAAAA,EAAkC,WAAA;AAAlCA,QAAAA,OAAAA,kCAAAA;;AAWP8Q,MAAAA,gBAAAA,EAAgB,WAAA;eAAhBA,gBAAAA,CAAAA,gBAAAA;;;;;;;;;;AAXF,IAAA,SAAS9Q,kCAAAA,GAAAA;AACd,MAAA,MAAM,OAAA,cAAA,CAAA,IAAIzD,KAAAA,CACR,sEAAA,GADI,mBAAA,EAAA;AAAA,QAAA,KAAA,EAAA,MAAA;AAAA,QAAA,UAAA,EAAA,KAAA;AAAA,QAAA,YAAA,EAAA;OAEN,CAAA;AACF,IAAA;;;;;;;;;;;;;;;;;;;;;;;;AC4REF,MAAAA,uBAAAA,EAAuB,WAAA;eAAvBA,gCAAAA,CAAAA,uBAAAA;;AAQAiE,MAAAA,YAAAA,EAAY,WAAA;eAAZA,sBAAAA,CAAAA,YAAAA;;AAhLAZ,MAAAA,yBAAAA,EAAyB,WAAA;eAAzBA,gCAAAA,CAAAA,yBAAAA;;AA4KAuE,MAAAA,SAAAA,EAAS,WAAA;eAATA,sBAAAA,CAAAA,SAAAA;;AADAF,MAAAA,QAAAA,EAAQ,WAAA;eAARA,sBAAAA,CAAAA,QAAAA;;AAIArB,MAAAA,iBAAAA,EAAiB,WAAA;eAAjBA,sBAAAA,CAAAA,iBAAAA;;AADAC,MAAAA,QAAAA,EAAQ,WAAA;eAARA,sBAAAA,CAAAA,QAAAA;;AADAwB,MAAAA,YAAAA,EAAY,WAAA;eAAZA,sBAAAA,CAAAA,YAAAA;;AAXOnE,MAAAA,kCAAAA,EAAkC,WAAA;eAAlCA,wBAAAA,CAAAA,kCAAAA;;AAeP8Q,MAAAA,gBAAAA,EAAgB,WAAA;eAAhBA,sBAAAA,CAAAA,gBAAAA;;AA/HcE,MAAAA,SAAAA,EAAS,WAAA;AAATA,QAAAA,OAAAA,SAAAA;;AAtEAC,MAAAA,WAAAA,EAAW,WAAA;AAAXA,QAAAA,OAAAA,WAAAA;;AA2CAC,MAAAA,SAAAA,EAAS,WAAA;AAATA,QAAAA,OAAAA,UAAAA;;AA1FAC,MAAAA,eAAAA,EAAe,WAAA;AAAfA,QAAAA,OAAAA,eAAAA;;AA4MAC,MAAAA,wBAAAA,EAAwB,WAAA;AAAxBA,QAAAA,OAAAA,wBAAAA;;AA7CAC,MAAAA,yBAAAA,EAAyB,WAAA;AAAzBA,QAAAA,OAAAA,yBAAAA;;AA3Fd1R,MAAAA,qBAAAA,EAAqB,WAAA;eAArBA,gCAAAA,CAAAA,qBAAAA;;;;AAzH8C,IAAA,IAAA,MAAA,mBAAA,yBAAA,CAAA,CAAA,CAAA,SAAA,CAAA,OAAA,CAAA,CAAA;;;;;;;AAkBhD,IAAA,IAAMkN,qBAAAA,GACJ,OAAOjK,MAAAA,KAAW,WAAA,GAEZC,4BACAgK,qBAAAA,GACFnL,MAAAA;AAEN,IAAA,IAAMoL,sBAAAA,GACJ,OAAOlK,MAAAA,KAAW,WAAA,GAEZC,4BACAiK,sBAAAA,GACFpL,MAAAA;AAuBC,IAAA,SAASyP,eAAAA,GAAAA;AACdrE,MAAAA,sBAAAA,GAAyB,mBAAA,CAAA;AAEzB,MAAA,MAAMxO,YAAAA,GAAAA,IAAewB,MAAAA,CAAAA,UAAAA,EAAW7C,iCAAAA,mBAAmB,CAAA;AAKnD,MAAA,MAAMqU,oBAAAA,GAAAA,IAAuBC,MAAAA,CAAAA,OAAAA,EAAQ,MAAA;AACnC,QAAA,IAAI,CAACjT,YAAAA,EAAc;AAGjB,UAAA,OAAO,IAAA;AACT,QAAA;AAEA,QAAA,OAAO,IAAIjC,gCAAAA,CAAAA,uBAAAA,CAAwBiC,YAAAA,CAAAA;MACrC,CAAA,EAAG;AAACA,QAAAA;AAAa,OAAA,CAAA;AAGjB,MAAA,IAAItC,QAAQC,GAAAA,CAAIC,QAAAA,KAAa,YAAA,IAAgB,KAAA,IAASJ,OAAAA,OAAAA,EAAO;AAC3D,QAAA,MAAM0V,kBAAAA,GAAAA,IAAqB7B,MAAAA,CAAAA,GAAAA,EAAI7S,iCAAAA,yBAAyB,CAAA;AACxD,QAAA,IAAI0U,kBAAAA,EAAoB;AACtB,UAAA,OAAA,IAAO7B,MAAAA,CAAAA,GAAAA,EAAI6B,kBAAAA,CAAmBlT,YAAY,CAAA;AAC5C,QAAA;AACF,MAAA;AAEA,MAAA,OAAOgT,oBAAAA;AACT,IAAA;AAoBO,IAAA,SAASL,WAAAA,GAAAA;AACdpE,MAAAA,qBAAAA,GAAwB,eAAA,CAAA;AAIxB,MAAA,MAAM4E,QAAAA,GAAAA,IAAW3R,MAAAA,CAAAA,UAAAA,EAAW9C,iCAAAA,eAAe,CAAA;AAG3C,MAAA,IAAIhB,QAAQC,GAAAA,CAAIC,QAAAA,KAAa,YAAA,IAAgB,KAAA,IAASJ,OAAAA,OAAAA,EAAO;AAC3D,QAAA,MAAM0V,kBAAAA,GAAAA,IAAqB7B,MAAAA,CAAAA,GAAAA,EAAI7S,iCAAAA,yBAAyB,CAAA;AACxD,QAAA,IAAI0U,kBAAAA,EAAoB;AACtB,UAAA,OAAA,IAAO7B,MAAAA,CAAAA,GAAAA,EAAI6B,kBAAAA,CAAmBC,QAAQ,CAAA;AACxC,QAAA;AACF,MAAA;AAEA,MAAA,OAAOA,QAAAA;AACT,IAAA;AA2BO,IAAA,SAASP,UAAAA,GAAAA;AACd,MAAA,MAAMQ,MAAAA,GAAAA,IAAS5R,MAAAA,CAAAA,UAAAA,EAAWrE,+BAAAA,gBAAgB,CAAA;AAC1C,MAAA,IAAIiW,WAAW,IAAA,EAAM;AACnB,QAAA,MAAM,OAAA,cAAA,CAAA,IAAInV,KAAAA,CAAM,6CAAA,GAAV,mBAAA,EAAA;AAAA,UAAA,KAAA,EAAA,MAAA;AAAA,UAAA,UAAA,EAAA,KAAA;AAAA,UAAA,YAAA,EAAA;SAAuD,CAAA;AAC/D,MAAA;AAEA,MAAA,OAAOmV,MAAAA;AACT,IAAA;AAoBO,IAAA,SAASV,SAAAA,GAAAA;AACdnE,MAAAA,qBAAAA,GAAwB,aAAA,CAAA;AAExB,MAAA,MAAM8E,MAAAA,GAAAA,IAAS7R,MAAAA,CAAAA,UAAAA,EAAW/C,iCAAAA,iBAAiB,CAAA;AAG3C,MAAA,IAAIf,QAAQC,GAAAA,CAAIC,QAAAA,KAAa,YAAA,IAAgB,KAAA,IAASJ,OAAAA,OAAAA,EAAO;AAC3D,QAAA,MAAM0V,kBAAAA,GAAAA,IAAqB7B,MAAAA,CAAAA,GAAAA,EAAI7S,iCAAAA,yBAAyB,CAAA;AACxD,QAAA,IAAI0U,kBAAAA,EAAoB;AACtB,UAAA,OAAA,IAAO7B,MAAAA,CAAAA,GAAAA,EAAI6B,kBAAAA,CAAmBG,MAAM,CAAA;AACtC,QAAA;AACF,MAAA;AAEA,MAAA,OAAOA,MAAAA;AACT,IAAA;AA4BO,IAAA,SAASN,yBAAAA,CACdxS,mBAA2B,UAAA,EAAU;AAErCgO,MAAAA,qBAAAA,GAAwB,6BAAA,CAAA;AAExB,MAAA,MAAM+E,OAAAA,GAAAA,IAAU9R,MAAAA,CAAAA,UAAAA,EAAWnE,+BAAAA,mBAAmB,CAAA;AAE9C,MAAA,IAAI,CAACiW,SAAS,OAAO,IAAA;AAGrB,MAAA,IAAI5V,QAAQC,GAAAA,CAAIC,QAAAA,KAAa,YAAA,IAAgB,KAAA,IAASJ,OAAAA,OAAAA,EAAO;AAC3D,QAAA,MAAM0V,kBAAAA,GAAAA,IAAqB7B,MAAAA,CAAAA,GAAAA,EAAI7S,iCAAAA,yBAAyB,CAAA;AACxD,QAAA,IAAI0U,kBAAAA,EAAoB;AACtB,UAAA,MAAMpU,OAAAA,GACJoU,kBAAAA,CAAmBK,8BAAAA,EAAgCxM,GAAAA,CAAIxG,gBAAAA,CAAAA;AACzD,UAAA,IAAIzB,OAAAA,EAAS;AAGX,YAAA,OAAA,IAAOuS,MAAAA,CAAAA,GAAAA,EAAIvS,OAAAA,CAAAA;AACb,UAAA;AACF,QAAA;AACF,MAAA;AAEA,MAAA,OAAA,IAAOU,QAAAA,CAAAA,4BAAAA,EAA6B8T,OAAAA,CAAQE,YAAYjT,gBAAAA,CAAAA;AAC1D,IAAA;AAqBO,IAAA,SAASuS,wBAAAA,CACdvS,mBAA2B,UAAA,EAAU;AAErCgO,MAAAA,qBAAAA,GAAwB,4BAAA,CAAA;AACxB,MAAA,MAAM2E,kBAAAA,GAAAA,IAAqB1R,MAAAA,CAAAA,UAAAA,EAAWhD,iCAAAA,yBAAyB,CAAA;AAC/D,MAAA,MAAMiV,sBAAAA,GAAyBV,0BAA0BxS,gBAAAA,CAAAA;AAGzD,MAAA,IACE7C,QAAQC,GAAAA,CAAIC,QAAAA,KAAa,gBACzBsV,kBAAAA,IACA,KAAA,IAAS1V,OAAAA,OAAAA,EACT;AACA,QAAA,MAAMsB,OAAAA,GACJoU,kBAAAA,CAAmBQ,6BAAAA,EAA+B3M,GAAAA,CAAIxG,gBAAAA,CAAAA;AACxD,QAAA,IAAIzB,OAAAA,EAAS;AAGX,UAAA,OAAA,IAAOuS,MAAAA,CAAAA,GAAAA,EAAIvS,OAAAA,CAAAA;AACb,QAAA;AACF,MAAA;AAEA,MAAA,OAAA,IAAOQ,QAAAA,CAAAA,4BAAAA,EAA6BmU,sBAAAA,EAAwBlT,gBAAAA,CAAAA;AAC9D,IAAA;;;;;;;;;;AC1RA,IAAAoT,mBAAAA,GAAA,UAAA,CAAA;AAAA,EAAA,iCAAA,CAAA7W,SAAA,EAAA,MAAA,EAAA;AAAA,IAAA,MAAA,CAAO,OAAA,GAAU,kBAAA,EAAA;AAAA,EAAA;AAAA,CAAA,CAAA;ACyCV,IAAM,MAAA,GAAmC;EAC9C,OAAA,EAAS;IACP,IAAA,EAAM,SAAA;IACN,MAAA,EAAQ;MACN,IAAA,EAAM,uKAAA;MACN,QAAA,EAAU;QACR,OAAA,EAAS,4GAAA;QACT,SAAA,EAAW,2IAAA;QACX,OAAA,EAAS,4GAAA;QACT,MAAA,EAAQ,wHAAA;QACR,OAAA,EAAS,4GAAA;QACT,IAAA,EAAM,mGAAA;QACN,OAAA,EAAS,+GAAA;QACT,KAAA,EAAO,4EAAA;QACP,IAAA,EAAM;AACR,OAAA;MACA,KAAA,EAAO;QACL,EAAA,EAAI,qBAAA;QACJ,EAAA,EAAI,uBAAA;QACJ,EAAA,EAAI,mBAAA;QACJ,EAAA,EAAI;AACN,OAAA;MACA,QAAA,EAAU;AACZ,KAAA;IACA,MAAA,EAAQ;MACN,IAAA,EAAM,6TAAA;MACN,KAAA,EAAO;QACL,EAAA,EAAI,qBAAA;QACJ,EAAA,EAAI,uBAAA;QACJ,EAAA,EAAI,mBAAA;QACJ,EAAA,EAAI;AACN,OAAA;MACA,QAAA,EAAU;AACZ;AACF,GAmCF,CAAA;AC7FA,IAAM,YAAA,GAAe,cAA6C,MAAS,CAAA;AAEpE,SAAS,QAAA,GAAW;AACzB,EAAA,MAAM,OAAA,GAAU,WAAW,YAAY,CAAA;AAGvC,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,MAAM,WAAW,MAAM;AACrB,MAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,aAAA,EAAe;AAC1C,QAAA,OAAA,CAAQ,KAAK,iIAAiI,CAAA;AAChJ,MAAA;AACF,IAAA,CAAA;AAEA,IAAA,OAAO;AACL,MAAA,KAAA,EAAO,MAAA,CAAO,OAAA;MACd,SAAA,EAAW,SAAA;AACX,MAAA,QAAA,EAAU,MAAM,QAAA,EAAS;MACzB,SAAA,EAAW,OAAA;AACX,MAAA,YAAA,EAAc,MAAM,QAAA,EAAS;AAC7B,MAAA,eAAA,EAAiB,MAAM,QAAA,EAAS;MAChC,iBAAA,EAAmB;AACrB,KAAA;AACF,EAAA;AAEA,EAAA,OAAO,OAAA;AACT;AC5BO,IAAM,SAAgC,CAAC;EAC5C,OAAA,GAAU,SAAA;EACV,IAAA,GAAO,IAAA;EACP,SAAA,GAAY,EAAA;AACZ,EAAA,QAAA;AACA,EAAA,QAAA;AACA,EAAA,QAAA;AACA,EAAA,SAAA;EACA,QAAA,GAAW,KAAA;EACX,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,EAAE,KAAA,EAAM,GAAI,QAAA,EAAS;AAE3B,EAAA,MAAM,UAAA,GAAa,MAAM,MAAA,CAAO,IAAA;AAChC,EAAA,MAAM8W,cAAAA,GAAgB,KAAA,CAAM,MAAA,CAAO,QAAA,CAAS,OAAO,CAAA;AACnD,EAAA,MAAMC,WAAAA,GAAa,KAAA,CAAM,MAAA,CAAO,KAAA,CAAM,IAAI,CAAA;AAC1C,EAAA,MAAM,cAAA,GAAiB,QAAA,GAAW,KAAA,CAAM,MAAA,CAAO,QAAA,GAAW,EAAA;AAG1D,EAAA,MAAM,cAAA,GAAiB,WAAW,oBAAA,GAAuB,EAAA;AAEzD,EAAA,MAAM,OAAA,GAAU,CAAA,wCAAA,EAA2C,UAAU,CAAA,CAAA,EAAID,cAAa,CAAA,CAAA,EAAIC,WAAU,CAAA,CAAA,EAAI,cAAc,CAAA,CAAA,EAAI,cAAc,CAAA,CAAA,EAAI,SAAS,GAAG,IAAA,EAAK;AAE7J,EAAA,uBACEC,GAAAA;AAAC,IAAA,QAAA;AAAA,IAAA;MACC,SAAA,EAAW,OAAA;AACX,MAAA,QAAA;MACC,GAAG,KAAA;AAEH,MAAA,QAAA,EAAA,QAAA,GACC,QAAA,mBAEA,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,QAAA,QAAA,wBAAa,MAAA,EAAA,EAAK,WAAU,sBAAA,EAAwB,QAAA,EAAA,UAAS,CAAA;AAC7D,QAAA,QAAA,wBAAa,MAAA,EAAA,EAAK,SAAA,EAAU,0BAAA,EAA4B,UAAS,CAAA;AACjE,QAAA,SAAA,wBAAc,MAAA,EAAA,EAAK,WAAU,sBAAA,EAAwB,QAAA,EAAA,WAAU;AAAA,OAAA,EAClE;AAAA;AAEJ,GAAA;AAEJ;AC7BO,IAAM,SAAgC,CAAC;AAC5C,EAAA,OAAA;EACA,IAAA,GAAO,IAAA;AACP,EAAA,WAAA;EACA,SAAA,GAAY,EAAA;AACZ,EAAA,QAAA;EACA,KAAA,EAAO,eAAA;AACP,EAAA,YAAA;AACA,EAAA,QAAA;AACA,EAAA,KAAA;AACA,EAAA,KAAA;AACA,EAAA,UAAA;EACA,UAAA,GAAa,KAAA;EACb,iBAAA,GAAoB,WAAA;EACpB,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,EAAE,KAAA,EAAO,SAAA,EAAU,GAAI,QAAA,EAAS;AACtC,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIC,SAAS,KAAK,CAAA;AAC1C,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAIA,QAAAA,CAAS,gBAAgB,EAAE,CAAA;AACrE,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAIA,SAAS,EAAE,CAAA;AACjD,EAAA,MAAM,WAAA,GAAc,OAAuB,IAAI,CAAA;AAC/C,EAAA,MAAM,cAAA,GAAiB,OAAyB,IAAI,CAAA;AAGpD,EAAA,MAAM,KAAA,GAAQ,eAAA,KAAoB,MAAA,GAAY,eAAA,GAAkB,aAAA;AAGhE,EAAA,MAAM,iBAAiB,OAAA,CAAQ,IAAA,CAAK,CAAA,GAAA,KAAO,GAAA,CAAI,UAAU,KAAK,CAAA;AAC9D,EAAA,MAAM,WAAA,GAAc,cAAA,GAAiB,cAAA,CAAe,KAAA,GAAQ,WAAA,IAAe,WAAA;AAG3E,EAAA,MAAM,eAAA,GAAkB,UAAA,IAAc,WAAA,GAClC,OAAA,CAAQ,MAAA;IAAO,CAAA,MAAA,KACb,OAAO,KAAA,CAAM,WAAA,GAAc,QAAA,CAAS,WAAA,CAAY,aAAa;GAC/D,GACA,OAAA;AAGJC,EAAAA,SAAAA,CAAU,MAAM;AACd,IAAA,MAAM,kBAAA,GAAqB,CAAC,KAAA,KAAsB;AAChD,MAAA,IAAI,WAAA,CAAY,WAAW,CAAC,WAAA,CAAY,QAAQ,QAAA,CAAS,KAAA,CAAM,MAAc,CAAA,EAAG;AAC9E,QAAA,SAAA,CAAU,KAAK,CAAA;AACf,QAAA,cAAA,CAAe,EAAE,CAAA;AACnB,MAAA;AACF,IAAA,CAAA;AAEA,IAAA,IAAI,MAAA,EAAQ;AACV,MAAA,QAAA,CAAS,gBAAA,CAAiB,aAAa,kBAAkB,CAAA;AACzD,MAAA,OAAO,MAAM,QAAA,CAAS,mBAAA,CAAoB,WAAA,EAAa,kBAAkB,CAAA;AAC3E,IAAA;EACF,CAAA,EAAG,CAAC,MAAM,CAAC,CAAA;AAGXA,EAAAA,SAAAA,CAAU,MAAM;AACd,IAAA,IAAI,MAAA,IAAU,UAAA,IAAc,cAAA,CAAe,OAAA,EAAS;AAClD,MAAA,cAAA,CAAe,QAAQ,KAAA,EAAM;AAC/B,IAAA;EACF,CAAA,EAAG,CAAC,MAAA,EAAQ,UAAU,CAAC,CAAA;AAEvB,EAAA,MAAM,YAAA,GAAe,CAAC,WAAA,KAAwB;AAC5C,IAAA,IAAI,QAAA,EAAU;AAEd,IAAA,gBAAA,CAAiB,WAAW,CAAA;AAC5B,IAAA,QAAA,GAAW,WAAW,CAAA;AACtB,IAAA,SAAA,CAAU,KAAK,CAAA;AACf,IAAA,cAAA,CAAe,EAAE,CAAA;AACnB,EAAA,CAAA;AAEA,EAAA,MAAM,eAAe,MAAM;AACzB,IAAA,IAAI,CAAC,QAAA,EAAU;AACb,MAAA,SAAA,CAAU,CAAC,MAAM,CAAA;AACnB,IAAA;AACF,EAAA,CAAA;AAEA,EAAA,MAAM,UAAA,GAAa,MAAM,MAAA,CAAO,IAAA;AAChC,EAAA,MAAMH,WAAAA,GAAa,KAAA,CAAM,MAAA,CAAO,KAAA,CAAM,IAAI,CAAA;AAC1C,EAAA,MAAM,cAAA,GAAiB,QAAA,GAAW,KAAA,CAAM,MAAA,CAAO,QAAA,GAAW,EAAA;AAC1D,EAAA,MAAM,WAAA,GAAc,QAAQ,uEAAA,GAA0E,EAAA;AAEtG,EAAA,MAAM,aAAA,GAAgB,CAAA,EAAG,UAAU,CAAA,CAAA,EAAIA,WAAU,IAAI,cAAc,CAAA,CAAA,EAAI,WAAW,CAAA,CAAA,CAAG,IAAA,EAAK;AAG1F,EAAA,MAAM,SAAA,GAAY,SAAA,KAAc,cAAA,GAC3B,QAAA,GAAW,wCAAwC,YAAA,GACpD,qCAAA;AAGJ,EAAA,MAAM,kBAAA,GAAqB,SAAA,KAAc,cAAA,GACrC,gCAAA,GACA,uEAAA;AAEJ,EAAA,MAAM,gBAAA,GAAmB,SAAA,KAAc,cAAA,GACnC,2EAAA,GACA,oGAAA;AAEJ,EAAA,MAAM,gBAAA,GAAmB;IACvB,EAAA,EAAI,mBAAA;IACJ,EAAA,EAAI,uBAAA;IACJ,EAAA,EAAI,mBAAA;IACJ,EAAA,EAAI;AACN,GAAA,CAAE,IAAI,CAAA;AAEN,EAAA,4BACG,KAAA,EAAA,EAAI,WAAW,CAAA,OAAA,EAAU,SAAS,IAChC,QAAA,EAAA;AAAA,IAAA,KAAA,wBACE,OAAA,EAAA,EAAM,WAAU,gEAAA,EACd,QAAA,EAAA,OACH,CAAA;oBAEFI,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,8BAAA,EAA+B,KAAK,WAAA,EAAc,GAAG,OAElE,QAAA,EAAA;AAAAH,sBAAAA,GAAAA;AAAC,QAAA,QAAA;AAAA,QAAA;UACC,IAAA,EAAK,QAAA;UACL,SAAA,EAAW,aAAA;UACX,OAAA,EAAS,YAAA;AACT,UAAA,QAAA;UAEA,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,CAAC,cAAA,IAAkB,WAAA,GAAc,YAAA,GAAe,EAAA,EAC9D,QAAA,EAAA,WAAA,EACH;AAAA;AACF,OAAA;AAGFA,sBAAAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uEAAA,EACb,QAAA,kBAAAA,GAAAA;AAAC,QAAA,KAAA;AAAA,QAAA;AACC,UAAA,SAAA,EAAW,CAAA,0CAAA,EAA6C,SAAS,CAAA,CAAA,EAAI,MAAA,GAAS,eAAe,EAAE,CAAA,CAAA;UAC/F,KAAA,EAAM,4BAAA;UACN,OAAA,EAAQ,WAAA;UACR,IAAA,EAAK,cAAA;UACL,aAAA,EAAY,MAAA;UAEZ,QAAA,kBAAAA,GAAAA;AAAC,YAAA,MAAA;AAAA,YAAA;cACC,QAAA,EAAS,SAAA;cACT,CAAA,EAAE,qIAAA;cACF,QAAA,EAAS;AAAA;AACX;AAAA;AACF,OAAA,EACF,CAAA;AAGG,MAAA,MAAA,IAAU,CAAC,QAAA,oBACVG,IAAAA;AAAC,QAAA,KAAA;AAAA,QAAA;AACC,UAAA,SAAA,EAAW,6BAA6B,kBAAkB,CAAA,2BAAA,CAAA;UAGzD,QAAA,EAAA;YAAA,UAAA,oBACCH,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,CAAA,aAAA,EAAgB,cAAc,cAAA,GAAiB,kCAAA,GAAqC,+DAA+D,CAAA,CAAA,EACjK,QAAA,kBAAAA,GAAAA;AAAC,cAAA,OAAA;AAAA,cAAA;gBACC,GAAA,EAAK,cAAA;gBACL,IAAA,EAAK,MAAA;AACL,gBAAA,SAAA,EAAW,UAAU,gBAAgB,CAAA,CAAA,EAAI,SAAA,KAAc,cAAA,GAAiB,sFAAsF,yHAAyH,CAAA,CAAA;gBACvR,WAAA,EAAa,iBAAA;gBACb,KAAA,EAAO,WAAA;AACP,gBAAA,QAAA,EAAU,CAAC,CAAA,KAAM,cAAA,CAAe,CAAA,CAAE,OAAO,KAAK,CAAA;gBAC9C,OAAA,EAAS,CAAC,CAAA,KAAM,CAAA,CAAE,eAAA;AAAgB;AACpC,aAAA,EACF,CAAA;4BAIFA,GAAAA,CAAC,OAAA,EAAA,EACE,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA8BH,CAAA;AACAA,4BAAAA,GAAAA;AAAC,cAAA,KAAA;AAAA,cAAA;gBACC,SAAA,EAAU,wBAAA;AACV,gBAAA,KAAA,EAAO,EAAE,SAAA,EAAW,OAAA,EAAS,SAAA,EAAW,MAAA,EAAO;AAE9C,gBAAA,QAAA,EAAA,gBAAgB,MAAA,GAAS,CAAA,GACxB,eAAA,CAAgB,GAAA,CAAI,CAAC,MAAA,qBACnBA,GAAAA;AAAC,kBAAA,KAAA;AAAA,kBAAA;AAEC,oBAAA,SAAA,EAAW,CAAA,EAAG,gBAAgB,CAAA,CAAA,EAAI,gBAAgB,CAAA,gBAAA,EAChD,KAAA,KAAU,MAAA,CAAO,KAAA,GAAS,SAAA,KAAc,cAAA,GAAiB,qBAAA,GAAwB,yBAAA,GAA6B,EAChH,CAAA,CAAA;oBACA,OAAA,EAAS,MAAM,YAAA,CAAa,MAAA,CAAO,KAAK,CAAA;AAEvC,oBAAA,QAAA,EAAA,MAAA,CAAO;AAAA,mBAAA;kBANH,MAAA,CAAO;AAOd,iBACD,CAAA,mBAEDA,GAAAA,CAAC,KAAA,EAAA,EAAI,WAAW,CAAA,EAAG,gBAAgB,CAAA,CAAA,EAAI,SAAA,KAAc,iBAAiB,qCAAA,GAAwC,qCAAqC,CAAA,YAAA,CAAA,EAAgB,QAAA,EAAA,oBAEnK;AAAA;AAEJ;AAAA;AAAA;AACF;AAAA,KAAA,EAEJ,CAAA;AACC,IAAA,KAAA,wBACE,GAAA,EAAA,EAAE,WAAU,+CAAA,EAAiD,QAAA,EAAA,OAAM,CAAA;IAErE,UAAA,IAAc,CAAC,yBACdA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,oDAAA,EAAsD,QAAA,EAAA,UAAA,EAAW;AAAA,GAAA,EAElF,CAAA;AAEJ,CAAA;AC7OuBrW,cAA+C,MAAS;ACE/E,IAAMyW,YAAAA,GAAc;EAClB,EAAA,EAAI,qBAAA;EACJ,EAAA,EAAI,uBAAA;EACJ,EAAA,EAAI;AACN,CAAA;AAEO,IAAM,SAAA,GAAY,UAAA;EACvB,CACE;AACE,IAAA,KAAA;AACA,IAAA,KAAA;AACA,IAAA,UAAA;IACA,IAAA,GAAO,IAAA;IACP,SAAA,GAAY,KAAA;AACZ,IAAA,QAAA;AACA,IAAA,SAAA;IACA,SAAA,GAAY,EAAA;AACZ,IAAA,QAAA;IACA,GAAG;AACL,GAAA,EACA,GAAA,KACG;AACH,IAAA,MAAM,EAAE,KAAA,EAAO,SAAA,EAAU,GAAI,QAAA,EAAS;AAEtC,IAAA,MAAM,UAAA,GAAa,8UAAA;AACnB,IAAA,MAAM,SAAA,GAAYA,aAAY,IAAI,CAAA;AAClC,IAAA,MAAM,WAAA,GAAc,QAAQ,uEAAA,GAA0E,EAAA;AACtG,IAAA,MAAM,cAAA,GAAiB,WAAW,uDAAA,GAA0D,EAAA;AAC5F,IAAA,MAAM,UAAA,GAAa,YAAY,QAAA,GAAW,EAAA;AAC1C,IAAA,MAAM,eAAA,GAAkB,QAAA,GAAW,OAAA,GAAU,SAAA,GAAY,OAAA,GAAU,EAAA;AAEnE,IAAA,uBACED,IAAAA,CAAC,OAAA,EAAI,SAAA,EAAW,GAAG,UAAU,CAAA,CAAA,EAAI,SAAS,CAAA,CAAA,EACvC,QAAA,EAAA;AAAA,MAAA,KAAA,wBACE,OAAA,EAAA,EAAM,WAAU,gEAAA,EACd,QAAA,EAAA,OACH,CAAA;AAEFA,sBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,UAAA,EACZ,QAAA,EAAA;AAAA,QAAA,QAAA,wBACE,KAAA,EAAA,EAAI,WAAU,wFAAA,EACZ,QAAA,EAAA,UACH,CAAA;AAEFH,wBAAAA,GAAAA;AAAC,UAAA,OAAA;AAAA,UAAA;AACC,YAAA,GAAA;YACA,SAAA,EAAW,CAAA,EAAG,UAAU,CAAA,CAAA,EAAI,SAAS,CAAA,CAAA,EAAI,WAAW,CAAA,CAAA,EAAI,cAAc,CAAA,CAAA,EAAI,eAAe,CAAA,CAAA,CAAG,IAAA,EAAK;AACjG,YAAA,QAAA;YACC,GAAG;AAAA;AACN,SAAA;AACC,QAAA,SAAA,wBACE,KAAA,EAAA,EAAI,WAAU,yFAAA,EACZ,QAAA,EAAA,WACH;AAAA,OAAA,EAEJ,CAAA;AACC,MAAA,KAAA,wBACE,GAAA,EAAA,EAAE,WAAU,+CAAA,EAAiD,QAAA,EAAA,OAAM,CAAA;MAErE,UAAA,IAAc,CAAC,yBACdA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,oDAAA,EAAsD,QAAA,EAAA,UAAA,EAAW;AAAA,KAAA,EAElF,CAAA;AAEJ,EAAA;AACF;AAEA,SAAA,CAAU,WAAA,GAAc,WAAA;ACvExB,IAAM,cAAA,GAAiB;EACrB,IAAA,EAAM,EAAA;EACN,EAAA,EAAI,KAAA;EACJ,EAAA,EAAI,KAAA;EACJ,EAAA,EAAI;AACN,CAAA;AAEO,IAAM,OAA4B,CAAC;AACxC,EAAA,QAAA;EACA,SAAA,GAAY,EAAA;EACZ,OAAA,GAAU,IAAA;EACV,KAAA,GAAQ,KAAA;EACR,GAAG;AACL,CAAA,KAAM;AAEJ,EAAA,MAAM,YAAA,GAAe,eAAe,OAAO,CAAA;AAC3C,EAAA,MAAM,UAAA,GAAa,QACf,2GAAA,GACA,EAAA;AAEJ,EAAA,uBACEA,GAAAA;AAAC,IAAA,KAAA;AAAA,IAAA;AACC,MAAA,SAAA,EAAW,CAAA,iHAAA,EAAoH,YAAY,CAAA,CAAA,EAAI,UAAU,IAAI,SAAS,CAAA,CAAA;MACrK,GAAG,KAAA;AAEH,MAAA;AAAA;AACH,GAAA;AAEJ,CAAA;AC3BA,IAAM,aAAA,GAAgB;EACpB,IAAA,EAAM,+EAAA;EACN,OAAA,EAAS,wFAAA;EACT,OAAA,EAAS,wFAAA;EACT,KAAA,EAAO;AACT,CAAA;AAEA,IAAM,UAAA,GAAa;EACjB,IAAA,EAAM,yBAAA;EACN,OAAA,EAAS,4BAAA;EACT,OAAA,EAAS,4BAAA;EACT,KAAA,EAAO;AACT,CAAA;AAEO,IAAM,QAA8B,CAAC;EAC1C,OAAA,GAAU,MAAA;AACV,EAAA,KAAA;AACA,EAAA,QAAA;AACA,EAAA,OAAA;EACA,SAAA,GAAY;AACd,CAAA,KAAM;AAEJ,EAAA,MAAM,YAAA,GAAe,cAAc,OAAO,CAAA;AAC1C,EAAA,MAAM,SAAA,GAAY,WAAW,OAAO,CAAA;AAEpC,EAAA,2BACG,KAAA,EAAA,EAAI,SAAA,EAAW,CAAA,8BAAA,EAAiC,YAAY,CAAA,CAAA,EAAI,SAAS,CAAA,CAAA,EAAI,IAAA,EAAK,SACjF,QAAA,kBAAAG,IAAAA,CAAC,OAAA,EAAI,SAAA,EAAU,0BACb,QAAA,EAAA;AAAAA,oBAAAA,IAAAA,CAAC,OAAA,EAAI,SAAA,EAAW,CAAA,cAAA,EAAiB,SAAS,IACvC,QAAA,EAAA;MAAA,OAAA,KAAY,MAAA,wBACV,KAAA,EAAA,EAAI,WAAU,SAAA,EAAU,IAAA,EAAK,cAAA,EAAe,OAAA,EAAQ,WAAA,EACnD,QAAA,sBAAC,MAAA,EAAA,EAAK,UAAS,SAAA,EAAU,CAAA,EAAE,oIAAmI,QAAA,EAAS,SAAA,EAAU,CAAA,EACnL,CAAA;MAED,OAAA,KAAY,SAAA,wBACV,KAAA,EAAA,EAAI,WAAU,SAAA,EAAU,IAAA,EAAK,cAAA,EAAe,OAAA,EAAQ,WAAA,EACnD,QAAA,sBAAC,MAAA,EAAA,EAAK,UAAS,SAAA,EAAU,CAAA,EAAE,yIAAwI,QAAA,EAAS,SAAA,EAAU,CAAA,EACxL,CAAA;MAED,OAAA,KAAY,SAAA,wBACV,KAAA,EAAA,EAAI,WAAU,SAAA,EAAU,IAAA,EAAK,cAAA,EAAe,OAAA,EAAQ,WAAA,EACnD,QAAA,sBAAC,MAAA,EAAA,EAAK,UAAS,SAAA,EAAU,CAAA,EAAE,qNAAoN,QAAA,EAAS,SAAA,EAAU,CAAA,EACpQ,CAAA;MAED,OAAA,KAAY,OAAA,wBACV,KAAA,EAAA,EAAI,WAAU,SAAA,EAAU,IAAA,EAAK,cAAA,EAAe,OAAA,EAAQ,WAAA,EACnD,QAAA,sBAAC,MAAA,EAAA,EAAK,UAAS,SAAA,EAAU,CAAA,EAAE,2NAA0N,QAAA,EAAS,SAAA,EAAU,CAAA,EAC1Q;AAAA,KAAA,EAEJ,CAAA;AACAA,oBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,QAAA,EACZ,QAAA,EAAA;AAAA,MAAA,KAAA,wBAAU,IAAA,EAAA,EAAG,WAAU,oBAAA,EAAsB,QAAA,EAAA,OAAM,CAAA;AACpDH,sBAAAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,SAAA,EAAW,UAAS;AAAA,KAAA,EACrC,CAAA;IACC,OAAA,oBACCA,GAAAA;AAAC,MAAA,QAAA;AAAA,MAAA;QACC,OAAA,EAAS,OAAA;AACT,QAAA,SAAA,EAAW,iBAAiB,SAAS,CAAA,oCAAA,CAAA;QACrC,YAAA,EAAW,aAAA;QAEX,QAAA,kBAAAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,SAAA,EAAU,MAAK,MAAA,EAAO,OAAA,EAAQ,WAAA,EAAY,MAAA,EAAO,cAAA,EAC9D,QAAA,sBAAC,MAAA,EAAA,EAAK,aAAA,EAAc,OAAA,EAAQ,cAAA,EAAe,OAAA,EAAQ,WAAA,EAAa,CAAA,EAAG,CAAA,EAAE,sBAAA,EAAuB,CAAA,EAC9F;AAAA;AACF;GAAA,EAEJ,GACF,CAAA;AAEJ;ACvEO,IAAM,QAAA,GAAWK,UAAAA;EACtB,CAAC,EAAE,KAAA,EAAO,KAAA,EAAO,SAAA,GAAY,EAAA,EAAI,UAAU,OAAA,EAAS,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAEtE,IAAA,uBACEF,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EACH,QAAA,EAAA;AAAAA,sBAAAA,IAAAA,CAAC,OAAA,EAAA,EAAM,SAAA,EAAU,8CAAA,EACf,QAAA,EAAA;AAAAA,wBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mCAAA,EACb,QAAA,EAAA;AAAAH,0BAAAA,GAAAA;AAAC,YAAA,OAAA;AAAA,YAAA;AACC,cAAA,GAAA;cACA,IAAA,EAAK,UAAA;AACL,cAAA,QAAA;AACA,cAAA,OAAA;cACA,SAAA,EAAU,cAAA;cACT,GAAG;AAAA;AACN,WAAA;0BACAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,CAAA;AACZ,cAAA,EAAA,KAAA,GACE,qCACA,4BACJ;AACE,cAAA,EAAA,QAAA,GACE,yDACA,sCACJ;;;eAKA,QAAA,kBAAAA,GAAAA;AAAC,YAAA,KAAA;AAAA,YAAA;cACC,SAAA,EAAW,CAAA,mDAAA,EACT,OAAA,GAAU,aAAA,GAAgB,WAC5B,CAAA,CAAA;cACA,OAAA,EAAQ,WAAA;cACR,IAAA,EAAK,MAAA;cACL,KAAA,EAAM,4BAAA;cAEN,QAAA,kBAAAA,GAAAA;AAAC,gBAAA,MAAA;AAAA,gBAAA;kBACC,CAAA,EAAE,mBAAA;kBACF,MAAA,EAAO,cAAA;kBACP,WAAA,EAAY,GAAA;kBACZ,aAAA,EAAc,OAAA;kBACd,cAAA,EAAe;AAAA;AACjB;AAAA;AACF,WAAA,EACF;AAAA,SAAA,EACF,CAAA;QACC,KAAA,oBACCA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,CAAA,sCAAA,EAAyC,QAAA,GAAW,+BAAA,GAAkC,EAAE,CAAA,CAAA,EACtG,QAAA,EAAA,KAAA,EACH;AAAA,OAAA,EAEJ,CAAA;AACC,MAAA,KAAA,wBAAU,GAAA,EAAA,EAAE,WAAU,6CAAA,EAA+C,QAAA,EAAA,OAAM;AAAA,KAAA,EAC9E,CAAA;AAEJ,EAAA;AACF,CAAA;AAEA,QAAA,CAAS,WAAA,GAAc,UAAA;AC1DhB,IAAM,MAAA,GAASK,UAAAA;EACpB,CAAC,EAAE,KAAA,EAAO,IAAA,GAAO,IAAA,EAAM,SAAA,GAAY,EAAA,EAAI,QAAA,EAAU,OAAA,EAAS,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAG5E,IAAA,MAAM,aAAA,GAAgB;MACpB,EAAA,EAAI;QACF,MAAA,EAAQ,SAAA;QACR,KAAA,EAAO;AACT,OAAA;MACA,EAAA,EAAI;QACF,MAAA,EAAQ,UAAA;QACR,KAAA,EAAO;AACT,OAAA;MACA,EAAA,EAAI;QACF,MAAA,EAAQ,UAAA;QACR,KAAA,EAAO;AACT;AACF,KAAA;AAEA,IAAA,MAAM,WAAA,GAAc,cAAc,IAAI,CAAA;AAEtC,IAAA,uBACEF,IAAAA,CAAC,OAAA,EAAA,EAAM,SAAA,EAAW,CAAA,8CAAA,EAAiD,QAAA,GAAW,+BAAA,GAAkC,EAAE,CAAA,CAAA,EAAI,SAAS,CAAA,CAAA,EAC7H,QAAA,EAAA;AAAAA,sBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,UAAA,EACb,QAAA,EAAA;AAAAH,wBAAAA,GAAAA;AAAC,UAAA,OAAA;AAAA,UAAA;AACC,YAAA,GAAA;YACA,IAAA,EAAK,UAAA;YACL,SAAA,EAAU,cAAA;AACV,YAAA,QAAA;AACA,YAAA,OAAA;YACC,GAAG;AAAA;AACN,SAAA;AACAA,wBAAAA,GAAAA;AAAC,UAAA,KAAA;AAAA,UAAA;YACC,SAAA,EAAW,CAAA,EAAG,YAAY,MAAM,CAAA,yJAAA;AAAA;AACjC,SAAA;AACDA,wBAAAA,GAAAA;AAAC,UAAA,KAAA;AAAA,UAAA;YACC,SAAA,EAAW,CAAA,EAAG,YAAY,KAAK,CAAA,+EAAA;AAAA;AAChC;AAAA,OAAA,EACH,CAAA;AACC,MAAA,KAAA,wBACE,MAAA,EAAA,EAAK,WAAU,mDAAA,EACb,QAAA,EAAA,OACH;AAAA,KAAA,EAEJ,CAAA;AAEJ,EAAA;AACF,CAAA;AAEA,MAAA,CAAO,WAAA,GAAc,QAAA;AChDrB,IAAMI,YAAAA,GAAc;EAClB,EAAA,EAAI,kBAAA;EACJ,EAAA,EAAI,kBAAA;EACJ,EAAA,EAAI,oBAAA;EACJ,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,YAAA,GAAe;EACnB,OAAA,EAAS,mDAAA;EACT,SAAA,EAAW,4DAAA;EACX,KAAA,EAAO;AACT,CAAA;AAEO,IAAM,UAAkC,CAAC;EAC9C,IAAA,GAAO,IAAA;EACP,KAAA,GAAQ,SAAA;EACR,SAAA,GAAY;AACd,CAAA,KAAM;AAEJ,EAAA,MAAM,SAAA,GAAYA,aAAY,IAAI,CAAA;AAClC,EAAA,MAAM,UAAA,GAAa,aAAa,KAAK,CAAA;AAErC,EAAA,uBACEJ,GAAAA;AAAC,IAAA,KAAA;AAAA,IAAA;AACC,MAAA,SAAA,EAAW,CAAA,uCAAA,EAA0C,SAAS,CAAA,CAAA,EAAI,UAAU,IAAI,SAAS,CAAA,CAAA;MACzF,IAAA,EAAK,QAAA;MACL,YAAA,EAAW,SAAA;AAEX,MAAA,QAAA,sBAAC,MAAA,EAAA,EAAK,WAAU,SAAA,EAAU,QAAA,EAAA,cAAU;AAAA;AACtC,GAAA;AAEJ;ACxBO,IAAM,OAA4B,CAAC;AACxC,EAAA,IAAA;EACA,YAAA,GAAe,CAAA;AACf,EAAA,QAAA;EACA,SAAA,GAAY;AACd,CAAA,KAAM;AACJ,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAIC,SAAS,YAAY,CAAA;AAE3D,EAAA,MAAM,cAAA,GAAiB,CAAC,KAAA,KAAkB;AACxC,IAAA,IAAI,IAAA,CAAK,KAAK,CAAA,CAAE,QAAA,EAAU;AAC1B,IAAA,cAAA,CAAe,KAAK,CAAA;AACpB,IAAA,QAAA,GAAW,KAAK,CAAA;AAClB,EAAA,CAAA;AAEA,EAAA,uBACEE,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAEH,QAAA,EAAA;AAAAH,oBAAAA,GAAAA,CAAC,OAAA,EAAI,SAAA,EAAU,2CAAA,EACb,QAAA,sBAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EAAoB,cAAW,MAAA,EAC3C,QAAA,EAAA,KAAK,GAAA,CAAI,CAAC,KAAK,KAAA,qBACdA,GAAAA;AAAC,MAAA,QAAA;AAAA,MAAA;QAEC,OAAA,EAAS,MAAM,eAAe,KAAK,CAAA;AACnC,QAAA,QAAA,EAAU,GAAA,CAAI,QAAA;QACd,SAAA,EAAW,CAAA,sDAAA,EACT,gBAAgB,KAAA,GACZ,4DAAA,GACA,8HACN,CAAA,CAAA,EAAI,GAAA,CAAI,QAAA,GAAW,+BAAA,GAAkC,gBAAgB,CAAA,CAAA;QACrE,cAAA,EAAc,WAAA,KAAgB,QAAQ,MAAA,GAAS,MAAA;AAE9C,QAAA,QAAA,EAAA,GAAA,CAAI;AAAA,OAAA;AAVA,MAAA;KAYR,CAAA,EACH,CAAA,EACF,CAAA;AAGAA,oBAAAA,GAAAA,CAAC,OAAA,EACE,QAAA,EAAA,KAAK,WAAW,CAAA,EAAG,SACtB;AAAA,GAAA,EACF,CAAA;AAEJ,CAAA;ACvCO,SAAS,KAAA,CAAqC;AACnD,EAAA,OAAA;AACA,EAAA,IAAA;EACA,QAAA,GAAW,IAAA;EACX,OAAA,GAAU,KAAA;EACV,SAAA,GAAY,IAAA;EACZ,SAAA,GAAY,EAAA;EACZ,UAAA,GAAa;AACf,CAAA,EAAkB;AAEhB,EAAA,uBACEG,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAEH,QAAA,EAAA;oBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,CAAA,EAAG,aAAa,iBAAA,GAAoB,EAAE,oBACpD,QAAA,EAAA;AAAAA,sBAAAA,IAAAA,CAAC,OAAA,EAAA,EAAM,SAAA,EAAU,kBAAA,EACf,QAAA,EAAA;AAAAH,wBAAAA,GAAAA,CAAC,OAAA,EAAA,EAAM,SAAA,EAAU,6DAAA,EACf,QAAA,kBAAAA,GAAAA,CAAC,IAAA,EAAA,EACE,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAC,QAAQ,QAAA,KAAa;AACjC,UAAA,MAAM,MAAA,GAAS,QAAA,KAAa,OAAA,CAAQ,MAAA,GAAS,CAAA;AAC7C,UAAA,uBACEA,GAAAA;AAAC,YAAA,IAAA;AAAA,YAAA;AAEC,cAAA,SAAA,EACE,SACI,qGAAA,GACA,4FAAA;cAEN,KAAA,EAAO,EAAE,KAAA,EAAO,MAAA,CAAO,KAAA,EAAM;AAE5B,cAAA,QAAA,EAAA,MAAA,CAAO;AAAA,aAAA;YARH,MAAA,CAAO;AASd,WAAA;QAEJ,CAAC,CAAA,EACH,CAAA,EACF,CAAA;wBACAA,GAAAA,CAAC,OAAA,EAAA,EAAM,SAAA,EAAU,4DAAA,EACd,UAAA,IAAA,CAAK,GAAA,CAAI,CAAC,GAAA,EAAK,QAAA,KAAa;AAC3B,UAAA,MAAM,UAAA,GAAa;YACjB,OAAA,IAAW,QAAA,GAAW,CAAA,KAAM,CAAA,GAAI,2BAAA,GAA8B,EAAA;AAC9D,YAAA,SAAA,GAAY,gDAAA,GAAmD;AACjE,WAAA,CAAE,MAAA,CAAO,OAAO,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA;AAE1B,UAAA,uBACEA,GAAAA;AAAC,YAAA,IAAA;AAAA,YAAA;cAEC,SAAA,EAAW,UAAA;AAEV,cAAA,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAC,MAAA,EAAQ,QAAA,KAAa;AACjC,gBAAA,MAAM,MAAA,GAAS,QAAA,KAAa,OAAA,CAAQ,MAAA,GAAS,CAAA;AAC7C,gBAAA,uBACEA,GAAAA;AAAC,kBAAA,IAAA;AAAA,kBAAA;AAEC,oBAAA,SAAA,EACE,SACI,kEAAA,GACA,iDAAA;AAGL,oBAAA,QAAA,EAAA,MAAA,CAAO,MAAA,GACJ,MAAA,CAAO,MAAA,CAAO,GAAA,CAAI,MAAA,CAAO,GAAG,CAAA,EAAG,GAAA,EAAK,QAAQ,CAAA,GAC5C,GAAA,CAAI,OAAO,GAAG;AAAA,mBAAA;kBATb,MAAA,CAAO;AAUd,iBAAA;cAEJ,CAAC;AAAA,aAAA;AAnBI,YAAA,GAAA,CAAI,QAAQ,CAAA,IAAK;AAoBxB,WAAA;AAEJ,QAAA,CAAC,GACH;AAAA,OAAA,EACF,CAAA;MACC,IAAA,CAAK,MAAA,KAAW,qBACfA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sDAAA,EAAuD,QAAA,EAAA,mBAAA,EAEtE;AAAA,KAAA,EAEJ,CAAA;AAGC,IAAA,UAAA,oBACCG,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uBACZ,QAAA,EAAA;MAAA,IAAA,CAAK,GAAA,CAAI,CAAC,GAAA,EAAK,QAAA,KAAa;AAC3B,QAAA,MAAM,WAAA,GAAc;AAClB,UAAA,2FAAA;AACA,UAAA,SAAA,GAAY,mCAAA,GAAsC,EAAA;AAClD,UAAA;;AACF,SAAA,CAAE,MAAA,CAAO,OAAO,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA;AAE1B,QAAA,uBACEH,GAAAA;AAAC,UAAA,KAAA;AAAA,UAAA;YAEC,SAAA,EAAW,WAAA;YAEV,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAC,MAAA,qBACZG,IAAAA;AAAC,cAAA,KAAA;AAAA,cAAA;gBAEC,SAAA,EAAU,+FAAA;gBAEV,QAAA,EAAA;AAAAH,kCAAAA,GAAAA,CAAC,QAAA,EAAK,SAAA,EAAU,uGACb,QAAA,EAAA,MAAA,CAAO,OACV,CAAA;kCACAA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kDAAA,EACb,UAAA,MAAA,CAAO,MAAA,GACJ,OAAO,MAAA,CAAO,GAAA,CAAI,OAAO,GAAG,CAAA,EAAG,KAAK,QAAQ,CAAA,GAC5C,IAAI,MAAA,CAAO,GAAG,GACpB;AAAA;AAAA,eAAA;cAVK,MAAA,CAAO;aAYf;AAAA,WAAA;AAjBI,UAAA,GAAA,CAAI,QAAQ,CAAA,IAAK;AAkBxB,SAAA;MAEJ,CAAC,CAAA;MACA,IAAA,CAAK,MAAA,KAAW,qBACfA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sDAAA,EAAuD,QAAA,EAAA,mBAAA,EAEtE;AAAA,KAAA,EAEJ;AAAA,GAAA,EAEJ,CAAA;AAEJ;ACjIO,IAAM,UAAA,GAAaK,UAAAA;EACxB,CAAC,EAAE,KAAA,EAAO,KAAA,EAAO,UAAA,EAAY,SAAA,GAAY,IAAI,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAEzE,IAAA,MAAM,UAAA,GAAa,oTAAA;AACnB,IAAA,MAAM,WAAA,GAAc,QAAQ,0EAAA,GAA6E,EAAA;AACzG,IAAA,MAAM,cAAA,GAAiB,WAAW,sDAAA,GAAyD,EAAA;AAE3F,IAAA,uBACEF,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EACF,QAAA,EAAA;AAAA,MAAA,KAAA,wBACE,OAAA,EAAA,EAAM,WAAU,gEAAA,EACd,QAAA,EAAA,OACH,CAAA;AAEFH,sBAAAA,GAAAA;AAAC,QAAA,OAAA;AAAA,QAAA;AACC,UAAA,GAAA;UACA,IAAA,EAAK,MAAA;AACL,UAAA,QAAA;AACA,UAAA,SAAA,EAAW,GAAG,UAAU,CAAA,CAAA,EAAI,WAAW,CAAA,CAAA,EAAI,cAAc,GAAG,IAAA,EAAK;UAChE,GAAG;AAAA;AACN,OAAA;AACC,MAAA,KAAA,wBAAU,GAAA,EAAA,EAAE,WAAU,+CAAA,EAAiD,QAAA,EAAA,OAAM,CAAA;MAC7E,UAAA,IAAc,CAAC,yBAASA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,oDAAA,EAAsD,QAAA,EAAA,UAAA,EAAW;AAAA,KAAA,EACzG,CAAA;AAEJ,EAAA;AACF,CAAA;AAEA,UAAA,CAAW,WAAA,GAAc,YAAA;ACjBlB,IAAM,QAA8B,CAAC;AAC1C,EAAA,IAAA;AACA,EAAA,OAAA;EACA,KAAA,EAAO,eAAA;AACP,EAAA,YAAA;AACA,EAAA,QAAA;EACA,QAAA,GAAW,KAAA;EACX,WAAA,GAAc,UAAA;EACd,SAAA,GAAY;AACd,CAAA,KAAM;AACJ,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,IAAItW,KAAAA,CAAM,QAAA,CAAS,gBAAgB,EAAE,CAAA;AAE3E,EAAA,MAAM,KAAA,GAAQ,eAAA,KAAoB,MAAA,GAAY,eAAA,GAAkB,aAAA;AAEhE,EAAA,MAAM,YAAA,GAAe,CAAC,WAAA,KAAwB;AAC5C,IAAA,IAAI,QAAA,EAAU;AACd,IAAA,gBAAA,CAAiB,WAAW,CAAA;AAC5B,IAAA,QAAA,GAAW,WAAW,CAAA;AACxB,EAAA,CAAA;AAEA,EAAA,MAAM,cAAA,GAAiB,WAAA,KAAgB,YAAA,GACnC,sBAAA,GACA,qBAAA;AAEJ,EAAA,uBACEsW,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,cAAc,CAAA,CAAA,EAAI,SAAS,CAAA,CAAA,EAAI,MAAK,YAAA,EACpD,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAC,MAAA,KAAW;AACvB,IAAA,MAAM,UAAA,GAAa,YAAY,MAAA,CAAO,QAAA;AACtC,IAAA,MAAM,SAAA,GAAY,UAAU,MAAA,CAAO,KAAA;AACnC,IAAA,MAAM,EAAA,GAAK,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,OAAO,KAAK,CAAA,CAAA;AAElC,IAAA,uBACEG,IAAAA;AAAC,MAAA,OAAA;AAAA,MAAA;QAEC,OAAA,EAAS,EAAA;QACT,SAAA,EAAW,CAAA,6CAAA,EACT,UAAA,GAAa,+BAAA,GAAkC,EACjD,CAAA,CAAA;QAEA,QAAA,EAAA;AAAAA,0BAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mCAAA,EACb,QAAA,EAAA;AAAAH,4BAAAA,GAAAA;AAAC,cAAA,OAAA;AAAA,cAAA;gBACC,IAAA,EAAK,OAAA;AACL,gBAAA,EAAA;AACA,gBAAA,IAAA;AACA,gBAAA,KAAA,EAAO,MAAA,CAAO,KAAA;gBACd,OAAA,EAAS,SAAA;gBACT,QAAA,EAAU,MAAM,YAAA,CAAa,MAAA,CAAO,KAAK,CAAA;gBACzC,QAAA,EAAU,UAAA;gBACV,SAAA,EAAU;AAAA;AACZ,aAAA;4BACAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,CAAA;;AAEZ,gBAAA,EAAA,UAAA,GACE,2BACA,sCACJ;AACE,gBAAA,EAAA,SAAA,GACE,6DACA,EACJ;;iBAIA,QAAA,kBAAAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,CAAA,0EAAA,EACd,SAAA,GAAY,WAAA,GAAc,SAC5B,CAAA,CAAA,EAAI,CAAA,EACN;AAAA,WAAA,EACF,CAAA;0BACAA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,CAAA,kDAAA,EACf,CAAC,UAAA,IAAc,2CACjB,CAAA,CAAA,EACG,QAAA,EAAA,MAAA,CAAO,KAAA,EACV;AAAA;AAAA,OAAA;MAvCK,MAAA,CAAO;AAwCd,KAAA;AAEJ,EAAA,CAAC,GACH,CAAA;AAEJ,CAAA;ACjFqBrW,cAA6C,MAAS;ACNpE,SAAS,KAAA,CAAM,EAAE,MAAA,EAAQ,OAAA,EAAS,OAAO,QAAA,EAAU,SAAA,GAAY,IAAG,EAAe;AACtF,EAAAuW,UAAU,MAAM;AACd,IAAA,MAAM,YAAA,GAAe,CAAC,CAAA,KAAqB;AACzC,MAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,QAAA,EAAU,OAAA,EAAQ;AAAA,IAClC,CAAA;AAEA,IAAA,IAAI,MAAA,EAAQ;AACV,MAAA,QAAA,CAAS,gBAAA,CAAiB,WAAW,YAAY,CAAA;AACjD,MAAA,QAAA,CAAS,IAAA,CAAK,MAAM,QAAA,GAAW,QAAA;AAAA,IACjC;AAEA,IAAA,OAAO,MAAM;AACX,MAAA,QAAA,CAAS,mBAAA,CAAoB,WAAW,YAAY,CAAA;AACpD,MAAA,QAAA,CAAS,IAAA,CAAK,MAAM,QAAA,GAAW,OAAA;AAAA,IACjC,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,MAAA,EAAQ,OAAO,CAAC,CAAA;AAEpB,EAAA,IAAI,CAAC,QAAQ,OAAO,IAAA;AAEpB,EAAA,uBACEC,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yDAAA,EAEb,QAAA,EAAA;AAAA,oBAAAH,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,+CAAA;AAAA,QACV,OAAA,EAAS;AAAA;AAAA,KACX;AAAA,oBAGAG,IAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,wGAAwG,SAAS,CAAA,CAAA;AAAA,QAG5H,QAAA,EAAA;AAAA,0BAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qFAAA,EACb,QAAA,EAAA;AAAA,4BAAAH,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,uBAAA,EAAyB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,4BAC7CA,GAAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACC,OAAA,EAAS,OAAA;AAAA,gBACT,SAAA,EAAU,8EAAA;AAAA,gBAEV,QAAA,kBAAAA,IAAC,KAAA,EAAA,EAAI,SAAA,EAAU,WAAU,IAAA,EAAK,MAAA,EAAO,MAAA,EAAO,cAAA,EAAe,OAAA,EAAQ,WAAA,EACjE,0BAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,eAAc,OAAA,EAAQ,cAAA,EAAe,SAAQ,WAAA,EAAa,CAAA,EAAG,CAAA,EAAE,sBAAA,EAAuB,CAAA,EAC9F;AAAA;AAAA;AACF,WAAA,EACF,CAAA;AAAA,0BAGAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,OACZ,QAAA,EACH;AAAA;AAAA;AAAA;AACF,GAAA,EACF,CAAA;AAEJ;;;AC/DA,IAAI,aAAA,GAAgB,QAAA;AAEpB,IAAI,0BAAA,GAA6B,SAASM,2BAAAA,CAA2B,OAAA,EAAS;AAC5E,EAAA,OAAO,OAAA,KAAY,IAAI,IAAA,GAAO,OAAA;AAChC,CAAA;AAEA,IAAI,MAAA,GAAS,uBAAA;AACb,IAAI,aAAA,GAAgB,GAAG,MAAA,CAAO,MAAA,EAAQ,GAAG,CAAA,CAAE,MAAA,CAAO,eAAe,YAAY,CAAA;AAC7E,IAAI,YAAA,GAAe,2CAAA;AACnB,IAAI,mBAAA,GAAsB,6DAAA;AAC1B,IAAI,uBAAA,GAA0B,kJAAA;AAE9B,IAAI,aAAA,GAAgB,SAASC,cAAAA,CAAc,GAAA,EAAK;AAC9C,EAAA,OAAO,aAAa,IAAA,CAAK,GAAG,CAAA,IAAK,mBAAA,CAAoB,KAAK,GAAG,CAAA;AAC/D,CAAA;AAEA,IAAI,UAAA,GAAa,SAASC,WAAAA,GAAa;AACrC,EAAA,IAAI,UAAU,QAAA,CAAS,gBAAA,CAAiB,gBAAiB,MAAA,CAAO,MAAA,EAAQ,IAAK,CAAC,CAAA;AAE9E,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,OAAA,CAAQ,QAAQ,CAAA,EAAA,EAAK;AACvC,IAAA,IAAI,MAAA,GAAS,QAAQ,CAAC,CAAA;AAEtB,IAAA,IAAI,CAAC,aAAA,CAAc,MAAA,CAAO,GAAG,CAAA,EAAG;AAC9B,MAAA;AAAA,IACF;AAEA,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,OAAO,IAAA;AACT,CAAA;AAEA,IAAI,YAAA,GAAe,SAASC,aAAAA,CAAa,MAAA,EAAQ;AAC/C,EAAA,IAAI,WAAA,GAAuF,EAAA;AAC3F,EAAA,IAAI,MAAA,GAAS,QAAA,CAAS,aAAA,CAAc,QAAQ,CAAA;AAC5C,EAAA,MAAA,CAAO,MAAM,EAAA,CAAG,MAAA,CAAO,aAAa,CAAA,CAAE,OAAO,WAAW,CAAA;AACxD,EAAA,IAAI,UAAA,GAAa,QAAA,CAAS,IAAA,IAAQ,QAAA,CAAS,IAAA;AAE3C,EAAA,IAAI,CAAC,UAAA,EAAY;AACf,IAAA,MAAM,IAAI,MAAM,6EAA6E,CAAA;AAAA,EAC/F;AAEA,EAAA,UAAA,CAAW,YAAY,MAAM,CAAA;AAC7B,EAAA,OAAO,MAAA;AACT,CAAA;AAEA,IAAI,eAAA,GAAkB,SAASC,gBAAAA,CAAgB,MAAA,EAAQ,SAAA,EAAW;AAChE,EAAA,IAAI,CAAC,MAAA,IAAU,CAAC,MAAA,CAAO,gBAAA,EAAkB;AACvC,IAAA;AAAA,EACF;AAEA,EAAA,MAAA,CAAO,gBAAA,CAAiB;AAAA,IACtB,IAAA,EAAM,WAAA;AAAA,IACN,OAAA,EAAS,OAAA;AAAA,IACT;AAAA,GACD,CAAA;AACH,CAAA;AAEA,IAAI,eAAA,GAAkB,IAAA;AACtB,IAAI,eAAA,GAAkB,IAAA;AACtB,IAAI,cAAA,GAAiB,IAAA;AAErB,IAAI,OAAA,GAAU,SAASC,QAAAA,CAAQ,MAAA,EAAQ;AACrC,EAAA,OAAO,SAAU,KAAA,EAAO;AACtB,IAAA,MAAA,CAAO,IAAI,MAAM,0BAAA,EAA4B;AAAA,MAC3C;AAAA,KACD,CAAC,CAAA;AAAA,EACJ,CAAA;AACF,CAAA;AAEA,IAAI,MAAA,GAAS,SAASC,OAAAA,CAAO,OAAA,EAAS,MAAA,EAAQ;AAC5C,EAAA,OAAO,WAAY;AACjB,IAAA,IAAI,OAAO,MAAA,EAAQ;AACjB,MAAA,OAAA,CAAQ,OAAO,MAAM,CAAA;AAAA,IACvB,CAAA,MAAO;AACL,MAAA,MAAA,CAAO,IAAI,KAAA,CAAM,yBAAyB,CAAC,CAAA;AAAA,IAC7C;AAAA,EACF,CAAA;AACF,CAAA;AAEA,IAAI,UAAA,GAAa,SAASC,WAAAA,CAAW,MAAA,EAAQ;AAE3C,EAAA,IAAI,oBAAoB,IAAA,EAAM;AAC5B,IAAA,OAAO,eAAA;AAAA,EACT;AAEA,EAAA,eAAA,GAAkB,IAAI,OAAA,CAAQ,SAAU,OAAA,EAAS,MAAA,EAAQ;AACvD,IAAA,IAAI,OAAO,MAAA,KAAW,WAAA,IAAe,OAAO,aAAa,WAAA,EAAa;AAGpE,MAAA,OAAA,CAAQ,IAAI,CAAA;AACZ,MAAA;AAAA,IACF;AAMA,IAAA,IAAI,OAAO,MAAA,EAAQ;AACjB,MAAA,OAAA,CAAQ,OAAO,MAAM,CAAA;AACrB,MAAA;AAAA,IACF;AAEA,IAAA,IAAI;AACF,MAAA,IAAI,SAAS,UAAA,EAAW;AAExB,MAAA,IAAI,UAAU,MAAA,EAAQ,CAEtB,MAAA,IAAW,CAAC,MAAA,EAAQ;AAClB,QAAA,MAAA,GAAS,aAAa,MAAM,CAAA;AAAA,MAC9B,CAAA,MAAA,IAAW,MAAA,IAAU,cAAA,KAAmB,IAAA,IAAQ,oBAAoB,IAAA,EAAM;AACxE,QAAA,IAAI,kBAAA;AAGJ,QAAA,MAAA,CAAO,mBAAA,CAAoB,QAAQ,cAAc,CAAA;AACjD,QAAA,MAAA,CAAO,mBAAA,CAAoB,SAAS,eAAe,CAAA;AAGnD,QAAA,CAAC,kBAAA,GAAqB,OAAO,UAAA,MAAgB,IAAA,IAAQ,uBAAuB,KAAA,CAAA,GAAS,KAAA,CAAA,GAAS,kBAAA,CAAmB,WAAA,CAAY,MAAM,CAAA;AACnI,QAAA,MAAA,GAAS,aAAa,MAAM,CAAA;AAAA,MAC9B;AAEA,MAAA,cAAA,GAAiB,MAAA,CAAO,SAAS,MAAM,CAAA;AACvC,MAAA,eAAA,GAAkB,QAAQ,MAAM,CAAA;AAChC,MAAA,MAAA,CAAO,gBAAA,CAAiB,QAAQ,cAAc,CAAA;AAC9C,MAAA,MAAA,CAAO,gBAAA,CAAiB,SAAS,eAAe,CAAA;AAAA,IAClD,SAAS,KAAA,EAAO;AACd,MAAA,MAAA,CAAO,KAAK,CAAA;AACZ,MAAA;AAAA,IACF;AAAA,EACF,CAAC,CAAA;AAED,EAAA,OAAO,eAAA,CAAgB,OAAO,CAAA,CAAE,SAAU,KAAA,EAAO;AAC/C,IAAA,eAAA,GAAkB,IAAA;AAClB,IAAA,OAAO,OAAA,CAAQ,OAAO,KAAK,CAAA;AAAA,EAC7B,CAAC,CAAA;AACH,CAAA;AACA,IAAI,UAAA,GAAa,SAASC,WAAAA,CAAW,WAAA,EAAa,MAAM,SAAA,EAAW;AACjE,EAAA,IAAI,gBAAgB,IAAA,EAAM;AACxB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,IAAI,EAAA,GAAK,KAAK,CAAC,CAAA;AACf,EAAA,IAAI,SAAA,GAAY,EAAA,CAAG,KAAA,CAAM,UAAU,CAAA;AAEnC,EAAA,IAAI,OAAA,GAAU,0BAAA,CAA2B,WAAA,CAAY,OAAO,CAAA;AAC5D,EAAA,IAAI,eAAA,GAAkB,aAAA;AAEtB,EAAA,IAAI,SAAA,IAAa,YAAY,eAAA,EAAiB;AAC5C,IAAA,OAAA,CAAQ,IAAA,CAAK,YAAA,CAAa,MAAA,CAAO,OAAA,EAAS,iDAAiD,CAAA,CAAE,MAAA,CAAO,OAAA,EAAS,sBAAsB,CAAA,CAAE,MAAA,CAAO,eAAA,EAAiB,sHAAsH,CAAC,CAAA;AAAA,EACtR;AAEA,EAAA,IAAI,MAAA,GAAS,WAAA,CAAY,KAAA,CAAM,MAAA,EAAW,IAAI,CAAA;AAC9C,EAAA,eAAA,CAAgB,QAAQ,SAAS,CAAA;AACjC,EAAA,OAAO,MAAA;AACT,CAAA;AAEA,IAAI,aAAA;AACJ,IAAI,UAAA,GAAa,KAAA;AAEjB,IAAI,gBAAA,GAAmB,SAASC,iBAAAA,GAAmB;AACjD,EAAA,IAAI,aAAA,EAAe;AACjB,IAAA,OAAO,aAAA;AAAA,EACT;AAEA,EAAA,aAAA,GAAgB,WAAW,IAAI,CAAA,CAAE,OAAO,CAAA,CAAE,SAAU,KAAA,EAAO;AAEzD,IAAA,aAAA,GAAgB,IAAA;AAChB,IAAA,OAAO,OAAA,CAAQ,OAAO,KAAK,CAAA;AAAA,EAC7B,CAAC,CAAA;AACD,EAAA,OAAO,aAAA;AACT,CAAA;AAIA,OAAA,CAAQ,OAAA,EAAQ,CAAE,IAAA,CAAK,WAAY;AACjC,EAAA,OAAO,gBAAA,EAAiB;AAC1B,CAAC,CAAA,CAAE,OAAO,CAAA,CAAE,SAAU,KAAA,EAAO;AAC3B,EAAA,IAAI,CAAC,UAAA,EAAY;AACf,IAAA,OAAA,CAAQ,KAAK,KAAK,CAAA;AAAA,EACpB;AACF,CAAC,CAAA;AACD,IAAI,UAAA,GAAa,SAASC,WAAAA,GAAa;AACrC,EAAA,KAAA,IAAS,IAAA,GAAO,SAAA,CAAU,MAAA,EAAQ,IAAA,GAAO,IAAI,KAAA,CAAM,IAAI,CAAA,EAAG,IAAA,GAAO,CAAA,EAAG,IAAA,GAAO,IAAA,EAAM,IAAA,EAAA,EAAQ;AACvF,IAAA,IAAA,CAAK,IAAI,CAAA,GAAI,SAAA,CAAU,IAAI,CAAA;AAAA,EAC7B;AAEA,EAAA,UAAA,GAAa,IAAA;AACb,EAAA,IAAI,SAAA,GAAY,KAAK,GAAA,EAAI;AAEzB,EAAA,OAAO,gBAAA,EAAiB,CAAE,IAAA,CAAK,SAAU,WAAA,EAAa;AACpD,IAAA,OAAO,UAAA,CAAW,WAAA,EAAa,IAAA,EAAM,SAAS,CAAA;AAAA,EAChD,CAAC,CAAA;AACH,CAAA;;;AChMA,IAAA,iBAAA,GAAsB,OAAA,CAAA,kBAAA,EAAA,CAAA;AAEtB,SAAS,OAAA,CAAQ,QAAQ,cAAA,EAAgB;AACvC,EAAA,IAAI,IAAA,GAAO,MAAA,CAAO,IAAA,CAAK,MAAM,CAAA;AAE7B,EAAA,IAAI,OAAO,qBAAA,EAAuB;AAChC,IAAA,IAAI,OAAA,GAAU,MAAA,CAAO,qBAAA,CAAsB,MAAM,CAAA;AAEjD,IAAA,IAAI,cAAA,EAAgB;AAClB,MAAA,OAAA,GAAU,OAAA,CAAQ,MAAA,CAAO,SAAU,GAAA,EAAK;AACtC,QAAA,OAAO,MAAA,CAAO,wBAAA,CAAyB,MAAA,EAAQ,GAAG,CAAA,CAAE,UAAA;AAAA,MACtD,CAAC,CAAA;AAAA,IACH;AAEA,IAAA,IAAA,CAAK,IAAA,CAAK,KAAA,CAAM,IAAA,EAAM,OAAO,CAAA;AAAA,EAC/B;AAEA,EAAA,OAAO,IAAA;AACT;AAEA,SAAS,eAAe,MAAA,EAAQ;AAC9B,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,SAAA,CAAU,QAAQ,CAAA,EAAA,EAAK;AACzC,IAAA,IAAI,MAAA,GAAS,UAAU,CAAC,CAAA,IAAK,OAAO,SAAA,CAAU,CAAC,IAAI,EAAC;AAEpD,IAAA,IAAI,IAAI,CAAA,EAAG;AACT,MAAA,OAAA,CAAQ,OAAO,MAAM,CAAA,EAAG,IAAI,CAAA,CAAE,OAAA,CAAQ,SAAU,GAAA,EAAK;AACnD,QAAA,eAAA,CAAgB,MAAA,EAAQ,GAAA,EAAK,MAAA,CAAO,GAAG,CAAC,CAAA;AAAA,MAC1C,CAAC,CAAA;AAAA,IACH,CAAA,MAAA,IAAW,OAAO,yBAAA,EAA2B;AAC3C,MAAA,MAAA,CAAO,gBAAA,CAAiB,MAAA,EAAQ,MAAA,CAAO,yBAAA,CAA0B,MAAM,CAAC,CAAA;AAAA,IAC1E,CAAA,MAAO;AACL,MAAA,OAAA,CAAQ,OAAO,MAAM,CAAC,CAAA,CAAE,OAAA,CAAQ,SAAU,GAAA,EAAK;AAC7C,QAAA,MAAA,CAAO,eAAe,MAAA,EAAQ,GAAA,EAAK,OAAO,wBAAA,CAAyB,MAAA,EAAQ,GAAG,CAAC,CAAA;AAAA,MACjF,CAAC,CAAA;AAAA,IACH;AAAA,EACF;AAEA,EAAA,OAAO,MAAA;AACT;AAEA,SAAS,QAAQ,GAAA,EAAK;AACpB,EAAA,yBAAA;AAEA,EAAA,IAAI,OAAO,MAAA,KAAW,UAAA,IAAc,OAAO,MAAA,CAAO,aAAa,QAAA,EAAU;AACvE,IAAA,OAAA,GAAU,SAAUC,IAAAA,EAAK;AACvB,MAAA,OAAO,OAAOA,IAAAA;AAAA,IAChB,CAAA;AAAA,EACF,CAAA,MAAO;AACL,IAAA,OAAA,GAAU,SAAUA,IAAAA,EAAK;AACvB,MAAA,OAAOA,IAAAA,IAAO,OAAO,MAAA,KAAW,UAAA,IAAcA,IAAAA,CAAI,WAAA,KAAgB,MAAA,IAAUA,IAAAA,KAAQ,MAAA,CAAO,SAAA,GAAY,QAAA,GAAW,OAAOA,IAAAA;AAAA,IAC3H,CAAA;AAAA,EACF;AAEA,EAAA,OAAO,QAAQ,GAAG,CAAA;AACpB;AAsCA,SAAS,eAAA,CAAgB,GAAA,EAAK,GAAA,EAAK,KAAA,EAAO;AACxC,EAAA,IAAI,OAAO,GAAA,EAAK;AACd,IAAA,MAAA,CAAO,cAAA,CAAe,KAAK,GAAA,EAAK;AAAA,MAC9B,KAAA;AAAA,MACA,UAAA,EAAY,IAAA;AAAA,MACZ,YAAA,EAAc,IAAA;AAAA,MACd,QAAA,EAAU;AAAA,KACX,CAAA;AAAA,EACH,CAAA,MAAO;AACL,IAAA,GAAA,CAAI,GAAG,CAAA,GAAI,KAAA;AAAA,EACb;AAEA,EAAA,OAAO,GAAA;AACT;AAEA,SAAS,6BAAA,CAA8B,QAAQ,QAAA,EAAU;AACvD,EAAA,IAAI,MAAA,IAAU,IAAA,EAAM,OAAO,EAAC;AAC5B,EAAA,IAAI,SAAS,EAAC;AACd,EAAA,IAAI,UAAA,GAAa,MAAA,CAAO,IAAA,CAAK,MAAM,CAAA;AACnC,EAAA,IAAI,GAAA,EAAK,CAAA;AAET,EAAA,KAAK,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,UAAA,CAAW,QAAQ,CAAA,EAAA,EAAK;AACtC,IAAA,GAAA,GAAM,WAAW,CAAC,CAAA;AAClB,IAAA,IAAI,QAAA,CAAS,OAAA,CAAQ,GAAG,CAAA,IAAK,CAAA,EAAG;AAChC,IAAA,MAAA,CAAO,GAAG,CAAA,GAAI,MAAA,CAAO,GAAG,CAAA;AAAA,EAC1B;AAEA,EAAA,OAAO,MAAA;AACT;AAEA,SAAS,wBAAA,CAAyB,QAAQ,QAAA,EAAU;AAClD,EAAA,IAAI,MAAA,IAAU,IAAA,EAAM,OAAO,EAAC;AAE5B,EAAA,IAAI,MAAA,GAAS,6BAAA,CAA8B,MAAA,EAAQ,QAAQ,CAAA;AAE3D,EAAA,IAAI,GAAA,EAAK,CAAA;AAET,EAAA,IAAI,OAAO,qBAAA,EAAuB;AAChC,IAAA,IAAI,gBAAA,GAAmB,MAAA,CAAO,qBAAA,CAAsB,MAAM,CAAA;AAE1D,IAAA,KAAK,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,gBAAA,CAAiB,QAAQ,CAAA,EAAA,EAAK;AAC5C,MAAA,GAAA,GAAM,iBAAiB,CAAC,CAAA;AACxB,MAAA,IAAI,QAAA,CAAS,OAAA,CAAQ,GAAG,CAAA,IAAK,CAAA,EAAG;AAChC,MAAA,IAAI,CAAC,MAAA,CAAO,SAAA,CAAU,qBAAqB,IAAA,CAAK,MAAA,EAAQ,GAAG,CAAA,EAAG;AAC9D,MAAA,MAAA,CAAO,GAAG,CAAA,GAAI,MAAA,CAAO,GAAG,CAAA;AAAA,IAC1B;AAAA,EACF;AAEA,EAAA,OAAO,MAAA;AACT;AAEA,SAAS,cAAA,CAAe,KAAK,CAAA,EAAG;AAC9B,EAAA,OAAO,eAAA,CAAgB,GAAG,CAAA,IAAK,qBAAA,CAAsB,GAAA,EAAK,CAAC,CAAA,IAAK,2BAAA,CAA4B,GAAA,EAAK,CAAC,CAAA,IAAK,gBAAA,EAAiB;AAC1H;AAEA,SAAS,gBAAgB,GAAA,EAAK;AAC5B,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,GAAG,CAAA,EAAG,OAAO,GAAA;AACjC;AAEA,SAAS,qBAAA,CAAsB,KAAK,CAAA,EAAG;AACrC,EAAA,IAAI,EAAA,GAAK,GAAA,KAAQ,OAAO,MAAA,KAAW,WAAA,IAAe,IAAI,MAAA,CAAO,QAAQ,CAAA,IAAK,GAAA,CAAI,YAAY,CAAA,CAAA;AAE1F,EAAA,IAAI,MAAM,IAAA,EAAM;AAChB,EAAA,IAAI,OAAO,EAAC;AACZ,EAAA,IAAI,EAAA,GAAK,IAAA;AACT,EAAA,IAAI,EAAA,GAAK,KAAA;AAET,EAAA,IAAI,EAAA,EAAI,EAAA;AAER,EAAA,IAAI;AACF,IAAA,KAAK,EAAA,GAAK,EAAA,CAAG,IAAA,CAAK,GAAG,CAAA,EAAG,EAAE,EAAA,GAAA,CAAM,EAAA,GAAK,EAAA,CAAG,IAAA,EAAK,EAAG,IAAA,CAAA,EAAO,KAAK,IAAA,EAAM;AAChE,MAAA,IAAA,CAAK,IAAA,CAAK,GAAG,KAAK,CAAA;AAElB,MAAA,IAAI,CAAA,IAAK,IAAA,CAAK,MAAA,KAAW,CAAA,EAAG;AAAA,IAC9B;AAAA,EACF,SAAS,GAAA,EAAK;AACZ,IAAA,EAAA,GAAK,IAAA;AACL,IAAA,EAAA,GAAK,GAAA;AAAA,EACP,CAAA,SAAE;AACA,IAAA,IAAI;AACF,MAAA,IAAI,CAAC,MAAM,EAAA,CAAG,QAAQ,KAAK,IAAA,EAAM,EAAA,CAAG,QAAQ,CAAA,EAAE;AAAA,IAChD,CAAA,SAAE;AACA,MAAA,IAAI,IAAI,MAAM,EAAA;AAAA,IAChB;AAAA,EACF;AAEA,EAAA,OAAO,IAAA;AACT;AAEA,SAAS,2BAAA,CAA4B,GAAG,MAAA,EAAQ;AAC9C,EAAA,IAAI,CAAC,CAAA,EAAG;AACR,EAAA,IAAI,OAAO,CAAA,KAAM,QAAA,EAAU,OAAO,iBAAA,CAAkB,GAAG,MAAM,CAAA;AAC7D,EAAA,IAAI,CAAA,GAAI,OAAO,SAAA,CAAU,QAAA,CAAS,KAAK,CAAC,CAAA,CAAE,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA;AACrD,EAAA,IAAI,MAAM,QAAA,IAAY,CAAA,CAAE,WAAA,EAAa,CAAA,GAAI,EAAE,WAAA,CAAY,IAAA;AACvD,EAAA,IAAI,MAAM,KAAA,IAAS,CAAA,KAAM,OAAO,OAAO,KAAA,CAAM,KAAK,CAAC,CAAA;AACnD,EAAA,IAAI,CAAA,KAAM,eAAe,0CAAA,CAA2C,IAAA,CAAK,CAAC,CAAA,EAAG,OAAO,iBAAA,CAAkB,CAAA,EAAG,MAAM,CAAA;AACjH;AAEA,SAAS,iBAAA,CAAkB,KAAK,GAAA,EAAK;AACnC,EAAA,IAAI,OAAO,IAAA,IAAQ,GAAA,GAAM,GAAA,CAAI,MAAA,QAAc,GAAA,CAAI,MAAA;AAE/C,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,IAAA,GAAO,IAAI,MAAM,GAAG,CAAA,EAAG,CAAA,GAAI,GAAA,EAAK,CAAA,EAAA,EAAK,IAAA,CAAK,CAAC,CAAA,GAAI,IAAI,CAAC,CAAA;AAEpE,EAAA,OAAO,IAAA;AACT;AAEA,SAAS,gBAAA,GAAmB;AAC1B,EAAA,MAAM,IAAI,UAAU,2IAA2I,CAAA;AACjK;AAEA,IAAI,cAAA,GAAiB,SAASC,eAAAA,CAAe,OAAA,EAAS,OAAO,EAAA,EAAI;AAC/D,EAAA,IAAI,SAAA,GAAY,CAAC,CAAC,EAAA;AAClB,EAAA,IAAI,KAAA,GAAQ,KAAA,CAAM,MAAA,CAAO,EAAE,CAAA;AAG3B,EAAA,KAAA,CAAM,UAAU,WAAY;AAC1B,IAAA,KAAA,CAAM,OAAA,GAAU,EAAA;AAAA,EAClB,CAAA,EAAG,CAAC,EAAE,CAAC,CAAA;AACP,EAAA,KAAA,CAAM,UAAU,WAAY;AAC1B,IAAA,IAAI,CAAC,SAAA,IAAa,CAAC,OAAA,EAAS;AAC1B,MAAA,OAAO,WAAY;AAAA,MAAC,CAAA;AAAA,IACtB;AAEA,IAAA,IAAI,WAAA,GAAc,SAASC,YAAAA,GAAc;AACvC,MAAA,IAAI,MAAM,OAAA,EAAS;AACjB,QAAA,KAAA,CAAM,OAAA,CAAQ,KAAA,CAAM,KAAA,EAAO,SAAS,CAAA;AAAA,MACtC;AAAA,IACF,CAAA;AAEA,IAAA,OAAA,CAAQ,EAAA,CAAG,OAAO,WAAW,CAAA;AAC7B,IAAA,OAAO,WAAY;AACjB,MAAA,OAAA,CAAQ,GAAA,CAAI,OAAO,WAAW,CAAA;AAAA,IAChC,CAAA;AAAA,EACF,GAAG,CAAC,SAAA,EAAW,KAAA,EAAO,OAAA,EAAS,KAAK,CAAC,CAAA;AACvC,CAAA;AAEA,IAAI,WAAA,GAAc,SAASC,YAAAA,CAAY,KAAA,EAAO;AAC5C,EAAA,IAAI,GAAA,GAAM,KAAA,CAAM,MAAA,CAAO,KAAK,CAAA;AAC5B,EAAA,KAAA,CAAM,UAAU,WAAY;AAC1B,IAAA,GAAA,CAAI,OAAA,GAAU,KAAA;AAAA,EAChB,CAAA,EAAG,CAAC,KAAK,CAAC,CAAA;AACV,EAAA,OAAO,GAAA,CAAI,OAAA;AACb,CAAA;AAEA,IAAI,eAAA,GAAkB,SAASC,gBAAAA,CAAgB,GAAA,EAAK;AAClD,EAAA,OAAO,GAAA,KAAQ,IAAA,IAAQ,OAAA,CAAQ,GAAG,CAAA,KAAM,QAAA;AAC1C,CAAA;AACA,IAAI,SAAA,GAAY,SAASC,UAAAA,CAAU,GAAA,EAAK;AACtC,EAAA,OAAO,eAAA,CAAgB,GAAG,CAAA,IAAK,OAAO,IAAI,IAAA,KAAS,UAAA;AACrD,CAAA;AAIA,IAAI,QAAA,GAAW,SAASC,SAAAA,CAAS,GAAA,EAAK;AACpC,EAAA,OAAO,gBAAgB,GAAG,CAAA,IAAK,OAAO,GAAA,CAAI,aAAa,UAAA,IAAc,OAAO,GAAA,CAAI,WAAA,KAAgB,cAAc,OAAO,GAAA,CAAI,wBAAwB,UAAA,IAAc,OAAO,IAAI,kBAAA,KAAuB,UAAA;AACnM,CAAA;AAEA,IAAI,gBAAA,GAAmB,iBAAA;AACvB,IAAI,OAAA,GAAU,SAASC,QAAAA,CAAQ,IAAA,EAAM,KAAA,EAAO;AAC1C,EAAA,IAAI,CAAC,eAAA,CAAgB,IAAI,KAAK,CAAC,eAAA,CAAgB,KAAK,CAAA,EAAG;AACrD,IAAA,OAAO,IAAA,KAAS,KAAA;AAAA,EAClB;AAEA,EAAA,IAAI,SAAA,GAAY,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA;AAClC,EAAA,IAAI,UAAA,GAAa,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA;AACpC,EAAA,IAAI,SAAA,KAAc,YAAY,OAAO,KAAA;AACrC,EAAA,IAAI,kBAAkB,MAAA,CAAO,SAAA,CAAU,QAAA,CAAS,IAAA,CAAK,IAAI,CAAA,KAAM,gBAAA;AAC/D,EAAA,IAAI,mBAAmB,MAAA,CAAO,SAAA,CAAU,QAAA,CAAS,IAAA,CAAK,KAAK,CAAA,KAAM,gBAAA;AACjE,EAAA,IAAI,eAAA,KAAoB,kBAAkB,OAAO,KAAA;AAGjD,EAAA,IAAI,CAAC,eAAA,IAAmB,CAAC,SAAA,SAAkB,IAAA,KAAS,KAAA;AACpD,EAAA,IAAI,QAAA,GAAW,MAAA,CAAO,IAAA,CAAK,IAAI,CAAA;AAC/B,EAAA,IAAI,SAAA,GAAY,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA;AACjC,EAAA,IAAI,QAAA,CAAS,MAAA,KAAW,SAAA,CAAU,MAAA,EAAQ,OAAO,KAAA;AACjD,EAAA,IAAI,SAAS,EAAC;AAEd,EAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,QAAA,CAAS,MAAA,EAAQ,KAAK,CAAA,EAAG;AAC3C,IAAA,MAAA,CAAO,QAAA,CAAS,CAAC,CAAC,CAAA,GAAI,IAAA;AAAA,EACxB;AAEA,EAAA,KAAA,IAAS,KAAK,CAAA,EAAG,EAAA,GAAK,SAAA,CAAU,MAAA,EAAQ,MAAM,CAAA,EAAG;AAC/C,IAAA,MAAA,CAAO,SAAA,CAAU,EAAE,CAAC,CAAA,GAAI,IAAA;AAAA,EAC1B;AAEA,EAAA,IAAI,OAAA,GAAU,MAAA,CAAO,IAAA,CAAK,MAAM,CAAA;AAEhC,EAAA,IAAI,OAAA,CAAQ,MAAA,KAAW,QAAA,CAAS,MAAA,EAAQ;AACtC,IAAA,OAAO,KAAA;AAAA,EACT;AAEA,EAAA,IAAI,CAAA,GAAI,IAAA;AACR,EAAA,IAAI,CAAA,GAAI,KAAA;AAER,EAAA,IAAI,IAAA,GAAO,SAASC,KAAAA,CAAK,GAAA,EAAK;AAC5B,IAAA,OAAOD,SAAQ,CAAA,CAAE,GAAG,CAAA,EAAG,CAAA,CAAE,GAAG,CAAC,CAAA;AAAA,EAC/B,CAAA;AAEA,EAAA,OAAO,OAAA,CAAQ,MAAM,IAAI,CAAA;AAC3B,CAAA;AAEA,IAAI,4BAAA,GAA+B,SAASE,6BAAAA,CAA6B,OAAA,EAAS,aAAa,aAAA,EAAe;AAC5G,EAAA,IAAI,CAAC,eAAA,CAAgB,OAAO,CAAA,EAAG;AAC7B,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,OAAO,OAAO,IAAA,CAAK,OAAO,EAAE,MAAA,CAAO,SAAU,YAAY,GAAA,EAAK;AAC5D,IAAA,IAAI,SAAA,GAAY,CAAC,eAAA,CAAgB,WAAW,CAAA,IAAK,CAAC,OAAA,CAAQ,OAAA,CAAQ,GAAG,CAAA,EAAG,WAAA,CAAY,GAAG,CAAC,CAAA;AAExF,IAAA,IAAI,aAAA,CAAc,QAAA,CAAS,GAAG,CAAA,EAAG;AAC/B,MAAA,IAAI,SAAA,EAAW;AACb,QAAA,OAAA,CAAQ,IAAA,CAAK,mCAAA,CAAoC,MAAA,CAAO,GAAA,EAAK,6BAA6B,CAAC,CAAA;AAAA,MAC7F;AAEA,MAAA,OAAO,UAAA;AAAA,IACT;AAEA,IAAA,IAAI,CAAC,SAAA,EAAW;AACd,MAAA,OAAO,UAAA;AAAA,IACT;AAEA,IAAA,OAAO,eAAe,cAAA,CAAe,EAAC,EAAG,UAAA,IAAc,EAAE,CAAA,EAAG,EAAC,EAAG,gBAAgB,EAAC,EAAG,KAAK,OAAA,CAAQ,GAAG,CAAC,CAAC,CAAA;AAAA,EACxG,GAAG,IAAI,CAAA;AACT,CAAA;AAEA,IAAI,sBAAA,GAAyB,oMAAA;AAI7B,IAAI,cAAA,GAAiB,SAASC,eAAAA,CAAe,WAAA,EAAa;AACxD,EAAA,IAAI,QAAA,GAAW,SAAA,CAAU,MAAA,GAAS,CAAA,IAAK,SAAA,CAAU,CAAC,CAAA,KAAM,MAAA,GAAY,SAAA,CAAU,CAAC,CAAA,GAAI,sBAAA;AAEnF,EAAA,IAAI,WAAA,KAAgB,IAAA,IAAQ,QAAA,CAAS,WAAW,CAAA,EAAG;AACjD,IAAA,OAAO,WAAA;AAAA,EACT;AAEA,EAAA,MAAM,IAAI,MAAM,QAAQ,CAAA;AAC1B,CAAA;AAEA,IAAI,eAAA,GAAkB,SAASC,gBAAAA,CAAgB,GAAA,EAAK;AAClD,EAAA,IAAI,QAAA,GAAW,SAAA,CAAU,MAAA,GAAS,CAAA,IAAK,SAAA,CAAU,CAAC,CAAA,KAAM,MAAA,GAAY,SAAA,CAAU,CAAC,CAAA,GAAI,sBAAA;AAEnF,EAAA,IAAI,SAAA,CAAU,GAAG,CAAA,EAAG;AAClB,IAAA,OAAO;AAAA,MACL,GAAA,EAAK,OAAA;AAAA,MACL,eAAe,OAAA,CAAQ,OAAA,CAAQ,GAAG,CAAA,CAAE,IAAA,CAAK,SAAU,MAAA,EAAQ;AACzD,QAAA,OAAO,cAAA,CAAe,QAAQ,QAAQ,CAAA;AAAA,MACxC,CAAC;AAAA,KACH;AAAA,EACF;AAEA,EAAA,IAAI,MAAA,GAAS,cAAA,CAAe,GAAA,EAAK,QAAQ,CAAA;AAEzC,EAAA,IAAI,WAAW,IAAA,EAAM;AACnB,IAAA,OAAO;AAAA,MACL,GAAA,EAAK;AAAA,KACP;AAAA,EACF;AAEA,EAAA,OAAO;AAAA,IACL,GAAA,EAAK,MAAA;AAAA,IACL;AAAA,GACF;AACF,CAAA;AAEA,IAAI,oBAAA,GAAuB,SAASC,qBAAAA,CAAqB,MAAA,EAAQ;AAC/D,EAAA,IAAI,CAAC,MAAA,IAAU,CAAC,OAAO,gBAAA,IAAoB,CAAC,OAAO,eAAA,EAAiB;AAClE,IAAA;AAAA,EACF;AAEA,EAAA,MAAA,CAAO,gBAAA,CAAiB;AAAA,IACtB,IAAA,EAAM,iBAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACV,CAAA;AAED,EAAA,MAAA,CAAO,eAAA,CAAgB;AAAA,IACrB,IAAA,EAAM,iBAAA;AAAA,IACN,OAAA,EAAS,OAAA;AAAA,IACT,GAAA,EAAK;AAAA,GACN,CAAA;AACH,CAAA;AAEA,IAAI,eAAA,mBAA+B,KAAA,CAAM,aAAA,CAAc,IAAI,CAAA;AAC3D,eAAA,CAAgB,WAAA,GAAc,iBAAA;AAC9B,IAAI,oBAAA,GAAuB,SAASC,qBAAAA,CAAqB,GAAA,EAAK,OAAA,EAAS;AACrE,EAAA,IAAI,CAAC,GAAA,EAAK;AACR,IAAA,MAAM,IAAI,KAAA,CAAM,8EAAA,CAA+E,MAAA,CAAO,OAAA,EAAS,6BAA6B,CAAC,CAAA;AAAA,EAC/I;AAEA,EAAA,OAAO,GAAA;AACT,CAAA;AAYA,IAAI,QAAA,GAAW,SAASC,SAAAA,CAAS,IAAA,EAAM;AACrC,EAAA,IAAI,gBAAgB,IAAA,CAAK,MAAA,EACrB,UAAU,IAAA,CAAK,OAAA,EACf,WAAW,IAAA,CAAK,QAAA;AACpB,EAAA,IAAI,MAAA,GAAS,KAAA,CAAM,OAAA,CAAQ,WAAY;AACrC,IAAA,OAAO,gBAAgB,aAAa,CAAA;AAAA,EACtC,CAAA,EAAG,CAAC,aAAa,CAAC,CAAA;AAElB,EAAA,IAAI,eAAA,GAAkB,KAAA,CAAM,QAAA,CAAS,WAAY;AAC/C,IAAA,OAAO;AAAA,MACL,MAAA,EAAQ,MAAA,CAAO,GAAA,KAAQ,MAAA,GAAS,OAAO,MAAA,GAAS,IAAA;AAAA,MAChD,QAAA,EAAU,OAAO,GAAA,KAAQ,MAAA,GAAS,OAAO,MAAA,CAAO,QAAA,CAAS,OAAO,CAAA,GAAI;AAAA,KACtE;AAAA,EACF,CAAC,CAAA,EACG,gBAAA,GAAmB,cAAA,CAAe,eAAA,EAAiB,CAAC,CAAA,EACpD,GAAA,GAAM,gBAAA,CAAiB,CAAC,CAAA,EACxB,UAAA,GAAa,iBAAiB,CAAC,CAAA;AAEnC,EAAA,KAAA,CAAM,UAAU,WAAY;AAC1B,IAAA,IAAI,SAAA,GAAY,IAAA;AAEhB,IAAA,IAAI,cAAA,GAAiB,SAASC,eAAAA,CAAe,MAAA,EAAQ;AACnD,MAAA,UAAA,CAAW,SAAUC,IAAAA,EAAK;AAExB,QAAA,IAAIA,IAAAA,CAAI,QAAQ,OAAOA,IAAAA;AACvB,QAAA,OAAO;AAAA,UACL,MAAA;AAAA,UACA,QAAA,EAAU,MAAA,CAAO,QAAA,CAAS,OAAO;AAAA,SACnC;AAAA,MACF,CAAC,CAAA;AAAA,IACH,CAAA;AAGA,IAAA,IAAI,MAAA,CAAO,GAAA,KAAQ,OAAA,IAAW,CAAC,IAAI,MAAA,EAAQ;AACzC,MAAA,MAAA,CAAO,aAAA,CAAc,IAAA,CAAK,SAAU,MAAA,EAAQ;AAC1C,QAAA,IAAI,UAAU,SAAA,EAAW;AAIvB,UAAA,cAAA,CAAe,MAAM,CAAA;AAAA,QACvB;AAAA,MACF,CAAC,CAAA;AAAA,IACH,WAAW,MAAA,CAAO,GAAA,KAAQ,MAAA,IAAU,CAAC,IAAI,MAAA,EAAQ;AAE/C,MAAA,cAAA,CAAe,OAAO,MAAM,CAAA;AAAA,IAC9B;AAEA,IAAA,OAAO,WAAY;AACjB,MAAA,SAAA,GAAY,KAAA;AAAA,IACd,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,MAAA,EAAQ,GAAA,EAAK,OAAO,CAAC,CAAA;AAEzB,EAAA,IAAI,UAAA,GAAa,YAAY,aAAa,CAAA;AAC1C,EAAA,KAAA,CAAM,UAAU,WAAY;AAC1B,IAAA,IAAI,UAAA,KAAe,IAAA,IAAQ,UAAA,KAAe,aAAA,EAAe;AACvD,MAAA,OAAA,CAAQ,KAAK,4FAA4F,CAAA;AAAA,IAC3G;AAAA,EACF,CAAA,EAAG,CAAC,UAAA,EAAY,aAAa,CAAC,CAAA;AAE9B,EAAA,IAAI,WAAA,GAAc,YAAY,OAAO,CAAA;AACrC,EAAA,KAAA,CAAM,UAAU,WAAY;AAC1B,IAAA,IAAI,CAAC,IAAI,QAAA,EAAU;AACjB,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,UAAU,4BAAA,CAA6B,OAAA,EAAS,aAAa,CAAC,cAAA,EAAgB,OAAO,CAAC,CAAA;AAE1F,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,GAAA,CAAI,QAAA,CAAS,OAAO,OAAO,CAAA;AAAA,IAC7B;AAAA,EACF,GAAG,CAAC,OAAA,EAAS,WAAA,EAAa,GAAA,CAAI,QAAQ,CAAC,CAAA;AAEvC,EAAA,KAAA,CAAM,UAAU,WAAY;AAC1B,IAAA,oBAAA,CAAqB,IAAI,MAAM,CAAA;AAAA,EACjC,CAAA,EAAG,CAAC,GAAA,CAAI,MAAM,CAAC,CAAA;AACf,EAAA,uBAAoB,KAAA,CAAM,aAAA,CAAc,eAAA,CAAgB,QAAA,EAAU;AAAA,IAChE,KAAA,EAAO;AAAA,KACN,QAAQ,CAAA;AACb,CAAA;AACA,QAAA,CAAS,SAAA,GAAY;AAAA,EACnB,MAAA,EAAQ,kBAAAC,OAAAA,CAAU,GAAA;AAAA,EAClB,OAAA,EAAS,kBAAAA,OAAAA,CAAU;AACrB,CAAA;AACA,IAAI,6BAAA,GAAgC,SAASC,8BAAAA,CAA8B,cAAA,EAAgB;AACzF,EAAA,IAAI,GAAA,GAAM,KAAA,CAAM,UAAA,CAAW,eAAe,CAAA;AAC1C,EAAA,OAAO,oBAAA,CAAqB,KAAK,cAAc,CAAA;AACjD,CAAA;AAKA,IAAI,WAAA,GAAc,SAASC,YAAAA,GAAc;AACvC,EAAA,IAAI,qBAAA,GAAwB,6BAAA,CAA8B,qBAAqB,CAAA,EAC3E,WAAW,qBAAA,CAAsB,QAAA;AAErC,EAAA,OAAO,QAAA;AACT,CAAA;CAW6B;AAAA,EAC3B,QAAA,EAAU,iBAAA,CAAAF,OAAAA,CAAU,IAAA,CAAK;AAC3B,EAAA;AAEA,IAAI,eAAA,mBAA+B,KAAA,CAAM,aAAA,CAAc,IAAI,CAAA;AAC3D,eAAA,CAAgB,WAAA,GAAc,iBAAA;AAAA,CAC7B;AAAA,EACC,MAAA,EAAQ,kBAAAA,OAAAA,CAAU,GAAA;AAAA,EAClB,OAAA,EAAS,iBAAA,CAAAA,OAAAA,CAAU,KAAA,CAAM;AAAA,IACvB,YAAA,EAAc,iBAAA,CAAAA,OAAAA,CAAU,SAAA,CAAU,CAAC,iBAAA,CAAAA,OAAAA,CAAU,MAAA,EAAQ,iBAAA,CAAAA,OAAAA,CAAU,UAAA,CAAW,OAAO,CAAC,CAAC,CAAA,CAAE,UAAA;AAAA,IACrF,eAAA,EAAiB,kBAAAA,OAAAA,CAAU;AAAA,GAC5B,CAAA,CAAE;AACL,CAAA;AACA,IAAI,uCAAA,GAA0C,SAASG,wCAAAA,CAAwC,aAAA,EAAe;AAC5G,EAAA,IAAI,QAAA,GAAW,KAAA,CAAM,UAAA,CAAW,eAAe,CAAA;AAC/C,EAAA,IAAI,QAAA,GAAW,KAAA,CAAM,UAAA,CAAW,eAAe,CAAA;AAE/C,EAAA,IAAI,QAAA,EAAU;AACZ,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA,MAAM,IAAI,KAAA,CAAM,4CAAA,CAA6C,MAAA,CAAO,aAAA,EAAe,uDAAuD,CAAC,CAAA;AAAA,IAC7I,CAAA,MAAO;AACL,MAAA,OAAO,QAAA;AAAA,IACT;AAAA,EACF,CAAA,MAAO;AACL,IAAA,OAAO,oBAAA,CAAqB,UAAU,aAAa,CAAA;AAAA,EACrD;AACF,CAAA;AAEA,IAAI,SAAA,GAAY,CAAC,MAAM,CAAA;AAEvB,IAAI,WAAA,GAAc,SAASC,YAAAA,CAAY,GAAA,EAAK;AAC1C,EAAA,OAAO,GAAA,CAAI,OAAO,CAAC,CAAA,CAAE,aAAY,GAAI,GAAA,CAAI,MAAM,CAAC,CAAA;AAClD,CAAA;AAEA,IAAI,sBAAA,GAAyB,SAASC,uBAAAA,CAAuB,IAAA,EAAMC,SAAAA,EAAU;AAC3E,EAAA,IAAI,cAAc,EAAA,CAAG,MAAA,CAAO,WAAA,CAAY,IAAI,GAAG,SAAS,CAAA;AAExD,EAAA,IAAI,aAAA,GAAgB,SAASC,cAAAA,CAAc,IAAA,EAAM;AAC/C,IAAA,IAAI,EAAA,GAAK,IAAA,CAAK,EAAA,EACV,SAAA,GAAY,IAAA,CAAK,SAAA,EACjB,YAAA,GAAe,IAAA,CAAK,OAAA,EACpB,OAAA,GAAU,YAAA,KAAiB,MAAA,GAAS,EAAC,GAAI,YAAA,EACzC,MAAA,GAAS,IAAA,CAAK,MAAA,EACd,OAAA,GAAU,IAAA,CAAK,OAAA,EACf,OAAA,GAAU,IAAA,CAAK,OAAA,EACf,QAAA,GAAW,IAAA,CAAK,QAAA,EAChB,QAAA,GAAW,IAAA,CAAK,UAChB,OAAA,GAAU,IAAA,CAAK,OAAA,EACf,WAAA,GAAc,IAAA,CAAK,WAAA,EACnB,aAAA,GAAgB,IAAA,CAAK,aAAA,EACrB,gBAAA,GAAmB,IAAA,CAAK,gBAAA,EACxB,SAAA,GAAY,IAAA,CAAK,SAAA,EACjB,QAAA,GAAW,IAAA,CAAK,QAAA,EAChB,uBAAA,GAA0B,IAAA,CAAK,uBAAA,EAC/B,oBAAA,GAAuB,IAAA,CAAK,oBAAA,EAC5B,0BAAA,GAA6B,IAAA,CAAK,0BAAA,EAClC,0BAAA,GAA6B,IAAA,CAAK,0BAAA;AACtC,IAAA,IAAI,MAAM,uCAAA,CAAwC,UAAA,CAAW,MAAA,CAAO,WAAA,EAAa,GAAG,CAAC,CAAA;AACrF,IAAA,IAAI,QAAA,GAAW,UAAA,IAAc,GAAA,GAAM,GAAA,CAAI,QAAA,GAAW,IAAA;AAClD,IAAA,IAAI,aAAA,GAAgB,eAAA,IAAmB,GAAA,GAAM,GAAA,CAAI,aAAA,GAAgB,IAAA;AACjE,IAAA,IAAI,eAAe,aAAA,KAAkB,IAAA,IAAQ,kBAAkB,MAAA,GAAS,MAAA,GAAS,cAAc,IAAA,MAAU,SAAA,IAAA,CAAc,aAAA,KAAkB,IAAA,IAAQ,kBAAkB,MAAA,GAAS,MAAA,GAAS,cAAc,IAAA,MAAU,SAAA,GAAY,cAAc,GAAA,GAAM,IAAA;AAE7O,IAAA,IAAI,kBAAkB,KAAA,CAAM,QAAA,CAAS,IAAI,CAAA,EACrC,mBAAmB,cAAA,CAAe,eAAA,EAAiB,CAAC,CAAA,EACpD,UAAU,gBAAA,CAAiB,CAAC,CAAA,EAC5B,UAAA,GAAa,iBAAiB,CAAC,CAAA;AAEnC,IAAA,IAAI,UAAA,GAAa,KAAA,CAAM,MAAA,CAAO,IAAI,CAAA;AAClC,IAAA,IAAI,OAAA,GAAU,KAAA,CAAM,MAAA,CAAO,IAAI,CAAA;AAI/B,IAAA,cAAA,CAAe,OAAA,EAAS,QAAQ,MAAM,CAAA;AACtC,IAAA,cAAA,CAAe,OAAA,EAAS,SAAS,OAAO,CAAA;AACxC,IAAA,cAAA,CAAe,OAAA,EAAS,UAAU,QAAQ,CAAA;AAC1C,IAAA,cAAA,CAAe,OAAA,EAAS,SAAS,OAAO,CAAA;AACxC,IAAA,cAAA,CAAe,OAAA,EAAS,aAAa,WAAW,CAAA;AAChD,IAAA,cAAA,CAAe,OAAA,EAAS,eAAe,aAAa,CAAA;AACpD,IAAA,cAAA,CAAe,OAAA,EAAS,kBAAkB,gBAAgB,CAAA;AAC1D,IAAA,cAAA,CAAe,OAAA,EAAS,WAAW,SAAS,CAAA;AAC5C,IAAA,cAAA,CAAe,OAAA,EAAS,UAAU,QAAQ,CAAA;AAC1C,IAAA,cAAA,CAAe,OAAA,EAAS,yBAAyB,uBAAuB,CAAA;AACxE,IAAA,cAAA,CAAe,OAAA,EAAS,sBAAsB,oBAAoB,CAAA;AAClE,IAAA,cAAA,CAAe,OAAA,EAAS,4BAA4B,0BAA0B,CAAA;AAC9E,IAAA,cAAA,CAAe,OAAA,EAAS,4BAA4B,0BAA0B,CAAA;AAC9E,IAAA,cAAA,CAAe,OAAA,EAAS,UAAU,QAAQ,CAAA;AAC1C,IAAA,IAAI,aAAA;AAEJ,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,IAAI,SAAS,iBAAA,EAAmB;AAE9B,QAAA,aAAA,GAAgB,OAAA;AAAA,MAClB,CAAA,MAAO;AAEL,QAAA,aAAA,GAAgB,SAASC,cAAAA,GAAgB;AACvC,UAAA,OAAA,CAAQ,OAAO,CAAA;AAAA,QACjB,CAAA;AAAA,MACF;AAAA,IACF;AAEA,IAAA,cAAA,CAAe,OAAA,EAAS,SAAS,aAAa,CAAA;AAC9C,IAAA,KAAA,CAAM,gBAAgB,WAAY;AAChC,MAAA,IAAI,WAAW,OAAA,KAAY,IAAA,IAAQ,QAAQ,OAAA,KAAY,IAAA,KAAS,YAAY,WAAA,CAAA,EAAc;AACxF,QAAA,IAAI,UAAA,GAAa,IAAA;AAEjB,QAAA,IAAI,WAAA,EAAa;AACf,UAAA,QAAQ,IAAA;AAAM,YACZ,KAAK,aAAA;AACH,cAAA,UAAA,GAAa,YAAY,wBAAA,EAAyB;AAClD,cAAA;AAAA,YAEF,KAAK,SAAA;AACH,cAAA,UAAA,GAAa,WAAA,CAAY,qBAAqB,OAAO,CAAA;AACrD,cAAA;AAAA,YAEF,KAAK,SAAA;AACH,cAAA,IAAI,UAAU,OAAA,EAAS;AACrB,gBAAA,IAAI,OAAO,OAAA,CAAQ,IAAA,EACf,WAAA,GAAc,wBAAA,CAAyB,SAAS,SAAS,CAAA;AAE7D,gBAAA,IAAI,SAAS,UAAA,EAAY;AACvB,kBAAA,UAAA,GAAa,WAAA,CAAY,6BAA6B,WAAW,CAAA;AAAA,gBACnE,CAAA,MAAA,IAAW,SAAS,SAAA,EAAW;AAC7B,kBAAA,UAAA,GAAa,WAAA,CAAY,4BAA4B,WAAW,CAAA;AAAA,gBAClE,CAAA,MAAO;AACL,kBAAA,MAAM,IAAI,MAAM,6DAA6D,CAAA;AAAA,gBAC/E;AAAA,cACF,CAAA,MAAO;AACL,gBAAA,MAAM,IAAI,MAAM,qEAAqE,CAAA;AAAA,cACvF;AAEA,cAAA;AAAA,YAEF,KAAK,iBAAA;AACH,cAAA,UAAA,GAAa,WAAA,CAAY,6BAA6B,OAAO,CAAA;AAC7D,cAAA;AAAA,YAEF,KAAK,kBAAA;AACH,cAAA,UAAA,GAAa,YAAY,6BAAA,EAA8B;AACvD,cAAA;AAAA,YAEF,KAAK,OAAA;AACH,cAAA,UAAA,GAAa,WAAA,CAAY,mBAAmB,OAAO,CAAA;AACnD,cAAA;AAAA,YAEF;AACE,cAAA,MAAM,IAAI,KAAA,CAAM,uBAAA,CAAwB,MAAA,CAAO,WAAA,EAAa,+KAA+K,CAAC,CAAA;AAAA;AAChP,QACF,WAAW,QAAA,EAAU;AACnB,UAAA,UAAA,GAAa,QAAA,CAAS,MAAA,CAAO,IAAA,EAAM,OAAO,CAAA;AAAA,QAC5C;AAGA,QAAA,UAAA,CAAW,OAAA,GAAU,UAAA;AAErB,QAAA,UAAA,CAAW,UAAU,CAAA;AAErB,QAAA,IAAI,UAAA,EAAY;AACd,UAAA,UAAA,CAAW,KAAA,CAAM,QAAQ,OAAO,CAAA;AAAA,QAClC;AAAA,MACF;AAAA,IACF,CAAA,EAAG,CAAC,QAAA,EAAU,WAAA,EAAa,OAAO,CAAC,CAAA;AACnC,IAAA,IAAI,WAAA,GAAc,YAAY,OAAO,CAAA;AACrC,IAAA,KAAA,CAAM,UAAU,WAAY;AAC1B,MAAA,IAAI,CAAC,WAAW,OAAA,EAAS;AACvB,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,UAAU,4BAAA,CAA6B,OAAA,EAAS,WAAA,EAAa,CAAC,gBAAgB,CAAC,CAAA;AAEnF,MAAA,IAAI,OAAA,IAAW,QAAA,IAAY,UAAA,CAAW,OAAA,EAAS;AAC7C,QAAA,UAAA,CAAW,OAAA,CAAQ,OAAO,OAAO,CAAA;AAAA,MACnC;AAAA,IACF,CAAA,EAAG,CAAC,OAAA,EAAS,WAAW,CAAC,CAAA;AACzB,IAAA,KAAA,CAAM,gBAAgB,WAAY;AAChC,MAAA,OAAO,WAAY;AACjB,QAAA,IAAI,WAAW,OAAA,IAAW,OAAO,UAAA,CAAW,OAAA,CAAQ,YAAY,UAAA,EAAY;AAC1E,UAAA,IAAI;AACF,YAAA,UAAA,CAAW,QAAQ,OAAA,EAAQ;AAC3B,YAAA,UAAA,CAAW,OAAA,GAAU,IAAA;AAAA,UACvB,SAAS,KAAA,EAAO;AAAA,UAChB;AAAA,QACF;AAAA,MACF,CAAA;AAAA,IACF,CAAA,EAAG,EAAE,CAAA;AACL,IAAA,uBAAoB,KAAA,CAAM,cAAc,KAAA,EAAO;AAAA,MAC7C,EAAA;AAAA,MACA,SAAA;AAAA,MACA,GAAA,EAAK;AAAA,KACN,CAAA;AAAA,EACH,CAAA;AAGA,EAAA,IAAI,aAAA,GAAgB,SAASC,cAAAA,CAAc,KAAA,EAAO;AAChD,IAAA,uCAAA,CAAwC,UAAA,CAAW,MAAA,CAAO,WAAA,EAAa,GAAG,CAAC,CAAA;AAC3E,IAAA,IAAI,EAAA,GAAK,KAAA,CAAM,EAAA,EACX,SAAA,GAAY,KAAA,CAAM,SAAA;AACtB,IAAA,uBAAoB,KAAA,CAAM,cAAc,KAAA,EAAO;AAAA,MAC7C,EAAA;AAAA,MACA;AAAA,KACD,CAAA;AAAA,EACH,CAAA;AAEA,EAAA,IAAI,OAAA,GAAUH,YAAW,aAAA,GAAgB,aAAA;AACzC,EAAA,OAAA,CAAQ,SAAA,GAAY;AAAA,IAClB,EAAA,EAAI,kBAAAN,OAAAA,CAAU,MAAA;AAAA,IACd,SAAA,EAAW,kBAAAA,OAAAA,CAAU,MAAA;AAAA,IACrB,QAAA,EAAU,kBAAAA,OAAAA,CAAU,IAAA;AAAA,IACpB,MAAA,EAAQ,kBAAAA,OAAAA,CAAU,IAAA;AAAA,IAClB,OAAA,EAAS,kBAAAA,OAAAA,CAAU,IAAA;AAAA,IACnB,OAAA,EAAS,kBAAAA,OAAAA,CAAU,IAAA;AAAA,IACnB,QAAA,EAAU,kBAAAA,OAAAA,CAAU,IAAA;AAAA,IACpB,OAAA,EAAS,kBAAAA,OAAAA,CAAU,IAAA;AAAA,IACnB,WAAA,EAAa,kBAAAA,OAAAA,CAAU,IAAA;AAAA,IACvB,aAAA,EAAe,kBAAAA,OAAAA,CAAU,IAAA;AAAA,IACzB,gBAAA,EAAkB,kBAAAA,OAAAA,CAAU,IAAA;AAAA,IAC5B,SAAA,EAAW,kBAAAA,OAAAA,CAAU,IAAA;AAAA,IACrB,QAAA,EAAU,kBAAAA,OAAAA,CAAU,IAAA;AAAA,IACpB,uBAAA,EAAyB,kBAAAA,OAAAA,CAAU,IAAA;AAAA,IACnC,oBAAA,EAAsB,kBAAAA,OAAAA,CAAU,IAAA;AAAA,IAChC,0BAAA,EAA4B,kBAAAA,OAAAA,CAAU,IAAA;AAAA,IACtC,0BAAA,EAA4B,kBAAAA,OAAAA,CAAU,IAAA;AAAA,IACtC,OAAA,EAAS,kBAAAA,OAAAA,CAAU;AAAA,GACrB;AACA,EAAA,OAAA,CAAQ,WAAA,GAAc,WAAA;AACtB,EAAA,OAAA,CAAQ,aAAA,GAAgB,IAAA;AACxB,EAAA,OAAO,OAAA;AACT,CAAA;AAEA,IAAI,QAAA,GAAW,OAAO,MAAA,KAAW,WAAA;AAEjC,IAAI,uBAAA,mBAAuC,KAAA,CAAM,aAAA,CAAc,IAAI,CAAA;AACnE,uBAAA,CAAwB,WAAA,GAAc,iCAAA;AA+YtC,IAAI,SAAA,GAAY,SAASU,UAAAA,GAAY;AACnC,EAAA,IAAI,qBAAA,GAAwB,uCAAA,CAAwC,mBAAmB,CAAA,EACnF,SAAS,qBAAA,CAAsB,MAAA;AAEnC,EAAA,OAAO,MAAA;AACT,CAAA;AAS2B,sBAAA,CAAuB,eAAA,EAAiB,QAAQ;AAKzD,sBAAA,CAAuB,MAAA,EAAQ,QAAQ;AAKjC,sBAAA,CAAuB,YAAA,EAAc,QAAQ;AAK7C,sBAAA,CAAuB,YAAA,EAAc,QAAQ;AAKhD,sBAAA,CAAuB,SAAA,EAAW,QAAQ;AAK7C,sBAAA,CAAuB,MAAA,EAAQ,QAAQ;AACzD,IAAI,cAAA,GAAiB,sBAAA,CAAuB,SAAA,EAAW,QAAQ,CAAA;AAKlC,sBAAA,CAAuB,iBAAA,EAAmB,QAAQ;AAK7C,sBAAA,CAAuB,sBAAA,EAAwB,QAAQ;AAKzD,sBAAA,CAAuB,oBAAA,EAAsB,QAAQ;AAKhE,sBAAA,CAAuB,SAAA,EAAW,QAAQ;AAQlC,sBAAA,CAAuB,iBAAA,EAAmB,QAAQ;AAK3C,sBAAA,CAAuB,wBAAA,EAA0B,QAAQ;AAM1E,sBAAA,CAAuB,OAAA,EAAS,QAAQ;ACzqC3D,SAAS,YAAY,EAAE,UAAA,EAAY,SAAA,EAAW,QAAA,EAAU,UAAS,EAAqB;AACpF,EAAA,MAAM,SAAS,SAAA,EAAU;AACzB,EAAA,MAAM,WAAW,WAAA,EAAY;AAC7B,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI3C,SAAS,KAAK,CAAA;AACtD,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAIA,SAAwB,IAAI,CAAA;AACpE,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAIA,SAAS,KAAK,CAAA;AAKtD,EAAA,MAAM,YAAA,GAAe,OAAO,CAAA,KAAuB;AACjD,IAAA,CAAA,CAAE,cAAA,EAAe;AAEjB,IAAA,IAAI,CAAC,MAAA,IAAU,CAAC,QAAA,EAAU;AACxB,MAAA;AAAA,IACF;AAEA,IAAA,eAAA,CAAgB,IAAI,CAAA;AACpB,IAAA,eAAA,CAAgB,IAAI,CAAA;AAEpB,IAAA,IAAI;AAEF,MAAA,MAAM,EAAE,KAAA,EAAO,WAAA,EAAY,GAAI,MAAM,SAAS,MAAA,EAAO;AAErD,MAAA,IAAI,WAAA,EAAa;AACf,QAAA,eAAA,CAAgB,WAAA,CAAY,WAAW,oCAAoC,CAAA;AAC3E,QAAA,eAAA,CAAgB,KAAK,CAAA;AACrB,QAAA;AAAA,MACF;AAGA,MAAA,MAAM,EAAE,KAAA,EAAO,aAAA,EAAc,GAAI,MAAM,OAAO,mBAAA,CAAoB;AAAA,QAChE;AAAA,OACD,CAAA;AAED,MAAA,IAAI,KAAA,EAAO;AACT,QAAA,eAAA,CAAgB,KAAA,CAAM,WAAW,iCAAiC,CAAA;AAClE,QAAA,eAAA,CAAgB,KAAK,CAAA;AACrB,QAAA;AAAA,MACF;AAGA,MAAA,MAAM,MAAA,GAAS,MAAM,QAAA,CAAS,aAAA,CAAe,IAAI,YAAY,CAAA;AAE7D,MAAA,IAAI,CAAC,OAAO,OAAA,EAAS;AACnB,QAAA,MAAM,IAAI,KAAA,CAAM,MAAA,CAAO,KAAA,IAAS,8BAA8B,CAAA;AAAA,MAChE;AAEA,MAAA,SAAA,EAAU;AAAA,IACZ,SAAS,KAAA,EAAgB;AACvB,MAAA,eAAA,CAAgB,iBAAiB,KAAA,GAAQ,KAAA,CAAM,UAAU,MAAA,CAAO,KAAK,KAAK,mBAAmB,CAAA;AAC7F,MAAA,eAAA,CAAgB,KAAK,CAAA;AAAA,IACvB;AAAA,EACF,CAAA;AAEA,EAAA,uBACEE,IAAAA,CAAC,MAAA,EAAA,EAAK,QAAA,EAAU,YAAA,EAAc,WAAU,WAAA,EACtC,QAAA,EAAA;AAAA,oBAAAH,IAAC,cAAA,EAAA,EAAe,CAAA;AAAA,IAEf,gCACCA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0CACZ,QAAA,EAAA,YAAA,EACH,CAAA;AAAA,oBAGFG,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,8BAAA,EACb,QAAA,EAAA;AAAA,sBAAAH,GAAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,UAAA;AAAA,UACL,EAAA,EAAG,YAAA;AAAA,UACH,OAAA,EAAS,YAAA;AAAA,UACT,UAAU,CAAC,CAAA,KAAM,eAAA,CAAgB,CAAA,CAAE,OAAO,OAAO,CAAA;AAAA,UACjD,SAAA,EAAU;AAAA;AAAA,OACZ;AAAA,sBACAA,GAAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAQ,YAAA;AAAA,UACR,SAAA,EAAU,0CAAA;AAAA,UACX,QAAA,EAAA;AAAA;AAAA;AAED,KAAA,EACF,CAAA;AAAA,oBAEAG,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gFAAA,EACb,QAAA,EAAA;AAAA,sBAAAH,GAAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,QAAA;AAAA,UACL,OAAA,EAAQ,WAAA;AAAA,UACR,OAAA,EAAS,QAAA;AAAA,UACT,QAAA,EAAU,YAAA;AAAA,UACX,QAAA,EAAA;AAAA;AAAA,OAED;AAAA,sBACAA,GAAAA,CAAC,MAAA,EAAA,EAAO,IAAA,EAAK,QAAA,EAAS,OAAA,EAAQ,SAAA,EAAU,QAAA,EAAU,CAAC,MAAA,IAAU,YAAA,EAC1D,QAAA,EAAA,YAAA,GAAe,kBAAkB,oBAAA,EACpC;AAAA,KAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;AAUO,SAAS,oBAAA,CAAqB;AAAA,EACnC,UAAA;AAAA,EACA,oBAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,EAA8B;AAC5B,EAAA,MAAM,CAAC6C,cAAAA,EAAe,gBAAgB,CAAA,GAAI5C,SAAwC,IAAI,CAAA;AACtF,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIA,SAA2B,OAAO,CAAA;AAE5D,EAAAC,UAAU,MAAM;AACd,IAAA,IAAI,oBAAA,EAAsB;AACxB,MAAA,gBAAA,CAAiB,UAAA,CAAW,oBAAoB,CAAC,CAAA;AAAA,IACnD;AAAA,EACF,CAAA,EAAG,CAAC,oBAAoB,CAAC,CAAA;AAEzB,EAAAA,UAAU,MAAM;AAEd,IAAA,MAAM,MAAA,GAAS,QAAA,CAAS,eAAA,CAAgB,SAAA,CAAU,QAAA,CAAS,MAAM,CAAA,IAClD,MAAA,CAAO,UAAA,CAAW,8BAA8B,CAAA,CAAE,OAAA;AACjE,IAAA,QAAA,CAAS,MAAA,GAAS,SAAS,OAAO,CAAA;AAGlC,IAAA,MAAM,QAAA,GAAW,IAAI,gBAAA,CAAiB,MAAM;AAC1C,MAAA,MAAM4C,OAAAA,GAAS,QAAA,CAAS,eAAA,CAAgB,SAAA,CAAU,SAAS,MAAM,CAAA;AACjE,MAAA,QAAA,CAASA,OAAAA,GAAS,SAAS,OAAO,CAAA;AAAA,IACpC,CAAC,CAAA;AAED,IAAA,QAAA,CAAS,OAAA,CAAQ,SAAS,eAAA,EAAiB;AAAA,MACzC,UAAA,EAAY,IAAA;AAAA,MACZ,eAAA,EAAiB,CAAC,OAAO;AAAA,KAC1B,CAAA;AAED,IAAA,OAAO,MAAM,SAAS,UAAA,EAAW;AAAA,EACnC,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,aAAA,GAAgB3D,QAAQ,OAAO;AAAA,IACnC,IAAA,EAAM,OAAA;AAAA,IACN,QAAA,EAAU,KAAA;AAAA,IACV,qBAAA,EAAuB,QAAA;AAAA,IACvB,UAAA,EAAY;AAAA,MACV,KAAA,EAAO,KAAA,KAAU,MAAA,GAAU,OAAA,GAAqB,QAAA;AAAA,MAChD,SAAA,EAAW;AAAA,QACT,YAAA,EAAc,SAAA;AAAA,QACd,eAAA,EAAiB,KAAA,KAAU,MAAA,GAAS,SAAA,GAAY,SAAA;AAAA,QAChD,SAAA,EAAW,KAAA,KAAU,MAAA,GAAS,SAAA,GAAY,SAAA;AAAA,QAC1C,WAAA,EAAa,SAAA;AAAA,QACb,UAAA,EAAY,sCAAA;AAAA,QACZ,WAAA,EAAa,KAAA;AAAA,QACb,YAAA,EAAc;AAAA;AAChB;AACF,GACF,CAAA,EAAI,CAAC,KAAK,CAAC,CAAA;AAEX,EAAA,IAAI,CAAC0D,cAAAA,EAAe;AAClB,IAAA,uBACE7C,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kBAAA,EACb,QAAA,kBAAAA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,kCAAA,EAAmC,QAAA,EAAA,YAAA,EAAU,CAAA,EAC5D,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACEA,GAAAA,CAAC,QAAA,EAAA,EAAS,QAAQ6C,cAAAA,EAAe,OAAA,EAAS,eACxC,QAAA,kBAAA7C,GAAAA;AAAA,IAAC,WAAA;AAAA,IAAA;AAAA,MACC,UAAA;AAAA,MACA,SAAA;AAAA,MACA,QAAA;AAAA,MACA;AAAA;AAAA,GACF,EACF,CAAA;AAEJ;ACjMA,IAAA,iBAAA,GAA0B,OAAA,CAAA,mBAAA,EAAA,CAAA;;;ACoB1B,SAAS,cAAc,MAAA,EAA8C;AACnE,EAAA,MAAM,OAAA,GAAkC;AAAA,IACtC,cAAA,EAAgB;AAAA,GAClB;AAEA,EAAA,IAAI,OAAO,WAAA,EAAa;AACtB,IAAA,OAAA,CAAQ,eAAe,CAAA,GAAI,CAAA,OAAA,EAAU,MAAA,CAAO,WAAW,CAAA,CAAA;AAAA,EACzD;AAEA,EAAA,IAAI,OAAO,MAAA,EAAQ;AACjB,IAAA,OAAA,CAAQ,WAAW,IAAI,MAAA,CAAO,MAAA;AAAA,EAChC;AAEA,EAAA,OAAO,OAAA;AACT;AAEA,eAAe,QAAA,CACb,MAAA,EACA,GAAA,EACA,OAAA,GAAuB,EAAC,EACiC;AACzD,EAAA,IAAI;AACF,IAAA,MAAM,QAAA,GAAW,MAAM,KAAA,CAAM,GAAA,EAAK;AAAA,MAChC,GAAG,OAAA;AAAA,MACH,OAAA,EAAS;AAAA,QACP,GAAG,cAAc,MAAM,CAAA;AAAA,QACvB,GAAG,OAAA,CAAQ;AAAA;AACb,KACD,CAAA;AAED,IAAA,OAAO,MAAM,SAAS,IAAA,EAAK;AAAA,EAC7B,SAAS,KAAA,EAAO;AACd,IAAA,OAAO;AAAA,MACL,OAAA,EAAS,KAAA;AAAA,MACT,KAAA,EAAO,KAAA,YAAiB,KAAA,GAAQ,KAAA,CAAM,OAAA,GAAU;AAAA,KAClD;AAAA,EACF;AACF;AAKA,eAAsB,gBAAA,CACpB,MAAA,EACA,UAAA,EACA,qBAAA,EACA,eAAwB,KAAA,EACc;AACtC,EAAA,MAAM,EAAE,OAAA,EAAS,SAAA,EAAU,GAAI,MAAA;AAE/B,EAAA,MAAM,SAAS,MAAM,QAAA;AAAA,IACnB,MAAA;AAAA,IACA,CAAA,EAAG,OAAO,CAAA,mBAAA,EAAsB,UAAU,CAAA,gBAAA,CAAA;AAAA,IAC1C;AAAA,MACE,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,KAAK,SAAA,CAAU;AAAA,QACnB,UAAA,EAAY,SAAA;AAAA,QACZ,IAAA,EAAM,MAAA;AAAA,QACN,wBAAA,EAA0B,qBAAA;AAAA,QAC1B,cAAA,EAAgB;AAAA,OACjB;AAAA;AACH,GACF;AAEA,EAAA,IAAI,CAAC,OAAO,OAAA,EAAS;AACnB,IAAA,OAAO,EAAE,OAAA,EAAS,KAAA,EAAO,KAAA,EAAO,MAAA,CAAO,SAAS,8BAAA,EAA+B;AAAA,EACjF;AAEA,EAAA,OAAO,EAAE,OAAA,EAAS,IAAA,EAAM,IAAA,EAAM,OAAO,IAAA,EAAK;AAC5C;AAKA,eAAsB,mBAAA,CACpB,MAAA,EACA,UAAA,EACA,eAAA,EACuB;AACvB,EAAA,MAAM,EAAE,OAAA,EAAS,SAAA,EAAU,GAAI,MAAA;AAE/B,EAAA,MAAM,UAAA,GAAa,eAAA,CAAgB,UAAA,CAAW,KAAK,CAAA;AACnD,EAAA,MAAM,MAAA,GAAS,aAAa,QAAA,GAAW,UAAA;AAEvC,EAAA,MAAM,SAAS,MAAM,QAAA;AAAA,IACnB,MAAA;AAAA,IACA,CAAA,EAAG,OAAO,CAAA,yBAAA,EAA4B,eAAe,CAAA,CAAA;AAAA,IACrD;AAAA,MACE,MAAA,EAAQ,QAAA;AAAA,MACR,IAAA,EAAM,KAAK,SAAA,CAAU;AAAA,QACnB,WAAA,EAAa,UAAA;AAAA,QACb,UAAA,EAAY,SAAA;AAAA,QACZ,OAAA,EAAS,MAAA;AAAA,QACT,SAAA,EAAW;AAAA,OACZ;AAAA;AACH,GACF;AAEA,EAAA,IAAI,CAAC,OAAO,OAAA,EAAS;AACnB,IAAA,OAAO,EAAE,OAAA,EAAS,KAAA,EAAO,KAAA,EAAO,MAAA,CAAO,SAAS,iCAAA,EAAkC;AAAA,EACpF;AAEA,EAAA,OAAO,EAAE,SAAS,IAAA,EAAK;AACzB;AAKA,eAAsB,uBAAA,CACpB,MAAA,EACA,UAAA,EACA,eAAA,EACuB;AACvB,EAAA,MAAM,EAAE,OAAA,EAAS,SAAA,EAAU,GAAI,MAAA;AAE/B,EAAA,MAAM,UAAA,GAAa,eAAA,CAAgB,UAAA,CAAW,KAAK,CAAA;AACnD,EAAA,MAAM,MAAA,GAAS,aAAa,QAAA,GAAW,UAAA;AAEvC,EAAA,MAAM,SAAS,MAAM,QAAA;AAAA,IACnB,MAAA;AAAA,IACA,CAAA,EAAG,OAAO,CAAA,yBAAA,EAA4B,eAAe,CAAA,CAAA;AAAA,IACrD;AAAA,MACE,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,KAAK,SAAA,CAAU;AAAA,QACnB,WAAA,EAAa,UAAA;AAAA,QACb,UAAA,EAAY,SAAA;AAAA,QACZ,OAAA,EAAS,MAAA;AAAA,QACT,UAAA,EAAY,IAAA;AAAA,QACZ,SAAA,EAAW;AAAA,OACZ;AAAA;AACH,GACF;AAEA,EAAA,IAAI,CAAC,OAAO,OAAA,EAAS;AACnB,IAAA,OAAO,EAAE,OAAA,EAAS,KAAA,EAAO,KAAA,EAAO,MAAA,CAAO,SAAS,sCAAA,EAAuC;AAAA,EACzF;AAEA,EAAA,OAAO,EAAE,SAAS,IAAA,EAAK;AACzB;AAMA,eAAsB,kBAAA,CACpB,MAAA,EACA,UAAA,EACA,OAAA,EACA,eAAA,EACqC;AACrC,EAAA,MAAM,EAAE,OAAA,EAAS,SAAA,EAAU,GAAI,MAAA;AAE/B,EAAA,MAAM,SAAS,MAAM,QAAA;AAAA,IACnB,MAAA;AAAA,IACA,GAAG,OAAO,CAAA,sBAAA,CAAA;AAAA,IACV;AAAA,MACE,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,KAAK,SAAA,CAAU;AAAA,QACnB,WAAA,EAAa,UAAA;AAAA,QACb,QAAA,EAAU,OAAA;AAAA,QACV,mBAAmB,eAAA,IAAmB,MAAA;AAAA,QACtC,UAAA,EAAY,SAAA;AAAA,QACZ,cAAA,EAAgB,IAAA;AAAA,QAChB,SAAA,EAAW;AAAA,OACZ;AAAA;AACH,GACF;AAEA,EAAA,IAAI,CAAC,OAAO,OAAA,EAAS;AACnB,IAAA,OAAO,EAAE,OAAA,EAAS,KAAA,EAAO,KAAA,EAAO,MAAA,CAAO,SAAS,+BAAA,EAAgC;AAAA,EAClF;AAEA,EAAA,OAAO,EAAE,OAAA,EAAS,IAAA,EAAM,IAAA,EAAM,OAAO,IAAA,EAAK;AAC5C;AAKA,eAAsB,kBAAA,CACpB,MAAA,EACA,cAAA,EACA,iBAAA,GAA6B,IAAA,EACN;AACvB,EAAA,MAAM,EAAE,OAAA,EAAS,SAAA,EAAU,GAAI,MAAA;AAE/B,EAAA,MAAM,SAAS,MAAM,QAAA;AAAA,IACnB,MAAA;AAAA,IACA,CAAA,EAAG,OAAO,CAAA,uBAAA,EAA0B,cAAc,CAAA,OAAA,CAAA;AAAA,IAClD;AAAA,MACE,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,KAAK,SAAA,CAAU;AAAA,QACnB,UAAA,EAAY,SAAA;AAAA,QACZ,oBAAA,EAAsB,iBAAA;AAAA,QACtB,mBAAA,EAAqB;AAAA,OACtB;AAAA;AACH,GACF;AAEA,EAAA,IAAI,CAAC,OAAO,OAAA,EAAS;AACnB,IAAA,OAAO,EAAE,OAAA,EAAS,KAAA,EAAO,KAAA,EAAO,MAAA,CAAO,SAAS,+BAAA,EAAgC;AAAA,EAClF;AAEA,EAAA,OAAO,EAAE,SAAS,IAAA,EAAK;AACzB;AA8DA,eAAsB,mBACpB,MAAA,EAC6D;AAC7D,EAAA,MAAM,EAAE,OAAA,EAAS,SAAA,EAAU,GAAI,MAAA;AAE/B,EAAA,MAAM,SAAS,MAAM,QAAA;AAAA,IACnB,MAAA;AAAA,IACA,CAAA,EAAG,OAAO,CAAA,mCAAA,EAAsC,SAAS,CAAA,eAAA;AAAA,GAC3D;AAEA,EAAA,IAAI,CAAC,OAAO,OAAA,EAAS;AACnB,IAAA,OAAO,EAAE,OAAA,EAAS,KAAA,EAAO,KAAA,EAAO,MAAA,CAAO,SAAS,uCAAA,EAAwC;AAAA,EAC1F;AAEA,EAAA,OAAO,EAAE,OAAA,EAAS,IAAA,EAAM,IAAA,EAAM,OAAO,IAAA,EAAK;AAC5C;AAsBA,eAAsB,YAAA,CACpB,QACA,MAAA,EAOuC;AACvC,EAAA,MAAM,EAAE,OAAA,EAAS,SAAA,EAAU,GAAI,MAAA;AAE/B,EAAA,MAAM,SAAS,MAAM,QAAA;AAAA,IACnB,MAAA;AAAA,IACA,GAAG,OAAO,CAAA,sBAAA,CAAA;AAAA,IACV;AAAA,MACE,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,KAAK,SAAA,CAAU;AAAA,QACnB,UAAA,EAAY,SAAA;AAAA,QACZ,GAAG;AAAA,OACJ;AAAA;AACH,GACF;AAEA,EAAA,IAAI,CAAC,OAAO,OAAA,EAAS;AACnB,IAAA,OAAO,EAAE,OAAA,EAAS,KAAA,EAAO,KAAA,EAAO,MAAA,CAAO,SAAS,yBAAA,EAA0B;AAAA,EAC5E;AAEA,EAAA,OAAO,EAAE,OAAA,EAAS,IAAA,EAAM,IAAA,EAAM,OAAO,IAAA,EAAK;AAC5C;AAqBA,eAAsB,cAAA,CACpB,MAAA,EACA,UAAA,EACA,IAAA,EACiC;AACjC,EAAA,MAAM,EAAE,OAAA,EAAS,SAAA,EAAU,GAAI,MAAA;AAE/B,EAAA,MAAM,SAAS,MAAM,QAAA;AAAA,IACnB,MAAA;AAAA,IACA,CAAA,EAAG,OAAO,CAAA,mBAAA,EAAsB,UAAU,CAAA,CAAA;AAAA,IAC1C;AAAA,MACE,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,KAAK,SAAA,CAAU;AAAA,QACnB,UAAA,EAAY,SAAA;AAAA,QACZ,GAAG;AAAA,OACJ;AAAA;AACH,GACF;AAEA,EAAA,IAAI,CAAC,OAAO,OAAA,EAAS;AACnB,IAAA,OAAO,EAAE,OAAA,EAAS,KAAA,EAAO,KAAA,EAAO,MAAA,CAAO,SAAS,2BAAA,EAA4B;AAAA,EAC9E;AAEA,EAAA,OAAO,EAAE,OAAA,EAAS,IAAA,EAAM,IAAA,EAAM,OAAO,IAAA,EAAK;AAC5C;ADzXA,SAAS,SAAS,EAAE,KAAA,EAAO,MAAM,KAAA,EAAO,IAAA,GAAO,IAAG,EAAkE;AAClH,EAAA,MAAM,UAAA,GAAa,KAAA,GAAQ,CAAA,GAAK,IAAA,GAAO,QAAS,GAAA,GAAM,CAAA;AACtD,EAAA,MAAM,YAAY,UAAA,GAAa,EAAA;AAE/B,EAAA,uBACEG,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,WAAA,EACb,QAAA,EAAA;AAAA,oBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,8BAAA,EACb,QAAA,EAAA;AAAA,sBAAAH,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kCAAA,EAAoC,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,sBAC1DG,IAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kCAAA,EACb,QAAA,EAAA;AAAA,QAAA,IAAA,CAAK,cAAA,EAAe;AAAA,QAAG,IAAA;AAAA,QAAK,KAAA;AAAA,QAAI,MAAM,cAAA,EAAe;AAAA,QAAG;AAAA,OAAA,EAC3D;AAAA,KAAA,EACF,CAAA;AAAA,oBACAH,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wDACb,QAAA,kBAAAA,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,CAAA,gCAAA,EACT,SAAA,GAAY,eAAA,GAAkB,aAChC,CAAA,CAAA;AAAA,QACA,KAAA,EAAO,EAAE,KAAA,EAAO,CAAA,EAAG,KAAK,GAAA,CAAI,UAAA,EAAY,GAAG,CAAC,CAAA,CAAA,CAAA;AAAI;AAAA,KAClD,EACF,CAAA;AAAA,oBACAG,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0CAAA,EACZ,QAAA,EAAA;AAAA,MAAA,UAAA,CAAW,QAAQ,CAAC,CAAA;AAAA,MAAE;AAAA,KAAA,EACzB;AAAA,GAAA,EACF,CAAA;AAEJ;AAoDO,SAAS,cAAA,CAAe;AAAA,EAC7B,YAAA;AAAA,EACA,QAAA;AAAA,EACA,cAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA,cAAA;AAAA,EACA,SAAA,GAAY;AACd,CAAA,EAAwB;AACtB,EAAA,MAAM,aAAS,iBAAA,CAAA,SAAA,GAAU;AACzB,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAIF,SAAS,KAAK,CAAA;AAChD,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIA,SAAwB,IAAI,CAAA;AACtD,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIA,SAAwB,IAAI,CAAA;AAG1D,EAAA,MAAM,CAAC,cAAA,EAAgB,iBAAiB,CAAA,GAAIA,SAAS,CAAC,CAAA;AAGtD,EAAA,MAAM,CAAC,qBAAA,EAAuB,wBAAwB,CAAA,GAAIA,SAAS,KAAK,CAAA;AACxE,EAAA,MAAM,CAAC,wBAAA,EAA0B,2BAA2B,CAAA,GAAIA,SAAS,KAAK,CAAA;AAC9E,EAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAIA,SAAS,KAAK,CAAA;AAChE,EAAA,MAAM,CAAC,kBAAA,EAAoB,qBAAqB,CAAA,GAAIA,SAAS,KAAK,CAAA;AAClE,EAAA,MAAM,CAAC,qBAAA,EAAuB,wBAAwB,CAAA,GAAIA,SAA+B,IAAI,CAAA;AAC7F,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAIA,SAA6B,IAAI,CAAA;AACzE,EAAA,MAAM,CAAC,4BAAA,EAA8B,+BAA+B,CAAA,GAAIA,SAAwB,IAAI,CAAA;AACpG,EAAA,MAAM,CAAC,oBAAA,EAAsB,uBAAuB,CAAA,GAAIA,SAAwB,IAAI,CAAA;AACpF,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAIA,SAAS,KAAK,CAAA;AACxD,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAIA,SAAS,KAAK,CAAA;AACpD,EAAA,MAAM,CAAC,cAAA,EAAgB,iBAAiB,CAAA,GAAIA,SAAS,KAAK,CAAA;AAE1D,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIA,QAAAA,CAAgC,kBAAkB,IAAI,CAAA;AACpF,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAIA,SAAS,KAAK,CAAA;AAGlD,EAAA,MAAM,CAAC,eAAA,EAAiB,kBAAkB,CAAA,GAAIA,QAAAA,CAAS;AAAA,IACrD,IAAA,EAAM,SAAS,IAAA,IAAQ,EAAA;AAAA,IACvB,KAAA,EAAO,SAAS,KAAA,IAAS,EAAA;AAAA,IACzB,KAAA,EAAO,SAAS,KAAA,IAAS,EAAA;AAAA,IACzB,aAAA,EAAe,SAAS,aAAA,IAAiB,YAAA;AAAA,IACzC,YAAA,EAAc,SAAS,YAAA,IAAgB,EAAA;AAAA,IACvC,UAAA,EAAY,SAAS,UAAA,IAAc,EAAA;AAAA,IACnC,aAAA,EAAe,QAAA,CAAS,OAAA,EAAS,KAAA,IAAS,EAAA;AAAA,IAC1C,aAAA,EAAe,QAAA,CAAS,OAAA,EAAS,KAAA,IAAS,EAAA;AAAA,IAC1C,YAAA,EAAc,QAAA,CAAS,OAAA,EAAS,IAAA,IAAQ,EAAA;AAAA,IACxC,aAAA,EAAe,QAAA,CAAS,OAAA,EAAS,KAAA,IAAS,EAAA;AAAA,IAC1C,mBAAA,EAAqB,QAAA,CAAS,OAAA,EAAS,WAAA,IAAe,EAAA;AAAA,IACtD,eAAA,EAAiB,QAAA,CAAS,OAAA,EAAS,OAAA,IAAW;AAAA,GAC/C,CAAA;AACD,EAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAIA,SAAS,KAAK,CAAA;AAChE,EAAA,MAAM,CAAC,kBAAA,EAAoB,qBAAqB,CAAA,GAAIA,SAAS,KAAK,CAAA;AAGlE,EAAAC,UAAU,MAAM;AACd,IAAA,eAAe,gBAAA,GAAmB;AAChC,MAAA,gBAAA,CAAiB,IAAI,CAAA;AACrB,MAAA,IAAI;AACF,QAAA,MAAM,MAAA,GAAS,MAAM,kBAAA,CAAmB,YAAY,CAAA;AACpD,QAAA,IAAI,MAAA,CAAO,OAAA,IAAW,MAAA,CAAO,IAAA,EAAM,UAAA,EAAY;AAC7C,UAAA,uBAAA,CAAwB,MAAA,CAAO,KAAK,UAAU,CAAA;AAAA,QAChD;AAAA,MACF,SAAS,GAAA,EAAK;AACZ,QAAA,OAAA,CAAQ,KAAA,CAAM,iCAAiC,GAAG,CAAA;AAAA,MACpD,CAAA,SAAE;AACA,QAAA,gBAAA,CAAiB,KAAK,CAAA;AAAA,MACxB;AAAA,IACF;AACA,IAAA,gBAAA,EAAiB;AAAA,EACnB,CAAA,EAAG,CAAC,YAAY,CAAC,CAAA;AAEjB,EAAA,MAAM,2BAA2B,YAAY;AAC3C,IAAA,IAAI,CAAC,YAAA,EAAc;AAEnB,IAAA,YAAA,CAAa,IAAI,CAAA;AACjB,IAAA,QAAA,CAAS,IAAI,CAAA;AAEb,IAAA,MAAM,MAAA,GAAS,MAAM,kBAAA,CAAmB,YAAA,EAAc,aAAa,EAAE,CAAA;AAErE,IAAA,IAAI,CAAC,OAAO,OAAA,EAAS;AACnB,MAAA,QAAA,CAAS,MAAA,CAAO,SAAS,+BAA+B,CAAA;AAAA,IAC1D,CAAA,MAAO;AACL,MAAA,UAAA,CAAW,gEAAgE,CAAA;AAC3E,MAAA,oBAAA,CAAqB,KAAK,CAAA;AAAA,IAC5B;AAEA,IAAA,YAAA,CAAa,KAAK,CAAA;AAAA,EACpB,CAAA;AAEA,EAAA,MAAM,sBAAA,GAAyB,OAAO,qBAAA,EAA+B,YAAA,KAA0B;AAC7F,IAAA,MAAM,SAAS,MAAM,gBAAA,CAAiB,cAAc,QAAA,CAAS,EAAA,EAAI,uBAAuB,YAAY,CAAA;AACpG,IAAA,OAAO,MAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,0BAA0B,MAAM;AACpC,IAAA,wBAAA,CAAyB,KAAK,CAAA;AAC9B,IAAA,UAAA,CAAW,mCAAmC,CAAA;AAC9C,IAAA,MAAA,CAAO,OAAA,EAAQ;AAAA,EACjB,CAAA;AAEA,EAAA,MAAM,wBAAA,GAA2B,CAAC,EAAA,KAAsB;AACtD,IAAA,wBAAA,CAAyB,EAAE,CAAA;AAC3B,IAAA,2BAAA,CAA4B,IAAI,CAAA;AAAA,EAClC,CAAA;AAEA,EAAA,MAAM,6BAA6B,YAAY;AAC7C,IAAA,IAAI,CAAC,qBAAA,EAAuB;AAE5B,IAAA,YAAA,CAAa,IAAI,CAAA;AACjB,IAAA,QAAA,CAAS,IAAI,CAAA;AAGb,IAAA,MAAM,eAAA,GAAkB,qBAAA,CAAsB,0BAAA,IAA8B,MAAA,CAAO,sBAAsB,EAAE,CAAA;AAC3G,IAAA,MAAM,SAAS,MAAM,mBAAA,CAAoB,YAAA,EAAc,QAAA,CAAS,IAAI,eAAe,CAAA;AAEnF,IAAA,IAAI,CAAC,OAAO,OAAA,EAAS;AACnB,MAAA,QAAA,CAAS,MAAA,CAAO,SAAS,iCAAiC,CAAA;AAAA,IAC5D,CAAA,MAAO;AACL,MAAA,UAAA,CAAW,wBAAwB,CAAA;AACnC,MAAA,2BAAA,CAA4B,KAAK,CAAA;AACjC,MAAA,wBAAA,CAAyB,IAAI,CAAA;AAC7B,MAAA,MAAA,CAAO,OAAA,EAAQ;AAAA,IACjB;AAEA,IAAA,YAAA,CAAa,KAAK,CAAA;AAAA,EACpB,CAAA;AAGA,EAAA,MAAM,gBAAA,GAAmB,OAAO,IAAA,KAAsB;AACpD,IAAA,IAAI,IAAA,CAAK,OAAA,IAAW,CAAC,IAAA,CAAK,OAAA,EAAS;AAEnC,IAAA,eAAA,CAAgB,IAAI,CAAA;AACpB,IAAA,qBAAA,CAAsB,IAAI,CAAA;AAC1B,IAAA,QAAA,CAAS,IAAI,CAAA;AAGb,IAAA,MAAM,QAAA,GAAW,WAAW,IAAA,CAAK,KAAA,CAAM,QAAQ,UAAA,EAAY,EAAE,CAAC,CAAA,IAAK,CAAA;AACnE,IAAA,IAAI,WAAW,CAAA,EAAG;AAChB,MAAA,MAAM,uBAAuB,cAAA,CAAe,IAAA,CAAK,CAAC,EAAA,KAAO,GAAG,UAAU,CAAA;AACtE,MAAA,+BAAA,CAAgC,oBAAA,EAAsB,MAAM,IAAI,CAAA;AAEhE,MAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,KAAA,CAAM,QAAA,GAAW,GAAG,CAAA;AAG/C,MAAA,IAAI,cAAA,IAAkB,cAAA,CAAe,QAAA,GAAW,CAAA,EAAG;AACjD,QAAA,MAAM,eAAe,IAAA,CAAK,KAAA,CAAM,aAAA,GAAgB,cAAA,CAAe,WAAW,GAAG,CAAA;AAC7E,QAAA,UAAA,CAAW;AAAA,UACT,GAAG,cAAA;AAAA,UACH,UAAA,EAAY,YAAA;AAAA,UACZ,QAAA,EAAU,aAAA;AAAA,UACV,OAAO,aAAA,GAAgB;AAAA,SACxB,CAAA;AAAA,MACH,CAAA,MAAO;AACL,QAAA,UAAA,CAAW,IAAI,CAAA;AAAA,MACjB;AAGA,MAAA,aAAA,CAAc,IAAI,CAAA;AAClB,MAAA,IAAI;AACF,QAAA,MAAM,SAAA,GAAY,MAAM,YAAA,CAAa,YAAA,EAAc;AAAA,UACjD,aAAa,QAAA,CAAS,EAAA;AAAA,UACtB,MAAA,EAAQ,aAAA;AAAA,UACR,YAAA,EAAc;AAAA,SACf,CAAA;AAED,QAAA,IAAI,SAAA,CAAU,OAAA,IAAW,SAAA,CAAU,IAAA,EAAM;AACvC,UAAA,UAAA,CAAW,UAAU,IAAI,CAAA;AAAA,QAC3B;AAAA,MACF,SAAS,GAAA,EAAK;AACZ,QAAA,OAAA,CAAQ,KAAA,CAAM,4BAA4B,GAAG,CAAA;AAAA,MAC/C,CAAA,SAAE;AACA,QAAA,aAAA,CAAc,KAAK,CAAA;AAAA,MACrB;AAAA,IACF,CAAA,MAAO;AACL,MAAA,+BAAA,CAAgC,IAAI,CAAA;AACpC,MAAA,UAAA,CAAW,IAAI,CAAA;AAAA,IACjB;AAAA,EACF,CAAA;AAKA,EAAA,MAAM,uBAAuB,YAAY;AACvC,IAAA,IAAI,CAAC,YAAA,EAAc;AAEnB,IAAA,MAAM,QAAA,GAAW,WAAW,YAAA,CAAa,KAAA,CAAM,QAAQ,UAAA,EAAY,EAAE,CAAC,CAAA,IAAK,CAAA;AAG3E,IAAA,IAAI,WAAW,CAAA,IAAK,CAAC,4BAAA,IAAgC,cAAA,CAAe,SAAS,CAAA,EAAG;AAC9E,MAAA,QAAA,CAAS,gCAAgC,CAAA;AACzC,MAAA;AAAA,IACF;AAEA,IAAA,cAAA,CAAe,IAAI,CAAA;AACnB,IAAA,QAAA,CAAS,IAAI,CAAA;AAEb,IAAA,IAAI;AAGF,MAAA,MAAM,eAAA,GAAkB,4BAAA,GACpB,cAAA,CAAe,IAAA,CAAK,CAAA,EAAA,KAAM,EAAA,CAAG,EAAA,KAAO,4BAA4B,CAAA,EAAG,0BAAA,IAA8B,MAAA,CAAO,4BAA4B,CAAA,GACpI,KAAA,CAAA;AAEJ,MAAA,MAAM,SAAS,MAAM,kBAAA;AAAA,QACnB,YAAA;AAAA,QACA,QAAA,CAAS,EAAA;AAAA,QACT,YAAA,CAAa,OAAA;AAAA,QACb;AAAA,OACF;AACA,MAAA,IAAI,CAAC,OAAO,OAAA,EAAS;AACnB,QAAA,QAAA,CAAS,MAAA,CAAO,SAAS,+BAA+B,CAAA;AACxD,QAAA,cAAA,CAAe,KAAK,CAAA;AACpB,QAAA;AAAA,MACF;AAGA,MAAA,qBAAA,CAAsB,KAAK,CAAA;AAC3B,MAAA,iBAAA,CAAkB,IAAI,CAAA;AACtB,MAAA,MAAA,CAAO,OAAA,EAAQ;AAAA,IACjB,SAAS,GAAA,EAAK;AACZ,MAAA,QAAA,CAAS,GAAA,YAAe,KAAA,GAAQ,GAAA,CAAI,OAAA,GAAU,mBAAmB,CAAA;AAAA,IACnE,CAAA,SAAE;AACA,MAAA,cAAA,CAAe,KAAK,CAAA;AAAA,IACtB;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,0BAA0B,MAAM;AACpC,IAAA,iBAAA,CAAkB,KAAK,CAAA;AACvB,IAAA,eAAA,CAAgB,IAAI,CAAA;AACpB,IAAA,+BAAA,CAAgC,IAAI,CAAA;AACpC,IAAA,UAAA,CAAW,IAAI,CAAA;AAAA,EACjB,CAAA;AAGA,EAAA,MAAM,wBAAwB,YAAY;AACxC,IAAA,oBAAA,CAAqB,IAAI,CAAA;AACzB,IAAA,QAAA,CAAS,IAAI,CAAA;AACb,IAAA,qBAAA,CAAsB,KAAK,CAAA;AAE3B,IAAA,IAAI;AACF,MAAA,MAAM,UAAA,GAAiC;AAAA,QACrC,IAAA,EAAM,gBAAgB,IAAA,IAAQ,KAAA,CAAA;AAAA,QAC9B,KAAA,EAAO,gBAAgB,KAAA,IAAS,KAAA,CAAA;AAAA,QAChC,KAAA,EAAO,gBAAgB,KAAA,IAAS,KAAA,CAAA;AAAA,QAChC,eAAe,eAAA,CAAgB,aAAA;AAAA,QAC/B,YAAA,EAAc,eAAA,CAAgB,aAAA,KAAkB,UAAA,GAAa,gBAAgB,YAAA,GAAe,KAAA,CAAA;AAAA,QAC5F,UAAA,EAAY,gBAAgB,UAAA,IAAc,KAAA,CAAA;AAAA,QAC1C,OAAA,EAAS;AAAA,UACP,KAAA,EAAO,gBAAgB,aAAA,IAAiB,KAAA,CAAA;AAAA,UACxC,KAAA,EAAO,gBAAgB,aAAA,IAAiB,KAAA,CAAA;AAAA,UACxC,IAAA,EAAM,gBAAgB,YAAA,IAAgB,KAAA,CAAA;AAAA,UACtC,KAAA,EAAO,gBAAgB,aAAA,IAAiB,KAAA,CAAA;AAAA,UACxC,WAAA,EAAa,gBAAgB,mBAAA,IAAuB,KAAA,CAAA;AAAA,UACpD,OAAA,EAAS,gBAAgB,eAAA,IAAmB,KAAA;AAAA;AAC9C,OACF;AAEA,MAAA,MAAM,SAAS,MAAM,cAAA,CAAe,YAAA,EAAc,QAAA,CAAS,IAAI,UAAU,CAAA;AAEzE,MAAA,IAAI,CAAC,OAAO,OAAA,EAAS;AACnB,QAAA,QAAA,CAAS,MAAA,CAAO,SAAS,4BAA4B,CAAA;AAAA,MACvD,CAAA,MAAO;AACL,QAAA,qBAAA,CAAsB,IAAI,CAAA;AAC1B,QAAA,MAAA,CAAO,OAAA,EAAQ;AAAA,MACjB;AAAA,IACF,SAAS,GAAA,EAAK;AACZ,MAAA,QAAA,CAAS,GAAA,YAAe,KAAA,GAAQ,GAAA,CAAI,OAAA,GAAU,mBAAmB,CAAA;AAAA,IACnE,CAAA,SAAE;AACA,MAAA,oBAAA,CAAqB,KAAK,CAAA;AAAA,IAC5B;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,6BAAA,GAAgC,OAAO,EAAA,KAAsB;AACjE,IAAA,YAAA,CAAa,IAAI,CAAA;AACjB,IAAA,QAAA,CAAS,IAAI,CAAA;AAGb,IAAA,MAAM,eAAA,GAAkB,EAAA,CAAG,0BAAA,IAA8B,MAAA,CAAO,GAAG,EAAE,CAAA;AACrE,IAAA,MAAM,SAAS,MAAM,uBAAA,CAAwB,YAAA,EAAc,QAAA,CAAS,IAAI,eAAe,CAAA;AAEvF,IAAA,IAAI,CAAC,OAAO,OAAA,EAAS;AACnB,MAAA,QAAA,CAAS,MAAA,CAAO,SAAS,sCAAsC,CAAA;AAAA,IACjE,CAAA,MAAO;AACL,MAAA,UAAA,CAAW,gCAAgC,CAAA;AAC3C,MAAA,MAAA,CAAO,OAAA,EAAQ;AAAA,IACjB;AAEA,IAAA,YAAA,CAAa,KAAK,CAAA;AAAA,EACpB,CAAA;AAGA,EAAA,MAAM,wBAAwB,MAAM;AAClC,IAAA,iBAAA,CAAkB,CAAC,CAAA;AAAA,EACrB,CAAA;AAEA,EAAA,MAAM,IAAA,GAAO;AAAA,IACX;AAAA,MACE,EAAA,EAAI,cAAA;AAAA,MACJ,KAAA,EAAO,cAAA;AAAA,MACP,OAAA,kBACEC,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,gBAAA,EAEZ,QAAA,EAAA;AAAA,QAAA,KAAA,oBACCH,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,8EACZ,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,QAED,2BACCA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sFACZ,QAAA,EAAA,OAAA,EACH,CAAA;AAAA,wBAIFA,GAAAA,CAAC,IAAA,EAAA,EACC,QAAA,kBAAAG,KAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,0BAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uCAAA,EACb,QAAA,EAAA;AAAA,4BAAAA,KAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,8BAAAH,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,4BAAA,EAA6B,QAAA,EAAA,cAAA,EAAY,CAAA;AAAA,cACtD,YAAA,mBACCG,IAAAA,CAAAlX,QAAAA,EAAA,EACE,QAAA,EAAA;AAAA,gCAAAkX,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2BAAA,EACb,QAAA,EAAA;AAAA,kCAAAH,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oBAAA,EAAsB,uBAAa,KAAA,EAAM,CAAA;AAAA,kCACzDG,IAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kCAAA,EAAmC,QAAA,EAAA;AAAA,oBAAA,IAAA;AAAA,oBAAG,YAAA,CAAa;AAAA,mBAAA,EAAO;AAAA,iBAAA,EAC5E,CAAA;AAAA,gCACAH,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,+CAAA,EACV,uBAAa,IAAA,EAChB;AAAA,eAAA,EACF,oBAEAA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,oCAAmC,QAAA,EAAA,wBAAA,EAAsB;AAAA,aAAA,EAE1E,CAAA;AAAA,YACC,YAAA,oBACCA,GAAAA,CAAC,MAAA,EAAA,EAAK,WAAW,CAAA,oEAAA,EACf,YAAA,CAAa,WAAW,QAAA,GACpB,sEAAA,GACA,aAAa,MAAA,KAAW,UAAA,GACxB,iEACA,0EACN,CAAA,CAAA,EACG,uBAAa,iBAAA,GAAoB,WAAA,GAAc,aAAa,MAAA,EAC/D;AAAA,WAAA,EAEJ,CAAA;AAAA,UAEC,YAAA,oBACCA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kBACb,QAAA,kBAAAG,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,8BAAA,EACb,QAAA,EAAA;AAAA,4BAAAH,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kCAAA,EAAmC,QAAA,EAAA,mBAAA,EAAiB,CAAA;AAAA,4BACpEA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,aAAA,EAAe,uBAAa,WAAA,EAAY;AAAA,WAAA,EAC1D,CAAA,EACF,CAAA;AAAA,0BAGFG,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,YAAA,EACb,QAAA,EAAA;AAAA,4BAAAH,GAAAA,CAAC,MAAA,EAAA,EAAO,SAAA,EAAU,QAAA,EAAS,QAAA,EAAU,WAAW,OAAA,EAAS,qBAAA,EACtD,QAAA,EAAA,YAAA,GAAe,aAAA,GAAgB,eAAA,EAClC,CAAA;AAAA,YACC,YAAA,IAAgB,CAAC,YAAA,CAAa,iBAAA,oBAC7BA,GAAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,OAAA,EAAQ,WAAA;AAAA,gBACR,OAAA,EAAS,MAAM,oBAAA,CAAqB,IAAI,CAAA;AAAA,gBACxC,QAAA,EAAU,SAAA;AAAA,gBACX,QAAA,EAAA;AAAA;AAAA;AAED,WAAA,EAEJ;AAAA,SAAA,EACF,CAAA,EACF,CAAA;AAAA,QAGC,MAAA,CAAO,KAAK,YAAY,CAAA,CAAE,SAAS,CAAA,oBAClCG,KAAC,IAAA,EAAA,EACC,QAAA,EAAA;AAAA,0BAAAH,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,4BAAA,EAA6B,QAAA,EAAA,eAAA,EAAa,CAAA;AAAA,0BACxDA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,WAAA,EACZ,QAAA,EAAA,MAAA,CAAO,MAAA,CAAO,YAAY,CAAA,CAAE,GAAA,CAAI,CAAC,KAAA,KAAU;AAE1C,YAAA,MAAM,WAAA,GAAc,KAAA,CAAM,YAAA,IAAgB,KAAA,CAAM,YAC7C,OAAA,CAAQ,IAAA,EAAM,GAAG,CAAA,CACjB,QAAQ,OAAA,EAAS,CAAC,CAAA,KAAc,CAAA,CAAE,aAAa,CAAA;AAGlD,YAAA,IAAI,KAAA,CAAM,QAAQ,CAAA,EAAG;AACnB,cAAA,uBACEA,GAAAA;AAAA,gBAAC,QAAA;AAAA,gBAAA;AAAA,kBAEC,KAAA,EAAO,WAAA;AAAA,kBACP,MAAM,KAAA,CAAM,aAAA;AAAA,kBACZ,OAAO,KAAA,CAAM,KAAA;AAAA,kBACb,MAAM,KAAA,CAAM,IAAA,GAAO,CAAA,CAAA,EAAI,KAAA,CAAM,IAAI,CAAA,CAAA,GAAK;AAAA,iBAAA;AAAA,gBAJjC,KAAA,CAAM;AAAA,eAKb;AAAA,YAEJ;AAGA,YAAA,MAAM,SAAA,GAAY,KAAA,CAAM,YAAA,KAAiB,SAAA,IAAa,MAAM,KAAA,KAAU,CAAA;AAEtE,YAAA,uBACEG,IAAAA,CAAC,KAAA,EAAA,EAA4B,SAAA,EAAU,2CAAA,EACrC,QAAA,EAAA;AAAA,8BAAAH,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kCAAA,EAAoC,QAAA,EAAA,WAAA,EAAY,CAAA;AAAA,cAC/D,SAAA,mBACCG,IAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,8DAAA,EACd,QAAA,EAAA;AAAA,gCAAAH,GAAAA,CAAC,SAAI,SAAA,EAAU,SAAA,EAAU,MAAK,MAAA,EAAO,MAAA,EAAO,gBAAe,OAAA,EAAQ,WAAA,EACjE,0BAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,eAAc,OAAA,EAAQ,cAAA,EAAe,SAAQ,WAAA,EAAa,CAAA,EAAG,CAAA,EAAE,gBAAA,EAAiB,CAAA,EACxF,CAAA;AAAA,gBAAM;AAAA,eAAA,EAER,CAAA,mBAEAG,IAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,4DAAA,EACd,QAAA,EAAA;AAAA,gCAAAH,GAAAA,CAAC,SAAI,SAAA,EAAU,SAAA,EAAU,MAAK,MAAA,EAAO,MAAA,EAAO,gBAAe,OAAA,EAAQ,WAAA,EACjE,0BAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,eAAc,OAAA,EAAQ,cAAA,EAAe,SAAQ,WAAA,EAAa,CAAA,EAAG,CAAA,EAAE,sBAAA,EAAuB,CAAA,EAC9F,CAAA;AAAA,gBAAM;AAAA,eAAA,EAER;AAAA,aAAA,EAAA,EAfM,MAAM,WAiBhB,CAAA;AAAA,UAEJ,CAAC,CAAA,EACH;AAAA,SAAA,EACF;AAAA,OAAA,EAEJ;AAAA,KAEJ;AAAA,IACA;AAAA,MACE,EAAA,EAAI,OAAA;AAAA,MACJ,KAAA,EAAO,OAAA;AAAA,MACP,OAAA,kBACEG,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,gBAAA,EACb,QAAA,EAAA;AAAA,wBAAAA,KAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,0BAAAH,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,4BAAA,EAA6B,QAAA,EAAA,kBAAA,EAAgB,CAAA;AAAA,0BAC3DA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,iDAAgD,QAAA,EAAA,sFAAA,EAE7D;AAAA,SAAA,EACF,CAAA;AAAA,QAEC,MAAM,MAAA,KAAW,CAAA,mBAChBA,GAAAA,CAAC,GAAA,EAAA,EAAE,WAAU,kCAAA,EAAmC,QAAA,EAAA,qBAAA,EAAmB,oBAEnEA,GAAAA,CAAC,SAAI,SAAA,EAAU,uCAAA,EACZ,gBAAM,GAAA,CAAI,CAAC,yBACVG,IAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YAEC,SAAA,EAAW,CAAA,yCAAA,EACT,IAAA,CAAK,OAAA,GACD,wBAAA,GACA,uBACN,CAAA,CAAA,EAAI,IAAA,CAAK,OAAA,GAAU,WAAA,GAAc,EAAE,CAAA,CAAA;AAAA,YAElC,QAAA,EAAA;AAAA,cAAA,IAAA,CAAK,OAAA,IAAW,CAAC,IAAA,CAAK,OAAA,oBACrBH,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2CAAA,EACb,0BAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,qEAAA,EAAsE,0BAEtF,CAAA,EACF,CAAA;AAAA,cAED,IAAA,CAAK,OAAA,oBACJA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2CAAA,EACb,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,sEAAA,EAAuE,0BAEvF,CAAA,EACF,CAAA;AAAA,8BAGFG,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,MAAA,EACb,QAAA,EAAA;AAAA,gCAAAH,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,wBAAA,EAA0B,eAAK,IAAA,EAAK,CAAA;AAAA,gBACjD,IAAA,CAAK,+BACJA,GAAAA,CAAC,OAAE,SAAA,EAAU,+CAAA,EAAiD,eAAK,WAAA,EAAY,CAAA;AAAA,gCAEjFG,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2BAAA,EACb,QAAA,EAAA;AAAA,kCAAAH,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oBAAA,EAAsB,eAAK,KAAA,EAAM,CAAA;AAAA,kCACjDG,IAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kCAAA,EAAmC,QAAA,EAAA;AAAA,oBAAA,IAAA;AAAA,oBAAG,IAAA,CAAK;AAAA,mBAAA,EAAO;AAAA,iBAAA,EACpE;AAAA,eAAA,EACF,CAAA;AAAA,8BAEAH,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,yBACX,QAAA,EAAA,IAAA,CAAK,QAAA,CAAS,GAAA,CAAI,CAAC,SAAS,GAAA,qBAC3BG,IAAAA,CAAC,IAAA,EAAA,EAAa,WAAU,gCAAA,EACtB,QAAA,EAAA;AAAA,gCAAAH,GAAAA;AAAA,kBAAC,KAAA;AAAA,kBAAA;AAAA,oBACC,SAAA,EAAU,iEAAA;AAAA,oBACV,IAAA,EAAK,MAAA;AAAA,oBACL,MAAA,EAAO,cAAA;AAAA,oBACP,OAAA,EAAQ,WAAA;AAAA,oBAER,QAAA,kBAAAA,GAAAA;AAAA,sBAAC,MAAA;AAAA,sBAAA;AAAA,wBACC,aAAA,EAAc,OAAA;AAAA,wBACd,cAAA,EAAe,OAAA;AAAA,wBACf,WAAA,EAAa,CAAA;AAAA,wBACb,CAAA,EAAE;AAAA;AAAA;AACJ;AAAA,iBACF;AAAA,gCACAA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oCAAoC,QAAA,EAAA,OAAA,EAAQ;AAAA,eAAA,EAAA,EAdrD,GAeT,CACD,CAAA,EACH,CAAA;AAAA,8BAEAA,GAAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAU,QAAA;AAAA,kBACV,QAAA,EAAU,KAAK,OAAA,IAAW,SAAA;AAAA,kBAC1B,OAAA,EAAS,IAAA,CAAK,OAAA,GAAU,WAAA,GAAc,SAAA;AAAA,kBACtC,OAAA,EAAS,MAAM,gBAAA,CAAiB,IAAI,CAAA;AAAA,kBAEnC,QAAA,EAAA,IAAA,CAAK,OAAA,GAAU,cAAA,GAAiB,YAAA,GAAe,aAAA,GAAgB;AAAA;AAAA;AAClE;AAAA,WAAA;AAAA,UA7DK,IAAA,CAAK;AAAA,SA+Db,CAAA,EACH;AAAA,OAAA,EAEJ;AAAA,KAEJ;AAAA,IACA;AAAA,MACE,EAAA,EAAI,UAAA;AAAA,MACJ,KAAA,EAAO,UAAA;AAAA,MACP,OAAA,kBACEA,GAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,MAAA,EACb,QAAA,kBAAAG,KAAC,IAAA,EAAA,EACC,QAAA,EAAA;AAAA,wBAAAH,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,4BAAA,EAA6B,QAAA,EAAA,iBAAA,EAAe,CAAA;AAAA,wBAC1DA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,iDAAgD,QAAA,EAAA,sCAAA,EAE7D,CAAA;AAAA,QAEC,QAAA,CAAS,WAAW,CAAA,mBACnBA,IAAC,GAAA,EAAA,EAAE,SAAA,EAAU,kCAAA,EAAmC,QAAA,EAAA,kBAAA,EAAgB,CAAA,mBAEhEA,IAAC,KAAA,EAAA,EAAI,SAAA,EAAU,WAAA,EACd,QAAA,EAAA,QAAA,CAAS,GAAA,CAAI,CAAC,4BACbG,IAAAA,CAAC,KAAA,EAAA,EAAqB,SAAA,EAAU,yEAAA,EAC9B,QAAA,EAAA;AAAA,0BAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EACb,QAAA,EAAA;AAAA,4BAAAH,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yFAAA,EACb,QAAA,kBAAAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0CAAA,EAA2C,IAAA,EAAK,MAAA,EAAO,MAAA,EAAO,cAAA,EAAe,OAAA,EAAQ,WAAA,EAClG,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,aAAA,EAAc,OAAA,EAAQ,cAAA,EAAe,OAAA,EAAQ,WAAA,EAAa,CAAA,EAAG,CAAA,EAAE,sHAAA,EAAuH,CAAA,EAC9L,CAAA,EACF,CAAA;AAAA,4BACAG,KAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,8BAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EACb,QAAA,EAAA;AAAA,gCAAAH,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,qBAAA,EAAuB,kBAAQ,EAAA,EAAG,CAAA;AAAA,gCAC/CA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,CAAA,sEAAA,EACf,QAAQ,MAAA,KAAW,MAAA,GACf,sEAAA,GACA,OAAA,CAAQ,WAAW,MAAA,GACnB,0EAAA,GACA,+DACN,CAAA,CAAA,EACG,kBAAQ,MAAA,EACX;AAAA,eAAA,EACF,CAAA;AAAA,8BACAA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,0CAAA,EAA4C,kBAAQ,IAAA,EAAK;AAAA,aAAA,EACxE;AAAA,WAAA,EACF,CAAA;AAAA,0BACAG,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EACb,QAAA,EAAA;AAAA,4BAAAH,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,eAAA,EAAiB,kBAAQ,MAAA,EAAO,CAAA;AAAA,YAC5C,OAAA,CAAQ,GAAA,IAAO,OAAA,CAAQ,GAAA,KAAQ,uBAC9BA,GAAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,OAAA,EAAQ,WAAA;AAAA,gBACR,IAAA,EAAK,IAAA;AAAA,gBACL,SAAS,MAAM,MAAA,CAAO,IAAA,CAAK,OAAA,CAAQ,KAAK,QAAQ,CAAA;AAAA,gBACjD,QAAA,EAAA;AAAA;AAAA;AAED,WAAA,EAEJ;AAAA,SAAA,EAAA,EAlCQ,OAAA,CAAQ,EAmClB,CACD,CAAA,EACD;AAAA,OAAA,EAEJ,CAAA,EACF;AAAA,KAEJ;AAAA,IACA;AAAA,MACE,EAAA,EAAI,SAAA;AAAA,MACJ,KAAA,EAAO,gBAAA;AAAA,MACP,OAAA,kBACEA,GAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,MAAA,EACb,QAAA,kBAAAG,KAAC,IAAA,EAAA,EACC,QAAA,EAAA;AAAA,wBAAAH,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,4BAAA,EAA6B,QAAA,EAAA,iBAAA,EAAe,CAAA;AAAA,wBAC1DA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,iDAAgD,QAAA,EAAA,6BAAA,EAE7D,CAAA;AAAA,QAED,eAAe,MAAA,KAAW,CAAA,mBACzBG,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,mCAAA,EACb,QAAA,EAAA;AAAA,0BAAAH,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,uCAAA,EAAwC,QAAA,EAAA,4BAAA,EAA0B,CAAA;AAAA,0BAC/EA,GAAAA,CAAC,MAAA,EAAA,EAAO,OAAA,EAAS,MAAM,wBAAA,CAAyB,IAAI,CAAA,EAAG,QAAA,EAAU,aAAA,EAC9D,QAAA,EAAA,aAAA,GAAgB,YAAA,GAAe,oBAAA,EAClC;AAAA,SAAA,EACF,CAAA,mBAEAG,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,WAAA,EACZ,QAAA,EAAA;AAAA,UAAA,cAAA,CAAe,IAAI,CAAC,EAAA,qBACnBA,IAAAA,CAAC,KAAA,EAAA,EAAgB,WAAU,uDAAA,EACzB,QAAA,EAAA;AAAA,4BAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EACb,QAAA,EAAA;AAAA,8BAAAH,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yFAAA,EACb,QAAA,kBAAAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0CAAA,EAA2C,IAAA,EAAK,MAAA,EAAO,MAAA,EAAO,cAAA,EAAe,OAAA,EAAQ,WAAA,EAClG,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,aAAA,EAAc,OAAA,EAAQ,cAAA,EAAe,OAAA,EAAQ,WAAA,EAAa,CAAA,EAAG,CAAA,EAAE,wFAAA,EAAyF,CAAA,EAChK,CAAA,EACF,CAAA;AAAA,8BACAG,KAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,gCAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EACb,QAAA,EAAA;AAAA,kCAAAA,IAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,qBAAA,EACV,QAAA,EAAA;AAAA,oBAAA,EAAA,CAAG,cAAc,EAAA,CAAG,IAAA;AAAA,oBAAK,4BAAA;AAAA,oBAAO,EAAA,CAAG,UAAA,IAAc,EAAA,CAAG,UAAA,IAAc;AAAA,mBAAA,EACrE,CAAA;AAAA,kBACC,GAAG,UAAA,oBACFH,IAAC,MAAA,EAAA,EAAK,SAAA,EAAU,0IAAyI,QAAA,EAAA,SAAA,EAEzJ;AAAA,iBAAA,EAEJ,CAAA;AAAA,gBACC,EAAA,CAAG,kBAAkB,EAAA,CAAG,aAAA,oBACvBG,IAAAA,CAAC,GAAA,EAAA,EAAE,WAAU,0CAAA,EAA2C,QAAA,EAAA;AAAA,kBAAA,UAAA;AAAA,kBAC7C,EAAA,CAAG,cAAA;AAAA,kBAAe,GAAA;AAAA,kBAAE,EAAA,CAAG;AAAA,iBAAA,EAClC;AAAA,eAAA,EAEJ;AAAA,aAAA,EACF,CAAA;AAAA,4BACAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EACZ,QAAA,EAAA;AAAA,cAAA,CAAC,EAAA,CAAG,8BACHH,GAAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,OAAA,EAAQ,WAAA;AAAA,kBACR,IAAA,EAAK,IAAA;AAAA,kBACL,OAAA,EAAS,MAAM,6BAAA,CAA8B,EAAE,CAAA;AAAA,kBAC/C,QAAA,EAAU,SAAA;AAAA,kBACX,QAAA,EAAA;AAAA;AAAA,eAED;AAAA,8BAEFA,GAAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,OAAA,EAAQ,WAAA;AAAA,kBACR,IAAA,EAAK,IAAA;AAAA,kBACL,OAAA,EAAS,MAAM,wBAAA,CAAyB,EAAE,CAAA;AAAA,kBAC1C,QAAA,EAAU,SAAA;AAAA,kBACX,QAAA,EAAA;AAAA;AAAA;AAED,aAAA,EACF;AAAA,WAAA,EAAA,EA5CQ,EAAA,CAAG,EA6Cb,CACD,CAAA;AAAA,0BAEDA,GAAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,OAAA,EAAQ,WAAA;AAAA,cACR,SAAA,EAAU,aAAA;AAAA,cACV,OAAA,EAAS,MAAM,wBAAA,CAAyB,IAAI,CAAA;AAAA,cAC5C,QAAA,EAAU,aAAA;AAAA,cAET,0BAAgB,YAAA,GAAe;AAAA;AAAA;AAClC,SAAA,EACF;AAAA,OAAA,EAEF,CAAA,EACF;AAAA,KAEJ;AAAA,IACA;AAAA,MACE,EAAA,EAAI,aAAA;AAAA,MACJ,KAAA,EAAO,aAAA;AAAA,MACP,OAAA,kBACEA,GAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,MAAA,EACb,QAAA,kBAAAG,KAAC,IAAA,EAAA,EACC,QAAA,EAAA;AAAA,wBAAAH,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,4BAAA,EAA6B,QAAA,EAAA,qBAAA,EAAmB,CAAA;AAAA,wBAC9DA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,iDAAgD,QAAA,EAAA,kDAAA,EAE7D,CAAA;AAAA,QAGC,sCACCA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2FAA0F,QAAA,EAAA,gCAAA,EAEzG,CAAA;AAAA,wBAGFG,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,WAAA,EAEb,QAAA,EAAA;AAAA,0BAAAA,KAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,4BAAAH,GAAAA,CAAC,OAAA,EAAA,EAAM,SAAA,EAAU,iEAAA,EAAkE,QAAA,EAAA,eAAA,EAEnF,CAAA;AAAA,4BACAA,GAAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBACC,IAAA,EAAK,eAAA;AAAA,gBACL,OAAA,EAAS;AAAA,kBACP,EAAE,KAAA,EAAO,YAAA,EAAc,KAAA,EAAO,YAAA,EAAa;AAAA,kBAC3C,EAAE,KAAA,EAAO,UAAA,EAAY,KAAA,EAAO,UAAA;AAAW,iBACzC;AAAA,gBACA,OAAO,eAAA,CAAgB,aAAA;AAAA,gBACvB,QAAA,EAAU,CAAC,KAAA,KAAU,kBAAA,CAAmB,EAAE,GAAG,eAAA,EAAiB,aAAA,EAAe,KAAA,EAAoC,CAAA;AAAA,gBACjH,WAAA,EAAY;AAAA;AAAA;AACd,WAAA,EACF,CAAA;AAAA,0BAGAG,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uCAAA,EACb,QAAA,EAAA;AAAA,4BAAAH,GAAAA;AAAA,cAAC,SAAA;AAAA,cAAA;AAAA,gBACC,KAAA,EAAO,eAAA,CAAgB,aAAA,KAAkB,UAAA,GAAa,cAAA,GAAiB,WAAA;AAAA,gBACvE,OAAO,eAAA,CAAgB,IAAA;AAAA,gBACvB,QAAA,EAAU,CAAC,CAAA,KAAM,kBAAA,CAAmB,EAAE,GAAG,eAAA,EAAiB,IAAA,EAAM,CAAA,CAAE,MAAA,CAAO,KAAA,EAAO,CAAA;AAAA,gBAChF,WAAA,EAAY;AAAA;AAAA,aACd;AAAA,4BACAA,GAAAA;AAAA,cAAC,SAAA;AAAA,cAAA;AAAA,gBACC,KAAA,EAAM,OAAA;AAAA,gBACN,IAAA,EAAK,OAAA;AAAA,gBACL,OAAO,eAAA,CAAgB,KAAA;AAAA,gBACvB,QAAA,EAAU,CAAC,CAAA,KAAM,kBAAA,CAAmB,EAAE,GAAG,eAAA,EAAiB,KAAA,EAAO,CAAA,CAAE,MAAA,CAAO,KAAA,EAAO,CAAA;AAAA,gBACjF,WAAA,EAAY;AAAA;AAAA,aACd;AAAA,4BACAA,GAAAA;AAAA,cAAC,SAAA;AAAA,cAAA;AAAA,gBACC,KAAA,EAAM,OAAA;AAAA,gBACN,IAAA,EAAK,KAAA;AAAA,gBACL,OAAO,eAAA,CAAgB,KAAA;AAAA,gBACvB,QAAA,EAAU,CAAC,CAAA,KAAM,kBAAA,CAAmB,EAAE,GAAG,eAAA,EAAiB,KAAA,EAAO,CAAA,CAAE,MAAA,CAAO,KAAA,EAAO,CAAA;AAAA,gBACjF,WAAA,EAAY;AAAA;AAAA,aACd;AAAA,YACC,eAAA,CAAgB,aAAA,KAAkB,UAAA,oBACjCA,GAAAA;AAAA,cAAC,SAAA;AAAA,cAAA;AAAA,gBACC,KAAA,EAAM,cAAA;AAAA,gBACN,OAAO,eAAA,CAAgB,YAAA;AAAA,gBACvB,QAAA,EAAU,CAAC,CAAA,KAAM,kBAAA,CAAmB,EAAE,GAAG,eAAA,EAAiB,YAAA,EAAc,CAAA,CAAE,MAAA,CAAO,KAAA,EAAO,CAAA;AAAA,gBACxF,WAAA,EAAY;AAAA;AAAA;AACd,WAAA,EAEJ,CAAA;AAAA,UAGC,eAAA,CAAgB,aAAA,KAAkB,UAAA,oBACjCA,GAAAA;AAAA,YAAC,SAAA;AAAA,YAAA;AAAA,cACC,KAAA,EAAM,YAAA;AAAA,cACN,OAAO,eAAA,CAAgB,UAAA;AAAA,cACvB,QAAA,EAAU,CAAC,CAAA,KAAM,kBAAA,CAAmB,EAAE,GAAG,eAAA,EAAiB,UAAA,EAAY,CAAA,CAAE,MAAA,CAAO,KAAA,EAAO,CAAA;AAAA,cACtF,WAAA,EAAY,aAAA;AAAA,cACZ,UAAA,EAAW;AAAA;AAAA,WACb;AAAA,0BAIFG,KAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,4BAAAH,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,2DAAA,EAA4D,QAAA,EAAA,iBAAA,EAAe,CAAA;AAAA,4BACzFG,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uCAAA,EACb,QAAA,EAAA;AAAA,8BAAAH,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,eAAA,EACb,QAAA,kBAAAA,GAAAA;AAAA,gBAAC,SAAA;AAAA,gBAAA;AAAA,kBACC,KAAA,EAAM,gBAAA;AAAA,kBACN,OAAO,eAAA,CAAgB,aAAA;AAAA,kBACvB,QAAA,EAAU,CAAC,CAAA,KAAM,kBAAA,CAAmB,EAAE,GAAG,eAAA,EAAiB,aAAA,EAAe,CAAA,CAAE,MAAA,CAAO,KAAA,EAAO,CAAA;AAAA,kBACzF,WAAA,EAAY;AAAA;AAAA,eACd,EACF,CAAA;AAAA,8BACAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iBACb,QAAA,kBAAAA,GAAAA;AAAA,gBAAC,SAAA;AAAA,gBAAA;AAAA,kBACC,KAAA,EAAM,gBAAA;AAAA,kBACN,OAAO,eAAA,CAAgB,aAAA;AAAA,kBACvB,QAAA,EAAU,CAAC,CAAA,KAAM,kBAAA,CAAmB,EAAE,GAAG,eAAA,EAAiB,aAAA,EAAe,CAAA,CAAE,MAAA,CAAO,KAAA,EAAO,CAAA;AAAA,kBACzF,WAAA,EAAY;AAAA;AAAA,eACd,EACF,CAAA;AAAA,8BACAA,GAAAA;AAAA,gBAAC,SAAA;AAAA,gBAAA;AAAA,kBACC,KAAA,EAAM,MAAA;AAAA,kBACN,OAAO,eAAA,CAAgB,YAAA;AAAA,kBACvB,QAAA,EAAU,CAAC,CAAA,KAAM,kBAAA,CAAmB,EAAE,GAAG,eAAA,EAAiB,YAAA,EAAc,CAAA,CAAE,MAAA,CAAO,KAAA,EAAO,CAAA;AAAA,kBACxF,WAAA,EAAY;AAAA;AAAA,eACd;AAAA,8BACAA,GAAAA;AAAA,gBAAC,SAAA;AAAA,gBAAA;AAAA,kBACC,KAAA,EAAM,gBAAA;AAAA,kBACN,OAAO,eAAA,CAAgB,aAAA;AAAA,kBACvB,QAAA,EAAU,CAAC,CAAA,KAAM,kBAAA,CAAmB,EAAE,GAAG,eAAA,EAAiB,aAAA,EAAe,CAAA,CAAE,MAAA,CAAO,KAAA,EAAO,CAAA;AAAA,kBACzF,WAAA,EAAY;AAAA;AAAA,eACd;AAAA,8BACAA,GAAAA;AAAA,gBAAC,SAAA;AAAA,gBAAA;AAAA,kBACC,KAAA,EAAM,aAAA;AAAA,kBACN,OAAO,eAAA,CAAgB,mBAAA;AAAA,kBACvB,QAAA,EAAU,CAAC,CAAA,KAAM,kBAAA,CAAmB,EAAE,GAAG,eAAA,EAAiB,mBAAA,EAAqB,CAAA,CAAE,MAAA,CAAO,KAAA,EAAO,CAAA;AAAA,kBAC/F,WAAA,EAAY;AAAA;AAAA,eACd;AAAA,8BACAA,GAAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,KAAA,EAAM,SAAA;AAAA,kBACN,OAAO,eAAA,CAAgB,eAAA;AAAA,kBACvB,QAAA,EAAU,CAAC,KAAA,KAAU,kBAAA,CAAmB,EAAE,GAAG,eAAA,EAAiB,eAAA,EAAiB,KAAA,EAAO,CAAA;AAAA,kBACtF,UAAA,EAAY,IAAA;AAAA,kBACZ,iBAAA,EAAkB,qBAAA;AAAA,kBAClB,OAAA,EAAS;AAAA,oBACP,EAAE,KAAA,EAAO,EAAA,EAAI,KAAA,EAAO,gBAAA,EAAiB;AAAA,oBACrC,EAAE,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,eAAA,EAAgB;AAAA,oBACtC,EAAE,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,QAAA,EAAS;AAAA,oBAC/B,EAAE,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,gBAAA,EAAiB;AAAA,oBACvC,EAAE,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,SAAA,EAAU;AAAA,oBAChC,EAAE,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,QAAA,EAAS;AAAA,oBAC/B,EAAE,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,OAAA,EAAQ;AAAA,oBAC9B,EAAE,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,OAAA,EAAQ;AAAA,oBAC9B,EAAE,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,aAAA,EAAc;AAAA,oBACpC,EAAE,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,SAAA,EAAU;AAAA,oBAChC,EAAE,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,SAAA,EAAU;AAAA,oBAChC,EAAE,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,aAAA,EAAc;AAAA,oBACpC,EAAE,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,QAAA,EAAS;AAAA,oBAC/B,EAAE,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,QAAA,EAAS;AAAA,oBAC/B,EAAE,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,SAAA,EAAU;AAAA,oBAChC,EAAE,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,SAAA,EAAU;AAAA,oBAChC,EAAE,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,SAAA,EAAU;AAAA,oBAChC,EAAE,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,UAAA,EAAW;AAAA,oBACjC,EAAE,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,QAAA,EAAS;AAAA,oBAC/B,EAAE,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,gBAAA,EAAiB;AAAA,oBACvC,EAAE,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,WAAA,EAAY;AAAA,oBAClC,EAAE,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,aAAA,EAAc;AAAA,oBACpC,EAAE,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,WAAA,EAAY;AAAA,oBAClC,EAAE,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,OAAA,EAAQ;AAAA,oBAC9B,EAAE,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,aAAA,EAAc;AAAA,oBACpC,EAAE,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,OAAA,EAAQ;AAAA,oBAC9B,EAAE,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,QAAA,EAAS;AAAA,oBAC/B,EAAE,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,QAAA;AAAS;AACjC;AAAA;AACF,aAAA,EACF;AAAA,WAAA,EACF,CAAA;AAAA,UAGC,cAAA,oBACCG,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,+CAAA,EACb,QAAA,EAAA;AAAA,4BAAAH,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,2DAAA,EAA4D,QAAA,EAAA,iBAAA,EAAe,CAAA;AAAA,4BACzFG,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0CAAA,EACb,QAAA,EAAA;AAAA,8BAAAA,KAAC,GAAA,EAAA,EAAE,QAAA,EAAA;AAAA,gBAAA,gBAAA;AAAA,gBAAe,cAAA,CAAe;AAAA,eAAA,EAAa,CAAA;AAAA,8BAC9CA,KAAC,GAAA,EAAA,EAAE,QAAA,EAAA;AAAA,gBAAA,YAAA;AAAA,gBAAW,cAAA,CAAe;AAAA,eAAA,EAAU,CAAA;AAAA,8BACvCA,KAAC,GAAA,EAAA,EAAE,QAAA,EAAA;AAAA,gBAAA,YAAA;AAAA,gBAAW,cAAA,CAAe,QAAA;AAAA,gBAAS;AAAA,eAAA,EAAC,CAAA;AAAA,cACtC,eAAe,cAAA,oBACdH,IAAC,GAAA,EAAA,EAAE,SAAA,EAAU,oCAAmC,QAAA,EAAA,wBAAA,EAAsB;AAAA,aAAA,EAE1E;AAAA,WAAA,EACF,CAAA;AAAA,0BAIFA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qCACb,QAAA,kBAAAA,GAAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,OAAA,EAAS,qBAAA;AAAA,cACT,QAAA,EAAU,iBAAA;AAAA,cAET,8BAAoB,WAAA,GAAc;AAAA;AAAA,WACrC,EACF;AAAA,SAAA,EACF;AAAA,OAAA,EACF,CAAA,EACF;AAAA;AAEJ,GACF;AAEA,EAAA,uBACEG,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,CAAA,YAAA,EAAe,SAAS,CAAA,CAAA,EACtC,QAAA,EAAA;AAAA,oBAAAH,IAAC,IAAA,EAAA,EAA0B,IAAA,EAAY,cAAc,cAAA,EAAgB,QAAA,EAAU,qBAApE,cAAuF,CAAA;AAAA,oBAGlGA,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,MAAA,EAAQ,qBAAA;AAAA,QACR,OAAA,EAAS,MAAM,wBAAA,CAAyB,KAAK,CAAA;AAAA,QAC7C,KAAA,EAAM,oBAAA;AAAA,QAEL,iDACCA,GAAAA;AAAA,UAAC,oBAAA;AAAA,UAAA;AAAA,YACC,YAAY,QAAA,CAAS,EAAA;AAAA,YACrB,oBAAA;AAAA,YACA,SAAA,EAAW,uBAAA;AAAA,YACX,QAAA,EAAU,MAAM,wBAAA,CAAyB,KAAK,CAAA;AAAA,YAC9C,QAAA,EAAU;AAAA;AAAA,SACZ,mBAEAA,GAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,kBAAA,EACb,QAAA,kBAAAA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,kCAAA,EACV,QAAA,EAAA,aAAA,GAAgB,yBAAA,GAA4B,uCAC/C,CAAA,EACF;AAAA;AAAA,KAEJ;AAAA,oBAGAA,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,MAAA,EAAQ,wBAAA;AAAA,QACR,SAAS,MAAM;AACb,UAAA,2BAAA,CAA4B,KAAK,CAAA;AACjC,UAAA,wBAAA,CAAyB,IAAI,CAAA;AAAA,QAC/B,CAAA;AAAA,QACA,KAAA,EAAM,uBAAA;AAAA,QAEN,QAAA,kBAAAG,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,WAAA,EACb,QAAA,EAAA;AAAA,0BAAAH,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,kCAAA,EAAmC,QAAA,EAAA,sDAAA,EAEhD,CAAA;AAAA,UAEC,qBAAA,oBACCA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,8CACb,QAAA,kBAAAG,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EACb,QAAA,EAAA;AAAA,4BAAAH,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oHAAA,EACb,QAAA,kBAAAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oBAAA,EAAqB,IAAA,EAAK,MAAA,EAAO,MAAA,EAAO,cAAA,EAAe,OAAA,EAAQ,WAAA,EAC5E,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,aAAA,EAAc,OAAA,EAAQ,cAAA,EAAe,OAAA,EAAQ,WAAA,EAAa,CAAA,EAAG,CAAA,EAAE,wFAAA,EAAyF,CAAA,EAChK,CAAA,EACF,CAAA;AAAA,4BACAG,KAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,8BAAAH,IAAC,GAAA,EAAA,EAAE,SAAA,EAAU,6CAAA,EACV,QAAA,EAAA,qBAAA,CAAsB,cAAc,MAAA,EACvC,CAAA;AAAA,8BACAG,IAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,0CAAA,EAA2C,QAAA,EAAA;AAAA,gBAAA,6EAAA;AAAA,gBACtC,sBAAsB,UAAA,IAAc;AAAA,eAAA,EACtD;AAAA,aAAA,EACF;AAAA,WAAA,EACF,CAAA,EACF,CAAA;AAAA,0BAGFH,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,4CAA2C,QAAA,EAAA,+BAAA,EAExD,CAAA;AAAA,0BAEAG,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,8CAAA,EACb,QAAA,EAAA;AAAA,4BAAAH,GAAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,OAAA,EAAQ,WAAA;AAAA,gBACR,SAAS,MAAM;AACb,kBAAA,2BAAA,CAA4B,KAAK,CAAA;AACjC,kBAAA,wBAAA,CAAyB,IAAI,CAAA;AAAA,gBAC/B,CAAA;AAAA,gBACA,QAAA,EAAU,SAAA;AAAA,gBACX,QAAA,EAAA;AAAA;AAAA,aAED;AAAA,4BACAA,GAAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,OAAA,EAAQ,SAAA;AAAA,gBACR,OAAA,EAAS,0BAAA;AAAA,gBACT,QAAA,EAAU,SAAA;AAAA,gBAET,sBAAY,aAAA,GAAgB;AAAA;AAAA;AAC/B,WAAA,EACF;AAAA,SAAA,EACF;AAAA;AAAA,KACF;AAAA,oBAGAA,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,MAAA,EAAQ,iBAAA;AAAA,QACR,OAAA,EAAS,MAAM,oBAAA,CAAqB,KAAK,CAAA;AAAA,QACzC,KAAA,EAAM,qBAAA;AAAA,QAEN,QAAA,kBAAAG,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,WAAA,EACb,QAAA,EAAA;AAAA,0BAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iFAAA,EACb,QAAA,EAAA;AAAA,4BAAAH,GAAAA,CAAC,SAAI,SAAA,EAAU,4DAAA,EAA6D,MAAK,MAAA,EAAO,MAAA,EAAO,gBAAe,OAAA,EAAQ,WAAA,EACpH,0BAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,eAAc,OAAA,EAAQ,cAAA,EAAe,SAAQ,WAAA,EAAa,CAAA,EAAG,CAAA,EAAE,sIAAA,EAAuI,CAAA,EAC9M,CAAA;AAAA,4BACAG,KAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,8BAAAH,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,uDAAA,EAAwD,QAAA,EAAA,kCAAA,EAErE,CAAA;AAAA,8BACAA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,gDAA+C,QAAA,EAAA,+EAAA,EAE5D;AAAA,aAAA,EACF;AAAA,WAAA,EACF,CAAA;AAAA,UAEC,YAAA,oBACCG,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,4CAAA,EACb,QAAA,EAAA;AAAA,4BAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,8BAAA,EACb,QAAA,EAAA;AAAA,8BAAAH,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kCAAA,EAAmC,QAAA,EAAA,eAAA,EAAa,CAAA;AAAA,8BAChEA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,aAAA,EAAe,uBAAa,IAAA,EAAK;AAAA,aAAA,EACnD,CAAA;AAAA,4BACAG,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mCAAA,EACb,QAAA,EAAA;AAAA,8BAAAH,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kCAAA,EAAmC,QAAA,EAAA,eAAA,EAAa,CAAA;AAAA,8BAChEA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,aAAA,EAAe,uBAAa,WAAA,EAAY;AAAA,aAAA,EAC1D;AAAA,WAAA,EACF,CAAA;AAAA,0BAGFG,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,8CAAA,EACb,QAAA,EAAA;AAAA,4BAAAH,GAAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,OAAA,EAAQ,WAAA;AAAA,gBACR,OAAA,EAAS,MAAM,oBAAA,CAAqB,KAAK,CAAA;AAAA,gBACzC,QAAA,EAAU,SAAA;AAAA,gBACX,QAAA,EAAA;AAAA;AAAA,aAED;AAAA,4BACAA,GAAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,OAAA,EAAQ,SAAA;AAAA,gBACR,OAAA,EAAS,wBAAA;AAAA,gBACT,QAAA,EAAU,SAAA;AAAA,gBAET,sBAAY,cAAA,GAAiB;AAAA;AAAA;AAChC,WAAA,EACF;AAAA,SAAA,EACF;AAAA;AAAA,KACF;AAAA,oBAGAA,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,MAAA,EAAQ,kBAAA;AAAA,QACR,SAAS,MAAM;AACb,UAAA,qBAAA,CAAsB,KAAK,CAAA;AAC3B,UAAA,QAAA,CAAS,IAAI,CAAA;AAAA,QACf,CAAA;AAAA,QACA,KAAA,EACE,YAAA,IAAgB,UAAA,CAAW,YAAA,CAAa,KAAA,CAAM,OAAA,CAAQ,UAAA,EAAY,EAAE,CAAC,CAAA,KAAM,CAAA,GACvE,iBAAA,GACA,eACE,qBAAA,GACA,sBAAA;AAAA,QAGR,QAAA,kBAAAG,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,WAAA,EACb,QAAA,EAAA;AAAA,0BAAAH,IAAC,GAAA,EAAA,EAAE,SAAA,EAAU,kCAAA,EACV,QAAA,EAAA,YAAA,IAAgB,WAAW,YAAA,CAAa,KAAA,CAAM,OAAA,CAAQ,UAAA,EAAY,EAAE,CAAC,CAAA,KAAM,oBAC1EG,IAAAA,CAAAlX,UAAA,EAAE,QAAA,EAAA;AAAA,YAAA,kBAAA;AAAA,4BAAgB+W,GAAAA,CAAC,QAAA,EAAA,EAAQ,QAAA,EAAA,YAAA,EAAc,IAAA,EAAK,CAAA;AAAA,YAAS;AAAA,WAAA,EAAK,CAAA,GAC1D,YAAA,mBACFG,IAAAA,CAAAlX,UAAA,EAAE,QAAA,EAAA;AAAA,YAAA,gBAAA;AAAA,4BAAc+W,GAAAA,CAAC,QAAA,EAAA,EAAQ,QAAA,EAAA,YAAA,EAAc,IAAA,EAAK,CAAA;AAAA,YAAS;AAAA,WAAA,EAAK,CAAA,mBAE1DG,IAAAA,CAAAlX,QAAAA,EAAA,EAAE,QAAA,EAAA;AAAA,YAAA,mBAAA;AAAA,4BAAiB+W,GAAAA,CAAC,QAAA,EAAA,EAAQ,QAAA,EAAA,YAAA,EAAc,IAAA,EAAK,CAAA;AAAA,YAAS;AAAA,WAAA,EAAK,CAAA,EAEjE,CAAA;AAAA,0BAEAG,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,4CAAA,EACb,QAAA,EAAA;AAAA,4BAAAH,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,kDAAA,EAAmD,QAAA,EAAA,iBAAA,EAEjE,CAAA;AAAA,4BACAG,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mCAAA,EACb,QAAA,EAAA;AAAA,8BAAAH,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kCAAA,EAAmC,QAAA,EAAA,OAAA,EAAK,CAAA;AAAA,8BACxDA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,2CAAA,EAA6C,wBAAc,IAAA,EAAK;AAAA,aAAA,EAClF,CAAA;AAAA,4BACAG,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mCAAA,EACb,QAAA,EAAA;AAAA,8BAAAH,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kCAAA,EAAmC,QAAA,EAAA,gBAAA,EAAc,CAAA;AAAA,8BACjEG,IAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,2CAAA,EACb,QAAA,EAAA;AAAA,gBAAA,YAAA,EAAc,MAAA,IAAU,OAAA;AAAA,gBAAQ;AAAA,eAAA,EACnC;AAAA,aAAA,EACF,CAAA;AAAA,YACC,YAAA,IAAgB,UAAA,CAAW,YAAA,CAAa,KAAA,CAAM,OAAA,CAAQ,UAAA,EAAY,EAAE,CAAC,CAAA,GAAI,CAAA,oBACxEA,IAAAA,CAAAlX,UAAA,EACE,QAAA,EAAA;AAAA,8BAAAkX,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mCAAA,EACb,QAAA,EAAA;AAAA,gCAAAH,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kCAAA,EAAmC,QAAA,EAAA,WAAA,EAAS,CAAA;AAAA,gCAC5DA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,2CAAA,EACb,uBAAa,KAAA,EAChB;AAAA,eAAA,EACF,CAAA;AAAA,cAGC,UAAA,mBACCG,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,mCAAA,EACb,QAAA,EAAA;AAAA,gCAAAH,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kCAAA,EAAmC,QAAA,EAAA,MAAA,EAAI,CAAA;AAAA,gCACvDA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,4CAA2C,QAAA,EAAA,gBAAA,EAAc;AAAA,eAAA,EAC3E,CAAA,GACE,WAAW,OAAA,CAAQ,QAAA,GAAW,oBAChCG,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mCAAA,EACb,QAAA,EAAA;AAAA,gCAAAA,IAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kCAAA,EACb,QAAA,EAAA;AAAA,kBAAA,OAAA,CAAQ,SAAA;AAAA,kBAAU,IAAA;AAAA,kBAAG,OAAA,CAAQ,QAAA;AAAA,kBAAS;AAAA,iBAAA,EACzC,CAAA;AAAA,gCACAA,IAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,2CAAA,EAA4C,QAAA,EAAA;AAAA,kBAAA,GAAA;AAAA,kBAAA,CACvD,OAAA,CAAQ,UAAA,GAAa,GAAA,EAAK,OAAA,CAAQ,CAAC;AAAA,iBAAA,EACxC;AAAA,eAAA,EACF,CAAA,GACE,WAAW,OAAA,CAAQ,cAAA,mBACrBA,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,mCAAA,EACb,QAAA,EAAA;AAAA,gCAAAH,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kCAAA,EAAmC,QAAA,EAAA,uBAAA,EAAqB,CAAA;AAAA,gCACxEA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,6CAA4C,QAAA,EAAA,OAAA,EAAK;AAAA,eAAA,EACnE,CAAA,GACE;AAAA,aAAA,EACN,CAAA;AAAA,YAID,OAAA,IAAW,QAAQ,cAAA,oBAClBA,IAAC,KAAA,EAAA,EAAI,SAAA,EAAU,4FAA2F,QAAA,EAAA,oFAAA,EAE1G,CAAA;AAAA,4BAGFA,IAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBACb,QAAA,kBAAAG,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sBAAA,EACb,QAAA,EAAA;AAAA,8BAAAH,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,6CAAA,EACb,0BAAgB,UAAA,CAAW,YAAA,CAAa,KAAA,CAAM,OAAA,CAAQ,YAAY,EAAE,CAAC,CAAA,KAAM,CAAA,GAAI,WAAW,gBAAA,EAC7F,CAAA;AAAA,8BACAA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,mDACb,QAAA,EAAA,YAAA,IAAgB,UAAA,CAAW,YAAA,CAAa,KAAA,CAAM,OAAA,CAAQ,UAAA,EAAY,EAAE,CAAC,MAAM,CAAA,mBAC1EA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oCAAA,EAAqC,QAAA,EAAA,MAAA,EAAI,CAAA,GACvD,UACF,CAAA,CAAA,EAAA,CAAK,OAAA,CAAQ,KAAA,GAAQ,GAAA,EAAK,QAAQ,CAAC,CAAC,CAAA,CAAA,GAEpC,YAAA,EAAc,SAAS,IAAA,EAE3B;AAAA,aAAA,EACF,CAAA,EACF;AAAA,WAAA,EACF,CAAA;AAAA,UAGC,gBAAgB,UAAA,CAAW,YAAA,CAAa,KAAA,CAAM,OAAA,CAAQ,YAAY,EAAE,CAAC,CAAA,GAAI,CAAA,IAAK,eAAe,MAAA,GAAS,CAAA,oBACrGG,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,WAAA,EACb,QAAA,EAAA;AAAA,4BAAAH,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,qDAAA,EAAsD,QAAA,EAAA,uBAAA,EAEpE,CAAA;AAAA,4BACAA,IAAC,KAAA,EAAA,EAAI,SAAA,EAAU,aACZ,QAAA,EAAA,cAAA,CAAe,GAAA,CAAI,CAAC,MAAA,qBACnBG,IAAAA;AAAA,cAAC,OAAA;AAAA,cAAA;AAAA,gBAEC,WAAW,CAAA,0DAAA,EACT,4BAAA,KAAiC,MAAA,CAAO,EAAA,GACpC,4BACA,wBACN,CAAA,CAAA;AAAA,gBAEA,QAAA,EAAA;AAAA,kCAAAH,GAAAA;AAAA,oBAAC,OAAA;AAAA,oBAAA;AAAA,sBACC,IAAA,EAAK,OAAA;AAAA,sBACL,IAAA,EAAK,eAAA;AAAA,sBACL,OAAO,MAAA,CAAO,EAAA;AAAA,sBACd,OAAA,EAAS,iCAAiC,MAAA,CAAO,EAAA;AAAA,sBACjD,QAAA,EAAU,MAAM,+BAAA,CAAgC,MAAA,CAAO,EAAE,CAAA;AAAA,sBACzD,SAAA,EAAU;AAAA;AAAA,mBACZ;AAAA,kCACAG,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,QAAA,EACb,QAAA,EAAA;AAAA,oCAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EACb,QAAA,EAAA;AAAA,sCAAAH,IAAC,MAAA,EAAA,EAAK,SAAA,EAAU,qDACb,QAAA,EAAA,MAAA,CAAO,UAAA,GAAa,OAAO,UAAA,CAAW,MAAA,CAAO,CAAC,CAAA,CAAE,aAAY,GAAI,MAAA,CAAO,WAAW,KAAA,CAAM,CAAC,IAAI,MAAA,EAChG,CAAA;AAAA,sBACC,OAAO,UAAA,oBACNA,IAAC,MAAA,EAAA,EAAK,SAAA,EAAU,0IAAyI,QAAA,EAAA,SAAA,EAEzJ;AAAA,qBAAA,EAEJ,CAAA;AAAA,oCACAG,IAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,0CAAA,EAA2C,QAAA,EAAA;AAAA,sBAAA,2BAAA;AAAA,sBACnD,OAAO,UAAA,IAAc;AAAA,qBAAA,EAC7B;AAAA,mBAAA,EACF;AAAA;AAAA,eAAA;AAAA,cA7BK,MAAA,CAAO;AAAA,aA+Bf,CAAA,EACH;AAAA,WAAA,EACF,CAAA;AAAA,UAID,YAAA,IAAgB,UAAA,CAAW,YAAA,CAAa,KAAA,CAAM,OAAA,CAAQ,YAAY,EAAE,CAAC,CAAA,GAAI,CAAA,IAAK,cAAA,CAAe,MAAA,KAAW,qBACvGH,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0DAAA,EACb,QAAA,kBAAAA,IAAC,GAAA,EAAA,EAAE,SAAA,EAAU,8CAAA,EAA+C,QAAA,EAAA,gEAAA,EAE5D,CAAA,EACF,CAAA;AAAA,UAID,YAAA,IAAgB,WAAW,YAAA,CAAa,KAAA,CAAM,QAAQ,UAAA,EAAY,EAAE,CAAC,CAAA,KAAM,CAAA,oBAC1EA,GAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,wDAAA,EACb,QAAA,kBAAAA,IAAC,GAAA,EAAA,EAAE,SAAA,EAAU,4CAAA,EAA6C,QAAA,EAAA,kDAAA,EAE1D,CAAA,EACF,CAAA;AAAA,UAGD,YAAA,IAAgB,UAAA,CAAW,YAAA,CAAa,KAAA,CAAM,QAAQ,UAAA,EAAY,EAAE,CAAC,CAAA,GAAI,qBACxEA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,4CAA2C,QAAA,EAAA,0EAAA,EAExD,CAAA;AAAA,UAID,KAAA,oBACCA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oDACb,QAAA,kBAAAG,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wBAAA,EACb,QAAA,EAAA;AAAA,4BAAAH,GAAAA,CAAC,SAAI,SAAA,EAAU,6DAAA,EAA8D,MAAK,MAAA,EAAO,MAAA,EAAO,gBAAe,OAAA,EAAQ,WAAA,EACrH,0BAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,eAAc,OAAA,EAAQ,cAAA,EAAe,SAAQ,WAAA,EAAa,CAAA,EAAG,CAAA,EAAE,mDAAA,EAAoD,CAAA,EAC3H,CAAA;AAAA,4BACAA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,0CAA0C,QAAA,EAAA,KAAA,EAAM;AAAA,WAAA,EAC/D,CAAA,EACF,CAAA;AAAA,0BAGFG,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,6BAAA,EACb,QAAA,EAAA;AAAA,4BAAAH,GAAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,OAAA,EAAQ,WAAA;AAAA,gBACR,SAAS,MAAM;AACb,kBAAA,qBAAA,CAAsB,KAAK,CAAA;AAC3B,kBAAA,QAAA,CAAS,IAAI,CAAA;AAAA,gBACf,CAAA;AAAA,gBACA,QAAA,EAAU,WAAA;AAAA,gBACX,QAAA,EAAA;AAAA;AAAA,aAED;AAAA,4BACAA,GAAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,OAAA,EAAQ,SAAA;AAAA,gBACR,OAAA,EAAS,oBAAA;AAAA,gBACT,QAAA,EAAU,WAAA,IAAe,CAAC,EAAE,gBAAgB,UAAA,CAAW,YAAA,CAAa,KAAA,CAAM,OAAA,CAAQ,YAAY,EAAE,CAAC,CAAA,GAAI,CAAA,IAAK,eAAe,MAAA,KAAW,CAAA,CAAA;AAAA,gBAEnI,QAAA,EAAA,WAAA,GACG,eAAA,GACA,YAAA,IAAgB,UAAA,CAAW,aAAa,KAAA,CAAM,OAAA,CAAQ,UAAA,EAAY,EAAE,CAAC,CAAA,KAAM,CAAA,GACzE,iBAAA,GACA,eACE,gBAAA,GACA;AAAA;AAAA;AAEV,WAAA,EACF;AAAA,SAAA,EACF;AAAA;AAAA,KACF;AAAA,oBAGAA,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,MAAA,EAAQ,cAAA;AAAA,QACR,OAAA,EAAS,uBAAA;AAAA,QACT,KAAA,EAAM,0BAAA;AAAA,QAEN,QAAA,kBAAAG,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,WAAA,EACb,QAAA,EAAA;AAAA,0BAAAH,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAA,EACb,0BAAAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wFAAA,EACb,QAAA,kBAAAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,8CAA6C,IAAA,EAAK,MAAA,EAAO,MAAA,EAAO,cAAA,EAAe,OAAA,EAAQ,WAAA,EACpG,QAAA,kBAAAA,GAAAA,CAAC,UAAK,aAAA,EAAc,OAAA,EAAQ,cAAA,EAAe,OAAA,EAAQ,aAAa,CAAA,EAAG,CAAA,EAAE,gBAAA,EAAiB,CAAA,EACxF,GACF,CAAA,EACF,CAAA;AAAA,0BAEAG,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,aAAA,EACb,QAAA,EAAA;AAAA,4BAAAA,IAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,sDAAA,EAAuD,QAAA,EAAA;AAAA,cAAA,aAAA;AAAA,cACvD,YAAA,EAAc,IAAA;AAAA,cAAK;AAAA,aAAA,EACjC,CAAA;AAAA,4BACAH,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,kCAAA,EACV,0BAAgB,UAAA,CAAW,YAAA,CAAa,KAAA,CAAM,OAAA,CAAQ,YAAY,EAAE,CAAC,CAAA,KAAM,CAAA,GACxE,oEACA,gFAAA,EACN;AAAA,WAAA,EACF,CAAA;AAAA,0BAEAA,IAAC,KAAA,EAAA,EAAI,SAAA,EAAU,8CACb,QAAA,kBAAAG,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,WAAA,EACb,QAAA,EAAA;AAAA,4BAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,8BAAA,EACb,QAAA,EAAA;AAAA,8BAAAH,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kCAAA,EAAmC,QAAA,EAAA,OAAA,EAAK,CAAA;AAAA,8BACxDA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,2CAAA,EAA6C,wBAAc,IAAA,EAAK;AAAA,aAAA,EAClF,CAAA;AAAA,4BACAG,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,8BAAA,EACb,QAAA,EAAA;AAAA,8BAAAH,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kCAAA,EAAmC,QAAA,EAAA,UAAA,EAAQ,CAAA;AAAA,8BAC3DA,IAAC,MAAA,EAAA,EAAK,SAAA,EAAU,6CACb,QAAA,EAAA,YAAA,IAAgB,UAAA,CAAW,YAAA,CAAa,KAAA,CAAM,OAAA,CAAQ,UAAA,EAAY,EAAE,CAAC,CAAA,KAAM,IAAI,MAAA,GAAS,CAAA,EAAG,cAAc,KAAK,CAAA,CAAA,EAAI,YAAA,EAAc,MAAM,CAAA,CAAA,EACzI;AAAA,aAAA,EACF,CAAA;AAAA,YACC,YAAA,IAAgB,UAAA,CAAW,YAAA,CAAa,KAAA,CAAM,QAAQ,UAAA,EAAY,EAAE,CAAC,CAAA,GAAI,CAAA,oBACxEG,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,+CAAA,EACb,QAAA,EAAA;AAAA,8BAAAH,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kCAAA,EAAmC,QAAA,EAAA,SAAA,EAAO,CAAA;AAAA,8BAC1DA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kDAAiD,QAAA,EAAA,QAAA,EAAM;AAAA,aAAA,EACzE;AAAA,WAAA,EAEJ,CAAA,EACF,CAAA;AAAA,0BAEAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,4BACb,QAAA,kBAAAA,GAAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,OAAA,EAAQ,SAAA;AAAA,cACR,OAAA,EAAS,uBAAA;AAAA,cACT,SAAA,EAAU,MAAA;AAAA,cACX,QAAA,EAAA;AAAA;AAAA,WAED,EACF;AAAA,SAAA,EACF;AAAA;AAAA;AACF,GAAA,EACF,CAAA;AAEJ","file":"chunk-2MKNXIZG.mjs","sourcesContent":["/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","\"use strict\";\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) return obj;\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") return { default: obj };\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) return cache.get(obj);\n\n var newObj = { __proto__: null };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);\n else newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n\n if (cache) cache.set(obj, newObj);\n\n return newObj;\n}\nexports._ = _interop_require_wildcard;\n","\"use strict\";\n\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nexports._ = _interop_require_default;\n","'use client'\n\nimport type {\n FocusAndScrollRef,\n PrefetchKind,\n} from '../../client/components/router-reducer/router-reducer-types'\nimport type { Params } from '../../server/request/params'\nimport type {\n FlightRouterState,\n FlightSegmentPath,\n CacheNode,\n} from './app-router-types'\nimport React from 'react'\n\nexport interface NavigateOptions {\n scroll?: boolean\n}\n\nexport interface PrefetchOptions {\n kind: PrefetchKind\n onInvalidate?: () => void\n}\n\nexport interface AppRouterInstance {\n /**\n * Navigate to the previous history entry.\n */\n back(): void\n /**\n * Navigate to the next history entry.\n */\n forward(): void\n /**\n * Refresh the current page.\n */\n refresh(): void\n /**\n * Refresh the current page. Use in development only.\n * @internal\n */\n hmrRefresh(): void\n /**\n * Navigate to the provided href.\n * Pushes a new history entry.\n */\n push(href: string, options?: NavigateOptions): void\n /**\n * Navigate to the provided href.\n * Replaces the current history entry.\n */\n replace(href: string, options?: NavigateOptions): void\n /**\n * Prefetch the provided href.\n */\n prefetch(href: string, options?: PrefetchOptions): void\n}\n\nexport const AppRouterContext = React.createContext<AppRouterInstance | null>(\n null\n)\nexport const LayoutRouterContext = React.createContext<{\n parentTree: FlightRouterState\n parentCacheNode: CacheNode\n parentSegmentPath: FlightSegmentPath | null\n parentParams: Params\n debugNameContext: string\n url: string\n isActive: boolean\n} | null>(null)\n\nexport const GlobalLayoutRouterContext = React.createContext<{\n tree: FlightRouterState\n focusAndScrollRef: FocusAndScrollRef\n nextUrl: string | null\n previousNextUrl: string | null\n}>(null as any)\n\nexport const TemplateContext = React.createContext<React.ReactNode>(null as any)\n\nif (process.env.NODE_ENV !== 'production') {\n AppRouterContext.displayName = 'AppRouterContext'\n LayoutRouterContext.displayName = 'LayoutRouterContext'\n GlobalLayoutRouterContext.displayName = 'GlobalLayoutRouterContext'\n TemplateContext.displayName = 'TemplateContext'\n}\n\nexport const MissingSlotContext = React.createContext<Set<string>>(new Set())\n","/**\n * ReadonlyURLSearchParams implementation shared between client and server.\n * This file is intentionally not marked as 'use client' or 'use server'\n * so it can be imported by both environments.\n */\n\n/** @internal */\nclass ReadonlyURLSearchParamsError extends Error {\n constructor() {\n super(\n 'Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams'\n )\n }\n}\n\n/**\n * A read-only version of URLSearchParams that throws errors when mutation methods are called.\n * This ensures that the URLSearchParams returned by useSearchParams() cannot be mutated.\n */\nexport class ReadonlyURLSearchParams extends URLSearchParams {\n /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */\n append() {\n throw new ReadonlyURLSearchParamsError()\n }\n /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */\n delete() {\n throw new ReadonlyURLSearchParamsError()\n }\n /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */\n set() {\n throw new ReadonlyURLSearchParamsError()\n }\n /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */\n sort() {\n throw new ReadonlyURLSearchParamsError()\n }\n}\n","'use client'\n\nimport { createContext } from 'react'\nimport type { Params } from '../../server/request/params'\nimport { ReadonlyURLSearchParams } from '../../client/components/readonly-url-search-params'\n\nexport const SearchParamsContext = createContext<URLSearchParams | null>(null)\nexport const PathnameContext = createContext<string | null>(null)\nexport const PathParamsContext = createContext<Params | null>(null)\n\n// Dev-only context for Suspense DevTools instrumentation\n// These promises are used to track navigation hook usage in React DevTools\nexport type InstrumentedPromise<T> = Promise<T> & {\n status: 'fulfilled'\n value: T\n displayName: string\n}\n\nexport type NavigationPromises = {\n pathname: InstrumentedPromise<string>\n searchParams: InstrumentedPromise<ReadonlyURLSearchParams>\n params: InstrumentedPromise<Params>\n // Layout segment hooks (updated at each layout boundary)\n selectedLayoutSegmentPromises?: Map<\n string,\n InstrumentedPromise<string | null>\n >\n selectedLayoutSegmentsPromises?: Map<string, InstrumentedPromise<string[]>>\n}\n\nexport const NavigationPromisesContext =\n createContext<NavigationPromises | null>(null)\n\n// Creates an instrumented promise for Suspense DevTools\n// These promises are always fulfilled and exist purely for\n// tracking in React's Suspense DevTools.\nexport function createDevToolsInstrumentedPromise<T>(\n displayName: string,\n value: T\n): InstrumentedPromise<T> {\n const promise = Promise.resolve(value) as InstrumentedPromise<T>\n promise.status = 'fulfilled'\n promise.value = value\n promise.displayName = `${displayName} (SSR)`\n return promise\n}\n\nexport { ReadonlyURLSearchParams }\n\nif (process.env.NODE_ENV !== 'production') {\n SearchParamsContext.displayName = 'SearchParamsContext'\n PathnameContext.displayName = 'PathnameContext'\n PathParamsContext.displayName = 'PathParamsContext'\n NavigationPromisesContext.displayName = 'NavigationPromisesContext'\n}\n","import type { FlightRouterState, Segment } from './app-router-types'\n\nexport function getSegmentValue(segment: Segment) {\n return Array.isArray(segment) ? segment[1] : segment\n}\n\nexport function isGroupSegment(segment: string) {\n // Use array[0] for performant purpose\n return segment[0] === '(' && segment.endsWith(')')\n}\n\nexport function isParallelRouteSegment(segment: string) {\n return segment.startsWith('@') && segment !== '@children'\n}\n\nexport function addSearchParamsIfPageSegment(\n segment: Segment,\n searchParams: Record<string, string | string[] | undefined>\n) {\n const isPageSegment = segment.includes(PAGE_SEGMENT_KEY)\n\n if (isPageSegment) {\n const stringifiedQuery = JSON.stringify(searchParams)\n return stringifiedQuery !== '{}'\n ? PAGE_SEGMENT_KEY + '?' + stringifiedQuery\n : PAGE_SEGMENT_KEY\n }\n\n return segment\n}\n\nexport function computeSelectedLayoutSegment(\n segments: string[] | null,\n parallelRouteKey: string\n): string | null {\n if (!segments || segments.length === 0) {\n return null\n }\n\n // For 'children', use first segment; for other parallel routes, use last segment\n const rawSegment =\n parallelRouteKey === 'children'\n ? segments[0]\n : segments[segments.length - 1]\n\n // If the default slot is showing, return null since it's not technically \"selected\" (it's a fallback)\n // Returning an internal value like `__DEFAULT__` would be confusing\n return rawSegment === DEFAULT_SEGMENT_KEY ? null : rawSegment\n}\n\n/** Get the canonical parameters from the current level to the leaf node. */\nexport function getSelectedLayoutSegmentPath(\n tree: FlightRouterState,\n parallelRouteKey: string,\n first = true,\n segmentPath: string[] = []\n): string[] {\n let node: FlightRouterState\n if (first) {\n // Use the provided parallel route key on the first parallel route\n node = tree[1][parallelRouteKey]\n } else {\n // After first parallel route prefer children, if there's no children pick the first parallel route.\n const parallelRoutes = tree[1]\n node = parallelRoutes.children ?? Object.values(parallelRoutes)[0]\n }\n\n if (!node) return segmentPath\n const segment = node[0]\n\n let segmentValue = getSegmentValue(segment)\n\n if (!segmentValue || segmentValue.startsWith(PAGE_SEGMENT_KEY)) {\n return segmentPath\n }\n\n segmentPath.push(segmentValue)\n\n return getSelectedLayoutSegmentPath(\n node,\n parallelRouteKey,\n false,\n segmentPath\n )\n}\n\nexport const PAGE_SEGMENT_KEY = '__PAGE__'\nexport const DEFAULT_SEGMENT_KEY = '__DEFAULT__'\nexport const NOT_FOUND_SEGMENT_KEY = '/_not-found'\n","'use client'\n\nimport React, { useContext } from 'react'\n\nexport type ServerInsertedHTMLHook = (callbacks: () => React.ReactNode) => void\n\n// Use `React.createContext` to avoid errors from the RSC checks because\n// it can't be imported directly in Server Components:\n//\n// import { createContext } from 'react'\n//\n// More info: https://github.com/vercel/next.js/pull/40686\nexport const ServerInsertedHTMLContext =\n React.createContext<ServerInsertedHTMLHook | null>(null as any)\n\nexport function useServerInsertedHTML(callback: () => React.ReactNode): void {\n const addInsertedServerHTMLCallback = useContext(ServerInsertedHTMLContext)\n // Should have no effects on client where there's no flush effects provider\n if (addInsertedServerHTMLCallback) {\n addInsertedServerHTMLCallback(callback)\n }\n}\n","export class UnrecognizedActionError extends Error {\n constructor(...args: ConstructorParameters<typeof Error>) {\n super(...args)\n this.name = 'UnrecognizedActionError'\n }\n}\n\n/**\n * Check whether a server action call failed because the server action was not recognized by the server.\n * This can happen if the client and the server are not from the same deployment.\n *\n * Example usage:\n * ```ts\n * try {\n * await myServerAction();\n * } catch (err) {\n * if (unstable_isUnrecognizedActionError(err)) {\n * // The client is from a different deployment than the server.\n * // Reloading the page will fix this mismatch.\n * window.alert(\"Please refresh the page and try again\");\n * return;\n * }\n * }\n * ```\n * */\nexport function unstable_isUnrecognizedActionError(\n error: unknown\n): error is UnrecognizedActionError {\n return !!(\n error &&\n typeof error === 'object' &&\n error instanceof UnrecognizedActionError\n )\n}\n","export enum RedirectStatusCode {\n SeeOther = 303,\n TemporaryRedirect = 307,\n PermanentRedirect = 308,\n}\n","import { RedirectStatusCode } from './redirect-status-code'\n\nexport const REDIRECT_ERROR_CODE = 'NEXT_REDIRECT'\n\nexport enum RedirectType {\n push = 'push',\n replace = 'replace',\n}\n\nexport type RedirectError = Error & {\n digest: `${typeof REDIRECT_ERROR_CODE};${RedirectType};${string};${RedirectStatusCode};`\n}\n\n/**\n * Checks an error to determine if it's an error generated by the\n * `redirect(url)` helper.\n *\n * @param error the error that may reference a redirect error\n * @returns true if the error is a redirect error\n */\nexport function isRedirectError(error: unknown): error is RedirectError {\n if (\n typeof error !== 'object' ||\n error === null ||\n !('digest' in error) ||\n typeof error.digest !== 'string'\n ) {\n return false\n }\n\n const digest = error.digest.split(';')\n const [errorCode, type] = digest\n const destination = digest.slice(2, -2).join(';')\n const status = digest.at(-2)\n\n const statusCode = Number(status)\n\n return (\n errorCode === REDIRECT_ERROR_CODE &&\n (type === 'replace' || type === 'push') &&\n typeof destination === 'string' &&\n !isNaN(statusCode) &&\n statusCode in RedirectStatusCode\n )\n}\n","import type { AsyncLocalStorage } from 'async_hooks'\n\nconst sharedAsyncLocalStorageNotAvailableError = new Error(\n 'Invariant: AsyncLocalStorage accessed in runtime where it is not available'\n)\n\nclass FakeAsyncLocalStorage<Store extends {}>\n implements AsyncLocalStorage<Store>\n{\n disable(): void {\n throw sharedAsyncLocalStorageNotAvailableError\n }\n\n getStore(): Store | undefined {\n // This fake implementation of AsyncLocalStorage always returns `undefined`.\n return undefined\n }\n\n run<R>(): R {\n throw sharedAsyncLocalStorageNotAvailableError\n }\n\n exit<R>(): R {\n throw sharedAsyncLocalStorageNotAvailableError\n }\n\n enterWith(): void {\n throw sharedAsyncLocalStorageNotAvailableError\n }\n\n static bind<T>(fn: T): T {\n return fn\n }\n}\n\nconst maybeGlobalAsyncLocalStorage =\n typeof globalThis !== 'undefined' && (globalThis as any).AsyncLocalStorage\n\nexport function createAsyncLocalStorage<\n Store extends {},\n>(): AsyncLocalStorage<Store> {\n if (maybeGlobalAsyncLocalStorage) {\n return new maybeGlobalAsyncLocalStorage()\n }\n return new FakeAsyncLocalStorage()\n}\n\nexport function bindSnapshot<T>(\n // WARNING: Don't pass a named function to this argument! See: https://github.com/facebook/react/pull/34911\n fn: T\n): T {\n if (maybeGlobalAsyncLocalStorage) {\n return maybeGlobalAsyncLocalStorage.bind(fn)\n }\n return FakeAsyncLocalStorage.bind(fn)\n}\n\nexport function createSnapshot(): <R, TArgs extends any[]>(\n fn: (...args: TArgs) => R,\n ...args: TArgs\n) => R {\n if (maybeGlobalAsyncLocalStorage) {\n return maybeGlobalAsyncLocalStorage.snapshot()\n }\n return function (fn: any, ...args: any[]) {\n return fn(...args)\n }\n}\n","import type { ActionAsyncStorage } from './action-async-storage.external'\nimport { createAsyncLocalStorage } from './async-local-storage'\n\nexport const actionAsyncStorageInstance: ActionAsyncStorage =\n createAsyncLocalStorage()\n","import type { AsyncLocalStorage } from 'async_hooks'\n\n// Share the instance module in the next-shared layer\nimport { actionAsyncStorageInstance } from './action-async-storage-instance' with { 'turbopack-transition': 'next-shared' }\nexport interface ActionStore {\n readonly isAction?: boolean\n readonly isAppRoute?: boolean\n}\n\nexport type ActionAsyncStorage = AsyncLocalStorage<ActionStore>\n\nexport { actionAsyncStorageInstance as actionAsyncStorage }\n","import { RedirectStatusCode } from './redirect-status-code'\nimport {\n RedirectType,\n type RedirectError,\n isRedirectError,\n REDIRECT_ERROR_CODE,\n} from './redirect-error'\n\nconst actionAsyncStorage =\n typeof window === 'undefined'\n ? (\n require('../../server/app-render/action-async-storage.external') as typeof import('../../server/app-render/action-async-storage.external')\n ).actionAsyncStorage\n : undefined\n\nexport function getRedirectError(\n url: string,\n type: RedirectType,\n statusCode: RedirectStatusCode = RedirectStatusCode.TemporaryRedirect\n): RedirectError {\n const error = new Error(REDIRECT_ERROR_CODE) as RedirectError\n error.digest = `${REDIRECT_ERROR_CODE};${type};${url};${statusCode};`\n return error\n}\n\n/**\n * This function allows you to redirect the user to another URL. It can be used in\n * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),\n * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and\n * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).\n *\n * - In a Server Component, this will insert a meta tag to redirect the user to the target page.\n * - In a Route Handler or Server Action, it will serve a 307/303 to the caller.\n * - In a Server Action, type defaults to 'push' and 'replace' elsewhere.\n *\n * Read more: [Next.js Docs: `redirect`](https://nextjs.org/docs/app/api-reference/functions/redirect)\n */\nexport function redirect(\n /** The URL to redirect to */\n url: string,\n type?: RedirectType\n): never {\n type ??= actionAsyncStorage?.getStore()?.isAction\n ? RedirectType.push\n : RedirectType.replace\n\n throw getRedirectError(url, type, RedirectStatusCode.TemporaryRedirect)\n}\n\n/**\n * This function allows you to redirect the user to another URL. It can be used in\n * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),\n * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and\n * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).\n *\n * - In a Server Component, this will insert a meta tag to redirect the user to the target page.\n * - In a Route Handler or Server Action, it will serve a 308/303 to the caller.\n *\n * Read more: [Next.js Docs: `redirect`](https://nextjs.org/docs/app/api-reference/functions/redirect)\n */\nexport function permanentRedirect(\n /** The URL to redirect to */\n url: string,\n type: RedirectType = RedirectType.replace\n): never {\n throw getRedirectError(url, type, RedirectStatusCode.PermanentRedirect)\n}\n\n/**\n * Returns the encoded URL from the error if it's a RedirectError, null\n * otherwise. Note that this does not validate the URL returned.\n *\n * @param error the error that may be a redirect error\n * @return the url if the error was a redirect error\n */\nexport function getURLFromRedirectError(error: RedirectError): string\nexport function getURLFromRedirectError(error: unknown): string | null {\n if (!isRedirectError(error)) return null\n\n // Slices off the beginning of the digest that contains the code and the\n // separating ';'.\n return error.digest.split(';').slice(2, -2).join(';')\n}\n\nexport function getRedirectTypeFromError(error: RedirectError): RedirectType {\n if (!isRedirectError(error)) {\n throw new Error('Not a redirect error')\n }\n\n return error.digest.split(';', 2)[1] as RedirectType\n}\n\nexport function getRedirectStatusCodeFromError(error: RedirectError): number {\n if (!isRedirectError(error)) {\n throw new Error('Not a redirect error')\n }\n\n return Number(error.digest.split(';').at(-2))\n}\n","export const HTTPAccessErrorStatus = {\n NOT_FOUND: 404,\n FORBIDDEN: 403,\n UNAUTHORIZED: 401,\n}\n\nconst ALLOWED_CODES = new Set(Object.values(HTTPAccessErrorStatus))\n\nexport const HTTP_ERROR_FALLBACK_ERROR_CODE = 'NEXT_HTTP_ERROR_FALLBACK'\n\nexport type HTTPAccessFallbackError = Error & {\n digest: `${typeof HTTP_ERROR_FALLBACK_ERROR_CODE};${string}`\n}\n\n/**\n * Checks an error to determine if it's an error generated by\n * the HTTP navigation APIs `notFound()`, `forbidden()` or `unauthorized()`.\n *\n * @param error the error that may reference a HTTP access error\n * @returns true if the error is a HTTP access error\n */\nexport function isHTTPAccessFallbackError(\n error: unknown\n): error is HTTPAccessFallbackError {\n if (\n typeof error !== 'object' ||\n error === null ||\n !('digest' in error) ||\n typeof error.digest !== 'string'\n ) {\n return false\n }\n const [prefix, httpStatus] = error.digest.split(';')\n\n return (\n prefix === HTTP_ERROR_FALLBACK_ERROR_CODE &&\n ALLOWED_CODES.has(Number(httpStatus))\n )\n}\n\nexport function getAccessFallbackHTTPStatus(\n error: HTTPAccessFallbackError\n): number {\n const httpStatus = error.digest.split(';')[1]\n return Number(httpStatus)\n}\n\nexport function getAccessFallbackErrorTypeByStatus(\n status: number\n): 'not-found' | 'forbidden' | 'unauthorized' | undefined {\n switch (status) {\n case 401:\n return 'unauthorized'\n case 403:\n return 'forbidden'\n case 404:\n return 'not-found'\n default:\n return\n }\n}\n","import {\n HTTP_ERROR_FALLBACK_ERROR_CODE,\n type HTTPAccessFallbackError,\n} from './http-access-fallback/http-access-fallback'\n\n/**\n * This function allows you to render the [not-found.js file](https://nextjs.org/docs/app/api-reference/file-conventions/not-found)\n * within a route segment as well as inject a tag.\n *\n * `notFound()` can be used in\n * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),\n * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and\n * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).\n *\n * - In a Server Component, this will insert a `<meta name=\"robots\" content=\"noindex\" />` meta tag and set the status code to 404.\n * - In a Route Handler or Server Action, it will serve a 404 to the caller.\n *\n * Read more: [Next.js Docs: `notFound`](https://nextjs.org/docs/app/api-reference/functions/not-found)\n */\n\nconst DIGEST = `${HTTP_ERROR_FALLBACK_ERROR_CODE};404`\n\nexport function notFound(): never {\n const error = new Error(DIGEST) as HTTPAccessFallbackError\n ;(error as HTTPAccessFallbackError).digest = DIGEST\n\n throw error\n}\n","import {\n HTTP_ERROR_FALLBACK_ERROR_CODE,\n type HTTPAccessFallbackError,\n} from './http-access-fallback/http-access-fallback'\n\n// TODO: Add `forbidden` docs\n/**\n * @experimental\n * This function allows you to render the [forbidden.js file](https://nextjs.org/docs/app/api-reference/file-conventions/forbidden)\n * within a route segment as well as inject a tag.\n *\n * `forbidden()` can be used in\n * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),\n * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and\n * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).\n *\n * Read more: [Next.js Docs: `forbidden`](https://nextjs.org/docs/app/api-reference/functions/forbidden)\n */\n\nconst DIGEST = `${HTTP_ERROR_FALLBACK_ERROR_CODE};403`\n\nexport function forbidden(): never {\n if (!process.env.__NEXT_EXPERIMENTAL_AUTH_INTERRUPTS) {\n throw new Error(\n `\\`forbidden()\\` is experimental and only allowed to be enabled when \\`experimental.authInterrupts\\` is enabled.`\n )\n }\n\n const error = new Error(DIGEST) as HTTPAccessFallbackError\n ;(error as HTTPAccessFallbackError).digest = DIGEST\n throw error\n}\n","import {\n HTTP_ERROR_FALLBACK_ERROR_CODE,\n type HTTPAccessFallbackError,\n} from './http-access-fallback/http-access-fallback'\n\n// TODO: Add `unauthorized` docs\n/**\n * @experimental\n * This function allows you to render the [unauthorized.js file](https://nextjs.org/docs/app/api-reference/file-conventions/unauthorized)\n * within a route segment as well as inject a tag.\n *\n * `unauthorized()` can be used in\n * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),\n * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and\n * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).\n *\n *\n * Read more: [Next.js Docs: `unauthorized`](https://nextjs.org/docs/app/api-reference/functions/unauthorized)\n */\n\nconst DIGEST = `${HTTP_ERROR_FALLBACK_ERROR_CODE};401`\n\nexport function unauthorized(): never {\n if (!process.env.__NEXT_EXPERIMENTAL_AUTH_INTERRUPTS) {\n throw new Error(\n `\\`unauthorized()\\` is experimental and only allowed to be used when \\`experimental.authInterrupts\\` is enabled.`\n )\n }\n\n const error = new Error(DIGEST) as HTTPAccessFallbackError\n ;(error as HTTPAccessFallbackError).digest = DIGEST\n throw error\n}\n","import type { NonStaticRenderStage } from './app-render/staged-rendering'\nimport type { RequestStore } from './app-render/work-unit-async-storage.external'\n\nexport function isHangingPromiseRejectionError(\n err: unknown\n): err is HangingPromiseRejectionError {\n if (typeof err !== 'object' || err === null || !('digest' in err)) {\n return false\n }\n\n return err.digest === HANGING_PROMISE_REJECTION\n}\n\nconst HANGING_PROMISE_REJECTION = 'HANGING_PROMISE_REJECTION'\n\nclass HangingPromiseRejectionError extends Error {\n public readonly digest = HANGING_PROMISE_REJECTION\n\n constructor(\n public readonly route: string,\n public readonly expression: string\n ) {\n super(\n `During prerendering, ${expression} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${expression} to a different context by using \\`setTimeout\\`, \\`after\\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route \"${route}\".`\n )\n }\n}\n\ntype AbortListeners = Array<(err: unknown) => void>\nconst abortListenersBySignal = new WeakMap<AbortSignal, AbortListeners>()\n\n/**\n * This function constructs a promise that will never resolve. This is primarily\n * useful for cacheComponents where we use promise resolution timing to determine which\n * parts of a render can be included in a prerender.\n *\n * @internal\n */\nexport function makeHangingPromise<T>(\n signal: AbortSignal,\n route: string,\n expression: string\n): Promise<T> {\n if (signal.aborted) {\n return Promise.reject(new HangingPromiseRejectionError(route, expression))\n } else {\n const hangingPromise = new Promise<T>((_, reject) => {\n const boundRejection = reject.bind(\n null,\n new HangingPromiseRejectionError(route, expression)\n )\n let currentListeners = abortListenersBySignal.get(signal)\n if (currentListeners) {\n currentListeners.push(boundRejection)\n } else {\n const listeners = [boundRejection]\n abortListenersBySignal.set(signal, listeners)\n signal.addEventListener(\n 'abort',\n () => {\n for (let i = 0; i < listeners.length; i++) {\n listeners[i]()\n }\n },\n { once: true }\n )\n }\n })\n // We are fine if no one actually awaits this promise. We shouldn't consider this an unhandled rejection so\n // we attach a noop catch handler here to suppress this warning. If you actually await somewhere or construct\n // your own promise out of it you'll need to ensure you handle the error when it rejects.\n hangingPromise.catch(ignoreReject)\n return hangingPromise\n }\n}\n\nfunction ignoreReject() {}\n\nexport function makeDevtoolsIOAwarePromise<T>(\n underlying: T,\n requestStore: RequestStore,\n stage: NonStaticRenderStage\n): Promise<T> {\n if (requestStore.stagedRendering) {\n // We resolve each stage in a timeout, so React DevTools will pick this up as IO.\n return requestStore.stagedRendering.delayUntilStage(\n stage,\n undefined,\n underlying\n )\n }\n // in React DevTools if we resolve in a setTimeout we will observe\n // the promise resolution as something that can suspend a boundary or root.\n return new Promise<T>((resolve) => {\n // Must use setTimeout to be considered IO React DevTools. setImmediate will not work.\n setTimeout(() => {\n resolve(underlying)\n }, 0)\n })\n}\n","const REACT_POSTPONE_TYPE: symbol = Symbol.for('react.postpone')\n\nexport function isPostpone(error: any): boolean {\n return (\n typeof error === 'object' &&\n error !== null &&\n error.$$typeof === REACT_POSTPONE_TYPE\n )\n}\n","// This has to be a shared module which is shared between client component error boundary and dynamic component\nconst BAILOUT_TO_CSR = 'BAILOUT_TO_CLIENT_SIDE_RENDERING'\n\n/** An error that should be thrown when we want to bail out to client-side rendering. */\nexport class BailoutToCSRError extends Error {\n public readonly digest = BAILOUT_TO_CSR\n\n constructor(public readonly reason: string) {\n super(`Bail out to client-side rendering: ${reason}`)\n }\n}\n\n/** Checks if a passed argument is an error that is thrown if we want to bail out to client-side rendering. */\nexport function isBailoutToCSRError(err: unknown): err is BailoutToCSRError {\n if (typeof err !== 'object' || err === null || !('digest' in err)) {\n return false\n }\n\n return err.digest === BAILOUT_TO_CSR\n}\n","import {\n isHTTPAccessFallbackError,\n type HTTPAccessFallbackError,\n} from './http-access-fallback/http-access-fallback'\nimport { isRedirectError, type RedirectError } from './redirect-error'\n\n/**\n * Returns true if the error is a navigation signal error. These errors are\n * thrown by user code to perform navigation operations and interrupt the React\n * render.\n */\nexport function isNextRouterError(\n error: unknown\n): error is RedirectError | HTTPAccessFallbackError {\n return isRedirectError(error) || isHTTPAccessFallbackError(error)\n}\n","const DYNAMIC_ERROR_CODE = 'DYNAMIC_SERVER_USAGE'\n\nexport class DynamicServerError extends Error {\n digest: typeof DYNAMIC_ERROR_CODE = DYNAMIC_ERROR_CODE\n\n constructor(public readonly description: string) {\n super(`Dynamic server usage: ${description}`)\n }\n}\n\nexport function isDynamicServerError(err: unknown): err is DynamicServerError {\n if (\n typeof err !== 'object' ||\n err === null ||\n !('digest' in err) ||\n typeof err.digest !== 'string'\n ) {\n return false\n }\n\n return err.digest === DYNAMIC_ERROR_CODE\n}\n","const NEXT_STATIC_GEN_BAILOUT = 'NEXT_STATIC_GEN_BAILOUT'\n\nexport class StaticGenBailoutError extends Error {\n public readonly code = NEXT_STATIC_GEN_BAILOUT\n}\n\nexport function isStaticGenBailoutError(\n error: unknown\n): error is StaticGenBailoutError {\n if (typeof error !== 'object' || error === null || !('code' in error)) {\n return false\n }\n\n return error.code === NEXT_STATIC_GEN_BAILOUT\n}\n","import { createAsyncLocalStorage } from './async-local-storage'\nimport type { WorkUnitAsyncStorage } from './work-unit-async-storage.external'\n\nexport const workUnitAsyncStorageInstance: WorkUnitAsyncStorage =\n createAsyncLocalStorage()\n","export const RSC_HEADER = 'rsc' as const\nexport const ACTION_HEADER = 'next-action' as const\n// TODO: Instead of sending the full router state, we only need to send the\n// segment path. Saves bytes. Then we could also use this field for segment\n// prefetches, which also need to specify a particular segment.\nexport const NEXT_ROUTER_STATE_TREE_HEADER = 'next-router-state-tree' as const\nexport const NEXT_ROUTER_PREFETCH_HEADER = 'next-router-prefetch' as const\n// This contains the path to the segment being prefetched.\n// TODO: If we change next-router-state-tree to be a segment path, we can use\n// that instead. Then next-router-prefetch and next-router-segment-prefetch can\n// be merged into a single enum.\nexport const NEXT_ROUTER_SEGMENT_PREFETCH_HEADER =\n 'next-router-segment-prefetch' as const\nexport const NEXT_HMR_REFRESH_HEADER = 'next-hmr-refresh' as const\nexport const NEXT_HMR_REFRESH_HASH_COOKIE = '__next_hmr_refresh_hash__' as const\nexport const NEXT_URL = 'next-url' as const\nexport const RSC_CONTENT_TYPE_HEADER = 'text/x-component' as const\n\nexport const FLIGHT_HEADERS = [\n RSC_HEADER,\n NEXT_ROUTER_STATE_TREE_HEADER,\n NEXT_ROUTER_PREFETCH_HEADER,\n NEXT_HMR_REFRESH_HEADER,\n NEXT_ROUTER_SEGMENT_PREFETCH_HEADER,\n] as const\n\nexport const NEXT_RSC_UNION_QUERY = '_rsc' as const\n\nexport const NEXT_ROUTER_STALE_TIME_HEADER = 'x-nextjs-stale-time' as const\nexport const NEXT_DID_POSTPONE_HEADER = 'x-nextjs-postponed' as const\nexport const NEXT_REWRITTEN_PATH_HEADER = 'x-nextjs-rewritten-path' as const\nexport const NEXT_REWRITTEN_QUERY_HEADER = 'x-nextjs-rewritten-query' as const\nexport const NEXT_IS_PRERENDER_HEADER = 'x-nextjs-prerender' as const\nexport const NEXT_ACTION_NOT_FOUND_HEADER = 'x-nextjs-action-not-found' as const\nexport const NEXT_REQUEST_ID_HEADER = 'x-nextjs-request-id' as const\nexport const NEXT_HTML_REQUEST_ID_HEADER = 'x-nextjs-html-request-id' as const\n\n// TODO: Should this include nextjs in the name, like the others?\nexport const NEXT_ACTION_REVALIDATED_HEADER = 'x-action-revalidated' as const\n","export class InvariantError extends Error {\n constructor(message: string, options?: ErrorOptions) {\n super(\n `Invariant: ${message.endsWith('.') ? message : message + '.'} This is a bug in Next.js.`,\n options\n )\n this.name = 'InvariantError'\n }\n}\n","import type { AsyncLocalStorage } from 'async_hooks'\nimport type { DraftModeProvider } from '../async-storage/draft-mode-provider'\nimport type { ResponseCookies } from '../web/spec-extension/cookies'\nimport type { ReadonlyHeaders } from '../web/spec-extension/adapters/headers'\nimport type { ReadonlyRequestCookies } from '../web/spec-extension/adapters/request-cookies'\nimport type { CacheSignal } from './cache-signal'\nimport type { DynamicTrackingState } from './dynamic-rendering'\nimport type { OpaqueFallbackRouteParams } from '../request/fallback-params'\n\n// Share the instance module in the next-shared layer\nimport { workUnitAsyncStorageInstance } from './work-unit-async-storage-instance' with { 'turbopack-transition': 'next-shared' }\nimport type { ServerComponentsHmrCache } from '../response-cache'\nimport type {\n RenderResumeDataCache,\n PrerenderResumeDataCache,\n} from '../resume-data-cache/resume-data-cache'\nimport type { Params } from '../request/params'\nimport type { ImplicitTags } from '../lib/implicit-tags'\nimport type { WorkStore } from './work-async-storage.external'\nimport { NEXT_HMR_REFRESH_HASH_COOKIE } from '../../client/components/app-router-headers'\nimport { InvariantError } from '../../shared/lib/invariant-error'\nimport type { StagedRenderingController } from './staged-rendering'\n\nexport type WorkUnitPhase = 'action' | 'render' | 'after'\n\nexport interface CommonWorkUnitStore {\n /** NOTE: Will be mutated as phases change */\n phase: WorkUnitPhase\n readonly implicitTags: ImplicitTags\n}\n\nexport interface RequestStore extends CommonWorkUnitStore {\n readonly type: 'request'\n\n /**\n * The URL of the request. This only specifies the pathname and the search\n * part of the URL.\n */\n readonly url: {\n /**\n * The pathname of the requested URL.\n */\n readonly pathname: string\n\n /**\n * The search part of the requested URL. If the request did not provide a\n * search part, this will be an empty string.\n */\n readonly search: string\n }\n\n readonly headers: ReadonlyHeaders\n // This is mutable because we need to reassign it when transitioning from the action phase to the render phase.\n // The cookie object itself is deliberately read only and thus can't be updated.\n cookies: ReadonlyRequestCookies\n readonly mutableCookies: ResponseCookies\n readonly userspaceMutableCookies: ResponseCookies\n readonly draftMode: DraftModeProvider\n readonly isHmrRefresh?: boolean\n readonly serverComponentsHmrCache?: ServerComponentsHmrCache\n\n readonly rootParams: Params\n\n /**\n * The resume data cache for this request. This will be a immutable cache.\n */\n renderResumeDataCache: RenderResumeDataCache | null\n\n // DEV-only\n usedDynamic?: boolean\n devFallbackParams?: OpaqueFallbackRouteParams | null\n stagedRendering?: StagedRenderingController | null\n asyncApiPromises?: DevAsyncApiPromises\n cacheSignal?: CacheSignal | null\n prerenderResumeDataCache?: PrerenderResumeDataCache | null\n}\n\ntype DevAsyncApiPromises = {\n cookies: Promise<ReadonlyRequestCookies>\n mutableCookies: Promise<ReadonlyRequestCookies>\n headers: Promise<ReadonlyHeaders>\n\n sharedParamsParent: Promise<string>\n sharedSearchParamsParent: Promise<string>\n\n connection: Promise<undefined>\n}\n\n/**\n * The Prerender store is for tracking information related to prerenders.\n *\n * It can be used for both RSC and SSR prerendering and should be scoped as close\n * to the individual `renderTo...` API call as possible. To keep the type simple\n * we don't distinguish between RSC and SSR prerendering explicitly but instead\n * use conditional object properties to infer which mode we are in. For instance cache tracking\n * only needs to happen during the RSC prerender when we are prospectively prerendering\n * to fill all caches.\n */\nexport type PrerenderStoreModern =\n | PrerenderStoreModernClient\n | PrerenderStoreModernServer\n | PrerenderStoreModernRuntime\n\n/** Like `PrerenderStoreModern`, but only including static prerenders (i.e. not runtime prerenders) */\nexport type StaticPrerenderStoreModern = Exclude<\n PrerenderStoreModern,\n PrerenderStoreModernRuntime\n>\n\nexport interface PrerenderStoreModernClient\n extends PrerenderStoreModernCommon,\n StaticPrerenderStoreCommon {\n readonly type: 'prerender-client'\n}\n\nexport interface PrerenderStoreModernServer\n extends PrerenderStoreModernCommon,\n StaticPrerenderStoreCommon {\n readonly type: 'prerender'\n}\n\nexport interface PrerenderStoreModernRuntime\n extends PrerenderStoreModernCommon {\n readonly type: 'prerender-runtime'\n\n /**\n * A runtime prerender resolves APIs in two tasks:\n *\n * 1. Static data (available in a static prerender)\n * 2. Runtime data (available in a runtime prerender)\n *\n * This separation is achieved by awaiting this promise in \"runtime\" APIs.\n * In the final prerender, the promise will be resolved during the second task,\n * and the render will be aborted in the task that follows it.\n */\n readonly runtimeStagePromise: Promise<void> | null\n\n readonly headers: RequestStore['headers']\n readonly cookies: RequestStore['cookies']\n readonly draftMode: RequestStore['draftMode']\n}\n\nexport interface RevalidateStore {\n // Collected revalidate times and tags for this document during the prerender.\n revalidate: number // in seconds. 0 means dynamic. INFINITE_CACHE and higher means never revalidate.\n expire: number // server expiration time\n stale: number // client expiration time\n tags: null | string[]\n}\n\ninterface PrerenderStoreModernCommon\n extends CommonWorkUnitStore,\n RevalidateStore {\n /**\n * The render signal is aborted after React's `prerender` function is aborted\n * (using a separate signal), which happens in two cases:\n *\n * 1. When all caches are filled during the prospective prerender.\n * 2. When the final prerender is aborted immediately after the prerender was\n * started.\n *\n * It can be used to reject any pending I/O, including hanging promises. This\n * allows React to properly track the async I/O in dev mode, which yields\n * better owner stacks for dynamic validation errors.\n */\n readonly renderSignal: AbortSignal\n\n /**\n * This is the AbortController which represents the boundary between Prerender\n * and dynamic. In some renders it is the same as the controller for React,\n * but in others it is a separate controller. It should be aborted whenever we\n * are no longer in the prerender phase of rendering. Typically this is after\n * one task, or when you call a sync API which requires the prerender to end\n * immediately.\n */\n readonly controller: AbortController\n\n /**\n * When not null, this signal is used to track cache reads during prerendering\n * and to await all cache reads completing, before aborting the prerender.\n */\n readonly cacheSignal: null | CacheSignal\n\n /**\n * During some prerenders we want to track dynamic access.\n */\n readonly dynamicTracking: null | DynamicTrackingState\n\n readonly rootParams: Params\n\n /**\n * A mutable resume data cache for this prerender.\n */\n prerenderResumeDataCache: PrerenderResumeDataCache | null\n\n /**\n * An immutable resume data cache for this prerender. This may be provided\n * instead of the `prerenderResumeDataCache` if the prerender is not supposed\n * to fill caches, and only read from prefilled caches, e.g. when prerendering\n * an optional fallback shell.\n */\n renderResumeDataCache: RenderResumeDataCache | null\n\n /**\n * The HMR refresh hash is only provided in dev mode. It is needed for the dev\n * warmup render to ensure that the cache keys will be identical for the\n * subsequent dynamic render.\n */\n readonly hmrRefreshHash: string | undefined\n}\n\ninterface StaticPrerenderStoreCommon {\n /**\n * The set of unknown route parameters. Accessing these will be tracked as\n * a dynamic access.\n */\n readonly fallbackRouteParams: OpaqueFallbackRouteParams | null\n\n /**\n * When true, the page is prerendered as a fallback shell, while allowing any\n * dynamic accesses to result in an empty shell. This is the case when there\n * are also routes prerendered with a more complete set of params.\n * Prerendering those routes would catch any invalid dynamic accesses.\n */\n readonly allowEmptyStaticShell: boolean\n}\n\nexport interface PrerenderStorePPR\n extends CommonWorkUnitStore,\n RevalidateStore {\n readonly type: 'prerender-ppr'\n readonly rootParams: Params\n readonly dynamicTracking: null | DynamicTrackingState\n\n /**\n * The set of unknown route parameters. Accessing these will be tracked as\n * a dynamic access.\n */\n readonly fallbackRouteParams: OpaqueFallbackRouteParams | null\n\n /**\n * The resume data cache for this prerender.\n */\n prerenderResumeDataCache: PrerenderResumeDataCache\n}\n\nexport interface PrerenderStoreLegacy\n extends CommonWorkUnitStore,\n RevalidateStore {\n readonly type: 'prerender-legacy'\n readonly rootParams: Params\n}\n\nexport type PrerenderStore =\n | PrerenderStoreLegacy\n | PrerenderStorePPR\n | PrerenderStoreModern\n\n// /** Like `PrerenderStoreModern`, but only including static prerenders (i.e. not runtime prerenders) */\nexport type StaticPrerenderStore = Exclude<\n PrerenderStore,\n PrerenderStoreModernRuntime\n>\n\nexport interface CommonCacheStore\n extends Omit<CommonWorkUnitStore, 'implicitTags'> {\n /**\n * A cache work unit store might not always have an outer work unit store,\n * from which implicit tags could be inherited.\n */\n readonly implicitTags: ImplicitTags | undefined\n /**\n * Draft mode is only available if the outer work unit store is a request\n * store and draft mode is enabled.\n */\n readonly draftMode: DraftModeProvider | undefined\n}\n\nexport interface CommonUseCacheStore extends CommonCacheStore, RevalidateStore {\n explicitRevalidate: undefined | number // explicit revalidate time from cacheLife() calls\n explicitExpire: undefined | number // server expiration time\n explicitStale: undefined | number // client expiration time\n readonly hmrRefreshHash: string | undefined\n readonly isHmrRefresh: boolean\n readonly serverComponentsHmrCache: ServerComponentsHmrCache | undefined\n readonly forceRevalidate: boolean\n}\n\nexport interface PublicUseCacheStore extends CommonUseCacheStore {\n readonly type: 'cache'\n}\n\nexport interface PrivateUseCacheStore extends CommonUseCacheStore {\n readonly type: 'private-cache'\n\n /**\n * A runtime prerender resolves APIs in two tasks:\n *\n * 1. Static data (available in a static prerender)\n * 2. Runtime data (available in a runtime prerender)\n *\n * This separation is achieved by awaiting this promise in \"runtime\" APIs.\n * In the final prerender, the promise will be resolved during the second task,\n * and the render will be aborted in the task that follows it.\n */\n readonly runtimeStagePromise: Promise<void> | null\n\n readonly headers: ReadonlyHeaders\n readonly cookies: ReadonlyRequestCookies\n\n /**\n * Private caches don't currently need to track root params in the cache key\n * because they're not persisted anywhere, so we can allow root params access\n * (unlike public caches)\n */\n readonly rootParams: Params\n}\n\nexport type UseCacheStore = PublicUseCacheStore | PrivateUseCacheStore\n\nexport interface UnstableCacheStore extends CommonCacheStore {\n readonly type: 'unstable-cache'\n}\n\n/**\n * The Cache store is for tracking information inside a \"use cache\" or\n * unstable_cache context. A cache store shadows an outer request store (if\n * present) as a work unit, so that we never accidentally expose any request or\n * page specific information to cache functions, unless it's explicitly desired.\n * For those exceptions, the data is copied over from the request store to the\n * cache store, instead of generally making the request store available to cache\n * functions.\n */\nexport type CacheStore = UseCacheStore | UnstableCacheStore\n\nexport type WorkUnitStore = RequestStore | CacheStore | PrerenderStore\n\nexport type WorkUnitAsyncStorage = AsyncLocalStorage<WorkUnitStore>\n\nexport { workUnitAsyncStorageInstance as workUnitAsyncStorage }\n\nexport function throwForMissingRequestStore(callingExpression: string): never {\n throw new Error(\n `\\`${callingExpression}\\` was called outside a request scope. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`\n )\n}\n\nexport function throwInvariantForMissingStore(): never {\n throw new InvariantError('Expected workUnitAsyncStorage to have a store.')\n}\n\nexport function getPrerenderResumeDataCache(\n workUnitStore: WorkUnitStore\n): PrerenderResumeDataCache | null {\n switch (workUnitStore.type) {\n case 'prerender':\n case 'prerender-runtime':\n case 'prerender-ppr':\n return workUnitStore.prerenderResumeDataCache\n case 'prerender-client':\n // TODO eliminate fetch caching in client scope and stop exposing this data\n // cache during SSR.\n return workUnitStore.prerenderResumeDataCache\n case 'request': {\n // In dev, we might fill caches even during a dynamic request.\n if (workUnitStore.prerenderResumeDataCache) {\n return workUnitStore.prerenderResumeDataCache\n }\n // fallthrough\n }\n case 'prerender-legacy':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n return null\n default:\n return workUnitStore satisfies never\n }\n}\n\nexport function getRenderResumeDataCache(\n workUnitStore: WorkUnitStore\n): RenderResumeDataCache | null {\n switch (workUnitStore.type) {\n case 'request':\n case 'prerender':\n case 'prerender-runtime':\n case 'prerender-client':\n if (workUnitStore.renderResumeDataCache) {\n // If we are in a prerender, we might have a render resume data cache\n // that is used to read from prefilled caches.\n return workUnitStore.renderResumeDataCache\n }\n // fallthrough\n case 'prerender-ppr':\n // Otherwise we return the mutable resume data cache here as an immutable\n // version of the cache as it can also be used for reading.\n return workUnitStore.prerenderResumeDataCache ?? null\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n case 'prerender-legacy':\n return null\n default:\n return workUnitStore satisfies never\n }\n}\n\nexport function getHmrRefreshHash(\n workStore: WorkStore,\n workUnitStore: WorkUnitStore\n): string | undefined {\n if (workStore.dev) {\n switch (workUnitStore.type) {\n case 'cache':\n case 'private-cache':\n case 'prerender':\n case 'prerender-runtime':\n return workUnitStore.hmrRefreshHash\n case 'request':\n return workUnitStore.cookies.get(NEXT_HMR_REFRESH_HASH_COOKIE)?.value\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'unstable-cache':\n break\n default:\n workUnitStore satisfies never\n }\n }\n\n return undefined\n}\n\nexport function isHmrRefresh(\n workStore: WorkStore,\n workUnitStore: WorkUnitStore\n): boolean {\n if (workStore.dev) {\n switch (workUnitStore.type) {\n case 'cache':\n case 'private-cache':\n case 'request':\n return workUnitStore.isHmrRefresh ?? false\n case 'prerender':\n case 'prerender-client':\n case 'prerender-runtime':\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'unstable-cache':\n break\n default:\n workUnitStore satisfies never\n }\n }\n\n return false\n}\n\nexport function getServerComponentsHmrCache(\n workStore: WorkStore,\n workUnitStore: WorkUnitStore\n): ServerComponentsHmrCache | undefined {\n if (workStore.dev) {\n switch (workUnitStore.type) {\n case 'cache':\n case 'private-cache':\n case 'request':\n return workUnitStore.serverComponentsHmrCache\n case 'prerender':\n case 'prerender-client':\n case 'prerender-runtime':\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'unstable-cache':\n break\n default:\n workUnitStore satisfies never\n }\n }\n\n return undefined\n}\n\n/**\n * Returns a draft mode provider only if draft mode is enabled.\n */\nexport function getDraftModeProviderForCacheScope(\n workStore: WorkStore,\n workUnitStore: WorkUnitStore\n): DraftModeProvider | undefined {\n if (workStore.isDraftMode) {\n switch (workUnitStore.type) {\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n case 'prerender-runtime':\n case 'request':\n return workUnitStore.draftMode\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n break\n default:\n workUnitStore satisfies never\n }\n }\n\n return undefined\n}\n\nexport function getCacheSignal(\n workUnitStore: WorkUnitStore\n): CacheSignal | null {\n switch (workUnitStore.type) {\n case 'prerender':\n case 'prerender-client':\n case 'prerender-runtime':\n return workUnitStore.cacheSignal\n case 'request': {\n // In dev, we might fill caches even during a dynamic request.\n if (workUnitStore.cacheSignal) {\n return workUnitStore.cacheSignal\n }\n // fallthrough\n }\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n return null\n default:\n return workUnitStore satisfies never\n }\n}\n\nexport function getRuntimeStagePromise(\n workUnitStore: WorkUnitStore\n): Promise<void> | null {\n switch (workUnitStore.type) {\n case 'prerender-runtime':\n case 'private-cache':\n return workUnitStore.runtimeStagePromise\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'request':\n case 'cache':\n case 'unstable-cache':\n return null\n default:\n return workUnitStore satisfies never\n }\n}\n","import type { WorkAsyncStorage } from './work-async-storage.external'\nimport { createAsyncLocalStorage } from './async-local-storage'\n\nexport const workAsyncStorageInstance: WorkAsyncStorage =\n createAsyncLocalStorage()\n","import type { AsyncLocalStorage } from 'async_hooks'\nimport type { IncrementalCache } from '../lib/incremental-cache'\nimport type { FetchMetrics } from '../base-http'\nimport type { DeepReadonly } from '../../shared/lib/deep-readonly'\nimport type { AppSegmentConfig } from '../../build/segment-config/app/app-segment-config'\nimport type { AfterContext } from '../after/after-context'\nimport type { CacheLife } from '../use-cache/cache-life'\n\n// Share the instance module in the next-shared layer\nimport { workAsyncStorageInstance } from './work-async-storage-instance' with { 'turbopack-transition': 'next-shared' }\nimport type { LazyResult } from '../lib/lazy-result'\nimport type { DigestedError } from './create-error-handler'\nimport type { ActionRevalidationKind } from '../../shared/lib/action-revalidation-kind'\n\nexport interface WorkStore {\n readonly isStaticGeneration: boolean\n\n /**\n * The page that is being rendered. This relates to the path to the page file.\n */\n readonly page: string\n\n /**\n * The route that is being rendered. This is the page property without the\n * trailing `/page` or `/route` suffix.\n */\n readonly route: string\n\n readonly incrementalCache?: IncrementalCache\n readonly cacheLifeProfiles?: { [profile: string]: CacheLife }\n\n readonly isOnDemandRevalidate?: boolean\n readonly isBuildTimePrerendering?: boolean\n\n /**\n * This is true when:\n * - source maps are generated\n * - source maps are applied\n * - minification is disabled\n */\n readonly hasReadableErrorStacks?: boolean\n\n forceDynamic?: boolean\n fetchCache?: AppSegmentConfig['fetchCache']\n\n forceStatic?: boolean\n dynamicShouldError?: boolean\n pendingRevalidates?: Record<string, Promise<any>>\n pendingRevalidateWrites?: Array<Promise<void>> // This is like pendingRevalidates but isn't used for deduping.\n readonly afterContext: AfterContext\n\n dynamicUsageDescription?: string\n dynamicUsageStack?: string\n\n /**\n * Invalid dynamic usage errors might be caught in userland. We attach them to\n * the work store to ensure we can still fail the build, or show en error in\n * dev mode.\n */\n // TODO: Collect an array of errors, and throw as AggregateError when\n // `serializeError` and the Dev Overlay support it.\n invalidDynamicUsageError?: Error\n\n nextFetchId?: number\n pathWasRevalidated?: ActionRevalidationKind\n\n /**\n * Tags that were revalidated during the current request. They need to be sent\n * to cache handlers to propagate their revalidation.\n */\n pendingRevalidatedTags?: Array<{\n tag: string\n profile?: string | { stale?: number; revalidate?: number; expire?: number }\n }>\n\n /**\n * Tags that were previously revalidated (e.g. by a redirecting server action)\n * and have already been sent to cache handlers. Retrieved cache entries that\n * include any of these tags must be discarded.\n */\n readonly previouslyRevalidatedTags: readonly string[]\n\n /**\n * This map contains lazy results so that we can evaluate them when the first\n * cache entry is read. It allows us to skip refreshing tags if no caches are\n * read at all.\n */\n readonly refreshTagsByCacheKind: Map<string, LazyResult<void>>\n\n fetchMetrics?: FetchMetrics\n shouldTrackFetchMetrics: boolean\n\n isDraftMode?: boolean\n isUnstableNoStore?: boolean\n isPrefetchRequest?: boolean\n\n buildId: string\n\n readonly reactLoadableManifest?: DeepReadonly<\n Record<string, { files: string[] }>\n >\n readonly assetPrefix?: string\n readonly nonce?: string\n\n cacheComponentsEnabled: boolean\n dev: boolean\n\n /**\n * Run the given function inside a clean AsyncLocalStorage snapshot. This is\n * useful when generating cache entries, to ensure that the cache generation\n * cannot read anything from the context we're currently executing in, which\n * might include request-specific things like `cookies()` inside a\n * `React.cache()`.\n */\n runInCleanSnapshot: <R, TArgs extends any[]>(\n fn: (...args: TArgs) => R,\n ...args: TArgs\n ) => R\n\n reactServerErrorsByDigest: Map<string, DigestedError>\n}\n\nexport type WorkAsyncStorage = AsyncLocalStorage<WorkStore>\n\nexport { workAsyncStorageInstance as workAsyncStorage }\n","export const METADATA_BOUNDARY_NAME = '__next_metadata_boundary__'\nexport const VIEWPORT_BOUNDARY_NAME = '__next_viewport_boundary__'\nexport const OUTLET_BOUNDARY_NAME = '__next_outlet_boundary__'\nexport const ROOT_LAYOUT_BOUNDARY_NAME = '__next_root_layout_boundary__'\n","export type ScheduledFn<T = void> = () => T | PromiseLike<T>\nexport type SchedulerFn<T = void> = (cb: ScheduledFn<T>) => void\n\n/**\n * Schedules a function to be called on the next tick after the other promises\n * have been resolved.\n *\n * @param cb the function to schedule\n */\nexport const scheduleOnNextTick = (cb: ScheduledFn<void>) => {\n // We use Promise.resolve().then() here so that the operation is scheduled at\n // the end of the promise job queue, we then add it to the next process tick\n // to ensure it's evaluated afterwards.\n //\n // This was inspired by the implementation of the DataLoader interface: https://github.com/graphql/dataloader/blob/d336bd15282664e0be4b4a657cb796f09bafbc6b/src/index.js#L213-L255\n //\n Promise.resolve().then(() => {\n if (process.env.NEXT_RUNTIME === 'edge') {\n setTimeout(cb, 0)\n } else {\n process.nextTick(cb)\n }\n })\n}\n\n/**\n * Schedules a function to be called using `setImmediate` or `setTimeout` if\n * `setImmediate` is not available (like in the Edge runtime).\n *\n * @param cb the function to schedule\n */\nexport const scheduleImmediate = (cb: ScheduledFn<void>): void => {\n if (process.env.NEXT_RUNTIME === 'edge') {\n setTimeout(cb, 0)\n } else {\n setImmediate(cb)\n }\n}\n\n/**\n * returns a promise than resolves in a future task. There is no guarantee that the task it resolves in\n * will be the next task but if you await it you can at least be sure that the current task is over and\n * most usefully that the entire microtask queue of the current task has been emptied.\n */\nexport function atLeastOneTask() {\n return new Promise<void>((resolve) => scheduleImmediate(resolve))\n}\n\n/**\n * This utility function is extracted to make it easier to find places where we are doing\n * specific timing tricks to try to schedule work after React has rendered. This is especially\n * important at the moment because Next.js uses the edge builds of React which use setTimeout to\n * schedule work when you might expect that something like setImmediate would do the trick.\n *\n * Long term we should switch to the node versions of React rendering when possible and then\n * update this to use setImmediate rather than setTimeout\n */\nexport function waitAtLeastOneReactRenderTask(): Promise<void> {\n if (process.env.NEXT_RUNTIME === 'edge') {\n return new Promise((r) => setTimeout(r, 0))\n } else {\n return new Promise((r) => setImmediate(r))\n }\n}\n","/**\n * The functions provided by this module are used to communicate certain properties\n * about the currently running code so that Next.js can make decisions on how to handle\n * the current execution in different rendering modes such as pre-rendering, resuming, and SSR.\n *\n * Today Next.js treats all code as potentially static. Certain APIs may only make sense when dynamically rendering.\n * Traditionally this meant deopting the entire render to dynamic however with PPR we can now deopt parts\n * of a React tree as dynamic while still keeping other parts static. There are really two different kinds of\n * Dynamic indications.\n *\n * The first is simply an intention to be dynamic. unstable_noStore is an example of this where\n * the currently executing code simply declares that the current scope is dynamic but if you use it\n * inside unstable_cache it can still be cached. This type of indication can be removed if we ever\n * make the default dynamic to begin with because the only way you would ever be static is inside\n * a cache scope which this indication does not affect.\n *\n * The second is an indication that a dynamic data source was read. This is a stronger form of dynamic\n * because it means that it is inappropriate to cache this at all. using a dynamic data source inside\n * unstable_cache should error. If you want to use some dynamic data inside unstable_cache you should\n * read that data outside the cache and pass it in as an argument to the cached function.\n */\n\nimport type { WorkStore } from '../app-render/work-async-storage.external'\nimport type {\n WorkUnitStore,\n PrerenderStoreLegacy,\n PrerenderStoreModern,\n PrerenderStoreModernRuntime,\n} from '../app-render/work-unit-async-storage.external'\n\n// Once postpone is in stable we should switch to importing the postpone export directly\nimport React from 'react'\n\nimport { DynamicServerError } from '../../client/components/hooks-server-context'\nimport { StaticGenBailoutError } from '../../client/components/static-generation-bailout'\nimport {\n getRuntimeStagePromise,\n throwForMissingRequestStore,\n workUnitAsyncStorage,\n} from './work-unit-async-storage.external'\nimport { workAsyncStorage } from '../app-render/work-async-storage.external'\nimport { makeHangingPromise } from '../dynamic-rendering-utils'\nimport {\n METADATA_BOUNDARY_NAME,\n VIEWPORT_BOUNDARY_NAME,\n OUTLET_BOUNDARY_NAME,\n ROOT_LAYOUT_BOUNDARY_NAME,\n} from '../../lib/framework/boundary-constants'\nimport { scheduleOnNextTick } from '../../lib/scheduler'\nimport { BailoutToCSRError } from '../../shared/lib/lazy-dynamic/bailout-to-csr'\nimport { InvariantError } from '../../shared/lib/invariant-error'\n\nconst hasPostpone = typeof React.unstable_postpone === 'function'\n\nexport type DynamicAccess = {\n /**\n * If debugging, this will contain the stack trace of where the dynamic access\n * occurred. This is used to provide more information to the user about why\n * their page is being rendered dynamically.\n */\n stack?: string\n\n /**\n * The expression that was accessed dynamically.\n */\n expression: string\n}\n\n// Stores dynamic reasons used during an RSC render.\nexport type DynamicTrackingState = {\n /**\n * When true, stack information will also be tracked during dynamic access.\n */\n readonly isDebugDynamicAccesses: boolean | undefined\n\n /**\n * The dynamic accesses that occurred during the render.\n */\n readonly dynamicAccesses: Array<DynamicAccess>\n\n syncDynamicErrorWithStack: null | Error\n}\n\n// Stores dynamic reasons used during an SSR render.\nexport type DynamicValidationState = {\n hasSuspenseAboveBody: boolean\n hasDynamicMetadata: boolean\n dynamicMetadata: null | Error\n hasDynamicViewport: boolean\n hasAllowedDynamic: boolean\n dynamicErrors: Array<Error>\n}\n\nexport function createDynamicTrackingState(\n isDebugDynamicAccesses: boolean | undefined\n): DynamicTrackingState {\n return {\n isDebugDynamicAccesses,\n dynamicAccesses: [],\n syncDynamicErrorWithStack: null,\n }\n}\n\nexport function createDynamicValidationState(): DynamicValidationState {\n return {\n hasSuspenseAboveBody: false,\n hasDynamicMetadata: false,\n dynamicMetadata: null,\n hasDynamicViewport: false,\n hasAllowedDynamic: false,\n dynamicErrors: [],\n }\n}\n\nexport function getFirstDynamicReason(\n trackingState: DynamicTrackingState\n): undefined | string {\n return trackingState.dynamicAccesses[0]?.expression\n}\n\n/**\n * This function communicates that the current scope should be treated as dynamic.\n *\n * In most cases this function is a no-op but if called during\n * a PPR prerender it will postpone the current sub-tree and calling\n * it during a normal prerender will cause the entire prerender to abort\n */\nexport function markCurrentScopeAsDynamic(\n store: WorkStore,\n workUnitStore: undefined | Exclude<WorkUnitStore, PrerenderStoreModern>,\n expression: string\n): void {\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'cache':\n case 'unstable-cache':\n // Inside cache scopes, marking a scope as dynamic has no effect,\n // because the outer cache scope creates a cache boundary. This is\n // subtly different from reading a dynamic data source, which is\n // forbidden inside a cache scope.\n return\n case 'private-cache':\n // A private cache scope is already dynamic by definition.\n return\n case 'prerender-legacy':\n case 'prerender-ppr':\n case 'request':\n break\n default:\n workUnitStore satisfies never\n }\n }\n\n // If we're forcing dynamic rendering or we're forcing static rendering, we\n // don't need to do anything here because the entire page is already dynamic\n // or it's static and it should not throw or postpone here.\n if (store.forceDynamic || store.forceStatic) return\n\n if (store.dynamicShouldError) {\n throw new StaticGenBailoutError(\n `Route ${store.route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`\n )\n }\n\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'prerender-ppr':\n return postponeWithTracking(\n store.route,\n expression,\n workUnitStore.dynamicTracking\n )\n case 'prerender-legacy':\n workUnitStore.revalidate = 0\n\n // We aren't prerendering, but we are generating a static page. We need\n // to bail out of static generation.\n const err = new DynamicServerError(\n `Route ${store.route} couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`\n )\n store.dynamicUsageDescription = expression\n store.dynamicUsageStack = err.stack\n\n throw err\n case 'request':\n if (process.env.NODE_ENV !== 'production') {\n workUnitStore.usedDynamic = true\n }\n break\n default:\n workUnitStore satisfies never\n }\n }\n}\n\n/**\n * This function is meant to be used when prerendering without cacheComponents or PPR.\n * When called during a build it will cause Next.js to consider the route as dynamic.\n *\n * @internal\n */\nexport function throwToInterruptStaticGeneration(\n expression: string,\n store: WorkStore,\n prerenderStore: PrerenderStoreLegacy\n): never {\n // We aren't prerendering but we are generating a static page. We need to bail out of static generation\n const err = new DynamicServerError(\n `Route ${store.route} couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`\n )\n\n prerenderStore.revalidate = 0\n\n store.dynamicUsageDescription = expression\n store.dynamicUsageStack = err.stack\n\n throw err\n}\n\n/**\n * This function should be used to track whether something dynamic happened even when\n * we are in a dynamic render. This is useful for Dev where all renders are dynamic but\n * we still track whether dynamic APIs were accessed for helpful messaging\n *\n * @internal\n */\nexport function trackDynamicDataInDynamicRender(workUnitStore: WorkUnitStore) {\n switch (workUnitStore.type) {\n case 'cache':\n case 'unstable-cache':\n // Inside cache scopes, marking a scope as dynamic has no effect,\n // because the outer cache scope creates a cache boundary. This is\n // subtly different from reading a dynamic data source, which is\n // forbidden inside a cache scope.\n return\n case 'private-cache':\n // A private cache scope is already dynamic by definition.\n return\n case 'prerender':\n case 'prerender-runtime':\n case 'prerender-legacy':\n case 'prerender-ppr':\n case 'prerender-client':\n break\n case 'request':\n if (process.env.NODE_ENV !== 'production') {\n workUnitStore.usedDynamic = true\n }\n break\n default:\n workUnitStore satisfies never\n }\n}\n\nfunction abortOnSynchronousDynamicDataAccess(\n route: string,\n expression: string,\n prerenderStore: PrerenderStoreModern\n): void {\n const reason = `Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`\n\n const error = createPrerenderInterruptedError(reason)\n\n prerenderStore.controller.abort(error)\n\n const dynamicTracking = prerenderStore.dynamicTracking\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n // When we aren't debugging, we don't need to create another error for the\n // stack trace.\n stack: dynamicTracking.isDebugDynamicAccesses\n ? new Error().stack\n : undefined,\n expression,\n })\n }\n}\n\nexport function abortOnSynchronousPlatformIOAccess(\n route: string,\n expression: string,\n errorWithStack: Error,\n prerenderStore: PrerenderStoreModern\n): void {\n const dynamicTracking = prerenderStore.dynamicTracking\n abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore)\n // It is important that we set this tracking value after aborting. Aborts are executed\n // synchronously except for the case where you abort during render itself. By setting this\n // value late we can use it to determine if any of the aborted tasks are the task that\n // called the sync IO expression in the first place.\n if (dynamicTracking) {\n if (dynamicTracking.syncDynamicErrorWithStack === null) {\n dynamicTracking.syncDynamicErrorWithStack = errorWithStack\n }\n }\n}\n\n/**\n * use this function when prerendering with cacheComponents. If we are doing a\n * prospective prerender we don't actually abort because we want to discover\n * all caches for the shell. If this is the actual prerender we do abort.\n *\n * This function accepts a prerenderStore but the caller should ensure we're\n * actually running in cacheComponents mode.\n *\n * @internal\n */\nexport function abortAndThrowOnSynchronousRequestDataAccess(\n route: string,\n expression: string,\n errorWithStack: Error,\n prerenderStore: PrerenderStoreModern\n): never {\n const prerenderSignal = prerenderStore.controller.signal\n if (prerenderSignal.aborted === false) {\n // TODO it would be better to move this aborted check into the callsite so we can avoid making\n // the error object when it isn't relevant to the aborting of the prerender however\n // since we need the throw semantics regardless of whether we abort it is easier to land\n // this way. See how this was handled with `abortOnSynchronousPlatformIOAccess` for a closer\n // to ideal implementation\n abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore)\n // It is important that we set this tracking value after aborting. Aborts are executed\n // synchronously except for the case where you abort during render itself. By setting this\n // value late we can use it to determine if any of the aborted tasks are the task that\n // called the sync IO expression in the first place.\n const dynamicTracking = prerenderStore.dynamicTracking\n if (dynamicTracking) {\n if (dynamicTracking.syncDynamicErrorWithStack === null) {\n dynamicTracking.syncDynamicErrorWithStack = errorWithStack\n }\n }\n }\n throw createPrerenderInterruptedError(\n `Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`\n )\n}\n\n/**\n * This component will call `React.postpone` that throws the postponed error.\n */\ntype PostponeProps = {\n reason: string\n route: string\n}\nexport function Postpone({ reason, route }: PostponeProps): never {\n const prerenderStore = workUnitAsyncStorage.getStore()\n const dynamicTracking =\n prerenderStore && prerenderStore.type === 'prerender-ppr'\n ? prerenderStore.dynamicTracking\n : null\n postponeWithTracking(route, reason, dynamicTracking)\n}\n\nexport function postponeWithTracking(\n route: string,\n expression: string,\n dynamicTracking: null | DynamicTrackingState\n): never {\n assertPostpone()\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n // When we aren't debugging, we don't need to create another error for the\n // stack trace.\n stack: dynamicTracking.isDebugDynamicAccesses\n ? new Error().stack\n : undefined,\n expression,\n })\n }\n\n React.unstable_postpone(createPostponeReason(route, expression))\n}\n\nfunction createPostponeReason(route: string, expression: string) {\n return (\n `Route ${route} needs to bail out of prerendering at this point because it used ${expression}. ` +\n `React throws this special object to indicate where. It should not be caught by ` +\n `your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`\n )\n}\n\nexport function isDynamicPostpone(err: unknown) {\n if (\n typeof err === 'object' &&\n err !== null &&\n typeof (err as any).message === 'string'\n ) {\n return isDynamicPostponeReason((err as any).message)\n }\n return false\n}\n\nfunction isDynamicPostponeReason(reason: string) {\n return (\n reason.includes(\n 'needs to bail out of prerendering at this point because it used'\n ) &&\n reason.includes(\n 'Learn more: https://nextjs.org/docs/messages/ppr-caught-error'\n )\n )\n}\n\nif (isDynamicPostponeReason(createPostponeReason('%%%', '^^^')) === false) {\n throw new Error(\n 'Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js'\n )\n}\n\nconst NEXT_PRERENDER_INTERRUPTED = 'NEXT_PRERENDER_INTERRUPTED'\n\nfunction createPrerenderInterruptedError(message: string): Error {\n const error = new Error(message)\n ;(error as any).digest = NEXT_PRERENDER_INTERRUPTED\n return error\n}\n\ntype DigestError = Error & {\n digest: string\n}\n\nexport function isPrerenderInterruptedError(\n error: unknown\n): error is DigestError {\n return (\n typeof error === 'object' &&\n error !== null &&\n (error as any).digest === NEXT_PRERENDER_INTERRUPTED &&\n 'name' in error &&\n 'message' in error &&\n error instanceof Error\n )\n}\n\nexport function accessedDynamicData(\n dynamicAccesses: Array<DynamicAccess>\n): boolean {\n return dynamicAccesses.length > 0\n}\n\nexport function consumeDynamicAccess(\n serverDynamic: DynamicTrackingState,\n clientDynamic: DynamicTrackingState\n): DynamicTrackingState['dynamicAccesses'] {\n // We mutate because we only call this once we are no longer writing\n // to the dynamicTrackingState and it's more efficient than creating a new\n // array.\n serverDynamic.dynamicAccesses.push(...clientDynamic.dynamicAccesses)\n return serverDynamic.dynamicAccesses\n}\n\nexport function formatDynamicAPIAccesses(\n dynamicAccesses: Array<DynamicAccess>\n): string[] {\n return dynamicAccesses\n .filter(\n (access): access is Required<DynamicAccess> =>\n typeof access.stack === 'string' && access.stack.length > 0\n )\n .map(({ expression, stack }) => {\n stack = stack\n .split('\\n')\n // Remove the \"Error: \" prefix from the first line of the stack trace as\n // well as the first 4 lines of the stack trace which is the distance\n // from the user code and the `new Error().stack` call.\n .slice(4)\n .filter((line) => {\n // Exclude Next.js internals from the stack trace.\n if (line.includes('node_modules/next/')) {\n return false\n }\n\n // Exclude anonymous functions from the stack trace.\n if (line.includes(' (<anonymous>)')) {\n return false\n }\n\n // Exclude Node.js internals from the stack trace.\n if (line.includes(' (node:')) {\n return false\n }\n\n return true\n })\n .join('\\n')\n return `Dynamic API Usage Debug - ${expression}:\\n${stack}`\n })\n}\n\nfunction assertPostpone() {\n if (!hasPostpone) {\n throw new Error(\n `Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js`\n )\n }\n}\n\n/**\n * This is a bit of a hack to allow us to abort a render using a Postpone instance instead of an Error which changes React's\n * abort semantics slightly.\n */\nexport function createRenderInBrowserAbortSignal(): AbortSignal {\n const controller = new AbortController()\n controller.abort(new BailoutToCSRError('Render in Browser'))\n return controller.signal\n}\n\n/**\n * In a prerender, we may end up with hanging Promises as inputs due them\n * stalling on connection() or because they're loading dynamic data. In that\n * case we need to abort the encoding of arguments since they'll never complete.\n */\nexport function createHangingInputAbortSignal(\n workUnitStore: WorkUnitStore\n): AbortSignal | undefined {\n switch (workUnitStore.type) {\n case 'prerender':\n case 'prerender-runtime':\n const controller = new AbortController()\n\n if (workUnitStore.cacheSignal) {\n // If we have a cacheSignal it means we're in a prospective render. If\n // the input we're waiting on is coming from another cache, we do want\n // to wait for it so that we can resolve this cache entry too.\n workUnitStore.cacheSignal.inputReady().then(() => {\n controller.abort()\n })\n } else {\n // Otherwise we're in the final render and we should already have all\n // our caches filled.\n // If the prerender uses stages, we have wait until the runtime stage,\n // at which point all runtime inputs will be resolved.\n // (otherwise, a runtime prerender might consider `cookies()` hanging\n // even though they'd resolve in the next task.)\n //\n // We might still be waiting on some microtasks so we\n // wait one tick before giving up. When we give up, we still want to\n // render the content of this cache as deeply as we can so that we can\n // suspend as deeply as possible in the tree or not at all if we don't\n // end up waiting for the input.\n const runtimeStagePromise = getRuntimeStagePromise(workUnitStore)\n if (runtimeStagePromise) {\n runtimeStagePromise.then(() =>\n scheduleOnNextTick(() => controller.abort())\n )\n } else {\n scheduleOnNextTick(() => controller.abort())\n }\n }\n\n return controller.signal\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'request':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n return undefined\n default:\n workUnitStore satisfies never\n }\n}\n\nexport function annotateDynamicAccess(\n expression: string,\n prerenderStore: PrerenderStoreModern\n) {\n const dynamicTracking = prerenderStore.dynamicTracking\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n stack: dynamicTracking.isDebugDynamicAccesses\n ? new Error().stack\n : undefined,\n expression,\n })\n }\n}\n\nexport function useDynamicRouteParams(expression: string) {\n const workStore = workAsyncStorage.getStore()\n const workUnitStore = workUnitAsyncStorage.getStore()\n if (workStore && workUnitStore) {\n switch (workUnitStore.type) {\n case 'prerender-client':\n case 'prerender': {\n const fallbackParams = workUnitStore.fallbackRouteParams\n\n if (fallbackParams && fallbackParams.size > 0) {\n // We are in a prerender with cacheComponents semantics. We are going to\n // hang here and never resolve. This will cause the currently\n // rendering component to effectively be a dynamic hole.\n React.use(\n makeHangingPromise(\n workUnitStore.renderSignal,\n workStore.route,\n expression\n )\n )\n }\n break\n }\n case 'prerender-ppr': {\n const fallbackParams = workUnitStore.fallbackRouteParams\n if (fallbackParams && fallbackParams.size > 0) {\n return postponeWithTracking(\n workStore.route,\n expression,\n workUnitStore.dynamicTracking\n )\n }\n break\n }\n case 'prerender-runtime':\n throw new InvariantError(\n `\\`${expression}\\` was called during a runtime prerender. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`\n )\n case 'cache':\n case 'private-cache':\n throw new InvariantError(\n `\\`${expression}\\` was called inside a cache scope. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`\n )\n case 'prerender-legacy':\n case 'request':\n case 'unstable-cache':\n break\n default:\n workUnitStore satisfies never\n }\n }\n}\n\nexport function useDynamicSearchParams(expression: string) {\n const workStore = workAsyncStorage.getStore()\n const workUnitStore = workUnitAsyncStorage.getStore()\n\n if (!workStore) {\n // We assume pages router context and just return\n return\n }\n\n if (!workUnitStore) {\n throwForMissingRequestStore(expression)\n }\n\n switch (workUnitStore.type) {\n case 'prerender-client': {\n React.use(\n makeHangingPromise(\n workUnitStore.renderSignal,\n workStore.route,\n expression\n )\n )\n break\n }\n case 'prerender-legacy':\n case 'prerender-ppr': {\n if (workStore.forceStatic) {\n return\n }\n throw new BailoutToCSRError(expression)\n }\n case 'prerender':\n case 'prerender-runtime':\n throw new InvariantError(\n `\\`${expression}\\` was called from a Server Component. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`\n )\n case 'cache':\n case 'unstable-cache':\n case 'private-cache':\n throw new InvariantError(\n `\\`${expression}\\` was called inside a cache scope. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`\n )\n case 'request':\n return\n default:\n workUnitStore satisfies never\n }\n}\n\nconst hasSuspenseRegex = /\\n\\s+at Suspense \\(<anonymous>\\)/\n\n// Common implicit body tags that React will treat as body when placed directly in html\nconst bodyAndImplicitTags =\n 'body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6'\n\n// Detects when RootLayoutBoundary (our framework marker component) appears\n// after Suspense in the component stack, indicating the root layout is wrapped\n// within a Suspense boundary. Ensures no body/html/implicit-body components are in between.\n//\n// Example matches:\n// at Suspense (<anonymous>)\n// at __next_root_layout_boundary__ (<anonymous>)\n//\n// Or with other components in between (but not body/html/implicit-body):\n// at Suspense (<anonymous>)\n// at SomeComponent (<anonymous>)\n// at __next_root_layout_boundary__ (<anonymous>)\nconst hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex = new RegExp(\n `\\\\n\\\\s+at Suspense \\\\(<anonymous>\\\\)(?:(?!\\\\n\\\\s+at (?:${bodyAndImplicitTags}) \\\\(<anonymous>\\\\))[\\\\s\\\\S])*?\\\\n\\\\s+at ${ROOT_LAYOUT_BOUNDARY_NAME} \\\\([^\\\\n]*\\\\)`\n)\n\nconst hasMetadataRegex = new RegExp(\n `\\\\n\\\\s+at ${METADATA_BOUNDARY_NAME}[\\\\n\\\\s]`\n)\nconst hasViewportRegex = new RegExp(\n `\\\\n\\\\s+at ${VIEWPORT_BOUNDARY_NAME}[\\\\n\\\\s]`\n)\nconst hasOutletRegex = new RegExp(`\\\\n\\\\s+at ${OUTLET_BOUNDARY_NAME}[\\\\n\\\\s]`)\n\nexport function trackAllowedDynamicAccess(\n workStore: WorkStore,\n componentStack: string,\n dynamicValidation: DynamicValidationState,\n clientDynamic: DynamicTrackingState\n) {\n if (hasOutletRegex.test(componentStack)) {\n // We don't need to track that this is dynamic. It is only so when something else is also dynamic.\n return\n } else if (hasMetadataRegex.test(componentStack)) {\n dynamicValidation.hasDynamicMetadata = true\n return\n } else if (hasViewportRegex.test(componentStack)) {\n dynamicValidation.hasDynamicViewport = true\n return\n } else if (\n hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex.test(\n componentStack\n )\n ) {\n // For Suspense within body, the prelude wouldn't be empty so it wouldn't violate the empty static shells rule.\n // But if you have Suspense above body, the prelude is empty but we allow that because having Suspense\n // is an explicit signal from the user that they acknowledge the empty shell and want dynamic rendering.\n dynamicValidation.hasAllowedDynamic = true\n dynamicValidation.hasSuspenseAboveBody = true\n return\n } else if (hasSuspenseRegex.test(componentStack)) {\n // this error had a Suspense boundary above it so we don't need to report it as a source\n // of disallowed\n dynamicValidation.hasAllowedDynamic = true\n return\n } else if (clientDynamic.syncDynamicErrorWithStack) {\n // This task was the task that called the sync error.\n dynamicValidation.dynamicErrors.push(\n clientDynamic.syncDynamicErrorWithStack\n )\n return\n } else {\n const message =\n `Route \"${workStore.route}\": Uncached data was accessed outside of ` +\n '<Suspense>. This delays the entire page from rendering, resulting in a ' +\n 'slow user experience. Learn more: ' +\n 'https://nextjs.org/docs/messages/blocking-route'\n const error = createErrorWithComponentOrOwnerStack(message, componentStack)\n dynamicValidation.dynamicErrors.push(error)\n return\n }\n}\n\nexport function trackDynamicHoleInRuntimeShell(\n workStore: WorkStore,\n componentStack: string,\n dynamicValidation: DynamicValidationState,\n clientDynamic: DynamicTrackingState\n) {\n if (hasOutletRegex.test(componentStack)) {\n // We don't need to track that this is dynamic. It is only so when something else is also dynamic.\n return\n } else if (hasMetadataRegex.test(componentStack)) {\n const message = `Route \"${workStore.route}\": Uncached data or \\`connection()\\` was accessed inside \\`generateMetadata\\`. Except for this instance, the page would have been entirely prerenderable which may have been the intended behavior. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`\n const error = createErrorWithComponentOrOwnerStack(message, componentStack)\n dynamicValidation.dynamicMetadata = error\n return\n } else if (hasViewportRegex.test(componentStack)) {\n const message = `Route \"${workStore.route}\": Uncached data or \\`connection()\\` was accessed inside \\`generateViewport\\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`\n const error = createErrorWithComponentOrOwnerStack(message, componentStack)\n dynamicValidation.dynamicErrors.push(error)\n return\n } else if (\n hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex.test(\n componentStack\n )\n ) {\n // For Suspense within body, the prelude wouldn't be empty so it wouldn't violate the empty static shells rule.\n // But if you have Suspense above body, the prelude is empty but we allow that because having Suspense\n // is an explicit signal from the user that they acknowledge the empty shell and want dynamic rendering.\n dynamicValidation.hasAllowedDynamic = true\n dynamicValidation.hasSuspenseAboveBody = true\n return\n } else if (hasSuspenseRegex.test(componentStack)) {\n // this error had a Suspense boundary above it so we don't need to report it as a source\n // of disallowed\n dynamicValidation.hasAllowedDynamic = true\n return\n } else if (clientDynamic.syncDynamicErrorWithStack) {\n // This task was the task that called the sync error.\n dynamicValidation.dynamicErrors.push(\n clientDynamic.syncDynamicErrorWithStack\n )\n return\n } else {\n const message = `Route \"${workStore.route}\": Uncached data or \\`connection()\\` was accessed outside of \\`<Suspense>\\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`\n const error = createErrorWithComponentOrOwnerStack(message, componentStack)\n dynamicValidation.dynamicErrors.push(error)\n return\n }\n}\n\nexport function trackDynamicHoleInStaticShell(\n workStore: WorkStore,\n componentStack: string,\n dynamicValidation: DynamicValidationState,\n clientDynamic: DynamicTrackingState\n) {\n if (hasOutletRegex.test(componentStack)) {\n // We don't need to track that this is dynamic. It is only so when something else is also dynamic.\n return\n } else if (hasMetadataRegex.test(componentStack)) {\n const message = `Route \"${workStore.route}\": Runtime data such as \\`cookies()\\`, \\`headers()\\`, \\`params\\`, or \\`searchParams\\` was accessed inside \\`generateMetadata\\` or you have file-based metadata such as icons that depend on dynamic params segments. Except for this instance, the page would have been entirely prerenderable which may have been the intended behavior. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`\n const error = createErrorWithComponentOrOwnerStack(message, componentStack)\n dynamicValidation.dynamicMetadata = error\n return\n } else if (hasViewportRegex.test(componentStack)) {\n const message = `Route \"${workStore.route}\": Runtime data such as \\`cookies()\\`, \\`headers()\\`, \\`params\\`, or \\`searchParams\\` was accessed inside \\`generateViewport\\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`\n const error = createErrorWithComponentOrOwnerStack(message, componentStack)\n dynamicValidation.dynamicErrors.push(error)\n return\n } else if (\n hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex.test(\n componentStack\n )\n ) {\n // For Suspense within body, the prelude wouldn't be empty so it wouldn't violate the empty static shells rule.\n // But if you have Suspense above body, the prelude is empty but we allow that because having Suspense\n // is an explicit signal from the user that they acknowledge the empty shell and want dynamic rendering.\n dynamicValidation.hasAllowedDynamic = true\n dynamicValidation.hasSuspenseAboveBody = true\n return\n } else if (hasSuspenseRegex.test(componentStack)) {\n // this error had a Suspense boundary above it so we don't need to report it as a source\n // of disallowed\n dynamicValidation.hasAllowedDynamic = true\n return\n } else if (clientDynamic.syncDynamicErrorWithStack) {\n // This task was the task that called the sync error.\n dynamicValidation.dynamicErrors.push(\n clientDynamic.syncDynamicErrorWithStack\n )\n return\n } else {\n const message = `Route \"${workStore.route}\": Runtime data such as \\`cookies()\\`, \\`headers()\\`, \\`params\\`, or \\`searchParams\\` was accessed outside of \\`<Suspense>\\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`\n const error = createErrorWithComponentOrOwnerStack(message, componentStack)\n dynamicValidation.dynamicErrors.push(error)\n return\n }\n}\n\n/**\n * In dev mode, we prefer using the owner stack, otherwise the provided\n * component stack is used.\n */\nfunction createErrorWithComponentOrOwnerStack(\n message: string,\n componentStack: string\n) {\n const ownerStack =\n process.env.NODE_ENV !== 'production' && React.captureOwnerStack\n ? React.captureOwnerStack()\n : null\n\n const error = new Error(message)\n // TODO go back to owner stack here if available. This is temporarily using componentStack to get the right\n //\n error.stack = error.name + ': ' + message + (ownerStack || componentStack)\n return error\n}\n\nexport enum PreludeState {\n Full = 0,\n Empty = 1,\n Errored = 2,\n}\n\nexport function logDisallowedDynamicError(\n workStore: WorkStore,\n error: Error\n): void {\n console.error(error)\n\n if (!workStore.dev) {\n if (workStore.hasReadableErrorStacks) {\n console.error(\n `To get a more detailed stack trace and pinpoint the issue, start the app in development mode by running \\`next dev\\`, then open \"${workStore.route}\" in your browser to investigate the error.`\n )\n } else {\n console.error(`To get a more detailed stack trace and pinpoint the issue, try one of the following:\n - Start the app in development mode by running \\`next dev\\`, then open \"${workStore.route}\" in your browser to investigate the error.\n - Rerun the production build with \\`next build --debug-prerender\\` to generate better stack traces.`)\n }\n }\n}\n\nexport function throwIfDisallowedDynamic(\n workStore: WorkStore,\n prelude: PreludeState,\n dynamicValidation: DynamicValidationState,\n serverDynamic: DynamicTrackingState\n): void {\n if (serverDynamic.syncDynamicErrorWithStack) {\n logDisallowedDynamicError(\n workStore,\n serverDynamic.syncDynamicErrorWithStack\n )\n throw new StaticGenBailoutError()\n }\n\n if (prelude !== PreludeState.Full) {\n if (dynamicValidation.hasSuspenseAboveBody) {\n // This route has opted into allowing fully dynamic rendering\n // by including a Suspense boundary above the body. In this case\n // a lack of a shell is not considered disallowed so we simply return\n return\n }\n\n // We didn't have any sync bailouts but there may be user code which\n // blocked the root. We would have captured these during the prerender\n // and can log them here and then terminate the build/validating render\n const dynamicErrors = dynamicValidation.dynamicErrors\n if (dynamicErrors.length > 0) {\n for (let i = 0; i < dynamicErrors.length; i++) {\n logDisallowedDynamicError(workStore, dynamicErrors[i])\n }\n\n throw new StaticGenBailoutError()\n }\n\n // If we got this far then the only other thing that could be blocking\n // the root is dynamic Viewport. If this is dynamic then\n // you need to opt into that by adding a Suspense boundary above the body\n // to indicate your are ok with fully dynamic rendering.\n if (dynamicValidation.hasDynamicViewport) {\n console.error(\n `Route \"${workStore.route}\" has a \\`generateViewport\\` that depends on Request data (\\`cookies()\\`, etc...) or uncached external data (\\`fetch(...)\\`, etc...) without explicitly allowing fully dynamic rendering. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`\n )\n throw new StaticGenBailoutError()\n }\n\n if (prelude === PreludeState.Empty) {\n // If we ever get this far then we messed up the tracking of invalid dynamic.\n // We still adhere to the constraint that you must produce a shell but invite the\n // user to report this as a bug in Next.js.\n console.error(\n `Route \"${workStore.route}\" did not produce a static shell and Next.js was unable to determine a reason. This is a bug in Next.js.`\n )\n throw new StaticGenBailoutError()\n }\n } else {\n if (\n dynamicValidation.hasAllowedDynamic === false &&\n dynamicValidation.hasDynamicMetadata\n ) {\n console.error(\n `Route \"${workStore.route}\" has a \\`generateMetadata\\` that depends on Request data (\\`cookies()\\`, etc...) or uncached external data (\\`fetch(...)\\`, etc...) when the rest of the route does not. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`\n )\n throw new StaticGenBailoutError()\n }\n }\n}\n\nexport function getStaticShellDisallowedDynamicReasons(\n workStore: WorkStore,\n prelude: PreludeState,\n dynamicValidation: DynamicValidationState\n): Array<Error> {\n if (dynamicValidation.hasSuspenseAboveBody) {\n // This route has opted into allowing fully dynamic rendering\n // by including a Suspense boundary above the body. In this case\n // a lack of a shell is not considered disallowed so we simply return\n return []\n }\n\n if (prelude !== PreludeState.Full) {\n // We didn't have any sync bailouts but there may be user code which\n // blocked the root. We would have captured these during the prerender\n // and can log them here and then terminate the build/validating render\n const dynamicErrors = dynamicValidation.dynamicErrors\n if (dynamicErrors.length > 0) {\n return dynamicErrors\n }\n\n if (prelude === PreludeState.Empty) {\n // If we ever get this far then we messed up the tracking of invalid dynamic.\n // We still adhere to the constraint that you must produce a shell but invite the\n // user to report this as a bug in Next.js.\n return [\n new InvariantError(\n `Route \"${workStore.route}\" did not produce a static shell and Next.js was unable to determine a reason.`\n ),\n ]\n }\n } else {\n // We have a prelude but we might still have dynamic metadata without any other dynamic access\n if (\n dynamicValidation.hasAllowedDynamic === false &&\n dynamicValidation.dynamicErrors.length === 0 &&\n dynamicValidation.dynamicMetadata\n ) {\n return [dynamicValidation.dynamicMetadata]\n }\n }\n // We had a non-empty prelude and there are no dynamic holes\n return []\n}\n\nexport function delayUntilRuntimeStage<T>(\n prerenderStore: PrerenderStoreModernRuntime,\n result: Promise<T>\n): Promise<T> {\n if (prerenderStore.runtimeStagePromise) {\n return prerenderStore.runtimeStagePromise.then(() => result)\n }\n return result\n}\n","import { isHangingPromiseRejectionError } from '../../server/dynamic-rendering-utils'\nimport { isPostpone } from '../../server/lib/router-utils/is-postpone'\nimport { isBailoutToCSRError } from '../../shared/lib/lazy-dynamic/bailout-to-csr'\nimport { isNextRouterError } from './is-next-router-error'\nimport {\n isDynamicPostpone,\n isPrerenderInterruptedError,\n} from '../../server/app-render/dynamic-rendering'\nimport { isDynamicServerError } from './hooks-server-context'\n\nexport function unstable_rethrow(error: unknown): void {\n if (\n isNextRouterError(error) ||\n isBailoutToCSRError(error) ||\n isDynamicServerError(error) ||\n isDynamicPostpone(error) ||\n isPostpone(error) ||\n isHangingPromiseRejectionError(error) ||\n isPrerenderInterruptedError(error)\n ) {\n throw error\n }\n\n if (error instanceof Error && 'cause' in error) {\n unstable_rethrow(error.cause)\n }\n}\n","import { isBailoutToCSRError } from '../../shared/lib/lazy-dynamic/bailout-to-csr'\nimport { isNextRouterError } from './is-next-router-error'\n\nexport function unstable_rethrow(error: unknown): void {\n if (isNextRouterError(error) || isBailoutToCSRError(error)) {\n throw error\n }\n\n if (error instanceof Error && 'cause' in error) {\n unstable_rethrow(error.cause)\n }\n}\n","/**\n * This function should be used to rethrow internal Next.js errors so that they can be handled by the framework.\n * When wrapping an API that uses errors to interrupt control flow, you should use this function before you do any error handling.\n * This function will rethrow the error if it is a Next.js error so it can be handled, otherwise it will do nothing.\n *\n * Read more: [Next.js Docs: `unstable_rethrow`](https://nextjs.org/docs/app/api-reference/functions/unstable_rethrow)\n */\nexport const unstable_rethrow =\n typeof window === 'undefined'\n ? (\n require('./unstable-rethrow.server') as typeof import('./unstable-rethrow.server')\n ).unstable_rethrow\n : (\n require('./unstable-rethrow.browser') as typeof import('./unstable-rethrow.browser')\n ).unstable_rethrow\n","import { ReadonlyURLSearchParams } from './readonly-url-search-params'\n\nexport function unstable_isUnrecognizedActionError(): boolean {\n throw new Error(\n '`unstable_isUnrecognizedActionError` can only be used on the client.'\n )\n}\n\nexport { redirect, permanentRedirect } from './redirect'\nexport { RedirectType } from './redirect-error'\nexport { notFound } from './not-found'\nexport { forbidden } from './forbidden'\nexport { unauthorized } from './unauthorized'\nexport { unstable_rethrow } from './unstable-rethrow'\nexport { ReadonlyURLSearchParams }\n","import type { Params } from '../../server/request/params'\n\nimport React, { useContext, useMemo, use } from 'react'\nimport {\n AppRouterContext,\n LayoutRouterContext,\n type AppRouterInstance,\n} from '../../shared/lib/app-router-context.shared-runtime'\nimport {\n SearchParamsContext,\n PathnameContext,\n PathParamsContext,\n NavigationPromisesContext,\n ReadonlyURLSearchParams,\n} from '../../shared/lib/hooks-client-context.shared-runtime'\nimport {\n computeSelectedLayoutSegment,\n getSelectedLayoutSegmentPath,\n} from '../../shared/lib/segment'\n\nconst useDynamicRouteParams =\n typeof window === 'undefined'\n ? (\n require('../../server/app-render/dynamic-rendering') as typeof import('../../server/app-render/dynamic-rendering')\n ).useDynamicRouteParams\n : undefined\n\nconst useDynamicSearchParams =\n typeof window === 'undefined'\n ? (\n require('../../server/app-render/dynamic-rendering') as typeof import('../../server/app-render/dynamic-rendering')\n ).useDynamicSearchParams\n : undefined\n\n/**\n * A [Client Component](https://nextjs.org/docs/app/building-your-application/rendering/client-components) hook\n * that lets you *read* the current URL's search parameters.\n *\n * Learn more about [`URLSearchParams` on MDN](https://developer.mozilla.org/docs/Web/API/URLSearchParams)\n *\n * @example\n * ```ts\n * \"use client\"\n * import { useSearchParams } from 'next/navigation'\n *\n * export default function Page() {\n * const searchParams = useSearchParams()\n * searchParams.get('foo') // returns 'bar' when ?foo=bar\n * // ...\n * }\n * ```\n *\n * Read more: [Next.js Docs: `useSearchParams`](https://nextjs.org/docs/app/api-reference/functions/use-search-params)\n */\n// Client components API\nexport function useSearchParams(): ReadonlyURLSearchParams {\n useDynamicSearchParams?.('useSearchParams()')\n\n const searchParams = useContext(SearchParamsContext)\n\n // In the case where this is `null`, the compat types added in\n // `next-env.d.ts` will add a new overload that changes the return type to\n // include `null`.\n const readonlySearchParams = useMemo((): ReadonlyURLSearchParams => {\n if (!searchParams) {\n // When the router is not ready in pages, we won't have the search params\n // available.\n return null!\n }\n\n return new ReadonlyURLSearchParams(searchParams)\n }, [searchParams])\n\n // Instrument with Suspense DevTools (dev-only)\n if (process.env.NODE_ENV !== 'production' && 'use' in React) {\n const navigationPromises = use(NavigationPromisesContext)\n if (navigationPromises) {\n return use(navigationPromises.searchParams)\n }\n }\n\n return readonlySearchParams\n}\n\n/**\n * A [Client Component](https://nextjs.org/docs/app/building-your-application/rendering/client-components) hook\n * that lets you read the current URL's pathname.\n *\n * @example\n * ```ts\n * \"use client\"\n * import { usePathname } from 'next/navigation'\n *\n * export default function Page() {\n * const pathname = usePathname() // returns \"/dashboard\" on /dashboard?foo=bar\n * // ...\n * }\n * ```\n *\n * Read more: [Next.js Docs: `usePathname`](https://nextjs.org/docs/app/api-reference/functions/use-pathname)\n */\n// Client components API\nexport function usePathname(): string {\n useDynamicRouteParams?.('usePathname()')\n\n // In the case where this is `null`, the compat types added in `next-env.d.ts`\n // will add a new overload that changes the return type to include `null`.\n const pathname = useContext(PathnameContext) as string\n\n // Instrument with Suspense DevTools (dev-only)\n if (process.env.NODE_ENV !== 'production' && 'use' in React) {\n const navigationPromises = use(NavigationPromisesContext)\n if (navigationPromises) {\n return use(navigationPromises.pathname)\n }\n }\n\n return pathname\n}\n\n// Client components API\nexport {\n ServerInsertedHTMLContext,\n useServerInsertedHTML,\n} from '../../shared/lib/server-inserted-html.shared-runtime'\n\n/**\n *\n * This hook allows you to programmatically change routes inside [Client Component](https://nextjs.org/docs/app/building-your-application/rendering/client-components).\n *\n * @example\n * ```ts\n * \"use client\"\n * import { useRouter } from 'next/navigation'\n *\n * export default function Page() {\n * const router = useRouter()\n * // ...\n * router.push('/dashboard') // Navigate to /dashboard\n * }\n * ```\n *\n * Read more: [Next.js Docs: `useRouter`](https://nextjs.org/docs/app/api-reference/functions/use-router)\n */\n// Client components API\nexport function useRouter(): AppRouterInstance {\n const router = useContext(AppRouterContext)\n if (router === null) {\n throw new Error('invariant expected app router to be mounted')\n }\n\n return router\n}\n\n/**\n * A [Client Component](https://nextjs.org/docs/app/building-your-application/rendering/client-components) hook\n * that lets you read a route's dynamic params filled in by the current URL.\n *\n * @example\n * ```ts\n * \"use client\"\n * import { useParams } from 'next/navigation'\n *\n * export default function Page() {\n * // on /dashboard/[team] where pathname is /dashboard/nextjs\n * const { team } = useParams() // team === \"nextjs\"\n * }\n * ```\n *\n * Read more: [Next.js Docs: `useParams`](https://nextjs.org/docs/app/api-reference/functions/use-params)\n */\n// Client components API\nexport function useParams<T extends Params = Params>(): T {\n useDynamicRouteParams?.('useParams()')\n\n const params = useContext(PathParamsContext) as T\n\n // Instrument with Suspense DevTools (dev-only)\n if (process.env.NODE_ENV !== 'production' && 'use' in React) {\n const navigationPromises = use(NavigationPromisesContext)\n if (navigationPromises) {\n return use(navigationPromises.params) as T\n }\n }\n\n return params\n}\n\n/**\n * A [Client Component](https://nextjs.org/docs/app/building-your-application/rendering/client-components) hook\n * that lets you read the active route segments **below** the Layout it is called from.\n *\n * @example\n * ```ts\n * 'use client'\n *\n * import { useSelectedLayoutSegments } from 'next/navigation'\n *\n * export default function ExampleClientComponent() {\n * const segments = useSelectedLayoutSegments()\n *\n * return (\n * <ul>\n * {segments.map((segment, index) => (\n * <li key={index}>{segment}</li>\n * ))}\n * </ul>\n * )\n * }\n * ```\n *\n * Read more: [Next.js Docs: `useSelectedLayoutSegments`](https://nextjs.org/docs/app/api-reference/functions/use-selected-layout-segments)\n */\n// Client components API\nexport function useSelectedLayoutSegments(\n parallelRouteKey: string = 'children'\n): string[] {\n useDynamicRouteParams?.('useSelectedLayoutSegments()')\n\n const context = useContext(LayoutRouterContext)\n // @ts-expect-error This only happens in `pages`. Type is overwritten in navigation.d.ts\n if (!context) return null\n\n // Instrument with Suspense DevTools (dev-only)\n if (process.env.NODE_ENV !== 'production' && 'use' in React) {\n const navigationPromises = use(NavigationPromisesContext)\n if (navigationPromises) {\n const promise =\n navigationPromises.selectedLayoutSegmentsPromises?.get(parallelRouteKey)\n if (promise) {\n // We should always have a promise here, but if we don't, it's not worth erroring over.\n // We just won't be able to instrument it, but can still provide the value.\n return use(promise)\n }\n }\n }\n\n return getSelectedLayoutSegmentPath(context.parentTree, parallelRouteKey)\n}\n\n/**\n * A [Client Component](https://nextjs.org/docs/app/building-your-application/rendering/client-components) hook\n * that lets you read the active route segment **one level below** the Layout it is called from.\n *\n * @example\n * ```ts\n * 'use client'\n * import { useSelectedLayoutSegment } from 'next/navigation'\n *\n * export default function ExampleClientComponent() {\n * const segment = useSelectedLayoutSegment()\n *\n * return <p>Active segment: {segment}</p>\n * }\n * ```\n *\n * Read more: [Next.js Docs: `useSelectedLayoutSegment`](https://nextjs.org/docs/app/api-reference/functions/use-selected-layout-segment)\n */\n// Client components API\nexport function useSelectedLayoutSegment(\n parallelRouteKey: string = 'children'\n): string | null {\n useDynamicRouteParams?.('useSelectedLayoutSegment()')\n const navigationPromises = useContext(NavigationPromisesContext)\n const selectedLayoutSegments = useSelectedLayoutSegments(parallelRouteKey)\n\n // Instrument with Suspense DevTools (dev-only)\n if (\n process.env.NODE_ENV !== 'production' &&\n navigationPromises &&\n 'use' in React\n ) {\n const promise =\n navigationPromises.selectedLayoutSegmentPromises?.get(parallelRouteKey)\n if (promise) {\n // We should always have a promise here, but if we don't, it's not worth erroring over.\n // We just won't be able to instrument it, but can still provide the value.\n return use(promise)\n }\n }\n\n return computeSelectedLayoutSegment(selectedLayoutSegments, parallelRouteKey)\n}\n\nexport { unstable_isUnrecognizedActionError } from './unrecognized-action-error'\n\n// Shared components APIs\nexport {\n // We need the same class that was used to instantiate the context value\n // Otherwise instanceof checks will fail in usercode\n ReadonlyURLSearchParams,\n}\nexport {\n notFound,\n forbidden,\n unauthorized,\n redirect,\n permanentRedirect,\n RedirectType,\n unstable_rethrow,\n} from './navigation.react-server'\n","module.exports = require('./dist/client/components/navigation')\n","export type ThemeName = 'default' | 'minimalistic';\n\nexport interface ButtonTheme {\n primary: string;\n secondary: string;\n success: string;\n danger: string;\n warning: string;\n info: string;\n outline: string;\n ghost: string;\n link: string;\n}\n\nexport interface SelectTheme {\n base: string;\n sizes: {\n sm: string;\n md: string;\n lg: string;\n xl: string;\n };\n disabled: string;\n}\n\nexport interface Theme {\n name: ThemeName;\n button: {\n base: string;\n variants: ButtonTheme;\n sizes: {\n sm: string;\n md: string;\n lg: string;\n xl: string;\n };\n disabled: string;\n };\n select: SelectTheme;\n}\n\nexport const themes: Record<ThemeName, Theme> = {\n default: {\n name: 'default',\n button: {\n base: 'font-medium rounded-md transition-all duration-150 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[hsl(var(--ring))]/50 active:scale-[0.98] gap-2',\n variants: {\n primary: 'bg-[hsl(var(--primary))] text-[hsl(var(--primary-foreground))] hover:bg-[hsl(var(--primary))]/90 shadow-sm',\n secondary: 'bg-[hsl(var(--secondary))] text-[hsl(var(--secondary-foreground))] hover:bg-[hsl(var(--secondary))]/80 border border-[hsl(var(--border))]',\n success: 'bg-[hsl(var(--success))] text-[hsl(var(--success-foreground))] hover:bg-[hsl(var(--success))]/90 shadow-sm',\n danger: 'bg-[hsl(var(--destructive))] text-[hsl(var(--destructive-foreground))] hover:bg-[hsl(var(--destructive))]/90 shadow-sm',\n warning: 'bg-[hsl(var(--warning))] text-[hsl(var(--warning-foreground))] hover:bg-[hsl(var(--warning))]/90 shadow-sm',\n info: 'bg-[hsl(var(--info))] text-[hsl(var(--info-foreground))] hover:bg-[hsl(var(--info))]/90 shadow-sm',\n outline: 'border border-[hsl(var(--border))] bg-transparent hover:bg-[hsl(var(--accent))] text-[hsl(var(--foreground))]',\n ghost: 'bg-transparent hover:bg-[hsl(var(--accent))] text-[hsl(var(--foreground))]',\n link: 'bg-transparent text-[hsl(var(--primary))] underline-offset-4 hover:underline !p-0 !h-auto !min-h-0 shadow-none',\n },\n sizes: {\n sm: 'px-3 py-1.5 text-sm',\n md: 'px-4 py-2.5 text-base',\n lg: 'px-4 py-3 text-lg',\n xl: 'px-6 py-3.5 text-lg',\n },\n disabled: 'pointer-events-none opacity-50',\n },\n select: {\n base: 'w-full appearance-none rounded-md border border-[hsl(var(--input))] bg-transparent text-[hsl(var(--foreground))] text-left transition-colors duration-150 focus:outline-none focus:ring-1 focus:ring-[hsl(var(--ring))]/50 focus:border-[hsl(var(--ring))] hover:border-[hsl(var(--muted-foreground))] pr-10 cursor-pointer',\n sizes: {\n sm: 'px-3 py-1.5 text-sm',\n md: 'px-4 py-2.5 text-base',\n lg: 'px-4 py-3 text-lg',\n xl: 'px-4 py-3.5 text-lg',\n },\n disabled: 'pointer-events-none opacity-50 bg-[hsl(var(--muted))]',\n },\n },\n minimalistic: {\n name: 'minimalistic',\n button: {\n base: 'font-normal rounded-none transition-colors duration-200 focus:outline-none border-2 gap-2',\n variants: {\n primary: 'bg-transparent border-white text-white hover:bg-white hover:text-black',\n secondary: 'bg-transparent border-gray-400 text-gray-400 hover:bg-gray-400 hover:text-black',\n success: 'bg-transparent border-green-400 text-green-400 hover:bg-green-400 hover:text-black',\n danger: 'bg-transparent border-red-400 text-red-400 hover:bg-red-400 hover:text-black',\n warning: 'bg-transparent border-yellow-400 text-yellow-400 hover:bg-yellow-400 hover:text-black',\n info: 'bg-transparent border-blue-400 text-blue-400 hover:bg-blue-400 hover:text-black',\n outline: 'bg-transparent border-white text-white hover:bg-white hover:text-black',\n ghost: 'bg-transparent border-transparent text-white hover:bg-white/10',\n link: 'bg-transparent border-transparent text-white underline-offset-4 hover:underline !p-0 !h-auto !min-h-0',\n },\n sizes: {\n sm: 'px-4 py-2 text-sm uppercase tracking-wide min-h-[36px]',\n md: 'px-6 py-3 text-base uppercase tracking-wide min-h-[48px]',\n lg: 'px-8 py-4 text-lg uppercase tracking-wider min-h-[60px]',\n xl: 'px-10 py-5 text-xl uppercase tracking-wider min-h-[72px]',\n },\n disabled: 'opacity-30 cursor-not-allowed hover:bg-transparent',\n },\n select: {\n base: 'w-full appearance-none rounded-none border-2 border-white bg-transparent text-white text-left transition-colors duration-200 focus:outline-none pr-10 cursor-pointer placeholder:text-gray-500',\n sizes: {\n sm: 'px-4 py-2 text-sm uppercase tracking-wide',\n md: 'px-4 py-3 text-base uppercase tracking-wide',\n lg: 'px-4 py-4 text-lg uppercase tracking-wider',\n xl: 'px-5 py-5 text-xl uppercase tracking-wider',\n },\n disabled: 'opacity-30 cursor-not-allowed',\n },\n },\n};\n","\"use client\";\n\nimport React, { createContext, useContext, useState, useEffect } from 'react';\nimport { themes, ThemeName, Theme } from './themes';\n\nexport type ColorMode = 'light' | 'dark' | 'system';\n\ninterface ThemeContextValue {\n theme: Theme;\n themeName: ThemeName;\n setTheme: (themeName: ThemeName) => void;\n colorMode: ColorMode;\n setColorMode: (mode: ColorMode) => void;\n toggleColorMode: () => void;\n resolvedColorMode: 'light' | 'dark';\n}\n\nconst ThemeContext = createContext<ThemeContextValue | undefined>(undefined);\n\nexport function useTheme() {\n const context = useContext(ThemeContext);\n\n // Return default values if no ThemeProvider is present (graceful fallback)\n if (!context) {\n const warnOnce = () => {\n if (process.env.NODE_ENV === 'development') {\n console.warn('useTheme: Component used outside ThemeProvider. Using default theme. Wrap your app with <ThemeProvider> for full functionality.');\n }\n };\n\n return {\n theme: themes.default,\n themeName: 'default' as ThemeName,\n setTheme: () => warnOnce(),\n colorMode: 'light' as ColorMode,\n setColorMode: () => warnOnce(),\n toggleColorMode: () => warnOnce(),\n resolvedColorMode: 'light' as 'light' | 'dark',\n };\n }\n\n return context;\n}\n\ninterface ThemeProviderProps {\n children: React.ReactNode;\n defaultTheme?: ThemeName;\n defaultColorMode?: ColorMode;\n}\n\nexport function ThemeProvider({\n children,\n defaultTheme = 'default',\n defaultColorMode = 'system'\n}: ThemeProviderProps) {\n const [mounted, setMounted] = useState(false);\n\n // Initialize from defaults (will sync with actual values after mount)\n const [themeName, setThemeNameState] = useState<ThemeName>(defaultTheme);\n const [colorMode, setColorModeState] = useState<ColorMode>(defaultColorMode);\n const [resolvedColorMode, setResolvedColorMode] = useState<'light' | 'dark'>('light');\n\n // Sync with actual values after mount to avoid hydration mismatch\n useEffect(() => {\n setMounted(true);\n\n // Read actual values from localStorage and DOM\n const storedTheme = localStorage.getItem('lite-ui-theme') as ThemeName;\n const storedColorMode = localStorage.getItem('lite-ui-color-mode') as ColorMode;\n const currentColorMode = document.documentElement.getAttribute('data-color-mode') as 'light' | 'dark';\n\n if (storedTheme) setThemeNameState(storedTheme);\n if (storedColorMode) setColorModeState(storedColorMode);\n if (currentColorMode) setResolvedColorMode(currentColorMode);\n }, []);\n\n const theme = themes[themeName];\n\n // Update theme\n const setTheme = (newThemeName: ThemeName) => {\n setThemeNameState(newThemeName);\n if (typeof window !== 'undefined') {\n localStorage.setItem('lite-ui-theme', newThemeName);\n document.documentElement.setAttribute('data-theme', newThemeName);\n }\n };\n\n // Update color mode\n const setColorMode = (mode: ColorMode) => {\n if (typeof window === 'undefined') return;\n\n setColorModeState(mode);\n localStorage.setItem('lite-ui-color-mode', mode);\n\n let resolved: 'light' | 'dark';\n if (mode === 'system') {\n resolved = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n } else {\n resolved = mode;\n }\n\n setResolvedColorMode(resolved);\n document.documentElement.setAttribute('data-color-mode', resolved);\n\n if (resolved === 'dark') {\n document.documentElement.classList.add('dark');\n } else {\n document.documentElement.classList.remove('dark');\n }\n };\n\n // Toggle between light and dark mode\n const toggleColorMode = () => {\n if (colorMode === 'system') {\n // If currently system, toggle to opposite of current resolved mode\n setColorMode(resolvedColorMode === 'dark' ? 'light' : 'dark');\n } else {\n // Toggle between light and dark\n setColorMode(colorMode === 'dark' ? 'light' : 'dark');\n }\n };\n\n // Listen for system theme changes\n useEffect(() => {\n if (!mounted) return;\n\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n\n const handleChange = (e: MediaQueryListEvent) => {\n if (colorMode === 'system') {\n const resolved = e.matches ? 'dark' : 'light';\n setResolvedColorMode(resolved);\n document.documentElement.setAttribute('data-color-mode', resolved);\n\n if (resolved === 'dark') {\n document.documentElement.classList.add('dark');\n } else {\n document.documentElement.classList.remove('dark');\n }\n }\n };\n\n mediaQuery.addEventListener('change', handleChange);\n return () => mediaQuery.removeEventListener('change', handleChange);\n }, [mounted, colorMode]);\n\n return (\n <ThemeContext.Provider value={{\n theme,\n themeName,\n setTheme,\n colorMode,\n setColorMode,\n toggleColorMode,\n resolvedColorMode\n }}>\n {children}\n </ThemeContext.Provider>\n );\n}\n","\"use client\";\n\nimport React from 'react';\nimport { useTheme } from '../theme/ThemeProvider';\n\nexport interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info' | 'outline' | 'ghost' | 'link';\n size?: 'sm' | 'md' | 'lg' | 'xl';\n children: React.ReactNode;\n leftIcon?: React.ReactNode;\n rightIcon?: React.ReactNode;\n iconOnly?: boolean;\n}\n\nexport const Button: React.FC<ButtonProps> = ({\n variant = 'primary',\n size = 'md',\n className = '',\n children,\n disabled,\n leftIcon,\n rightIcon,\n iconOnly = false,\n ...props\n}) => {\n const { theme } = useTheme();\n\n const baseStyles = theme.button.base;\n const variantStyles = theme.button.variants[variant];\n const sizeStyles = theme.button.sizes[size];\n const disabledStyles = disabled ? theme.button.disabled : '';\n\n // Adjust padding for icon-only buttons - remove horizontal padding and make square\n const iconOnlyStyles = iconOnly ? '!p-0 aspect-square' : '';\n\n const classes = `inline-flex items-center justify-center ${baseStyles} ${variantStyles} ${sizeStyles} ${disabledStyles} ${iconOnlyStyles} ${className}`.trim();\n\n return (\n <button\n className={classes}\n disabled={disabled}\n {...props}\n >\n {iconOnly ? (\n children\n ) : (\n <>\n {leftIcon && <span className=\"inline-flex shrink-0\">{leftIcon}</span>}\n {children && <span className=\"inline-flex items-center\">{children}</span>}\n {rightIcon && <span className=\"inline-flex shrink-0\">{rightIcon}</span>}\n </>\n )}\n </button>\n );\n};\n","\"use client\";\n\nimport React, { useState, useRef, useEffect } from 'react';\nimport { useTheme } from '../theme/ThemeProvider';\n\nexport interface SelectOption {\n value: string;\n label: string;\n}\n\nexport interface SelectProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'size' | 'onChange' | 'defaultValue'> {\n options: SelectOption[];\n size?: 'sm' | 'md' | 'lg' | 'xl';\n placeholder?: string;\n disabled?: boolean;\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n label?: string;\n error?: string;\n helperText?: string;\n searchable?: boolean;\n searchPlaceholder?: string;\n}\n\nexport const Select: React.FC<SelectProps> = ({\n options,\n size = 'md',\n placeholder,\n className = '',\n disabled,\n value: controlledValue,\n defaultValue,\n onChange,\n label,\n error,\n helperText,\n searchable = false,\n searchPlaceholder = 'Search...',\n ...props\n}) => {\n const { theme, themeName } = useTheme();\n const [isOpen, setIsOpen] = useState(false);\n const [internalValue, setInternalValue] = useState(defaultValue || '');\n const [searchQuery, setSearchQuery] = useState('');\n const dropdownRef = useRef<HTMLDivElement>(null);\n const searchInputRef = useRef<HTMLInputElement>(null);\n\n // Use controlled value if provided, otherwise use internal state\n const value = controlledValue !== undefined ? controlledValue : internalValue;\n\n // Find the selected option\n const selectedOption = options.find(opt => opt.value === value);\n const displayText = selectedOption ? selectedOption.label : placeholder || 'Select...';\n\n // Filter options based on search query\n const filteredOptions = searchable && searchQuery\n ? options.filter(option =>\n option.label.toLowerCase().includes(searchQuery.toLowerCase())\n )\n : options;\n\n // Close dropdown when clicking outside\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) {\n setIsOpen(false);\n setSearchQuery('');\n }\n };\n\n if (isOpen) {\n document.addEventListener('mousedown', handleClickOutside);\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }\n }, [isOpen]);\n\n // Focus search input when dropdown opens\n useEffect(() => {\n if (isOpen && searchable && searchInputRef.current) {\n searchInputRef.current.focus();\n }\n }, [isOpen, searchable]);\n\n const handleSelect = (optionValue: string) => {\n if (disabled) return;\n\n setInternalValue(optionValue);\n onChange?.(optionValue);\n setIsOpen(false);\n setSearchQuery('');\n };\n\n const handleToggle = () => {\n if (!disabled) {\n setIsOpen(!isOpen);\n }\n };\n\n const baseStyles = theme.select.base;\n const sizeStyles = theme.select.sizes[size];\n const disabledStyles = disabled ? theme.select.disabled : '';\n const errorStyles = error ? 'border-[hsl(var(--destructive))] focus:ring-[hsl(var(--destructive))]' : '';\n\n const buttonClasses = `${baseStyles} ${sizeStyles} ${disabledStyles} ${errorStyles}`.trim();\n\n // Icon color based on theme\n const iconColor = themeName === 'minimalistic'\n ? (disabled ? 'text-[hsl(var(--muted-foreground))]' : 'text-white')\n : 'text-[hsl(var(--muted-foreground))]';\n\n // Dropdown menu styles based on theme\n const dropdownBaseStyles = themeName === 'minimalistic'\n ? 'bg-black border-2 border-white'\n : 'bg-[hsl(var(--popover))] border border-[hsl(var(--border))] shadow-lg';\n\n const optionBaseStyles = themeName === 'minimalistic'\n ? 'text-white hover:bg-white hover:text-black transition-colors duration-200'\n : 'text-[hsl(var(--popover-foreground))] hover:bg-[hsl(var(--accent))] transition-colors duration-150';\n\n const optionSizeStyles = {\n sm: 'px-4 py-2 text-sm',\n md: 'px-4 py-2.5 text-base',\n lg: 'px-4 py-3 text-lg',\n xl: 'px-5 py-4 text-xl',\n }[size];\n\n return (\n <div className={`w-full ${className}`}>\n {label && (\n <label className=\"block text-sm font-medium text-[hsl(var(--foreground))] mb-1.5\">\n {label}\n </label>\n )}\n <div className=\"relative inline-block w-full\" ref={dropdownRef} {...props}>\n {/* Custom button that looks like select */}\n <button\n type=\"button\"\n className={buttonClasses}\n onClick={handleToggle}\n disabled={disabled}\n >\n <span className={!selectedOption && placeholder ? 'opacity-50' : ''}>\n {displayText}\n </span>\n </button>\n\n {/* Chevron icon */}\n <div className=\"pointer-events-none absolute inset-y-0 right-0 flex items-center pr-4\">\n <svg\n className={`h-5 w-5 transition-transform duration-200 ${iconColor} ${isOpen ? 'rotate-180' : ''}`}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </div>\n\n {/* Custom dropdown menu */}\n {isOpen && !disabled && (\n <div\n className={`absolute z-50 w-full mt-1 ${dropdownBaseStyles} rounded-md overflow-hidden`}\n >\n {/* Search input */}\n {searchable && (\n <div className={`sticky top-0 ${themeName === 'minimalistic' ? 'bg-black border-b-2 border-white' : 'bg-[hsl(var(--popover))] border-b border-[hsl(var(--border))]'}`}>\n <input\n ref={searchInputRef}\n type=\"text\"\n className={`w-full ${optionSizeStyles} ${themeName === 'minimalistic' ? 'bg-black text-white placeholder-[hsl(var(--muted-foreground))] focus:outline-none' : 'bg-transparent text-[hsl(var(--popover-foreground))] placeholder:text-[hsl(var(--muted-foreground))] focus:outline-none'}`}\n placeholder={searchPlaceholder}\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n onClick={(e) => e.stopPropagation()}\n />\n </div>\n )}\n\n {/* Options list */}\n <style>\n {`\n .select-dropdown-scroll {\n scrollbar-width: thin;\n scrollbar-color: rgba(156, 163, 175, 0.5) transparent;\n }\n .select-dropdown-scroll::-webkit-scrollbar {\n width: 8px;\n }\n .select-dropdown-scroll::-webkit-scrollbar-track {\n background: transparent;\n }\n .select-dropdown-scroll::-webkit-scrollbar-thumb {\n background-color: rgba(156, 163, 175, 0.5);\n border-radius: 4px;\n border: 2px solid transparent;\n background-clip: padding-box;\n }\n .select-dropdown-scroll::-webkit-scrollbar-thumb:hover {\n background-color: rgba(156, 163, 175, 0.7);\n }\n .dark .select-dropdown-scroll {\n scrollbar-color: rgba(75, 85, 99, 0.6) transparent;\n }\n .dark .select-dropdown-scroll::-webkit-scrollbar-thumb {\n background-color: rgba(75, 85, 99, 0.6);\n }\n .dark .select-dropdown-scroll::-webkit-scrollbar-thumb:hover {\n background-color: rgba(75, 85, 99, 0.8);\n }\n `}\n </style>\n <div\n className=\"select-dropdown-scroll\"\n style={{ maxHeight: '300px', overflowY: 'auto' }}\n >\n {filteredOptions.length > 0 ? (\n filteredOptions.map((option) => (\n <div\n key={option.value}\n className={`${optionBaseStyles} ${optionSizeStyles} cursor-pointer ${\n value === option.value ? (themeName === 'minimalistic' ? 'bg-white text-black' : 'bg-[hsl(var(--accent))]') : ''\n }`}\n onClick={() => handleSelect(option.value)}\n >\n {option.label}\n </div>\n ))\n ) : (\n <div className={`${optionSizeStyles} ${themeName === 'minimalistic' ? 'text-[hsl(var(--muted-foreground))]' : 'text-[hsl(var(--muted-foreground))]'} text-center`}>\n No results found\n </div>\n )}\n </div>\n </div>\n )}\n </div>\n {error && (\n <p className=\"mt-1.5 text-sm text-[hsl(var(--destructive))]\">{error}</p>\n )}\n {helperText && !error && (\n <p className=\"mt-1.5 text-sm text-[hsl(var(--muted-foreground))]\">{helperText}</p>\n )}\n </div>\n );\n};\n","\"use client\";\n\nimport React, { createContext, useContext, useState, ReactNode } from 'react';\n\nexport interface SidebarContextValue {\n isOpen: boolean;\n isMobile: boolean;\n open: () => void;\n close: () => void;\n toggle: () => void;\n setIsMobile: (isMobile: boolean) => void;\n}\n\nconst SidebarContext = createContext<SidebarContextValue | undefined>(undefined);\n\nexport interface SidebarProviderProps {\n children: ReactNode;\n defaultOpen?: boolean;\n}\n\nexport const SidebarProvider: React.FC<SidebarProviderProps> = ({\n children,\n defaultOpen = false,\n}) => {\n const [isOpen, setIsOpen] = useState(defaultOpen);\n const [isMobile, setIsMobile] = useState(false);\n\n const open = () => setIsOpen(true);\n const close = () => setIsOpen(false);\n const toggle = () => setIsOpen(prev => !prev);\n\n const value: SidebarContextValue = {\n isOpen,\n isMobile,\n open,\n close,\n toggle,\n setIsMobile,\n };\n\n return (\n <SidebarContext.Provider value={value}>\n {children}\n </SidebarContext.Provider>\n );\n};\n\nexport const useSidebar = (): SidebarContextValue => {\n const context = useContext(SidebarContext);\n if (!context) {\n throw new Error('useSidebar must be used within a SidebarProvider');\n }\n return context;\n};\n","\"use client\";\n\nimport React, { forwardRef } from 'react';\nimport { useTheme } from '../theme/ThemeProvider';\n\nexport interface TextInputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'> {\n label?: string;\n error?: string;\n helperText?: string;\n size?: 'sm' | 'md' | 'lg';\n fullWidth?: boolean;\n leftIcon?: React.ReactNode;\n rightIcon?: React.ReactNode;\n}\n\nconst sizeClasses = {\n sm: 'px-3 py-1.5 text-sm',\n md: 'px-4 py-2.5 text-base',\n lg: 'px-4 py-3 text-lg',\n};\n\nexport const TextInput = forwardRef<HTMLInputElement, TextInputProps>(\n (\n {\n label,\n error,\n helperText,\n size = 'md',\n fullWidth = false,\n leftIcon,\n rightIcon,\n className = '',\n disabled,\n ...props\n },\n ref\n ) => {\n const { theme, themeName } = useTheme();\n\n const baseStyles = 'w-full appearance-none rounded-md border border-[hsl(var(--input))] bg-transparent text-[hsl(var(--foreground))] transition-colors duration-150 focus:outline-none focus:ring-1 focus:ring-[hsl(var(--ring))]/50 focus:border-[hsl(var(--ring))] hover:border-[hsl(var(--muted-foreground))] placeholder:text-[hsl(var(--muted-foreground))]';\n const sizeStyle = sizeClasses[size];\n const errorStyles = error ? 'border-[hsl(var(--destructive))] focus:ring-[hsl(var(--destructive))]' : '';\n const disabledStyles = disabled ? 'pointer-events-none opacity-50 bg-[hsl(var(--muted))]' : '';\n const widthStyle = fullWidth ? 'w-full' : '';\n const paddingWithIcon = leftIcon ? 'pl-10' : rightIcon ? 'pr-10' : '';\n\n return (\n <div className={`${widthStyle} ${className}`}>\n {label && (\n <label className=\"block text-sm font-medium text-[hsl(var(--foreground))] mb-1.5\">\n {label}\n </label>\n )}\n <div className=\"relative\">\n {leftIcon && (\n <div className=\"absolute left-3 top-1/2 transform -translate-y-1/2 text-[hsl(var(--muted-foreground))]\">\n {leftIcon}\n </div>\n )}\n <input\n ref={ref}\n className={`${baseStyles} ${sizeStyle} ${errorStyles} ${disabledStyles} ${paddingWithIcon}`.trim()}\n disabled={disabled}\n {...props}\n />\n {rightIcon && (\n <div className=\"absolute right-3 top-1/2 transform -translate-y-1/2 text-[hsl(var(--muted-foreground))]\">\n {rightIcon}\n </div>\n )}\n </div>\n {error && (\n <p className=\"mt-1.5 text-sm text-[hsl(var(--destructive))]\">{error}</p>\n )}\n {helperText && !error && (\n <p className=\"mt-1.5 text-sm text-[hsl(var(--muted-foreground))]\">{helperText}</p>\n )}\n </div>\n );\n }\n);\n\nTextInput.displayName = 'TextInput';\n","\"use client\";\n\nimport React from 'react';\n\nexport interface CardProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode;\n className?: string;\n padding?: 'none' | 'sm' | 'md' | 'lg';\n hover?: boolean;\n}\n\nconst paddingClasses = {\n none: '',\n sm: 'p-4',\n md: 'p-6',\n lg: 'p-8',\n};\n\nexport const Card: React.FC<CardProps> = ({\n children,\n className = '',\n padding = 'md',\n hover = false,\n ...props\n}) => {\n\n const paddingClass = paddingClasses[padding];\n const hoverClass = hover\n ? 'hover:shadow-lg hover:border-[hsl(var(--ring))]/50 cursor-pointer transition-all duration-200 ease-in-out'\n : '';\n\n return (\n <div\n className={`bg-[hsl(var(--card))] text-[hsl(var(--card-foreground))] rounded-lg border border-[hsl(var(--border))] shadow-sm ${paddingClass} ${hoverClass} ${className}`}\n {...props}\n >\n {children}\n </div>\n );\n};\n","\"use client\";\n\nimport React from 'react';\n\nexport interface AlertProps {\n variant?: 'info' | 'success' | 'warning' | 'error';\n title?: string;\n children: React.ReactNode;\n onClose?: () => void;\n className?: string;\n}\n\nconst variantStyles = {\n info: 'bg-[hsl(var(--info))]/10 border-[hsl(var(--info))]/20 text-[hsl(var(--info))]',\n success: 'bg-[hsl(var(--success))]/10 border-[hsl(var(--success))]/20 text-[hsl(var(--success))]',\n warning: 'bg-[hsl(var(--warning))]/10 border-[hsl(var(--warning))]/20 text-[hsl(var(--warning))]',\n error: 'bg-[hsl(var(--destructive))]/10 border-[hsl(var(--destructive))]/20 text-[hsl(var(--destructive))]',\n};\n\nconst iconStyles = {\n info: 'text-[hsl(var(--info))]',\n success: 'text-[hsl(var(--success))]',\n warning: 'text-[hsl(var(--warning))]',\n error: 'text-[hsl(var(--destructive))]',\n};\n\nexport const Alert: React.FC<AlertProps> = ({\n variant = 'info',\n title,\n children,\n onClose,\n className = '',\n}) => {\n\n const variantClass = variantStyles[variant];\n const iconClass = iconStyles[variant];\n\n return (\n <div className={`rounded-[--radius] border p-4 ${variantClass} ${className}`} role=\"alert\">\n <div className=\"flex items-start gap-3\">\n <div className={`flex-shrink-0 ${iconClass}`}>\n {variant === 'info' && (\n <svg className=\"w-5 h-5\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path fillRule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z\" clipRule=\"evenodd\" />\n </svg>\n )}\n {variant === 'success' && (\n <svg className=\"w-5 h-5\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path fillRule=\"evenodd\" d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\" clipRule=\"evenodd\" />\n </svg>\n )}\n {variant === 'warning' && (\n <svg className=\"w-5 h-5\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path fillRule=\"evenodd\" d=\"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z\" clipRule=\"evenodd\" />\n </svg>\n )}\n {variant === 'error' && (\n <svg className=\"w-5 h-5\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path fillRule=\"evenodd\" d=\"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z\" clipRule=\"evenodd\" />\n </svg>\n )}\n </div>\n <div className=\"flex-1\">\n {title && <h3 className=\"font-semibold mb-1\">{title}</h3>}\n <div className=\"text-sm\">{children}</div>\n </div>\n {onClose && (\n <button\n onClick={onClose}\n className={`flex-shrink-0 ${iconClass} hover:opacity-70 transition-opacity`}\n aria-label=\"Close alert\"\n >\n <svg className=\"w-5 h-5\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M6 18L18 6M6 6l12 12\" />\n </svg>\n </button>\n )}\n </div>\n </div>\n );\n};\n","\"use client\";\n\nimport React, { forwardRef } from 'react';\n\nexport interface CheckboxProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type'> {\n label?: string;\n error?: string;\n}\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n ({ label, error, className = '', disabled, checked, ...props }, ref) => {\n\n return (\n <div className={className}>\n <label className=\"flex items-center gap-2 cursor-pointer group\">\n <div className=\"relative inline-flex items-center\">\n <input\n ref={ref}\n type=\"checkbox\"\n disabled={disabled}\n checked={checked}\n className=\"sr-only peer\"\n {...props}\n />\n <div className={`w-4 h-4 border-2 rounded-sm transition-all duration-200 flex items-center justify-center\n ${error\n ? 'border-[hsl(var(--destructive))]'\n : 'border-[hsl(var(--input))]'\n }\n ${disabled\n ? 'opacity-50 cursor-not-allowed bg-[hsl(var(--muted))]'\n : 'peer-hover:border-[hsl(var(--ring))]'\n }\n peer-checked:bg-[hsl(var(--primary))] peer-checked:border-[hsl(var(--primary))]\n peer-focus:ring-1 peer-focus:ring-[hsl(var(--ring))]/50\n `}>\n {/* Checkmark SVG */}\n <svg\n className={`w-3 h-3 text-white transition-opacity duration-200 ${\n checked ? 'opacity-100' : 'opacity-0'\n }`}\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M10 3L4.5 8.5L2 6\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n {label && (\n <span className={`text-sm text-[hsl(var(--foreground))] ${disabled ? 'opacity-50 cursor-not-allowed' : ''}`}>\n {label}\n </span>\n )}\n </label>\n {error && <p className=\"mt-1 text-sm text-[hsl(var(--destructive))]\">{error}</p>}\n </div>\n );\n }\n);\n\nCheckbox.displayName = 'Checkbox';\n","\"use client\";\n\nimport React, { forwardRef } from 'react';\n\nexport interface ToggleProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'size'> {\n label?: string;\n size?: 'sm' | 'md' | 'lg';\n}\n\nexport const Toggle = forwardRef<HTMLInputElement, ToggleProps>(\n ({ label, size = 'md', className = '', disabled, checked, ...props }, ref) => {\n\n // Use complete class strings for Tailwind\n const toggleClasses = {\n sm: {\n switch: 'w-9 h-5',\n thumb: 'w-4 h-4 peer-checked:translate-x-4',\n },\n md: {\n switch: 'w-11 h-6',\n thumb: 'w-5 h-5 peer-checked:translate-x-5',\n },\n lg: {\n switch: 'w-14 h-7',\n thumb: 'w-6 h-6 peer-checked:translate-x-7',\n },\n };\n\n const currentSize = toggleClasses[size];\n\n return (\n <label className={`inline-flex items-center gap-3 cursor-pointer ${disabled ? 'opacity-50 cursor-not-allowed' : ''} ${className}`}>\n <div className=\"relative\">\n <input\n ref={ref}\n type=\"checkbox\"\n className=\"sr-only peer\"\n disabled={disabled}\n checked={checked}\n {...props}\n />\n <div\n className={`${currentSize.switch} bg-[hsl(var(--input))] peer-focus:ring-1 peer-focus:ring-[hsl(var(--ring))]/50 rounded-full peer peer-checked:bg-[hsl(var(--primary))] transition-colors`}\n ></div>\n <div\n className={`${currentSize.thumb} bg-white rounded-full shadow-md absolute top-0.5 left-0.5 transition-transform`}\n ></div>\n </div>\n {label && (\n <span className=\"text-sm font-medium text-[hsl(var(--foreground))]\">\n {label}\n </span>\n )}\n </label>\n );\n }\n);\n\nToggle.displayName = 'Toggle';\n","\"use client\";\n\nimport React from 'react';\n\nexport interface SpinnerProps {\n size?: 'sm' | 'md' | 'lg' | 'xl';\n color?: 'primary' | 'secondary' | 'white';\n className?: string;\n}\n\nconst sizeClasses = {\n sm: 'w-4 h-4 border-2',\n md: 'w-8 h-8 border-2',\n lg: 'w-12 h-12 border-3',\n xl: 'w-16 h-16 border-4',\n};\n\nconst colorClasses = {\n primary: 'border-[hsl(var(--primary))] border-t-transparent',\n secondary: 'border-[hsl(var(--muted-foreground))] border-t-transparent',\n white: 'border-white border-t-transparent',\n};\n\nexport const Spinner: React.FC<SpinnerProps> = ({\n size = 'md',\n color = 'primary',\n className = '',\n}) => {\n\n const sizeClass = sizeClasses[size];\n const colorClass = colorClasses[color];\n\n return (\n <div\n className={`inline-block rounded-full animate-spin ${sizeClass} ${colorClass} ${className}`}\n role=\"status\"\n aria-label=\"Loading\"\n >\n <span className=\"sr-only\">Loading...</span>\n </div>\n );\n};\n","\"use client\";\n\nimport React, { useState } from 'react';\n\nexport interface Tab {\n label: string;\n content: React.ReactNode;\n disabled?: boolean;\n}\n\nexport interface TabsProps {\n tabs: Tab[];\n defaultIndex?: number;\n onChange?: (index: number) => void;\n className?: string;\n}\n\nexport const Tabs: React.FC<TabsProps> = ({\n tabs,\n defaultIndex = 0,\n onChange,\n className = '',\n}) => {\n const [activeIndex, setActiveIndex] = useState(defaultIndex);\n\n const handleTabClick = (index: number) => {\n if (tabs[index].disabled) return;\n setActiveIndex(index);\n onChange?.(index);\n };\n\n return (\n <div className={className}>\n {/* Tab Headers */}\n <div className=\"border-b border-[hsl(var(--border))] px-4\">\n <nav className=\"flex gap-4 -mb-px\" aria-label=\"Tabs\">\n {tabs.map((tab, index) => (\n <button\n key={index}\n onClick={() => handleTabClick(index)}\n disabled={tab.disabled}\n className={`py-3 border-b-2 font-medium text-sm transition-colors ${\n activeIndex === index\n ? 'border-[hsl(var(--primary))] text-[hsl(var(--foreground))]'\n : 'border-transparent text-[hsl(var(--muted-foreground))] hover:text-[hsl(var(--foreground))] hover:border-[hsl(var(--border))]'\n } ${tab.disabled ? 'opacity-50 cursor-not-allowed' : 'cursor-pointer'}`}\n aria-current={activeIndex === index ? 'page' : undefined}\n >\n {tab.label}\n </button>\n ))}\n </nav>\n </div>\n\n {/* Tab Content */}\n <div>\n {tabs[activeIndex]?.content}\n </div>\n </div>\n );\n};\n","\"use client\";\n\nimport React from 'react';\n\nexport interface Column<T = any> {\n key: string;\n title: string;\n render?: (value: any, row: T, index: number) => React.ReactNode;\n width?: string;\n}\n\nexport interface TableProps<T = any> {\n columns: Column<T>[];\n data: T[];\n keyField?: string;\n striped?: boolean;\n hoverable?: boolean;\n className?: string;\n responsive?: boolean; // Enable mobile card layout (default: true)\n}\n\nexport function Table<T extends Record<string, any>>({\n columns,\n data,\n keyField = 'id',\n striped = false,\n hoverable = true,\n className = '',\n responsive = true,\n}: TableProps<T>) {\n\n return (\n <div className={className}>\n {/* Desktop Table View */}\n <div className={`${responsive ? 'hidden md:block' : ''} overflow-x-auto`}>\n <table className=\"w-full text-left\">\n <thead className=\"bg-[hsl(var(--muted))] border-b border-[hsl(var(--border))]\">\n <tr>\n {columns.map((column, colIndex) => {\n const isLast = colIndex === columns.length - 1;\n return (\n <th\n key={column.key}\n className={\n isLast\n ? 'px-6 py-3 text-xs font-medium text-[hsl(var(--muted-foreground))] uppercase tracking-wider relative'\n : 'px-6 py-3 text-xs font-medium text-[hsl(var(--muted-foreground))] uppercase tracking-wider'\n }\n style={{ width: column.width }}\n >\n {column.title}\n </th>\n );\n })}\n </tr>\n </thead>\n <tbody className=\"bg-[hsl(var(--card))] divide-y divide-[hsl(var(--border))]\">\n {data.map((row, rowIndex) => {\n const rowClasses = [\n striped && rowIndex % 2 === 1 ? 'bg-[hsl(var(--muted))]/50' : '',\n hoverable ? 'hover:bg-[hsl(var(--muted))] transition-colors' : ''\n ].filter(Boolean).join(' ');\n\n return (\n <tr\n key={row[keyField] || rowIndex}\n className={rowClasses}\n >\n {columns.map((column, colIndex) => {\n const isLast = colIndex === columns.length - 1;\n return (\n <td\n key={column.key}\n className={\n isLast\n ? 'px-6 py-4 text-sm text-[hsl(var(--foreground))] overflow-visible'\n : 'px-6 py-4 text-sm text-[hsl(var(--foreground))]'\n }\n >\n {column.render\n ? column.render(row[column.key], row, rowIndex)\n : row[column.key]}\n </td>\n );\n })}\n </tr>\n );\n })}\n </tbody>\n </table>\n {data.length === 0 && (\n <div className=\"text-center py-8 text-[hsl(var(--muted-foreground))]\">\n No data available\n </div>\n )}\n </div>\n\n {/* Mobile Card View */}\n {responsive && (\n <div className=\"md:hidden space-y-3\">\n {data.map((row, rowIndex) => {\n const cardClasses = [\n 'bg-[hsl(var(--card))] border border-[hsl(var(--border))] rounded-[--radius] p-4 shadow-sm',\n hoverable ? 'hover:shadow-md transition-shadow' : '',\n 'relative isolate' // Ensure cards are isolated layers\n ].filter(Boolean).join(' ');\n\n return (\n <div\n key={row[keyField] || rowIndex}\n className={cardClasses}\n >\n {columns.map((column) => (\n <div\n key={column.key}\n className=\"flex justify-between items-start py-2 border-b border-[hsl(var(--border))]/50 last:border-b-0\"\n >\n <span className=\"text-xs font-medium text-[hsl(var(--muted-foreground))] uppercase tracking-wider flex-shrink-0 mr-4\">\n {column.title}\n </span>\n <span className=\"text-sm text-[hsl(var(--foreground))] text-right\">\n {column.render\n ? column.render(row[column.key], row, rowIndex)\n : row[column.key]}\n </span>\n </div>\n ))}\n </div>\n );\n })}\n {data.length === 0 && (\n <div className=\"text-center py-8 text-[hsl(var(--muted-foreground))]\">\n No data available\n </div>\n )}\n </div>\n )}\n </div>\n );\n}\n","\"use client\";\n\nimport React, { forwardRef } from 'react';\n\nexport interface TimePickerProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type'> {\n label?: string;\n error?: string;\n helperText?: string;\n}\n\nexport const TimePicker = forwardRef<HTMLInputElement, TimePickerProps>(\n ({ label, error, helperText, className = '', disabled, ...props }, ref) => {\n\n const baseStyles = 'w-full appearance-none rounded-md border border-[hsl(var(--input))] bg-transparent text-[hsl(var(--foreground))] px-4 py-2.5 text-base transition-colors duration-150 focus:outline-none focus:ring-1 focus:ring-[hsl(var(--ring))]/50 focus:border-[hsl(var(--ring))] hover:border-[hsl(var(--muted-foreground))]';\n const errorStyles = error ? 'border-[hsl(var(--destructive))] focus:ring-[hsl(var(--destructive))]/50' : '';\n const disabledStyles = disabled ? 'opacity-50 cursor-not-allowed bg-[hsl(var(--muted))]' : '';\n\n return (\n <div className={className}>\n {label && (\n <label className=\"block text-sm font-medium text-[hsl(var(--foreground))] mb-1.5\">\n {label}\n </label>\n )}\n <input\n ref={ref}\n type=\"time\"\n disabled={disabled}\n className={`${baseStyles} ${errorStyles} ${disabledStyles}`.trim()}\n {...props}\n />\n {error && <p className=\"mt-1.5 text-sm text-[hsl(var(--destructive))]\">{error}</p>}\n {helperText && !error && <p className=\"mt-1.5 text-sm text-[hsl(var(--muted-foreground))]\">{helperText}</p>}\n </div>\n );\n }\n);\n\nTimePicker.displayName = 'TimePicker';\n","\"use client\";\n\nimport React from 'react';\n\nexport interface RadioOption {\n value: string;\n label: string;\n disabled?: boolean;\n}\n\nexport interface RadioProps {\n name: string;\n options: RadioOption[];\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n disabled?: boolean;\n orientation?: 'horizontal' | 'vertical';\n className?: string;\n}\n\nexport const Radio: React.FC<RadioProps> = ({\n name,\n options,\n value: controlledValue,\n defaultValue,\n onChange,\n disabled = false,\n orientation = 'vertical',\n className = '',\n}) => {\n const [internalValue, setInternalValue] = React.useState(defaultValue || '');\n\n const value = controlledValue !== undefined ? controlledValue : internalValue;\n\n const handleChange = (optionValue: string) => {\n if (disabled) return;\n setInternalValue(optionValue);\n onChange?.(optionValue);\n };\n\n const containerClass = orientation === 'horizontal'\n ? 'flex flex-wrap gap-4'\n : 'flex flex-col gap-2';\n\n return (\n <div className={`${containerClass} ${className}`} role=\"radiogroup\">\n {options.map((option) => {\n const isDisabled = disabled || option.disabled;\n const isChecked = value === option.value;\n const id = `${name}-${option.value}`;\n\n return (\n <label\n key={option.value}\n htmlFor={id}\n className={`flex items-center gap-2 cursor-pointer group ${\n isDisabled ? 'opacity-50 cursor-not-allowed' : ''\n }`}\n >\n <div className=\"relative inline-flex items-center\">\n <input\n type=\"radio\"\n id={id}\n name={name}\n value={option.value}\n checked={isChecked}\n onChange={() => handleChange(option.value)}\n disabled={isDisabled}\n className=\"sr-only peer\"\n />\n <div className={`w-4 h-4 rounded-full border-2 transition-all duration-200 flex items-center justify-center\n border-[hsl(var(--input))]\n ${isDisabled\n ? 'bg-[hsl(var(--muted))]'\n : 'peer-hover:border-[hsl(var(--ring))]'\n }\n ${isChecked\n ? 'border-[hsl(var(--primary))] bg-[hsl(var(--background))]'\n : ''\n }\n peer-focus:ring-1 peer-focus:ring-[hsl(var(--ring))]/50\n `}>\n {/* Inner dot */}\n <div className={`w-2 h-2 rounded-full bg-[hsl(var(--primary))] transition-all duration-200 ${\n isChecked ? 'scale-100' : 'scale-0'\n }`} />\n </div>\n </div>\n <span className={`text-sm font-medium text-[hsl(var(--foreground))] ${\n !isDisabled && 'group-hover:text-[hsl(var(--foreground))]'\n }`}>\n {option.label}\n </span>\n </label>\n );\n })}\n </div>\n );\n};\n","\"use client\";\n\nimport React, { createContext, useContext, useState, useCallback } from 'react';\nimport { CheckIcon, CloseIcon } from '../icons';\n\nexport interface Toast {\n id: string;\n message: string;\n type?: 'success' | 'error' | 'warning' | 'info';\n duration?: number;\n}\n\ninterface ToastContextValue {\n toasts: Toast[];\n addToast: (toast: Omit<Toast, 'id'>) => void;\n removeToast: (id: string) => void;\n}\n\nconst ToastContext = createContext<ToastContextValue | undefined>(undefined);\n\nexport const useToast = () => {\n const context = useContext(ToastContext);\n if (!context) {\n throw new Error('useToast must be used within a ToastProvider');\n }\n return context;\n};\n\nexport interface ToastProviderProps {\n children: React.ReactNode;\n position?: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left' | 'top-center' | 'bottom-center';\n}\n\nexport const ToastProvider: React.FC<ToastProviderProps> = ({ children, position = 'top-right' }) => {\n const [toasts, setToasts] = useState<Toast[]>([]);\n\n const addToast = useCallback((toast: Omit<Toast, 'id'>) => {\n const id = Math.random().toString(36).substring(7);\n const newToast = { ...toast, id };\n setToasts((prev) => [...prev, newToast]);\n\n // Auto-remove after duration\n const duration = toast.duration || 5000;\n setTimeout(() => {\n removeToast(id);\n }, duration);\n }, []);\n\n const removeToast = useCallback((id: string) => {\n setToasts((prev) => prev.filter((toast) => toast.id !== id));\n }, []);\n\n const positionClasses = {\n 'top-right': 'top-4 right-4',\n 'top-left': 'top-4 left-4',\n 'bottom-right': 'bottom-4 right-4',\n 'bottom-left': 'bottom-4 left-4',\n 'top-center': 'top-4 left-1/2 -translate-x-1/2',\n 'bottom-center': 'bottom-4 left-1/2 -translate-x-1/2',\n };\n\n return (\n <ToastContext.Provider value={{ toasts, addToast, removeToast }}>\n {children}\n <div className={`fixed ${positionClasses[position]} z-50 flex flex-col gap-2 max-w-md`}>\n {toasts.map((toast) => (\n <ToastItem key={toast.id} toast={toast} onClose={() => removeToast(toast.id)} />\n ))}\n </div>\n </ToastContext.Provider>\n );\n};\n\ninterface ToastItemProps {\n toast: Toast;\n onClose: () => void;\n}\n\nconst ToastItem: React.FC<ToastItemProps> = ({ toast, onClose }) => {\n const typeStyles = {\n success: 'bg-[hsl(var(--success))]/10 border-[hsl(var(--success))] text-[hsl(var(--success))]',\n error: 'bg-[hsl(var(--destructive))]/10 border-[hsl(var(--destructive))] text-[hsl(var(--destructive))]',\n warning: 'bg-[hsl(var(--warning))]/10 border-[hsl(var(--warning))] text-[hsl(var(--warning))]',\n info: 'bg-[hsl(var(--info))]/10 border-[hsl(var(--info))] text-[hsl(var(--info))]',\n };\n\n const typeIcons = {\n success: <CheckIcon size=\"sm\" className=\"text-[hsl(var(--success))]\" />,\n error: <CloseIcon size=\"sm\" className=\"text-[hsl(var(--destructive))]\" />,\n warning: (\n <svg className=\"w-4 h-4 text-[hsl(var(--warning))]\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path fillRule=\"evenodd\" d=\"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z\" clipRule=\"evenodd\" />\n </svg>\n ),\n info: (\n <svg className=\"w-4 h-4 text-[hsl(var(--info))]\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path fillRule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z\" clipRule=\"evenodd\" />\n </svg>\n ),\n };\n\n const type = toast.type || 'info';\n\n return (\n <div\n className={`flex items-start gap-3 p-4 rounded-md border-l-4 shadow-lg bg-[hsl(var(--card))] ${typeStyles[type]} animate-slide-in`}\n role=\"alert\"\n >\n <div className=\"flex-shrink-0 mt-0.5\">{typeIcons[type]}</div>\n <p className=\"flex-1 text-sm font-medium text-[hsl(var(--foreground))]\">{toast.message}</p>\n <button\n onClick={onClose}\n className=\"flex-shrink-0 text-[hsl(var(--muted-foreground))] hover:text-[hsl(var(--foreground))] transition-colors\"\n aria-label=\"Close\"\n >\n <CloseIcon size=\"sm\" />\n </button>\n </div>\n );\n};\n\n// Helper function to easily show toasts\nexport const toast = {\n success: (message: string, duration?: number) => ({\n message,\n type: 'success' as const,\n duration,\n }),\n error: (message: string, duration?: number) => ({\n message,\n type: 'error' as const,\n duration,\n }),\n warning: (message: string, duration?: number) => ({\n message,\n type: 'warning' as const,\n duration,\n }),\n info: (message: string, duration?: number) => ({\n message,\n type: 'info' as const,\n duration,\n }),\n};\n","'use client'\n\nimport { useEffect } from 'react'\n\nexport interface ModalProps {\n isOpen: boolean\n onClose: () => void\n title: string\n children: React.ReactNode\n className?: string\n}\n\nexport function Modal({ isOpen, onClose, title, children, className = '' }: ModalProps) {\n useEffect(() => {\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === 'Escape') onClose()\n }\n\n if (isOpen) {\n document.addEventListener('keydown', handleEscape)\n document.body.style.overflow = 'hidden'\n }\n\n return () => {\n document.removeEventListener('keydown', handleEscape)\n document.body.style.overflow = 'unset'\n }\n }, [isOpen, onClose])\n\n if (!isOpen) return null\n\n return (\n <div className=\"fixed inset-0 z-50 flex items-center justify-center p-4\">\n {/* Backdrop */}\n <div\n className=\"absolute inset-0 bg-black/50 backdrop-blur-sm\"\n onClick={onClose}\n />\n\n {/* Modal */}\n <div\n className={`relative bg-white dark:bg-gray-900 rounded-lg shadow-xl max-w-md w-full max-h-[90vh] overflow-y-auto ${className}`}\n >\n {/* Header */}\n <div className=\"flex items-center justify-between p-6 border-b border-gray-200 dark:border-gray-700\">\n <h2 className=\"text-xl font-semibold\">{title}</h2>\n <button\n onClick={onClose}\n className=\"text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 transition-colors\"\n >\n <svg className=\"w-6 h-6\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M6 18L18 6M6 6l12 12\" />\n </svg>\n </button>\n </div>\n\n {/* Content */}\n <div className=\"p-6\">\n {children}\n </div>\n </div>\n </div>\n )\n}\n","var RELEASE_TRAIN = 'clover';\n\nvar runtimeVersionToUrlVersion = function runtimeVersionToUrlVersion(version) {\n return version === 3 ? 'v3' : version;\n};\n\nvar ORIGIN = 'https://js.stripe.com';\nvar STRIPE_JS_URL = \"\".concat(ORIGIN, \"/\").concat(RELEASE_TRAIN, \"/stripe.js\");\nvar V3_URL_REGEX = /^https:\\/\\/js\\.stripe\\.com\\/v3\\/?(\\?.*)?$/;\nvar STRIPE_JS_URL_REGEX = /^https:\\/\\/js\\.stripe\\.com\\/(v3|[a-z]+)\\/stripe\\.js(\\?.*)?$/;\nvar EXISTING_SCRIPT_MESSAGE = 'loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used';\n\nvar isStripeJSURL = function isStripeJSURL(url) {\n return V3_URL_REGEX.test(url) || STRIPE_JS_URL_REGEX.test(url);\n};\n\nvar findScript = function findScript() {\n var scripts = document.querySelectorAll(\"script[src^=\\\"\".concat(ORIGIN, \"\\\"]\"));\n\n for (var i = 0; i < scripts.length; i++) {\n var script = scripts[i];\n\n if (!isStripeJSURL(script.src)) {\n continue;\n }\n\n return script;\n }\n\n return null;\n};\n\nvar injectScript = function injectScript(params) {\n var queryString = params && !params.advancedFraudSignals ? '?advancedFraudSignals=false' : '';\n var script = document.createElement('script');\n script.src = \"\".concat(STRIPE_JS_URL).concat(queryString);\n var headOrBody = document.head || document.body;\n\n if (!headOrBody) {\n throw new Error('Expected document.body not to be null. Stripe.js requires a <body> element.');\n }\n\n headOrBody.appendChild(script);\n return script;\n};\n\nvar registerWrapper = function registerWrapper(stripe, startTime) {\n if (!stripe || !stripe._registerWrapper) {\n return;\n }\n\n stripe._registerWrapper({\n name: 'stripe-js',\n version: \"8.6.0\",\n startTime: startTime\n });\n};\n\nvar stripePromise$1 = null;\nvar onErrorListener = null;\nvar onLoadListener = null;\n\nvar onError = function onError(reject) {\n return function (cause) {\n reject(new Error('Failed to load Stripe.js', {\n cause: cause\n }));\n };\n};\n\nvar onLoad = function onLoad(resolve, reject) {\n return function () {\n if (window.Stripe) {\n resolve(window.Stripe);\n } else {\n reject(new Error('Stripe.js not available'));\n }\n };\n};\n\nvar loadScript = function loadScript(params) {\n // Ensure that we only attempt to load Stripe.js at most once\n if (stripePromise$1 !== null) {\n return stripePromise$1;\n }\n\n stripePromise$1 = new Promise(function (resolve, reject) {\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n // Resolve to null when imported server side. This makes the module\n // safe to import in an isomorphic code base.\n resolve(null);\n return;\n }\n\n if (window.Stripe && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n }\n\n if (window.Stripe) {\n resolve(window.Stripe);\n return;\n }\n\n try {\n var script = findScript();\n\n if (script && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n } else if (!script) {\n script = injectScript(params);\n } else if (script && onLoadListener !== null && onErrorListener !== null) {\n var _script$parentNode;\n\n // remove event listeners\n script.removeEventListener('load', onLoadListener);\n script.removeEventListener('error', onErrorListener); // if script exists, but we are reloading due to an error,\n // reload script to trigger 'load' event\n\n (_script$parentNode = script.parentNode) === null || _script$parentNode === void 0 ? void 0 : _script$parentNode.removeChild(script);\n script = injectScript(params);\n }\n\n onLoadListener = onLoad(resolve, reject);\n onErrorListener = onError(reject);\n script.addEventListener('load', onLoadListener);\n script.addEventListener('error', onErrorListener);\n } catch (error) {\n reject(error);\n return;\n }\n }); // Resets stripePromise on error\n\n return stripePromise$1[\"catch\"](function (error) {\n stripePromise$1 = null;\n return Promise.reject(error);\n });\n};\nvar initStripe = function initStripe(maybeStripe, args, startTime) {\n if (maybeStripe === null) {\n return null;\n }\n\n var pk = args[0];\n var isTestKey = pk.match(/^pk_test/); // @ts-expect-error this is not publicly typed\n\n var version = runtimeVersionToUrlVersion(maybeStripe.version);\n var expectedVersion = RELEASE_TRAIN;\n\n if (isTestKey && version !== expectedVersion) {\n console.warn(\"Stripe.js@\".concat(version, \" was loaded on the page, but @stripe/stripe-js@\").concat(\"8.6.0\", \" expected Stripe.js@\").concat(expectedVersion, \". This may result in unexpected behavior. For more information, see https://docs.stripe.com/sdks/stripejs-versioning\"));\n }\n\n var stripe = maybeStripe.apply(undefined, args);\n registerWrapper(stripe, startTime);\n return stripe;\n}; // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\nvar stripePromise;\nvar loadCalled = false;\n\nvar getStripePromise = function getStripePromise() {\n if (stripePromise) {\n return stripePromise;\n }\n\n stripePromise = loadScript(null)[\"catch\"](function (error) {\n // clear cache on error\n stripePromise = null;\n return Promise.reject(error);\n });\n return stripePromise;\n}; // Execute our own script injection after a tick to give users time to do their\n// own script injection.\n\n\nPromise.resolve().then(function () {\n return getStripePromise();\n})[\"catch\"](function (error) {\n if (!loadCalled) {\n console.warn(error);\n }\n});\nvar loadStripe = function loadStripe() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n loadCalled = true;\n var startTime = Date.now(); // if previous attempts are unsuccessful, will re-load script\n\n return getStripePromise().then(function (maybeStripe) {\n return initStripe(maybeStripe, args, startTime);\n });\n};\n\nexport { loadStripe };\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr && (typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]);\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar useAttachEvent = function useAttachEvent(element, event, cb) {\n var cbDefined = !!cb;\n var cbRef = React.useRef(cb); // In many integrations the callback prop changes on each render.\n // Using a ref saves us from calling element.on/.off every render.\n\n React.useEffect(function () {\n cbRef.current = cb;\n }, [cb]);\n React.useEffect(function () {\n if (!cbDefined || !element) {\n return function () {};\n }\n\n var decoratedCb = function decoratedCb() {\n if (cbRef.current) {\n cbRef.current.apply(cbRef, arguments);\n }\n };\n\n element.on(event, decoratedCb);\n return function () {\n element.off(event, decoratedCb);\n };\n }, [cbDefined, event, element, cbRef]);\n};\n\nvar usePrevious = function usePrevious(value) {\n var ref = React.useRef(value);\n React.useEffect(function () {\n ref.current = value;\n }, [value]);\n return ref.current;\n};\n\nvar isUnknownObject = function isUnknownObject(raw) {\n return raw !== null && _typeof(raw) === 'object';\n};\nvar isPromise = function isPromise(raw) {\n return isUnknownObject(raw) && typeof raw.then === 'function';\n}; // We are using types to enforce the `stripe` prop in this lib,\n// but in an untyped integration `stripe` could be anything, so we need\n// to do some sanity validation to prevent type errors.\n\nvar isStripe = function isStripe(raw) {\n return isUnknownObject(raw) && typeof raw.elements === 'function' && typeof raw.createToken === 'function' && typeof raw.createPaymentMethod === 'function' && typeof raw.confirmCardPayment === 'function';\n};\n\nvar PLAIN_OBJECT_STR = '[object Object]';\nvar isEqual = function isEqual(left, right) {\n if (!isUnknownObject(left) || !isUnknownObject(right)) {\n return left === right;\n }\n\n var leftArray = Array.isArray(left);\n var rightArray = Array.isArray(right);\n if (leftArray !== rightArray) return false;\n var leftPlainObject = Object.prototype.toString.call(left) === PLAIN_OBJECT_STR;\n var rightPlainObject = Object.prototype.toString.call(right) === PLAIN_OBJECT_STR;\n if (leftPlainObject !== rightPlainObject) return false; // not sure what sort of special object this is (regexp is one option), so\n // fallback to reference check.\n\n if (!leftPlainObject && !leftArray) return left === right;\n var leftKeys = Object.keys(left);\n var rightKeys = Object.keys(right);\n if (leftKeys.length !== rightKeys.length) return false;\n var keySet = {};\n\n for (var i = 0; i < leftKeys.length; i += 1) {\n keySet[leftKeys[i]] = true;\n }\n\n for (var _i = 0; _i < rightKeys.length; _i += 1) {\n keySet[rightKeys[_i]] = true;\n }\n\n var allKeys = Object.keys(keySet);\n\n if (allKeys.length !== leftKeys.length) {\n return false;\n }\n\n var l = left;\n var r = right;\n\n var pred = function pred(key) {\n return isEqual(l[key], r[key]);\n };\n\n return allKeys.every(pred);\n};\n\nvar extractAllowedOptionsUpdates = function extractAllowedOptionsUpdates(options, prevOptions, immutableKeys) {\n if (!isUnknownObject(options)) {\n return null;\n }\n\n return Object.keys(options).reduce(function (newOptions, key) {\n var isUpdated = !isUnknownObject(prevOptions) || !isEqual(options[key], prevOptions[key]);\n\n if (immutableKeys.includes(key)) {\n if (isUpdated) {\n console.warn(\"Unsupported prop change: options.\".concat(key, \" is not a mutable property.\"));\n }\n\n return newOptions;\n }\n\n if (!isUpdated) {\n return newOptions;\n }\n\n return _objectSpread2(_objectSpread2({}, newOptions || {}), {}, _defineProperty({}, key, options[key]));\n }, null);\n};\n\nvar INVALID_STRIPE_ERROR$1 = 'Invalid prop `stripe` supplied to `Elements`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.'; // We are using types to enforce the `stripe` prop in this lib, but in a real\n// integration `stripe` could be anything, so we need to do some sanity\n// validation to prevent type errors.\n\nvar validateStripe = function validateStripe(maybeStripe) {\n var errorMsg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : INVALID_STRIPE_ERROR$1;\n\n if (maybeStripe === null || isStripe(maybeStripe)) {\n return maybeStripe;\n }\n\n throw new Error(errorMsg);\n};\n\nvar parseStripeProp = function parseStripeProp(raw) {\n var errorMsg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : INVALID_STRIPE_ERROR$1;\n\n if (isPromise(raw)) {\n return {\n tag: 'async',\n stripePromise: Promise.resolve(raw).then(function (result) {\n return validateStripe(result, errorMsg);\n })\n };\n }\n\n var stripe = validateStripe(raw, errorMsg);\n\n if (stripe === null) {\n return {\n tag: 'empty'\n };\n }\n\n return {\n tag: 'sync',\n stripe: stripe\n };\n};\n\nvar registerWithStripeJs = function registerWithStripeJs(stripe) {\n if (!stripe || !stripe._registerWrapper || !stripe.registerAppInfo) {\n return;\n }\n\n stripe._registerWrapper({\n name: 'react-stripe-js',\n version: \"5.4.1\"\n });\n\n stripe.registerAppInfo({\n name: 'react-stripe-js',\n version: \"5.4.1\",\n url: 'https://stripe.com/docs/stripe-js/react'\n });\n};\n\nvar ElementsContext = /*#__PURE__*/React.createContext(null);\nElementsContext.displayName = 'ElementsContext';\nvar parseElementsContext = function parseElementsContext(ctx, useCase) {\n if (!ctx) {\n throw new Error(\"Could not find Elements context; You need to wrap the part of your app that \".concat(useCase, \" in an <Elements> provider.\"));\n }\n\n return ctx;\n};\n/**\n * The `Elements` provider allows you to use [Element components](https://stripe.com/docs/stripe-js/react#element-components) and access the [Stripe object](https://stripe.com/docs/js/initializing) in any nested component.\n * Render an `Elements` provider at the root of your React app so that it is available everywhere you need it.\n *\n * To use the `Elements` provider, call `loadStripe` from `@stripe/stripe-js` with your publishable key.\n * The `loadStripe` function will asynchronously load the Stripe.js script and initialize a `Stripe` object.\n * Pass the returned `Promise` to `Elements`.\n *\n * @docs https://docs.stripe.com/sdks/stripejs-react?ui=elements#elements-provider\n */\n\nvar Elements = function Elements(_ref) {\n var rawStripeProp = _ref.stripe,\n options = _ref.options,\n children = _ref.children;\n var parsed = React.useMemo(function () {\n return parseStripeProp(rawStripeProp);\n }, [rawStripeProp]); // For a sync stripe instance, initialize into context\n\n var _React$useState = React.useState(function () {\n return {\n stripe: parsed.tag === 'sync' ? parsed.stripe : null,\n elements: parsed.tag === 'sync' ? parsed.stripe.elements(options) : null\n };\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n ctx = _React$useState2[0],\n setContext = _React$useState2[1];\n\n React.useEffect(function () {\n var isMounted = true;\n\n var safeSetContext = function safeSetContext(stripe) {\n setContext(function (ctx) {\n // no-op if we already have a stripe instance (https://github.com/stripe/react-stripe-js/issues/296)\n if (ctx.stripe) return ctx;\n return {\n stripe: stripe,\n elements: stripe.elements(options)\n };\n });\n }; // For an async stripePromise, store it in context once resolved\n\n\n if (parsed.tag === 'async' && !ctx.stripe) {\n parsed.stripePromise.then(function (stripe) {\n if (stripe && isMounted) {\n // Only update Elements context if the component is still mounted\n // and stripe is not null. We allow stripe to be null to make\n // handling SSR easier.\n safeSetContext(stripe);\n }\n });\n } else if (parsed.tag === 'sync' && !ctx.stripe) {\n // Or, handle a sync stripe instance going from null -> populated\n safeSetContext(parsed.stripe);\n }\n\n return function () {\n isMounted = false;\n };\n }, [parsed, ctx, options]); // Warn on changes to stripe prop\n\n var prevStripe = usePrevious(rawStripeProp);\n React.useEffect(function () {\n if (prevStripe !== null && prevStripe !== rawStripeProp) {\n console.warn('Unsupported prop change on Elements: You cannot change the `stripe` prop after setting it.');\n }\n }, [prevStripe, rawStripeProp]); // Apply updates to elements when options prop has relevant changes\n\n var prevOptions = usePrevious(options);\n React.useEffect(function () {\n if (!ctx.elements) {\n return;\n }\n\n var updates = extractAllowedOptionsUpdates(options, prevOptions, ['clientSecret', 'fonts']);\n\n if (updates) {\n ctx.elements.update(updates);\n }\n }, [options, prevOptions, ctx.elements]); // Attach react-stripe-js version to stripe.js instance\n\n React.useEffect(function () {\n registerWithStripeJs(ctx.stripe);\n }, [ctx.stripe]);\n return /*#__PURE__*/React.createElement(ElementsContext.Provider, {\n value: ctx\n }, children);\n};\nElements.propTypes = {\n stripe: PropTypes.any,\n options: PropTypes.object\n};\nvar useElementsContextWithUseCase = function useElementsContextWithUseCase(useCaseMessage) {\n var ctx = React.useContext(ElementsContext);\n return parseElementsContext(ctx, useCaseMessage);\n};\n/**\n * @docs https://stripe.com/docs/stripe-js/react#useelements-hook\n */\n\nvar useElements = function useElements() {\n var _useElementsContextWi = useElementsContextWithUseCase('calls useElements()'),\n elements = _useElementsContextWi.elements;\n\n return elements;\n};\n/**\n * @docs https://stripe.com/docs/stripe-js/react#elements-consumer\n */\n\nvar ElementsConsumer = function ElementsConsumer(_ref2) {\n var children = _ref2.children;\n var ctx = useElementsContextWithUseCase('mounts <ElementsConsumer>'); // Assert to satisfy the busted React.FC return type (it should be ReactNode)\n\n return children(ctx);\n};\nElementsConsumer.propTypes = {\n children: PropTypes.func.isRequired\n};\n\nvar CheckoutContext = /*#__PURE__*/React.createContext(null);\nCheckoutContext.displayName = 'CheckoutContext';\n({\n stripe: PropTypes.any,\n options: PropTypes.shape({\n clientSecret: PropTypes.oneOfType([PropTypes.string, PropTypes.instanceOf(Promise)]).isRequired,\n elementsOptions: PropTypes.object\n }).isRequired\n});\nvar useElementsOrCheckoutContextWithUseCase = function useElementsOrCheckoutContextWithUseCase(useCaseString) {\n var checkout = React.useContext(CheckoutContext);\n var elements = React.useContext(ElementsContext);\n\n if (checkout) {\n if (elements) {\n throw new Error(\"You cannot wrap the part of your app that \".concat(useCaseString, \" in both <CheckoutProvider> and <Elements> providers.\"));\n } else {\n return checkout;\n }\n } else {\n return parseElementsContext(elements, useCaseString);\n }\n};\n\nvar _excluded = [\"mode\"];\n\nvar capitalized = function capitalized(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n};\n\nvar createElementComponent = function createElementComponent(type, isServer) {\n var displayName = \"\".concat(capitalized(type), \"Element\");\n\n var ClientElement = function ClientElement(_ref) {\n var id = _ref.id,\n className = _ref.className,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n onBlur = _ref.onBlur,\n onFocus = _ref.onFocus,\n onReady = _ref.onReady,\n onChange = _ref.onChange,\n onEscape = _ref.onEscape,\n onClick = _ref.onClick,\n onLoadError = _ref.onLoadError,\n onLoaderStart = _ref.onLoaderStart,\n onNetworksChange = _ref.onNetworksChange,\n onConfirm = _ref.onConfirm,\n onCancel = _ref.onCancel,\n onShippingAddressChange = _ref.onShippingAddressChange,\n onShippingRateChange = _ref.onShippingRateChange,\n onSavedPaymentMethodRemove = _ref.onSavedPaymentMethodRemove,\n onSavedPaymentMethodUpdate = _ref.onSavedPaymentMethodUpdate;\n var ctx = useElementsOrCheckoutContextWithUseCase(\"mounts <\".concat(displayName, \">\"));\n var elements = 'elements' in ctx ? ctx.elements : null;\n var checkoutState = 'checkoutState' in ctx ? ctx.checkoutState : null;\n var checkoutSdk = (checkoutState === null || checkoutState === void 0 ? void 0 : checkoutState.type) === 'success' || (checkoutState === null || checkoutState === void 0 ? void 0 : checkoutState.type) === 'loading' ? checkoutState.sdk : null;\n\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n element = _React$useState2[0],\n setElement = _React$useState2[1];\n\n var elementRef = React.useRef(null);\n var domNode = React.useRef(null); // For every event where the merchant provides a callback, call element.on\n // with that callback. If the merchant ever changes the callback, removes\n // the old callback with element.off and then call element.on with the new one.\n\n useAttachEvent(element, 'blur', onBlur);\n useAttachEvent(element, 'focus', onFocus);\n useAttachEvent(element, 'escape', onEscape);\n useAttachEvent(element, 'click', onClick);\n useAttachEvent(element, 'loaderror', onLoadError);\n useAttachEvent(element, 'loaderstart', onLoaderStart);\n useAttachEvent(element, 'networkschange', onNetworksChange);\n useAttachEvent(element, 'confirm', onConfirm);\n useAttachEvent(element, 'cancel', onCancel);\n useAttachEvent(element, 'shippingaddresschange', onShippingAddressChange);\n useAttachEvent(element, 'shippingratechange', onShippingRateChange);\n useAttachEvent(element, 'savedpaymentmethodremove', onSavedPaymentMethodRemove);\n useAttachEvent(element, 'savedpaymentmethodupdate', onSavedPaymentMethodUpdate);\n useAttachEvent(element, 'change', onChange);\n var readyCallback;\n\n if (onReady) {\n if (type === 'expressCheckout') {\n // Passes through the event, which includes visible PM types\n readyCallback = onReady;\n } else {\n // For other Elements, pass through the Element itself.\n readyCallback = function readyCallback() {\n onReady(element);\n };\n }\n }\n\n useAttachEvent(element, 'ready', readyCallback);\n React.useLayoutEffect(function () {\n if (elementRef.current === null && domNode.current !== null && (elements || checkoutSdk)) {\n var newElement = null;\n\n if (checkoutSdk) {\n switch (type) {\n case 'paymentForm':\n newElement = checkoutSdk.createPaymentFormElement();\n break;\n\n case 'payment':\n newElement = checkoutSdk.createPaymentElement(options);\n break;\n\n case 'address':\n if ('mode' in options) {\n var mode = options.mode,\n restOptions = _objectWithoutProperties(options, _excluded);\n\n if (mode === 'shipping') {\n newElement = checkoutSdk.createShippingAddressElement(restOptions);\n } else if (mode === 'billing') {\n newElement = checkoutSdk.createBillingAddressElement(restOptions);\n } else {\n throw new Error(\"Invalid options.mode. mode must be 'billing' or 'shipping'.\");\n }\n } else {\n throw new Error(\"You must supply options.mode. mode must be 'billing' or 'shipping'.\");\n }\n\n break;\n\n case 'expressCheckout':\n newElement = checkoutSdk.createExpressCheckoutElement(options);\n break;\n\n case 'currencySelector':\n newElement = checkoutSdk.createCurrencySelectorElement();\n break;\n\n case 'taxId':\n newElement = checkoutSdk.createTaxIdElement(options);\n break;\n\n default:\n throw new Error(\"Invalid Element type \".concat(displayName, \". You must use either the <PaymentElement />, <AddressElement options={{mode: 'shipping'}} />, <AddressElement options={{mode: 'billing'}} />, or <ExpressCheckoutElement />.\"));\n }\n } else if (elements) {\n newElement = elements.create(type, options);\n } // Store element in a ref to ensure it's _immediately_ available in cleanup hooks in StrictMode\n\n\n elementRef.current = newElement; // Store element in state to facilitate event listener attachment\n\n setElement(newElement);\n\n if (newElement) {\n newElement.mount(domNode.current);\n }\n }\n }, [elements, checkoutSdk, options]);\n var prevOptions = usePrevious(options);\n React.useEffect(function () {\n if (!elementRef.current) {\n return;\n }\n\n var updates = extractAllowedOptionsUpdates(options, prevOptions, ['paymentRequest']);\n\n if (updates && 'update' in elementRef.current) {\n elementRef.current.update(updates);\n }\n }, [options, prevOptions]);\n React.useLayoutEffect(function () {\n return function () {\n if (elementRef.current && typeof elementRef.current.destroy === 'function') {\n try {\n elementRef.current.destroy();\n elementRef.current = null;\n } catch (error) {// Do nothing\n }\n }\n };\n }, []);\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n className: className,\n ref: domNode\n });\n }; // Only render the Element wrapper in a server environment.\n\n\n var ServerElement = function ServerElement(props) {\n useElementsOrCheckoutContextWithUseCase(\"mounts <\".concat(displayName, \">\"));\n var id = props.id,\n className = props.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n className: className\n });\n };\n\n var Element = isServer ? ServerElement : ClientElement;\n Element.propTypes = {\n id: PropTypes.string,\n className: PropTypes.string,\n onChange: PropTypes.func,\n onBlur: PropTypes.func,\n onFocus: PropTypes.func,\n onReady: PropTypes.func,\n onEscape: PropTypes.func,\n onClick: PropTypes.func,\n onLoadError: PropTypes.func,\n onLoaderStart: PropTypes.func,\n onNetworksChange: PropTypes.func,\n onConfirm: PropTypes.func,\n onCancel: PropTypes.func,\n onShippingAddressChange: PropTypes.func,\n onShippingRateChange: PropTypes.func,\n onSavedPaymentMethodRemove: PropTypes.func,\n onSavedPaymentMethodUpdate: PropTypes.func,\n options: PropTypes.object\n };\n Element.displayName = displayName;\n Element.__elementType = type;\n return Element;\n};\n\nvar isServer = typeof window === 'undefined';\n\nvar EmbeddedCheckoutContext = /*#__PURE__*/React.createContext(null);\nEmbeddedCheckoutContext.displayName = 'EmbeddedCheckoutProviderContext';\nvar useEmbeddedCheckoutContext = function useEmbeddedCheckoutContext() {\n var ctx = React.useContext(EmbeddedCheckoutContext);\n\n if (!ctx) {\n throw new Error('<EmbeddedCheckout> must be used within <EmbeddedCheckoutProvider>');\n }\n\n return ctx;\n};\nvar INVALID_STRIPE_ERROR = 'Invalid prop `stripe` supplied to `EmbeddedCheckoutProvider`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.';\nvar EmbeddedCheckoutProvider = function EmbeddedCheckoutProvider(_ref) {\n var rawStripeProp = _ref.stripe,\n options = _ref.options,\n children = _ref.children;\n var parsed = React.useMemo(function () {\n return parseStripeProp(rawStripeProp, INVALID_STRIPE_ERROR);\n }, [rawStripeProp]);\n var embeddedCheckoutPromise = React.useRef(null);\n var loadedStripe = React.useRef(null);\n\n var _React$useState = React.useState({\n embeddedCheckout: null\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n ctx = _React$useState2[0],\n setContext = _React$useState2[1];\n\n React.useEffect(function () {\n // Don't support any ctx updates once embeddedCheckout or stripe is set.\n if (loadedStripe.current || embeddedCheckoutPromise.current) {\n return;\n }\n\n var setStripeAndInitEmbeddedCheckout = function setStripeAndInitEmbeddedCheckout(stripe) {\n if (loadedStripe.current || embeddedCheckoutPromise.current) return;\n loadedStripe.current = stripe;\n embeddedCheckoutPromise.current = loadedStripe.current.initEmbeddedCheckout(options).then(function (embeddedCheckout) {\n setContext({\n embeddedCheckout: embeddedCheckout\n });\n });\n }; // For an async stripePromise, store it once resolved\n\n\n if (parsed.tag === 'async' && !loadedStripe.current && (options.clientSecret || options.fetchClientSecret)) {\n parsed.stripePromise.then(function (stripe) {\n if (stripe) {\n setStripeAndInitEmbeddedCheckout(stripe);\n }\n });\n } else if (parsed.tag === 'sync' && !loadedStripe.current && (options.clientSecret || options.fetchClientSecret)) {\n // Or, handle a sync stripe instance going from null -> populated\n setStripeAndInitEmbeddedCheckout(parsed.stripe);\n }\n }, [parsed, options, ctx, loadedStripe]);\n React.useEffect(function () {\n // cleanup on unmount\n return function () {\n // If embedded checkout is fully initialized, destroy it.\n if (ctx.embeddedCheckout) {\n embeddedCheckoutPromise.current = null;\n ctx.embeddedCheckout.destroy();\n } else if (embeddedCheckoutPromise.current) {\n // If embedded checkout is still initializing, destroy it once\n // it's done. This could be caused by unmounting very quickly\n // after mounting.\n embeddedCheckoutPromise.current.then(function () {\n embeddedCheckoutPromise.current = null;\n\n if (ctx.embeddedCheckout) {\n ctx.embeddedCheckout.destroy();\n }\n });\n }\n };\n }, [ctx.embeddedCheckout]); // Attach react-stripe-js version to stripe.js instance\n\n React.useEffect(function () {\n registerWithStripeJs(loadedStripe);\n }, [loadedStripe]); // Warn on changes to stripe prop.\n // The stripe prop value can only go from null to non-null once and\n // can't be changed after that.\n\n var prevStripe = usePrevious(rawStripeProp);\n React.useEffect(function () {\n if (prevStripe !== null && prevStripe !== rawStripeProp) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the `stripe` prop after setting it.');\n }\n }, [prevStripe, rawStripeProp]); // Warn on changes to options.\n\n var prevOptions = usePrevious(options);\n React.useEffect(function () {\n if (prevOptions == null) {\n return;\n }\n\n if (options == null) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot unset options after setting them.');\n return;\n }\n\n if (options.clientSecret === undefined && options.fetchClientSecret === undefined) {\n console.warn('Invalid props passed to EmbeddedCheckoutProvider: You must provide one of either `options.fetchClientSecret` or `options.clientSecret`.');\n }\n\n if (prevOptions.clientSecret != null && options.clientSecret !== prevOptions.clientSecret) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the client secret after setting it. Unmount and create a new instance of EmbeddedCheckoutProvider instead.');\n }\n\n if (prevOptions.fetchClientSecret != null && options.fetchClientSecret !== prevOptions.fetchClientSecret) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change fetchClientSecret after setting it. Unmount and create a new instance of EmbeddedCheckoutProvider instead.');\n }\n\n if (prevOptions.onComplete != null && options.onComplete !== prevOptions.onComplete) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onComplete option after setting it.');\n }\n\n if (prevOptions.onShippingDetailsChange != null && options.onShippingDetailsChange !== prevOptions.onShippingDetailsChange) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onShippingDetailsChange option after setting it.');\n }\n\n if (prevOptions.onLineItemsChange != null && options.onLineItemsChange !== prevOptions.onLineItemsChange) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onLineItemsChange option after setting it.');\n }\n }, [prevOptions, options]);\n return /*#__PURE__*/React.createElement(EmbeddedCheckoutContext.Provider, {\n value: ctx\n }, children);\n};\n\nvar EmbeddedCheckoutClientElement = function EmbeddedCheckoutClientElement(_ref) {\n var id = _ref.id,\n className = _ref.className;\n\n var _useEmbeddedCheckoutC = useEmbeddedCheckoutContext(),\n embeddedCheckout = _useEmbeddedCheckoutC.embeddedCheckout;\n\n var isMounted = React.useRef(false);\n var domNode = React.useRef(null);\n React.useLayoutEffect(function () {\n if (!isMounted.current && embeddedCheckout && domNode.current !== null) {\n embeddedCheckout.mount(domNode.current);\n isMounted.current = true;\n } // Clean up on unmount\n\n\n return function () {\n if (isMounted.current && embeddedCheckout) {\n try {\n embeddedCheckout.unmount();\n isMounted.current = false;\n } catch (e) {// Do nothing.\n // Parent effects are destroyed before child effects, so\n // in cases where both the EmbeddedCheckoutProvider and\n // the EmbeddedCheckout component are removed at the same\n // time, the embeddedCheckout instance will be destroyed,\n // which causes an error when calling unmount.\n }\n }\n };\n }, [embeddedCheckout]);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: domNode,\n id: id,\n className: className\n });\n}; // Only render the wrapper in a server environment.\n\n\nvar EmbeddedCheckoutServerElement = function EmbeddedCheckoutServerElement(_ref2) {\n var id = _ref2.id,\n className = _ref2.className;\n // Validate that we are in the right context by calling useEmbeddedCheckoutContext.\n useEmbeddedCheckoutContext();\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n className: className\n });\n};\n\nvar EmbeddedCheckout = isServer ? EmbeddedCheckoutServerElement : EmbeddedCheckoutClientElement;\n\nvar FinancialAccountDisclosure = function FinancialAccountDisclosure(_ref) {\n var rawStripeProp = _ref.stripe,\n onLoad = _ref.onLoad,\n onError = _ref.onError,\n options = _ref.options;\n var businessName = options === null || options === void 0 ? void 0 : options.businessName;\n var learnMoreLink = options === null || options === void 0 ? void 0 : options.learnMoreLink;\n var containerRef = React.useRef(null);\n var parsed = React.useMemo(function () {\n return parseStripeProp(rawStripeProp);\n }, [rawStripeProp]);\n\n var _React$useState = React.useState(parsed.tag === 'sync' ? parsed.stripe : null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n stripeState = _React$useState2[0],\n setStripeState = _React$useState2[1];\n\n React.useEffect(function () {\n var isMounted = true;\n\n if (parsed.tag === 'async') {\n parsed.stripePromise.then(function (stripePromise) {\n if (stripePromise && isMounted) {\n setStripeState(stripePromise);\n }\n });\n } else if (parsed.tag === 'sync') {\n setStripeState(parsed.stripe);\n }\n\n return function () {\n isMounted = false;\n };\n }, [parsed]); // Warn on changes to stripe prop\n\n var prevStripe = usePrevious(rawStripeProp);\n React.useEffect(function () {\n if (prevStripe !== null && prevStripe !== rawStripeProp) {\n console.warn('Unsupported prop change on FinancialAccountDisclosure: You cannot change the `stripe` prop after setting it.');\n }\n }, [prevStripe, rawStripeProp]); // Attach react-stripe-js version to stripe.js instance\n\n React.useEffect(function () {\n registerWithStripeJs(stripeState);\n }, [stripeState]);\n React.useEffect(function () {\n var createDisclosure = /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {\n var _yield$stripeState$cr, disclosureContent, error, container;\n\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!(!stripeState || !containerRef.current)) {\n _context.next = 2;\n break;\n }\n\n return _context.abrupt(\"return\");\n\n case 2:\n _context.next = 4;\n return stripeState.createFinancialAccountDisclosure({\n businessName: businessName,\n learnMoreLink: learnMoreLink\n });\n\n case 4:\n _yield$stripeState$cr = _context.sent;\n disclosureContent = _yield$stripeState$cr.htmlElement;\n error = _yield$stripeState$cr.error;\n\n if (error && onError) {\n onError(error);\n } else if (disclosureContent) {\n container = containerRef.current;\n container.innerHTML = '';\n container.appendChild(disclosureContent);\n\n if (onLoad) {\n onLoad();\n }\n }\n\n case 8:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function createDisclosure() {\n return _ref2.apply(this, arguments);\n };\n }();\n\n createDisclosure();\n }, [stripeState, businessName, learnMoreLink, onLoad, onError]);\n return /*#__PURE__*/React.createElement('div', {\n ref: containerRef\n });\n};\n\nvar IssuingDisclosure = function IssuingDisclosure(_ref) {\n var rawStripeProp = _ref.stripe,\n onLoad = _ref.onLoad,\n onError = _ref.onError,\n options = _ref.options;\n var issuingProgramID = options === null || options === void 0 ? void 0 : options.issuingProgramID;\n var publicCardProgramName = options === null || options === void 0 ? void 0 : options.publicCardProgramName;\n var learnMoreLink = options === null || options === void 0 ? void 0 : options.learnMoreLink;\n var containerRef = React.useRef(null);\n var parsed = React.useMemo(function () {\n return parseStripeProp(rawStripeProp);\n }, [rawStripeProp]);\n\n var _React$useState = React.useState(parsed.tag === 'sync' ? parsed.stripe : null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n stripeState = _React$useState2[0],\n setStripeState = _React$useState2[1];\n\n React.useEffect(function () {\n var isMounted = true;\n\n if (parsed.tag === 'async') {\n parsed.stripePromise.then(function (stripePromise) {\n if (stripePromise && isMounted) {\n setStripeState(stripePromise);\n }\n });\n } else if (parsed.tag === 'sync') {\n setStripeState(parsed.stripe);\n }\n\n return function () {\n isMounted = false;\n };\n }, [parsed]); // Warn on changes to stripe prop\n\n var prevStripe = usePrevious(rawStripeProp);\n React.useEffect(function () {\n if (prevStripe !== null && prevStripe !== rawStripeProp) {\n console.warn('Unsupported prop change on IssuingDisclosure: You cannot change the `stripe` prop after setting it.');\n }\n }, [prevStripe, rawStripeProp]); // Attach react-stripe-js version to stripe.js instance\n\n React.useEffect(function () {\n registerWithStripeJs(stripeState);\n }, [stripeState]);\n React.useEffect(function () {\n var createDisclosure = /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {\n var _yield$stripeState$cr, disclosureContent, error, container;\n\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!(!stripeState || !containerRef.current)) {\n _context.next = 2;\n break;\n }\n\n return _context.abrupt(\"return\");\n\n case 2:\n _context.next = 4;\n return stripeState.createIssuingDisclosure({\n issuingProgramID: issuingProgramID,\n publicCardProgramName: publicCardProgramName,\n learnMoreLink: learnMoreLink\n });\n\n case 4:\n _yield$stripeState$cr = _context.sent;\n disclosureContent = _yield$stripeState$cr.htmlElement;\n error = _yield$stripeState$cr.error;\n\n if (error && onError) {\n onError(error);\n } else if (disclosureContent) {\n container = containerRef.current;\n container.innerHTML = '';\n container.appendChild(disclosureContent);\n\n if (onLoad) {\n onLoad();\n }\n }\n\n case 8:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function createDisclosure() {\n return _ref2.apply(this, arguments);\n };\n }();\n\n createDisclosure();\n }, [stripeState, issuingProgramID, publicCardProgramName, learnMoreLink, onLoad, onError]);\n return /*#__PURE__*/React.createElement('div', {\n ref: containerRef\n });\n};\n\n/**\n * @docs https://stripe.com/docs/stripe-js/react#usestripe-hook\n */\n\nvar useStripe = function useStripe() {\n var _useElementsOrCheckou = useElementsOrCheckoutContextWithUseCase('calls useStripe()'),\n stripe = _useElementsOrCheckou.stripe;\n\n return stripe;\n};\n\n/**\n * Requires beta access:\n * Contact [Stripe support](https://support.stripe.com/) for more information.\n *\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar AuBankAccountElement = createElementComponent('auBankAccount', isServer);\n/**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar CardElement = createElementComponent('card', isServer);\n/**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar CardNumberElement = createElementComponent('cardNumber', isServer);\n/**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar CardExpiryElement = createElementComponent('cardExpiry', isServer);\n/**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar CardCvcElement = createElementComponent('cardCvc', isServer);\n/**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar IbanElement = createElementComponent('iban', isServer);\nvar PaymentElement = createElementComponent('payment', isServer);\n/**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar ExpressCheckoutElement = createElementComponent('expressCheckout', isServer);\n/**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar PaymentRequestButtonElement = createElementComponent('paymentRequestButton', isServer);\n/**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar LinkAuthenticationElement = createElementComponent('linkAuthentication', isServer);\n/**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar AddressElement = createElementComponent('address', isServer);\n/**\n * @deprecated\n * Use `AddressElement` instead.\n *\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar ShippingAddressElement = createElementComponent('shippingAddress', isServer);\n/**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar PaymentMethodMessagingElement = createElementComponent('paymentMethodMessaging', isServer);\n/**\n * Requires beta access:\n * Contact [Stripe support](https://support.stripe.com/) for more information.\n */\n\nvar TaxIdElement = createElementComponent('taxId', isServer);\n\nexport { AddressElement, AuBankAccountElement, CardCvcElement, CardElement, CardExpiryElement, CardNumberElement, Elements, ElementsConsumer, EmbeddedCheckout, EmbeddedCheckoutProvider, ExpressCheckoutElement, FinancialAccountDisclosure, IbanElement, IssuingDisclosure, LinkAuthenticationElement, PaymentElement, PaymentMethodMessagingElement, PaymentRequestButtonElement, ShippingAddressElement, TaxIdElement, useElements, useStripe };\n","'use client'\n\nimport { useState, useEffect, useMemo } from 'react'\nimport { loadStripe, Stripe } from '@stripe/stripe-js'\nimport {\n Elements,\n PaymentElement,\n useStripe,\n useElements,\n} from '@stripe/react-stripe-js'\nimport { Button } from '@marcoschwartz/lite-ui'\n\ninterface PaymentFormProps {\n customerId: number\n onSuccess: () => void\n onCancel: () => void\n onSubmit: (stripePaymentMethodId: string, setAsDefault: boolean) => Promise<{ success: boolean; error?: string }>\n}\n\nfunction PaymentForm({ customerId, onSuccess, onCancel, onSubmit }: PaymentFormProps) {\n const stripe = useStripe()\n const elements = useElements()\n const [isProcessing, setIsProcessing] = useState(false)\n const [errorMessage, setErrorMessage] = useState<string | null>(null)\n const [setAsDefault, setSetAsDefault] = useState(false)\n\n // Suppress unused customerId warning - it's passed for future use\n void customerId\n\n const handleSubmit = async (e: React.FormEvent) => {\n e.preventDefault()\n\n if (!stripe || !elements) {\n return\n }\n\n setIsProcessing(true)\n setErrorMessage(null)\n\n try {\n // Submit the elements first (required by Stripe)\n const { error: submitError } = await elements.submit()\n\n if (submitError) {\n setErrorMessage(submitError.message || 'Failed to validate payment details')\n setIsProcessing(false)\n return\n }\n\n // Now create the payment method\n const { error, paymentMethod } = await stripe.createPaymentMethod({\n elements,\n })\n\n if (error) {\n setErrorMessage(error.message || 'Failed to create payment method')\n setIsProcessing(false)\n return\n }\n\n // Call the provided onSubmit handler to attach the payment method\n const result = await onSubmit(paymentMethod!.id, setAsDefault)\n\n if (!result.success) {\n throw new Error(result.error || 'Failed to add payment method')\n }\n\n onSuccess()\n } catch (error: unknown) {\n setErrorMessage(error instanceof Error ? error.message : String(error) || 'An error occurred')\n setIsProcessing(false)\n }\n }\n\n return (\n <form onSubmit={handleSubmit} className=\"space-y-4\">\n <PaymentElement />\n\n {errorMessage && (\n <div className=\"text-red-600 dark:text-red-400 text-sm\">\n {errorMessage}\n </div>\n )}\n\n <div className=\"flex items-center gap-2 pt-2\">\n <input\n type=\"checkbox\"\n id=\"setDefault\"\n checked={setAsDefault}\n onChange={(e) => setSetAsDefault(e.target.checked)}\n className=\"w-4 h-4 text-blue-600 border-gray-300 rounded focus:ring-blue-500\"\n />\n <label\n htmlFor=\"setDefault\"\n className=\"text-sm text-gray-600 dark:text-gray-400\"\n >\n Set as default payment method\n </label>\n </div>\n\n <div className=\"flex gap-3 justify-end mt-6 pt-4 border-t border-gray-200 dark:border-gray-700\">\n <Button\n type=\"button\"\n variant=\"secondary\"\n onClick={onCancel}\n disabled={isProcessing}\n >\n Cancel\n </Button>\n <Button type=\"submit\" variant=\"primary\" disabled={!stripe || isProcessing}>\n {isProcessing ? 'Processing...' : 'Add Payment Method'}\n </Button>\n </div>\n </form>\n )\n}\n\nexport interface AddPaymentMethodFormProps {\n customerId: number\n stripePublishableKey: string\n onSuccess: () => void\n onCancel: () => void\n onSubmit: (stripePaymentMethodId: string, setAsDefault: boolean) => Promise<{ success: boolean; error?: string }>\n}\n\nexport function AddPaymentMethodForm({\n customerId,\n stripePublishableKey,\n onSuccess,\n onCancel,\n onSubmit,\n}: AddPaymentMethodFormProps) {\n const [stripePromise, setStripePromise] = useState<Promise<Stripe | null> | null>(null)\n const [theme, setTheme] = useState<'light' | 'dark'>('light')\n\n useEffect(() => {\n if (stripePublishableKey) {\n setStripePromise(loadStripe(stripePublishableKey))\n }\n }, [stripePublishableKey])\n\n useEffect(() => {\n // Check if dark mode is active\n const isDark = document.documentElement.classList.contains('dark') ||\n window.matchMedia('(prefers-color-scheme: dark)').matches\n setTheme(isDark ? 'dark' : 'light')\n\n // Listen for theme changes\n const observer = new MutationObserver(() => {\n const isDark = document.documentElement.classList.contains('dark')\n setTheme(isDark ? 'dark' : 'light')\n })\n\n observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['class'],\n })\n\n return () => observer.disconnect()\n }, [])\n\n const stripeOptions = useMemo(() => ({\n mode: 'setup' as const,\n currency: 'usd',\n paymentMethodCreation: 'manual' as const,\n appearance: {\n theme: theme === 'dark' ? ('night' as const) : ('stripe' as const),\n variables: {\n colorPrimary: '#3b82f6',\n colorBackground: theme === 'dark' ? '#1f2937' : '#ffffff',\n colorText: theme === 'dark' ? '#f9fafb' : '#1f2937',\n colorDanger: '#ef4444',\n fontFamily: 'system-ui, -apple-system, sans-serif',\n spacingUnit: '4px',\n borderRadius: '6px',\n },\n },\n }), [theme])\n\n if (!stripePromise) {\n return (\n <div className=\"text-center py-8\">\n <p className=\"text-gray-600 dark:text-gray-400\">Loading...</p>\n </div>\n )\n }\n\n return (\n <Elements stripe={stripePromise} options={stripeOptions}>\n <PaymentForm\n customerId={customerId}\n onSuccess={onSuccess}\n onCancel={onCancel}\n onSubmit={onSubmit}\n />\n </Elements>\n )\n}\n\nexport default AddPaymentMethodForm\n","'use client'\n\nimport { useState, useEffect } from 'react'\nimport { Button, Tabs, Card, TextInput, Select, Radio } from '@marcoschwartz/lite-ui'\nimport { useRouter } from 'next/navigation'\nimport './styles.css'\nimport {\n removePaymentMethod,\n setDefaultPaymentMethod,\n createSubscription,\n cancelSubscription,\n addPaymentMethod,\n fetchPaymentConfig,\n calculateTax,\n updateCustomer,\n type TaxCalculation,\n type CustomerUpdateData\n} from '../../server/Billing/actions'\nimport type { Customer, PaymentMethod, Entitlement, FeatureUsage } from '../../server/Billing/types'\nimport { Modal } from '../Modal'\nimport { AddPaymentMethodForm } from '../AddPaymentMethodForm'\n\n// Usage bar component for displaying entitlement limits (like apteva-app)\nfunction UsageBar({ label, used, limit, unit = \"\" }: { label: string; used: number; limit: number; unit?: string }) {\n const percentage = limit > 0 ? (used / limit) * 100 : 0;\n const isWarning = percentage > 80;\n\n return (\n <div className=\"space-y-2\">\n <div className=\"flex justify-between text-sm\">\n <span className=\"text-gray-700 dark:text-gray-300\">{label}</span>\n <span className=\"text-gray-600 dark:text-gray-400\">\n {used.toLocaleString()}{unit} / {limit.toLocaleString()}{unit}\n </span>\n </div>\n <div className=\"w-full bg-gray-200 dark:bg-gray-700 rounded-full h-2\">\n <div\n className={`h-2 rounded-full transition-all ${\n isWarning ? 'bg-yellow-500' : 'bg-blue-600'\n }`}\n style={{ width: `${Math.min(percentage, 100)}%` }}\n />\n </div>\n <div className=\"text-xs text-gray-500 dark:text-gray-400\">\n {percentage.toFixed(1)}% used\n </div>\n </div>\n );\n}\n\ninterface ActionConfig {\n baseUrl: string;\n apiKey?: string;\n accessToken?: string;\n projectId: number;\n}\n\ninterface SubscriptionDisplay {\n id: number;\n plan: string;\n status: string;\n price: string;\n period: string;\n nextBilling: string;\n cancelAtPeriodEnd?: boolean;\n}\n\ninterface InvoiceDisplay {\n id: string;\n date: string;\n amount: string;\n status: string;\n url: string;\n}\n\ninterface PlanDisplay {\n id: number;\n priceId: number;\n name: string;\n description?: string;\n price: string;\n period: string;\n features: string[];\n current: boolean;\n popular?: boolean;\n}\n\ninterface BillingContentProps {\n subscription: SubscriptionDisplay | null;\n invoices: InvoiceDisplay[];\n paymentMethods: PaymentMethod[];\n plans: PlanDisplay[];\n customer: Customer;\n entitlements: Entitlement[];\n featureUsage: Record<string, FeatureUsage>;\n actionConfig: ActionConfig;\n initialTaxInfo?: TaxCalculation | null;\n className?: string;\n}\n\nexport function BillingContent({\n subscription,\n invoices,\n paymentMethods,\n plans,\n customer,\n featureUsage,\n actionConfig,\n initialTaxInfo,\n className = ''\n}: BillingContentProps) {\n const router = useRouter();\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const [success, setSuccess] = useState<string | null>(null);\n\n // Tab state - use key to force re-render when switching programmatically\n const [activeTabIndex, setActiveTabIndex] = useState(0);\n\n // Modal states\n const [isAddPaymentModalOpen, setIsAddPaymentModalOpen] = useState(false);\n const [isRemovePaymentModalOpen, setIsRemovePaymentModalOpen] = useState(false);\n const [isCancelModalOpen, setIsCancelModalOpen] = useState(false);\n const [isUpgradeModalOpen, setIsUpgradeModalOpen] = useState(false);\n const [selectedPaymentMethod, setSelectedPaymentMethod] = useState<PaymentMethod | null>(null);\n const [selectedPlan, setSelectedPlan] = useState<PlanDisplay | null>(null);\n const [selectedUpgradePaymentMethod, setSelectedUpgradePaymentMethod] = useState<number | null>(null);\n const [stripePublishableKey, setStripePublishableKey] = useState<string | null>(null);\n const [stripeLoading, setStripeLoading] = useState(false);\n const [isUpgrading, setIsUpgrading] = useState(false);\n const [upgradeSuccess, setUpgradeSuccess] = useState(false);\n // Initialize with server-side tax info if provided\n const [taxInfo, setTaxInfo] = useState<TaxCalculation | null>(initialTaxInfo || null);\n const [taxLoading, setTaxLoading] = useState(false);\n\n // Preferences form state\n const [preferencesForm, setPreferencesForm] = useState({\n name: customer.name || '',\n email: customer.email || '',\n phone: customer.phone || '',\n customer_type: customer.customer_type || 'individual' as 'individual' | 'business',\n company_name: customer.company_name || '',\n vat_number: customer.vat_number || '',\n address_line1: customer.address?.line1 || '',\n address_line2: customer.address?.line2 || '',\n address_city: customer.address?.city || '',\n address_state: customer.address?.state || '',\n address_postal_code: customer.address?.postal_code || '',\n address_country: customer.address?.country || '',\n });\n const [preferencesSaving, setPreferencesSaving] = useState(false);\n const [preferencesSuccess, setPreferencesSuccess] = useState(false);\n\n // Fetch Stripe publishable key on mount\n useEffect(() => {\n async function loadStripeConfig() {\n setStripeLoading(true);\n try {\n const result = await fetchPaymentConfig(actionConfig);\n if (result.success && result.data?.public_key) {\n setStripePublishableKey(result.data.public_key);\n }\n } catch (err) {\n console.error('Failed to load Stripe config:', err);\n } finally {\n setStripeLoading(false);\n }\n }\n loadStripeConfig();\n }, [actionConfig]);\n\n const handleCancelSubscription = async () => {\n if (!subscription) return;\n\n setIsLoading(true);\n setError(null);\n\n const result = await cancelSubscription(actionConfig, subscription.id);\n\n if (!result.success) {\n setError(result.error || 'Failed to cancel subscription');\n } else {\n setSuccess('Subscription will be canceled at the end of the billing period');\n setIsCancelModalOpen(false);\n }\n\n setIsLoading(false);\n };\n\n const handleAddPaymentMethod = async (stripePaymentMethodId: string, setAsDefault: boolean) => {\n const result = await addPaymentMethod(actionConfig, customer.id, stripePaymentMethodId, setAsDefault);\n return result;\n };\n\n const handleAddPaymentSuccess = () => {\n setIsAddPaymentModalOpen(false);\n setSuccess('Payment method added successfully');\n router.refresh();\n };\n\n const handleRemovePaymentClick = (pm: PaymentMethod) => {\n setSelectedPaymentMethod(pm);\n setIsRemovePaymentModalOpen(true);\n };\n\n const handleConfirmRemovePayment = async () => {\n if (!selectedPaymentMethod) return;\n\n setIsLoading(true);\n setError(null);\n\n // Use Stripe payment method ID if available, otherwise use database ID\n const paymentMethodId = selectedPaymentMethod.provider_payment_method_id || String(selectedPaymentMethod.id);\n const result = await removePaymentMethod(actionConfig, customer.id, paymentMethodId);\n\n if (!result.success) {\n setError(result.error || 'Failed to remove payment method');\n } else {\n setSuccess('Payment method removed');\n setIsRemovePaymentModalOpen(false);\n setSelectedPaymentMethod(null);\n router.refresh();\n }\n\n setIsLoading(false);\n };\n\n // Open upgrade modal when selecting a plan\n const handleSelectPlan = async (plan: PlanDisplay) => {\n if (plan.current || !plan.priceId) return;\n\n setSelectedPlan(plan);\n setIsUpgradeModalOpen(true);\n setError(null);\n\n // Pre-select default payment method if plan is paid\n const priceNum = parseFloat(plan.price.replace(/[^0-9.]/g, '')) || 0;\n if (priceNum > 0) {\n const defaultPaymentMethod = paymentMethods.find((pm) => pm.is_default);\n setSelectedUpgradePaymentMethod(defaultPaymentMethod?.id || null);\n\n const amountInCents = Math.round(priceNum * 100);\n\n // Use server-side tax rate for immediate estimate while API call is pending\n if (initialTaxInfo && initialTaxInfo.tax_rate > 0) {\n const estimatedTax = Math.round(amountInCents * initialTaxInfo.tax_rate / 100);\n setTaxInfo({\n ...initialTaxInfo,\n tax_amount: estimatedTax,\n subtotal: amountInCents,\n total: amountInCents + estimatedTax\n });\n } else {\n setTaxInfo(null);\n }\n\n // Fetch precise tax from API (will update the estimate)\n setTaxLoading(true);\n try {\n const taxResult = await calculateTax(actionConfig, {\n customer_id: customer.id,\n amount: amountInCents,\n product_type: 'digital'\n });\n\n if (taxResult.success && taxResult.data) {\n setTaxInfo(taxResult.data);\n }\n } catch (err) {\n console.error('Failed to calculate tax:', err);\n } finally {\n setTaxLoading(false);\n }\n } else {\n setSelectedUpgradePaymentMethod(null);\n setTaxInfo(null);\n }\n };\n\n // Confirm and process the upgrade\n // Always use createSubscription - it handles both new subscriptions and plan changes\n // (the backend cancels old subscription and creates new one)\n const handleConfirmUpgrade = async () => {\n if (!selectedPlan) return;\n\n const priceNum = parseFloat(selectedPlan.price.replace(/[^0-9.]/g, '')) || 0;\n\n // For paid plans, require payment method if available\n if (priceNum > 0 && !selectedUpgradePaymentMethod && paymentMethods.length > 0) {\n setError('Please select a payment method');\n return;\n }\n\n setIsUpgrading(true);\n setError(null);\n\n try {\n // Always use createSubscription - backend handles canceling old subscription\n // Tax is calculated server-side in create-subscription function\n const paymentMethodId = selectedUpgradePaymentMethod\n ? paymentMethods.find(pm => pm.id === selectedUpgradePaymentMethod)?.provider_payment_method_id || String(selectedUpgradePaymentMethod)\n : undefined;\n\n const result = await createSubscription(\n actionConfig,\n customer.id,\n selectedPlan.priceId,\n paymentMethodId\n );\n if (!result.success) {\n setError(result.error || 'Failed to create subscription');\n setIsUpgrading(false);\n return;\n }\n\n // Success\n setIsUpgradeModalOpen(false);\n setUpgradeSuccess(true);\n router.refresh();\n } catch (err) {\n setError(err instanceof Error ? err.message : 'An error occurred');\n } finally {\n setIsUpgrading(false);\n }\n };\n\n const handleCloseSuccessModal = () => {\n setUpgradeSuccess(false);\n setSelectedPlan(null);\n setSelectedUpgradePaymentMethod(null);\n setTaxInfo(null);\n };\n\n // Save preferences\n const handleSavePreferences = async () => {\n setPreferencesSaving(true);\n setError(null);\n setPreferencesSuccess(false);\n\n try {\n const updateData: CustomerUpdateData = {\n name: preferencesForm.name || undefined,\n email: preferencesForm.email || undefined,\n phone: preferencesForm.phone || undefined,\n customer_type: preferencesForm.customer_type,\n company_name: preferencesForm.customer_type === 'business' ? preferencesForm.company_name : undefined,\n vat_number: preferencesForm.vat_number || undefined,\n address: {\n line1: preferencesForm.address_line1 || undefined,\n line2: preferencesForm.address_line2 || undefined,\n city: preferencesForm.address_city || undefined,\n state: preferencesForm.address_state || undefined,\n postal_code: preferencesForm.address_postal_code || undefined,\n country: preferencesForm.address_country || undefined,\n },\n };\n\n const result = await updateCustomer(actionConfig, customer.id, updateData);\n\n if (!result.success) {\n setError(result.error || 'Failed to save preferences');\n } else {\n setPreferencesSuccess(true);\n router.refresh();\n }\n } catch (err) {\n setError(err instanceof Error ? err.message : 'An error occurred');\n } finally {\n setPreferencesSaving(false);\n }\n };\n\n const handleSetDefaultPaymentMethod = async (pm: PaymentMethod) => {\n setIsLoading(true);\n setError(null);\n\n // Use Stripe payment method ID if available, otherwise use database ID\n const paymentMethodId = pm.provider_payment_method_id || String(pm.id);\n const result = await setDefaultPaymentMethod(actionConfig, customer.id, paymentMethodId);\n\n if (!result.success) {\n setError(result.error || 'Failed to set default payment method');\n } else {\n setSuccess('Default payment method updated');\n router.refresh();\n }\n\n setIsLoading(false);\n };\n\n // Switch to Plans tab when Change Plan is clicked\n const handleChangePlanClick = () => {\n setActiveTabIndex(1); // Plans is index 1\n };\n\n const tabs = [\n {\n id: 'subscription',\n label: 'Subscription',\n content: (\n <div className=\"space-y-6 mt-6\">\n {/* Status Messages */}\n {error && (\n <div className=\"p-4 bg-red-50 dark:bg-red-900/20 text-red-800 dark:text-red-200 rounded-lg\">\n {error}\n </div>\n )}\n {success && (\n <div className=\"p-4 bg-green-50 dark:bg-green-900/20 text-green-800 dark:text-green-200 rounded-lg\">\n {success}\n </div>\n )}\n\n {/* Current Plan */}\n <Card>\n <div>\n <div className=\"flex items-start justify-between mb-4\">\n <div>\n <h3 className=\"text-lg font-semibold mb-2\">Current Plan</h3>\n {subscription ? (\n <>\n <div className=\"flex items-baseline gap-2\">\n <span className=\"text-3xl font-bold\">{subscription.price}</span>\n <span className=\"text-gray-600 dark:text-gray-400\">/ {subscription.period}</span>\n </div>\n <p className=\"mt-2 text-sm text-gray-600 dark:text-gray-400\">\n {subscription.plan}\n </p>\n </>\n ) : (\n <p className=\"text-gray-600 dark:text-gray-400\">No active subscription</p>\n )}\n </div>\n {subscription && (\n <span className={`inline-flex items-center rounded-full px-3 py-1 text-sm font-medium ${\n subscription.status === 'active'\n ? 'bg-green-100 dark:bg-green-900/30 text-green-800 dark:text-green-300'\n : subscription.status === 'canceled'\n ? 'bg-red-100 dark:bg-red-900/30 text-red-800 dark:text-red-300'\n : 'bg-yellow-100 dark:bg-yellow-900/30 text-yellow-800 dark:text-yellow-300'\n }`}>\n {subscription.cancelAtPeriodEnd ? 'Canceling' : subscription.status}\n </span>\n )}\n </div>\n\n {subscription && (\n <div className=\"space-y-3 mb-4\">\n <div className=\"flex justify-between text-sm\">\n <span className=\"text-gray-600 dark:text-gray-400\">Next billing date</span>\n <span className=\"font-medium\">{subscription.nextBilling}</span>\n </div>\n </div>\n )}\n\n <div className=\"flex gap-3\">\n <Button className=\"flex-1\" disabled={isLoading} onClick={handleChangePlanClick}>\n {subscription ? 'Change Plan' : 'Choose a Plan'}\n </Button>\n {subscription && !subscription.cancelAtPeriodEnd && (\n <Button\n variant=\"secondary\"\n onClick={() => setIsCancelModalOpen(true)}\n disabled={isLoading}\n >\n Cancel\n </Button>\n )}\n </div>\n </div>\n </Card>\n\n {/* Feature Usage */}\n {Object.keys(featureUsage).length > 0 && (\n <Card>\n <h3 className=\"text-lg font-semibold mb-4\">Current Usage</h3>\n <div className=\"space-y-4\">\n {Object.values(featureUsage).map((usage) => {\n // Format feature name\n const featureName = usage.feature_name || usage.feature_key\n .replace(/_/g, ' ')\n .replace(/\\b\\w/g, (c: string) => c.toUpperCase());\n\n // If it has a numeric limit > 0, show as progress bar\n if (usage.limit > 0) {\n return (\n <UsageBar\n key={usage.feature_key}\n label={featureName}\n used={usage.current_usage}\n limit={usage.limit}\n unit={usage.unit ? ` ${usage.unit}` : ''}\n />\n );\n }\n\n // For boolean/unlimited features, show as simple row\n const isEnabled = usage.feature_type === 'boolean' || usage.limit === 0;\n\n return (\n <div key={usage.feature_key} className=\"flex justify-between items-center text-sm\">\n <span className=\"text-gray-700 dark:text-gray-300\">{featureName}</span>\n {isEnabled ? (\n <span className=\"flex items-center gap-1.5 text-green-600 dark:text-green-400\">\n <svg className=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M5 13l4 4L19 7\" />\n </svg>\n Included\n </span>\n ) : (\n <span className=\"flex items-center gap-1.5 text-gray-400 dark:text-gray-500\">\n <svg className=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M6 18L18 6M6 6l12 12\" />\n </svg>\n Not included\n </span>\n )}\n </div>\n );\n })}\n </div>\n </Card>\n )}\n </div>\n ),\n },\n {\n id: 'plans',\n label: 'Plans',\n content: (\n <div className=\"space-y-6 mt-6\">\n <div>\n <h3 className=\"text-lg font-semibold mb-2\">Choose Your Plan</h3>\n <p className=\"text-sm text-gray-600 dark:text-gray-400 mb-6\">\n Select the plan that best fits your needs. You can upgrade or downgrade at any time.\n </p>\n </div>\n\n {plans.length === 0 ? (\n <p className=\"text-gray-500 dark:text-gray-400\">No plans available.</p>\n ) : (\n <div className=\"grid grid-cols-1 md:grid-cols-3 gap-6\">\n {plans.map((plan) => (\n <div\n key={plan.id}\n className={`okt-plan-card relative p-6 flex flex-col ${\n plan.current\n ? 'okt-plan-card-selected'\n : 'okt-plan-card-default'\n } ${plan.popular ? 'shadow-lg' : ''}`}\n >\n {plan.popular && !plan.current && (\n <div className=\"absolute -top-3 left-1/2 -translate-x-1/2\">\n <span className=\"bg-blue-600 text-white text-xs font-semibold px-3 py-1 rounded-full\">\n Most Popular\n </span>\n </div>\n )}\n {plan.current && (\n <div className=\"absolute -top-3 left-1/2 -translate-x-1/2\">\n <span className=\"bg-green-600 text-white text-xs font-semibold px-3 py-1 rounded-full\">\n Current Plan\n </span>\n </div>\n )}\n\n <div className=\"mb-6\">\n <h4 className=\"text-xl font-bold mb-2\">{plan.name}</h4>\n {plan.description && (\n <p className=\"text-sm text-gray-600 dark:text-gray-400 mb-2\">{plan.description}</p>\n )}\n <div className=\"flex items-baseline gap-2\">\n <span className=\"text-3xl font-bold\">{plan.price}</span>\n <span className=\"text-gray-600 dark:text-gray-400\">/ {plan.period}</span>\n </div>\n </div>\n\n <ul className=\"space-y-3 mb-6 flex-1\">\n {plan.features.map((feature, idx) => (\n <li key={idx} className=\"flex items-start gap-2 text-sm\">\n <svg\n className=\"w-5 h-5 text-green-600 dark:text-green-400 flex-shrink-0 mt-0.5\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M5 13l4 4L19 7\"\n />\n </svg>\n <span className=\"text-gray-700 dark:text-gray-300\">{feature}</span>\n </li>\n ))}\n </ul>\n\n <Button\n className=\"w-full\"\n disabled={plan.current || isLoading}\n variant={plan.current ? 'secondary' : 'primary'}\n onClick={() => handleSelectPlan(plan)}\n >\n {plan.current ? 'Current Plan' : subscription ? 'Switch Plan' : 'Select Plan'}\n </Button>\n </div>\n ))}\n </div>\n )}\n </div>\n ),\n },\n {\n id: 'invoices',\n label: 'Invoices',\n content: (\n <div className=\"mt-6\">\n <Card>\n <h3 className=\"text-lg font-semibold mb-2\">Invoice History</h3>\n <p className=\"text-sm text-gray-600 dark:text-gray-400 mb-6\">\n View and download your past invoices\n </p>\n\n {invoices.length === 0 ? (\n <p className=\"text-gray-500 dark:text-gray-400\">No invoices yet.</p>\n ) : (\n <div className=\"space-y-3\">\n {invoices.map((invoice) => (\n <div key={invoice.id} className=\"okt-card-border flex items-center justify-between p-4 transition-colors\">\n <div className=\"flex items-center gap-4\">\n <div className=\"h-10 w-10 rounded-full bg-blue-100 dark:bg-blue-900/30 flex items-center justify-center\">\n <svg className=\"w-5 h-5 text-blue-600 dark:text-blue-400\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z\" />\n </svg>\n </div>\n <div>\n <div className=\"flex items-center gap-2\">\n <p className=\"font-medium text-sm\">{invoice.id}</p>\n <span className={`inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium ${\n invoice.status === 'paid'\n ? 'bg-green-100 dark:bg-green-900/30 text-green-800 dark:text-green-300'\n : invoice.status === 'open'\n ? 'bg-yellow-100 dark:bg-yellow-900/30 text-yellow-800 dark:text-yellow-300'\n : 'bg-gray-100 dark:bg-gray-800 text-gray-800 dark:text-gray-300'\n }`}>\n {invoice.status}\n </span>\n </div>\n <p className=\"text-xs text-gray-600 dark:text-gray-400\">{invoice.date}</p>\n </div>\n </div>\n <div className=\"flex items-center gap-4\">\n <p className=\"font-semibold\">{invoice.amount}</p>\n {invoice.url && invoice.url !== '#' && (\n <Button\n variant=\"secondary\"\n size=\"sm\"\n onClick={() => window.open(invoice.url, '_blank')}\n >\n Download\n </Button>\n )}\n </div>\n </div>\n ))}\n </div>\n )}\n </Card>\n </div>\n ),\n },\n {\n id: 'payment',\n label: 'Payment Method',\n content: (\n <div className=\"mt-6\">\n <Card>\n <h3 className=\"text-lg font-semibold mb-2\">Payment Methods</h3>\n <p className=\"text-sm text-gray-600 dark:text-gray-400 mb-6\">\n Manage your payment methods\n </p>\n\n {paymentMethods.length === 0 ? (\n <div className=\"okt-empty-border text-center py-8\">\n <p className=\"text-gray-500 dark:text-gray-400 mb-4\">No payment methods on file</p>\n <Button onClick={() => setIsAddPaymentModalOpen(true)} disabled={stripeLoading}>\n {stripeLoading ? 'Loading...' : 'Add Payment Method'}\n </Button>\n </div>\n ) : (\n <div className=\"space-y-3\">\n {paymentMethods.map((pm) => (\n <div key={pm.id} className=\"okt-card-border flex items-center justify-between p-4\">\n <div className=\"flex items-center gap-4\">\n <div className=\"h-10 w-10 rounded-full bg-gray-100 dark:bg-neutral-800 flex items-center justify-center\">\n <svg className=\"w-5 h-5 text-gray-600 dark:text-gray-400\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M3 10h18M7 15h1m4 0h1m-7 4h12a3 3 0 003-3V8a3 3 0 00-3-3H6a3 3 0 00-3 3v8a3 3 0 003 3z\" />\n </svg>\n </div>\n <div>\n <div className=\"flex items-center gap-2\">\n <p className=\"font-medium text-sm\">\n {pm.card_brand || pm.type} •••• {pm.card_last4 || pm.bank_last4 || '****'}\n </p>\n {pm.is_default && (\n <span className=\"inline-flex items-center rounded-full bg-blue-100 dark:bg-blue-900/30 px-2 py-0.5 text-xs font-medium text-blue-800 dark:text-blue-300\">\n Default\n </span>\n )}\n </div>\n {pm.card_exp_month && pm.card_exp_year && (\n <p className=\"text-xs text-gray-600 dark:text-gray-400\">\n Expires {pm.card_exp_month}/{pm.card_exp_year}\n </p>\n )}\n </div>\n </div>\n <div className=\"flex items-center gap-2\">\n {!pm.is_default && (\n <Button\n variant=\"secondary\"\n size=\"sm\"\n onClick={() => handleSetDefaultPaymentMethod(pm)}\n disabled={isLoading}\n >\n Set Default\n </Button>\n )}\n <Button\n variant=\"secondary\"\n size=\"sm\"\n onClick={() => handleRemovePaymentClick(pm)}\n disabled={isLoading}\n >\n Remove\n </Button>\n </div>\n </div>\n ))}\n\n <Button\n variant=\"secondary\"\n className=\"w-full mt-4\"\n onClick={() => setIsAddPaymentModalOpen(true)}\n disabled={stripeLoading}\n >\n {stripeLoading ? 'Loading...' : 'Add Payment Method'}\n </Button>\n </div>\n )}\n </Card>\n </div>\n ),\n },\n {\n id: 'preferences',\n label: 'Preferences',\n content: (\n <div className=\"mt-6\">\n <Card>\n <h3 className=\"text-lg font-semibold mb-2\">Billing Preferences</h3>\n <p className=\"text-sm text-gray-600 dark:text-gray-400 mb-6\">\n Manage your billing information and tax settings\n </p>\n\n {/* Success message */}\n {preferencesSuccess && (\n <div className=\"p-4 mb-6 bg-green-50 dark:bg-green-900/20 text-green-800 dark:text-green-200 rounded-lg\">\n Preferences saved successfully\n </div>\n )}\n\n <div className=\"space-y-6\">\n {/* Customer Type */}\n <div>\n <label className=\"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2\">\n Customer Type\n </label>\n <Radio\n name=\"customer_type\"\n options={[\n { value: 'individual', label: 'Individual' },\n { value: 'business', label: 'Business' }\n ]}\n value={preferencesForm.customer_type}\n onChange={(value) => setPreferencesForm({ ...preferencesForm, customer_type: value as 'individual' | 'business' })}\n orientation=\"horizontal\"\n />\n </div>\n\n {/* Basic Info */}\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n <TextInput\n label={preferencesForm.customer_type === 'business' ? 'Contact Name' : 'Full Name'}\n value={preferencesForm.name}\n onChange={(e) => setPreferencesForm({ ...preferencesForm, name: e.target.value })}\n placeholder=\"John Doe\"\n />\n <TextInput\n label=\"Email\"\n type=\"email\"\n value={preferencesForm.email}\n onChange={(e) => setPreferencesForm({ ...preferencesForm, email: e.target.value })}\n placeholder=\"john@example.com\"\n />\n <TextInput\n label=\"Phone\"\n type=\"tel\"\n value={preferencesForm.phone}\n onChange={(e) => setPreferencesForm({ ...preferencesForm, phone: e.target.value })}\n placeholder=\"+1 555 123 4567\"\n />\n {preferencesForm.customer_type === 'business' && (\n <TextInput\n label=\"Company Name\"\n value={preferencesForm.company_name}\n onChange={(e) => setPreferencesForm({ ...preferencesForm, company_name: e.target.value })}\n placeholder=\"Acme Inc.\"\n />\n )}\n </div>\n\n {/* VAT Number (for business) */}\n {preferencesForm.customer_type === 'business' && (\n <TextInput\n label=\"VAT Number\"\n value={preferencesForm.vat_number}\n onChange={(e) => setPreferencesForm({ ...preferencesForm, vat_number: e.target.value })}\n placeholder=\"EU123456789\"\n helperText=\"For EU businesses, provide your VAT ID to enable reverse charge\"\n />\n )}\n\n {/* Address */}\n <div>\n <h4 className=\"text-sm font-medium text-gray-700 dark:text-gray-300 mb-3\">Billing Address</h4>\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n <div className=\"md:col-span-2\">\n <TextInput\n label=\"Address Line 1\"\n value={preferencesForm.address_line1}\n onChange={(e) => setPreferencesForm({ ...preferencesForm, address_line1: e.target.value })}\n placeholder=\"123 Main Street\"\n />\n </div>\n <div className=\"md:col-span-2\">\n <TextInput\n label=\"Address Line 2\"\n value={preferencesForm.address_line2}\n onChange={(e) => setPreferencesForm({ ...preferencesForm, address_line2: e.target.value })}\n placeholder=\"Apt 4B\"\n />\n </div>\n <TextInput\n label=\"City\"\n value={preferencesForm.address_city}\n onChange={(e) => setPreferencesForm({ ...preferencesForm, address_city: e.target.value })}\n placeholder=\"New York\"\n />\n <TextInput\n label=\"State / Region\"\n value={preferencesForm.address_state}\n onChange={(e) => setPreferencesForm({ ...preferencesForm, address_state: e.target.value })}\n placeholder=\"NY\"\n />\n <TextInput\n label=\"Postal Code\"\n value={preferencesForm.address_postal_code}\n onChange={(e) => setPreferencesForm({ ...preferencesForm, address_postal_code: e.target.value })}\n placeholder=\"10001\"\n />\n <Select\n label=\"Country\"\n value={preferencesForm.address_country}\n onChange={(value) => setPreferencesForm({ ...preferencesForm, address_country: value })}\n searchable={true}\n searchPlaceholder=\"Search countries...\"\n options={[\n { value: '', label: 'Select country' },\n { value: 'US', label: 'United States' },\n { value: 'CA', label: 'Canada' },\n { value: 'GB', label: 'United Kingdom' },\n { value: 'DE', label: 'Germany' },\n { value: 'FR', label: 'France' },\n { value: 'ES', label: 'Spain' },\n { value: 'IT', label: 'Italy' },\n { value: 'NL', label: 'Netherlands' },\n { value: 'BE', label: 'Belgium' },\n { value: 'AT', label: 'Austria' },\n { value: 'CH', label: 'Switzerland' },\n { value: 'SE', label: 'Sweden' },\n { value: 'NO', label: 'Norway' },\n { value: 'DK', label: 'Denmark' },\n { value: 'FI', label: 'Finland' },\n { value: 'IE', label: 'Ireland' },\n { value: 'PT', label: 'Portugal' },\n { value: 'PL', label: 'Poland' },\n { value: 'CZ', label: 'Czech Republic' },\n { value: 'AU', label: 'Australia' },\n { value: 'NZ', label: 'New Zealand' },\n { value: 'SG', label: 'Singapore' },\n { value: 'JP', label: 'Japan' },\n { value: 'KR', label: 'South Korea' },\n { value: 'IN', label: 'India' },\n { value: 'BR', label: 'Brazil' },\n { value: 'MX', label: 'Mexico' },\n ]}\n />\n </div>\n </div>\n\n {/* Tax info display */}\n {initialTaxInfo && (\n <div className=\"p-4 bg-gray-50 dark:bg-neutral-800 rounded-lg\">\n <h4 className=\"text-sm font-medium text-gray-700 dark:text-gray-300 mb-2\">Tax Information</h4>\n <div className=\"text-sm text-gray-600 dark:text-gray-400\">\n <p>Jurisdiction: {initialTaxInfo.jurisdiction}</p>\n <p>Tax Type: {initialTaxInfo.tax_label}</p>\n <p>Tax Rate: {initialTaxInfo.tax_rate}%</p>\n {initialTaxInfo.reverse_charge && (\n <p className=\"text-blue-600 dark:text-blue-400\">Reverse charge applies</p>\n )}\n </div>\n </div>\n )}\n\n {/* Save Button */}\n <div className=\"okt-divider flex justify-end pt-4\">\n <Button\n onClick={handleSavePreferences}\n disabled={preferencesSaving}\n >\n {preferencesSaving ? 'Saving...' : 'Save Preferences'}\n </Button>\n </div>\n </div>\n </Card>\n </div>\n ),\n },\n ]\n\n return (\n <div className={`okt-billing ${className}`}>\n <Tabs key={activeTabIndex} tabs={tabs} defaultIndex={activeTabIndex} onChange={setActiveTabIndex} />\n\n {/* Add Payment Method Modal */}\n <Modal\n isOpen={isAddPaymentModalOpen}\n onClose={() => setIsAddPaymentModalOpen(false)}\n title=\"Add Payment Method\"\n >\n {stripePublishableKey ? (\n <AddPaymentMethodForm\n customerId={customer.id}\n stripePublishableKey={stripePublishableKey}\n onSuccess={handleAddPaymentSuccess}\n onCancel={() => setIsAddPaymentModalOpen(false)}\n onSubmit={handleAddPaymentMethod}\n />\n ) : (\n <div className=\"text-center py-8\">\n <p className=\"text-gray-600 dark:text-gray-400\">\n {stripeLoading ? 'Loading payment form...' : 'Payment configuration not available'}\n </p>\n </div>\n )}\n </Modal>\n\n {/* Remove Payment Method Modal */}\n <Modal\n isOpen={isRemovePaymentModalOpen}\n onClose={() => {\n setIsRemovePaymentModalOpen(false);\n setSelectedPaymentMethod(null);\n }}\n title=\"Remove Payment Method\"\n >\n <div className=\"space-y-4\">\n <p className=\"text-gray-600 dark:text-gray-400\">\n Are you sure you want to remove this payment method?\n </p>\n\n {selectedPaymentMethod && (\n <div className=\"bg-gray-50 dark:bg-gray-800 rounded-lg p-4\">\n <div className=\"flex items-center gap-3\">\n <div className=\"w-12 h-8 bg-gradient-to-br from-indigo-500 to-purple-600 rounded-lg flex items-center justify-center flex-shrink-0\">\n <svg className=\"w-6 h-6 text-white\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M3 10h18M7 15h1m4 0h1m-7 4h12a3 3 0 003-3V8a3 3 0 00-3-3H6a3 3 0 00-3 3v8a3 3 0 003 3z\" />\n </svg>\n </div>\n <div>\n <p className=\"font-semibold text-gray-900 dark:text-white\">\n {selectedPaymentMethod.card_brand || 'Card'}\n </p>\n <p className=\"text-sm text-gray-600 dark:text-gray-400\">\n •••• •••• •••• {selectedPaymentMethod.card_last4 || '****'}\n </p>\n </div>\n </div>\n </div>\n )}\n\n <p className=\"text-sm text-gray-500 dark:text-gray-400\">\n This action cannot be undone.\n </p>\n\n <div className=\"flex gap-3 justify-end mt-6 pt-4 okt-divider\">\n <Button\n variant=\"secondary\"\n onClick={() => {\n setIsRemovePaymentModalOpen(false);\n setSelectedPaymentMethod(null);\n }}\n disabled={isLoading}\n >\n Cancel\n </Button>\n <Button\n variant=\"primary\"\n onClick={handleConfirmRemovePayment}\n disabled={isLoading}\n >\n {isLoading ? 'Removing...' : 'Remove Payment Method'}\n </Button>\n </div>\n </div>\n </Modal>\n\n {/* Cancel Subscription Modal */}\n <Modal\n isOpen={isCancelModalOpen}\n onClose={() => setIsCancelModalOpen(false)}\n title=\"Cancel Subscription\"\n >\n <div className=\"space-y-4\">\n <div className=\"okt-alert-warning flex items-start gap-3 bg-yellow-50 dark:bg-yellow-900/20 p-4\">\n <svg className=\"w-6 h-6 text-yellow-600 dark:text-yellow-400 flex-shrink-0\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z\" />\n </svg>\n <div>\n <p className=\"font-medium text-yellow-900 dark:text-yellow-100 mb-1\">\n Are you sure you want to cancel?\n </p>\n <p className=\"text-sm text-yellow-800 dark:text-yellow-200\">\n You&apos;ll lose access to premium features when your current billing period ends.\n </p>\n </div>\n </div>\n\n {subscription && (\n <div className=\"bg-gray-50 dark:bg-gray-800 rounded-lg p-4\">\n <div className=\"flex justify-between text-sm\">\n <span className=\"text-gray-600 dark:text-gray-400\">Current Plan:</span>\n <span className=\"font-medium\">{subscription.plan}</span>\n </div>\n <div className=\"flex justify-between text-sm mt-2\">\n <span className=\"text-gray-600 dark:text-gray-400\">Access Until:</span>\n <span className=\"font-medium\">{subscription.nextBilling}</span>\n </div>\n </div>\n )}\n\n <div className=\"flex gap-3 justify-end mt-6 pt-4 okt-divider\">\n <Button\n variant=\"secondary\"\n onClick={() => setIsCancelModalOpen(false)}\n disabled={isLoading}\n >\n Keep Subscription\n </Button>\n <Button\n variant=\"primary\"\n onClick={handleCancelSubscription}\n disabled={isLoading}\n >\n {isLoading ? 'Canceling...' : 'Yes, Cancel Subscription'}\n </Button>\n </div>\n </div>\n </Modal>\n\n {/* Upgrade Plan Confirmation Modal */}\n <Modal\n isOpen={isUpgradeModalOpen}\n onClose={() => {\n setIsUpgradeModalOpen(false);\n setError(null);\n }}\n title={\n selectedPlan && parseFloat(selectedPlan.price.replace(/[^0-9.]/g, '')) === 0\n ? \"Start Free Plan\"\n : subscription\n ? \"Confirm Plan Change\"\n : \"Confirm Subscription\"\n }\n >\n <div className=\"space-y-4\">\n <p className=\"text-gray-600 dark:text-gray-400\">\n {selectedPlan && parseFloat(selectedPlan.price.replace(/[^0-9.]/g, '')) === 0 ? (\n <>Start your free <strong>{selectedPlan?.name}</strong> plan</>\n ) : subscription ? (\n <>Switch to the <strong>{selectedPlan?.name}</strong> plan</>\n ) : (\n <>Subscribe to the <strong>{selectedPlan?.name}</strong> plan</>\n )}\n </p>\n\n <div className=\"bg-gray-50 dark:bg-gray-800 rounded-lg p-4\">\n <h4 className=\"font-semibold text-gray-900 dark:text-white mb-2\">\n Billing Summary\n </h4>\n <div className=\"flex justify-between text-sm mb-1\">\n <span className=\"text-gray-600 dark:text-gray-400\">Plan:</span>\n <span className=\"font-medium text-gray-900 dark:text-white\">{selectedPlan?.name}</span>\n </div>\n <div className=\"flex justify-between text-sm mb-1\">\n <span className=\"text-gray-600 dark:text-gray-400\">Billing Cycle:</span>\n <span className=\"font-medium text-gray-900 dark:text-white\">\n {selectedPlan?.period || 'month'}ly\n </span>\n </div>\n {selectedPlan && parseFloat(selectedPlan.price.replace(/[^0-9.]/g, '')) > 0 && (\n <>\n <div className=\"flex justify-between text-sm mb-1\">\n <span className=\"text-gray-600 dark:text-gray-400\">Subtotal:</span>\n <span className=\"font-medium text-gray-900 dark:text-white\">\n {selectedPlan.price}\n </span>\n </div>\n\n {/* Tax display */}\n {taxLoading ? (\n <div className=\"flex justify-between text-sm mb-1\">\n <span className=\"text-gray-600 dark:text-gray-400\">Tax:</span>\n <span className=\"text-gray-400 dark:text-gray-500 text-xs\">Calculating...</span>\n </div>\n ) : taxInfo && taxInfo.tax_rate > 0 ? (\n <div className=\"flex justify-between text-sm mb-1\">\n <span className=\"text-gray-600 dark:text-gray-400\">\n {taxInfo.tax_label} ({taxInfo.tax_rate}%):\n </span>\n <span className=\"font-medium text-gray-900 dark:text-white\">\n ${(taxInfo.tax_amount / 100).toFixed(2)}\n </span>\n </div>\n ) : taxInfo && taxInfo.reverse_charge ? (\n <div className=\"flex justify-between text-sm mb-1\">\n <span className=\"text-gray-600 dark:text-gray-400\">VAT (Reverse Charge):</span>\n <span className=\"font-medium text-gray-900 dark:text-white\">$0.00</span>\n </div>\n ) : null}\n </>\n )}\n\n {/* Reverse charge notice */}\n {taxInfo && taxInfo.reverse_charge && (\n <div className=\"mt-2 p-2 bg-blue-50 dark:bg-blue-900/20 rounded text-xs text-blue-700 dark:text-blue-300\">\n EU reverse charge applies - you are responsible for reporting VAT in your country.\n </div>\n )}\n\n <div className=\"okt-divider mt-3 pt-3\">\n <div className=\"flex justify-between\">\n <span className=\"font-semibold text-gray-900 dark:text-white\">\n {selectedPlan && parseFloat(selectedPlan.price.replace(/[^0-9.]/g, '')) === 0 ? 'Total:' : 'Charged Today:'}\n </span>\n <span className=\"font-bold text-lg text-gray-900 dark:text-white\">\n {selectedPlan && parseFloat(selectedPlan.price.replace(/[^0-9.]/g, '')) === 0 ? (\n <span className=\"text-green-600 dark:text-green-400\">FREE</span>\n ) : taxInfo ? (\n `$${(taxInfo.total / 100).toFixed(2)}`\n ) : (\n selectedPlan?.price || '$0'\n )}\n </span>\n </div>\n </div>\n </div>\n\n {/* Payment Method Selection - Only for paid plans */}\n {selectedPlan && parseFloat(selectedPlan.price.replace(/[^0-9.]/g, '')) > 0 && paymentMethods.length > 0 && (\n <div className=\"space-y-3\">\n <h4 className=\"font-semibold text-gray-900 dark:text-white text-sm\">\n Select Payment Method\n </h4>\n <div className=\"space-y-2\">\n {paymentMethods.map((method) => (\n <label\n key={method.id}\n className={`okt-selectable flex items-center gap-3 p-3 transition-all ${\n selectedUpgradePaymentMethod === method.id\n ? 'okt-selectable-selected'\n : 'okt-selectable-default'\n }`}\n >\n <input\n type=\"radio\"\n name=\"paymentMethod\"\n value={method.id}\n checked={selectedUpgradePaymentMethod === method.id}\n onChange={() => setSelectedUpgradePaymentMethod(method.id)}\n className=\"w-4 h-4 text-blue-600\"\n />\n <div className=\"flex-1\">\n <div className=\"flex items-center gap-2\">\n <span className=\"font-medium text-gray-900 dark:text-white text-sm\">\n {method.card_brand ? method.card_brand.charAt(0).toUpperCase() + method.card_brand.slice(1) : 'Card'}\n </span>\n {method.is_default && (\n <span className=\"inline-flex items-center rounded-full bg-blue-100 dark:bg-blue-900/30 px-2 py-0.5 text-xs font-medium text-blue-800 dark:text-blue-300\">\n Default\n </span>\n )}\n </div>\n <span className=\"text-xs text-gray-600 dark:text-gray-400\">\n •••• {method.card_last4 || 'XXXX'}\n </span>\n </div>\n </label>\n ))}\n </div>\n </div>\n )}\n\n {/* No payment methods warning for paid plans */}\n {selectedPlan && parseFloat(selectedPlan.price.replace(/[^0-9.]/g, '')) > 0 && paymentMethods.length === 0 && (\n <div className=\"okt-alert-warning bg-yellow-50 dark:bg-yellow-900/20 p-3\">\n <p className=\"text-sm text-yellow-800 dark:text-yellow-200\">\n Please add a payment method before subscribing to a paid plan.\n </p>\n </div>\n )}\n\n {/* Free plan info */}\n {selectedPlan && parseFloat(selectedPlan.price.replace(/[^0-9.]/g, '')) === 0 && (\n <div className=\"okt-alert-success bg-green-50 dark:bg-green-900/20 p-3\">\n <p className=\"text-sm text-green-800 dark:text-green-200\">\n This is a free plan. No payment method required!\n </p>\n </div>\n )}\n\n {selectedPlan && parseFloat(selectedPlan.price.replace(/[^0-9.]/g, '')) > 0 && (\n <p className=\"text-xs text-gray-500 dark:text-gray-400\">\n Your payment method will be charged immediately. You can cancel anytime.\n </p>\n )}\n\n {/* Error Message */}\n {error && (\n <div className=\"okt-alert-error bg-red-50 dark:bg-red-900/20 p-3\">\n <div className=\"flex items-start gap-2\">\n <svg className=\"w-5 h-5 text-red-600 dark:text-red-400 flex-shrink-0 mt-0.5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\" />\n </svg>\n <p className=\"text-sm text-red-800 dark:text-red-200\">{error}</p>\n </div>\n </div>\n )}\n\n <div className=\"flex gap-3 justify-end mt-6\">\n <Button\n variant=\"secondary\"\n onClick={() => {\n setIsUpgradeModalOpen(false);\n setError(null);\n }}\n disabled={isUpgrading}\n >\n Cancel\n </Button>\n <Button\n variant=\"primary\"\n onClick={handleConfirmUpgrade}\n disabled={isUpgrading || !!(selectedPlan && parseFloat(selectedPlan.price.replace(/[^0-9.]/g, '')) > 0 && paymentMethods.length === 0)}\n >\n {isUpgrading\n ? 'Processing...'\n : selectedPlan && parseFloat(selectedPlan.price.replace(/[^0-9.]/g, '')) === 0\n ? 'Start Free Plan'\n : subscription\n ? 'Confirm Change'\n : 'Confirm Subscription'\n }\n </Button>\n </div>\n </div>\n </Modal>\n\n {/* Success Modal */}\n <Modal\n isOpen={upgradeSuccess}\n onClose={handleCloseSuccessModal}\n title=\"Subscription Successful!\"\n >\n <div className=\"space-y-4\">\n <div className=\"flex justify-center\">\n <div className=\"w-16 h-16 bg-green-100 dark:bg-green-900 rounded-full flex items-center justify-center\">\n <svg className=\"w-8 h-8 text-green-600 dark:text-green-400\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M5 13l4 4L19 7\" />\n </svg>\n </div>\n </div>\n\n <div className=\"text-center\">\n <h3 className=\"text-xl font-bold text-gray-900 dark:text-white mb-2\">\n Welcome to {selectedPlan?.name}!\n </h3>\n <p className=\"text-gray-600 dark:text-gray-400\">\n {selectedPlan && parseFloat(selectedPlan.price.replace(/[^0-9.]/g, '')) === 0\n ? 'Your free plan is now active. Start exploring all the features!'\n : 'Your subscription has been activated and your payment method has been charged.'}\n </p>\n </div>\n\n <div className=\"bg-gray-50 dark:bg-gray-800 rounded-lg p-4\">\n <div className=\"space-y-2\">\n <div className=\"flex justify-between text-sm\">\n <span className=\"text-gray-600 dark:text-gray-400\">Plan:</span>\n <span className=\"font-medium text-gray-900 dark:text-white\">{selectedPlan?.name}</span>\n </div>\n <div className=\"flex justify-between text-sm\">\n <span className=\"text-gray-600 dark:text-gray-400\">Billing:</span>\n <span className=\"font-medium text-gray-900 dark:text-white\">\n {selectedPlan && parseFloat(selectedPlan.price.replace(/[^0-9.]/g, '')) === 0 ? 'Free' : `${selectedPlan?.price}/${selectedPlan?.period}`}\n </span>\n </div>\n {selectedPlan && parseFloat(selectedPlan.price.replace(/[^0-9.]/g, '')) > 0 && (\n <div className=\"flex justify-between text-sm pt-2 okt-divider\">\n <span className=\"text-gray-600 dark:text-gray-400\">Status:</span>\n <span className=\"font-medium text-green-600 dark:text-green-400\">Active</span>\n </div>\n )}\n </div>\n </div>\n\n <div className=\"flex justify-center pt-2\">\n <Button\n variant=\"primary\"\n onClick={handleCloseSuccessModal}\n className=\"px-8\"\n >\n Get Started\n </Button>\n </div>\n </div>\n </Modal>\n </div>\n )\n}\n","'use server';\n\n/**\n * Billing Server Actions\n *\n * Server actions for billing mutations (add payment method, subscribe, cancel, etc.)\n * These actions can be called from client components.\n */\n\nimport type { PaymentMethod, Subscription, Customer, CustomerAddress } from './types';\n\ninterface ActionConfig {\n baseUrl: string;\n apiKey?: string;\n accessToken?: string;\n projectId: number;\n}\n\ninterface ActionResult<T = void> {\n success: boolean;\n data?: T;\n error?: string;\n}\n\nfunction createHeaders(config: ActionConfig): Record<string, string> {\n const headers: Record<string, string> = {\n 'Content-Type': 'application/json'\n };\n\n if (config.accessToken) {\n headers['Authorization'] = `Bearer ${config.accessToken}`;\n }\n\n if (config.apiKey) {\n headers['X-API-Key'] = config.apiKey;\n }\n\n return headers;\n}\n\nasync function fetchAPI<T>(\n config: ActionConfig,\n url: string,\n options: RequestInit = {}\n): Promise<{ success: boolean; data?: T; error?: string }> {\n try {\n const response = await fetch(url, {\n ...options,\n headers: {\n ...createHeaders(config),\n ...options.headers as Record<string, string>,\n },\n });\n\n return await response.json();\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : 'API request failed'\n };\n }\n}\n\n/**\n * Add a payment method for a customer\n */\nexport async function addPaymentMethod(\n config: ActionConfig,\n customerId: number,\n stripePaymentMethodId: string,\n setAsDefault: boolean = false\n): Promise<ActionResult<PaymentMethod>> {\n const { baseUrl, projectId } = config;\n\n const result = await fetchAPI<PaymentMethod>(\n config,\n `${baseUrl}/billing/customers/${customerId}/payment-methods`,\n {\n method: 'POST',\n body: JSON.stringify({\n project_id: projectId,\n type: 'card',\n stripe_payment_method_id: stripePaymentMethodId,\n set_as_default: setAsDefault\n })\n }\n );\n\n if (!result.success) {\n return { success: false, error: result.error || 'Failed to add payment method' };\n }\n\n return { success: true, data: result.data };\n}\n\n/**\n * Remove a payment method\n */\nexport async function removePaymentMethod(\n config: ActionConfig,\n customerId: number,\n paymentMethodId: string\n): Promise<ActionResult> {\n const { baseUrl, projectId } = config;\n\n const isStripeId = paymentMethodId.startsWith('pm_');\n const idType = isStripeId ? 'stripe' : 'database';\n\n const result = await fetchAPI(\n config,\n `${baseUrl}/billing/payment-methods/${paymentMethodId}`,\n {\n method: 'DELETE',\n body: JSON.stringify({\n customer_id: customerId,\n project_id: projectId,\n id_type: idType,\n test_mode: true\n })\n }\n );\n\n if (!result.success) {\n return { success: false, error: result.error || 'Failed to remove payment method' };\n }\n\n return { success: true };\n}\n\n/**\n * Set a payment method as default\n */\nexport async function setDefaultPaymentMethod(\n config: ActionConfig,\n customerId: number,\n paymentMethodId: string\n): Promise<ActionResult> {\n const { baseUrl, projectId } = config;\n\n const isStripeId = paymentMethodId.startsWith('pm_');\n const idType = isStripeId ? 'stripe' : 'database';\n\n const result = await fetchAPI(\n config,\n `${baseUrl}/billing/payment-methods/${paymentMethodId}`,\n {\n method: 'PUT',\n body: JSON.stringify({\n customer_id: customerId,\n project_id: projectId,\n id_type: idType,\n is_default: true,\n test_mode: true\n })\n }\n );\n\n if (!result.success) {\n return { success: false, error: result.error || 'Failed to set default payment method' };\n }\n\n return { success: true };\n}\n\n/**\n * Create a subscription\n * Tax is calculated server-side by the create-subscription function\n */\nexport async function createSubscription(\n config: ActionConfig,\n customerId: number,\n priceId: number,\n paymentMethodId?: string\n): Promise<ActionResult<Subscription>> {\n const { baseUrl, projectId } = config;\n\n const result = await fetchAPI<Subscription>(\n config,\n `${baseUrl}/billing/subscriptions`,\n {\n method: 'POST',\n body: JSON.stringify({\n customer_id: customerId,\n price_id: priceId,\n payment_method_id: paymentMethodId || undefined,\n project_id: projectId,\n sync_to_stripe: true,\n test_mode: true\n })\n }\n );\n\n if (!result.success) {\n return { success: false, error: result.error || 'Failed to create subscription' };\n }\n\n return { success: true, data: result.data };\n}\n\n/**\n * Cancel a subscription\n */\nexport async function cancelSubscription(\n config: ActionConfig,\n subscriptionId: number,\n cancelAtPeriodEnd: boolean = true\n): Promise<ActionResult> {\n const { baseUrl, projectId } = config;\n\n const result = await fetchAPI(\n config,\n `${baseUrl}/billing/subscriptions/${subscriptionId}/cancel`,\n {\n method: 'POST',\n body: JSON.stringify({\n project_id: projectId,\n cancel_at_period_end: cancelAtPeriodEnd,\n cancellation_reason: 'requested'\n })\n }\n );\n\n if (!result.success) {\n return { success: false, error: result.error || 'Failed to cancel subscription' };\n }\n\n return { success: true };\n}\n\n/**\n * Update subscription (change plan)\n */\nexport async function updateSubscription(\n config: ActionConfig,\n subscriptionId: number,\n newPriceId: number\n): Promise<ActionResult<Subscription>> {\n const { baseUrl, projectId } = config;\n\n const result = await fetchAPI<Subscription>(\n config,\n `${baseUrl}/billing/subscriptions/${subscriptionId}`,\n {\n method: 'PUT',\n body: JSON.stringify({\n project_id: projectId,\n price_id: newPriceId,\n sync_to_stripe: true\n })\n }\n );\n\n if (!result.success) {\n return { success: false, error: result.error || 'Failed to update subscription' };\n }\n\n return { success: true, data: result.data };\n}\n\n/**\n * Resume a canceled subscription\n */\nexport async function resumeSubscription(\n config: ActionConfig,\n subscriptionId: number\n): Promise<ActionResult<Subscription>> {\n const { baseUrl, projectId } = config;\n\n const result = await fetchAPI<Subscription>(\n config,\n `${baseUrl}/billing/subscriptions/${subscriptionId}/resume`,\n {\n method: 'POST',\n body: JSON.stringify({\n project_id: projectId\n })\n }\n );\n\n if (!result.success) {\n return { success: false, error: result.error || 'Failed to resume subscription' };\n }\n\n return { success: true, data: result.data };\n}\n\n/**\n * Fetch payment configuration (Stripe publishable key)\n */\nexport async function fetchPaymentConfig(\n config: ActionConfig\n): Promise<ActionResult<{ public_key: string; mode: string }>> {\n const { baseUrl, projectId } = config;\n\n const result = await fetchAPI<{ public_key: string; mode: string }>(\n config,\n `${baseUrl}/billing/payment-config?project_id=${projectId}&test_mode=true`\n );\n\n if (!result.success) {\n return { success: false, error: result.error || 'Failed to fetch payment configuration' };\n }\n\n return { success: true, data: result.data };\n}\n\n/**\n * Tax calculation result\n */\nexport interface TaxCalculation {\n tax_rate: number;\n tax_amount: number;\n tax_type: string;\n tax_label: string;\n jurisdiction: string;\n reverse_charge: boolean;\n customer_country?: string;\n seller_country?: string;\n subtotal: number;\n total: number;\n reason?: string;\n}\n\n/**\n * Calculate tax for a transaction based on customer location\n */\nexport async function calculateTax(\n config: ActionConfig,\n params: {\n customer_id?: number;\n country_code?: string;\n amount: number;\n product_type?: 'digital' | 'physical' | 'service';\n customer_tax_id?: string;\n }\n): Promise<ActionResult<TaxCalculation>> {\n const { baseUrl, projectId } = config;\n\n const result = await fetchAPI<TaxCalculation>(\n config,\n `${baseUrl}/billing/tax/calculate`,\n {\n method: 'POST',\n body: JSON.stringify({\n project_id: projectId,\n ...params\n })\n }\n );\n\n if (!result.success) {\n return { success: false, error: result.error || 'Failed to calculate tax' };\n }\n\n return { success: true, data: result.data };\n}\n\n/**\n * Customer update data\n */\nexport interface CustomerUpdateData {\n name?: string;\n email?: string;\n phone?: string;\n currency?: string;\n address?: CustomerAddress;\n customer_type?: 'individual' | 'business';\n company_name?: string;\n vat_number?: string;\n tax_id_type?: string;\n tax_id_value?: string;\n}\n\n/**\n * Update customer information\n */\nexport async function updateCustomer(\n config: ActionConfig,\n customerId: number,\n data: CustomerUpdateData\n): Promise<ActionResult<Customer>> {\n const { baseUrl, projectId } = config;\n\n const result = await fetchAPI<Customer>(\n config,\n `${baseUrl}/billing/customers/${customerId}`,\n {\n method: 'PUT',\n body: JSON.stringify({\n project_id: projectId,\n ...data\n })\n }\n );\n\n if (!result.success) {\n return { success: false, error: result.error || 'Failed to update customer' };\n }\n\n return { success: true, data: result.data };\n}\n"]}